summaryrefslogtreecommitdiff
path: root/test/user-template
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-09-29 18:32:05 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2011-09-29 18:35:19 +0200
commit49cec3fa6f25cdf2f24602696b6a94570cbbfc2f (patch)
tree860b11caa70c196800f6495f5c08cd99837b6828 /test/user-template
parent3581e9df565df6cb67992c25e47ff37fd85030b3 (diff)
add user profile dir for unit tests
Diffstat (limited to 'test/user-template')
-rw-r--r--test/user-template/user/autocorr/acor_af-ZA.datbin0 -> 61042 bytes
-rw-r--r--test/user-template/user/autocorr/acor_bg-BG.datbin0 -> 3410 bytes
-rw-r--r--test/user-template/user/autocorr/acor_cs-CZ.datbin0 -> 99637 bytes
-rw-r--r--test/user-template/user/autocorr/acor_da-DK.datbin0 -> 68118 bytes
-rw-r--r--test/user-template/user/autocorr/acor_de-DE.datbin0 -> 31785 bytes
-rw-r--r--test/user-template/user/autocorr/acor_en-AU.datbin0 -> 79211 bytes
-rw-r--r--test/user-template/user/autocorr/acor_en-GB.datbin0 -> 79212 bytes
-rw-r--r--test/user-template/user/autocorr/acor_en-US.datbin0 -> 78472 bytes
-rw-r--r--test/user-template/user/autocorr/acor_en-ZA.datbin0 -> 80173 bytes
-rw-r--r--test/user-template/user/autocorr/acor_es-ES.datbin0 -> 39611 bytes
-rw-r--r--test/user-template/user/autocorr/acor_eu.datbin0 -> 78988 bytes
-rw-r--r--test/user-template/user/autocorr/acor_fa-IR.datbin0 -> 629744 bytes
-rw-r--r--test/user-template/user/autocorr/acor_fi-FI.datbin0 -> 5810 bytes
-rw-r--r--test/user-template/user/autocorr/acor_fr-FR.datbin0 -> 4650 bytes
-rw-r--r--test/user-template/user/autocorr/acor_ga-IE.datbin0 -> 13750 bytes
-rw-r--r--test/user-template/user/autocorr/acor_hr-HR.datbin0 -> 50366 bytes
-rw-r--r--test/user-template/user/autocorr/acor_hu-HU.datbin0 -> 96464 bytes
-rw-r--r--test/user-template/user/autocorr/acor_it-IT.datbin0 -> 13337 bytes
-rw-r--r--test/user-template/user/autocorr/acor_ja-JP.datbin0 -> 77736 bytes
-rw-r--r--test/user-template/user/autocorr/acor_ko-KR.datbin0 -> 77736 bytes
-rw-r--r--test/user-template/user/autocorr/acor_lb-LU.datbin0 -> 45098 bytes
-rw-r--r--test/user-template/user/autocorr/acor_lt-LT.datbin0 -> 3748 bytes
-rw-r--r--test/user-template/user/autocorr/acor_mn-MN.datbin0 -> 31583 bytes
-rw-r--r--test/user-template/user/autocorr/acor_nl-BE.datbin0 -> 18310 bytes
-rw-r--r--test/user-template/user/autocorr/acor_nl-NL.datbin0 -> 3407 bytes
-rw-r--r--test/user-template/user/autocorr/acor_pl-PL.datbin0 -> 80008 bytes
-rw-r--r--test/user-template/user/autocorr/acor_pt-BR.datbin0 -> 40513 bytes
-rw-r--r--test/user-template/user/autocorr/acor_pt-PT.datbin0 -> 15141 bytes
-rw-r--r--test/user-template/user/autocorr/acor_ru-RU.datbin0 -> 25673 bytes
-rw-r--r--test/user-template/user/autocorr/acor_sh-ME.datbin0 -> 1631 bytes
-rw-r--r--test/user-template/user/autocorr/acor_sh-RS.datbin0 -> 1631 bytes
-rw-r--r--test/user-template/user/autocorr/acor_sh-YU.datbin0 -> 1631 bytes
-rw-r--r--test/user-template/user/autocorr/acor_sk-SK.datbin0 -> 5641 bytes
-rw-r--r--test/user-template/user/autocorr/acor_sl-SI.datbin0 -> 46882 bytes
-rw-r--r--test/user-template/user/autocorr/acor_sr-ME.datbin0 -> 1683 bytes
-rw-r--r--test/user-template/user/autocorr/acor_sr-RS.datbin0 -> 1683 bytes
-rw-r--r--test/user-template/user/autocorr/acor_sr-YU.datbin0 -> 1683 bytes
-rw-r--r--test/user-template/user/autocorr/acor_sv-SE.datbin0 -> 15453 bytes
-rw-r--r--test/user-template/user/autocorr/acor_tr-TR.datbin0 -> 16444 bytes
-rw-r--r--test/user-template/user/autocorr/acor_vi-VN.datbin0 -> 77337 bytes
-rw-r--r--test/user-template/user/autocorr/acor_zh-CN.datbin0 -> 14211 bytes
-rw-r--r--test/user-template/user/autocorr/acor_zh-TW.datbin0 -> 14211 bytes
-rw-r--r--test/user-template/user/autotext/en-US/crdbus50.baubin0 -> 29311 bytes
-rw-r--r--test/user-template/user/autotext/en-US/standard.baubin0 -> 64398 bytes
-rw-r--r--test/user-template/user/autotext/en-US/template.baubin0 -> 45671 bytes
-rw-r--r--test/user-template/user/basic/Depot/CommonLang.xba351
-rw-r--r--test/user-template/user/basic/Depot/Currency.xba178
-rw-r--r--test/user-template/user/basic/Depot/Depot.xba500
-rw-r--r--test/user-template/user/basic/Depot/Dialog2.xdl36
-rw-r--r--test/user-template/user/basic/Depot/Dialog3.xdl45
-rw-r--r--test/user-template/user/basic/Depot/Dialog4.xdl17
-rw-r--r--test/user-template/user/basic/Depot/Internet.xba339
-rw-r--r--test/user-template/user/basic/Depot/Lang_de.xba158
-rw-r--r--test/user-template/user/basic/Depot/Lang_en.xba158
-rw-r--r--test/user-template/user/basic/Depot/Lang_es.xba158
-rw-r--r--test/user-template/user/basic/Depot/Lang_fr.xba158
-rw-r--r--test/user-template/user/basic/Depot/Lang_it.xba158
-rw-r--r--test/user-template/user/basic/Depot/Lang_ja.xba158
-rw-r--r--test/user-template/user/basic/Depot/Lang_ko.xba158
-rw-r--r--test/user-template/user/basic/Depot/Lang_sv.xba157
-rw-r--r--test/user-template/user/basic/Depot/Lang_tw.xba158
-rw-r--r--test/user-template/user/basic/Depot/Lang_zh.xba158
-rw-r--r--test/user-template/user/basic/Depot/dialog.xlb7
-rw-r--r--test/user-template/user/basic/Depot/script.xlb19
-rw-r--r--test/user-template/user/basic/Depot/tools.xba200
-rw-r--r--test/user-template/user/basic/Euro/AutoPilotRun.xba414
-rw-r--r--test/user-template/user/basic/Euro/Common.xba272
-rw-r--r--test/user-template/user/basic/Euro/ConvertRun.xba317
-rw-r--r--test/user-template/user/basic/Euro/DlgConvert.xdl77
-rw-r--r--test/user-template/user/basic/Euro/DlgPassword.xdl15
-rw-r--r--test/user-template/user/basic/Euro/Hard.xba229
-rw-r--r--test/user-template/user/basic/Euro/Init.xba620
-rw-r--r--test/user-template/user/basic/Euro/Protect.xba175
-rw-r--r--test/user-template/user/basic/Euro/Soft.xba239
-rw-r--r--test/user-template/user/basic/Euro/Writer.xba72
-rw-r--r--test/user-template/user/basic/Euro/dialog.xlb6
-rw-r--r--test/user-template/user/basic/Euro/script.xlb12
-rw-r--r--test/user-template/user/basic/FormWizard/DBMeta.xba330
-rw-r--r--test/user-template/user/basic/FormWizard/DlgFormDB.xdl102
-rw-r--r--test/user-template/user/basic/FormWizard/FormWizard.xba427
-rw-r--r--test/user-template/user/basic/FormWizard/Language.xba285
-rw-r--r--test/user-template/user/basic/FormWizard/Layouter.xba380
-rw-r--r--test/user-template/user/basic/FormWizard/develop.xba533
-rw-r--r--test/user-template/user/basic/FormWizard/dialog.xlb5
-rw-r--r--test/user-template/user/basic/FormWizard/script.xlb10
-rw-r--r--test/user-template/user/basic/FormWizard/tools.xba349
-rw-r--r--test/user-template/user/basic/Gimmicks/AutoText.xba97
-rw-r--r--test/user-template/user/basic/Gimmicks/ChangeAllChars.xba75
-rw-r--r--test/user-template/user/basic/Gimmicks/GetTexts.xba522
-rw-r--r--test/user-template/user/basic/Gimmicks/ReadDir.xba305
-rw-r--r--test/user-template/user/basic/Gimmicks/ReadFolderDlg.xdl22
-rw-r--r--test/user-template/user/basic/Gimmicks/UserfieldDlg.xdl49
-rw-r--r--test/user-template/user/basic/Gimmicks/Userfields.xba219
-rw-r--r--test/user-template/user/basic/Gimmicks/dialog.xlb6
-rw-r--r--test/user-template/user/basic/Gimmicks/script.xlb9
-rw-r--r--test/user-template/user/basic/ImportWizard/API.xba208
-rw-r--r--test/user-template/user/basic/ImportWizard/DialogModul.xba656
-rw-r--r--test/user-template/user/basic/ImportWizard/FilesModul.xba825
-rw-r--r--test/user-template/user/basic/ImportWizard/ImportDialog.xdl95
-rw-r--r--test/user-template/user/basic/ImportWizard/Language.xba156
-rw-r--r--test/user-template/user/basic/ImportWizard/Main.xba301
-rw-r--r--test/user-template/user/basic/ImportWizard/dialog.xlb5
-rw-r--r--test/user-template/user/basic/ImportWizard/script.xlb9
-rw-r--r--test/user-template/user/basic/Schedule/BankHoliday.xba177
-rw-r--r--test/user-template/user/basic/Schedule/CalendarMain.xba302
-rw-r--r--test/user-template/user/basic/Schedule/CreateTable.xba133
-rw-r--r--test/user-template/user/basic/Schedule/DlgCalendar.xdl64
-rw-r--r--test/user-template/user/basic/Schedule/DlgControl.xba148
-rw-r--r--test/user-template/user/basic/Schedule/GermanHolidays.xba132
-rw-r--r--test/user-template/user/basic/Schedule/Language.xba95
-rw-r--r--test/user-template/user/basic/Schedule/LocalHolidays.xba642
-rw-r--r--test/user-template/user/basic/Schedule/OwnEvents.xba217
-rw-r--r--test/user-template/user/basic/Schedule/dialog.xlb5
-rw-r--r--test/user-template/user/basic/Schedule/script.xlb12
-rw-r--r--test/user-template/user/basic/ScriptBindingLibrary/Highlight.xdl14
-rw-r--r--test/user-template/user/basic/ScriptBindingLibrary/dialog.xlb6
-rw-r--r--test/user-template/user/basic/ScriptBindingLibrary/script.xlb4
-rw-r--r--test/user-template/user/basic/Template/Autotext.xba173
-rw-r--r--test/user-template/user/basic/Template/Correspondence.xba286
-rw-r--r--test/user-template/user/basic/Template/DialogStyles.xdl15
-rw-r--r--test/user-template/user/basic/Template/ModuleAgenda.xba203
-rw-r--r--test/user-template/user/basic/Template/Samples.xba185
-rw-r--r--test/user-template/user/basic/Template/TemplateDialog.xdl29
-rw-r--r--test/user-template/user/basic/Template/dialog.xlb7
-rw-r--r--test/user-template/user/basic/Template/script.xlb8
-rw-r--r--test/user-template/user/basic/Tools/Debug.xba236
-rw-r--r--test/user-template/user/basic/Tools/DlgOverwriteAll.xdl17
-rw-r--r--test/user-template/user/basic/Tools/Listbox.xba353
-rw-r--r--test/user-template/user/basic/Tools/Misc.xba821
-rw-r--r--test/user-template/user/basic/Tools/ModuleControls.xba370
-rw-r--r--test/user-template/user/basic/Tools/Strings.xba452
-rw-r--r--test/user-template/user/basic/Tools/UCB.xba294
-rw-r--r--test/user-template/user/basic/Tools/dialog.xlb5
-rw-r--r--test/user-template/user/basic/Tools/script.xlb10
-rw-r--r--test/user-template/user/basic/Tutorials/Functions.xba368
-rw-r--r--test/user-template/user/basic/Tutorials/RoadMap.xba117
-rw-r--r--test/user-template/user/basic/Tutorials/ShowInfoDialog.xba305
-rw-r--r--test/user-template/user/basic/Tutorials/TutorialClose.xba15
-rw-r--r--test/user-template/user/basic/Tutorials/TutorialCloseDialog.xdl14
-rw-r--r--test/user-template/user/basic/Tutorials/TutorialCreator.xba10
-rw-r--r--test/user-template/user/basic/Tutorials/TutorialOpen.xba96
-rw-r--r--test/user-template/user/basic/Tutorials/TutorialOpenDialog.xdl21
-rw-r--r--test/user-template/user/basic/Tutorials/TutorialsDialog.xdl26
-rw-r--r--test/user-template/user/basic/Tutorials/dialog.xlb7
-rw-r--r--test/user-template/user/basic/Tutorials/script.xlb10
-rw-r--r--test/user-template/user/basic/dialog.xlc13
-rw-r--r--test/user-template/user/basic/script.xlc13
l---------test/user-template/user/config/images.zip1
l---------test/user-template/user/config/images_crystal.zip1
l---------test/user-template/user/config/images_hicontrast.zip1
l---------test/user-template/user/config/images_oxygen.zip1
l---------test/user-template/user/config/images_tango.zip1
-rw-r--r--test/user-template/user/config/javasettingsunopkginstall.xml3
-rw-r--r--test/user-template/user/config/linked/images.zipbin0 -> 2194265 bytes
-rw-r--r--test/user-template/user/config/linked/images_crystal.zipbin0 -> 2641075 bytes
-rw-r--r--test/user-template/user/config/linked/images_hicontrast.zipbin0 -> 1315478 bytes
-rw-r--r--test/user-template/user/config/linked/images_oxygen.zipbin0 -> 2859422 bytes
-rw-r--r--test/user-template/user/config/linked/images_tango.zipbin0 -> 2190232 bytes
-rw-r--r--test/user-template/user/config/psetup.xpm31
-rw-r--r--test/user-template/user/config/psetupl.xpm49
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/BasicIDE/menubar/menubar.xml91
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/BasicIDE/statusbar/statusbar.xml10
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/dialogbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/findbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/insertcontrolsbar.xml43
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/macrobar.xml22
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/standardbar.xml25
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/translationbar.xml6
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/StartModule/menubar/menubar.xml83
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/StartModule/statusbar/statusbar.xml4
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/StartModule/toolbar/standardbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbapp/menubar/menubar.xml143
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbapp/statusbar/statusbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/formobjectbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/queryobjectbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/reportobjectbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/tableobjectbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/toolbar.xml19
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbbrowser/menubar/compat.xml1
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbbrowser/toolbar/toolbar.xml33
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbquery/menubar/menubar.xml84
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/designobjectbar.xml10
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/sqlobjectbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/toolbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbrelation/menubar/menubar.xml67
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbrelation/toolbar/toolbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/menubar/menubar.xml422
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/statusbar/statusbar.xml6
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/Formatting.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/alignmentbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/drawbar.xml10
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/reportcontrols.xml19
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/resizebar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/sectionalignmentbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/sectionshrinkbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/toolbar.xml22
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbtable/menubar/menubar.xml68
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbtable/toolbar/toolbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbtdata/menubar/menubar.xml76
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/dbtdata/toolbar/toolbar.xml27
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sbibliography/menubar/menubar.xml92
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/layout/insert-sheet.xml57
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/layout/move-copy-sheet.xml21
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/layout/sort-options.xml40
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/layout/string-input.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/menubar/menubar.xml456
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/statusbar/statusbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/alignmentbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/colorbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/drawbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/drawobjectbar.xml30
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/extrusionobjectbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/findbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fontworkobjectbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fontworkshapetype.xml38
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formatobjectbar.xml55
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formcontrols.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formdesign.xml32
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formsfilterbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formsnavigationbar.xml33
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formtextobjectbar.xml28
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/graffilterbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/graphicobjectbar.xml32
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/insertbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/insertcellsbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/mediaobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/moreformcontrols.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/previewbar.xml22
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/standardbar.xml44
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/textobjectbar.xml35
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/toolbar.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/viewerbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/menubar/menubar.xml156
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/statusbar/statusbar.xml6
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/toolbar/drawbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/toolbar/standardbar.xml22
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/schart/toolbar/toolbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/menubar/menubar.xml331
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/statusbar/statusbar.xml12
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/3dobjectsbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/alignmentbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/arrowsbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/bezierobjectbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/choosemodebar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/colorbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/commentsbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/connectorsbar.xml35
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/drawingobjectbar.xml21
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/ellipsesbar.xml19
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/extrusionobjectbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/findbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fontworkobjectbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fontworkshapetype.xml38
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formcontrols.xml26
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formdesign.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formsfilterbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formsnavigationbar.xml32
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formtextobjectbar.xml28
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/gluepointsobjectbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/graffilterbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/graphicobjectbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/insertbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/linesbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/masterviewtoolbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/mediaobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/moreformcontrols.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/optimizetablebar.xml6
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/optionsbar.xml25
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/positionbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/rectanglesbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/standardbar.xml37
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/tableobjectbar.xml31
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/textbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/textobjectbar.xml40
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/toolbar.xml45
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/viewerbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/zoombar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/menubar/menubar.xml459
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/statusbar/statusbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/alignmentbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/bezierobjectbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/colorbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawingobjectbar.xml40
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawtextobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/extrusionobjectbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/findbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fontworkobjectbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fontworkshapetype.xml38
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formcontrols.xml26
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formdesign.xml31
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formsfilterbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formsnavigationbar.xml32
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formtextobjectbar.xml28
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/frameobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/graffilterbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/graphicobjectbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/insertbar.xml30
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/insertobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/mediaobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/moreformcontrols.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/numobjectbar.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/oleobjectbar.xml30
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/optimizetablebar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/previewobjectbar.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/standardbar.xml42
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/tableobjectbar.xml35
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/textobjectbar.xml44
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/toolbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/viewerbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/menubar/menubar.xml307
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/statusbar/statusbar.xml12
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/3dobjectsbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/alignmentbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/arrowsbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/bezierobjectbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/choosemodebar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/colorbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/commentsbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/commontaskbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/connectorsbar.xml35
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/drawingobjectbar.xml21
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/ellipsesbar.xml19
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/extrusionobjectbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/findbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fontworkobjectbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fontworkshapetype.xml38
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formcontrols.xml26
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formdesign.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formsfilterbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formsnavigationbar.xml32
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formtextobjectbar.xml28
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/gluepointsobjectbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/graffilterbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/graphicobjectbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/insertbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/linesbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/masterviewtoolbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/mediaobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/moreformcontrols.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/optimizetablebar.xml6
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/optionsbar.xml25
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/outlinetoolbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/positionbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/rectanglesbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/slideviewobjectbar.xml10
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/slideviewtoolbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/standardbar.xml39
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/tableobjectbar.xml31
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/textbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/textobjectbar.xml45
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/toolbar.xml49
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/viewerbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/zoombar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/smath/menubar/menubar.xml121
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/smath/statusbar/statusbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/smath/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/smath/toolbar/standardbar.xml26
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/smath/toolbar/toolbar.xml12
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/menubar/menubar.xml389
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/statusbar/statusbar.xml14
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/bezierobjectbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/colorbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/drawingobjectbar.xml39
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/drawtextobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/extrusionobjectbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/findbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fontworkobjectbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fontworkshapetype.xml38
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formcontrols.xml25
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formdesign.xml31
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formsfilterbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formsnavigationbar.xml32
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formtextobjectbar.xml28
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/frameobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/graffilterbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/graphicobjectbar.xml26
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/insertbar.xml25
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/mediaobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/numobjectbar.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/oleobjectbar.xml30
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/optimizetablebar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/previewobjectbar.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/standardbar.xml45
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/tableobjectbar.xml35
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/textobjectbar.xml44
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/toolbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/viewerbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/menubar/menubar.xml454
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/statusbar/statusbar.xml14
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/alignmentbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/bezierobjectbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/colorbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawingobjectbar.xml40
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawtextobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/extrusionobjectbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fontworkobjectbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fontworkshapetype.xml38
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formcontrols.xml26
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formdesign.xml33
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formsfilterbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formsnavigationbar.xml33
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formtextobjectbar.xml28
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/frameobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/graffilterbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/graphicobjectbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/insertbar.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/insertobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/mediaobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/moreformcontrols.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/numobjectbar.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/oleobjectbar.xml30
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/optimizetablebar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/previewobjectbar.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/standardbar.xml42
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/tableobjectbar.xml35
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/textobjectbar.xml44
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/toolbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swform/toolbar/viewerbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/menubar/menubar.xml454
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/statusbar/statusbar.xml14
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/alignmentbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/bezierobjectbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/colorbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawingobjectbar.xml40
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawtextobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/extrusionobjectbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fontworkobjectbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fontworkshapetype.xml38
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formcontrols.xml26
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formdesign.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formsfilterbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formsnavigationbar.xml32
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formtextobjectbar.xml28
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/frameobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/graffilterbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/graphicobjectbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/insertbar.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/insertobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/mediaobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/moreformcontrols.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/numobjectbar.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/oleobjectbar.xml30
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/optimizetablebar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/previewobjectbar.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/standardbar.xml42
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/tableobjectbar.xml35
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/textobjectbar.xml44
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/toolbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/viewerbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/menubar/menubar.xml463
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/statusbar/statusbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/alignmentbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/bezierobjectbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/colorbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawingobjectbar.xml40
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawtextobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/extrusionobjectbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/findbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fontworkobjectbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fontworkshapetype.xml38
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formcontrols.xml26
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formdesign.xml33
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formsfilterbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formsnavigationbar.xml33
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formtextobjectbar.xml28
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/frameobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/graffilterbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/graphicobjectbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/insertbar.xml31
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/mediaobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/moreformcontrols.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/navigationobjectbar.xml6
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/numobjectbar.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/oleobjectbar.xml30
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/optimizetablebar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/previewobjectbar.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/standardbar.xml42
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/tableobjectbar.xml35
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/textobjectbar.xml44
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/toolbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/viewerbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/menubar/menubar.xml455
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/statusbar/statusbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/alignmentbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/arrowshapes.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/basicshapes.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/bezierobjectbar.xml20
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/calloutshapes.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/colorbar.xml15
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawingobjectbar.xml40
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawtextobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/extrusionobjectbar.xml16
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/findbar.xml9
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/flowchartshapes.xml36
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fontworkobjectbar.xml11
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fontworkshapetype.xml38
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formcontrols.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formdesign.xml33
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formsfilterbar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formsnavigationbar.xml33
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formtextobjectbar.xml28
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/frameobjectbar.xml34
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fullscreenbar.xml5
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/graffilterbar.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/graphicobjectbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/insertbar.xml29
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/insertobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/mediaobjectbar.xml7
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/moreformcontrols.xml12
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/numobjectbar.xml23
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/oleobjectbar.xml30
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/optimizetablebar.xml8
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/previewobjectbar.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/standardbar.xml42
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/starshapes.xml17
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/symbolshapes.xml24
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/tableobjectbar.xml35
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/textobjectbar.xml44
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/toolbar.xml13
-rw-r--r--test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/viewerbar.xml18
-rw-r--r--test/user-template/user/config/soffice.cfg/simpress/effects.xml2630
-rw-r--r--test/user-template/user/config/soffice.cfg/simpress/transitions-ogl.xml48
-rw-r--r--test/user-template/user/config/soffice.cfg/simpress/transitions.xml225
-rw-r--r--test/user-template/user/config/symbol/l_2people.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_attention1.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_attention2.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_attention3.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_candy.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_face.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_flower.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_ghost.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_halloween.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_home.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_lamp.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_lock.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_page_b.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_page_g.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_page_y.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_people.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_rose.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_save.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_smiley_1.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_smiley_oh.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_smiley_sad.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_snow.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/l_star.bmpbin0 -> 2136 bytes
-rw-r--r--test/user-template/user/config/symbol/s_arrow-1.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_arrow-2.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_arrow-3.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_arrow-4.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_attention1.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_attention2.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_attention3.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_ball-b.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_ball-g.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_ball-r.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_ball.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_bug.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_clover.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_egg.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_face.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_flower.bmpbin0 -> 344 bytes
-rw-r--r--test/user-template/user/config/symbol/s_ghost.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_group.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_halloween.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_heart.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_home.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_lock.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_ok-g.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_ok-r.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_ok.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_page_b.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_page_g.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_page_y.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_pen-b.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_pen-g.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_pen-r.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_people.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_smily_1.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_smily_oh.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_smily_sad.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_snow.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_star.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_team.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_x-g.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_x-r.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/symbol/s_x.bmpbin0 -> 824 bytes
-rw-r--r--test/user-template/user/config/webcast/common.inc110
-rw-r--r--test/user-template/user/config/webcast/common.pl48
-rw-r--r--test/user-template/user/config/webcast/edit.asp9
-rw-r--r--test/user-template/user/config/webcast/edit.pl18
-rw-r--r--test/user-template/user/config/webcast/editpic.asp58
-rw-r--r--test/user-template/user/config/webcast/editpic.pl40
-rw-r--r--test/user-template/user/config/webcast/index.pl17
-rw-r--r--test/user-template/user/config/webcast/poll.asp36
-rw-r--r--test/user-template/user/config/webcast/poll.pl32
-rw-r--r--test/user-template/user/config/webcast/savepic.asp39
-rw-r--r--test/user-template/user/config/webcast/savepic.pl41
-rw-r--r--test/user-template/user/config/webcast/show.asp42
-rw-r--r--test/user-template/user/config/webcast/show.pl39
-rw-r--r--test/user-template/user/config/webcast/webcast.asp28
-rw-r--r--test/user-template/user/config/webcast/webcast.pl21
-rw-r--r--test/user-template/user/config/wizard/form/styles/beige.css79
-rw-r--r--test/user-template/user/config/wizard/form/styles/bgr.css79
-rw-r--r--test/user-template/user/config/wizard/form/styles/dark.css79
-rw-r--r--test/user-template/user/config/wizard/form/styles/grey.css79
-rw-r--r--test/user-template/user/config/wizard/form/styles/ibg.css79
-rw-r--r--test/user-template/user/config/wizard/form/styles/ice.css79
-rw-r--r--test/user-template/user/config/wizard/form/styles/orange.css79
-rw-r--r--test/user-template/user/config/wizard/form/styles/red.css79
-rw-r--r--test/user-template/user/config/wizard/form/styles/violet.css79
-rw-r--r--test/user-template/user/config/wizard/form/styles/water.css79
-rw-r--r--test/user-template/user/config/wizard/web/buttons/glas-blue.zipbin0 -> 22010 bytes
-rw-r--r--test/user-template/user/config/wizard/web/buttons/glas-green.zipbin0 -> 25032 bytes
-rw-r--r--test/user-template/user/config/wizard/web/buttons/glas-red.zipbin0 -> 24325 bytes
-rw-r--r--test/user-template/user/config/wizard/web/buttons/round-gorilla.zipbin0 -> 19208 bytes
-rw-r--r--test/user-template/user/config/wizard/web/buttons/round-white.zipbin0 -> 10533 bytes
-rw-r--r--test/user-template/user/config/wizard/web/buttons/simple.zipbin0 -> 4046 bytes
-rw-r--r--test/user-template/user/config/wizard/web/buttons/square-blue.zipbin0 -> 15123 bytes
-rw-r--r--test/user-template/user/config/wizard/web/buttons/square-gray.zipbin0 -> 8919 bytes
-rw-r--r--test/user-template/user/config/wizard/web/buttons/square-green.zipbin0 -> 15750 bytes
-rw-r--r--test/user-template/user/config/wizard/web/buttons/square-red.zipbin0 -> 15319 bytes
-rw-r--r--test/user-template/user/config/wizard/web/buttons/square-yellow.zipbin0 -> 15185 bytes
-rw-r--r--test/user-template/user/config/wizard/web/images/calc.gifbin0 -> 961 bytes
-rw-r--r--test/user-template/user/config/wizard/web/images/draw.gifbin0 -> 1425 bytes
-rw-r--r--test/user-template/user/config/wizard/web/images/fls.gifbin0 -> 1488 bytes
-rw-r--r--test/user-template/user/config/wizard/web/images/graphics.gifbin0 -> 1533 bytes
-rw-r--r--test/user-template/user/config/wizard/web/images/html.gifbin0 -> 1366 bytes
-rw-r--r--test/user-template/user/config/wizard/web/images/impress.gifbin0 -> 1391 bytes
-rw-r--r--test/user-template/user/config/wizard/web/images/media.gifbin0 -> 1407 bytes
-rw-r--r--test/user-template/user/config/wizard/web/images/other.gifbin0 -> 1356 bytes
-rw-r--r--test/user-template/user/config/wizard/web/images/pdf.gifbin0 -> 1485 bytes
-rw-r--r--test/user-template/user/config/wizard/web/images/writer.gifbin0 -> 1353 bytes
-rw-r--r--test/user-template/user/config/wizard/web/layouts/diagonal/index.html.xsl104
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_bottom/index.html.xsl71
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_bottom/mainframe.html7
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_bottom/tocframe.html.xsl100
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_left/index.html.xsl71
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_left/mainframe.html7
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_left/tocframe.html.xsl96
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_right/index.html.xsl71
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_right/mainframe.html7
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_right/tocframe.html.xsl99
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_top/index.html.xsl71
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_top/mainframe.html7
-rw-r--r--test/user-template/user/config/wizard/web/layouts/frame_top/tocframe.html.xsl99
-rw-r--r--test/user-template/user/config/wizard/web/layouts/layout.xsl204
-rw-r--r--test/user-template/user/config/wizard/web/layouts/layoutF.xsl122
-rw-r--r--test/user-template/user/config/wizard/web/layouts/layoutX.xsl291
-rw-r--r--test/user-template/user/config/wizard/web/layouts/simple/index.html.xsl131
-rw-r--r--test/user-template/user/config/wizard/web/layouts/source.xml.xsl55
-rw-r--r--test/user-template/user/config/wizard/web/layouts/table_2/index.html.xsl185
-rw-r--r--test/user-template/user/config/wizard/web/layouts/table_3/index.html.xsl191
-rw-r--r--test/user-template/user/config/wizard/web/layouts/zigzag/index.html.xsl190
-rw-r--r--test/user-template/user/config/wizard/web/preview.html41
-rw-r--r--test/user-template/user/config/wizard/web/styles/beige.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/bg.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/bgr.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/bgrey.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/bwb.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/bwo.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/dark.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/dp.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/forest.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/green.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/greenred.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/grey.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/ibg.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/ice.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/marine.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/orange.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/pc_old.css91
-rw-r--r--test/user-template/user/config/wizard/web/styles/red.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/rgb.css91
-rw-r--r--test/user-template/user/config/wizard/web/styles/strange.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/violet.css79
-rw-r--r--test/user-template/user/config/wizard/web/styles/water.css79
-rw-r--r--test/user-template/user/dtd/math/1_01/w3c_ipr_software_notice.html105
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/Manifest.dtd58
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/accelerator.dtd44
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/chart.mod262
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/datastyl.mod208
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/defs.mod56
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/dialog.dtd405
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/drawing.mod861
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/dtypes.mod143
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/event.dtd45
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/form.mod366
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/groupuinames.dtd35
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/image.dtd67
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/libraries.dtd45
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/library.dtd44
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/menubar.dtd46
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/meta.mod90
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/module.dtd35
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/nmspace.mod53
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/office.dtd56
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/office.mod245
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/script.mod59
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/settings.mod49
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/statusbar.dtd48
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/style.mod427
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/table.mod496
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/text.mod1099
-rw-r--r--test/user-template/user/dtd/officedocument/1_0/toolbar.dtd67
-rw-r--r--test/user-template/user/fingerprint/afrikaans.lm400
-rw-r--r--test/user-template/user/fingerprint/albanian.lm400
-rw-r--r--test/user-template/user/fingerprint/amharic_utf.lm400
-rw-r--r--test/user-template/user/fingerprint/arabic.lm400
-rw-r--r--test/user-template/user/fingerprint/armenian.lm0
-rw-r--r--test/user-template/user/fingerprint/basque.lm400
-rw-r--r--test/user-template/user/fingerprint/belarus.lm400
-rw-r--r--test/user-template/user/fingerprint/bosnian.lm400
-rw-r--r--test/user-template/user/fingerprint/breton.lm400
-rw-r--r--test/user-template/user/fingerprint/catalan.lm400
-rw-r--r--test/user-template/user/fingerprint/chinese_simplified.lm400
-rw-r--r--test/user-template/user/fingerprint/chinese_traditional.lm400
-rw-r--r--test/user-template/user/fingerprint/croatian.lm400
-rw-r--r--test/user-template/user/fingerprint/czech.lm400
-rw-r--r--test/user-template/user/fingerprint/danish.lm400
-rw-r--r--test/user-template/user/fingerprint/drents.lm0
-rw-r--r--test/user-template/user/fingerprint/dutch.lm400
-rw-r--r--test/user-template/user/fingerprint/english.lm400
-rw-r--r--test/user-template/user/fingerprint/esperanto.lm400
-rw-r--r--test/user-template/user/fingerprint/estonian.lm400
-rw-r--r--test/user-template/user/fingerprint/finnish.lm400
-rw-r--r--test/user-template/user/fingerprint/fpdb.conf86
-rw-r--r--test/user-template/user/fingerprint/french.lm400
-rw-r--r--test/user-template/user/fingerprint/frisian.lm400
-rw-r--r--test/user-template/user/fingerprint/georgian.lm400
-rw-r--r--test/user-template/user/fingerprint/german.lm400
-rw-r--r--test/user-template/user/fingerprint/greek.lm400
-rw-r--r--test/user-template/user/fingerprint/hebrew.lm400
-rw-r--r--test/user-template/user/fingerprint/hindi.lm400
-rw-r--r--test/user-template/user/fingerprint/hungarian.lm400
-rw-r--r--test/user-template/user/fingerprint/icelandic.lm400
-rw-r--r--test/user-template/user/fingerprint/indonesian.lm400
-rw-r--r--test/user-template/user/fingerprint/irish_gaelic.lm400
-rw-r--r--test/user-template/user/fingerprint/italian.lm400
-rw-r--r--test/user-template/user/fingerprint/japanese.lm400
-rw-r--r--test/user-template/user/fingerprint/korean.lm400
-rw-r--r--test/user-template/user/fingerprint/latin.lm400
-rw-r--r--test/user-template/user/fingerprint/latvian.lm400
-rw-r--r--test/user-template/user/fingerprint/lithuanian.lm400
-rw-r--r--test/user-template/user/fingerprint/luxembourgish.lm400
-rw-r--r--test/user-template/user/fingerprint/malay.lm400
-rw-r--r--test/user-template/user/fingerprint/manx_gaelic.lm400
-rw-r--r--test/user-template/user/fingerprint/marathi.lm400
-rw-r--r--test/user-template/user/fingerprint/middle_frisian.lm400
-rw-r--r--test/user-template/user/fingerprint/mingo.lm400
-rw-r--r--test/user-template/user/fingerprint/mongolian_cyrillic.lm363
-rw-r--r--test/user-template/user/fingerprint/nepali.lm400
-rw-r--r--test/user-template/user/fingerprint/norwegian.lm400
-rw-r--r--test/user-template/user/fingerprint/persian.lm400
-rw-r--r--test/user-template/user/fingerprint/polish.lm400
-rw-r--r--test/user-template/user/fingerprint/portuguese.lm400
-rw-r--r--test/user-template/user/fingerprint/quechua.lm400
-rw-r--r--test/user-template/user/fingerprint/romanian.lm400
-rw-r--r--test/user-template/user/fingerprint/romansh.lm400
-rw-r--r--test/user-template/user/fingerprint/russian.lm400
-rw-r--r--test/user-template/user/fingerprint/sanskrit.lm400
-rw-r--r--test/user-template/user/fingerprint/scots.lm400
-rw-r--r--test/user-template/user/fingerprint/scots_gaelic.lm400
-rw-r--r--test/user-template/user/fingerprint/serbian-latin.lm400
-rw-r--r--test/user-template/user/fingerprint/serbian.lm400
-rw-r--r--test/user-template/user/fingerprint/slovak_ascii.lm400
-rw-r--r--test/user-template/user/fingerprint/slovenian.lm400
-rw-r--r--test/user-template/user/fingerprint/spanish.lm400
-rw-r--r--test/user-template/user/fingerprint/swahili.lm400
-rw-r--r--test/user-template/user/fingerprint/swedish.lm400
-rw-r--r--test/user-template/user/fingerprint/tagalog.lm400
-rw-r--r--test/user-template/user/fingerprint/tamil.lm400
-rw-r--r--test/user-template/user/fingerprint/thai.lm400
-rw-r--r--test/user-template/user/fingerprint/turkish.lm400
-rw-r--r--test/user-template/user/fingerprint/ukrainian.lm400
-rw-r--r--test/user-template/user/fingerprint/vietnamese.lm400
-rw-r--r--test/user-template/user/fingerprint/welsh.lm400
-rw-r--r--test/user-template/user/fingerprint/yiddish_utf.lm400
-rw-r--r--test/user-template/user/fingerprint/zulu.lm400
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSans-Bold.ttfbin0 -> 634184 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSans-BoldOblique.ttfbin0 -> 574636 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSans-ExtraLight.ttfbin0 -> 338436 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSans-Oblique.ttfbin0 -> 574456 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSans.ttfbin0 -> 683528 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSansCondensed-Bold.ttfbin0 -> 595416 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSansCondensed-BoldOblique.ttfbin0 -> 543704 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSansCondensed-Oblique.ttfbin0 -> 539024 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSansCondensed.ttfbin0 -> 605792 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSansMono-Bold.ttfbin0 -> 303644 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSansMono-BoldOblique.ttfbin0 -> 224936 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSansMono-Oblique.ttfbin0 -> 231000 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSansMono.ttfbin0 -> 323288 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSerif-Bold.ttfbin0 -> 315052 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSerif-BoldItalic.ttfbin0 -> 302940 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSerif-Italic.ttfbin0 -> 310604 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSerif.ttfbin0 -> 337444 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSerifCondensed-Bold.ttfbin0 -> 290556 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSerifCondensed-BoldItalic.ttfbin0 -> 302120 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSerifCondensed-Italic.ttfbin0 -> 310024 bytes
-rw-r--r--test/user-template/user/fonts/truetype/DejaVuSerifCondensed.ttfbin0 -> 304328 bytes
-rw-r--r--test/user-template/user/fonts/truetype/GenBasB.ttfbin0 -> 271648 bytes
-rw-r--r--test/user-template/user/fonts/truetype/GenBasBI.ttfbin0 -> 250668 bytes
-rw-r--r--test/user-template/user/fonts/truetype/GenBasI.ttfbin0 -> 263504 bytes
-rw-r--r--test/user-template/user/fonts/truetype/GenBasR.ttfbin0 -> 269048 bytes
-rw-r--r--test/user-template/user/fonts/truetype/GenBkBasB.ttfbin0 -> 271832 bytes
-rw-r--r--test/user-template/user/fonts/truetype/GenBkBasBI.ttfbin0 -> 249924 bytes
-rw-r--r--test/user-template/user/fonts/truetype/GenBkBasI.ttfbin0 -> 266156 bytes
-rw-r--r--test/user-template/user/fonts/truetype/GenBkBasR.ttfbin0 -> 272460 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationMono-Bold.ttfbin0 -> 105308 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationMono-BoldItalic.ttfbin0 -> 118144 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationMono-Italic.ttfbin0 -> 124064 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationMono-Regular.ttfbin0 -> 108020 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSans-Bold.ttfbin0 -> 136536 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSans-BoldItalic.ttfbin0 -> 134444 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSans-Italic.ttfbin0 -> 161356 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSans-Regular.ttfbin0 -> 138908 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSansNarrow-Bold.ttfbin0 -> 109820 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSansNarrow-BoldItalic.ttfbin0 -> 127588 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSansNarrow-Italic.ttfbin0 -> 131592 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSansNarrow-Regular.ttfbin0 -> 112592 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSerif-Bold.ttfbin0 -> 146532 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSerif-BoldItalic.ttfbin0 -> 150200 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSerif-Italic.ttfbin0 -> 143816 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LiberationSerif-Regular.ttfbin0 -> 151868 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LinBiolinumG_Bd.ttfbin0 -> 1331064 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LinBiolinumG_It.ttfbin0 -> 1397740 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LinBiolinumG_Re.ttfbin0 -> 1310368 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LinLibertineG_BI.ttfbin0 -> 1260528 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LinLibertineG_Bd.ttfbin0 -> 1345164 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LinLibertineG_It.ttfbin0 -> 1411160 bytes
-rw-r--r--test/user-template/user/fonts/truetype/LinLibertineG_Re.ttfbin0 -> 1517128 bytes
-rw-r--r--test/user-template/user/fonts/truetype/fc_local.conf24
-rw-r--r--test/user-template/user/fonts/truetype/opens___.ttfbin0 -> 206612 bytes
-rw-r--r--test/user-template/user/gallery/apples.gifbin0 -> 6197 bytes
-rw-r--r--test/user-template/user/gallery/bigapple.gifbin0 -> 35287 bytes
-rw-r--r--test/user-template/user/gallery/bullets/blkpearl.gifbin0 -> 929 bytes
-rw-r--r--test/user-template/user/gallery/bullets/bluarrow.gifbin0 -> 93 bytes
-rw-r--r--test/user-template/user/gallery/bullets/bluball.gifbin0 -> 103 bytes
-rw-r--r--test/user-template/user/gallery/bullets/bludiamd.gifbin0 -> 111 bytes
-rw-r--r--test/user-template/user/gallery/bullets/bluered.gifbin0 -> 507 bytes
-rw-r--r--test/user-template/user/gallery/bullets/blusqare.gifbin0 -> 96 bytes
-rw-r--r--test/user-template/user/gallery/bullets/blustar.gifbin0 -> 146 bytes
-rw-r--r--test/user-template/user/gallery/bullets/coffee_1.gifbin0 -> 644 bytes
-rw-r--r--test/user-template/user/gallery/bullets/coffee_2.gifbin0 -> 656 bytes
-rw-r--r--test/user-template/user/gallery/bullets/coffee_3.gifbin0 -> 625 bytes
-rw-r--r--test/user-template/user/gallery/bullets/coffee_4.gifbin0 -> 605 bytes
-rw-r--r--test/user-template/user/gallery/bullets/coffee_5.gifbin0 -> 671 bytes
-rw-r--r--test/user-template/user/gallery/bullets/con-blue.gifbin0 -> 594 bytes
-rw-r--r--test/user-template/user/gallery/bullets/con-cyan.gifbin0 -> 614 bytes
-rw-r--r--test/user-template/user/gallery/bullets/con-green.gifbin0 -> 393 bytes
-rw-r--r--test/user-template/user/gallery/bullets/con-lilac.gifbin0 -> 600 bytes
-rw-r--r--test/user-template/user/gallery/bullets/con-oran.gifbin0 -> 594 bytes
-rw-r--r--test/user-template/user/gallery/bullets/con-pink.gifbin0 -> 394 bytes
-rw-r--r--test/user-template/user/gallery/bullets/con-red.gifbin0 -> 388 bytes
-rw-r--r--test/user-template/user/gallery/bullets/con-yellow.gifbin0 -> 375 bytes
-rw-r--r--test/user-template/user/gallery/bullets/corner_1.gifbin0 -> 399 bytes
-rw-r--r--test/user-template/user/gallery/bullets/corner_2.gifbin0 -> 399 bytes
-rw-r--r--test/user-template/user/gallery/bullets/corner_3.gifbin0 -> 402 bytes
-rw-r--r--test/user-template/user/gallery/bullets/corner_4.gifbin0 -> 408 bytes
-rw-r--r--test/user-template/user/gallery/bullets/darkball.gifbin0 -> 924 bytes
-rw-r--r--test/user-template/user/gallery/bullets/darkblue.gifbin0 -> 527 bytes
-rw-r--r--test/user-template/user/gallery/bullets/gldpearl.gifbin0 -> 929 bytes
-rw-r--r--test/user-template/user/gallery/bullets/golfball.gifbin0 -> 960 bytes
-rw-r--r--test/user-template/user/gallery/bullets/grnarrow.gifbin0 -> 94 bytes
-rw-r--r--test/user-template/user/gallery/bullets/grnball.gifbin0 -> 101 bytes
-rw-r--r--test/user-template/user/gallery/bullets/grndiamd.gifbin0 -> 111 bytes
-rw-r--r--test/user-template/user/gallery/bullets/grnpearl.gifbin0 -> 935 bytes
-rw-r--r--test/user-template/user/gallery/bullets/grnsqare.gifbin0 -> 97 bytes
-rw-r--r--test/user-template/user/gallery/bullets/grnstar.gifbin0 -> 144 bytes
-rw-r--r--test/user-template/user/gallery/bullets/gryarrow.gifbin0 -> 94 bytes
-rw-r--r--test/user-template/user/gallery/bullets/gryball.gifbin0 -> 103 bytes
-rw-r--r--test/user-template/user/gallery/bullets/grydiamd.gifbin0 -> 113 bytes
-rw-r--r--test/user-template/user/gallery/bullets/grysqare.gifbin0 -> 98 bytes
-rw-r--r--test/user-template/user/gallery/bullets/grystar.gifbin0 -> 144 bytes
-rw-r--r--test/user-template/user/gallery/bullets/orgarrow.gifbin0 -> 96 bytes
-rw-r--r--test/user-template/user/gallery/bullets/orgball.gifbin0 -> 104 bytes
-rw-r--r--test/user-template/user/gallery/bullets/orgdiamd.gifbin0 -> 149 bytes
-rw-r--r--test/user-template/user/gallery/bullets/orgsqare.gifbin0 -> 99 bytes
-rw-r--r--test/user-template/user/gallery/bullets/orgstar.gifbin0 -> 143 bytes
-rw-r--r--test/user-template/user/gallery/bullets/pebble_1.gifbin0 -> 434 bytes
-rw-r--r--test/user-template/user/gallery/bullets/pebble_2.gifbin0 -> 460 bytes
-rw-r--r--test/user-template/user/gallery/bullets/pebble_3.gifbin0 -> 463 bytes
-rw-r--r--test/user-template/user/gallery/bullets/poliball.gifbin0 -> 945 bytes
-rw-r--r--test/user-template/user/gallery/bullets/popcorn_1.gifbin0 -> 1005 bytes
-rw-r--r--test/user-template/user/gallery/bullets/popcorn_2.gifbin0 -> 1249 bytes
-rw-r--r--test/user-template/user/gallery/bullets/rainbow.gifbin0 -> 527 bytes
-rw-r--r--test/user-template/user/gallery/bullets/redarrow.gifbin0 -> 97 bytes
-rw-r--r--test/user-template/user/gallery/bullets/redball.gifbin0 -> 103 bytes
-rw-r--r--test/user-template/user/gallery/bullets/reddiamd.gifbin0 -> 111 bytes
-rw-r--r--test/user-template/user/gallery/bullets/redsqare.gifbin0 -> 97 bytes
-rw-r--r--test/user-template/user/gallery/bullets/redstar.gifbin0 -> 145 bytes
-rw-r--r--test/user-template/user/gallery/bullets/whtpearl.gifbin0 -> 931 bytes
-rw-r--r--test/user-template/user/gallery/bullets/ylwarrow.gifbin0 -> 126 bytes
-rw-r--r--test/user-template/user/gallery/bullets/ylwball.gifbin0 -> 133 bytes
-rw-r--r--test/user-template/user/gallery/bullets/ylwdiamd.gifbin0 -> 145 bytes
-rw-r--r--test/user-template/user/gallery/bullets/ylwsqare.gifbin0 -> 96 bytes
-rw-r--r--test/user-template/user/gallery/bullets/ylwstar.gifbin0 -> 145 bytes
-rw-r--r--test/user-template/user/gallery/flower.gifbin0 -> 6073 bytes
-rw-r--r--test/user-template/user/gallery/flowers.gifbin0 -> 9333 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/bludown.gifbin0 -> 873 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/blufirs.gifbin0 -> 906 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/blufirs_.gifbin0 -> 884 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/blulast.gifbin0 -> 909 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/blulast_.gifbin0 -> 898 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/blunav.gifbin0 -> 1441 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/blunext.gifbin0 -> 886 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/blunext_.gifbin0 -> 841 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/bluprev.gifbin0 -> 893 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/bluprev_.gifbin0 -> 841 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/blutext.gifbin0 -> 1390 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/bluup.gifbin0 -> 874 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cubdown.gifbin0 -> 1628 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cubfirs.gifbin0 -> 1704 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cubfirs_.gifbin0 -> 1320 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cublast.gifbin0 -> 1712 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cublast_.gifbin0 -> 1282 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cubnav.gifbin0 -> 1719 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cubnext.gifbin0 -> 1651 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cubnext_.gifbin0 -> 1244 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cubprev.gifbin0 -> 1648 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cubprev_.gifbin0 -> 1239 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cubtext.gifbin0 -> 1687 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/cubup.gifbin0 -> 1646 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/gredown.gifbin0 -> 1360 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/grefirs.gifbin0 -> 1517 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/grefirs_.gifbin0 -> 1442 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/grelast.gifbin0 -> 1457 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/grelast_.gifbin0 -> 1290 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/grenav.gifbin0 -> 1582 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/grenext.gifbin0 -> 1372 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/grenext_.gifbin0 -> 1184 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/greprev.gifbin0 -> 1370 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/greprev_.gifbin0 -> 1180 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/gretext.gifbin0 -> 1433 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/greup.gifbin0 -> 1365 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simdown.gifbin0 -> 439 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simfirs.gifbin0 -> 477 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simfirs_.gifbin0 -> 477 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simlast.gifbin0 -> 483 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simlast_.gifbin0 -> 624 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simnav.gifbin0 -> 483 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simnext.gifbin0 -> 448 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simnext_.gifbin0 -> 445 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simprev.gifbin0 -> 444 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simprev_.gifbin0 -> 446 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simtext.gifbin0 -> 646 bytes
-rw-r--r--test/user-template/user/gallery/htmlexpo/simup.gifbin0 -> 439 bytes
-rw-r--r--test/user-template/user/gallery/rulers/blkballs.gifbin0 -> 2272 bytes
-rw-r--r--test/user-template/user/gallery/rulers/blurulr1.gifbin0 -> 6583 bytes
-rw-r--r--test/user-template/user/gallery/rulers/blurulr2.gifbin0 -> 2965 bytes
-rw-r--r--test/user-template/user/gallery/rulers/blurulr3.gifbin0 -> 2011 bytes
-rw-r--r--test/user-template/user/gallery/rulers/blurulr4.gifbin0 -> 2561 bytes
-rw-r--r--test/user-template/user/gallery/rulers/blurulr5.gifbin0 -> 5708 bytes
-rw-r--r--test/user-template/user/gallery/rulers/blurulr6.gifbin0 -> 1878 bytes
-rw-r--r--test/user-template/user/gallery/rulers/gldballs.gifbin0 -> 2240 bytes
-rw-r--r--test/user-template/user/gallery/rulers/grnballs.gifbin0 -> 3702 bytes
-rw-r--r--test/user-template/user/gallery/rulers/grnrulr1.gifbin0 -> 2409 bytes
-rw-r--r--test/user-template/user/gallery/rulers/grnrulr2.gifbin0 -> 2759 bytes
-rw-r--r--test/user-template/user/gallery/rulers/grnrulr3.gifbin0 -> 2599 bytes
-rw-r--r--test/user-template/user/gallery/rulers/grnrulr4.gifbin0 -> 3172 bytes
-rw-r--r--test/user-template/user/gallery/rulers/gryrulr1.gifbin0 -> 2144 bytes
-rw-r--r--test/user-template/user/gallery/rulers/gryrulr2.gifbin0 -> 3014 bytes
-rw-r--r--test/user-template/user/gallery/rulers/gryrulr3.gifbin0 -> 1479 bytes
-rw-r--r--test/user-template/user/gallery/rulers/orgrulr1.gifbin0 -> 2667 bytes
-rw-r--r--test/user-template/user/gallery/rulers/redrulr1.gifbin0 -> 2138 bytes
-rw-r--r--test/user-template/user/gallery/rulers/redrulr2.gifbin0 -> 2037 bytes
-rw-r--r--test/user-template/user/gallery/rulers/redrulr3.gifbin0 -> 2192 bytes
-rw-r--r--test/user-template/user/gallery/rulers/redrulr4.gifbin0 -> 2089 bytes
-rw-r--r--test/user-template/user/gallery/rulers/redrulr5.gifbin0 -> 1343 bytes
-rw-r--r--test/user-template/user/gallery/rulers/striped.gifbin0 -> 1553 bytes
-rw-r--r--test/user-template/user/gallery/rulers/whtballs.gifbin0 -> 3616 bytes
-rw-r--r--test/user-template/user/gallery/rulers/ylwrulr1.gifbin0 -> 2667 bytes
-rw-r--r--test/user-template/user/gallery/sg1.sdgbin0 -> 29872 bytes
-rw-r--r--test/user-template/user/gallery/sg1.sdvbin0 -> 2048 bytes
-rw-r--r--test/user-template/user/gallery/sg1.thmbin0 -> 2432 bytes
-rw-r--r--test/user-template/user/gallery/sg2.sdgbin0 -> 25785 bytes
-rw-r--r--test/user-template/user/gallery/sg2.sdvbin0 -> 2048 bytes
-rw-r--r--test/user-template/user/gallery/sg2.thmbin0 -> 1266 bytes
-rw-r--r--test/user-template/user/gallery/sg24.sdgbin0 -> 45875 bytes
-rw-r--r--test/user-template/user/gallery/sg24.sdvbin0 -> 369664 bytes
-rw-r--r--test/user-template/user/gallery/sg24.thmbin0 -> 1236 bytes
-rw-r--r--test/user-template/user/gallery/sg25.sdgbin0 -> 55650 bytes
-rw-r--r--test/user-template/user/gallery/sg25.sdvbin0 -> 2048 bytes
-rw-r--r--test/user-template/user/gallery/sg25.thmbin0 -> 2016 bytes
-rw-r--r--test/user-template/user/gallery/sg3.sdgbin0 -> 270058 bytes
-rw-r--r--test/user-template/user/gallery/sg3.sdvbin0 -> 2048 bytes
-rw-r--r--test/user-template/user/gallery/sg3.thmbin0 -> 2503 bytes
-rw-r--r--test/user-template/user/gallery/sg36.sdgbin0 -> 65354 bytes
-rw-r--r--test/user-template/user/gallery/sg36.sdvbin0 -> 589312 bytes
-rw-r--r--test/user-template/user/gallery/sg36.thmbin0 -> 1163 bytes
-rw-r--r--test/user-template/user/gallery/sg4.sdgbin0 -> 60533 bytes
-rw-r--r--test/user-template/user/gallery/sg4.sdvbin0 -> 2048 bytes
-rw-r--r--test/user-template/user/gallery/sg4.thmbin0 -> 3323 bytes
-rw-r--r--test/user-template/user/gallery/sg9.sdgbin0 -> 5331 bytes
-rw-r--r--test/user-template/user/gallery/sg9.sdvbin0 -> 2048 bytes
-rw-r--r--test/user-template/user/gallery/sg9.thmbin0 -> 1458 bytes
-rw-r--r--test/user-template/user/gallery/sky.gifbin0 -> 7517 bytes
-rw-r--r--test/user-template/user/gallery/sounds/apert.wavbin0 -> 47760 bytes
-rw-r--r--test/user-template/user/gallery/sounds/apert2.wavbin0 -> 60904 bytes
-rw-r--r--test/user-template/user/gallery/sounds/applause.wavbin0 -> 90472 bytes
-rw-r--r--test/user-template/user/gallery/sounds/beam.wavbin0 -> 43728 bytes
-rw-r--r--test/user-template/user/gallery/sounds/beam2.wavbin0 -> 73456 bytes
-rw-r--r--test/user-template/user/gallery/sounds/cow.wavbin0 -> 37546 bytes
-rw-r--r--test/user-template/user/gallery/sounds/curve.wavbin0 -> 134660 bytes
-rw-r--r--test/user-template/user/gallery/sounds/drama.wavbin0 -> 162366 bytes
-rw-r--r--test/user-template/user/gallery/sounds/explos.wavbin0 -> 47532 bytes
-rw-r--r--test/user-template/user/gallery/sounds/falling.wavbin0 -> 87008 bytes
-rw-r--r--test/user-template/user/gallery/sounds/glasses.wavbin0 -> 36270 bytes
-rw-r--r--test/user-template/user/gallery/sounds/gong.wavbin0 -> 191292 bytes
-rw-r--r--test/user-template/user/gallery/sounds/horse.wavbin0 -> 41958 bytes
-rw-r--r--test/user-template/user/gallery/sounds/kling.wavbin0 -> 46376 bytes
-rw-r--r--test/user-template/user/gallery/sounds/kongas.wavbin0 -> 54866 bytes
-rw-r--r--test/user-template/user/gallery/sounds/laser.wavbin0 -> 8408 bytes
-rw-r--r--test/user-template/user/gallery/sounds/left.wavbin0 -> 29788 bytes
-rw-r--r--test/user-template/user/gallery/sounds/nature1.wavbin0 -> 83102 bytes
-rw-r--r--test/user-template/user/gallery/sounds/nature2.wavbin0 -> 37164 bytes
-rw-r--r--test/user-template/user/gallery/sounds/ok.wavbin0 -> 8862 bytes
-rw-r--r--test/user-template/user/gallery/sounds/pluck.wavbin0 -> 28510 bytes
-rw-r--r--test/user-template/user/gallery/sounds/roll.wavbin0 -> 242648 bytes
-rw-r--r--test/user-template/user/gallery/sounds/romans.wavbin0 -> 90466 bytes
-rw-r--r--test/user-template/user/gallery/sounds/soft.wavbin0 -> 185752 bytes
-rw-r--r--test/user-template/user/gallery/sounds/space.wavbin0 -> 133758 bytes
-rw-r--r--test/user-template/user/gallery/sounds/space2.wavbin0 -> 192686 bytes
-rw-r--r--test/user-template/user/gallery/sounds/space3.wavbin0 -> 144748 bytes
-rw-r--r--test/user-template/user/gallery/sounds/sparcle.wavbin0 -> 65580 bytes
-rw-r--r--test/user-template/user/gallery/sounds/strom.wavbin0 -> 85106 bytes
-rw-r--r--test/user-template/user/gallery/sounds/theetone.wavbin0 -> 49506 bytes
-rw-r--r--test/user-template/user/gallery/sounds/top.wavbin0 -> 69242 bytes
-rw-r--r--test/user-template/user/gallery/sounds/train.wavbin0 -> 56716 bytes
-rw-r--r--test/user-template/user/gallery/sounds/untie.wavbin0 -> 190884 bytes
-rw-r--r--test/user-template/user/gallery/sounds/ups.wavbin0 -> 28682 bytes
-rw-r--r--test/user-template/user/gallery/sounds/wallewal.wavbin0 -> 104018 bytes
-rw-r--r--test/user-template/user/gallery/www-back/aqua.jpgbin0 -> 5511 bytes
-rw-r--r--test/user-template/user/gallery/www-back/bathroom.jpgbin0 -> 4473 bytes
-rw-r--r--test/user-template/user/gallery/www-back/blocks.jpgbin0 -> 5664 bytes
-rw-r--r--test/user-template/user/gallery/www-back/blow_green.jpgbin0 -> 3159 bytes
-rw-r--r--test/user-template/user/gallery/www-back/blueblop.jpgbin0 -> 4469 bytes
-rw-r--r--test/user-template/user/gallery/www-back/bulging.jpgbin0 -> 4523 bytes
-rw-r--r--test/user-template/user/gallery/www-back/canvas_blue.jpgbin0 -> 5961 bytes
-rw-r--r--test/user-template/user/gallery/www-back/cheese.jpgbin0 -> 3029 bytes
-rw-r--r--test/user-template/user/gallery/www-back/chocolate.jpgbin0 -> 4316 bytes
-rw-r--r--test/user-template/user/gallery/www-back/citrus.jpgbin0 -> 7669 bytes
-rw-r--r--test/user-template/user/gallery/www-back/confetti.jpgbin0 -> 11733 bytes
-rw-r--r--test/user-template/user/gallery/www-back/daisy.jpgbin0 -> 8197 bytes
-rw-r--r--test/user-template/user/gallery/www-back/fluffy-grey.jpgbin0 -> 4314 bytes
-rw-r--r--test/user-template/user/gallery/www-back/fluffy.jpgbin0 -> 6890 bytes
-rw-r--r--test/user-template/user/gallery/www-back/fuzzy-blue.jpgbin0 -> 11472 bytes
-rw-r--r--test/user-template/user/gallery/www-back/fuzzy-darkgrey.jpgbin0 -> 7293 bytes
-rw-r--r--test/user-template/user/gallery/www-back/fuzzy-grey.jpgbin0 -> 6340 bytes
-rw-r--r--test/user-template/user/gallery/www-back/fuzzy-lightgrey.jpgbin0 -> 4321 bytes
-rw-r--r--test/user-template/user/gallery/www-back/fuzzy_light.jpgbin0 -> 4880 bytes
-rw-r--r--test/user-template/user/gallery/www-back/gregre.gifbin0 -> 2326 bytes
-rw-r--r--test/user-template/user/gallery/www-back/grey.gifbin0 -> 8529 bytes
-rw-r--r--test/user-template/user/gallery/www-back/grypaws.gifbin0 -> 3537 bytes
-rw-r--r--test/user-template/user/gallery/www-back/ice-blue.jpgbin0 -> 4675 bytes
-rw-r--r--test/user-template/user/gallery/www-back/ice-light.jpgbin0 -> 3182 bytes
-rw-r--r--test/user-template/user/gallery/www-back/imitation_leather.jpgbin0 -> 4207 bytes
-rw-r--r--test/user-template/user/gallery/www-back/interstices.jpgbin0 -> 3964 bytes
-rw-r--r--test/user-template/user/gallery/www-back/jeans.jpgbin0 -> 7002 bytes
-rw-r--r--test/user-template/user/gallery/www-back/jeansblk.jpgbin0 -> 5436 bytes
-rw-r--r--test/user-template/user/gallery/www-back/lawn-artificial.jpgbin0 -> 13522 bytes
-rw-r--r--test/user-template/user/gallery/www-back/lawn.jpgbin0 -> 11635 bytes
-rw-r--r--test/user-template/user/gallery/www-back/lightblue-wet.jpgbin0 -> 5235 bytes
-rw-r--r--test/user-template/user/gallery/www-back/linen-fine.jpgbin0 -> 5580 bytes
-rw-r--r--test/user-template/user/gallery/www-back/lino-green.jpgbin0 -> 6275 bytes
-rw-r--r--test/user-template/user/gallery/www-back/liquid-blue.jpgbin0 -> 3497 bytes
-rw-r--r--test/user-template/user/gallery/www-back/marble.jpgbin0 -> 4161 bytes
-rw-r--r--test/user-template/user/gallery/www-back/marble_dark.jpgbin0 -> 6805 bytes
-rw-r--r--test/user-template/user/gallery/www-back/mazes.jpgbin0 -> 9817 bytes
-rw-r--r--test/user-template/user/gallery/www-back/mint.gifbin0 -> 4469 bytes
-rw-r--r--test/user-template/user/gallery/www-back/notes.gifbin0 -> 1429 bytes
-rw-r--r--test/user-template/user/gallery/www-back/pattern.jpgbin0 -> 13299 bytes
-rw-r--r--test/user-template/user/gallery/www-back/pebble-light.jpgbin0 -> 5816 bytes
-rw-r--r--test/user-template/user/gallery/www-back/pink.gifbin0 -> 4687 bytes
-rw-r--r--test/user-template/user/gallery/www-back/pool.jpgbin0 -> 6005 bytes
-rw-r--r--test/user-template/user/gallery/www-back/popcorn.jpgbin0 -> 12694 bytes
-rw-r--r--test/user-template/user/gallery/www-back/purple.jpgbin0 -> 4257 bytes
-rw-r--r--test/user-template/user/gallery/www-back/reddark.jpgbin0 -> 4968 bytes
-rw-r--r--test/user-template/user/gallery/www-back/rings-green.jpgbin0 -> 5094 bytes
-rw-r--r--test/user-template/user/gallery/www-back/rings-orange.jpgbin0 -> 6445 bytes
-rw-r--r--test/user-template/user/gallery/www-back/roses.jpgbin0 -> 8323 bytes
-rw-r--r--test/user-template/user/gallery/www-back/sand-light.jpgbin0 -> 4049 bytes
-rw-r--r--test/user-template/user/gallery/www-back/sand.jpgbin0 -> 5402 bytes
-rw-r--r--test/user-template/user/gallery/www-back/sky.jpgbin0 -> 1969 bytes
-rw-r--r--test/user-template/user/gallery/www-back/soft-structure_grey.jpgbin0 -> 4818 bytes
-rw-r--r--test/user-template/user/gallery/www-back/space.jpgbin0 -> 3011 bytes
-rw-r--r--test/user-template/user/gallery/www-back/stone-dark.jpgbin0 -> 6351 bytes
-rw-r--r--test/user-template/user/gallery/www-back/stone.jpgbin0 -> 7011 bytes
-rw-r--r--test/user-template/user/gallery/www-back/structure.jpgbin0 -> 3834 bytes
-rw-r--r--test/user-template/user/gallery/www-back/structure_darkgreen.gifbin0 -> 3782 bytes
-rw-r--r--test/user-template/user/gallery/www-back/structure_green.jpgbin0 -> 4035 bytes
-rw-r--r--test/user-template/user/gallery/www-back/wall-grey.jpgbin0 -> 5414 bytes
-rw-r--r--test/user-template/user/gallery/www-back/wet-turquoise.jpgbin0 -> 3119 bytes
-rw-r--r--test/user-template/user/gallery/www-back/wood.jpgbin0 -> 10382 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bluat.gifbin0 -> 1330 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bluback.gifbin0 -> 1016 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bludisk.gifbin0 -> 1016 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bludown.gifbin0 -> 1010 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bluhome.gifbin0 -> 1031 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bluinfo.gifbin0 -> 1000 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bluleft.gifbin0 -> 1017 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/blumail.gifbin0 -> 1017 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bluminus.gifbin0 -> 989 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bluplus.gifbin0 -> 1009 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bluquest.gifbin0 -> 1041 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bluright.gifbin0 -> 1020 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/bluup.gifbin0 -> 1011 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gredisk.gifbin0 -> 1016 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gredown.gifbin0 -> 1010 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grehome.gifbin0 -> 1031 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/greinfo.gifbin0 -> 1000 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/greleft.gifbin0 -> 1017 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gremail.gifbin0 -> 1017 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/greminus.gifbin0 -> 989 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/greplus.gifbin0 -> 1009 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grequest.gifbin0 -> 1041 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/greright.gifbin0 -> 1020 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/greup.gifbin0 -> 1011 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnat.gifbin0 -> 1264 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnback.gifbin0 -> 1073 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grndisk.gifbin0 -> 1219 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grndown.gifbin0 -> 1231 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnexcla.gifbin0 -> 1206 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnhome.gifbin0 -> 872 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grninfo.gifbin0 -> 1200 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnleft.gifbin0 -> 1227 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnmail.gifbin0 -> 1222 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnminus.gifbin0 -> 1187 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnplus.gifbin0 -> 1204 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnquest.gifbin0 -> 1226 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnright.gifbin0 -> 1201 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grnup.gifbin0 -> 1220 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gryat.gifbin0 -> 1052 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gryback.gifbin0 -> 1032 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grydisk.gifbin0 -> 1044 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grydown.gifbin0 -> 1022 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gryhome.gifbin0 -> 1050 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gryinfo.gifbin0 -> 1017 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gryleft.gifbin0 -> 1030 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/grymail.gifbin0 -> 1036 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gryminus.gifbin0 -> 1012 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gryplus.gifbin0 -> 1030 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gryquest.gifbin0 -> 1023 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gryright.gifbin0 -> 1033 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/gryup.gifbin0 -> 1027 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/men@work.gifbin0 -> 1287 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgat.gifbin0 -> 606 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgback.gifbin0 -> 1259 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgdisk.gifbin0 -> 421 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgdown.gifbin0 -> 560 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orghome.gifbin0 -> 808 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orginfo.gifbin0 -> 341 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgleft.gifbin0 -> 285 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgmail.gifbin0 -> 517 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgminus.gifbin0 -> 272 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgplus.gifbin0 -> 289 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgquest.gifbin0 -> 281 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgright.gifbin0 -> 293 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/orgup.gifbin0 -> 1042 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redat.gifbin0 -> 1413 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redback.gifbin0 -> 1040 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/reddisk.gifbin0 -> 1019 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/reddown.gifbin0 -> 1015 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redhome.gifbin0 -> 1032 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redinfo.gifbin0 -> 1002 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redleft.gifbin0 -> 1018 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redmail.gifbin0 -> 1018 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redminus.gifbin0 -> 993 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redplus.gifbin0 -> 1015 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redquest.gifbin0 -> 1045 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redright.gifbin0 -> 1019 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/redup.gifbin0 -> 1015 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/turdown.gifbin0 -> 669 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/turhome.gifbin0 -> 474 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/turleft.gifbin0 -> 663 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/turright.gifbin0 -> 667 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/turup.gifbin0 -> 663 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/viohome.gifbin0 -> 249 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/violeft.gifbin0 -> 236 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/vioright.gifbin0 -> 238 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/vioup.gifbin0 -> 230 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/ylwdown.gifbin0 -> 149 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/ylwhome.gifbin0 -> 221 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/ylwleft.gifbin0 -> 177 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/ylwmail.gifbin0 -> 208 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/ylwright.gifbin0 -> 177 bytes
-rw-r--r--test/user-template/user/gallery/www-graf/ylwup.gifbin0 -> 150 bytes
-rw-r--r--test/user-template/user/psprint/driver/SGENPRT.PS589
-rw-r--r--test/user-template/user/psprint/driver/SGENT42.PS29
-rw-r--r--test/user-template/user/psprint/fontmetric/Courier-Bold.afm340
-rw-r--r--test/user-template/user/psprint/fontmetric/Courier-BoldOblique.afm340
-rw-r--r--test/user-template/user/psprint/fontmetric/Courier-Oblique.afm340
-rw-r--r--test/user-template/user/psprint/fontmetric/Courier.afm340
-rw-r--r--test/user-template/user/psprint/fontmetric/Helvetica-Bold.afm2825
-rw-r--r--test/user-template/user/psprint/fontmetric/Helvetica-BoldOblique.afm2825
-rw-r--r--test/user-template/user/psprint/fontmetric/Helvetica-Oblique.afm3049
-rw-r--r--test/user-template/user/psprint/fontmetric/Helvetica.afm3049
-rw-r--r--test/user-template/user/psprint/fontmetric/ITCAvantGarde-Book.afm1266
-rw-r--r--test/user-template/user/psprint/fontmetric/ITCAvantGarde-BookOblique.afm1266
-rw-r--r--test/user-template/user/psprint/fontmetric/ITCAvantGarde-Demi.afm1277
-rw-r--r--test/user-template/user/psprint/fontmetric/ITCAvantGarde-DemiOblique.afm1277
-rw-r--r--test/user-template/user/psprint/fontmetric/ITCBookman-Demi.afm1256
-rw-r--r--test/user-template/user/psprint/fontmetric/ITCBookman-DemiItalic.afm1275
-rw-r--r--test/user-template/user/psprint/fontmetric/ITCBookman-Light.afm1226
-rw-r--r--test/user-template/user/psprint/fontmetric/ITCBookman-LightItalic.afm1172
-rw-r--r--test/user-template/user/psprint/fontmetric/ITCZapfChancery-MediumItalic.afm1551
-rw-r--r--test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Bold.afm1549
-rw-r--r--test/user-template/user/psprint/fontmetric/NewCenturySchlbk-BoldItalic.afm2997
-rw-r--r--test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Italic.afm2040
-rw-r--r--test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Roman.afm1824
-rw-r--r--test/user-template/user/psprint/fontmetric/Palatino-Bold.afm1172
-rw-r--r--test/user-template/user/psprint/fontmetric/Palatino-BoldItalic.afm1316
-rw-r--r--test/user-template/user/psprint/fontmetric/Palatino-Italic.afm1306
-rw-r--r--test/user-template/user/psprint/fontmetric/Palatino-Roman.afm1375
-rw-r--r--test/user-template/user/psprint/fontmetric/Symbol.afm212
-rw-r--r--test/user-template/user/psprint/fontmetric/Times-Bold.afm2586
-rw-r--r--test/user-template/user/psprint/fontmetric/Times-BoldItalic.afm2382
-rw-r--r--test/user-template/user/psprint/fontmetric/Times-Italic.afm2665
-rw-r--r--test/user-template/user/psprint/fontmetric/Times-Roman.afm2417
-rw-r--r--test/user-template/user/psprint/fontmetric/ZapfDingbats.afm224
-rw-r--r--test/user-template/user/psprint/pspfontcache1198
-rw-r--r--test/user-template/user/psprint/psprint.conf114
-rw-r--r--test/user-template/user/registry/Langpack-en-US.xcd2
-rw-r--r--test/user-template/user/registry/base.xcd2
-rw-r--r--test/user-template/user/registry/calc.xcd2
-rw-r--r--test/user-template/user/registry/draw.xcd2
-rw-r--r--test/user-template/user/registry/gnome.xcd2
-rw-r--r--test/user-template/user/registry/graphicfilter.xcd2
-rw-r--r--test/user-template/user/registry/impress.xcd2
-rw-r--r--test/user-template/user/registry/lingucomponent.xcd2
-rw-r--r--test/user-template/user/registry/main.xcd42
-rw-r--r--test/user-template/user/registry/math.xcd2
-rw-r--r--test/user-template/user/registry/ogltrans.xcd2
-rw-r--r--test/user-template/user/registry/oo-ad-ldap.xcd.sample153
-rw-r--r--test/user-template/user/registry/oo-ldap.xcd.sample156
-rw-r--r--test/user-template/user/registry/palm.xcd2
-rw-r--r--test/user-template/user/registry/pocketexcel.xcd2
-rw-r--r--test/user-template/user/registry/pocketword.xcd2
-rw-r--r--test/user-template/user/registry/pyuno.xcd2
-rw-r--r--test/user-template/user/registry/res/fcfg_langpack_en-US.xcd2
-rw-r--r--test/user-template/user/registry/writer.xcd2
-rw-r--r--test/user-template/user/registry/xsltfilter.xcd2
-rw-r--r--test/user-template/user/template/common/layout/.memdump4
-rw-r--r--test/user-template/user/template/common/layout/lyt-aqua.otpbin0 -> 31976 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-blackandwhite.otpbin0 -> 198907 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-bluegrey.otpbin0 -> 292429 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-bluelinesgrad.otpbin0 -> 47833 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-bluetitledown.otpbin0 -> 75706 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-book.otpbin0 -> 1144603 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-brown.otpbin0 -> 59272 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-charglow.otpbin0 -> 84988 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-forest.otpbin0 -> 721912 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-frepa.otpbin0 -> 68120 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-glacier.otpbin0 -> 654171 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-greengradlines.otpbin0 -> 71645 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-keyboard.otpbin0 -> 517630 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-movwaves.otpbin0 -> 55952 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-numdark.otpbin0 -> 327914 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-ocean.otpbin0 -> 13934 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-organic.otpbin0 -> 64257 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-paper.otpbin0 -> 706260 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-rededges.otpbin0 -> 502646 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-roundedrect.otpbin0 -> 125326 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-sunrise.otpbin0 -> 115684 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-techpoly.otpbin0 -> 312388 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-tunnel.otpbin0 -> 52342 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-water.otpbin0 -> 507227 bytes
-rw-r--r--test/user-template/user/template/common/layout/lyt-wine.otpbin0 -> 652397 bytes
-rw-r--r--test/user-template/user/template/en-US/internal/html.stwbin0 -> 5335 bytes
-rw-r--r--test/user-template/user/template/en-US/internal/idxexample.odtbin0 -> 21126 bytes
-rw-r--r--test/user-template/user/template/en-US/presnt/.memdump4
-rw-r--r--test/user-template/user/template/en-US/presnt/prs-novelty.otpbin0 -> 25239 bytes
-rw-r--r--test/user-template/user/template/en-US/presnt/prs-strategy.otpbin0 -> 66743 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/10grey.ottbin0 -> 10240 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/1simple.ottbin0 -> 10009 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/2elegant.ottbin0 -> 14214 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/3modern.ottbin0 -> 10529 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/4classic.ottbin0 -> 10011 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/5blue.ottbin0 -> 10088 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/6orange.ottbin0 -> 10529 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/7red.ottbin0 -> 10493 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/8green.ottbin0 -> 10202 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/9colorful.ottbin0 -> 10047 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/aw-10grey.ottbin0 -> 10240 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/aw-1simple.ottbin0 -> 10009 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/aw-2elegant.ottbin0 -> 14215 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/aw-3modern.ottbin0 -> 10529 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/aw-4classic.ottbin0 -> 10011 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/aw-5blue.ottbin0 -> 10087 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/aw-6orange.ottbin0 -> 10530 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/aw-7red.ottbin0 -> 12159 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/aw-8green.ottbin0 -> 10202 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/agenda/aw-9colorful.ottbin0 -> 10087 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/fax/bus-classic-pri_f.ottbin0 -> 13433 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/fax/bus-classic_f.ottbin0 -> 25806 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/fax/bus-modern-pri_f.ottbin0 -> 13391 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/fax/bus-modern_f.ottbin0 -> 25693 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/fax/pri-bottle_f.ottbin0 -> 48122 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/fax/pri-fax_f.ottbin0 -> 58398 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/fax/pri-lines_f.ottbin0 -> 12192 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/fax/pri-marine_f.ottbin0 -> 19214 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-01.ottbin0 -> 8813 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-011.ottbin0 -> 8803 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-012.ottbin0 -> 8707 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-02.ottbin0 -> 8666 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-021.ottbin0 -> 8738 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-022.ottbin0 -> 8594 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-03.ottbin0 -> 9003 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-031.ottbin0 -> 8999 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-032.ottbin0 -> 8931 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-04.ottbin0 -> 9119 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-041.ottbin0 -> 9264 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-042.ottbin0 -> 8959 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-05.ottbin0 -> 8651 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-051.ottbin0 -> 8635 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-052.ottbin0 -> 8633 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-06.ottbin0 -> 8900 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-061.ottbin0 -> 8831 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-062.ottbin0 -> 8763 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/cnt-default.ottbin0 -> 8777 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/stl-01.ottbin0 -> 35361 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/stl-02.ottbin0 -> 25203 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/stl-03.ottbin0 -> 45630 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/stl-04.ottbin0 -> 23224 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/stl-05.ottbin0 -> 45601 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/stl-06.ottbin0 -> 16824 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/stl-07.ottbin0 -> 7951 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/stl-08.ottbin0 -> 10871 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/stl-09.ottbin0 -> 48567 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/report/stl-default.ottbin0 -> 6857 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/black_white.otsbin0 -> 8204 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/blackberry.otsbin0 -> 8150 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/default.otsbin0 -> 8018 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/diner.otsbin0 -> 8590 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/fall.otsbin0 -> 8077 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/glacier.otsbin0 -> 8185 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/green_grapes.otsbin0 -> 8055 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/jeans.otsbin0 -> 8059 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/marine.otsbin0 -> 7941 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/millennium.otsbin0 -> 8189 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/nature.otsbin0 -> 8110 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/neon.otsbin0 -> 8421 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/night.otsbin0 -> 8201 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/nostalgic.otsbin0 -> 8260 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/pastell.otsbin0 -> 8160 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/pool.otsbin0 -> 8360 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/pumpkin.otsbin0 -> 8005 bytes
-rw-r--r--test/user-template/user/template/en-US/wizard/styles/xos.otsbin0 -> 8072 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/Import_1.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/Import_3.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/Import_4.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/MS-Import_2-1.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/MS-Import_2-2.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/MS-Import_2-3.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/XML-Import_2-1.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/XML-Import_2-2.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/XML-Import_2-3.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/XML-Import_2-4.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/brasil.gifbin0 -> 6075 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/cancel_down.bmpbin0 -> 416 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/cancel_up.bmpbin0 -> 416 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/china.gifbin0 -> 10764 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/denmark.gifbin0 -> 12229 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/down.bmpbin0 -> 644 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/end.bmpbin0 -> 13190 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/euro_1.bmpbin0 -> 23344 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/euro_2.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/euro_3.bmpbin0 -> 66480 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/finland.gifbin0 -> 9569 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/france.gifbin0 -> 7934 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/ftpconnected.gifbin0 -> 114 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/ftpconnecting.gifbin0 -> 166 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/ftperror.gifbin0 -> 123 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/ftpunknown.gifbin0 -> 152 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/germany.wmfbin0 -> 18306 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/greece.gifbin0 -> 13597 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/italia.gifbin0 -> 11213 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/japan.gifbin0 -> 7283 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/maximize.bmpbin0 -> 822 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/minimize.bmpbin0 -> 726 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/netherlands.gifbin0 -> 8639 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/okay_down.bmpbin0 -> 416 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/okay_up.bmpbin0 -> 416 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/polska.gifbin0 -> 7839 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/portugal.gifbin0 -> 5638 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/report.bmpbin0 -> 15744 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/russia.gifbin0 -> 7711 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/spain.gifbin0 -> 6863 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/sweden.gifbin0 -> 8605 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/taiwan.gifbin0 -> 4900 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/turkey.gifbin0 -> 6000 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/tutorial_background.gifbin0 -> 1888 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/up.bmpbin0 -> 644 bytes
-rw-r--r--test/user-template/user/template/wizard/bitmap/usa.gifbin0 -> 7208 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/bg/bus-elegant_l.ottbin0 -> 33481 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/bg/bus-modern_l.ottbin0 -> 33305 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/bg/bus-office_l.ottbin0 -> 33302 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/bg/off-elegant_l.ottbin0 -> 15115 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/bg/off-modern_l.ottbin0 -> 14690 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/bg/off-office_l.ottbin0 -> 14392 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/bg/pri-bottle_l.ottbin0 -> 48155 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/bg/pri-mail_l.ottbin0 -> 24078 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/bg/pri-marine_l.ottbin0 -> 19317 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/bg/pri-redline_l.ottbin0 -> 12133 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/cs/bus-elegant_l.ottbin0 -> 35308 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/cs/bus-modern_l.ottbin0 -> 35774 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/cs/bus-office_l.ottbin0 -> 35420 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/cs/off-elegant_l.ottbin0 -> 16796 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/cs/off-modern_l.ottbin0 -> 16474 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/cs/off-office_l.ottbin0 -> 16099 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/cs/pri-bottle_l.ottbin0 -> 48166 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/cs/pri-mail_l.ottbin0 -> 24034 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/cs/pri-marine_l.ottbin0 -> 19287 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/cs/pri-redline_l.ottbin0 -> 12291 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/da/bus-elegant_l.ottbin0 -> 34076 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/da/bus-modern_l.ottbin0 -> 34201 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/da/bus-office_l.ottbin0 -> 34097 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/da/off-elegant_l.ottbin0 -> 15647 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/da/off-modern_l.ottbin0 -> 15245 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/da/off-office_l.ottbin0 -> 14769 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/da/pri-bottle_l.ottbin0 -> 48226 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/da/pri-mail_l.ottbin0 -> 24245 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/da/pri-marine_l.ottbin0 -> 19385 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/da/pri-redline_l.ottbin0 -> 12348 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/de/bus-elegant_l.ottbin0 -> 36299 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/de/bus-modern_l.ottbin0 -> 36496 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/de/bus-office_l.ottbin0 -> 36279 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/de/off-elegant_l.ottbin0 -> 15742 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/de/off-modern_l.ottbin0 -> 15315 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/de/off-office_l.ottbin0 -> 14789 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/de/pri-bottle_l.ottbin0 -> 48191 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/de/pri-mail_l.ottbin0 -> 24168 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/de/pri-marine_l.ottbin0 -> 19306 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/de/pri-redline_l.ottbin0 -> 12473 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-GB/bus-elegant_l.ottbin0 -> 34203 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-GB/bus-modern_l.ottbin0 -> 34370 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-GB/bus-office_l.ottbin0 -> 34188 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-GB/off-elegant_l.ottbin0 -> 15692 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-GB/off-modern_l.ottbin0 -> 15332 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-GB/off-office_l.ottbin0 -> 14881 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-GB/pri-bottle_l.ottbin0 -> 47926 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-GB/pri-mail_l.ottbin0 -> 23854 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-GB/pri-marine_l.ottbin0 -> 19125 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-GB/pri-redline_l.ottbin0 -> 12148 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-US/bus-elegant_l.ottbin0 -> 33945 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-US/bus-modern_l.ottbin0 -> 34270 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-US/bus-office_l.ottbin0 -> 34041 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-US/off-elegant_l.ottbin0 -> 15629 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-US/off-modern_l.ottbin0 -> 15341 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-US/off-office_l.ottbin0 -> 14731 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-US/pri-bottle_l.ottbin0 -> 48260 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-US/pri-mail_l.ottbin0 -> 24144 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-US/pri-marine_l.ottbin0 -> 19326 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/en-US/pri-redline_l.ottbin0 -> 12423 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/es/bus-elegant_l.ottbin0 -> 35196 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/es/bus-modern_l.ottbin0 -> 35293 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/es/bus-office_l.ottbin0 -> 35288 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/es/off-elegant_l.ottbin0 -> 15714 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/es/off-modern_l.ottbin0 -> 15514 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/es/off-office_l.ottbin0 -> 14755 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/es/pri-bottle_l.ottbin0 -> 48283 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/es/pri-mail_l.ottbin0 -> 24241 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/es/pri-marine_l.ottbin0 -> 19443 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/es/pri-redline_l.ottbin0 -> 12544 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/eu/bus-elegant_l.ottbin0 -> 33891 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/eu/bus-modern_l.ottbin0 -> 33889 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/eu/bus-office_l.ottbin0 -> 33857 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/eu/off-elegant_l.ottbin0 -> 15864 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/eu/off-modern_l.ottbin0 -> 15381 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/eu/off-office_l.ottbin0 -> 15020 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/eu/pri-bottle_l.ottbin0 -> 49465 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/eu/pri-mail_l.ottbin0 -> 25367 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/eu/pri-marine_l.ottbin0 -> 20630 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/eu/pri-redline_l.ottbin0 -> 13539 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/fr/bus-elegant_l.ottbin0 -> 35087 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/fr/bus-modern_l.ottbin0 -> 35258 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/fr/bus-office_l.ottbin0 -> 35187 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/fr/off-elegant_l.ottbin0 -> 15706 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/fr/off-modern_l.ottbin0 -> 15517 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/fr/off-office_l.ottbin0 -> 14721 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/fr/pri-bottle_l.ottbin0 -> 48247 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/fr/pri-mail_l.ottbin0 -> 24192 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/fr/pri-marine_l.ottbin0 -> 19393 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/fr/pri-redline_l.ottbin0 -> 12485 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/hu/bus-elegant_l.ottbin0 -> 28811 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/hu/bus-modern_l.ottbin0 -> 29220 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/hu/bus-office_l.ottbin0 -> 28943 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/hu/off-elegant_l.ottbin0 -> 17014 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/hu/off-modern_l.ottbin0 -> 16696 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/hu/off-office_l.ottbin0 -> 16232 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/hu/pri-bottle_l.ottbin0 -> 48573 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/hu/pri-mail_l.ottbin0 -> 24608 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/hu/pri-marine_l.ottbin0 -> 19848 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/hu/pri-redline_l.ottbin0 -> 12724 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/it/bus-elegant_l.ottbin0 -> 35132 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/it/bus-modern_l.ottbin0 -> 35272 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/it/bus-office_l.ottbin0 -> 35239 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/it/off-elegant_l.ottbin0 -> 15685 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/it/off-modern_l.ottbin0 -> 15531 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/it/off-office_l.ottbin0 -> 14763 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/it/pri-bottle_l.ottbin0 -> 48251 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/it/pri-mail_l.ottbin0 -> 24212 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/it/pri-marine_l.ottbin0 -> 19414 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/it/pri-redline_l.ottbin0 -> 12505 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ja/bus-elegant_l.ottbin0 -> 32851 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ja/bus-modern_l.ottbin0 -> 32811 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ja/bus-office_l.ottbin0 -> 32866 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ja/off-elegant_l.ottbin0 -> 13980 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ja/off-modern_l.ottbin0 -> 13542 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ja/off-office_l.ottbin0 -> 13078 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ja/pri-bottle_l.ottbin0 -> 48475 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ja/pri-mail_l.ottbin0 -> 24376 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ja/pri-marine_l.ottbin0 -> 19693 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ja/pri-redline_l.ottbin0 -> 12690 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/km/bus-elegant_l.ottbin0 -> 33195 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/km/bus-modern_l.ottbin0 -> 33366 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/km/bus-office_l.ottbin0 -> 33297 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/km/off-elegant_l.ottbin0 -> 15136 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/km/off-modern_l.ottbin0 -> 14766 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/km/off-office_l.ottbin0 -> 14343 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/km/pri-bottle_l.ottbin0 -> 48755 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/km/pri-mail_l.ottbin0 -> 24707 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/km/pri-marine_l.ottbin0 -> 19963 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/km/pri-redline_l.ottbin0 -> 12974 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ko/bus-elegant_l.ottbin0 -> 33016 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ko/bus-modern_l.ottbin0 -> 32993 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ko/bus-office_l.ottbin0 -> 33110 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ko/off-elegant_l.ottbin0 -> 14164 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ko/off-modern_l.ottbin0 -> 13716 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ko/off-office_l.ottbin0 -> 13242 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ko/pri-bottle_l.ottbin0 -> 48425 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ko/pri-mail_l.ottbin0 -> 24371 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ko/pri-marine_l.ottbin0 -> 19629 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ko/pri-redline_l.ottbin0 -> 12664 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/nl/bus-elegant_l.ottbin0 -> 35129 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/nl/bus-modern_l.ottbin0 -> 35296 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/nl/bus-office_l.ottbin0 -> 35304 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/nl/off-elegant_l.ottbin0 -> 15686 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/nl/off-modern_l.ottbin0 -> 15300 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/nl/off-office_l.ottbin0 -> 14769 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/nl/pri-bottle_l.ottbin0 -> 48038 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/nl/pri-mail_l.ottbin0 -> 23992 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/nl/pri-marine_l.ottbin0 -> 19194 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/nl/pri-redline_l.ottbin0 -> 12272 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pl/bus-elegant_l.ottbin0 -> 35321 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pl/bus-modern_l.ottbin0 -> 35491 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pl/bus-office_l.ottbin0 -> 35400 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pl/off-elegant_l.ottbin0 -> 15723 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pl/off-modern_l.ottbin0 -> 15361 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pl/off-office_l.ottbin0 -> 14779 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pl/pri-bottle_l.ottbin0 -> 48075 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pl/pri-mail_l.ottbin0 -> 24013 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pl/pri-marine_l.ottbin0 -> 19287 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pl/pri-redline_l.ottbin0 -> 12202 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt-BR/bus-elegant_l.ottbin0 -> 32898 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt-BR/bus-modern_l.ottbin0 -> 32976 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt-BR/bus-office_l.ottbin0 -> 33065 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt-BR/off-elegant_l.ottbin0 -> 13883 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt-BR/off-modern_l.ottbin0 -> 13540 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt-BR/off-office_l.ottbin0 -> 13125 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt-BR/pri-bottle_l.ottbin0 -> 48298 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt-BR/pri-mail_l.ottbin0 -> 24283 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt-BR/pri-marine_l.ottbin0 -> 19487 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt-BR/pri-redline_l.ottbin0 -> 12581 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt/bus-elegant_l.ottbin0 -> 34166 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt/bus-modern_l.ottbin0 -> 34295 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt/bus-office_l.ottbin0 -> 34137 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt/off-elegant_l.ottbin0 -> 15666 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt/off-modern_l.ottbin0 -> 15271 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt/off-office_l.ottbin0 -> 14805 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt/pri-bottle_l.ottbin0 -> 49425 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt/pri-mail_l.ottbin0 -> 25343 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt/pri-marine_l.ottbin0 -> 20592 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/pt/pri-redline_l.ottbin0 -> 13497 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ru/bus-elegant_l.ottbin0 -> 32769 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ru/bus-modern_l.ottbin0 -> 32828 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ru/bus-office_l.ottbin0 -> 32818 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ru/off-elegant_l.ottbin0 -> 14608 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ru/off-modern_l.ottbin0 -> 13644 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ru/off-office_l.ottbin0 -> 13848 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ru/pri-bottle_l.ottbin0 -> 48536 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ru/pri-mail_l.ottbin0 -> 24413 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ru/pri-marine_l.ottbin0 -> 19526 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/ru/pri-redline_l.ottbin0 -> 12568 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sk/bus-elegant_l.ottbin0 -> 32678 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sk/bus-modern_l.ottbin0 -> 32647 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sk/bus-office_l.ottbin0 -> 32986 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sk/off-elegant_l.ottbin0 -> 14478 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sk/off-modern_l.ottbin0 -> 13966 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sk/off-office_l.ottbin0 -> 13750 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sk/pri-bottle_l.ottbin0 -> 48272 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sk/pri-mail_l.ottbin0 -> 24170 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sk/pri-marine_l.ottbin0 -> 19478 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sk/pri-redline_l.ottbin0 -> 12598 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sl/bus-elegant_l.ottbin0 -> 19390 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sl/bus-modern_l.ottbin0 -> 19439 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sl/bus-office_l.ottbin0 -> 19454 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sl/off-elegant_l.ottbin0 -> 13944 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sl/off-modern_l.ottbin0 -> 13501 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sl/off-office_l.ottbin0 -> 13109 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sl/pri-bottle_l.ottbin0 -> 47978 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sl/pri-mail_l.ottbin0 -> 23904 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sl/pri-marine_l.ottbin0 -> 19152 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sl/pri-redline_l.ottbin0 -> 11951 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sv/bus-elegant_l.ottbin0 -> 35195 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sv/bus-modern_l.ottbin0 -> 35342 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sv/bus-office_l.ottbin0 -> 35313 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sv/off-elegant_l.ottbin0 -> 15768 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sv/off-modern_l.ottbin0 -> 15347 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sv/off-office_l.ottbin0 -> 14801 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sv/pri-bottle_l.ottbin0 -> 48237 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sv/pri-mail_l.ottbin0 -> 24226 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sv/pri-marine_l.ottbin0 -> 19359 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/sv/pri-redline_l.ottbin0 -> 12522 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/tr/bus-elegant_l.ottbin0 -> 32509 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/tr/bus-modern_l.ottbin0 -> 32664 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/tr/bus-office_l.ottbin0 -> 32593 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/tr/off-elegant_l.ottbin0 -> 14371 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/tr/off-modern_l.ottbin0 -> 14067 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/tr/off-office_l.ottbin0 -> 13636 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/tr/pri-bottle_l.ottbin0 -> 48166 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/tr/pri-mail_l.ottbin0 -> 24128 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/tr/pri-marine_l.ottbin0 -> 19377 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/tr/pri-redline_l.ottbin0 -> 12290 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/vi/bus-elegant_l.ottbin0 -> 34581 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/vi/bus-modern_l.ottbin0 -> 34704 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/vi/bus-office_l.ottbin0 -> 34605 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/vi/off-elegant_l.ottbin0 -> 15318 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/vi/off-modern_l.ottbin0 -> 14885 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/vi/off-office_l.ottbin0 -> 14412 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/vi/pri-bottle_l.ottbin0 -> 49511 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/vi/pri-mail_l.ottbin0 -> 25281 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/vi/pri-marine_l.ottbin0 -> 20477 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/vi/pri-redline_l.ottbin0 -> 13302 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-CN/bus-elegant_l.ottbin0 -> 32964 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-CN/bus-modern_l.ottbin0 -> 32935 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-CN/bus-office_l.ottbin0 -> 33050 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-CN/off-elegant_l.ottbin0 -> 14136 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-CN/off-modern_l.ottbin0 -> 13669 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-CN/off-office_l.ottbin0 -> 13239 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-CN/pri-bottle_l.ottbin0 -> 48484 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-CN/pri-mail_l.ottbin0 -> 24392 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-CN/pri-marine_l.ottbin0 -> 19680 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-CN/pri-redline_l.ottbin0 -> 12693 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-TW/bus-elegant_l.ottbin0 -> 32949 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-TW/bus-modern_l.ottbin0 -> 32924 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-TW/bus-office_l.ottbin0 -> 33059 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-TW/off-elegant_l.ottbin0 -> 14096 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-TW/off-modern_l.ottbin0 -> 13615 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-TW/off-office_l.ottbin0 -> 13206 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-TW/pri-bottle_l.ottbin0 -> 48497 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-TW/pri-mail_l.ottbin0 -> 24420 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-TW/pri-marine_l.ottbin0 -> 19681 bytes
-rw-r--r--test/user-template/user/template/wizard/letter/zh-TW/pri-redline_l.ottbin0 -> 12701 bytes
-rw-r--r--test/user-template/user/wordbook/en-GB.dic46
-rw-r--r--test/user-template/user/wordbook/en-US.dic46
-rw-r--r--test/user-template/user/wordbook/sl.dic24
-rw-r--r--test/user-template/user/wordbook/technical.dic230
-rw-r--r--test/user-template/user/xslt/common/math.xsl589
-rw-r--r--test/user-template/user/xslt/common/measure_conversion.xsl488
-rw-r--r--test/user-template/user/xslt/docbook/DocBookTemplate.stwbin0 -> 6688 bytes
-rw-r--r--test/user-template/user/xslt/docbook/docbooktosoffheadings.xsl1424
-rw-r--r--test/user-template/user/xslt/docbook/sofftodocbookheadings.xsl1161
-rw-r--r--test/user-template/user/xslt/export/common/body.xsl422
-rw-r--r--test/user-template/user/xslt/export/common/ooo2ms_docpr.xsl139
-rw-r--r--test/user-template/user/xslt/export/common/styles/style_collector.xsl828
-rw-r--r--test/user-template/user/xslt/export/common/styles/style_mapping_css.xsl355
-rw-r--r--test/user-template/user/xslt/export/common/table/table.xsl164
-rw-r--r--test/user-template/user/xslt/export/common/table/table_cells.xsl279
-rw-r--r--test/user-template/user/xslt/export/common/table/table_columns.xsl243
-rw-r--r--test/user-template/user/xslt/export/common/table/table_rows.xsl212
-rw-r--r--test/user-template/user/xslt/export/common/table_of_content.xsl588
-rw-r--r--test/user-template/user/xslt/export/spreadsheetml/formular.xsl640
-rw-r--r--test/user-template/user/xslt/export/spreadsheetml/ooo2spreadsheetml.xsl417
-rw-r--r--test/user-template/user/xslt/export/spreadsheetml/style_mapping.xsl390
-rw-r--r--test/user-template/user/xslt/export/spreadsheetml/styles.xsl695
-rw-r--r--test/user-template/user/xslt/export/spreadsheetml/table.xsl937
-rw-r--r--test/user-template/user/xslt/export/uof/odf2uof_presentation.xsl3375
-rw-r--r--test/user-template/user/xslt/export/uof/odf2uof_spreadsheet.xsl6194
-rw-r--r--test/user-template/user/xslt/export/uof/odf2uof_text.xsl4439
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml.xsl218
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml_border.xsl153
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml_custom_draw.xsl284
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml_draw.xsl1769
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml_field.xsl733
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml_list.xsl340
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml_page.xsl401
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml_path.xsl858
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml_settings.xsl312
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml_table.xsl416
-rw-r--r--test/user-template/user/xslt/export/wordml/ooo2wordml_text.xsl1279
-rw-r--r--test/user-template/user/xslt/export/xhtml/body.xsl2962
-rw-r--r--test/user-template/user/xslt/export/xhtml/header.xsl485
-rw-r--r--test/user-template/user/xslt/export/xhtml/opendoc2xhtml.xsl183
-rw-r--r--test/user-template/user/xslt/export/xhtml/table.xsl222
-rw-r--r--test/user-template/user/xslt/import/common/ms2ooo_docpr.xsl101
-rw-r--r--test/user-template/user/xslt/import/spreadsheetml/spreadsheetml2ooo.xsl9173
-rw-r--r--test/user-template/user/xslt/import/uof/uof2odf_presentation.xsl3478
-rw-r--r--test/user-template/user/xslt/import/uof/uof2odf_spreadsheet.xsl9054
-rw-r--r--test/user-template/user/xslt/import/uof/uof2odf_text.xsl4650
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo.xsl265
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo_custom_draw.xsl284
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo_draw.xsl2178
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo_field.xsl1587
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo_list.xsl657
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo_page.xsl408
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo_path.xsl1818
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo_props.xsl268
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo_settings.xsl69
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo_table.xsl1286
-rw-r--r--test/user-template/user/xslt/import/wordml/wordml2ooo_text.xsl1058
1785 files changed, 196894 insertions, 0 deletions
diff --git a/test/user-template/user/autocorr/acor_af-ZA.dat b/test/user-template/user/autocorr/acor_af-ZA.dat
new file mode 100644
index 000000000000..8c5eccbb5b73
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_af-ZA.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_bg-BG.dat b/test/user-template/user/autocorr/acor_bg-BG.dat
new file mode 100644
index 000000000000..093a717ada98
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_bg-BG.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_cs-CZ.dat b/test/user-template/user/autocorr/acor_cs-CZ.dat
new file mode 100644
index 000000000000..6e2a0d23aaee
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_cs-CZ.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_da-DK.dat b/test/user-template/user/autocorr/acor_da-DK.dat
new file mode 100644
index 000000000000..5a9f14d12e61
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_da-DK.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_de-DE.dat b/test/user-template/user/autocorr/acor_de-DE.dat
new file mode 100644
index 000000000000..82381c2990b8
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_de-DE.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_en-AU.dat b/test/user-template/user/autocorr/acor_en-AU.dat
new file mode 100644
index 000000000000..0c93ec451398
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_en-AU.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_en-GB.dat b/test/user-template/user/autocorr/acor_en-GB.dat
new file mode 100644
index 000000000000..a90454534c83
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_en-GB.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_en-US.dat b/test/user-template/user/autocorr/acor_en-US.dat
new file mode 100644
index 000000000000..d4e9a3d3264c
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_en-US.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_en-ZA.dat b/test/user-template/user/autocorr/acor_en-ZA.dat
new file mode 100644
index 000000000000..94d541ff64f6
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_en-ZA.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_es-ES.dat b/test/user-template/user/autocorr/acor_es-ES.dat
new file mode 100644
index 000000000000..05b60d0f77c7
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_es-ES.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_eu.dat b/test/user-template/user/autocorr/acor_eu.dat
new file mode 100644
index 000000000000..6b91cdef5c9c
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_eu.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_fa-IR.dat b/test/user-template/user/autocorr/acor_fa-IR.dat
new file mode 100644
index 000000000000..38e17981099a
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_fa-IR.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_fi-FI.dat b/test/user-template/user/autocorr/acor_fi-FI.dat
new file mode 100644
index 000000000000..0d87a4210185
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_fi-FI.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_fr-FR.dat b/test/user-template/user/autocorr/acor_fr-FR.dat
new file mode 100644
index 000000000000..c2277b6e0d54
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_fr-FR.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_ga-IE.dat b/test/user-template/user/autocorr/acor_ga-IE.dat
new file mode 100644
index 000000000000..66dbf9d18c5d
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_ga-IE.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_hr-HR.dat b/test/user-template/user/autocorr/acor_hr-HR.dat
new file mode 100644
index 000000000000..dd583fc30458
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_hr-HR.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_hu-HU.dat b/test/user-template/user/autocorr/acor_hu-HU.dat
new file mode 100644
index 000000000000..d09f20b80533
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_hu-HU.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_it-IT.dat b/test/user-template/user/autocorr/acor_it-IT.dat
new file mode 100644
index 000000000000..274a528be990
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_it-IT.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_ja-JP.dat b/test/user-template/user/autocorr/acor_ja-JP.dat
new file mode 100644
index 000000000000..5fa2eae384af
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_ja-JP.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_ko-KR.dat b/test/user-template/user/autocorr/acor_ko-KR.dat
new file mode 100644
index 000000000000..9e187483ca28
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_ko-KR.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_lb-LU.dat b/test/user-template/user/autocorr/acor_lb-LU.dat
new file mode 100644
index 000000000000..9f381781a0bb
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_lb-LU.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_lt-LT.dat b/test/user-template/user/autocorr/acor_lt-LT.dat
new file mode 100644
index 000000000000..ae37be4608f3
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_lt-LT.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_mn-MN.dat b/test/user-template/user/autocorr/acor_mn-MN.dat
new file mode 100644
index 000000000000..8abf06b67daf
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_mn-MN.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_nl-BE.dat b/test/user-template/user/autocorr/acor_nl-BE.dat
new file mode 100644
index 000000000000..ecfe671f9699
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_nl-BE.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_nl-NL.dat b/test/user-template/user/autocorr/acor_nl-NL.dat
new file mode 100644
index 000000000000..cfbe832ed4b7
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_nl-NL.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_pl-PL.dat b/test/user-template/user/autocorr/acor_pl-PL.dat
new file mode 100644
index 000000000000..d091628933e5
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_pl-PL.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_pt-BR.dat b/test/user-template/user/autocorr/acor_pt-BR.dat
new file mode 100644
index 000000000000..8ff201c2c3c7
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_pt-BR.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_pt-PT.dat b/test/user-template/user/autocorr/acor_pt-PT.dat
new file mode 100644
index 000000000000..82de0951de66
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_pt-PT.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_ru-RU.dat b/test/user-template/user/autocorr/acor_ru-RU.dat
new file mode 100644
index 000000000000..efb492b656d9
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_ru-RU.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_sh-ME.dat b/test/user-template/user/autocorr/acor_sh-ME.dat
new file mode 100644
index 000000000000..1f6e4057e6e1
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_sh-ME.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_sh-RS.dat b/test/user-template/user/autocorr/acor_sh-RS.dat
new file mode 100644
index 000000000000..1f6e4057e6e1
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_sh-RS.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_sh-YU.dat b/test/user-template/user/autocorr/acor_sh-YU.dat
new file mode 100644
index 000000000000..1f6e4057e6e1
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_sh-YU.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_sk-SK.dat b/test/user-template/user/autocorr/acor_sk-SK.dat
new file mode 100644
index 000000000000..8502fc624ec2
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_sk-SK.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_sl-SI.dat b/test/user-template/user/autocorr/acor_sl-SI.dat
new file mode 100644
index 000000000000..eb9e6cfeecfd
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_sl-SI.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_sr-ME.dat b/test/user-template/user/autocorr/acor_sr-ME.dat
new file mode 100644
index 000000000000..d512182b4735
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_sr-ME.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_sr-RS.dat b/test/user-template/user/autocorr/acor_sr-RS.dat
new file mode 100644
index 000000000000..d512182b4735
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_sr-RS.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_sr-YU.dat b/test/user-template/user/autocorr/acor_sr-YU.dat
new file mode 100644
index 000000000000..d512182b4735
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_sr-YU.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_sv-SE.dat b/test/user-template/user/autocorr/acor_sv-SE.dat
new file mode 100644
index 000000000000..32459530ed69
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_sv-SE.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_tr-TR.dat b/test/user-template/user/autocorr/acor_tr-TR.dat
new file mode 100644
index 000000000000..ffdbb4e0d864
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_tr-TR.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_vi-VN.dat b/test/user-template/user/autocorr/acor_vi-VN.dat
new file mode 100644
index 000000000000..025f04821b3f
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_vi-VN.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_zh-CN.dat b/test/user-template/user/autocorr/acor_zh-CN.dat
new file mode 100644
index 000000000000..767ceb337683
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_zh-CN.dat
Binary files differ
diff --git a/test/user-template/user/autocorr/acor_zh-TW.dat b/test/user-template/user/autocorr/acor_zh-TW.dat
new file mode 100644
index 000000000000..ea9bb9f9ed0a
--- /dev/null
+++ b/test/user-template/user/autocorr/acor_zh-TW.dat
Binary files differ
diff --git a/test/user-template/user/autotext/en-US/crdbus50.bau b/test/user-template/user/autotext/en-US/crdbus50.bau
new file mode 100644
index 000000000000..3c140c7445f9
--- /dev/null
+++ b/test/user-template/user/autotext/en-US/crdbus50.bau
Binary files differ
diff --git a/test/user-template/user/autotext/en-US/standard.bau b/test/user-template/user/autotext/en-US/standard.bau
new file mode 100644
index 000000000000..40cec77a7a43
--- /dev/null
+++ b/test/user-template/user/autotext/en-US/standard.bau
Binary files differ
diff --git a/test/user-template/user/autotext/en-US/template.bau b/test/user-template/user/autotext/en-US/template.bau
new file mode 100644
index 000000000000..33bb534e2bb9
--- /dev/null
+++ b/test/user-template/user/autotext/en-US/template.bau
Binary files differ
diff --git a/test/user-template/user/basic/Depot/CommonLang.xba b/test/user-template/user/basic/Depot/CommonLang.xba
new file mode 100644
index 000000000000..a1cb283dab14
--- /dev/null
+++ b/test/user-template/user/basic/Depot/CommonLang.xba
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="CommonLang" script:language="StarBasic">REM ***** BASIC *****
+
+
+&apos; Column A has the index 1
+Public Const SBCOLUMNNAME1 = 3 &apos; Stock names, sheet 1
+Public Const SBCOLUMNID1 = 4 &apos; Stock ID, sheet 1
+Public Const SBCOLUMNQUANTITY1 = 5 &apos; Stock quantity sheet 1
+Public Const SBCOLUMNRATE1 = 7 &apos; Price for stocks, sheet 1
+Public Const SBCOLUMNNAME2 = 3 &apos; Stock names, sheet 2
+Public Const SBCOLUMNDATE2 = 4 &apos; Transaction dates, sheet 2
+Public Const SBCOLUMNQUANTITY2 = 5 &apos; Transaction quantity, sheet 2
+Public Const SBCOLUMNRATE2 = 6 &apos; Price for stocks, sheet 2
+Public Const SBCOLUMNPROVPERCENT2 = 7 &apos; Provision in %, sheet 2
+Public Const SBCOLUMNPROVMIN2 = 8 &apos; Minimum provision, sheet 2
+Public Const SBCOLUMNPROVFIX2 = 9 &apos; Fixed provision, sheet 2
+Public Const SBCOLUMNPROCEEDS2 = 12 &apos; Profit, sheet 2
+Public Const SBCOLUMNQTYSOLD2 = 14 &apos; Quantity sold, sheet 2
+Public Const SBCOLUMNQTYREST2 = 15 &apos; Quantity not sold yet, sheet 2
+Public Const SBCOLUMNPRCREST2 = 16 &apos; Proportional proce for quantity not sold yet, sheet 2
+Public Const SBCOLUMNREALPROC2 = 17 &apos; Realized proceeds, sheet 2
+Public Const SBCOLUMNDIVIDEND2 = 18 &apos; Dividend paid, sheet 2
+Public Const SBCOLUMNREALPROFIT2 = 19 &apos; Realized profit, sheet 2
+Public Const SBROWFIRSTTRANSACT2 = 8 &apos; First data row, sheet 2
+Public Const SBROWHEADER1 = 6 &apos; Headline, sheet 1
+Public Const SBMSGOK = 0
+Public Const SBMSGYESNO = 4
+Public Const SBMSGSTOP = 16
+Public Const SBMSGQUESTION = 32
+Public Const SBMSGDEFAULTBTN2 = 256
+Public Const SBHASID = 1 &apos; 0 = no ID, 1 = stocks have an ID
+Public Const SBDIALOGSELL = 1 &apos; Step for main dialog
+Public Const SBDIALOGBUY = 2 &apos; Step for main dialog
+Public Const SBBINARY = 0
+Public TransactMode as Integer
+Public Const LIFO = -1
+Public Const FIFO = 1
+
+Public Const HANDLEDIVIDEND = 1
+Public Const HANDLESPLIT = 2
+
+Global oDocument as Object
+Global oDocFormats() as Object
+Global oController as Object
+Global oFirstSheet as Object
+Global oBankSheet as Object
+Global oMovementSheet as Object
+Global sDocLanguage as String
+Global sDocCountry as String
+Global oSheets as Object
+Global oDocLocale as New com.sun.star.lang.Locale
+Global bEnableMarket as Boolean
+Global bEnableInternet as Boolean
+Global oMarketModel as Object
+Global oInternetModel as Object
+
+Global sCurCurrency$, sCurExtension$, sCurChartSource$, sCurStockIDLabel$, sCurSeparator$
+
+Public oNumberFormatter as Object
+Public bDebugmode as Boolean
+Global GlobListindex as Integer
+Public blabla() as String
+Public SplitDate as Date
+Public oChartSheet as Object
+Public oBackgroundSheet as Object
+Public Const SBDATECOLUMN = 3
+Public Const SBVALUECOLUMN = 4
+Public Const SBSTARTROW = 25
+Public Const SBCHARTPERIOD = 14
+Public Const SBINTERVAL = &quot;d&quot;
+Public sColumnHeader as String
+Public StartDate as Date
+Public EndDate as Date
+Public iCurRow as Integer
+Public iMaxRow as Integer
+Public iStartDay as Integer
+Public iStartMonth as Integer
+Public iStartYear as Integer
+Public iEndDay as Integer
+Public iEndMonth as Integer
+Public iEndYear as Integer
+Public oStatusLine as Object
+Public Today as Date
+Public sInterval as String
+Public ShortMonths(11,1)
+Public iStep as Integer
+Public sDepotCurrency as String
+Public iValueCol as Integer
+
+Public DlgReference as Object
+Public DlgTransaction as Object
+Public DlgStockRates as Object
+Public DlgStartUp as Object
+Public TransactModel as Object
+Public StockRatesModel as Object
+Public StartUpModel as Object
+Public StockRatesTitle(1 To 3)
+Public TransactTitle(1 To 2)
+Public NullList()
+Public sStartupWelcome$, sStartupChooseMarket$, sStartupHint$
+
+Public sMarket(7,10) as String
+Public sCountryMarket(7,10) as String
+
+Public cDlgCaption1$, cDlgCaption2$
+Public sMsgError$, sMsgNoName$, sMsgNoQuantity$, sMsgNoDividend$, sMsgNoExchangeRate$
+Public sMsgNoValidExchangeDate$, sMsgWrongExchangeDate$, sMsgSellTooMuch$, sMsgConfirm$
+Public sMsgFreeStock$, sMsgTotalLoss$, sMsgEndDatebeforeNow$, sMsgStartDatebeforeEndDate$
+
+Public sOk$, sCancel$
+Public sMsgAuthorization$, sMsgDeleteAll$
+Public SellMethod$
+Public cSplit$
+Global HistoryChartSource as String
+Public DateCellStyle as String
+Public CurrCellStyle as String
+Public sStartDate$, sEndDate$, sHistory$
+Public sInsertStockname$
+Public sProductname$, sTitle$
+Public sInsertStocks$, sStockname$, sNoInternetUpdate$, sMarketplace$, sNoInternetDataAvailable$
+Public sCheckInternetSettings as String
+
+Sub LoadLanguage()
+ LoadDepotDialogs()
+ Select Case sDocLanguage
+ Case &quot;de&quot;
+ LoadGermanLanguage()
+ Case &quot;en&quot;
+ LoadEnglishLanguage()
+ Case &quot;fr&quot;
+ LoadFrenchLanguage()
+ Case &quot;it&quot;
+ LoadItalianLanguage()
+ Case &quot;es&quot;
+ LoadSpanishLanguage()
+ Case &quot;sv&quot;
+ LoadSwedishLanguage()
+ Case &quot;ja&quot;
+ LoadJapaneseLanguage()
+ Case &quot;ko&quot;
+ LoadKoreanLanguage()
+ Case &quot;zh&quot;
+ If sDocCountry = &quot;CN&quot; Then
+ LoadChineseSimpleLanguage()
+ Else
+ LoadChineseTradLanguage()
+ End If
+ End Select
+ InitializeStartUpModel()
+End Sub
+
+Sub CompleteMarketList()
+Dim EuroIndex as Integer
+Dim LocCountry as String
+Dim LocLanguage as String
+Dim sLangList() as String
+Dim sCountryList() as String
+Dim sExtensionList() as String
+Dim MaxIndex as Integer
+Dim bIsLocale as Boolean
+
+ GlobListIndex = -1
+ For n = 0 To 5
+ LocLanguage = sMarket(n,6)
+ LocCountry = sMarket(n,7)
+ If Instr(1,LocLanguage,&quot;;&quot;,SBBINARY) = 0 Then
+ bIsLocale = CheckDocLocale(LocLanguage, LocCountry)
+ Else
+ EuroIndex = 0
+ sLangList() = ArrayoutofString(LocLanguage, &quot;;&quot;, MaxIndex)
+ sCountryList() = ArrayoutofString(LocCountry, &quot;;&quot;, MaxIndex)
+ sExtensionList() = ArrayoutofString(sMarket(n,8), &quot;;&quot;, MaxIndex)
+ For m = 0 To MaxIndex
+ bIsLocale = CheckDocLocale(sLangList(m), sCountryList(m))
+ If bIsLocale Then
+ EuroIndex = m
+ Exit For
+ End If
+ Next m
+ sMarket(n,6) = sLangList(EuroIndex)
+ sMarket(n,7) = sCountryList(EuroIndex)
+ sMarket(n,8) = sExtensionList(EuroIndex)
+ End If
+ If bIsLocale Then
+ GlobListIndex = n
+ Exit For
+ End If
+ Next n
+End Sub
+
+Sub LocalizedCurrencies()
+ If GlobListIndex = -1 Then
+ sCountryMarket(0,0) = &quot;Euro&quot;
+ sCountryMarket(0,1) = chr(8364)
+ sCountryMarket(0,2) = &quot;Paris&quot;
+ sCountryMarket(0,3) = &quot;http://fr.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.PA&amp;f=s4l1t1c1ghov&amp;e=.csv&quot;
+ sCountryMarket(0,5) = &quot;Code&quot;
+ sCountryMarket(0,6) = &quot;fr&quot;
+ sCountryMarket(0,7) = &quot;FR&quot;
+ sCountryMarket(0,8) = &quot;40C&quot;
+ sCountryMarket(0,9) = &quot;59/9&quot;
+ sCountryMarket(0,10) = &quot;1&quot;
+
+ sCountryMarket(1,0) = &quot;Euro&quot;
+ sCountryMarket(1,1) = chr(8364)
+ sCountryMarket(1,2) = &quot;Milano&quot;
+ sCountryMarket(1,3) = &quot;http://it.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.MI&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sCountryMarket(1,5) = &quot;Codice&quot;
+ sCountryMarket(1,6) = &quot;it&quot;
+ sCountryMarket(1,7) = &quot;IT&quot;
+ sCountryMarket(1,8) = &quot;410&quot;
+ sCountryMarket(1,9) = &quot;44&quot;
+ sCountryMarket(1,10) = &quot;1&quot;
+
+ sCountryMarket(2,0) = &quot;Euro&quot;
+ sCountryMarket(2,1) = chr(8364)
+ sCountryMarket(2,2) = &quot;Madrid&quot;
+ sCountryMarket(2,3) = &quot;http://es.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;m=MC&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sCountryMarket(2,5) = &quot;Simbolo&quot;
+ sCountryMarket(2,6) = &quot;es&quot;
+ sCountryMarket(2,7) = &quot;ES&quot;
+ sCountryMarket(2,8) = &quot;40A&quot;
+ sCountryMarket(2,9) = &quot;44&quot;
+ sCountryMarket(2,10) = &quot;1&quot;
+
+ sCountryMarket(3,0) = &quot;Dansk krone&quot;
+ sCountryMarket(3,1) = &quot;kr&quot;
+ sCountryMarket(3,2) = &quot;København&quot;
+ sCountryMarket(3,3) = &quot;http://dk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID.CO&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sCountryMarket(3,5) = &quot;Aktiesymbol&quot;
+ sCountryMarket(3,6) = &quot;da&quot;
+ sCountryMarket(3,7) = &quot;DK&quot;
+ sCountryMarket(3,8) = &quot;406&quot;
+ sCountryMarket(3,9) = &quot;44&quot;
+ sCountryMarket(3,10) = &quot;1&quot;
+
+ sCountryMarket(4,0) = &quot;Svensk krona&quot;
+ sCountryMarket(4,1) = &quot;kr&quot;
+ sCountryMarket(4,2) = &quot;Stockholm&quot;
+ sCountryMarket(4,3) = &quot;http://se.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;f=sl1d1t1c1ohgv&amp;e=.c&quot;
+ sCountryMarket(4,5) = &quot;Kod&quot;
+ sCountryMarket(4,6) = &quot;sv&quot;
+ sCountryMarket(4,7) = &quot;SE&quot;
+ sCountryMarket(4,8) = &quot;41D&quot;
+ sCountryMarket(4,9) = &quot;44&quot;
+ sCountryMarket(4,10) = &quot;1&quot;
+
+ &apos; Taiwan Dollar
+ sCountryMarket(5,0) = &quot;新臺幣&quot;
+ sCountryMarket(5,1) = &quot;ï¿¥&quot;
+ sCountryMarket(5,2) = &quot;代號&quot;
+ sCountryMarket(5,3) = &quot;http://tw.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.TW&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sCountryMarket(5,5) = &quot;代號&quot;
+ sCountryMarket(5,6) = &quot;zh&quot;
+ sCountryMarket(5,7) = &quot;TW&quot;
+ sCountryMarket(5,8) = &quot;404&quot;
+ sCountryMarket(5,9) = &quot;44&quot;
+ sCountryMarket(5,10) = &quot;1&quot;
+
+ &apos; Chinese Yuan
+ sCountryMarket(6,0) = &quot;人民å¸&quot;
+ sCountryMarket(6,1) = &quot;ï¿¥&quot;
+ sCountryMarket(6,2) = &quot;代å·&quot;
+ sCountryMarket(6,3) = &quot;http://cn.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.SS&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sCountryMarket(6,5) = &quot;代å·&quot;
+ sCountryMarket(6,6) = &quot;zh&quot;
+ sCountryMarket(6,7) = &quot;CN&quot;
+ sCountryMarket(6,8) = &quot;804&quot;
+ sCountryMarket(6,9) = &quot;44&quot;
+ sCountryMarket(6,10) = &quot;1&quot;
+
+ &apos; korean Won
+ sCountryMarket(7,0) = &quot;한국 ì›í™”&quot;
+ sCountryMarket(7,1) = &quot;₩&quot;
+ sCountryMarket(7,2) = &quot;서울&quot;
+ sCountryMarket(7,3) = &quot;http://kr.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.KS&amp;f=snl1d1t1c1ohgv&amp;e=.csv&quot;
+ sCountryMarket(7,5) = &quot;종목 코드&quot;
+ sCountryMarket(7,6) = &quot;ko&quot;
+ sCountryMarket(7,7) = &quot;KR&quot;
+ sCountryMarket(7,8) = &quot;412&quot;
+ sCountryMarket(7,9) = &quot;44&quot;
+ sCountryMarket(7,10) = &quot;2&quot;
+
+
+&apos; sCountryMarket(5,0) = &quot;РоÑÑийÑкий рубль&quot;
+&apos; sCountryMarket(5,1) = &quot;Ñ€.&quot;
+&apos; sCountryMarket(5,2) = &quot;&quot;
+&apos; sCountryMarket(5,3) = &quot;&quot;
+&apos; sCountryMarket(5,5) = &quot;&quot;
+&apos; sCountryMarket(5,6) = &quot;ru&quot;
+&apos; sCountryMarket(5,7) = &quot;RU&quot;
+&apos; sCountryMarket(5,8) = &quot;-419&quot;
+&apos; sCountryMarket(5,9) = &quot;&quot;
+&apos;
+&apos; sCountryMarket(6,0) = &quot;ZÅ‚oty polski&quot;
+&apos; sCountryMarket(6,1) = &quot;zł&quot;
+&apos; sCountryMarket(6,2) = &quot;&quot;
+&apos; sCountryMarket(6,3) = &quot;&quot;
+&apos; sCountryMarket(6,5) = &quot;&quot; &apos;Still Todo!!
+&apos; sCountryMarket(6,6) = &quot;pl&quot;
+&apos; sCountryMarket(6,7) = &quot;PL&quot;
+&apos; sCountryMarket(6,8) = &quot;-415&quot;
+&apos; sCountryMarket(6,9) = &quot;&quot;
+&apos;
+&apos; sCountryMarket(7,0) = &quot;Türkische Lira&quot;
+&apos; sCountryMarket(7,1) = &quot;TL&quot;
+&apos; sCountryMarket(7,2) = &quot;&quot;
+&apos; sCountryMarket(7,3) = &quot;&quot;
+&apos; sCountryMarket(7,5) = &quot;&quot; &apos;Still Todo!!
+&apos; sCountryMarket(7,6) = &quot;tr&quot;
+&apos; sCountryMarket(7,7) = &quot;TR&quot;
+&apos; sCountryMarket(7,8) = &quot;-41F&quot;
+&apos; sCountryMarket(7,9) = &quot;&quot;
+
+ Dim n as Integer
+ Dim m as Integer
+&apos; Dim sCountryMarket(6,9) as String
+
+ For n = 0 To Ubound(sCountryMarket(),1)
+ If sDocLanguage = sCountryMarket(n,6) and sDocCountry = sCountryMarket(n,7) Then
+ GlobListIndex = 6
+ For m = 0 To 10
+ sMarket(6,m) = sCountryMarket(n,m)
+ Next m
+ Exit For
+ End If
+ Next n
+ End If
+End Sub
+
+Sub LoadDepotDialogs()
+ DlgTransaction = LoadDialog(&quot;Depot&quot;, &quot;Dialog2&quot;)
+ DlgStockRates = LoadDialog(&quot;Depot&quot;, &quot;Dialog3&quot;)
+ DlgStartUp = LoadDialog(&quot;Depot&quot;, &quot;Dialog4&quot;)
+ TransactModel = DlgTransaction.Model
+ StockRatesModel = DlgStockRates.Model
+ StartUpModel = DlgStartUp.Model
+End Sub
+
+
+Sub InitializeStartUpModel()
+ With StartUpModel
+ .lblWelcome.Label = sStartupWelcome &amp; Chr(13) &amp; chr(13) &amp; sStartUpChooseMarket
+ sStartUpHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ .lblHint.Label = sStartupHint
+&apos; .cmdGoOn.Enabled = Ubound(StartUpModel.lstMarkets.SelectedItems()) &lt;&gt; -1
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+End Sub</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Currency.xba b/test/user-template/user/basic/Depot/Currency.xba
new file mode 100644
index 000000000000..c432fecc2661
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Currency.xba
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Currency" script:language="StarBasic">REM ***** BASIC *****
+Option Explicit
+
+Dim bDoUnLoad as Boolean
+
+
+Sub Startup()
+Dim i as Integer
+Dim a as Integer
+Dim ListString as String
+Dim MarketListBoxControl as Object
+ Initialize(False)
+ MarketListBoxControl = DlgStartUp.GetControl(&quot;lstMarkets&quot;)
+ a = 0
+ For i = 0 To Ubound(sMarket(),1)
+ ListString = sMarket(i,0)
+ If sMarket(i,0) &lt;&gt; &quot;&quot; Then
+ If sMarket(i,3) = &quot;&quot; Then
+ ListString = ListString &amp; &quot; (&quot; &amp; sNoInternetUpdate &amp; &quot;)&quot;
+ Else
+ ListString = ListString &amp; &quot; (&quot; &amp; sMarketplace &amp; &quot; &quot; &amp; sMarket(i,2) &amp; &quot;)&quot;
+ End If
+ MarketListBoxControl.AddItem(ListString, a)
+ a = a + 1
+ End If
+ Next i
+ MarketListBoxControl.SelectItemPos(GlobListIndex, True)
+ DlgStartUp.Title = sDepotCurrency
+ DlgStartUp.Model.cmdGoOn.DefaultButton = True
+ DlgStartUp.GetControl(&quot;lstMarkets&quot;).SetFocus()
+ DlgStartUp.Execute()
+ DlgStartUp.Dispose()
+End Sub
+
+
+Sub EnableGoOnButton()
+ StartUpModel.cmdGoOn.Enabled = True
+ StartUpModel.cmdGoOn.DefaultButton = True
+End Sub
+
+
+Sub CloseStartUpDialog()
+ DlgStartUp.EndExecute()
+&apos; oDocument.Dispose()
+End Sub
+
+
+Sub DisposeDocument()
+ If bDoUnload Then
+ oDocument.Dispose()
+ End If
+End Sub
+
+
+Sub ChooseMarket(Optional aEvent)
+Dim Index as Integer
+Dim bIsDocLanguage as Boolean
+Dim bIsDocCountry as Boolean
+ oInternetModel = GetControlModel(oDocument.Sheets(0), &quot;CmdInternet&quot;)
+ If Not IsMissing(aEvent) Then
+ Index = StartupModel.lstMarkets.SelectedItems(0)
+ oInternetModel.Tag = Index
+ Else
+ Index = oInternetModel.Tag
+ End If
+ oMarketModel = GetControlModel(oDocument.Sheets(0), &quot;CmdHistory&quot;)
+ sCurCurrency = sMarket(Index,1)
+ If Index = 0 Then
+ HistoryChartSource = sMarket(Index,4)
+ End If
+ sCurStockIDLabel = sMarket(Index,5)
+ sCurExtension = sMarket(Index,8)
+ iValueCol = Val(sMarket(Index,10)
+ If Instr(sCurExtension,&quot;;&quot;) &lt;&gt; 0 Then
+ &apos; Take the german extension as the stock place is Frankfurt
+ sCurExtension = &quot;407&quot;
+ End If
+ sCurChartSource = sMarket(Index,3)
+ bIsDocLanguage = Instr(1, sMarket(Index,6), sDocLanguage, SBBINARY) &lt;&gt; 0
+ bIsDocCountry = Instr(1, sMarket(Index,7), sDocCountry, SBBINARY) &lt;&gt; 0 OR SDocCountry = &quot;&quot;
+ sCurSeparator = sMarket(Index,9)
+ TransactModel.txtRate.CurrencySymbol = sCurCurrency
+ TransactModel.txtFix.CurrencySymbol = sCurCurrency
+ TransactModel.txtMinimum.CurrencySymbol = sCurCurrency
+ bEnableMarket = Index = 0
+ bEnableInternet = sCurChartSource &lt;&gt; &quot;&quot;
+ oMarketModel.Enabled = bEnableMarket
+ oInternetModel.Enabled = bEnableInternet
+ If Not IsMissing(aEvent) Then
+ ConvertStylesCurrencies()
+ bDoUnload = False
+ DlgStartUp.EndExecute()
+ End If
+End Sub
+
+
+Sub ConvertStylesCurrencies()
+Dim m as integer
+Dim aStyleFormat as Object
+Dim StyleName as String
+Dim bAddToList as Boolean
+Dim oStyle as Object
+Dim oStyles as Object
+ UnprotectSheets(oSheets)
+ oFirstSheet.GetCellByPosition(SBCOLUMNID1, SBROWHEADER1).SetString(sCurStockIDLabel)
+ oStyles = oDocument.StyleFamilies.GetbyIndex(0)
+ For m = 0 To oStyles.count-1
+ oStyle = oStyles.GetbyIndex(m)
+ StyleName = oStyle.Name
+ bAddToList = CheckFormatType(oStyle)
+ If bAddToList Then
+ SwitchNumberFormat(ostyle, oDocFormats, sCurCurrency, sCurExtension)
+ End If
+ Next m
+ ProtectSheets(oSheets)
+End Sub
+
+
+Sub SwitchNumberFormat(oObject as Object, oFormats as object, sNewSymbol as String, sNewExtension as String)
+Dim nFormatLanguage as Integer
+Dim nFormatDecimals as Integer
+Dim nFormatLeading as Integer
+Dim bFormatLeading as Integer
+Dim bFormatNegRed as Integer
+Dim bFormatThousands as Integer
+Dim aNewStr as String
+Dim iNumberFormat as Long
+Dim sSimpleStr as String
+Dim nSimpleKey as Long
+Dim aFormat()
+Dim oLocale as New com.sun.star.lang.Locale
+ &apos; Numberformat with the new Symbol as Base for new Format
+ sSimpleStr = &quot;0 [$&quot; &amp; sNewSymbol &amp; &quot;-&quot; &amp; sNewExtension &amp; &quot;]&quot;
+ nSimpleKey = Numberformat(oFormats, sSimpleStr, oDocLocale)
+ On Local Error Resume Next
+ iNumberFormat = oObject.NumberFormat
+ If Err &lt;&gt; 0 Then
+ Msgbox &quot;Error Reading the Number Format&quot;
+ Resume CLERROR
+ End If
+
+ On Local Error GoTo NOKEY
+ aFormat() = oFormats.getByKey(iNumberFormat)
+ On Local Error GoTo 0
+ &apos; set new currency format with according settings
+ nFormatDecimals = aFormat.Decimals
+ nFormatLeading = aFormat.LeadingZeros
+ bFormatNegRed = aFormat.NegativeRed
+ bFormatThousands = aFormat.ThousandsSeparator
+ oLocale = aFormat.Locale
+ aNewStr = oFormats.generateFormat(nSimpleKey, oLocale, bFormatThousands, bFormatNegRed, nFormatDecimals, nFormatLeading)
+ oObject.NumberFormat = Numberformat(oFormats, aNewStr, oLocale)
+ NOKEY:
+ If Err &lt;&gt; 0 Then
+ Resume CLERROR
+ End If
+ CLERROR:
+End Sub
+
+
+Function Numberformat( oFormats as Object, aFormatStr as String, oLocale as Variant )
+Dim nRetkey
+ nRetKey = oFormats.queryKey(aFormatStr, oLocale, True)
+ If nRetKey = -1 Then
+ nRetKey = oFormats.addNew( aFormatStr, oLocale )
+ If nRetKey = -1 Then nRetKey = 0
+ End If
+ Numberformat = nRetKey
+End Function
+
+
+Function CheckFormatType(oStyle as Object)
+Dim oFormatofObject as Object
+ oFormatofObject = oDocFormats.getByKey(oStyle.NumberFormat)
+ CheckFormatType = INT(oFormatOfObject.Type) AND com.sun.star.util.NumberFormat.CURRENCY
+End Function</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Depot.xba b/test/user-template/user/basic/Depot/Depot.xba
new file mode 100644
index 000000000000..358f3eaea3d7
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Depot.xba
@@ -0,0 +1,500 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Depot" script:language="StarBasic">Option Explicit
+
+
+Sub Initialize(Optional bChooseMarketPlace as Boolean)
+Dim bEnableHistory as Boolean
+ GlobalScope.BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+&apos; oMarketModel = GetControlModel(oDocument.Sheets(0), &quot;CmdHistory&quot;)
+&apos; bEnableHistory = oMarketModel.Enabled
+ ToggleWindow(False)
+ Today = Date()
+ bDebugmode = False
+ oDocument = ThisComponent
+ oController = oDocument.GetCurrentController
+ oSheets = oDocument.Sheets
+ oFirstSheet = oSheets(0)
+ oMovementSheet = oSheets(1)
+ oBankSheet = oSheets(2)
+ oDocFormats = oDocument.NumberFormats
+ oNumberFormatter = CreateUnoService(&quot;com.sun.star.util.NumberFormatter&quot;)
+ oNumberFormatter.AttachNumberFormatsSupplier(oDocument)
+ oDocLocale = oDocument.CharLocale
+ sDocLanguage = oDocLocale.Language
+ sDocCountry = oDocLocale.Country
+ LoadLanguage()
+ ToggleWindow(True)
+&apos; oMarketModel.Enabled = bEnableHistory
+ If Not IsMissing(bChooseMarketPlace) Then
+ If bChoosemarketPlace Then
+ ChooseMarket()
+ End If
+ Else
+ ChooseMarket()
+ End If
+ If Not IsMissing(bChooseMarketPlace) Then
+ If bChooseMarketPlace Then
+ oMarketModel.Enabled = bEnableMarket
+ oInternetModel.Enabled = bEnableInternet
+ End If
+ End If
+End Sub
+
+
+Sub Buy()
+ Initialize(True)
+ FillListbox(DlgTransaction.GetControl(&quot;lstBuyStocks&quot;), TransactTitle(SBDIALOGBUY), False)
+ SetupTransactionControls(SBDIALOGBUY)
+ EnableTransactionControls(False)
+ DlgTransaction.Execute()
+End Sub
+
+
+Sub Sell()
+ Initialize(True)
+ If FillListbox(DlgTransaction.GetControl(&quot;lstSellStocks&quot;), TransactTitle(SBDIALOGSELL), True) Then
+ SetupTransactionControls(SBDIALOGSELL)
+ EnableTransactionControls(False)
+ DlgTransaction.Execute()
+ End If
+End Sub
+
+
+Sub Reset()
+Dim TransactionCount as Integer
+Dim StockCount, iStartRow, i as Integer
+Dim oRows, oRange as Object
+Dim StockName as String
+ Initialize(True)
+ &apos; Delete transactions and reset overview
+ If MsgBox(sMsgDeleteAll, SBMSGYESNO+SBMSGQUESTION+SBMSGDEFAULTBTN2, sMsgAuthorization) = 6 Then
+ &apos; Assumption: If and only if there is an overview, then there are transactions, too
+ UnprotectSheets(oSheets)
+ StockCount = GetStocksCount(iStartRow)
+
+ For i = 1 To StockCount
+ StockName = oFirstSheet.GetCellbyPosition(SBCOLUMNNAME1, iStartRow + i).String
+ If oSheets.HasbyName(StockName) Then
+ oSheets.RemoveByName(StockName)
+ End If
+ Next
+ oDocument.AddActionLock
+ RemoveStockRows(oFirstSheet, iStartRow + 1, StockCount)
+ TransactionCount = GetTransactionCount(iStartRow)
+ RemoveStockRows(oMovementSheet, iStartRow + 2, TransactionCount)
+ ProtectSheets(oSheets)
+ oDocument.RemoveActionLock
+ End If
+End Sub
+
+
+Sub TransactionOk
+Dim Sold as Long
+Dim RestQuantity, Value, PartialValue, Profit
+Dim iNewRow as Integer, iRow as Integer
+Dim iStockRow as Long, iRestQuantity as Long
+Dim oNameCell as Object
+Dim CellStockName as String, SelStockName as String
+Dim CurRate as Double
+Dim TransactDate as Date
+Dim LocStockName as String
+ &apos; Check for rate entered
+ If TransactModel.txtRate.Value = 0 Then
+ If TransactModel.Step = SBDIALOGBUY Then
+ If MsgBox(sMsgFreeStock, SBMSGYESNO+SBMSGQUESTION, sMsgConfirm)=7 Then
+ Exit Sub
+ End If
+ Else
+ If MsgBox(sMsgTotalLoss, SBMSGYESNO+SBMSGQUESTION, sMsgConfirm)=7 Then
+ Exit Sub
+ End If
+ End If
+ End If
+ CurRate = TransactModel.txtRate.Value
+ TransactDate = CDateFromISO(TransactModel.txtDate.Date)
+ DlgTransaction.EndExecute()
+ UnprotectSheets(oSheets)
+
+ iNewRow = DuplicateRow(oMovementSheet, &quot;HiddenRow3&quot;)
+
+ If TransactModel.Step = SBDIALOGBUY Then
+ CellStockName = TransactModel.lstBuyStocks.Text
+ If Instr(1,CellStockName,&quot;$&quot;) &lt;&gt; 0 Then
+ CellStockName = &quot;&apos;&quot; &amp; CellStockName &amp; &quot;&apos;&quot;
+ End If
+ oMovementSheet.GetCellByPosition(SBCOLUMNNAME2, iNewRow).String = CellStockName
+ oMovementSheet.GetCellByPosition(SBCOLUMNQUANTITY2, iNewRow).Value = TransactModel.txtQuantity.Value
+ Else
+ CellStockName = DlgTransaction.GetControl(&quot;lstSellStocks&quot;).GetSelectedItem()
+ oMovementSheet.GetCellByPosition(SBCOLUMNNAME2, iNewRow).String = CellStockName
+ oMovementSheet.GetCellByPosition(SBCOLUMNQUANTITY2, iNewRow).Value = -TransactModel.txtQuantity.Value
+ End If
+
+ oMovementSheet.GetCellByPosition(SBCOLUMNDATE2, iNewRow).Value = CDateFromISO(TransactModel.txtDate.Date)
+ oMovementSheet.GetCellByPosition(SBCOLUMNRATE2, iNewRow).Value = TransactModel.txtRate.Value
+ oMovementSheet.GetCellByPosition(SBCOLUMNPROVPERCENT2, iNewRow).Value = TransactModel.txtCommission.EffectiveValue
+ oMovementSheet.GetCellByPosition(SBCOLUMNPROVMIN2, iNewRow).Value = TransactModel.txtMinimum.Value
+ oMovementSheet.GetCellByPosition(SBCOLUMNPROVFIX2, iNewRow).Value = TransactModel.txtFix.Value
+
+ &apos; Buy stocks: Update overview for new stocks
+ If TransactModel.Step = SBDIALOGBUY Then
+ iStockRow = GetStockRowIndex(CellStockName)
+ If iStockRow = -1 Then
+ iNewRow = DuplicateRow(oFirstSheet, &quot;HiddenRow2&quot;)
+ oFirstSheet.GetCellByPosition(SBCOLUMNNAME1, iNewRow).String = CellStockName
+ oFirstSheet.GetCellByPosition(SBCOLUMNID1, iNewRow).String = TransactModel.txtStockID.Text
+ iStockRow = GetStockRowIndex(CellStockName)
+ End If
+ &apos; Sell stocks: Get transaction value, then update Transaction sheet
+ ElseIf TransactModel.Step = SBDIALOGSELL Then
+ Profit = oMovementSheet.GetCellByPosition(SBCOLUMNPROCEEDS2, iNewRow).Value
+ Value = Profit
+ Sold = TransactModel.txtQuantity.Value
+ SelStockName = DlgTransaction.GetControl(&quot;lstSellStocks&quot;).GetSelectedItem()
+ &apos; Go to first name
+ If TransactMode = FIFO Then
+ iRow = SBROWFIRSTTRANSACT2
+ Else
+ iRow = iNewRow-1
+ End If
+
+ &apos; Check that no transaction after split date exists else cancel split
+ Do While Sold &gt; 0
+ oNameCell = oMovementSheet.GetCellByPosition(SBCOLUMNNAME2, iRow)
+ CellStockName = oNameCell.String
+ If CellStockName = SelStockName Then
+ &apos; Update transactions: Note quantity sold
+ RestQuantity = oMovementSheet.GetCellByPosition(SBCOLUMNQTYREST2, iRow).Value
+ &apos; If there still is a rest left ...
+ If RestQuantity &gt; 0 Then
+ If RestQuantity &lt; Sold Then
+ &apos; Recalculate profit of new transaction
+ Profit = Profit - oMovementSheet.GetCellByPosition(SBCOLUMNPRCREST2, iRow).Value
+ AddValueToCellContent(SBCOLUMNQTYSOLD2, iRow, RestQuantity)
+ PartialValue = RestQuantity / Sold * Value
+ AddValueToCellContent(SBCOLUMNREALPROC2, iRow, PartialValue)
+ Sold = Sold - RestQuantity
+ Value = Value - PartialValue
+ Else
+ &apos; Recalculate profit of neTransactModel.lstBuyStocks.Textw transaction
+ PartialValue = oMovementSheet.GetCellByPosition(SBCOLUMNPRCREST2, iRow).Value
+ Profit = Profit - PartialValue/RestQuantity * Sold
+ &apos; Update sold shares cell
+ AddValueToCellContent(SBCOLUMNQTYSOLD2, iRow, Sold)
+ &apos; Update sales turnover cell
+ AddValueToCellContent(SBCOLUMNREALPROC2, iRow, Value)
+ &apos; Update variables for rest of transaction
+ Sold = 0
+ Value = 0
+ End If
+ End If
+ End If
+ iRow = iRow + TransactMode
+ Loop
+ oMovementSheet.GetCellByPosition(SBCOLUMNREALPROFIT2,iNewRow).Value = Profit
+ iStockRow = GetStockRowIndex(SelStockName)
+ iRestQuantity = oFirstSheet.GetCellbyPosition(SBCOLUMNQUANTITY1, iStockRow).Value
+&apos; If iRestQuantity = 0 Then
+&apos; If oSheets.HasbyName(SelStockName) Then
+&apos; oSheets.RemoveByName(SelStockName)
+&apos; End If
+&apos; Else
+
+&apos; End If
+ End If
+ InsertCurrentValue(CurRate, iStockRow,TransactDate)
+ ProtectSheets(oSheets)
+End Sub
+
+
+Sub SelectStockname(aEvent as Object)
+Dim iCurRow as Integer
+Dim CurStockName as String
+ With TransactModel
+ &apos; Find row with stock name
+ If TransactModel.Step = SBDIALOGBUY Then
+ CurStockName = .lstBuyStocks.Text
+ iCurRow = GetStockRowIndex(CurStockName)
+ .txtQuantity.ValueMax = 10000000
+ Else
+ Dim ListBoxList() as String
+ ListBoxList() = GetSelectedListboxItems(aEvent.Source.getModel())
+ CurStockName = ListBoxList(0)
+&apos; CurStockName = DlgTransaction.GetControl(aEvent.Source.getModel.Name).GetSelectedItem()
+ iCurRow = GetStockRowIndex(CurStockName)
+ Dim fdouble as Double
+ fdouble = oFirstSheet.GetCellByPosition(SBCOLUMNQUANTITY1, iCurRow).Value
+ .txtQuantity.Value = fdouble
+ .txtQuantity.ValueMax = oFirstSheet.GetCellByPosition(SBCOLUMNQUANTITY1, iCurRow).Value
+ .txtRate.Value = oFirstSheet.GetCellbyPosition(SBCOLUMNRATE1, iCurRow).Value
+ End If
+ .txtStockID.Enabled = .Step = SBDIALOGBUY
+ .lblStockID.Enabled = .Step = SBDIALOGBUY
+ &apos; Default settings for quantity and rate
+ .txtStockID.Text = GetStockID(CurStockName, iCurRow)
+ End With
+ EnableTransactionControls(CurStockName &lt;&gt; &quot;&quot;)
+ TransactModel.cmdGoOn.DefaultButton = True
+End Sub
+
+
+
+Sub HandleStocks(Mode as Integer, oDialog as Object)
+Dim DividendPerShare, DividendTotal, RestQuantity, OldValue
+Dim SelStockName, CellStockName as String
+Dim oNameCell as Object, oDateCell as Object
+Dim iRow as Integer
+Dim oDividendCell as Object
+Dim Amount
+Dim OldNumber, NewNumber as Integer
+Dim NoteText as String
+Dim TotalStocksCount as Long
+Dim oModel as Object
+ oDocument.AddActionLock
+ oDialog.EndExecute()
+ oModel = oDialog.Model
+ SelStockName = DlgStockRates.GetControl(&quot;lstStockNames&quot;).GetSelectedItem()
+ Select Case Mode
+ Case HANDLEDIVIDEND
+ Dim bTakeTotal as Boolean
+ &apos; Update transactions: Enter dividend paid for all Buy transactions not sold completely
+ bTakeTotal = oModel.optTotal.State = 1
+ If bTakeTotal Then
+ DividendTotal = oModel.txtDividend.Value
+ iRow = GetStockRowIndex(SelStockName)
+ TotalStocksCount = oFirstSheet.GetCellByPosition(SBCOLUMNQUANTITY1,iRow).Value
+ DividendPerShare = DividendTotal/TotalStocksCount
+ Else
+ DividendPerShare = oModel.txtDividend.Value
+ End If
+
+ Case HANDLESPLIT
+ &apos; Store entered values in variables
+ OldNumber = oModel.txtOldRate.Value
+ NewNumber = oModel.txtNewRate.Value
+ SplitDate = CDateFromISO(oModel.txtDate.Date)
+ iRow = SBROWFIRSTTRANSACT2
+ NoteText = cSplit &amp; SplitDate &amp; &quot;, &quot; &amp; oModel.txtOldRate.Value &amp; oModel.lblColon.Label &amp; oModel.txtNewRate.Value
+ Do
+ oNameCell = oMovementSheet.GetCellByPosition(SBCOLUMNNAME2, iRow)
+ CellStockName = oNameCell.String
+ If CellStockName = SelStockName Then
+ oDateCell = oMovementSheet.GetCellByPosition(SBCOLUMNDATE2, iRow)
+ If oDateCell.Value &gt;= SplitDate Then
+ MsgBox sMsgWrongExchangeDate, SBMSGOK + SBMSGSTOP, sMsgError
+ Exit Sub
+ End If
+ End If
+ iRow = iRow + 1
+ Loop Until CellStockName = &quot;&quot;
+ End Select
+ iRow = SBROWFIRSTTRANSACT2
+ UnprotectSheets(oSheets)
+ Do
+ oNameCell = oMovementSheet.GetCellByPosition(SBCOLUMNNAME2, iRow)
+ CellStockName = oNameCell.String
+ If CellStockName = SelStockName Then
+ Select Case Mode
+ Case HANDLEDIVIDEND
+ RestQuantity = oMovementSheet.GetCellByPosition(SBCOLUMNQTYREST2, iRow).Value
+ If RestQuantity &gt; 0 Then
+ oDividendCell = oMovementSheet.GetCellByPosition(SBCOLUMNDIVIDEND2, iRow)
+ OldValue = oDividendCell.Value
+ oDividendCell.Value = OldValue + RestQuantity * DividendPerShare
+ End If
+ Case HANDLESPLIT
+ oDateCell = oMovementSheet.GetCellByPosition(SBCOLUMNDATE2, iRow)
+ SplitCellValue(oMovementSheet, NewNumber, OldNumber, SBCOLUMNQUANTITY2, iRow, NoteText)
+ SplitCellValue(oMovementSheet, OldNumber, NewNumber, SBCOLUMNRATE2, iRow, &quot;&quot;)
+ SplitCellValue(oMovementSheet, NewNumber, OldNumber, SBCOLUMNQTYSOLD2, iRow, &quot;&quot;)
+ End Select
+ End If
+ iRow = iRow + 1
+ Loop Until CellStockName = &quot;&quot;
+ If Mode = HANDLESPLIT Then
+ CalculateChartafterSplit(SelStockName, NewNumber, OldNumber, NoteText, SplitDate)
+ End If
+ oDocument.CalculateAll()
+ ProtectSheets(oSheets)
+ oDocument.RemoveActionLock
+End Sub
+
+
+Sub CancelStockRate()
+ DlgStockRates.EndExecute()
+End Sub
+
+
+Sub CancelTransaction()
+ DlgTransaction.EndExecute()
+End Sub
+
+
+Sub CommitStockRate()
+Dim CurStep as Integer
+ CurStep = StockRatesModel.Step
+ Select Case CurStep
+ Case 1
+ &apos; Check for quantity entered
+ If StockRatesModel.txtDividend.Value = 0 Then
+ MsgBox sMsgNoDividend, SBMSGSTOP+SBMSGSTOP, sMsgError
+ Exit Sub
+ End If
+ HandleStocks(HANDLEDIVIDEND, DlgStockRates)
+ Case 2
+ HandleStocks(HANDLESPLIT, DlgStockRates)
+ Case 3
+ InsertCompanyHistory()
+ End Select
+End Sub
+
+
+Sub EnableTransactionControls(bEnable as Boolean)
+ With TransactModel
+ .lblQuantity.Enabled = bEnable
+ .txtQuantity.Enabled = bEnable
+ .lblRate.Enabled = bEnable
+ .txtRate.Enabled = bEnable
+ .lblDate.Enabled = bEnable
+ .txtDate.Enabled = bEnable
+ .lblCommission.Enabled = bEnable
+ .txtCommission.Enabled = bEnable
+ .lblMinimum.Enabled = bEnable
+ .txtMinimum.Enabled = bEnable
+ .lblFix.Enabled = bEnable
+ .txtFix.Enabled = bEnable
+ If TransactModel.Step = SBDIALOGSELL Then
+ .cmdGoOn.Enabled = Ubound(TransactModel.lstSellStocks.SelectedItems()) &gt; -1
+ DlgTransaction.GetControl(&quot;lstSellStocks&quot;).SetFocus()
+ Else
+ .cmdGoOn.Enabled = TransactModel.lstBuyStocks.Text &lt;&gt; &quot;&quot;
+ DlgTransaction.GetControl(&quot;lstBuyStocks&quot;).SetFocus()
+ End If
+ If bEnable Then
+ TransactModel.cmdGoOn.DefaultButton = True
+ End If
+ End With
+End Sub
+
+
+Sub SetupTransactionControls(CurStep as Integer)
+ DlgReference = DlgTransaction
+ With TransactModel
+ .txtDate.Date = CDateToISO(Date())
+ .txtDate.DateMax = CDateToISO(Date())
+ .txtStockID.Enabled = False
+ .lblStockID.Enabled = False
+ .lblStockID.Label = sCurStockIDLabel
+ .txtRate.CurrencySymbol = sCurCurrency
+ .txtFix.CurrencySymbol = sCurCurrency
+ .Step = CurStep
+ End With
+ DlgTransaction.Title = TransactTitle(CurStep)
+ CellValuetoControl(oBankSheet, TransactModel.txtCommission, &quot;ProvisionPercent&quot;)
+ CellValuetoControl(oBankSheet, TransactModel.txtMinimum, &quot;ProvisionMinimum&quot;)
+ CellValuetoControl(oBankSheet, TransactModel.txtFix, &quot;ProvisionFix&quot;)
+End Sub
+
+
+Sub AddShortCuttoControl()
+Dim SelCompany as String
+Dim iRow, SelIndex as Integer
+ SelIndex = DlgTransaction.GetControl(&quot;lstBuyStocks&quot;).GetSelectedItemPos()
+ If SelIndex &lt;&gt; -1 Then
+ SelCompany = TransactModel.lstBuyStocks.StringItemList(SelIndex)
+ iRow = GetStockRowIndex(SelCompany)
+ If iRow &lt;&gt; -1 Then
+ TransactModel.txtStockID.Text = oFirstSheet.GetCellByPosition(SBCOLUMNID1,iRow).String
+ TransactModel.txtRate.Value = oFirstSheet.GetCellByPosition(SBCOLUMNRATE1,iRow).Value
+ Else
+ TransactModel.txtStockID.Text = &quot;&quot;
+ TransactModel.txtRate.Value = 0
+ End If
+ Else
+ TransactModel.txtStockID.Text = &quot;&quot;
+ TransactModel.txtRate.Value = 0
+ End If
+End Sub
+
+
+Sub OpenStockRatePage(aEvent)
+Dim CurStep as Integer
+ Initialize(True)
+ CurStep = aEvent.Source.Model.Tag
+ If FillListbox(DlgStockRates.GetControl(&quot;lstStockNames&quot;), StockRatesTitle(CurStep), True) Then
+ StockRatesModel.Step = CurStep
+ ToggleStockRateControls(False, CurStep)
+ InitializeStockRatesControls(CurStep)
+ DlgStockRates.Execute()
+ End If
+End Sub
+
+
+Sub SelectStockNameForRates()
+Dim StockName as String
+ StockName = DlgStockRates.GetControl(&quot;lstStockNames&quot;).GetSelectedItem()
+ If StockName &lt;&gt; &quot;&quot; Then
+ StockRatesModel.txtStockID.Text = GetStockID(StockName)
+ ToggleStockRateControls(True, StockRatesModel.Step)
+ End If
+ StockRatesModel.cmdGoOn.DefaultButton = True
+End Sub
+
+
+Sub ToggleStockRateControls(bDoEnable as Boolean, CurStep as Integer)
+ With StockRatesModel
+ .lblStockID.Enabled = False
+ .txtStockID.Enabled = False
+ .cmdGoOn.Enabled = Ubound(StockRatesModel.lstStockNames.SelectedItems()) &lt;&gt; -1
+ Select Case CurStep
+ Case 1
+ .optPerShare.Enabled = bDoEnable
+ .optTotal.Enabled = bDoEnable
+ .lblDividend.Enabled = bDoEnable
+ .txtDividend.Enabled = bDoEnable
+ Case 2
+ .lblExchangeRate.Enabled = bDoEnable
+ .lblDate.Enabled = bDoEnable
+ .lblColon.Enabled = bDoEnable
+ .txtOldRate.Enabled = bDoEnable
+ .txtNewRate.Enabled = bDoEnable
+ .txtDate.Enabled = bDoEnable
+ Case 3
+ .lblStartDate.Enabled = bDoEnable
+ .lblEndDate.Enabled = bDoEnable
+ .txtStartDate.Enabled = bDoEnable
+ .txtEndDate.Enabled = bDoEnable
+ .hlnInterval.Enabled = bDoEnable
+ .optDaily.Enabled = bDoEnable
+ .optWeekly.Enabled = bDoEnable
+ End Select
+ End With
+End Sub
+
+
+Sub InitializeStockRatesControls(CurStep as Integer)
+ DlgReference = DlgStockRates
+ DlgStockRates.Title = StockRatesTitle(CurStep)
+ With StockRatesModel
+ .txtStockID.Text = &quot;&quot;
+ .lblStockID.Label = sCurStockIDLabel
+ Select Case CurStep
+ Case 1
+ .txtDividend.Value = 0
+ .optPerShare.State = 1
+ .txtDividend.CurrencySymbol = sCurCurrency
+ Case 2
+ .txtOldRate.Value = 1
+ .txtNewRate.Value = 1
+ .txtDate.Date = CDateToISO(Date())
+ Case 3
+ .txtStartDate.DateMax = CDateToISO(CDate(Date())-1)
+ .txtEndDate.DateMax = CDateToISO(CDate(Date())-1)
+ .txtStartDate.Date = CDateToISO(CDate(Date())-8)
+ .txtEndDate.Date = CDateToISO(CDate(Date())-1)
+ .optDaily.State = 1
+ End Select
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Dialog2.xdl b/test/user-template/user/basic/Depot/Dialog2.xdl
new file mode 100644
index 000000000000..652acaa1942a
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Dialog2.xdl
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Dialog2" dlg:tab-index="0" dlg:left="91" dlg:top="24" dlg:width="220" dlg:height="128" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_DIALOG_SELLBUY" dlg:closeable="true" dlg:moveable="true">
+ <dlg:bulletinboard>
+ <dlg:text dlg:id="lblStockNames" dlg:tab-index="0" dlg:left="6" dlg:top="6" dlg:width="102" dlg:height="8" dlg:value="lblStockNames"/>
+ <dlg:menulist dlg:id="lstSellStocks" dlg:tab-index="1" dlg:left="6" dlg:top="17" dlg:width="102" dlg:height="12" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_1_LSTSELLSTOCKS" dlg:spin="true">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Depot.Depot.SelectStockname?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ <dlg:combobox dlg:id="lstBuyStocks" dlg:tab-index="2" dlg:left="6" dlg:top="17" dlg:width="102" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_2_LSTBUYSTOCKS" dlg:spin="true">
+ <script:event script:event-name="on-textchange" script:macro-name="vnd.sun.star.script:Depot.Depot.SelectStockname?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:combobox>
+ <dlg:text dlg:id="lblStockID" dlg:tab-index="3" dlg:left="150" dlg:top="6" dlg:width="66" dlg:height="8" dlg:value="lblStockID"/>
+ <dlg:textfield dlg:id="txtStockID" dlg:tab-index="4" dlg:left="150" dlg:top="17" dlg:width="40" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_TXTSTOCKID_SELLBUY"/>
+ <dlg:text dlg:id="lblQuantity" dlg:tab-index="5" dlg:left="6" dlg:top="36" dlg:width="57" dlg:height="8" dlg:value="lblQuantity"/>
+ <dlg:numericfield dlg:id="txtQuantity" dlg:tab-index="6" dlg:left="6" dlg:top="47" dlg:width="46" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_TXTQUANTITY" dlg:decimal-accuracy="0" dlg:value-min="1"/>
+ <dlg:currencyfield dlg:id="txtRate" dlg:tab-index="7" dlg:left="68" dlg:top="47" dlg:width="40" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_TXTRATE" dlg:value-min="0"/>
+ <dlg:datefield dlg:id="txtDate" dlg:tab-index="8" dlg:left="150" dlg:top="47" dlg:width="50" dlg:height="12" dlg:tag="Dialog2" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_TXTDATE" dlg:strict-format="true" dlg:spin="true">
+ <script:event script:event-name="on-textchange" script:macro-name="vnd.sun.star.script:Depot.tools.CheckInputDate?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:datefield>
+ <dlg:text dlg:id="lblRate" dlg:tab-index="9" dlg:left="68" dlg:top="36" dlg:width="77" dlg:height="8" dlg:value="lblRate"/>
+ <dlg:text dlg:id="lblDate" dlg:tab-index="10" dlg:left="150" dlg:top="37" dlg:width="66" dlg:height="8" dlg:value="lblDate"/>
+ <dlg:formattedfield dlg:id="txtCommission" dlg:tab-index="11" dlg:left="6" dlg:top="90" dlg:width="40" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_TXTCOMMISSION" dlg:format-code="0,00%" dlg:format-locale="de;DE"/>
+ <dlg:text dlg:id="lblCommission" dlg:tab-index="12" dlg:left="6" dlg:top="79" dlg:width="60" dlg:height="8" dlg:value="lblCommission"/>
+ <dlg:currencyfield dlg:id="txtFix" dlg:tab-index="13" dlg:left="68" dlg:top="90" dlg:width="40" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_TXTFIX" dlg:value-min="0"/>
+ <dlg:currencyfield dlg:id="txtMinimum" dlg:tab-index="14" dlg:left="150" dlg:top="90" dlg:width="40" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_TXTMINIMUM" dlg:value-min="0"/>
+ <dlg:text dlg:id="lblFix" dlg:tab-index="15" dlg:left="68" dlg:top="79" dlg:width="71" dlg:height="8" dlg:value="lblFix"/>
+ <dlg:text dlg:id="lblMinimum" dlg:tab-index="16" dlg:left="150" dlg:top="79" dlg:width="66" dlg:height="8" dlg:value="lblMinimum"/>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="17" dlg:left="58" dlg:top="109" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_CMDCANCEL_SELLBUY" dlg:value="cmdCancel">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Depot.Depot.CancelTransaction?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdGoOn" dlg:tab-index="18" dlg:left="111" dlg:top="109" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_CMDGOON_SELLBUY" dlg:value="cmdGoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Depot.Depot.TransactionOk?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:fixedline dlg:id="hlnCommission" dlg:tab-index="19" dlg:left="6" dlg:top="66" dlg:width="210" dlg:height="8" dlg:value="hlnCommission"/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Dialog3.xdl b/test/user-template/user/basic/Depot/Dialog3.xdl
new file mode 100644
index 000000000000..87bda0197f28
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Dialog3.xdl
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Dialog3" dlg:left="161" dlg:top="81" dlg:width="176" dlg:height="119" dlg:page="3" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_DIALOG_SPLIT" dlg:closeable="true" dlg:moveable="true">
+ <dlg:bulletinboard>
+ <dlg:text dlg:id="lblStockNames" dlg:tab-index="0" dlg:left="6" dlg:top="6" dlg:width="98" dlg:height="8" dlg:value="lblStockNames"/>
+ <dlg:menulist dlg:id="lstStockNames" dlg:tab-index="1" dlg:left="5" dlg:top="17" dlg:width="102" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_LSTSTOCKNAMES" dlg:spin="true">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Depot.Depot.SelectStockNameForRates?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ <dlg:textfield dlg:id="txtStockID" dlg:tab-index="2" dlg:left="120" dlg:top="17" dlg:width="50" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_TXTSTOCKID_SPLIT"/>
+ <dlg:datefield dlg:id="txtStartDate" dlg:tab-index="3" dlg:left="63" dlg:top="37" dlg:width="50" dlg:height="12" dlg:page="3" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_3_TXTSTARTDATE" dlg:spin="true">
+ <script:event script:event-name="on-textchange" script:macro-name="vnd.sun.star.script:Depot.tools.CheckInputDate?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:datefield>
+ <dlg:datefield dlg:id="txtEndDate" dlg:tab-index="4" dlg:left="63" dlg:top="53" dlg:width="50" dlg:height="12" dlg:page="3" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_3_TXTENDDATE" dlg:spin="true">
+ <script:event script:event-name="on-textchange" script:macro-name="vnd.sun.star.script:Depot.tools.CheckInputDate?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:datefield>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="optDaily" dlg:tab-index="5" dlg:left="12" dlg:top="83" dlg:width="75" dlg:height="10" dlg:page="3" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_3_OPTDAILY" dlg:value="optDaily"/>
+ <dlg:radio dlg:id="optWeekly" dlg:tab-index="6" dlg:left="101" dlg:top="83" dlg:width="69" dlg:height="10" dlg:page="3" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_3_OPTWEEKLY" dlg:value="optWeekly"/>
+ </dlg:radiogroup>
+ <dlg:datefield dlg:id="txtDate" dlg:tab-index="7" dlg:left="71" dlg:top="73" dlg:width="50" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_2_TXTDATE" dlg:spin="true">
+ <script:event script:event-name="on-textchange" script:macro-name="vnd.sun.star.script:Depot.tools.CheckInputDate?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:datefield>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="optPerShare" dlg:tab-index="8" dlg:left="6" dlg:top="37" dlg:width="69" dlg:height="10" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_1_OPTPERSHARE" dlg:value="optPerShare"/>
+ <dlg:radio dlg:id="optTotal" dlg:tab-index="9" dlg:left="6" dlg:top="51" dlg:width="69" dlg:height="10" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_1_OPTTOTAL" dlg:value="optTotal"/>
+ </dlg:radiogroup>
+ <dlg:currencyfield dlg:id="txtDividend" dlg:tab-index="10" dlg:left="6" dlg:top="80" dlg:width="50" dlg:height="12" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_1_TXTDIVIDEND" dlg:value-min="0" dlg:spin="true"/>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="11" dlg:left="41" dlg:top="98" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_CMDCANCEL_SPLIT" dlg:value="cmdCancel">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Depot.Depot.CancelStockRate?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdGoOn" dlg:tab-index="12" dlg:left="94" dlg:top="98" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_CMDGOON_SPLIT" dlg:value="cmdGoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Depot.Depot.CommitStockRate?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:text dlg:id="lblStockID" dlg:tab-index="13" dlg:left="120" dlg:top="6" dlg:width="50" dlg:height="8" dlg:value="lblStockID"/>
+ <dlg:text dlg:id="lblDividend" dlg:tab-index="14" dlg:left="6" dlg:top="68" dlg:width="73" dlg:height="8" dlg:page="1" dlg:value="lblDividend"/>
+ <dlg:text dlg:id="lblExchangeRate" dlg:tab-index="15" dlg:left="6" dlg:top="39" dlg:width="92" dlg:height="8" dlg:page="2" dlg:value="lblExchangeRate"/>
+ <dlg:text dlg:id="lblColon" dlg:tab-index="16" dlg:left="40" dlg:top="55" dlg:width="5" dlg:height="8" dlg:page="2" dlg:value=" :"/>
+ <dlg:text dlg:id="lblDate" dlg:tab-index="17" dlg:left="5" dlg:top="75" dlg:width="66" dlg:height="8" dlg:page="2" dlg:value="lblDate"/>
+ <dlg:fixedline dlg:id="hlnInterval" dlg:tab-index="18" dlg:left="6" dlg:top="72" dlg:width="164" dlg:height="8" dlg:page="3" dlg:value="hlnInterval"/>
+ <dlg:text dlg:id="lblStartDate" dlg:tab-index="19" dlg:left="6" dlg:top="39" dlg:width="53" dlg:height="8" dlg:page="3" dlg:value="lblStartDate"/>
+ <dlg:text dlg:id="lblEndDate" dlg:tab-index="20" dlg:left="6" dlg:top="55" dlg:width="53" dlg:height="8" dlg:page="3" dlg:value="lblEndDate"/>
+ <dlg:numericfield dlg:id="txtOldRate" dlg:tab-index="21" dlg:left="6" dlg:top="53" dlg:width="30" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_2_TXTOLDRATE" dlg:decimal-accuracy="0" dlg:value-min="1" dlg:spin="true"/>
+ <dlg:numericfield dlg:id="txtNewRate" dlg:tab-index="22" dlg:left="50" dlg:top="53" dlg:width="30" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_2_TXTNEWRATE" dlg:decimal-accuracy="0" dlg:value-min="1" dlg:spin="true"/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Dialog4.xdl b/test/user-template/user/basic/Depot/Dialog4.xdl
new file mode 100644
index 000000000000..f5c86ce47355
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Dialog4.xdl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Dialog4" dlg:left="161" dlg:top="81" dlg:width="160" dlg:height="120" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_DIALOG_HISTORY" dlg:closeable="true" dlg:moveable="true">
+ <dlg:bulletinboard>
+ <dlg:text dlg:id="lblWelcome" dlg:tab-index="0" dlg:left="6" dlg:top="6" dlg:width="148" dlg:height="49" dlg:value="lblWelcome" dlg:multiline="true"/>
+ <dlg:text dlg:id="lblHint" dlg:tab-index="1" dlg:left="6" dlg:top="73" dlg:width="148" dlg:height="26" dlg:value="lblHint" dlg:multiline="true"/>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="2" dlg:left="28" dlg:top="100" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_CMDCANCEL_HISTORY" dlg:value="cmdCancel">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Depot.Currency.CloseStartUpDialog?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdGoOn" dlg:tab-index="3" dlg:left="84" dlg:top="100" dlg:width="52" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_0_CMDGOON_HISTORY" dlg:value="cmdGoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Depot.Currency.ChooseMarket?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:menulist dlg:id="lstMarkets" dlg:tab-index="4" dlg:left="6" dlg:top="57" dlg:width="148" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGDEPOT_LSTMARKETS" dlg:spin="true">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Depot.Currency.EnableGoOnButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Internet.xba b/test/user-template/user/basic/Depot/Internet.xba
new file mode 100644
index 000000000000..f8b646d54133
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Internet.xba
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Internet" script:language="StarBasic">REM ***** BASIC *****
+Option Explicit
+Public sNewSheetName as String
+
+Function CheckHistoryControls()
+Dim bLocGoOn as Boolean
+Dim Firstdate as Date
+Dim LastDate as Date
+ LastDate = CDateFromISO(StockRatesModel.txtEndDate.Date)
+ FirstDate = CDateFromISO(StockRatesModel.txtStartDate.Date)
+ bLocGoOn = FirstDate &lt;&gt; 0 And LastDate &lt;&gt; 0
+ If bLocGoOn Then
+ If FirstDate &gt;= LastDate Then
+ Msgbox(sMsgStartDatebeforeEndDate,16, sProductname)
+ bLocGoOn = False
+ End If
+ End If
+ CheckHistoryControls = bLocGoon
+End Function
+
+
+Sub InsertCompanyHistory()
+Dim StockName as String
+Dim CurRow as Integer
+Dim sMsgInternetError as String
+Dim CurRate as Double
+Dim oCell as Object
+Dim sStockID as String
+Dim ChartSource as String
+ If CheckHistoryControls() Then
+ StartDate = CDateFromISO(StockRatesModel.txtStartDate.Date)
+ EndDate = CDateFromISO(StockRatesModel.txtEndDate.Date)
+ DlgStockRates.EndExecute()
+ If StockRatesModel.optDaily.State = 1 Then
+ sInterval = &quot;d&quot;
+ iStep = 1
+ ElseIf StockRatesModel.optWeekly.State = 1 Then
+ sInterval = &quot;w&quot;
+ iStep = 7
+ StartDate = StartDate - WeekDay(StartDate) + 2
+ EndDate = EndDate - WeekDay(EndDate) + 2
+ End If
+ iEndDay = Day(EndDate)
+ iEndMonth = Month(EndDate)
+ iEndYear = Year(EndDate)
+ iStartDay = Day(StartDate)
+ iStartMonth = Month(StartDate)
+ iStartYear = Year(StartDate)
+&apos; oDocument.AddActionLock()
+ UnprotectSheets(oSheets)
+ InitializeStatusline(&quot;&quot;, 10, 1)
+ oBackGroundSheet = oSheets.GetbyName(&quot;Background&quot;)
+ StockName = DlgStockRates.GetControl(&quot;lstStockNames&quot;).GetSelectedItem()
+ CurRow = GetStockRowIndex(Stockname)
+ sStockID = oFirstSheet.GetCellByPosition(SBCOLUMNID1, CurRow).String
+ ChartSource = ReplaceString(HistoryChartSource, sStockID, &quot;&lt;StockID&gt;&quot;)
+ ChartSource = ReplaceString(ChartSource, iStartDay, &quot;&lt;StartDay&gt;&quot;)
+ ChartSource = ReplaceString(ChartSource, cStr(iStartMonth-1), &quot;&lt;StartMonth&gt;&quot;)
+ ChartSource = ReplaceString(ChartSource, iStartYear, &quot;&lt;StartYear&gt;&quot;)
+ ChartSource = ReplaceString(ChartSource, iEndDay, &quot;&lt;EndDay&gt;&quot;)
+ ChartSource = ReplaceString(ChartSource, cStr(iEndMonth-1), &quot;&lt;EndMonth&gt;&quot;)
+ ChartSource = ReplaceString(ChartSource, iEndYear, &quot;&lt;EndYear&gt;&quot;)
+ ChartSource = ReplaceString(ChartSource, sInterval, &quot;&lt;interval&gt;&quot;)
+ oStatusLine.SetValue(2)
+ If GetCurrentRate(ChartSource, CurRate, 1) Then
+ oStatusLine.SetValue(8)
+ UpdateValue(StockName, Today, CurRate)
+ oStatusLine.SetValue(9)
+ UpdateChart(StockName)
+ oStatusLine.SetValue(10)
+ Else
+ sMsgInternetError = Stockname &amp; &quot;: &quot; &amp; sNoInternetDataAvailable &amp; chr(13) &amp; sCheckInternetSettings
+ Msgbox(sMsgInternetError, 16, sProductname)
+ End If
+ ProtectSheets(oSheets)
+ oStatusLine.End
+ If oSheets.HasbyName(sNewSheetName) Then
+ oController.ActiveSheet = oSheets.GetByName(sNewSheetName)
+ End If
+&apos; oDocument.RemoveActionLock()
+ End If
+End Sub
+
+
+
+Sub InternetUpdate()
+Dim i as Integer
+Dim StocksCount as Integer
+Dim iStartRow as Integer
+Dim sUrl as String
+Dim StockName as String
+Dim CurRate as Double
+Dim oCell as Object
+Dim sMsgInternetError as String
+Dim sStockID as String
+Dim ChartSource as String
+&apos; oDocument.AddActionLock()
+ Initialize(True)
+ UnprotectSheets(oSheets)
+ StocksCount = GetStocksCount(iStartRow)
+ InitializeStatusline(&quot;&quot;, StocksCount + 1, 1)
+ Today = CDate(Date)
+ For i = iStartRow + 1 To iStartRow + StocksCount
+ StockName = oFirstSheet.GetCellbyPosition(SBCOLUMNNAME1, i).String
+ sStockID = oFirstSheet.GetCellByPosition(SBCOLUMNID1, i).String
+ ChartSource = ReplaceString(sCurChartSource, sStockID, &quot;&lt;StockID&gt;&quot;)
+ If GetCurrentRate(ChartSource, CurRate, 0) Then
+ InsertCurrentValue(CurRate, i, Now)
+ Else
+ sMsgInternetError = Stockname &amp; &quot;: &quot; &amp; sNoInternetDataAvailable &amp; chr(13) &amp; sCheckInternetSettings
+ Msgbox(sMsgInternetError, 16, sProductname)
+ End If
+ oStatusline.SetValue(i - iStartRow + 1)
+ Next
+ ProtectSheets(oSheets)
+ oStatusLine.End
+&apos; oDocument.RemoveActionLock
+End Sub
+
+
+
+Function GetCurrentRate(sUrl as String, fValue As Double, iValueRow as Integer) as Boolean
+Dim sFilter As String
+Dim sOptions As String
+Dim oLinkSheet As Object
+Dim sDate as String
+ If oSheets.hasByName(&quot;Link&quot;) Then
+ oLinkSheet = oSheets.getByName(&quot;Link&quot;)
+ Else
+ oLinkSheet = oDocument.createInstance(&quot;com.sun.star.sheet.Spreadsheet&quot;)
+ oSheets.insertByName(&quot;Link&quot;, oLinkSheet)
+ oLinkSheet.IsVisible = False
+ End If
+
+ sFilter = &quot;Text - txt - csv (StarCalc)&quot;
+ sOptions = sCurSeparator &amp; &quot;,34,SYSTEM,1,1/10/2/10/3/10/4/10/5/10/6/10/7/10/8/10/9/10&quot;
+
+ oLinkSheet.LinkMode = com.sun.star.sheet.SheetLinkMode.NONE
+ oLinkSheet.link(sUrl, &quot;&quot;, sFilter, sOptions, 1 )
+ fValue = oLinkSheet.getCellByPosition(iValueCol, iValueRow).Value
+ If fValue = 0 Then
+ Dim sValue as String
+ sValue = oLinkSheet.getCellByPosition(1, iValueRow).String
+ sValue = ReplaceString(sValue, &quot;.&quot;,&quot;,&quot;)
+ fValue = Val(sValue)
+ End If
+ GetCurrentRate = fValue &lt;&gt; 0
+End Function
+
+
+
+Sub UpdateValue(ByVal sName As String, fDate As Double, fValue As Double )
+Dim oSheet As Object
+Dim iColumn As Long
+Dim iRow As Long
+Dim i as Integer
+Dim oCell As Object
+Dim LastDate as Date
+Dim bLeaveLoop as Boolean
+Dim RemoveCount as Integer
+Dim iLastRow as Integer
+Dim iLastLinkRow as Integer
+Dim dDate as Date
+Dim CurDate as Date
+Dim oLinkSheet as Object
+Dim StartIndex as Integer
+Dim iCellValue as Long
+ &apos; Insert Sheet with Company - Chart
+ sName = CheckNewSheetname(oSheets, sName)
+ If NOT oSheets.hasByName(sName) Then
+ oSheets.CopybyName(&quot;Background&quot;, sName, oSheets.Count)
+ oSheet = oSheets.getByName(sName)
+ iCurRow = SBSTARTROW
+ iMaxRow = iCurRow
+ oCell = oSheet.getCellByPosition(SBDATECOLUMN, iCurRow)
+ oCell.Value = fDate
+ End If
+ sNewSheetName = sName
+ oLinkSheet = oSheets.GetByName(&quot;Link&quot;)
+ oSheet = oSheets.getByName(sName)
+ iLastRow = GetLastUsedRow(oSheet)- 2
+ iLastLinkRow = GetLastUsedRow(oLinkSheet)
+ iCurRow = iLastRow
+ bLeaveLoop = False
+ RemoveCount = 0
+ &apos; Delete all Cells in Date Area
+ Do
+ oCell = oSheet.GetCellbyPosition(SBDATECOLUMN,iCurRow)
+ If oCell.CellStyle = sColumnHeader Then
+ bLeaveLoop = True
+ StartIndex = iCurRow
+ iCurRow = iCurRow + 1
+ Else
+ RemoveCount = RemoveCount + 1
+ iCurRow = iCurRow - 1
+ End If
+ Loop Until bLeaveLoop
+ If RemoveCount &gt; 1 Then
+ oSheet.Rows.RemoveByIndex(iCurRow, RemoveCount-1)
+ End If
+ For i = 1 To iLastLinkRow
+ oCell = oSheet.GetCellbyPosition(SBDATECOLUMN,iCurRow)
+ iCellValue = oLinkSheet.GetCellByPosition(0,i).Value
+ If iCellValue &gt; 0 Then
+ oCell.SetValue(oLinkSheet.GetCellByPosition(0,i).Value)
+ Else
+ oCell.SetValue(StringToDate(oLinkSheet.GetCellByPosition(0,i).String)
+ End If
+ oCell = oSheet.GetCellbyPosition(SBVALUECOLUMN,iCurRow)
+ oCell.SetValue(oLinkSheet.GetCellByPosition(4,i).Value)
+ If i &lt; iLastLinkRow Then
+ iCurRow = iCurRow + 1
+ oSheet.Rows.InsertByIndex(iCurRow,1)
+ End If
+ Next i
+ iMaxRow = iCurRow
+End Sub
+
+
+Function StringToDate(DateString as String) as Date
+Dim ShortMonths(11)
+Dim DateList() as String
+Dim MaxIndex as Integer
+Dim i as Integer
+ ShortMonths(0) = &quot;Jan&quot;
+ ShortMonths(1) = &quot;Feb&quot;
+ ShortMonths(2) = &quot;Mar&quot;
+ ShortMonths(3) = &quot;Apr&quot;
+ ShortMonths(4) = &quot;May&quot;
+ ShortMonths(5) = &quot;Jun&quot;
+ ShortMonths(6) = &quot;Jul&quot;
+ ShortMonths(7) = &quot;Aug&quot;
+ ShortMonths(8) = &quot;Sep&quot;
+ ShortMonths(9) = &quot;Oct&quot;
+ ShortMonths(10) = &quot;Nov&quot;
+ ShortMonths(11) = &quot;Dec&quot;
+ For i = 0 To 11
+ DateString = ReplaceString(DateString,CStr(i+1),ShortMonths(i))
+ Next i
+ DateString = ReplaceString(DateString, &quot;.&quot;, &quot;-&quot;)
+ StringToDate = CDate(DateString)
+End Function
+
+
+Sub UpdateChart(sName As String)
+Dim oSheet As Object
+Dim oCell As Object, oCursor As Object
+Dim oChartRange As Object
+Dim oEmbeddedChart As Object, oCharts As Object
+Dim oChart As Object, oDiagram As Object
+Dim oYAxis As Object, oXAxis As Object
+Dim fMin As Double, fMax As Double
+Dim nDateFormat As Long
+Dim aPos As Variant
+Dim aSize As Variant
+Dim oContainerChart as Object
+Dim mRangeAddresses(0) as New com.sun.star.table.CellRangeAddress
+ mRangeAddresses(0).Sheet = GetSheetIndex(oSheets, sNewSheetName)
+ mRangeAddresses(0).StartColumn = SBDATECOLUMN
+ mRangeAddresses(0).StartRow = SBSTARTROW-1
+ mRangeAddresses(0).EndColumn = SBVALUECOLUMN
+ mRangeAddresses(0).EndRow = iMaxRow
+
+ oSheet = oDocument.Sheets.getByName(sNewSheetName)
+ oCharts = oSheet.Charts
+
+ If Not oCharts.hasElements Then
+ oSheet.GetCellbyPosition(2,2).SetString(sName)
+ oChartRange = oSheet.getCellRangeByPosition(SBDATECOLUMN,6,5,SBSTARTROW-3)
+ aPos = oChartRange.Position
+ aSize = oChartRange.Size
+
+ Dim oRectangleShape As New com.sun.star.awt.Rectangle
+ oRectangleShape.X = aPos.X
+ oRectangleShape.Y = aPos.Y
+ oRectangleShape.Width = aSize.Width
+ oRectangleShape.Height = aSize.Height
+ oCharts.addNewByName(sName, oRectangleShape, mRangeAddresses(), True, False)
+ oContainerChart = oCharts.getByName(sName)
+ oChart = oContainerChart.EmbeddedObject
+ oChart.Title.String = &quot;&quot;
+ oChart.HasLegend = False
+ oChart.diagram = oChart.createInstance(&quot;com.sun.star.chart.XYDiagram&quot;)
+ oDiagram = oChart.Diagram
+ oDiagram.DataRowSource = com.sun.star.chart.ChartDataRowSource.COLUMNS
+ oChart.Area.LineStyle = com.sun.star.drawing.LineStyle.SOLID
+ oXAxis = oDiagram.XAxis
+ oXAxis.TextBreak = False
+ nDateFormat = oXAxis.NumberFormats.getStandardFormat(com.sun.star.util.NumberFormat.DATE, oDocLocale)
+
+ oYAxis = oDiagram.getYAxis()
+ oYAxis.AutoOrigin = True
+ Else
+ oChart = oCharts(0)
+ oChart.Ranges = mRangeAddresses()
+ oChart.HasRowHeaders = False
+ oEmbeddedChart = oChart.EmbeddedObject
+ oDiagram = oEmbeddedChart.Diagram
+ oXAxis = oDiagram.XAxis
+ End If
+ oXAxis.AutoStepMain = False
+ oXAxis.AutoStepHelp = False
+ oXAxis.StepMain = iStep
+ oXAxis.StepHelp = iStep
+ fMin = oSheet.getCellByPosition(SBDATECOLUMN,SBSTARTROW).Value
+ fMax = oSheet.getCellByPosition(SBDATECOLUMN,iMaxRow).Value
+ oXAxis.Min = fMin
+ oXAxis.Max = fMax
+ oXAxis.AutoMin = False
+ oXAxis.AutoMax = False
+End Sub
+
+
+Sub CalculateChartafterSplit(SheetName, NewNumber, OldNumber, NoteText, SplitDate)
+Dim oSheet as Object
+Dim i as Integer
+Dim oValueCell as Object
+Dim oDateCell as Object
+Dim bLeaveLoop as Boolean
+ If oSheets.HasbyName(SheetName) Then
+ oSheet = oSheets.GetbyName(SheetName)
+ i = 0
+ bLeaveLoop = False
+ Do
+ oValueCell = oSheet.GetCellbyPosition(SBVALUECOLUMN, SBSTARTROW + i)
+ If oValueCell.CellStyle = CurrCellStyle Then
+ SplitCellValue(oSheet, OldNumber, NewNumber, SBVALUECOLUMN, SBSTARTROW + i, &quot;&quot;)
+ i = i + 1
+ Else
+ bLeaveLoop = True
+ End If
+ Loop Until bLeaveLoop
+ oDateCell = oSheet.GetCellbyPosition(SBDATECOLUMN, SBSTARTROW + i-1)
+ oDateCell.Annotation.SetString(NoteText)
+ End If
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Lang_de.xba b/test/user-template/user/basic/Depot/Lang_de.xba
new file mode 100644
index 000000000000..1fe55bcca0b6
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Lang_de.xba
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_de" script:language="StarBasic">Option Explicit
+
+Sub LoadGermanLanguage()
+
+ sProductname = GetProductname
+ sOK = &quot;~OK&quot;
+ sCancel = &quot;Abbrechen&quot;
+ sColumnHeader = &quot;Spaltenkopf&quot;
+ sInsertStockName = &quot;Bitte fügen Sie zunächst einige Aktien in Ihr Depot ein!&quot;
+ sTitle = &quot;&lt;PRODUCTNAME&gt;: Aktienverwaltung&quot;
+ sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
+ sMsgError = &quot;Eingabefehler&quot;
+ sMsgNoName = sInsertStockname
+ sMsgNoQuantity = &quot;Bitte geben Sie eine Stückzahl größer als 0 ein&quot;
+ sMsgNoDividend = &quot;Bitte geben Sie eine Dividende je Stück oder eine Gesamtdividende ein&quot;
+ sMsgNoExchangeRate = &quot;Bitte geben Sie eine korrekte Umtauschrate ein (alte Aktien -&gt; neue Aktien).&quot;
+ sMsgNoValidExchangeDate = &quot;Bitte geben Sie ein gültiges Datum für den Aktiensplitt ein.&quot;
+ sMsgWrongExchangeDate = &quot;Splitt nicht möglich, da bereits Transaktionen nach dem Splitt-Datum existieren.&quot;
+ sMsgSellTooMuch = &quot;So viele Aktien können Sie nicht verkaufen. Maximum: &quot;
+ sMsgConfirm = &quot;Bestätigung erforderlich&quot;
+ sMsgFreeStock = &quot;Beabsichtigen Sie die Eingabe von Gratisaktien?&quot;
+ sMsgTotalLoss = &quot;Beabsichtigen Sie die Eingabe eines Totalverlustes?&quot;
+ sMsgAuthorization = &quot;Sicherheitsabfrage&quot;
+ sMsgDeleteAll = &quot;Wollen Sie alle Bewegungen löschen und die Depotübersicht rücksetzen?&quot;
+ cSplit = &quot;Aktiensplitt am &quot;
+ sHistory = &quot;Historie&quot;
+ TransactTitle(1) = &quot;Aktien verkaufen&quot;
+ TransactTitle(2) = &quot;Aktien kaufen&quot;
+ StockRatesTitle(1) = &quot;Dividendenzahlung&quot;
+ StockRatesTitle(2) = &quot;Aktiensplitt&quot;
+ StockRatesTitle(3) = sHistory
+ sDepotCurrency = &quot;Depotwährung&quot;
+ sStockName = &quot;Aktienname&quot;
+ TransactMode = LIFO &apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
+ DateCellStyle = &quot;Ergebnis Datum&quot;
+ CurrCellStyle = &quot;Ergebnis Euro mit Dezimalen&quot;
+ sStartDate = &quot;Startdatum:&quot;
+ sEndDate = &quot;Enddatum:&quot;
+ sStartUpWelcome = &quot;Diese Vorlage ermöglicht Ihnen eine effiziente Verwaltung Ihres Aktiendepots&quot;
+ sStartUpChooseMarket = &quot;Wählen Sie zunächst Ihre Referenz-Währung und damit den Börsenplatz für das Internet Update aus!&quot;
+ sStartUpHint = &quot;Leider steht Ihnen die &lt;History&gt;- Funktion nur für den amerikanischen Markt zur Verfügung!&quot;
+ sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ sNoInternetUpdate = &quot;ohne Internet Update&quot;
+ sMarketPlace = &quot;Börsenplatz:&quot;
+ sNoInternetDataAvailable = &quot;Internet-Kurse konnten nicht empfangen werden!&quot;
+ sCheckInternetSettings = &quot;Mögliche Ursachen sind: &lt;BR&gt; Ihre Internet Einstellungen müssen überprüft werden.&lt;BR&gt; Sie haben eine falsche Kennung (z.B. Symbol, WKN) für die Aktie eingegeben.&quot;
+ sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)
+
+ sMsgEndDatebeforeNow = &quot;Das Enddatum muss vor dem heutigen Tag liegen!&quot;
+ sMsgStartDatebeforeEndDate = &quot;Das Startdatum muss vor dem Enddatum liegen!&quot;
+
+ sMarket(0,0) = &quot;Amerikanischer Dollar&quot;
+ sMarket(0,1) = &quot;$&quot;
+ sMarket(0,2) = &quot;New York&quot;
+ sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
+ &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
+ &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
+ sMarket(0,5) = &quot;Symbol&quot;
+ sMarket(0,6) = &quot;en&quot;
+ sMarket(0,7) = &quot;US&quot;
+ sMarket(0,8) = &quot;409&quot;
+ sMarket(0,9) = &quot;44&quot;
+ sMarket(0,10) = &quot;1&quot;
+
+ sMarket(1,0) = &quot;Euro&quot;
+ sMarket(1,1) = chr(8364)
+ sMarket(1,2) = &quot;Frankfurt&quot;
+ sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
+ sMarket(1,5) = &quot;WKN&quot;
+ sMarket(1,6) = &quot;de;nl;pt;el&quot;
+ sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
+ sMarket(1,8) = &quot;407;413;816;408&quot;
+ sMarket(1,9) = &quot;59/9&quot;
+ sMarket(1,10) = &quot;1&quot;
+
+ sMarket(2,0) = &quot;Englisches Pfund&quot;
+ sMarket(2,1) = &quot;£&quot;
+ sMarket(2,2) = &quot;London&quot;
+ sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
+ sMarket(2,5) = &quot;Symbol&quot;
+ sMarket(2,6) = &quot;en&quot;
+ sMarket(2,7) = &quot;GB&quot;
+ sMarket(2,8) = &quot;809&quot;
+ sMarket(2,9) = &quot;44&quot;
+ sMarket(2,10) = &quot;1&quot;
+
+ sMarket(3,0) = &quot;Japanischer Yen&quot;
+ sMarket(3,1) = &quot;Â¥&quot;
+ sMarket(3,2) = &quot;Tokyo&quot;
+ sMarket(3,3) = &quot;&quot;
+ sMarket(3,5) = &quot;Code&quot;
+ sMarket(3,6) = &quot;ja&quot;
+ sMarket(3,7) = &quot;JP&quot;
+ sMarket(3,8) = &quot;411&quot;
+ sMarket(3,9) = &quot;&quot;
+ sMarket(3,10) = &quot;&quot;
+
+ sMarket(4,0) = &quot;Hongkong Dollar&quot;
+ sMarket(4,1) = &quot;HK$&quot;
+ sMarket(4,2) = &quot;Hongkong&quot;
+ sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.HK&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(4,5) = &quot;Nummer&quot;
+ sMarket(4,6) = &quot;zh&quot;
+ sMarket(4,7) = &quot;HK&quot;
+ sMarket(4,8) = &quot;C04&quot;
+ sMarket(4,9) = &quot;44&quot;
+ sMarket(4,10) = &quot;1&quot;
+
+ sMarket(5,0) = &quot;Australischer Dollar&quot;
+ sMarket(5,1) = &quot;$&quot;
+ sMarket(5,2) = &quot;Sydney&quot;
+ sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(5,5) = &quot;Symbol&quot;
+ sMarket(5,6) = &quot;en&quot;
+ sMarket(5,7) = &quot;AU&quot;
+ sMarket(5,8) = &quot;C09&quot;
+ sMarket(5,9) = &quot;44&quot;
+ sMarket(5,10) = &quot;1&quot;
+
+&apos; ****************************End of the default subset*********************************
+ CompleteMarketList()
+
+ LocalizedCurrencies()
+
+ With TransactModel
+ .lblStockNames.Label = sStockname
+ .lblQuantity.Label = &quot;Menge&quot;
+ .lblRate.Label = &quot;Kurs&quot;
+ .lblDate.Label = &quot;Transaktionsdatum&quot;
+ .hlnCommission.Label = &quot;Sonstige Ausgaben&quot;
+ .lblCommission.Label = &quot;Provision&quot;
+ .lblMinimum.Label = &quot;Mindestprovision&quot;
+ .lblFix.Label = &quot;Festbetrag/Spesen&quot;
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+
+ With StockRatesModel
+ .optPerShare.Label = &quot;Dividende/Aktie&quot;
+ .optTotal.Label = &quot;Dividende gesamt&quot;
+ .lblDividend.Label = &quot;Betrag&quot;
+ .lblExchangeRate.Label = &quot;Umtauschrate (alt-&gt;neu)&quot;
+ .lblColon.Label = &quot;:&quot;
+ .lblDate.Label = &quot;Umtauschdatum:&quot;
+ .lblStockNames.Label = sStockname
+ .lblStartDate.Label = sStartDate
+ .lblEndDate.Label = sEndDate
+ .optDaily.Label = &quot;~Täglich&quot;
+ .optWeekly.Label = &quot;~Wöchentlich&quot;
+ .hlnInterval.Label = &quot;Zeitraum&quot;
+ .cmdGoOn.Label = sOk
+ .cmdCancel.Label = sCancel
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Lang_en.xba b/test/user-template/user/basic/Depot/Lang_en.xba
new file mode 100644
index 000000000000..347c5c2544b0
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Lang_en.xba
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_en" script:language="StarBasic">Option Explicit
+
+Sub LoadEnglishLanguage()
+
+ sProductname = GetProductname
+ sOK = &quot;~OK&quot;
+ sCancel = &quot;Cancel&quot;
+ sColumnHeader = &quot;Column Header&quot;
+ sInsertStockName = &quot;Please enter shares in your portfolio.&quot;
+ sTitle = &quot;&lt;PRODUCTNAME&gt;: Stocks Manager&quot;
+ sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
+ sMsgError = &quot;Input Error&quot;
+ sMsgNoName = sInsertStockname
+ sMsgNoQuantity = &quot;Please enter a quantity larger than 0&quot;
+ sMsgNoDividend = &quot;Please enter the dividend per share or the total dividend&quot;
+ sMsgNoExchangeRate = &quot;Please enter the correct exchange rate (old shares -&gt; new shares)&quot;
+ sMsgNoValidExchangeDate = &quot;Please enter a valid date for the split.&quot;
+ sMsgWrongExchangeDate = &quot;Splitting not possible, as transactions already exist after the split date.&quot;
+ sMsgSellTooMuch = &quot;You cannot sell that many shares. Maximum: &quot;
+ sMsgConfirm = &quot;Confirmation Required&quot;
+ sMsgFreeStock = &quot;Do you intend to enter free shares?&quot;
+ sMsgTotalLoss = &quot;Do you intend to enter a total loss?&quot;
+ sMsgAuthorization = &quot;Security Query&quot;
+ sMsgDeleteAll = &quot;Do you want to delete all movements and reset the portfolio overview?&quot;
+ cSplit = &quot;Stock split on &quot;
+ sHistory = &quot;History&quot;
+ TransactTitle(1) = &quot;StarOffice Stocks Manager: Selling Shares&quot;
+ TransactTitle(2) = &quot;StarOffice Stocks Manager: Buying Shares&quot;
+ StockRatesTitle(1) = &quot;StarOffice Stocks Manager: Dividend Payment&quot;
+ StockRatesTitle(2) = &quot;Stock Split&quot;
+ StockRatesTitle(3) = sHistory
+ sDepotCurrency = &quot;Portfolio Currency&quot;
+ sStockName = &quot;Name of Stock&quot;
+ TransactMode = LIFO &apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
+ DateCellStyle = &quot;Result Date&quot;
+ CurrCellStyle = &quot;1&quot;
+ sStartDate = &quot;Start date:&quot;
+ sEndDate = &quot;End date:&quot;
+ sStartUpWelcome = &quot;This template enables you to manage your stock portfolio efficiently.&quot;
+ sStartUpChooseMarket = &quot;First, select your reference currency and thus the stock exchange for the Internet update.&quot;
+ sStartUpHint = &quot;Unfortunately, the only &lt;History&gt; function available to you is that for the American market.&quot;
+ sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ sNoInternetUpdate = &quot;without Internet update&quot;
+ sMarketPlace = &quot;Stock exchange:&quot;
+ sNoInternetDataAvailable = &quot;No prices could be received from the Internet!&quot;
+ sCheckInternetSettings = &quot;Possible causes could be: &lt;BR&gt;Your Internet settings have to be modified. &lt;BR&gt;The Symbol (e.g. Code, Ticker Symbol) entered for the stock was incorrect.&quot;
+ sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)
+
+ sMsgEndDatebeforeNow = &quot;The end date has to be before today&apos;s date.&quot;
+ sMsgStartDatebeforeEndDate = &quot;The start date has to be before the end date.&quot;
+
+ sMarket(0,0) = &quot;American Dollar&quot;
+ sMarket(0,1) = &quot;$&quot;
+ sMarket(0,2) = &quot;New York&quot;
+ sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
+ &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
+ &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
+ sMarket(0,5) = &quot;Symbol&quot;
+ sMarket(0,6) = &quot;en&quot;
+ sMarket(0,7) = &quot;US&quot;
+ sMarket(0,8) = &quot;409&quot;
+ sMarket(0,9) = &quot;44&quot;
+ sMarket(0,10) = &quot;1&quot;
+
+ sMarket(1,0) = &quot;Euro&quot;
+ sMarket(1,1) = chr(8364)
+ sMarket(1,2) = &quot;Frankfurt&quot;
+ sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
+ sMarket(1,5) = &quot;Ticker Symbol&quot;
+ sMarket(1,6) = &quot;de;nl;pt;el&quot;
+ sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
+ sMarket(1,8) = &quot;407;413;816;408&quot;
+ sMarket(1,9) = &quot;59/9&quot;
+ sMarket(1,10) = &quot;1&quot;
+
+ sMarket(2,0) = &quot;British Pound&quot;
+ sMarket(2,1) = &quot;£&quot;
+ sMarket(2,2) = &quot;London&quot;
+ sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
+ sMarket(2,5) = &quot;Symbol&quot;
+ sMarket(2,6) = &quot;en&quot;
+ sMarket(2,7) = &quot;GB&quot;
+ sMarket(2,8) = &quot;809&quot;
+ sMarket(2,9) = &quot;44&quot;
+ sMarket(2,10) = &quot;1&quot;
+
+ sMarket(3,0) = &quot;Japanese Yen&quot;
+ sMarket(3,1) = &quot;Â¥&quot;
+ sMarket(3,2) = &quot;Tokyo&quot;
+ sMarket(3,3) = &quot;&quot;
+ sMarket(3,5) = &quot;Code&quot;
+ sMarket(3,6) = &quot;ja&quot;
+ sMarket(3,7) = &quot;JP&quot;
+ sMarket(3,8) = &quot;411&quot;
+ sMarket(3,9) = &quot;&quot;
+ sMarket(3,10) = &quot;&quot;
+
+ sMarket(4,0) = &quot;Hong Kong Dollar&quot;
+ sMarket(4,1) = &quot;HK$&quot;
+ sMarket(4,2) = &quot;Hong Kong&quot;
+ sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(4,5) = &quot;Number&quot;
+ sMarket(4,6) = &quot;zh&quot;
+ sMarket(4,7) = &quot;HK&quot;
+ sMarket(4,8) = &quot;C04&quot;
+ sMarket(4,9) = &quot;44&quot;
+ sMarket(4,10) = &quot;1&quot;
+
+ sMarket(5,0) = &quot;Australian Dollar&quot;
+ sMarket(5,1) = &quot;$&quot;
+ sMarket(5,2) = &quot;Sydney&quot;
+ sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(5,5) = &quot;Symbol&quot;
+ sMarket(5,6) = &quot;en&quot;
+ sMarket(5,7) = &quot;AU&quot;
+ sMarket(5,8) = &quot;C09&quot;
+ sMarket(5,9) = &quot;44&quot;
+ sMarket(5,10) = &quot;1&quot;
+
+&apos; ****************************End of the default subset*********************************
+ CompleteMarketList()
+
+ LocalizedCurrencies()
+
+ With TransactModel
+ .lblStockNames.Label = sStockname
+ .lblQuantity.Label = &quot;Quantity&quot;
+ .lblRate.Label = &quot;Price&quot;
+ .lblDate.Label = &quot;Transaction Date&quot;
+ .hlnCommission.Label = &quot;Other expenditures&quot;
+ .lblCommission.Label = &quot;Commission&quot;
+ .lblMinimum.Label = &quot;Min. Commission&quot;
+ .lblFix.Label = &quot;Fixed Costs/Charges&quot;
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+
+ With StockRatesModel
+ .optPerShare.Label = &quot;Dividends/Stocks&quot;
+ .optTotal.Label = &quot;Total Dividends&quot;
+ .lblDividend.Label = &quot;Amount&quot;
+ .lblExchangeRate.Label = &quot;Exchange Rate (old-&gt;new)&quot;
+ .lblColon.Label = &quot;:&quot;
+ .lblDate.Label = &quot;Exchange Date:&quot;
+ .lblStockNames.Label = sStockname
+ .lblStartDate.Label = sStartDate
+ .lblEndDate.Label = sEndDate
+ .optDaily.Label = &quot;~Daily&quot;
+ .optWeekly.Label = &quot;~Weekly&quot;
+ .hlnInterval.Label = &quot;Time period&quot;
+ .cmdGoOn.Label = sOk
+ .cmdCancel.Label = sCancel
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Lang_es.xba b/test/user-template/user/basic/Depot/Lang_es.xba
new file mode 100644
index 000000000000..e12bf4b2551d
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Lang_es.xba
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_es" script:language="StarBasic">Option Explicit
+
+Sub LoadSpanishLanguage()
+
+ sProductname = GetProductname
+ sOK = &quot;~Aceptar&quot;
+ sCancel = &quot;Cancelar&quot;
+ sColumnHeader = &quot;Título de columna&quot;
+ sInsertStockName = &quot;Introduzca primero algunas acciones en su depósito.&quot;
+ sTitle = &quot;&lt;PRODUCTNAME&gt;: Administración de acciones&quot;
+ sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
+ sMsgError = &quot;Error de entrada&quot;
+ sMsgNoName = sInsertStockname
+ sMsgNoQuantity = &quot;Indique una cantidad mayor que 0&quot;
+ sMsgNoDividend = &quot;Indique un dividendo por unidad o un dividendo total&quot;
+ sMsgNoExchangeRate = &quot;Indique aquí un cambio correcto (acción vieja -&gt; nueva acción)&quot;
+ sMsgNoValidExchangeDate = &quot;Indique una fecha correcta para el fraccionamiento de la acción.&quot;
+ sMsgWrongExchangeDate = &quot;El fraccionamiento no es posible porque existen transacciones después de la fecha de fraccionamiento.&quot;
+ sMsgSellTooMuch = &quot;No puede vender tantas acciones. Como máximo: &quot;
+ sMsgConfirm = &quot;Confirmación necesaria&quot;
+ sMsgFreeStock = &quot;¿Tiene previsto considerar acciones gratis?&quot;
+ sMsgTotalLoss = &quot;¿Tiene previsto introducir una pérdida total?&quot;
+ sMsgAuthorization = &quot;Pregunta de seguridad&quot;
+ sMsgDeleteAll = &quot;¿Desea borrar todos los movimientos y reiniciar el balance de depósito?&quot;
+ cSplit = &quot;Fraccionamiento el &quot;
+ sHistory = &quot;Historia&quot;
+ TransactTitle(1) = &quot;Vender acciones&quot;
+ TransactTitle(2) = &quot;Comprar acciones&quot;
+ StockRatesTitle(1) = &quot;Pago de dividendos&quot;
+ StockRatesTitle(2) = &quot;Fraccionamiento&quot;
+ StockRatesTitle(3) = sHistory
+ sDepotCurrency = &quot;Moneda del depósito&quot;
+ sStockName = &quot;Nombre de la acción&quot;
+ TransactMode = LIFO &apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
+ DateCellStyle = &quot;Resultado Fecha&quot;
+ CurrCellStyle = &quot;1&quot;
+ sStartDate = &quot;Fecha de inicio:&quot;
+ sEndDate = &quot;Fecha final:&quot;
+ sStartUpWelcome = &quot;Esta plantilla le permite administrar eficientemente su depósito de acciones&quot;
+ sStartUpChooseMarket = &quot;Seleccione primero la moneda de referencia y la plaza bursátil para la actualización a través de Internet.&quot;
+ sStartUpHint = &quot;La función &lt;History&gt; está disponible únicamente para el mercado americano.&quot;
+ sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ sNoInternetUpdate = &quot;Sin actualización por Internet&quot;
+ sMarketPlace = &quot;Plaza bursátil:&quot;
+ sNoInternetDataAvailable = &quot;No se pudieron recibir las cotizaciones por Internet.&quot;
+ sCheckInternetSettings = &quot;Causas posibles: &lt;BR&gt; Debe comprobar la configuración de Internet.&lt;BR&gt; Ha indicado un código incorrecto (p.ej. número, símbolo, etc.) para la acción.&quot;
+ sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)
+
+ sMsgEndDatebeforeNow = &quot;La fecha final debe ser anterior a la fecha de hoy.&quot;
+ sMsgStartDatebeforeEndDate = &quot;La fecha inicial debe ser anterior a la fecha final.&quot;
+
+ sMarket(0,0) = &quot;Dólar estadounidense&quot;
+ sMarket(0,1) = &quot;$&quot;
+ sMarket(0,2) = &quot;Nueva York&quot;
+ sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
+ &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
+ &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
+ sMarket(0,5) = &quot;Símbolo&quot;
+ sMarket(0,6) = &quot;en&quot;
+ sMarket(0,7) = &quot;US&quot;
+ sMarket(0,8) = &quot;409&quot;
+ sMarket(0,9) = &quot;44&quot;
+ sMarket(0,10) = &quot;1&quot;
+
+ sMarket(1,0) = &quot;Euro&quot;
+ sMarket(1,1) = chr(8364)
+ sMarket(1,2) = &quot;Frankfurt&quot;
+ sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
+ sMarket(1,5) = &quot;Código&quot;
+ sMarket(1,6) = &quot;de;nl;pt;el&quot;
+ sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
+ sMarket(1,8) = &quot;407;413;816;408&quot;
+ sMarket(1,9) = &quot;59/9&quot;
+ sMarket(1,10) = &quot;1&quot;
+
+ sMarket(2,0) = &quot;Libra esterlina&quot;
+ sMarket(2,1) = &quot;£&quot;
+ sMarket(2,2) = &quot;Londres&quot;
+ sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
+ sMarket(2,5) = &quot;Símbolo&quot;
+ sMarket(2,6) = &quot;en&quot;
+ sMarket(2,7) = &quot;GB&quot;
+ sMarket(2,8) = &quot;809&quot;
+ sMarket(2,9) = &quot;44&quot;
+ sMarket(2,10) = &quot;1&quot;
+
+ sMarket(3,0) = &quot;Yen japonés&quot;
+ sMarket(3,1) = &quot;Â¥&quot;
+ sMarket(3,2) = &quot;Tokio&quot;
+ sMarket(3,3) = &quot;&quot;
+ sMarket(3,5) = &quot;Código&quot;
+ sMarket(3,6) = &quot;ja&quot;
+ sMarket(3,7) = &quot;JP&quot;
+ sMarket(3,8) = &quot;411&quot;
+ sMarket(3,9) = &quot;&quot;
+ sMarket(3,10) = &quot;&quot;
+
+ sMarket(4,0) = &quot;Dólar hongkonés&quot;
+ sMarket(4,1) = &quot;HK$&quot;
+ sMarket(4,2) = &quot;Hong Kong&quot;
+ sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.HK&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(4,5) = &quot;Número&quot;
+ sMarket(4,6) = &quot;zh&quot;
+ sMarket(4,7) = &quot;HK&quot;
+ sMarket(4,8) = &quot;C04&quot;
+ sMarket(4,9) = &quot;44&quot;
+ sMarket(4,10) = &quot;1&quot;
+
+ sMarket(5,0) = &quot;Dólar australiano&quot;
+ sMarket(5,1) = &quot;$&quot;
+ sMarket(5,2) = &quot;Sidney&quot;
+ sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(5,5) = &quot;Símbolo&quot;
+ sMarket(5,6) = &quot;en&quot;
+ sMarket(5,7) = &quot;AU&quot;
+ sMarket(5,8) = &quot;C09&quot;
+ sMarket(5,9) = &quot;44&quot;
+ sMarket(5,10) = &quot;1&quot;
+
+&apos; ****************************End of the default subset*********************************
+ CompleteMarketList()
+
+ LocalizedCurrencies()
+
+ With TransactModel
+ .lblStockNames.Label = sStockname
+ .lblQuantity.Label = &quot;Cantidad&quot;
+ .lblRate.Label = &quot;Cotización&quot;
+ .lblDate.Label = &quot;Fecha de operación&quot;
+ .hlnCommission.Label = &quot;Otros gastos&quot;
+ .lblCommission.Label = &quot;Provisión&quot;
+ .lblMinimum.Label = &quot;Provisión mínima&quot;
+ .lblFix.Label = &quot;Cantidad fija/comisión&quot;
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+
+ With StockRatesModel
+ .optPerShare.Label = &quot;Dividendos/Acción&quot;
+ .optTotal.Label = &quot;Dividendos totales&quot;
+ .lblDividend.Label = &quot;Importe&quot;
+ .lblExchangeRate.Label = &quot;Cambio (vieja-&gt;nueva)&quot;
+ .lblColon.Label = &quot;:&quot;
+ .lblDate.Label = &quot;Fecha de cambio:&quot;
+ .lblStockNames.Label = sStockname
+ .lblStartDate.Label = sStartDate
+ .lblEndDate.Label = sEndDate
+ .optDaily.Label = &quot;~Diario&quot;
+ .optWeekly.Label = &quot;~Semanal&quot;
+ .hlnInterval.Label = &quot;Periodo&quot;
+ .cmdGoOn.Label = sOk
+ .cmdCancel.Label = sCancel
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Lang_fr.xba b/test/user-template/user/basic/Depot/Lang_fr.xba
new file mode 100644
index 000000000000..372b974402fd
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Lang_fr.xba
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_fr" script:language="StarBasic">Option Explicit
+
+Sub LoadFrenchLanguage()
+
+ sProductname = GetProductname
+ sOK = &quot;~OK&quot;
+ sCancel = &quot;Annuler&quot;
+ sColumnHeader = &quot;En-tête de colonne&quot;
+ sInsertStockName = &quot;Saisissez quelques actions dans votre portefeuille !&quot;
+ sTitle = &quot;&lt;PRODUCTNAME&gt; : Gestion d&apos;actions&quot;
+ sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
+ sMsgError = &quot;Erreur de saisie&quot;
+ sMsgNoName = sInsertStockname
+ sMsgNoQuantity = &quot;Saisissez une quantité supérieure à 0 !&quot;
+ sMsgNoDividend = &quot;Vous devez saisir le montant des dividendes perçus (soit les dividendes par action, soit la somme totale perçue).&quot;
+ sMsgNoExchangeRate = &quot;Saisissez un taux correct de conversion (anciennes actions -&gt; nouvelles actions).&quot;
+ sMsgNoValidExchangeDate = &quot;Saisissez une date correcte pour le split d&apos;action.&quot;
+ sMsgWrongExchangeDate = &quot;Split impossible car il y a déjà eu des transactions après la date du split !&quot;
+ sMsgSellTooMuch = &quot;Impossible de vendre autant d&apos;actions ! Maximum : &quot;
+ sMsgConfirm = &quot;Confirmation requise&quot;
+ sMsgFreeStock = &quot;S&apos;agit-il d&apos;actions gratuites ?&quot;
+ sMsgTotalLoss = &quot;Prévoyez-vous une perte totale ?&quot;
+ sMsgAuthorization = &quot;Requête de sécurité&quot;
+ sMsgDeleteAll = &quot;Voulez-vous supprimer tous les mouvements et remettre le portefeuille d&apos;actions à zéro ?&quot;
+ cSplit = &quot;Split d&apos;action le &quot;
+ sHistory = &quot;Historique&quot;
+ TransactTitle(1) = &quot;Vente d&apos;actions&quot;
+ TransactTitle(2) = &quot;Achat d&apos;actions&quot;
+ StockRatesTitle(1) = &quot;Versement des dividendes&quot;
+ StockRatesTitle(2) = &quot;Split d&apos;action&quot;
+ StockRatesTitle(3) = sHistory
+ sDepotCurrency = &quot;Monnaie du portefeuille&quot;
+ sStockName = &quot;Nom de l&apos;action&quot;
+ TransactMode = LIFO &apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
+ DateCellStyle = &quot;Résultat date&quot;
+ CurrCellStyle = &quot;1&quot;
+ sStartDate = &quot;Date de début :&quot;
+ sEndDate = &quot;Date de fin :&quot;
+ sStartUpWelcome = &quot;Utilisez ce modèle pour une gestion efficiente de votre portefeuille d&apos;actions !&quot;
+ sStartUpChooseMarket = &quot;Commencez par choisir une monnaie de référence et ainsi la place boursière pour la mise à jour Internet !&quot;
+ sStartUpHint = &quot;La fonction &lt;History&gt; n&apos;est cependant disponible que pour le marché américain.&quot;
+ sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ sNoInternetUpdate = &quot;Sans mise à jour Internet&quot;
+ sMarketPlace = &quot;Place boursière :&quot;
+ sNoInternetDataAvailable = &quot;Réception des cours Internet impossible !&quot;
+ sCheckInternetSettings = &quot;Causes possibles : &lt;BR&gt; Problème de paramétrage Internet : vérifiez les paramètres !&lt;BR&gt; Vous avez saisi un identificateur (par ex. symbole ou code) incorrect pour l&apos;action.&quot;
+ sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)
+
+ sMsgEndDatebeforeNow = &quot;La date spécifiée pour la fin doit précéder celle de ce jour !&quot;
+ sMsgStartDatebeforeEndDate = &quot;La date spécifiée pour le début doit succéder à celle de ce jour !&quot;
+
+ sMarket(0,0) = &quot;Dollar Américain&quot;
+ sMarket(0,1) = &quot;$&quot;
+ sMarket(0,2) = &quot;New York&quot;
+ sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
+ &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
+ &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
+ sMarket(0,5) = &quot;Symbole&quot;
+ sMarket(0,6) = &quot;en&quot;
+ sMarket(0,7) = &quot;US&quot;
+ sMarket(0,8) = &quot;409&quot;
+ sMarket(0,9) = &quot;44&quot;
+ sMarket(0,10) = &quot;1&quot;
+
+ sMarket(1,0) = &quot;Euro&quot;
+ sMarket(1,1) = chr(8364)
+ sMarket(1,2) = &quot;Francfort&quot;
+ sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
+ sMarket(1,5) = &quot;Code&quot;
+ sMarket(1,6) = &quot;de;nl;pt;el&quot;
+ sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
+ sMarket(1,8) = &quot;407;413;816;408&quot;
+ sMarket(1,9) = &quot;59/9&quot;
+ sMarket(1,10) = &quot;1&quot;
+
+ sMarket(2,0) = &quot;Livre Sterling&quot;
+ sMarket(2,1) = &quot;£&quot;
+ sMarket(2,2) = &quot;Londres&quot;
+ sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
+ sMarket(2,5) = &quot;Symbole&quot;
+ sMarket(2,6) = &quot;en&quot;
+ sMarket(2,7) = &quot;GB&quot;
+ sMarket(2,8) = &quot;809&quot;
+ sMarket(2,9) = &quot;44&quot;
+ sMarket(2,10) = &quot;1&quot;
+
+ sMarket(3,0) = &quot;Yen Japonais&quot;
+ sMarket(3,1) = &quot;Â¥&quot;
+ sMarket(3,2) = &quot;Tokyo&quot;
+ sMarket(3,3) = &quot;&quot;
+ sMarket(3,5) = &quot;Code&quot;
+ sMarket(3,6) = &quot;ja&quot;
+ sMarket(3,7) = &quot;JP&quot;
+ sMarket(3,8) = &quot;411&quot;
+ sMarket(3,9) = &quot;&quot;
+ sMarket(3,10) = &quot;&quot;
+
+ sMarket(4,0) = &quot;Dollar de Hong Kong&quot;
+ sMarket(4,1) = &quot;HK$&quot;
+ sMarket(4,2) = &quot;Hong Kong&quot;
+ sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(4,5) = &quot;Numéro&quot;
+ sMarket(4,6) = &quot;zh&quot;
+ sMarket(4,7) = &quot;HK&quot;
+ sMarket(4,8) = &quot;C04&quot;
+ sMarket(4,9) = &quot;44&quot;
+ sMarket(4,10) = &quot;1&quot;
+
+ sMarket(5,0) = &quot;Dollar Australien&quot;
+ sMarket(5,1) = &quot;$&quot;
+ sMarket(5,2) = &quot;Sydney&quot;
+ sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(5,5) = &quot;Symbole&quot;
+ sMarket(5,6) = &quot;en&quot;
+ sMarket(5,7) = &quot;AU&quot;
+ sMarket(5,8) = &quot;C09&quot;
+ sMarket(5,9) = &quot;44&quot;
+ sMarket(5,10) = &quot;1&quot;
+
+&apos; ****************************End of the default subset*********************************
+ CompleteMarketList()
+
+ LocalizedCurrencies()
+
+ With TransactModel
+ .lblStockNames.Label = sStockname
+ .lblQuantity.Label = &quot;Quantité&quot;
+ .lblRate.Label = &quot;Cours&quot;
+ .lblDate.Label = &quot;Date de transaction&quot;
+ .hlnCommission.Label = &quot;Dépenses diverses&quot;
+ .lblCommission.Label = &quot;Commission&quot;
+ .lblMinimum.Label = &quot;Commission minimale&quot;
+ .lblFix.Label = &quot;Montant fixe/frais&quot;
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+
+ With StockRatesModel
+ .optPerShare.Label = &quot;Dividende/action&quot;
+ .optTotal.Label = &quot;Dividende total&quot;
+ .lblDividend.Label = &quot;Montant&quot;
+ .lblExchangeRate.Label = &quot;Taux de conversion (ancien-&gt;nouveau)&quot;
+ .lblColon.Label = &quot;:&quot;
+ .lblDate.Label = &quot;Date de la conversion:&quot;
+ .lblStockNames.Label = sStockname
+ .lblStartDate.Label = sStartDate
+ .lblEndDate.Label = sEndDate
+ .optDaily.Label = &quot;~Quotidien&quot;
+ .optWeekly.Label = &quot;~Hebdomadaire&quot;
+ .hlnInterval.Label = &quot;Période&quot;
+ .cmdGoOn.Label = sOk
+ .cmdCancel.Label = sCancel
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Lang_it.xba b/test/user-template/user/basic/Depot/Lang_it.xba
new file mode 100644
index 000000000000..2450bed82a88
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Lang_it.xba
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_it" script:language="StarBasic">Option Explicit
+
+Sub LoadItalianLanguage()
+
+ sProductname = GetProductname
+ sOK = &quot;~OK&quot;
+ sCancel = &quot;Annulla&quot;
+ sColumnHeader = &quot;Intestazione colonna&quot;
+ sInsertStockName = &quot;Inserite un nome di azioni&quot;
+ sTitle = &quot;&lt;PRODUCTNAME&gt;: Gestione delle azioni&quot;
+ sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
+ sMsgError = &quot;Errore dati immessi&quot;
+ sMsgNoName = sInsertStockname
+ sMsgNoQuantity = &quot;Inserite il numero delle azioni&quot;
+ sMsgNoDividend = &quot;Inserite un dividendo a unità oppure un dividendo totale&quot;
+ sMsgNoExchangeRate = &quot;Indicate un corretto tasso di cambio (vecchie azioni -&gt; nuove azioni).&quot;
+ sMsgNoValidExchangeDate = &quot;Indicate la data di frazionamento delle azioni.&quot;
+ sMsgWrongExchangeDate = &quot;Il frazionamento non è possibile perché sono ancora in atto transazioni dopo la data indicata.&quot;
+ sMsgSellTooMuch = &quot;Non potete vendere così tante azioni. Massimo: &quot;
+ sMsgConfirm = &quot;È necessaria una conferma&quot;
+ sMsgFreeStock = &quot;Confermate la digitazione di azioni gratuite?&quot;
+ sMsgTotalLoss = &quot;Confermate la digitazione di perdita totale?&quot;
+ sMsgAuthorization = &quot;Domanda di sicurezza&quot;
+ sMsgDeleteAll = &quot;Eliminare tutti i movimenti e ripristinare la panoramica dei depositi?&quot;
+ cSplit = &quot;Frazionamento delle azioni il: &quot;
+ sHistory = &quot;Cronologia&quot;
+ TransactTitle(1) = &quot;Vendita di azioni&quot;
+ TransactTitle(2) = &quot;Acquisto di azioni&quot;
+ StockRatesTitle(1) = &quot;Pagamento dei dividendi&quot;
+ StockRatesTitle(2) = &quot;Frazionamento azioni&quot;
+ StockRatesTitle(3) = sHistory
+ sDepotCurrency = &quot;Valuta deposito&quot;
+ sStockName = &quot;Nome delle azioni&quot;
+ TransactMode = LIFO &apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
+ DateCellStyle = &quot;Risultato data&quot;
+ CurrCellStyle = &quot;1&quot;
+ sStartDate = &quot;Data d&apos;inizio:&quot;
+ sEndDate = &quot;Data finale:&quot;
+ sStartUpWelcome = &quot;Questo modello vi permette una gestione efficace delle vostre azioni.&quot;
+ sStartUpChooseMarket = &quot;Selezionate la valuta di riferimento e la Borsa per il collegamento Internet.&quot;
+ sStartUpHint = &quot;La funzione &lt;History&gt; è disponibile solo per il mercato americano.&quot;
+ sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ sNoInternetUpdate = &quot;Senza aggiornamento Internet&quot;
+ sMarketPlace = &quot;Borsa:&quot;
+ sNoInternetDataAvailable = &quot;Impossibile ricevere le quotazioni Internet&quot;
+ sCheckInternetSettings = &quot;Possibili cause: &lt;BR&gt; le impostazioni Internet devono essere modificate.&lt;BR&gt; Avete indicato un indice (ad es. simbolo o codice) errato per le azioni.&quot;
+ sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)
+
+ sMsgEndDatebeforeNow = &quot;La data finale dev&apos;essere anteriore alla data odierna.&quot;
+ sMsgStartDatebeforeEndDate = &quot;La data d&apos;inizio deve precedere la data finale.&quot;
+
+ sMarket(0,0) = &quot;Dollaro USA&quot;
+ sMarket(0,1) = &quot;$&quot;
+ sMarket(0,2) = &quot;New York&quot;
+ sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
+ &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
+ &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
+ sMarket(0,5) = &quot;Simbolo&quot;
+ sMarket(0,6) = &quot;en&quot;
+ sMarket(0,7) = &quot;US&quot;
+ sMarket(0,8) = &quot;409&quot;
+ sMarket(0,9) = &quot;44&quot;
+ sMarket(0,10) = &quot;1&quot;
+
+ sMarket(1,0) = &quot;Euro&quot;
+ sMarket(1,1) = chr(8364)
+ sMarket(1,2) = &quot;Francoforte&quot;
+ sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
+ sMarket(1,5) = &quot;Numero identificazione titoli&quot;
+ sMarket(1,6) = &quot;de;nl;pt;el&quot;
+ sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
+ sMarket(1,8) = &quot;407;413;816;408&quot;
+ sMarket(1,9) = &quot;59/9&quot;
+ sMarket(1,10) = &quot;1&quot;
+
+ sMarket(2,0) = &quot;Sterlina inglese&quot;
+ sMarket(2,1) = &quot;£&quot;
+ sMarket(2,2) = &quot;Londra&quot;
+ sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
+ sMarket(2,5) = &quot;Simbolo&quot;
+ sMarket(2,6) = &quot;en&quot;
+ sMarket(2,7) = &quot;GB&quot;
+ sMarket(2,8) = &quot;809&quot;
+ sMarket(2,9) = &quot;44&quot;
+ sMarket(2,10) = &quot;1&quot;
+
+ sMarket(3,0) = &quot;Yen&quot;
+ sMarket(3,1) = &quot;Â¥&quot;
+ sMarket(3,2) = &quot;Tokyo&quot;
+ sMarket(3,3) = &quot;&quot;
+ sMarket(3,5) = &quot;Codice&quot;
+ sMarket(3,6) = &quot;ja&quot;
+ sMarket(3,7) = &quot;JP&quot;
+ sMarket(3,8) = &quot;411&quot;
+ sMarket(3,9) = &quot;&quot;
+ sMarket(3,10) = &quot;&quot;
+
+ sMarket(4,0) = &quot;Dollaro Hong Kong&quot;
+ sMarket(4,1) = &quot;HK$&quot;
+ sMarket(4,2) = &quot;Hong Kong&quot;
+ sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(4,5) = &quot;Numero&quot;
+ sMarket(4,6) = &quot;zh&quot;
+ sMarket(4,7) = &quot;HK&quot;
+ sMarket(4,8) = &quot;C04&quot;
+ sMarket(4,9) = &quot;44&quot;
+ sMarket(4,10) = &quot;1&quot;
+
+ sMarket(5,0) = &quot;Dollaro australiano&quot;
+ sMarket(5,1) = &quot;$&quot;
+ sMarket(5,2) = &quot;Sydney&quot;
+ sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(5,5) = &quot;Simbolo&quot;
+ sMarket(5,6) = &quot;en&quot;
+ sMarket(5,7) = &quot;AU&quot;
+ sMarket(5,8) = &quot;C09&quot;
+ sMarket(5,9) = &quot;44&quot;
+ sMarket(5,10) = &quot;1&quot;
+
+&apos; ****************************End of the default subset*********************************
+ CompleteMarketList()
+
+ LocalizedCurrencies()
+
+ With TransactModel
+ .lblStockNames.Label = sStockname
+ .lblQuantity.Label = &quot;Quantità&quot;
+ .lblRate.Label = &quot;Quotazione&quot;
+ .lblDate.Label = &quot;Data della transazione&quot;
+ .hlnCommission.Label = &quot;Spese extra&quot;
+ .lblCommission.Label = &quot;Commissioni&quot;
+ .lblMinimum.Label = &quot;Commissione minima&quot;
+ .lblFix.Label = &quot;Importo fisso/Spese&quot;
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+
+ With StockRatesModel
+ .optPerShare.Label = &quot;Dividendo/Azione&quot;
+ .optTotal.Label = &quot;Dividendo totale&quot;
+ .lblDividend.Label = &quot;Importo&quot;
+ .lblExchangeRate.Label = &quot;Tasso di cambio (vecchio-&gt;nuovo)&quot;
+ .lblColon.Label = &quot;:&quot;
+ .lblDate.Label = &quot;Data di cambio:&quot;
+ .lblStockNames.Label = sStockname
+ .lblStartDate.Label = sStartDate
+ .lblEndDate.Label = sEndDate
+ .optDaily.Label = &quot;~Giornaliero&quot;
+ .optWeekly.Label = &quot;~Settimanale&quot;
+ .hlnInterval.Label = &quot;Durata&quot;
+ .cmdGoOn.Label = sOk
+ .cmdCancel.Label = sCancel
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Lang_ja.xba b/test/user-template/user/basic/Depot/Lang_ja.xba
new file mode 100644
index 000000000000..4b4a53de3607
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Lang_ja.xba
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_ja" script:language="StarBasic">Option Explicit
+
+Sub LoadJapaneseLanguage()
+
+ sProductname = GetProductname
+ sOK = &quot;~OK&quot;
+ sCancel = &quot;キャンセル&quot;
+ sColumnHeader = &quot;列番å·&quot;
+ sInsertStockName = &quot;最åˆã«æ ªã®éŠ˜æŸ„を入力ã—ã¦ãã ã•ã„。&quot;
+ sTitle = &quot;&lt;PRODUCTNAME&gt;: 株管ç†&quot;
+ sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
+ sMsgError = &quot;入力フィールド&quot;
+ sMsgNoName = sInsertStockname
+ sMsgNoQuantity = &quot;0 より大ããªé¡ã‚’入力ã—ã¦ãã ã•ã„。&quot;
+ sMsgNoDividend = &quot;1株当ãŸã‚Šã®é…当金é¡ã¾ãŸã¯ç·é…当金é¡ã‚’入力ã—ã¦ãã ã•ã„。&quot;
+ sMsgNoExchangeRate = &quot;交æ›æ¯”率(旧株-&gt;新株)を入力ã—ã¦ãã ã•ã„。&quot;
+ sMsgNoValidExchangeDate = &quot;æ ªå¼åˆ†å‰²æ—¥ã‚’入力ã—ã¦ãã ã•ã„。&quot;
+ sMsgWrongExchangeDate = &quot;分割日以é™ã«å–引ãŒã™ã§ã«å­˜åœ¨ã™ã‚‹ã®ã§ã€åˆ†å‰²ã§ãã¾ã›ã‚“。&quot;
+ sMsgSellTooMuch = &quot;売å´ã§ãã‚‹æ ªå¼æ•°ã‚’超ãˆã¦ã„ã¾ã™ã€‚最大値: &quot;
+ sMsgConfirm = &quot;ã”確èªãã ã•ã„&quot;
+ sMsgFreeStock = &quot;無料株å¼ã‚’入力ã—ã¾ã™ã‹?&quot;
+ sMsgTotalLoss = &quot;å…¨æã®å…¥åŠ›ã‚’è¡Œã„ã¾ã™ã‹?&quot;
+ sMsgAuthorization = &quot;確èªãƒ€ã‚¤ã‚¢ãƒ­ã‚°&quot;
+ sMsgDeleteAll = &quot;ã™ã¹ã¦ã®ç§»å‹•ã‚’å–り消ã—ã€ãƒãƒ¼ãƒˆãƒ•ã‚©ãƒªã‚ªã®æ¦‚è¦ã‚’リセットã—ã¾ã™ã‹?&quot;
+ cSplit = &quot;æ ªå¼åˆ†å‰²æ—¥ &quot;
+ sHistory = &quot;履歴&quot;
+ TransactTitle(1) = &quot;株を買ã†&quot;
+ TransactTitle(2) = &quot;株を買ã†&quot;
+ StockRatesTitle(1) = &quot;é…当é¡&quot;
+ StockRatesTitle(2) = &quot;æ ªå¼åˆ†å‰²&quot;
+ StockRatesTitle(3) = sHistory
+ sDepotCurrency = &quot;ãƒãƒ¼ãƒˆãƒ•ã‚©ãƒªã‚ªã®é€šè²¨&quot;
+ sStockName = &quot;æ ªå¼å&quot;
+ TransactMode = LIFO &apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
+ DateCellStyle = &quot;çµæžœï¼ˆæ—¥ä»˜ï¼‰&quot;
+ CurrCellStyle = &quot;1&quot;
+ sStartDate = &quot;開始日:&quot;
+ sEndDate = &quot;終了日:&quot;
+ sStartUpWelcome = &quot;ã“ã®ãƒ†ãƒ³ãƒ—レートを使ãˆã°ã€æ ªå¼ã®ãƒãƒ¼ãƒˆãƒ•ã‚©ãƒªã‚ªã‚’より効率的ã«ç®¡ç†ã§ãã¾ã™ã€‚&quot;
+ sStartUpChooseMarket = &quot;ã¾ãšã€ã‚¤ãƒ³ã‚¿ãƒ¼ãƒãƒƒãƒˆã«ã‚ˆã‚Šæƒ…報を更新ã™ã‚‹åŸºæº–通貨ã¨ã€å¯¾å¿œã™ã‚‹è¨¼åˆ¸å–引所をé¸æŠžã—ã¾ã™ã€‚&quot;
+ sStartUpHint = &quot;残念ãªãŒã‚‰ã€&lt;History&gt; 機能を使用ã§ãã‚‹ã®ã¯ç±³å›½å¸‚å ´ã«é™ã‚‰ã‚Œã¦ã„ã¾ã™ã€‚&quot;
+ sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ sNoInternetUpdate = &quot;インターãƒãƒƒãƒˆã«ã‚ˆã‚‹æƒ…å ±ã®æ›´æ–°ã‚’è¡Œã„ã¾ã›ã‚“&quot;
+ sMarketPlace = &quot;証券å–引所:&quot;
+ sNoInternetDataAvailable = &quot;インターãƒãƒƒãƒˆã‹ã‚‰æ ªä¾¡æƒ…報をå—ä¿¡ã§ããªã„å ´åˆãŒã‚ã‚Šã¾ã™!&quot;
+ sCheckInternetSettings = &quot;考ãˆã‚‰ã‚Œã‚‹åŽŸå› ã¯æ¬¡ã®ã¨ãŠã‚Šã§ã™ã€‚&lt;BR&gt;インターãƒãƒƒãƒˆè¨­å®šã®å¤‰æ›´ãŒå¿…è¦ã§ã™ã€‚&lt;BR&gt;入力ã—ãŸæ ªå¼ã®ãŒé–“é•ã£ã¦ã„ã¾ã™ã€‚&quot;
+ sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)
+
+ sMsgEndDatebeforeNow = &quot;終了日ã¯ã€ä»Šæ—¥ã®æ—¥ä»˜ã‚ˆã‚Šå‰ã§ã‚ã‚‹ã“ã¨ãŒå¿…è¦ã§ã™ã€‚&quot;
+ sMsgStartDatebeforeEndDate = &quot;開始日ã¯ã€çµ‚了日よりå‰ã§ã‚ã‚‹ã“ã¨ãŒå¿…è¦ã§ã™ã€‚&quot;
+
+ sMarket(0,0) = &quot;米ドル&quot;
+ sMarket(0,1) = &quot;$&quot;
+ sMarket(0,2) = &quot;ニューヨーク&quot;
+ sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
+ &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
+ &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
+ sMarket(0,5) = &quot;シンボル&quot;
+ sMarket(0,6) = &quot;en&quot;
+ sMarket(0,7) = &quot;US&quot;
+ sMarket(0,8) = &quot;409&quot;
+ sMarket(0,9) = &quot;44&quot;
+ sMarket(0,10) = &quot;1&quot;
+
+ sMarket(1,0) = &quot;ユーロ&quot;
+ sMarket(1,1) = chr(8364)
+ sMarket(1,2) = &quot;フランクフルト&quot;
+ sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
+ sMarket(1,5) = &quot;銘柄コード&quot;
+ sMarket(1,6) = &quot;de;nl;pt;el&quot;
+ sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
+ sMarket(1,8) = &quot;407;413;816;408&quot;
+ sMarket(1,9) = &quot;59/9&quot;
+ sMarket(1,10) = &quot;1&quot;
+
+ sMarket(2,0) = &quot;英ãƒãƒ³ãƒ‰&quot;
+ sMarket(2,1) = &quot;£&quot;
+ sMarket(2,2) = &quot;ロンドン&quot;
+ sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
+ sMarket(2,5) = &quot;シンボル&quot;
+ sMarket(2,6) = &quot;en&quot;
+ sMarket(2,7) = &quot;GB&quot;
+ sMarket(2,8) = &quot;809&quot;
+ sMarket(2,9) = &quot;44&quot;
+ sMarket(2,10) = &quot;1&quot;
+
+ sMarket(3,0) = &quot;日本円&quot;
+ sMarket(3,1) = &quot;Â¥&quot;
+ sMarket(3,2) = &quot;æ±äº¬&quot;
+ sMarket(3,3) = &quot;&quot;
+ sMarket(3,5) = &quot;コード&quot;
+ sMarket(3,6) = &quot;ja&quot;
+ sMarket(3,7) = &quot;JP&quot;
+ sMarket(3,8) = &quot;411&quot;
+ sMarket(3,9) = &quot;&quot;
+ sMarket(3,10) = &quot;&quot;
+
+ sMarket(4,0) = &quot;香港ドル&quot;
+ sMarket(4,1) = &quot;HK$&quot;
+ sMarket(4,2) = &quot;香港&quot;
+ sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.HK&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(4,5) = &quot;番å·&quot;
+ sMarket(4,6) = &quot;zh&quot;
+ sMarket(4,7) = &quot;HK&quot;
+ sMarket(4,8) = &quot;C04&quot;
+ sMarket(4,9) = &quot;44&quot;
+ sMarket(4,10) = &quot;1&quot;
+
+ sMarket(5,0) = &quot;オーストリア・ドル&quot;
+ sMarket(5,1) = &quot;$&quot;
+ sMarket(5,2) = &quot;シドニー&quot;
+ sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(5,5) = &quot;シンボル&quot;
+ sMarket(5,6) = &quot;en&quot;
+ sMarket(5,7) = &quot;AU&quot;
+ sMarket(5,8) = &quot;C09&quot;
+ sMarket(5,9) = &quot;44&quot;
+ sMarket(5,10) = &quot;1&quot;
+
+&apos; ****************************End of the default subset*********************************
+ CompleteMarketList()
+
+ LocalizedCurrencies()
+
+ With TransactModel
+ .lblStockNames.Label = sStockname
+ .lblQuantity.Label = &quot;株数&quot;
+ .lblRate.Label = &quot;価格&quot;
+ .lblDate.Label = &quot;å–引日&quot;
+ .hlnCommission.Label = &quot;ãã®ä»–ã®çµŒè²»n&quot;
+ .lblCommission.Label = &quot;手数料&quot;
+ .lblMinimum.Label = &quot;最低手数料&quot;
+ .lblFix.Label = &quot;固定費/諸経費&quot;
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+
+ With StockRatesModel
+ .optPerShare.Label = &quot;é…当金/æ ªå¼æ•°&quot;
+ .optTotal.Label = &quot;é…当金ã®ç·é¡&quot;
+ .lblDividend.Label = &quot;金é¡&quot;
+ .lblExchangeRate.Label = &quot;交æ›æ¯”率(旧株-&gt;新株)&quot;
+ .lblColon.Label = &quot;:&quot;
+ .lblDate.Label = &quot;交æ›æ—¥:&quot;
+ .lblStockNames.Label = sStockname
+ .lblStartDate.Label = sStartDate
+ .lblEndDate.Label = sEndDate
+ .optDaily.Label = &quot;~毎日&quot;
+ .optWeekly.Label = &quot;~毎週&quot;
+ .hlnInterval.Label = &quot;期間&quot;
+ .cmdGoOn.Label = sOk
+ .cmdCancel.Label = sCancel
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Lang_ko.xba b/test/user-template/user/basic/Depot/Lang_ko.xba
new file mode 100644
index 000000000000..1b701dcbab67
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Lang_ko.xba
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_ko" script:language="StarBasic">Option Explicit
+
+Sub LoadKoreanLanguage()
+
+ sProductname = GetProductname
+ sOK = &quot;~확ì¸&quot;
+ sCancel = &quot;취소&quot;
+ sColumnHeader = &quot;열 머리글&quot;
+ sInsertStockName = &quot;ì£¼ì‹ ì¢…ëª©ì„ ì‚½ìž…í•´ì£¼ì‹­ì‹œì˜¤.&quot;
+ sTitle = &quot;&lt;PRODUCTNAME&gt;: ì£¼ì‹ ë§¤ìˆ˜&quot;
+ sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
+ sMsgError = &quot;입력 오류&quot;
+ sMsgNoName = sInsertStockname
+ sMsgNoQuantity = &quot;0 ì´í•˜ì˜ 매수를 입력해주십시오.&quot;
+ sMsgNoDividend = &quot;í•œ 주당 배당분 ë˜ëŠ” ì´ë°°ë‹¹ë¶„ì„ ìž…ë ¥í•´ì£¼ì‹­ì‹œì˜¤.&quot;
+ sMsgNoExchangeRate = &quot;정확한 í™˜ìœ¨ì„ ìž…ë ¥í•´ì£¼ì‹­ì‹œì˜¤ (구주를 신주로 소급 ì‹œ).&quot;
+ sMsgNoValidExchangeDate = &quot;유효한 배당 ê²°ì œì¼ì„ 입력해주십시오.&quot;
+ sMsgWrongExchangeDate = &quot;배당 기준ì¼ì´ 경과하여 배당할 수 없습니다.&quot;
+ sMsgSellTooMuch = &quot;ì´ë ‡ê²Œ ë§Žì€ ì£¼ì‹ì„ 팔 수 없습니다. 최대 매ë„수: &quot;
+ sMsgConfirm = &quot;í™•ì¸ í•„ìš”&quot;
+ sMsgFreeStock = &quot;공짜 주ì‹ì„ 입력하시겠습니까?&quot;
+ sMsgTotalLoss = &quot;주가 í­ë½ì„¸ë¥¼ 입력하시겠습니까?&quot;
+ sMsgAuthorization = &quot;안정성 조회&quot;
+ sMsgDeleteAll = &quot;모든 주가 움ì§ìž„ì„ ì‚­ì œí•˜ê³  계좌 í˜„í™©ì„ ì›ëž˜ëŒ€ë¡œ 하시겠습니까?&quot;
+ cSplit = &quot;ì£¼ì‹ ë°°ë‹¹ì¼ &quot;
+ sHistory = &quot;ë‚´ì—­&quot;
+ TransactTitle(1) = &quot;ì£¼ì‹ ê´€ë¦¬: ì£¼ì‹ ë§¤ë„&quot;
+ TransactTitle(2) = &quot;ì£¼ì‹ ê´€ë¦¬: ì£¼ì‹ ë§¤ìˆ˜&quot;
+ StockRatesTitle(1) = &quot;ì£¼ì‹ ê´€ë¦¬: 배당금 지불&quot;
+ StockRatesTitle(2) = &quot;ì£¼ì‹ ê´€ë¦¬: ì£¼ì‹ ë°°ë¶„&quot;
+ StockRatesTitle(3) = sHistory
+ sDepotCurrency = &quot;ì£¼ì‹ ê³„ì¢Œ 통화&quot;
+ sStockName = &quot;ì£¼ì‹ ì¢…ëª©ëª…&quot;
+ TransactMode = LIFO &apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
+ DateCellStyle = &quot;결과, 날짜&quot;
+ CurrCellStyle = &quot;1&quot;
+ sStartDate = &quot;매매ì¼:&quot;
+ sEndDate = &quot;만기ì¼:&quot;
+ sStartUpWelcome = &quot;ì´ í…œí”Œë¦¿ì„ ì‚¬ìš©í•˜ì—¬ ì£¼ì‹ íˆ¬ìž ê´€ë¦¬ë¥¼ 효율ì ìœ¼ë¡œ í•  수 있습니다.&quot;
+ sStartUpChooseMarket = &quot;ì¸í„°ë„· ì—…ë°ì´íŠ¸ë¥¼ 위해 ìš°ì„  관련 통화와 ì¦ê¶Œ 장소를 ì„ íƒí•˜ì‹­ì‹œì˜¤.&quot;
+ sStartUpHint = &quot;&lt;ë‚´ì—­&gt; ê¸°ëŠ¥ì€ ë¯¸êµ­ 시장용으로만 사용할 수 있습니다.&quot;
+ sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ sNoInternetUpdate = &quot;ì¸í„°ë„· ì—…ë°ì´íŠ¸ ì—†ìŒ&quot;
+ sMarketPlace = &quot;ì¦ê¶Œ 장소:&quot;
+ sNoInternetDataAvailable = &quot;ì¸í„°ë„· 시세는 ë°›ì„ ìˆ˜ 없었습니다.&quot;
+ sCheckInternetSettings = &quot;ì›ì¸: &lt;BR&gt; ì¸í„°ë„· ì„¤ì •ì„ ì ê²€í•´ì•¼ë§Œ 합니다.&lt;BR&gt; 옳지 ì•Šì€ ì•”í˜¸&lt;예를 들어 ìž˜ëª»ëœ ë¬¸ìž ë˜ëŠ” 종목 코드&gt;를 입력했습니다.&quot;
+ sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)
+
+ sMsgEndDatebeforeNow = &quot;만기ì¼ì€ 오늘 날짜 ì „ì— ê¸°ìž…ë˜ì–´ì•¼ 합니다.&quot;
+ sMsgStartDatebeforeEndDate = &quot;매매ì¼ì€ ë§Œê¸°ì¼ ì „ì— ê¸°ìž…ë˜ì–´ì•¼ 합니다.&quot;
+
+ sMarket(0,0) = &quot;미국 달러&quot;
+ sMarket(0,1) = &quot;$&quot;
+ sMarket(0,2) = &quot;뉴욕&quot;
+ sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
+ &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
+ &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
+ sMarket(0,5) = &quot;기호&quot;
+ sMarket(0,6) = &quot;en&quot;
+ sMarket(0,7) = &quot;US&quot;
+ sMarket(0,8) = &quot;409&quot;
+ sMarket(0,9) = &quot;44&quot;
+ sMarket(0,10) = &quot;1&quot;
+
+ sMarket(1,0) = &quot;유로&quot;
+ sMarket(1,1) = chr(8364)
+ sMarket(1,2) = &quot;프랑í¬í‘¸ë¥´íŠ¸&quot;
+ sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
+ sMarket(1,5) = &quot;WKN&quot;
+ sMarket(1,6) = &quot;de;nl;pt;el&quot;
+ sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
+ sMarket(1,8) = &quot;407;413;816;408&quot;
+ sMarket(1,9) = &quot;59/9&quot;
+ sMarket(1,10) = &quot;1&quot;
+
+ sMarket(2,0) = &quot;ì˜êµ­ 파운드&quot;
+ sMarket(2,1) = &quot;£&quot;
+ sMarket(2,2) = &quot;런ë˜&quot;
+ sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
+ sMarket(2,5) = &quot;기호&quot;
+ sMarket(2,6) = &quot;en&quot;
+ sMarket(2,7) = &quot;GB&quot;
+ sMarket(2,8) = &quot;809&quot;
+ sMarket(2,9) = &quot;44&quot;
+ sMarket(2,10) = &quot;1&quot;
+
+ sMarket(3,0) = &quot;엔화&quot;
+ sMarket(3,1) = &quot;Â¥&quot;
+ sMarket(3,2) = &quot;ë„ì¿„&quot;
+ sMarket(3,3) = &quot;&quot;
+ sMarket(3,5) = &quot;코드&quot;
+ sMarket(3,6) = &quot;ja&quot;
+ sMarket(3,7) = &quot;JP&quot;
+ sMarket(3,8) = &quot;411&quot;
+ sMarket(3,9) = &quot;&quot;
+ sMarket(3,10) = &quot;&quot;
+
+ sMarket(4,0) = &quot;í™ì½© 달러&quot;
+ sMarket(4,1) = &quot;HK$&quot;
+ sMarket(4,2) = &quot;í™ì½©&quot;
+ sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.HK&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(4,5) = &quot;번호&quot;
+ sMarket(4,6) = &quot;zh&quot;
+ sMarket(4,7) = &quot;HK&quot;
+ sMarket(4,8) = &quot;C04&quot;
+ sMarket(4,9) = &quot;44&quot;
+ sMarket(4,10) = &quot;1&quot;
+
+ sMarket(5,0) = &quot;호주 달러&quot;
+ sMarket(5,1) = &quot;$&quot;
+ sMarket(5,2) = &quot;시드니&quot;
+ sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(5,5) = &quot;기호&quot;
+ sMarket(5,6) = &quot;en&quot;
+ sMarket(5,7) = &quot;AU&quot;
+ sMarket(5,8) = &quot;C09&quot;
+ sMarket(5,9) = &quot;44&quot;
+ sMarket(5,10) = &quot;1&quot;
+
+&apos; ****************************End of the default subset*********************************
+ CompleteMarketList()
+
+ LocalizedCurrencies()
+
+ With TransactModel
+ .lblStockNames.Label = sStockname
+ .lblQuantity.Label = &quot;수량&quot;
+ .lblRate.Label = &quot;시세&quot;
+ .lblDate.Label = &quot;배당 ê²°ì‚°ì¼&quot;
+ .hlnCommission.Label = &quot;기타 지출&quot;
+ .lblCommission.Label = &quot;수수료&quot;
+ .lblMinimum.Label = &quot;최저 수수료&quot;
+ .lblFix.Label = &quot;약정 금액/기타 경비&quot;
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+
+ With StockRatesModel
+ .optPerShare.Label = &quot;배당분/주&quot;
+ .optTotal.Label = &quot;배당분 합계&quot;
+ .lblDividend.Label = &quot;금액&quot;
+ .lblExchangeRate.Label = &quot;환율(구주-&gt;신주)&quot;
+ .lblColon.Label = &quot;:&quot;
+ .lblDate.Label = &quot;환율ì¼ìž&quot;
+ .lblStockNames.Label = sStockname
+ .lblStartDate.Label = sStartDate
+ .lblEndDate.Label = sEndDate
+ .optDaily.Label = &quot;~매ì¼&quot;
+ .optWeekly.Label = &quot;~매주&quot;
+ .hlnInterval.Label = &quot;기간&quot;
+ .cmdGoOn.Label = sOk
+ .cmdCancel.Label = sCancel
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Lang_sv.xba b/test/user-template/user/basic/Depot/Lang_sv.xba
new file mode 100644
index 000000000000..bbfe930b60ca
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Lang_sv.xba
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_sv" script:language="StarBasic">Option Explicit
+
+Sub LoadSwedishLanguage()
+ sProductname = GetProductname
+ sOK = &quot;~OK&quot;
+ sCancel = &quot;Avbryt&quot;
+ sColumnHeader = &quot;Kolumnhuvud&quot;
+ sInsertStockName = &quot;Infoga först några aktier i Din portfölj!&quot;
+ sTitle = &quot;&lt;PRODUCTNAME&gt;: Aktieförvaltning&quot;
+ sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
+ sMsgError = &quot;Inmatningsfel&quot;
+ sMsgNoName = sInsertStockname
+ sMsgNoQuantity = &quot;Var vänlig och mata in ett större antal än 0&quot;
+ sMsgNoDividend = &quot;Var vänlig och mata in utdelning per styck eller den totala utdelningen&quot;
+ sMsgNoExchangeRate = &quot;Var vänlig och mata in en korrekt omräkningskurs (gamla aktier -&gt; nya aktier).&quot;
+ sMsgNoValidExchangeDate = &quot;Var vänlig och mata in ett giltigt datum för aktiesplitten.&quot;
+ sMsgWrongExchangeDate = &quot;Split är inte möjlig eftersom det redan finns transaktioner efter splitdatum.&quot;
+ sMsgSellTooMuch = &quot;Så många aktier kan Du inte sälja. Maximum: &quot;
+ sMsgConfirm = &quot;Bekräftelse krävs&quot;
+ sMsgFreeStock = &quot;Avser Du att mata in gratisaktier?&quot;
+ sMsgTotalLoss = &quot;Avser Du att mata in en totalförlust?&quot;
+ sMsgAuthorization = &quot;Säkerhetskontroll&quot;
+ sMsgDeleteAll = &quot;Vill Du ta bort alla rörelser och återställa portföljöversikten?&quot;
+ cSplit = &quot;Aktiesplit den &quot;
+ sHistory = &quot;Historik&quot;
+ TransactTitle(1) = &quot;Sälja aktier&quot;
+ TransactTitle(2) = &quot;Köpa aktier&quot;
+ StockRatesTitle(1) = &quot;Aktieutdelning&quot;
+ StockRatesTitle(2) = &quot;Aktiesplit&quot;
+ StockRatesTitle(3) = sHistory
+ sDepotCurrency = &quot;Portföljvaluta&quot;
+ sStockName = &quot;Aktienamn&quot;
+ TransactMode = LIFO &apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
+ DateCellStyle = &quot;Resultat datum&quot;
+ CurrCellStyle = &quot;1&quot;
+ sStartDate = &quot;Startdatum:&quot;
+ sEndDate = &quot;Slutdatum:&quot;
+ sStartUpWelcome = &quot;Med hjälp av den här mallen kan Du förvalta Din aktieportfölj effektivt&quot;
+ sStartUpChooseMarket = &quot;Välj först Din referensvaluta och därigenom börs för Internet-uppdateringen!&quot;
+ sStartUpHint = &quot;Tyvärr är &lt;History&gt;-funktionen bara tillgänglig för den amerikanska marknaden!&quot;
+ sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ sNoInternetUpdate = &quot;utan Internet-uppdatering&quot;
+ sMarketPlace = &quot;Börs:&quot;
+ sNoInternetDataAvailable = &quot;Det gick inte att ta emot Internet-kurser!&quot;
+ sCheckInternetSettings = &quot;Detta kan bero på att: &lt;BR&gt; Dina Internet-inställningar måste ändras.&lt;BR&gt; Du har angivit ett felaktigt ID (t.ex. symbol, värdepappersnr.) för aktien.&quot;
+ sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)
+
+ sMsgEndDatebeforeNow = &quot;Slutdatum måste ligga före idag!&quot;
+ sMsgStartDatebeforeEndDate = &quot;Startdatum måste ligga före slutdatum!&quot;
+
+ sMarket(0,0) = &quot;Amerikansk dollar&quot;
+ sMarket(0,1) = &quot;$&quot;
+ sMarket(0,2) = &quot;New York&quot;
+ sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
+ &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
+ &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
+ sMarket(0,5) = &quot;Symbol&quot;
+ sMarket(0,6) = &quot;en&quot;
+ sMarket(0,7) = &quot;US&quot;
+ sMarket(0,8) = &quot;409&quot;
+ sMarket(0,9) = &quot;44&quot;
+ sMarket(0,10) = &quot;1&quot;
+
+ sMarket(1,0) = &quot;Euro&quot;
+ sMarket(1,1) = chr(8364)
+ sMarket(1,2) = &quot;Frankfurt&quot;
+ sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
+ sMarket(1,5) = &quot;Värdepappersnr&quot;
+ sMarket(1,6) = &quot;de;nl;pt;el&quot;
+ sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
+ sMarket(1,8) = &quot;407;413;816;408&quot;
+ sMarket(1,9) = &quot;59/9&quot;
+ sMarket(1,10) = &quot;1&quot;
+
+ sMarket(2,0) = &quot;Engelskt pund&quot;
+ sMarket(2,1) = &quot;£&quot;
+ sMarket(2,2) = &quot;London&quot;
+ sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
+ sMarket(2,5) = &quot;Symbol&quot;
+ sMarket(2,6) = &quot;en&quot;
+ sMarket(2,7) = &quot;GB&quot;
+ sMarket(2,8) = &quot;809&quot;
+ sMarket(2,9) = &quot;44&quot;
+ sMarket(2,10) = &quot;1&quot;
+
+ sMarket(3,0) = &quot;Japansk yen&quot;
+ sMarket(3,1) = &quot;Â¥&quot;
+ sMarket(3,2) = &quot;Tokyo&quot;
+ sMarket(3,3) = &quot;&quot;
+ sMarket(3,5) = &quot;Kod&quot;
+ sMarket(3,6) = &quot;ja&quot;
+ sMarket(3,7) = &quot;JP&quot;
+ sMarket(3,8) = &quot;411&quot;
+ sMarket(3,9) = &quot;&quot;
+ sMarket(3,10) = &quot;&quot;
+
+ sMarket(4,0) = &quot;Hongkongdollar&quot;
+ sMarket(4,1) = &quot;HK$&quot;
+ sMarket(4,2) = &quot;Hongkong&quot;
+ sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(4,5) = &quot;Nummer&quot;
+ sMarket(4,6) = &quot;zh&quot;
+ sMarket(4,7) = &quot;HK&quot;
+ sMarket(4,8) = &quot;C04&quot;
+ sMarket(4,9) = &quot;44&quot;
+ sMarket(4,10) = &quot;1&quot;
+
+ sMarket(5,0) = &quot;Australisk dollar&quot;
+ sMarket(5,1) = &quot;$&quot;
+ sMarket(5,2) = &quot;Sydney&quot;
+ sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(5,5) = &quot;Symbol&quot;
+ sMarket(5,6) = &quot;en&quot;
+ sMarket(5,7) = &quot;AU&quot;
+ sMarket(5,8) = &quot;C09&quot;
+ sMarket(5,9) = &quot;44&quot;
+ sMarket(5,10) = &quot;1&quot;
+
+&apos; ****************************End of the default subset*********************************
+ CompleteMarketList()
+
+ LocalizedCurrencies()
+
+ With TransactModel
+ .lblStockNames.Label = sStockname
+ .lblQuantity.Label = &quot;Antal&quot;
+ .lblRate.Label = &quot;Kurs&quot;
+ .lblDate.Label = &quot;Transaktionsdatum&quot;
+ .hlnCommission.Label = &quot;Övriga utgifter&quot;
+ .lblCommission.Label = &quot;Provision&quot;
+ .lblMinimum.Label = &quot;Minimiprovision&quot;
+ .lblFix.Label = &quot;Fast belopp/omkostnader&quot;
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+
+ With StockRatesModel
+ .optPerShare.Label = &quot;Utdelning per aktie&quot;
+ .optTotal.Label = &quot;Utdelning totalt&quot;
+ .lblDividend.Label = &quot;Belopp&quot;
+ .lblExchangeRate.Label = &quot;Omräkningskurs (gammal-&gt;ny)&quot;
+ .lblColon.Label = &quot;:&quot;
+ .lblDate.Label = &quot;Omräkningsdatum:&quot;
+ .lblStockNames.Label = sStockname
+ .lblStartDate.Label = sStartDate
+ .lblEndDate.Label = sEndDate
+ .optDaily.Label = &quot;~Dagligen&quot;
+ .optWeekly.Label = &quot;~Varje vecka&quot;
+ .hlnInterval.Label = &quot;Period&quot;
+ .cmdGoOn.Label = sOk
+ .cmdCancel.Label = sCancel
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Lang_tw.xba b/test/user-template/user/basic/Depot/Lang_tw.xba
new file mode 100644
index 000000000000..fbe54a413132
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Lang_tw.xba
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_tw" script:language="StarBasic">Option Explicit
+
+Sub LoadChineseTradLanguage()
+
+ sProductname = GetProductname
+ sOK = &quot;確定&quot;
+ sCancel = &quot;å–消&quot;
+ sColumnHeader = &quot;欄標簽&quot;
+ sInsertStockName = &quot;請先填入股票å稱!&quot;
+ sTitle = &quot;&lt;PRODUCTNAME&gt;: 股票管ç†&quot;
+ sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
+ sMsgError = &quot;輸入無效&quot;
+ sMsgNoName = sInsertStockname
+ sMsgNoQuantity = &quot;請輸入大於0的交易股數&quot;
+ sMsgNoDividend = &quot;請輸入æ¯è‚¡è‚¡æ¯é‡‘é¡æˆ–è‚¡æ¯ç¸½é¡&quot;
+ sMsgNoExchangeRate = &quot;è«‹éµå…¥æ­£ç¢ºçš„æ›ç®—比率(舊股票 -&gt; 新股票)。&quot;
+ sMsgNoValidExchangeDate = &quot;請輸入股票分割的日期。&quot;
+ sMsgWrongExchangeDate = &quot;無法分割股票,因為分割日期之後已經買進或賣出股票。&quot;
+ sMsgSellTooMuch = &quot;最多能出售的股票數: &quot;
+ sMsgConfirm = &quot;需è¦ç¡®èª&quot;
+ sMsgFreeStock = &quot;需è¦è¼¸å…¥ä¸€å€‹è´ˆé€çš„股票?&quot;
+ sMsgTotalLoss = &quot;è¦è¼¸å…¥ä¸€å€‹å…¨éƒ¨æ失的股票?&quot;
+ sMsgAuthorization = &quot;安全詢å•&quot;
+ sMsgDeleteAll = &quot;您è¦åˆªé™¤æ‰€æœ‰çš„交易資料,é‡æ–°å»ºç«‹ä¸€å€‹è‚¡ç¥¨ä¸€è¦½è¡¨ï¼Ÿ&quot;
+ cSplit = &quot;股票分割的日期 &quot;
+ sHistory = &quot;紀錄&quot;
+ TransactTitle(1) = &quot;出售股票&quot;
+ TransactTitle(2) = &quot;購買股票&quot;
+ StockRatesTitle(1) = &quot;支付股æ¯&quot;
+ StockRatesTitle(2) = &quot;股票分割&quot;
+ StockRatesTitle(3) = sHistory
+ sDepotCurrency = &quot;股票的貨幣&quot;
+ sStockName = &quot;股票å稱&quot;
+ TransactMode = LIFO &apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
+ DateCellStyle = &quot;çµæžœ 日期&quot;
+ CurrCellStyle = &quot;1&quot;
+ sStartDate = &quot;交割日期:&quot;
+ sEndDate = &quot;到期日期:&quot;
+ sStartUpWelcome = &quot;這個樣å¼ç”¨æ–¼é«˜æ•ˆèƒ½åœ°ç®¡ç†è‚¡ç¥¨äº¤æ˜“。&quot;
+ sStartUpChooseMarket = &quot;è«‹å…ˆé¸ä¸€å€‹åƒç…§çš„貨幣和一個å¯ç›´æŽ¥å¾ž Internet 更新資料的贈券交易所。&quot;
+ sStartUpHint = &quot;很éºæ†¾ï¼Œ&lt;History&gt;-功能僅é©ç”¨æ–¼ç¾Žåœ‹çš„交易所。&quot;
+ sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ sNoInternetUpdate = &quot;ä¸é€éŽ internet æ›´æ–°&quot;
+ sMarketPlace = &quot;證券交易所:&quot;
+ sNoInternetDataAvailable = &quot;ç„¡æ³•æŽ¥å— Internet 股票價格!&quot;
+ sCheckInternetSettings = &quot;å¯èƒ½çš„原因:&lt;BR&gt;Internet 設定ä¸æ­£ç¢ºï¼Œéœ€è¦é‡æ–°è¨­å®šã€‚&lt;BR&gt;輸入了一個錯誤的股票代碼。&quot;
+ sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)
+
+ sMsgEndDatebeforeNow = &quot;到期日期必須是在今日之å‰ï¼&quot;
+ sMsgStartDatebeforeEndDate = &quot;交割日期必須是在到期日期之å‰ï¼&quot;
+
+ sMarket(0,0) = &quot;美元&quot;
+ sMarket(0,1) = &quot;$&quot;
+ sMarket(0,2) = &quot;ç´ç´„&quot;
+ sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
+ &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
+ &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
+ sMarket(0,5) = &quot;股票符號&quot;
+ sMarket(0,6) = &quot;en&quot;
+ sMarket(0,7) = &quot;US&quot;
+ sMarket(0,8) = &quot;409&quot;
+ sMarket(0,9) = &quot;44&quot;
+ sMarket(0,10) = &quot;1&quot;
+
+ sMarket(1,0) = &quot;æ­å…ƒ&quot;
+ sMarket(1,1) = chr(8364)
+ sMarket(1,2) = &quot;法蘭克ç¦&quot;
+ sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
+ sMarket(1,5) = &quot;股代碼&quot;
+ sMarket(1,6) = &quot;de;nl;pt;el&quot;
+ sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
+ sMarket(1,8) = &quot;407;413;816;408&quot;
+ sMarket(1,9) = &quot;59/9&quot;
+ sMarket(1,10) = &quot;1&quot;
+
+ sMarket(2,0) = &quot;英鎊&quot;
+ sMarket(2,1) = &quot;£&quot;
+ sMarket(2,2) = &quot;倫敦&quot;
+ sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
+ sMarket(2,5) = &quot;股票符號&quot;
+ sMarket(2,6) = &quot;en&quot;
+ sMarket(2,7) = &quot;GB&quot;
+ sMarket(2,8) = &quot;809&quot;
+ sMarket(2,9) = &quot;44&quot;
+ sMarket(2,10) = &quot;1&quot;
+
+ sMarket(3,0) = &quot;日元&quot;
+ sMarket(3,1) = &quot;Â¥&quot;
+ sMarket(3,2) = &quot;æ±äº¬&quot;
+ sMarket(3,3) = &quot;&quot;
+ sMarket(3,5) = &quot;代碼&quot;
+ sMarket(3,6) = &quot;ja&quot;
+ sMarket(3,7) = &quot;JP&quot;
+ sMarket(3,8) = &quot;411&quot;
+ sMarket(3,9) = &quot;&quot;
+ sMarket(3,10) = &quot;&quot;
+
+ sMarket(4,0) = &quot;港幣&quot;
+ sMarket(4,1) = &quot;HK$&quot;
+ sMarket(4,2) = &quot;香港&quot;
+ sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.HK&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(4,5) = &quot;編號&quot;
+ sMarket(4,6) = &quot;zh&quot;
+ sMarket(4,7) = &quot;HK&quot;
+ sMarket(4,8) = &quot;C04&quot;
+ sMarket(4,9) = &quot;44&quot;
+ sMarket(4,10) = &quot;1&quot;
+
+ sMarket(5,0) = &quot;澳元&quot;
+ sMarket(5,1) = &quot;$&quot;
+ sMarket(5,2) = &quot;悉尼&quot;
+ sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(5,5) = &quot;股票符號&quot;
+ sMarket(5,6) = &quot;en&quot;
+ sMarket(5,7) = &quot;AU&quot;
+ sMarket(5,8) = &quot;C09&quot;
+ sMarket(5,9) = &quot;44&quot;
+ sMarket(5,10) = &quot;1&quot;
+
+&apos; ****************************End of the default subset*********************************
+ CompleteMarketList()
+
+ LocalizedCurrencies()
+
+ With TransactModel
+ .lblStockNames.Label = sStockname
+ .lblQuantity.Label = &quot;數é‡&quot;
+ .lblRate.Label = &quot;股票價格&quot;
+ .lblDate.Label = &quot;交易日期&quot;
+ .hlnCommission.Label = &quot;其它的支出費用&quot;
+ .lblCommission.Label = &quot;手續費&quot;
+ .lblMinimum.Label = &quot;最低手續費&quot;
+ .lblFix.Label = &quot;固定金é¡/費用&quot;
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+
+ With StockRatesModel
+ .optPerShare.Label = &quot;æ¯è‚¡è‚¡æ¯&quot;
+ .optTotal.Label = &quot;è‚¡æ¯ç¸½è¨ˆ&quot;
+ .lblDividend.Label = &quot;金é¡&quot;
+ .lblExchangeRate.Label = &quot;轉æ›æ¯”率(舊股票 -&gt; 新股票)&quot;
+ .lblColon.Label = &quot;:&quot;
+ .lblDate.Label = &quot;轉æ›æ—¥æœŸ:&quot;
+ .lblStockNames.Label = sStockname
+ .lblStartDate.Label = sStartDate
+ .lblEndDate.Label = sEndDate
+ .optDaily.Label = &quot;æ¯æ—¥&quot;
+ .optWeekly.Label = &quot;æ¯é€±&quot;
+ .hlnInterval.Label = &quot;時間週期&quot;
+ .cmdGoOn.Label = sOk
+ .cmdCancel.Label = sCancel
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/Lang_zh.xba b/test/user-template/user/basic/Depot/Lang_zh.xba
new file mode 100644
index 000000000000..94e05bfe5ecd
--- /dev/null
+++ b/test/user-template/user/basic/Depot/Lang_zh.xba
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Lang_zh" script:language="StarBasic">Option Explicit
+
+Sub LoadChineseSimpleLanguage()
+
+ sProductname = GetProductname
+ sOK = &quot;确定&quot;
+ sCancel = &quot;å–消&quot;
+ sColumnHeader = &quot;列标题&quot;
+ sInsertStockName = &quot;请首先往您的å¸å·å†…输入一些股票å称ï¼&quot;
+ sTitle = &quot;&lt;PRODUCTNAME&gt;:股票管ç†&quot;
+ sTitle = ReplaceString(sTitle, sProductName, &quot;&lt;PRODUCTNAME&gt;&quot;)
+ sMsgError = &quot;输入错误&quot;
+ sMsgNoName = sInsertStockname
+ sMsgNoQuantity = &quot;请输入大于0的交易股数&quot;
+ sMsgNoDividend = &quot;请输入æ¯è‚¡çš„红利金é¢æˆ–红利总é¢&quot;
+ sMsgNoExchangeRate = &quot;请输入一个正确的兑æ¢çŽ‡(旧股-&gt; æ–°è‚¡)。&quot;
+ sMsgNoValidExchangeDate = &quot;请输入拆股生效日期。&quot;
+ sMsgWrongExchangeDate = &quot;因为在拆股生效åŽå·²ç»è¿›è¡Œäº†è‚¡ç¥¨äº¤æ˜“,所以无法拆股。&quot;
+ sMsgSellTooMuch = &quot;您最多能出售的股票数为: &quot;
+ sMsgConfirm = &quot;需è¦ç¡®è®¤&quot;
+ sMsgFreeStock = &quot;您想è¦è¾“入赠é€è‚¡ç¥¨ï¼Ÿ&quot;
+ sMsgTotalLoss = &quot;您想è¦è¾“入总äºæŸå€¼ï¼Ÿ&quot;
+ sMsgAuthorization = &quot;安全查询&quot;
+ sMsgDeleteAll = &quot;您è¦åˆ é™¤æ‰€æœ‰çš„交易信æ¯å¹¶é‡æ–°å»ºç«‹è‚¡ç¥¨å¸å·ä¸€è§ˆè¡¨å—?&quot;
+ cSplit = &quot;股票拆股日期 &quot;
+ sHistory = &quot;记录&quot;
+ TransactTitle(1) = &quot;出售股票&quot;
+ TransactTitle(2) = &quot;购买股票&quot;
+ StockRatesTitle(1) = &quot;支付红利&quot;
+ StockRatesTitle(2) = &quot;股票拆股&quot;
+ StockRatesTitle(3) = sHistory
+ sDepotCurrency = &quot;股票交易的货å¸&quot;
+ sStockName = &quot;股票å称&quot;
+ TransactMode = LIFO &apos; Possible values: &quot;FIFO&quot; and &quot;LIFO&quot;
+ DateCellStyle = &quot;结果 日期&quot;
+ CurrCellStyle = &quot;1&quot;
+ sStartDate = &quot;起始日期:&quot;
+ sEndDate = &quot;终止日期:&quot;
+ sStartUpWelcome = &quot;这个样å¼èƒ½å¤Ÿå¸®åŠ©æ‚¨æœ‰æ•ˆåœ°ç®¡ç†è‡ªå·±çš„股票å¸å·&quot;
+ sStartUpChooseMarket = &quot;请首先选择采用的å‚考货å¸ä»¥åŠè¦ç›´æŽ¥ç”¨å›½é™…互è”网æ¥æ›´æ–°èµ„料的è¯åˆ¸äº¤æ˜“所ï¼&quot;
+ sStartUpHint = &quot;很é—憾,&lt;History&gt;功能仅å¯ä¾›ç¾Žå›½å¸‚场使用ï¼&quot;
+ sStartupHint = ReplaceString(sStartUpHint, sHistory, &quot;&lt;History&gt;&quot;)
+ sNoInternetUpdate = &quot;ä¸é€šè¿‡å›½é™…互è”网更新&quot;
+ sMarketPlace = &quot;交易所:&quot;
+ sNoInternetDataAvailable = &quot;无法获得国际互è”网上的行情ï¼&quot;
+ sCheckInternetSettings = &quot;å¯èƒ½çš„原因是:&lt;BR&gt;您的国际互è”网设定ä¸æ­£ç¡®ï¼Œéœ€è¦é‡æ–°è®¾å®šã€‚&lt;BR&gt;输入了一个错误的股票å·ç ã€‚&quot;
+ sCheckInternetSettings = ReplaceString(sCheckInternetSettings, chr(13), &quot;&lt;BR&gt;&quot;)
+
+ sMsgEndDatebeforeNow = &quot;终止日期必须在今天之å‰ï¼&quot;
+ sMsgStartDatebeforeEndDate = &quot;起始日期必须在终止日期之å‰ï¼&quot;
+
+ sMarket(0,0) = &quot;美元&quot;
+ sMarket(0,1) = &quot;$&quot;
+ sMarket(0,2) = &quot;纽约&quot;
+ sMarket(0,3) = &quot;http://finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(0,4) = &quot;http://ichart.finance.yahoo.com/table.csv?&quot; &amp;_
+ &quot;s=&lt;StockID&gt;&amp;d=&lt;EndMonth&gt;&amp;e=&lt;EndDay&gt;&amp;f=&lt;Endyear&gt;&amp;g=d&amp;&quot; &amp;_
+ &quot;a=&lt;StartMonth&gt;&amp;b=&lt;StartDay&gt;&amp;c=&lt;Startyear&gt;&amp;ignore=.csv&quot;
+ sMarket(0,5) = &quot;图标&quot;
+ sMarket(0,6) = &quot;en&quot;
+ sMarket(0,7) = &quot;US&quot;
+ sMarket(0,8) = &quot;409&quot;
+ sMarket(0,9) = &quot;44&quot;
+ sMarket(0,10) = &quot;1&quot;
+
+ sMarket(1,0) = &quot;欧元&quot;
+ sMarket(1,1) = chr(8364)
+ sMarket(1,2) = &quot;法兰克ç¦&quot;
+ sMarket(1,3) = &quot;http://de.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.F&amp;f=sl1t1c1ghpv&amp;e=.csv&quot;
+ sMarket(1,5) = &quot;代ç &quot;
+ sMarket(1,6) = &quot;de;nl;pt;el&quot;
+ sMarket(1,7) = &quot;DE;NL;PT;GR&quot;
+ sMarket(1,8) = &quot;407;413;816;408&quot;
+ sMarket(1,9) = &quot;59/9&quot;
+ sMarket(1,10) = &quot;1&quot;
+
+ sMarket(2,0) = &quot;英镑&quot;
+ sMarket(2,1) = &quot;£&quot;
+ sMarket(2,2) = &quot;伦敦&quot;
+ sMarket(2,3) = &quot;http://uk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.L&amp;m=*&amp;f=sl1t1c1ghov&amp;e=.csv&quot;
+ sMarket(2,5) = &quot;股票代ç &quot;
+ sMarket(2,6) = &quot;en&quot;
+ sMarket(2,7) = &quot;GB&quot;
+ sMarket(2,8) = &quot;809&quot;
+ sMarket(2,9) = &quot;44&quot;
+ sMarket(2,10) = &quot;1&quot;
+
+ sMarket(3,0) = &quot;日元&quot;
+ sMarket(3,1) = &quot;Â¥&quot;
+ sMarket(3,2) = &quot;东京&quot;
+ sMarket(3,3) = &quot;&quot;
+ sMarket(3,5) = &quot;代ç &quot;
+ sMarket(3,6) = &quot;ja&quot;
+ sMarket(3,7) = &quot;JP&quot;
+ sMarket(3,8) = &quot;411&quot;
+ sMarket(3,9) = &quot;&quot;
+ sMarket(3,10) = &quot;&quot;
+
+ sMarket(4,0) = &quot;港å¸&quot;
+ sMarket(4,1) = &quot;HK$&quot;
+ sMarket(4,2) = &quot;香港&quot;
+ sMarket(4,3) = &quot;http://hk.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;.HK&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(4,5) = &quot;ç¼–å·&quot;
+ sMarket(4,6) = &quot;zh&quot;
+ sMarket(4,7) = &quot;HK&quot;
+ sMarket(4,8) = &quot;C04&quot;
+ sMarket(4,9) = &quot;44&quot;
+ sMarket(4,10) = &quot;1&quot;
+
+ sMarket(5,0) = &quot;澳元&quot;
+ sMarket(5,1) = &quot;$&quot;
+ sMarket(5,2) = &quot;悉尼&quot;
+ sMarket(5,3) = &quot;http://au.finance.yahoo.com/d/quotes.csv?s=&lt;StockID&gt;&amp;f=sl1d1t1c1ohgv&amp;e=.csv&quot;
+ sMarket(5,5) = &quot;股票代ç &quot;
+ sMarket(5,6) = &quot;en&quot;
+ sMarket(5,7) = &quot;AU&quot;
+ sMarket(5,8) = &quot;C09&quot;
+ sMarket(5,9) = &quot;44&quot;
+ sMarket(5,10) = &quot;1&quot;
+
+&apos; ****************************End of the default subset*********************************
+ CompleteMarketList()
+
+ LocalizedCurrencies()
+
+ With TransactModel
+ .lblStockNames.Label = sStockname
+ .lblQuantity.Label = &quot;æ•°é‡&quot;
+ .lblRate.Label = &quot;股票牌价&quot;
+ .lblDate.Label = &quot;交易日期&quot;
+ .hlnCommission.Label = &quot;其它支出费用&quot;
+ .lblCommission.Label = &quot;手续费&quot;
+ .lblMinimum.Label = &quot;最低手续费&quot;
+ .lblFix.Label = &quot;固定金é¢/费用&quot;
+ .cmdGoOn.Label = sOK
+ .cmdCancel.Label = sCancel
+ End With
+
+ With StockRatesModel
+ .optPerShare.Label = &quot;æ¯è‚¡çº¢åˆ©&quot;
+ .optTotal.Label = &quot;红利总计&quot;
+ .lblDividend.Label = &quot;金é¢&quot;
+ .lblExchangeRate.Label = &quot;å…‘æ¢çŽ‡(æ—§-&gt;æ–°)&quot;
+ .lblColon.Label = &quot;:&quot;
+ .lblDate.Label = &quot;å…‘æ¢æ—¥æœŸ:&quot;
+ .lblStockNames.Label = sStockname
+ .lblStartDate.Label = sStartDate
+ .lblEndDate.Label = sEndDate
+ .optDaily.Label = &quot;æ¯å¤©&quot;
+ .optWeekly.Label = &quot;æ¯å‘¨&quot;
+ .hlnInterval.Label = &quot;时间周期&quot;
+ .cmdGoOn.Label = sOk
+ .cmdCancel.Label = sCancel
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Depot/dialog.xlb b/test/user-template/user/basic/Depot/dialog.xlb
new file mode 100644
index 000000000000..764ea3f35335
--- /dev/null
+++ b/test/user-template/user/basic/Depot/dialog.xlb
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Depot" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="Dialog2"/>
+ <library:element library:name="Dialog3"/>
+ <library:element library:name="Dialog4"/>
+</library:library>
diff --git a/test/user-template/user/basic/Depot/script.xlb b/test/user-template/user/basic/Depot/script.xlb
new file mode 100644
index 000000000000..372665b22760
--- /dev/null
+++ b/test/user-template/user/basic/Depot/script.xlb
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Depot" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="Depot"/>
+ <library:element library:name="CommonLang"/>
+ <library:element library:name="Currency"/>
+ <library:element library:name="Internet"/>
+ <library:element library:name="Lang_de"/>
+ <library:element library:name="tools"/>
+ <library:element library:name="Lang_en"/>
+ <library:element library:name="Lang_fr"/>
+ <library:element library:name="Lang_it"/>
+ <library:element library:name="Lang_es"/>
+ <library:element library:name="Lang_sv"/>
+ <library:element library:name="Lang_zh"/>
+ <library:element library:name="Lang_tw"/>
+ <library:element library:name="Lang_ko"/>
+ <library:element library:name="Lang_ja"/>
+</library:library>
diff --git a/test/user-template/user/basic/Depot/tools.xba b/test/user-template/user/basic/Depot/tools.xba
new file mode 100644
index 000000000000..6399805419ee
--- /dev/null
+++ b/test/user-template/user/basic/Depot/tools.xba
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="tools" script:language="StarBasic">REM ***** BASIC *****
+Option Explicit
+
+Sub RemoveSheet()
+ If oSheets.HasbyName(&quot;Link&quot;) then
+ oSheets.RemovebyName(&quot;Link&quot;)
+ End If
+End Sub
+
+
+Sub InitializeStatusLine(StatusText as String, MaxValue as Integer, FirstValue as Integer)
+ oStatusline = oDocument.GetCurrentController.GetFrame.CreateStatusIndicator()
+ oStatusLine.Start(StatusText, MaxValue)
+ oStatusline.SetValue(FirstValue)
+End Sub
+
+
+Sub MakeRangeVisible(oSheet as Object, RangeName as String, BIsVisible as Boolean)
+Dim oRangeAddress, oColumns as Object
+Dim i, iStartColumn, iEndColumn as Integer
+ oRangeAddress = oSheet.GetCellRangeByName(RangeName).RangeAddress
+ iStartColumn = oRangeAddress.StartColumn
+ iEndColumn = oRangeAddress.EndColumn
+ oColumns = oSheet.Columns
+ For i = iStartColumn To iEndColumn
+ oSheet.Columns(i).IsVisible = bIsVisible
+ Next i
+End Sub
+
+
+Function GetRowIndex(oSheet as Object, RowName as String)
+Dim oRange as Object
+ oRange = oSheet.GetCellRangeByName(RowName)
+ GetRowIndex = oRange.RangeAddress.StartRow
+End Function
+
+
+Function GetTransactionCount(iStartRow as Integer)
+Dim iEndRow as Integer
+ iStartRow = GetRowIndex(oMovementSheet, &quot;ColumnsToHide&quot;)
+ iEndRow = GetRowIndex(oMovementSheet, &quot;HiddenRow3&quot; )
+ GetTransactionCount = iEndRow -iStartRow - 2
+End Function
+
+
+Function GetStocksCount(iStartRow as Integer)
+Dim iEndRow as Integer
+ iStartRow = GetRowIndex(oFirstSheet, &quot;HiddenRow1&quot;)
+ iEndRow = GetRowIndex(oFirstSheet, &quot;HiddenRow2&quot;)
+ GetStocksCount = iEndRow -iStartRow - 1
+End Function
+
+
+Function FillListbox(ListboxControl as Object, MsgTitle as String, bShowMessage) as Boolean
+Dim i, StocksCount as Integer
+Dim iStartRow as Integer
+Dim oCell as Object
+ &apos; Add stock names to empty list box
+ StocksCount = GetStocksCount(iStartRow)
+ If StocksCount &gt; 0 Then
+ ListboxControl.Model.StringItemList() = NullList()
+ For i = 1 To StocksCount
+ oCell = oFirstSheet.GetCellByPosition(SBCOLUMNNAME1,iStartRow + i)
+ ListboxControl.AddItem(oCell.String, i-1)
+ Next
+ FillListbox() = True
+ Else
+ If bShowMessage Then
+ Msgbox(sInsertStockName, 16, MsgTitle)
+ FillListbox() = False
+ End If
+ End If
+End Function
+
+
+Sub CellValuetoControl(oSheet, oControl as Object, CellName as String)
+Dim oCell as Object
+Dim StringValue
+ oCell = GetCellByName(oSheet, CellName)
+ If oControl.PropertySetInfo.HasPropertyByName(&quot;EffectiveValue&quot;) Then
+ oControl.EffectiveValue = oCell.Value
+ Else
+ oControl.Value = oCell.Value
+ End If
+&apos; If oCell.FormulaResultType = 1 Then
+&apos; StringValue = oNumberFormatter.GetInputString(oCell.NumberFormat, oCell.Value)
+&apos; oControl.Text = DeleteStr(StringValue, &quot;%&quot;)
+&apos; Else
+&apos; oControl.Text = oCell.String
+&apos; End If
+End Sub
+
+
+Sub RemoveStockRows(oSheet as Object, iStartRow, RowCount as Integer)
+ If RowCount &gt; 0 Then
+ oSheet.Rows.RemoveByIndex(iStartRow, RowCount)
+ End If
+End Sub
+
+
+Sub AddValueToCellContent(iCellCol, iCellRow as Integer, AddValue)
+Dim oCell as Object
+Dim OldValue
+ oCell = oMovementSheet.GetCellByPosition(iCellCol, iCellRow)
+ OldValue = oCell.Value
+ oCell.Value = OldValue + AddValue
+End Sub
+
+
+Sub CheckInputDate(aEvent as Object)
+Dim oRefDialog as Object
+Dim oRefModel as Object
+Dim oDateModel as Object
+ oDateModel = aEvent.Source.Model
+ oRefModel = DlgReference.GetControl(&quot;cmdGoOn&quot;).Model
+ oRefModel.Enabled = oDateModel.Date &lt;&gt; 0
+End Sub
+
+
+
+&apos; Updates the cell with the CurrentValue after checking if the
+&apos; Newdate is later than the one that is refered to in the annotation
+&apos; of the cell
+Sub InsertCurrentValue(CurValue as Double, iRow as Integer, Newdate as Date)
+Dim oCell as Object
+Dim OldDate as Date
+ oCell = oFirstSheet.GetCellByPosition(SBCOLUMNRATE1, iRow)
+ OldDate = CDate(oCell.Annotation.Text.String)
+ If NewDate &gt;= OldDate Then
+ oCell.SetValue(CurValue)
+ oCell.Annotation.Text.SetString(CStr(NewDate))
+ End If
+End Sub
+
+
+Sub SplitCellValue(oSheet, FirstNumber, SecondNumber, iCol, iRow, NoteText)
+Dim oCell as Object
+Dim OldValue
+ oCell = oSheet.GetCellByPosition(iCol, iRow)
+ OldValue = oCell.Value
+ oCell.Value = OldValue * FirstNumber / SecondNumber
+ If NoteText &lt;&gt; &quot;&quot; Then
+ oCell.Annotation.SetString(NoteText)
+ End If
+End Sub
+
+
+Function GetStockRowIndex(ByVal Stockname) as Integer
+Dim i, StocksCount as Integer
+Dim iStartRow as Integer
+Dim oCell as Object
+ StocksCount = GetStocksCount(iStartRow)
+ For i = 1 To StocksCount
+ oCell = oFirstSheet.GetCellByPosition(SBCOLUMNNAME1,iStartRow + i)
+ If oCell.String = Stockname Then
+ GetStockRowIndex = iStartRow + i
+ Exit Function
+ End If
+ Next
+ GetStockRowIndex = -1
+End Function
+
+
+Function GetStockID(StockName as String, Optional iFirstRow as Integer) as String
+Dim CellStockName as String
+Dim i as Integer
+Dim iCount as Integer
+Dim iLastRow as Integer
+ If IsMissing(iFirstRow) Then
+ iFirstRow = GetRowIndex(oFirstSheet, &quot;HiddenRow1&quot;)
+ End If
+ iCount = GetStocksCount(iFirstRow)
+ iLastRow = iFirstRow + iCount
+ For i = iFirstRow To iLastRow
+ CellStockName = oFirstSheet.GetCellByPosition(SBCOLUMNNAME1, i).String
+ If CellStockname = StockName Then
+ Exit For
+ End If
+ Next i
+ If i &gt; iLastRow Then
+ GetStockID() = &quot;&quot;
+ Else
+ If Not IsMissing(iFirstRow) Then
+ iFirstRow = i
+ End If
+ GetStockID() = oFirstSheet.GetCellByPosition(SBCOLUMNID1, i).String
+ End If
+End Function
+
+
+Function CheckDocLocale(LocLanguage as String, LocCountry as String)
+Dim bIsDocLanguage as Boolean
+Dim bIsDocCountry as Boolean
+ bIsDocLanguage = Instr(1, LocLanguage, sDocLanguage, SBBINARY) &lt;&gt; 0
+ bIsDocCountry = Instr(1, LocCountry, sDocCountry, SBBINARY) &lt;&gt; 0 OR SDocCountry = &quot;&quot;
+ CheckDocLocale = (bIsDocLanguage And bIsDocCountry)
+End Function
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Euro/AutoPilotRun.xba b/test/user-template/user/basic/Euro/AutoPilotRun.xba
new file mode 100644
index 000000000000..e1f2fe076953
--- /dev/null
+++ b/test/user-template/user/basic/Euro/AutoPilotRun.xba
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="AutoPilotRun" script:language="StarBasic">Option Explicit
+
+Public SourceDir as String
+Public TargetDir as String
+Public TargetStemDir as String
+Public SourceFile as String
+Public TargetFile as String
+Public Source as String
+Public SubstFile as String
+Public SubstDir as String
+Public NoArgs()
+Public TypeList(14) as String
+Public GoOn as Boolean
+Public DoUnprotect as Integer
+Public Password as String
+Public DocIndex as Integer
+Public oPathSettings as Object
+Public oUcb as Object
+Public TotDocCount as Integer
+Public sTotDocCount as String
+Public OpenProperties(1) as New com.sun.star.beans.PropertyValue
+
+
+Sub StartAutoPilot()
+Dim i As Integer
+Dim oFactoryKey as Object
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ BasicLibraries.LoadLibrary(&quot;ImportWizard&quot;)
+ If InitResources(&quot;Euro Converter&quot;, &quot;eur&quot;) Then
+ oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ oLocale = GetStarOfficeLocale()
+ InitializeConverter(oLocale, 2)
+ ToggleGoOnButton()
+ oFactoryKey = GetRegistryKeyContent(&quot;org.openoffice.Setup/Office/Factories&quot;)
+ DialogModel.chkTextDocuments.Enabled = oFactoryKey.hasbyName(&quot;com.sun.star.text.TextDocument&quot;)
+ DialogModel.cmdGoOn.DefaultButton = True
+ DialogModel.lstCurrencies.TabIndex = 12
+ DialogConvert.GetControl(&quot;optWholeDir&quot;).SetFocus()
+ DialogConvert.Execute()
+ DialogConvert.Dispose()
+ End If
+End Sub
+
+
+Sub ConvertDocuments()
+Dim FilesList()
+Dim bDisposable as Boolean
+
+ If Source &lt;&gt; &quot;&quot; And TargetDir &lt;&gt; &quot;&quot; Then
+ If DialogModel.optSingleFile.State = 1 Then
+ SourceFile = Source
+ TotDocCount = 1
+ Else
+ SourceDir = Source
+ TargetStemDir = TargetDir
+ TypeList(0) = &quot;calc8&quot;
+ TypeList(1) = &quot;calc_StarOffice_XML_Calc&quot;
+ TypeList(2) = &quot;calc_StarCalc_30&quot;
+ TypeList(3) = &quot;calc_StarCalc_40&quot;
+ TypeList(4) = &quot;calc_StarCalc_50&quot;
+ If DialogModel.chkTextDocuments.State = 1 Then
+ ReDim Preserve TypeList(13) as String
+
+ TypeList(5) = &quot;writer8&quot;
+ TypeList(6) = &quot;writerglobal8&quot;
+ TypeList(7) = &quot;writer_StarOffice_XML_Writer&quot;
+ TypeList(8) = &quot;writer_globaldocument_StarOffice_XML_Writer_GlobalDocument&quot;
+ TypeList(9) = &quot;writer_StarWriter_30&quot;
+ TypeList(10) = &quot;writer_StarWriter_40&quot;
+ TypeList(11) = &quot;writer_globaldocument_StarWriter_40GlobalDocument&quot;
+ TypeList(12) = &quot;writer_StarWriter_50&quot;
+ TypeList(13) = &quot;writer_globaldocument_StarWriter_50GlobalDocument&quot;
+ End If
+ FilesList() = ReadDirectories(SourceDir, bRecursive, True, False, TypeList())
+ TotDocCount = Ubound(FilesList(),1) + 1
+ End If
+ InitializeProgressPage(DialogModel)
+&apos; ChangeToNextProgressStep()
+ sTotDocCount = CStr(TotDocCount)
+ OpenProperties(0).Name = &quot;Hidden&quot;
+ OpenProperties(0).Value = True
+ OpenProperties(1).Name = &quot;AsTemplate&quot;
+ OpenProperties(1).Value = False
+ For DocIndex = 0 To TotDocCount - 1
+ If InitializeDocument(FilesList(), bDisposable) Then
+ If StoreDocument() Then
+ ConvertDocument()
+ oDocument.Store
+ End If
+ If bDisposable Then
+ oDocument.Dispose()
+ End If
+ End If
+ Next DocIndex
+ DialogModel.cmdBack.Enabled = True
+ DialogModel.cmdGoOn.Enabled = True
+ DialogModel.cmdGoOn.Label = sReady
+ DialogModel.cmdCancel.Label = sEnd
+ End If
+End Sub
+
+
+Function InitializeDocument(FilesList(), bDisposable as Boolean) as Boolean
+&apos; The Autopilot is started from step No. 2
+Dim sViewPath as String
+Dim bIsReadOnly as Boolean
+Dim sExtension as String
+ On Local Error Goto NEXTFILE
+ If Not bCancelTask Then
+ If DialogModel.optWholeDir.State = 1 Then
+ SourceFile = FilesList(DocIndex,0)
+ TargetFile = ReplaceString(SourceFile,TargetStemDir,SourceDir)
+ TargetDir = DirectorynameoutofPath(TargetFile, &quot;/&quot;)
+ Else
+ SourceFile = Source
+ TargetFile = TargetDir &amp; &quot;/&quot; &amp; FileNameoutofPath(SourceFile, &quot;/&quot;)
+ End If
+ If CreateFolder(TargetDir) Then
+ sExtension = GetFileNameExtension(SourceFile, &quot;/&quot;)
+ oDocument = OpenDocument(SourceFile, OpenProperties(), bDisposable)
+ If (oDocument.IsReadOnly) AND (UCase(SourceFile) = UCase(TargetFile)) Then
+ bIsReadOnly = True
+ Msgbox(sMsgDOCISREADONLY, 16, GetProductName())
+ Else
+ bIsReadOnly = False
+ RetrieveDocumentObjects()
+ sViewPath = CutPathView(SourceFile, 60)
+ DialogModel.lblCurDocument.Label = Str(DocIndex+1) &amp; &quot;/&quot; &amp; sTotDocCount &amp; &quot; (&quot; &amp; sViewPath &amp; &quot;)&quot;
+ End If
+ InitializeDocument() = Not bIsReadOnly
+ Else
+ InitializeDocument() = False
+ End If
+ Else
+ InitializeDocument() = False
+ End If
+NEXTFILE:
+ If Err &lt;&gt; 0 Then
+ InitializeDocument() = False
+ Resume LETSGO
+LETSGO:
+ End If
+End Function
+
+
+Sub ChangeToNextProgressStep()
+ DialogModel.lblCurProgress.FontWeight = com.sun.star.awt.FontWeight.NORMAL
+ DialogConvert.GetControl(&quot;lblCurProgress&quot;).Visible = True
+End Sub
+
+
+Function StoreDocument() as Boolean
+Dim sCurFileExists as String
+Dim iOverWrite as Integer
+ If (TargetFile &lt;&gt; &quot;&quot;) And (Not bCancelTask) Then
+ On Local Error Goto NOSAVING
+ If oUcb.Exists(TargetFile) Then
+ sCurFileExists = ReplaceString(sMsgFileExists, ConvertFromUrl(TargetFile), &quot;&lt;1&gt;&quot;)
+ sCurFileExists = ReplaceString(sCurFileExists, chr(13), &quot;&lt;CR&gt;&quot;)
+ iOverWrite = Msgbox (sCurFileExists, 32 + 3, sMsgDLGTITLE)
+ Select Case iOverWrite
+ Case 1 &apos; OK
+ Case 2 &apos; Abort
+ bCancelTask = True
+ StoreDocument() = False
+ Exit Function
+ Case 7 &apos; No
+ StoreDocument() = False
+ Exit Function
+ End Select
+ End If
+ If TargetFile &lt;&gt; SourceFile Then
+ oDocument.StoreAsUrl(TargetFile,NoArgs)
+ Else
+ oDocument.Store
+ End If
+ StoreDocument() = True
+ NOSAVING:
+ If Err &lt;&gt; 0 Then
+ StoreDocument() = False
+ Resume CLERROR
+ End If
+ CLERROR:
+ End If
+End Function
+
+
+Sub SwapExtent()
+ DialogModel.chkRecursive.Enabled = DialogModel.optWholeDir.State = 1
+ If DialogModel.optWholeDir.State = 1 Then
+ DialogModel.lblSource.Label = sSOURCEDIR
+ If Not IsNull(SubstFile) Then
+ SubstFile = DialogModel.txtSource.Text
+ DialogModel.txtSource.Text = SubstDir
+ End If
+ Else
+ DialogModel.LblSource.Label = sSOURCEFILE
+ If Not IsNull(SubstDir) Then
+ SubstDir = DialogModel.txtSource.Text
+ DialogModel.txtSource.Text = SubstFile
+ End If
+ End If
+ ToggleGoOnButton()
+End Sub
+
+
+Function InitializeThirdStep() as Boolean
+Dim TextBoxText as String
+ Source = AssignFileName(DialogModel.txtSource.Text, DialogModel.lblSource.Label, True)
+ If CheckTextBoxPath(DialogModel.txtTarget, True, True, sMsgDLGTITLE, True) Then
+ TargetDir = AssignFileName(DialogModel.txtTarget.Text, DialogModel.lblTarget.Label, False)
+ Else
+ TargetDir = &quot;&quot;
+ End If
+ If Source &lt;&gt; &quot;&quot; And TargetDir &lt;&gt; &quot;&quot; Then
+ bRecursive = DialogModel.chkRecursive.State = 1
+ bDoUnprotect = DialogModel.chkProtect.State = 1
+ DialogModel.lblRetrieval.FontWeight = com.sun.star.awt.FontWeight.BOLD
+ DialogModel.lblRetrieval.Label = sPrgsRETRIEVAL
+ DialogModel.lblCurProgress.Label = sPrgsCONVERTING
+ If DialogModel.optWholeDir.State = 1 Then
+ TextBoxText = sSOURCEDIR &amp; &quot; &quot; &amp; ConvertFromUrl(Source) &amp; chr(13)
+ If DialogModel.chkRecursive.State = 1 Then
+ TextBoxText = TextBoxText &amp; DeleteStr(sInclusiveSubDir,&quot;~&quot;) &amp; chr(13)
+ End If
+ Else
+ TextBoxText = sSOURCEFILE &amp; &quot; &quot; &amp; ConvertFromUrl(Source) &amp; chr(13)
+ End If
+ TextBoxText = TextBoxText &amp; sTARGETDIR &amp; &quot; &quot; &amp; ConvertFromUrl(TargetDir) &amp; chr(13)
+ If DialogModel.chkProtect.State = 1 Then
+ TextBoxText = TextboxText &amp; sPrgsUNPROTECT
+ End If
+ DialogModel.txtConfig.Text = TextBoxText
+ ToggleProgressStep()
+ DialogModel.cmdGoOn.Enabled = False
+ InitializeThirdStep() = True
+ Else
+ InitializeThirdStep() = False
+ End If
+End Function
+
+
+Sub ToggleProgressStep(Optional aEvent as Object)
+Dim bMakeVisible as Boolean
+Dim LocStep as Integer
+ &apos; If the Sub is call by the &apos;cmdBack&apos; Button then set the &apos;bMakeVisible&apos; variable accordingly
+ bMakeVisible = IsMissing(aEvent)
+ If bMakeVisible Then
+ DialogModel.Step = 3
+ Else
+ DialogModel.Step = 2
+ End If
+ DialogConvert.GetControl(&quot;lblCurrencies&quot;).Visible = Not bMakeVisible
+ DialogConvert.GetControl(&quot;lstCurrencies&quot;).Visible = Not bMakeVisible
+ DialogConvert.GetControl(&quot;cmdBack&quot;).Visible = bMakeVisible
+ DialogConvert.GetControl(&quot;cmdGoOn&quot;).Visible = bMakeVisible
+ DialogModel.imgPreview.ImageUrl = BitmapDir &amp; &quot;euro_&quot; &amp; DialogModel.Step &amp; &quot;.bmp&quot;
+End Sub
+
+
+Sub EnableStep2DialogControls(OnValue as Boolean)
+ With DialogModel
+ .hlnExtent.Enabled = OnValue
+ .optWholeDir.Enabled = OnValue
+ .optSingleFile.Enabled = OnValue
+ .chkProtect.Enabled = OnValue
+ .cmdCallSourceDialog.Enabled = OnValue
+ .cmdCallTargetDialog.Enabled = OnValue
+ .lblSource.Enabled = OnValue
+ .lblTarget.Enabled = OnValue
+ .txtSource.Enabled = OnValue
+ .txtTarget.Enabled = OnValue
+ .imgPreview.Enabled = OnValue
+ .lstCurrencies.Enabled = OnValue
+ .lblCurrencies.Enabled = OnValue
+ If OnValue Then
+ ToggleGoOnButton()
+ .chkRecursive.Enabled = .optWholeDir.State = 1
+ Else
+ .cmdGoOn.Enabled = False
+ .chkRecursive.Enabled = False
+ End If
+ End With
+End Sub
+
+
+Sub InitializeProgressPage()
+ DialogConvert.GetControl(&quot;lblRetrieval&quot;).Visible = False
+ DialogConvert.GetControl(&quot;lblCurProgress&quot;).Visible = False
+ DialogModel.lblRetrieval.FontWeight = com.sun.star.awt.FontWeight.NORMAL
+ DialogModel.lblCurProgress.FontWeight = com.sun.star.awt.FontWeight.BOLD
+ DialogConvert.GetControl(&quot;lblRetrieval&quot;).Visible = True
+ DialogConvert.GetControl(&quot;lblCurProgress&quot;).Visible = True
+End Sub
+
+
+Function AssignFileName(sPath as String, ByVal HeaderString, bCheckFileType as Boolean) as String
+Dim bIsValid as Boolean
+Dim sLocMimeType as String
+Dim sNoDirMessage as String
+ HeaderString = DeleteStr(HeaderString, &quot;:&quot;)
+ sPath = ConvertToUrl(Trim(sPath))
+ bIsValid = oUcb.Exists(sPath)
+ If bIsValid Then
+ If DialogModel.optSingleFile.State = 1 Then
+ If bCheckFileType Then
+ sLocMimeType = GetRealFileContent(sPath)
+ If DialogModel.chkTextDocuments.State = 1 Then
+ If (Instr(1, sLocMimeType, &quot;text&quot;) = 0) And (Instr(1, sLocMimeType, &quot;calc&quot;) = 0) Then
+ Msgbox(sMsgFileInvalid, 48, sMsgDLGTITLE)
+ bIsValid = False
+ End If
+ Else
+ If (Instr(1, sLocMimeType, &quot;spreadsheet&quot;) = 0) And (Instr(1, sLocMimeType, &quot;calc&quot;)) = 0 Then
+ Msgbox(sMsgFileInvalid, 48, sMsgDLGTITLE)
+ bIsValid = False
+ End If
+ End If
+ End If
+ Else
+ If Not oUcb.IsFolder(sPath) Then
+ sNoDirMessage = ReplaceString(sMsgNODIRECTORY,sPath,&quot;&lt;1&gt;&quot;)
+ Msgbox(sNoDirMessage,48, sMsgDLGTITLE)
+ bIsValid = False
+ Else
+ sPath = RTrimStr(sPath,&quot;/&quot;)
+ sPath = sPath &amp; &quot;/&quot;
+ End If
+ End if
+ Else
+ Msgbox(HeaderString &amp; &quot; &apos;&quot; &amp; ConvertFromUrl(sPath) &amp; &quot;&apos; &quot; &amp; sMsgNOTTHERE,48, sMsgDLGTITLE)
+ End If
+ If bIsValid Then
+ AssignFileName() = sPath
+ Else
+ AssignFilename() = &quot;&quot;
+ End If
+End Function
+
+
+Sub ToggleGoOnButton()
+Dim bDoEnable as Boolean
+Dim sLocMimeType as String
+Dim sPath as String
+ bDoEnable = Ubound(DialogModel.lstCurrencies.SelectedItems()) &gt; -1
+ If bDoEnable Then
+ &apos; Check if Source is set correctly
+ sPath = ConvertToUrl(Trim(DialogModel.txtSource.Text))
+ bDoEnable = oUcb.Exists(sPath)
+ End If
+ DialogModel.cmdGoOn.Enabled = bDoEnable
+End Sub
+
+
+Sub CallFolderPicker()
+ GetFolderName(DialogModel.txtTarget)
+ ToggleGoOnButton()
+End Sub
+
+
+Sub CallFilePicker()
+ If DialogModel.optSingleFile.State = 1 Then
+ Dim oMasterKey as Object
+ Dim oTypes() as Object
+ Dim oUIKey() as Object
+
+ oMasterKey = GetRegistryKeyContent(&quot;org.openoffice.TypeDetection.Types&quot;)
+ oTypes() = oMasterKey.Types
+ oUIKey = GetRegistryKeyContent(&quot;org.openoffice.Office.UI/FilterClassification/LocalFilters&quot;)
+ If DialogModel.chkTextDocuments.State = 1 Then
+ Dim FilterNames(11,1) as String
+ FilterNames(6,0) = oTypes.GetByName(&quot;writer_StarOffice_XML_Writer&quot;).UIName
+ FilterNames(6,1) = &quot;*.sxw&quot;
+ FilterNames(7,0) = oTypes.GetByName(&quot;writer_StarOffice_XML_Writer_Template&quot;).UIName
+ FilterNames(7,1) = &quot;*.stw&quot;
+ FilterNames(8,0) = oUIKey.Classes.GetByName(&quot;sw3to5&quot;).DisplayName
+ FilterNames(8,1) = &quot;*.sdw&quot;
+ FilterNames(9,0) = oUIKey.Classes.GetByName(&quot;sw3to5templ&quot;).DisplayName
+ Filternames(9,1) = &quot;*.vor&quot;
+ FilterNames(10,0) = oTypes.GetByName(&quot;writer8&quot;).UIName
+ FilterNames(10,1) = &quot;*.odt&quot;
+ FilterNames(11,0) = oTypes.GetByName(&quot;writer8_template&quot;).UIName
+ FilterNames(11,1) = &quot;*.ott&quot;
+ Else
+ ReDim FilterNames(5,1) as String
+ End If
+ FilterNames(0,0) = oTypes.GetByName(&quot;calc_StarOffice_XML_Calc&quot;).UIName
+ Filternames(0,1) = &quot;*.sxc&quot;
+ FilterNames(1,0) = oTypes.GetByName(&quot;calc_StarOffice_XML_Calc_Template&quot;).UIName
+ Filternames(1,1) = &quot;*.stc&quot;
+ FilterNames(2,0) = oUIKey.Classes.GetByName(&quot;sc345&quot;).DisplayName
+ FilterNames(2,1) = &quot;*.sdc&quot;
+ FilterNames(3,0) = oUIKey.Classes.GetByName(&quot;sc345templ&quot;).DisplayName
+ Filternames(3,1) = &quot;*.vor&quot;
+ FilterNames(4,0) = oTypes.GetByName(&quot;calc8&quot;).UIName
+ Filternames(4,1) = &quot;*.ods&quot;
+ FilterNames(5,0) = oTypes.GetByName(&quot;calc8_template&quot;).UIName
+ Filternames(5,1) = &quot;*.ots&quot;
+ GetFileName(DialogModel.txtSource, Filternames())
+ Else
+ GetFolderName(DialogModel.txtSource)
+ End If
+ ToggleGoOnButton()
+End Sub
+
+
+Sub PreviousStep()
+ DialogModel.Step = 2
+ DialogModel.cmdGoOn.Label = sGOON
+ DialogModel.cmdCancel.Label = sCANCEL
+End Sub
+</script:module>
diff --git a/test/user-template/user/basic/Euro/Common.xba b/test/user-template/user/basic/Euro/Common.xba
new file mode 100644
index 000000000000..42a5c643dd22
--- /dev/null
+++ b/test/user-template/user/basic/Euro/Common.xba
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Common" script:language="StarBasic"> REM ***** BASIC *****
+Public DialogModel as Object
+Public DialogConvert as Object
+Public DialogPassword as Object
+Public PasswordModel as Object
+
+Sub RetrieveDocumentObjects()
+ CurMimeType = Tools.GetDocumentType(oDocument)
+ If Instr(1, CurMimeType, &quot;calc&quot;) &lt;&gt; 0 Then
+ oSheets = oDocument.Sheets
+ oSheet = oDocument.Sheets.GetbyIndex(0)
+ oAddressRanges = oDocument.createInstance(&quot;com.sun.star.sheet.SheetCellRanges&quot;)
+ End If
+ &apos; Retrieve the indices for the cellformatations
+ oFormats = oDocument.NumberFormats
+End Sub
+
+
+Sub CancelTask()
+&apos; If Not DocDisposed Then
+&apos; ReprotectSheets()
+&apos; End If
+ If DialogModel.Step = 3 And (Not bCancelTask) Then
+ If Msgbox(sMsgCancelConversion, 36, sMsgCancelTitle) = 6 Then
+ bCancelTask = True
+ DialogConvert.EndExecute
+ Else
+ bCancelTask = False
+ End If
+ Else
+ DialogConvert.EndExecute()
+ End If
+End Sub
+
+
+Function ConvertDocument()
+ GoOn = True
+&apos; DocDisposed = True
+ InitializeProgressbar()
+ If Instr(1, CurMimeType, &quot;calc&quot;) &lt;&gt; 0 Then
+ bDocHasProtectedSheets = CheckSheetProtection(oSheets)
+ If bDocHasProtectedSheets Then
+ bDocHasProtectedSheets = UnprotectSheetsWithPassword(oSheets, bDoUnProtect)
+ End If
+ If Not bDocHasProtectedSheets Then
+ If Not bRangeListDefined Then
+ TotCellCount = 0
+ CreateRangeEnumeration(True)
+ Else
+ IncreaseStatusvalue(SBRelGet/3)
+ End If
+ RangeIndex = Ubound(RangeList())
+ If RangeIndex &gt; -1 Then
+ ConvertThehardWay(RangeList(), True, False)
+ MakeStyleEnumeration(True)
+ oDocument.calculateAll()
+ End If
+ ReprotectSheets()
+ bRangeListDefined = False
+ End If
+ Else
+ DialogModel.ProgressBar.ProgressValue = 10 &apos; oStatusline.SetValue(10)
+ ConvertTextFields()
+ DialogModel.ProgressBar.ProgressValue = 80 &apos; oStatusline.SetValue(80)
+ ConvertWriterTables()
+ End If
+ EndStatusLine()
+ On Local Error Goto 0
+End Function
+
+
+Sub SwitchNumberFormat(oObject as Object, oFormats as object)
+Dim nFormatLanguage as Integer
+Dim nFormatDecimals as Integer
+Dim nFormatLeading as Integer
+Dim bFormatLeading as Integer
+Dim bFormatNegRed as Integer
+Dim bFormatThousands as Integer
+Dim i as Integer
+Dim aNewStr as String
+Dim iNumberFormat as Long
+Dim AddToList as Boolean
+Dim sOldCurrSymbol as String
+ On Local Error Resume Next
+ iNumberFormat = oObject.NumberFormat
+ On Local Error GoTo NOKEY
+ aFormat() = oFormats.getByKey(iNumberFormat)
+ On Local Error GoTo 0
+ sOldCurrSymbol = aFormat.CurrencySymbol
+ If sOldCurrSymbol = CurrValue(CurrIndex,5) Then
+ aSimpleStr = &quot;0 [$EUR]&quot;
+ Else
+ aSimpleStr = &quot;0 [$&quot; &amp; sEuroSign &amp; aFormat.CurrencyExtension &amp; &quot;]&quot;
+ End If
+
+ nSimpleKey = Numberformat(oFormats, aSimpleStr, oLocale)
+ &apos; set new Currency format with according settings
+ nFormatDecimals = 2
+ nFormatLeading = aFormat.LeadingZeros
+ bFormatNegRed = aFormat.NegativeRed
+ bFormatThousands = aFormat.ThousandsSeparator
+ aNewStr = oFormats.generateFormat( nSimpleKey, aFormat.Locale, bFormatThousands, bFormatNegRed, nFormatDecimals, nFormatLeading)
+ oObject.NumberFormat = Numberformat(oFormats, aNewStr, aFormat.Locale)
+ NOKEY:
+ If Err &lt;&gt; 0 Then
+ Resume CLERROR
+ End If
+ CLERROR:
+End Sub
+
+
+Function Numberformat( oFormats as Object, aFormatStr as String, oLocale as Object)
+Dim nRetkey
+Dim l as String
+Dim c as String
+ nRetKey = oFormats.queryKey( aFormatStr, oLocale, True )
+ If nRetKey = -1 Then
+ l = oLocale.Language
+ c = oLocale.Country
+ nRetKey = oFormats.addNew( aFormatStr, oLocale )
+ If nRetKey = -1 Then nRetKey = 0
+ End If
+ Numberformat = nRetKey
+End Function
+
+
+Function CheckFormatType( FormatObject as object)
+Dim i as Integer
+Dim LocCurrIndex as Integer
+Dim nFormatFormatString as String
+Dim FormatLangID as Integer
+Dim sFormatCurrExt as String
+Dim oFormatofObject() as Object
+
+ &apos; Retrieve the Format of the Object
+ On Local Error GoTo NOKEY
+ oFormatofObject = oFormats.getByKey(FormatObject.NumberFormat)
+ On Local Error GoTo 0
+ If NOT INT(oFormatofObject.Type) AND com.sun.star.util.NumberFormat.CURRENCY Then
+ CheckFormatType = False
+ Exit Function
+ End If
+ If FieldinArray(CurrSymbolList(),2,oFormatofObject.CurrencySymbol) Then
+ &apos; If the Currencysymbol of the object ist the one needed, then check the Currency extension
+ sFormatCurrExt = oFormatofObject.CurrencyExtension
+
+ If FieldInList(CurExtension(),2,sFormatCurrExt) Then
+ &apos; The Currency - extension also fits
+ CheckFormatType = True
+ Else
+ &apos; The Currency - symbol is Euro-conforming (like &apos;DEM&apos;), so there is no Currency-Extension
+ CheckFormatType = oFormatofObject.CurrencySymbol = CurrsymbolList(2)
+ End If
+ Else
+ &apos; The Currency Symbol of the object is not the desired one
+ If oFormatofObject.CurrencySymbol = &quot;&quot; Then
+ &apos; Format is &quot;automatic&quot;
+ CheckFormatType = CheckLocale(oFormatofObject.Locale)
+ Else
+ CheckFormatType = False
+ End If
+ End If
+
+ NOKEY:
+ If Err &lt;&gt; 0 Then
+ CheckFormatType = False
+ Resume CLERROR
+ End If
+ CLERROR:
+End Function
+
+
+Sub StartConversion()
+ GoOn = True
+ Select Case DialogModel.Step
+ Case 1
+ If DialogModel.chkComplete.State = 1 Then
+ ConvertWholeDocument()
+ Else
+ ConvertRangesorStylesofDocument()
+ End If
+ Case 2
+ bCancelTask = False
+ If InitializeThirdStep() Then
+ ConvertDocuments()
+ bCancelTask = True
+ End If
+ Case 3
+ DialogConvert.EndExecute()
+ End Select
+End Sub
+
+
+Sub IncreaseStatusValue(AddStatusValue as Integer)
+ StatusValue = Int(StatusValue + AddStatusValue)
+ If DialogModel.Step = 3 Then
+ DialogModel.ProgressBar.ProgressValue = StatusValue
+ Else
+ oStatusline.SetValue(StatusValue)
+ End If
+End Sub
+
+
+Sub SelectCurrency()
+Dim AddtoList as Boolean
+Dim NullList()
+Dim OldCurrIndex as Integer
+ bRangeListDefined = False
+ OldCurrIndex = CurrIndex
+ CurrIndex = DialogModel.lstCurrencies.SelectedItems(0)
+ If OldCurrIndex &lt;&gt; CurrIndex Then
+ InitializeCurrencyValues(CurrIndex)
+ CurExtension(0) = LangIDValue(CurrIndex,0,2)
+ CurExtension(1) = LangIDValue(CurrIndex,1,2)
+ CurExtension(2) = LangIDValue(CurrIndex,2,2)
+ If DialogModel.Step = 1 Then
+ EnableStep1DialogControls(False,False, False)
+ If DialogModel.optCellTemplates.State = 1 Then
+ EnableStep1DialogControls(False, False, False)
+ CreateStyleEnumeration()
+ ElseIf ((DialogModel.optSheetRanges.State = 1) OR (DialogModel.optDocRanges.State = 1)) AND (DialogModel.Step = 1) Then
+ CreateRangeEnumeration(False)
+ If Ubound(RangeList()) = -1 Then
+ DialogModel.lstSelection.StringItemList() = NullList()
+ End If
+ ElseIf DialogModel.optSelRange.State= 1 Then
+ &apos;Preselected Range
+ End If
+ EnableStep1DialogControls(True, True, True)
+ ElseIf DialogModel.Step = 2 Then
+ EnableStep2DialogControls(True)
+ End If
+ End If
+End Sub
+
+
+Sub FillUpCurrencyListbox()
+Dim i as Integer
+Dim MaxIndex as Integer
+ MaxIndex = Ubound(CurrValue(),1)
+ Dim LocList(MaxIndex) as String
+ For i = 0 To MaxIndex
+ LocList(i) = CurrValue(i,0)
+ Next i
+ DialogModel.lstCurrencies.StringItemList() = LocList()
+ If CurrIndex &gt; -1 Then
+ SelectListboxItem(DialogModel.lstCurrencies, CurrIndex)
+ End If
+End Sub
+
+
+Sub InitializeProgressbar()
+ CurCellCount = 0
+ If Not IsNull(oStatusLine) Then
+ oStatusline.Start(sStsPROGRESS, 100)
+ Else
+ DialogModel.ProgressBar.ProgressValue = 0
+ End If
+ StatusValue = 0
+End Sub
+
+
+Sub EndStatusLine()
+ If Not IsNull(oStatusLine) Then
+ oStatusline.End
+ Else
+ DialogModel.ProgressBar.ProgressValue = 100
+ End If
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Euro/ConvertRun.xba b/test/user-template/user/basic/Euro/ConvertRun.xba
new file mode 100644
index 000000000000..a15c88412228
--- /dev/null
+++ b/test/user-template/user/basic/Euro/ConvertRun.xba
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="ConvertRun" script:language="StarBasic">Option Explicit
+
+Public oPreSelRange as Object
+
+Sub Main()
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ If InitResources(&quot;Euro Converter&quot;, &quot;eur&quot;) Then
+ bDoUnProtect = False
+ bPreSelected = True
+ oDocument = ThisComponent
+ RetrieveDocumentObjects() &apos; Statusline, SheetsCollection etc.
+ InitializeConverter(oDocument.CharLocale, 1)
+ GetPreSelectedRange()
+ If GoOn Then
+ DialogModel.lstCurrencies.TabIndex = 2
+ DialogConvert.GetControl(&quot;chkComplete&quot;).SetFocus()
+ DialogConvert.Execute
+ End If
+ DialogConvert.Dispose
+ End If
+End Sub
+
+
+Sub SelectListItem()
+Dim Listbox as Object
+Dim oListSheet as Object
+Dim CurStyleName as String
+Dim oCursheet as Object
+Dim oTempRanges as Object
+Dim sCurSheetName as String
+Dim RangeName as String
+Dim oSheetRanges as Object
+Dim ListIndex as Integer
+Dim a as Integer
+Dim i as Integer
+Dim n as Integer
+Dim m as Integer
+Dim MaxIndex as Integer
+ Listbox = DialogModel.lstSelection
+ If Ubound(Listbox.SelectedItems()) &gt; -1 Then
+ EnableStep1DialogControls(False, False, False)
+ oSelRanges = oDocument.createInstance(&quot;com.sun.star.sheet.SheetCellRanges&quot;)
+
+ &apos; Is the sheet the basis, then the sheetobject has to be created
+ If DialogModel.optDocRanges.State = 1 Then
+ &apos; Document is the basis for the conversion
+ ListIndex = Listbox.SelectedItems(0)
+ oCurSheet = RetrieveSheetoutofRangeName(Listbox.StringItemList(ListIndex))
+ oDocument.CurrentController.SetActiveSheet(oCurSheet)
+ Else
+ oCurSheet = oDocument.CurrentController.ActiveSheet
+ End If
+ sCurSheetName = oCurSheet.Name
+ If DialogModel.optCellTemplates.State = 1 Then
+ Dim CurIndex as Integer
+ For i = 0 To Ubound(Listbox.SelectedItems())
+ CurIndex = Listbox.SelectedItems(i)
+ CurStylename = Listbox.StringItemList(CurIndex)
+ oSheetRanges = oCursheet.CellFormatRanges.createEnumeration
+ While oSheetRanges.hasMoreElements
+ oRange = oSheetRanges.NextElement
+ If oRange.getPropertyState(&quot;NumberFormat&quot;) = 1 Then
+ If oRange.CellStyle = CurStyleName Then
+ oSelRanges.InsertbyName(&quot;&quot;,oRange)
+ End If
+ End If
+ Wend
+ Next i
+ Else
+ &apos; Hard Formatation is selected
+ a = -1
+ For n = 0 To Ubound(Listbox.SelectedItems())
+ m = Listbox.SelectedItems(n)
+ RangeName = Listbox.StringItemList(m)
+ oListSheet = RetrieveSheetoutofRangeName(RangeName)
+ a = a + 1
+ MaxIndex = Ubound(SelRangeList())
+ If a &gt; MaxIndex Then
+ Redim Preserve SelRangeList(MaxIndex + SBRANGEUBOUND)
+ End If
+ SelRangeList(a) = RangeName
+ If oListSheet.Name = sCurSheetName Then
+ oRange = RetrieveRangeoutofRangeName(RangeName)
+ oSelRanges.InsertbyName(&quot;&quot;,oRange)
+ End If
+ Next n
+ End If
+ If a &gt; -1 Then
+ ReDim Preserve SelRangeList(a)
+ Else
+ ReDim SelRangeList()
+ End If
+ oDocument.CurrentController.Select(oSelRanges)
+ EnableStep1DialogControls(True, True, True)
+ End If
+End Sub
+
+
+&apos; Procedure that is called by an event
+Sub RetrieveEnableValue()
+Dim EnableValue as Boolean
+ EnableValue = Not DialogModel.lstSelection.Enabled
+ EnableStep1DialogControls(True, EnableValue, True)
+End Sub
+
+
+Sub EnableStep1DialogControls(bCurrEnabled as Boolean, bFrameEnabled as Boolean, bButtonsEnabled as Boolean)
+Dim bCurrIsSelected as Boolean
+Dim bObjectIsSelected as Boolean
+Dim bConvertWholeDoc as Boolean
+Dim bDoEnableFrame as Boolean
+ bConvertWholeDoc = DialogModel.chkComplete.State = 1
+ bDoEnableFrame = bFrameEnabled And (NOT bConvertWholeDoc)
+
+ &apos; Controls around the Selection Listbox
+ With DialogModel
+ .lblCurrencies.Enabled = bCurrEnabled
+ .lstCurrencies.Enabled = bCurrEnabled
+ .lstSelection.Enabled = bDoEnableFrame
+ .lblSelection.Enabled = bDoEnableFrame
+ .hlnSelection.Enabled = bDoEnableFrame
+ .optCellTemplates.Enabled = bDoEnableFrame
+ .optSheetRanges.Enabled = bDoEnableFrame
+ .optDocRanges.Enabled = bDoEnableFrame
+ .optSelRange.Enabled = bDoEnableFrame
+ End With
+ &apos; The CheckBox has the Value &apos;1&apos; when the Controls in the Frame are disabled
+ If bButtonsEnabled Then
+ bCurrIsSelected = Ubound(DialogModel.lstCurrencies.SelectedItems()) &lt;&gt; -1
+ &apos; Enable GoOnButton only when Currency is selected
+ DialogModel.cmdGoOn.Enabled = bCurrIsSelected
+ DialogModel.chkComplete.Enabled = bCurrIsSelected
+ If bDoEnableFrame AND DialogModel.cmdGoOn.Enabled Then
+ &apos; If FrameControls are enabled, check if Listbox is Empty
+ bObjectIsSelected = Ubound(DialogModel.lstSelection.SelectedItems()) &lt;&gt; -1
+ DialogModel.cmdGoOn.Enabled = bObjectIsSelected
+ End If
+ Else
+ DialogModel.cmdGoOn.Enabled = False
+ DialogModel.chkComplete.Enabled = False
+ End If
+End Sub
+
+
+Sub ConvertRangesOrStylesOfDocument()
+Dim i as Integer
+Dim ItemName as String
+Dim SelList() as String
+Dim oSheetRanges as Object
+
+ bDocHasProtectedSheets = CheckSheetProtection(oSheets)
+ If bDocHasProtectedSheets Then
+ bDocHasProtectedSheets = UnprotectSheetsWithPassWord(oSheets, bDoUnProtect)
+ DialogModel.cmdGoOn.Enabled = False
+ End If
+ If Not bDocHasProtectedSheets Then
+ EnableStep1DialogControls(False, False, False)
+ InitializeProgressBar()
+ If DialogModel.optSelRange.State = 1 Then
+ SelectListItem()
+ End If
+ SelList() = DialogConvert.GetControl(&quot;lstSelection&quot;).SelectedItems()
+ If DialogModel.optCellTemplates.State = 1 Then
+ &apos; Option &apos;Soft&apos; Formatation is selected
+ AssignRangestoStyle(DialogModel.lstSelection.StringItemList(), SelList())
+ ConverttheSoftWay(SelList(), True)
+ ElseIf DialogModel.optSelRange.State = 1 Then
+ oSheetRanges = oPreSelRange.CellFormatRanges.createEnumeration
+ While oSheetRanges.hasMoreElements
+ oRange = oSheetRanges.NextElement
+ If CheckFormatType(oRange) Then
+ ConvertCellCurrencies(oRange)
+ SwitchNumberFormat(oRange, oFormats, sEuroSign)
+ End If
+ Wend
+ Else
+ ConverttheHardWay(SelList(), False, True)
+ End If
+ oStatusline.End
+ EnableStep1DialogControls(True, False, True)
+ DialogModel.cmdGoOn.Enabled = True
+ oDocument.CurrentController.Select(oSelRanges)
+ End If
+End Sub
+
+
+Sub ConvertWholeDocument()
+Dim s as Integer
+ DialogModel.cmdGoOn.Enabled = False
+ DialogModel.chkComplete.Enabled = False
+ GoOn = ConvertDocument()
+ EmptyListbox(DialogModel.lstSelection())
+ EnableStep1DialogControls(True, True, True)
+End Sub
+
+
+&apos; Everything previously selected will be deselected
+Sub EmptySelection()
+Dim RangeName as String
+Dim i as Integer
+Dim MaxIndex as Integer
+Dim EmptySelRangeList() as String
+
+ If Not IsNull(oSelRanges) Then
+ If oSelRanges.HasElements Then
+ EmptySelRangeList() = ArrayOutofString(oSelRanges.RangeAddressesasString, &quot;;&quot;, MaxIndex)
+ For i = 0 To MaxIndex
+ oSelRanges.RemovebyName(EmptySelRangeList(i))
+ Next i
+ End If
+ oDocument.CurrentController.Select(oSelRanges)
+ Else
+ oSelRanges = oDocument.createInstance(&quot;com.sun.star.sheet.SheetCellRanges&quot;)
+ End If
+End Sub
+
+
+Function AddSelectedRangeToSelRangesEnum() as Object
+Dim oLocRange as Object
+ osheet = oDocument.CurrentController.GetActiveSheet
+ oSelRanges = oDocument.createInstance(&quot;com.sun.star.sheet.SheetCellRanges&quot;)
+ &apos; Check if a Currency-Range has been selected
+ oLocRange = oDocument.CurrentController.Selection
+ bPreSelected = oLocRange.SupportsService(&quot;com.sun.star.sheet.SheetCellRange&quot;)
+ If bPreSelected Then
+ oSelRanges.InsertbyName(&quot;&quot;,oLocRange)
+ AddSelectedRangeToSelRangesEnum() = oLocRange
+ End If
+End Function
+
+
+Sub GetPreSelectedRange()
+Dim i as Integer
+Dim OldCurrSymbolList(2) as String
+Dim OldCurrIndex as Integer
+Dim OldCurExtension(2) as String
+ oPreSelRange = AddSelectedRangeToSelRangesEnum()
+
+ DialogModel.chkComplete.State = Abs(Not(bPreSelected))
+ If bPreSelected Then
+ DialogModel.optSelRange.State = 1
+ AddRangeToListbox(oPreSelRange)
+ Else
+ DialogModel.optCellTemplates.State = 1
+ CreateStyleEnumeration()
+ End If
+ EnableStep1DialogControls(True, bPreSelected, True)
+ DialogModel.optSelRange.Enabled = bPreSelected
+End Sub
+
+
+Sub AddRangeToListbox(oLocRange as Object)
+ EmptyListBox(DialogModel.lstSelection)
+ PreName = RetrieveRangeNamefromAddress(oLocRange)
+ AddSingleItemToListbox(DialogModel.lstSelection, Prename)&apos;, 0)
+ SelectListboxItem(DialogModel.lstCurrencies, CurrIndex)
+ TotCellCount = CountRangeCells(oLocRange)
+End Sub
+
+
+Sub CheckRangeSelection(Optional oEvent)
+ EmptySelection()
+ AddRangeToListbox(oPreSelRange)
+ oPreSelRange = AddSelectedRangeToSelRangesEnum()
+End Sub
+
+
+&apos; Checks if a Field (LocField) is already defined in an Array
+&apos; Returns &apos;True&apos; or &apos;False&apos;
+Function FieldinList(LocList(), MaxIndex as integer, ByVal LocField ) As Boolean
+Dim i as integer
+ LocField = Ucase(LocField)
+ For i = Lbound(LocList()) to MaxIndex
+ If Ucase(LocList(i)) = LocField then
+ FieldInList = True
+ Exit Function
+ End if
+ Next
+ FieldInList = False
+End Function
+
+
+Function CheckLocale(oLocale) as Boolean
+Dim i as Integer
+Dim LocCountry as String
+Dim LocLanguage as String
+ LocCountry = oLocale.Country
+ LocLanguage = oLocale.Language
+ For i = 0 To 1
+ If LocLanguage = LangIDValue(CurrIndex,i,0) AND LocCountry = LangIDValue(CurrIndex,i,1) Then
+ CheckLocale = True
+ Exit Function
+ End If
+ Next i
+ CheckLocale = False
+End Function
+
+
+Sub SetOptionValuestoNull()
+ With DialogModel
+ .optCellTemplates.State = 0
+ .optSheetRanges.State = 0
+ .optDocRanges.State = 0
+ .optSelRange.State = 0
+ End With
+End Sub
+
+
+
+Sub SetStatusLineText(sStsREPROTECT as String)
+ If Not IsNull(oStatusLine) Then
+ oStatusline.SetText(sStsREPROTECT)
+ End If
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Euro/DlgConvert.xdl b/test/user-template/user/basic/Euro/DlgConvert.xdl
new file mode 100644
index 000000000000..18f3caef0454
--- /dev/null
+++ b/test/user-template/user/basic/Euro/DlgConvert.xdl
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="DialogConvert" dlg:left="96" dlg:top="28" dlg:width="270" dlg:height="210" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_DIALOG" dlg:closeable="true" dlg:moveable="true">
+ <dlg:bulletinboard>
+ <dlg:text dlg:id="lblCurrencies" dlg:tab-index="1" dlg:left="170" dlg:top="39" dlg:width="89" dlg:height="8" dlg:value="lblCurrencies"/>
+ <dlg:checkbox dlg:id="chkComplete" dlg:tab-index="0" dlg:left="12" dlg:top="43" dlg:width="129" dlg:height="10" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_CHECKBOX1" dlg:value="chkComplete" dlg:checked="true">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Euro.ConvertRun.RetrieveEnableValue?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:checkbox>
+ <dlg:menulist dlg:id="lstCurrencies" dlg:tab-index="2" dlg:left="170" dlg:top="51" dlg:width="90" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_COMBOBOX1" dlg:spin="true" dlg:linecount="12">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Euro.Common.SelectCurrency?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="optCellTemplates" dlg:tab-index="3" dlg:left="12" dlg:top="96" dlg:width="129" dlg:height="10" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_OPTIONBUTTON1" dlg:value="optCellTemplates">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.Soft.CreateStyleEnumeration?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optSheetRanges" dlg:tab-index="4" dlg:left="12" dlg:top="110" dlg:width="130" dlg:height="10" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_OPTIONBUTTON2" dlg:value="optSheetRanges">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.Hard.CreateRangeList?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optDocRanges" dlg:tab-index="5" dlg:left="12" dlg:top="124" dlg:width="130" dlg:height="10" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_OPTIONBUTTON3" dlg:value="optDocRanges">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.Hard.CreateRangeList?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optSelRange" dlg:tab-index="6" dlg:left="12" dlg:top="138" dlg:width="130" dlg:height="10" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_OPTIONBUTTON4" dlg:value="optSelRange">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.ConvertRun.CheckRangeSelection?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ </dlg:radiogroup>
+ <dlg:text dlg:id="lblSelection" dlg:tab-index="7" dlg:left="170" dlg:top="84" dlg:width="73" dlg:height="8" dlg:page="1" dlg:value="lblSelection"/>
+ <dlg:menulist dlg:id="lstSelection" dlg:tab-index="8" dlg:left="170" dlg:top="96" dlg:width="90" dlg:height="52" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_LISTBOX1" dlg:multiselection="true">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Euro.ConvertRun.SelectListItem?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="optSingleFile" dlg:tab-index="9" dlg:left="12" dlg:top="51" dlg:width="146" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_OBFILE" dlg:value="optSingleFile">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.AutoPilotRun.SwapExtent?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optWholeDir" dlg:tab-index="10" dlg:left="12" dlg:top="65" dlg:width="146" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_OBDIR" dlg:value="optWholeDir" dlg:checked="true">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.AutoPilotRun.SwapExtent?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ </dlg:radiogroup>
+ <dlg:textfield dlg:id="txtConfig" dlg:tab-index="11" dlg:left="6" dlg:top="50" dlg:width="258" dlg:height="55" dlg:page="3" dlg:vscroll="true" dlg:multiline="true" dlg:readonly="true"/>
+ <dlg:textfield dlg:id="txtSource" dlg:tab-index="12" dlg:left="80" dlg:top="82" dlg:width="165" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_TBSOURCE">
+ <script:event script:event-name="on-textchange" script:macro-name="vnd.sun.star.script:Euro.AutoPilotRun.ToggleGoOnButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:textfield>
+ <dlg:button dlg:id="cmdCallSourceDialog" dlg:tab-index="13" dlg:left="249" dlg:top="81" dlg:width="15" dlg:height="14" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_CBSOURCEOPEN" dlg:value="...">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.AutoPilotRun.CallFilePicker?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:checkbox dlg:id="chkRecursive" dlg:tab-index="14" dlg:left="12" dlg:top="98" dlg:width="252" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_CHECKRECURSIVE" dlg:value="chkRecursive" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="chkTextDocuments" dlg:tab-index="15" dlg:left="12" dlg:top="112" dlg:width="251" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_CHKTEXTDOCUMENTS" dlg:value="chkTextDocuments" dlg:checked="false"/>
+ <dlg:checkbox dlg:id="chkProtect" dlg:tab-index="16" dlg:left="12" dlg:top="126" dlg:width="251" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_CHKPROTECT" dlg:value="chkProtect" dlg:checked="false"/>
+ <dlg:textfield dlg:id="txtTarget" dlg:tab-index="17" dlg:left="80" dlg:top="143" dlg:width="165" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_TBTARGET"/>
+ <dlg:button dlg:id="cmdCallTargetDialog" dlg:tab-index="18" dlg:left="249" dlg:top="142" dlg:width="15" dlg:height="14" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_CBTARGETOPEN" dlg:value="...">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.AutoPilotRun.CallFolderPicker?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:progressmeter dlg:id="ProgressBar" dlg:tab-index="19" dlg:left="85" dlg:top="152" dlg:width="179" dlg:height="10" dlg:page="3"/>
+ <dlg:text dlg:id="lblHint" dlg:tab-index="20" dlg:left="6" dlg:top="166" dlg:width="258" dlg:height="20" dlg:value="lblHint" dlg:multiline="true"/>
+ <dlg:text dlg:id="lblTarget" dlg:tab-index="21" dlg:left="6" dlg:top="145" dlg:width="73" dlg:height="8" dlg:page="2" dlg:value="lblTarget"/>
+ <dlg:text dlg:id="lblSource" dlg:tab-index="22" dlg:left="6" dlg:top="84" dlg:width="73" dlg:height="8" dlg:page="2" dlg:value="lblSource"/>
+ <dlg:text dlg:id="lblCurProgress" dlg:tab-index="23" dlg:left="16" dlg:top="130" dlg:width="208" dlg:height="8" dlg:page="3"/>
+ <dlg:text dlg:id="lblRetrieval" dlg:tab-index="24" dlg:left="9" dlg:top="119" dlg:width="216" dlg:height="8" dlg:page="3" dlg:value="lblRetrieval"/>
+ <dlg:text dlg:id="lblConfig" dlg:tab-index="25" dlg:left="6" dlg:top="39" dlg:width="94" dlg:height="8" dlg:page="3" dlg:value="lblConfig"/>
+ <dlg:text dlg:id="lblCurDocument" dlg:tab-index="26" dlg:left="16" dlg:top="141" dlg:width="208" dlg:height="8" dlg:page="3"/>
+ <dlg:img dlg:id="imgPreview" dlg:tab-index="27" dlg:left="6" dlg:top="6" dlg:width="258" dlg:height="26" dlg:src="file:///D:/office630np/share/template/german/wizard/bitmap/euro_2.bmp"/>
+ <dlg:fixedline dlg:id="hlnSelection" dlg:tab-index="28" dlg:left="7" dlg:top="72" dlg:width="258" dlg:height="8" dlg:page="1" dlg:value="hlnSelection"/>
+ <dlg:fixedline dlg:id="hlnExtent" dlg:tab-index="29" dlg:left="6" dlg:top="39" dlg:width="156" dlg:height="8" dlg:page="2" dlg:value="hlnExtent"/>
+ <dlg:fixedline dlg:id="hlnProgress" dlg:tab-index="30" dlg:left="6" dlg:top="108" dlg:width="258" dlg:height="8" dlg:page="3" dlg:value="hlnProgress"/>
+ <dlg:fixedline dlg:id="FixedLine1" dlg:tab-index="31" dlg:left="6" dlg:top="152" dlg:width="258" dlg:height="9" dlg:page="1"/>
+ <dlg:text dlg:id="lblProgress" dlg:tab-index="32" dlg:left="6" dlg:top="153" dlg:width="79" dlg:height="8" dlg:page="3" dlg:value="lblProgress"/>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="33" dlg:left="6" dlg:top="190" dlg:width="53" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_CBCANCEL" dlg:value="cmdCancel">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.Common.CancelTask?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdHelp" dlg:tab-index="34" dlg:left="63" dlg:top="190" dlg:width="53" dlg:height="14" dlg:value="cmdHelp" dlg:button-type="help"/>
+ <dlg:button dlg:id="cmdBack" dlg:tab-index="35" dlg:left="155" dlg:top="190" dlg:width="53" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_CBBACK" dlg:value="cmdBack">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.AutoPilotRun.PreviousStep?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdGoOn" dlg:tab-index="36" dlg:left="211" dlg:top="190" dlg:width="53" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGCONVERT_CBGOON" dlg:value="cmdGoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.Common.StartConversion?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Euro/DlgPassword.xdl b/test/user-template/user/basic/Euro/DlgPassword.xdl
new file mode 100644
index 000000000000..976891a48d71
--- /dev/null
+++ b/test/user-template/user/basic/Euro/DlgPassword.xdl
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="DlgPassword" dlg:left="77" dlg:top="93" dlg:width="310" dlg:height="65" dlg:closeable="true" dlg:moveable="true" dlg:title="DlgPassword">
+ <dlg:bulletinboard>
+ <dlg:button dlg:id="cmdGoOn" dlg:tab-index="0" dlg:left="251" dlg:top="6" dlg:width="53" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGPASSWORD_CMDGOON" dlg:value="cmdGoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.Protect.ReadPassword?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="1" dlg:left="251" dlg:top="24" dlg:width="53" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGPASSWORD_CMDCANCEL" dlg:value="cmdCancel">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Euro.Protect.RejectPassword?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdHelp" dlg:tab-index="2" dlg:left="251" dlg:top="45" dlg:width="53" dlg:height="14" dlg:tag="34692" dlg:value="cmdHelp" dlg:button-type="help"/>
+ <dlg:textfield dlg:id="txtPassword" dlg:tab-index="3" dlg:left="11" dlg:top="18" dlg:width="232" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGPASSWORD_TXTPASSWORD" dlg:echochar="*"/>
+ <dlg:fixedline dlg:id="hlnPassword" dlg:tab-index="4" dlg:left="6" dlg:top="6" dlg:width="238" dlg:height="8" dlg:value="hlnPassword"/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Euro/Hard.xba b/test/user-template/user/basic/Euro/Hard.xba
new file mode 100644
index 000000000000..c500946bd9d5
--- /dev/null
+++ b/test/user-template/user/basic/Euro/Hard.xba
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Hard" script:language="StarBasic">REM ***** BASIC *****
+Option Explicit
+
+
+Sub CreateRangeList()
+Dim MaxIndex as Integer
+ MaxIndex = -1
+ EnableStep1DialogControls(False, False, False)
+ EmptySelection()
+ DialogModel.lblSelection.Label = sCURRRANGES
+ EmptyListbox(DialogModel.lstSelection)
+ oDocument.CurrentController.Select(oSelRanges)
+ If (DialogModel.optSheetRanges.State = 1) AND (DialogModel.chkComplete.State &lt;&gt; 1) Then
+ &apos; Conversion on a sheet?
+ SetStatusLineText(sStsRELRANGES)
+ osheet = oDocument.CurrentController.GetActiveSheet
+ oRanges = osheet.CellFormatRanges.createEnumeration()
+ MaxIndex = AddSheetRanges(oRanges, MaxIndex, oSheet, False)
+ If MaxIndex &gt; -1 Then
+ ReDim Preserve RangeList(MaxIndex)
+ End If
+ Else
+ CreateRangeEnumeration(False)
+ bRangeListDefined = True
+ End If
+ EnableStep1DialogControls(True, True, True)
+ SetStatusLineText(&quot;&quot;)
+End Sub
+
+
+Sub CreateRangeEnumeration(bAutopilot as Boolean)
+Dim i as Integer
+Dim MaxIndex as integer
+Dim sStatustext as String
+ MaxIndex = -1
+ If Not bRangeListDefined Then
+ &apos; Cellranges are not yet defined
+ oSheets = oDocument.Sheets
+ For i = 0 To oSheets.Count-1
+ oSheet = oSheets.GetbyIndex(i)
+ If bAutopilot Then
+ IncreaseStatusValue(SBRELGET/osheets.Count)
+ Else
+ sStatustext = ReplaceString(sStsRELSHEETRANGES,Str(i+1),&quot;%1Number%1&quot;)
+ sStatustext = ReplaceString(sStatusText,oSheets.Count,&quot;%2TotPageCount%2&quot;)
+ SetStatusLineText(sStatusText)
+ End If
+ oRanges = osheet.CellFormatRanges.createEnumeration
+ MaxIndex = AddSheetRanges(oRanges, MaxIndex, oSheet, bAutopilot)
+ Next i
+ Else
+ If Not bAutoPilot Then
+ SetStatusLineText(sStsRELRANGES)
+ &apos; cellranges already defined
+ For i = 0 To Ubound(RangeList())
+ If RangeList(i) &lt;&gt; &quot;&quot; Then
+ AddSingleItemToListBox(DialogModel.lstSelection, RangeList(i))
+ End If
+ Next
+ End If
+ End If
+ If MaxIndex &gt; -1 Then
+ ReDim Preserve RangeList(MaxIndex)
+ Else
+ ReDim RangeList()
+ End If
+ Rangeindex = MaxIndex
+End Sub
+
+
+Function AddSheetRanges(oRanges as Object, r as Integer, oSheet as Object, bAutopilot)
+Dim RangeName as String
+Dim AddtoList as Boolean
+Dim iCurStep as Integer
+Dim MaxIndex as Integer
+ iCurStep = DialogModel.Step
+ While oRanges.hasMoreElements
+ oRange = oRanges.NextElement
+ AddToList = CheckFormatType(oRange)
+ If AddToList Then
+ RangeName = RetrieveRangeNamefromAddress(oRange)
+ TotCellCount = TotCellCount + CountRangeCells(oRange)
+ If Not bAutoPilot Then
+ AddSingleItemToListbox(DialogModel.lstSelection, RangeName)
+ End If
+ &apos; The Ranges are only passed to an Array when the whole Document is the basis
+ &apos; Redimension the RangeList Array if necessary
+ MaxIndex = Ubound(RangeList())
+ r = r + 1
+ If r &gt; MaxIndex Then
+ MaxIndex = MaxIndex + SBRANGEUBOUND
+ ReDim Preserve RangeList(MaxIndex)
+ End If
+ RangeList(r) = RangeName
+ End If
+ Wend
+ AddSheetRanges = r
+End Function
+
+
+&apos; adds a section to the collection
+Sub SelectRange()
+Dim i as Integer
+Dim RangeName as String
+Dim SelItem as String
+Dim CurRange as String
+Dim SheetRangeName as String
+Dim DescriptionList() as String
+Dim MaxRangeIndex as Integer
+Dim StatusValue as Integer
+ StatusValue = 0
+ MaxRangeIndex = Ubound(SelRangeList())
+ CurSheetName = oSheet.Name
+ For i = 0 To MaxRangeIndex
+ SelItem = SelRangeList(i)
+ &apos; Is the Range already included in the collection?
+ oRange = RetrieveRangeoutOfRangename(SelItem)
+ TotCellCount = TotCellCount + CountRangeCells(oRange)
+ DescriptionList() = ArrayOutofString(SelItem,&quot;.&quot;,1)
+ SheetRangeName = DeleteStr(DescriptionList(0),&quot;&apos;&quot;)
+ If SheetRangeName = CurSheetName Then
+ oSelRanges.InsertbyName(&quot;&quot;,oRange)
+ End If
+ IncreaseStatusValue(SBRELGET/MaxRangeIndex)
+ Next i
+End Sub
+
+
+Sub ConvertThehardWay(ListboxList(), SwitchFormat as Boolean, bRemove as Boolean)
+Dim i as Integer
+Dim AddCells as Long
+Dim OldStatusValue as Single
+Dim RangeName as String
+Dim LastIndex as Integer
+Dim oSelListbox as Object
+
+ oSelListbox = DialogConvert.GetControl(&quot;lstSelection&quot;)
+ Lastindex = Ubound(ListboxList())
+ If TotCellCount &gt; 0 Then
+ OldStatusValue = StatusValue
+ &apos; hard format
+ For i = 0 To LastIndex
+ RangeName = ListboxList(i)
+ oRange = RetrieveRangeoutofRangeName(RangeName)
+ ConvertCellCurrencies(oRange)
+ If bRemove Then
+ If oSelRanges.HasbyName(RangeName) Then
+ oSelRanges.RemovebyName(RangeName)
+ oDocument.CurrentController.Select(oSelRanges)
+ End If
+ End If
+ If SwitchFormat Then
+ If oRange.getPropertyState(&quot;NumberFormat&quot;) &lt;&gt; 1 Then
+ &apos; Range is hard formatted
+ SwitchNumberFormat(oRange, oFormats, sEuroSign)
+ End If
+ Else
+ SwitchNumberFormat(oRange, oFormats, sEuroSign)
+ End If
+ AddCells = CountRangeCells(oRange)
+ CurCellCount = AddCells
+ IncreaseStatusValue((CurCellCount/TotCellCount)*(100-OldStatusValue))
+ If bRemove Then
+ RemoveListBoxItemByName(oSelListbox.Model,Rangename)
+ End If
+ Next
+ End If
+End Sub
+
+
+Sub ConvertCellCurrencies(oRange as Object)
+Dim oValues as Object
+Dim oCells as Object
+Dim oCell as Object
+ oValues = oRange.queryContentCells(com.sun.star.sheet.CellFlags.VALUE)
+ If (oValues.Count &gt; 0) Then
+ oCells = oValues.Cells.createEnumeration
+ While oCells.hasMoreElements
+ oCell = oCells.nextElement
+ ModifyObjectValuewithCurrFactor(oCell)
+ Wend
+ End If
+End Sub
+
+
+Sub ModifyObjectValuewithCurrFactor(oDocObject as Object)
+Dim oDocObjectValue as double
+ oDocObjectValue = oDocObject.Value
+ oDocObject.Value = Round(oDocObjectValue/CurrFactor, 2)
+End Sub
+
+
+Function CheckIfRangeisCurrency(FormatObject as Object)
+Dim oFormatofObject() as Object
+ &apos; Retrieve the Format of the Object
+ On Local Error GoTo NOKEY
+ oFormatofObject() = oFormats.getByKey(FormatObject.NumberFormat)
+ On Local Error GoTo 0
+ CheckIfRangeIsCurrency = INT(oFormatofObject.Type) AND com.sun.star.util.NumberFormat.CURRENCY
+ Exit Function
+NOKEY:
+ CheckIfRangeisCurrency = False
+ Resume CLERROR
+ CLERROR:
+End Function
+
+
+Function CountColumnsForRow(IndexArray() as String, Row as Integer)
+Dim i as Integer
+Dim NoNulls as Boolean
+ For i = 1 To Ubound(IndexArray,2)
+ If IndexArray(Row,i)= &quot;&quot; Then
+ NoNulls = False
+ Exit For
+ End If
+ Next
+ CountColumnsForRow = i
+End Function
+
+
+Function CountRangeCells(oRange as Object) As Long
+Dim oRangeAddress as Object
+Dim LocCellCount as Long
+ oRangeAddress = oRange.RangeAddress
+ LocCellCount = (oRangeAddress.EndColumn - oRangeAddress.StartColumn + 1) * (oRangeAddress.EndRow - oRangeAddress.StartRow + 1)
+ CountRangeCells = LocCellCount
+End Function</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Euro/Init.xba b/test/user-template/user/basic/Euro/Init.xba
new file mode 100644
index 000000000000..9cd6710c67bc
--- /dev/null
+++ b/test/user-template/user/basic/Euro/Init.xba
@@ -0,0 +1,620 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Init" script:language="StarBasic">Option Explicit
+REM ***** BASIC *****
+
+
+
+Public Const SBRANGEUBOUND = 20
+Public StyleRangeAssignmentList(SBRANGEUBOUND)as String
+Public SelRangeList(SBRANGEUBOUND) as String
+Public RangeList(SBRANGEUBOUND) as String
+Public UnprotectList() as String
+Public FilterNames(2,1) as String
+Public bDoUnProtect as Boolean
+Public bCancelTask as Boolean
+
+Public sREADY as String
+Public sPROTECT as String
+Public sCONTINUE as String
+
+Public sSELTEMPL as String
+Public sSELCELL as String
+Public sCURRRANGES as String
+Public sTEMPLATES as String
+
+Public sSOURCEFILE as String
+Public sSOURCEDIR as String
+Public sTARGETDIR as String
+
+Public sStsPROGRESS as String
+Public sStsCELLPROGRSS as String
+Public sStsRELRANGES as String
+Public sStsRELSHEETRANGES as String
+Public sStsREPROTECT as String
+
+Public sMsgSELDIR as String
+Public sMsgSELFILE as String
+Public sMsgTARGETDIR as String
+Public sMsgNOTTHERE as String
+Public sMsgDLGTITLE as String
+Public sMsgUNPROTECT as String
+Public sMsgPWPROTECT as String
+Public sMsgWRONGPW as String
+Public sMsgSHEETPROTECTED as String
+Public sMsgWARNING as String
+Public sMsgSHEETSNOPROTECT as String
+Public sMsgSHEETNOPROTECT as String
+Public sMsgCHOOSECURRENCY as String
+Public sMsgPASSWORD as String
+Public sMsgOK as String
+Public sMsgCANCEL as String
+Public sMsgFileInvalid as String
+Public sMsgNODIRECTORY as String
+Public sMsgDOCISREADONLY as String
+Public sMsgFileExists as String
+Public sMsgCancelConversion as String
+Public sMsgCancelTitle as String
+Public sCurrPORTUGUESE as String
+Public sCurrDUTCH as String
+Public sCurrFRENCH as String
+Public sCurrSPANISH as String
+Public sCurrITALIAN as String
+Public sCurrGERMAN as String
+Public sCurrBELGIAN as String
+Public sCurrIRISH as String
+Public sCurrLUXEMBOURG as String
+Public sCurrAUSTRIAN as String
+Public sCurrFINNISH as String
+Public sCurrGREEK as String
+Public sCurrSLOVENIAN as String
+Public sCurrCYPRIOT as String
+Public sCurrMALTESE as String
+Public sCurrSLOVAK as String
+Public sCurrESTONIAN as String
+Public sCurrUNKNOWN as String
+Public sCurrSYSUNKNOWN as String
+
+Public sPrgsRETRIEVAL as String
+Public sPrgsCONVERTING as String
+Public sPrgsUNPROTECT as String
+Public sInclusiveSubDir as String
+
+Public Const SBCOUNTRYCOUNT = 17
+Public CurMimeType as String
+Public CurCellCount as Long
+Public oSheets as Object
+Public oStyles as Object
+Public oStyle as Object
+Public oFormats as Object
+Public aSimpleStr as String
+Public nSimpleKey as Long
+Public aFormat() as Variant
+Public oRanges as Object
+Public oRange as Object
+Public nLanguage as integer
+Public nFormatLanguage as integer
+Public aCellFormat as Variant
+Public oDocument as Object
+Public StartCol, StartRow, EndCol, EndRow as String
+Public oSheet as Object
+Public IntStartCol, IntStartRow, IntEndCol, IntEndRow as integer
+Public oSelRanges as Object
+Public nFormatType as Integer
+Public sFormatCurrency as String
+Public sFormatLanguage as String
+Public CurSheetName as String
+Public oStatusLine as Object
+Public Const SBRELGET = 50
+Public StatusValue as Single
+Public TotCellCount as Long
+Public StyleIndex as Integer
+Public RangeIndex as Integer
+Public CurrIndex as Integer
+Public ActLangNumber(1) as Integer
+Public CurExtension(2) as String
+Public Currfactor as Double
+Public CurrSymbolList(2) as String
+Public CurrLanguage as String
+Public CurrValue(16,5)
+Public LangIDValue(16,2,2) as String
+Public PreName as String
+Public Separator as String
+Public BitmapDir as String
+Public TypeIndex as Integer, CSIndex as Integer, LangIndex as Integer, FSIndex as Integer
+Public oLocale as New com.sun.star.lang.Locale
+Public sEuroSign as String
+Public oPointer as Object
+Public sDocType as String
+Public bPreSelected as Boolean
+Public bRecursive as Boolean
+Public bCancelProtection as Boolean
+Public CurrRoundMode as Boolean
+Public bRangeListDefined as Boolean
+Public bDocHasProtectedSheets as Boolean
+Public sGOON as String
+Public sHELP as String
+Public sCANCEL as String
+Dim sEnd as String
+
+Sub InitializeResources()
+Dim LocWorkPath as String
+ With DialogModel
+ &apos; Strings that are also needed by the Password Dialog
+ sGoOn = GetResText(1003)
+ sHelp = GetResText(1001)
+ sCANCEL = GetResText(1418)
+ sEnd = GetResText(1000)
+ sPROTECT = GetResText(1005)
+ sCONTINUE = GetResText(1007)
+ sSELTEMPL = GetResText(1106)
+ sSELCELL = GetResText(1107)
+ sCURRRANGES = GetResText(1108)
+ sTEMPLATES = GetResText(1109)
+ sStsPROGRESS = GetResText(1300)
+ sStsCELLPROGRSS = GetResText(1301)
+ sStsRELSHEETRANGES = GetResText(1302)
+ sStsRELRANGES = GetResText(1303)
+ sStsREPROTECT = GetResText(1304)
+ sREADY = GetResText(1400)
+ sMsgSELDIR = GetResText(1401)
+ sMsgSELFILE = GetResText(1402)
+ sMsgTARGETDIR = GetResText(1403)
+ sMsgNOTTHERE = GetResText(1404)
+ sMsgDLGTITLE = GetResText(1405)
+ sMsgUNPROTECT = GetResText(1406)
+ sMsgPWPROTECT = GetResText(1407)
+ sMsgWRONGPW = GetResText(1408)
+ sMsgSHEETPROTECTED = GetResText(1409)
+ sMsgWARNING = GetResText(1410)
+ sMsgSHEETSNOPROTECT = GetResText(1411)
+ sMsgSHEETNOPROTECT = GetResText(1412)
+ sMsgCHOOSECURRENCY = GetResText(1415)
+ sMsgPASSWORD = GetResText(1416)
+ sMsgOK = GetResText(1417)
+ sMsgCANCEL = GetResText(1418)
+ sMsgFILEINVALID = GetResText(1419)
+ sMsgFILEINVALID = ReplaceString(sMsgFILEINVALID,&quot;%PRODUCTNAME&quot;, GetProductname())
+ SMsgNODIRECTORY = GetResText(1420)
+ sMsgDOCISREADONLY = GetResText(1421)
+ sMsgFileExists = GetResText(1422)
+ sMsgCancelConversion = GetResText(1423)
+ sMsgCancelTitle = GetResText(1424)
+ sCurrPORTUGUESE = GetResText(1500)
+ sCurrDUTCH = GetResText(1501)
+ sCurrFRENCH = GetResText(1502)
+ sCurrSPANISH = GetResText(1503)
+ sCurrITALIAN = GetResText(1504)
+ sCurrGERMAN = GetResText(1505)
+ sCurrBELGIAN = GetResText(1506)
+ sCurrIRISH = GetResText(1507)
+ sCurrLUXEMBOURG = GetResText(1508)
+ sCurrAUSTRIAN = GetResText(1509)
+ sCurrFINNISH = GetResText(1510)
+ sCurrGREEK = GetResText(1511)
+ sCurrSLOVENIAN = GetResText(1512)
+ sCurrCYPRIOT = GetResText(1513)
+ sCurrMALTESE = GetResText(1514)
+ sCurrSLOVAK = GetResText(1515)
+ sCurrESTONIAN = GetResText(1516)
+ sCurrUNKNOWN = GetResText(1517)
+ sCurrSYSUNKNOWN = GetResText(1518)
+ .cmdCancel.Label = sCANCEL
+ .cmdHelp.Label = sHELP
+ .cmdBack.Label = GetResText(1002)
+ .cmdGoOn.Label = sGOON
+ .lblHint.Label = GetResText(1004)
+ .lblCurrencies.Label = GetResText(1006)
+ .cmdBack.Enabled = False
+ If .Step = 1 Then
+ .chkComplete.Label = GetResText(1100)
+ .hlnSelection.Label = GetResText(1101)
+ .optCellTemplates.Label = GetResText(1102)
+ .optSheetRanges.Label = GetResText(1103)
+ .optDocRanges.Label = GetResText(1104)
+ .optSelRange.Label = GetResText(1105)
+ sCURRRANGES = GetResText(1108)
+ .lblSelection.Label = sCURRRANGES
+ Else
+ .lblProgress.Label = sStsPROGRESS
+ .hlnExtent.Label = GetResText(1200)
+ .optSingleFile.Label = GetResText(1201)
+ .optWholeDir.Label = GetResText(1202)
+ .chkProtect.Label = GetResText(1207)
+ .chkTextDocuments.Label = GetResText(1210)
+
+ sSOURCEFILE = GetResText(1203)
+ sSOURCEDIR = GetResText(1204)
+ .lblSource.Label = sSOURCEDIR
+ sInclusiveSubDir = GetResText(1205)
+ .chkRecursive.Label = sInclusiveSubDir
+ sTARGETDIR = GetResText(1206)
+ .lblTarget.Label = STARGETDIR
+
+ LocWorkPath = GetPathSettings(&quot;Work&quot;)
+ If Not oUcb.Exists(LocWorkPath) Then
+ ShowNoOfficePathError()
+ Stop
+ End If
+
+ .txtSource.Text = ConvertfromUrl(LocWorkPath)
+
+ SubstDir = .txtSource.Text
+ .txtTarget.Text = .txtSource.Text
+ .hlnProgress.Label = GetResText(1600)
+ .lblConfig.Label = GetResText(1603)
+ sPrgsRETRIEVAL = GetResText(1601)
+ sPrgsCONVERTING = GetResText(1602)
+ sPrgsUNPROTECT = GetResText(1604)
+ End If
+ End With
+End Sub
+
+Sub InitializeLanguages()
+ sEuroSign = chr(8364)
+
+&apos; CURRENCIES_PORTUGUESE
+ LangIDValue(0,0,0) = &quot;pt&quot;
+ LangIDValue(0,0,1) = &quot;&quot;
+ LangIDValue(0,0,2) = &quot;-816&quot;
+
+&apos; CURRENCIES_DUTCH
+ LangIDValue(1,0,0) = &quot;nl&quot;
+ LangIDValue(1,0,1) = &quot;&quot;
+ LangIDValue(1,0,2) = &quot;-413&quot;
+
+&apos; CURRENCIES_FRENCH
+ LangIDValue(2,0,0) = &quot;fr&quot;
+ LangIDValue(2,0,1) = &quot;&quot;
+ LangIDValue(2,0,2) = &quot;-40C&quot;
+
+&apos; CURRENCIES_SPANISH
+ LangIDValue(3,0,0) = &quot;es&quot;
+ LangIDValue(3,0,1) = &quot;&quot;
+ LangIDValue(3,0,2) = &quot;-40A&quot;
+
+ &apos;Spanish modern
+ LangIDValue(3,1,0) = &quot;es&quot;
+ LangIDValue(3,1,1) = &quot;&quot;
+ LangIDValue(3,1,2) = &quot;-C0A&quot;
+
+ &apos;Spanish katalanic
+ LangIDValue(3,2,0) = &quot;es&quot;
+ LangIDValue(3,2,1) = &quot;&quot;
+ LangIDValue(3,2,2) = &quot;-403&quot;
+
+&apos; CURRENCIES_ITALIAN
+ LangIDValue(4,0,0) = &quot;it&quot;
+ LangIDValue(4,0,1) = &quot;&quot;
+ LangIDValue(4,0,2) = &quot;-410&quot;
+
+&apos; CURRENCIES_GERMAN
+ LangIDValue(5,0,0) = &quot;de&quot;
+ LangIDValue(5,0,1) = &quot;DE&quot;
+ LangIDValue(5,0,2) = &quot;-407&quot;
+
+&apos; CURRENCIES_BELGIAN
+ LangIDValue(6,0,0) = &quot;fr&quot;
+ LangIDValue(6,0,1) = &quot;BE&quot;
+ LangIDValue(6,0,2) = &quot;-80C&quot;
+
+ LangIDValue(6,1,0) = &quot;nl&quot;
+ LangIDValue(6,1,1) = &quot;BE&quot;
+ LangIDValue(6,1,2) = &quot;-813&quot;
+
+&apos; CURRENCIES_IRISH
+ LangIDValue(7,0,0) = &quot;en&quot;
+ LangIDValue(7,0,1) = &quot;IE&quot;
+ LangIDValue(7,0,2) = &quot;-1809&quot;
+
+ LangIDValue(7,1,0) = &quot;ga&quot;
+ LangIDValue(7,1,1) = &quot;IE&quot;
+ LangIDValue(7,1,2) = &quot;-83C&quot;
+
+&apos; CURRENCIES_LUXEMBOURG
+ LangIDValue(8,0,0) = &quot;fr&quot;
+ LangIDValue(8,0,1) = &quot;LU&quot;
+ LangIDValue(8,0,2) = &quot;-140C&quot;
+
+ LangIDValue(8,1,0) = &quot;de&quot;
+ LangIDValue(8,1,1) = &quot;LU&quot;
+ LangIDValue(8,1,2) = &quot;-1007&quot;
+
+&apos; CURRENCIES_AUSTRIAN
+ LangIDValue(9,0,0) = &quot;de&quot;
+ LangIDValue(9,0,1) = &quot;AT&quot;
+ LangIDValue(9,0,2) = &quot;-C07&quot;
+
+&apos; CURRENCIES_FINNISH
+ LangIDValue(10,0,0) = &quot;fi&quot;
+ LangIDValue(10,0,1) = &quot;FI&quot;
+ LangIDValue(10,0,2) = &quot;-40B&quot;
+
+ LangIDValue(10,1,0) = &quot;sv&quot;
+ LangIDValue(10,1,1) = &quot;FI&quot;
+ LangIDValue(10,1,2) = &quot;-81D&quot;
+
+&apos; CURRENCIES_GREEK
+ LangIDValue(11,0,0) = &quot;el&quot;
+ LangIDValue(11,0,1) = &quot;GR&quot;
+ LangIDValue(11,0,2) = &quot;-408&quot;
+
+&apos; CURRENCIES_SLOVENIAN
+ LangIDValue(12,0,0) = &quot;sl&quot;
+ LangIDValue(12,0,1) = &quot;SI&quot;
+ LangIDValue(12,0,2) = &quot;-424&quot;
+
+&apos; CURRENCIES_CYPRIOT
+ LangIDValue(13,0,0) = &quot;el&quot;
+ LangIDValue(13,0,1) = &quot;CY&quot;
+ LangIDValue(13,0,2) = &quot;-408&quot;
+
+&apos; CURRENCIES_MALTESE
+ LangIDValue(14,0,0) = &quot;mt&quot;
+ LangIDValue(14,0,1) = &quot;MT&quot;
+ LangIDValue(14,0,2) = &quot;-43A&quot;
+
+&apos; CURRENCIES_SLOVAK
+ LangIDValue(15,0,0) = &quot;sk&quot;
+ LangIDValue(15,0,1) = &quot;SK&quot;
+ LangIDValue(15,0,2) = &quot;-41B&quot;
+
+&apos; CURRENCIES_ESTONIAN
+ LangIDValue(16,0,0) = &quot;et&quot;
+ LangIDValue(16,0,1) = &quot;ET&quot;
+ LangIDValue(16,0,2) = &quot;-425&quot;
+
+End Sub
+
+
+
+Sub InitializeCurrencies()
+Dim i as Integer
+ GoOn = True
+
+ CurrValue(0,0) = sCurrPORTUGUESE
+ &apos; real conversion rate
+ CurrValue(0,1) = 200.482
+ &apos; rounded conversion rate
+ CurrValue(0,2) = 200
+ CurrValue(0,3) = &quot;Esc.&quot;
+ CurrValue(0,4) = &quot;Esc.&quot;
+ CurrValue(0,5) = &quot;PTE&quot;
+
+ CurrValue(1,0) = sCurrDUTCH
+ &apos; real conversion rate
+ CurrValue(1,1) = 2.20371
+ &apos; rounded conversion rate
+ CurrValue(1,2) = 2
+ CurrValue(1,3) = &quot;F&quot;
+ CurrValue(1,4) = &quot;fl&quot;
+ CurrValue(1,5) = &quot;NLG&quot;
+
+ CurrValue(2,0) = sCurrFRENCH
+ &apos; real conversion rate
+ CurrValue(2,1) = 6.55957
+ &apos; rounded conversion rate
+ CurrValue(2,2) = 7
+ CurrValue(2,3) = &quot;F&quot;
+ CurrValue(2,4) = &quot;F&quot;
+ CurrValue(2,5) = &quot;FRF&quot;
+
+ CurrValue(3,0) = sCurrSPANISH
+ &apos; real conversion rate
+ CurrValue(3,1) = 166.386
+ &apos; rounded conversion rate
+ CurrValue(3,2) = 170
+ CurrValue(3,3) = &quot;Pts&quot;
+ CurrValue(3,4) = &quot;Pts&quot;
+ CurrValue(3,5) = &quot;ESP&quot;
+
+ CurrValue(4,0) = sCurrITALIAN
+ &apos; real conversion rate
+ CurrValue(4,1) = 1936.27
+ &apos; rounded conversion rate
+ CurrValue(4,2) = 2000
+ CurrValue(4,3) = &quot;L.&quot;
+ CurrValue(4,4) = &quot;L.&quot;
+ CurrValue(4,5) = &quot;ITL&quot;
+
+ CurrValue(5,0) = sCurrGERMAN
+ &apos; real conversion rate
+ CurrValue(5,1) = 1.95583
+ &apos; rounded conversion rate
+ CurrValue(5,2) = 2
+ CurrValue(5,3) = &quot;DM&quot;
+ CurrValue(5,4) = &quot;DM&quot;
+ CurrValue(5,5) = &quot;DEM&quot;
+
+ CurrValue(6,0) = sCurrBELGIAN
+ &apos; real conversion rate
+ CurrValue(6,1) = 40.3399
+ &apos; rounded conversion rate
+ CurrValue(6,2) = 40
+ CurrValue(6,3) = &quot;FB&quot;
+ CurrValue(6,4) = &quot;BF&quot;
+ CurrValue(6,5) = &quot;BEF&quot;
+
+ CurrValue(7,0) = sCurrIRISH
+ &apos; real conversion rate
+ CurrValue(7,1) = 0.787564
+ &apos; rounded conversion rate
+ CurrValue(7,2) = 0.8
+ CurrValue(7,3) = &quot;IR£&quot;
+ CurrValue(7,4) = &quot;£&quot;
+ CurrValue(7,5) = &quot;IEP&quot;
+
+ CurrValue(8,0) = sCurrLUXEMBOURG
+ &apos; real conversion rate
+ CurrValue(8,1) = 40.3399
+ &apos; rounded conversion rate
+ CurrValue(8,2) = 40
+ CurrValue(8,3) = &quot;F&quot;
+ CurrValue(8,4) = &quot;F&quot;
+ CurrValue(8,5) = &quot;LUF&quot;
+
+ CurrValue(9,0) = sCurrAUSTRIAN
+ &apos; real conversion rate
+ CurrValue(9,1) = 13.7603
+ &apos; rounded conversion rate
+ CurrValue(9,2) = 15
+ CurrValue(9,3) = &quot;öS&quot;
+ CurrValue(9,4) = &quot;S&quot;
+ CurrValue(9,5) = &quot;ATS&quot;
+
+ CurrValue(10,0) = sCurrFINNISH
+ &apos; real conversion rate
+ CurrValue(10,1) = 5.94573
+ &apos; rounded conversion rate
+ CurrValue(10,2) = 6
+ CurrValue(10,3) = &quot;mk&quot;
+ CurrValue(10,4) = &quot;mk&quot;
+ CurrValue(10,5) = &quot;FIM&quot;
+
+ CurrValue(11,0) = sCurrGREEK
+ &apos; real conversion rate
+ CurrValue(11,1) = 340.750
+ &apos; rounded conversion rate
+ CurrValue(11,2) = 400
+ CurrValue(11,3) = chr(916) &amp; chr(961) &amp; chr(967)
+ CurrValue(11,4) = chr(916) &amp; chr(961) &amp; chr(967)
+ CurrValue(11,5) = &quot;GRD&quot;
+
+ CurrValue(12,0) = sCurrSLOVENIAN
+ &apos; real conversion rate
+ CurrValue(12,1) = 239.64
+ &apos; rounded conversion rate
+ CurrValue(12,2) = 240
+ CurrValue(12,3) = &quot;SIT&quot;
+ CurrValue(12,4) = &quot;SIT&quot;
+ CurrValue(12,5) = &quot;SIT&quot;
+
+ CurrValue(13,0) = sCurrCYPRIOT
+ &apos; real conversion rate
+ CurrValue(13,1) = 0.585274
+ &apos; rounded conversion rate
+ CurrValue(13,2) = 0.6
+ CurrValue(13,3) = &quot;£C&quot;
+ CurrValue(13,4) = &quot;£&quot;
+ CurrValue(13,5) = &quot;CYP&quot;
+
+ CurrValue(14,0) = sCurrMALTESE
+ &apos; real conversion rate
+ CurrValue(14,1) = 0.429300
+ &apos; rounded conversion rate
+ CurrValue(14,2) = 0.4
+ CurrValue(14,3) = chr(8356)
+ CurrValue(14,4) = &quot;Lm&quot;
+ CurrValue(14,5) = &quot;MTL&quot;
+
+ CurrValue(15,0) = sCurrSLOVAK
+ &apos; real conversion rate
+ CurrValue(15,1) = 30.1260
+ &apos; rounded conversion rate
+ CurrValue(15,2) = 30
+ CurrValue(15,3) = &quot;Sk&quot;
+ CurrValue(15,4) = &quot;Sk&quot;
+ CurrValue(15,5) = &quot;SKK&quot;
+
+ CurrValue(16,0) = sCurrESTONIAN
+ &apos; real conversion rate
+ CurrValue(16,1) = 15.6466
+ &apos; rounded conversion rate
+ CurrValue(16,2) = 16
+ CurrValue(16,3) = &quot;kr&quot;
+ CurrValue(16,4) = &quot;kr&quot;
+ CurrValue(16,5) = &quot;EEK&quot;
+
+ i = -1
+ CurrSymbolList(0) = &quot;&quot;
+ CurrSymbolList(1) = &quot;&quot;
+ InitializeCurrencyValues(CurrIndex)
+End Sub
+
+
+Sub InitializeControls()
+ If CurrIndex = -1 Then
+ If DialogModel.Step = 1 Then
+ EnableStep1DialogControls(True, False, False)
+ ElseIf DialogModel.Step = 2 Then
+ EnableStep2DialogControls(True)
+ End If
+ End If
+End Sub
+
+
+Sub InitializeConverter(oLocale, iDialogPage as Integer)
+Dim Isthere as Boolean
+ bCancelProtection = False
+ bRangeListDefined = False
+ PWIndex = -1
+ If iDialogPage = 1 Then
+ ToggleWindow(False)
+ sDocType = Tools.GetDocumentType(ThisComponent)
+ If sDocType = &quot;sCalc&quot; Then
+ bDocHasProtectedSheets = CheckSheetProtection(oSheets)
+ End If
+ oStatusline = ThisComponent.GetCurrentController.GetFrame.CreateStatusIndicator()
+ End If
+ DialogConvert = LoadDialog(&quot;Euro&quot;, &quot;DlgConvert&quot;)
+ DialogModel = DialogConvert.Model
+ DialogPassword = LoadDialog(&quot;Euro&quot;, &quot;DlgPassword&quot;)
+ PasswordModel = DialogPassword.Model
+ DialogModel.Step = iDialogPage
+ InitializeResources()
+ InitializeLanguages()
+ InitializeLocales(oLocale)
+ InitializeCurrencies()
+ InitializeControls()
+ BitmapDir = GetOfficeSubPath(&quot;Template&quot;, &quot;../wizard/bitmap&quot;)
+ If BitmapDir = &quot;&quot; Then
+ Stop
+ End If
+ FillUpCurrencyListbox()
+ DialogModel.imgPreview.ImageUrl = BitmapDir &amp; &quot;euro_&quot; &amp; DialogModel.Step &amp; &quot;.bmp&quot;
+ DialogConvert.Title = sMsgDLGTITLE
+ DialogModel.cmdGoOn.DefaultButton = True
+ If iDialogPage = 1 Then
+ ToggleWindow(True)
+ End If
+End Sub
+
+
+Sub InitializeCurrencyValues(CurrIndex)
+ If CurrIndex &lt;&gt; -1 Then
+ CurrLanguage = CurrValue(CurrIndex,0)
+ CurrFactor = CurrValue(CurrIndex,1)
+ CurrSymbolList(0) = CurrValue(CurrIndex,3)
+ CurrSymbolList(1) = CurrValue(CurrIndex,4)
+ CurrSymbolList(2) = CurrValue(CurrIndex,5)
+ End If
+End Sub
+
+
+Function InitializeLocales(oLocale) as Boolean
+Dim i as Integer, n as Integer, m as Integer
+Dim sLanguage as String, sCountry as String
+Dim bTakeThisLocale as Boolean
+ sLanguage = oLocale.Language
+ sCountry = oLocale.Country
+ For n = 0 To SBCOUNTRYCOUNT - 1
+ For m = 0 TO 1
+ If DialogModel.Step = 2 Then
+ bTakeThisLocale = LangIDValue(n,m,0) = sLanguage
+ Else
+ bTakeThisLocale = LangIDValue(n,m,0) = sLanguage
+ End If
+ If bTakeThisLocale Then
+ CurrIndex = n
+ For i = 0 To 2
+ CurExtension(i) = LangIDValue(CurrIndex,i,2)
+ Next i
+ InitializeLocales = True
+ Exit Function
+ End If
+ Next m
+ Next n
+ CurrIndex = -1
+ InitializeLocales = False
+End Function
+</script:module>
diff --git a/test/user-template/user/basic/Euro/Protect.xba b/test/user-template/user/basic/Euro/Protect.xba
new file mode 100644
index 000000000000..8a852e9c3e5c
--- /dev/null
+++ b/test/user-template/user/basic/Euro/Protect.xba
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Protect" script:language="StarBasic">REM ***** BASIC *****
+Option Explicit
+
+Public PWIndex as Integer
+
+
+Function UnprotectSheetsWithPassWord(oSheets as Object, bDoUnProtect as Boolean)
+Dim i as Integer
+Dim MaxIndex as Integer
+Dim iMsgResult as Integer
+ PWIndex = -1
+ If bDocHasProtectedSheets Then
+ If Not bDoUnprotect Then
+ &apos; At First query if sheets shall generally be unprotected
+ iMsgResult = Msgbox(sMsgUNPROTECT,36,sMsgDLGTITLE)
+ bDoUnProtect = iMsgResult = 6
+ End If
+ If bDoUnProtect Then
+ MaxIndex = oSheets.Count-1
+ For i = 0 To MaxIndex
+ bDocHasProtectedSheets = Not UnprotectSheet(oSheets(i))
+ If bDocHasProtectedSheets Then
+ ReprotectSheets()
+ Exit For
+ End If
+ Next i
+ If PWIndex = -1 Then
+ ReDim UnProtectList() as String
+ Else
+ ReDim Preserve UnProtectList(PWIndex) as String
+ End If
+ Else
+ Msgbox (sMsgSHEETSNOPROTECT, 64, sMsgDLGTITLE)
+ End If
+ End If
+ UnProtectSheetsWithPassword = bDocHasProtectedSheets
+End Function
+
+
+Function UnprotectSheet(oListSheet as Object)
+Dim ListSheetName as String
+Dim sStatustext as String
+Dim i as Integer
+Dim bOneSheetIsUnprotected as Boolean
+ i = -1
+ ListSheetName = oListSheet.Name
+ If oListSheet.IsProtected Then
+ oListSheet.Unprotect(&quot;&quot;)
+ If oListSheet.IsProtected Then
+ &apos; Sheet is protected by a Password
+ bOneSheetIsUnProtected = UnprotectSheetWithDialog(oListSheet, ListSheetName)
+ UnProtectSheet() = bOneSheetIsUnProtected
+ Else
+ &apos; The Sheet could be unprotected without a password
+ AddSheettoUnprotectionlist(ListSheetName,&quot;&quot;)
+ UnprotectSheet() = True
+ End If
+ Else
+ UnprotectSheet() = True
+ End If
+End Function
+
+
+Function UnprotectSheetWithDialog(oListSheet as Object, ListSheetName as String) as Boolean
+Dim PWIsCorrect as Boolean
+Dim QueryText as String
+ oDocument.CurrentController.SetActiveSheet(oListSheet)
+ QueryText = ReplaceString(sMsgPWPROTECT,&quot;&apos;&quot; &amp; ListSheetName &amp; &quot;&apos;&quot;, &quot;%1TableName%1&quot;)
+ &apos;&quot;Please insert the password to unprotect the sheet &apos;&quot; &amp; ListSheetName&apos;&quot;
+ Do
+ ExecutePasswordDialog(QueryText)
+ If bCancelProtection Then
+ bCancelProtection = False
+ Msgbox (sMsgSHEETSNOPROTECT, 64, sMsgDLGTITLE)
+ UnprotectSheetWithDialog() = False
+ exit Function
+ End If
+ oListSheet.Unprotect(Password)
+ If oListSheet.IsProtected Then
+ PWIsCorrect = False
+ Msgbox (sMsgWRONGPW, 64, sMsgDLGTITLE)
+ Else
+ &apos; Sheet could be unprotected
+ AddSheettoUnprotectionlist(ListSheetName,Password)
+ PWIsCorrect = True
+ End If
+ Loop Until PWIsCorrect
+ UnprotectSheetWithDialog() = True
+End Function
+
+
+Sub ExecutePasswordDialog(QueryText as String)
+ With PasswordModel
+ .Title = QueryText
+ .hlnPassword.Label = sMsgPASSWORD
+ .cmdCancel.Label = sMsgCANCEL
+ .cmdHelp.Label = sHELP
+ .cmdGoOn.Label = sMsgOK
+ .cmdGoOn.DefaultButton = True
+ End With
+ DialogPassword.Execute
+End Sub
+
+Sub ReadPassword()
+ Password = PasswordModel.txtPassword.Text
+ DialogPassword.EndExecute
+End Sub
+
+
+Sub RejectPassword()
+ bCancelProtection = True
+ DialogPassword.EndExecute
+End Sub
+
+
+&apos; Reprotects the previousliy protected sheets
+&apos; The passwordinformation is stored in the List &apos;UnProtectList()&apos;
+Sub ReprotectSheets()
+Dim i as Integer
+Dim oProtectSheet as Object
+Dim ProtectList() as String
+Dim SheetName as String
+Dim SheetPassword as String
+ If PWIndex &gt; -1 Then
+ SetStatusLineText(sStsREPROTECT)
+ For i = 0 To PWIndex
+ ProtectList() = ArrayOutOfString(UnProtectList(i),&quot;;&quot;)
+ SheetName = ProtectList(0)
+ If Ubound(ProtectList()) &gt; 0 Then
+ SheetPassWord = ProtectList(1)
+ Else
+ SheetPassword = &quot;&quot;
+ End If
+ oProtectSheet = oSheets.GetbyName(SheetName)
+ If Not oProtectSheet.IsProtected Then
+ oProtectSheet.Protect(SheetPassWord)
+ End If
+ Next i
+ SetStatusLineText(&quot;&quot;)
+ End If
+ PWIndex = -1
+ ReDim UnProtectList()
+End Sub
+
+
+&apos; Add a Sheet to the list of sheets that finally have to be
+&apos; unprotected
+Sub AddSheettoUnprotectionlist(ListSheetName as String, Password as String)
+Dim MaxIndex as Integer
+ MaxIndex = Ubound(UnProtectList())
+ PWIndex = PWIndex + 1
+ If PWIndex &gt; MaxIndex Then
+ ReDim Preserve UnprotectList(MaxIndex + SBRANGEUBOUND)
+ End If
+ UnprotectList(PWIndex) = ListSheetName &amp; &quot;;&quot; &amp; Password
+End Sub
+
+
+Function CheckSheetProtection(oSheets as Object) as Boolean
+Dim MaxIndex as Integer
+Dim i as Integer
+Dim bProtectedSheets as Boolean
+ bProtectedSheets = False
+ MaxIndex = oSheets.Count-1
+ For i = 0 To MaxIndex
+ bProtectedSheets = oSheets(i).IsProtected
+ If bProtectedSheets Then
+ CheckSheetProtection() = True
+ Exit Function
+ End If
+ Next i
+ CheckSheetProtection() = False
+End Function</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Euro/Soft.xba b/test/user-template/user/basic/Euro/Soft.xba
new file mode 100644
index 000000000000..b4088e931156
--- /dev/null
+++ b/test/user-template/user/basic/Euro/Soft.xba
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Soft" script:language="StarBasic">Option Explicit
+REM ***** BASIC *****
+
+
+Sub CreateStyleEnumeration()
+ EmptySelection()
+ EmptyListbox(DialogModel.lstSelection)
+ CurSheetName = oDocument.CurrentController.GetActiveSheet.Name
+ MakeStyleEnumeration(False)
+ DialogModel.lblSelection.Label = sTEMPLATES
+End Sub
+
+
+Sub MakeStyleEnumeration(bAddToListbox as Boolean)
+Dim m as integer
+Dim aStyleFormat as Object
+Dim Stylename as String
+ StyleIndex = -1
+ oStyles = oDocument.StyleFamilies.GetbyIndex(0)
+ For m = 0 To oStyles.count-1
+ oStyle = oStyles.GetbyIndex(m)
+ StyleName = oStyle.Name
+ If CheckFormatType(oStyle) Then
+ If Not bAddToListBox Then
+ AddSingleItemToListbox(DialogModel.lstSelection, Stylename)
+ Else
+ SwitchNumberFormat(ostyle, oFormats, sEuroSign)
+ End If
+ StyleIndex = StyleIndex + 1
+ If StyleIndex &gt; Ubound(StyleRangeAssignMentList()) Then
+ Redim Preserve StyleRangeAssignmentList(StyleIndex)
+ End If
+ StyleRangeAssignmentList(StyleIndex) = &quot;&lt;STYLENAME&gt;&quot; &amp; Stylename &amp; &quot;&lt;/STYLENAME&gt;&quot; &amp; _
+ &quot;&lt;DEFINED&gt;FALSE&lt;/DEFINED&gt;&quot; &amp; &quot;&lt;RANGES&gt;&lt;/RANGES&gt;&quot; &amp;_
+ &quot;&lt;CELLCOUNT&gt;0&lt;/CELLCOUNT&gt;&quot; &amp;_
+ &quot;&lt;SELECTED&gt;FALSE&lt;/SELECTED&gt;&quot;
+ End If
+ Next m
+ If StyleIndex &gt; -1 Then
+ Redim Preserve StyleRangeAssignmentList(StyleIndex)
+ Else
+ ReDim StyleRangeAssignmentList()
+ End If
+End Sub
+
+
+Sub AssignRangestoStyle(StyleList(), SelList())
+Dim i as Integer
+Dim n as integer
+Dim LastIndex as Integer
+Dim CurStyleName as String
+Dim AssignString as String
+ LastIndex = Ubound(StyleList())
+ StatusValue = 0
+ SetStatusLineText(sStsRELRANGES)
+ For i = 0 To LastIndex
+ CurStyleName = StyleList(i)
+ n = PartStringInArray(StyleRangeAssignmentList(), CurStyleName, 0)
+ AssignString = StyleRangeAssignmentlist(n)
+ If IndexInArray(CurStyleName, SelList()) &lt;&gt; -1 Then
+ &apos; Style is selected
+ If FindPartString(AssignString, &quot;&lt;DEFINED&gt;&quot;, &quot;&lt;/DEFINED&gt;&quot;, 1) = &quot;FALSE&quot; Then
+ AssignString = ReplaceString(AssignString, &quot;&lt;SELECTED&gt;TRUE&lt;/SELECTED&gt;&quot;, &quot;&lt;SELECTED&gt;FALSE&lt;/SELECTED&gt;&quot;)
+ AssignCellFormatRanges(n, AssignString, CurStyleName)
+ End If
+ Else
+ &apos; Style is not selected
+ If FindPartString(AssignString, &quot;&lt;SELECTED&gt;&quot;, &quot;&lt;/SELECTED&gt;&quot;, 1) = &quot;FALSE&quot; Then
+ DeselectStyle(CurStyleName, n)
+ End If
+ End If
+ IncreaseStatusvalue(SBRELGET/(LastIndex+1))
+ Next i
+End Sub
+
+
+Sub AssignCellFormatRanges(n as Integer, AssignString as String, CurStyleName as String)
+Dim oRanges() as Object
+Dim oRange as Object
+Dim oRangeAddress
+Dim oSheet as Object
+Dim StyleCellCount as Long
+Dim i as Integer
+Dim MaxIndex as Integer
+Dim RangeString as String
+Dim SheetName as String
+Dim RangeName as String
+Dim CellCountString as String
+ StyleCellCount = 0
+ RangeString = &quot;&lt;RANGES&gt;&quot;
+ MaxIndex = oSheets.Count-1
+ For i = 0 To MaxIndex
+ oSheet = oSheets(i)
+ SheetName = oSheet.Name
+ oRanges = osheet.CellFormatRanges.CreateEnumeration
+ While oRanges.hasMoreElements
+ oRange = oRanges.NextElement
+ If oRange.getPropertyState(&quot;NumberFormat&quot;) = 1 Then
+ If oRange.CellStyle = CurStyleName Then
+ oRangeAddress = oRange.RangeAddress
+ RangeName = RetrieveRangeNamefromAddress(oRange)
+ RangeString = RangeString &amp; RangeName &amp; &quot;,&quot;
+ StyleCellCount = StyleCellCount + CountRangeCells(oRange)
+ End If
+ End If
+ Wend
+ Next i
+ If StyleCellCount &gt; 0 Then
+ TotCellCount = TotCellCount + StyleCellCount
+ RangeString = RTrimStr(RangeString,&quot;,&quot;)
+ RangeString = RangeString &amp; &quot;&lt;/RANGES&gt;&quot;
+ CellCountString = &quot;&lt;CELLCOUNT&gt;&quot; &amp; StyleCellCount &amp; &quot;&lt;/CELLCOUNT&quot;
+ AssignString = ReplaceString(AssignString, RangeString,&quot;&lt;RANGES&gt;&lt;/RANGES&gt;&quot;)
+ AssignString = ReplaceString(AssignString, CellCountString,&quot;&lt;CELLCOUNT&gt;0&lt;/CELLCOUNT&gt;&quot;)
+ End If
+ AssignString = ReplaceString(AssignString, &quot;&lt;DEFINED&gt;TRUE&lt;/DEFINED&gt;&quot;, &quot;&lt;DEFINED&gt;FALSE&lt;/DEFINED&gt;&quot;)
+ StyleRangeAssignmentList(n) = AssignString
+End Sub
+
+
+&apos; deletes a styletemplate from the Collection that selects the ranges
+Sub DeselectStyle(DeSelStyleName as String, n as Integer)
+Dim i as Integer
+Dim RangeName as String
+Dim SelectString as String
+Dim AssignString as String
+Dim StyleRangeList() as String
+Dim MaxIndex as Integer
+ SelectString =&quot;&lt;SELECTED&gt;FALSE&lt;/SELECTED&gt;&quot;
+ AssignString = StyleRangeAssignmentList(n)
+ RangeString = FindPartString(AssignString,&quot;&lt;RANGES&gt;&quot;,&quot;&lt;/RANGES&gt;&quot;,1)
+ StyleRangeList() = ArrayoutofString(RangeString,&quot;,&quot;)
+ MaxIndex = Ubound(StyleRangeList())
+ For i = 0 To MaxIndex
+ RangeName = StyleRangeList(i)
+ If oSelRanges.HasbyName(RangeName) Then
+ oSelRanges.RemovebyName(RangeName)
+ End If
+ Next i
+ AssignString = ReplaceString(AssignString, &quot;&lt;SELECTED&gt;FALSE&lt;/SELECTED&gt;&quot;, &quot;&lt;SELECTED&gt;TRUE&lt;/SELECTED&gt;&quot;)
+ StyleRangeAssignmentList(n) = AssignString
+End Sub
+
+
+Function RetrieveRangeNamefromAddress(oRange as Object) as String
+Dim Rangename as String
+Dim oAddressRanges as Object
+ oAddressRanges = oDocument.createInstance(&quot;com.sun.star.sheet.SheetCellRanges&quot;)
+ oAddressRanges.InsertbyName(&quot;&quot;,oRange)
+ Rangename = oAddressRanges.RangeAddressesasString
+&apos; Msgbox &quot;Adresse: &quot; &amp; oRangeAddress.StartColumn &amp; &quot; ; &quot; &amp; oRangeAddress.EndColumn &amp; &quot; ; &quot; &amp; oRangeAddress.StartRow &amp; &quot; ; &quot; &amp; oRangeAddress.EndRow &amp; chr(13) &amp; RangeName
+&apos; oAddressRanges.RemovebyName(RangeName)
+ RetrieveRangeNamefromAddress = Rangename
+End Function
+
+
+&apos; creates a sheet object from an according sectionname
+Function RetrieveSheetoutofRangeName(TableText as String)
+Dim DescriptionList() as String
+Dim SheetName as String
+Dim MaxIndex as integer
+ &apos; find out in which sheet the range is
+ DescriptionList() = ArrayOutofString(TableText,&quot;.&quot;,MaxIndex)
+ SheetName = DescriptionList(0)
+ SheetName = DeleteStr(SheetName,&quot;&apos;&quot;)
+ &apos; set the viewcursor on this sheet
+ RetrieveSheetoutofRangeName = oSheets.GetbyName(SheetName)
+End Function
+
+
+&apos; creates a rangeobject from an according rangename
+Function RetrieveRangeoutofRangeName(TableText as String)
+ oSheet = RetrieveSheetoutofRangeName(TableText)
+ oRange = oSheet.GetCellRangebyName(TableText)
+ RetrieveRangeoutofRangeName = oRange
+End Function
+
+
+Sub ConvertTheSoftWay(StyleList(), bDeSelect as Boolean)
+Dim i as Integer
+Dim l as Integer
+Dim s as Integer
+Dim n as Integer
+Dim CurStyleName as String
+Dim RangeName as String
+Dim OldStatusValue as Integer
+Dim LastIndex as Integer
+Dim oSelListbox as Object
+Dim StyleRangeList() as String
+Dim MaxIndex as Integer
+ oSelListbox = DialogConvert.GetControl(&quot;lstSelection&quot;)
+ LastIndex = Ubound(StyleList())
+ OldStatusValue = StatusValue
+ For i = 0 To LastIndex
+ CurStyleName = StyleList(i)
+ oStyle = oStyles.GetbyName(CurStyleName)
+ StyleRangeList() = GetAssignedRanges(CurStyleName, n)
+ MaxIndex = Ubound(StyleRangeList())
+ For s = 0 To MaxIndex
+ RangeName = StyleRangeList(s)
+ oRange = RetrieveRangeoutofRangeName(RangeName)
+ If oRange.getPropertyState(&quot;NumberFormat&quot;) = 1 Then
+ &apos; Range is hard formatted
+ ConvertCellCurrencies(oRange)
+ CurCellCount = CountRangeCells(oRange)
+ End If
+ IncreaseStatusvalue((CurCellCount/TotCellCount)*(95-OldStatusValue))
+ If bDeSelect Then
+ &apos; Note: On Problems see Bug #73157
+ If oSelRanges.HasbyName(RangeName) Then
+ oSelRanges.RemovebyName(RangeName)
+ oDocument.CurrentController.Select(oSelRanges)
+ End If
+ End If
+ Next s
+ SwitchNumberFormat(ostyle, oFormats, sEuroSign)
+ StyleRangeAssignmentList(n) = &quot;&quot;
+ l = GetItemPos(oSelListBox.Model, CurStyleName)
+ oSelListbox.RemoveItems(l,1)
+ Next
+End Sub
+
+
+Function GetAssignedRanges(CurStyleName as String, n as Integer)
+Dim StyleRangeList() as String
+Dim RangeString as String
+Dim AssignString as String
+ n = PartStringInArray(StyleRangeAssignmentList(), CurStyleName, 0)
+ If n &lt;&gt; -1 Then
+ AssignString = StyleRangeAssignmentList(n)
+ RangeString = FindPartString(AssignString,&quot;&lt;RANGES&gt;&quot;, &quot;&lt;/RANGES&gt;&quot;,1)
+ If RangeString &lt;&gt; &quot;&quot; Then
+ StyleRangeList() = ArrayoutofString(RangeString,&quot;,&quot;)
+ End If
+ End If
+ GetAssignedRanges() = StyleRangeList()
+End Function</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Euro/Writer.xba b/test/user-template/user/basic/Euro/Writer.xba
new file mode 100644
index 000000000000..0d153b7058e2
--- /dev/null
+++ b/test/user-template/user/basic/Euro/Writer.xba
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Writer" script:language="StarBasic">REM ***** BASIC *****
+
+
+Sub ConvertWriterTables()
+Dim CellString as String
+Dim oParagraphs as Object
+Dim oPara as Object
+Dim i as integer
+Dim sCellNames()
+Dim oCell as Object
+ oParagraphs = oDocument.Text.CreateEnumeration
+ While oParagraphs.HasMoreElements
+ oPara = oParagraphs.NextElement
+ If NOT oPara.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
+ &apos; Note: As cells might be splitted or merged
+ &apos; you cannot refer to them via their indices
+ sCellNames = oPara.CellNames
+ For i = 0 To Ubound(sCellNames)
+ If sCellNames(i) &lt;&gt; &quot;&quot; Then
+ oCell = oPara.getCellByName(sCellNames(i))
+ If CheckFormatType(oCell) Then
+ SwitchNumberFormat(oCell, oFormats, sEuroSign)
+ ModifyObjectValuewithCurrFactor(oCell)
+ End If
+ End If
+ Next
+ End If
+ Wend
+End Sub
+
+
+Sub ModifyObjectValuewithCurrFactor(oDocObject as Object)
+ oDocObjectValue = oDocObject.Value
+ oDocObject.Value = oDocObjectValue/CurrFactor
+End Sub
+
+
+Sub ConvertTextFields()
+Dim oTextFields as Object
+Dim oTextField as Object
+Dim FieldValue
+Dim oDocObjectValue as double
+Dim InstanceNames(500) as String
+Dim CurInstanceName as String
+Dim MaxIndex as Integer
+ MaxIndex = 0
+ oTextfields = oDocument.getTextfields.CreateEnumeration
+ While oTextFields.hasmoreElements
+ oTextField = oTextFields.NextElement
+ If oTextField.PropertySetInfo.HasPropertybyName(&quot;NumberFormat&quot;) Then
+ If CheckFormatType(oTextField) Then
+ If oTextField.PropertySetInfo.HasPropertybyName(&quot;Value&quot;) Then
+ If Not oTextField.SupportsService(&quot;com.sun.star.text.TextField.GetExpression&quot;) Then
+ oTextField.Content = CStr(Round(oTextField.Value/CurrFactor,2))
+ End If
+ ElseIf oTextField.TextFieldMaster.PropertySetInfo.HasPropertyByName(&quot;Value&quot;) Then
+ CurInstanceName = oTextField.TextFieldMaster.InstanceName
+ If Not FieldinArray(InstanceNames(), MaxIndex, CurInstanceName) Then
+ oTextField.TextFieldMaster.Content = CStr(Round(oTextField.TextFieldMaster.Value/CurrFactor,2))
+ InstanceNames(MaxIndex) = CurInstanceName
+ MaxIndex = MaxIndex + 1
+ End If
+ End If
+ SwitchNumberFormat(oTextField, oFormats, sEuroSign)
+ End If
+ End If
+ Wend
+ oDocument.GetTextFields.refresh()
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Euro/dialog.xlb b/test/user-template/user/basic/Euro/dialog.xlb
new file mode 100644
index 000000000000..c461ce54f0cd
--- /dev/null
+++ b/test/user-template/user/basic/Euro/dialog.xlb
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Euro" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="DlgConvert"/>
+ <library:element library:name="DlgPassword"/>
+</library:library>
diff --git a/test/user-template/user/basic/Euro/script.xlb b/test/user-template/user/basic/Euro/script.xlb
new file mode 100644
index 000000000000..1bc4927c2a5a
--- /dev/null
+++ b/test/user-template/user/basic/Euro/script.xlb
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Euro" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="ConvertRun"/>
+ <library:element library:name="AutoPilotRun"/>
+ <library:element library:name="Hard"/>
+ <library:element library:name="Soft"/>
+ <library:element library:name="Init"/>
+ <library:element library:name="Common"/>
+ <library:element library:name="Writer"/>
+ <library:element library:name="Protect"/>
+</library:library>
diff --git a/test/user-template/user/basic/FormWizard/DBMeta.xba b/test/user-template/user/basic/FormWizard/DBMeta.xba
new file mode 100644
index 000000000000..2d8dc2838f5c
--- /dev/null
+++ b/test/user-template/user/basic/FormWizard/DBMeta.xba
@@ -0,0 +1,330 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="DBMeta" script:language="StarBasic">REM ***** BASIC *****
+Option Explicit
+
+
+Public iCommandTypes() as Integer
+Public CurCommandType as Integer
+Public oDataSource as Object
+Public bEnableBinaryOptionGroup as Boolean
+&apos;Public bSelectContent as Boolean
+
+
+Function GetDatabaseNames(baddFirstListItem as Boolean)
+Dim sDatabaseList()
+ If oDBContext.HasElements Then
+ Dim LocDBList() as String
+ Dim MaxIndex as Integer
+ Dim i as Integer
+ LocDBList = oDBContext.ElementNames()
+ MaxIndex = Ubound(LocDBList())
+ If baddfirstListItem Then
+ ReDim Preserve sDatabaseList(MaxIndex + 1)
+ sDatabaseList(0) = sSelectDatasource
+ a = 1
+ Else
+ ReDim Preserve sDatabaseList(MaxIndex)
+ a = 0
+ End If
+ For i = 0 To MaxIndex
+ sDatabaseList(a) = oDBContext.ElementNames(i)
+ a = a + 1
+ Next i
+ End If
+ GetDatabaseNames() = sDatabaseList()
+End Function
+
+
+Sub GetSelectedDBMetaData(sDBName as String)
+Dim OldsDBname as String
+Dim DBIndex as Integer
+Dim LocList() as String
+&apos; If bStartUp Then
+&apos; bStartUp = false
+&apos; Exit Sub
+&apos; End Sub
+ ToggleDatabasePage(False)
+ With DialogModel
+ If GetConnection(sDBName) Then
+ If GetDBMetaData() Then
+ LocList() = AddListToList(Array(sSelectDBTable), TableNames())
+ .lstTables.StringItemList() = AddListToList(LocList(), QueryNames())
+&apos; bSelectContent = True
+ .lstTables.SelectedItems() = Array(0)
+ iCommandTypes() = CreateCommandTypeList()
+ EmptyFieldsListboxes()
+ End If
+ End If
+ bEnableBinaryOptionGroup = False
+ .lstTables.Enabled = True
+ .lblTables.Enabled = True
+&apos; Else
+&apos; DialogModel.lstTables.StringItemList = Array(sSelectDBTable)
+&apos; EmptyFieldsListboxes()
+&apos; End If
+ ToggleDatabasePage(True)
+ End With
+End Sub
+
+
+Function GetConnection(sDBName as String)
+Dim oInteractionHandler as Object
+Dim bExitLoop as Boolean
+Dim bGetConnection as Boolean
+Dim iMsg as Integer
+Dim Nulllist()
+ If Not IsNull(oDBConnection) Then
+ oDBConnection.Dispose()
+ End If
+ oDataSource = oDBContext.GetByName(sDBName)
+&apos; If Not oDBContext.hasbyName(sDBName) Then
+&apos; GetConnection() = False
+&apos; Exit Function
+&apos; End If
+ If Not oDataSource.IsPasswordRequired Then
+ oDBConnection = oDBContext.GetByName(sDBName).GetConnection(&quot;&quot;,&quot;&quot;)
+ GetConnection() = True
+ Else
+ oInteractionHandler = createUnoService(&quot;com.sun.star.task.InteractionHandler&quot;)
+ oDataSource = oDBContext.GetByName(sDBName)
+ On Local Error Goto NOCONNECTION
+ Do
+ bExitLoop = True
+ oDBConnection = oDataSource.ConnectWithCompletion(oInteractionHandler)
+ NOCONNECTION:
+ bGetConnection = Err = 0
+ If bGetConnection Then
+ bGetConnection = Not IsNull(oDBConnection)
+ If Not bGetConnection Then
+ Exit Do
+ End If
+ End If
+ If Not bGetConnection Then
+ iMsg = Msgbox (sMsgNoConnection,32 + 2, sMsgWizardName)
+ bExitLoop = iMsg = SBCANCEL
+ Resume CLERROR
+ CLERROR:
+ End If
+ Loop Until bExitLoop
+ On Local Error Goto 0
+ If Not bGetConnection Then
+ DialogModel.lstTables.StringItemList() = Array(sSelectDBTable)
+ DialogModel.lstFields.StringItemList() = NullList()
+ DialogModel.lstSelFields.StringItemList() = NullList()
+ End If
+ GetConnection() = bGetConnection
+ End If
+End Function
+
+
+Function GetDBMetaData()
+ If oDBContext.HasElements Then
+ Tablenames() = oDBConnection.Tables.ElementNames()
+ Querynames() = oDBConnection.Queries.ElementNames()
+ GetDBMetaData = True
+ Else
+ MsgBox(sMsgErrNoDatabase, 64, sMsgWizardName)
+ GetDBMetaData = False
+ End If
+End Function
+
+
+Sub GetTableMetaData()
+Dim iType as Long
+Dim m as Integer
+Dim Found as Boolean
+Dim i as Integer
+Dim sFieldName as String
+Dim n as Integer
+Dim WidthIndex as Integer
+Dim oField as Object
+ MaxIndex = Ubound(DialogModel.lstSelFields.StringItemList())
+ Dim ColumnMap(MaxIndex)as Integer
+ FieldNames() = DialogModel.lstSelFields.StringItemList()
+ &apos; Build a structure which maps the position of a selected field (within the selection) to the the column position within
+ &apos; the table. So we ensure that the controls are placed in the same order the according fields are selected.
+ For i = 0 To Ubound(FieldNames())
+ sFieldName = FieldNames(i)
+ Found = False
+ n = 0
+ While (n&lt; MaxIndex And (Not Found))
+ If (FieldNames(n) = sFieldName) Then
+ Found = True
+ ColumnMap(n) = i
+ End If
+ n = n + 1
+ Wend
+ Next i
+ For n = 0 to MaxIndex
+ sFieldname = FieldNames(n)
+ oField = oColumns.GetByName(sFieldName)
+ iType = oField.Type
+ FieldMetaValues(n,0) = oField.Type
+ FieldMetaValues(n,1) = AssignFieldLength(oField.Precision)
+ FieldMetaValues(n,2) = GetValueoutofList(iType, WidthList(),1, WidthIndex)
+ FieldMetaValues(n,3) = WidthList(WidthIndex,3)
+ FieldMetaValues(n,4) = oField.FormatKey
+ FieldMetaValues(n,5) = oField.DefaultValue
+ FieldMetaValues(n,6) = oField.IsCurrency
+ FieldMetaValues(n,7) = oField.Scale
+&apos; If oField.Description &lt;&gt; &quot;&quot; Then
+&apos;&apos; Todo: What&apos;s wrong with this line?
+&apos; Msgbox oField.Helptext
+&apos; End If
+ FieldMetaValues(n,8) = oField.Description
+ Next
+ ReDim oDBShapeList(MaxIndex) as Object
+ ReDim oTCShapeList(MaxIndex) as Object
+ ReDim oDBModelList(MaxIndex) as Object
+ ReDim oGroupShapeList(MaxIndex) as Object
+End Sub
+
+
+Function GetSpecificFieldNames() as Integer
+Dim n as Integer
+Dim m as Integer
+Dim s as Integer
+Dim iType as Integer
+Dim oField as Object
+Dim MaxIndex as Integer
+Dim EmptyList()
+ If Ubound(DialogModel.lstTables.StringItemList()) &gt; -1 Then
+ FieldNames() = oColumns.GetElementNames()
+ MaxIndex = Ubound(FieldNames())
+ If MaxIndex &lt;&gt; -1 Then
+ Dim ResultFieldNames(MaxIndex)
+ ReDim ImgFieldNames(MaxIndex)
+ m = 0
+ For n = 0 To MaxIndex
+ oField = oColumns.GetByName(FieldNames(n))
+ iType = oField.Type
+ If GetIndexInMultiArray(WidthList(), iType, 0) &lt;&gt; -1 Then
+ ResultFieldNames(m) = FieldNames(n)
+ m = m + 1
+ End If
+ If GetIndexInMultiArray(ImgWidthList(), iType, 0) &lt;&gt; -1 Then
+ ImgFieldNames(s) = FieldNames(n)
+ s = s + 1
+ End If
+ Next n
+ If s &lt;&gt; 0 Then
+ Redim Preserve ImgFieldNames(s-1)
+ bEnableBinaryOptionGroup = True
+ Else
+ bEnableBinaryOptionGroup = False
+ End If
+ If (DialogModel.optBinariesasGraphics.State = 1) And (s &lt;&gt; 0) Then
+ ResultFieldNames() = AddListToList(ResultFieldNames(), ImgFieldNames())
+ Else
+ Redim Preserve ResultFieldNames(m-1)
+ End If
+ FieldNames() = ResultFieldNames()
+ DialogModel.lstFields.StringItemList = FieldNames()
+ InitializeListboxProcedures(DialogModel, DialogModel.lstFields, DialogModel.lstSelFields)
+ End If
+ GetSpecificFieldNames = MaxIndex
+ Else
+ GetSpecificFieldNames = -1
+ End If
+End Function
+
+
+Sub CreateDBForm()
+ If oDrawPage.Forms.Count = 0 Then
+ oDBForm = oDocument.CreateInstance(&quot;com.sun.star.form.component.Form&quot;)
+ oDrawpage.Forms.InsertByIndex (0, oDBForm)
+ Else
+ oDBForm = oDrawPage.Forms.GetByIndex(0)
+ End If
+ oDBForm.Name = &quot;Standard&quot;
+ oDBForm.DataSourceName = sDBName
+ oDBForm.Command = TableName
+ oDBForm.CommandType = CurCommandType
+End Sub
+
+
+Sub AddOrRemoveBinaryFieldsToWidthList()
+Dim LocWidthList()
+Dim MaxIndex as Integer
+Dim OldMaxIndex as Integer
+Dim s as Integer
+Dim n as Integer
+Dim m as Integer
+ If Not bDebug Then
+ On Local Error GoTo WIZARDERROR
+ End If
+ If DialogModel.optBinariesasGraphics.State = 1 Then
+ OldMaxIndex = Ubound(WidthList(),1)
+ If OldMaxIndex = 15 Then
+ MaxIndex = Ubound(WidthList(),1) + Ubound(ImgWidthList(),1) + 1
+ ReDim Preserve WidthList(MaxIndex,4)
+ s = 0
+ For n = OldMaxIndex + 1 To MaxIndex
+ For m = 0 To 3
+ WidthList(n,m) = ImgWidthList(s,m)
+ Next m
+ s = s + 1
+ Next n
+ MergeList(DialogModel.lstFields, ImgFieldNames())
+ End If
+ Else
+ ReDim Preserve WidthList(15, 4)
+ RemoveListItems(DialogModel.lstFields(), DialogModel.lstSelFields(), ImgFieldNames())
+ End If
+ DialogModel.lstSelFields.Tag = True
+WIZARDERROR:
+ If Err &lt;&gt; 0 Then
+ Msgbox(sMsgErrMsg, 16, GetProductName())
+ Resume LOCERROR
+ LOCERROR:
+ End If
+End Sub
+
+
+Function CreateCommandTypeList()
+Dim MaxTableIndex as Integer
+Dim MaxQueryIndex as Integer
+Dim MaxIndex as Integer
+Dim i as Integer
+Dim a as Integer
+ MaxTableIndex = Ubound(TableNames()
+ MaxQueryIndex = Ubound(QueryNames()
+ MaxIndex = MaxTableIndex + MaxQueryIndex + 1
+ If MaxIndex &gt; -1 Then
+ Dim LocCommandTypes(MaxIndex) as Integer
+ For i = 0 To MaxTableIndex
+ LocCommandTypes(i) = com.sun.star.sdb.CommandType.TABLE
+ Next i
+ a = i
+ For i = 0 To MaxQueryIndex
+ LocCommandTypes(a) = com.sun.star.sdb.CommandType.QUERY
+ a = a + 1
+ Next i
+ End If
+ CreateCommandTypeList() = LocCommandTypes()
+End Function
+
+
+Sub GetCurrentMetaValues(Index as Integer)
+ CurFieldType = FieldMetaValues(Index,0)
+ CurFieldLength = FieldMetaValues(Index,1)
+ CurControlType = FieldMetaValues(Index,2)
+ CurControlName = FieldMetaValues(Index,3)
+ CurFormatKey = FieldMetaValues(Index,4)
+ CurDefaultValue = FieldMetaValues(Index,5)
+ CurIsCurrency = FieldMetaValues(Index,6)
+ CurScale = FieldMetaValues(Index,7)
+ CurHelpText = FieldMetaValues(Index,8)
+ CurFieldName = FieldNames(Index)
+End Sub
+
+
+Function AssignFieldLength(FieldLength as Long) as Integer
+ If FieldLength &gt;= 65535 Then
+ AssignFieldLength() = -1
+ Else
+ AssignFieldLength() = FieldLength
+ End If
+End Function
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/FormWizard/DlgFormDB.xdl b/test/user-template/user/basic/FormWizard/DlgFormDB.xdl
new file mode 100644
index 000000000000..269b7e61819f
--- /dev/null
+++ b/test/user-template/user/basic/FormWizard/DlgFormDB.xdl
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="DlgFormDB" dlg:left="96" dlg:top="28" dlg:width="270" dlg:height="210" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGFORM_DIALOG" dlg:closeable="true" dlg:moveable="true">
+ <dlg:bulletinboard>
+ <dlg:text dlg:id="lblSelFields" dlg:tab-index="10" dlg:left="154" dlg:top="70" dlg:width="110" dlg:height="8" dlg:page="1" dlg:value="lblSelFields"/>
+ <dlg:menulist dlg:id="lstTables" dlg:tab-index="3" dlg:left="6" dlg:top="51" dlg:width="110" dlg:height="12" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGFORM_MASTER_LBTABLES" dlg:spin="true">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:FormWizard.FormWizard.FormGetFields?language=Basic&amp;location=application" script:language="Script"/>
+ <script:event script:event-name="on-mousedown" script:macro-name="vnd.sun.star.script:FormWizard.FormWizard.DeleteFirstTableListBoxEntry?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ <dlg:img dlg:id="imgTheme" dlg:tab-index="1" dlg:left="6" dlg:top="6" dlg:width="258" dlg:height="26" dlg:scale-image="false"/>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="33" dlg:left="6" dlg:top="190" dlg:width="53" dlg:height="14" dlg:help-url="HID:34401" dlg:value="cmdCancel" dlg:button-type="cancel"/>
+ <dlg:button dlg:id="cmdHelp" dlg:tab-index="34" dlg:left="63" dlg:top="190" dlg:width="53" dlg:height="14" dlg:tag="34400" dlg:value="cmdHelp" dlg:button-type="help"/>
+ <dlg:button dlg:id="cmdBack" dlg:tab-index="35" dlg:left="155" dlg:top="190" dlg:width="53" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGFORM_CMDPREV" dlg:value="cmdBack">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.FormWizard.PreviousStep?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdGoOn" dlg:tab-index="36" dlg:left="211" dlg:top="190" dlg:width="53" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGFORM_CMDNEXT" dlg:value="cmdGoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.FormWizard.NextStep?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:text dlg:id="lblTables" dlg:tab-index="2" dlg:left="6" dlg:top="40" dlg:width="72" dlg:height="8" dlg:page="1" dlg:value="lblTables"/>
+ <dlg:text dlg:id="lblFields" dlg:tab-index="4" dlg:left="6" dlg:top="70" dlg:width="109" dlg:height="8" dlg:page="1" dlg:value="lblFields"/>
+ <dlg:button dlg:id="cmdMoveSelected" dlg:tab-index="6" dlg:left="122" dlg:top="84" dlg:width="25" dlg:height="14" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGFORM_OPTONEXISTINGRELATION" dlg:value="-&gt;">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tools.Listbox.FormMoveSelected?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdMoveAll" dlg:tab-index="7" dlg:left="122" dlg:top="101" dlg:width="25" dlg:height="14" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGFORM_OPTSELECTMANUALLY" dlg:value="=&gt;&gt;">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tools.Listbox.FormMoveAll?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdRemoveSelected" dlg:tab-index="8" dlg:left="122" dlg:top="118" dlg:width="25" dlg:height="14" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGFORM_lstRELATIONS" dlg:value="&lt;-">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tools.Listbox.FormRemoveSelected?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdRemoveAll" dlg:tab-index="9" dlg:left="122" dlg:top="135" dlg:width="25" dlg:height="14" dlg:page="1" dlg:help-url="HID:34425" dlg:value="&lt;&lt;=">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tools.Listbox.FormRemoveAll?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="optIgnoreBinaries" dlg:tab-index="14" dlg:left="122" dlg:top="169" dlg:width="104" dlg:height="10" dlg:page="1" dlg:help-url="HID:34427" dlg:value="optIgnoreBinaries" dlg:checked="true">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.DBMeta.AddOrRemoveBinaryFieldsToWidthList?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optBinariesasGraphics" dlg:tab-index="13" dlg:left="12" dlg:top="169" dlg:width="104" dlg:height="10" dlg:page="1" dlg:help-url="HID:34426" dlg:value="optBinariesasGraphics">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.DBMeta.AddOrRemoveBinaryFieldsToWidthList?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ </dlg:radiogroup>
+ <dlg:menulist dlg:id="lstFields" dlg:tab-index="5" dlg:left="6" dlg:top="81" dlg:width="110" dlg:height="70" dlg:page="1" dlg:help-url="HID:34420" dlg:multiselection="true">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tools.Listbox.FormMoveSelected?language=Basic&amp;location=application" script:language="Script"/>
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Tools.Listbox.FormSetMoveRights?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ <dlg:menulist dlg:id="lstSelFields" dlg:tab-index="11" dlg:left="154" dlg:top="81" dlg:width="110" dlg:height="70" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGFORM_CHKCREATESUBFORM" dlg:multiselection="true">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tools.Listbox.FormRemoveSelected?language=Basic&amp;location=application" script:language="Script"/>
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Tools.Listbox.FormSetMoveRights?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ <dlg:text dlg:id="lblStyles" dlg:tab-index="25" dlg:left="150" dlg:top="39" dlg:width="114" dlg:height="8" dlg:page="2" dlg:value="lblStyles"/>
+ <dlg:button dlg:id="cmdArrange1" dlg:tab-index="16" dlg:left="12" dlg:top="50" dlg:width="23" dlg:height="25" dlg:page="2" dlg:tag="1" dlg:help-url="HID:WIZARDS_HID_DLGFORM_SUB_LBTABLES">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.Layouter.ChangeArrangemode?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdArrange2" dlg:tab-index="17" dlg:left="39" dlg:top="50" dlg:width="23" dlg:height="25" dlg:page="2" dlg:tag="2" dlg:help-url="HID:WIZARDS_HID_DLGFORM_SUB_FIELDSAVAILABLE">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.Layouter.ChangeArrangemode?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdArrange3" dlg:tab-index="18" dlg:left="66" dlg:top="50" dlg:width="23" dlg:height="25" dlg:page="2" dlg:tag="3" dlg:help-url="HID:WIZARDS_HID_DLGFORM_SUB_CMDMOVESELECTED">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.Layouter.ChangeArrangemode?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdArrange4" dlg:tab-index="19" dlg:left="93" dlg:top="50" dlg:width="23" dlg:height="25" dlg:page="2" dlg:tag="4" dlg:help-url="HID:WIZARDS_HID_DLGFORM_SUB_CMDMOVEALL">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.Layouter.ChangeArrangemode?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdArrange5" dlg:tab-index="20" dlg:left="120" dlg:top="50" dlg:width="23" dlg:height="25" dlg:page="2" dlg:tag="5" dlg:help-url="HID:WIZARDS_HID_DLGFORM_SUB_CMDREMOVESELECTED">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.Layouter.ChangeArrangemode?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:menulist dlg:id="lstStyles" dlg:tab-index="26" dlg:left="150" dlg:top="50" dlg:width="114" dlg:height="86" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGFORM_LINKER_LSTSLAVELINK2">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:FormWizard.tools.ImportStyles?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="optBorder0" dlg:tab-index="22" dlg:left="12" dlg:top="95" dlg:width="131" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGFORM_SUB_CMDMOVEUP" dlg:value="optBorder0">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.Layouter.ChangeBorderLayouts?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optBorder1" dlg:tab-index="23" dlg:left="12" dlg:top="109" dlg:width="131" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGFORM_SUB_CMDMOVEDOWN" dlg:value="optBorder1">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.Layouter.ChangeBorderLayouts?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optBorder2" dlg:tab-index="24" dlg:left="12" dlg:top="123" dlg:width="131" dlg:height="10" dlg:page="2" dlg:help-url="HID:34440" dlg:value="optBorder2">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.Layouter.ChangeBorderLayouts?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ </dlg:radiogroup>
+ <dlg:fixedline dlg:id="hlnBinaries" dlg:tab-index="12" dlg:left="6" dlg:top="158" dlg:width="258" dlg:height="8" dlg:page="1" dlg:value="hlnBinaries"/>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="optTiled" dlg:tab-index="31" dlg:left="156" dlg:top="154" dlg:width="81" dlg:height="10" dlg:page="2" dlg:tag="11" dlg:help-url="HID:WIZARDS_HID_DLGFORM_LINKER_LSTMASTERLINK2" dlg:value="optTiled" dlg:checked="true">
+ <script:event script:event-name="on-mouseup" script:macro-name="vnd.sun.star.script:WebWizard.Common.SetBackGraphicStyle?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optArea" dlg:tab-index="32" dlg:left="156" dlg:top="168" dlg:width="81" dlg:height="10" dlg:page="2" dlg:tag="10" dlg:help-url="HID:WIZARDS_HID_DLGFORM_LINKER_LSTSLAVELINK3" dlg:value="optArea">
+ <script:event script:event-name="on-mouseup" script:macro-name="vnd.sun.star.script:WebWizard.Common.SetBackGraphicStyle?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ </dlg:radiogroup>
+ <dlg:fixedline dlg:id="hlnBackground" dlg:tab-index="30" dlg:left="150" dlg:top="143" dlg:width="114" dlg:height="8" dlg:page="2" dlg:value="hlnBackground"/>
+ <dlg:fixedline dlg:id="hlnAlign" dlg:tab-index="27" dlg:left="6" dlg:top="143" dlg:width="137" dlg:height="8" dlg:page="2" dlg:value="hlnAlign"/>
+ <dlg:fixedline dlg:id="hlnBorderLayout" dlg:tab-index="21" dlg:left="6" dlg:top="83" dlg:width="137" dlg:height="8" dlg:page="2" dlg:value="hlnBorderLayout"/>
+ <dlg:fixedline dlg:id="hlnArrangements" dlg:tab-index="15" dlg:left="6" dlg:top="39" dlg:width="137" dlg:height="8" dlg:page="2" dlg:value="hlnArrangements"/>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="optAlign0" dlg:tab-index="28" dlg:left="12" dlg:top="154" dlg:width="131" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGFORM_LINKER_LSTSLAVELINK1" dlg:value="optAlign0">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.Layouter.ChangeLabelAlignments?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optAlign2" dlg:tab-index="29" dlg:left="12" dlg:top="168" dlg:width="131" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGFORM_LINKER_LSTMASTERLINK1" dlg:value="optAlign2">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:FormWizard.Layouter.ChangeLabelAlignments?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ </dlg:radiogroup>
+ <dlg:fixedline dlg:id="FixedLine1" dlg:tab-index="0" dlg:left="6" dlg:top="180" dlg:width="258" dlg:height="6"/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/FormWizard/FormWizard.xba b/test/user-template/user/basic/FormWizard/FormWizard.xba
new file mode 100644
index 000000000000..99103d9335bc
--- /dev/null
+++ b/test/user-template/user/basic/FormWizard/FormWizard.xba
@@ -0,0 +1,427 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="FormWizard" script:language="StarBasic">Option Explicit
+
+Public DocumentName as String
+Public FormPath as String
+Public WizardPath as String
+Public WebWizardPath as String
+Public WorkPath as String
+Public TempPath as String
+Public TexturePath as String
+Public sQueryName as String
+Public oDBConnection as Object
+Public bWithBackGraphic as Boolean
+Public bNeedFieldRefresh as Boolean
+Public oDBForm as Object
+Public oColumns() as Object
+Public sDatabaseList() as String
+Public TableNames() as String
+Public QueryNames() as String
+Public FieldNames() as String
+Public ImgFieldNames() as String
+Public oDBContext as Object
+Public oUcb as Object
+Public oDocInfo as Object
+Public WidthList(15,3)
+Public ImgWidthList(3,3)
+Public sDBName as String
+Public Tablename as String
+Public Const SBSIZETEXT = &quot;The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.&quot;
+Public bDisposeDoc as Boolean
+Public bDebug as Boolean
+&apos;Public bStartUp as Boolean
+Public bConnectionIsovergiven as Boolean
+Public FormName As String
+Public sFormUrl as String
+Public oFormDocuments
+
+
+&apos; The macro can be called in 4 possible scenarios:
+&apos; Scenario 1. No parameters at given
+&apos; Scenario 2: Only Datasourcename is given, but no connection and no Content
+&apos; Scenario 3: a data source and a connection are given
+&apos; Scenario 4: all parameters (data source name, connection, object type and object) are given
+
+Sub Main()
+Dim oLocDBContext as Object
+Dim oLocConnection as Object
+
+&apos; Scenario 1. No parameters at given
+ MainWithDefault()
+
+&apos; Scenario 2: Only Datasourcename is given, but no connection and no Content
+&apos; MainWithDefault(&quot;Bibliography&quot;)
+
+&apos; Scenario 3: a data source and a connection are given
+&apos; oLocDBContext = CreateUnoService(&quot;com.sun.star.sdb.DatabaseContext&quot;)
+&apos; oLocConnection = oLocDBContext.GetByName(&quot;Bibliography&quot;).GetConnection(&quot;&quot;,&quot;&quot;)
+&apos; MainWithDefault(&quot;Bibliography&quot;, oLocConnection)
+
+&apos; Scenario 4: all parameters (data source name, connection, object type and object) are given
+&apos; oLocDBContext = CreateUnoService(&quot;com.sun.star.sdb.DatabaseContext&quot;)
+&apos; oLocConnection = oLocDBContext.GetByName(&quot;Bibliography&quot;).GetConnection(&quot;&quot;,&quot;&quot;)
+&apos; MainWithDefault(&quot;Bibliography&quot;, oLocConnection, com.sun.star.sdb.CommandType.TABLE, &quot;biblio&quot;)
+End Sub
+
+
+Sub MainWithDefault(Optional DatasourceName as String, Optional oConnection as Object, Optional CommandType as Integer, Optional sContent as String)
+Dim i as Integer
+Dim SelCount as Integer
+Dim RetValue as Integer
+Dim SelList(0) as Integer
+Dim LocList() as String
+ SelList(0) = 0
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ BasicLibraries.LoadLibrary(&quot;WebWizard&quot;)
+ bDebug = False
+ If Not bDebug Then
+ On Local Error GoTo WIZARDERROR
+ End If
+ OpenFormDocument()
+ CurArrangement = 0
+ bControlsareCreated = False
+ bEnableBinaryOptionGroup = False
+ bDisposeDoc = True
+ MaxIndex = -1
+ If Not InitResources(&quot;Formwizard&quot;,&quot;dbw&quot;) Then
+ Exit Sub
+ End If
+ oDBContext = CreateUnoService(&quot;com.sun.star.sdb.DatabaseContext&quot;)
+ oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ If GetFormWizardPaths() = False Then
+ Exit Sub
+ End If
+ oDocument.GetCurrentController().Frame.ComponentWindow.Enable = False
+ oProgressBar.Value = 10
+ LoadLanguage()
+ oProgressBar.Value = 20
+ InitializeWidthList()
+ oProgressBar.Value = 30
+ Styles() = getListBoxArrays(oUcb, &quot;/stl&quot;)
+ CurIndex = GetCurIndex(DialogModel, Styles(), 2)
+ oProgressBar.Value = 40
+ ConfigurePageStyle()
+ oProgressBar.Value = 50
+ InitializeLabelValues()
+ bNeedFieldRefresh = True
+ SetDialogLanguage()
+&apos; bStartUp = true
+ With DialogModel
+ .cmdBack.Enabled = False
+ .cmdGoOn.Enabled = False
+ .lblTables.Enabled = False
+ .lstSelFields.Tag = False
+ .Step = 1
+ End With
+ oProgressBar.Value = 60
+ bConnectionIsovergiven = Not IsMissing(oConnection)
+ If Not IsMissing(DataSourceName) Then
+ sDBName = DataSourceName
+ If Not IsMissing(oConnection) Then
+ &apos; Scenario 3: a data source and a connection are given
+ Set oDBConnection = oConnection
+ oDataSource = oDBContext.GetByName(DataSourceName)
+ DialogModel.lstTables.Enabled = True
+ DialogModel.lblTables.Enabled = True
+ If GetDBMetaData() Then
+ LocList() = AddListToList(TableNames(), QueryNames())
+ iCommandTypes = CreateCommandTypeList()
+ If Not IsMissing(sContent) Then
+ &apos; Scenario 4: all parameters (data source name, connection, object type and object) are given
+ DialogModel.lstTables.StringItemList() = LocList()
+ iCommandTypes() = CreateCommandTypeList()
+ SelCount = CountItemsInArray(DialogModel.lstTables.StringItemList(), sContent)
+ If SelCount = 1 Then
+ DlgFormDB.GetControl(&quot;lstTables&quot;).SelectItem(sContent, True)
+ Else
+ If CommandType = com.sun.star.sdb.CommandType.QUERY Then
+ SelIndex = IndexInArray(sContent, QueryNames()
+ DlgFormDB.GetControl(&quot;lstTables&quot;).SelectItemPos(SelIndex, True)
+ ElseIf CommandType = com.sun.star.sdb.CommandType.TABLE Then
+ SelIndex = IndexInArray(sContent, TableNames()
+ DlgFormDB.GetControl(&quot;lstTables&quot;).SelectItemPos(Ubound(QueryNames()+1 + SelIndex, True)
+ End If
+ End If
+ CurCommandType = CommandType
+ FillUpFieldsListbox(False)
+ Else
+ LocList() = AddListToList(Array(sSelectDBTable), LocList())
+ DialogModel.lstTables.StringItemList() = LocList()
+&apos; bSelectContent = True
+ DialogModel.lstTables.SelectedItems() = Array(0)
+
+ End If
+ End If
+ Else
+ &apos; Scenario 2: Only Datasourcename is given, but no connection and no Content
+ GetSelectedDBMetaData(sDBName)
+ End If
+ Else
+ &apos; Scenario 1: No parameters are given
+ ToggleListboxControls(DialogModel, False)
+ End If
+ oProgressBar.Value = 80
+ bWithBackGraphic = LoadNewStyles(oDocument, DialogModel, CurIndex, Styles(CurIndex, 8), Styles(), TexturePath)
+ DlgFormDB.Title = WizardTitle(1)
+ DialogModel.lstStyles.StringItemList() = ArrayfromMultiArray(Styles, 1)
+ DialogModel.lstStyles.SelectedItems() = SelList()
+ ControlCaptionsToStandardLayout()
+ oDocument.GetCurrentController().Frame.ComponentWindow.Enable = True
+ oProgressBar.Value = 90
+ DialogModel.imgTheme.ImageURL = FormPath &amp; &quot;FormWizard_1.bmp&quot;
+ DialogModel.imgTheme.BackGroundColor = RGB(0,60,126)
+ ToggleDatabasePage(True)
+ oProgressBar.Value = 100
+ DlgFormDB.GetControl(&quot;lstTables&quot;).SetFocus()
+ oProgressbar.End
+ RetValue = DlgFormDB.Execute()
+ DlgFormDB.Dispose()
+ If bDisposeDoc Then
+ Dim aPropertyValues(2) as new com.sun.star.beans.PropertyValue
+ oFormDocuments = oDataSource.getFormDocuments()
+ DlgFormDB.Dispose()
+ oDocument.dispose()
+ Dim bLinkExists as Boolean
+ i = 1
+ Dim FormBaseName as String
+ FormBaseName = FormName
+ Do
+ bLinkExists = oFormDocuments.HasbyHierarchicalName(FormName)
+ If bLinkExists Then
+ i = i + 1
+ FormName = FormBaseName &amp; &quot;_&quot; &amp; i
+ End If
+ Loop Until Not bLinkExists
+ aPropertyValues(0).Name = &quot;Name&quot;
+ aPropertyValues(0).Value = FormName
+ aPropertyValues(1).Name = &quot;Parent&quot;
+ aPropertyValues(1).Value = oFormDocuments()
+ aPropertyValues(2).Name = &quot;URL&quot;
+ aPropertyValues(2).Value = sFormUrl
+ Dim oDBDocument
+ oDBDocument = oFormDocuments.createInstanceWithArguments(&quot;com.sun.star.sdb.DocumentDefinition&quot;, aPropertyValues())
+ oFormDocuments.insertbyName(FormName, oDBDocument)
+ ElseIf RetValue = 0 Then
+ RemoveNirwanaShapes()
+ End If
+ If ((Not IsNull(oDBConnection)) And (Not bConnectionIsovergiven)) Then
+ oDBConnection.Dispose()
+ End If
+WIZARDERROR:
+ If Err &lt;&gt; 0 Then
+ Msgbox(sMsgErrMsg, 16, GetProductName())
+ Resume LOCERROR
+ LOCERROR:
+ End If
+End Sub
+
+
+Sub FormGetFields()
+Dim i as Integer
+&apos; If bSelectContent Then
+&apos; bSelectContent = False
+&apos; Exit Sub
+&apos; End If
+ DeleteFirstListBoxEntry(&quot;lstTables&quot;, sSelectDBTable)
+ ToggleDatabasePage(False)
+ FillUpFieldsListbox(True)
+ ToggleDatabasePage(True)
+End Sub
+
+
+Sub FillUpFieldsListbox(bGetCommandType as Boolean)
+Dim SelIndex as Integer
+Dim QueryIndex as Integer
+ If Not bDebug Then
+ On Local Error GoTo NOFIELDS
+ End If
+ SelIndex = DlgFormDB.GetControl(&quot;lstTables&quot;).getSelectedItemPos() &apos;.SelectedItems())
+ If SelIndex &gt; -1 Then
+ If bGetCommandType Then
+ CurCommandType = iCommandTypes(SelIndex)
+ End If
+ If CurCommandType = com.sun.star.sdb.CommandType.QUERY Then
+ QueryIndex = SelIndex - Ubound(Tablenames()) - 1
+ Tablename = QueryNames(QueryIndex)
+ oColumns = oDBConnection.Queries.GetByName(TableName).Columns
+ Else
+ Tablename = Tablenames(SelIndex)
+ oColumns = oDBConnection.Tables.GetByName(Tablename).Columns
+ End If
+ If GetSpecificFieldNames() &lt;&gt; -1 Then
+ ToggleListboxControls(DialogModel, True)
+ Exit Sub
+ End If
+ End If
+ EmptyFieldsListboxes()
+NOFIELDS:
+ If Err &lt;&gt; 0 Then
+ MsgBox sMsgErrCouldNotOpenObject, 16, sMsgWizardName
+ End If
+End Sub
+
+
+Sub PreviousStep()
+ If Not bDebug Then
+ On Local Error GoTo WIZARDERROR
+ End If
+ With DialogModel
+ .Step = 1
+ .cmdBack.Enabled = False
+ .cmdGoOn.Enabled = True
+ .lstSelFields.Tag = Not bControlsareCreated
+ .cmdGoOn.Label = sGoOn
+ .imgTheme.ImageUrl = FormPath &amp; &quot;FormWizard_1.bmp&quot;
+ End With
+ FormSetMoveRights()
+WIZARDERROR:
+ If Err &lt;&gt; 0 Then
+ Msgbox(sMsgErrMsg, 16, GetProductName())
+ Resume LOCERROR
+ LOCERROR:
+ End If
+End Sub
+
+
+Sub NextStep()
+ If Not bDebug Then
+ On Local Error GoTo WIZARDERROR
+ End If
+ Select Case DialogModel.Step
+ Case 1
+ bControlsAreCreated = Not (cBool(DialogModel.lstSelFields.Tag))
+ If Not bControlsAreCreated Then
+ GetTableMetaData()
+ CreateDBForm()
+ RemoveShapes()
+ InitializeLayoutSettings()
+ oDBForm.Load
+ End If
+ DialogModel.cmdGoOn.Label = sReady
+ DialogModel.cmdBack.Enabled = True
+ DialogModel.Step = 2
+ bDisposeDoc = False
+ Case 2
+ StoreForm()
+ DlgFormDB.EndExecute()
+ exit Sub
+ End Select
+ DialogModel.imgTheme.ImageUrl = FormPath &amp; &quot;FormWizard_&quot; &amp; DialogModel.Step &amp; &quot;.bmp&quot;
+ DlgFormDB.Title = WizardTitle(DialogModel.Step)
+WIZARDERROR:
+ If Err &lt;&gt; 0 Then
+ Msgbox(sMsgErrMsg, 16, GetProductName())
+ Resume LOCERROR
+ LOCERROR:
+ End If
+End Sub
+
+
+Sub InitializeLayoutSettings()
+ SwitchArrangementButtons(cTabled)
+ SwitchAlignMode(SBALIGNLEFT)
+ SwitchBorderMode(SB3DBORDER)
+ ToggleBorderGroup(bControlsAreCreated)
+ ToggleAlignGroup(bControlsAreCreated)
+ ArrangeControls()
+ If OldAlignMode &lt;&gt; 0 Then
+ DlgFormDB.GetControl(&quot;optAlign2&quot;).Model.State = 0
+ End If
+End Sub
+
+
+Sub ToggleDatabasePage(bDoEnable as Boolean)
+ With DialogModel
+ .cmdBack.Enabled = False
+ .cmdHelp.Enabled = bDoEnable
+ .cmdGoOn.Enabled = Ubound(DialogModel.lstSelFields.StringItemList()) &lt;&gt; -1
+ .hlnBinaries.Enabled = ((bDoEnable = True) And (bEnableBinaryOptionGroup = True))
+ .optIgnoreBinaries.Enabled = ((bDoEnable = True) And (bEnableBinaryOptionGroup = True))
+ .optBinariesasGraphics.Enabled = ((bDoEnable = True) And (bEnableBinaryOptionGroup = True))
+ End With
+End Sub
+
+
+&apos; This Sub is called from the Procedure &quot;StoreDocument&quot; in the &quot;Tools&quot; Library
+Sub CommitLastDocumentChanges(sTargetPath as String)
+Dim i as Integer
+Dim sBookmarkName as String
+Dim oDBBookmarks as Object
+Dim bLinkExists as Boolean
+Dim sBaseBookmarkName as String
+ sBookmarkName = GetFileNamewithoutExtension(FileNameoutofPath(sTargetPath))
+ sBaseBookmarkName = sBookmarkName
+ oDBBookmarks = oDataSource.GetBookmarks()
+ i = 1
+ Do
+ bLinkExists = oDBBookmarks.HasbyName(sBookmarkName)
+ If bLinkExists Then
+ i = i + 1
+ sBookmarkName = sBaseBookmarkName &amp; &quot;_&quot; &amp; i
+ Else
+ oDBBookmarks.insertByName(sBookmarkName, sTargetPath)
+ End If
+ Loop Until Not bLinkExists
+ bDisposeDoc = False
+ GroupShapesTogether()
+ ToggleDesignMode(oDocument)
+ oDBForm.Reload()
+End Sub
+
+
+Sub StoreFormInDatabase()
+ Dim NoArgs() as new com.sun.star.beans.PropertyValue
+ FormName = &quot;Form_&quot; &amp; sDBName &amp; &quot;_&quot; &amp; TableName &amp; &quot;.sxw&quot;
+ sFormUrl = TempPath &amp; &quot;/&quot; &amp; FormName
+ oDocument.StoreAsUrl(sFormUrl, NoArgs())
+ bdisposeDoc = true
+ DlgFormDB.Endexecute()
+End Sub
+
+
+
+Sub StoreForm()
+Dim sTargetPath as String
+Dim TypeNames(0,2) as String
+Dim oMasterKey as Object
+Dim oTypes() as Object
+ oMasterKey = GetRegistryKeyContent(&quot;org.openoffice.TypeDetection.Types/&quot;)
+ oTypes() = oMasterKey.Types
+ TypeNames(0,0) = GetFilterName(&quot;StarOffice XML (Writer)&quot;)
+ TypeNames(0,1) = &quot;*.sxw&quot;
+ TypeNames(0,2) = &quot;&quot;
+ StoreFormInDatabase()
+&apos; sTargetPath = StoreDocument(oDocument, TypeNames(), &quot;Form_&quot; &amp; sDBName &amp; &quot;_&quot; &amp; TableName &amp; &quot;.sxw&quot;, WorkPath, 1)
+End Sub
+
+
+
+Sub EmptyFieldsListboxes()
+Dim NullList() as String
+ ToggleListboxControls(DialogModel, False)
+ DialogModel.lstFields.StringItemList() = NullList()
+ DialogModel.lstSelFields.StringItemList() = NullList()
+ bEnableBinaryOptionGroup = False
+End Sub
+
+
+Sub DeleteFirstTableListBoxEntry()
+ DeleteFirstListBoxEntry(&quot;lstTables&quot;, sSelectDBTable)
+End Sub
+
+Sub DeleteFirstListboxEntry(ListBoxName as String, DelEntryName as String)
+Dim oListbox as Object
+Dim sFirstItem as String
+dim iSelPos as Integer
+ oListBox = DlgFormDB.getControl(ListBoxName)
+ sFirstItem = oListBox.getItem(0)
+ If sFirstItem = DelEntryName Then
+ iSelPos = oListBox.getSelectedItemPos()
+ oListBox.removeItems(0, 1)
+ If iSelPos &gt; 0 Then
+ oListBox.selectItemPos(iSelPos-1, True)
+ End If
+ End If
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/FormWizard/Language.xba b/test/user-template/user/basic/FormWizard/Language.xba
new file mode 100644
index 000000000000..2f2b7e3ec11f
--- /dev/null
+++ b/test/user-template/user/basic/FormWizard/Language.xba
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Language" script:language="StarBasic">Option Explicit
+
+
+Global Const RID_COMMON = 1000
+Global Const RID_FORM = 2200
+
+Public Const SBCANCEL = 2
+Public Const SBREPEAT = 4
+Public LabelDiffHeight as Long
+Public BasicLabelDiffHeight as Long
+
+Public WizardTitle(1 To 3) as String
+Public DlgFormDB as Object
+Public DialogModel as Object
+
+Dim sMsgWizardName as String
+Dim sMsgErrMsg as String
+Dim sMsgErrNoDatabase as String
+Dim sMsgErrNoTableInDatabase as String
+Dim sMsgErrTitleSuggestedExist as String
+Dim sMsgErrTitleSyntaxError as String
+Dim sMsgErrTitleAsTableExist as String
+Dim sMsgProgressText as String
+Dim sMsgCreatedForm as String
+Dim sMsgErrCouldNotOpenObject as String
+Dim sMsgErrNameToLong as String
+Dim sTimeAppendix as String
+Dim sDateAppendix as String
+Public sGoOn as String
+Public sReady as String
+Public sMsgNoConnection as String
+Public sWriterFilterName as String
+Public XPixelFactor as Long
+Public YPixelFactor as Long
+Public sSelectDatasource as String
+Public sSelectDBTable as String
+
+
+
+Sub LoadLanguage ()
+ sMsgWizardName = GetResText(RID_FORM + 0)
+ sMsgErrMsg = GetResText(RID_COMMON + 6)
+ sMsgErrNoDatabase = GetResText(RID_COMMON + 8)
+ sMsgErrNoTableInDatabase = GetResText(RID_COMMON + 9)
+ sMsgErrTitleSuggestedExist = GetResText(RID_COMMON + 10)
+ sMsgErrTitleAsTableExist = GetResText(RID_COMMON + 10)
+ sMsgErrTitleSyntaxError = GetResText(RID_COMMON + 11)
+ sMsgNoConnection = GetResText(RID_COMMON + 14
+ sMsgProgressText = GetResText(RID_FORM + 2)
+ sMsgCreatedForm = GetResText(RID_FORM + 26)
+ sMsgErrNameToLong = GetResText (RID_FORM + 27)
+ sMsgErrCouldNotOpenObject = GetResText (RID_COMMON + 13)
+
+ &apos; Internal Logic
+ sDateAppendix = GetResText(RID_FORM + 4)
+ sTimeAppendix = GetResText(RID_FORM + 5)
+
+ sReady = GetResText(RID_COMMON + 0)
+End Sub
+
+
+Sub SetDialogLanguage ()
+Dim i as Integer
+Dim ButtonHelpText as String
+Dim CmdButton as Object
+Dim IDArray as Variant
+Dim FNameAddOn as String
+Dim slblSelFields as String
+Dim slblFields as String
+
+ DlgFormDB = LoadDialog(&quot;FormWizard&quot;, &quot;DlgFormDB&quot;)
+ DialogModel = DlgFormDB.Model
+
+ With DialogModel
+ .cmdCancel.Label = GetResText(RID_COMMON + 1)
+ .cmdBack.Label = GetResText(RID_COMMON + 2)
+ .cmdHelp.Label = GetResText(RID_COMMON + 20)
+ sGoOn = GetResText(RID_COMMON + 3)
+ .cmdGoOn.Label = sGoOn
+ .lblTables.Label = GetResText(RID_FORM + 6)
+
+ slblFields = GetResText(RID_FORM + 12)
+ slblSelFields = GetResText(RID_FORM + 13)
+ .lblFields.Label = slblFields
+ .lblSelFields.Label = slblSelFields
+
+ .lblStyles.Label = GetResText(RID_FORM + 21)
+ .hlnBorderLayout.Label = GetResText(RID_FORM + 28)
+ .hlnAlign.Label = GetResText(RID_FORM + 32)
+ .hlnArrangements.Label = GetResText(RID_FORM + 35)
+
+ WizardTitle(1) = sMsgWizardName &amp; &quot; - &quot; &amp; GetResText(RID_FORM + 45)
+ WizardTitle(2) = sMsgWizardName &amp; &quot; - &quot; &amp; GetResText(RID_FORM + 46)
+ WizardTitle(3) = sMsgWizardName &amp; &quot; - &quot; &amp; GetResText(RID_FORM + 47)
+
+ .hlnBinaries.Label = GetResText(RID_FORM + 50)
+ .optIgnoreBinaries.Label = GetResText(RID_FORM + 51)
+ .optBinariesasGraphics.Label = GetResText(RID_FORM + 52)
+
+ .hlnBackground.Label = GetResText(RID_FORM + 55)
+ .optTiled.Label = GetResText(RID_FORM + 56)
+ .optArea.Label = GetResText(RID_FORM + 57)
+
+ .optBorder0.Label = GetResText(RID_FORM + 29)
+ .optBorder1.Label = GetResText(RID_FORM + 30)
+ .optBorder2.Label = GetResText(RID_FORM + 31)
+ .optBorder1.State = 1
+
+ .optAlign0.Label = GetResText(RID_FORM + 33)
+ .optAlign2.Label = GetResText(RID_FORM + 34)
+ .optAlign0.State = 1
+
+ //FIXME: Remove this unused FNameAddOn through the file
+ FNameAddOn = &quot;&quot;
+
+ IDArray = Array(36, 37, 40, 38, 39)
+ For i = 1 To 5
+ ButtonHelpText = GetResText(RID_FORM + IDArray(i-1)
+ cmdButton = DlgFormDB.getControl(&quot;cmdArrange&quot; &amp; i)
+ cmdButton.Model.ImageURL = FormPath &amp; &quot;Arrange_&quot; &amp; i &amp; FNameAddOn &amp; &quot;.gif&quot;
+ cmdButton.Model.HelpText = ButtonHelpText
+ cmdButton.getPeer().setProperty(&quot;AccessibleName&quot;, ButtonHelpText)
+ Next i
+&apos; .cmdArrange1.ImageURL = FormPath &amp; &quot;Arrange_1&quot; &amp; FNameAddOn &amp; &quot;.gif&quot;
+&apos; .cmdArrange1.HelpText = GetResText(RID_FORM + 36)
+&apos;
+&apos; .cmdArrange2.ImageURL = FormPath &amp; &quot;Arrange_2&quot; &amp; FNameAddOn &amp; &quot;.gif&quot;
+&apos; .cmdArrange2.HelpText = GetResText(RID_FORM + 37)
+&apos;
+&apos; .cmdArrange3.ImageURL = FormPath &amp; &quot;Arrange_3&quot; &amp; FNameAddOn &amp; &quot;.gif&quot;
+&apos; .cmdArrange3.HelpText = GetResText(RID_FORM + 40)
+&apos;
+&apos; .cmdArrange4.ImageURL = FormPath &amp; &quot;Arrange_4&quot; &amp; FNameAddOn &amp; &quot;.gif&quot;
+&apos; .cmdArrange4.HelpText = GetResText(RID_FORM + 38)
+&apos;
+&apos; .cmdArrange5.ImageURL = FormPath &amp; &quot;Arrange_5&quot; &amp; FNameAddOn &amp; &quot;.gif&quot;
+&apos; .cmdArrange5.HelpText = GetResText(RID_FORM + 39)
+ sWriterFilterName = GetResText(RID_FORM + 70)
+ End With
+ DlgFormDB.GetControl(&quot;cmdMoveSelected&quot;).getPeer().setProperty(&quot;AccessibleName&quot;, GetResText(RID_COMMON + 39)
+ DlgFormDB.GetControl(&quot;cmdRemoveSelected&quot;).getPeer().setProperty(&quot;AccessibleName&quot;, GetResText(RID_COMMON + 40)
+ DlgFormDB.GetControl(&quot;cmdMoveAll&quot;).getPeer().setProperty(&quot;AccessibleName&quot;, GetResText(RID_COMMON + 41)
+ DlgFormDB.GetControl(&quot;cmdRemoveAll&quot;).getPeer().setProperty(&quot;AccessibleName&quot;, GetResText(RID_COMMON + 42)
+ DlgFormDB.getControl(&quot;lstFields&quot;).getPeer().setProperty(&quot;AccessibleName&quot;, DeleteStr(slblFields, &quot;~&quot;))
+ DlgFormDB.getControl(&quot;lstSelFields&quot;).getPeer().setProperty(&quot;AccessibleName&quot;, DeleteStr(slblSelFields, &quot;~&quot;))
+
+ sSelectDatasource = GetResText(RID_COMMON + 37)
+ sSelectDBTable = GetResText(RID_COMMON + 38)
+End Sub
+
+
+
+Sub InitializeWidthList()
+
+ If Ubound(WidthList(),1) &gt; 16 Then
+ ReDim WidthList(16,4)
+ End If
+
+ WidthList(0,0) = com.sun.star.sdbc.DataType.BIT &apos; = -7;
+ WidthList(0,1) = cCheckbox
+ WidthList(0,2) = False
+ WidthList(0,3) = &quot;CheckBox&quot;
+
+ WidthList(1,0) = com.sun.star.sdbc.DataType.TINYINT &apos; = -6;
+ WidthList(1,1) = cNumericBox
+ WidthList(1,2) = False
+ WidthList(1,3) = &quot;FormattedField&quot;
+
+ WidthList(2,0) = com.sun.star.sdbc.DataType.SMALLINT &apos; = 5;
+ WidthList(2,1) = cNumericBox
+ WidthList(2,2) = False
+ WidthList(2,3) = &quot;FormattedField&quot;
+
+ WidthList(3,0) = com.sun.star.sdbc.DataType.INTEGER &apos; = 4;
+ WidthList(3,1) = cNumericBox
+ WidthList(3,2) = False
+ WidthList(3,3) = &quot;FormattedField&quot;
+
+ WidthList(4,0) = com.sun.star.sdbc.DataType.BIGINT &apos; = -5;
+ WidthList(4,1) = cNumericBox
+ WidthList(4,2) = False
+ WidthList(4,3) = &quot;FormattedField&quot;
+
+ WidthList(5,0) = com.sun.star.sdbc.DataType.FLOAT &apos; = 6;
+ WidthList(5,1) = cNumericBox
+ WidthList(5,2) = False
+ WidthList(5,3) = &quot;FormattedField&quot;
+
+ WidthList(6,0) = com.sun.star.sdbc.DataType.REAL &apos; = 7;
+ WidthList(6,1) = cNumericBox
+ WidthList(6,2) = False
+ WidthList(6,3) = &quot;FormattedField&quot;
+
+ WidthList(7,0) = com.sun.star.sdbc.DataType.DOUBLE &apos; = 8;
+ WidthList(7,1) = cNumericBox
+ WidthList(7,2) = False
+ WidthList(7,3) = &quot;FormattedField&quot;
+
+ WidthList(8,0) = com.sun.star.sdbc.DataType.NUMERIC &apos; = 2;
+ WidthList(8,1) = cNumericBox
+ WidthList(8,2) = False
+ WidthList(8,3) = &quot;FormattedField&quot;
+
+ WidthList(9,0) = com.sun.star.sdbc.DataType.DECIMAL &apos; = 3; (including decimal places)
+ WidthList(9,1) = cNumericBox
+ WidthList(9,2) = False
+ WidthList(9,3) = &quot;FormattedField&quot;
+
+ WidthList(10,0) = com.sun.star.sdbc.DataType.CHAR &apos; = 1;
+ WidthList(10,1) = cTextBox
+ WidthList(10,2) = False
+ WidthList(10,3) = &quot;TextField&quot;
+
+ WidthList(11,0) = com.sun.star.sdbc.DataType.VARCHAR &apos; = 12;
+ WidthList(11,1) = cTextBox
+ WidthList(11,2) = True
+ WidthList(11,3) = &quot;TextField&quot;
+
+ WidthList(12,0) = com.sun.star.sdbc.DataType.LONGVARCHAR &apos; = -1;
+ WidthList(12,1) = cTextBox
+ WidthList(12,2) = True
+ WidthList(12,3) = &quot;TextField&quot;
+
+ WidthList(13,0) = com.sun.star.sdbc.DataType.DATE &apos; = 91;
+ WidthList(13,1) = cDateBox
+ WidthList(13,2) = False
+ WidthList(13,3) = &quot;DateField&quot;
+
+ WidthList(14,0) = com.sun.star.sdbc.DataType.TIME &apos; = 92;
+ WidthList(14,1) = cTimeBox
+ WidthList(14,2) = False
+ WidthList(14,3) = &quot;TimeField&quot;
+
+ WidthList(15,0) = com.sun.star.sdbc.DataType.TIMESTAMP &apos; = 93;
+ WidthList(15,1) = cDateBox
+ WidthList(15,2) = False
+ WidthList(15,3) = &quot;DateField&quot;
+
+ WidthList(16,0) = com.sun.star.sdbc.DataType.BOOLEAN &apos; = 16;
+ WidthList(16,1) = cCheckbox
+ WidthList(16,2) = False
+ WidthList(16,3) = &quot;CheckBox&quot;
+
+ ImgWidthList(0,0) = com.sun.star.sdbc.DataType.BINARY &apos; = -2;
+ ImgWidthList(0,1) = cImageControl
+ ImgWidthList(0,2) = False
+ ImgWidthList(0,3) = &quot;ImageControl&quot;
+
+ ImgWidthList(1,0) = com.sun.star.sdbc.DataType.VARBINARY &apos; = -3;
+ ImgWidthList(1,1) = cImageControl
+ ImgWidthList(1,2) = False
+ ImgWidthList(1,3) = &quot;ImageControl&quot;
+
+ ImgWidthList(2,0) = com.sun.star.sdbc.DataType.LONGVARBINARY &apos; = -4;
+ ImgWidthList(2,1) = cImageControl
+ ImgWidthList(2,2) = False
+ ImgWidthList(2,3) = &quot;ImageControl&quot;
+
+ ImgWidthList(3,0) = com.sun.star.sdbc.DataType.BLOB &apos; = 2004;
+ ImgWidthList(3,1) = cImageControl
+ ImgWidthList(3,2) = False
+ ImgWidthList(3,3) = &quot;ImageControl&quot;
+
+&apos; Note: the following Fieldtypes are ignored
+&apos;ExcludeList(0) = com.sun.star.sdbc.DataType.SQLNULL
+&apos;ExcludeList(1) = com.sun.star.sdbc.DataType.OTHER
+&apos;ExcludeList(2) = com.sun.star.sdbc.DataType.OBJECT
+&apos;ExcludeList(3) = com.sun.star.sdbc.DataType.DISTINCT
+&apos;ExcludeList(4) = com.sun.star.sdbc.DataType.STRUCT
+&apos;ExcludeList(5) = com.sun.star.sdbc.DataType.ARRAY
+&apos;ExcludeList(6) = com.sun.star.sdbc.DataType.CLOB
+&apos;ExcludeList(7) = com.sun.star.sdbc.DataType.REF
+
+ oModelService(cLabel) = &quot;com.sun.star.form.component.FixedText&quot;
+ oModelService(cTextBox) = &quot;com.sun.star.form.component.TextField&quot;
+ oModelService(cCheckBox) = &quot;com.sun.star.form.component.CheckBox&quot;
+ oModelService(cDateBox) = &quot;com.sun.star.form.component.DateField&quot;
+ oModelService(cTimeBox) = &quot;com.sun.star.form.component.TimeField&quot;
+ oModelService(cNumericBox) = &quot;com.sun.star.form.component.FormattedField&quot;
+ oModelService(cGridControl) = &quot;com.sun.star.form.component.GridControl&quot;
+ oModelService(cImageControl) = &quot;com.sun.star.form.component.DatabaseImageControl&quot;
+End Sub
+</script:module>
diff --git a/test/user-template/user/basic/FormWizard/Layouter.xba b/test/user-template/user/basic/FormWizard/Layouter.xba
new file mode 100644
index 000000000000..ae10314bbda3
--- /dev/null
+++ b/test/user-template/user/basic/FormWizard/Layouter.xba
@@ -0,0 +1,380 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Layouter" script:language="StarBasic">Option Explicit
+
+Public oProgressbar as Object
+Public ProgressValue as Integer
+Public oDocument as Object
+Public oController as Object
+Public oForm as Object
+Public oDrawPage as Object
+Public oPageStyle as Object
+
+Public nMaxColRightX as Long
+Public nMaxTCWidth as Long
+Public nMaxRowRightX as Long
+Public nMaxRowY as Long
+Public nSecMaxRowY as Long
+Public MaxIndex as Integer
+Public CurIndex as Integer
+
+Public Const cVertDistance = 200
+Public Const cHoriDistance = 300
+
+Public nPageWidth as Long
+Public nPageHeight as Long
+Public nFormWidth as Long
+Public nFormHeight as Long
+Public nMaxHoriPos as Long
+Public nMaxVertPos as Long
+
+Public CONST SBALIGNLEFT = 0
+Public CONST SBALIGNRIGHT = 2
+
+Public Const SBNOBORDER = 0
+Public Const SB3DBORDER = 1
+Public Const SBSIMPLEBORDER = 2
+
+Public CurArrangement as Integer
+Public CurBorderType as Integer
+Public CurAlignmode as Integer
+
+Public OldAlignMode as Integer
+Public OldBorderType as Integer
+Public OldArrangement as Integer
+
+Public Const cColumnarLeft = 1
+Public Const cColumnarTop = 2
+Public Const cTabled = 3
+Public Const cLeftJustified = 4
+Public Const cTopJustified = 5
+
+Public Const cXOffset = 1000
+Public Const cYOffset = 700
+&apos; This is the viewed space that we lose because of the symbol bars
+Public Const cSymbolMargin = 2000
+Public Const MaxFieldIndex = 200
+
+Public Const cControlCollectionCount = 9
+Public Const cLabel = 1
+Public Const cTextBox = 2
+Public Const cCheckBox = 3
+Public Const cDateBox = 4
+Public Const cTimeBox = 5
+Public Const cNumericBox = 6
+Public Const cCurrencyBox = 7
+Public Const cGridControl = 8
+Public Const cImageControl = 9
+
+Public Styles(100, 8) as String
+
+Public CurControlType as Integer
+Public CurFieldlength as Double
+Public CurFieldType as Integer
+Public CurFieldName as String
+Public CurControlName as String
+Public CurFormatKey as Long
+Public CurDefaultValue
+Public CurIsCurrency as Boolean
+Public CurScale as Integer
+Public CurHelpText as String
+
+Public FieldMetaValues(MaxFieldIndex, 8)
+&apos; Description of this List:
+&apos; CurFieldType = FieldMetaValues(Index,0)
+&apos; CurFieldLength = FieldMetaValues(Index,1)
+&apos; CurControlType = FieldMetaValues(Index,2) (ControlType eg. cLabel, cTextbox usw.)
+&apos; CurControlName = FieldMetaValues(Index,3)
+&apos; CurFormatKey = FieldMetaValues(Index,4)
+&apos; CurDefaultValue = FieldMetaValues(Index,5)
+&apos; CurIsCurrency = FieldMetaValues(Index,6)
+&apos; CurScale = FieldMetaValues(Index,7)
+&apos; CurHelpText = FieldMetaValues(Index,8)
+
+Public FieldNames(MaxFieldIndex) as string
+Public oModelService(cControlCollectionCount) as String
+Public oGridModel as Object
+
+
+Function InsertControl(oContainer as Object, oControlObject as object, aPoint as Object, aSize as Object)
+Dim oShape as object
+ oShape = oDocument.CreateInstance (&quot;com.sun.star.drawing.ControlShape&quot;)
+ oShape.Size = aSize
+ oShape.Position = aPoint
+ oShape.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH
+ oShape.control = oControlObject
+ oContainer.Add(oShape)
+ InsertControl() = oShape
+End Function
+
+
+Function ArrangeControls()
+Dim oShape as Object
+Dim i as Integer
+ oProgressbar = oDocument.GetCurrentController.GetFrame.CreateStatusIndicator
+ oProgressbar.Start(&quot;&quot;, MaxIndex)
+ If oDBForm.HasbyName(&quot;Grid1&quot;) Then
+ RemoveShapes()
+ End If
+ ToggleLayoutPage(False)
+ Select Case CurArrangement
+ Case cTabled
+ PositionGridControl(MaxIndex)
+ Case Else
+ PositionControls(MaxIndex)
+ End Select
+ ToggleLayoutPage(True)
+ oProgressbar.End
+End Function
+
+
+Sub OpenFormDocument()
+Dim NoArgs() as new com.sun.star.beans.PropertyValue
+Dim oViewSettings as Object
+ oDocument = CreateNewDocument(&quot;swriter&quot;)
+ oProgressbar = oDocument.GetCurrentController.GetFrame.CreateStatusIndicator()
+ oProgressbar.Start(&quot;&quot;, 100)
+ oDocument.ApplyFormDesignMode = False
+ oController = oDocument.GetCurrentController
+ oViewSettings = oDocument.CurrentController.ViewSettings
+ oViewSettings.ShowTableBoundaries = False
+ oViewSettings.ShowOnlineLayout = True
+ oDrawPage = oDocument.DrawPage
+ oPageStyle = oDocument.StyleFamilies.GetByName(&quot;PageStyles&quot;).GetByName(&quot;Standard&quot;)
+End Sub
+
+
+Sub InitializeLabelValues()
+Dim oLabelModel as Object
+Dim oTBModel as Object
+Dim oLabelShape as Object
+Dim oTBShape as Object
+Dim aTBSize As New com.sun.star.awt.Size
+Dim aLabelSize As New com.sun.star.awt.Size
+Dim aPoint As New com.sun.star.awt.Point
+Dim aSize As New com.sun.star.awt.Size
+Dim oLocControl as Object
+Dim oLocPeer as Object
+ oLabelModel = CreateUnoService(&quot;com.sun.star.form.component.FixedText&quot;)
+ oTBModel = CreateUnoService(&quot;com.sun.star.form.component.TextField&quot;)
+
+ Set oLabelShape = InsertControl(oDrawPage, oLabelModel, aPoint, aLabelSize)
+ Set oTBShape = InsertControl(oDrawPage, oTBModel, aPoint, aSize)
+
+ oLocPeer = oController.GetControl(oLabelModel).Peer
+ XPixelFactor = 100000/oLocPeer.GetInfo.PixelPerMeterX
+ YPixelFactor = 100000/oLocPeer.GetInfo.PixelPerMeterY
+ aLabelSize = GetPeerSize(oLabelModel, oLocControl, &quot;The quick brown fox...&quot;)
+ nTCHeight = (aLabelSize.Height+1) * YPixelFactor
+ aTBSize = GetPeerSize(oTBModel, oLocControl, &quot;The quick brown fox...&quot;)
+ nDBRefHeight = (aTBSize.Height+1) * YPixelFactor
+ BasicLabelDiffHeight = Clng((nDBRefHeight - nTCHeight)/2)
+ oDrawPage.Remove(oLabelShape)
+ oDrawPage.Remove(oTBShape)
+End Sub
+
+
+Sub ConfigurePageStyle()
+Dim aPageSize As New com.sun.star.awt.Size
+Dim aSize As New com.sun.star.awt.Size
+ oPageStyle.IsLandscape = True
+ aPageSize = oPageStyle.Size
+ nPageWidth = aPageSize.Width
+ nPageHeight = aPageSize.Height
+ aSize.Width = nPageHeight
+ aSize.Height = nPageWidth
+ oPageStyle.Size = aSize
+ nPageWidth = nPageHeight
+ nPageHeight = oPageStyle.Size.Height
+ nFormWidth = nPageWidth - oPageStyle.RightMargin - oPageStyle.LeftMargin - 2 * cXOffset
+ nFormHeight = nPageHeight - oPageStyle.TopMargin - oPageStyle.BottomMargin - 2 * cYOffset - cSymbolMargin
+End Sub
+
+
+&apos; Modify the Borders of the Controls
+Sub ChangeBorderLayouts(oEvent as Object)
+Dim oModel as Object
+Dim i as Integer
+Dim oCurModel as Object
+Dim sLocText as String
+Dim oGroupShape as Object
+Dim s as Integer
+ If Not bDebug Then
+ On Local Error GoTo WIZARDERROR
+ End If
+ oModel = oEvent.Source.Model
+ SwitchBorderMode(Val(Right(oModel.Name,1)))
+ ToggleLayoutPage(False)
+ If CurArrangement = cTabled Then
+ oGridModel.Border = CurBorderType
+ Else
+ If OldBorderType &lt;&gt; CurBorderType Then
+ For i = 0 To MaxIndex
+ If oDBShapeList(i).SupportsService(&quot;com.sun.star.drawing.GroupShape&quot;) Then
+ oGroupShape = oDBShapeList(i)
+ For s = 0 To oGroupShape.Count-1
+ oGroupShape(s).Control.Border = CurBorderType
+ Next s
+ Else
+ If oDBModelList(i).PropertySetInfo.HasPropertyByName(&quot;Border&quot;) Then
+ oDBModelList(i).Border = CurBorderType
+ End If
+ End If
+ Next i
+ End If
+ End If
+ ToggleLayoutPage(True)
+WIZARDERROR:
+ If Err &lt;&gt; 0 Then
+ Msgbox(sMsgErrMsg, 16, GetProductName())
+ Resume LOCERROR
+ LOCERROR:
+ DlgFormDB.Dispose()
+ End If
+End Sub
+
+
+Sub ChangeLabelAlignments(oEvent as Object)
+Dim i as Integer
+Dim oSize as New com.sun.star.awt.Size
+Dim oModel as Object
+ If Not bDebug Then
+ On Local Error GoTo WIZARDERROR
+ End If
+ oModel = oEvent.Source.Model
+ SwitchAlignMode(Val(Right(oModel.Name,1)))
+ ToggleLayoutPage(False)
+ If OldAlignMode &lt;&gt; CurAlignMode Then
+ For i = 0 To MaxIndex
+ oTCShapeList(i).GetControl.Align = CurAlignmode
+ Next i
+ End If
+ If CurAlignmode = com.sun.star.awt.TextAlign.RIGHT Then
+ For i = 0 To Ubound(oTCShapeList())
+ oSize = oTCShapeList(i).Size
+ oSize.Width = oDBShapeList(i).Position.X - oTCShapeList(i).Position.X - cHoriDistance
+ oTCShapeList(i).Size = oSize
+ Next i
+ End If
+
+WIZARDERROR:
+ If Err &lt;&gt; 0 Then
+ Msgbox(sMsgErrMsg, 16, GetProductName())
+ Resume LOCERROR
+ LOCERROR:
+ End If
+ ToggleLayoutPage(True)
+End Sub
+
+
+Sub ChangeArrangemode(oEvent as Object)
+Dim oModel as Object
+ If Not bDebug Then
+ On Local Error GoTo WIZARDERROR
+ End If
+ oModel = oEvent.Source.Model
+ SwitchArrangementButtons(Val(Right(oModel.Name,1)))
+ oModel.State = 1
+ DlgFormDB.GetControl(&quot;cmdArrange&quot; &amp; OldArrangement).Model.State = 0
+ If CurArrangement &lt;&gt; OldArrangement Then
+ ArrangeControls()
+ Select Case CurArrangement
+ Case cTabled
+ ToggleBorderGroup(False)
+ ToggleAlignGroup(False)
+ Case Else &apos; cColumnarTop,cLeftJustified, cTopJustified
+ ToggleAlignGroup(CurArrangement = cColumnarLeft)
+ If CurArrangement = cColumnarTop Then
+ If CurAlignMode = com.sun.star.awt.TextAlign.RIGHT Then
+ DialogModel.optAlign0.State = 1
+ CurAlignMode = com.sun.star.awt.TextAlign.LEFT
+ OldAlignMode = com.sun.star.awt.TextAlign.RIGHT
+ End If
+ End If
+ ControlCaptionstoStandardLayout()
+ oDBForm.Load
+ End Select
+ End If
+WIZARDERROR:
+ If Err &lt;&gt; 0 Then
+ Msgbox(sMsgErrMsg, 16, GetProductName())
+ Resume LOCERROR
+ LOCERROR:
+ End If
+End Sub
+
+
+Sub ToggleBorderGroup(bDoEnable as Boolean)
+ With DialogModel
+ .hlnBorderLayout.Enabled = bDoEnable
+ .optBorder0.Enabled = bDoEnable &apos; 0: No border
+ .optBorder1.Enabled = bDoEnable &apos; 1: 3D border
+ .optBorder2.Enabled = bDoEnable &apos; 2: simple border
+ End With
+End Sub
+
+
+Sub ToggleAlignGroup(ByVal bDoEnable as Boolean)
+ With DialogModel
+ If bDoEnable Then
+ bDoEnable = CurArrangement = cColumnarLeft
+ End If
+ .hlnAlign.Enabled = bDoEnable
+ .optAlign0.Enabled = bDoEnable
+ .optAlign2.Enabled = bDoEnable
+ End With
+End Sub
+
+
+Sub ToggleLayoutPage(bDoEnable as Boolean, Optional FocusControlName as String)
+ DialogModel.Enabled = bDoEnable
+ If bDoEnable Then
+ If Not bDebug Then
+ oDocument.UnlockControllers()
+ End If
+ ToggleOptionButtons(DialogModel,(bWithBackGraphic = True))
+ ToggleAlignGroup(bDoEnable)
+ ToggleBorderGroup(bDoEnable)
+ Else
+ If Not bDebug Then
+ oDocument.LockControllers()
+ End If
+ End If
+ If Not IsMissing(FocusControlName) Then
+ DlgFormDB.GetControl(FocusControlName).SetFocus()
+ End If
+End Sub
+
+
+Sub DestroyControlShapes(oDrawPage as Object)
+Dim i as Integer
+Dim oShape as Object
+ For i = oDrawPage.Count-1 To 0 Step -1
+ oShape = oDrawPage.GetByIndex(i)
+ If oShape.ShapeType = &quot;com.sun.star.drawing.ControlShape&quot; Then
+ oShape.Dispose()
+ End If
+ Next i
+End Sub
+
+
+Sub SwitchArrangementButtons(ByVal LocArrangement as Integer)
+ OldArrangement = CurArrangement
+ CurArrangement = LocArrangement
+ If OldArrangement &lt;&gt; 0 Then
+ DlgFormDB.GetControl(&quot;cmdArrange&quot; &amp; OldArrangement).Model.State = 0
+ End If
+ DlgFormDB.GetControl(&quot;cmdArrange&quot; &amp; CurArrangement).Model.State = 1
+End Sub
+
+
+Sub SwitchBorderMode(ByVal LocBorderType as Integer)
+ OldBorderType = CurBorderType
+ CurBorderType = LocBorderType
+End Sub
+
+
+Sub SwitchAlignMode(ByVal LocAlignMode as Integer)
+ OldAlignMode = CurAlignMode
+ CurAlignMode = LocAlignMode
+End Sub</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/FormWizard/develop.xba b/test/user-template/user/basic/FormWizard/develop.xba
new file mode 100644
index 000000000000..a12d1af37461
--- /dev/null
+++ b/test/user-template/user/basic/FormWizard/develop.xba
@@ -0,0 +1,533 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="develop" script:language="StarBasic">REM ***** BASIC *****
+Option Explicit
+
+Public oDBShapeList() as Object
+Public oTCShapeList() as Object
+Public oDBModelList() as Object
+Public oGroupShapeList() as Object
+
+Public oGridShape as Object
+Public a as Integer
+Public StartA as Integer
+Public bIsFirstRun as Boolean
+Public bIsVeryFirstRun as Boolean
+Public bControlsareCreated as Boolean
+Public nDBRefHeight as Long
+Public nXTCPos&amp;, nYTCPos&amp;, nXDBPos&amp;, nYDBPos&amp;, nTCHeight&amp;, nTCWidth&amp;, nDBHeight&amp;, nDBWidth&amp;
+
+Dim iReduceWidth as Integer
+
+Function PositionControls(Maxindex as Integer)
+Dim oTCModel as Object
+Dim oDBModel as Object
+Dim i as Integer
+ InitializePosSizes()
+ bIsFirstRun = True
+ bIsVeryFirstRun = True
+ a = 0
+ StartA = 0
+ nMaxRowY = 0
+ nSecMaxRowY = 0
+ If CurArrangement = cLeftJustified Or cTopJustified Then
+ DialogModel.optAlign0.State = 1
+ End If
+ For i = 0 To MaxIndex
+ GetCurrentMetaValues(i)
+ oTCModel = InsertTextControl(i)
+ If CurFieldType = com.sun.star.sdbc.DataType.TIMESTAMP Then
+ InsertTimeStampShape(i)
+ Else
+ InsertDBControl(i)
+ bIsVeryFirstRun = False
+ oDBModelList(i).LabelControl = oTCModel
+ End If
+ GetLabelDiffHeight(i+1)
+ ResetPosSizes(i)
+ oProgressbar.Value = i
+ Next i
+ ControlCaptionstoStandardLayout()
+ bControlsareCreated = True
+End Function
+
+
+Sub ResetPosSizes(LastIndex as Integer)
+ Select Case CurArrangement
+ Case cColumnarLeft
+ nYDBPos = nYDBPos + nDBHeight + cVertDistance
+ If (nYDBPos &gt; cYOffset + nFormHeight) Or (LastIndex = MaxIndex) Then
+ RepositionColumnarLeftControls(LastIndex)
+ nXTCPos = nMaxColRightX + 2 * cHoriDistance
+ nXDBPos = nXTCPos + cHoriDistance + nMaxTCWidth
+ nYDBPos = cYOffset
+ bIsFirstRun = True
+ StartA = LastIndex + 1
+ a = 0
+ Else
+ a = a + 1
+ End If
+ nYTCPos = nYDBPos + LABELDIFFHEIGHT
+ Case cColumnarTop
+ nYTCPos = nYDBPos + nDBHeight + cVertDistance
+ If nYTCPos &gt; cYOffset + nFormHeight Then
+ nXDBPos = nMaxColRightX + cHoriDistance
+ nXTCPos = nXDBPos
+ nYDBPos = cYOffset + nTCHeight + cVertDistance
+ nYTCPos = cYOffset
+ bIsFirstRun = True
+ StartA = LastIndex + 1
+ a = 0
+ Else
+ a = a + 1
+ End If
+ Case cLeftJustified,cTopJustified
+ If nMaxColRightX &gt; cXOffset + nFormWidth Then
+ Dim nOldYTCPos as Long
+ nOldYTCPos = nYTCPos
+ CheckJustifiedPosition()
+ Else
+ nXTCPos = nMaxColRightX + CHoriDistance
+ If CurArrangement = cLeftJustified Then
+ nYTCPos = nYDBPos + LabelDiffHeight
+ End If
+ End If
+ a = a + 1
+ End Select
+End Sub
+
+
+Sub RepositionColumnarLeftControls(LastIndex as Integer)
+Dim aSize As New com.sun.star.awt.Size
+Dim aPoint As New com.sun.star.awt.Point
+Dim i as Integer
+ aSize = GetSize(nMaxTCWidth, nTCHeight)
+ bIsFirstRun = True
+ For i = StartA To LastIndex
+ If i = StartA Then
+ nXTCPos = oTCShapeList(i).Position.X
+ nXDBPos = nXTCPos + nMaxTCWidth + cHoriDistance
+ End If
+ ResetDBShape(oDBShapeList(i), nXDBPos)
+ CheckOuterPoints(nXDBPos, nDBWidth, nYDBPos, nDBHeight, True)
+ Next i
+End Sub
+
+
+Sub ResetDBShape(oLocDBShape as Object, iXPos as Long)
+Dim aSize As New com.sun.star.awt.Size
+Dim aPoint As New com.sun.star.awt.Point
+ nYDBPos = oLocDBShape.Position.Y
+ nDBWidth = oLocDBShape.Size.Width
+ nDBHeight = oLocDBShape.Size.Height
+ aPoint = GetPoint(iXPos,nYDBPos)
+ oLocDBShape.SetPosition(aPoint)
+End Sub
+
+
+Sub InitializePosSizes()
+ nXTCPos = cXOffset
+ nTCWidth = 2000
+ nDBWidth = 2000
+ nDBHeight = nDBRefHeight
+ iReduceWidth = 0
+ Select Case CurArrangement
+ Case cColumnarLeft, cLeftJustified
+ GetLabelDiffHeight(0)
+ nYTCPos = cYOffset + LABELDIFFHEIGHT
+ nXDBPos = cXOffset + 3050
+ nYDBPos = cYOffset
+ Case cColumnarTop, cTopJustified
+ nXDBPos = cXOffset
+ nYTCPos = cYOffset
+ End Select
+End Sub
+
+
+Function InsertTextControl(i as Integer) as Object
+Dim oShape as Object
+Dim oModel as Object
+Dim aPoint as New com.sun.star.awt.Point
+Dim aSize As New com.sun.star.awt.Size
+ If bControlsareCreated Then
+ Set oShape = oTCShapeList(i)
+ Set oModel = oShape.GetControl
+ If CurArrangement = cLeftJustified Then
+ nTCWidth = GetPreferredWidth(oModel, True, CurFieldname)
+ Else
+ nTCWidth = oShape.Size.Width
+ End If
+ oShape.Position = GetPoint(nXTCPos, nYTCPos)
+ If CurArrangement = cColumnarTop Then
+ oModel.Align = com.sun.star.awt.TextAlign.LEFT
+ End If
+ Else
+ oModel = CreateUnoService(oModelService(cLabel))
+ aPoint = GetPoint(nXTCPos, nYTCPos)
+ aSize = GetSize(nTCWidth,nTCHeight)
+ Set oShape = InsertControl(oDrawPage, oModel, aPoint, aSize)
+ Set oTCShapeList(i)= oShape
+ If bIsVeryFirstRun Then
+ If CurArrangement = cColumnarTop Then
+ nYDBPos = nYTCPos + nTCHeight
+ End If
+ End If
+ nTCWidth = GetPreferredWidth(oModel, True, CurFieldName)
+ End If
+ If CurArrangement = cColumnarLeft Then
+ &apos; Note This If Sequence must be called before retrieving the outer Points
+ If bIsFirstRun Then
+ nMaxTCWidth = nTCWidth
+ bIsFirstRun = False
+ ElseIf nTCWidth &gt; nMaxTCWidth Then
+ nMaxTCWidth = nTCWidth
+ End If
+ End If
+ CheckOuterPoints(oShape.Position.X, nTCWidth, nYTCPos, nTCHeight, False)
+ Select Case CurArrangement
+ Case cLeftJustified
+ nXDBPos = nMaxColRightX
+ Case cColumnarTop,cTopJustified
+ oModel.Align = com.sun.star.awt.TextAlign.LEFT
+ nXDBPos = nXTCPos
+ nYDBPos = nYTCPos + nTCHeight
+ If CurFieldLength = 20 And nDBWidth &gt; 2 * nTCWidth Then
+ iReduceWidth = iReduceWidth + 1
+ End If
+ End Select
+ oShape.SetSize(GetSize(nTCWidth,nTCHeight))
+ If CurHelpText &lt;&gt; &quot;&quot; Then
+ oModel.HelpText = CurHelptext
+ End If
+ InsertTextControl = oModel
+End Function
+
+
+Sub InsertDBControl(i as Integer)
+Dim aPoint as New com.sun.star.awt.Point
+Dim aSize As New com.sun.star.awt.Size
+Dim oControl as Object
+Dim iColRightX as Long
+
+ aPoint = GetPoint(nXDBPos, nYDBPos)
+ If bControlsAreCreated Then
+ oDBShapeList(i).Position = aPoint
+ Else
+ oDBModelList(i) = CreateUnoService(oModelService(CurControlType))
+ oDBShapeList(i) = InsertControl(oDrawPage, oDBModelList(i), aPoint, aSize)
+ SetNumerics(oDBModelList(i), CurFieldType)
+ If CurControlType = cCheckBox Then
+ oDBModelList(i).Label = &quot;&quot;
+ End If
+ oDBModelList(i).DataField = CurFieldName
+ End If
+ nDBHeight = GetDBHeight(oDBModelList(i))
+ nDBWidth = GetPreferredWidth(oDBModelList(i),True)
+ aSize = GetSize(nDBWidth,nDBHeight)
+ oDBShapeList(i).SetSize(aSize)
+ CheckOuterPoints(nXDBPos, nDBWidth, nYDBPos, nDBHeight, True)
+End Sub
+
+
+Function InsertTimeStampShape(i as Integer) as Object
+Dim oDateModel as Object
+Dim oTimeModel as Object
+Dim oDateShape as Object
+Dim oTimeShape as Object
+Dim oDateTimeShape as Object
+Dim aPoint as New com.sun.star.awt.Point
+Dim aSize as New com.sun.star.awt.Size
+Dim nDateWidth as Long
+Dim nTimeWidth as Long
+Dim oGroupShape as Object
+ aPoint = GetPoint(nXDBPos, nYDBPos)
+ If bControlsAreCreated Then
+ oDBShapeList(i).Position = aPoint
+ nDBWidth = oDBShapeList(i).Size.Width
+ nDBHeight = oDBShapeList(i).Size.Height
+ Else
+ oGroupShape = oDocument.CreateInstance(&quot;com.sun.star.drawing.GroupShape&quot;)
+ oGroupShape.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PARAGRAPH
+ oDrawPage.Add(oGroupShape)
+ CurFieldType = com.sun.star.sdbc.DataType.DATE
+ oDateModel = CreateUnoService(&quot;com.sun.star.form.component.DateField&quot;)
+ oDateModel.DataField = CurFieldName
+ oDateShape = InsertControl(oGroupShape, oDateModel, aPoint, aSize)
+ SetNumerics(oDateModel, CurFieldType)
+ nDBHeight = GetDBHeight(oDateModel)
+ nDateWidth = GetPreferredWidth(oDateModel,True)
+ aSize = GetSize(nDateWidth,nDBHeight)
+ oDateShape.SetSize(aSize)
+
+ CurFieldType = com.sun.star.sdbc.DataType.TIME
+ oTimeModel = CreateUnoService(&quot;com.sun.star.form.component.TimeField&quot;)
+ oTimeModel.DataField = CurFieldName
+ oTimeShape = InsertControl(oGroupShape, oTimeModel, aPoint, aSize)
+ oTimeShape.Position = GetPoint(nXDBPos + 10 + nDateWidth,nYDBPos)
+ nTimeWidth = GetPreferredWidth(oTimeModel)
+ aSize = GetSize(nTimeWidth,nDBHeight)
+ oTimeShape.SetSize(aSize)
+ nDBWidth = nDateWidth + nTimeWidth + 10
+ oGroupShape.Position = aPoint
+ oGroupShape.Size = GetSize(nDBWidth, nDBHeight)
+ Set oDBShapeList(i)= oGroupShape
+ End If
+ CheckOuterPoints(nXDBPos, nDBWidth, nYDBPos, nDBHeight, True)
+ InsertTimeStampShape() = oDBShapeList(i)
+End Function
+
+
+&apos; Note: on all Controls except for the checkbox the Label has to be set
+&apos; a bit under the DBControl because its Height is also smaller
+Sub GetLabelDiffHeight(Index as Integer)
+ If (CurArrangement = cLeftJustified) Or (CurArrangement = cColumnarLeft) Then
+ If Index &lt;= Ubound(FieldMetaValues()) Then
+ If FieldMetaValues(Index,2) = cCheckBox Then
+ LabelDiffHeight = 0
+ Else
+ LabelDiffHeight = BasicLabelDiffHeight
+ End If
+ End If
+ End If
+End Sub
+
+
+Sub CheckJustifiedPosition()
+Dim nLeftDist as Long
+Dim nRightDist as Long
+Dim oLocDBShape as Object
+Dim oLocTextShape as Object
+Dim nBaseWidth as Long
+ nBaseWidth = nFormWidth + cXOffset
+ nLeftDist = nMaxColRightX - nBaseWidth
+ nRightDist = nBaseWidth - nXTCPos + cHoriDistance
+ If nLeftDist &lt; 0.5 * nRightDist and iReduceWidth &gt; 2 Then
+ &apos; Fieldwidths in the line can be made smaller
+ AdjustLineWidth(StartA, a, nLeftDist, - 1)
+ If CurArrangement = cLeftjustified Then
+ nYDBPos = nMaxRowY + cVertDistance
+ nYTCPos = nYDBPos + LABELDIFFHEIGHT
+ nXTCPos = cXOffset
+ Else
+ nYTCPos = nMaxRowY + cVertDistance
+ nYDBPos = nYTCPos + nTCHeight
+ nXTCPos = cXOffset
+ nXDBPos = cXOffset
+ End If
+ bIsFirstRun = True
+ StartA = a + 1
+ Else
+ Set oLocDBShape = oDBShapeList(a)
+ Set oLocTextShape = oTCShapeList(a)
+ If CurArrangement = cLeftJustified Then
+ If nYDBPos + nDBHeight = nMaxRowY Then
+ &apos; The last Control was the highes in the row
+ nYDBPos = nSecMaxRowY + cVertDistance
+ Else
+ nYDBPos = nMaxRowY + cVertDistance
+ End If
+ nYTCPos = nYDBPos + LABELDIFFHEIGHT
+ nXDBPos = cXOffset + nTCWidth
+ oLocTextShape.Position = GetPoint(cXOffset, nYTCPos)
+ oLocDBShape.Position = GetPoint(nXDBPos, nYDBPos)
+ &apos; PosSizes for the next two Controls
+ nXTCPos = oLocDBShape.Position.X + oLocDBShape.Size.Width + cHoriDistance
+ bIsFirstRun = True
+ CheckOuterPoints(nXDBPos, nDBWidth, nYDBPos, nDBHeight, True)
+ nXDBPos = nMaxColRightX + cHoriDistance
+ Else &apos; cTopJustified
+ If nYDBPos + nDBHeight = nMaxRowY Then
+ &apos; The last Control was the highest in the row
+ nYTCPos = nSecMaxRowY + cVertDistance
+ Else
+ nYTCPos = nMaxRowY + cVertDistance
+ End If
+ nYDBPos = nYTCPOS + nTCHeight
+ nXDBPos = cXOffset
+ nXTCPos = cXOffset
+ oLocTextShape.Position = GetPoint(cXOffset, nYTCPos)
+ oLocDBShape.Position = GetPoint(cXOffset, nYDBPos)
+ bIsFirstRun = True
+ If nDBWidth &gt; nTCWidth Then
+ CheckOuterPoints(nXDBPos, nDBWidth, nYDBPos, nDBHeight, True)
+ Else
+ CheckOuterPoints(nXDBPos, nTCWidth, nYDBPos, nDBHeight, True)
+ End If
+ nXTCPos = nMaxColRightX + cHoriDistance
+ nXDBPos = nXTCPos
+ End If
+ AdjustLineWidth(StartA, a-1, nRightDist, 1)
+ StartA = a
+ End If
+ iReduceWidth = 0
+End Sub
+
+
+
+Function GetCorrWidth(StartIndex as Integer, EndIndex as Integer, nDist as Long, Widthfactor as Integer) as Integer
+Dim ShapeCount as Integer
+ If WidthFactor &gt; 0 Then
+ ShapeCount = EndIndex-StartIndex + 1
+ Else
+ ShapeCount = iReduceWidth
+ End If
+ GetCorrWidth() = (nDist)/ShapeCount
+End Function
+
+
+Sub AdjustLineWidth(StartIndex as Integer, EndIndex as Integer, nDist as Long, Widthfactor as Integer)
+Dim i as Integer
+Dim oLocDBShape as Object
+Dim oLocTCShape as Object
+Dim CorrWidth as Integer
+Dim bAdjustPos as Boolean
+Dim iLocTCPosX as Long
+Dim iLocDBPosX as Long
+ CorrWidth = GetCorrWidth(StartIndex, EndIndex, nDist, Widthfactor)
+ bAdjustPos = False
+ iLocTCPosX = cXOffset
+ For i = StartIndex To EndIndex
+ Set oLocDBShape = oDBShapeList(i)
+ Set oLocTCShape = oTCShapeList(i)
+ If bAdjustPos Then
+ oLocTCShape.Position = GetPoint(iLocTCPosX, oLocTCShape.Position.Y)
+ If CurArrangement = cLeftJustified Then
+ iLocDBPosX = oLocTCShape.Position.X + oLocTCShape.Size.Width
+ oLocDBShape.Position = GetPoint(iLocDBPosX, oLocDBShape.Position.Y)
+ Else
+ oLocDBShape.Position = GetPoint(iLocTCPosX, oLocTCShape.Position.Y + nTCHeight)
+ End If
+ Else
+ bAdjustPos = True
+ End If
+ If CDbl(FieldMetaValues(i,1)) &gt; 20 or WidthFactor &gt; 0 Then
+ If (CurArrangement = cTopJustified) And (oLocTCShape.Size.Width &gt; oLocDBShape.Size.Width) Then
+ oLocDBShape.Size = GetSize(oLocTCShape.Size.Width + WidthFactor * CorrWidth, oLocDBShape.Size.Height)
+ Else
+ oLocDBShape.Size = GetSize(oLocDBShape.Size.Width + WidthFactor * CorrWidth, oLocDBShape.Size.Height)
+ End If
+ End If
+ iLocTCPosX = oLocDBShape.Position.X + oLocDBShape.Size.Width + cHoriDistance
+ If CurArrangement = cTopJustified Then
+ If oLocTCShape.Size.Width &gt; oLocDBShape.Size.Width Then
+ iLocTCPosX = oLocDBShape.Position.X + oLocTCShape.Size.Width + cHoriDistance
+ End If
+ End If
+ Next i
+End Sub
+
+
+Sub CheckOuterPoints(nXPos, nWidth, nYPos, nHeight, bIsDBField as Boolean)
+Dim nColRightX as Long
+Dim nRowY as Long
+Dim nOldMaxRowY as Long
+ If CurArrangement = cLeftJustified Or CurArrangement = cTopJustified Then
+ If bIsDBField Then
+ &apos; Only at DBControls you can measure the Value of nMaxRowY
+ If bIsFirstRun Then
+ nMaxRowY = nYPos + nHeight
+ nSecMaxRowY = nMaxRowY
+ Else
+ nRowY = nYPos + nHeight
+ If nRowY &gt;= nMaxRowY Then
+ nOldMaxRowY = nMaxRowY
+ nSecMaxRowY = nOldMaxRowY
+ nMaxRowY = nRowY
+ End If
+ End If
+ End If
+ End If
+ &apos; Find the outer right point
+ If bIsFirstRun Then
+ nMaxColRightX = nXPos + nWidth
+ bIsFirstRun = False
+ Else
+ nColRightX = nXPos + nWidth
+ If nColRightX &gt; nMaxColRightX Then
+ nMaxColRightX = nColRightX
+ End If
+ End If
+End Sub
+
+
+Function PositionGridControl(MaxIndex as Integer)
+Dim oControl as Object
+Dim n as Integer
+Dim oColumn as Object
+Dim aPoint as New com.sun.star.awt.Point
+Dim aSize as New com.sun.star.awt.Size
+ If bControlsareCreated Then
+ ShapesToNirwana()
+ End If
+ oGridModel = CreateUnoService(oModelService(cGridControl))
+ oGridModel.Name = &quot;Grid1&quot;
+ aPoint = GetPoint(cXOffset, cYOffset)
+ aSize = GetSize(nFormWidth, nFormHeight)
+ oDBForm.InsertByName (oGridModel.Name, oGridModel)
+ oGridShape = InsertControl(oDrawPage, oGridModel, aPoint, aSize)
+ For n = 0 to MaxIndex
+ GetCurrentMetaValues(n)
+ If CurFieldType = com.sun.star.sdbc.DataType.TIMESTAMP Then
+ oColumn = SetupGridColumn(oGridModel,&quot;DateField&quot;, False, com.sun.star.sdbc.DataType.DATE, CurFieldName &amp; &quot; &quot; &amp; sDateAppendix)
+ oColumn = SetupGridColumn(oGridModel,&quot;TimeField&quot;, False, com.sun.star.sdbc.DataType.TIME, CurFieldName &amp; &quot; &quot; &amp; sTimeAppendix)
+ Else
+ If CurControlType = cImageControl Then
+ oColumn = SetupGridColumn(oGridModel,&quot;TextField&quot;, True, CurFieldType, CurFieldName)
+ Else
+ oColumn = SetupGridColumn(oGridModel, CurControlName, False, CurFieldType, CurFieldName)
+ End If
+ End If
+ oProgressbar.Value = n
+ next n
+End Function
+
+
+Function SetupGridColumn(oGridModel as Object, ControlName as String, bHidden as Boolean, iLocFieldType as Integer, ColName as String) as Object
+Dim oColumn as Object
+ CurControlName = ControlName
+ oColumn = oGridModel.CreateColumn(CurControlName)
+ oColumn.Name = CalcUniqueContentName(oGridModel, CurControlName)
+ oColumn.Hidden = bHidden
+ SetNumerics(oColumn, iLocFieldType)
+ oColumn.DataField = CurFieldName
+ oColumn.Label = ColName
+ oColumn.Width = 0 &apos; Width of column is adjusted to Columname
+ oGridModel.insertByName(oColumn.Name, oColumn)
+End Function
+
+
+Sub ControlCaptionstoStandardLayout()
+Dim i as Integer
+Dim iBorderType as Integer
+Dim oCurModel as Object
+Dim oStyle as Object
+Dim iStandardColor as Long
+ If CurArrangement &lt;&gt; cTabled Then
+ oStyle = oDocument.StyleFamilies.GetByName(&quot;ParagraphStyles&quot;).GetByName(&quot;Standard&quot;)
+ iStandardColor = oStyle.CharColor
+ For i = 0 To MaxIndex
+ oCurModel = oTCShapeList(i).GetControl
+ If i = 0 Then
+ If oCurModel.TextColor = iStandardColor Then
+ Exit Sub
+ End If
+ End If
+ oCurModel.TextColor = iStandardColor
+ Next i
+ End If
+End Sub
+
+
+Sub GroupShapesTogether()
+Dim i as Integer
+ If CurArrangement &lt;&gt; cTabled Then
+ For i = 0 To MaxIndex
+ oGroupShapeList(i) = CreateUnoService(&quot;com.sun.star.drawing.ShapeCollection&quot;)
+ oGroupShapeList(i).Add(oTCShapeList(i))
+ oGroupShapeList(i).Add(oDBShapeList(i))
+ oDrawPage.Group(oGroupShapeList(i))
+ Next i
+ Else
+ RemoveNirwanaShapes()
+ End If
+End Sub</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/FormWizard/dialog.xlb b/test/user-template/user/basic/FormWizard/dialog.xlb
new file mode 100644
index 000000000000..d680f29292e8
--- /dev/null
+++ b/test/user-template/user/basic/FormWizard/dialog.xlb
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="FormWizard" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="DlgFormDB"/>
+</library:library>
diff --git a/test/user-template/user/basic/FormWizard/script.xlb b/test/user-template/user/basic/FormWizard/script.xlb
new file mode 100644
index 000000000000..0b79b7f078ba
--- /dev/null
+++ b/test/user-template/user/basic/FormWizard/script.xlb
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="FormWizard" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="FormWizard"/>
+ <library:element library:name="Layouter"/>
+ <library:element library:name="Language"/>
+ <library:element library:name="DBMeta"/>
+ <library:element library:name="tools"/>
+ <library:element library:name="develop"/>
+</library:library>
diff --git a/test/user-template/user/basic/FormWizard/tools.xba b/test/user-template/user/basic/FormWizard/tools.xba
new file mode 100644
index 000000000000..8b40b8379c10
--- /dev/null
+++ b/test/user-template/user/basic/FormWizard/tools.xba
@@ -0,0 +1,349 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="tools" script:language="StarBasic">REM ***** BASIC *****
+Option Explicit
+Public Const SBMAXTEXTSIZE = 50
+
+
+Function SetProgressValue(iValue as Integer)
+ If iValue = 0 Then
+ oProgressbar.End
+ End If
+ ProgressValue = iValue
+ oProgressbar.Value = iValue
+End Function
+
+
+Function GetPreferredWidth(oModel as Object, bGetMaxWidth as Boolean, Optional LocText)
+Dim aPeerSize as new com.sun.star.awt.Size
+Dim nWidth as Integer
+Dim oControl as Object
+ If Not IsMissing(LocText) Then
+ &apos; Label
+ aPeerSize = GetPeerSize(oModel, oControl, LocText)
+ ElseIf CurControlType = cImageControl Then
+ GetPreferredWidth() = 2000
+ Exit Function
+ Else
+ aPeerSize = GetPeerSize(oModel, oControl)
+ End If
+ nWidth = aPeerSize.Width
+ &apos; We increase the preferred Width a bit so that the control does not become too small
+ &apos; when we change the border from &quot;3D&quot; to &quot;Flat&quot;
+ GetPreferredWidth = (nWidth + 10) * XPixelFactor &apos; PixelTo100thmm(nWidth)
+End Function
+
+
+Function GetPreferredHeight(oModel as Object, Optional LocText)
+Dim aPeerSize as new com.sun.star.awt.Size
+Dim nHeight as Integer
+Dim oControl as Object
+ If Not IsMissing(LocText) Then
+ &apos; Label
+ aPeerSize = GetPeerSize(oModel, oControl, LocText)
+ ElseIf CurControlType = cImageControl Then
+ GetPreferredHeight() = 2000
+ Exit Function
+ Else
+ aPeerSize = GetPeerSize(oModel, oControl)
+ End If
+ nHeight = aPeerSize.Height
+ &apos; We increase the preferred Height a bit so that the control does not become too small
+ &apos; when we change the border from &quot;3D&quot; to &quot;Flat&quot;
+ GetPreferredHeight = (nHeight+1) * YPixelFactor &apos; PixelTo100thmm(nHeight)
+End Function
+
+
+Function GetPeerSize(oModel as Object, oControl as Object, Optional LocText)
+Dim oPeer as Object
+Dim aPeerSize as new com.sun.star.awt.Size
+Dim NullValue
+ oControl = oController.GetControl(oModel)
+ oPeer = oControl.GetPeer()
+ If oControl.Model.PropertySetInfo.HasPropertybyName(&quot;EffectiveMax&quot;) Then
+ If oControl.Model.EffectiveMax = 0 Then
+ &apos; This is relevant for decimal fields
+ oControl.Model.EffectiveValue = 999.9999
+ Else
+ oControl.Model.EffectiveValue = oControl.Model.EffectiveMax
+ End If
+ GetPeerSize() = oPeer.PreferredSize()
+ oControl.Model.EffectiveValue = NullValue
+ ElseIf Not IsMissing(LocText) Then
+ oControl.Text = LocText
+ GetPeerSize() = oPeer.PreferredSize()
+ ElseIf CurFieldType = com.sun.star.sdbc.DataType.BIT Then
+ GetPeerSize() = oPeer.PreferredSize()
+ ElseIf CurFieldType = com.sun.star.sdbc.DataType.BOOLEAN Then
+ GetPeerSize() = oPeer.PreferredSize()
+ ElseIf CurFieldType = com.sun.star.sdbc.DataType.DATE Then
+ oControl.Model.Date = Date
+ GetPeerSize() = oPeer.PreferredSize()
+ oControl.Model.Date = NullValue
+ ElseIf CurFieldType = com.sun.star.sdbc.DataType.TIME Then
+ oControl.Time = Time
+ GetPeerSize() = oPeer.PreferredSize()
+ oControl.Time = NullValue
+ Else
+ If oControl.MaxTextLen &gt; SBMAXTEXTSIZE Then
+ oControl.Text = Mid(SBSIZETEXT,1, SBMAXTEXTSIZE)
+ Else
+ oControl.Text = Mid(SBSIZETEXT,1, oControl.MaxTextLen)
+ End If
+ GetPeerSize() = oPeer.PreferredSize()
+ oControl.Text = &quot;&quot;
+ End If
+End Function
+
+
+Function TwipToCM(BYVAL nValue as long) as String
+ TwipToCM = trim(str(nValue / 567)) + &quot;cm&quot;
+End function
+
+
+Function TwipTo100telMM(BYVAL nValue as long) as long
+ TwipTo100telMM = nValue / 0.567
+End function
+
+
+Function TwipToPixel(BYVAL nValue as long) as long &apos; not an exact calculation
+ TwipToPixel = nValue / 15
+End function
+
+
+Function PixelTo100thMMX(oControl as Object) as long
+ oPeer = oControl.GetPeer()
+ PixelTo100mmX = Clng(Peer.GetInfo.PixelPerMeterX/100000)
+
+&apos; PixelTo100thMM = nValue * 28 &apos; not an exact calculation
+End function
+
+
+Function PixelTo100thMMY(oControl as Object) as long
+ oPeer = oControl.GetPeer()
+ PixelTo100mmX = Clng(Peer.GetInfo.PixelPerMeterY/100000)
+
+&apos; PixelTo100thMM = nValue * 28 &apos; not an exact calculation
+End function
+
+
+Function GetPoint(xPos, YPos) as New com.sun.star.awt.Point
+Dim aPoint as New com.sun.star.awt.Point
+ aPoint.X = xPos
+ aPoint.Y = yPos
+ GetPoint() = aPoint
+End Function
+
+
+Function GetSize(iWidth, iHeight) As New com.sun.star.awt.Size
+Dim aSize As New com.sun.star.awt.Size
+ aSize.Width = iWidth
+ aSize.Height = iHeight
+ GetSize() = aSize
+End Function
+
+
+Sub ImportStyles()
+Dim OldIndex as Integer
+ If Not bDebug Then
+ On Local Error GoTo WIZARDERROR
+ End If
+ OldIndex = CurIndex
+ CurIndex = GetCurIndex(DialogModel.lstStyles, Styles(),8)
+ If CurIndex &lt;&gt; OldIndex Then
+ ToggleLayoutPage(False)
+ Dim sImportPath as String
+ sImportPath = Styles(CurIndex, 8)
+ bWithBackGraphic = LoadNewStyles(oDocument, DialogModel, CurIndex, sImportPath, Styles(), TexturePath)
+ ControlCaptionsToStandardLayout()
+ ToggleLayoutPage(True, &quot;lstStyles&quot;)
+ End If
+WIZARDERROR:
+ If Err &lt;&gt; 0 Then
+ Msgbox(sMsgErrMsg, 16, GetProductName())
+ Resume LOCERROR
+ LOCERROR:
+ End If
+End Sub
+
+
+
+Function SetNumerics(ByVal oLocObject as Object, iLocFieldType as Integer) as Object
+ If CurControlType = cNumericBox Then
+ oLocObject.TreatAsNumber = True
+ Select Case iLocFieldType
+ Case com.sun.star.sdbc.DataType.BIGINT
+ oLocObject.EffectiveMax = 2147483647 * 2147483647
+ oLocObject.EffectiveMin = -(-2147483648 * -2147483648)
+&apos; oLocObject.DecimalAccuracy = 0
+ Case com.sun.star.sdbc.DataType.INTEGER
+ oLocObject.EffectiveMax = 2147483647
+ oLocObject.EffectiveMin = -2147483648
+ Case com.sun.star.sdbc.DataType.SMALLINT
+ oLocObject.EffectiveMax = 32767
+ oLocObject.EffectiveMin = -32768
+ Case com.sun.star.sdbc.DataType.TINYINT
+ oLocObject.EffectiveMax = 127
+ oLocObject.EffectiveMin = -128
+ Case com.sun.star.sdbc.DataType.FLOAT, com.sun.star.sdbc.DataType.REAL, com.sun.star.sdbc.DataType.DOUBLE, com.sun.star.sdbc.DataType.DECIMAL, com.sun.star.sdbc.DataType.NUMERIC
+&apos;Todo: oLocObject.DecimalAccuracy = ...
+ oLocObject.EffectiveDefault = CurDefaultValue
+&apos; Todo: HelpText???
+ End Select
+ If oLocObject.PropertySetinfo.HasPropertyByName(&quot;Width&quot;)Then &apos; Note: an Access AutoincrementField does not provide this property Width
+ oLocObject.Width = CurFieldLength + CurScale + 1
+ End If
+ If CurIsCurrency Then
+&apos;Todo: How do you set currencies?
+ End If
+ ElseIf CurControlType = cTextBox Then &apos;com.sun.star.sdbc.DataType.CHAR, com.sun.star.sdbc.DataType.VARCHAR, com.sun.star.sdbc.DataType.LONGVARCHAR
+ If CurFieldLength = 0 Then &apos;Or oLocObject.MaxTextLen &gt; SBMAXTEXTSIZE
+ oLocObject.MaxTextLen = SBMAXTEXTSIZE
+ CurFieldLength = SBMAXTEXTSIZE
+ Else
+ oLocObject.MaxTextLen = CurFieldLength
+ End If
+ oLocObject.DefaultText = CurDefaultValue
+ ElseIf CurControlType = cDateBox Then
+&apos; Todo Why does this not work?: oLocObject.DefaultDate = CurDefaultValue
+ ElseIf CurControlType = cTimeBox Then &apos; com.sun.star.sdbc.DataType.DATE, com.sun.star.sdbc.DataType.TIME
+ oLocObject.DefaultTime = CurDefaultValue
+&apos; Todo: Property TimeFormat? frome where?
+ ElseIf CurControlType = cCheckBox Then
+&apos; Todo Why does this not work?: oLocObject.DefautState = CurDefaultValue
+ End If
+ If oLocObject.PropertySetInfo.HasPropertybyName(&quot;FormatKey&quot;) Then
+ On Local Error Resume Next
+ oLocObject.FormatKey = CurFormatKey
+ End If
+End Function
+
+
+&apos; Destroy all Shapes in Nirwana
+Sub RemoveShapes()
+Dim n as Integer
+Dim oControl as Object
+Dim oShape as Object
+ For n = oDrawPage.Count-1 To 0 Step -1
+ oShape = oDrawPage(n)
+ If oShape.Position.Y &gt; -2000 Then
+ oDrawPage.Remove(oShape)
+ End If
+ Next n
+End Sub
+
+
+&apos; Destroy all Shapes in Nirwana
+Sub RemoveNirwanaShapes()
+Dim n as Integer
+Dim oControl as Object
+Dim oShape as Object
+ For n = oDrawPage.Count-1 To 0 Step -1
+ oShape = oDrawPage(n)
+ If oShape.Position.Y &lt; -2000 Then
+ oDrawPage.Remove(oShape)
+ End If
+ Next n
+End Sub
+
+
+
+&apos; Note: as Shapes cannot be removed from the DrawPage without destroying
+&apos; the object we have to park them somewhere beyond the visible area of the page
+Sub ShapesToNirwana()
+Dim n as Integer
+Dim oControl as Object
+ For n = 0 To oDrawPage.Count-1
+ oDrawPage(n).Position = GetPoint(-20, -10000)
+ Next n
+End Sub
+
+
+Function CalcUniqueContentName(BYVAL oContainer as Object, sBaseName as String) as String
+
+Dim nPostfix as Integer
+Dim sReturn as String
+ nPostfix = 2
+ sReturn = sBaseName
+ while (oContainer.hasByName(sReturn))
+ sReturn = sBaseName &amp; nPostfix
+ nPostfix = nPostfix + 1
+ Wend
+ CalcUniqueContentName = sReturn
+End Function
+
+
+Function CountItemsInArray(BigArray(), SearchItem)
+Dim i as Integer
+Dim MaxIndex as Integer
+Dim ResCount as Integer
+ ResCount = 0
+ MaxIndex = Ubound(BigArray())
+ For i = 0 To MaxIndex
+ If SearchItem = BigArray(i) Then
+ ResCount = ResCount + 1
+ End If
+ Next i
+ CountItemsInArray() = ResCount
+End Function
+
+
+Function GetDBHeight(oDBModel as Object)
+ If CurControlType = cImageControl Then
+ nDBHeight = 2000
+ Else
+ If CurFieldType = com.sun.star.sdbc.DataType.LONGVARCHAR Then
+ oDBModel.MultiLine = True
+ nDBHeight = nDBRefHeight * 4
+ Else
+ nDBHeight = nDBRefHeight
+ End If
+ End If
+ GetDBHeight() = nDBHeight
+End Function
+
+
+Function GetFormWizardPaths() as Boolean
+ FormPath = GetOfficeSubPath(&quot;Template&quot;,&quot;../wizard/bitmap&quot;)
+ If FormPath &lt;&gt; &quot;&quot; Then
+ WebWizardPath = GetOfficeSubPath(&quot;Template&quot;,&quot;wizard/web&quot;)
+ If WebWizardPath &lt;&gt; &quot;&quot; Then
+ WizardPath = GetOfficeSubPath(&quot;Template&quot;,&quot;wizard/&quot;)
+ If Wizardpath &lt;&gt; &quot;&quot; Then
+ TexturePath = GetOfficeSubPath(&quot;Gallery&quot;, &quot;www-back/&quot;)
+ If TexturePath &lt;&gt; &quot;&quot; Then
+ WorkPath = GetPathSettings(&quot;Work&quot;)
+ If WorkPath &lt;&gt; &quot;&quot; Then
+ TempPath = GetPathSettings(&quot;Temp&quot;)
+ If TempPath &lt;&gt; &quot;&quot; Then
+ GetFormWizardPaths = True
+ Exit Function
+ End If
+ End If
+ End If
+ End If
+ End If
+ End If
+ DisposeDocument(oDocument)
+ GetFormWizardPaths() = False
+End Function
+
+
+Function GetFilterName(sApplicationKey as String) as String
+Dim oArgs()
+Dim oFactory
+Dim i as Integer
+Dim Maxindex as Integer
+Dim UIName as String
+ oFactory = createUnoService(&quot;com.sun.star.document.FilterFactory&quot;)
+ oArgs() = oFactory.getByName(sApplicationKey)
+ MaxIndex = Ubound(oArgs())
+ For i = 0 to MaxIndex
+ If (oArgs(i).Name=&quot;UIName&quot;) Then
+ UIName = oArgs(i).Value
+ Exit For
+ End If
+ next i
+ GetFilterName() = UIName
+End Function
+</script:module>
diff --git a/test/user-template/user/basic/Gimmicks/AutoText.xba b/test/user-template/user/basic/Gimmicks/AutoText.xba
new file mode 100644
index 000000000000..5d3cc18e5e13
--- /dev/null
+++ b/test/user-template/user/basic/Gimmicks/AutoText.xba
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="AutoText" script:language="StarBasic">&apos; BASIC
+Option Explicit
+Dim oDocument as Object
+Dim sDocumentTitle as String
+
+
+Sub Main()
+Dim oTable as Object
+Dim oRows as Object
+Dim oDocuText as Object
+Dim oAutoTextCursor as Object
+Dim oAutoTextContainer as Object
+Dim oAutogroup as Object
+Dim oAutoText as Object
+Dim oCharStyles as Object
+Dim oContentStyle as Object
+Dim oHeaderStyle as Object
+Dim oGroupTitleStyle as Object
+Dim n, m, iAutoCount as Integer
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ sDocumentTitle = &quot;Installed AutoTexts&quot;
+
+ &apos; Open a new empty document
+ oDocument = CreateNewDocument(&quot;swriter&quot;)
+ If Not IsNull(oDocument) Then
+ oDocument.DocumentProperties.Title = sDocumentTitle
+ oDocuText = oDocument.Text
+
+ &apos; Create The Character-templates
+ oCharStyles = oDocument.StyleFamilies.GetByName(&quot;CharacterStyles&quot;)
+
+ &apos; The Characterstyle for the Header that describes the Title of Autotextgroups
+ oGroupTitleStyle = oDocument.createInstance(&quot;com.sun.star.style.CharacterStyle&quot;)
+ oCharStyles.InsertbyName(&quot;AutoTextGroupTitle&quot;, oGroupTitleStyle)
+
+ oGroupTitleStyle.CharWeight = com.sun.star.awt.FontWeight.BOLD
+ oGroupTitleStyle.CharHeight = 14
+
+ &apos; The Characterstyle for the Header that describes the Title of Autotextgroups
+ oHeaderStyle = oDocument.createInstance(&quot;com.sun.star.style.CharacterStyle&quot;)
+ oCharStyles.InsertbyName(&quot;AutoTextHeading&quot;, oHeaderStyle)
+ oHeaderStyle.CharWeight = com.sun.star.awt.FontWeight.BOLD
+
+ &apos; &quot;Ordinary&quot; Table Content
+ oContentStyle = oDocument.createInstance(&quot;com.sun.star.style.CharacterStyle&quot;)
+ oCharStyles.InsertbyName(&quot;TableContent&quot;, oContentStyle)
+
+ oAutoTextContainer = CreateUnoService(&quot;com.sun.star.text.AutoTextContainer&quot;)
+
+ oAutoTextCursor = oDocuText.CreateTextCursor()
+
+ oAutoTextCursor.CharStyleName = &quot;AutoTextGroupTitle&quot;
+ &apos; Link the Title with the following table
+ oAutoTextCursor.ParaKeepTogether = True
+
+ For n = 0 To oAutoTextContainer.Count - 1
+ oAutoGroup = oAutoTextContainer.GetByIndex(n)
+
+ oAutoTextCursor.SetString(oAutoGroup.Title)
+ oAutoTextCursor.CollapseToEnd()
+ oDocuText.insertControlCharacter(oAutoTextCursor,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
+ oTable = oDocument.CreateInstance(&quot;com.sun.star.text.TextTable&quot;)
+ &apos; Divide the table if necessary
+ oTable.Split = True
+&apos; oTable.KeepTogether = False
+ oTable.RepeatHeadLine = True
+ oAutoTextCursor.Text.InsertTextContent(oAutoTextCursor,oTable,False)
+ InsertStringToCell(&quot;AutoText Name&quot;,oTable.GetCellbyPosition(0,0), &quot;AutoTextHeading&quot;)
+ InsertStringToCell(&quot;AutoText Shortcut&quot;,oTable.GetCellbyPosition(1,0), &quot;AutoTextHeading&quot;)
+ &apos; Insert one row at the bottom of the table
+ oRows = oTable.Rows
+ iAutoCount = oAutoGroup.Count
+ For m = 0 To iAutoCount-1
+ &apos; Insert the name and the title of all Autotexts
+ oAutoText = oAutoGroup.GetByIndex(m)
+ InsertStringToCell(oAutoGroup.Titles(m), oTable.GetCellbyPosition(0, m + 1), &quot;TableContent&quot;)
+ InsertStringToCell(oAutoGroup.ElementNames(m), oTable.GetCellbyPosition(1, m + 1), &quot;TableContent&quot;)
+ If m &lt; iAutoCount-1 Then
+ oRows.InsertbyIndex(m + 2,1)
+ End If
+ Next m
+ oDocuText.insertControlCharacter(oAutoTextCursor,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
+ oAutoTextCursor.CollapseToEnd()
+ Next n
+ End If
+End Sub
+
+
+Sub InsertStringToCell(sCellString as String, oCell as Object, sCellStyle as String)
+Dim oCellCursor as Object
+ oCellCursor = oCell.CreateTextCursor()
+ oCellCursor.CharStyleName = sCellStyle
+ oCell.Text.insertString(oCellCursor,sCellString,False)
+ oDocument.CurrentController.Select(oCellCursor)
+End Sub</script:module>
diff --git a/test/user-template/user/basic/Gimmicks/ChangeAllChars.xba b/test/user-template/user/basic/Gimmicks/ChangeAllChars.xba
new file mode 100644
index 000000000000..aa0abaa1cca8
--- /dev/null
+++ b/test/user-template/user/basic/Gimmicks/ChangeAllChars.xba
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="ChangeAllChars" script:language="StarBasic">&apos; This macro replaces all characters in a writer-documet through &quot;x&quot; or &quot;X&quot; signs.
+&apos; It works on the currently activated document.
+Private const UPPERREPLACECHAR = &quot;X&quot;
+Private const LOWERREPLACECHAR = &quot;x&quot;
+
+Private MSGBOXTITLE
+Private NOTSAVEDTEXT
+Private WARNING
+
+Sub ChangeAllChars &apos; Change all chars in the active document
+Dim oSheets, oPages as Object
+Dim i as Integer
+Const MBYES = 6
+Const MBABORT = 2
+Const MBNO = 7
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ MSGBOXTITLE = &quot;Change All Characters to an &apos;&quot; &amp; UPPERREPLACECHAR &amp; &quot;&apos;&quot;
+ NOTSAVEDTEXT = &quot;This document has already been modified: All characters will be changed to an &quot; &amp; UPPERREPLACECHAR &amp; &quot;&apos;. Should the document be saved now?&quot;
+ WARNING = &quot;This macro changes all characters and numbers to an &apos;&quot; &amp; UPPERREPLACECHAR &amp; &quot;&apos; in this document.&quot;
+
+ On Local Error GoTo NODOCUMENT
+ oDocument = StarDesktop.ActiveFrame.Controller.Model
+ NODOCUMENT:
+ If Err &lt;&gt; 0 Then
+ Msgbox(WARNING &amp; chr(13) &amp; &quot;First, activate a Writer document.&quot; , 16, GetProductName())
+ Exit Sub
+ End If
+ On Local Error Goto 0
+
+ sDocType = GetDocumentType(oDocument)
+
+ If oDocument.IsModified And oDocument.Url &lt;&gt; &quot;&quot; Then
+ Status = MsgBox(NOTSAVEDTEXT, 3+32, MSGBOXTITLE)
+ Select Case Status
+ Case MBYES
+ oDocument.Store
+ Case MBABORT, MBNO
+ End
+ End Select
+ Else
+ Status = MsgBox(WARNING, 3+32, MSGBOXTITLE)
+ If Status = MBNO Or Status = MBABORT Then &apos; No, Abort
+ End
+ End If
+ End If
+
+ Select Case sDocType
+ Case &quot;swriter&quot;
+ ReplaceAllStrings(oDocument)
+
+ Case Else
+ Msgbox(&quot;This macro only works with Writer documents.&quot;, 16, GetProductName())
+ End Select
+End Sub
+
+
+Sub ReplaceAllStrings(oContainer as Object)
+ ReplaceStrings(oContainer, &quot;[a-z]&quot;, LOWERREPLACECHAR)
+ ReplaceStrings(oContainer, &quot;[à-þ]&quot;, LOWERREPLACECHAR)
+ ReplaceStrings(oContainer, &quot;[A-Z]&quot;, UPPERREPLACECHAR)
+ ReplaceStrings(oContainer, &quot;[À-ß]&quot;, UPPERREPLACECHAR)
+ ReplaceStrings(oContainer, &quot;[0-9]&quot;, UPPERREPLACECHAR)
+End Sub
+
+
+Sub ReplaceStrings(oContainer as Object, sSearchString, sReplaceString as String)
+ oReplaceDesc = oContainer.createReplaceDescriptor()
+ oReplaceDesc.SearchCaseSensitive = True
+ oReplaceDesc.SearchRegularExpression = True
+ oReplaceDesc.Searchstring = sSearchString
+ oReplaceDesc.ReplaceString = sReplaceString
+ oReplCount = oContainer.ReplaceAll(oReplaceDesc)
+End Sub</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Gimmicks/GetTexts.xba b/test/user-template/user/basic/Gimmicks/GetTexts.xba
new file mode 100644
index 000000000000..c98e7d51f580
--- /dev/null
+++ b/test/user-template/user/basic/Gimmicks/GetTexts.xba
@@ -0,0 +1,522 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="GetTexts" script:language="StarBasic">Option Explicit
+&apos; Macro-Description:
+&apos; This Macro extracts the Strings out of the currently activated document und inserts them into a logdocument
+&apos; The aim of the macro is to provide the programmer an insight into the StarOffice API
+&apos; It focusses on how document-Objects are accessed.
+&apos; Therefor not only texts of the document-body are retrieved but also Texts of general
+&apos; document Objects like, Annotations, charts and general Document Information
+
+Public oLogDocument, oLogText, oLogCursor, oLogHeaderStyle, oLogBodyTextStyle as Object
+Public oDocument as Object
+Public LogArray(1000) as String
+Public LogIndex as Integer
+Public oLocHeaderStyle as Object
+
+Sub Main
+Dim sDocType as String
+Dim oHyperCursor as Object
+Dim oCharStyles as Object
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ On Local Error GoTo NODOCUMENT
+ oDocument = StarDesktop.ActiveFrame.Controller.Model
+ sDocType = GetDocumentType(oDocument)
+ NODOCUMENT:
+ If Err &lt;&gt; 0 Then
+ Msgbox(&quot;This macro extracts all data from the active Writer, Calc or Draw document.&quot; &amp; chr(13) &amp;_
+ &quot;To start this macro you have to activate a document first.&quot; , 16, GetProductName)
+ Exit Sub
+ End If
+ On Local Error Goto 0
+
+ &apos; Open a new document where all the texts are inserted
+ oLogDocument = CreateNewDocument(&quot;swriter&quot;)
+ If Not IsNull(oLogDocument) Then
+ oLogText = oLogDocument.Text
+
+ &apos; create and define the character styles of the Log-document
+ oCharStyles = oLogDocument.StyleFamilies.GetByName(&quot;CharacterStyles&quot;)
+ oLogHeaderStyle = oLogDocument.createInstance(&quot;com.sun.star.style.CharacterStyle&quot;)
+ oCharStyles.InsertbyName(&quot;Log Header&quot;, oLogHeaderStyle)
+
+ oLogHeaderStyle.charWeight = com.sun.star.awt.FontWeight.BOLD
+ oLogBodyTextStyle = oLogDocument.createInstance(&quot;com.sun.star.style.CharacterStyle&quot;)
+ oCharStyles.InsertbyName(&quot;Log Body&quot;, oLogBodyTextStyle)
+
+ &apos; Insert the title of the activated document as a hyperlink
+ oHyperCursor = oLogText.createTextCursor()
+ oHyperCursor.CharWeight = com.sun.star.awt.FontWeight.BOLD
+ oHyperCursor.gotoStart(False)
+ oHyperCursor.HyperLinkURL = oDocument.URL
+ oHyperCursor.HyperLinkTarget = oDocument.URL
+ If oDocument.DocumentProperties.Title &lt;&gt; &quot;&quot; Then
+ oHyperCursor.HyperlinkName = oDocument.DocumentProperties.Title
+ End If
+ oLogText.insertString(oHyperCursor, oDocument.DocumentProperties.Title, False)
+ oLogText.insertControlCharacter(oHyperCursor,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
+
+ oLogCursor = oLogText.createTextCursor()
+ oLogCursor.GotoEnd(False)
+ &apos; &quot;Switch off&quot; the Hyperlink - Properties
+ oLogCursor.SetPropertyToDefault(&quot;HyperLinkURL&quot;)
+ oLogCursor.SetPropertyToDefault(&quot;HyperLinkTarget&quot;)
+ oLogCursor.SetPropertyToDefault(&quot;HyperLinkName&quot;)
+ LogIndex = 0
+
+ &apos; Get the Properties of the document
+ GetDocumentProps()
+
+ Select Case sDocType
+ Case &quot;swriter&quot;
+ GetWriterStrings()
+ Case &quot;scalc&quot;
+ GetCalcStrings()
+ Case &quot;sdraw&quot;, &quot;simpress&quot;
+ GetDrawStrings()
+ Case Else
+ Msgbox(&quot;This macro only works with a Writer, Calc or Draw/Impress document.&quot;, 16, GetProductName())
+ End Select
+ End If
+End Sub
+
+
+&apos; ***********************************************Calc-Documents**************************************************
+
+Sub GetCalcStrings()
+Dim i, n as integer
+Dim oSheet as Object
+Dim SheetName as String
+Dim oSheets as Object
+ &apos; Create a sequence of all sheets within the document
+ oSheets = oDocument.Sheets
+
+ For i = 0 to osheets.Count - 1
+ oSheet = osheets.GetbyIndex(i)
+ SheetName = oSheet.Name
+ MakeLogHeadLine(&quot;Sheet No. &quot; &amp; i &amp; &quot;(&quot; &amp; SheetName &amp; &quot;)&quot; )
+
+ &apos; Check the &quot;body&quot; of the sheet
+ GetCellTexts(oSheet)
+
+ If oSheet.IsScenario then
+ MakeLogHeadLine(&quot;Scenario Comments from &quot; &amp; SheetName &amp; &quot;&apos;&quot;)
+ WriteStringtoLogFile(osheet.ScenarioComment)
+ End if
+
+ GetAnnotations(oSheet, &quot;Annotations from &apos;&quot; &amp; SheetName &amp; &quot;&apos;&quot;)
+
+ GetChartStrings(oSheet, &quot;Charts from &apos;&quot; &amp; SheetName &amp; &quot;&apos;&quot;)
+
+ GetControlStrings(oSheet.DrawPage, &quot;Controls from &apos;&quot; &amp; SheetName &amp; &quot;&apos;&quot;)
+ Next
+
+ &apos; Pictures
+ GetCalcGraphicNames()
+
+ GetNamedRanges()
+End Sub
+
+
+Sub GetCellTexts(oSheet as Object)
+Dim BigRange, BigEnum, oCell as Object
+ BigRange = oDocument.CreateInstance(&quot;com.sun.star.sheet.SheetCellRanges&quot;)
+ BigRange.InsertbyName(&quot;&quot;,oSheet)
+ BigEnum = BigRange.GetCells.CreateEnumeration
+ While BigEnum.hasmoreElements
+ oCell = BigEnum.NextElement
+ If oCell.String &lt;&gt; &quot;&quot; And Val(oCell.String) = 0then
+ WriteStringtoLogFile(oCell.String)
+ End If
+ Wend
+End Sub
+
+
+Sub GetAnnotations(oSheet as Object, HeaderLine as String)
+Dim oNotes as Object
+Dim n as Integer
+ oNotes = oSheet.getAnnotations
+ If oNotes.hasElements() then
+ MakeLogHeadLine(HeaderLine)
+ For n = 0 to oNotes.Count-1
+ WriteStringtoLogFile(oNotes.GetbyIndex(n).String)
+ Next
+ End if
+End Sub
+
+
+Sub GetNamedRanges()
+Dim i as integer
+ MakeLogHeadLine(&quot;Named Ranges&quot;)
+ For i = 0 To oDocument.NamedRanges.Count - 1
+ WriteStringtoLogFile(oDocument.NamedRanges.GetbyIndex(i).Name)
+ Next
+End Sub
+
+
+Sub GetCalcGraphicNames()
+Dim n,m as integer
+ MakeLogHeadLine(&quot;Graphics&quot;)
+ For n = 0 To oDocument.Drawpages.count-1
+ For m = 0 To oDocument.Drawpages.GetbyIndex(n).Count - 1
+ WriteStringtoLogFile(oDocument.DrawPages.GetbyIndex(n).GetbyIndex(m).Text.String)
+ Next m
+ Next n
+End Sub
+
+
+&apos; ***********************************************Writer-Documents**************************************************
+
+Sub GetParagraphTexts(oParaObject as Object, HeadLine as String)
+Dim ParaEnum as Object
+Dim oPara as Object
+Dim oTextPortEnum as Object
+Dim oTextPortion as Object
+Dim i as integer
+Dim oCellNames()
+Dim oCell as Object
+
+ MakeLogHeadLine(HeadLine)
+ ParaEnum = oParaObject.Text.CreateEnumeration
+
+ While ParaEnum.HasMoreElements
+ oPara = ParaEnum.NextElement
+
+ &apos; Note: The Enumeration ParaEnum lists all tables and Paragraphs.
+ &apos; Therefor we have to find out what kind of object &quot;oPara&quot; actually is
+ If oPara.supportsService(&quot;com.sun.star.text.Paragraph&quot;) Then
+ &apos; &quot;oPara&quot; is a Paragraph
+ oTextPortEnum = oPara.createEnumeration
+ While oTextPortEnum.hasmoreElements
+ oTextPortion = oTextPortEnum.nextElement()
+ WriteStringToLogFile(oTextPortion.String)
+ Wend
+ Else
+ &apos; &quot;oPara&quot; is a table
+ oCellNames = oPara.CellNames
+ For i = 0 To Ubound(oCellNames())
+ If oCellNames(i) &lt;&gt; &quot;&quot; Then
+ oCell = oPara.getCellByName(oCellNames(i))
+ WriteStringToLogFile(oCell.String)
+ End If
+ Next
+ End If
+ Wend
+End Sub
+
+
+
+Sub GetChartStrings(oSheet as Object, HeaderLine as String)
+Dim i as Integer
+Dim aChartObject as Object
+Dim aChartDiagram as Object
+
+ MakeLogHeadLine(HeaderLine)
+
+ For i = 0 to oSheet.Charts.Count-1
+ aChartObject = oSheet.Charts.GetByIndex(i).EmbeddedObject
+ If aChartObject.HasSubTitle then
+ WriteStringToLogFile(aChartObject.SubTitle.String)
+ End If
+
+ If aChartObject.HasMainTitle then
+ WriteStringToLogFile(aChartObject.Title.String)
+ End If
+
+ aChartDiagram = aChartObject.Diagram
+
+ If aChartDiagram.hasXAxisTitle Then
+ WriteStringToLogFile(aChartDiagram.XAxisTitle)
+ End If
+
+ If aChartDiagram.hasYAxisTitle Then
+ WriteStringToLogFile(aChartDiagram.YAxisTitle)
+ End If
+
+ If aChartDiagram.hasZAxisTitle Then
+ WriteStringToLogFile(aChartDiagram.ZAxisTitle)
+ End If
+ Next i
+End Sub
+
+
+
+Sub GetFrameTexts()
+Dim i as integer
+Dim oTextFrame as object
+Dim oFrameEnum as Object
+Dim oFramePort as Object
+Dim oFrameTextEnum as Object
+Dim oFrameTextPort as Object
+
+ MakeLogHeadLine(&quot;Text Frames&quot;)
+ For i = 0 to oDocument.TextFrames.Count-1
+ oTextFrame = oDocument.TextFrames.GetbyIndex(i)
+ WriteStringToLogFile(oTextFrame.Name)
+
+ &apos; Is the frame bound to the Page
+ If oTextFrame.AnchorType = com.sun.star.text.TextContentAnchorType.AT_PAGE Then
+ GetParagraphTexts(oTextFrame, &quot;Text Frame Contents&quot;)
+ End If
+
+ oFrameEnum = oTextFrame.CreateEnumeration
+ While oFrameEnum.HasMoreElements
+ oFramePort = oFrameEnum.NextElement
+ If oFramePort.supportsService(&quot;com.sun.star.text.Paragraph&quot;) then
+ oFrameTextEnum = oFramePort.createEnumeration
+ While oFrameTextEnum.HasMoreElements
+ oFrameTextPort = oFrameTextEnum.NextElement
+ If oFrameTextPort.SupportsService(&quot;com.sun.star.text.TextFrame&quot;) Then
+ WriteStringtoLogFile(oFrameTextPort.String)
+ End If
+ Wend
+ Else
+ WriteStringtoLogFile(oFramePort.Name)
+ End if
+ Wend
+ Next
+End Sub
+
+
+Sub GetTextFieldStrings()
+Dim aTextField as Object
+Dim i as integer
+Dim CurElement as Object
+ MakeLogHeadLine(&quot;Text Fields&quot;)
+ aTextfield = oDocument.getTextfields.CreateEnumeration
+ While aTextField.hasmoreElements
+ CurElement = aTextField.NextElement
+ If CurElement.PropertySetInfo.hasPropertybyName(&quot;Content&quot;) Then
+ WriteStringtoLogFile(CurElement.Content)
+ ElseIf CurElement.PropertySetInfo.hasPropertybyName(&quot;PlaceHolder&quot;) Then
+ WriteStringtoLogFile(CurElement.PlaceHolder)
+ WriteStringtoLogFile(CurElement.Hint)
+ ElseIf Curelement.TextFieldMaster.PropertySetInfo.HasPropertybyName(&quot;Content&quot;) then
+ WriteStringtoLogFile(CurElement.TextFieldMaster.Content)
+ End If
+ Wend
+End Sub
+
+
+
+Sub GetLinkedFileNames()
+Dim oDocSections as Object
+Dim LinkedFileName as String
+Dim i as Integer
+ If Right(oDocument.URL,3) = &quot;sgl&quot; Then
+ MakeLogHeadLine(&quot;Sub-documents&quot;)
+ oDocSections = oDocument.TextSections
+ For i = 0 to oDocSections.Count - 1
+ LinkedFileName = oDocSections.GetbyIndex(i).FileLink.FileURL
+ If LinkedFileName &lt;&gt; &quot;&quot; Then
+ WriteStringToLogFile(LinkedFileName)
+ End If
+ Next i
+ End If
+End Sub
+
+
+Sub GetSectionNames()
+Dim i as integer
+Dim oDocSections as Object
+ MakeLogHeadLine(&quot;Sections&quot;)
+ oDocSections = oDocument.TextSections
+ For i = 0 to oDocSections.Count-1
+ WriteStringtoLogFile(oDocSections.GetbyIndex(i).Name)
+ Next
+End Sub
+
+
+Sub GetWriterStrings()
+ GetParagraphTexts(oDocument, &quot;Document Body&quot;)
+ GetGraphicNames()
+ GetStyles()
+ GetControlStrings(oDocument.DrawPage, &quot;Controls&quot;)
+ GetTextFieldStrings()
+ GetSectionNames()
+ GetFrameTexts()
+ GetHyperLinks
+ GetLinkedFileNames()
+End Sub
+
+
+&apos; ***********************************************Draw-Documents**************************************************
+
+Sub GetDrawPageTitles(LocObject as Object)
+Dim n as integer
+Dim oPage as Object
+
+ For n = 0 to LocObject.Count - 1
+ oPage = LocObject.GetbyIndex(n)
+ WriteStringtoLogFile(oPage.Name)
+ &apos; Is the Page a DrawPage and not a MasterPage?
+ If oPage.supportsService(&quot;com.sun.star.drawing.DrawPage&quot;)then
+ &apos; Get the Name of the NotesPage (only relevant for Impress-Documents)
+ If oDocument.supportsService(&quot;com.sun.star.presentation.PresentationDocument&quot;) then
+ WriteStringtoLogFile(oPage.NotesPage.Name)
+ End If
+ End If
+ Next
+End Sub
+
+
+Sub GetPageStrings(oPages as Object)
+Dim m, n, s as Integer
+Dim oPage, oPageElement, oShape as Object
+ For n = 0 to oPages.Count-1
+ oPage = oPages.GetbyIndex(n)
+ If oPage.HasElements then
+ For m = 0 to oPage.Count-1
+ oPageElement = oPage.GetByIndex(m)
+ If HasUnoInterfaces(oPageElement,&quot;com.sun.star.container.XIndexAccess&quot;) Then
+ &apos; The Object &quot;oPageElement&quot; a group of Shapes, that can be accessed by their index
+ For s = 0 To oPageElement.Count - 1
+ WriteStringToLogFile(oPageElement.GetByIndex(s).String)
+ Next s
+ ElseIf HasUnoInterfaces(oPageElement, &quot;com.sun.star.text.XText&quot;) Then
+ WriteStringtoLogFile(oPageElement.String)
+ End If
+ Next
+ End If
+ Next
+End Sub
+
+
+Sub GetDrawStrings()
+Dim oDPages, oMPages as Object
+
+ oDPages = oDocument.DrawPages
+ oMPages = oDocument.Masterpages
+
+ MakeLogHeadLine(&quot;Titles&quot;)
+ GetDrawPageTitles(oDPages)
+ GetDrawPageTitles(oMPages)
+
+ MakeLogHeadLine(&quot;Document Body&quot;)
+ GetPageStrings(oDPages)
+ GetPageStrings(oMPages)
+End Sub
+
+
+&apos; ***********************************************Misc**************************************************
+
+Sub GetDocumentProps()
+Dim oDocuProps as Object
+ MakeLogHeadLine(&quot;Document Properties&quot;)
+ oDocuProps = oDocument.DocumentProperties
+ WriteStringToLogFile(oDocuProps.Title)
+ WriteStringToLogFile(oDocuProps.Description)
+ WriteStringToLogFile(oDocuProps.Subject)
+ WriteStringToLogFile(oDocuProps.Author)
+&apos; WriteStringToLogFile(oDocuProps.UserDefinedProperties.ReplyTo)
+&apos; WriteStringToLogFile(oDocuProps.UserDefinedProperties.Recipient)
+&apos; WriteStringToLogFile(oDocuProps.UserDefinedProperties.References)
+&apos; WriteStringToLogFile(oDocuProps.Keywords)
+End Sub
+
+
+Sub GetHyperlinks()
+Dim i as integer
+Dim oCrsr as Object
+Dim oAllHyperLinks as Object
+Dim SrchAttributes(0) as new com.sun.star.beans.PropertyValue
+Dim oSearchDesc as Object
+
+ MakeLogHeadLine(&quot;Hyperlinks&quot;)
+ &apos; create a Search-Descriptor
+ oSearchDesc = oDocument.CreateSearchDescriptor
+ oSearchDesc.Valuesearch = False
+
+ &apos; define the Search-attributes
+ srchattributes(0).Name = &quot;HyperLinkURL&quot;
+ srchattributes(0).Value = &quot;&quot;
+ oSearchDesc.SetSearchAttributes(SrchAttributes())
+
+ oAllHyperLinks = oDocument.findAll(oSearchDesc())
+
+ For i = 0 to oAllHyperLinks.Count - 1
+ oFound = oAllHyperLinks(i)
+ oCrsr = oFound.Text.createTextCursorByRange(oFound)
+ WriteStringToLogFile(oCrs.HyperLinkURL) &apos;Url
+ WriteStringToLogFile(oCrs.HyperLinkTarget) &apos;Name
+ WriteStringToLogFile(oCrs.HyperLinkName) &apos;Frame
+ Next i
+End Sub
+
+
+Sub GetGraphicNames()
+Dim i as integer
+Dim oDocGraphics as Object
+ MakeLogHeadLine(&quot;Graphics&quot;)
+ oDocGraphics = oDocument.GraphicObjects
+ For i = 0 to oDocGraphics.count - 1
+ WriteStringtoLogFile(oDocGraphics.GetbyIndex(i).Name)
+ Next
+End Sub
+
+
+Sub GetStyles()
+Dim m,n as integer
+ MakeLogHeadLine(&quot;User-defined Templates&quot;)
+
+ &apos; Check all StyleFamilies(i.e. PageStyles, ParagraphStyles, CharacterStyles, cellStyles)
+ For n = 0 to oDocument.StyleFamilies.Count - 1
+ For m = 0 to oDocument.StyleFamilies.getbyIndex(n).Count-1
+ If oDocument.StyleFamilies.GetbyIndex(n).getbyIndex(m).IsUserDefined then
+ WriteStringtoLogFile(oDocument.StyleFamilies.GetbyIndex(n).getbyIndex(m).Name)
+ End If
+ Next
+ Next
+End Sub
+
+
+Sub GetControlStrings(oDPage as Object, HeaderLine as String)
+Dim aForm as Object
+Dim m,n as integer
+ MakeLogHeadLine(HeaderLine)
+ &apos;SearchFor all possible Controls
+ For n = 0 to oDPage.Forms.Count - 1
+ aForm = oDPage.Forms(n)
+ For m = 0 to aForm.Count-1
+ GetControlContent(aForm.GetbyIndex(m))
+ Next
+ Next
+End Sub
+
+
+Sub GetControlContent(LocControl as Object)
+Dim i as integer
+
+ If LocControl.PropertySetInfo.HasPropertybyName(&quot;Label&quot;) then
+ WriteStringtoLogFile(LocControl.Label)
+
+ ElseIf LocControl.SupportsService(&quot;com.sun.star.form.component.ListBox&quot;) then
+ For i = 0 to Ubound(LocControl.StringItemList())
+ WriteStringtoLogFile(LocControl.StringItemList(i))
+ Next
+ End If
+ If LocControl.PropertySetInfo.HasPropertybyName(&quot;HelpText&quot;) then
+ WriteStringtoLogFile(LocControl.Helptext)
+ End If
+End Sub
+
+&apos; ***********************************************LogDocument**************************************************
+
+Sub WriteStringtoLogFile( sString as String)
+ If (Not FieldInArray(LogArray(),LogIndex,sString))AND (NOT ISNULL(sString)) Then
+ LogArray(LogIndex) = sString
+ LogIndex = LogIndex + 1
+ oLogText.insertString(oLogCursor,sString,False)
+ oLogText.insertControlCharacter(oLogCursor,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
+ End If
+End Sub
+
+
+Sub MakeLogHeadLine(HeadText as String)
+ oLogCursor.CharStyleName = &quot;Log Header&quot;
+ oLogText.insertControlCharacter(oLogCursor,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
+ oLogText.insertString(oLogCursor,HeadText,False)
+ oLogText.insertControlCharacter(oLogCursor,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
+ oLogCursor.CharStyleName = &quot;Log Body&quot;
+End Sub
+</script:module>
diff --git a/test/user-template/user/basic/Gimmicks/ReadDir.xba b/test/user-template/user/basic/Gimmicks/ReadDir.xba
new file mode 100644
index 000000000000..370f8cbc1915
--- /dev/null
+++ b/test/user-template/user/basic/Gimmicks/ReadDir.xba
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="ReadDir" script:language="StarBasic">Option Explicit
+Public Const SBPAGEX = 800
+Public Const SBPAGEY = 800
+Public Const SBRELDIST = 1.3
+
+&apos; Names of the second Dimension of the Array iLevelPos
+Public Const SBBASEX = 0
+Public Const SBBASEY = 1
+
+Public Const SBOLDSTARTX = 2
+Public Const SBOLDSTARTY = 3
+
+Public Const SBOLDENDX = 4
+Public Const SBOLDENDY = 5
+
+Public Const SBNEWSTARTX = 6
+Public Const SBNEWSTARTY = 7
+
+Public Const SBNEWENDX = 8
+Public Const SBNEWENDY = 9
+
+Public ConnectLevel As Integer
+Public iLevelPos(1,9) As Long
+Public Source as String
+Public iCurLevel as Integer
+Public nConnectLevel as Integer
+Public nOldWidth, nOldHeight As Long
+Public nOldX, nOldY, nOldLevel As Integer
+Public oOldLeavingLine As Object
+Public oOldArrivingLine As Object
+Public DlgReadDir as Object
+Dim oProgressBar as Object
+Dim oDocument As Object
+Dim oPage As Object
+
+
+Sub Main()
+Dim oStandardTemplate as Object
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ oDocument = CreateNewDocument(&quot;sdraw&quot;)
+ If Not IsNull(oDocument) Then
+ oPage = oDocument.DrawPages(0)
+ oStandardTemplate = oDocument.StyleFamilies.GetByName(&quot;graphics&quot;).GetByName(&quot;standard&quot;)
+ oStandardTemplate.CharHeight = 10
+ oStandardTemplate.TextLeftDistance = 100
+ oStandardTemplate.TextRightDistance = 100
+ oStandardTemplate.TextUpperDistance = 50
+ oStandardTemplate.TextLowerDistance = 50
+ DlgReadDir = LoadDialog(&quot;Gimmicks&quot;,&quot;ReadFolderDlg&quot;)
+ oProgressBar = DlgReadDir.Model.ProgressBar1
+ DlgReadDir.Model.TextField1.Text = ConvertFromUrl(GetPathSettings(&quot;Work&quot;))
+ DlgReadDir.Model.cmdGoOn.DefaultButton = True
+ DlgReadDir.GetControl(&quot;TextField1&quot;).SetFocus()
+ DlgReadDir.Execute
+ End If
+End Sub
+
+
+Sub TreeInfo()
+Dim oCurTextShape As Object
+Dim i as Integer
+Dim bStartUpRun As Boolean
+Dim CurFilename as String
+Dim BaseLevel as Integer
+Dim oController as Object
+Dim MaxFileIndex as Integer
+Dim FileNames() as String
+ ToggleDialogControls(False)
+ oProgressBar.ProgressValueMin = 0
+ oProgressBar.ProgressValueMax = 100
+ bStartUpRun = True
+ nOldHeight = 200
+ nOldY = SBPAGEY
+ nOldX = SBPAGEX
+ nOldWidth = SBPAGEX
+ oController = oDocument.GetCurrentController
+ Source = ConvertToURL(DlgReadDir.Model.TextField1.Text)
+ BaseLevel = CountCharsInString(Source, &quot;/&quot;, 1)
+ oProgressBar.ProgressValue = 5
+ DlgReadDir.Model.Label3.Enabled = True
+ FileNames() = ReadSourceDirectory(Source)
+ DlgReadDir.Model.Label4.Enabled = True
+ DlgReadDir.Model.Label3.Enabled = False
+ oProgressBar.ProgressValue = 12
+ FileNames() = BubbleSortList(FileNames())
+ DlgReadDir.Model.Label5.Enabled = True
+ DlgReadDir.Model.Label4.Enabled = False
+ oProgressBar.ProgressValue = 20
+ MaxFileIndex = Ubound(FileNames(),1)
+ For i = 0 To MaxFileIndex
+ oProgressBar.ProgressValue = 20 + (i/MaxFileIndex * 80)
+ CurFilename = FileNames(i,1)
+ SetNewLevels(FileNames(i,0), BaseLevel)
+ oCurTextShape = CreateTextShape(oPage, CurFilename)
+ CheckPageWidth(oCurTextShape.Size.Width)
+ iLevelPos(iCurLevel,SBBASEY) = oCurTextShape.Position.Y
+ If i = 0 Then
+ AdjustPageHeight(oCurTextShape.Size.Height, MaxFileIndex + 1)
+ End If
+ &apos; The Current TextShape has To be connected with a TextShape one Level higher
+ &apos; except for a TextShape In Level 0:
+ If Not bStartUpRun Then
+ &apos; A leaving Line Is only drawn when level is not 0
+ If iCurLevel&lt;&gt; 0 Then
+ &apos; Determine the Coordinates of the arriving Line
+ iLevelPos(iCurLevel,SBOLDSTARTX) = iLevelPos(nConnectLevel,SBNEWSTARTX)
+ iLevelPos(iCurLevel,SBOLDSTARTY) = oCurTextShape.Position.Y + 0.5 * oCurTextShape.Size.Height
+
+ iLevelPos(iCurLevel,SBOLDENDX) = iLevelPos(iCurLevel,SBBASEX)
+ iLevelPos(iCurLevel,SBOLDENDY) = oCurTextShape.Position.Y + 0.5 * oCurTextShape.Size.Height
+
+ oOldArrivingLine = DrawLine(iCurLevel, SBOLDSTARTX, SBOLDSTARTY, SBOLDENDX, SBOLDENDY, oPage)
+
+ &apos; Determine the End-Coordinates of the last leaving Line
+ iLevelPos(nConnectLevel,SBNEWENDX) = iLevelPos(nConnectLevel,SBNEWSTARTX)
+ iLevelPos(nConnectLevel,SBNEWENDY) = oCurTextShape.Position.Y + 0.5 * oCurTextShape.Size.Height
+ Else
+ &apos; On Level 0 the last Leaving Line&apos;s Endpoint is the upper edge of the TextShape
+ iLevelPos(nConnectLevel,SBNEWENDY) = oCurTextShape.Position.Y
+ iLevelPos(nConnectLevel,SBNEWENDX) = iLevelPos(nConnectLevel,SBNEWSTARTX)
+ End If
+ &apos; Draw the Connectors To the previous TextShapes
+ oOldLeavingLine = DrawLine(nConnectLevel, SBNEWSTARTX, SBNEWSTARTY, SBNEWENDX, SBNEWENDY, oPage)
+ Else
+ &apos; StartingPoint of the leaving Edge
+ bStartUpRun = FALSE
+ End If
+
+ &apos; Determine the beginning Coordinates of the leaving Line
+ iLevelPos(iCurLevel,SBNEWSTARTX) = iLevelPos(iCurLevel,SBBASEX) + 0.5 * oCurTextShape.Size.Width
+ iLevelPos(iCurLevel,SBNEWSTARTY) = iLevelPos(iCurLevel,SBBASEY) + oCurTextShape.Size.Height
+
+ &apos; Save the values For the Next run
+ nOldHeight = oCurTextShape.Size.Height
+ nOldX = oCurTextShape.Position.X
+ nOldWidth = oCurTextShape.Size.Width
+ nOldLevel = iCurLevel
+ Next i
+ ToggleDialogControls(True)
+ DlgReadDir.Model.cmdGoOn.Enabled = False
+End Sub
+
+
+Function CreateTextShape(oPage as Object, Filename as String)
+Dim oTextShape As Object
+Dim aPoint As New com.sun.star.awt.Point
+
+ aPoint.X = CalculateXPoint()
+ aPoint.Y = nOldY + SBRELDIST * nOldHeight
+ nOldY = aPoint.Y
+
+ oTextShape = oDocument.createInstance(&quot;com.sun.star.drawing.TextShape&quot;)
+ oTextShape.LineStyle = 1
+ oTextShape.Position = aPoint
+
+ oPage.add(oTextShape)
+ oTextShape.TextAutoGrowWidth = TRUE
+ oTextShape.TextAutoGrowHeight = TRUE
+ oTextShape.String = FileName
+
+ &apos; Configure Size And Position of the TextShape according to its Scripting
+ aPoint.X = iLevelPos(iCurLevel,SBBASEX)
+ oTextShape.Position = aPoint
+ CreateTextShape() = oTextShape
+End Function
+
+
+Function CalculateXPoint()
+ &apos; The current level Is lower than the Old one
+ If (iCurLevel&lt; nOldLevel) And (iCurLevel&lt;&gt; 0) Then
+ &apos; ClearArray(iLevelPos(),iCurLevel+1)
+ Elseif iCurLevel= 0 Then
+ iLevelPos(iCurLevel,SBBASEX) = SBPAGEX
+ &apos; The current level Is higher than the old one
+ Elseif iCurLevel&gt; nOldLevel Then
+ iLevelPos(iCurLevel,SBBASEX) = iLevelPos(iCurLevel-1,SBBASEX) + nOldWidth + 100
+ End If
+ CalculateXPoint = iLevelPos(iCurLevel,SBBASEX)
+End Function
+
+
+Function DrawLine(nLevel, nStartX, nStartY, nEndX, nEndY As Integer, oPage as Object)
+Dim oConnect As Object
+Dim aPoint As New com.sun.star.awt.Point
+Dim aSize As New com.sun.star.awt.Size
+ aPoint.X = iLevelPos(nLevel,nStartX)
+ aPoint.Y = iLevelPos(nLevel,nStartY)
+ aSize.Width = iLevelPos(nLevel,nEndX) - iLevelPos(nLevel,nStartX)
+ aSize.Height = iLevelPos(nLevel,nEndY) - iLevelPos(nLevel,nStartY)
+ oConnect = oDocument.createInstance(&quot;com.sun.star.drawing.LineShape&quot;)
+ oConnect.Position = aPoint
+ oConnect.Size = aSize
+ oPage.Add(oConnect)
+ DrawLine() = oConnect
+End Function
+
+
+Sub GetSourceDirectory()
+ GetFolderName(DlgReadDir.Model.TextField1)
+End Sub
+
+
+Function ReadSourceDirectory(ByVal Source As String)
+Dim i as Integer
+Dim m as Integer
+Dim n as Integer
+Dim s as integer
+Dim FileName as string
+Dim FileNameList(100,1) as String
+Dim DirList(0) as String
+Dim oUCBobject as Object
+Dim DirContent() as String
+Dim SystemPath as String
+Dim PathSeparator as String
+Dim MaxFileIndex as Integer
+ PathSeparator = GetPathSeparator()
+ oUcbobject = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ m = 0
+ s = 0
+ DirList(0) = Source
+ FileNameList(n,0) = Source
+ SystemPath = ConvertFromUrl(Source)
+ FileNameList(n,1) = FileNameoutofPath(SystemPath, PathSeparator)
+ n = 1
+ Do
+ Source = DirList(m)
+ m = m + 1
+ DirContent() = oUcbObject.GetFolderContents(Source,True)
+ If Ubound(DirContent()) &lt;&gt; -1 Then
+ MaxFileIndex = Ubound(DirContent())
+ For i = 0 to MaxFileIndex
+ FileName = DirContent(i)
+ FileNameList(n,0) = FileName
+ SystemPath = ConvertFromUrl(FileName)
+ FileNameList(n,1) = FileNameOutofPath(SystemPath, PathSeparator)
+ n = n + 1
+ If n &gt; Ubound(FileNameList(),1) Then
+ ReDim Preserve FileNameList(n + 10,1) as String
+ End If
+ If oUcbObject.IsFolder(FileName) Then
+ s = s + 1
+ ReDim Preserve DirList(s) as String
+ DirList(s) = FileName
+ End If
+ Next i
+ End If
+ Loop Until m &gt; Ubound(DirList()
+ ReDim Preserve FileNameList(n-1,1) as String
+ ReadSourceDirectory() = FileNameList()
+End Function
+
+
+Sub CloseDialog
+ DlgReadDir.EndExecute
+End Sub
+
+
+Sub AdjustPageHeight(lShapeHeight, FileCount)
+Dim lNecHeight as Long
+Dim lBorders as Long
+ oDocument.LockControllers
+ lBorders = oPage.BorderTop + oPage.BorderBottom
+ lNecHeight = SBPAGEY + (FileCount * SBRELDIST * lShapeHeight)
+ If lNecHeight &gt; (oPage.Height - lBorders) Then
+ oPage.Height = lNecHeight + lBorders + 500
+ End If
+ oDocument.UnlockControllers
+End Sub
+
+
+Sub SetNewLevels(FileName as String, BaseLevel as Integer)
+ iCurLevel= CountCharsInString(FileName, &quot;/&quot;, 1) - BaseLevel
+ If iCurLevel &lt;&gt; 0 Then
+ nConnectLevel = iCurLevel- 1
+ Else
+ nConnectLevel = iCurLevel
+ End If
+ If iCurLevel &gt; Ubound(iLevelPos(),1) Then
+ ReDim Preserve iLevelPos(iCurLevel,9) as Long
+ End If
+End Sub
+
+
+Sub CheckPageWidth(TextWidth as Long)
+Dim PageWidth as Long
+Dim BaseX as Long
+ PageWidth = oPage.Width
+ BaseX = iLevelPos(iCurLevel,SBBASEX)
+ If BaseX + TextWidth &gt; PageWidth - 1000 Then
+ oPage.Width = 1000 + BaseX + TextWidth
+ End If
+End Sub
+
+
+Sub ToggleDialogControls(bDoEnable as Boolean)
+ With DlgReadDir.Model
+ .cmdGoOn.Enabled = bDoEnable
+ .cmdGetDir.Enabled = bDoEnable
+ .Label1.Enabled = bDoEnable
+ .Label2.Enabled = bDoEnable
+ .TextField1.Enabled = bDoEnable
+ End With
+End Sub</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Gimmicks/ReadFolderDlg.xdl b/test/user-template/user/basic/Gimmicks/ReadFolderDlg.xdl
new file mode 100644
index 000000000000..e49127db2f13
--- /dev/null
+++ b/test/user-template/user/basic/Gimmicks/ReadFolderDlg.xdl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="ReadFolderDlg" dlg:left="161" dlg:top="81" dlg:width="180" dlg:height="136" dlg:closeable="true" dlg:moveable="true" dlg:title="Read and Design Recursively">
+ <dlg:bulletinboard>
+ <dlg:button dlg:id="cmdGetDir" dlg:tab-index="0" dlg:left="161" dlg:top="49" dlg:width="14" dlg:height="14" dlg:value="...">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Gimmicks.ReadDir.GetSourceDirectory?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:textfield dlg:id="TextField1" dlg:tab-index="1" dlg:left="6" dlg:top="50" dlg:width="147" dlg:height="12"/>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="2" dlg:left="49" dlg:top="115" dlg:width="35" dlg:height="14" dlg:value="~Cancel">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Gimmicks.ReadDir.CloseDialog?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdGoOn" dlg:tab-index="3" dlg:left="95" dlg:top="115" dlg:width="35" dlg:height="14" dlg:value="~GoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Gimmicks.ReadDir.TreeInfo?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:text dlg:id="Label1" dlg:tab-index="4" dlg:left="6" dlg:top="38" dlg:width="122" dlg:height="8" dlg:value="Top level path"/>
+ <dlg:text dlg:id="Label2" dlg:tab-index="5" dlg:left="6" dlg:top="4" dlg:width="168" dlg:height="26" dlg:value="This macro will create a drawing document and design a complete tree view of all subdirectories from a given path." dlg:multiline="true"/>
+ <dlg:progressmeter dlg:id="ProgressBar1" dlg:tab-index="6" dlg:left="6" dlg:top="101" dlg:width="170" dlg:height="10"/>
+ <dlg:text dlg:id="Label3" dlg:tab-index="7" dlg:disabled="true" dlg:left="6" dlg:top="69" dlg:width="170" dlg:height="8" dlg:value="Getting the files and subdirectories..."/>
+ <dlg:text dlg:id="Label4" dlg:tab-index="8" dlg:disabled="true" dlg:left="6" dlg:top="80" dlg:width="170" dlg:height="8" dlg:value="Sorting the files and subdirectories..."/>
+ <dlg:text dlg:id="Label5" dlg:tab-index="9" dlg:disabled="true" dlg:left="6" dlg:top="91" dlg:width="170" dlg:height="8" dlg:value="Drawing the filestructure..."/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Gimmicks/UserfieldDlg.xdl b/test/user-template/user/basic/Gimmicks/UserfieldDlg.xdl
new file mode 100644
index 000000000000..408f3c8be305
--- /dev/null
+++ b/test/user-template/user/basic/Gimmicks/UserfieldDlg.xdl
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="UserfieldDlg" dlg:left="161" dlg:top="57" dlg:width="281" dlg:height="214" dlg:closeable="true" dlg:moveable="true" dlg:title="Modify User Data">
+ <dlg:bulletinboard>
+ <dlg:text dlg:id="Label1" dlg:tab-index="0" dlg:left="6" dlg:top="48" dlg:width="57" dlg:height="8" dlg:value="Label1"/>
+ <dlg:text dlg:id="Label2" dlg:tab-index="1" dlg:left="6" dlg:top="64" dlg:width="57" dlg:height="8" dlg:value="Label2"/>
+ <dlg:text dlg:id="Label3" dlg:tab-index="2" dlg:left="6" dlg:top="80" dlg:width="57" dlg:height="8" dlg:value="Label3"/>
+ <dlg:text dlg:id="Label4" dlg:tab-index="3" dlg:left="6" dlg:top="96" dlg:width="57" dlg:height="8" dlg:value="Label4"/>
+ <dlg:text dlg:id="Label5" dlg:tab-index="4" dlg:left="6" dlg:top="112" dlg:width="57" dlg:height="8" dlg:value="Label5"/>
+ <dlg:text dlg:id="Label6" dlg:tab-index="5" dlg:left="6" dlg:top="128" dlg:width="57" dlg:height="8" dlg:value="Label6"/>
+ <dlg:text dlg:id="Label7" dlg:tab-index="6" dlg:left="6" dlg:top="144" dlg:width="57" dlg:height="8" dlg:value="Label7"/>
+ <dlg:text dlg:id="Label8" dlg:tab-index="7" dlg:left="6" dlg:top="160" dlg:width="57" dlg:height="8" dlg:value="Label8"/>
+ <dlg:text dlg:id="Label9" dlg:tab-index="8" dlg:left="6" dlg:top="176" dlg:width="57" dlg:height="8" dlg:value="Label9"/>
+ <dlg:textfield dlg:id="TextField1" dlg:tab-index="9" dlg:left="65" dlg:top="46" dlg:width="193" dlg:height="12"/>
+ <dlg:textfield dlg:id="TextField2" dlg:tab-index="10" dlg:left="65" dlg:top="62" dlg:width="193" dlg:height="12"/>
+ <dlg:textfield dlg:id="TextField3" dlg:tab-index="11" dlg:left="65" dlg:top="78" dlg:width="193" dlg:height="12"/>
+ <dlg:textfield dlg:id="TextField4" dlg:tab-index="12" dlg:left="65" dlg:top="94" dlg:width="193" dlg:height="12"/>
+ <dlg:textfield dlg:id="TextField5" dlg:tab-index="13" dlg:left="65" dlg:top="110" dlg:width="193" dlg:height="12"/>
+ <dlg:textfield dlg:id="TextField6" dlg:tab-index="14" dlg:left="65" dlg:top="126" dlg:width="193" dlg:height="12"/>
+ <dlg:textfield dlg:id="TextField7" dlg:tab-index="15" dlg:left="65" dlg:top="142" dlg:width="193" dlg:height="12"/>
+ <dlg:textfield dlg:id="TextField8" dlg:tab-index="16" dlg:left="65" dlg:top="158" dlg:width="193" dlg:height="12"/>
+ <dlg:textfield dlg:id="TextField9" dlg:tab-index="17" dlg:left="65" dlg:top="174" dlg:width="193" dlg:height="12"/>
+ <dlg:scrollbar dlg:id="ScrollBar1" dlg:tab-index="18" dlg:left="263" dlg:top="46" dlg:width="12" dlg:height="140" dlg:align="vertical">
+ <script:event script:event-name="on-adjustmentvaluechange" script:macro-name="vnd.sun.star.script:Gimmicks.Userfields.ScrollControls?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:scrollbar>
+ <dlg:button dlg:id="cmdQuit" dlg:tab-index="19" dlg:left="6" dlg:top="193" dlg:width="35" dlg:height="14" dlg:help-text="Exit Macro" dlg:value="Exit">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Gimmicks.Userfields.StopMacro?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdSave" dlg:tab-index="20" dlg:left="45" dlg:top="193" dlg:width="35" dlg:height="14" dlg:help-text="Save All Data of All Users to File" dlg:value="~Save">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Gimmicks.Userfields.SaveSettings?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdSelect" dlg:tab-index="21" dlg:left="84" dlg:top="193" dlg:width="35" dlg:height="14" dlg:help-text="Replace the User Data in &lt;PRODUCTNAME&gt; With the User Data Above" dlg:value="Se~lect">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Gimmicks.Userfields.SelectCurrentFields?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdNextUser" dlg:tab-index="22" dlg:left="162" dlg:top="193" dlg:width="35" dlg:height="14" dlg:tag="1" dlg:help-text="Show Data of Next User" dlg:value="Next &gt;&gt;">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Gimmicks.Userfields.StepToRecord?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdPrevUser" dlg:tab-index="23" dlg:left="123" dlg:top="193" dlg:width="35" dlg:height="14" dlg:tag="-1" dlg:help-text="Show Data of Previous User" dlg:value="&lt;&lt;Previous">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Gimmicks.Userfields.StepToRecord?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="CommandButton1" dlg:tab-index="24" dlg:left="201" dlg:top="193" dlg:width="35" dlg:height="14" dlg:help-text="Add Data for New User" dlg:value="~New">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Gimmicks.Userfields.AddRecord?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:text dlg:id="Label10" dlg:tab-index="25" dlg:left="6" dlg:top="6" dlg:width="269" dlg:height="34" dlg:value="This macro lets you easily administrate several user profiles.&#x0a;The user data of several users may be stored in a single file in the directory &lt;ConfigDir&gt;. From there, you can select a particular user whose data is then the current user data in &lt;PRODUCTNAME&gt;." dlg:multiline="true"/>
+ <dlg:button dlg:id="cmdDelete" dlg:tab-index="26" dlg:left="240" dlg:top="193" dlg:width="35" dlg:height="14" dlg:help-text="Delete Data of Current User" dlg:value="Delete">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Gimmicks.Userfields.DeleteCurrentSettings?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Gimmicks/Userfields.xba b/test/user-template/user/basic/Gimmicks/Userfields.xba
new file mode 100644
index 000000000000..391337c6a357
--- /dev/null
+++ b/test/user-template/user/basic/Gimmicks/Userfields.xba
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Userfields" script:language="StarBasic">Option Explicit
+&apos;Todo: Controlling Scrollbar via Keyboard
+
+Public Const SBMAXFIELDINDEX = 14
+
+Public DlgUserFields as Object
+Public oDocument as Object
+Public UserFieldDataType(SBMAXFIELDINDEX,1) as String
+Public ScrollBarValue as Integer
+Public UserFieldFamily(0, SBMAXfIELDINDEX) as String
+Public Const SBTBCOUNT = 9
+Public oUserDataAccess as Object
+Public CurFieldIndex as Integer
+Public FilePath as String
+
+Sub StartChangesUserfields
+Dim SystemPath as String
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ UserFieldDatatype(0,0) = &quot;COMPANY&quot;
+ UserFieldDatatype(0,1) = &quot;o&quot;
+ UserFieldDatatype(1,0) = &quot;FIRSTNAME&quot;
+ UserFieldDatatype(1,1) = &quot;givenname&quot;
+ UserFieldDatatype(2,0) = &quot;LASTNAME&quot;
+ UserFieldDatatype(2,1) = &quot;sn&quot;
+ UserFieldDatatype(3,0) = &quot;INITIALS&quot;
+ UserFieldDatatype(3,1) = &quot;initials&quot;
+ UserFieldDatatype(4,0) = &quot;STREET&quot;
+ UserFieldDatatype(4,1) = &quot;street&quot;
+ UserFieldDatatype(5,0) = &quot;COUNTRY&quot;
+ UserFieldDatatype(5,1) = &quot;c&quot;
+ UserFieldDatatype(6,0) = &quot;ZIP&quot;
+ UserFieldDatatype(6,1) = &quot;postalcode&quot;
+ UserFieldDatatype(7,0) = &quot;CITY&quot;
+ UserFieldDatatype(7,1) = &quot;l&quot;
+ UserFieldDatatype(8,0) = &quot;TITLE&quot;
+ UserFieldDatatype(8,1) = &quot;title&quot;
+ UserFieldDatatype(9,0) = &quot;POSITION&quot;
+ UserFieldDatatype(9,1) = &quot;position&quot;
+ UserFieldDatatype(10,0) = &quot;PHONE_HOME&quot;
+ UserFieldDatatype(10,1) = &quot;homephone&quot;
+ UserFieldDatatype(11,0) = &quot;PHONE_WORK&quot;
+ UserFieldDatatype(11,1) = &quot;telephonenumber&quot;
+ UserFieldDatatype(12,0) = &quot;FAX&quot;
+ UserFieldDatatype(12,1) = &quot;facsimiletelephonenumber&quot;
+ UserFieldDatatype(13,0) = &quot;E-MAIL&quot;
+ UserFieldDatatype(13,1) = &quot;mail&quot;
+ UserFieldDatatype(14,0) = &quot;STATE&quot;
+ UserFieldDatatype(14,1) = &quot;st&quot;
+ FilePath = GetPathSettings(&quot;Config&quot;, False) &amp; &quot;/&quot; &amp; &quot;UserData.dat&quot;
+ DlgUserFields = LoadDialog(&quot;Gimmicks&quot;,&quot;UserfieldDlg&quot;)
+ SystemPath = ConvertFromUrl(FilePath)
+ DlgUserFields.Model.Label10.Label = ReplaceString(DlgUserFields.Model.Label10.Label, &quot;&apos;&quot; &amp; SystemPath &amp; &quot;&apos;&quot;, &quot;&lt;ConfigDir&gt;&quot;)
+ DlgUserFields.Model.Label10.Label = ReplaceString(DlgUserFields.Model.Label10.Label, GetProductName(), &quot;&lt;PRODUCTNAME&gt;&quot;)
+ DlgUserFields.Model.cmdSelect.HelpText = ReplaceString(DlgUserFields.Model.cmdSelect.HelpText, GetProductName(), &quot;&lt;PRODUCTNAME&gt;&quot;)
+ ScrollBarValue = 0
+ oUserDataAccess = GetRegistryKeyContent(&quot;org.openoffice.UserProfile/Data&quot;, True)
+ InitializeUserFamily()
+ FillDialog()
+ DlgUserFields.Execute
+ DlgUserFields.Dispose()
+End Sub
+
+
+Sub FillDialog()
+Dim a as Integer
+ With DlgUserFields
+ For a = 1 To SBTBCount
+ .GetControl(&quot;Label&quot; &amp; a).Model.Label = UserFieldDataType(a-1,0)
+ .GetControl(&quot;TextField&quot; &amp; a).Model.Text = UserFieldFamily(CurFieldIndex, a-1)
+ Next a
+ .Model.ScrollBar1.ScrollValueMax = (SBMAXFIELDINDEX+1) - SBTBCOUNT
+ .Model.ScrollBar1.BlockIncrement = SBTBCOUNT
+ .Model.ScrollBar1.LineIncrement = 1
+ .Model.ScrollBar1.ScrollValue = ScrollBarValue
+ End With
+End Sub
+
+
+Sub ScrollControls()
+ ScrollTextFieldInfo(ScrollBarValue)
+ ScrollBarValue = DlgUserFields.Model.ScrollBar1.ScrollValue
+ If (ScrollBarValue + SBTBCOUNT) &gt;= SBMAXFIELDINDEX + 1 Then
+ ScrollBarValue = (SBMAXFIELDINDEX + 1) - SBTBCOUNT
+ End If
+ FillupTextFields()
+End Sub
+
+
+Sub ScrollTextFieldInfo(ByVal iScrollValue as Integer)
+Dim a as Integer
+Dim CurIndex as Integer
+ For a = 1 To SBTBCOUNT
+ CurIndex = (a-1) + iScrollValue
+ UserFieldFamily(CurFieldIndex,CurIndex) = DlgUserFields.GetControl(&quot;TextField&quot; &amp; a).Model.Text
+ Next a
+End Sub
+
+
+Sub StopMacro()
+ DlgUserFields.EndExecute
+End Sub
+
+
+Sub SaveSettings()
+Dim n as Integer
+Dim m as Integer
+Dim MaxIndex as Integer
+ ScrollTextFieldInfo(DlgUserFields.Model.ScrollBar1.ScrollValue)
+ MaxIndex = Ubound(UserFieldFamily(), 1)
+ Dim FileStrings(MaxIndex) as String
+ For n = 0 To MaxIndex
+ FileStrings(n) = &quot;&quot;
+ For m = 0 To SBMAXFIELDINDEX
+ FileStrings(n) = FileStrings(n) &amp; UserFieldFamily(n,m) &amp; &quot;;&quot;
+ Next m
+ Next n
+ SaveDataToFile(FilePath, FileStrings(), True)
+End Sub
+
+
+Sub ToggleButtons(ByVal Index as Integer)
+Dim i as Integer
+ CurFieldIndex = Index
+ DlgUserFields.Model.cmdNextUser.Enabled = CurFieldIndex &lt;&gt; Ubound(UserFieldFamily(), 1)
+ DlgUserFields.Model.cmdPrevUser.Enabled = CurFieldIndex &lt;&gt; 0
+End Sub
+
+
+Sub InitializeUserFamily()
+Dim FirstIndex as Integer
+Dim UserFieldstrings() as String
+Dim LocStrings() as String
+Dim bFileExists as Boolean
+Dim n as Integer
+Dim m as Integer
+ bFileExists = LoadDataFromFile(GetPathSettings(&quot;Config&quot;, False) &amp; &quot;/&quot; &amp; &quot;UserData.dat&quot;, UserFieldStrings())
+ If bFileExists Then
+ FirstIndex = Ubound(UserFieldStrings())
+ ReDim Preserve UserFieldFamily(FirstIndex, SBMAXFIELDINDEX) as String
+ For n = 0 To FirstIndex
+ LocStrings() = ArrayOutofString(UserFieldStrings(n), &quot;;&quot;)
+ For m = 0 To SBMAXFIELDINDEX
+ UserFieldFamily(n,m) = LocStrings(m)
+ Next m
+ Next n
+ Else
+ ReDim Preserve UserFieldFamily(0,SBMAXFIELDINDEX) as String
+ For m = 0 To SBMAXFIELDINDEX
+ UserFieldFamily(0,m) = oUserDataAccess.GetByName(UserFieldDataType(m,1))
+ Next m
+ End If
+ ToggleButtons(0)
+End Sub
+
+
+Sub AddRecord()
+Dim i as Integer
+Dim MaxIndex as Integer
+ For i = 1 To SBTBCount
+ DlgUserFields.GetControl(&quot;TextField&quot; &amp; i).Model.Text = &quot;&quot;
+ Next i
+ MaxIndex = Ubound(UserFieldFamily(),1)
+ ReDim Preserve UserFieldFamily(MaxIndex + 1, SBMAXFIELDINDEX) as String
+ ToggleButtons(MaxIndex + 1, 1)
+End Sub
+
+
+Sub FillupTextFields()
+Dim a as Integer
+Dim CurIndex as Integer
+ For a = 1 To SBTBCOUNT
+ CurIndex = (a-1) + ScrollBarValue
+ DlgUserFields.GetControl(&quot;Label&quot; &amp; a).Model.Label = UserFieldDataType(CurIndex,0)
+ DlgUserFields.GetControl(&quot;TextField&quot; &amp; a).Model.Text = UserFieldFamily(CurFieldIndex, CurIndex)
+ Next a
+End Sub
+
+
+Sub StepToRecord(aEvent as Object)
+Dim iStep as Integer
+ iStep = CInt(aEvent.Source.Model.Tag)
+ ScrollTextFieldInfo(ScrollBarValue)
+ ToggleButtons(CurFieldIndex + iStep)
+ FillUpTextFields()
+End Sub
+
+
+Sub SelectCurrentFields()
+Dim MaxIndex as Integer
+Dim i as Integer
+ ScrollTextFieldInfo(ScrollBarValue)
+ MaxIndex = Ubound(UserFieldFamily(),2)
+ For i = 0 To MaxIndex
+ oUserDataAccess.ReplaceByName(UserFieldDataType(i,1), UserFieldFamily(CurFieldIndex, i))
+ Next i
+ oUserDataAccess.commitChanges()
+End Sub
+
+
+Sub DeleteCurrentSettings()
+Dim n as Integer
+Dim m as Integer
+Dim MaxIndex as Integer
+ MaxIndex = Ubound(UserFieldFamily(),1)
+ If CurFieldIndex &lt; MaxIndex Then
+ For n = CurFieldIndex To MaxIndex - 1
+ For m = 0 To SBMAXFIELDINDEX
+ UserFieldFamily(n,m) = UserFieldFamily(n + 1,m)
+ Next m
+ Next n
+ Else
+ CurFieldIndex = MaxIndex - 1
+ End If
+ ReDim Preserve UserFieldFamily(MaxIndex-1, SBMAXfIELDINDEX) as String
+ FillupTextFields()
+ ToggleButtons(CurFieldIndex)
+End Sub</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Gimmicks/dialog.xlb b/test/user-template/user/basic/Gimmicks/dialog.xlb
new file mode 100644
index 000000000000..22271dacb14b
--- /dev/null
+++ b/test/user-template/user/basic/Gimmicks/dialog.xlb
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Gimmicks" library:readonly="false" library:passwordprotected="false">
+ <library:element library:name="UserfieldDlg"/>
+ <library:element library:name="ReadFolderDlg"/>
+</library:library>
diff --git a/test/user-template/user/basic/Gimmicks/script.xlb b/test/user-template/user/basic/Gimmicks/script.xlb
new file mode 100644
index 000000000000..5c820ba43e0c
--- /dev/null
+++ b/test/user-template/user/basic/Gimmicks/script.xlb
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Gimmicks" library:readonly="false" library:passwordprotected="false">
+ <library:element library:name="GetTexts"/>
+ <library:element library:name="Userfields"/>
+ <library:element library:name="ChangeAllChars"/>
+ <library:element library:name="AutoText"/>
+ <library:element library:name="ReadDir"/>
+</library:library>
diff --git a/test/user-template/user/basic/ImportWizard/API.xba b/test/user-template/user/basic/ImportWizard/API.xba
new file mode 100644
index 000000000000..d38ba68d832d
--- /dev/null
+++ b/test/user-template/user/basic/ImportWizard/API.xba
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="API" script:language="StarBasic">Declare Function RegOpenKeyEx Lib &quot;advapi32.dll&quot; Alias &quot;RegOpenKeyExA&quot; _
+ (ByVal hKey As Long, _
+ ByVal lpSubKey As String, _
+ ByVal ulOptions As Long, _
+ ByVal samDesired As Long, _
+ phkResult As Long) As Long
+
+Declare Function RegQueryValueExString Lib &quot;advapi32.dll&quot; Alias &quot;RegQueryValueExA&quot; _
+ (ByVal hKey As Long, _
+ ByVal lpValueName As String, _
+ ByVal lpReserved As Long, _
+ lpType As Long, _
+ lpData As String, _
+ lpcbData As Long) As Long
+
+Declare Function RegQueryValueExLong Lib &quot;advapi32.dll&quot; Alias &quot;RegQueryValueExA&quot; _
+ (ByVal hKey As Long, _
+ ByVal lpValueName As String, _
+ ByVal lpReserved As Long, _
+ lpType As Long, _
+ lpData As Long, _
+ lpcbData As Long) As Long
+
+Declare Function RegQueryValueExNULL Lib &quot;advapi32.dll&quot; Alias &quot;RegQueryValueExA&quot; _
+ (ByVal hKey As Long, _
+ ByVal lpValueName As String, _
+ ByVal lpReserved As Long, _
+ lpType As Long, _
+ ByVal lpData As Long, _
+ lpcbData As Long) As Long
+
+Declare Function RegCloseKeyA Lib &quot;advapi32.dll&quot; Alias &quot;RegCloseKey&quot; _
+ (ByVal hKey As Long) As Long
+
+
+Public Const HKEY_CLASSES_ROOT = &amp;H80000000
+Public Const HKEY_CURRENT_USER = &amp;H80000001
+Public Const HKEY_LOCAL_MACHINE = &amp;H80000002
+Public Const HKEY_USERS = &amp;H80000003
+Public Const KEY_ALL_ACCESS = &amp;H3F
+Public Const REG_OPTION_NON_VOLATILE = 0
+Public Const REG_SZ As Long = 1
+Public Const REG_DWORD As Long = 4
+Public Const ERROR_NONE = 0
+Public Const ERROR_BADDB = 1
+Public Const ERROR_BADKEY = 2
+Public Const ERROR_CANTOPEN = 3
+Public Const ERROR_CANTREAD = 4
+Public Const ERROR_CANTWRITE = 5
+Public Const ERROR_OUTOFMEMORY = 6
+Public Const ERROR_INVALID_PARAMETER = 7
+Public Const ERROR_ACCESS_DENIED = 8
+Public Const ERROR_INVALID_PARAMETERS = 87
+Public Const ERROR_NO_MORE_ITEMS = 259
+&apos;Public Const KEY_READ = &amp;H20019
+
+
+Function OpenRegKey(lBaseKey As Long, sKeyName As String) As Variant
+Dim LocKeyValue
+Dim hKey as Long
+Dim lRetValue as Long
+ lRetValue = RegOpenKeyEx(lBaseKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
+&apos; lRetValue = QueryValue(HKEY_LOCAL_MACHINE, &quot;SOFTWARE\Microsoft\Outlook Express\5.0\Default Settings&quot;, &quot;Revocation Checking&quot;)
+ If hKey &lt;&gt; 0 Then
+ RegCloseKeyA (hKey)
+ End If
+ OpenRegKey() = lRetValue
+End Function
+
+
+Function GetDefaultPath(CurOffice as Integer) As String
+Dim sPath as String
+Dim Index as Integer
+ Select Case Wizardmode
+ Case SBMICROSOFTMODE
+ Index = Applications(CurOffice,SBAPPLKEY)
+ If GetGUIType = 1 Then &apos; Windows
+ sPath = QueryValue(HKEY_LOCAL_MACHINE, sKeyName(Index), sValueName(Index))
+ Else
+ sPath = &quot;&quot;
+ End If
+ If sPath = &quot;&quot; Then
+ sPath = SOWorkPath
+ End If
+ GetDefaultPath = sPath
+ Case SBXMLMODE
+ GetDefaultPath = SOWorkPath
+ End Select
+End Function
+
+
+Function GetTemplateDefaultPath(Index as Integer) As String
+Dim sLocTemplatePath as String
+Dim sLocProgrampath as String
+Dim Progstring as String
+Dim PathList()as String
+Dim Maxindex as Integer
+Dim OldsLocTemplatePath
+Dim sTemplateKeyName as String
+Dim sTemplateValueName as String
+ On Local Error Goto NOVAlIDSYSTEMPATH
+ Select Case WizardMode
+ Case SBMICROSOFTMODE
+ If GetGUIType = 1 Then &apos; Windows
+ &apos; Template directory of Office 97
+ sTemplateKeyName = &quot;Software\Microsoft\Office\8.0\Common\FileNew\LocalTemplates&quot;
+ sTemplateValueName = &quot;&quot;
+ sLocTemplatePath = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
+
+ If sLocTemplatePath = &quot;&quot; Then
+ &apos; Retrieve the template directory of Office 2000
+ &apos; Unfortunately there is no existing note about the template directory in
+ &apos; the whole registry.
+
+ &apos; Programdirectory of Office 2000
+ sTemplateKeyName = &quot;Software\Microsoft\Office\9.0\Common\InstallRoot&quot;
+ sTemplateValueName = &quot;Path&quot;
+ sLocProgrampath = QueryValue(HKEY_LOCAL_MACHINE, sTemplateKeyName, sTemplateValueName)
+ If sLocProgrampath &lt;&gt; &quot;&quot; Then
+ If Right(sLocProgrampath, 1) &lt;&gt; &quot;\&quot; Then
+ sLocProgrampath = sLocProgrampath &amp; &quot;\&quot;
+ End If
+ PathList() = ArrayoutofString(sLocProgrampath,&quot;\&quot;,Maxindex)
+ Progstring = &quot;\&quot; &amp; PathList(Maxindex-1) &amp; &quot;\&quot;
+ OldsLocTemplatePath = DeleteStr(sLocProgramPath,Progstring)
+
+ sLocTemplatePath = OldsLocTemplatePath &amp; &quot;\&quot; &amp; &quot;Templates&quot;
+
+ &apos; Does this subdirectory &quot;templates&quot; exist at all
+ If oUcb.Exists(sLocTemplatePath) Then
+ &apos; If Not the main directory of the office is the base
+ sLocTemplatePath = OldsLocTemplatePath
+ End If
+ Else
+ sLocTemplatePath = SOWorkPath
+ End If
+ End If
+ GetTemplateDefaultPath = ConvertToUrl(sLocTemplatePath)
+ Else
+ GetTemplateDefaultPath = SOWorkPath
+ End If
+ Case SBXMLMODE
+ If Index = 3 Then
+ &apos; Helper Application with no templates
+ GetTemplateDefaultPath = SOWorkPath
+ Else
+ GetTemplateDefaultPath = SOTemplatePath
+ End If
+ End Select
+NOVALIDSYSTEMPATH:
+ If Err &lt;&gt; 0 Then
+ GetTemplateDefaultPath() = SOWorkPath
+ Resume ONITGOES
+ ONITGOES:
+ End If
+End Function
+
+
+Function QueryValueEx(ByVal lhKey, ByVal szValueName As String, vValue As String) As Long
+Dim cch As Long
+Dim lrc As Long
+Dim lType As Long
+Dim lValue As Long
+Dim sValue As String
+Dim Empty
+
+ On Error GoTo QueryValueExError
+
+ lrc = RegQueryValueExNULL(lhKey, szValueName, 0&amp;, lType, 0&amp;, cch)
+ If lrc &lt;&gt; ERROR_NONE Then Error 5
+ Select Case lType
+ Case REG_SZ:
+ sValue = String(cch, 0)
+ lrc = RegQueryValueExString(lhKey, szValueName, 0&amp;, lType, sValue, cch)
+ If lrc = ERROR_NONE Then
+ vValue = Left$(sValue, cch)
+ Else
+ vValue = Empty
+ End If
+ Case REG_DWORD:
+ lrc = RegQueryValueExLong(lhKey, szValueName, 0&amp;, lType, lValue, cch)
+ If lrc = ERROR_NONE Then
+ vValue = lValue
+ End If
+ Case Else
+ lrc = -1
+ End Select
+QueryValueExExit:
+ QueryValueEx = lrc
+ Exit Function
+QueryValueExError:
+ Resume QueryValueExExit
+End Function
+
+
+Function QueryValue(BaseKey As Long, sKeyName As String, sValueName As String) As Variant
+Dim lRetVal As Long &apos; Returnvalue API-Call
+Dim hKey As Long &apos; Onen key handle
+Dim vValue As String &apos; Key value
+
+ lRetVal = RegOpenKeyEx(BaseKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
+ lRetVal = QueryValueEx(hKey, sValueName, vValue)
+ RegCloseKeyA (hKey)
+ QueryValue = vValue
+End Function
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/ImportWizard/DialogModul.xba b/test/user-template/user/basic/ImportWizard/DialogModul.xba
new file mode 100644
index 000000000000..cb4b94a9ba13
--- /dev/null
+++ b/test/user-template/user/basic/ImportWizard/DialogModul.xba
@@ -0,0 +1,656 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="DialogModul" script:language="StarBasic">Option Explicit
+
+Public Const bDebugWizard = True
+
+Public Const SBFIRSTAPPLCHECKED = 0
+Public Const SBSECONDAPPLCHECKED = 1
+Public Const SBTHIRDAPPLCHECKED = 2
+Public Const SBFOURTHAPPLCHECKED = 3
+Public bFilterTracingAvailable as Boolean
+Public WizardMode as String
+Public Const SBMICROSOFTMODE = &quot;MS&quot;
+Public Const SBXMLMODE = &quot;SO&quot;
+&apos; The absolute maximal Number of possible Applications
+Public Const Twip = 425
+Public Const SBMAXAPPLCOUNT = 4
+Public MaxApplCount as Integer
+Public CurOffice As Integer
+Public SOBitmapPath As String
+Public SOWorkPath As String
+Public SOTemplatePath as String
+Public bCancelTask As Boolean
+Public bDoKeepApplValues as Boolean
+Public iApplSection as Integer
+Public oUcb as Object
+Public PathSeparator as String
+
+Public ApplCount as Integer
+Public sKeyName(SBMAXAPPLCOUNT-1) as String
+Public sValueName(SBMAXAPPLCOUNT-1) as String
+Public sCRLF as String
+Public MSFilterName(5,4) as String
+Public XMLFilterName(7,3) as String &apos;Number of different formats
+Public FilterTracingLogPath(2) as String
+Public bMSApplFilterTracingAvailable(2) as String
+Public bTakeOverTargetName(2) as Boolean
+Public bTakeOverPathName(2) as Boolean
+
+&apos; e.g.:
+&apos; XMLFilterName(x,0) = &quot;sdw&quot; &apos; in documents we take the extensions; in SO-templates the appropriate Filtername
+&apos; XMLFilterName(x,1) = &quot;swriter: StarWriter 5.0&quot; &apos; the filtername of the target-format
+&apos; XMLFilterName(x,2) = &quot;sxw&quot; &apos; the target extension
+
+Public Applications(SBMAXAPPLCOUNT-1,9)
+
+Public Const SBAPPLCONVERT = 0
+Public Const SBDOCCONVERT = 1
+Public Const SBDOCRECURSIVE = 2
+Public Const SBDOCSOURCE = 3
+Public Const SBDOCTARGET = 4
+Public Const SBTEMPLCONVERT = 5
+Public Const SBTEMPLRECURSIVE = 6
+Public Const SBTEMPLSOURCE = 7
+Public Const SBTEMPLTARGET = 8
+Public Const SBAPPLKEY = 9
+Public XMLTemplateList()
+
+&apos; Application-relating Data are stored in this Array
+&apos; according to the following structure:
+&apos; Applications(X,0) = True/False (Application is to be converted)
+&apos; Applications(X,1) = True/False (Documents are to be converted)
+&apos; Applications(X,2) = True/False (Including Subdirectories)
+&apos; Applications(X,3) = &quot;File:///...&quot; (SourceUrl of the documents)
+&apos; Applications(X,4) = &quot;File///:...&quot; (TargetUrl of the documents)
+&apos; Applications(X,5) = True/False (Templates are to be converted)
+&apos; Applications(X,6) = True/False (Including Subdirectories)
+&apos; Applications(X,7) = &quot;File:///...&quot; (SourceUrl of the templates)
+&apos; Applications(X,8) = &quot;File:///...&quot; (TargetUrl of the templates)
+&apos; Applications(X,9) = 0 (Key to the original Index of the Applications)
+
+Public Const SBMAXEXTENSIONLENGTH = 15
+
+
+Sub FillStep_Welcome()
+Dim i as Integer
+&apos; bDoKeepApplValues = False
+ ImportDialogArea.Title = sTitle
+ With ImportDialog
+ .cmdHelp.Label = sHelpButton
+ .cmdCancel.Label = sCancelButton
+ .cmdBack.Label = sBackButton
+ .cmdGoOn.Label = sNextButton
+ .WelcomeTextLabel.Label = sWelcomeTextLabel1
+ .WelcomeTextLabel3.Label = sWelcomeTextLabel3
+
+ .optMSDocuments.Label = sContainerName(0)
+ .chkMSApplication1.Label = sMsDocumentCheckbox(0)
+ .chkMSApplication2.Label = sMsDocumentCheckbox(1)
+ .chkMSApplication3.Label = sMsDocumentCheckbox(2)
+
+ .optSODocuments.Label = sContainerName(1)
+ .chkSOApplication1.Label = sSODocumentCheckbox(0)
+ .chkSOApplication2.Label = sSODocumentCheckbox(1)
+ .chkSOApplication3.Label = sSODocumentCheckbox(2)
+ .chkSOApplication4.Label = sSODocumentCheckbox(3)
+ .cmdBack.Enabled = False
+ .Step = 1
+
+ If Not oFactoryKey.hasbyName(&quot;com.sun.star.text.TextDocument&quot;) Then
+ .chkLogfile.State = 0
+ .chkLogfile.Enabled = False
+ End If
+ End With
+ CheckModuleInstallation()
+ ToggleNextButton()
+End Sub
+
+
+Sub FillStep_InputPaths(OfficeIndex as Integer, bStartup as Boolean)
+Dim Index as Integer
+Dim oNullObject as Object
+ If bStartup And Not bDoKeepApplValues Then
+ If ImportDialog.optMSDocuments.State = 1 Then
+ SetupMSConfiguration()
+ Else
+ SetupXMLConfiguration()
+ End If
+ FillUpApplicationList()
+ End If
+ CurOffice = OfficeIndex
+ Index = Applications(CurOffice,SBAPPLKEY)
+ InitializePathsforCurrentApplication(Index)
+ With ImportDialog
+ .chkTemplatePath.Label = sTemplateCheckbox(Index)
+ .chkDocumentPath.State = Abs(Applications(CurOffice,SBDOCCONVERT))
+ .chkDocumentSearchSubDir.State = Abs(Applications(CurOffice,SBDOCRECURSIVE))
+ .txtDocumentImportPath.Text = ConvertFromUrl(Applications(CurOffice,SBDOCSOURCE))
+ .txtDocumentExportPath.Text = ConvertFromUrl(Applications(CurOffice,SBDOCTARGET))
+ .hlnDocuments.Label = sProgressMoreDocs
+ If WizardMode = SBXMLMODE Then
+ ImportDialogArea.Title = sTitle &amp; &quot; - &quot; &amp; sSODocumentCheckBox(Index)
+ Else
+ ImportDialogArea.Title = sTitle &amp; &quot; - &quot; &amp; sMSDocumentCheckBox(Index)
+ End If
+ If WizardMode = SBXMLMODE AND Index = 3 Then
+ &apos; Note: SO-Helper Applications are partly treated like templates although they only have documents
+ .hlnTemplates.Label = sProgressMoreDocs
+ .chkTemplatePath.Label = sSOHelperDocuments(0,0)
+ .chkTemplatePath.Enabled = oFactoryKey.HasByName(sSOHelperDocuments(0,1))
+ .chkDocumentPath.Label = sSOHelperDocuments(1,0)
+ .chkDocumentPath.Enabled = oFactoryKey.HasByName(sSOHelperDocuments(1,1))
+ Else
+ .chkTemplatePath.Enabled = True
+ .chkDocumentPath.Enabled = True
+ .chkTemplatePath.Label = sTemplateCheckbox(Index)
+ .chkDocumentPath.Label = sDocumentCheckbox(Index)
+ .hlnTemplates.Label = sProgressMoreTemplates
+ End If
+ .chkTemplatePath.State = Abs(Applications(CurOffice,SBTEMPLCONVERT))
+ ToggleInputPaths(oNullObject,&quot;Template&quot;)
+ ToggleInputPaths(oNullObject,&quot;Document&quot;)
+ .chkTemplateSearchSubDir.State = Abs(Applications(CurOffice,SBTEMPLRECURSIVE))
+ .txtTemplateImportPath.Text = ConvertFromUrl(Applications(CurOffice,SBTEMPLSOURCE))
+ .txtTemplateExportPath.Text = ConvertFromUrl(Applications(CurOffice,SBTEMPLTARGET))
+ .cmdGoOn.Label = sNextButton
+ .cmdBack.Enabled = True
+ ImportDialog.Step = 2
+ End With
+ ImportDialogArea.GetControl(&quot;chkTemplatePath&quot;).SetFocus()
+ ToggleNextButton()
+End Sub
+
+
+Sub FillUpApplicationList()
+Dim i as Integer
+Dim a as Integer
+Dim BoolValue as Boolean
+ If Not bDoKeepApplValues Then
+ a = 0
+ For i = 1 To ApplCount
+ If ImportDialog.optMSDocuments.State = 1 Then
+ BoolValue = ImportDialogArea.GetControl(&quot;chkMSApplication&quot; &amp; i).Model.State = 1
+ Else
+ BoolValue = ImportDialogArea.GetControl(&quot;chkSOApplication&quot; &amp; i).Model.State = 1
+ End If
+ Applications(a,SBAPPLCONVERT) = BoolValue
+ Applications(a,SBDOCCONVERT) = BoolValue
+ Applications(a,SBDOCRECURSIVE) = BoolValue
+ Applications(a,SBDOCSOURCE) = &quot;&quot; &apos; GetDefaultPath(i)
+ Applications(a,SBDOCTARGET) = &quot;&quot; &apos; SOWorkPath
+ Applications(a,SBTEMPLCONVERT) = BoolValue
+ Applications(a,SBTEMPLRECURSIVE) = BoolValue
+ Applications(a,SBTEMPLSOURCE) = &quot;&quot; &apos; GetTemplateDefaultPath(i)
+ Applications(a,SBTEMPLTARGET) = &quot;&quot; &apos; GetTargetTemplatePath(i)
+ Applications(a,SBAPPLKEY) = i-1
+ If BoolValue Then
+ a = a + 1
+ End If
+ Next i
+ ApplCount = a
+ End If
+End Sub
+
+
+Sub InitializePathsforCurrentApplication(i as Integer)
+ AssignPathToCurrentApplication(SBDOCSOURCE, GetDefaultPath(i))
+ AssignPathToCurrentApplication(SBDOCTARGET, SOWorkPath)
+ AssignPathToCurrentApplication(SBTEMPLSOURCE, GetTemplateDefaultPath(i))
+ AssignPathToCurrentApplication(SBTEMPLTARGET, GetTargetTemplatePath(i))
+End Sub
+
+
+Sub AssignPathToCurrentApplication(Index as Integer, NewPath as String)
+ If Applications(CurOffice,Index) = &quot;&quot; Then
+ If CurOffice &gt; 0 Then
+ Applications(CurOffice,Index) = Applications(CurOffice-1,Index)
+ Else
+ Applications(CurOffice,Index) = NewPath
+ End If
+ End If
+End Sub
+
+
+Sub SaveStep_InputPath()
+ Applications(CurOffice,SBDOCCONVERT) = ImportDialog.chkDocumentPath.State = 1
+ Applications(CurOffice,SBDOCRECURSIVE) = ImportDialog.chkDocumentSearchSubDir.State = 1
+ Applications(CurOffice,SBDOCSOURCE) = ConvertToURL(ImportDialog.txtDocumentImportPath.Text)
+ Applications(CurOffice,SBDOCTARGET) = ConvertToUrl(ImportDialog.txtDocumentExportPath.Text)
+ Applications(CurOffice,SBTEMPLCONVERT) = ImportDialog.chkTemplatePath.State = 1
+ Applications(CurOffice,SBTEMPLRECURSIVE) = ImportDialog.chkTemplateSearchSubDir.State = 1
+ Applications(CurOffice,SBTEMPLSOURCE) = ConvertToURL(ImportDialog.txtTemplateImportPath.Text)
+ Applications(CurOffice,SBTEMPLTARGET) = ConvertToURL(ImportDialog.txtTemplateExportPath.Text)
+End Sub
+
+
+Sub ToggleInputPaths(aEvent as Object, Optional sDocType)
+Dim bDoEnable as Boolean
+Dim sLocDocType as String
+Dim oCheckBox as Object
+ If Not IsNull(aEvent) Then
+ sLocDocType = aEvent.Source.Model.Tag
+ Else
+ sLocDocType = sDocType
+ End If
+ With ImportDialogArea
+ oCheckBox = .GetControl(&quot;chk&quot; &amp; sLocDocType &amp; &quot;Path&quot;).Model
+ bDoEnable = oCheckBox.State = 1 And oCheckBox.Enabled
+ .GetControl(&quot;lbl&quot; &amp; sLocDocType &amp; &quot;Import&quot;).Model.Enabled = bDoEnable
+ .GetControl(&quot;lbl&quot; &amp; sLocDocType &amp; &quot;Export&quot;).Model.Enabled = bDoEnable
+ .GetControl(&quot;txt&quot; &amp; sLocDocType &amp; &quot;ImportPath&quot;).Model.Enabled = bDoEnable
+ .GetControl(&quot;txt&quot; &amp; sLocDocType &amp; &quot;ExportPath&quot;).Model.Enabled = bDoEnable
+ .GetControl(&quot;chk&quot; &amp; sLocDocType &amp; &quot;SearchSubDir&quot;).Model.Enabled = bDoEnable
+ .GetControl(&quot;cmd&quot; &amp; sLocDocType &amp; &quot;Import&quot;).Model.Enabled = bDoEnable
+ .GetControl(&quot;cmd&quot; &amp; sLocDocType &amp; &quot;Export&quot;).Model.Enabled = bDoEnable
+ End With
+ ToggleNextButton()
+End Sub
+
+
+Function MakeSummaryString()
+Dim sTmpText As String
+Dim i as Integer
+Dim Index as Integer
+Dim sAddText as String
+ For i = 0 To ApplCount -1
+ Index = Applications(i,SBAPPLKEY)
+ GetFilterTracingLogPath(i, Index)
+ If Applications(i,SBTEMPLCONVERT) Then
+ &apos; Templates are to be converted
+ sAddText = &quot;&quot;
+ If WizardMode = SBMICROSOFTMODE Then
+ sAddText = sSumMSTemplates(Index) &amp; sCRLF
+ Else
+ sAddText = sSumSOTemplates(Index) &amp; sCRLF
+ End If
+ sTmpText = sTmpText &amp; sAddText &amp; ConvertFromUrl(Applications(i,SBTEMPLSOURCE)) &amp; sCRLF
+ If Applications(i,SBTEMPLRECURSIVE) Then
+ &apos; Including Subdirectories
+ sTmpText = sTmpText &amp; sSumInclusiveSubDir &amp; sCRLF
+ End If
+ sTmpText = sTmpText &amp; sSumSaveDocuments &amp; sCRLF
+ sTmpText = sTmpText &amp; ConvertFromUrl(Applications(i,SBTEMPLTARGET)) &amp; sCRLF
+ sTmpText = sTmpText &amp; sCRLF
+ End If
+
+ If Applications(i,SBDOCCONVERT) Then
+ &apos; Documents are to be converted
+ If WizardMode = SBMICROSOFTMODE Then
+ sAddText = sSumMSDocuments(Index) &amp; sCRLF
+ Else
+ sAddText = sSumSODocuments(Index) &amp; sCRLF
+ End If
+ sTmpText = sTmpText &amp; sAddText &amp; ConvertFromUrl(Applications(i,SBDOCSOURCE)) &amp; sCRLF
+
+ If Applications(i,SBDOCRECURSIVE) Then
+ &apos; Including Subdirectories
+ sTmpText = sTmpText &amp; sSumInclusiveSubDir &amp; sCRLF
+ End If
+
+ sTmpText = sTmpText &amp; sSumSaveDocuments &amp; sCRLF
+ sTmpText = sTmpText &amp; ConvertFromUrl(Applications(i,SBDOCTARGET)) &amp; sCRLF
+ sTmpText = sTmpText &amp; sCRLF
+ End If
+ Next i
+ MakeSummaryString = sTmpText
+End Function
+
+
+Sub FillStep_Summary()
+ ImportDialogArea.Title = sTitle
+ With ImportDialog
+ .SummaryTextbox.Text = MakeSummaryString()
+ .cmdGoOn.Enabled = .SummaryTextbox.Text &lt;&gt; &quot;&quot;
+ .cmdGoOn.Label = sBeginButton
+ .SummaryHeaderLabel.Label = sSummaryHeader
+ .Step = 3
+ End With
+ ImportDialogArea.GetControl(&quot;SummaryHeaderLabel&quot;).SetFocus()
+End Sub
+
+
+Sub FillStep_Progress()
+ With ImportDialog
+ .cmdBack.Enabled = False
+ .cmdGoOn.Enabled = False
+ .hlnProgress.Label = sProgressPage_1
+ .LabelRetrieval.FontWeight = com.sun.star.awt.FontWeight.BOLD
+ .LabelRetrieval.Label = sProgressPage_2
+ .LabelCurProgress.Label = sProgressPage_3
+ .LabelCurDocumentRetrieval.Label = &quot;&quot;
+ .LabelCurTemplateRetrieval.Label = &quot;&quot;
+ .LabelCurDocument.Label = &quot;&quot;
+ .Step = 4
+ End With
+ ImportDialogArea.GetControl(&quot;LabelRetrieval&quot;).SetFocus()
+ If ImportDialog.chkLogfile.State = 1 Then
+ ImportDialog.cmdShowLogFile.DefaultButton = True
+ End If
+End Sub
+
+
+Sub GetFilterTracingLogPath(i as Integer, Index as Integer)
+Dim aNodePath(0) as new com.sun.star.beans.PropertyValue
+Dim oMasterKey
+Dim oImportKey
+Dim oWordKey
+Dim oExcelkey
+Dim oPowerpointKey
+Dim oFilterService
+ aNodePath(0).Name = &quot;nodepath&quot;
+ aNodePath(0).Value = &quot;org.openoffice.Office.Tracing&quot;
+ oFilterService = createUnoService(&quot;com.sun.star.util.FilterTracer&quot;)
+ bFilterTracingAvailable = Not IsNull(oFilterService)
+ If bFilterTracingAvailable Then
+ oMasterkey = GetRegistryKeyContent(&quot;org.openoffice.Office.Tracing/&quot;)
+ If oMasterKey.hasbyName(&quot;Import&quot;) Then
+ oImportKey = GetRegistryKeyContent(&quot;org.openoffice.Office.Tracing/Import&quot;)
+ bMSApplFilterTracingAvailable(i) = CheckMSImportAvailability(oImportkey, MSFiltername(Index, 4), FilterTracingLogPath(i), bTakeOverTargetName(i), bTakeOverPathName(i))
+ End If
+ End If
+End Sub
+
+
+Function CheckMSImportAvailability(oImportkey, MSApplName as String, MSLogPath as String, bTakeOverTargetname as String, bTakeOverpathName as String) as Boolean
+Dim bApplIsAvailable as Boolean
+Dim oApplKey
+Dim LocApplName as String
+Dim LocApplPath as String
+ bApplIsAvailable = oImportKey.hasbyName(MSApplName)
+ If bApplIsAvailable Then
+ oApplKey = oImportKey.getByName(MSApplName)
+ bApplIsAvailable = oApplKey.On
+ LocApplName = oApplKey.Name
+ LocApplPath = oApplKey.Path
+ bTakeOverTargetName = (LocApplName = &quot;&quot;)
+ bTakeOverPathName = (LocApplPath = &quot;&quot;)
+ MSLogPath = LocApplPath &amp; &quot;/&quot; &amp; LocApplName &amp; &quot;.log&quot;
+ End If
+ CheckMSImportAvailability() = bApplIsAvailable
+End Function
+
+
+
+Sub SetupMSConfiguration()
+ iApplSection = 0
+ Wizardmode = SBMICROSOFTMODE
+ MaxApplCount = 3
+ ApplCount = 3
+ &apos; chkTemplatePath-Captions
+ GetApplResourceArray(1009 + iApplSection, ApplCount, sTemplateCheckBox())
+ &apos; DocumentCheckbox- Captions
+ GetApplResourceArray(1009 + iApplSection + ApplCount, ApplCount, sDocumentCheckBox())
+
+ sKeyName(0) = &quot;Software\Microsoft\Office\8.0\Word\Options&quot;
+ sKeyName(1) = &quot;Software\Microsoft\Office\8.0\Excel\Microsoft Excel&quot;
+ sKeyName(2) = &quot;Software\Microsoft\Office\8.0\PowerPoint\Recent Folder List\Default&quot;
+
+ sValueName(0) = &quot;DOC-PATH&quot;
+ sValueName(1) = &quot;DefaultPath&quot;
+ sValueName(2) = &quot;&quot;
+
+&apos; See definition of Filtername-Array about meaning of fields
+ MSFilterName(0,0) = &quot;doc|docx|docm&quot;
+ MSFilterName(0,1) = &quot;writer8|writer8|writer8&quot;
+ MSFilterName(0,2) = &quot;odt&quot;
+ MSFilterName(0,3) = sMSDocumentCheckBox(0)
+ MSFilterName(0,4) = &quot;Word&quot;
+
+
+ MSFilterName(1,0) = &quot;xls|xlsx|xlsm&quot;
+ MSFilterName(1,1) = &quot;calc8|calc8|calc8&quot;
+ MSFilterName(1,2) = &quot;ods&quot;
+ MSFilterName(1,3) = sMSDocumentCheckBox(1)
+ MSFilterName(1,4) = &quot;Excel&quot;
+
+ MSFilterName(2,0) = &quot;ppt|pps|pptx|pptm|ppsx|ppsm&quot;
+ MSFilterName(2,1) = &quot;impress8|impress8|impress8|impress8|impress8|impress8&quot;
+ MSFilterName(2,2) = &quot;odp|odp&quot;
+ MSFilterName(2,3) = sMSDocumentCheckBox(2)
+ MSFilterName(2,4) = &quot;PowerPoint&quot;
+
+ MSFilterName(3,0) = &quot;dot|dotx|dotm&quot;
+ MSFilterName(3,1) = &quot;writer8_template|writer8_template|writer8_template&quot;
+ MSFilterName(3,2) = &quot;ott&quot;
+ MSFilterName(3,3) = sMSTemplateCheckBox(0)
+ MSFilterName(3,4) = &quot;Word&quot;
+
+ MSFilterName(4,0) = &quot;xlt|xltx|xltm&quot;
+ MSFilterName(4,1) = &quot;calc8_template|calc8_template|calc8_template&quot;
+ MSFilterName(4,2) = &quot;ots&quot;
+ MSFilterName(4,3) = sMSTemplateCheckBox(1)
+ MSFilterName(4,4) = &quot;Excel&quot;
+
+ MSFilterName(5,0) = &quot;pot|potx|potm&quot;
+ MSFilterName(5,1) = &quot;impress8_template|impress8_template|impress8_template&quot;
+ MSFilterName(5,2) = &quot;otp&quot;
+ MSFilterName(5,3) = sMSTemplateCheckBox(2)
+ MSFilterName(5,4) = &quot;PowerPoint&quot;
+End Sub
+
+
+
+&apos; This is an extract from &quot;http://util.openoffice.org/source/browse/util/sot/source/base/exchange.cxx?rev=1.25&amp;content-type=text/x-cvsweb-markup&quot;
+&apos; about the listed defined mimetypes that are required to define binary StarOffice templates that have for all applications the same extension &quot;.vor&quot;
+
+&apos; 26 SOT_FORMATSTR_ID_STARWRITER_30*/ { &quot;application/x-openoffice-starwriter-30;windows_formatname=\&quot;StarWriter 3.0\&quot;&quot;, &quot;StarWriter 3.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 27 SOT_FORMATSTR_ID_STARWRITER_40*/ { &quot;application/x-openoffice-starwriter-40;windows_formatname=\&quot;StarWriter 4.0\&quot;&quot;, &quot;StarWriter 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 28 SOT_FORMATSTR_ID_STARWRITER_50*/ { &quot;application/x-openoffice-starwriter-50;windows_formatname=\&quot;StarWriter 5.0\&quot;&quot;, &quot;StarWriter 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+
+&apos; 29 SOT_FORMATSTR_ID_STARWRITERWEB_40*/ { &quot;application/x-openoffice-starwriterweb-40;windows_formatname=\&quot;StarWriter/Web 4.0\&quot;&quot;, &quot;StarWriter/Web 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 30 SOT_FORMATSTR_ID_STARWRITERWEB_50*/ { &quot;application/x-openoffice-starwriterweb-50;windows_formatname=\&quot;StarWriter/Web 5.0\&quot;&quot;, &quot;StarWriter/Web 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+
+&apos; 31 SOT_FORMATSTR_ID_STARWRITERGLOB_40*/ { &quot;application/x-openoffice-starwriterglob-40;windows_formatname=\&quot;StarWriter/Global 4.0\&quot;&quot;, &quot;StarWriter/Global 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 32 SOT_FORMATSTR_ID_STARWRITERGLOB_50*/ { &quot;application/x-openoffice-starwriterglob-50;windows_formatname=\&quot;StarWriter/Global 5.0\&quot;&quot;, &quot;StarWriter/Global 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+
+&apos; 33 SOT_FORMATSTR_ID_STARDRAW*/ { &quot;application/x-openoffice-stardraw;windows_formatname=\&quot;StarDrawDocument\&quot;&quot;, &quot;StarDrawDocument&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 34 SOT_FORMATSTR_ID_STARDRAW_40*/ { &quot;application/x-openoffice-stardraw-40;windows_formatname=\&quot;StarDrawDocument 4.0\&quot;&quot;, &quot;StarDrawDocument 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 36 SOT_FORMATSTR_ID_STARDRAW_50*/ { &quot;application/x-openoffice-stardraw-50;windows_formatname=\&quot;StarDraw 5.0\&quot;&quot;, &quot;StarDraw 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+
+&apos; 35 SOT_FORMATSTR_ID_STARIMPRESS_50*/ { &quot;application/x-openoffice-starimpress-50;windows_formatname=\&quot;StarImpress 5.0\&quot;&quot;, &quot;StarImpress 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+
+&apos; 37 SOT_FORMATSTR_ID_STARCALC*/ { &quot;application/x-openoffice-starcalc;windows_formatname=\&quot;StarCalcDocument\&quot;&quot;, &quot;StarCalcDocument&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 38 SOT_FORMATSTR_ID_STARCALC_40*/ { &quot;application/x-openoffice-starcalc-40;windows_formatname=\&quot;StarCalc 4.0\&quot;&quot;, &quot;StarCalc 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 39 SOT_FORMATSTR_ID_STARCALC_50*/ { &quot;application/x-openoffice-starcalc-50;windows_formatname=\&quot;StarCalc 5.0\&quot;&quot;, &quot;StarCalc 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+
+&apos; 40 SOT_FORMATSTR_ID_STARCHART*/ { &quot;application/x-openoffice-starchart;windows_formatname=\&quot;StarChartDocument\&quot;&quot;, &quot;StarChartDocument&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 41 SOT_FORMATSTR_ID_STARCHART_40*/ { &quot;application/x-openoffice-starchart-40;windows_formatname=\&quot;StarChartDocument 4.0\&quot;&quot;, &quot;StarChartDocument 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 42 SOT_FORMATSTR_ID_STARCHART_50*/ { &quot;application/x-openoffice-starchart-50;windows_formatname=\&quot;StarChart 5.0\&quot;&quot;, &quot;StarChart 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+
+&apos; 46 SOT_FORMATSTR_ID_STARMATH*/ { &quot;application/x-openoffice-starmath;windows_formatname=\&quot;StarMath\&quot;&quot;, &quot;StarMath&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 47 SOT_FORMATSTR_ID_STARMATH_40*/ { &quot;application/x-openoffice-starmath-40;windows_formatname=\&quot;StarMathDocument 4.0\&quot;&quot;, &quot;StarMathDocument 4.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+&apos; 48 SOT_FORMATSTR_ID_STARMATH_50*/ { &quot;application/x-openoffice-starmath-50;windows_formatname=\&quot;StarMath 5.0\&quot;&quot;, &quot;StarMath 5.0&quot;, &amp;::getCppuType( (const Sequence&lt; sal_Int8 &gt;*) 0 ) },
+
+
+Sub SetupXMLConfiguration()
+ iApplSection = 1000
+ Wizardmode = SBXMLMODE
+ ApplCount = 4
+ MaxApplCount = 4
+ XMLTemplateList = Array(&quot;vor&quot;, &quot;sti&quot;, &quot;stw&quot; , &quot;stc&quot; , &quot;std&quot;)
+ &apos; chkTemplatePath-Captions
+ GetApplResourceArray(1009 + iApplSection, ApplCount, sTemplateCheckBox())
+ &apos; DocumentCheckbox- Captions
+ GetApplResourceArray(1009 + iApplSection + ApplCount, ApplCount, sDocumentCheckBox())
+
+ XMLFilterName(0,0) = &quot;sdw|sxw&quot;
+ XMLFilterName(0,1) = &quot;writer8|writer8&quot;
+ XMLFilterName(0,2) = &quot;odt|odt&quot;
+ XMLFilterName(0,3) = sDocumentCheckBox(0)
+
+ XMLFilterName(1,0) = &quot;sdc|sxc&quot;
+ XMLFilterName(1,1) = &quot;calc8|calc8&quot;
+ XMLFilterName(1,2) = &quot;ods|ods&quot;
+ XMLFilterName(1,3) = sDocumentCheckBox(1)
+
+ If oFactoryKey.HasByName(&quot;com.sun.star.drawing.DrawingDocument&quot;) and oFactoryKey.HasByName(&quot;com.sun.star.presentation.PresentationDocument&quot;) Then
+ XMLFilterName(2,0) = &quot;sdd|sda|sxi|sxd&quot;
+ XMLFilterName(2,1) = &quot;impress8|draw8|impress8|draw8&quot;
+ XMLFilterName(2,2) = &quot;odp|odg|odp|odg&quot;
+ Elseif oFactoryKey.HasByName(&quot;com.sun.star.drawing.DrawingDocument&quot;) Then
+ XMLFilterName(2,0) = &quot;sda|sxd&quot;
+ XMLFilterName(2,1) = &quot;draw8|draw8&quot;
+ XMLFilterName(2,2) = &quot;odg|odg&quot;
+ Elseif oFactoryKey.HasByName(&quot;com.sun.star.presentation.PresentationDocument&quot;) Then
+ XMLFilterName(2,0) = &quot;sdd|sxi&quot;
+ XMLFilterName(2,1) = &quot;impress8|impress8&quot;
+ XMLFilterName(2,2) = &quot;odp|odp&quot;
+ End If
+ XMLFilterName(2,3) = sDocumentCheckBox(2)
+
+
+ XMLFilterName(3,0) = &quot;smf|sxm&quot;
+ XMLFilterName(3,1) = &quot;math8|math8&quot;
+ XMLFilterName(3,2) = &quot;odf|odf&quot;
+ XMLFilterName(3,3) = sDocumentCheckBox(3)
+
+ XMLFilterName(4,0) = &quot;application/x-openoffice-starwriter|application/vnd.stardivision.writer/web|application/vnd.sun.xml.writer|application/vnd.sun.xml.writerweb&quot;
+ XMLFilterName(4,1) = &quot;writer8_template|writerweb8_writer_template|writer8_template|writerweb8_writer_template&quot;
+ XMLFilterName(4,2) = &quot;ott|oth|ott|oth&quot;
+ XMLFilterName(4,3) = sTemplateCheckBox(0)
+
+
+ XMLFilterName(5,0) = &quot;application/x-openoffice-starcalc|application/vnd.sun.xml.calc&quot;
+ XMLFilterName(5,1) = &quot;calc8_template|calc8_template&quot;
+ XMLFilterName(5,2) = &quot;ots|ots&quot;
+ XMLFilterName(5,3) = sTemplateCheckBox(1)
+
+ &apos; due to bug #108942# impress templates of the version 4.0 have to be handled in a special way because their mimetype
+ &apos; falsely points to the draw application.
+ If oFactoryKey.HasByName(&quot;com.sun.star.drawing.DrawingDocument&quot;) and oFactoryKey.HasByName(&quot;com.sun.star.presentation.PresentationDocument&quot;) Then
+ XMLFilterName(6,0) = &quot;application/x-openoffice-starimpress|application/x-openoffice-stardraw-40|application/x-openoffice-stardraw|application/vnd.sun.xml.impress|application/vnd.sun.xml.draw&quot;
+ XMLFilterName(6,1) = &quot;impress8_template|impress8_template|draw8_template|impress8_template|draw8_template&quot;
+ XMLFilterName(6,2) = &quot;otp|otp|otg|otp|otg&quot;
+ Elseif oFactoryKey.HasByName(&quot;com.sun.star.drawing.DrawingDocument&quot;) Then
+ XMLFilterName(6,0) = &quot;application/x-openoffice-stardraw|application/vnd.sun.xml.draw&quot;
+ XMLFilterName(6,1) = &quot;draw8_template|draw8_template&quot;
+ XMLFilterName(6,2) = &quot;otg|otg&quot;
+ Elseif oFactoryKey.HasByName(&quot;com.sun.star.presentation.PresentationDocument&quot;) Then
+ XMLFilterName(6,0) = &quot;application/x-openoffice-starimpress|application/x-openoffice-stardraw-40|application/vnd.sun.xml.impress&quot;
+ XMLFilterName(6,1) = &quot;impress8_template|impress8_template|impress8_template&quot;
+ XMLFilterName(6,2) = &quot;otp|otp|otp&quot;
+ End If
+ XMLFilterName(6,3) = sTemplateCheckBox(2)
+
+ If oFactoryKey.HasByName(&quot;com.sun.star.text.GlobalDocument&quot;) Then
+ XMLFilterName(7,0) = &quot;sgl|sxg&quot;
+ XMLFilterName(7,1) = &quot;writerglobal8|writerglobal8&quot;
+ XMLFilterName(7,2) = &quot;odm|odm&quot;
+ XMLFilterName(7,3) = sTemplateCheckBox(3)
+ End If
+End Sub
+
+
+Function CheckControlPath(oCheckbox as Object, oTextBox as Object, ByVal bDoEnable as Boolean)
+Dim sPath as String
+ If Not bDoEnable Then
+ CheckControlPath = False
+ ElseIf oCheckbox.State = 0 Then
+ CheckControlPath = True
+ Else
+ sPath = ConvertToUrl(Trim(oTextBox.Text)
+ CheckControlPath = oUcb.Exists(sPath)
+ End If
+End Function
+
+
+Function CheckInputPaths() as Boolean
+Dim bChangePage as Boolean
+ bChangePage = CheckTextBoxPath(ImportDialog.txtTemplateImportPath, True, False, sTitle, False)
+ bChangePage = CheckTextBoxPath(ImportDialog.txtTemplateExportPath, bChangePage, True, sTitle, False)
+ bChangePage = CheckTextBoxPath(ImportDialog.txtDocumentImportPath, bChangePage, False, sTitle, False)
+ bChangePage = CheckTextBoxPath(ImportDialog.txtDocumentExportPath, bChangePage, True, sTitle, False)
+ CheckInputPaths = bChangePage
+End Function
+
+
+Function CheckTextBoxPath(oTextBox as Object, ByVal bCheck as Boolean, bCreateNew as Boolean, sTitle as String, bgetResources as Boolean) as Boolean
+Dim iCreate as Integer
+Dim sQueryMessage as String
+Dim sUrlPath as String
+Dim sMessageNoDir as String
+Dim sShowPath as String
+Dim oLocUcb as Object
+ oLocUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ If bGetResources Then
+ If InitResources(&quot;ImportWizard&quot;,&quot;imp&quot;) then
+ sNoDirCreation = GetResText(1050)
+ sMsgDirNotThere = GetResText(1051)
+ sQueryForNewCreation = GetResText(1052)
+ Else
+ CheckTextBoxPath() = False
+ Exit Function
+ End If
+ End If
+ If oTextBox.Enabled Then
+ If bCheck Then
+ sShowPath = oTextBox.Text
+ sUrlPath = ConvertToUrl(sShowPath)
+ If Not oLocUcb.Exists(sUrlPath) Then
+ If Not bCreateNew Then
+ &apos; Sourcedirectories must be existing, Targetdirectories may be created new
+ sQueryMessage = ReplaceString(sMsgDirNotThere, sShowPath,&quot;%1&quot;)
+ Msgbox(sQueryMessage,16,sTitle)
+ CheckTextBoxPath() = False
+ Exit Function
+ Else
+ sQueryMessage = ReplaceString(sMsgDirNotThere, sShowPath,&quot;%1&quot;)
+ sQueryMessage = sQueryMessage &amp; Chr(13) &amp; sQueryForNewCreation
+ iCreate = Msgbox (sQueryMessage, 36, sTitle)
+ If iCreate = 6 Then
+ On Local Error Goto NOVALIDPATH
+ CreateFolder(sUrlPath)
+ If Not oLocUcb.Exists(sUrlPath) Then
+ Goto NOVALIDPATH
+ End If
+ Else
+ CheckTextBoxPath() = False
+ Exit Function
+ End If
+ End If
+ End If
+ CheckTextBoxPath() = True
+ Else
+ CheckTextBoxPath() = False
+ End If
+ Else
+ CheckTextBoxPath() = True
+ End If
+ Exit Function
+NOVALIDPATH:
+ sMessageNoDir = ReplaceString(sNoDirCreation, sShowPath, &quot;%1&quot;)
+ Msgbox(sMessageNoDir, 16, sTitle)
+ CheckTextBoxPath() = False
+End Function
+
+
+Sub InitializeProgressPage(oDialog as Object)
+ oDialog.LabelRetrieval.FontWeight = com.sun.star.awt.FontWeight.NORMAL
+ oDialog.LabelCurProgress.FontWeight = com.sun.star.awt.FontWeight.BOLD
+End Sub
+
+
+Sub SetProgressDisplay(AbsFound as Integer)
+ ImportDialog.LabelRetrieval.Label = sProgressPage_2 &amp; &quot; &quot; &amp; ReplaceString(sProgressPage_5, Str(AbsFound) &amp; &quot; &quot;, &quot;%1&quot;)
+ ImportDialog.LabelCurDocumentRetrieval.Label = sProgressFound &amp; &quot; &quot; &amp; CStr(AbsDocuFound) &amp; &quot; &quot; &amp; sProgressMoreDocs
+ ImportDialog.LabelCurTemplateRetrieval.Label = sProgressFound &amp; &quot; &quot; &amp; CStr(AbsTemplateFound) &amp; &quot; &quot; &amp; sProgressMoreTemplates
+End Sub
+
+Sub TakoverFolderName(aEvent as Object)
+Dim RefControlName as String
+Dim oRefControl
+ RefControlName = aEvent.Source.Model.Tag
+ oRefControl = ImportDialogArea.GetControl(RefControlName)
+ GetFolderName(oRefControl.Model)
+ ToggleNextButton()
+End Sub
+
+
+Sub FinalizeDialogButtons()
+ ImportDialog.cmdShowLogFile.Enabled = ((Isnull(oLogDocument) = False) And (ImportDialog.chkLogfile.State = 1))
+ ImportDialog.cmdCancel.Enabled = False
+ ImportDialog.cmdGoOn.Label = sCloseButton
+ ImportDialog.cmdGoOn.Enabled = True
+End Sub
+</script:module>
diff --git a/test/user-template/user/basic/ImportWizard/FilesModul.xba b/test/user-template/user/basic/ImportWizard/FilesModul.xba
new file mode 100644
index 000000000000..e35e0b3a3ba9
--- /dev/null
+++ b/test/user-template/user/basic/ImportWizard/FilesModul.xba
@@ -0,0 +1,825 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="FilesModul" script:language="StarBasic">Option Explicit
+
+Public AbsTemplateFound as Integer
+Public AbsDocuFound as Integer
+Public oLogDocument as Object
+Public oLogTable as Object
+Public bLogExists as Boolean
+Public sComment as String
+Public MaxCollectIndex as Integer
+Public bInsertRow as Boolean
+Public sLogUrl as String
+Public sCurPassWord as String
+Public FileCount as Integer
+Public XMLTemplateCount as Integer
+Public PathCollection(7,3) as String
+Public bIsFirstLogTable as Boolean
+Public bFilterTracerIsinsideTable as Boolean
+
+
+Function ReadCollectionPaths(FilesList() as String, sFilterName() as String)
+Dim FilterIndex as Integer
+Dim bRecursive as Boolean
+Dim SearchDir as String
+Dim i as Integer
+Dim n as Integer
+Dim a as Integer
+Dim s as Integer
+Dim t as Integer
+Dim sFileContent() as String
+Dim NewList(0,1) as String
+Dim Index as Integer
+Dim CurFileName as String
+Dim CurExtension as String
+Dim CurFileContent as String
+Dim XMLTemplateContentList() as String
+Dim bIsTemplatePath as Boolean
+Dim MaxIndex as Integer
+Dim NewContentList() as String
+Dim XMLTemplateContentString as String
+Dim ApplIndex as Integer
+Dim bAssignFileName as Boolean
+Dim bInterruptSearch as Boolean
+ bInterruptSearch = False
+ For i = 0 To MaxCollectIndex
+ SearchDir = PathCollection(i,0)
+ bRecursive = PathCollection(i,1)
+ sFileContent() = ArrayoutofString(PathCollection(i,2), &quot;|&quot;)
+ NewList() = ReadDirectories(SearchDir, bRecursive, False, False, sFileContent(), &quot;&quot;)
+ If InterruptProcess Then
+ ReadCollectionPaths() = False
+ Exit Function
+ End If
+ If Ubound(NewList()) &gt; -1 Then
+ bIsTemplatePath = FieldInList(&quot;vor&quot;, sFileContent)
+ If bIsTemplatePath Then
+ XMLTemplateContentString = PathCollection(i,3)
+ XMLTemplateContentList() = ArrayoutofString(XMLTemplateContentString, &quot;|&quot;)
+ If Ubound(XMLTemplateContentList()) &gt; -1 Then
+ MaxIndex = Ubound(NewList())
+ ReDim Preserve NewList(MaxIndex, 1) as String
+ ReDim Preserve NewContentList(MaxIndex) as String
+ a = -1
+ For n = 0 To MaxIndex
+ bAssignFileName = True
+ If InterruptProcess() Then
+ ReadCollectionPaths() = False
+ Exit Function
+ End If
+ CurFileContent = &quot;&quot;
+ CurFileName = NewList(n,0)
+ If (FieldInList(NewList(n,1), XMLTemplateList())) Then
+ CurFileContent = GetRealFileContent(CurFileName)
+ t = SearchArrayforPartString(CurFileContent, XMLTemplateContentList())
+ bAssignFileName = (t &gt; -1)
+ If bAssignFileName Then
+ CurFileContent = XMLTemplateContentList(t)
+ End If
+ NewList(n,1) = CurFileContent
+ End If
+ CurExtension = NewList(n,1)
+ If bAssignFileName Then
+ If a &lt; n Then
+ a = a + 1
+ NewList(a,0) = CurFileName
+ NewList(a,1) = CurExtension
+ If CurFileContent = &quot;&quot; Then
+ CurFileContent = CurExtension
+ End If
+ ApplIndex = GetApplicationIndex(CurFileContent, sFiltername())
+ NewContentList(a) = ApplIndex
+ End If
+ End If
+ Next n
+ If a &lt; MaxIndex And a &gt; -1 Then
+ ReDim Preserve NewList(a, 1) as String
+ End If
+ If a &gt; -1 Then
+ AddListtoFilesList(FilesList(), NewList(), NewContentList())
+ End If
+ End If
+ Else
+ MaxIndex = Ubound(NewList())
+ ReDim Preserve NewContentList(MaxIndex) as String
+ For s = 0 To MaxIndex
+ CurExtension = NewList(s,1)
+ NewContentList(s) = GetApplicationIndex(CurExtension, sFiltername())
+ Next s
+ AddListtoFilesList(FilesList(), NewList(), NewContentList())
+ End If
+ End If
+ Next i
+ ReadCollectionPaths() = Ubound(FilesList()) &gt; -1
+End Function
+
+
+Function GetApplicationIndex(CurFileContent as String, sFilterName() as String) as Integer
+Dim Index as Integer
+Dim i as Integer
+ Index = GetIndexForPartStringinMultiArray(sFilterName(), CurFileContent, 0)
+ If Index &gt;= MaxApplCount Then
+ Index = Index - MaxApplCount
+ End If
+ For i = 0 To MaxApplCount - 1
+ If Applications(i, SBAPPLKEY) = Index Then
+ GetApplicationIndex() = i
+ Exit Function
+ End If
+ Next i
+ GetApplicationIndex() = - 1
+End Function
+
+
+Function InterruptProcess() as Boolean
+ If bCancelTask Or RetValue = 0 Then
+ bConversionIsRunning = False
+ InterruptProcess() = True
+ Exit Function
+ End if
+ InterruptProcess() = False
+End Function
+
+
+Sub AddCollectionPath(ApplIndex as Integer, DocIndex as Integer, RecursiveIndex as Integer, sFiltername() as String, DistIndex as Integer)
+ MaxCollectIndex = MaxCollectIndex + 1
+ PathCollection(MaxCollectIndex, 0) = Applications(ApplIndex, DocIndex)
+ PathCollection(MaxCollectIndex, 1) = Applications(ApplIndex, RecursiveIndex)
+ AddFilterNameToPathItem(ApplIndex, MaxCollectIndex, sFiltername(), DistIndex)
+End Sub
+
+
+Function SetExtension(LocExtension) as String
+ if (Instr(LocExtension, &quot;vnd.sun.xml.impress&quot;)) &gt; 0 then
+ SetExtension() = &quot;vor|sti|std&quot;
+ elseif (Instr(LocExtension, &quot;vnd.sun.xml.writer&quot;)) &gt; 0 then
+ SetExtension() = &quot;vor|stw&quot;
+ elseif (Instr(LocExtension, &quot;vnd.sun.xml.calc&quot;)) &gt; 0 then
+ SetExtension() = &quot;vor|stc&quot;
+ elseif (Instr(LocExtension, &quot;vnd.sun.xml.draw&quot;)) &gt; 0 then
+ SetExtension() = &quot;vor|std|sti&quot;
+ endif
+End Function
+
+Sub AddFilterNameToPathItem(ApplIndex as Integer, CollectIndex as Integer, sFiltername() as String, DistIndex as Integer)
+Dim iKey as Integer
+Dim CurListString as String
+Dim LocExtension as String
+Dim LocContentString as String
+Dim LocXMLTemplateContent as String
+ iKey = Applications(ApplIndex, SBAPPLKEY)
+ CurListString = PathCollection(CollectIndex, 2)
+ LocExtension = sFilterName(iKey +DistIndex, 0)
+ If Len(LocExtension) &gt; SBMAXEXTENSIONLENGTH Then &apos; 7 == Length of two extensions like &apos;sda|sdd
+ LocExtension = SetExtension(LocExtension)
+ LocContentString = sFilterName(iKey +DistIndex, 0)
+ LocContentString = ReplaceString(LocContentString, &quot;|&quot;, &quot;;&quot;)
+ LocXMLTemplateContent = PathCollection(CollectIndex, 3)
+ If LocXMLTemplateContent = &quot;&quot; Then
+ LocXMLTemplateContent = LocContentString
+ Else
+ LocXMLTemplateContent = LocXMLTemplateContent &amp; &quot;|&quot; &amp; LocContentString
+ End If
+ PathCollection(CollectIndex, 3) = LocXMLTemplateContent
+ End If
+ If CurListString = &quot;&quot; Then
+ PathCollection(CollectIndex, 2) = LocExtension
+ Else
+ If Instr(CurListString, LocExtension) = 0 Then
+ PathCollection(CollectIndex, 2) = CurListString &amp; &quot;|&quot; &amp; LocExtension
+ End If
+ End If
+End Sub
+
+
+Sub CheckIfToAddPathToCollection(ApplIndex as Integer, bDoConvertIndex as Integer, DocIndex as Integer, RecursiveIndex as Integer, sFiltername() as String, DistIndex as Integer)
+Dim CollectIndex as Integer
+Dim bCheckDocuType as Boolean
+ bCheckDocuType = Applications(ApplIndex, bDoConvertIndex)
+ If bCheckDocuType Then
+ CollectIndex = GetIndexInMultiArray(PathCollection(), Applications(ApplIndex,DocIndex), 0)
+ If (CollectIndex &gt;-1) Then
+ If Applications(ApplIndex, RecursiveIndex) &lt;&gt; PathCollection(CollectIndex, 1) Then
+ AddCollectionPath(ApplIndex, DocIndex, RecursiveIndex, sFilterName(), DistIndex)
+ Else
+ AddFilterNameToPathItem(ApplIndex, CollectIndex, sFilterName(), DistIndex)
+ End If
+ Else
+ AddCollectionPath(ApplIndex, DocIndex, RecursiveIndex, sFilterName(), DistIndex)
+ End If
+ End If
+End Sub
+
+
+Sub CollectPaths(sFiltername() as String)
+Dim i as Integer
+Dim XMLTemplateContentString as String
+ MaxCollectIndex = -1
+ For i = 0 To ApplCount-1
+ CheckIfToAddPathToCollection(i, SBDOCCONVERT, SBDOCSOURCE, SBDOCRECURSIVE, sFilterName(), 0)
+ Next i
+ XMLTemplateCount = 0
+ XMLTemplateContentString = &quot;&quot;
+ For i = 0 To ApplCount-1
+ If WizardMode = SBXMLMODE Then
+ XMLTemplateCount = XMLTemplateCount + 1
+ End If
+ CheckIfToAddPathToCollection(i, SBTEMPLCONVERT, SBTEMPLSOURCE, SBTEMPLRECURSIVE, sFilterName(), MaxApplCount)
+ Next i
+End Sub
+
+
+Sub ConvertAllDocuments(sFilterName() as String)
+Dim FileProperties(1) as new com.sun.star.beans.PropertyValue
+Dim PWFileProperties(2) as New com.sun.star.beans.PropertyValue
+Dim WriterWebProperties(0) as new com.sun.star.beans.PropertyValue
+Dim OpenProperties(4) as new com.sun.star.beans.PropertyValue
+Dim oInteractionHandler as Object
+Dim InteractionTypes(0) as Long
+Dim FilesList(0,2) as String
+Dim sViewPath as String
+Dim i as Integer
+Dim FilterIndex as Integer
+Dim sSourceUrl as String
+Dim CurFilename as String
+Dim oDocument as Object
+Dim sExtension as String
+Dim OldExtension as String
+Dim CurFound as Integer
+Dim TotFound as Integer
+Dim TargetStemDir as String
+Dim SourceStemDir as String
+Dim TargetDir as String
+Dim sTargetUrl as String
+Dim CurFilterName as String
+Dim ApplIndex as Integer
+Dim Index as Integer
+Dim bIsDocument as Boolean
+Dim bDoSave as Boolean
+Dim sCurFileExists as String
+Dim MaxFileIndex as Integer
+Dim bContainsBasicMacro as Boolean
+Dim bIsPassWordProtected as Boolean
+Dim iOverwrite as Integer
+Dim sMimeTypeorExtension as String
+Dim sPrevMimeTypeorExtension as String
+ bConversionisrunning = True
+ InteractionTypes(0) = com.sun.star.task.PasswordRequestMode.PASSWORD_REENTER
+ oInteractionHandler = createUnoService(&quot;com.sun.star.task.InteractionHandler&quot;)
+ oInteractionHandler.initialize(InteractionTypes())
+ iGeneralOverwrite = SBOVERWRITEUNDEFINED
+ bConversionIsRunning = True
+ bLogExists = false
+ AbsTemplateFound = 0
+ AbsDocuFound = 0
+ CollectPaths(sFiltername())
+ If Not ReadCollectionPaths(FilesList(), sFilterName()) Then
+ TotFound = 0
+ SetProgressDisplay(0)
+ bConversionisrunning = false
+ FinalizeDialogButtons()
+ Exit Sub
+ End If
+ TotFound = Ubound(FilesList()) + 1
+ If FilesList(0,0) = &quot;&quot; Then &apos; Querying the number of fields in a multidimensionl Array is unsecure
+ TotFound = 0 &apos; because it will return the value 0 (and not -1) even when the Array is empty
+ SetProgressDisplay(0)
+ End If
+ BubbleSortList(FilesList(), true)
+ If TotFound &gt; 0 Then
+ CreateLogDocument(OpenProperties())
+ InitializeProgressPage(ImportDialog)
+ OpenProperties(0).Name = &quot;Hidden&quot;
+ OpenProperties(0).Value = True
+ OpenProperties(1).Name = &quot;AsTemplate&quot;
+ OpenProperties(1).Value = False
+ OpenProperties(2).Name = &quot;MacroExecutionMode&quot;
+ OpenProperties(2).Value = com.sun.star.document.MacroExecMode.NEVER_EXECUTE
+ OpenProperties(3).Name = &quot;UpdateDocMode&quot;
+ OpenProperties(3).Value = com.sun.star.document.UpdateDocMode.NO_UPDATE
+ OpenProperties(4).Name = &quot;InteractionHandler&quot;
+ OpenProperties(4).Value = oInteractionHandler
+ MaxFileIndex = Ubound(FilesList(),1)
+ FileCount = 0
+ For i = 0 To MaxFileIndex
+ sComment = &quot;&quot;
+ If InterruptProcess() Then
+ Exit For
+ End If
+ bDoSave = True
+ sSourceUrl = FilesList(i,0)
+ sPrevMimeTypeorExtension = sMimeTypeorExtension
+ sMimeTypeorExtension = FilesList(i,1)
+ CurFiltername = GetFilterName(sMimeTypeorExtension, sFilterName(), sExtension, FilterIndex)
+ ApplIndex = FilesList(i,2)
+ If sMimeTypeorExtension &lt;&gt; sPrevMimeTypeorExtension Then
+ CreateLogTable(ApplIndex, sMimeTypeOrExtension, sFiltername()
+ End If
+ If ApplIndex &gt; Ubound(Applications) or (ApplIndex &lt; 0) Then
+ Msgbox &quot;Applicationindex out of bounds:&quot; &amp; sSourcUrl
+ End If
+ sViewPath = ConvertFromUrl(sSourceUrl) &apos; CutPathView(sSourceUrl, 70)
+ ImportDialog.LabelCurDocument.Label = Str(i+1) &amp; &quot;/&quot; &amp; MaxFileIndex + 1 &amp; &quot; (&quot; &amp; sViewPath &amp; &quot;)&quot;
+ Select Case lcase(sExtension)
+ Case &quot;odt&quot;, &quot;ods&quot;, &quot;odp&quot;, &quot;odg&quot;, &quot;odm&quot;, &quot;odf&quot;
+ SourceStemDir = RTrimStr(Applications(ApplIndex,SBDOCSOURCE), &quot;/&quot;)
+ TargetStemDir = RTrimStr(Applications(ApplIndex,SBDOCTARGET), &quot;/&quot;)
+ Case Else &apos; Templates and Helper-Applications remain
+ SourceStemDir = RTrimStr(Applications(ApplIndex,SBTEMPLSOURCE), &quot;/&quot;)
+ TargetStemDir = RTrimStr(Applications(ApplIndex,SBTEMPLTARGET), &quot;/&quot;)
+ End Select
+ sTargetUrl = ReplaceString(sSourceUrl, TargetStemDir, SourceStemDir)
+ CurFilename = GetFileNameWithoutExtension(sTargetUrl, &quot;/&quot;)
+ OldExtension = GetFileNameExtension(sTargetUrl)
+ sTargetUrl = RTrimStr(sTargetUrl, OldExtension)
+ sTargetUrl = sTargetUrl &amp; sExtension
+ TargetDir = RTrimStr(sTargetUrl, CurFilename &amp; &quot;.&quot; &amp; sExtension)
+ If (oUcb.Exists(sTargetUrl)) Then
+ If (iGeneralOverwrite &lt;&gt; SBOVERWRITEALWAYS) Then
+ If (iGeneralOverwrite = SBOVERWRITEUNDEFINED) Then
+ ShowOverwriteAllDialog(sTargetUrl, sTitle)
+ bDoSave = (iGeneralOverwrite = SBOVERWRITEQUERY) Or (iGeneralOverwrite = SBOVERWRITEALWAYS)
+ Elseif iGeneralOverwrite = SBOVERWRITENEVER Then
+ bDoSave = False
+ ElseIf ((iGeneralOverWrite = SBOVERWRITEQUERY) OR (iGeneralOverwrite = SBOVERWRITECANCEL)) Then
+ &apos; Todo: According to AS there might come a new feature that storeasUrl could possibly rise a UI dialog.
+ &apos; In this case my own UI becomes obsolete
+ sCurFileExists = ReplaceString(sFileExists, ConvertFromUrl(sTargetUrl), &quot;&lt;1&gt;&quot;)
+ sCurFileExists = ReplaceString(sCurFileExists, chr(13), &quot;&lt;CR&gt;&quot;)
+ iOverWrite = Msgbox (sCurFileExists, 32 + 3, sTitle)
+ Select Case iOverWrite
+ Case 1 &apos; OK
+ &apos; In the FileProperty-Bean this is already default
+ bDoSave = True
+ Case 2 &apos; Abort
+ CancelTask(False)
+ bDoSave = False
+ Case 7 &apos; No
+ bDoSave = False
+ End Select
+ End If
+ End If
+ End If
+ If bDoSave Then
+ If Not oUcb.Exists(TargetDir) Then
+ bDoSave = CreateFolder(TargetDir)
+ End If
+ If bDoSave Then
+ oDocument = StarDesktop.LoadComponentFromURL(sSourceUrl, &quot;_default&quot;, 0, OpenProperties())
+ If Not IsNull(oDocument) Then
+ InsertSourceUrlToLogDocument(sSourceUrl, &quot;&quot;)
+ bIsPassWordProtected = CheckPassWordProtection(oDocument)
+ CheckIfMacroExists(oDocument.BasicLibraries, sComment)
+ On Local Error Goto NOSAVING
+ If bIsPassWordProtected Then
+ PWFileProperties(0).Name = &quot;FilterName&quot;
+ PWFileProperties(0).Value = CurFilterName
+ PWFileProperties(1).Name = &quot;Overwrite&quot;
+ PWFileProperties(1).Value = True
+ PWFileProperties(2).Name = &quot;Password&quot;
+ PWFileProperties(2).Value = sCurPassWord
+ oDocument.StoreAsUrl(sTargetUrl, PWFileProperties())
+ Else
+ FileProperties(0).Name = &quot;FilterName&quot;
+ FileProperties(0).Value = CurFilterName
+ FileProperties(1).Name = &quot;Overwrite&quot;
+ FileProperties(1).Value = True
+ oDocument.StoreAsUrl(sTargetUrl,FileProperties())
+ End If
+ &apos; Todo: Make sure that an errorbox pops up when saving fails
+ NOSAVING:
+ If Err &lt;&gt; 0 Then
+ sCurcouldnotsaveDocument = ReplaceString(scouldnotsaveDocument, ConvertFromUrl(sTargetUrl), &quot;&lt;1&gt;&quot;)
+ sComment = ConcatComment(sComment, sCurCouldnotsaveDocument)
+ Resume LETSGO
+ LETSGO:
+ Else
+ FileCount = FileCount + 1
+ End If
+ oDocument.Dispose()
+ InsertTargetUrlToLogDocument(sTargetUrl, sComment, ApplIndex)
+ Else
+ sCurcouldnotopenDocument = ReplaceString(scouldnotopenDocument, ConvertFromUrl(sSourceUrl), &quot;&lt;1&gt;&quot;)
+ sComment = ConcatComment(sComment, sCurCouldnotopenDocument)
+ InsertSourceUrlToLogDocument(sSourceUrl, sComment)
+ End If
+ End If
+ End If
+ Next i
+ End If
+ AddLogStatistics()
+ FinalizeDialogButtons()
+ bConversionIsRunning = False
+ Exit Sub
+RTError:
+ Msgbox sRTErrorDesc, 16, sRTErrorHeader
+End Sub
+
+
+
+Sub AddListtoFilesList(FirstList(), SecList(), NewContentList() as String)
+Dim sLocExtension as String
+Dim FirstStart as Integer
+Dim FirstEnd as Integer
+Dim i as Integer
+Dim s as Integer
+ If FirstList(0,0) = &quot;&quot; Then
+ FirstStart = Ubound(FirstList(),1)
+ Else
+ FirstStart = Ubound(FirstList(),1) + 1
+ End If
+ FirstEnd = FirstStart + Ubound(SecList(),1)
+ ReDim Preserve FirstList(FirstEnd,2)
+ s = 0
+ For i = FirstStart To FirstEnd
+ FirstList(i,0) = SecList(s,0)
+ FirstList(i,1) = SecList(s,1)
+ sLocExtension = lcase(FirstList(i,1))
+ Select Case sLocExtension
+ Case &quot;sdw&quot;, &quot;sdc&quot;, &quot;sda&quot;, &quot;sdd&quot;, &quot;smf&quot;, &quot;sgl&quot;, &quot;doc&quot;, &quot;xls&quot;, &quot;ppt&quot;, &quot;sxi&quot; , &quot;sxw&quot; , &quot;sxd&quot; , &quot;sxg&quot; , &quot;sxm&quot; , &quot;sxc&quot; , &quot;pps&quot;
+ AbsDocuFound = AbsDocuFound + 1
+ Case else
+ AbsTemplateFound = AbsTemplateFound + 1
+ End Select
+ FirstList(i,2) = CStr(NewContentList(s))
+ s = s + 1
+ Next i
+ SetProgressDisplay(Ubound(FirstList()) + 1)
+End Sub
+
+
+
+Function GetTargetTemplatePath(Index as Integer)
+ Select Case WizardMode
+ Case SBMICROSOFTMODE
+ GetTargetTemplatePath() = SOTemplatePath &amp; &quot;/&quot; &amp; sTemplateGroupName
+ Case SBXMLMODE
+ If Index = 3 Then
+ &apos; Helper Application
+ GetTargetTemplatePath = SOWorkPath
+ Else
+ GetTargetTemplatePath = SOTemplatePath
+ End If
+ End Select
+End Function
+
+
+&apos; Retrieves the second value for a next to &apos;SearchString&apos; in
+&apos; a two-dimensional string-Array
+Function GetFilterName(sMimetypeorExtension as String, sFilterName(), sExtension as string, FilterIndex as Integer) as String
+Dim i as Integer
+Dim MaxIndex as Integer
+Dim sLocFilterlist() as String
+ For i = 0 To Ubound(sFiltername(),1)
+ If Instr(1,sFilterName(i,0),sMimeTypeOrExtension) &lt;&gt; 0 Then
+ sLocFilterList() = ArrayoutofString(sFiltername(i,0),&quot;|&quot;, MaxIndex)
+ If MaxIndex = 0 Then
+ sExtension = sFiltername(i,2)
+ GetFilterName = sFilterName(i,1)
+ Else
+ Dim b as Integer
+ Dim sLocExtensionList() as String
+ b = SearchArrayForPartString(sMimetypeOrExtension, sLocFilterList())
+ sLocFilterList() = ArrayoutofString(sFiltername(i,1),&quot;|&quot;, MaxIndex)
+ GetFilterName = sLocFilterList(b)
+ sLocExtensionList() = ArrayoutofString(sFilterName(i,2), &quot;|&quot;, MaxIndex)
+ sExtension = sLocExtensionList(b)
+ End If
+ Exit For
+ End If
+ Next
+ FilterIndex = i
+End Function
+
+
+Function SearchArrayforPartString(SearchString as String, LocList()) as Integer
+Dim i as Integer
+Dim a as Integer
+Dim StringList() as String
+ For i = Lbound(LocList(),1) to Ubound(LocList(),1)
+ StringList() = ArrayoutofString(LocList(i), &quot;|&quot;)
+ For a = 0 To Ubound(StringList())
+ If (Instr(1, SearchString, StringList(a)) &lt;&gt; 0) Then
+ SearchArrayForPartString() = i
+ Exit Function
+ End If
+ Next a
+ Next i
+ SearchArrayForPartString() = -1
+End Function
+
+
+Sub CreateLogTable(ApplIndex as Integer, CurFileContent as String, sFilterName() as String)
+Dim oLogCursor as Object
+Dim oLogRows as Object
+Dim FilterIndex as Integer
+Dim sDocumentType as String
+Dim oTextCursor
+Dim oCell
+ If Not bLogExists Then
+ Exit Sub
+ End If
+ bFilterTracerIsinsideTable = False
+ FilterIndex = GetIndexForPartStringinMultiArray(sFilterName(), CurFileContent, 0)
+ sDocumentType = sFiltername(FilterIndex,3)
+ oLogCursor = oLogDocument.Text.createTextCursor()
+ oLogCursor.GotoEnd(False)
+ If Not bIsFirstLogTable Then
+ oLogDocument.Text.insertControlCharacter(oLogCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
+ Else
+ bisFirstLogTable = False
+ End If
+ oLogCursor.HyperLinkURL = &quot;&quot;
+ oLogCursor.HyperLinkName = &quot;&quot;
+ oLogCursor.HyperLinkTarget = &quot;&quot;
+ oLogCursor.ParaStyleName = &quot;Heading 1&quot;
+ oLogCursor.setString(sDocumentType)
+ If WizardMode = SBMICROSOFTMODE Then
+ If bFilterTracingAvailable Then
+ If bMSApplFilterTracingAvailable(ApplIndex) Then
+ Dim CurFilterTracingPath as String
+ CurFilterTracingPath = FilterTracingLogPath(ApplIndex)
+ bFilterTracerIsinsideTable = (bTakeOverTargetName(ApplIndex) Or bTakeOverPathName(ApplIndex))
+ If Not bFilterTracerIsinsideTable Then
+ oLogCursor.CollapseToEnd()
+ oLogDocument.Text.insertControlCharacter(oLogCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
+ InsertCommandButtonatViewCursor(oLogDocument, oLogCursor, CurFilterTracingPath)
+ End If
+ End If
+ End If
+ End If
+ oLogCursor.CollapsetoEnd()
+ oLogDocument.Text.insertControlCharacter(oLogCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
+ oLogTable = oLogDocument.CreateInstance(&quot;com.sun.star.text.TextTable&quot;)
+ oLogTable.RepeatHeadline = true
+ If bFilterTracerIsinsideTable Then
+ oLogTable.initialize(2,3)
+ End If
+ oLogCursor.Text.InsertTextContent(oLogCursor, oLogTable, True)
+ oTextCursor = oLogTable.GetCellbyPosition(0,0).createTextCursor()
+ oTextCursor.SetString(sSourceDocuments)
+ oTextCursor = oLogTable.GetCellbyPosition(1,0).createTextCursor()
+ oTextCursor.SetString(sTargetDocuments)
+ If bFilterTracerIsinsideTable Then
+ oTextCursor = oLogTable.GetCellbyPosition(2,0).createTextCursor()
+ oTextCursor.SetString(&quot;FilterTracer&quot;)
+ End If
+ bInsertRow = False
+End Sub
+
+
+Function GetSize(iWidth, iHeight) As New com.sun.star.awt.Size
+Dim aSize As New com.sun.star.awt.Size
+ aSize.Width = iWidth
+ aSize.Height = iHeight
+ GetSize() = aSize
+End Function
+
+
+Sub InsertCommandButtonatViewCursor(oLocDocument, oLocCursor, TargetUrl as String, Optional aSize)
+Dim oDocument
+Dim oController
+Dim oCommandButton
+Dim oShape
+Dim oDrawPage
+Dim oCommandControl
+Dim oEvent
+Dim oCell
+ oCommandButton = oLocDocument.createInstance(&quot;com.sun.star.form.component.CommandButton&quot;)
+ oShape = oLocDocument.CreateInstance (&quot;com.sun.star.drawing.ControlShape&quot;)
+ If IsMissing(aSize) Then
+ oShape.Size = GetSize(4000, 600)
+ End If
+ oCommandButton.Label = FileNameoutofPath(Targeturl)
+ oCommandButton.TargetFrame = &quot;_default&quot;
+ oCommandButton.ButtonType = com.sun.star.form.FormButtonType.URL
+ oCommandbutton.DispatchUrlInternal = True
+ oCommandButton.TargetURL = ConverttoUrl(TargetUrl)
+ oShape.Control = oCommandbutton
+ oLocCursor.Text.InsertTextContent(oLocCursor, oShape, True)
+End Sub
+
+
+
+Sub CreateLogDocument(HiddenProperties())
+Dim OpenProperties(0) as new com.sun.star.beans.PropertyValue
+Dim NoArgs()
+Dim i as Integer
+Dim bLogIsThere as Boolean
+ If ImportDialog.chkLogfile.State = 1 Then
+ i = 2
+ OpenProperties(0).Name = &quot;Hidden&quot;
+ OpenProperties(0).Value = True
+ oLogDocument = StarDesktop.LoadComponentFromURL(&quot;private:factory/swriter&quot;, &quot;_default&quot;, 4, OpenProperties())
+ SOWorkPath = RTrimStr(SOWorkPath,&quot;/&quot;)
+ sLogUrl = SOWorkPath &amp; &quot;/Logfile.odt&quot;
+ Do
+ bLogIsThere = oUcb.Exists(sLogUrl)
+ If bLogIsThere Then
+ If i = 2 Then
+ sLogUrl = ReplaceString(sLogUrl, &quot;/Logfile_2.odt&quot;, &quot;/Logfile.odt&quot;)
+ Else
+ sLogUrl = ReplaceString(sLogUrl, &quot;/Logfile_&quot; &amp; cStr(i) &amp; &quot;.odt&quot;, &quot;/Logfile_&quot; &amp; cStr(i-1) &amp; &quot;.odt&quot;)
+ End If
+ i = i + 1
+ End If
+ Loop Until Not bLogIsThere
+ bLogExists = True
+ oLogDocument.StoreAsUrl(sLogUrl, NoArgs())
+ End If
+End Sub
+
+
+Function GetFilterTracingLogPath(sTargetUrl as String, ApplIndex) as String
+Dim TargetFileName as String
+Dim sTargetFolder as String
+Dim CurFilterTracingPath as String
+Dim CurFilterTracingname as String
+Dim CurFilterFolder as String
+ CurFilterTracingPath = FilterTracingLogPath(ApplIndex)
+ If bTakeOverTargetName(ApplIndex) Then
+ TargetFilename = GetFileNameWithoutextension(sTargetUrl, &quot;/&quot;)
+ CurFilterFolder = DirectoryNameoutofPath(FilterTracingLogPath(ApplIndex), &quot;/&quot;)
+ CurFilterTracingpath = CurFilterFolder &amp; &quot;/&quot; &amp; TargetFilename &amp; &quot;.log&quot;
+ End If
+ If bTakeOverPathName(ApplIndex) Then &apos;Replace the Folder in the FilterTracerpath by the Folder of the targetUrl
+ sTargetFolder = DirectoryNameoutofPath(sTargetUrl,&quot;/&quot;)
+ CurFilterTracingPath = sTargetFolder &amp; &quot;/&quot; &amp; FileNameoutofPath(CurFilterTracingPath, &quot;/&quot;)
+ End If
+ GetFilterTracingLogPath() = CurFilterTracingPath
+End Function
+
+
+Sub InsertTargetUrlToLogDocument(sTargetUrl as String, sComment as String, ApplIndex as Integer)
+Dim oCell
+Dim oTextCursor
+Dim CurFilterTracingpath as String
+ If (bLogExists) And (sTargetUrl &lt;&gt; &quot;&quot;) Then
+ If sTargetUrl &lt;&gt; &quot;&quot; Then
+ oCell = oLogTable.GetCellbyPosition(1,oLogTable.Rows.Count-1)
+ InsertCommentToLogCell(sComment, oCell)
+ InsertHyperLinkToLogCell(sTargetUrl, oCell)
+ If bFilterTracerIsinsideTable Then
+ oCell = oLogTable.getCellByPosition(2, oLogTable.Rows.Count-1)
+ oTextCursor = oCell.Text.CreateTextCursor()
+ CurFilterTracingpath = GetFilterTracingLogPath(sTargetUrl, ApplIndex)
+ InsertCommandButtonatViewCursor(oLogDocument, oTextCursor, CurFilterTracingPath)
+ End If
+ oLogDocument.Store()
+ End If
+ End If
+End Sub
+
+
+Sub InsertSourceUrlToLogDocument(SourceUrl as String, sComment) &apos;
+Dim oCell as Object
+ If bLogExists Then
+ If bInsertRow Then
+ oLogTable.Rows.InsertByIndex(oLogTable.Rows.Count,1)
+ Else
+ bInsertRow = True
+ End If
+ oCell = oLogTable.GetCellbyPosition(0,oLogTable.Rows.Count-1)
+ InsertCommentToLogCell(sComment, oCell)
+ InsertHyperLinkToLogCell(SourceUrl, oCell)
+ oLogDocument.Store()
+ End If
+End Sub
+
+
+Sub InsertHyperLinkToLogCell(sUrl as String, oCell as Object)
+Dim oLogCursor as Object
+Dim LocFileName as String
+ oLogCursor = oCell.createTextCursor()
+ oLogCursor.CollapseToStart()
+ oLogCursor.HyperLinkURL = sUrl
+ oLogCursor.HyperLinkName = sUrl
+ oLogCursor.HyperLinkTarget = sUrl
+ LocFileName = FileNameOutOfPath(sUrl)
+ oCell.InsertString(oLogCursor, LocFileName,False)
+End Sub
+
+
+Sub InsertCommentToLogCell(sComment as string, oCell as Object)
+Dim oCommentCursor as Object
+ If sComment &lt;&gt; &quot;&quot; Then
+ oCommentCursor = oCell.createTextCursor()
+ oCell.insertControlCharacter(oCommentCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
+ oCell.insertString(oCommentCursor, sComment, false)
+ End If
+End Sub
+
+
+Sub AddLogStatistics()
+Dim oCell as Object
+Dim oLogCursor as Object
+Dim MaxRowIndex as Integer
+ If bLogExists Then
+ MaxRowIndex = oLogTable.Rows.Count
+ sLogSummary = ReplaceString(sLogSummary, FileCount, &quot;&lt;COUNT&gt;&quot;)
+&apos; oLogTable.Rows.InsertByIndex(MaxRowIndex, 1)
+&apos; oCell = oLogTable.GetCellbyPosition(0, MaxRowIndex)
+&apos; oLogCursor = oCell.createTextCursor()
+&apos; oCell.InsertString(oLogCursor, sLogSummary,False)
+&apos; MergeRange(oLogTable, oCell, 1)
+
+ oLogCursor = oLogDocument.Text.CreateTextCursor
+ oLogCursor.gotoEnd(False)
+ oLogCursor.HyperLinkURL = &quot;&quot;
+ oLogCursor.HyperLinkName = &quot;&quot;
+ oLogCursor.HyperLinkTarget = &quot;&quot;
+ oLogCursor.SetString(sLogSummary)
+ oLogDocument.Store()
+ oLogDocument.Dispose()
+ bLogExists = False
+ End If
+End Sub
+
+
+
+Function CheckIfMacroExists(oBasicLibraries as Object, sComment as String) as Boolean
+Dim ModuleNames() as String
+Dim ModuleName as String
+Dim MaxLibIndex as Integer
+Dim MaxModuleIndex as Integer
+Dim bMacroExists as Boolean
+Dim n as Integer
+Dim m as Integer
+Dim LibName as String
+Dim sBasicCode as String
+Dim oLibrary as Object
+ bMacroExists = False
+ bMacroExists = oBasicLibraries.hasElements
+ If bMacroExists Then
+ MaxLibIndex = Ubound(oBasicLibraries.ElementNames())
+ For n = 0 To MaxLibIndex
+ LibName = oBasicLibraries.ElementNames(n)
+ If oBasicLibraries.isLibraryLoaded(LibName) Then
+ oLibrary = oBasicLibraries.getbyName(LibName)
+ If oLibrary.hasElements() Then
+ MaxModuleIndex = Ubound(oLibrary.ElementNames())
+ For m = 0 To MaxModuleIndex
+ ModuleName = oLibrary.ElementNames(m)
+ sBasicCode = oLibrary.getbyName(ModuleName)
+ If sBasicCode &lt;&gt; &quot;&quot; Then
+ ConcatComment(sComment, sReeditMacro)
+ CheckIfMacroExists() = True
+ Exit Function
+ End If
+ Next m
+ End If
+ End If
+ Next n
+ End If
+ CheckIfMacroExists() = False
+End Function
+
+
+
+Function CheckPassWordProtection(oDocument as Object)
+Dim bIsPassWordProtected as Boolean
+Dim i as Integer
+Dim oArgs()
+Dim MaxIndex as Integer
+Dim sblabla as String
+ bIsPassWordProtected = false
+ oArgs() = oDocument.getArgs()
+ MaxIndex = Ubound(oArgs())
+ For i = 0 To MaxIndex
+ sblabla = oArgs(i).Name
+ If oArgs(i).Name = &quot;Password&quot; Then
+ bIsPassWordProtected = True
+ sCurPassWord = oArgs(i).Value
+ Exit For
+ End If
+ Next i
+ CheckPassWordProtection() = bIsPassWordProtected
+End Function
+
+
+Sub OpenLogDocument()
+
+ bShowLogFile = True
+ ImportDialogArea.endexecute()
+
+End Sub
+
+
+Sub MergeRange(oTable as Object, oCell as Object, MergeCount as Integer)
+Dim oTableCursor as Object
+ oTableCursor = oTable.createCursorByCellName(oCell.CellName)
+ oTableCursor.goRight(MergeCount, True)
+ oTableCursor.mergeRange()
+End Sub
+
+
+Function ConcatComment(sComment as String, AdditionalComment as String)
+ If sComment = &quot;&quot; Then
+ sComment = AdditionalComment
+ Else
+ sComment = sComment &amp; chr(13) + AdditionalComment
+ End If
+ ConcatComment = sComment
+End Function
+</script:module>
diff --git a/test/user-template/user/basic/ImportWizard/ImportDialog.xdl b/test/user-template/user/basic/ImportWizard/ImportDialog.xdl
new file mode 100644
index 000000000000..a5cd30f04756
--- /dev/null
+++ b/test/user-template/user/basic/ImportWizard/ImportDialog.xdl
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="ImportDialog" dlg:left="96" dlg:top="28" dlg:width="270" dlg:height="210" dlg:page="4" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_DIALOG" dlg:closeable="true" dlg:moveable="true" dlg:title="ImportDialog">
+ <dlg:bulletinboard>
+ <dlg:text dlg:id="lblTemplateExport" dlg:tab-index="0" dlg:left="12" dlg:top="94" dlg:width="60" dlg:height="8" dlg:page="2" dlg:value="lblTemplateExport"/>
+ <dlg:textfield dlg:id="txtTemplateImportPath" dlg:tab-index="1" dlg:left="73" dlg:top="76" dlg:width="170" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_LBTEMPLATEPATH">
+ <script:event script:event-name="on-textchange" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleNextButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:textfield>
+ <dlg:textfield dlg:id="txtTemplateExportPath" dlg:tab-index="2" dlg:left="73" dlg:top="92" dlg:width="170" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_EDTEMPLATEPATH"/>
+ <dlg:checkbox dlg:id="chkDocumentPath" dlg:tab-index="3" dlg:left="12" dlg:top="121" dlg:width="240" dlg:height="10" dlg:page="2" dlg:tag="Document" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CBDOCUMENT" dlg:value="chkDocumentPath" dlg:checked="true">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:ImportWizard.DialogModul.ToggleInputPaths?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:checkbox>
+ <dlg:checkbox dlg:id="chkDocumentSearchSubDir" dlg:tab-index="4" dlg:left="12" dlg:top="134" dlg:width="240" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CBDOCUMENTRECURSE" dlg:value="chkDocumentSearchSubDir" dlg:checked="false"/>
+ <dlg:text dlg:id="lblDocumentImport" dlg:tab-index="5" dlg:left="10" dlg:top="151" dlg:width="60" dlg:height="8" dlg:page="2" dlg:value="lblDocumentImport"/>
+ <dlg:text dlg:id="lblDocumentExport" dlg:tab-index="6" dlg:left="10" dlg:top="167" dlg:width="60" dlg:height="8" dlg:page="2" dlg:value="lblDocumentExport"/>
+ <dlg:textfield dlg:id="txtDocumentImportPath" dlg:tab-index="7" dlg:left="73" dlg:top="149" dlg:width="170" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_LBDOCUMENTPATH">
+ <script:event script:event-name="on-textchange" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleNextButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:textfield>
+ <dlg:textfield dlg:id="txtDocumentExportPath" dlg:tab-index="8" dlg:left="73" dlg:top="165" dlg:width="170" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_EDDOCUMENTPATH"/>
+ <dlg:text dlg:id="SummaryHeaderLabel" dlg:tab-index="9" dlg:left="6" dlg:top="37" dlg:width="258" dlg:height="8" dlg:page="3" dlg:value="SummaryHeaderLabel"/>
+ <dlg:textfield dlg:id="SummaryTextbox" dlg:tab-index="10" dlg:left="5" dlg:top="48" dlg:width="259" dlg:height="125" dlg:page="3" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_3_TBSUMMARY" dlg:vscroll="true" dlg:multiline="true" dlg:readonly="true"/>
+ <dlg:text dlg:id="LabelRetrieval" dlg:tab-index="11" dlg:left="10" dlg:top="67" dlg:width="255" dlg:height="8" dlg:page="4" dlg:value="LabelRetrieval"/>
+ <dlg:text dlg:id="LabelCurTemplateRetrieval" dlg:tab-index="12" dlg:left="15" dlg:top="79" dlg:width="249" dlg:height="8" dlg:page="4" dlg:value="LabelCurTemplateRetrieval"/>
+ <dlg:text dlg:id="LabelCurDocumentRetrieval" dlg:tab-index="13" dlg:left="15" dlg:top="91" dlg:width="249" dlg:height="8" dlg:page="4" dlg:value="LabelCurDocumentRetrieval"/>
+ <dlg:text dlg:id="LabelCurProgress" dlg:tab-index="14" dlg:left="10" dlg:top="106" dlg:width="255" dlg:height="8" dlg:page="4" dlg:value="LabelCurProgress"/>
+ <dlg:text dlg:id="LabelCurDocument" dlg:tab-index="15" dlg:left="15" dlg:top="118" dlg:width="249" dlg:height="20" dlg:page="4" dlg:value="LabelCurDocument" dlg:multiline="true"/>
+ <dlg:img dlg:id="ImportPreview" dlg:tab-index="16" dlg:left="5" dlg:top="6" dlg:width="258" dlg:height="26" dlg:scale-image="false"/>
+ <dlg:button dlg:id="cmdBack" dlg:tab-index="17" dlg:left="155" dlg:top="190" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_0_CMDPREV" dlg:value="cmdBack">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ImportWizard.Main.PrevStep?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="18" dlg:left="6" dlg:top="190" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_0_CMDCANCEL" dlg:value="cmdCancel">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ImportWizard.Main.CancelTask?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdHelp" dlg:tab-index="19" dlg:left="65" dlg:top="190" dlg:width="50" dlg:height="14" dlg:value="cmdHelp" dlg:button-type="help"/>
+ <dlg:button dlg:id="cmdGoOn" dlg:tab-index="20" dlg:left="214" dlg:top="190" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_0_CMDNEXT" dlg:value="cmdGoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ImportWizard.Main.NextStep?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:text dlg:id="WelcomeTextLabel" dlg:tab-index="21" dlg:left="6" dlg:top="38" dlg:width="258" dlg:height="20" dlg:page="1" dlg:value="WelcomeTextLabel" dlg:multiline="true"/>
+ <dlg:text dlg:id="WelcomeTextLabel3" dlg:tab-index="22" dlg:left="6" dlg:top="58" dlg:width="258" dlg:height="12" dlg:page="1" dlg:value="WelcomeTextLabel3"/>
+ <dlg:button dlg:id="cmdTemplateImport" dlg:tab-index="23" dlg:left="248" dlg:top="75" dlg:width="14" dlg:height="14" dlg:page="2" dlg:tag="txtTemplateImportPath" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CMDTEMPLATEPATHSELECT" dlg:value="...">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ImportWizard.DialogModul.TakoverFolderName?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdTemplateExport" dlg:tab-index="24" dlg:left="248" dlg:top="91" dlg:width="14" dlg:height="14" dlg:page="2" dlg:tag="txtTemplateExportPath" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CMDTEMPLATEPATHSELECT2" dlg:value="...">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ImportWizard.DialogModul.TakoverFolderName?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdDocumentImport" dlg:tab-index="25" dlg:left="248" dlg:top="148" dlg:width="14" dlg:height="14" dlg:page="2" dlg:tag="txtDocumentImportPath" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CMDDOCUMENTPATHSELECT" dlg:value="...">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ImportWizard.DialogModul.TakoverFolderName?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdDocumentExport" dlg:tab-index="26" dlg:left="248" dlg:top="164" dlg:width="14" dlg:height="14" dlg:page="2" dlg:tag="txtDocumentExportPath" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CMDDOCUMENTPATHSELECT2" dlg:value="...">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ImportWizard.DialogModul.TakoverFolderName?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="optMSDocuments" dlg:tab-index="27" dlg:left="6" dlg:top="72" dlg:width="258" dlg:height="9" dlg:page="1" dlg:tag="MS" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_0_OPTMSDOCUMENTS" dlg:value="optMSDocuments" dlg:checked="true">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleCheckboxes?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optSODocuments" dlg:tab-index="28" dlg:left="6" dlg:top="113" dlg:width="258" dlg:height="9" dlg:page="1" dlg:tag="SO" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_0_OPTSODOCUMENTS" dlg:value="optSODocuments">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleCheckboxes?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ </dlg:radiogroup>
+ <dlg:checkbox dlg:id="chkMSApplication1" dlg:tab-index="29" dlg:disabled="true" dlg:left="12" dlg:top="85" dlg:width="141" dlg:height="9" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CHKWORD" dlg:value="chkMSApplication1" dlg:checked="false">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleNextButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:checkbox>
+ <dlg:checkbox dlg:id="chkMSApplication2" dlg:tab-index="30" dlg:disabled="true" dlg:left="155" dlg:top="85" dlg:width="109" dlg:height="9" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CHKEXCEL" dlg:value="chkMSApplication2" dlg:checked="false">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleNextButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:checkbox>
+ <dlg:checkbox dlg:id="chkMSApplication3" dlg:tab-index="31" dlg:disabled="true" dlg:left="12" dlg:top="98" dlg:width="141" dlg:height="9" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CHKPOWERPOINT" dlg:value="chkMSApplication3" dlg:checked="false">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleNextButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:checkbox>
+ <dlg:checkbox dlg:id="chkSOApplication1" dlg:tab-index="32" dlg:left="12" dlg:top="126" dlg:width="141" dlg:height="9" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_0_CHKWRITER" dlg:value="chkSOApplication1" dlg:checked="false">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleNextButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:checkbox>
+ <dlg:checkbox dlg:id="chkSOApplication2" dlg:tab-index="33" dlg:left="155" dlg:top="126" dlg:width="109" dlg:height="9" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_0_CHKCALC" dlg:value="chkSOApplication2" dlg:checked="false">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleNextButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:checkbox>
+ <dlg:checkbox dlg:id="chkSOApplication3" dlg:tab-index="34" dlg:left="12" dlg:top="139" dlg:width="141" dlg:height="9" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_0_CHKIMPRESS" dlg:value="chkSOApplication3" dlg:checked="false">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleNextButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:checkbox>
+ <dlg:checkbox dlg:id="chkSOApplication4" dlg:tab-index="35" dlg:left="155" dlg:top="139" dlg:width="109" dlg:height="9" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_0_CHKMATHGLOBAL" dlg:value="chkSOApplication4" dlg:checked="false">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:ImportWizard.Main.ToggleNextButton?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:checkbox>
+ <dlg:checkbox dlg:id="chkTemplatePath" dlg:tab-index="36" dlg:left="12" dlg:top="48" dlg:width="240" dlg:height="10" dlg:page="2" dlg:tag="Template" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CBTEMPLATE" dlg:value="chkTemplatePath" dlg:checked="true">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:ImportWizard.DialogModul.ToggleInputPaths?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:checkbox>
+ <dlg:checkbox dlg:id="chkTemplateSearchSubDir" dlg:tab-index="37" dlg:left="12" dlg:top="61" dlg:width="240" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_2_CBTEMPLATERECURSE" dlg:value="chkTemplateSearchSubDir" dlg:checked="false"/>
+ <dlg:text dlg:id="lblTemplateImport" dlg:tab-index="38" dlg:left="12" dlg:top="78" dlg:width="60" dlg:height="8" dlg:page="2" dlg:value="lblTemplateImport"/>
+ <dlg:checkbox dlg:id="chkLogfile" dlg:tab-index="39" dlg:left="6" dlg:top="171" dlg:width="136" dlg:height="9" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGIMPORT_0_CHKLOGFILE" dlg:value="chkLogfile" dlg:checked="true"/>
+ <dlg:fixedline dlg:id="hlnTemplates" dlg:tab-index="40" dlg:left="6" dlg:top="37" dlg:width="258" dlg:height="8" dlg:page="2" dlg:value="hlnTemplates"/>
+ <dlg:fixedline dlg:id="hlnDocuments" dlg:tab-index="41" dlg:left="6" dlg:top="110" dlg:width="258" dlg:height="8" dlg:page="2" dlg:value="hlnDocuments"/>
+ <dlg:fixedline dlg:id="FixedLine1" dlg:tab-index="42" dlg:left="6" dlg:top="181" dlg:width="258" dlg:height="6"/>
+ <dlg:fixedline dlg:id="hlnProgress" dlg:tab-index="43" dlg:left="6" dlg:top="55" dlg:width="258" dlg:height="8" dlg:page="4" dlg:value="hlnProgress"/>
+ <dlg:button dlg:id="cmdShowLogFile" dlg:tab-index="44" dlg:disabled="true" dlg:left="75" dlg:top="142" dlg:width="120" dlg:height="14" dlg:page="4" dlg:value="cmdShowLogFile">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:ImportWizard.FilesModul.OpenLogDocument?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ </dlg:bulletinboard>
+</dlg:window>
diff --git a/test/user-template/user/basic/ImportWizard/Language.xba b/test/user-template/user/basic/ImportWizard/Language.xba
new file mode 100644
index 000000000000..08c7ec7e5784
--- /dev/null
+++ b/test/user-template/user/basic/ImportWizard/Language.xba
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Language" script:language="StarBasic">Option Explicit
+
+Public sMSTemplateCheckbox(2) As String
+Public sMSDocumentCheckbox(2) As String
+Public sSODocumentCheckbox(4) As String
+Public sSOHelperdocuments(1,1) As String
+Public sTemplateCheckbox(SBMAXAPPLCOUNT-1) As String
+Public sDocumentCheckbox(SBMAXAPPLCOUNT-1) As String
+Public sTemplateGroupName As String
+Public sSearchInSubDir as String
+Public sPathErrorTemplates(SBMAXAPPLCOUNT-1) As String
+Public sPathErrorDocument(SBMAXAPPLCOUNT-1) As String
+Public sPathErrorStarDoc(SBMAXAPPLCOUNT-1) As String
+Public sStarDocLabel(SBMAXAPPLCOUNT-1) As String
+Public sImportLabel As String, sExportLabel As String
+Public SOApplicationName(5) As String
+Public sHelpButton As String, sCancelButton As String, sBackButton As String, sNextButton As String
+Public sSumInclusiveSubDir As String, sSumSaveDocuments As String
+Public sSummaryHeader As String
+Public sWelcometextLabel1 As String, sWelcometextLabel3 As String
+Public sBeginButton As String, sMsgDirNotThere As String
+Public sQueryForNewCreation As String, sPathError3 As String
+Public sNoDirCreation As String
+Public sProgressMoreDocs As String, sProgressMoreTemplates as String
+Public sFileExists As String, sMorePathsError3 As String
+Public sConvertError1 As String, sConvertError2 As String, sPathDialogMessage As String
+Public sRTErrorDesc As String, sRTErrorHeader As String
+Public sProgressPage_1 As String, sProgressPage_2 As String, sProgressPage_3 as String
+Public sProgressFound as String, sProgresspage_5 as String
+Public sContainerName(1) as String
+Public sReady as String, sTitle as String
+Public sCloseButton as String
+Public sSourceDocuments as String
+Public sTargetDocuments as String
+Public sSumSODocuments(4) as String
+Public sSumSOTemplates(4) as String
+Public sSumMSDocuments(3) as String
+Public sSumMSTemplates(3) as String
+Public ModuleList(3) as String
+Public sLogSummary as String
+Public sReeditMacro as String
+Public sOverwriteallFiles as String
+Public scouldnotopenDocument as String
+Public sCurcouldnotopenDocument as String
+Public scouldnotsaveDocument as String
+Public sCurcouldnotsaveDocument as String
+
+
+Sub LoadLanguage()
+ If InitResources(&quot;ImportWizard&quot;,&quot;imp&quot;) then
+ sHelpButton = GetResText(1000)
+ sCancelButton = GetResText(1001)
+ sBackButton = GetResText(1002)
+ sNextButton = GetResText(1003)
+ sBeginButton = GetResText(1004)
+ sCloseButton = GetResText(1005)
+
+ sWelcometextLabel1 = ReplaceString(GetResText(1006), GetProductName(),&quot;%PRODUCTNAME&quot;)
+ sWelcometextLabel3 = GetResText(1008)
+
+ &apos; Microsoft Documents
+ GetApplResourceArray(1009, 3, sMSTemplateCheckBox())
+
+ &apos; DocumentCheckbox- Captions
+ GetApplResourceArray(1012, 3, sMSDocumentCheckBox())
+
+ &apos; DocumentCheckbox- Captions
+ GetApplResourceArray(2013, 5, sSODocumentCheckBox())
+
+ &apos;StarOffice Applicationnames
+
+ sSOHelperDocuments(0,0) = GetResText(2017)
+ sSOHelperDocuments(0,1) = &quot;com.sun.star.text.GlobalDocument&quot;
+ sSOHelperDocuments(1,0) = GetResText(2018)
+ sSOHelperDocuments(1,1) = &quot;com.sun.star.formula.FormulaProperties&quot;
+
+ GetApplResourceArray(2017,2, sSOHelperDocuments())
+
+ sContainerName(0) = GetResText(1030)
+ &apos; Note: for the version 5.2 there was no Productname &quot;StarSuite&quot;
+ sContainerName(1) = &quot;StarOffice&quot;
+
+ sSummaryHeader = GetResText(1031)
+
+ sTemplateGroupName = GetResText(1036)
+
+ sProgressMoreDocs = GetResText(1041)
+ sProgressMoreTemplates = GetResText(1042)
+ sNoDirCreation = GetResText(1050)
+ sMsgDirNotThere = GetResText(1051)
+ sQueryForNewCreation = GetResText(1052)
+ sFileExists = GetResText(1053)
+ sMorePathsError3 = GetResText(1054)
+ sConvertError1 = GetResText(1055)
+ sConvertError2 = GetResText(1056)
+ sRTErrorDesc = GetResText(1057)
+ sRTErrorHeader = GetResText(1058)
+ sOverwriteallFiles = GetResText(1070)
+ sReeditMacro = GetResText(1071)
+ scouldnotsaveDocument = GetResText(1072)
+ scouldnotopenDocument = GetResText(1073)
+ sPathDialogMessage = GetResText(1080)
+ sTitle = GetResText(1081)
+
+ sProgressPage_1 = GetResText(1090)
+ sProgressPage_2 = GetResText(1091)
+ sProgressPage_3 = GetResText(1092)
+ sProgressFound = GetResText(1093)
+ sProgressPage_5 = GetResText(1094)
+ sReady = GetResText(1100)
+ sSourceDocuments = GetResText(2030)
+ sTargetDocuments = GetResText(2031)
+ sLogSummary = GetResText(2034)
+ sSumInclusiveSubDir = GetResText(3000)
+ sSumSaveDocuments = GetResText(3001)
+ &apos;StarOffice Applicationnames
+ GetApplResourceArray(3100, 4, sSumSODocuments())
+ GetApplResourceArray(3110, 4, sSumSOTemplates())
+ GetApplResourceArray(3200, 3, sSumMSDocuments())
+ GetApplResourceArray(3210, 3, sSumMSTemplates())
+ With ImportDialog
+ sImportLabel = GetResText(1033)
+ sExportLabel = GetResText(1034)
+ sSearchInSubDir = GetResText(1022)
+ .chkTemplateSearchSubDir.Label = sSearchInSubDir
+ .lblDocumentImport.Label = sImportLabel
+ .lblDocumentExport.Label = sExportLabel
+ .chkDocumentSearchSubDir.Label = sSearchInSubDir
+ .lblTemplateImport.Label = sImportLabel
+ .lblTemplateExport.Label = sExportLabel
+ .chkLogfile.Label = GetResText(2032)
+ .chkLogfile.Helptext = GetResText(2033)
+ Dim Blabla as String
+ blabla = GetResText(1072)
+ .cmdShowLogFile.Label = GetResText(2035)
+ End With
+ ModuleList(0) = &quot;com.sun.star.text.TextDocument&quot;
+ ModuleList(1) = &quot;com.sun.star.sheet.SpreadsheetDocument&quot;
+ ModuleList(2) = &quot;com.sun.star.drawing.DrawingDocument/com.sun.star.presentation.PresentationDocument&quot;
+ ModuleList(3) = &quot;com.sun.star.formula.FormulaProperties/com.sun.star.text.GlobalDocument&quot;
+ End If
+End Sub
+
+
+Sub GetApplResourceArray(StartResIndex as Integer, Count as Integer, BigArray())
+Dim i as Integer
+Dim a as Integer
+ a = 0
+ For i = StartResIndex To StartResIndex + Count-1
+ BigArray(a) = GetResText(i)
+ a = a + 1
+ Next
+End Sub
+</script:module>
diff --git a/test/user-template/user/basic/ImportWizard/Main.xba b/test/user-template/user/basic/ImportWizard/Main.xba
new file mode 100644
index 000000000000..8084fda702cb
--- /dev/null
+++ b/test/user-template/user/basic/ImportWizard/Main.xba
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Main" script:language="StarBasic">Option Explicit
+
+&apos; ***** BASIC *****
+Public HeaderPreviews(4) as Object
+Public ImportDialog as Object
+Public ImportDialogArea as Object
+Public oFactoryKey as Object
+Public bShowLogFile as Boolean
+Public oBinFilterComp as Object
+
+&apos; If the ProgressPage ist already on Top The Dialog will be immediately closed when this flag is
+&apos; set to False
+Public bConversionIsRunning as Boolean
+Public RetValue as Integer
+
+Sub Main()
+ Dim NoArgs() as New com.sun.star.beans.PropertyValue
+ bShowLogFile=FALSE
+ If Not bDebugWizard Then
+ On Local Error Goto RTError
+ End If
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ RetValue = 10
+ bIsFirstLogTable = True
+ bConversionIsRunning = False
+ sCRLF = CHR(13) &amp; CHR(10)
+ oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ oFactoryKey = GetRegistryKeyContent(&quot;org.openoffice.Setup/Office/Factories&quot;)
+ If GetImportWizardPaths() = False Then
+ Exit Sub
+ End If
+ bCancelTask = False
+ bDoKeepApplValues = False
+ CurOffice = 0
+ ImportDialogArea = LoadDialog(&quot;ImportWizard&quot;,&quot;ImportDialog&quot;)
+ ImportDialog = ImportDialogArea.Model
+ LoadLanguage()
+ WizardMode = SBXMLMODE
+ MaxApplCount = 4
+ FillStep_Welcome()
+ RepaintHeaderPreview()
+ ImportDialog.ImportPreview.BackGroundColor = RGB(0,60,126)
+ ImportDialog.cmdGoOn.DefaultButton = True
+ ImportDialogArea.GetControl(&quot;optMSDocuments&quot;).SetFocus()
+ oBinFilterComp = createUnoService( &quot;com.sun.star.comp.office.BF_MigrateFilter&quot; )
+ ToggleCheckboxesWithBoolean(True)
+
+ RetValue = ImportDialogArea.Execute()
+ If bShowLogFile=TRUE Then
+ OpenDocument(sLogUrl, NoArgs())
+ End if
+ If RetValue = 0 Then
+ CancelTask()
+ End If
+ ImportDialogArea.Dispose()
+ End
+ Exit Sub
+RTError:
+ Msgbox sRTErrorDesc, 16, sRTErrorHeader
+End Sub
+
+
+
+Sub NextStep()
+Dim iCurStep as Integer
+ If Not bDebugWizard Then
+ On Error Goto RTError
+ End If
+ bConversionIsRunning = False
+ iCurStep = ImportDialog.Step
+ Select Case iCurStep
+ Case 1
+ FillStep_InputPaths(0, True)
+ Case 2
+ If CheckInputPaths Then
+ SaveStep_InputPath
+ If CurOffice &lt; ApplCount - 1 Then
+ CurOffice = CurOffice + 1
+ TakeOverPathSettings()
+ FillStep_InputPaths(CurOffice, False)
+ Else
+ FillStep_Summary()
+ End If
+ End If
+ Case 3
+ FillStep_Progress()
+ Select Case WizardMode
+ Case SBMICROSOFTMODE
+ Call ConvertAllDocuments(MSFilterName())
+ CASE SBXMLMODE
+ Call ConvertAllDocuments(XMLFilterName())
+ End Select
+ Case 4
+ CancelTask(True)
+ End Select
+
+ If ((ImportDialog.chkLogfile.State &lt;&gt; 1) OR (iCurStep &lt;&gt; 3)) Then
+ ImportDialog.cmdGoOn.DefaultButton = True
+ End If
+
+ RepaintHeaderPreview()
+ Exit Sub
+RTError:
+ Msgbox sRTErrorDesc, 16, sRTErrorHeader
+End Sub
+
+
+
+Sub PrevStep()
+Dim iCurStep as Integer
+ If Not bDebugWizard Then
+ On Error Goto RTError
+ End If
+ bConversionIsRunning = False
+ iCurStep = ImportDialog.Step
+ Select Case iCurStep
+ Case 4
+ ImportDialog.cmdCancel.Label = sCancelButton
+ FillStep_Summary()
+ Case 3
+ FillStep_InputPaths(Applcount-1, False)
+ Case 2
+ SaveStep_InputPath
+ If CurOffice &gt; 0 Then
+ CurOffice = CurOffice - 1
+ FillStep_InputPaths(CurOffice, False)
+ Else
+ FillStep_Welcome()
+ ToggleCheckboxesWithBoolean(True)
+ bDoKeepApplValues = True
+ End If
+ End Select
+ ImportDialog.cmdGoOn.DefaultButton = True
+ RepaintHeaderPreview()
+ Exit Sub
+RTError:
+ Msgbox sRTErrorDesc, 16, sRTErrorHeader
+End Sub
+
+
+
+Sub CancelTask()
+ If bConversionIsRunning Then
+ If Msgbox(sConvertError1, 36, sConvertError2) = 6 Then
+ bCancelTask = True
+ bInterruptSearch = True
+ Else
+ bCancelTask = False
+ ImportDialog.cmdCancel.Enabled = True
+ End If
+ Else
+ ImportDialogArea.EndExecute()
+ End If
+End Sub
+
+
+Sub TemplateDirSearchDialog()
+ CallDirSearchDialog(ImportDialog.TemplateImportPath)
+End Sub
+
+
+Sub RepaintHeaderPreview()
+Dim Bitmap As Object
+Dim CurStep as Integer
+Dim sBitmapPath as String
+Dim LocPrefix as String
+ CurStep = ImportDialog.Step
+ LocPrefix = WizardMode
+ LocPrefix = ReplaceString(LocPrefix,&quot;XML&quot;, &quot;SO&quot;)
+ If CurStep = 2 Then
+ sBitmapPath = SOBitmapPath &amp; LocPrefix &amp; &quot;-Import_&quot; &amp; CurStep &amp; &quot;-&quot; &amp; Applications(CurOffice,SBAPPLKEY) + 1 &amp; &quot;.bmp&quot;
+ Else
+ sBitmapPath = SOBitmapPath &amp; &quot;Import_&quot; &amp; CurStep &amp; &quot;.bmp&quot;
+ End If
+ ImportDialog.ImportPreview.ImageURL = sBitmapPath
+End Sub
+
+
+Sub CheckModuleInstallation()
+Dim i as Integer
+ For i = 1 To MaxApplCount
+ ImportDialogArea.GetControl(&quot;chk&quot; &amp; WizardMode &amp; &quot;Application&quot; &amp; i).Model.Enabled = Abs(CheckInstalledModule(i-1))
+ Next i
+End Sub
+
+
+Function CheckInstalledModule(Index as Integer) as Boolean
+Dim ModuleName as String
+Dim NameList() as String
+Dim MaxIndex as Integer
+Dim i as Integer
+ ModuleName = ModuleList(Index)
+ If Instr(1,ModuleName,&quot;/&quot;) &lt;&gt; 0 Then
+ CheckInstalledModule() = False
+ NameList() = ArrayoutOfString(ModuleName,&quot;/&quot;, MaxIndex)
+ For i = 0 To MaxIndex
+ If oFactoryKey.HasByName(NameList(i)) Then
+ CheckInstalledModule() = True
+ End If
+ Next i
+ Else
+ CheckInstalledModule() = oFactoryKey.HasByName(ModuleName)
+ End If
+End Function
+
+
+Sub ToggleCheckboxes(oEvent as Object)
+Dim bMSEnable as Boolean
+ WizardMode = oEvent.Source.Model.Tag
+ bMSEnable = WizardMode = &quot;MS&quot;
+ ToggleCheckboxesWithBoolean(bMSEnable)
+End Sub
+
+
+Sub ToggleCheckboxesWithBoolean(bMSEnable as Boolean)
+ If bMSEnable = True Then
+ WizardMode = SBMICROSOFTMODE
+ MaxApplCount = 3
+ Else
+ WizardMode = SBXMLMODE
+ MaxApplCount = 4
+ End If
+ With ImportDialogArea
+ If (isNull(oBinFilterComp)) Then
+ .GetControl(&quot;optSODocuments&quot;).Visible = False
+ .GetControl(&quot;chkSOApplication1&quot;).Visible = False
+ .GetControl(&quot;chkSOApplication2&quot;).Visible = False
+ .GetControl(&quot;chkSOApplication3&quot;).Visible = False
+ .GetControl(&quot;chkSOApplication4&quot;).Visible = False
+ Else
+ .GetControl(&quot;chkSOApplication1&quot;).Model.Enabled = Not bMSEnable
+ .GetControl(&quot;chkSOApplication2&quot;).Model.Enabled = Not bMSEnable
+ .GetControl(&quot;chkSOApplication3&quot;).Model.Enabled = Not bMSEnable
+ .GetControl(&quot;chkSOApplication4&quot;).Model.Enabled = Not bMSEnable
+ End if
+ .GetControl(&quot;chkMSApplication1&quot;).Model.Enabled = bMSEnable
+ .GetControl(&quot;chkMSApplication2&quot;).Model.Enabled = bMSEnable
+ .GetControl(&quot;chkMSApplication3&quot;).Model.Enabled = bMSEnable
+ End With
+ CheckModuleInstallation()
+ bDoKeepApplValues = False
+ ToggleNextButton()
+End Sub
+
+
+Sub ToggleNextButton()
+Dim iCurStep as Integer
+Dim bDoEnable as Boolean
+Dim i as Integer
+ iCurStep = ImportDialog.Step
+ Select Case iCurStep
+ Case 1
+ With ImportDialog
+ If .optMSDocuments.State = 1 Then
+ bDoEnable = .chkMSApplication1.State = 1 Or .chkMSApplication2.State = 1 Or .chkMSApplication3.State = 1
+ Else
+ bDoEnable = .chkSOApplication1.State = 1 Or .chkSOApplication2.State = 1 Or .chkSOApplication3.State = 1 Or .chkSOApplication4.State = 1
+ End If
+ End With
+ bDoKeepApplValues = False
+ Case 2
+ bDoEnable = CheckControlPath(ImportDialog.chkTemplatePath, ImportDialog.txtTemplateImportPath, True)
+ bDoEnable = CheckControlPath(ImportDialog.chkDocumentPath, ImportDialog.txtDocumentImportPath, bDoEnable)
+ End Select
+ ImportDialog.cmdGoOn.Enabled = bDoEnable
+End Sub
+
+
+Sub TakeOverPathSettings()
+&apos;Takes over the Pathsettings from the first selected application to the next applications
+ If Applications(CurOffice,SBDOCSOURCE) = &quot;&quot; Then
+ Applications(CurOffice,SBDOCSOURCE) = Applications(0,SBDOCSOURCE)
+ Applications(CurOffice,SBDOCTARGET) = Applications(0,SBDOCTARGET)
+ If WizardMode = SBXMLMODE AND Applications(CurOffice,SBAPPLKEY) = 3 Then
+ Applications(CurOffice,SBTEMPLSOURCE) = Applications(CurOffice,SBDOCSOURCE)
+ Applications(CurOffice,SBTEMPLTARGET) = Applications(CurOffice,SBDOCTARGET)
+ Else
+ Applications(CurOffice,SBTEMPLSOURCE) = Applications(0,SBTEMPLSOURCE)
+ Applications(CurOffice,SBTEMPLTARGET) = Applications(0,SBTEMPLTARGET)
+ End If
+ End If
+End Sub
+
+
+Function GetImportWizardPaths() as Boolean
+ SOBitmapPath = GetOfficeSubPath(&quot;Template&quot;, &quot;../wizard/bitmap&quot;)
+ If SOBitmapPath &lt;&gt; &quot;&quot; Then
+ SOWorkPath = GetPathSettings(&quot;Work&quot;, False)
+ If SOWorkPath &lt;&gt; &quot;&quot; Then
+ SOTemplatePath = GetPathSettings(&quot;Template_writable&quot;,False,0)
+ If SOTemplatePath &lt;&gt; &quot;&quot; Then
+ GetImportWizardPaths() = True
+ Exit Function
+ End If
+ End If
+ End If
+ GetImportWizardPaths() = False
+End Function
+</script:module>
diff --git a/test/user-template/user/basic/ImportWizard/dialog.xlb b/test/user-template/user/basic/ImportWizard/dialog.xlb
new file mode 100644
index 000000000000..f5cc021d521d
--- /dev/null
+++ b/test/user-template/user/basic/ImportWizard/dialog.xlb
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="ImportWizard" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="ImportDialog"/>
+</library:library>
diff --git a/test/user-template/user/basic/ImportWizard/script.xlb b/test/user-template/user/basic/ImportWizard/script.xlb
new file mode 100644
index 000000000000..2d10f65cba30
--- /dev/null
+++ b/test/user-template/user/basic/ImportWizard/script.xlb
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="ImportWizard" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="Main"/>
+ <library:element library:name="DialogModul"/>
+ <library:element library:name="Language"/>
+ <library:element library:name="FilesModul"/>
+ <library:element library:name="API"/>
+</library:library>
diff --git a/test/user-template/user/basic/Schedule/BankHoliday.xba b/test/user-template/user/basic/Schedule/BankHoliday.xba
new file mode 100644
index 000000000000..e9af180aa32e
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/BankHoliday.xba
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="BankHoliday" script:language="StarBasic">Option Explicit
+
+Sub Main()
+ Call CalAutopilotTable()
+End Sub
+
+
+Function CalEasterTable&amp;(byval Year%)
+Dim B%,C%,D%,E%,F%,G%,H%,I%,K%,L%,M%,N%,O%, nMonth%, nDay%
+ N = Year% mod 19
+ B = int(Year% / 100)
+ C = Year% mod 100
+ D = int(B / 4)
+ E = B mod 4
+ F = int((B + 8) / 25)
+ G = int((B - F + 1) / 3)
+ H =(19 * N + B - D - G + 15) mod 30
+ I = int(C / 4)
+ K = C mod 4
+ L =(32 + 2 * E + 2 * I - H - K) mod 7
+ M = int((N + 11 * H + 22 * L) / 451)
+ O = H + L - 7 * M + 114
+ nDay = O mod 31 + 1
+ nMonth = int(O / 31)
+ CalEasterTable&amp; = DateSerial(Year, nMonth,nDay)
+End Function
+
+
+&apos; Note: the following algorithm is valid only till the Year 2100.
+&apos; but I have no Idea from which date in the paste it is valid
+Function CalOrthodoxEasterTable(ByVal iYear as Integer) as Long
+Dim R1%, R2%, R3%, RA%, R4%, RB%, R5%, RC%
+Dim lDate as Long
+ R1 = iYear mod 19
+ R2 = iYear mod 4
+ R3 = iYear mod 7
+ RA =19 * R1 + 16
+ R4 = RA mod 30
+ RB = 2 * R2 + 4 * R3 + 6 * R4
+ R5 = RB mod 7
+ RC = R4 + R5
+ lDate = DateSerial(iYear, 4,4)
+ CalOrthodoxEasterTable() = lDate + RC
+End Function
+
+
+Sub CalInitGlobalVariablesDate()
+Dim i as Integer
+ For i = 1 To 374
+ CalBankholidayName$(i) = &quot;&quot;
+ CalTypeOfBankHoliday%(i) = cHolidayType_None
+ Next
+End Sub
+
+
+Sub CalInsertBankholiday(byval CurDate as Long, byval EventName as String, ByVal iLevel as Integer)
+Dim iDay
+ iDay =(Month(CurDate)-1)*31 +Day(CurDate)
+
+ If 0 &lt;&gt; CalTypeOfBankHoliday(iDay) Then
+ If iLevel &lt; CalTypeOfBankHoliday(iDay) Then
+ CalTypeOfBankHoliday(iDay) = iLevel
+ End If
+ Else
+ CalTypeOfBankHoliday(iDay) = iLevel
+ End If
+
+ If CalBankHolidayName(iDay) = &quot;&quot; Then
+ CalBankHolidayName(iDay) = EventName
+ Else
+ CalBankHolidayName(iDay) = CalBankHolidayName(iDay) &amp; &quot; / &quot; &amp; EventName
+ End If
+End Sub
+
+Function CalMaxDayInMonth(ByVal iYear as Integer, ByVal iMonth as Integer) as Integer
+&apos; delivers the maximum Day of a month in a certain year
+ Dim TmpDate as Long
+ Dim MaxDay as Long
+
+ MaxDay = 28
+ TmpDate = DateSerial(iYear, iMonth, MaxDay)
+
+ While Month(TmpDate) = iMonth
+ MaxDay = MaxDay + 1
+ TmpDate = TmpDate + 1
+ Wend
+ Maxday = MaxDay - 1
+ CalMaxDayInMonth() = MaxDay
+End Function
+
+
+Function CalGetIntOfShortMonthName(ByVal MonthName as String) as Integer
+Dim i as Integer
+Dim nMonth as Integer
+
+ nMonth = Val(MonthName)
+
+ If (1 &lt;= nMonth And 12 &gt;= nMonth) Then
+ CalGetIntOfShortMonthName = nMonth
+ Exit Function
+ End If
+
+ MonthName = UCase(Trim(Left(MonthName, 3)))
+
+ For i = 0 To 11
+ If (UCase(cCalShortMonthNames(i)) = MonthName) Then
+ CalGetIntOfShortMonthName = i+1
+ Exit Function
+ End If
+ Next
+
+ &apos; Not Found
+ CalGetIntOfShortMonthName = 0
+End Function
+
+
+Sub CalInsertOwnDataInTables(ByVal iSelYear as Integer)
+ &apos; inserts the individual data from the table into the previously unsorted list
+Dim CurEventName as String
+Dim CurEvMonth as Integer
+Dim CurEvDay as Integer
+Dim LastIndex as Integer
+Dim i as Integer
+Dim DateStr as String
+ LastIndex = Ubound(DlgCalModel.lstOwnData.StringItemList())
+ For i = 0 To LastIndex
+ If GetSelectedDateUnits(CurEvDay, CurEvMonth, i) &lt;&gt; SBDATEUNDEFINED Then
+ CurEventName = CalGetNameOfEvent(i)
+ CalInsertBankholiday(DateSerial(iSelYear, CurEvMonth, CurEvDay), CurEventName, cHolidayType_Own)
+ End If
+ Next
+End Sub
+
+
+&apos; Finds eg the first,second Monday in a month
+&apos; Note: in This Function the week starts with the Sunday
+Function GetMonthDate(YearInt as Integer, iMonth as Integer, iWeekDay as Integer, iOffset as Integer)
+Dim bFound as Boolean
+Dim lDate as Long
+ &apos; 1st Tue in Nov : Election Day, Half
+ bFound = False
+ lDate = DateSerial(YearInt, iMonth, 1)
+ Do
+ If iWeekDay = WeekDay(lDate) Then
+ bFound = True
+ Else
+ lDate = lDate + 1
+ End If
+ Loop Until bFound
+ GetMonthDate = lDate + iOffset
+End Function
+
+
+&apos; Finds the next weekday after a fixed date
+&apos; e.g. Midsummerfeast in Sweden: next Saturday after 20th June
+Function GetNextWeekDay(iYear as Integer, iMonth as Integer, iDay as Integer, iWeekDay as Integer)
+Dim lDate as Long
+Dim iCurWeekDay as Integer
+ lDate = DateSerial(iYear, iMonth, iDay)
+ iCurWeekDay = WeekDay(lDate)
+ While iCurWeekDay &lt;&gt; iWeekDay
+ lDate = lDate + 1
+ iCurWeekDay = WeekDay(lDate)
+ Wend
+ GetNextWeekDay() = lDate
+End Function
+
+
+Sub AddFollowUpHolidays(ByVal lStartDate as Long, iCount as Integer, HolidayName as String, iType as Integer)
+Dim lDate as Long
+ For lDate = lStartDate + 1 To lStartDate + 4
+ CalInsertBankholiday(lDate, HolidayName, iType)
+ Next lDate
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Schedule/CalendarMain.xba b/test/user-template/user/basic/Schedule/CalendarMain.xba
new file mode 100644
index 000000000000..2deb51cca84d
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/CalendarMain.xba
@@ -0,0 +1,302 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="CalendarMain" script:language="StarBasic">Option Explicit
+
+Const _DEBUG = 0
+
+&apos; CalenderMain
+Public sCurLangLocale as String
+Public sCurCountryLocale as String
+&apos; This flag serves as a query if the individual Data should be saved
+Public bCalOwnDataChanged as Boolean
+
+&apos;BankHoliday Functions
+Public CalBankholidayName$ (1 To 374)
+Public CalTypeOfBankHoliday% (1 To 374)
+
+Public Const cHolidayType_None = 0
+Public Const cHolidayType_Full = 1
+Public Const cHolidayType_Half = 2
+Public Const cHolidayType_Own = 4
+
+Public cCalSubcmdDeleteSelect_DeleteSelEntry$
+Public cCalSubcmdDeleteSelect_DeleteSelEntryTitle$
+Public cCalSubcmdSwitchOwnDataOrGeneral_Back$
+Public cCalSubcmdSwitchOwnDataOrGeneral_OwnData$
+
+&apos;Language
+Public cCalLongMonthNames(11) as String
+Public cCalShortMonthNames(11) as String
+
+Public sBitmapFilename$
+Public sCalendarTitle$, sMonthTitle$, sWizardTitle$, sError$
+Public cCalStyleWorkday$, cCalStyleWeekend$
+
+Public CalChoosenLand as Integer
+
+Public oDocument as Object
+Public oSheets as Object
+Public oSheet as Object
+Public oStatusLine as Object
+Public bCancelTask as Boolean
+Public oNumberFormatter as Object
+
+&apos; BL* means &quot;BundesLand&quot; (for german states only)
+Public CONST CalBLBayern = 1
+Public CONST CalBLBadenWuert = 2
+Public CONST CalBLBerlin = 3
+Public CONST CalBLBremen = 4
+Public CONST CalBLBrandenburg = 5
+Public CONST CalBLHamburg = 6
+Public CONST CalBLHessen = 7
+Public CONST CalBLMeckPomm = 8
+Public CONST CalBLNiedersachsen = 9
+Public CONST CalBLNordrheinWest = 10
+Public CONST CalBLRheinlandPfalz = 11
+Public CONST CalBLSaarland = 12
+Public CONST CalBLSachsen = 13
+Public CONST CalBLSachsenAnhalt = 14
+Public CONST CalBLSchlHolstein = 15
+Public CONST CalBLThueringen = 16
+
+Public DlgCalendar as Object
+Public DlgCalModel as Object
+Public lDateFormat as Long
+Public lDateStandardFormat as Long
+
+
+
+Sub CalAutopilotTable()
+Dim BitmapDir as String
+Dim iThisMonth as Integer
+
+&apos;On Error Goto ErrorHandler
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ bSelectByMouseMove = True
+ oDocument = ThisComponent
+ oStatusline = oDocument.GetCurrentController.GetFrame.CreateStatusIndicator
+ ToggleWindow(False)
+ sCurLangLocale = oDocument.CharLocale.Language
+ sCurCountryLocale = oDocument.CharLocale.Country
+ DlgCalendar = LoadDialog(&quot;Schedule&quot;, &quot;DlgCalendar&quot;)
+ DlgCalModel = DlgCalendar.Model
+ LoadLanguage(sCurLangLocale)
+ CalInitGlobalVariablesDate()
+ BitmapDir = GetOfficeSubPath(&quot;Template&quot;,&quot;../wizard/bitmap&quot;)
+ DlgCalModel.imgCountry.ImageURL = BitmapDir &amp; sBitmapFilename
+ CalChoosenLand = -2
+ CalLoadOwnData()
+
+ With DlgCalModel
+ .cmdDelete.Enabled = False
+ .lstMonth.StringItemList() = cCalShortMonthNames()
+ Select Case sCurLangLocale
+ Case cLANGUAGE_JAPANESE
+ .lstOwnData.FontName = &quot;HG MinochoL&quot;
+ .txtEvent.FontName = &quot;HG MinchoL&quot;
+ Case cLANGUAGE_CHINESE
+ If oDocument.CharLocale.Country = &quot;CN&quot; Then
+ .lstOwnData.FontName = &quot;FZ Song Ti&quot;
+ .txtEvent.FontName = &quot;FZ Song Ti&quot;
+ Else
+ .lstOwnData.FontName = &quot;FZ Ming Ti&quot;
+ .txtEvent.FontName = &quot;FZ Ming Ti&quot;
+ End If
+ Case &quot;ko&quot;
+ .lstOwnData.FontName = &quot;Sun Gulim&quot;
+ .txtEvent.FontName = &quot;Sun Gulim&quot;
+ End Select
+ .lstOwnEventMonth.StringItemList() = cCalShortMonthNames()
+ .optYear.State = 1
+ .txtYear.Value = Year(Now())
+ .txtYear.Tag = .txtYear.Value
+ .Step = 1
+ End With
+ SetupNumberFormatter(sCurLangLocale, sCurCountryLocale)
+ CalChooseCalendar() &apos; month
+ iThisMonth = Month(Now)
+ DlgCalendar.GetControl(&quot;lstMonth&quot;).SelectItemPos(iThisMonth-1, True)
+ DlgCalendar.GetControl(&quot;lstHolidays&quot;).SelectItemPos(0,True)
+ DlgCalModel.cmdGoOn.DefaultButton = True
+ ToggleWindow(True)
+ DlgCalendar.GetControl(&quot;lblHolidays&quot;).Visible = sCurLangLocale = cLANGUAGE_GERMAN
+ DlgCalendar.GetControl(&quot;lstHolidays&quot;).Visible = sCurLangLocale = cLANGUAGE_GERMAN
+ fHeightCorrFactor = DlgCalendar.GetControl(&quot;imgCountry&quot;).Size.Height/198
+ fWidthCorrFactor = DlgCalendar.GetControl(&quot;imgCountry&quot;).Size.Width/166
+ DlgCalendar.Execute()
+ DlgCalendar.Dispose()
+ Exit Sub
+ErrorHandler:
+ MsgBox(sError$, 16, sWizardTitle$)
+End Sub
+
+
+Sub SetupNumberFormatter(sCurLangLocale as String, sCurCountryLocale as String)
+Dim oFormats as Object
+Dim DateFormatString as String
+ oFormats = oDocument.getNumberFormats()
+ Select Case sCurLangLocale
+ Case cLANGUAGE_GERMAN
+ DateFormatString = &quot;TT.MMM&quot;
+ Case cLANGUAGE_ENGLISH
+ DateFormatString = &quot;MMM DD&quot;
+ Case cLANGUAGE_FRENCH
+ DateFormatString = &quot;JJ/MMM&quot;
+ Case cLANGUAGE_ITALIAN
+ DateFormatString = &quot;GG/MMM&quot;
+ Case cLANGUAGE_SPANISH
+ DateFormatString = &quot;DD/MMM&quot;
+ Case cLANGUAGE_PORTUGUESE
+ If sCurCountryLocale = &quot;BR&quot; Then
+ DateFormatString = &quot;DD/MMM&quot;
+ Else
+ DateFormatString = &quot;DD-MMM&quot;
+ End If
+ Case cLANGUAGE_DUTCH
+ DateFormatString = &quot;DD/MMM&quot;
+ Case cLANGUAGE_SWEDISH
+ DateFormatString = &quot;MMM DD&quot;
+ Case cLANGUAGE_DANISH
+ DateFormatString = &quot;DD-MMM&quot;
+ Case cLANGUAGE_POLISH
+ DateFormatString = &quot;MMM DD&quot;
+ Case cLANGUAGE_RUSSIAN
+ DateFormatString = &quot;MMM DD&quot;
+ Case cLANGUAGE_JAPANESE
+ DateFormatString = &quot;M月D日&quot;
+ Case cLANGUAGE_CHINESE
+ If sCurCountryLocale = &quot;TW&quot; Then
+ DateFormatString = &quot;MMMMD&quot; &amp;&quot;&quot;&quot;&quot; &amp; &quot;æ—¥&quot; &amp; &quot;&quot;&quot;&quot;
+ Else
+ DateFormatString = &quot;M&quot; &amp; &quot;&quot;&quot;&quot; &amp; &quot;月&quot; &amp; &quot;&quot;&quot;&quot; &amp; &quot;D&quot; &amp;&quot;&quot;&quot;&quot; &amp; &quot;日&quot; &amp; &quot;&quot;&quot;&quot;
+ End If
+ Case cLANGUAGE_GREEK
+ DateFormatString = &quot;DD/MMM&quot;
+ Case cLANGUAGE_TURKISH
+ DateFormatString = &quot;DD/MMM&quot;
+ Case cLANGUAGE_POLISH
+ DateFormatString = &quot;MMM DD&quot;
+ Case cLANGUAGE_FINNISH
+ DateFormatString = &quot;PP.KKK&quot;
+ End Select
+
+ lDateFormat = AddNumberFormat(oFormats, DateFormatString, oDocument.CharLocale)
+ lDateStandardFormat = oFormats.getStandardFormat(com.sun.star.util.NumberFormat.DATE, oDocument.CharLocale)
+
+&apos; lDateStandardFormat = AddNumberFormat(oFormats, StandardDateFormatString, oDocument.CharLocale)
+ oNumberFormatter = createUNOService(&quot;com.sun.star.util.NumberFormatter&quot;)
+ oNumberFormatter.attachNumberFormatsSupplier(oDocument)
+End Sub
+
+
+Function AddNumberFormat(oNumberFormats as Object, FormatString as String, oLocale as Object) as Long
+Dim lLocDateFormat as Long
+ lLocDateFormat = oNumberFormats.QueryKey(FormatString, oLocale, True)
+ If lLocDateFormat = -1 Then
+ lLocDateFormat = oNumberFormats.addNew(FormatString, oLocale)
+ End If
+ AddNumberFormat() = lLocDateFormat
+End Function
+
+
+Sub CalChooseCalendar()
+ With DlgCalModel
+ .lstMonth.Enabled = .optMonth.State = 1
+ .lblMonth.Enabled = .optMonth.State = 1
+ End With
+End Sub
+
+
+Sub CalcmdCancel()
+ Call CalSaveOwnData()
+ DlgCalendar.EndExecute
+End Sub
+
+
+Sub CalcmdOk()
+ &apos; cmdOk is called when the Button &apos;Read&apos; is clicked on
+ &apos; It is either given out a month or a year
+Dim i, iSelYear as Integer
+Dim SelYear as String
+&apos; DlgCalendar.Visible = False
+
+ oSheets = oDocument.sheets
+ Call CalSaveOwnData()
+ UnprotectSheets(oSheets)
+ oSheets.RemovebyName(oSheets.GetbyIndex(0).Name)
+ iSelYear = DlgCalModel.txtYear.Value
+ Select Case sCurLangLocale
+ Case cLANGUAGE_GERMAN
+ If Ubound(DlgCalModel.lstHolidays.SelectedItems()) &gt; -1 Then
+ CalChoosenLand = DlgCalModel.lstHolidays.SelectedItems(0)
+ Else
+ CalChoosenLand = 0
+ End If
+ Call CalFindWholeYearHolidays_GERMANY(iSelYear, CalChoosenLand)
+ Case cLANGUAGE_ENGLISH
+ Call FindWholeYearHolidays_US(iSelYear)
+ Case cLANGUAGE_FRENCH
+ Call FindWholeYearHolidays_FRANCE(iSelYear)
+ Case cLANGUAGE_ITALIAN
+ Call FindWholeYearHolidays_ITA(iSelYear)
+ Case cLANGUAGE_SPANISH
+ Call FindWholeYearHolidays_SPAIN(iSelYear)
+ Case cLANGUAGE_PORTUGUESE
+ Call FindWholeYearHolidays_PORT(iSelYear)
+ Case cLANGUAGE_DUTCH
+ Call FindWholeYearHolidays_NL(iSelYear)
+ Case cLANGUAGE_SWEDISH
+ Call FindWholeYearHolidays_SWED(iSelYear)
+ Case cLANGUAGE_DANISH
+ Call FindWholeYearHolidays_DK(iSelYear)
+ Case cLANGUAGE_POLISH
+ Call FindWholeYearHolidays_PL(iSelYear)
+ Case cLANGUAGE_RUSSIAN
+ Call FindWholeYearHolidays_RU(iSelYear)
+ Case cLANGUAGE_JAPANESE
+ Call FindWholeYearHolidays_JP(iSelYear)
+ Case cLANGUAGE_CHINESE
+ If sCurCountryLocale = &quot;TW&quot; Then
+ Call FindWholeYearHolidays_TW(iSelYear)
+ Else
+ Call FindWholeYearHolidays_CN(iSelYear)
+ End If
+ Case cLANGUAGE_GREEK
+ Call FindWholeYearHolidays_GREEK(iSelYear)
+ Case cLANGUAGE_TURKISH
+ Call FindWholeYearHolidays_TRK(iSelYear)
+ Case cLANGUAGE_POLISH
+ Call FindWholeYearHolidays_PL(iSelYear)
+ Case cLANGUAGE_FINNISH
+ Call FindWholeYearHolidays_FI(iSelYear)
+ End Select
+
+ Call CalInsertOwnDataInTables(iSelYear)
+
+ If DlgCalModel.optYear.State = 1 Then
+ oSheets.RemovebyName(oSheets.GetbyIndex(0).Name)
+ oSheet = oSheets.GetbyIndex(0)
+ oSheet.Name = sCalendarTitle$ + &quot; &quot; + iSelYear
+ oDocument.AddActionLock
+ Call CalCreateYearTable(iSelYear)
+ ElseIf DlgCalModel.optMonth.State = 1 Then
+ Dim iMonth
+ iMonth = DlgCalModel.lstMonth.SelectedItems(0) + 1
+ oSheets.RemovebyName(oSheets.GetbyIndex(1).Name)
+ oSheet = oSheets.GetbyIndex(0)
+ If sMonthTitle = &quot;&quot; Then
+ oSheet.Name = cCalLongMonthNames(iMonth-1)
+ Else
+ oSheet.Name = sMonthTitle + &quot; &quot; + cCalLongMonthNames(iMonth-1)
+ End If
+ oDocument.AddActionLock
+ Call CalCreateMonthTable(iSelYear, iMonth)
+ End If
+
+ oDocument.RemoveActionLock
+ oSheet.protect(&quot;&quot;)
+ oStatusLine.End
+ DlgCalendar.EndExecute()
+ bCancelTask = True
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Schedule/CreateTable.xba b/test/user-template/user/basic/Schedule/CreateTable.xba
new file mode 100644
index 000000000000..6d472a84bca4
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/CreateTable.xba
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="CreateTable" script:language="StarBasic">Option Explicit
+
+Public Const FirstDayRow = 5 &apos; Row on month sheet for first day of month
+Public Const DateColumn% = 3 &apos; Column on month sheet with days
+Public Const NewYearRow = 4 &apos; Row on year sheet for January 1st
+Public Const NewYearColumn = 2 &apos; Column on year sheet for January 1st
+
+
+Sub CalCreateYearTable(ByVal iSelYear as Integer)
+&apos; Completes the overview for whole year
+
+&apos; Needed by StarOffice Calc and StarOffice Schedule
+Dim CalDay as Integer
+Dim CalMonth as Integer
+Dim i as Integer
+Dim s as Integer
+Dim oYearCell as object
+Dim iDate
+Dim ColPos, RowPos as Integer
+Dim oNameCell, oDateCell as Object
+Dim iCellValue as Long
+Dim oRangeFebCell, oCellAddress, oFebcell as Object
+Dim oRangeBlank as Object
+Dim sBlankStyle as String
+&apos; On Error Goto ErrorHandling
+ oStatusLine.Start(&quot;&quot;,140) &apos;GetResText(sProgress)
+ iDate = DateSerial(iSelYear,1,1)
+ oYearCell = oSheet.GetCellRangeByName(&quot;Year&quot;)
+ oYearCell.Value = iSelYear
+
+ CalMonth = 1
+ CalDay = 0
+ s = 10
+ oStatusLine.SetValue(s)
+ For i = 1 To 374
+ CalDay = CalDay+1
+ If CalDay = 32 Then
+ CalDay = 1
+ CalMonth = CalMonth+1
+ s = s + 10
+ oStatusLine.SetValue(s)
+ End If
+ ColPos = NewYearColumn+(2*CalMonth)
+ RowPos = NewYearRow + CalDay
+ FormatCalCells(ColPos,RowPos,i)
+ Next
+ If NOT CalIsLeapYear(iSelYear) Then
+ &apos; Delete 29th February if necessary
+ oRangeFebCell = oSheet.GetCellRangeByName(&quot;Feb29&quot;)
+ oCellAddress = oRangeFebCell.RangeAddress
+ oFebCell = oSheet.GetCellByPosition(oCellAddress.StartColumn,oCellAddress.StartRow)
+ oFebCell.String = &quot;&quot;
+ &apos; Change the CellStyle according to the Range &quot;Blank&quot;
+ oRangeBlank = oSheet.GetCellRangebyName(&quot;Blank&quot;)
+ sBlankStyle = oRangeBlank.CellStyle
+ oRangeFebCell.CellStyle = sBlankStyle
+ End If
+ oStatusLine.SetValue(150)
+ ErrorHandling:
+ If Err &lt;&gt; 0 Then
+ MsgBox sError$, 16, sWizardTitle$
+ End If
+End Sub
+
+
+
+Sub CalCreateMonthTable(ByVal iSelYear as Integer, iSelMonth as Integer)
+Dim oMonthCell, oDateCell as Object
+Dim iDate as Date
+Dim oAddress
+Dim i, s as Integer
+Dim iStartDay as Integer
+
+&apos; Completes the monthly calendar
+&apos;On Error Goto ErrorHandling
+ oStatusLine.Start(&quot;&quot;,40) &apos;GetResText(sProgess)
+ &apos; Set month
+ oMonthCell = oSheet.GetCellRangeByName(&quot;Month&quot;)
+
+ iDate = DateSerial(iSelYear,iSelMonth,1)
+ oMonthCell.Value = iDate
+ &apos; Inserting holidays
+ iStartDay = (iSelMonth - 1) * 31 + 1
+ s = 5
+ For i = iStartDay To iStartDay + 30
+ oStatusLine.SetValue(s)
+ s = s + 1
+ FormatCalCells(DateColumn+1,FirstDayRow + i - iStartDay,i)
+ Next
+ oDateCell = oSheet.GetCellbyPosition(DateColumn,FirstDayRow+i-iStartDay - 1)
+ oAddress = oDateCell.RangeAddress
+
+ Select Case iSelMonth
+ Case 2,4,6,9,11
+ oSheet.RemoveRange(oAddress, com.sun.star.sheet.CellDeleteMode.ROWS)
+ If iSelMonth = 2 Then
+ oAddress.StartRow = oAddress.StartRow - 1
+ oAddress.EndRow = oAddress.StartRow
+ oSheet.RemoveRange(oAddress, com.sun.star.sheet.CellDeleteMode.ROWS)
+ If Not CalIsLeapYear(iSelYear) Then
+ oAddress.StartRow = oAddress.StartRow - 1
+ oAddress.EndRow = oAddress.StartRow
+ oSheet.RemoveRange(oAddress, com.sun.star.sheet.CellDeleteMode.ROWS)
+ End If
+ End If
+ End Select
+ oStatusLine.SetValue(45)
+ErrorHandling:
+ If Err &lt;&gt; 0 Then
+ MsgBox sError$, 16, sWizardTitle$
+ End If
+End Sub
+
+
+
+Sub FormatCalCells(ColPos,RowPos,i as Integer)
+Dim oNameCell, oDateCell as Object
+Dim iCellValue as Long
+ oDateCell = oSheet.GetCellbyPosition(ColPos-1,RowPos)
+ If oDateCell.Value &lt;&gt; 0 Then
+ iCellValue = oDateCell.Value
+ oDateCell.Value = iCellValue
+ If CalBankHolidayName$(i) &lt;&gt; &quot;&quot; Then
+ oNameCell = oSheet.GetCellbyPosition(ColPos,RowPos)
+ oNameCell.String = CalBankHolidayName$(i)
+ If CalTypeOfBankHoliday%(i) = cHolidayType_Full Then
+ oDateCell.CellStyle = cCalStyleWeekend$
+ End If
+ End If
+ End If
+End Sub</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Schedule/DlgCalendar.xdl b/test/user-template/user/basic/Schedule/DlgCalendar.xdl
new file mode 100644
index 000000000000..2936a5ebe6da
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/DlgCalendar.xdl
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Dialog1" dlg:left="160" dlg:top="81" dlg:width="208" dlg:height="156" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_DIALOG" dlg:closeable="true" dlg:moveable="true">
+ <dlg:styles>
+ <dlg:style dlg:style-id="0" dlg:border="none"/>
+ <dlg:style dlg:style-id="1" dlg:font-name="Cumberland" dlg:font-stylename="Standard" dlg:font-family="modern" dlg:font-charset="ansi"/>
+ <dlg:style dlg:style-id="2" dlg:font-name="Cumberland" dlg:font-stylename="Standard" dlg:font-family="modern" dlg:font-charset="ansi"/>
+ </dlg:styles>
+ <dlg:bulletinboard>
+ <dlg:menulist dlg:id="lstHolidays" dlg:tab-index="0" dlg:left="6" dlg:top="17" dlg:width="95" dlg:height="12" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_1_CMBSTATE" dlg:spin="true"/>
+ <dlg:fixedline dlg:id="hlnCalendar" dlg:tab-index="1" dlg:left="6" dlg:top="36" dlg:width="95" dlg:height="8" dlg:page="1" dlg:value="hlnCalendar"/>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="optYear" dlg:tab-index="2" dlg:left="12" dlg:top="47" dlg:width="81" dlg:height="10" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_1_OPYEAR" dlg:value="optYear">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Schedule.CalendarMain.CalChooseCalendar?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="optMonth" dlg:tab-index="3" dlg:left="12" dlg:top="61" dlg:width="81" dlg:height="10" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_1_OPMONTH" dlg:value="optMonth">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Schedule.CalendarMain.CalChooseCalendar?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ </dlg:radiogroup>
+ <dlg:text dlg:id="lblHolidays" dlg:tab-index="4" dlg:left="6" dlg:top="6" dlg:width="96" dlg:height="8" dlg:page="1" dlg:value="lblHolidays"/>
+ <dlg:img dlg:style-id="0" dlg:id="imgCountry" dlg:tab-index="5" dlg:left="106" dlg:top="6" dlg:width="95" dlg:height="113" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_1_PREVIEW">
+ <script:event script:event-name="on-mousedown" script:macro-name="vnd.sun.star.script:Schedule.DlgControl.SelectState?language=Basic&amp;location=application" script:language="Script"/>
+ <script:event script:event-name="on-mouseout" script:macro-name="vnd.sun.star.script:Schedule.DlgControl.MouseLeavesImage?language=Basic&amp;location=application" script:language="Script"/>
+ <script:event script:event-name="on-mousemove" script:macro-name="vnd.sun.star.script:Schedule.DlgControl.CalMouseMoved?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:img>
+ <dlg:fixedline dlg:id="hlnTime" dlg:tab-index="6" dlg:left="5" dlg:top="78" dlg:width="95" dlg:height="8" dlg:page="1" dlg:value="hlnTime"/>
+ <dlg:menulist dlg:id="lstMonth" dlg:tab-index="7" dlg:left="62" dlg:top="106" dlg:width="38" dlg:height="12" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_1_EDMONTH" dlg:spin="true"/>
+ <dlg:text dlg:id="lblYear" dlg:tab-index="8" dlg:left="12" dlg:top="91" dlg:width="46" dlg:height="8" dlg:page="1" dlg:value="lblYear"/>
+ <dlg:text dlg:id="lblMonth" dlg:tab-index="9" dlg:left="12" dlg:top="108" dlg:width="46" dlg:height="8" dlg:page="1" dlg:value="lblMonth"/>
+ <dlg:fixedline dlg:id="FixedLine1" dlg:tab-index="10" dlg:left="6" dlg:top="125" dlg:width="196" dlg:height="4"/>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="11" dlg:left="6" dlg:top="136" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_0_CMDCANCEL" dlg:value="cmdCancel">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Schedule.CalendarMain.CalcmdCancel?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdOwnData" dlg:tab-index="12" dlg:left="99" dlg:top="136" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_0_CMDOWNDATA" dlg:value="cmdOwnData">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Schedule.DlgControl.CalmdSwitchOwnDataOrGeneral?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdGoOn" dlg:tab-index="13" dlg:left="152" dlg:top="136" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_0_CMDOK" dlg:value="cmdGoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Schedule.CalendarMain.CalcmdOk?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:text dlg:id="lblEvent" dlg:tab-index="14" dlg:left="12" dlg:top="17" dlg:width="67" dlg:height="8" dlg:page="2" dlg:value="lblEvent"/>
+ <dlg:fixedline dlg:id="hlnNewEvent" dlg:tab-index="15" dlg:left="6" dlg:top="6" dlg:width="196" dlg:height="8" dlg:page="2" dlg:value="hlnNewEvent"/>
+ <dlg:textfield dlg:style-id="1" dlg:id="txtEvent" dlg:tab-index="16" dlg:left="12" dlg:top="28" dlg:width="107" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_2_EDEVENT">
+ <script:event script:event-name="on-textchange" script:macro-name="vnd.sun.star.script:Schedule.OwnEvents.CheckInsertedDates?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:textfield>
+ <dlg:numericfield dlg:id="txtOwnEventDay" dlg:tab-index="17" dlg:left="13" dlg:top="55" dlg:width="30" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_2_EDEVENTDAY" dlg:decimal-accuracy="0" dlg:value-min="1" dlg:spin="true">
+ <script:event script:event-name="on-textchange" script:macro-name="vnd.sun.star.script:Schedule.OwnEvents.CheckInsertedDates?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:numericfield>
+ <dlg:menulist dlg:id="lstOwnEventMonth" dlg:tab-index="18" dlg:left="60" dlg:top="55" dlg:width="30" dlg:height="12" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_2_EDEVENTMONTH" dlg:spin="true">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Schedule.OwnEvents.GetOwnMonth?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ <dlg:button dlg:id="cmdInsert" dlg:tab-index="19" dlg:left="99" dlg:top="70" dlg:width="50" dlg:height="14" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_2_CMDINSERT" dlg:value="cmdInsert">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Schedule.OwnEvents.CalcmdInsertData?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdDelete" dlg:tab-index="20" dlg:left="152" dlg:top="70" dlg:width="50" dlg:height="14" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_2_CMDDELETE" dlg:value="cmdDelete">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Schedule.DlgControl.CalcmdDeleteSelect?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:menulist dlg:style-id="2" dlg:id="lstOwnData" dlg:tab-index="21" dlg:left="12" dlg:top="86" dlg:width="190" dlg:height="34" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_2_LBOWNDATA">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Schedule.DlgControl.CalUpdateNewEventFrame?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ <dlg:text dlg:id="lblEventDay" dlg:tab-index="22" dlg:left="12" dlg:top="44" dlg:width="44" dlg:height="8" dlg:page="2" dlg:value="lblEventDay"/>
+ <dlg:text dlg:id="lblEventMonth" dlg:tab-index="23" dlg:left="60" dlg:top="44" dlg:width="44" dlg:height="8" dlg:page="2" dlg:value="lblEventMonth"/>
+ <dlg:numericfield dlg:id="txtYear" dlg:tab-index="24" dlg:left="62" dlg:top="89" dlg:width="38" dlg:height="12" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGHOLIDAYCAL_1_EDYEAR" dlg:decimal-accuracy="0" dlg:value-min="1582" dlg:value-max="9957" dlg:spin="true"/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Schedule/DlgControl.xba b/test/user-template/user/basic/Schedule/DlgControl.xba
new file mode 100644
index 000000000000..b7a7c4c957ae
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/DlgControl.xba
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="DlgControl" script:language="StarBasic">Option Explicit
+
+Dim CalBitmap As Object
+Public bSelectByMouseMove as Boolean
+Public fHeightCorrFactor as Double
+Public fWidthCorrFactor as Double
+
+
+
+Sub Main()
+ Call CalAutopilotTable()
+End Sub
+
+
+Sub CalcmdDeleteSelect()
+Dim MsgBoxResult as Integer
+Dim bDoEnable as Boolean
+Dim iSel as Integer
+Dim MaxIndex as Integer
+ If Ubound(DlgCalModel.lstOwnData.SelectedItems()) &gt; -1 Then
+ MsgBoxResult = MsgBox(cCalSubcmdDeleteSelect_DeleteSelEntry$, 4+32, cCalSubcmdDeleteSelect_DeleteSelEntryTitle$)
+ If MsgBoxResult = 6 Then
+ iSel = DlgCalModel.lstOwnData.SelectedItems(0)
+ DlgCalModel.lstOwnData.StringItemList() = RemoveSelected(DlgCalModel.lstOwnData)
+ &apos; Flag to store the new data
+ bCalOwnDataChanged = True
+ bDoEnable = Ubound(DlgCalModel.lstOwnData.StringItemList()) &gt; -1
+ DlgCalModel.cmdDelete.Enabled = bDoEnable
+ If bDoEnable Then
+ MaxIndex = Ubound(DlgCalModel.lstOwnData.StringItemList())
+ If iSel &gt; MaxIndex Then
+ iSel = MaxIndex
+ End If
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).SelectItemPos(iSel, True)
+ CalUpdateNewEventFrame()
+ Else
+ Call CalClearInputMask()
+ End If
+ End If
+ End If
+End Sub
+
+
+Sub CalSaveOwnEventControls()
+ With DlgCalModel
+ .txtOwnEventDay.Tag = .txtOwnEventDay.Value
+ .txtOwnEventMonth.Tag = .txtOwnEventMonth.Text
+ End With
+End Sub
+
+
+Sub CalMouseMoved(aEvent as object)
+Dim ListIndex as Integer
+ Select Case sCurLangLocale
+ Case cLANGUAGE_GERMAN
+ If bSelectByMouseMove Then
+&apos; oStatusLine.SetText(&quot;Position: &quot; &amp; aEvent.X &amp; &quot; ; &quot; &amp; aEvent.Y)
+ ListIndex = CalGetGermanLandAtMousePos(CInt(aEvent.X/fWidthCorrFactor), CInt(aEvent.Y/fHeightCorrFactor))
+ DlgCalendar.GetControl(&quot;lstHolidays&quot;).SelectItemPos(ListIndex, True)
+ End If
+ End Select
+End Sub
+
+
+Sub SelectState(aEvent as Object)
+Dim ListIndex as Integer
+ Select Case sCurLangLocale
+ Case cLANGUAGE_GERMAN
+ If aEvent.ClickCount &gt;= 1 Then
+ ListIndex = CalGetGermanLandAtMousePos(CInt(aEvent.X/fWidthCorrFactor), CInt(aEvent.Y/fHeightCorrFactor))
+ DlgCalendar.GetControl(&quot;lstHolidays&quot;).SelectItemPos(ListIndex, True)
+ bSelectByMouseMove = False
+ End If
+ End Select
+End Sub
+
+
+Sub MouseLeavesImage
+ bSelectbyMouseMove = True
+End Sub
+
+
+Sub CalClearInputMask()
+Dim NullList() as String
+ With DlgCalModel
+ .txtEvent.Text = &quot;&quot;
+ .txtOwnEventDay.SetPropertyToDefault(&quot;Value&quot;)
+ .cmdInsert.Enabled = False
+ End With
+ If Ubound(DlgCalModel.lstOwnData.StringItemList()) &gt; -1 Then
+ If Ubound(DlgCalModel.lstOwnData.SelectedItems()) = -1 Then
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).SelectItemPos(0,True)
+ CalUpdateNewEventFrame()
+ End If
+ End If
+End Sub
+
+
+Sub CalmdSwitchOwnDataOrGeneral()
+ If DlgCalModel.Step = 1 Then
+ DlgCalModel.Step = 2
+ DlgCalModel.cmdOwnData.Label = cCalSubcmdSwitchOwnDataOrGeneral_Back$
+ DlgCalModel.cmdInsert.Enabled = DlgCalModel.txtEvent.Text &lt;&gt; &quot;&quot;
+&apos; ToggleYearBox()
+ Else
+ dim bla as boolean
+ DlgCalModel.Step = 1
+ DlgCalendar.GetControl(&quot;lblHolidays&quot;).Visible = sCurLangLocale = cLANGUAGE_GERMAN
+ DlgCalendar.GetControl(&quot;lstHolidays&quot;).Visible = sCurLangLocale = cLANGUAGE_GERMAN
+ DlgCalModel.cmdOwnData.Label = cCalSubcmdSwitchOwnDataOrGeneral_OwnData$
+ End If
+End Sub
+
+
+Sub ToggleInsertButton()
+ DlgCalModel.cmdInsert.Enabled = LTrim(DlgCalModel.txtEvent.Text) &lt;&gt; &quot;&quot;
+End Sub
+
+
+Sub CalUpdateNewEventFrame()
+Dim bDoEnable as Boolean
+Dim sSelectedItem
+Dim ListIndex as Integer
+Dim MaxSelIndex as Integer
+Dim CurEvMonth as Integer
+Dim CurEvDay as Integer
+Dim DateStr as String
+ bDoEnable = False
+ With DlgCalModel
+ MaxSelIndex = Ubound(DlgCalModel.lstOwnData.SelectedItems())
+ If MaxSelIndex &gt; -1 Then
+ ListIndex = .lstOwnData.SelectedItems(MaxSelIndex)
+ .txtEvent.Text = CalGetNameofEvent(ListIndex)
+ If GetSelectedDateUnits(CurEvDay, CurEvMonth, ListIndex) &lt;&gt; SBDATEUNDEFINED Then
+ .txtOwnEventDay.Value = CurEvDay
+ DlgCalendar.GetControl(&quot;lstOwnEventMonth&quot;).SelectItemPos(CurEvMonth-1, True)
+ .cmdDelete.Enabled = True
+ .cmdInsert.Enabled = True
+ Else
+ Call CalClearInputMask()
+ .cmdDelete.Enabled = True
+ End If
+ End If
+ End With
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Schedule/GermanHolidays.xba b/test/user-template/user/basic/Schedule/GermanHolidays.xba
new file mode 100644
index 000000000000..7ce4357e9699
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/GermanHolidays.xba
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="GermanHolidays" script:language="StarBasic">Option Explicit
+
+Sub Main()
+ Call CalAutopilotTable()
+End Sub
+
+Function CalGetGermanLandAtMousePos(byval X as single, byval Y as single) as Integer
+ CalChoosenLand = 0
+ If (X&gt;73)And(X&lt;130)And(Y&gt;=117)And(Y&lt;181) Then
+ CalChoosenLand = CalBLBayern
+
+ ElseIf (X&gt;41)And(X&lt;89)And(Y&gt;=136)And(Y&lt;183) Then
+ CalChoosenLand = CalBLBadenWuert
+
+ ElseIf (X&gt;18)And(X&lt;35)And(Y&gt;136)And(Y&lt;147) Then
+ CalChoosenLand = CalBLSaarland
+
+ ElseIf (X&gt;13)And(X&lt;42)And(Y&gt;111)And(Y&lt;146) Then
+ CalChoosenLand = CalBLRheinlandPfalz
+
+ ElseIf (X&gt;15)And(X&lt;=60)And(Y&gt;=69)And(Y&lt;112) Then
+ CalChoosenLand = CalBLNordrheinWest
+
+ ElseIf (X&gt;=42)And(X&lt;78)And(Y&gt;=95)And(Y&lt;136) Then
+ CalChoosenLand = CalBLHessen
+
+ ElseIf (X&gt;=78)And(X&lt;112)And(Y&gt;=95)And(Y&lt;117) Then
+ CalChoosenLand = CalBLThueringen
+
+ ElseIf (X&gt;=112)And(X&lt;158)And(Y&gt;=88)And(Y&lt;114) Then
+ CalChoosenLand = CalBLSachsen
+
+ ElseIf (X&gt;77)And(X&lt;84)And(Y&gt;35)And(Y&lt;42) Then
+ CalChoosenLand = CalBLHamburg
+
+ ElseIf (X&gt;56)And(X&lt;60)And(Y&gt;36)And(Y&lt;41) Then
+ CalChoosenLand = CalBLBremen
+
+ ElseIf (X&gt;58)And(X&lt;63)And(Y&gt;44)And(Y&lt;52) Then
+ CalChoosenLand = CalBLBremen
+
+ ElseIf (X&gt;52)And(X&lt;95)And(Y&gt;8)And(Y&lt;40) Then
+ CalChoosenLand = CalBLSchlHolstein
+
+ ElseIf (X&gt;90)And(X&lt;149)And(Y&gt;23)And(Y&lt;48) Then
+ CalChoosenLand = CalBLMeckPomm
+
+ ElseIf (X&gt;28)And(X&lt;90)And(Y&gt;35)And(Y&lt;69) Then
+ CalChoosenLand = CalBLNiedersachsen
+
+ ElseIf (X&gt;60)And(X&lt;90)And(Y&gt;=69)And(Y&lt;95) Then
+ CalChoosenLand = CalBLNiedersachsen
+
+ ElseIf (X&gt;=90)And(X&lt;=115)And(Y&gt;47)And(Y&lt;95) Then
+ CalChoosenLand = CalBLSachsenAnhalt
+
+ ElseIf (X&gt;129)And(X&lt;139)And(Y&gt;60)And(Y&lt;66) Then
+ CalChoosenLand = CalBLBerlin
+
+ ElseIf (X&gt;115)And(X&lt;151)And(Y&gt;=48)And(Y&lt;88) Then
+ CalChoosenLand = CalBLBrandenburg
+ End If
+ CalGetGermanLandAtMousePos = CalChoosenLand
+End Function
+
+
+
+Sub CalFindWholeYearHolidays_GERMANY(ByVal iSelYear as Integer, ByVal iCountry as Integer)
+ Dim So as Integer
+ Dim OsternDate&amp;, VierterAdvent&amp;
+
+ If (iCountry &lt; 1) Or (iCountry &gt; 16) Then
+ iCountry = CalBLHamburg
+ End If
+ OsternDate&amp; = CalEasterTable&amp;(iSelYear)
+ So = 1
+
+ CalInsertBankholiday(DateSerial(iSelYear, 1, 1), &quot;Neujahr&quot;, cHolidayType_Full)
+
+ If (iCountry = CalBLBayern) Or (iCountry = CalBLBadenWuert) Or (iCountry = CalBLSachsenAnhalt) Then
+ CalInsertBankholiday(DateSerial(iSelYear, 1, 6), &quot;Hl. 3 Könige&quot;, cHolidayType_Full)
+ End If
+
+ CalInsertBankholiday(OsternDate&amp;-2, &quot;Karfreitag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(OsternDate&amp;, &quot;Ostersonntag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(OsternDate&amp;+1, &quot;Ostermontag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(iSelYear, 5, 1), &quot;Maifeiertag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(OsternDate&amp;+39, &quot;Christi Himmelfahrt&quot;, cHolidayType_Full)
+ CalInsertBankholiday(OsternDate&amp;+49, &quot;Pfingstsonntag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(OsternDate&amp;+50, &quot;Pfingstmontag&quot;, cHolidayType_Full)
+
+ If (iCountry = CalBLBadenWuert) Or (iCountry = CalBLBayern) Or (iCountry = CalBLHessen) Or (iCountry = CalBLNordRheinWest) Or (iCountry = CalBLRheinlandPfalz) Or (iCountry = CalBLSaarland) Or (iCountry = CalBLSachsen) Or (iCountry = CalBLThueringen) Then
+ CalInsertBankholiday(OsternDate&amp;+60, &quot;Fronleichnam&quot;, cHolidayType_Full)
+ End If
+
+ If (iCountry = CalBLBayern) Or (iCountry = CalBLSaarland) Then
+ CalInsertBankholiday(DateSerial(iSelYear, 8, 15), &quot;Mariä Himmelfahrt&quot;, cHolidayType_Full)
+ End If
+
+ CalInsertBankholiday(DateSerial(iSelYear, 10, 3), &quot;Tag der dt. Einheit&quot;, cHolidayType_Full)
+
+ If (iCountry=CalBLBrandenburg) Or (iCountry=CalBLMeckPomm) Or (iCountry=CalBLSachsenAnhalt) Or (iCountry=CalBLSachsen) Or (iCountry=CalBLThueringen) Then
+ CalInsertBankholiday(DateSerial(iSelYear, 10, 31), &quot;Reformationstag&quot;, cHolidayType_Full)
+ End If
+
+ If (iCountry = CalBLBadenWuert) Or (iCountry = CalBLBayern) Or (iCountry = CalBLNordRheinWest) Or (iCountry = CalBLRheinlandPfalz) Or (iCountry = CalBLSaarland) Or (iCountry = CalBLSachsen) Or (iCountry = CalBLThueringen) Then
+ CalInsertBankholiday(DateSerial(iSelYear, 11, 1), &quot;Allerheiligen&quot;, cHolidayType_Full)
+ End If
+
+ vierterAdvent = DateSerial(iSelYear, 12, 24)
+ While WeekDay(vierterAdvent) &lt;&gt; So
+ vierterAdvent = vierterAdvent - 1
+ Wend
+
+ If iCountry = CalBLSachsen Then
+ CalInsertBankholiday(vierterAdvent-32, &quot;Buß- und Bettag&quot;, cHolidayType_Full)
+ Else
+ CalInsertBankholiday(vierterAdvent-32, &quot;Buß- und Bettag&quot;, cHolidayType_Half)
+ End If
+ CalInsertBankholiday(vierterAdvent-21, &quot;1. Advent&quot;, cHolidayType_Full)
+ CalInsertBankholiday(vierterAdvent-14, &quot;2. Advent&quot;, cHolidayType_Full)
+ CalInsertBankholiday(vierterAdvent-7, &quot;3. Advent&quot;, cHolidayType_Full)
+ CalInsertBankholiday(vierterAdvent, &quot;4. Advent&quot;, cHolidayType_Full)
+
+ CalInsertBankholiday(Dateserial(iSelYear, 12, 24), &quot;Heiligabend&quot;, cHolidayType_Half)
+ CalInsertBankholiday(Dateserial(iSelYear, 12, 25), &quot;1. Weihnachtstag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(Dateserial(iSelYear, 12, 26), &quot;2. Weihnachtstag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(Dateserial(iSelYear, 12, 31), &quot;Sylvester&quot;, cHolidayType_Half)
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Schedule/Language.xba b/test/user-template/user/basic/Schedule/Language.xba
new file mode 100644
index 000000000000..9fbf0942e94f
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/Language.xba
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Language" script:language="StarBasic">Option Explicit
+
+
+Public Const cLANGUAGE_SYSTEM = &quot;&quot;, cLANGUAGE_CHINESE = &quot;zh&quot;, cLANGUAGE_DANISH = &quot;da&quot;
+Public Const cLANGUAGE_DUTCH = &quot;nl&quot;, cLANGUAGE_ENGLISH = &quot;en&quot;, cLANGUAGE_FINNISH = &quot;fi&quot;
+Public Const cLANGUAGE_FRENCH = &quot;fr&quot;, cLANGUAGE_GERMAN = &quot;de&quot;, cLANGUAGE_GREEK = &quot;el&quot;
+Public Const cLANGUAGE_ITALIAN = &quot;it&quot;, cLANGUAGE_JAPANESE = &quot;ja&quot;, cLANGUAGE_NORWEGIAN = &quot;no&quot;
+Public Const cLANGUAGE_POLISH = &quot;pl&quot;, cLANGUAGE_PORTUGUESE = &quot;pt&quot;, cLANGUAGE_RUSSIAN = &quot;ru&quot;
+Public Const cLANGUAGE_SPANISH = &quot;es&quot;, cLANGUAGE_SWEDISH = &quot;sv&quot;, cLANGUAGE_TURKISH = &quot;tr&quot;
+
+Public BLNameList(0 To 16) as String
+
+
+&apos; R e s o u r c e s t r i n g c o n s t a n t s
+&apos; -------------------------------------------------
+&apos; Dialog labels start at 1000
+
+Sub LoadLanguage%(ByVal LangLocale)
+Dim Dummy$
+Dim i as Integer
+Const dlgMonth = 1200
+&apos; Abreviated months start 1225
+Const dlgShortMonth = 1225
+ If InitResources(&quot;schedule&quot;, &quot;cal&quot;) Then
+ If LangLocale = cLANGUAGE_GERMAN Then
+
+ &apos; Load all states
+ BLNameList(0) = GetResText(1100)
+ BLNameList(1) = &quot;Bayern&quot;
+ BLNameList(2) = &quot;Baden-Württemberg&quot;
+ BLNameList(3) = &quot;Berlin&quot;
+ BLNameList(4) = &quot;Bremen&quot;
+ BLNameList(5) = &quot;Brandenburg&quot;
+ BLNameList(6) = &quot;Hamburg&quot;
+ BLNameList(7) = &quot;Hessen&quot;
+ BLNameList(8) = &quot;Mecklenburg-Vorpommern&quot;
+ BLNameList(9) = &quot;Niedersachsen&quot;
+ BLNameList(10) = &quot;Nordrhein-Westfalen&quot;
+ BLNameList(11) = &quot;Rheinland-Pfalz&quot;
+ BLNameList(12) = &quot;Saarland&quot;
+ BLNameList(13) = &quot;Sachsen&quot;
+ BLNameList(14) = &quot;Sachsen-Anhalt&quot;
+ BLNameList(15) = &quot;Schleswig Holstein&quot;
+ BLNameList(16) = &quot;Thüringen&quot;
+
+ DlgCalModel.lstHolidays.StringItemList() = BLNameList()
+ End If
+ sWizardTitle$ = GetResText(1300)
+ sError = GetResText(1301)
+ cCalSubcmdDeleteSelect_DeleteSelEntryTitle$ = GetResText(1302)
+ cCalSubcmdDeleteSelect_DeleteSelEntry$ = GetResText(1303)
+ DlgCalendar.Title = GetResText(1000)
+
+ With DlgCalModel
+ cCalSubcmdSwitchOwnDataOrGeneral_OwnData$ = GetResText(1002)
+ cCalSubcmdSwitchOwnDataOrGeneral_Back$ = GetResText(1001)
+ .hlnTime.Label = GetResText(1011)
+ .lblYear.Label = GetResText(1012)
+ .cmdCancel.Label = GetResText(1005)
+ .cmdGoOn.Label = GetResText(1004)
+ .lblHolidays.Label = GetResText(1014)
+ sBitmapFilename = GetResText(1099)
+ sBitmapFilename = ReplaceString(sBitmapFileName, &quot;.gif&quot;, &quot;.bmp&quot;)
+ DlgCalModel.hlnCalendar.Label = GetResText(1006)
+ .optYear.Label = GetResText(1007)
+ .optMonth.Label = GetResText(1008)
+ .lblMonth.Label = GetResText(1013)
+ .cmdOwnData.Label = GetResText(1015)
+ .hlnNewEvent.Label = GetResText(1019)
+ .lblEvent.Label = GetResText(1019)
+ .lblEventDay.Label = GetResText(1021)
+ .lblEventMonth.Label = GetResText(1022)
+&apos; .lblEventYear.Label = GetResText(1023)
+&apos; .chkEventOnce.Label = GetResText(1020)
+ .cmdInsert.Label = GetResText(1016)
+ .cmdDelete.Label = GetResText(1017)
+ &apos; Load long month names
+ For i = 0 To 11
+ cCalLongMonthNames(i) = GetResText(dlgMonth+i)
+ cCalShortMonthNames(i)= cCalLongMonthNames(i)
+ &apos;cCalShortMonthNames(i)= Left$(cCalLongMonthNames(i), 3)
+ cCalShortMonthNames(i)= RTrim(cCalShortMonthNames(i))
+ Next
+ &apos; Load sheet names
+ sCalendarTitle = GetResText(1410)
+ sMonthTitle = GetResText(1411)
+ &apos; Load names of styles
+ cCalStyleWorkday$ = GetResText(1400)
+ cCalStyleWeekend$ = GetResText(1401)
+ End With
+ End If
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Schedule/LocalHolidays.xba b/test/user-template/user/basic/Schedule/LocalHolidays.xba
new file mode 100644
index 000000000000..0b347c03f031
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/LocalHolidays.xba
@@ -0,0 +1,642 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="LocalHolidays" script:language="StarBasic">Option Explicit
+
+Sub Main
+ Call CalAutopilotTable()
+End Sub
+
+
+Sub FindWholeYearHolidays_FRANCE(ByVal YearInt as Integer)
+Dim lEasterDate&amp;
+Dim lDate&amp;
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Jour de l&apos;an&quot;, cHolidayType_Full)
+ lEasterDate = CalEasterTable(YearInt)
+ CalInsertBankholiday(lEasterDate, &quot;Pâques&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lEasterDate + 1, &quot;Lundi de Pâques&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lEasterDate + 39, &quot;Ascension&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lEasterDate + 49, &quot;Pentecôte&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lEasterDate + 50, &quot;Lundi de Pentecôte&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;Fête du travail&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 8), &quot;Victoire 1945&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 7, 14), &quot;Fête Nationale&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 8, 15), &quot;Assomption&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 11, 1), &quot;Toussaint&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 11, 11), &quot;Armistice ou Victoire 1918&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;Noël&quot;, cHolidayType_Full)
+End Sub
+
+
+Sub FindWholeYearHolidays_SWED(ByVal YearInt as Integer)
+Dim lDate&amp;
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Nyårsdagen&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 1, 6), &quot;Trettondagen&quot;, cHolidayType_Full)
+ lDate = CalEasterTable(YearInt)
+ CalInsertBankholiday(lDate - 2, &quot;LÃ¥ngfredagen&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate, &quot;PÃ¥skdagen&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate + 1, &quot;Annandag påsk&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate + 39, &quot;Kristi himmelfärds dag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate + 49, &quot;Pingstdagen&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate + 50, &quot;Annandag pingst&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;1:a maj&quot;, cHolidayType_Full)
+ &apos; MidSummerfeast (next Sunday after 20th June)
+ CalInsertBankholiday(GetNextWeekday(YearInt, 6, 20, 7), &quot;Midsommardagen&quot;, cHolidayType_Full)
+ CalInsertBankholiday(GetNextWeekDay(YearInt, 10, 31, 7), &quot;Alla helgons dag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;Juldagen&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 26), &quot;Annandag jul&quot;, cHolidayType_Full)
+End Sub
+
+
+
+Sub FindWholeYearHolidays_FI(ByVal YearInt as Integer)
+ Dim OsternDate&amp;
+ &apos; New Year
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Uudenvuodenpäivä&quot;, cHolidayType_Full)
+ &apos; &quot;the three Magi&quot;
+ CalInsertBankholiday(DateSerial(YearInt, 1, 6), &quot;Loppiainen&quot;, cHolidayType_Half)
+ OsternDate = CalEasterTable(YearInt)
+ CalInsertBankholiday(OsternDate-2, &quot;Pitkäperjantai&quot;, cHolidayType_Full)
+ CalInsertBankholiday(OsternDate, &quot;Pääsiäispäivä&quot;, cHolidayType_Full)
+ CalInsertBankholiday(OsternDate+1, &quot;2. pääsiäispäivä&quot;, cHolidayType_Full)
+ &apos; Ascension Day
+ CalInsertBankholiday(OsternDate+39, &quot;Helatorstai&quot;, cHolidayType_Full)
+ &apos; First of May
+ CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;Vappu, suomalaisen työn päivä&quot;, cHolidayType_Full)
+ &apos; Mothers Day : 2nd Sunday in May, Full
+ CalInsertBankholiday(GetMonthDate(YearInt, 5,1,7), &quot;Äitienpäivä&quot;, cHolidayType_Full)
+ &apos; MidSummerfeast (next Sunday after 20th June)
+ CalInsertBankholiday(GetNextWeekday(YearInt, 6, 20, 7), &quot;Juhannus, Suomen lipun päivä&quot;, cHolidayType_Full)
+ &apos; Independance day
+ CalInsertBankholiday(DateSerial(YearInt, 12, 6), &quot;Itsenäisyyspäivä&quot;, cHolidayType_Full)
+ &apos; Christmas
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;Joulupäivä&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 26), &quot;Tapaninpäivä&quot;, cHolidayType_Full)
+End Sub
+
+
+
+Sub FindWholeYearHolidays_DK (ByVal YearInt as Integer)
+Dim lDate&amp;, VierterAdvent&amp;
+
+ &apos;New Year
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Nytårsdag&quot;, cHolidayType_Full)
+ lDate = CalEasterTable (YearInt)
+ &apos; carnival
+ CalInsertBankholiday(lDate-49, &quot;Fastelavn&quot;, cHolidayType_Half)
+ &apos;&quot;Maundy Tuesday
+ CalInsertBankholiday(lDate-3, &quot;Skærtorsdag&quot;, cHolidayType_Full)
+ &apos;&quot;Good Friday &quot;
+ CalInsertBankholiday(lDate-2, &quot;Langfredag&quot;, cHolidayType_Full)
+ &apos; Easter Sunday
+ CalInsertBankholiday(lDate, &quot;Påskesøndag&quot;, cHolidayType_Full)
+ &apos; Easter Monday
+ CalInsertBankholiday(lDate+1, &quot;2. påskedag&quot;, cHolidayType_Full)
+ &apos; 4th Friday after Easter
+ CalInsertBankholiday(lDate+26, &quot;Store bededag&quot;, cHolidayType_Full)
+ &apos; &quot;Ascension Day
+ CalInsertBankholiday(lDate+39, &quot;Kristi himmelfahrt&quot;, cHolidayType_Full)
+ &apos; &quot;Whitsunday&quot;
+ CalInsertBankholiday(lDate+49, &quot;Pinsesøndag&quot;, cHolidayType_Full)
+ &apos; &quot;Whitmonday&quot;
+ CalInsertBankholiday(lDate+50, &quot;2. pinsedag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 5), &quot;Grundlovsdag&quot;, cHolidayType_Full)
+ &apos;Christmas Days
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;1. juledag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 26), &quot;2. juledag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 1, 6), &quot;Hellig 3 konger&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 3, 28), &quot;Dr. Ingrid&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 4, 16), &quot;Dr. Margrete&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 4, 16), &quot;Palmesøndag&quot;, cHolidayType_Half)
+ &apos; &quot;Liberation day&quot;
+ CalInsertBankholiday(DateSerial(YearInt, 5, 5), &quot;Befrielsesdag&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 26), &quot;Krpr. Frederik&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 7), &quot;Pr. Joachim&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 11), &quot;Pr. Henrik&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 15), &quot;Valdemarsdag&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 24), &quot;Skt. Hans&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 30), &quot;Prinsesse Alexandra&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 8, 28), &quot;Pr. Nikolai&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 10, 24), &quot;FN-dag&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 11, 11), &quot;Morten Bisp&quot;, cHolidayType_Half)
+ &apos; all half (Memorial Days)
+ &apos;&quot;adventdays
+ VierterAdvent = DateSerial(YearInt, 12, 24)
+ While (Weekday(VierterAdvent) &lt;&gt; 1)
+ vierterAdvent = vierterAdvent - 1
+ Wend
+ CalInsertBankholiday(vierterAdvent-21, &quot;1. søndag i advent&quot;, cHolidayType_Half)
+ CalInsertBankholiday(vierterAdvent-14, &quot;2. søndag i advent&quot;, cHolidayType_Half)
+ CalInsertBankholiday(vierterAdvent-7, &quot;3. søndag i advent&quot;, cHolidayType_Half)
+ CalInsertBankholiday(vierterAdvent, &quot;4. søndag i advent&quot;, cHolidayType_Half)
+ &apos;Christmas eve
+ CalInsertBankholiday(DateSerial(YearInt, 12, 24), &quot;Juleaften&quot;, cHolidayType_Half)
+ &apos;&quot;New Year&apos;s eve&quot;
+ CalInsertBankholiday(DateSerial(YearInt, 12, 31), &quot;Nytårsaften&quot;, cHolidayType_Half)
+End Sub
+
+
+Sub FindWholeYearHolidays_ITA(ByVal YearInt as Integer)
+Dim lDate&amp;
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Capodanno&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 1, 6), &quot;Epifania&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 4, 25), &quot;Festa della liberazione&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 8, 15), &quot;Ferragusto&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 11, 1), &quot;Tutti i Santi&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 8), &quot;Immacolata concezione&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;Natale&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 26), &quot;Santo Stefano&quot;, cHolidayType_Full)
+ lDate = CalEasterTable(YearInt)
+ CalInsertBankholiday(lDate, &quot;Pasqua&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate+1, &quot;Lunedì dell&apos;Angelo&quot;, cHolidayType_Full)
+End Sub
+
+
+
+Sub FindWholeYearHolidays_TRK(ByVal YearInt as Integer)
+Dim lDate as Long
+ &apos; New Years&apos; Day
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Yılbaşı&quot;, cHolidayType_Full)
+ &apos; National Sovereignty and Children&apos;s Day
+ CalInsertBankholiday(DateSerial(YearInt, 4, 23), &quot;Ulusal Egemenlik ve Çocuk Bayramı&quot;, cHolidayType_Full)
+ &apos; Ataturk Commemoration and Youth &amp; Sports Day
+ CalInsertBankholiday(DateSerial(YearInt, 5, 19), &quot;Atatürk&apos;ü Anma, Gençlik ve Spor Bayramı&quot;, cHolidayType_Full)
+ &apos; Mothers Day : 2nd Sunday in May, Full
+ CalInsertBankholiday(GetMonthDate(YearInt, 5,1,7), &quot;Anneler günü&quot;, cHolidayType_Full)
+ &apos; Fathers Day: 3rd Sunday in May, Full
+ CalInsertBankholiday(GetMonthDate(YearInt, 6,1,14), &quot;Babalar Günü&quot;, cHolidayType_Full)
+ &apos; Victory Day
+ CalInsertBankholiday(DateSerial(YearInt, 8, 30), &quot;Zafer Bayramı&quot;, cHolidayType_Full)
+ &apos; Republic Day
+ CalInsertBankholiday(DateSerial(YearInt, 10, 28), &quot;Cumhuriyet Bayramı&quot;, cHolidayType_Full)
+ &apos; Republic Day
+ CalInsertBankholiday(DateSerial(YearInt, 10, 29), &quot;Cumhuriyet Bayramı&quot;, cHolidayType_Full)
+ &apos; Commemoration Of Ataturk-Anniversary of Ataturk&apos;s Death
+ CalInsertBankholiday(DateSerial(YearInt, 11, 10), &quot;Atatürk&apos;ün Ölüm Günü&quot;, cHolidayType_Full)
+ CalculateturkishReligousHolidays(YearInt)
+End Sub
+
+
+Sub CalculateturkishReligousHolidays(iSelYear as Integer)
+Dim lKurbanBayRamStartDate as Long
+Dim lRamazanBayRamStartDate as Long
+
+ Select Case iSelYear
+ Case 2002
+ lKurbanBayRamStartDate = DateSerial(iSelYear, 2, 21)
+ lRamazanBayRamStartDate = DateSerial(iSelYear, 12, 4)
+ Case 2003
+ lKurbanBayRamStartDate = DateSerial(iSelYear, 2, 10)
+ lRamazanBayRamStartDate = DateSerial(iSelYear, 11, 24)
+ Case 2004
+ lKurbanBayRamStartDate = DateSerial(iSelYear, 1, 31)
+ lRamazanBayRamStartDate = DateSerial(iSelYear, 11, 13)
+ Case 2005
+ lKurbanBayRamStartDate = DateSerial(iSelYear, 1, 19)
+ lRamazanBayRamStartDate = DateSerial(iSelYear, 11, 2)
+ Case 2006
+ lKurbanBayRamStartDate = DateSerial(iSelYear, 12, 30)
+ CalInsertBankholiday(lKurbanBayRamStartDate, &quot;Kurban Bayramı Arefesi&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(iSelYear, 12, 31), &quot;Kurban Bayram&quot;, cHolidayType_Full)
+
+ lKurbanBayRamStartDate = DateSerial(iSelYear, 1, 9)
+ lRamazanBayRamStartDate = DateSerial(iSelYear, 10, 22)
+ Case 2007
+ lKurbanBayRamStartDate = DateSerial(iSelYear, 1, 1)
+ &apos; Note: The first day has already been in 2006!!!
+ AddFollowUpHolidays(lKurbanBayRamStartDate-1, 3, &quot;Kurban Bayram&quot;, cHolidayType_Full)
+ lKurbanBayRamStartDate = DateSerial(iSelYear, 12, 19)
+
+ lRamazanBayRamStartDate = DateSerial(iSelYear, 10, 11)
+ Case 2008
+ lKurbanBayRamStartDate = DateSerial(iSelYear, 12, 7)
+ lRamazanBayRamStartDate = DateSerial(iSelYear, 9, 29)
+ Case Else
+ Exit Sub
+ End Select
+ &apos;Feast Of the Sacrifice Eve
+ CalInsertBankholiday(lKurbanBayRamStartDate, &quot;Kurban Bayramı Arefesi&quot;, cHolidayType_Half)
+ &apos;Feast Of the Sacrifice
+ AddFollowUpHolidays(lKurbanBayRamStartDate, 4, &quot;Kurban Bayram&quot;, cHolidayType_Full)
+ &apos; End of Ramadan Eve
+ CalInsertBankholiday(lRamazanBayRamStartDate, &quot;Ramazan (Şeker) Bayramı Arefesi&quot;, cHolidayType_Half)
+ &apos; End of Ramadan
+ AddFollowUpHolidays(lRamazanBayRamStartDate, 3, &quot;Ramazan (Şeker) Bayramı&quot;, cHolidayType_Full)
+End Sub
+
+
+Sub FindWholeYearHolidays_GREEK(ByVal YearInt as Integer)
+Dim lDate as Long
+ &apos; New Year
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;ΠÏωτοχÏονιά&quot;, cHolidayType_Full)
+ &apos;Schol Holiday
+ CalInsertBankholiday(DateSerial(YearInt, 12, 30), &quot;ΤÏιών ΙεÏαÏχών&quot;, cHolidayType_Full)
+ &apos; This is both a National Holiday and a religious holiday
+ CalInsertBankholiday(DateSerial(YearInt, 3, 25), &quot;Εθνική ΕοÏτή Ευαγγελισμός Θεοτόκου&quot;, cHolidayType_Full)
+ &apos; Labor Day
+ CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;ΠÏωτομαγιά&quot;, cHolidayType_Full)
+ &apos; Assumption Day
+ CalInsertBankholiday(DateSerial(YearInt, 8, 15), &quot;Κοίμηση της Θεοτόκου&quot;, cHolidayType_Full)
+ &apos; National Resistance Day
+ CalInsertBankholiday(DateSerial(YearInt, 10, 28), &quot;Εθνική ΕοÏτή&quot;, cHolidayType_Full)
+ &apos; School Holiday
+ CalInsertBankholiday(DateSerial(YearInt, 11, 17), &quot;Επέτειος του Πολυτεχνείου&quot;, cHolidayType_Full)
+ &apos; Christmas Eve
+ CalInsertBankholiday(DateSerial(YearInt, 12, 24), &quot;ΠαÏαμονή ΧÏιστουγέννων&quot;, cHolidayType_Full)
+ &apos; Christmas Day
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;ΧÏιστοÏγεννα&quot;, cHolidayType_Full)
+ &apos; Boxing Day
+ CalInsertBankholiday(DateSerial(YearInt, 12, 26), &quot;ΔεÏτεÏη μέÏα ΧÏιστουγέννων&quot;, cHolidayType_Full)
+ lDate = CalOrthodoxEasterTable(YearInt)
+ &apos; Triodon
+ CalInsertBankholiday(lDate-70, &quot;ΑÏχή ΤÏιωδίου&quot;, cHolidayType_Full)
+ &apos; Meat Fare
+ CalInsertBankholiday(lDate-56, &quot;Τσικνοπέμπτη&quot;, cHolidayType_Full)
+ &apos; First Day of Lent
+ CalInsertBankholiday(lDate-48, &quot;ΚαθαÏή ΔευτέÏα&quot;, cHolidayType_Full)
+ &apos; Saturday of Lazarus
+ CalInsertBankholiday(lDate-8, &quot;Σάββατο του ΛαζάÏου&quot;, cHolidayType_Full)
+ &apos; Palm Sunday
+ CalInsertBankholiday(lDate-7, &quot;ΚυÏιακή των ΒαÎων&quot;, cHolidayType_Full)
+ &apos; Monday before Easter
+ CalInsertBankholiday(lDate-6, &quot;Μεγάλη ΔευτέÏα&quot;, cHolidayType_Full)
+ &apos; Tuesday before Easter
+ CalInsertBankholiday(lDate-5, &quot;Μεγάλη ΤÏίτη&quot;, cHolidayType_Full)
+ &apos; Wednesday before Easter
+ CalInsertBankholiday(lDate-4, &quot;Μεγάλη ΤετάÏτη&quot;, cHolidayType_Full)
+ &apos; Thursday before Easter
+ CalInsertBankholiday(lDate-3, &quot;Μεγάλη Πέμπτη&quot;, cHolidayType_Full)
+ &apos; Good Friday
+ CalInsertBankholiday(lDate-2, &quot;Μεγάλη ΠαÏασκευή&quot;, cHolidayType_Full)
+ &apos; Saturday before Easter
+ CalInsertBankholiday(lDate-1, &quot;Μεγάλο Σάββατο&quot;, cHolidayType_Full)
+ &apos; Easter Monday
+ CalInsertBankholiday(lDate+1, &quot;ΔευτέÏα του Πάσχα&quot;, cHolidayType_Full)
+ &apos; Pentecost
+ CalInsertBankholiday(lDate+49, &quot;ΚυÏιακή της Πεντηκοστής&quot;, cHolidayType_Full)
+ &apos; Ascension Day
+ CalInsertBankholiday(lDate+39, &quot;Του Αγίου ΠνεÏματος&quot;, cHolidayType_Full)
+ &apos; All Saints Day
+ CalInsertBankholiday(lDate+56, &quot;Των Αγίων Πάντων&quot;, cHolidayType_Full)
+End Sub
+
+
+
+Sub FindWholeYearHolidays_SPAIN(ByVal YearInt as Integer)
+Dim lDate&amp;
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Año Nuevo&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 1, 6), &quot;Reyes&quot;, cHolidayType_Full)
+ lDate = CalEasterTable(YearInt)
+ CalInsertBankholiday(lDate-2, &quot;Viernes Santo&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate+1, &quot;Lunes de Pascua Florida&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate+39, &quot;Día de la Ascensión&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;Fiesta del Trabajo&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 8, 15), &quot;Día de la Asunción&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 10, 12), &quot;Fiesta de la Hispanidad&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 11, 1), &quot;Todos los Santos&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 6), &quot;Día de la Constitución&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 8), &quot;La Inmaculada&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;Navidad&quot;, cHolidayType_Full)
+End Sub
+
+
+Sub FindWholeYearHolidays_PORT(ByVal YearInt as Integer)
+Dim lDate&amp;
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Ano Novo&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 1, 6), &quot;Reis Magos&quot;, cHolidayType_Half)
+ lDate = CalEasterTable(YearInt)
+ CalInsertBankholiday(lDate-47, &quot;Carnaval&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate-7, &quot;Domingo de Ramos&quot;, cHolidayType_Half)
+ CalInsertBankholiday(lDate-2, &quot;Sexta-feira Santa&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate, &quot;Páscoa&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 4, 25), &quot;25 de Abril&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;Dia do Trabalhador&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 29), &quot;Corpo de Deus&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 10), &quot;Dia de Camões e das Comunidades Portuguesas&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 24), &quot;S. João&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 29), &quot;S. Pedro&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 8, 15), &quot;Assunção de Nossa Senhora&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 10, 5), &quot;Implantação da República&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 11, 1), &quot;Dia de Todos os Santos&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 8), &quot;Imaculada Conceição&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;Natal&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 1), &quot;Restauração da Independência&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 31), &quot;Passagem de Ano&quot;, cHolidayType_Half)
+End Sub
+
+
+Sub FindWholeYearHolidays_NL(ByVal YearInt as Integer)
+Dim lDate&amp;
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Nieuwjaarsdag&quot;, cHolidayType_Full)
+ lDate = CalEasterTable(YearInt)
+ CalInsertBankholiday(lDate, &quot;1e Paasdag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate + 1, &quot;2e Paasdag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate + 39, &quot;Hemelvaartsdag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate + 49, &quot;1e Pinksterdag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate + 50, &quot;2e Pinksterdag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 4, 30), &quot;Koninginnedag&quot;, cHolidayType_Full)
+ &apos; Bevrijdingsdag is celebrated every 5th year
+ If YearInt Mod 5 = 0 then
+ CalInsertBankholiday(DateSerial(YearInt, 5, 5), &quot;Bevrijdingsdag&quot;, cHolidayType_Full)
+ End if
+ CalInsertBankholiday(DateSerial(YearInt, 12, 6), &quot;Sinterklaas&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;1e Kerstdag&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 26), &quot;2e Kerstdag&quot;, cHolidayType_Full)
+End Sub
+
+
+Sub FindWholeYearHolidays_PL (ByVal YearInt as Integer)
+ Dim lDate&amp;, OsternDate&amp;
+ &apos; New Year
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Nowy Rok&quot;, cHolidayType_Full)
+ &apos; &quot;the three Magi&quot;
+ CalInsertBankholiday(DateSerial(YearInt, 1, 6), &quot;Trzech Króli&quot;, cHolidayType_Half)
+ &apos; &quot;Womens&apos; Day&quot;
+ CalInsertBankholiday(DateSerial(YearInt, 3, 8), &quot;Dzień Kobiet&quot;, cHolidayType_Half)
+ OsternDate = CalEasterTable(YearInt)
+ CalInsertBankholiday(OsternDate-2, &quot;Wielki PiÄ…tek&quot;, cHolidayType_Full)
+ CalInsertBankholiday(OsternDate, &quot;Wielka Niedziela&quot;, cHolidayType_Full)
+ CalInsertBankholiday(OsternDate+1, &quot;Lany Poniedziałek&quot;, cHolidayType_Full)
+ &apos; Ascension Day
+ CalInsertBankholiday(OsternDate+39, &quot;WniebowstÄ…pienie&quot;, cHolidayType_Full)
+ &apos; Pentecost
+ CalInsertBankholiday(OsternDate+49, &quot;Zielone ÅšwiÄ…tki&quot;, cHolidayType_Full)
+ &apos; Feast of Corpus Christi
+ CalInsertBankholiday(OsternDate+60, &quot;Boże Ciało&quot;, cHolidayType_Full)
+ &apos; First of May
+ CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;Święto pracy&quot;, cHolidayType_Full)
+ &apos; Memorial day of constitution
+ CalInsertBankholiday(DateSerial(YearInt, 5, 3), &quot;Dzień konstytucji 3-go maja&quot;, cHolidayType_Full)
+ &apos; &quot;Childrens&apos; day&quot;
+ CalInsertBankholiday(DateSerial(YearInt, 6, 1), &quot;Dzień Dziecka&quot;, cHolidayType_Half)
+ &apos; &quot;Ascension Day&quot;
+ CalInsertBankholiday(DateSerial(YearInt, 8, 15), &quot;Matki Boskiej Zielnej&quot;, cHolidayType_Half)
+ &apos; &quot;All Saints&apos; Day &quot;
+ CalInsertBankholiday(DateSerial(YearInt, 11, 1), &quot;Wszystkich Świętych&quot;, cHolidayType_Full)
+ &apos; National day&quot;
+ CalInsertBankholiday(DateSerial(YearInt, 11, 11), &quot;Dzień Niepodległości&quot;, cHolidayType_Full)
+ &apos; Christmas Eve
+ CalInsertBankholiday(DateSerial(YearInt, 12, 24), &quot;Wigilia&quot;, cHolidayType_Half)
+ &apos; Christmas
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;Boże Narodzenie&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 26), &quot;Boże Narodzenie&quot;, cHolidayType_Full)
+ &apos; &quot;New Year&apos;s eve&quot;
+ CalInsertBankholiday(DateSerial(YearInt, 12, 31), &quot;Sylwester&quot;, cHolidayType_Half)
+End Sub
+
+
+Sub FindWholeYearHolidays_RU (ByVal YearInt as Integer)
+Dim lDate&amp;
+ &apos; New Year
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Ðовый Год&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 1, 2), &quot;Ðовый Год&quot;, cHolidayType_Full)
+ &apos; Russian Christmas&quot;
+ CalInsertBankholiday(DateSerial(YearInt, 1, 7), &quot;РождеÑтво&quot;, cHolidayType_Full)
+ &apos;Day of Defender of Motherland
+ CalInsertBankholiday(DateSerial(YearInt, 2, 23), &quot;День Защитника ОтечеÑтва&quot;, cHolidayType_Full)
+ &apos; Woman Day
+ CalInsertBankholiday(DateSerial(YearInt, 3, 8), &quot;Международный ЖенÑкий День&quot;, cHolidayType_Full)
+ &apos; Spring and labor holiday
+ CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;Праздник ВеÑны и Труда&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 2), &quot;Праздник ВеÑны и Труда&quot;, cHolidayType_Full)
+ &apos; Victory of the second World War
+ CalInsertBankholiday(DateSerial(YearInt, 5, 9), &quot;День Победы&quot;, cHolidayType_Full)
+ &apos; Independence Day
+ CalInsertBankholiday(DateSerial(YearInt, 6, 12), &quot;День ÐезавиÑимоÑти&quot;, cHolidayType_Full)
+ &apos; Day of Accord and Conciliation
+ CalInsertBankholiday(DateSerial(YearInt, 11, 7), &quot;День СоглаÑÐ¸Ñ Ð¸ ПримирениÑ&quot;, cHolidayType_Full)
+ &apos; Constitution Day
+ CalInsertBankholiday(DateSerial(YearInt, 12, 12), &quot;День КонÑтитуции&quot;, cHolidayType_Full)
+End Sub
+
+
+Sub FindWholeYearHolidays_US(ByVal YearInt as Integer)
+Dim lDate as Long
+Dim lFirstNov as Long
+Dim lElectDate as Long
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;New Year&apos;s Day&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 2, 2), &quot;Groundhog Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 2, 14), &quot;Valentine&apos;s Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 3, 17), &quot;St Patrick&apos;s Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 4, 1), &quot;April Fools&apos; Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 4, 22), &quot;Earth Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 6), &quot;Nurses&apos; Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 14), &quot;Flag Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 14), &quot;Army Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 6, 19), &quot;Juneteenth(Liberation of Slaves)&quot;, cHolidayType_Half)
+
+ CalInsertBankholiday(DateSerial(YearInt, 7, 4), &quot;Independence Day&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 8, 1), &quot;Air Force Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 8, 4), &quot;Coast Guard Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 9, 17), &quot;Citizenship Day or Constitution Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 10, 16), &quot;Bosses&apos; Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 10, 26 ), &quot;Mother-in-Law&apos;s Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 10, 27), &quot;Navy Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 10, 31), &quot;Halloween&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 11, 10), &quot;Marine Corps Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 11, 11), &quot;Veteran&apos;s Day&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 7), &quot;Pearl Harbor Remembrance Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 24), &quot;Christmas Eve&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;Christmas Day&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 31), &quot;New Year&apos;s Eve&quot;, cHolidayType_Half)
+
+ CalInsertBankholiday(CalEasterTable(YearInt), &quot;Easter Sunday&quot;, cHolidayType_Half)
+
+ &apos; Inauguration Day occurs every 4 years (1997, 2001) in the year following the presidential election
+ &apos; always on the 20th of January unless this is a Sunday in which case on Monday 21st January
+ If YearInt Mod 4 = 1 Then
+ lDate = DateSerial(YearInt, 1, 20)
+ If WeekDay(lDate) = 1 Then
+ CalInsertBankholiday(lDate + 1, &quot;Inauguration Day&quot;, cHolidayType_Half)
+ Else
+ CalInsertBankholiday(lDate, &quot;Inauguration Day&quot;, cHolidayType_Half)
+ End If
+ End If
+ &apos; First Tuesday in November, but only after the 1st of November and only on evenly numbered years
+ If YearInt Mod 2 = 0 Then
+ lFirstNov = DateSerial(YearInt, 11, 1)
+ lElectDate = GetMonthDate(YearInt, 11, 3, 0)
+ If lElectDate &gt; lFirstNov Then
+ CalInsertBankholiday(lElectDate, &quot;Election Day&quot;, cHolidayType_Half)
+ Else
+ CalInsertBankholiday(lElectDate + 7, &quot;Election Day&quot;, cHolidayType_Half)
+ End If
+ End If
+ CalInsertBankholiday(GetMonthDate(YearInt, 1, 2, 14), &quot;Martin Luther King Jr Day&quot;, cHolidayType_Full)
+ CalInsertBankholiday(GetMonthDate(YearInt, 2, 2, 14), &quot;President&apos;s Day&quot;, cHolidayType_Full)
+ &apos; Mothers Day : 2nd Sunday in May, Full
+ CalInsertBankholiday(GetMonthDate(YearInt, 5,1,7), &quot;Mother&apos;s Day&quot;, cHolidayType_Full)
+
+ &apos; Wednesday of the last full week of April Administrative Professionals&apos; Day (formerly Secretaries&apos; Day)
+ CalInsertBankholiday(GetMonthDate(YearInt, 5, 7, -7)-3, &quot;Administrative Professionals&apos; Day&quot;, cHolidayType_Half)
+
+ CalInsertBankholiday(GetMonthDate(YearInt, 5, 5, 0), &quot;National Day of Prayer&quot;, cHolidayType_Half)
+ CalInsertBankholiday(GetMonthDate(YearInt, 5, 7, 14), &quot;Armed Forces Day&quot;, cHolidayType_Half)
+ &apos; Fathers Day : 3rd Sunday in June
+ CalInsertBankholiday(GetMonthDate(YearInt, 6,1,14), &quot;Father&apos;s Day&quot;, cHolidayType_Half)
+
+ &apos; Last Monday in May: Menorial Day, Full
+ CalInsertBankholiday(GetMonthDate(YearInt, 6, 2, 0)-7, &quot;Memorial Day&quot;, cHolidayType_Full)
+ CalInsertBankholiday(GetMonthDate(YearInt, 7, 1, 21), &quot;Parents&apos; Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(GetMonthDate(YearInt, 8, 1, 0), &quot;Friendship Day&quot;, cHolidayType_Half)
+
+ &apos; 1st Monday in Sep : Labor Day, Full
+ CalInsertBankholiday(GetMonthDate(YearInt, 9, 2, 0), &quot;Labor Day&quot;, cHolidayType_Full)
+ &apos; Sunday after Labor Day Grandparents&apos; Day
+ CalInsertBankholiday(GetMonthDate(YearInt, 9, 2, 0)+6, &quot;Grandparents&apos; Day&quot;, cHolidayType_Half)
+
+ CalInsertBankholiday(GetMonthDate(YearInt, 10, 1, 0), &quot;National Children&apos;s Day&quot;, cHolidayType_Half)
+ CalInsertBankholiday(GetMonthDate(YearInt, 10, 2, 7), &quot;Columbus Day&quot;, cHolidayType_Full)
+ &apos; Sweetest Day: Third Saturday in October
+ CalInsertBankholiday(GetMonthDate(YearInt, 10, 7, 14), &quot;Sweetest Day&quot;, cHolidayType_Half)
+ &apos; 4th Thu in Nov : Thanksgiving, Full
+ CalInsertBankholiday(GetMonthDate(YearInt, 11, 5, 21), &quot;Thanksgiving&quot;, cHolidayType_Full)
+End Sub
+
+
+Sub FindWholeYearHolidays_JP(ByVal YearInt as Integer)
+Dim lDate&amp;
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;元日&quot;, cHolidayType_Full)
+ &apos; 2nd Monday in January
+ CalInsertBankholiday(GetMonthDate(YearInt, 1, 2, 7), &quot;æˆäººã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 2, 11), &quot;建国記念ã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 3, 20), &quot;春分ã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 4, 29), &quot;ã¿ã©ã‚Šã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 3), &quot;憲法記念日&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 4), &quot;国民ã®ä¼‘æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 5), &quot;ã“ã©ã‚‚ã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 9, 23), &quot;秋分ã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(GetMonthDate(YearInt, 10, 2, 7), &quot;体育ã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 11, 3), &quot;文化ã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 11, 23), &quot;勤労感è¬ã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 23), &quot;天皇誕生日&quot;, cHolidayType_Full)
+ If YearInt &gt; 2002 Then
+ CalInsertBankholiday(GetMonthDate(YearInt, 7, 2, 14), &quot;æµ·ã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(GetMonthDate(YearInt, 9, 2, 14), &quot;敬è€ã®æ—¥&quot;, cHolidayType_Full)
+ Else
+ CalInsertBankholiday(DateSerial(YearInt, 7, 20), &quot;æµ·ã®æ—¥&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 9, 15), &quot;敬è€ã®æ—¥&quot;, cHolidayType_Full)
+ End If
+End Sub
+
+
+Sub FindWholeYearHolidays_TW(YearInt as Integer)
+ CalculateChineseNewYear(YearInt)
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;元旦&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 2, 28), &quot;和平紀念日&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 3, 8), &quot;婦女節&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 3, 29), &quot;é©å‘½å…ˆçƒˆç´€å¿µæ—¥ï¼ˆé’年節)&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 4, 4), &quot;兒童節&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 4, 5), &quot;æ°‘æ—掃墓節&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;勞動節&quot;, cHolidayType_Full)
+ CalInsertBankholiday(GetNextWeekDay(YearInt, 5, 19, 2), &quot;佛陀誕辰紀念日&quot;, cHolidayType_Full) &apos; Just like Columbus Day
+ CalInsertBankholiday(DateSerial(YearInt, 6, 15), &quot;端åˆç¯€&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 9, 3), &quot;è»äººç¯€&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 9, 21), &quot;中秋節&quot;, cHolidayType_Full)
+ CalInsertBankholiday(GetNextWeekDay(YearInt, 9, 28, 2), &quot;å­”å­èª•è¾°ç´€å¿µæ—¥ï¼ˆæ•™å¸«ç¯€ï¼‰&quot;, cHolidayType_Full) &apos; Just like Columnbusday
+ CalInsertBankholiday(DateSerial(YearInt, 10, 10), &quot;國慶日&quot;, cHolidayType_Full)
+ CalInsertBankholiday(DateSerial(YearInt, 10, 25), &quot;臺ç£å…‰å¾©ç¯€&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 10, 31), &quot;先總統 蔣公誕辰紀念日&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 11), &quot;國父誕辰紀念日(中è¯æ–‡åŒ–復興節)&quot;, cHolidayType_Half)
+ CalInsertBankholiday(DateSerial(YearInt, 12, 25), &quot;行憲紀念日&quot;, cHolidayType_Half)
+End Sub
+
+
+Sub FindWholeYearHolidays_CN(YearInt as Integer)
+ CalculateChineseNewYear(YearInt)
+ CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;元旦&quot;, cHolidayType_Full) &apos; New Year
+ CalInsertBankholiday(DateSerial(YearInt, 3, 8), &quot;妇女节&quot;, cHolidayType_Half) &apos; Women&apos;s Day
+ CalInsertBankholiday(DateSerial(YearInt, 4, 5), &quot;清明节&quot;, cHolidayType_Half) &apos; Day of the deads
+ CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;劳动节&quot;, cHolidayType_Full) &apos; International Labour Day
+ CalInsertBankholiday(DateSerial(YearInt, 6, 1), &quot;儿童节&quot;, cHolidayType_Half) &apos; Children&apos;s Day
+ CalInsertBankholiday(DateSerial(YearInt, 8, 1), &quot;建军节&quot;, cHolidayType_Half) &apos; Foundation of military
+ CalInsertBankholiday(DateSerial(YearInt, 10, 1), &quot;国庆节&quot;, cHolidayType_Full) &apos; National festival day
+End Sub
+
+
+&apos; Unfortunately I could not find a Routine to convert a &apos;Moon Date&apos; into a gregorian date
+Sub CalculateChineseNewYear(iSelYear as Integer)
+Dim lDate as Long
+ Select Case iSelYear
+ Case 1995
+ lDate = DateSerial(iSelYear, 1, 31)
+ Case 1996
+ lDate = DateSerial(iSelYear, 2, 19)
+ Case 1997
+ lDate = DateSerial(iSelYear, 2, 7)
+ Case 1998
+ lDate = DateSerial(iSelYear, 1, 28)
+ Case 1999
+ lDate = DateSerial(iSelYear,2, 16)
+ Case 2000
+ lDate = DateSerial(iSelYear,2, 5)
+ Case 2001
+ lDate = DateSerial(iSelYear, 1, 24)
+ Case 2002
+ lDate = DateSerial(iSelYear,2, 12)
+ Case 2003
+ lDate = DateSerial(iSelYear,2, 1)
+ Case 2004
+ lDate = DateSerial(iSelYear, 1, 22)
+ Case 2005
+ lDate = DateSerial(iSelYear,2, 9)
+ Case 2006
+ lDate = DateSerial(iSelYear, 1, 29)
+ Case 2007
+ lDate = DateSerial(iSelYear,2, 18)
+ Case 2008
+ lDate = DateSerial(iSelYear,2, 7)
+ Case 2009
+ lDate = DateSerial(iSelYear, 1, 26)
+ Case 2010
+ lDate = DateSerial(iSelYear,2, 10)
+ Case 2011
+ lDate = DateSerial(iSelYear,2, 3)
+ Case 2012
+ lDate = DateSerial(iSelYear, 1, 23)
+ Case 2013
+ lDate = DateSerial(iSelYear,2, 10)
+ Case 2014
+ lDate = DateSerial(iSelYear, 1, 31)
+ Case 2015
+ lDate = DateSerial(iSelYear,2, 19)
+ Case 2016
+ lDate = DateSerial(iSelYear,2, 9)
+ Case 2017
+ lDate = DateSerial(iSelYear, 1, 28)
+ Case 2018
+ lDate = DateSerial(iSelYear,2, 16)
+ Case 2019
+ lDate = DateSerial(iSelYear,2, 5)
+ Case 2020
+ lDate = DateSerial(iSelYear, 1, 25)
+ Case Else
+ Exit Sub
+ End Select
+ Select Case sCurCountryLocale
+ Case &quot;CN&quot;
+ CalInsertBankholiday(lDate-1, &quot;农历除夕&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate, &quot;春节åˆä¸€&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate+1, &quot;春节åˆäºŒ&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate+2, &quot;春节åˆä¸‰&quot;, cHolidayType_Full)
+
+ Case Else
+ CalInsertBankholiday(lDate-1, &quot;農曆除夕&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate, &quot;春節åˆä¸€&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate+1, &quot;春節åˆäºŒ&quot;, cHolidayType_Full)
+ CalInsertBankholiday(lDate+2, &quot;春節åˆä¸‰&quot;, cHolidayType_Full)
+ End Select
+End Sub
+
+
+Function CalculateJapaneseSpringDay(iSelYear as Integer)
+ If (iSelYear &gt; 1979) And (iSelYear &lt; 2100) Then
+ CalculateJapaneseSpringDay() = Int(20.8431 + 0.242194)* (iSelYear-1980) - (Int((iSelYear-1980)/4))
+ End If
+End Function
+
+
+Function CalculateJapaneseAutumnDay(iSelYear as Integer)
+ If (iSelYear &gt; 1979) And (iSelYear &lt; 2100) Then
+ CalculateJapaneseAutumnDay() = Int(23.8431 + 0.242194)* (iSelYear-1980) - (Int((iSelYear-1980)/4))
+ End If
+End Function</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Schedule/OwnEvents.xba b/test/user-template/user/basic/Schedule/OwnEvents.xba
new file mode 100644
index 000000000000..f141c2ab0efe
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/OwnEvents.xba
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="OwnEvents" script:language="StarBasic">Option Explicit
+
+Public Const SBDATEUNDEFINED as Double = -98765432.1
+
+Sub Main
+ Call CalAutopilotTable()
+End Sub
+
+
+Sub CalSaveOwnData()
+Dim FileName as String
+Dim FileChannel as Integer
+Dim i as Integer
+ If bCalOwnDataChanged Then
+ FileName = GetPathSettings(&quot;UserConfig&quot;, False) &amp; &quot;/&quot; &amp; &quot;DATE.DAT&quot;
+ SaveDataToFile(FileName, DlgCalModel.lstOwnData.StringItemList())
+ End If
+End Sub
+
+
+Sub CalLoadOwnData()
+Dim FileName as String
+Dim LocList() as String
+ FileName = GetPathSettings(&quot;UserConfig&quot;, False) &amp; &quot;/DATE.DAT&quot;
+ If LoadDataFromFile(FileName, LocList()) Then
+ DlgCalModel.lstOwnData.StringItemList() = LocList()
+ End If
+End Sub
+
+
+Function CalCreateDateStrOfInput() as String
+Dim DateStr as String
+Dim CurOwnMonth as Integer
+Dim CurOwnDay as Integer
+Dim FormatDateStr as String
+Dim dblDate as Double
+Dim iLen as Integer
+Dim iDiff as Integer
+Dim i as Integer
+ CurOwnDay = DlgCalModel.txtOwnEventDay.Value
+ CurOwnMonth = DlgCalendar.GetControl(&quot;lstOwnEventMonth&quot;).getselectedItemPos() + 1
+ DateStr = DateSerial(0, CurOwnMonth, CurOwnDay)
+ dblDate = CDbl(DateValue(DateStr))
+ FormatDateStr = oNumberFormatter.convertNumberToString(lDateFormat, dblDate)
+ iLen = Len(FormatDateStr)
+ iDiff = 16 - iLen
+ If iDiff &gt; 0 Then
+ For i = 0 To iDiff
+ FormatDateStr = FormatDateStr + &quot; &quot;
+ Next i
+ Else
+ MsgBox(&quot;Invalid DateFormat: &apos;FormatDateStr&apos;&quot;, 16, sWizardTitle)
+ CalCreateDateStrOfInput = &quot;&quot;
+ Exit Function
+ End If
+ DateStr = FormatDateStr &amp; Trim(DlgCalModel.txtEvent.Text)
+ CalCreateDateStrOfInput = DateStr
+End Function
+
+
+
+Sub CalcmdInsertData()
+Dim MaxIndex as Integer
+Dim UIDateStr as String
+Dim DateStr as String
+Dim NewDate as Double
+Dim bInserted as Boolean
+Dim i as Integer
+Dim CurOwnDay as Integer
+Dim CurOwnMonth as Integer
+Dim CurOwnYear as Integer
+ CurOwnDay = DlgCalModel.txtOwnEventDay.Value
+ CurOwnMonth = DlgCalendar.GetControl(&quot;lstOwnEventMonth&quot;).getSelectedItemPos() + 1
+ UIDateStr = CalCreateDateStrOfInput()
+ NewDate = GetDateUnits(CurOwnDay, CurOwnMonth, UIDateStr)
+ If UIDateStr = &quot;&quot; Then Exit Sub
+ MaxIndex = Ubound(DlgCalModel.lstOwnData.StringItemList())
+ If MaxIndex = -1 Then
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(UIDateStr, 0 + 1)
+ bInserted = True
+ Else
+ Dim CurEvMonth(MaxIndex) as Integer
+ Dim CurEvDay(MaxIndex) as Integer
+ Dim CurDate(MaxIndex) as Double
+ &apos; same Years(&quot;no years&quot; are treated like same years) -&gt; delete old entry and insert new one
+ i = 0
+ Do
+ CurDate(i) = GetSelectedDateUnits(CurEvDay(i), CurEvMonth(i), i)
+ If CurDate(i) = NewDate Then
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).RemoveItems(i,1)
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(UIDateStr, i)
+ bInserted = True
+ End If
+ i = i + 1
+ Loop Until bInserted Or i &gt; MaxIndex
+
+ &apos; There exists already a date
+ If Not bInserted Then
+ i = 0
+ Do
+ If (CurEvMonth(i) = CurOwnMonth) And (CurEvDay(i) = CurOwnDay) Then
+ bInserted = True
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).RemoveItems(i,1)
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(UIDateStr, i)
+ End If
+ i = i + 1
+ Loop Until bInserted Or i &gt; MaxIndex
+ End If
+
+ &apos; The date is not yet existing and will will be sorted in accordingly
+ If Not bInserted Then
+ i = 0
+ Do
+ bInserted = NewDate &lt; CurDate(i)
+ If bInserted Then
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(UIDateStr, i)
+ End If
+ i = i + 1
+ Loop Until bInserted Or i &gt; MaxIndex
+ If Not bInserted Then
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(UIDateStr, MaxIndex+1)
+ End If
+ End If
+ End If
+ bCalOwnDataChanged = True
+ Call CalClearInputMask()
+End Sub
+
+
+Function GetSelectedDateUnits(CurEvDay as Integer, CurEvMonth as Integer, i as Integer) as Double
+Dim dblDate as Double
+Dim DateStr as String
+ dblDate = SBDATEUNDEFINED
+ DateStr = DlgCalModel.lstOwnData.StringItemList(i)
+ If DateStr &lt;&gt; &quot;&quot; Then
+ dblDate = GetDateUnits(CurEvDay, CurEvMonth, DateStr)
+ End If
+ GetSelectedDateUnits() = dblDate
+End Function
+
+
+Function GetDateUnits(CurEvDay as Integer, CurEvMonth as Integer, DateStr) as Double
+Dim bEventOnce as String
+Dim LocDateStr as String
+Dim dblDate as Double
+Dim lDate as Long
+ LocDateStr = Mid(DateStr, 1, 15)
+ LocDateStr = Trim(LocDateStr)
+
+ bEventOnce = True
+ On Local Error Goto NODATEFORMAT
+ dblDate = oNumberFormatter.convertStringToNumber(lDateFormat, LocDateStr)
+ lDate = Clng(dblDate)
+ CurEvMonth = Month(lDate)
+ CurEvDay = Day(lDate)
+ GetDateUnits() = dblDate
+ Exit Function
+ GetDateUnits() =SBDATEUNDEFINED
+NODATEFORMAT:
+ If Err &lt;&gt; 0 Then
+ MsgBox(&quot;Error: Date : &apos; &quot; &amp; LocDateStr &amp; &quot;&apos; is not a valid Format&quot;, 16, sWizardTitle)
+ Resume GETRETURNVALUE
+GETRETURNVALUE:
+ GetDateUnits() = SBDATEUNDEFINED
+ End If
+End Function
+
+
+Function CalGetNameOfEvent(ByVal ListIndex as Integer) as String
+Dim NameStr as String
+ NameStr = DlgCalModel.lstOwnData.StringItemList(ListIndex)
+ NameStr = Trim (Mid(NameStr, 16))
+ CalGetNameOfEvent = NameStr
+End Function
+
+
+
+Sub CheckInsertedDates(Optional ControlEnvironment, Optional CurOwnMonth as Integer)
+Dim EvYear as Long
+Dim EvDay as Long
+Dim sEvMonth as String
+Dim bDoEnable as Boolean
+Dim ListboxName as String
+Dim MaxValue as Integer
+ If Not IsMissing(ControlEnvironment) Then
+ CurOwnMonth = DlgCalendar.GetControl(&quot;lstOwnEventMonth&quot;).getSelectedItemPos()+1
+ End If
+ EvYear = Year(Now())
+ bDoEnable = CurOwnMonth &lt;&gt; 0
+ If bDoEnable Then
+ MaxValue = CalMaxDayInMonth(EvYear, CurOwnMonth)
+ DlgCalModel.txtOwnEventDay.ValueMax = MaxValue
+ If DlgCalModel.txtOwnEventDay.Value &gt; MaxValue Then
+ DlgCalModel.txtOwnEventDay.Value = MaxValue
+ End If
+ bDoEnable = DlgCalModel.txtOwnEventDay.Value &lt;&gt; 0
+ If bDoEnable Then
+ bDoEnable = Ubound(DlgCalModel.lstOwnEventMonth.SelectedItems()) &gt; -1
+ If bDoEnable Then
+ bDoEnable = LTrim(DlgCalModel.txtEvent.Text) &lt;&gt; &quot;&quot;
+ End If
+ End If
+ End If
+ DlgCalModel.cmdInsert.Enabled = bDoEnable
+End Sub
+
+
+Sub GetOwnMonth()
+Dim EvYear as Integer
+Dim CurOwnMonth as Integer
+ EvYear = year(now())
+ CurOwnMonth = DlgCalModel.lstOwnEventMonth.SelectedItems(0) + 1
+ DlgCalModel.txtOwnEventDay.ValueMax = CalMaxDayInMonth(EvYear, CurOwnMonth)
+ CheckInsertedDates(,CurOwnMonth)
+End Sub</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Schedule/dialog.xlb b/test/user-template/user/basic/Schedule/dialog.xlb
new file mode 100644
index 000000000000..b1afde681e7e
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/dialog.xlb
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Schedule" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="DlgCalendar"/>
+</library:library>
diff --git a/test/user-template/user/basic/Schedule/script.xlb b/test/user-template/user/basic/Schedule/script.xlb
new file mode 100644
index 000000000000..96dd8da57fc1
--- /dev/null
+++ b/test/user-template/user/basic/Schedule/script.xlb
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Schedule" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="OwnEvents"/>
+ <library:element library:name="CalendarMain"/>
+ <library:element library:name="BankHoliday"/>
+ <library:element library:name="DlgControl"/>
+ <library:element library:name="Language"/>
+ <library:element library:name="CreateTable"/>
+ <library:element library:name="GermanHolidays"/>
+ <library:element library:name="LocalHolidays"/>
+</library:library>
diff --git a/test/user-template/user/basic/ScriptBindingLibrary/Highlight.xdl b/test/user-template/user/basic/ScriptBindingLibrary/Highlight.xdl
new file mode 100644
index 000000000000..2d65de42283e
--- /dev/null
+++ b/test/user-template/user/basic/ScriptBindingLibrary/Highlight.xdl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="Highlight" dlg:left="68" dlg:top="23" dlg:width="135" dlg:height="48" dlg:closeable="true" dlg:moveable="true">
+ <dlg:bulletinboard>
+ <dlg:text dlg:id="Label1" dlg:tab-index="2" dlg:left="3" dlg:top="8" dlg:width="33" dlg:height="9" dlg:value="Find What:"/>
+ <dlg:textfield dlg:id="HighlightTextField" dlg:tab-index="3" dlg:left="39" dlg:top="6" dlg:width="93" dlg:height="12"/>
+ <dlg:button dlg:id="HighlightButton" dlg:tab-index="0" dlg:left="20" dlg:top="24" dlg:width="46" dlg:height="18" dlg:value="Highlight">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Highlight.ButtonPressHandler.bsh?language=BeanShell&amp;location=share" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="ExitButton" dlg:tab-index="1" dlg:left="72" dlg:top="24" dlg:width="46" dlg:height="18" dlg:value="Exit">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Highlight.ButtonPressHandler.bsh?language=BeanShell&amp;location=share" script:language="Script"/>
+ </dlg:button>
+ </dlg:bulletinboard>
+</dlg:window>
diff --git a/test/user-template/user/basic/ScriptBindingLibrary/dialog.xlb b/test/user-template/user/basic/ScriptBindingLibrary/dialog.xlb
new file mode 100644
index 000000000000..1445c98b8cab
--- /dev/null
+++ b/test/user-template/user/basic/ScriptBindingLibrary/dialog.xlb
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="ScriptBindingLibrary" library:readonly="false" library:passwordprotected="false">
+ <library:element library:name="Highlight"/>
+ <library:element library:name="MacroEditor"/>
+</library:library>
diff --git a/test/user-template/user/basic/ScriptBindingLibrary/script.xlb b/test/user-template/user/basic/ScriptBindingLibrary/script.xlb
new file mode 100644
index 000000000000..33eb114b5b64
--- /dev/null
+++ b/test/user-template/user/basic/ScriptBindingLibrary/script.xlb
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="ScriptBindingLibrary" library:readonly="false" library:passwordprotected="false">
+</library:library>
diff --git a/test/user-template/user/basic/Template/Autotext.xba b/test/user-template/user/basic/Template/Autotext.xba
new file mode 100644
index 000000000000..27a7bca1290e
--- /dev/null
+++ b/test/user-template/user/basic/Template/Autotext.xba
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Autotext" script:language="StarBasic">Option Explicit
+
+Public UserfieldDataType(14) as String
+Public oDocAuto as Object
+Public BulletList(7) as Integer
+Public sTextFieldNotDefined as String
+Public sGeneralError as String
+
+
+Sub Main()
+ Dim oCursor as Object
+ Dim oStyles as Object
+ Dim oSearchDesc as Object
+ Dim oFoundall as Object
+ Dim oFound as Object
+ Dim i as Integer
+ Dim sFoundString as String
+ Dim sFoundContent as String
+ Dim FieldStringThere as String
+ Dim ULStringThere as String
+ Dim PHStringThere as String
+ On Local Error Goto GENERALERROR
+ &apos; Initialization...
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ If InitResources(&quot;&apos;Template&apos;&quot;, &quot;tpl&quot;) Then
+ sGeneralError = GetResText(1302)
+ sTextFieldNotDefined = GetResText(1400)
+ End If
+
+ UserfieldDatatype(0) = &quot;COMPANY&quot;
+ UserfieldDatatype(1) = &quot;FIRSTNAME&quot;
+ UserfieldDatatype(2) = &quot;NAME&quot;
+ UserfieldDatatype(3) = &quot;SHORTCUT&quot;
+ UserfieldDatatype(4) = &quot;STREET&quot;
+ UserfieldDatatype(5) = &quot;COUNTRY&quot;
+ UserfieldDatatype(6) = &quot;ZIP&quot;
+ UserfieldDatatype(7) = &quot;CITY&quot;
+ UserfieldDatatype(8) = &quot;TITLE&quot;
+ UserfieldDatatype(9) = &quot;POSITION&quot;
+ UserfieldDatatype(10) = &quot;PHONE_PRIVATE&quot;
+ UserfieldDatatype(11) = &quot;PHONE_COMPANY&quot;
+ UserfieldDatatype(12) = &quot;FAX&quot;
+ UserfieldDatatype(13) = &quot;EMAIL&quot;
+ UserfieldDatatype(14) = &quot;STATE&quot;
+ BulletList(0) = 149
+ BulletList(1) = 34
+ BulletList(2) = 65
+ BulletList(3) = 61
+ BulletList(4) = 49
+ BulletList(5) = 47
+ BulletList(6) = 79
+ BulletList(7) = 58
+
+ oDocAuto = ThisComponent
+ oStyles = oDocAuto.Stylefamilies.GetByName(&quot;NumberingStyles&quot;)
+
+ &apos; Prepare the Search-Descriptor
+ oSearchDesc = oDocAuto.createsearchDescriptor()
+ oSearchDesc.SearchRegularExpression = True
+ oSearchDesc.SearchWords = True
+ oSearchDesc.SearchString = &quot;&lt;[^&gt;]+&gt;&quot;
+ oFoundall = oDocAuto.FindAll(oSearchDesc)
+
+ &apos;Loop over the foundings
+ For i = 0 To oFoundAll.Count - 1
+ oFound = oFoundAll.GetByIndex(i)
+ sFoundString = oFound.String
+ &apos;Extract the string inside the brackets
+ sFoundContent = FindPartString(sFoundString,&quot;&lt;&quot;,&quot;&gt;&quot;,1)
+ sFoundContent = LTrim(sFoundContent)
+
+ &apos; Define the Cursor and place it on the founding
+ oCursor = oFound.Text.CreateTextCursorbyRange(oFound)
+
+ &apos; Find out, which object is to be created...
+ FieldStringThere = Instr(1,sFoundContent,&quot;Field&quot;)
+ ULStringThere = Instr(1,sFoundContent,&quot;UL&quot;)
+ PHStringThere = Instr(1,sFoundContent,&quot;Placeholder&quot;)
+ If FieldStringThere = 1 Then
+ CreateUserDatafield(oCursor, sFoundContent)
+ ElseIf ULStringThere = 1 Then
+ CreateBullet(oCursor, oStyles)
+ ElseIf PHStringThere = 1 Then
+ CreatePlaceholder(oCursor, sFoundContent)
+ End If
+ Next i
+
+ GENERALERROR:
+ If Err &lt;&gt; 0 Then
+ Msgbox(sGeneralError,16, GetProductName())
+ Resume LETSGO
+ End If
+ LETSGO:
+End Sub
+
+
+&apos; creates a User - datafield out of a string with the following structure
+&apos; &quot;&lt;field:Company&gt;&quot;
+Sub CreateUserDatafield(oCursor, sFoundContent as String)
+ Dim MaxIndex as Integer
+ Dim sFoundList(3)
+ Dim oUserfield as Object
+ Dim UserInfo as String
+ Dim UserIndex as Integer
+
+ oUserfield = oDocAuto.CreateInstance(&quot;com.sun.star.text.TextField.ExtendedUser&quot;)
+ sFoundList() = ArrayoutofString(sFoundContent,&quot;:&quot;,MaxIndex)
+ UserInfo = UCase(LTrim(sFoundList(1)))
+ UserIndex = IndexinArray(UserInfo, UserfieldDatatype())
+ If UserIndex &lt;&gt; -1 Then
+ oUserField.UserDatatype = UserIndex
+ oCursor.Text.InsertTextContent(oCursor,oUserField,True)
+ oUserField.IsFixed = True
+ Else
+ Msgbox(UserInfo &amp;&quot;: &quot; &amp; sTextFieldNotDefined,16, GetProductName())
+ End If
+End Sub
+
+
+&apos; Creates a Bullet by setting a soft Formatation on the first unsorted List-Templates with a defined
+&apos; Bullet Id
+Sub CreateBullet(oCursor, oStyles as Object)
+ Dim n, m, s as Integer
+ Dim StyleSet as Boolean
+ Dim ostyle as Object
+ Dim StyleName as String
+ Dim alevel()
+ StyleSet = False
+ For s = 0 To Ubound(BulletList())
+ For n = 0 To oStyles.Count - 1
+ ostyle = oStyles.getbyindex(n)
+ StyleName = oStyle.Name
+ alevel() = ostyle.NumberingRules.getbyindex(0)
+ &apos; The properties of the style are stored in a Name-Value-Array()
+ For m = 0 to Ubound(alevel())
+ &apos; Set the first Numbering template without a bulletID
+ If (aLevel(m).Name = &quot;BulletId&quot;) Then
+ If alevel(m).Value = BulletList(s) Then
+ oCursor.NumberingStyle = StyleName
+ oCursor.SetString(&quot;&quot;)
+ exit Sub
+ End if
+ End If
+ Next m
+ Next n
+ Next s
+ If Not StyleSet Then
+ &apos; The Template with the demanded BulletID is not available, so take the first style in the sequence
+ &apos; that has a defined Bullet ID
+ oCursor.NumberingStyleName = oStyles.GetByIndex(5).Name
+ oCursor.SetString(&quot;&quot;)
+ End If
+End Sub
+
+
+&apos; Creates a placeholder out of a string with the following structure:
+&apos;&lt;placeholder:Showtext:Helptext&gt;
+Sub CreatePlaceholder(oCursor as Object, sFoundContent as String)
+ Dim oPlaceholder as Object
+ Dim MaxIndex as Integer
+ Dim sFoundList(3)
+ oPlaceholder = oDocAuto.CreateInstance(&quot;com.sun.star.text.TextField.JumpEdit&quot;)
+ sFoundList() = ArrayoutofString(sFoundContent, &quot;:&quot; &amp; chr(34),MaxIndex)
+ &apos; Delete The Double-quotes
+ oPlaceholder.Hint = DeleteStr(sFoundList(2),chr(34))
+ oPlaceholder.placeholder = DeleteStr(sFoundList(1),chr(34))
+ oCursor.Text.InsertTextContent(oCursor,oPlaceholder,True)
+End Sub
+
+
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Template/Correspondence.xba b/test/user-template/user/basic/Template/Correspondence.xba
new file mode 100644
index 000000000000..03c7ef77fbe8
--- /dev/null
+++ b/test/user-template/user/basic/Template/Correspondence.xba
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Correspondence" script:language="StarBasic">Option Explicit
+
+Public msgNoTextmark$, msgError$
+Public sAddressbook$
+Public Table
+Public sCompany$, sFirstName$, sLastName$, sStreet$, sPostalCode$, sCity$, sState$, sInitials$, sPosition$
+Public DialogExited
+Public oDocument, oText, oBookMarks, oBookMark, oBookMarkCursor, oBookText as Object
+Public bTemplate, bDBFields as Boolean
+
+Sub Main
+ bTemplate = true
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ TemplateDialog = LoadDialog(&quot;Template&quot;, &quot;TemplateDialog&quot;)
+ DialogModel = TemplateDialog.Model
+ DialogModel.Step = 2
+ DialogModel.Optmerge.State = True
+ LoadLanguageCorrespondence()
+ TemplateDialog.Execute
+ TemplateDialog.Dispose()
+End Sub
+
+
+Sub Placeholder
+ bTemplate = false
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ LoadLanguageCorrespondence()
+ bDBFields = false
+ OK()
+End Sub
+
+
+Sub Database
+ bTemplate = false
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ LoadLanguageCorrespondence()
+ bDBFields = true
+ OK()
+End Sub
+
+
+Function LoadLanguageCorrespondence() as Boolean
+ If InitResources(&quot;&apos;Template&apos;&quot;, &quot;tpl&quot;) Then
+ msgNoTextmark$ = GetResText(1303) &amp; Chr(13) &amp; Chr(10) &amp; GetResText(1301)
+ msgError$ = GetResText(1302)
+ If bTemplate Then
+ DialogModel.Title = GetResText(1303+3)
+ DialogModel.CmdCancel.Label = GetResText(1102)
+ DialogModel.CmdCorrGoOn.Label = GetResText(1103)
+ DialogModel.OptSingle.Label = GetResText(1303 + 1)
+ DialogModel.Optmerge.Label = GetResText(1303 + 2)
+ DialogModel.FrmLetter.Label = GetResText(1303)
+ End If
+ LoadLanguageCorrespondence() = True
+ Else
+ msgbox(&quot;Warning: Resource could not be loaded!&quot;)
+ End If
+End Function
+
+
+Function GetFieldName(oFieldKnot as Object, GeneralFieldName as String)
+ If oFieldKnot.HasByName(GeneralFieldName) Then
+ GetFieldName = oFieldKnot.GetByName(GeneralFieldName).AssignedFieldName
+ Else
+ GetFieldName = &quot;&quot;
+ End If
+End Function
+
+
+Sub OK
+Dim ParaBreak
+Dim sDocLang as String
+Dim oSearchDesc as Object
+Dim oFoundAll as Object
+Dim oFound as Object
+Dim sFoundContent as String
+Dim sFoundString as String
+Dim sDBField as String
+Dim i as Integer
+Dim oDBAccess as Object
+Dim oAddressDialog as Object
+Dim oAddressPilot as Object
+Dim oFields as Object
+Dim oDocSettings as Object
+Dim oContext as Object
+Dim bDBvalid as Boolean
+ &apos;On Local Error Goto GENERALERROR
+
+ If bTemplate Then
+ bDBFields = DialogModel.Optmerge.State &apos;database or placeholder
+ TemplateDialog.EndExecute()
+ DialogExited = TRUE
+ End If
+
+ If bDBFields Then
+ oDBAccess = GetRegistryKeyContent(&quot;org.openoffice.Office.DataAccess/AddressBook/&quot;)
+ sAddressbook = oDBAccess.DataSourceName
+
+ bDBvalid = false
+ oContext = createUnoService( &quot;com.sun.star.sdb.DatabaseContext&quot; )
+
+ If (not isNull(oContext)) Then
+ &apos;Is the previously assigned address data source still valid?
+ bDBvalid = oContext.hasByName(sAddressbook)
+ end if
+
+ If (bDBvalid = false) Then
+ oAddressPilot = createUnoService(&quot;com.sun.star.ui.dialogs.AddressBookSourcePilot&quot;)
+ oAddressPilot.execute
+
+ oDBAccess = GetRegistryKeyContent(&quot;org.openoffice.Office.DataAccess/AddressBook/&quot;)
+ sAddressbook = oDBAccess.DataSourceName
+ If sAddressbook = &quot;&quot; Then
+ MsgBox(GetResText(1301))
+ Exit Sub
+ End If
+ End If
+ oFields = oDBAccess.GetByName(&quot;Fields&quot;)
+ Table = oDBAccess.GetByName(&quot;Command&quot;)
+ End If
+
+ ParaBreak = com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK
+ oDocument = ThisComponent
+ If bDBFields Then
+ &apos;set the address db as current db at the document
+ oDocSettings = oDocument.createInstance(&quot;com.sun.star.document.Settings&quot;)
+ oDocSettings.CurrentDatabaseDataSource = sAddressbook
+ oDocSettings.CurrentDatabaseCommand = Table
+ oDocSettings.CurrentDatabaseCommandType = 0
+ End If
+ oBookmarks = oDocument.Bookmarks
+ oText = oDocument.Text
+
+ oSearchDesc = oDocument.createsearchDescriptor()
+ oSearchDesc.SearchRegularExpression = True
+ oSearchDesc.SearchWords = True
+ oSearchDesc.SearchString = &quot;&lt;[^&gt;]+&gt;&quot;
+ oFoundall = oDocument.FindAll(oSearchDesc)
+
+ &apos;Loop over the foundings
+ For i = oFoundAll.Count -1 To 0 Step -1
+ oFound = oFoundAll.GetByIndex(i)
+ sFoundString = oFound.String
+ &apos;Extract the string inside the brackets
+ sFoundContent = FindPartString(sFoundString,&quot;&lt;&quot;,&quot;&gt;&quot;,1)
+ sFoundContent = LTrim(sFoundContent)
+ &apos; Define the Cursor and place it on the founding
+ oBookmarkCursor = oFound.Text.CreateTextCursorbyRange(oFound)
+ oBookText = oFound.Text
+ If bDBFields Then
+ sDBField = GetFieldname(oFields, sFoundContent)
+ If sDBField &lt;&gt; &quot;&quot; Then
+ InsertDBField(sAddressbook, Table, sDBField)
+ Else
+ InsertPlaceholder(sFoundContent)
+ End If
+ Else
+ InsertPlaceholder(sFoundContent)
+ End If
+ Next i
+ If bDBFields Then
+ &apos;Open the DB beamer with the right DB
+ Dim oDisp as Object
+ Dim oTransformer
+ Dim aURL as new com.sun.star.util.URL
+ aURL.complete = &quot;.component:DB/DataSourceBrowser&quot;
+ oTransformer = createUnoService(&quot;com.sun.star.util.URLTransformer&quot;)
+ oTransformer.parseStrict(aURL)
+ oDisp = oDocument.getCurrentController.getFrame.queryDispatch(aURL, &quot;_beamer&quot;, com.sun.star.frame.FrameSearchFlag.CHILDREN + com.sun.star.frame.FrameSearchFlag.CREATE)
+ Dim aArgs(3) as new com.sun.star.beans.PropertyValue
+ aArgs(1).Name = &quot;DataSourceName&quot;
+ aArgs(1).Value = sAddressbook
+ aArgs(2).Name = &quot;CommandType&quot;
+ aArgs(2).Value = com.sun.star.sdb.CommandType.TABLE
+ aArgs(3).Name = &quot;Command&quot;
+ aArgs(3).Value = Table
+ oDisp.dispatch(aURL, aArgs())
+ End If
+
+ GENERALERROR:
+ If Err &lt;&gt; 0 Then
+ Msgbox(msgError$,16, GetProductName())
+ Resume LETSGO
+ End If
+ LETSGO:
+
+End Sub
+
+
+Sub InsertDBField(sDBName as String, sTableName as String, sColName as String)
+Dim oFieldMaster, oField as Object
+ If sColname &lt;&gt; &quot;&quot; Then
+ oFieldMaster = oDocument.createInstance(&quot;com.sun.star.text.FieldMaster.Database&quot;)
+ oField = oDocument.createInstance(&quot;com.sun.star.text.TextField.Database&quot;)
+ oFieldMaster.DataBaseName = sDBName
+ oFieldMaster.DataBaseName = sDBName
+ oFieldMaster.DataTableName = sTableName
+ oFieldMaster.DataColumnName = sColName
+ oField.AttachTextfieldmaster (oFieldMaster)
+ oBookText.InsertTextContent(oBookMarkCursor, oField, True)
+ oField.Content = &quot;&lt;&quot; &amp; sColName &amp; &quot;&gt;&quot;
+ End If
+End Sub
+
+
+Sub InsertPlaceholder(sColName as String)
+Dim oFieldMaster as Object
+Dim bCorrectField as Boolean
+ If sColname &lt;&gt; &quot;&quot; Then
+ bCorrectField = True
+ oFieldMaster = oDocument.createInstance(&quot;com.sun.star.text.TextField.JumpEdit&quot;)
+ Select Case sColName
+ Case &quot;Company&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+1)
+ Case &quot;Department&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+2)
+ Case &quot;FirstName&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+3)
+ Case &quot;LastName&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+4)
+ Case &quot;Street&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+5)
+ Case &quot;Country&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+6)
+ Case &quot;Zip&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+7)
+ Case &quot;City&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+8)
+ Case &quot;Title&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+9)
+ Case &quot;Position&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+10)
+ Case &quot;AddrForm&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+11)
+ Case &quot;Code&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+12)
+ Case &quot;AddrFormMail&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+13)
+ Case &quot;PhonePriv&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+14)
+ Case &quot;PhoneComp&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+15)
+ Case &quot;Fax&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+16)
+ Case &quot;EMail&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+17)
+ Case &quot;URL&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+18)
+ Case &quot;Note&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+19)
+ Case &quot;Altfield1&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+20)
+ Case &quot;Altfield2&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+21)
+ Case &quot;Altfield3&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+22)
+ Case &quot;Altfield4&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+23)
+ Case &quot;Id&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+24)
+ Case &quot;State&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+25)
+ Case &quot;PhoneOffice&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+26)
+ Case &quot;Pager&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+27)
+ Case &quot;PhoneCell&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+28)
+ Case &quot;PhoneOther&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+29)
+ Case &quot;CalendarURL&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+30)
+ Case &quot;InviteParticipant&quot;
+ oFieldMaster.PlaceHolder = getResText(1350+31)
+ Case Else
+ bCorrectField = False
+ End Select
+ If bCorrectField Then
+ oFieldMaster.Hint = getResText(1350)
+ oBookText.InsertTextContent(oBookMarkCursor, oFieldMaster, True)
+ End If
+ End If
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Template/DialogStyles.xdl b/test/user-template/user/basic/Template/DialogStyles.xdl
new file mode 100644
index 000000000000..35042849c2f6
--- /dev/null
+++ b/test/user-template/user/basic/Template/DialogStyles.xdl
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="DialogStyles" dlg:left="170" dlg:top="93" dlg:width="120" dlg:height="169" dlg:help-url="HID:WIZARDS_HID_DLGSTYLES_DIALOG" dlg:closeable="true" dlg:moveable="true">
+ <dlg:bulletinboard>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="0" dlg:left="5" dlg:top="150" dlg:width="50" dlg:height="13" dlg:help-url="HID:WIZARDS_HID_DLGSTYLES_CANCEL" dlg:value="cmdCancel">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Template.Samples.RestoreCurrentStyles?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdOk" dlg:tab-index="1" dlg:left="65" dlg:top="150" dlg:width="50" dlg:height="12" dlg:help-url="HID:WIZARDS_HID_DLGSTYLES_OKAY" dlg:value="cmdOk">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Template.Samples.CloseStyleDialog?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:menulist dlg:id="lbStyles" dlg:tab-index="2" dlg:left="5" dlg:top="5" dlg:width="110" dlg:height="133" dlg:help-url="HID:WIZARDS_HID_DLGSTYLES_LISTBOX">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Template.Samples.SelectStyle?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:menulist>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Template/ModuleAgenda.xba b/test/user-template/user/basic/Template/ModuleAgenda.xba
new file mode 100644
index 000000000000..73b0c6cfd8dc
--- /dev/null
+++ b/test/user-template/user/basic/Template/ModuleAgenda.xba
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="ModuleAgenda" script:language="StarBasic">&apos; All variables must be declared before use
+Option Explicit
+
+&apos; Used for &quot;disabling&quot; the cancel button of the dialog
+Public DialogExited As Boolean
+Dim DlgAgenda_gMyName as String
+Public TemplateDialog as Object
+Public DialogModel as Object
+Public sTrueContent as String
+Public Bookmarkname as String
+
+
+
+Sub Initialize()
+&apos; User sets the type of minutes
+ BasicLibraries.LoadLibrary( &quot;Tools&quot; )
+ TemplateDialog = LoadDialog(&quot;Template&quot;, &quot;TemplateDialog&quot;)
+ DialogModel = TemplateDialog.Model
+ DialogModel.Step = 1
+ LoadLanguageAgenda()
+ DialogModel.OptAgenda2.State = TRUE
+ GetOptionValues()
+ DialogExited = FALSE
+ TemplateDialog.Execute
+End Sub
+
+
+Sub LoadLanguageAgenda()
+ If InitResources(&quot;&apos;Template&apos;&quot;, &quot;tpl&quot;) Then
+ DlgAgenda_gMyName = GetResText(1200)
+ DialogModel.CmdCancel.Label = GetResText(1102)
+ DialogModel.CmdAgdGoon.Label = GetResText(1103)
+&apos; DlgAgenda_gMsgNoCancel$ = GetResText(1201)
+ DialogModel.FrmAgenda.Label = GetResText(1202)
+ DialogModel.OptAgenda1.Label = GetResText(1203)
+ DialogModel.OptAgenda2.Label = GetResText(1204)
+&apos; DialogModel.OptAgenda1.State = 1
+ End If
+End Sub
+
+
+Sub ModifyTemplate()
+Dim oDocument, oBookmarks, oBookmark, oBookmarkCursor, oTextField as Object
+Dim i as Integer
+
+ oDocument = ThisComponent
+ oBookMarks = oDocument.Bookmarks
+
+ On Local Error Goto NOBOOKMARK
+ TemplateDialog.EndExecute
+ DialogExited = TRUE
+ oBookmarkCursor = CreateBookmarkCursor(oDocument, BookmarkName)
+ oBookmarkCursor.Text.insertString(oBookmarkCursor,&quot;&quot;,True)
+ &apos; Delete all the Bookmarks except for the one named &quot;NextTopic&quot;
+ For i = oBookmarks.Count-1 To 0 Step -1
+ oBookMark = oBookMarks.GetByIndex(i)
+ If oBookMark.Name &lt;&gt; &quot;NextTopic&quot; Then
+ oBookMark.Dispose()
+ End If
+ Next i
+ oBookMarkCursor = CreateBookmarkCursor(oDocument, &quot;NextTopic&quot;)
+ If Not IsNull(oBookMarkCursor) Then
+ oTextField = oBookMarkCursor.TextField
+&apos; oTextField.TrueContent = sTrueContent
+ oTextField.Content = sTrueContent
+ End If
+
+ NOBOOKMARK:
+ If Err &lt;&gt; 0 Then
+ RESUME NEXT
+ End If
+End Sub
+
+
+Sub NewTopic
+&apos; Add a new topic to the agenda
+Dim oDocument, oBookmarks, oBookmark, oBookmarkCursor, oTextField as Object
+Dim oBaustein, oAutoText, oAutoGroup as Object
+Dim i as Integer
+
+ oDocument = ThisComponent
+ oBookMarkCursor = CreateBookMarkCursor(oDocument, &quot;NextTopic&quot;)
+ oTextField = oBookMarkCursor.TextField
+ oAutoText = CreateUnoService(&quot;com.sun.star.text.AutoTextContainer&quot;)
+ If oAutoText.HasbyName(&quot;template&quot;) Then
+ oAutoGroup = oAutoText.GetbyName(&quot;template&quot;)
+ If oAutoGroup.HasbyName(oTextField.Content) Then
+ oBaustein = oAutoGroup.GetbyName(oTextField.Content)
+ oBaustein.ApplyTo(oBookMarkCursor)
+ Else
+ Msgbox(&quot;AutoText &apos;&quot; &amp; oTextField.Content &amp; &quot;&apos; is not existing. Cannot insert additional topic!&quot;)
+ End If
+ Else
+ Msgbox(&quot;AutoGroupField template is not existing. Cannot insert additional topic!&quot;, 16, DlgAgenda_gMyName )
+ End If
+End Sub
+
+
+
+&apos; Add initials, date and time at bottom of agenda, disable and hide command buttons
+Sub FinishAgenda
+Dim BtnAddAgendaTopic As Object
+Dim BtnFinishAgenda As Object
+Dim oUserField, oDateTimeField as Object
+Dim oBookmarkCursor as Object
+Dim oFormats, oLocale as Object
+Dim iDateTimeKey as Integer
+
+ BasicLibraries.LoadLibrary( &quot;Tools&quot; )
+ oDocument = ThisComponent
+
+ oUserField = oDocument.CreateInstance(&quot;com.sun.star.text.TextField.ExtendedUser&quot;)
+ oUserField.UserDatatype = com.sun.star.text.UserDataPart.SHORTCUT
+
+ oDateTimeField = oDocument.CreateInstance(&quot;com.sun.star.text.TextField.DateTime&quot;)
+
+ &apos; Assign Standardformat to Datetime-Textfield
+ oFormats = oDocument.Numberformats
+ oLocale = oDocument.CharLocale
+ iDateTimeKey = oFormats.GetStandardFormat(com.sun.star.util.NumberFormat.DATETIME,oLocale)
+ oDateTimeField.NumberFormat = iDateTimeKey
+
+ oBookmarkCursor = CreateBookmarkCursor(oDocument, &quot;NextTopic&quot;)
+ oBookmarkCursor.Text.InsertTextContent(oBookmarkCursor,oUserField,False)
+ oBookmarkCursor.Text.InsertString(oBookmarkCursor,&quot; &quot;,False)
+ oBookmarkCursor.Text.InsertTextContent(oBookmarkCursor,oDateTimeField,False)
+ BtnAddAgendaTopic = getControlModel(oDocument, &quot;BtnAddAgendaTopic&quot;)
+ BtnFinishAgenda = getControlModel(oDocument, &quot;BtnFinishAgenda&quot;)
+ If Not IsNull(BtnAddAgendaTopic) Then BtnAddAgendaTopic.Enabled = FALSE
+ If Not IsNull(BtnFinishAgenda) Then BtnFinishAgenda.Enabled = FALSE
+End Sub
+
+
+Function CreateBookMarkCursor(oDocument as Object,sBookmarkName as String)
+ oBookMarks = oDocument.Bookmarks
+ If oBookmarks.HasbyName(sBookmarkName) Then
+ oBookMark = oBookMarks.GetbyName(sBookmarkName)
+ CreateBookMarkCursor = oBookMark.Anchor.Text.CreateTextCursorByRange(oBookMark.Anchor)
+ Else
+ Msgbox &quot;Bookmark &quot; &amp; sBookmarkName &amp; &quot; is not defined!&quot;
+ End If
+End Function
+
+
+
+Sub DeleteButtons
+Dim AgendaFinished As Boolean
+Dim BtnAddAgendaTopic As Object
+Dim BtnFinishAgenda As Object
+
+ oDocument = ThisComponent
+
+ BtnAddAgendaTopic = getControlModel(oDocument, &quot;BtnAddAgendaTopic&quot;)
+ BtnFinishAgenda = getControlModel(oDocument, &quot;BtnFinishAgenda&quot;)
+
+ &apos; If buttons could be accessed: If at least one button is disabled, then agenda is finished
+ AgendaFinished = FALSE
+ If Not IsNull(BtnAddAgendaTopic) Then
+ AgendaFinished = (AgendaFinished Or (BtnAddAgendaTopic.Enabled = FALSE))
+ End If
+
+ If Not IsNull(BtnFinishAgenda) Then
+ AgendaFinished = (AgendaFinished Or (BtnFinishAgenda.Enabled = FALSE))
+ End If
+
+ &apos; Delete Buttons, empty rows at end of document &amp; macro bindings if agenda is finished
+ If AgendaFinished Then
+ DisposeControl(oDocument, &quot;BtnAddAgendaTopic&quot;)
+ DisposeControl(oDocument, &quot;BtnFinishAgenda&quot;)
+
+ oBookmarkCursor = CreateBookMarkCursor(oDocument,&quot;NextTopic&quot;)
+ oBookMarkCursor.GotoEnd(True)
+ oBookmarkCursor.Text.insertString(oBookmarkCursor,&quot;&quot;,True)
+
+ AttachBasicMacroToEvent(oDocument,&quot;OnNew&quot;, &quot;&quot;)
+ AttachBasicMacroToEvent(oDocument,&quot;OnSave&quot;, &quot;&quot;)
+ AttachBasicMacroToEvent(oDocument,&quot;OnSaveAs&quot;, &quot;&quot;)
+ AttachBasicMacroToEvent(oDocument,&quot;OnPrint&quot;, &quot;&quot;)
+ End If
+End Sub
+
+
+
+Sub GetOptionValues(Optional aEvent as Object)
+Dim CurTag as String
+Dim Taglist() as String
+ If Not IsMissing(aEvent) Then
+ CurTag = aEvent.Source.Model.Tag
+ Else
+ If DialogModel.OptAgenda1.State = TRUE Then
+ CurTag = DialogModel.OptAgenda1.Tag
+ Else
+ CurTag = DialogModel.OptAgenda2.Tag
+ End If
+ End If
+ Taglist() = ArrayoutOfString(CurTag, &quot;;&quot;)
+ Bookmarkname = TagList(0)
+ sTrueContent = TagList(1)
+End Sub
+
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Template/Samples.xba b/test/user-template/user/basic/Template/Samples.xba
new file mode 100644
index 000000000000..118fb37d0c49
--- /dev/null
+++ b/test/user-template/user/basic/Template/Samples.xba
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Samples" script:language="StarBasic">Option Explicit
+
+Const SAMPLES = 1000
+Const STYLES = 1100
+Const aTempFileName = &quot;Berend_Ilko_Tom_Stella_Volker.stc&quot;
+Public Const Twip = 425
+Dim oUcbObject as Object
+Public StylesDir as String
+Public StylesDialog as Object
+Public PathSeparator as String
+Public oFamilies as Object
+Public aOptions(0) as New com.sun.star.beans.PropertyValue
+Public sQueryPath as String
+Public NoArgs()as New com.sun.star.beans.PropertyValue
+Public aTempURL as String
+
+Public Files(100) as String
+
+
+&apos;--------------------------------------------------------------------------------------
+&apos;Miscellaneous Section starts here
+
+Function PrepareForEditing(Optional ByVal oDocument)
+&apos;This sub is called when sample documents are loaded (load event).
+&apos;It checks whether the documents is read-only, in which case it
+&apos;offers the user to create a new (writable) document using the original
+&apos;as a template.
+Dim DocPath as String
+Dim MMessage as String
+Dim MTitle as String
+Dim RValue as Integer
+Dim oNewDocument as Object
+Dim mFileProperties(1) as New com.sun.star.beans.PropertyValue
+ PrepareForEditing = NULL
+ BasicLibraries.LoadLibrary( &quot;Tools&quot; )
+ If InitResources(&quot;&apos;Template&apos;&quot;, &quot;tpl&quot;) then
+ If IsMissing(oDocument) Then
+ oDocument = ThisComponent
+ End If
+ If oDocument.IsReadOnly then
+ MMessage = GetResText(SAMPLES)
+ MTitle = GetResText(SAMPLES + 1)
+ RValue = Msgbox(MMessage, (128+48+1), MTitle)
+ If RValue = 1 Then
+ DocPath = oDocument.URL
+ mFileProperties(0).Name = &quot;AsTemplate&quot;
+ mFileProperties(0).Value = True
+ mFileProperties(1).Name = &quot;MacroExecutionMode&quot;
+ mFileProperties(1).Value = com.sun.star.document.MacroExecMode.USE_CONFIG
+
+ oNewDocument = StarDesktop.LoadComponentFromURL(DocPath,&quot;_default&quot;,0, mFileProperties())
+ PrepareForEditing() = oNewDocument
+ DisposeDocument(oDocument)
+ Else
+ PrepareForEditing() = NULL
+ End If
+ Else
+ PrepareForEditing() = oDocument
+ End If
+ End If
+End Function
+
+
+
+&apos;--------------------------------------------------------------------------------------
+&apos;Calc Style Section starts here
+
+Sub ShowStyles
+&apos;This sub displays the style selection dialog if the current document is a calc document.
+Dim TemplateDir, ActFileTitle, DisplayDummy as String
+Dim sFilterName(0) as String
+Dim StyleNames() as String
+Dim t as Integer
+Dim MaxIndex as Integer
+ BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ If InitResources(&quot;&apos;Template&apos;&quot;, &quot;tpl&quot;) then
+ oDocument = ThisComponent
+ If oDocument.SupportsService(&quot;com.sun.star.sheet.SpreadsheetDocument&quot;) Then
+ ToggleWindow(False)
+ oUcbObject = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ oFamilies = oDocument.StyleFamilies
+ SaveCurrentStyles(oDocument)
+ StylesDialog = LoadDialog(&quot;Template&quot;, &quot;DialogStyles&quot;)
+ DialogModel = StylesDialog.Model
+ TemplateDir = GetPathSettings(&quot;Template&quot;, False, 0)
+ StylesDir = GetOfficeSubPath(&quot;Template&quot;, &quot;wizard/styles/&quot;)
+ sQueryPath = GetOfficeSubPath(&quot;Template&quot;, &quot;../wizard/bitmap/&quot;)
+ DialogModel.Title = GetResText(STYLES)
+ DialogModel.cmdCancel.Label = GetResText(STYLES+2)
+ DialogModel.cmdOk.Label = GetResText(STYLES+3)
+ Stylenames() = ReadDirectories(StylesDir, False, False, True,)
+ MaxIndex = Ubound(Stylenames())
+ BubbleSortList(Stylenames(),True)
+ Dim cStyles(MaxIndex)
+ For t = 0 to MaxIndex
+ Files(t) = StyleNames(t,0)
+ cStyles(t) = StyleNames(t,1)
+ Next t
+ On Local Error Resume Next
+ DialogModel.lbStyles.StringItemList() = cStyles()
+ ToggleWindow(True)
+ StylesDialog.Execute
+ End If
+ End If
+End Sub
+
+
+Sub SelectStyle
+&apos;This sub loads the specific styles from a style document and loads them into the
+&apos;current document.
+Dim StylePath as String
+Dim NewStyle as String
+Dim Position as Integer
+ Position = DialogModel.lbStyles.SelectedItems(0)
+ If Position &gt; -1 Then
+ ToggleWindow(False)
+ StylePath = Files(Position)
+ aOptions(0).Name = &quot;OverwriteStyles&quot;
+ aOptions(0).Value = true
+ oFamilies.loadStylesFromURL(StylePath, aOptions())
+ ToggleWindow(True)
+ End If
+End Sub
+
+
+Sub SaveCurrentStyles(oDocument as Object)
+&apos;This sub stores the current document in the user work directory
+ On Error Goto ErrorOcurred
+ aTempURL = GetPathSettings(&quot;Work&quot;, False)
+ Dim aRightMost as String
+ aRightMost = Right(aTempURL, 1)
+ if aRightMost = &quot;/&quot; Then
+ aTempURL = aTempURL &amp; aTempFileName
+ Else
+ aTempURL = aTempURL &amp; &quot;/&quot; &amp; aTempFileName
+ End If
+
+ While FileExists(aTempURL)
+ aTempURL=Left(aTempURL,(Len(aTempURL)-4)) &amp; &quot;_1.stc&quot;
+ Wend
+ oDocument.storeToURL(aTempURL, NoArgs())
+ Exit Sub
+
+ErrorOcurred:
+ MsgBox(GetResText( STYLES+1 ), 16, GetResText( STYLES ))
+ On Local Error Goto 0
+End Sub
+
+
+Sub RestoreCurrentStyles
+&apos;This sub retrieves the styles from the temporarily save document
+ ToggleWindow(False)
+ On Local Error Goto NoFile
+ If FileExists(aTempURL) Then
+ aOptions(0).Name = &quot;OverwriteStyles&quot;
+ aOptions(0).Value = true
+ oFamilies.LoadStylesFromURL(aTempURL, aOptions())
+ KillTempFile()
+ End If
+ StylesDialog.EndExecute
+ ToggleWindow(True)
+NOFILE:
+ If Err &lt;&gt; 0 Then
+ Msgbox(&quot;Cannot load Document from &quot; &amp; aTempUrl, 64, GetProductname())
+ End If
+ On Local Error Goto 0
+End Sub
+
+
+Sub CloseStyleDialog
+ KillTempFile()
+ DialogExited = True
+ StylesDialog.Endexecute
+End Sub
+
+
+Sub KillTempFile()
+ If oUcbObject.Exists(aTempUrl) Then
+ oUcbObject.Kill(aTempUrl)
+ End If
+End Sub
+
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Template/TemplateDialog.xdl b/test/user-template/user/basic/Template/TemplateDialog.xdl
new file mode 100644
index 000000000000..4b8633f231a3
--- /dev/null
+++ b/test/user-template/user/basic/Template/TemplateDialog.xdl
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="TemplateDialog" dlg:left="170" dlg:top="93" dlg:width="220" dlg:height="60" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGCORRESPONDENCE_DIALOG" dlg:closeable="true" dlg:moveable="true">
+ <dlg:bulletinboard>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="OptAgenda1" dlg:tab-index="0" dlg:left="12" dlg:top="20" dlg:width="144" dlg:height="10" dlg:page="1" dlg:tag="TOP2;PT1" dlg:help-url="HID:WIZARDS_HID_DLGCORRESPONDENCE_OPTIONAGENDA1" dlg:value="OptAgenda1">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Template.ModuleAgenda.GetOptionValues?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ <dlg:radio dlg:id="OptAgenda2" dlg:tab-index="1" dlg:left="12" dlg:top="34" dlg:width="144" dlg:height="10" dlg:page="1" dlg:tag="TOP1;PT2" dlg:help-url="HID:WIZARDS_HID_DLGCORRESPONDENCE_OPTIONAGENDA2" dlg:value="OptAgenda2">
+ <script:event script:event-name="on-itemstatechange" script:macro-name="vnd.sun.star.script:Template.ModuleAgenda.GetOptionValues?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:radio>
+ </dlg:radiogroup>
+ <dlg:button dlg:id="CmdCorrGoOn" dlg:tab-index="2" dlg:left="164" dlg:top="11" dlg:width="50" dlg:height="14" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCORRESPONDENCE_LETTEROKAY" dlg:value="CmdCorrGoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="Template.Correspondence.OK" script:language="StarBasic"/>
+ </dlg:button>
+ <dlg:radiogroup>
+ <dlg:radio dlg:id="OptSingle" dlg:tab-index="3" dlg:left="12" dlg:top="20" dlg:width="144" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCORRESPONDENCE_OPTIONLETTER1" dlg:value="OptSingle"/>
+ <dlg:radio dlg:id="Optmerge" dlg:tab-index="4" dlg:left="12" dlg:top="34" dlg:width="144" dlg:height="10" dlg:page="2" dlg:help-url="HID:WIZARDS_HID_DLGCORRESPONDENCE_OPTIONLETTER2" dlg:value="Optmerge"/>
+ </dlg:radiogroup>
+ <dlg:button dlg:id="CmdAgdGoon" dlg:tab-index="5" dlg:left="164" dlg:top="11" dlg:width="50" dlg:height="14" dlg:page="1" dlg:help-url="HID:WIZARDS_HID_DLGCORRESPONDENCE_AGENDAOKAY" dlg:value="CmdAgdGoOn">
+ <script:event script:event-name="on-performaction" script:macro-name="Template.ModuleAgenda.ModifyTemplate" script:language="StarBasic"/>
+ </dlg:button>
+ <dlg:button dlg:id="CmdCancel" dlg:tab-index="6" dlg:left="164" dlg:top="28" dlg:width="50" dlg:height="14" dlg:help-url="HID:WIZARDS_HID_DLGCORRESPONDENCE_CANCEL" dlg:value="CmdCancel" dlg:button-type="cancel">
+ <script:event script:event-name="on-performaction" script:macro-name="Template.ModuleAgenda.DisposeDocument" script:language="StarBasic"/>
+ </dlg:button>
+ <dlg:fixedline dlg:id="FrmLetter" dlg:tab-index="7" dlg:left="6" dlg:top="6" dlg:width="150" dlg:height="10" dlg:page="2" dlg:value="FrmLetter"/>
+ <dlg:fixedline dlg:id="FrmAgenda" dlg:tab-index="8" dlg:left="6" dlg:top="6" dlg:width="150" dlg:height="10" dlg:page="1" dlg:value="FrmAgenda"/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Template/dialog.xlb b/test/user-template/user/basic/Template/dialog.xlb
new file mode 100644
index 000000000000..c5eed37a26f2
--- /dev/null
+++ b/test/user-template/user/basic/Template/dialog.xlb
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Template" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="DialogStyles"/>
+ <library:element library:name="DlgGreeting"/>
+ <library:element library:name="TemplateDialog"/>
+</library:library>
diff --git a/test/user-template/user/basic/Template/script.xlb b/test/user-template/user/basic/Template/script.xlb
new file mode 100644
index 000000000000..c89cc3788875
--- /dev/null
+++ b/test/user-template/user/basic/Template/script.xlb
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+ <library:library xmlns:library="http://openoffice.org/2000/library" library:name="Template" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="ModuleAgenda"/>
+ <library:element library:name="Correspondence"/>
+ <library:element library:name="Samples"/>
+ <library:element library:name="Autotext"/>
+ </library:library>
diff --git a/test/user-template/user/basic/Tools/Debug.xba b/test/user-template/user/basic/Tools/Debug.xba
new file mode 100644
index 000000000000..4ba60ffb8d95
--- /dev/null
+++ b/test/user-template/user/basic/Tools/Debug.xba
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Debug" script:language="StarBasic">REM ***** BASIC *****
+
+Sub ActivateReadOnlyFlag()
+ SetBasicReadOnlyFlag(True)
+End Sub
+
+
+Sub DeactivateReadOnlyFlag()
+ SetBasicReadOnlyFlag(False)
+End Sub
+
+
+Sub SetBasicReadOnlyFlag(bReadOnly as Boolean)
+Dim i as Integer
+Dim LibName as String
+Dim BasicLibNames() as String
+ BasicLibNames() = BasicLibraries.ElementNames()
+ For i = 0 To Ubound(BasicLibNames())
+ LibName = BasicLibNames(i)
+ If LibName &lt;&gt; &quot;Standard&quot; Then
+ BasicLibraries.SetLibraryReadOnly(LibName, bReadOnly)
+ End If
+ Next i
+End Sub
+
+
+Sub WritedbgInfo(LocObject as Object)
+Dim locUrl as String
+Dim oLocDocument as Object
+Dim oLocText as Object
+Dim oLocCursor as Object
+Dim NoArgs()
+Dim sObjectStrings(2) as String
+Dim sProperties() as String
+Dim n as Integer
+Dim m as Integer
+Dim MaxIndex as Integer
+ sObjectStrings(0) = LocObject.dbg_Properties
+ sObjectStrings(1) = LocObject.dbg_Methods
+ sObjectStrings(2) = LocObject.dbg_SupportedInterfaces
+ LocUrl = &quot;private:factory/swriter&quot;
+ oLocDocument = StarDesktop.LoadComponentFromURL(LocUrl,&quot;_default&quot;,0,NoArgs)
+ oLocText = oLocDocument.text
+ oLocCursor = oLocText.createTextCursor()
+ oLocCursor.gotoStart(False)
+ If Vartype(LocObject) = 9 then &apos; an Object Variable
+ For n = 0 To 2
+ sProperties() = ArrayoutofString(sObjectStrings(n),&quot;;&quot;, MaxIndex)
+ For m = 0 To MaxIndex
+ oLocText.insertString(oLocCursor,sProperties(m),False)
+ oLocText.insertControlCharacter(oLocCursor,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
+ Next m
+ Next n
+ Elseif Vartype(LocObject) = 8 Then &apos; a String Variable
+ oLocText.insertString(oLocCursor,LocObject,False)
+ ElseIf Vartype(LocObject) = 1 Then
+ Msgbox(&quot;Variable is Null!&quot;, 16, GetProductName())
+ End If
+End Sub
+
+
+Sub WriteDbgString(LocString as string)
+Dim oLocDesktop as object
+Dim LocUrl as String
+Dim oLocDocument as Object
+Dim oLocCursor as Object
+Dim oLocText as Object
+
+ LocUrl = &quot;private:factory/swriter&quot;
+ oLocDocument = StarDesktop.LoadComponentFromURL(LocUrl,&quot;_default&quot;,0,NoArgs)
+ oLocText = oLocDocument.text
+ oLocCursor = oLocText.createTextCursor()
+ oLocCursor.gotoStart(False)
+ oLocText.insertString(oLocCursor,LocString,False)
+End Sub
+
+
+Sub printdbgInfo(LocObject)
+ If Vartype(LocObject) = 9 then
+ Msgbox LocObject.dbg_properties
+ Msgbox LocObject.dbg_methods
+ Msgbox LocObject.dbg_supportedinterfaces
+ Elseif Vartype(LocObject) = 8 Then &apos; a String Variable
+ Msgbox LocObject
+ ElseIf Vartype(LocObject) = 0 Then
+ Msgbox(&quot;Variable is Null!&quot;, 16, GetProductName())
+ Else
+ Msgbox(&quot;Type of Variable: &quot; &amp; Typename(LocObject), 48, GetProductName())
+ End If
+End Sub
+
+
+Sub ShowArray(LocArray())
+Dim i as integer
+Dim msgstring
+ msgstring = &quot;&quot;
+ For i = Lbound(LocArray()) to Ubound(LocArray())
+ msgstring = msgstring + LocArray(i) + chr(13)
+ Next
+ Msgbox msgstring
+End Sub
+
+
+Sub ShowPropertyValues(oLocObject as Object)
+Dim PropName as String
+Dim sValues as String
+ On Local Error Goto NOPROPERTYSETINFO:
+ sValues = &quot;&quot;
+ For i = 0 To Ubound(oLocObject.PropertySetInfo.Properties)
+ Propname = oLocObject.PropertySetInfo.Properties(i).Name
+ sValues = sValues &amp; PropName &amp; chr(13) &amp; &quot; = &quot; &amp; oLocObject.GetPropertyValue(PropName) &amp; chr(13)
+ Next i
+ Msgbox(sValues , 64, GetProductName())
+ Exit Sub
+
+NOPROPERTYSETINFO:
+ Msgbox(&quot;Sorry, No PropertySetInfo attached to the object&quot;, 16, GetProductName())
+ Resume LEAVEPROC
+ LEAVEPROC:
+End Sub
+
+
+Sub ShowNameValuePair(Pair())
+Dim i as Integer
+Dim ShowString as String
+ ShowString = &quot;&quot;
+ On Local Error Resume Next
+ For i = 0 To Ubound(Pair())
+ ShowString = ShowString &amp; Pair(i).Name &amp; &quot; = &quot;
+ ShowString = ShowString &amp; Pair(i).Value &amp; chr(13)
+ Next i
+ Msgbox ShowString
+End Sub
+
+
+&apos; Retrieves all the Elements of aSequence of an object, with the
+&apos; possibility to define a filter(sfilter &lt;&gt; &quot;&quot;)
+Sub ShowElementNames(oLocElements() as Object, Optional sFiltername as String)
+Dim i as Integer
+Dim NameString as String
+ NameString = &quot;&quot;
+ For i = 0 To Ubound(oLocElements())
+ If Not IsMissIng(sFilterName) Then
+ If Instr(1, oLocElements(i), sFilterName) Then
+ NameString = NameString &amp; oLocElements(i) &amp; chr(13)
+ End If
+ Else
+ NameString = NameString &amp; oLocElements(i) &amp; chr(13)
+ End If
+ Next i
+ Msgbox(NameString, 64, GetProductName())
+End Sub
+
+
+&apos; Retrieves all the supported servicenames of an object, with the
+&apos; possibility to define a filter(sfilter &lt;&gt; &quot;&quot;)
+Sub ShowSupportedServiceNames(oLocObject as Object, Optional sFilterName as String)
+ On Local Error Goto NOSERVICENAMES
+ If IsMissing(sFilterName) Then
+ ShowElementNames(oLocobject.SupportedServiceNames())
+ Else
+ ShowElementNames(oLocobject.SupportedServiceNames(), sFilterName)
+ End If
+ Exit Sub
+
+ NOSERVICENAMES:
+ Msgbox(&quot;Sorry, No &apos;SupportedServiceNames&apos; - Property attached to the object&quot;, 16, GetProductName())
+ Resume LEAVEPROC
+ LEAVEPROC:
+End Sub
+
+
+&apos; Retrieves all the available Servicenames of an object, with the
+&apos; possibility to define a filter(sfilter &lt;&gt; &quot;&quot;)
+Sub ShowAvailableServiceNames(oLocObject as Object, Optional sFilterName as String)
+ On Local Error Goto NOSERVICENAMES
+ If IsMissing(sFilterName) Then
+ ShowElementNames(oLocobject.AvailableServiceNames)
+ Else
+ ShowElementNames(oLocobject.AvailableServiceNames, sFilterName)
+ End If
+ Exit Sub
+
+ NOSERVICENAMES:
+ Msgbox(&quot;Sorry, No &apos;AvailableServiceNames&apos; - Property attached to the object&quot;, 16, GetProductName())
+ Resume LEAVEPROC
+ LEAVEPROC:
+End Sub
+
+
+Sub ShowCommands(oLocObject as Object)
+ On Local Error Goto NOCOMMANDS
+ ShowElementNames(oLocObject.QueryCommands)
+ Exit Sub
+ NOCOMMANDS:
+ Msgbox(&quot;Sorry, No &apos;QueryCommands&apos; - Property attached to the object&quot;, 16, GetProductName())
+ Resume LEAVEPROC
+ LEAVEPROC:
+End Sub
+
+
+Sub ProtectCurrentSheets()
+Dim oDocument as Object
+Dim sDocType as String
+Dim iResult as Integer
+Dim oSheets as Object
+Dim i as Integer
+Dim bDoProtect as Boolean
+ oDocument = StarDesktop.ActiveFrame.Controller.Model
+ sDocType = GetDocumentType(oDocument)
+ If sDocType = &quot;scalc&quot; Then
+ oSheets = oDocument.Sheets
+ bDoProtect = False
+ For i = 0 To oSheets.Count-1
+ If Not oSheets(i).IsProtected Then
+ bDoProtect = True
+ End If
+ Next i
+ If bDoProtect Then
+ iResult = Msgbox( &quot;Do you want to protect all sheets of this document?&quot;,35, GetProductName())
+ If iResult = 6 Then
+ ProtectSheets(oDocument.Sheets)
+ End If
+ End If
+ End If
+End Sub
+
+
+Sub FillDocument()
+ oMyReport = createUNOService(&quot;com.sun.star.wizards.report.CallReportWizard&quot;)
+ oMyReport.trigger(&quot;fill&quot;)
+End Sub
+
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tools/DlgOverwriteAll.xdl b/test/user-template/user/basic/Tools/DlgOverwriteAll.xdl
new file mode 100644
index 000000000000..5208ead799d6
--- /dev/null
+++ b/test/user-template/user/basic/Tools/DlgOverwriteAll.xdl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="DlgOverwriteAll" dlg:left="138" dlg:top="75" dlg:width="230" dlg:height="64" dlg:closeable="true" dlg:moveable="true">
+ <dlg:bulletinboard>
+ <dlg:text dlg:id="lblQueryforSave" dlg:tab-index="0" dlg:left="6" dlg:top="6" dlg:width="218" dlg:height="36" dlg:value="lblQueryforSave" dlg:multiline="true"/>
+ <dlg:button dlg:id="cmdYes" dlg:tab-index="1" dlg:left="6" dlg:top="43" dlg:width="50" dlg:height="14" dlg:value="cmdYes">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tools.ModuleControls.SetOVERWRITEToQuery?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdYesToAll" dlg:tab-index="2" dlg:left="62" dlg:top="43" dlg:width="50" dlg:height="14" dlg:value="cmdYesToAll">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tools.ModuleControls.SetOVERWRITEToAlways?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdNo" dlg:tab-index="3" dlg:left="118" dlg:top="43" dlg:width="50" dlg:height="14" dlg:default="true" dlg:value="cmdNo">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tools.ModuleControls.SetOVERWRITEToNever?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="cmdCancel" dlg:tab-index="4" dlg:left="174" dlg:top="43" dlg:width="50" dlg:height="14" dlg:value="cmdCancel" dlg:button-type="cancel"/>
+ </dlg:bulletinboard>
+</dlg:window>
diff --git a/test/user-template/user/basic/Tools/Listbox.xba b/test/user-template/user/basic/Tools/Listbox.xba
new file mode 100644
index 000000000000..01e62e7d6715
--- /dev/null
+++ b/test/user-template/user/basic/Tools/Listbox.xba
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Listbox" script:language="StarBasic">Option Explicit
+Dim OriginalList()
+Dim oDialogModel as Object
+
+
+Sub MergeList(SourceListBox() as Object, SecondList() as String)
+Dim i as Integer
+Dim MaxIndex as Integer
+ MaxIndex = Ubound(SecondList())
+ OriginalList() = AddListToList(OriginalList(), SecondList())
+ For i = 0 To MaxIndex
+ SourceListbox = AddSingleItemToListbox(SourceListbox, SecondList(i))
+ Next i
+ Call FormSetMoveRights()
+End Sub
+
+
+Sub RemoveListItems(SourceListbox as Object, TargetListbox as Object, RemoveList() as String)
+Dim i as Integer
+Dim s as Integer
+Dim MaxIndex as Integer
+Dim CopyList()
+ MaxIndex = Ubound(RemoveList())
+ For i = 0 To MaxIndex
+ RemoveListboxItemByName(SourceListbox, RemoveList(i))
+ RemoveListboxItemByName(TargetListbox, RemoveList(i))
+ Next i
+ CopyList() = OriginalList()
+ s = 0
+ MaxIndex = Ubound(CopyList())
+ For i = 0 To MaxIndex
+ If IndexInArray(CopyList(i),RemoveList())= -1 Then
+ OriginalList(s) = CopyList(i)
+ s = s + 1
+ End If
+ Next i
+ ReDim Preserve OriginalList(s-1)
+ Call FormSetMoveRights()
+End Sub
+
+
+&apos; Note Boolean Parameter
+Sub InitializeListboxProcedures(oModel as Object, SourceListbox as Object, TargetListbox as Object)
+Dim EmptyList()
+ Set oDialogModel = oModel
+ OriginalList()= SourceListbox.StringItemList()
+ TargetListbox.StringItemList() = EmptyList()
+End Sub
+
+
+Sub CopyListboxItems(SourceListbox as Object, TargetListbox As Object)
+Dim NullArray()
+ TargetListbox.StringItemList() = OriginalList()
+ SourceListbox.StringItemList() = NullArray()
+End Sub
+
+
+Sub FormMoveSelected()
+ Call MoveSelectedListBox(oDialogModel.lstFields, oDialogModel.lstSelFields)
+ Call FormSetMoveRights()
+ oDialogModel.lstSelFields.Tag = True
+End Sub
+
+
+Sub FormMoveAll()
+ Call CopyListboxItems(oDialogModel.lstFields, oDialogModel.lstSelFields)
+ Call FormSetMoveRights()
+ oDialogModel.lstSelFields.Tag = True
+End Sub
+
+
+Sub FormRemoveSelected()
+ Call MoveOrderedSelectedListbox(oDialogModel.lstFields, oDialogModel.lstSelFields, False)
+ Call FormSetMoveRights()
+ oDialogModel.lstSelFields.Tag = True
+End Sub
+
+
+Sub FormRemoveAll()
+ Call MoveOrderedSelectedListbox(oDialogModel.lstFields, oDialogModel.lstSelFields, True)
+ Call FormSetMoveRights()
+ oDialogModel.lstSelFields.Tag = 1
+End Sub
+
+
+Sub MoveSelectedListBox(SourceListbox as Object, TargetListbox as Object)
+Dim MaxCurTarget as Integer
+Dim MaxSourceSelected as Integer
+Dim n as Integer
+Dim m as Integer
+Dim CurIndex
+Dim iOldTargetSelect as Integer
+Dim iOldSourceSelect as Integer
+ MaxCurTarget = Ubound(TargetListbox.StringItemList())
+ MaxSourceSelected = Ubound(SourceListbox.SelectedItems())
+ Dim TargetList(MaxCurTarget+MaxSourceSelected+1)
+ If MaxSourceSelected &gt; -1 Then
+ iOldSourceSelect = SourceListbox.SelectedItems(0)
+ If Ubound(TargetListbox.SelectedItems()) &gt; -1 Then
+ iOldTargetSelect = TargetListbox.SelectedItems(0)
+ Else
+ iOldTargetSelect = -1
+ End If
+ For n = 0 To MaxCurTarget
+ TargetList(n) = TargetListbox.StringItemList(n)
+ Next n
+ For m = 0 To MaxSourceSelected
+ CurIndex = SourceListbox.SelectedItems(m)
+ TargetList(n) = SourceListbox.StringItemList(CurIndex)
+ n = n + 1
+ Next m
+ TargetListBox.StringItemList() = TargetList()
+ SourceListbox.StringItemList() = RemoveSelected (SourceListbox)
+ SetNewSelection(SourceListbox, iOldSourceSelect)
+ SetNewSelection(TargetListbox, iOldTargetSelect)
+ End If
+End Sub
+
+
+
+Sub MoveOrderedSelectedListbox(lstSource as Object, lstTarget as Object, bMoveAll as Boolean)
+Dim NullArray()
+Dim MaxSelected as Integer
+Dim MaxSourceIndex as Integer
+Dim MaxOriginalIndex as Integer
+Dim MaxNewIndex as Integer
+Dim n as Integer
+Dim m as Integer
+Dim CurIndex as Integer
+Dim SearchString as String
+Dim SourceList() as String
+Dim iOldTargetSelect as Integer
+Dim iOldSourceSelect as Integer
+ If bMoveAll Then
+ lstSource.StringItemList() = OriginalList()
+ lstTarget.StringItemList() = NullArray()
+ Else
+ MaxOriginalIndex = Ubound(OriginalList())
+ MaxSelected = Ubound(lstTarget.SelectedItems())
+ iOldTargetSelect = lstTarget.SelectedItems(0)
+ If Ubound(lstSource.SelectedItems()) &gt; -1 Then
+ iOldSourceSelect = lstSource.SelectedItems(0)
+ End If
+ Dim SelList(MaxSelected)
+ For n = 0 To MaxSelected
+ CurIndex = lstTarget.SelectedItems(n)
+ SelList(n) = lstTarget.StringItemList(CurIndex)
+ Next n
+ SourceList() = lstSource.StringItemList()
+ MaxSourceIndex = Ubound(lstSource.StringItemList())
+ MaxNewIndex = MaxSelected + MaxSourceIndex + 1
+ Dim NewSourceList(MaxNewIndex)
+ m = 0
+ For n = 0 To MaxOriginalIndex
+ SearchString = OriginalList(n)
+ If IndexinArray(SearchString, SelList()) &lt;&gt; -1 Then
+ NewSourceList(m) = SearchString
+ m = m + 1
+ ElseIf IndexinArray(SearchString, SourceList()) &lt;&gt; -1 Then
+ NewSourceList(m) = SearchString
+ m = m + 1
+ End If
+ Next n
+ lstSource.StringItemList() = NewSourceList()
+ lstTarget.StringItemList() = RemoveSelected(lstTarget)
+ End If
+ SetNewSelection(lstSource, iOldSourceSelect)
+ SetNewSelection(lstTarget, iOldTargetSelect)
+
+End Sub
+
+
+Function RemoveSelected(oListbox as Object)
+Dim MaxIndex as Integer
+Dim MaxSelected as Integer
+Dim n as Integer
+Dim m as Integer
+Dim CurIndex as Integer
+Dim CurItem as String
+Dim ResultArray()
+ MaxIndex = Ubound(oListbox.StringItemList())
+ MaxSelected = Ubound(oListbox.SelectedItems())
+ Dim LocItemList(MaxIndex)
+ LocItemList() = oListbox.StringItemList()
+ If MaxSelected &gt; -1 Then
+ For n = 0 To MaxSelected
+ CurIndex = oListbox.SelectedItems(n)
+ LocItemList(CurIndex) = &quot;&quot;
+ Next n
+ If MaxIndex &gt; 0 Then
+ ReDim ResultArray(MaxIndex - MaxSelected - 1)
+ m = 0
+ For n = 0 To MaxIndex
+ CurItem = LocItemList(n)
+ If CurItem &lt;&gt; &quot;&quot; Then
+ ResultArray(m) = CurItem
+ m = m + 1
+ End If
+ Next n
+ End If
+ RemoveSelected = ResultArray()
+ Else
+ RemoveSelected = oListbox.StringItemList()
+ End If
+End Function
+
+
+Sub SetNewSelection(oListBox as Object, iLastSelection as Integer)
+Dim MaxIndex as Integer
+Dim SelIndex as Integer
+Dim SelList(0) as Integer
+ MaxIndex = Ubound(oListBox.StringItemList())
+ If MaxIndex &gt; -1 AND iLastSelection &gt; -1 Then
+ If iLastSelection &gt; MaxIndex Then
+ Selindex = MaxIndex
+ Else
+ SelIndex = iLastSelection
+ End If
+ Sellist(0) = SelIndex
+ oListBox.SelectedItems() = SelList()
+ End If
+End Sub
+
+
+Sub ToggleListboxControls(oDialogModel as Object, bDoEnable as Boolean)
+ With oDialogModel
+ .lblFields.Enabled = bDoEnable
+ .lblSelFields.Enabled = bDoEnable
+&apos; .lstTables.Enabled = bDoEnable
+ .lstFields.Enabled = bDoEnable
+ .lstSelFields.Enabled = bDoEnable
+ .cmdRemoveAll.Enabled = bDoEnable
+ .cmdRemoveSelected.Enabled = bDoEnable
+ .cmdMoveAll.Enabled = bDoEnable
+ .cmdMoveSelected.Enabled = bDoEnable
+ End With
+ If bDoEnable Then
+ FormSetMoveRights()
+ End If
+End Sub
+
+
+&apos; Enable or disable the buttons used for moving the available
+&apos; fields between the two list boxes.
+Sub FormSetMoveRights()
+Dim bIsFieldSelected as Boolean
+Dim bSelectSelected as Boolean
+Dim FieldCount as Integer
+Dim SelectCount as Integer
+ bIsFieldSelected = Ubound(oDialogModel.lstFields.SelectedItems()) &lt;&gt; -1
+ FieldCount = Ubound(oDialogModel.lstFields.StringItemList()) + 1
+ bSelectSelected = Ubound(oDialogModel.lstSelFields.SelectedItems()) &gt; -1
+ SelectCount = Ubound(oDialogModel.lstSelFields.StringItemList()) + 1
+ oDialogModel.cmdRemoveAll.Enabled = SelectCount&gt;=1
+ oDialogModel.cmdRemoveSelected.Enabled = bSelectSelected
+ oDialogModel.cmdMoveAll.Enabled = FieldCount &gt;=1
+ oDialogModel.cmdMoveSelected.Enabled = bIsFieldSelected
+ oDialogModel.cmdGoOn.Enabled = SelectCount&gt;=1
+ &apos; This flag is set to &apos;1&apos; when the lstSelFields has been modified
+End Sub
+
+
+Function AddSingleItemToListbox(ByVal oListbox as Object, ListItem as String, Optional iSelIndex) as Object
+Dim MaxIndex as Integer
+Dim i as Integer
+
+ MaxIndex = Ubound(oListbox.StringItemList())
+Dim LocList(MaxIndex + 1)
+&apos; Todo: This goes faster with the Redim LocList(MaxIndex + 1) Preserve function
+ For i = 0 To MaxIndex
+ LocList(i) = oListbox.StringItemList(i)
+ Next i
+ LocList(MaxIndex + 1) = ListItem
+ oListbox.StringItemList() = LocList()
+ If Not IsMissing(iSelIndex) Then
+ SelectListboxItem(oListbox, iSelIndex)
+ End If
+ AddSingleItemToListbox() = oListbox
+End Function
+
+
+Sub EmptyListbox(oListbox as Object)
+Dim NullList() as String
+ oListbox.StringItemList() = NullList()
+End Sub
+
+
+Sub SelectListboxItem(oListbox as Object, iSelIndex as Integer)
+Dim LocSelList(0) as Integer
+ If iSelIndex &lt;&gt; -1 Then
+ LocSelList(0) = iSelIndex
+ oListbox.SelectedItems() = LocSelList()
+ End If
+End Sub
+
+
+Function GetSelectedListboxItems(oListbox as Object)
+Dim SelList(Ubound(oListBox.SelectedItems())) as String
+Dim i as Integer
+Dim CurIndex as Integer
+ For i = 0 To Ubound(oListbox.SelectedItems())
+ CurIndex = oListbox.SelectedItems(i)
+ SelList(i) = oListbox.StringItemList(CurIndex)
+ Next i
+ GetSelectedListboxItems() = SelList()
+End Function
+
+
+&apos; Note: When using this Sub it must be ensured that the
+&apos; &apos;RemoveItem&apos; appears only only once in the Listbox
+Sub RemoveListboxItemByName(oListbox as Object, RemoveItem as String)
+Dim OldList() as String
+Dim NullList() as String
+Dim i as Integer
+Dim a as Integer
+Dim MaxIndex as Integer
+ OldList = oListbox.StringItemList()
+ MaxIndex = Ubound(OldList())
+ If IndexInArray(RemoveItem, OldList()) &lt;&gt; -1 Then
+ If MaxIndex &gt; 0 Then
+ a = 0
+ Dim NewList(MaxIndex -1)
+ For i = 0 To MaxIndex
+ If RemoveItem &lt;&gt; OldList(i) Then
+ NewList(a) = OldList(i)
+ a = a + 1
+ End If
+ Next i
+ oListbox.StringItemList() = NewList()
+ Else
+ oListBox.StringItemList() = NullList()
+ End If
+ End If
+End Sub
+
+
+Function GetItemPos(oListBox as Object, sItem as String)
+Dim ItemList()
+Dim MaxIndex as Integer
+Dim i as Integer
+ ItemList() = oListBox.StringItemList()
+ MaxIndex = Ubound(ItemList())
+ For i = 0 To MaxIndex
+ If sItem = ItemList(i) Then
+ GetItemPos() = i
+ Exit Function
+ End If
+ Next i
+ GetItemPos() = -1
+End Function
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tools/Misc.xba b/test/user-template/user/basic/Tools/Misc.xba
new file mode 100644
index 000000000000..faa0f802f6c6
--- /dev/null
+++ b/test/user-template/user/basic/Tools/Misc.xba
@@ -0,0 +1,821 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Misc" script:language="StarBasic">REM ***** BASIC *****
+
+Const SBSHARE = 0
+Const SBUSER = 1
+Dim Taskindex as Integer
+Dim oResSrv as Object
+
+Sub Main()
+Dim PropList(3,1)&apos; as String
+ PropList(0,0) = &quot;URL&quot;
+ PropList(0,1) = &quot;sdbc:odbc:Erica_Test_Unicode&quot;
+ PropList(1,0) = &quot;User&quot;
+ PropList(1,1) = &quot;extra&quot;
+ PropList(2,0) = &quot;Password&quot;
+ PropList(2,1) = &quot;extra&quot;
+ PropList(3,0) = &quot;IsPasswordRequired&quot;
+ PropList(3,1) = True
+End Sub
+
+
+Function RegisterNewDataSource(DSName as String, PropertyList(), Optional DriverProperties() as New com.sun.star.beans.PropertyValue)
+Dim oDataSource as Object
+Dim oDBContext as Object
+Dim oPropInfo as Object
+Dim i as Integer
+ oDBContext = createUnoService(&quot;com.sun.star.sdb.DatabaseContext&quot;)
+ oDataSource = createUnoService(&quot;com.sun.star.sdb.DataSource&quot;)
+ For i = 0 To Ubound(PropertyList(), 1)
+ sPropName = PropertyList(i,0)
+ sPropValue = PropertyList(i,1)
+ oDataSource.SetPropertyValue(sPropName,sPropValue)
+ Next i
+ If Not IsMissing(DriverProperties()) Then
+ oDataSource.Info() = DriverProperties()
+ End If
+ oDBContext.RegisterObject(DSName, oDataSource)
+ RegisterNewDataSource () = oDataSource
+End Function
+
+
+&apos; Connects to a registered Database
+Function ConnecttoDatabase(DSName as String, UserID as String, Password as String, Optional Propertylist(), Optional DriverProperties() as New com.sun.star.beans.PropertyValue)
+Dim oDBContext as Object
+Dim oDBSource as Object
+&apos; On Local Error Goto NOCONNECTION
+ oDBContext = CreateUnoService(&quot;com.sun.star.sdb.DatabaseContext&quot;)
+ If oDBContext.HasbyName(DSName) Then
+ oDBSource = oDBContext.GetByName(DSName)
+ ConnectToDatabase = oDBSource.GetConnection(UserID, Password)
+ Else
+ If Not IsMissing(Namelist()) Then
+ If Not IsMissing(DriverProperties()) Then
+ RegisterNewDataSource(DSName, PropertyList(), DriverProperties())
+ Else
+ RegisterNewDataSource(DSName, PropertyList())
+ End If
+ oDBSource = oDBContext.GetByName(DSName)
+ ConnectToDatabase = oDBSource.GetConnection(UserID, Password)
+ Else
+ Msgbox(&quot;DataSource &quot; &amp; DSName &amp; &quot; is not registered&quot; , 16, GetProductname())
+ ConnectToDatabase() = NULL
+ End If
+ End If
+NOCONNECTION:
+ If Err &lt;&gt; 0 Then
+ Msgbox(Error$, 16, GetProductName())
+ Resume LEAVESUB
+ LEAVESUB:
+ End If
+End Function
+
+
+Function GetStarOfficeLocale() as New com.sun.star.lang.Locale
+Dim aLocLocale As New com.sun.star.lang.Locale
+Dim sLocale as String
+Dim sLocaleList(1)
+Dim oMasterKey
+ oMasterKey = GetRegistryKeyContent(&quot;org.openoffice.Setup/L10N/&quot;)
+ sLocale = oMasterKey.getByName(&quot;ooLocale&quot;)
+ sLocaleList() = ArrayoutofString(sLocale, &quot;-&quot;)
+ aLocLocale.Language = sLocaleList(0)
+ If Ubound(sLocaleList()) &gt; 0 Then
+ aLocLocale.Country = sLocaleList(1)
+ End If
+ GetStarOfficeLocale() = aLocLocale
+End Function
+
+
+Function GetRegistryKeyContent(sKeyName as string, Optional bforUpdate as Boolean)
+Dim oConfigProvider as Object
+Dim aNodePath(0) as new com.sun.star.beans.PropertyValue
+ oConfigProvider = createUnoService(&quot;com.sun.star.configuration.ConfigurationProvider&quot;)
+ aNodePath(0).Name = &quot;nodepath&quot;
+ aNodePath(0).Value = sKeyName
+ If IsMissing(bForUpdate) Then
+ GetRegistryKeyContent() = oConfigProvider.createInstanceWithArguments(&quot;com.sun.star.configuration.ConfigurationAccess&quot;, aNodePath())
+ Else
+ If bForUpdate Then
+ GetRegistryKeyContent() = oConfigProvider.createInstanceWithArguments(&quot;com.sun.star.configuration.ConfigurationUpdateAccess&quot;, aNodePath())
+ Else
+ GetRegistryKeyContent() = oConfigProvider.createInstanceWithArguments(&quot;com.sun.star.configuration.ConfigurationAccess&quot;, aNodePath())
+ End If
+ End If
+End Function
+
+
+Function GetProductname() as String
+Dim oProdNameAccess as Object
+Dim sVersion as String
+Dim sProdName as String
+ oProdNameAccess = GetRegistryKeyContent(&quot;org.openoffice.Setup/Product&quot;)
+ sProdName = oProdNameAccess.getByName(&quot;ooName&quot;)
+ sVersion = oProdNameAccess.getByName(&quot;ooSetupVersion&quot;)
+ GetProductName = sProdName &amp; sVersion
+End Function
+
+
+&apos; Opens a Document, checks beforehand, wether it has to be loaded
+&apos; or wether it is already on the desktop.
+&apos; If the parameter bDisposable is set to False then then returned document
+&apos; should not be disposed afterwards, because it is already opened.
+Function OpenDocument(DocPath as String, Args(), Optional bDisposable as Boolean)
+Dim oComponents as Object
+Dim oComponent as Object
+ &apos; Search if one of the active Components ist the one that you search for
+ oComponents = StarDesktop.Components.CreateEnumeration
+ While oComponents.HasmoreElements
+ oComponent = oComponents.NextElement
+ If hasUnoInterfaces(oComponent,&quot;com.sun.star.frame.XModel&quot;) then
+ If UCase(oComponent.URL) = UCase(DocPath) then
+ OpenDocument() = oComponent
+ If Not IsMissing(bDisposable) Then
+ bDisposable = False
+ End If
+ Exit Function
+ End If
+ End If
+ Wend
+ If Not IsMissing(bDisposable) Then
+ bDisposable = True
+ End If
+ OpenDocument() = StarDesktop.LoadComponentFromURL(DocPath,&quot;_default&quot;,0,Args())
+End Function
+
+
+Function TaskonDesktop(DocPath as String) as Boolean
+Dim oComponents as Object
+Dim oComponent as Object
+ &apos; Search if one of the active Components ist the one that you search for
+ oComponents = StarDesktop.Components.CreateEnumeration
+ While oComponents.HasmoreElements
+ oComponent = oComponents.NextElement
+ If hasUnoInterfaces(oComponent,&quot;com.sun.star.frame.XModel&quot;) then
+ If UCase(oComponent.URL) = UCase(DocPath) then
+ TaskonDesktop = True
+ Exit Function
+ End If
+ End If
+ Wend
+ TaskonDesktop = False
+End Function
+
+
+&apos; Retrieves a FileName out of a StarOffice-Document
+Function RetrieveFileName(LocDoc as Object)
+Dim LocURL as String
+Dim LocURLArray() as String
+Dim MaxArrIndex as integer
+
+ LocURL = LocDoc.Url
+ LocURLArray() = ArrayoutofString(LocURL,&quot;/&quot;,MaxArrIndex)
+ RetrieveFileName = LocURLArray(MaxArrIndex)
+End Function
+
+
+&apos; Gets a special configured PathSetting
+Function GetPathSettings(sPathType as String, Optional bshowall as Boolean, Optional ListIndex as integer) as String
+Dim oSettings, oPathSettings as Object
+Dim sPath as String
+Dim PathList() as String
+Dim MaxIndex as Integer
+Dim oPS as Object
+
+ oPS = createUnoService(&quot;com.sun.star.util.PathSettings&quot;)
+
+ If Not IsMissing(bShowall) Then
+ If bShowAll Then
+ ShowPropertyValues(oPS)
+ Exit Function
+ End If
+ End If
+ sPath = oPS.getPropertyValue(sPathType)
+ If Not IsMissing(ListIndex) Then
+ &apos; Share and User-Directory
+ If Instr(1,sPath,&quot;;&quot;) &lt;&gt; 0 Then
+ PathList = ArrayoutofString(sPath,&quot;;&quot;, MaxIndex)
+ If ListIndex &lt;= MaxIndex Then
+ sPath = PathList(ListIndex)
+ Else
+ Msgbox(&quot;String Cannot be analyzed!&quot; &amp; sPath , 16, GetProductName())
+ End If
+ End If
+ End If
+ If Instr(1, sPath, &quot;;&quot;) = 0 Then
+ GetPathSettings = ConvertToUrl(sPath)
+ Else
+ GetPathSettings = sPath
+ End If
+
+End Function
+
+
+
+&apos; Gets the fully qualified path to a subdirectory of the
+&apos; Template Directory, e. g. with the parameter &quot;wizard/bitmap&quot;
+&apos; The parameter must be passed over in Url-scription
+&apos; The return-Value is in Urlscription
+Function GetOfficeSubPath(sOfficePath as String, ByVal sSubDir as String)
+Dim sOfficeString as String
+Dim sOfficeList() as String
+Dim sOfficeDir as String
+Dim sBigDir as String
+Dim i as Integer
+Dim MaxIndex as Integer
+Dim oUcb as Object
+ oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ sOfficeString = GetPathSettings(sOfficePath)
+ If Right(sSubDir,1) &lt;&gt; &quot;/&quot; Then
+ sSubDir = sSubDir &amp; &quot;/&quot;
+ End If
+ sOfficeList() = ArrayoutofString(sOfficeString,&quot;;&quot;, MaxIndex)
+ For i = 0 To MaxIndex
+ sOfficeDir = ConvertToUrl(sOfficeList(i))
+ If Right(sOfficeDir,1) &lt;&gt; &quot;/&quot; Then
+ sOfficeDir = sOfficeDir &amp; &quot;/&quot;
+ End If
+ sBigDir = sOfficeDir &amp; sSubDir
+ If oUcb.Exists(sBigDir) Then
+ GetOfficeSubPath() = sBigDir
+ Exit Function
+ End If
+ Next i
+ ShowNoOfficePathError()
+ GetOfficeSubPath = &quot;&quot;
+End Function
+
+
+Sub ShowNoOfficePathError()
+Dim ProductName as String
+Dim sError as String
+Dim bResObjectexists as Boolean
+Dim oLocResSrv as Object
+ bResObjectexists = not IsNull(oResSrv)
+ If bResObjectexists Then
+ oLocResSrv = oResSrv
+ End If
+ If InitResources(&quot;Tools&quot;, &quot;com&quot;) Then
+ ProductName = GetProductName()
+ sError = GetResText(1006)
+ sError = ReplaceString(sError, ProductName, &quot;%PRODUCTNAME&quot;)
+ sError = ReplaceString(sError, chr(13), &quot;&lt;BR&gt;&quot;)
+ MsgBox(sError, 16, ProductName)
+ End If
+ If bResObjectexists Then
+ oResSrv = oLocResSrv
+ End If
+
+End Sub
+
+
+Function InitResources(Description, ShortDescription as String) as boolean
+Dim xResource as Object
+Dim aArgs(0) as String
+ On Error Goto ErrorOcurred
+ aArgs(0) = ShortDescription
+ oConfigProvider = createUnoService(&quot;com.sun.star.configuration.ConfigurationProvider&quot;)
+ xResource = getProcessServiceManager().createInstanceWithArguments( &quot;org.libreoffice.resource.ResourceIndexAccess&quot;, aArgs() )
+ If (IsNull(xResource)) then
+ InitResources = FALSE
+ MsgBox(&quot;could not initialize ResourceIndexAccess&quot;)
+ Else
+ InitResources = TRUE
+ oResSrv = xResource.getByName( &quot;String&quot; )
+ End If
+ Exit Function
+ErrorOcurred:
+ Dim nSolarVer
+ InitResources = FALSE
+ nSolarVer = GetSolarVersion()
+ MsgBox(&quot;Resource file missing (&quot; &amp; ShortDescription &amp; trim(str(nSolarVer)) + &quot;*.res)&quot;, 16, GetProductName())
+ Resume CLERROR
+ CLERROR:
+End Function
+
+
+Function GetResText( nID as integer ) As string
+ On Error Goto ErrorOcurred
+ If Not IsNull(oResSrv) Then
+ GetResText = oResSrv.getByIndex( nID )
+ Else
+ GetResText = &quot;&quot;
+ End If
+ Exit Function
+ErrorOcurred:
+ GetResText = &quot;&quot;
+ MsgBox(&quot;Resource with ID =&quot; + str( nID ) + &quot; not found!&quot;, 16, GetProductName())
+ Resume CLERROR
+ CLERROR:
+End Function
+
+
+Function CutPathView(sDocUrl as String, Optional PathLen as Integer)
+Dim sViewPath as String
+Dim FileName as String
+Dim iFileLen as Integer
+ sViewPath = ConvertfromURL(sDocURL)
+ iViewPathLen = Len(sViewPath)
+ If iViewPathLen &gt; 60 Then
+ FileName = FileNameoutofPath(sViewPath, &quot;/&quot;)
+ iFileLen = Len(FileName)
+ If iFileLen &lt; 44 Then
+ sViewPath = Left(sViewPath,57-iFileLen-10) &amp; &quot;...&quot; &amp; Right(sViewPath,iFileLen + 10)
+ Else
+ sViewPath = Left(sViewPath,27) &amp; &quot; ... &quot; &amp; Right(sViewPath,28)
+ End If
+ End If
+ CutPathView = sViewPath
+End Function
+
+
+&apos; Deletes the content of all cells that are softformatted according
+&apos; to the &apos;InputStyleName&apos;
+Sub DeleteInputCells(oSheet as Object, InputStyleName as String)
+Dim oRanges as Object
+Dim oRange as Object
+ oRanges = oSheet.CellFormatRanges.createEnumeration
+ While oRanges.hasMoreElements
+ oRange = oRanges.NextElement
+ If Instr(1,oRange.CellStyle, InputStyleName) &lt;&gt; 0 Then
+ Call ReplaceRangeValues(oRange, &quot;&quot;)
+ End If
+ Wend
+End Sub
+
+
+&apos; Inserts a certain String to all cells of a Range that ist passed over
+&apos; either as an object or as the RangeName
+Sub ChangeValueofRange(oSheet as Object, Range, ReplaceValue, Optional StyleName as String)
+Dim oCellRange as Object
+ If Vartype(Range) = 8 Then
+ &apos; Get the Range out of the Rangename
+ oCellRange = oSheet.GetCellRangeByName(Range)
+ Else
+ &apos; The range is passed over as an object
+ Set oCellRange = Range
+ End If
+ If IsMissing(StyleName) Then
+ ReplaceRangeValues(oCellRange, ReplaceValue)
+ Else
+ If Instr(1,oCellRange.CellStyle,StyleName) Then
+ ReplaceRangeValues(oCellRange, ReplaceValue)
+ End If
+ End If
+End Sub
+
+
+Sub ReplaceRangeValues(oRange as Object, ReplaceValue)
+Dim oRangeAddress as Object
+Dim ColCount as Integer
+Dim RowCount as Integer
+Dim i as Integer
+ oRangeAddress = oRange.RangeAddress
+ ColCount = oRangeAddress.EndColumn - oRangeAddress.StartColumn
+ RowCount = oRangeAddress.EndRow - oRangeAddress.StartRow
+ Dim FillArray(RowCount) as Variant
+ Dim sLine(ColCount) as Variant
+ For i = 0 To ColCount
+ sLine(i) = ReplaceValue
+ Next i
+ For i = 0 To RowCount
+ FillArray(i) = sLine()
+ Next i
+ oRange.DataArray = FillArray()
+End Sub
+
+
+&apos; Returns the Value of the first cell of a Range
+Function GetValueofCellbyName(oSheet as Object, sCellName as String)
+Dim oCell as Object
+ oCell = GetCellByName(oSheet, sCellName)
+ GetValueofCellbyName = oCell.Value
+End Function
+
+
+Function DuplicateRow(oSheet as Object, RangeName as String)
+Dim oRange as Object
+Dim oCell as Object
+Dim oCellAddress as New com.sun.star.table.CellAddress
+Dim oRangeAddress as New com.sun.star.table.CellRangeAddress
+ oRange = oSheet.GetCellRangeByName(RangeName)
+ oRangeAddress = oRange.RangeAddress
+ oCell = oSheet.GetCellByPosition(oRangeAddress.StartColumn,oRangeAddress.StartRow)
+ oCellAddress = oCell.CellAddress
+ oSheet.Rows.InsertByIndex(oCellAddress.Row,1)
+ oRangeAddress = oRange.RangeAddress
+ oSheet.CopyRange(oCellAddress, oRangeAddress)
+ DuplicateRow = oRangeAddress.StartRow-1
+End Function
+
+
+&apos; Returns the String of the first cell of a Range
+Function GetStringofCellbyName(oSheet as Object, sCellName as String)
+Dim oCell as Object
+ oCell = GetCellByName(oSheet, sCellName)
+ GetStringofCellbyName = oCell.String
+End Function
+
+
+&apos; Returns a named Cell
+Function GetCellByName(oSheet as Object, sCellName as String) as Object
+Dim oCellRange as Object
+Dim oCellAddress as Object
+ oCellRange = oSheet.GetCellRangeByName(sCellName)
+ oCellAddress = oCellRange.RangeAddress
+ GetCellByName = oSheet.GetCellByPosition(oCellAddress.StartColumn,oCellAddress.StartRow)
+End Function
+
+
+&apos; Changes the numeric Value of a cell by transmitting the String of the numeric Value
+Sub ChangeCellValue(oCell as Object, ValueString as String)
+Dim CellValue
+ oCell.Formula = &quot;=Value(&quot; &amp; &quot;&quot;&quot;&quot; &amp; ValueString &amp; &quot;&quot;&quot;&quot; &amp; &quot;)&quot;
+ CellValue = oCell.Value
+ oCell.Formula = &quot;&quot;
+ oCell.Value = CellValue
+End Sub
+
+
+Function GetDocumentType(oDocument)
+ On Local Error GoTo NODOCUMENTTYPE
+&apos; ShowSupportedServiceNames(oDocument)
+ If oDocument.SupportsService(&quot;com.sun.star.sheet.SpreadsheetDocument&quot;) Then
+ GetDocumentType() = &quot;scalc&quot;
+ ElseIf oDocument.SupportsService(&quot;com.sun.star.text.TextDocument&quot;) Then
+ GetDocumentType() = &quot;swriter&quot;
+ ElseIf oDocument.SupportsService(&quot;com.sun.star.drawing.DrawingDocument&quot;) Then
+ GetDocumentType() = &quot;sdraw&quot;
+ ElseIf oDocument.SupportsService(&quot;com.sun.star.presentation.PresentationDocument&quot;) Then
+ GetDocumentType() = &quot;simpress&quot;
+ ElseIf oDocument.SupportsService(&quot;com.sun.star.formula.FormulaProperties&quot;) Then
+ GetDocumentType() = &quot;smath&quot;
+ End If
+ NODOCUMENTTYPE:
+ If Err &lt;&gt; 0 Then
+ GetDocumentType = &quot;&quot;
+ Resume GOON
+ GOON:
+ End If
+End Function
+
+
+Function GetNumberFormatType(oDocFormats, oFormatObject as Object) as Integer
+Dim ThisFormatKey as Long
+Dim oObjectFormat as Object
+ On Local Error Goto NOFORMAT
+ ThisFormatKey = oFormatObject.NumberFormat
+ oObjectFormat = oDocFormats.GetByKey(ThisFormatKey)
+ GetNumberFormatType = oObjectFormat.Type
+ NOFORMAT:
+ If Err &lt;&gt; 0 Then
+ Msgbox(&quot;Numberformat of Object is not available!&quot;, 16, GetProductName())
+ GetNumberFormatType = 0
+ GOTO NOERROR
+ End If
+ NOERROR:
+ On Local Error Goto 0
+End Function
+
+
+Sub ProtectSheets(Optional oSheets as Object)
+Dim i as Integer
+Dim oDocSheets as Object
+ If IsMissing(oSheets) Then
+ oDocSheets = StarDesktop.CurrentFrame.Controller.Model.Sheets
+ Else
+ Set oDocSheets = oSheets
+ End If
+
+ For i = 0 To oDocSheets.Count-1
+ oDocSheets(i).Protect(&quot;&quot;)
+ Next i
+End Sub
+
+
+Sub UnprotectSheets(Optional oSheets as Object)
+Dim i as Integer
+Dim oDocSheets as Object
+ If IsMissing(oSheets) Then
+ oDocSheets = StarDesktop.CurrentFrame.Controller.Model.Sheets
+ Else
+ Set oDocSheets = oSheets
+ End If
+
+ For i = 0 To oDocSheets.Count-1
+ oDocSheets(i).Unprotect(&quot;&quot;)
+ Next i
+End Sub
+
+
+Function GetRowIndex(oSheet as Object, RowName as String)
+Dim oRange as Object
+ oRange = oSheet.GetCellRangeByName(RowName)
+ GetRowIndex = oRange.RangeAddress.StartRow
+End Function
+
+
+Function GetColumnIndex(oSheet as Object, ColName as String)
+Dim oRange as Object
+ oRange = oSheet.GetCellRangeByName(ColName)
+ GetColumnIndex = oRange.RangeAddress.StartColumn
+End Function
+
+
+Function CopySheetbyName(oSheets as Object, OldName as String, NewName as String, DestPos as Integer) as Object
+Dim oSheet as Object
+Dim Count as Integer
+Dim BasicSheetName as String
+
+ BasicSheetName = NewName
+ &apos; Copy the last table. Assumption: The last table is the template
+ On Local Error Goto RENAMESHEET
+ oSheets.CopybyName(OldName, NewName, DestPos)
+
+RENAMESHEET:
+ oSheet = oSheets(DestPos)
+ If Err &lt;&gt; 0 Then
+ &apos; Test if renaming failed
+ Count = 2
+ Do While oSheet.Name &lt;&gt; NewName
+ NewName = BasicSheetName &amp; &quot;_&quot; &amp; Count
+ oSheet.Name = NewName
+ Count = Count + 1
+ Loop
+ Resume CL_ERROR
+CL_ERROR:
+ End If
+ CopySheetbyName = oSheet
+End Function
+
+
+&apos; Dis-or enables a Window and adjusts the mousepointer accordingly
+Sub ToggleWindow(bDoEnable as Boolean)
+Dim oWindow as Object
+ oWindow = StarDesktop.CurrentFrame.ComponentWindow
+ oWindow.Enable = bDoEnable
+End Sub
+
+
+Function CheckNewSheetname(oSheets as Object, Sheetname as String, Optional oLocale) as String
+Dim nStartFlags as Long
+Dim nContFlags as Long
+Dim oCharService as Object
+Dim iSheetNameLength as Integer
+Dim iResultPos as Integer
+Dim WrongChar as String
+Dim oResult as Object
+ nStartFlags = com.sun.star.i18n.KParseTokens.ANY_LETTER_OR_NUMBER + com.sun.star.i18n.KParseTokens.ASC_UNDERSCORE
+ nContFlags = nStartFlags
+ oCharService = CreateUnoService(&quot;com.sun.star.i18n.CharacterClassification&quot;)
+ iSheetNameLength = Len(SheetName)
+ If IsMissing(oLocale) Then
+ oLocale = ThisComponent.CharLocale
+ End If
+ Do
+ oResult =oCharService.parsePredefinedToken(com.sun.star.i18n.KParseType.IDENTNAME, SheetName, 0, oLocale, nStartFlags, &quot;&quot;, nContFlags, &quot; &quot;)
+ iResultPos = oResult.EndPos
+ If iResultPos &lt; iSheetNameLength Then
+ WrongChar = Mid(SheetName, iResultPos+1,1)
+ SheetName = ReplaceString(SheetName,&quot;_&quot;, WrongChar)
+ End If
+ Loop Until iResultPos = iSheetNameLength
+ CheckNewSheetname = SheetName
+End Function
+
+
+Sub AddNewSheetName(oSheets as Object, ByVal SheetName as String)
+Dim Count as Integer
+Dim bSheetIsThere as Boolean
+Dim iSheetNameLength as Integer
+ iSheetNameLength = Len(SheetName)
+ Count = 2
+ Do
+ bSheetIsThere = oSheets.HasByName(SheetName)
+ If bSheetIsThere Then
+ SheetName = Right(SheetName,iSheetNameLength) &amp; &quot;_&quot; &amp; Count
+ Count = Count + 1
+ End If
+ Loop Until Not bSheetIsThere
+ AddNewSheetname = SheetName
+End Sub
+
+
+Function GetSheetIndex(oSheets, sName) as Integer
+Dim i as Integer
+ For i = 0 To oSheets.Count-1
+ If oSheets(i).Name = sName Then
+ GetSheetIndex = i
+ exit Function
+ End If
+ Next i
+ GetSheetIndex = -1
+End Function
+
+
+Function GetLastUsedRow(oSheet as Object) as Integer
+Dim oCell As Object
+Dim oCursor As Object
+Dim aAddress As Variant
+ oCell = oSheet.GetCellbyPosition(0, 0)
+ oCursor = oSheet.createCursorByRange(oCell)
+ oCursor.GotoEndOfUsedArea(True)
+ aAddress = oCursor.RangeAddress
+ GetLastUsedRow = aAddress.EndRow
+End Function
+
+
+&apos; Note To set a one lined frame you have to set the inner width to 0
+&apos; In the API all Units that refer to pt-Heights are &quot;1/100mm&quot;
+&apos; The convert factor from 1pt to 1/100 mm is approximately 35
+Function ModifyBorderLineWidth(ByVal oStyleBorder, iInnerLineWidth as Integer, iOuterLineWidth as Integer)
+Dim aBorder as New com.sun.star.table.BorderLine
+ aBorder = oStyleBorder
+ aBorder.InnerLineWidth = iInnerLineWidth
+ aBorder.OuterLineWidth = iOuterLineWidth
+ ModifyBorderLineWidth = aBorder
+End Function
+
+
+Sub AttachBasicMacroToEvent(oDocument as Object, EventName as String, SubPath as String)
+Dim PropValue(1) as new com.sun.star.beans.PropertyValue
+ PropValue(0).Name = &quot;EventType&quot;
+ PropValue(0).Value = &quot;StarBasic&quot;
+ PropValue(1).Name = &quot;Script&quot;
+ PropValue(1).Value = &quot;macro:///&quot; &amp; SubPath
+ oDocument.Events.ReplaceByName(EventName, PropValue())
+End Sub
+
+
+
+Function ModifyPropertyValue(oContent() as New com.sun.star.beans.PropertyValue, TargetProperties() as New com.sun.star.beans.PropertyValue)
+Dim MaxIndex as Integer
+Dim i as Integer
+Dim a as Integer
+ MaxIndex = Ubound(oContent())
+ bDoReplace = False
+ For i = 0 To MaxIndex
+ a = GetPropertyValueIndex(oContent(i).Name, TargetProperties())
+ If a &lt;&gt; -1 Then
+ If Vartype(TargetProperties(a).Value) &lt;&gt; 9 Then
+ If TargetProperties(a).Value &lt;&gt; oContent(i).Value Then
+ oContent(i).Value = TargetProperties(a).Value
+ bDoReplace = True
+ End If
+ Else
+ If Not EqualUnoObjects(TargetProperties(a).Value, oContent(i).Value) Then
+ oContent(i).Value = TargetProperties(a).Value
+ bDoReplace = True
+ End If
+ End If
+ End If
+ Next i
+ ModifyPropertyValue() = bDoReplace
+End Function
+
+
+Function GetPropertyValueIndex(SearchName as String, TargetProperties() as New com.sun.star.beans.PropertyValue ) as Integer
+Dim i as Integer
+ For i = 0 To Ubound(TargetProperties())
+ If Searchname = TargetProperties(i).Name Then
+ GetPropertyValueIndex = i
+ Exit Function
+ End If
+ Next i
+ GetPropertyValueIndex() = -1
+End Function
+
+
+Sub DispatchSlot(SlotID as Integer)
+Dim oArg() as new com.sun.star.beans.PropertyValue
+Dim oUrl as new com.sun.star.util.URL
+Dim oTrans as Object
+Dim oDisp as Object
+ oTrans = createUNOService(&quot;com.sun.star.util.URLTransformer&quot;)
+ oUrl.Complete = &quot;slot:&quot; &amp; CStr(SlotID)
+ oTrans.parsestrict(oUrl)
+ oDisp = StarDesktop.ActiveFrame.queryDispatch(oUrl, &quot;_self&quot;, 0)
+ oDisp.dispatch(oUrl, oArg())
+End Sub
+
+
+&apos;returns the type of the office application
+&apos;FatOffice = 0, WebTop = 1
+&apos;This routine has to be changed if the Product Name is being changed!
+Function IsFatOffice() As Boolean
+ If sProductname = &quot;&quot; Then
+ sProductname = GetProductname()
+ End If
+ IsFatOffice = TRUE
+ &apos;The following line has to include the current productname
+ If Instr(1,sProductname,&quot;WebTop&quot;,1) &lt;&gt; 0 Then
+ IsFatOffice = FALSE
+ End If
+End Function
+
+
+Function GetLocale(sLanguage as String, sCountry as String)
+Dim oLocale as New com.sun.star.lang.Locale
+ oLocale.Language = sLanguage
+ oLocale.Country = sCountry
+ GetLocale = oLocale
+End Function
+
+
+Sub ToggleDesignMode(oDocument as Object)
+Dim aSwitchMode as new com.sun.star.util.URL
+ aSwitchMode.Complete = &quot;.uno:SwitchControlDesignMode&quot;
+ aTransformer = createUnoService(&quot;com.sun.star.util.URLTransformer&quot;)
+ aTransformer.parseStrict(aSwitchMode)
+ oFrame = oDocument.currentController.Frame
+ oDispatch = oFrame.queryDispatch(aSwitchMode, oFrame.Name, 63)
+ Dim aEmptyArgs() as New com.sun.star.bean.PropertyValue
+ oDispatch.dispatch(aSwitchMode, aEmptyArgs())
+ Erase aSwitchMode
+End Sub
+
+
+Function isHighContrast(oPeer as Object)
+ Dim UIColor as Long
+ Dim myRed as Integer
+ Dim myGreen as Integer
+ Dim myBlue as Integer
+ Dim myLuminance as Double
+
+ UIColor = oPeer.getProperty( &quot;DisplayBackgroundColor&quot; )
+ myRed = Red (UIColor)
+ myGreen = Green (UIColor)
+ myBlue = Blue (UIColor)
+ myLuminance = (( myBlue*28 + myGreen*151 + myRed*77 ) / 256 )
+ isHighContrast = false
+ If myLuminance &lt;= 25 Then isHighContrast = true
+End Function
+
+
+Function CreateNewDocument(sType as String, Optional sAddMsg as String) as Object
+Dim NoArgs() as new com.sun.star.beans.PropertyValue
+Dim oDocument as Object
+Dim sUrl as String
+Dim ErrMsg as String
+ On Local Error Goto NOMODULEINSTALLED
+ sUrl = &quot;private:factory/&quot; &amp; sType
+ oDocument = StarDesktop.LoadComponentFromURL(sUrl,&quot;_default&quot;,0, NoArgs())
+NOMODULEINSTALLED:
+ If (Err &lt;&gt; 0) OR IsNull(oDocument) Then
+ If InitResources(&quot;&quot;, &quot;com&quot;) Then
+ Select Case sType
+ Case &quot;swriter&quot;
+ ErrMsg = GetResText(1001)
+ Case &quot;scalc&quot;
+ ErrMsg = GetResText(1002)
+ Case &quot;simpress&quot;
+ ErrMsg = GetResText(1003)
+ Case &quot;sdraw&quot;
+ ErrMsg = GetResText(1004)
+ Case &quot;smath&quot;
+ ErrMsg = GetResText(1005)
+ Case Else
+ ErrMsg = &quot;Invalid Document Type!&quot;
+ End Select
+ ErrMsg = ReplaceString(ErrMsg, chr(13), &quot;&lt;BR&gt;&quot;)
+ If Not IsMissing(sAddMsg) Then
+ ErrMsg = ErrMsg &amp; chr(13) &amp; sAddMsg
+ End If
+ Msgbox(ErrMsg, 48, GetProductName())
+ End If
+ If Err &lt;&gt; 0 Then
+ Resume GOON
+ End If
+ End If
+GOON:
+ CreateNewDocument = oDocument
+End Function
+
+
+&apos; This Sub has been used in order to ensure that after disposing a document
+&apos; from the backing window it is returned to the backing window, so the
+&apos; office won&apos;t be closed
+Sub DisposeDocument(oDocument as Object)
+Dim dispatcher as Object
+Dim parser as Object
+Dim disp as Object
+Dim url as new com.sun.star.util.URL
+Dim NoArgs() as New com.sun.star.beans.PropertyValue
+Dim oFrame as Object
+ If Not IsNull(oDocument) Then
+ oDocument.setModified(false)
+ parser = createUnoService(&quot;com.sun.star.util.URLTransformer&quot;)
+ url.Complete = &quot;.uno:CloseDoc&quot;
+ parser.parseStrict(url)
+ oFrame = oDocument.CurrentController.Frame
+ disp = oFrame.queryDispatch(url,&quot;_self&quot;, com.sun.star.util.SearchFlags.NORM_WORD_ONLY)
+ disp.dispatch(url, NoArgs())
+ End If
+End Sub
+
+&apos;Function to calculate if the year is a leap year
+Function CalIsLeapYear(ByVal iYear as Integer) as Boolean
+ CalIsLeapYear = ((iYear Mod 4 = 0) And ((iYear Mod 100 &lt;&gt; 0) Or (iYear Mod 400 = 0)))
+End Function
+</script:module>
diff --git a/test/user-template/user/basic/Tools/ModuleControls.xba b/test/user-template/user/basic/Tools/ModuleControls.xba
new file mode 100644
index 000000000000..dc5ef02a5b7f
--- /dev/null
+++ b/test/user-template/user/basic/Tools/ModuleControls.xba
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="ModuleControls" script:language="StarBasic">Option Explicit
+
+Public DlgOverwrite as Object
+Public Const SBOVERWRITEUNDEFINED as Integer = 0
+Public Const SBOVERWRITECANCEL as Integer = 2
+Public Const SBOVERWRITEQUERY as Integer = 7
+Public Const SBOVERWRITEALWAYS as Integer = 6
+Public Const SBOVERWRITENEVER as Integer = 8
+Public iGeneralOverwrite as Integer
+
+
+
+&apos; Accepts the name of a control and returns the respective control model as object
+&apos; The Container can either be a whole document or a specific sheet of a Calc-Document
+&apos; &apos;CName&apos; is the name of the Control
+Function getControlModel(oContainer as Object, CName as String)
+Dim aForm, oForms as Object
+Dim i as Integer
+ oForms = oContainer.Drawpage.GetForms
+ For i = 0 To oForms.Count-1
+ aForm = oForms.GetbyIndex(i)
+ If aForm.HasByName(CName) Then
+ GetControlModel = aForm.GetbyName(CName)
+ Exit Function
+ End If
+ Next i
+ Msgbox(&quot;No Control with the name &apos;&quot; &amp; CName &amp; &quot;&apos; found&quot; , 16, GetProductName())
+End Function
+
+
+
+&apos; Gets the Shape of a Control( e. g. to reset the size or Position of the control
+&apos; Parameters:
+&apos; The &apos;oContainer&apos; is the Document or a specific sheet of a Calc - Document
+&apos; &apos;CName&apos; is the Name of the Control
+Function GetControlShape(oContainer as Object,CName as String)
+Dim i as integer
+Dim aShape as Object
+ For i = 0 to oContainer.DrawPage.Count-1
+ aShape = oContainer.DrawPage(i)
+ If HasUnoInterfaces(aShape, &quot;com.sun.star.drawing.XControlShape&quot;) then
+ If ashape.Control.Name = CName then
+ GetControlShape = aShape
+ exit Function
+ End If
+ End If
+ Next
+End Function
+
+
+&apos; Returns the View of a Control
+&apos; Parameters:
+&apos; The &apos;oContainer&apos; is the Document or a specific sheet of a Calc - Document
+&apos; The &apos;oController&apos; is always directly attached to the Document
+&apos; &apos;CName&apos; is the Name of the Control
+Function getControlView(oContainer , oController as Object, CName as String) as Object
+Dim aForm, oForms, oControlModel as Object
+Dim i as Integer
+ oForms = oContainer.DrawPage.Forms
+ For i = 0 To oForms.Count-1
+ aForm = oforms.GetbyIndex(i)
+ If aForm.HasByName(CName) Then
+ oControlModel = aForm.GetbyName(CName)
+ GetControlView = oController.GetControl(oControlModel)
+ Exit Function
+ End If
+ Next i
+ Msgbox(&quot;No Control with the name &apos;&quot; &amp; CName &amp; &quot;&apos; found&quot; , 16, GetProductName())
+End Function
+
+
+
+&apos; Parameters:
+&apos; The &apos;oContainer&apos; is the Document or a specific sheet of a Calc - Document
+&apos; &apos;CName&apos; is the Name of the Control
+Function DisposeControl(oContainer as Object, CName as String) as Boolean
+Dim aControl as Object
+
+ aControl = GetControlModel(oContainer,CName)
+ If not IsNull(aControl) Then
+ aControl.Dispose()
+ DisposeControl = True
+ Else
+ DisposeControl = False
+ End If
+End Function
+
+
+&apos; Returns a sequence of a group of controls like option buttons or checkboxes
+&apos; The &apos;oContainer&apos; is the Document or a specific sheet of a Calc - Document
+&apos; &apos;sGroupName&apos; is the Name of the Controlgroup
+Function GetControlGroupModel(oContainer as Object, sGroupName as String )
+Dim aForm, oForms As Object
+Dim aControlModel() As Object
+Dim i as integer
+
+ oForms = oContainer.DrawPage.Forms
+ For i = 0 To oForms.Count-1
+ aForm = oForms(i)
+ If aForm.HasbyName(sGroupName) Then
+ aForm.GetGroupbyName(sGroupName,aControlModel)
+ GetControlGroupModel = aControlModel
+ Exit Function
+ End If
+ Next i
+ Msgbox(&quot;No Controlgroup with the name &apos;&quot; &amp; sGroupName &amp; &quot;&apos; found&quot; , 16, GetProductName())
+End Function
+
+
+&apos; Returns the Referencevalue of a group of e.g. option buttons or check boxes
+&apos; &apos;oControlGroup&apos; is a sequence of the Control objects
+Function GetRefValue(oControlGroup() as Object)
+Dim i as Integer
+ For i = 0 To Ubound(oControlGroup())
+&apos; oControlGroup(i).DefaultState = oControlGroup(i).State
+ If oControlGroup(i).State Then
+ GetRefValue = oControlGroup(i).RefValue
+ exit Function
+ End If
+ Next
+ GetRefValue() = -1
+End Function
+
+
+Function GetRefValueOfControlGroup(oContainer as Object, GroupName as String)
+Dim oOptGroup() as Object
+Dim iRef as Integer
+ oOptGroup() = GetControlGroupModel(oContainer, GroupName)
+ iRef = GetRefValue(oOptGroup())
+ GetRefValueofControlGroup = iRef
+End Function
+
+
+Function GetOptionGroupValue(oContainer as Object, OptGroupName as String) as Boolean
+Dim oRulesOptions() as Object
+ oRulesOptions() = GetControlGroupModel(oContainer, OptGroupName)
+ GetOptionGroupValue = oRulesOptions(0).State
+End Function
+
+
+
+Function WriteOptValueToCell(oSheet as Object, OptGroupName as String, iCol as Integer, iRow as Integer) as Boolean
+Dim bOptValue as Boolean
+Dim oCell as Object
+ bOptValue = GetOptionGroupValue(oSheet, OptGroupName)
+ oCell = oSheet.GetCellByPosition(iCol, iRow)
+ oCell.SetValue(ABS(CInt(bOptValue)))
+ WriteOptValueToCell() = bOptValue
+End Function
+
+
+Function LoadDialog(Libname as String, DialogName as String, Optional oLibContainer)
+Dim oLib as Object
+Dim oLibDialog as Object
+Dim oRuntimeDialog as Object
+ If IsMissing(oLibContainer ) then
+ oLibContainer = DialogLibraries
+ End If
+ oLibContainer.LoadLibrary(LibName)
+ oLib = oLibContainer.GetByName(Libname)
+ oLibDialog = oLib.GetByName(DialogName)
+ oRuntimeDialog = CreateUnoDialog(oLibDialog)
+ LoadDialog() = oRuntimeDialog
+End Function
+
+
+Sub GetFolderName(oRefModel as Object)
+Dim oFolderDialog as Object
+Dim iAccept as Integer
+Dim sPath as String
+Dim InitPath as String
+Dim RefControlName as String
+Dim oUcb as object
+ &apos;Note: The following services have to be called in the following order
+ &apos; because otherwise Basic does not remove the FileDialog Service
+ oFolderDialog = CreateUnoService(&quot;com.sun.star.ui.dialogs.FolderPicker&quot;)
+ oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ InitPath = ConvertToUrl(oRefModel.Text)
+ If InitPath = &quot;&quot; Then
+ InitPath = GetPathSettings(&quot;Work&quot;)
+ End If
+ If oUcb.Exists(InitPath) Then
+ oFolderDialog.SetDisplayDirectory(InitPath)
+ End If
+ iAccept = oFolderDialog.Execute()
+ If iAccept = 1 Then
+ sPath = oFolderDialog.GetDirectory()
+ If oUcb.Exists(sPath) Then
+ oRefModel.Text = ConvertFromUrl(sPath)
+ End If
+ End If
+End Sub
+
+
+Sub GetFileName(oRefModel as Object, Filternames())
+Dim oFileDialog as Object
+Dim iAccept as Integer
+Dim sPath as String
+Dim InitPath as String
+Dim RefControlName as String
+Dim oUcb as object
+&apos;Dim ListAny(0)
+ &apos;Note: The following services have to be called in the following order
+ &apos; because otherwise Basic does not remove the FileDialog Service
+ oFileDialog = CreateUnoService(&quot;com.sun.star.ui.dialogs.FilePicker&quot;)
+ oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ &apos;ListAny(0) = com.sun.star.ui.dialogs.TemplateDescription.FILEOPEN_SIMPLE
+ &apos;oFileDialog.initialize(ListAny())
+ AddFiltersToDialog(FilterNames(), oFileDialog)
+ InitPath = ConvertToUrl(oRefModel.Text)
+ If InitPath = &quot;&quot; Then
+ InitPath = GetPathSettings(&quot;Work&quot;)
+ End If
+ If oUcb.Exists(InitPath) Then
+ oFileDialog.SetDisplayDirectory(InitPath)
+ End If
+ iAccept = oFileDialog.Execute()
+ If iAccept = 1 Then
+ sPath = oFileDialog.Files(0)
+ If oUcb.Exists(sPath) Then
+ oRefModel.Text = ConvertFromUrl(sPath)
+ End If
+ End If
+ oFileDialog.Dispose()
+End Sub
+
+
+Function StoreDocument(oDocument as Object, FilterNames() as String, DefaultName as String, DisplayDirectory as String, Optional iAddProcedure as Integer) as String
+Dim NoArgs() as New com.sun.star.beans.PropertyValue
+Dim oStoreProperties(0) as New com.sun.star.beans.PropertyValue
+Dim oStoreDialog as Object
+Dim iAccept as Integer
+Dim sPath as String
+Dim ListAny(0) as Long
+Dim UIFilterName as String
+Dim FilterName as String
+Dim FilterIndex as Integer
+ ListAny(0) = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION_PASSWORD
+ oStoreDialog = CreateUnoService(&quot;com.sun.star.ui.dialogs.FilePicker&quot;)
+ oStoreDialog.Initialize(ListAny())
+ AddFiltersToDialog(FilterNames(), oStoreDialog)
+ oStoreDialog.SetDisplayDirectory(DisplayDirectory)
+ oStoreDialog.SetDefaultName(DefaultName)
+ oStoreDialog.setValue(com.sun.star.ui.dialogs.ExtendedFilePickerElementIds.CHECKBOX_AUTOEXTENSION,0, true)
+
+ iAccept = oStoreDialog.Execute()
+ If iAccept = 1 Then
+ sPath = oStoreDialog.Files(0)
+ UIFilterName = oStoreDialog.GetCurrentFilter()
+ FilterIndex = IndexInArray(UIFilterName, FilterNames())
+ FilterName = FilterNames(FilterIndex,2)
+ If Not IsMissing(iAddProcedure) Then
+ Select Case iAddProcedure
+ Case 1
+ CommitLastDocumentChanges(sPath)
+ End Select
+ End If
+ On Local Error Goto NOSAVING
+ If FilterName = &quot;&quot; Then
+ &apos; Todo: Catch the case that a document that has to be overwritten is writeportected (e.g. it is open)
+ oDocument.StoreAsUrl(sPath, NoArgs())
+ Else
+ oStoreProperties(0).Name = &quot;FilterName&quot;
+ oStoreProperties(0).Value = FilterName
+ oDocument.StoreAsUrl(sPath, oStoreProperties())
+ End If
+ End If
+ oStoreDialog.dispose()
+ StoreDocument() = sPath
+ Exit Function
+NOSAVING:
+ If Err &lt;&gt; 0 Then
+&apos; Msgbox(&quot;Document cannot be saved under &apos;&quot; &amp; ConvertFromUrl(sPath) &amp; &quot;&apos;&quot;, 48, GetProductName())
+ sPath = &quot;&quot;
+ oStoreDialog.dispose()
+ Resume NOERROR
+ NOERROR:
+ End If
+End Function
+
+
+Sub AddFiltersToDialog(FilterNames() as String, oDialog as Object)
+Dim i as Integer
+Dim MaxIndex as Integer
+Dim ViewFiltername as String
+Dim oProdNameAccess as Object
+Dim sProdName as String
+ oProdNameAccess = GetRegistryKeyContent(&quot;org.openoffice.Setup/Product&quot;)
+ sProdName = oProdNameAccess.getByName(&quot;ooName&quot;)
+ MaxIndex = Ubound(FilterNames(), 1)
+ For i = 0 To MaxIndex
+ Filternames(i,0) = ReplaceString(Filternames(i,0), sProdName,&quot;%productname%&quot;)
+ oDialog.AppendFilter(FilterNames(i,0), FilterNames(i,1))
+ Next i
+ oDialog.SetCurrentFilter(FilterNames(0,0)
+End Sub
+
+
+Sub SwitchMousePointer(oWindowPeer as Object, bDoEnable as Boolean)
+Dim oWindowPointer as Object
+ oWindowPointer = CreateUnoService(&quot;com.sun.star.awt.Pointer&quot;)
+ If bDoEnable Then
+ oWindowPointer.SetType(com.sun.star.awt.SystemPointer.ARROW)
+ Else
+ oWindowPointer.SetType(com.sun.star.awt.SystemPointer.WAIT)
+ End If
+ oWindowPeer.SetPointer(oWindowPointer)
+End Sub
+
+
+Sub ShowOverwriteAllDialog(FilePath as String, sTitle as String)
+Dim QueryString as String
+Dim LocRetValue as Integer
+Dim lblYes as String
+Dim lblNo as String
+Dim lblYesToAll as String
+Dim lblCancel as String
+Dim OverwriteModel as Object
+ If InitResources(GetProductName(), &quot;dbw&quot;) Then
+ QueryString = GetResText(507)
+ QueryString = ReplaceString(QueryString, ConvertFromUrl(FilePath), &quot;&lt;PATH&gt;&quot;)
+ If Len(QueryString) &gt; 190 Then
+ QueryString = DeleteStr(QueryString, &quot;.&lt;BR&gt;&quot;)
+ End If
+ QueryString = ReplaceString(QueryString, chr(13), &quot;&lt;BR&gt;&quot;)
+ lblYes = GetResText(508)
+ lblYesToAll = GetResText(509)
+ lblNo = GetResText(510)
+ lblCancel = GetResText(511)
+ DlgOverwrite = LoadDialog(&quot;Tools&quot;, &quot;DlgOverwriteAll&quot;)
+ DlgOverwrite.Title = sTitle
+ OverwriteModel = DlgOverwrite.Model
+ OverwriteModel.cmdYes.Label = lblYes
+ OverwriteModel.cmdYesToAll.Label = lblYesToAll
+ OverwriteModel.cmdNo.Label = lblNo
+ OverwriteModel.cmdCancel.Label = lblCancel
+ OverwriteModel.lblQueryforSave.Label = QueryString
+ OverwriteModel.cmdNo.DefaultButton = True
+ DlgOverwrite.GetControl(&quot;cmdNo&quot;).SetFocus()
+ iGeneralOverwrite = 999
+ LocRetValue = DlgOverwrite.execute()
+ If iGeneralOverwrite = 999 Then
+ iGeneralOverwrite = SBOVERWRITECANCEL
+ End If
+ DlgOverwrite.dispose()
+ Else
+ iGeneralOverwrite = SBOVERWRITECANCEL
+ End If
+End Sub
+
+
+Sub SetOVERWRITEToQuery()
+ iGeneralOverwrite = SBOVERWRITEQUERY
+ DlgOverwrite.EndExecute()
+End Sub
+
+
+Sub SetOVERWRITEToAlways()
+ iGeneralOverwrite = SBOVERWRITEALWAYS
+ DlgOverwrite.EndExecute()
+End Sub
+
+
+Sub SetOVERWRITEToNever()
+ iGeneralOverwrite = SBOVERWRITENEVER
+ DlgOverwrite.EndExecute()
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tools/Strings.xba b/test/user-template/user/basic/Tools/Strings.xba
new file mode 100644
index 000000000000..a2a8907e02f2
--- /dev/null
+++ b/test/user-template/user/basic/Tools/Strings.xba
@@ -0,0 +1,452 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Strings" script:language="StarBasic">Option Explicit
+Public sProductname as String
+
+
+&apos; Deletes out of a String &apos;BigString&apos; all possible PartStrings, that are summed up
+&apos; in the Array &apos;ElimArray&apos;
+Function ElimChar(ByVal BigString as String, ElimArray() as String)
+Dim i% ,n%
+ For i = 0 to Ubound(ElimArray)
+ BigString = DeleteStr(BigString,ElimArray(i)
+ Next
+ ElimChar = BigString
+End Function
+
+
+&apos; Deletes out of a String &apos;BigString&apos; a possible Partstring &apos;CompString&apos;
+Function DeleteStr(ByVal BigString,CompString as String) as String
+Dim i%, CompLen%, BigLen%
+ CompLen = Len(CompString)
+ i = 1
+ While i &lt;&gt; 0
+ i = Instr(i, BigString,CompString)
+ If i &lt;&gt; 0 then
+ BigLen = Len(BigString)
+ BigString = Mid(BigString,1,i-1) + Mid(BigString,i+CompLen,BigLen-i+1-CompLen)
+ End If
+ Wend
+ DeleteStr = BigString
+End Function
+
+
+&apos; Finds a PartString, that is framed by the Strings &apos;Prestring&apos; and &apos;PostString&apos;
+Function FindPartString(BigString, PreString, PostString as String, SearchPos as Integer) as String
+Dim StartPos%, EndPos%
+Dim BigLen%, PreLen%, PostLen%
+ StartPos = Instr(SearchPos,BigString,PreString)
+ If StartPos &lt;&gt; 0 Then
+ PreLen = Len(PreString)
+ EndPos = Instr(StartPos + PreLen,BigString,PostString)
+ If EndPos &lt;&gt; 0 Then
+ BigLen = Len(BigString)
+ PostLen = Len(PostString)
+ FindPartString = Mid(BigString,StartPos + PreLen, EndPos - (StartPos + PreLen))
+ SearchPos = EndPos + PostLen
+ Else
+ Msgbox(&quot;No final tag for &apos;&quot; &amp; PreString &amp; &quot;&apos; existing&quot;, 16, GetProductName())
+ FindPartString = &quot;&quot;
+ End If
+ Else
+ FindPartString = &quot;&quot;
+ End If
+End Function
+
+
+&apos; Note iCompare = 0 (Binary comparison)
+&apos; iCompare = 1 (Text comparison)
+Function PartStringInArray(BigArray(), SearchString as String, iCompare as Integer) as Integer
+Dim MaxIndex as Integer
+Dim i as Integer
+ MaxIndex = Ubound(BigArray())
+ For i = 0 To MaxIndex
+ If Instr(1, BigArray(i), SearchString, iCompare) &lt;&gt; 0 Then
+ PartStringInArray() = i
+ Exit Function
+ End If
+ Next i
+ PartStringInArray() = -1
+End Function
+
+
+&apos; Deletes the String &apos;SmallString&apos; out of the String &apos;BigString&apos;
+&apos; in case SmallString&apos;s Position in BigString is right at the end
+Function RTrimStr(ByVal BigString, SmallString as String) as String
+Dim SmallLen as Integer
+Dim BigLen as Integer
+ SmallLen = Len(SmallString)
+ BigLen = Len(BigString)
+ If Instr(1,BigString, SmallString) &lt;&gt; 0 Then
+ If Mid(BigString,BigLen + 1 - SmallLen, SmallLen) = SmallString Then
+ RTrimStr = Mid(BigString,1,BigLen - SmallLen)
+ Else
+ RTrimStr = BigString
+ End If
+ Else
+ RTrimStr = BigString
+ End If
+End Function
+
+
+&apos; Deletes the Char &apos;CompChar&apos; out of the String &apos;BigString&apos;
+&apos; in case CompChar&apos;s Position in BigString is right at the beginning
+Function LTRimChar(ByVal BigString as String,CompChar as String) as String
+Dim BigLen as integer
+ BigLen = Len(BigString)
+ If BigLen &gt; 1 Then
+ If Left(BigString,1) = CompChar then
+ BigString = Mid(BigString,2,BigLen-1)
+ End If
+ ElseIf BigLen = 1 Then
+ BigString = &quot;&quot;
+ End If
+ LTrimChar = BigString
+End Function
+
+
+&apos; Retrieves an Array out of a String.
+&apos; The fields of the Array are separated by the parameter &apos;Separator&apos;, that is contained
+&apos; in the Array
+&apos; The Array MaxIndex delivers the highest Index of this Array
+Function ArrayOutOfString(BigString, Separator as String, Optional MaxIndex as Integer)
+Dim LocList() as String
+ LocList=Split(BigString,Separator)
+
+ If not isMissing(MaxIndex) then maxIndex=ubound(LocList())
+
+ ArrayOutOfString=LocList
+End Function
+
+
+&apos; Deletes all fieldvalues in one-dimensional Array
+Sub ClearArray(BigArray)
+Dim i as integer
+ For i = Lbound(BigArray()) to Ubound(BigArray())
+ BigArray(i) = &quot;&quot;
+ Next
+End Sub
+
+
+&apos; Deletes all fieldvalues in a multidimensional Array
+Sub ClearMultiDimArray(BigArray,DimCount as integer)
+Dim n%, m%
+ For n = Lbound(BigArray(),1) to Ubound(BigArray(),1)
+ For m = 0 to Dimcount - 1
+ BigArray(n,m) = &quot;&quot;
+ Next m
+ Next n
+End Sub
+
+
+&apos; Checks if a Field (LocField) is already defined in an Array
+&apos; Returns &apos;True&apos; or &apos;False&apos;
+Function FieldinArray(LocArray(), MaxIndex as integer, LocField as String) As Boolean
+Dim i as integer
+ For i = Lbound(LocArray()) to MaxIndex
+ If Ucase(LocArray(i)) = Ucase(LocField) Then
+ FieldInArray = True
+ Exit Function
+ End if
+ Next
+ FieldInArray = False
+End Function
+
+
+&apos; Checks if a Field (LocField) is already defined in an Array
+&apos; Returns &apos;True&apos; or &apos;False&apos;
+Function FieldinList(LocField, BigList()) As Boolean
+Dim i as integer
+ For i = Lbound(BigList()) to Ubound(BigList())
+ If LocField = BigList(i) Then
+ FieldInList = True
+ Exit Function
+ End if
+ Next
+ FieldInList = False
+End Function
+
+
+&apos; Retrieves the Index of the delivered String &apos;SearchString&apos; in
+&apos; the Array LocList()&apos;
+Function IndexinArray(SearchString as String, LocList()) as Integer
+Dim i as integer
+ For i = Lbound(LocList(),1) to Ubound(LocList(),1)
+ If Ucase(LocList(i,0)) = Ucase(SearchString) Then
+ IndexinArray = i
+ Exit Function
+ End if
+ Next
+ IndexinArray = -1
+End Function
+
+
+Sub MultiArrayInListbox(oDialog as Object, ListboxName as String, ValList(), iDim as Integer)
+Dim oListbox as Object
+Dim i as integer
+Dim a as Integer
+ a = 0
+ oListbox = oDialog.GetControl(ListboxName)
+ oListbox.RemoveItems(0, oListbox.GetItemCount)
+ For i = 0 to Ubound(ValList(), 1)
+ If ValList(i) &lt;&gt; &quot;&quot; Then
+ oListbox.AddItem(ValList(i, iDim-1), a)
+ a = a + 1
+ End If
+ Next
+End Sub
+
+
+&apos; Searches for a String in a two-dimensional Array by querying all Searchindexex of the second dimension
+&apos; and delivers the specific String of the ReturnIndex in the second dimension of the Searchlist()
+Function StringInMultiArray(SearchList(), SearchString as String, SearchIndex as Integer, ReturnIndex as Integer, Optional MaxIndex as Integer) as String
+Dim i as integer
+Dim CurFieldString as String
+ If IsMissing(MaxIndex) Then
+ MaxIndex = Ubound(SearchList(),1)
+ End If
+ For i = Lbound(SearchList()) to MaxIndex
+ CurFieldString = SearchList(i,SearchIndex)
+ If Ucase(CurFieldString) = Ucase(SearchString) Then
+ StringInMultiArray() = SearchList(i,ReturnIndex)
+ Exit Function
+ End if
+ Next
+ StringInMultiArray() = &quot;&quot;
+End Function
+
+
+&apos; Searches for a Value in multidimensial Array by querying all Searchindices of the passed dimension
+&apos; and delivers the Index where it is found.
+Function GetIndexInMultiArray(SearchList(), SearchValue, SearchIndex as Integer) as Integer
+Dim i as integer
+Dim MaxIndex as Integer
+Dim CurFieldValue
+ MaxIndex = Ubound(SearchList(),1)
+ For i = Lbound(SearchList()) to MaxIndex
+ CurFieldValue = SearchList(i,SearchIndex)
+ If CurFieldValue = SearchValue Then
+ GetIndexInMultiArray() = i
+ Exit Function
+ End if
+ Next
+ GetIndexInMultiArray() = -1
+End Function
+
+
+&apos; Searches for a Value in multidimensial Array by querying all Searchindices of the passed dimension
+&apos; and delivers the Index where the Searchvalue is found as a part string
+Function GetIndexForPartStringinMultiArray(SearchList(), SearchValue, SearchIndex as Integer) as Integer
+Dim i as integer
+Dim MaxIndex as Integer
+Dim CurFieldValue
+ MaxIndex = Ubound(SearchList(),1)
+ For i = Lbound(SearchList()) to MaxIndex
+ CurFieldValue = SearchList(i,SearchIndex)
+ If Instr(CurFieldValue, SearchValue) &gt; 0 Then
+ GetIndexForPartStringinMultiArray() = i
+ Exit Function
+ End if
+ Next
+ GetIndexForPartStringinMultiArray = -1
+End Function
+
+
+Function ArrayfromMultiArray(MultiArray as String, iDim as Integer)
+Dim MaxIndex as Integer
+Dim i as Integer
+ MaxIndex = Ubound(MultiArray())
+ Dim ResultArray(MaxIndex) as String
+ For i = 0 To MaxIndex
+ ResultArray(i) = MultiArray(i,iDim)
+ Next i
+ ArrayfromMultiArray() = ResultArray()
+End Function
+
+
+&apos; Replaces the string &quot;OldReplace&quot; through the String &quot;NewReplace&quot; in the String
+&apos; &apos;BigString&apos;
+Function ReplaceString(ByVal Bigstring, NewReplace, OldReplace as String) as String
+ ReplaceString=join(split(BigString,OldReplace),NewReplace)
+End Function
+
+
+&apos; Retrieves the second value for a next to &apos;SearchString&apos; in
+&apos; a two-dimensional string-Array
+Function FindSecondValue(SearchString as String, TwoDimList() as String ) as String
+Dim i as Integer
+ For i = 0 To Ubound(TwoDimList,1)
+ If Ucase(SearchString) = Ucase(TwoDimList(i,0)) Then
+ FindSecondValue = TwoDimList(i,1)
+ Exit For
+ End If
+ Next
+End Function
+
+
+&apos; raises a base to a certain power
+Function Power(Basis as Double, Exponent as Double) as Double
+ Power = Exp(Exponent*Log(Basis))
+End Function
+
+
+&apos; rounds a Real to a given Number of Decimals
+Function Round(BaseValue as Double, Decimals as Integer) as Double
+Dim Multiplicator as Long
+Dim DblValue#, RoundValue#
+ Multiplicator = Power(10,Decimals)
+ RoundValue = Int(BaseValue * Multiplicator)
+ Round = RoundValue/Multiplicator
+End Function
+
+
+&apos;Retrieves the mere filename out of a whole path
+Function FileNameoutofPath(ByVal Path as String, Optional Separator as String) as String
+Dim i as Integer
+Dim SepList() as String
+ If IsMissing(Separator) Then
+ Path = ConvertFromUrl(Path)
+ Separator = GetPathSeparator()
+ End If
+ SepList() = ArrayoutofString(Path, Separator,i)
+ FileNameoutofPath = SepList(i)
+End Function
+
+
+Function GetFileNameExtension(ByVal FileName as String)
+Dim MaxIndex as Integer
+Dim SepList() as String
+ SepList() = ArrayoutofString(FileName,&quot;.&quot;, MaxIndex)
+ GetFileNameExtension = SepList(MaxIndex)
+End Function
+
+
+Function GetFileNameWithoutExtension(ByVal FileName as String, Optional Separator as String)
+Dim MaxIndex as Integer
+Dim SepList() as String
+ If not IsMissing(Separator) Then
+ FileName = FileNameoutofPath(FileName, Separator)
+ End If
+ SepList() = ArrayoutofString(FileName,&quot;.&quot;, MaxIndex)
+ GetFileNameWithoutExtension = RTrimStr(FileName, &quot;.&quot; &amp; SepList(MaxIndex)
+End Function
+
+
+Function DirectoryNameoutofPath(sPath as String, Separator as String) as String
+Dim LocFileName as String
+ LocFileName = FileNameoutofPath(sPath, Separator)
+ DirectoryNameoutofPath = RTrimStr(sPath, Separator &amp; LocFileName)
+End Function
+
+
+Function CountCharsinString(BigString, LocChar as String, ByVal StartPos as Integer) as Integer
+Dim LocCount%, LocPos%
+ LocCount = 0
+ Do
+ LocPos = Instr(StartPos,BigString,LocChar)
+ If LocPos &lt;&gt; 0 Then
+ LocCount = LocCount + 1
+ StartPos = LocPos+1
+ End If
+ Loop until LocPos = 0
+ CountCharsInString = LocCount
+End Function
+
+
+Function BubbleSortList(ByVal SortList(),optional sort2ndValue as Boolean)
+&apos;This function bubble sorts an array of maximum 2 dimensions.
+&apos;The default sorting order is the first dimension
+&apos;Only if sort2ndValue is True the second dimension is the relevant for the sorting order
+ Dim s as Integer
+ Dim t as Integer
+ Dim i as Integer
+ Dim k as Integer
+ Dim dimensions as Integer
+ Dim sortvalue as Integer
+ Dim DisplayDummy
+ dimensions = 2
+
+On Local Error Goto No2ndDim
+ k = Ubound(SortList(),2)
+ No2ndDim:
+ If Err &lt;&gt; 0 Then dimensions = 1
+
+ i = Ubound(SortList(),1)
+ If ismissing(sort2ndValue) then
+ sortvalue = 0
+ else
+ sortvalue = 1
+ end if
+
+ For s = 1 to i - 1
+ For t = 0 to i-s
+ Select Case dimensions
+ Case 1
+ If SortList(t) &gt; SortList(t+1) Then
+ DisplayDummy = SortList(t)
+ SortList(t) = SortList(t+1)
+ SortList(t+1) = DisplayDummy
+ End If
+ Case 2
+ If SortList(t,sortvalue) &gt; SortList(t+1,sortvalue) Then
+ For k = 0 to UBound(SortList(),2)
+ DisplayDummy = SortList(t,k)
+ SortList(t,k) = SortList(t+1,k)
+ SortList(t+1,k) = DisplayDummy
+ Next k
+ End If
+ End Select
+ Next t
+ Next s
+ BubbleSortList = SortList()
+End Function
+
+
+Function GetValueoutofList(SearchValue, BigList(), iDim as Integer, Optional ValueIndex)
+Dim i as Integer
+Dim MaxIndex as Integer
+ MaxIndex = Ubound(BigList(),1)
+ For i = 0 To MaxIndex
+ If BigList(i,0) = SearchValue Then
+ If Not IsMissing(ValueIndex) Then
+ ValueIndex = i
+ End If
+ GetValueOutOfList() = BigList(i,iDim)
+ End If
+ Next i
+End Function
+
+
+Function AddListtoList(ByVal FirstArray(), ByVal SecondArray(), Optional StartIndex)
+Dim n as Integer
+Dim m as Integer
+Dim MaxIndex as Integer
+ MaxIndex = Ubound(FirstArray()) + Ubound(SecondArray()) + 1
+ If MaxIndex &gt; -1 Then
+ Dim ResultArray(MaxIndex)
+ For m = 0 To Ubound(FirstArray())
+ ResultArray(m) = FirstArray(m)
+ Next m
+ For n = 0 To Ubound(SecondArray())
+ ResultArray(m) = SecondArray(n)
+ m = m + 1
+ Next n
+ AddListToList() = ResultArray()
+ Else
+ Dim NullArray()
+ AddListToList() = NullArray()
+ End If
+End Function
+
+
+Function CheckDouble(DoubleString as String)
+On Local Error Goto WRONGDATATYPE
+ CheckDouble() = CDbl(DoubleString)
+WRONGDATATYPE:
+ If Err &lt;&gt; 0 Then
+ CheckDouble() = 0
+ Resume NoErr:
+ End If
+NOERR:
+End Function
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tools/UCB.xba b/test/user-template/user/basic/Tools/UCB.xba
new file mode 100644
index 000000000000..524afe60c4d9
--- /dev/null
+++ b/test/user-template/user/basic/Tools/UCB.xba
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="UCB" script:language="StarBasic">&apos;Option explicit
+Public oDocument
+Public oDocInfo as object
+Const SBMAXDIRCOUNT = 10
+Dim CurDirMaxCount as Integer
+Dim sDirArray(SBMAXDIRCOUNT-1) as String
+Dim DirIndex As Integer
+Dim iDirCount as Integer
+Public bInterruptSearch as Boolean
+Public NoArgs()as New com.sun.star.beans.PropertyValue
+
+Sub Main()
+Dim LocsfileContent(0) as String
+ LocsfileContent(0) = &quot;*&quot;
+ ReadDirectories(&quot;file:///space&quot;, LocsfileContent(), True, False, false)
+End Sub
+
+&apos; ReadDirectories( sSourceDir, bRecursive, bCheckRealType, False, sFileContent(), sLocExtension)
+
+Function ReadDirectories(ByVal AnchorDir As String, bRecursive as Boolean, bcheckFileType as Boolean, bGetByTitle as Boolean, Optional sFileContent(), Optional sExtension as String)
+Dim i as integer
+Dim Status as Object
+Dim FileCountinDir as Integer
+Dim RealFileContent as String
+Dim FileName as string
+Dim oUcbObject as Object
+Dim DirContent()
+Dim CurIndex as Integer
+Dim MaxIndex as Integer
+Dim StartUbound as Integer
+Dim FileExtension as String
+ StartUbound = 5
+ MaxIndex = StartUBound
+ CurDirMaxCount = SBMAXDIRCOUNT
+Dim sFileArray(StartUbound,1) as String
+ On Local Error Goto FILESYSTEMPROBLEM:
+ CurIndex = -1
+ &apos; Todo: Is the last separator valid?
+ DirIndex = 0
+ sDirArray(iDirIndex) = AnchorDir
+ iDirCount = 1
+ oDocInfo = CreateUnoService(&quot;com.sun.star.document.DocumentProperties&quot;)
+ oUcbObject = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ If oUcbObject.Exists(AnchorDir) Then
+ Do
+ AnchorDir = sDirArray(DirIndex)
+ On Local Error Resume Next
+ DirContent() = oUcbObject.GetFolderContents(AnchorDir,True)
+ DirIndex = DirIndex + 1
+ On Local Error Goto 0
+ On Local Error Goto FILESYSTEMPROBLEM:
+ If Ubound(DirContent()) &lt;&gt; -1 Then
+ FileCountinDir = Ubound(DirContent())+ 1
+ For i = 0 to FilecountinDir -1
+ If bInterruptSearch = True Then
+ Exit Do
+ End If
+
+ Filename = DirContent(i)
+ If oUcbObject.IsFolder(FileName) Then
+ If brecursive Then
+ AddFoldertoList(FileName, DirIndex)
+ End If
+ Else
+ If bcheckFileType Then
+ RealFileContent = GetRealFileContent(FileName)
+ Else
+ RealFileContent = GetFileNameExtension(FileName)
+ End If
+ If RealFileContent &lt;&gt; &quot;&quot; Then
+ &apos; Retrieve the Index in the Array, where a Filename is positioned
+ If Not IsMissing(sFileContent()) Then
+ If (FieldinArray(sFileContent(), Ubound(sFileContent), RealFileContent)) Then
+ &apos; The extension of the current file passes the filter and is therefor admitted to the
+ &apos; fileList
+ If Not IsMissing(sExtension) Then
+ If sExtension &lt;&gt; &quot;&quot; Then
+ &apos; Consider that some Formats like old StarOffice Templates with the extension &quot;.vor&quot; can only be
+ &apos; precisely identified by their mimetype and their extension
+ FileExtension = GetFileNameExtension(FileName)
+ If FileExtension = sExtension Then
+ AddFileNameToList(sFileArray(), FileName, RealFileContent, bGetByTitle, CurIndex)
+ End If
+ Else
+ AddFileNameToList(sFileArray(), FileName, RealFileContent, bGetByTitle, CurIndex)
+ End If
+ Else
+ AddFileNameToList(sFileArray(), FileName, RealFileContent, bGetByTitle, CurIndex)
+ End If
+ End If
+ Else
+ AddFileNameToList(sFileArray(), FileName, RealFileContent, bGetByTitle, CurIndex)
+ End If
+ If CurIndex = MaxIndex Then
+ MaxIndex = MaxIndex + StartUbound
+ ReDim Preserve sFileArray(MaxIndex,1) as String
+ End If
+ End If
+ End If
+ Next i
+ End If
+ Loop Until DirIndex &gt;= iDirCount
+ If CurIndex &gt; -1 Then
+ ReDim Preserve sFileArray(CurIndex,1) as String
+ Else
+ ReDim sFileArray() as String
+ End If
+ Else
+ Msgbox(&quot;Directory &apos;&quot; &amp; ConvertFromUrl(AnchorDir) &amp; &quot;&apos; does not exist!&quot;, 16, GetProductName())
+ End If
+ ReadDirectories() = sFileArray()
+ Exit Function
+
+ FILESYSTEMPROBLEM:
+ Msgbox(&quot;Sorry, Filesystem Problem&quot;)
+ ReadDirectories() = sFileArray()
+ Resume LEAVEPROC
+ LEAVEPROC:
+End Function
+
+
+Sub AddFoldertoList(sDirURL as String, iDirIndex)
+ iDirCount = iDirCount + 1
+ If iDirCount = CurDirMaxCount Then
+ CurDirMaxCount = CurDirMaxCount + SBMAXDIRCOUNT
+ ReDim Preserve sDirArray(CurDirMaxCount) as String
+ End If
+ sDirArray(iDirCount-1) = sDirURL
+End Sub
+
+
+Sub AddFileNameToList(sFileArray(), FileName as String, FileContent as String, bGetByTitle as Boolean, CurIndex)
+Dim FileCount As Integer
+ CurIndex = CurIndex + 1
+ sFileArray(CurIndex,0) = FileName
+ If bGetByTitle Then
+ sFileArray(CurIndex,1) = RetrieveDocTitle(oDocInfo, FileName)
+ &apos; Add the documenttitles to the Filearray
+ Else
+ sFileArray(CurIndex,1) = FileContent
+ End If
+End Sub
+
+
+Function RetrieveDocTitle(oDocProps as Object, sFileName as String) As String
+Dim sDocTitle as String
+ On Local Error Goto NOFILE
+ oDocProps.loadFromMedium(sFileName, NoArgs())
+ sDocTitle = oDocProps.Title
+ NOFILE:
+ If Err &lt;&gt; 0 Then
+ RetrieveDocTitle = &quot;&quot;
+ RESUME CLR_ERROR
+ End If
+ CLR_ERROR:
+ If sDocTitle = &quot;&quot; Then
+ sDocTitle = GetFileNameWithoutExtension(sFilename, &quot;/&quot;)
+ End If
+ RetrieveDocTitle = sDocTitle
+End Function
+
+
+&apos; Retrieves The Filecontent of a Document by extracting the content
+&apos; from the Header of the document
+Function GetRealFileContent(FileName as String) As String
+ On Local Error Goto NOFILE
+ oTypeDetect = createUnoService(&quot;com.sun.star.document.TypeDetection&quot;)
+ GetRealFileContent = oTypeDetect.queryTypeByURL(FileName)
+ NOFILE:
+ If Err &lt;&gt; 0 Then
+ GetRealFileContent = &quot;&quot;
+ resume CLR_ERROR
+ End If
+ CLR_ERROR:
+End Function
+
+
+Function CopyRecursively(SourceFilePath as String, SourceStemDir as String, TargetStemDir as String)
+Dim TargetDir as String
+Dim TargetFile as String
+
+ TargetFile= ReplaceString(SourceFilePath, TargetStemDir, SourceStemDir)
+ TargetFileName = FileNameoutofPath(TargetFile,&quot;/&quot;)
+ TargetDir = DeleteStr(TargetFile, TargetFileName)
+ CreateFolder(TargetDir)
+ CopyRecursively() = TargetFile
+End Function
+
+
+&apos; Opens a help url referenced by a Help ID that is retrieved from the calling button tag
+Sub ShowHelperDialog(aEvent)
+Dim oSystemNode as Object
+Dim sSystem as String
+Dim oLanguageNode as Object
+Dim sLocale as String
+Dim sLocaleList() as String
+Dim sLanguage as String
+Dim sHelpUrl as String
+Dim sDocType as String
+ HelpID = aEvent.Source.Model.Tag
+ oLocDocument = StarDesktop.ActiveFrame.Controller.Model
+ sDocType = GetDocumentType(oLocDocument)
+ oSystemNode = GetRegistryKeyContent(&quot;org.openoffice.Office.Common/Help&quot;)
+ sSystem = oSystemNode.GetByName(&quot;System&quot;)
+ oLanguageNode = GetRegistryKeyContent(&quot;org.openoffice.Setup/L10N/&quot;)
+ sLocale = oLanguageNode.getByName(&quot;ooLocale&quot;)
+ sLocaleList() = ArrayoutofString(sLocale, &quot;-&quot;)
+ sLanguage = sLocaleList(0)
+ sHelpUrl = &quot;vnd.sun.star.help://&quot; &amp; sDocType &amp; &quot;/&quot; &amp; HelpID &amp; &quot;?Language=&quot; &amp; sLanguage &amp; &quot;&amp;System=&quot; &amp; sSystem
+ StarDesktop.LoadComponentfromUrl(sHelpUrl, &quot;OFFICE_HELP&quot;, 63, NoArgs())
+End Sub
+
+
+Sub SaveDataToFile(FilePath as String, DataList())
+Dim FileChannel as Integer
+Dim i as Integer
+Dim oFile as Object
+Dim oOutputStream as Object
+Dim oStreamString as Object
+Dim oUcb as Object
+Dim sCRLF as String
+
+ sCRLF = CHR(13) &amp; CHR(10)
+ oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ oOutputStream = createUnoService(&quot;com.sun.star.io.TextOutputStream&quot;)
+ If oUcb.Exists(FilePath) Then
+ oUcb.Kill(FilePath)
+ End If
+ oFile = oUcb.OpenFileReadWrite(FilePath)
+ oOutputStream.SetOutputStream(oFile.GetOutputStream)
+ For i = 0 To Ubound(DataList())
+ oOutputStream.WriteString(DataList(i) &amp; sCRLF)
+ Next i
+ oOutputStream.CloseOutput()
+End Sub
+
+
+Function LoadDataFromFile(FilePath as String, DataList()) as Boolean
+Dim oInputStream as Object
+Dim i as Integer
+Dim oUcb as Object
+Dim oFile as Object
+Dim MaxIndex as Integer
+ oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ If oUcb.Exists(FilePath) Then
+ MaxIndex = 10
+ oInputStream = createUnoService(&quot;com.sun.star.io.TextInputStream&quot;)
+ oFile = oUcb.OpenFileReadWrite(FilePath)
+ oInputStream.SetInputStream(oFile.GetInputStream)
+ i = -1
+ Redim Preserve DataList(MaxIndex)
+ While Not oInputStream.IsEOF
+ i = i + 1
+ If i &gt; MaxIndex Then
+ MaxIndex = MaxIndex + 10
+ Redim Preserve DataList(MaxIndex)
+ End If
+ DataList(i) = oInputStream.ReadLine
+ Wend
+ If i &gt; -1 And i &lt;&gt; MaxIndex Then
+ Redim Preserve DataList(i)
+ End If
+ LoadDataFromFile() = True
+ oInputStream.CloseInput()
+ Else
+ LoadDataFromFile() = False
+ End If
+End Function
+
+
+Function CreateFolder(sNewFolder) as Boolean
+Dim oUcb as Object
+ oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ On Local Error Goto NOSPACEONDRIVE
+ If Not oUcb.Exists(sNewFolder) Then
+ oUcb.CreateFolder(sNewFolder)
+ End If
+ CreateFolder = True
+NOSPACEONDRIVE:
+ If Err &lt;&gt; 0 Then
+ If InitResources(&quot;&quot;, &quot;dbw&quot;) Then
+ ErrMsg = GetResText(500)
+ ErrMsg = ReplaceString(ErrMsg, chr(13), &quot;&lt;BR&gt;&quot;)
+ ErrMsg = ReplaceString(ErrMsg, sNewFolder, &quot;%1&quot;)
+ Msgbox(ErrMsg, 48, GetProductName())
+ End If
+ CreateFolder = False
+ Resume GOON
+ End If
+GOON:
+End Function
+</script:module>
diff --git a/test/user-template/user/basic/Tools/dialog.xlb b/test/user-template/user/basic/Tools/dialog.xlb
new file mode 100644
index 000000000000..dc8dfbda2701
--- /dev/null
+++ b/test/user-template/user/basic/Tools/dialog.xlb
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Tools" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="DlgOverwriteAll"/>
+</library:library>
diff --git a/test/user-template/user/basic/Tools/script.xlb b/test/user-template/user/basic/Tools/script.xlb
new file mode 100644
index 000000000000..fe4d74d60332
--- /dev/null
+++ b/test/user-template/user/basic/Tools/script.xlb
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Tools" library:readonly="true" library:passwordprotected="false">
+ <library:element library:name="ModuleControls"/>
+ <library:element library:name="Strings"/>
+ <library:element library:name="Misc"/>
+ <library:element library:name="UCB"/>
+ <library:element library:name="Listbox"/>
+ <library:element library:name="Debug"/>
+</library:library> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tutorials/Functions.xba b/test/user-template/user/basic/Tutorials/Functions.xba
new file mode 100644
index 000000000000..c1b464acaf9d
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/Functions.xba
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Functions" script:language="StarBasic">REM ***** BASIC *****
+Dim DialogVisible As Boolean
+Dim TutorStep As Integer
+Dim TutorLastStep As Integer
+Dim myDialog As Object
+Dim myTutorial As Object
+Public TutorText() As String
+Dim documentTitle As String
+Dim exampleUse As Object
+Dim properties() As Object
+Dim docTYP As String
+&apos;public myWidth As Long
+Dim myHeight As Long
+Dim oTextField As Object
+Dim stepTitle As String
+Dim oOpenDialogFlag
+Dim imageStatus As String
+
+Sub LoadTutorialDialog(exampleToUse, documentTYP)
+ Init()
+ exampleUse = exampleToUse
+ TutorText() = exampleUse.LoadText()
+ properties() = exampleUse.GetProperties()
+ If properties(3).Value = &quot;True&quot; Then
+ Dim localisation(0) As new com.sun.star.beans.NamedValue
+ localisation(0).Name = &quot;Localisation&quot;
+ localisation(0).Value = properties()
+ myTutorial.execute(localisation())
+ Else
+ TutorStep = 0
+ TutorLastStep = 0
+ docTYP = documentTYP
+ InitAction()
+ ShowInfoMain()
+ DialogVisible = True
+ myDialog = LoadDialog(&quot;Tutorials&quot;,&quot;TutorialsDialog&quot;)
+
+ SetTutorialDocumentPosSize()
+
+ documentProps = ThisComponent.getDocumentProperties()
+ myDialog.Title = &quot;Tutorials - &quot; &amp; documentProps.Title
+ oTextField = myDialog.GetControl(&quot;myTextField&quot;)
+ oTextField.setVisible(False)
+
+ imageStatus = &quot;MIN&quot;
+ setMaxMinImage(imageStatus)
+
+ &apos;myWidth = myDialog.Size.Width
+ myHeight = myDialog.Size.Height
+
+ CheckForStepShowButtonStatus()
+ CheckForStepNextButtonStatus()
+ InitRoadMap()
+ SetVisibleTrue()
+ myDialog.model.myTextField.Label = stepTitle
+ myDialog.model.myText.Label = GetStepText()&apos;TutorText(TutorStep)
+
+
+ Do
+ wait 1000
+ Loop Until DialogVisible = False
+ If( oOpenDialogFlag = True) Then
+ Destroy()
+ TutorialOpen.TutorialOpenMain()
+ Else
+ Destroy()
+ End If
+ End If
+End Sub
+
+Sub setMaxMinImage(param As String)
+ On Local Error Goto NOIMAGE
+ oCommandButton = myDialog.GetControl(&quot;CommandButton&quot;)
+ templatePath = GetPathSettings(&quot;Template&quot;,false, 0)
+ Dim bitmapPath As String
+ iPos = InStr(templatePath,&quot;/&quot;)
+ If(iPos &gt; 0) Then
+ If(param = &quot;MAX&quot;) Then
+ bitmapPath = templatePath &amp; &quot;../wizard/bitmap/maximize.bmp&quot;
+ ElseIf(param = &quot;MIN&quot;) Then
+ bitmapPath = templatePath &amp; &quot;../wizard/bitmap/minimize.bmp&quot;
+ End If
+ Else
+ If(param = &quot;MAX&quot;) Then
+ bitmapPath = templatePath &amp; &quot;..\wizard\bitmap\maximize.bmp&quot;
+ ElseIf(param = &quot;MIN&quot;) Then
+ bitmapPath = templatePath &amp; &quot;..\wizard\bitmap\minimize.bmp&quot;
+ End If
+ End If
+ &apos;printdbgInfo oCommandButton.Model
+ oCommandButton.Model.ImageUrl = bitmapPath
+ Exit Sub
+ NOIMAGE:
+End Sub
+
+Sub SetTutorialDocumentPosSize()
+ activDesktopWindow = StarDesktop.activeFrame.ContainerWindow
+ If(activDesktopWindow.posSize.Height &lt; 550) Then
+ activDesktopWindow.setPosSize(0,0,0,550,8)
+ End If
+ If (activDesktopWindow.posSize.Width &lt; 750 ) Then
+ activDesktopWindow.setPosSize(0,0,750,0,4)
+ EndIf
+End Sub
+
+Sub InitRoadMap()
+ RoadMapMain(Functions, myDialog)
+ SetControlModelPosSize(0, 0, 85, 176)
+ SetControlModelText(&quot;Steps&quot;)
+
+ StepSize = Ubound(TutorText())
+ Dim ItemsArray(StepSize) as String
+ For i = 0 To StepSize
+ stepcontent = TutorText(i)
+ iPos = InStr(stepcontent,CHR(13))
+ ItemName = Left(stepcontent, iPos)
+ ItemsArray(i) = ItemName
+ Next i
+ InsertItemsLabels( ItemsArray())
+
+ For i = 1 To StepSize
+ SetItemEnabled( i, False)
+ Next i
+ SetItemEnabled( 0, True)
+End Sub
+
+Sub Destroy()
+ &apos;myDialog.dispose
+ wait 1000
+ ShowInfoDialog.DisposeIDialog()
+
+ &apos; HIER WIRD DAS DOCUMENT GESCHLOSSEN!!!!!!!! GPF
+ thisComponent.CurrentController.Frame.close(True)
+
+End Sub
+
+Sub Init
+ GlobalScope.BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ myTutorial = createUNOService(&quot;com.sun.star.wizards.tutorial.executer.CallTutorialFramework&quot;)
+ documentTitle = ThisComponent.getCurrentController.getFrame.Title
+End Sub
+
+Sub InitStep
+ udProps = ThisComponent.DocumentProperties.UserDefinedProperties
+ If udProps.PropertySetInfo.hasPropertyByName(&quot;CurrentStep&quot;) Then
+ TutorStep = udProps.CurrentStep
+ Else
+ udProps.addProperty(&quot;CurrentStep&quot;, 0, TutorStep)
+ End If
+End Sub
+
+Sub setStep
+ ThisComponent.DocumentProperties.UserDefinedProperties.CurrentStep = TutorStep
+End Sub
+
+Sub InitAction()
+ SetStepTitle()
+
+ Dim property(6) As new com.sun.star.beans.PropertyValue
+ property(0).Name = &quot;DocumentTYP&quot;
+ property(0).Value = docTYP
+ property(1).Name = &quot;MethodName&quot;
+ property(1).Value = &quot;setDelay&quot;
+ property(2).Name = &quot;Param&quot;
+ property(2).Value = 0 &apos;key insert speed (Millis)
+ property(3).Name = &quot;Param&quot;
+ property(3).Value = 4 &apos;mouse animate speed (Millis)
+ property(4).Name = &quot;Param&quot;
+ property(4).Value = 2000 &apos;after mouse animate sleep (Millis)
+ property(5).Name = &quot;Param&quot;
+ property(5).Value = 10 &apos;mouse scroll speed (Millis)
+ property(6).Name = &quot;Param&quot;
+ property(6).Value = -1 &apos;mouse speed (step)
+ myTutorial.setPropertyValues(property())
+End Sub
+
+Sub EndDialog
+ oOpenDialogFlag = False
+ If (myDialog.model.done.Label = &quot;Close&quot;) Then
+ TutorialCloseMain()
+ Else
+ DialogVisible = False
+ End If
+End Sub
+
+Sub NextStep
+ GotoStep(TutorStep + 1)
+End Sub
+
+Sub GotoStep(StepIndex)
+ If(StepIndex &lt;= Ubound(TutorText())) Then
+ TutorStep = StepIndex
+ If TutorStep &gt; TutorLastStep Then
+ TutorLastStep = TutorStep
+ End If
+ If(TutorStep = Ubound(TutorText())) Then
+ myDialog.model.next.enabled = False
+ myDialog.model.done.Label = &quot;Done&quot;
+ myDialog.model.show.Label = &quot;Tutorials&quot;
+ Else
+ myDialog.model.next.enabled = True
+ End If
+ SetStepTitle()
+ myDialog.model.myText.Label = GetStepText()
+ CheckForStepShowButtonStatus()
+ SetItemEnabled( TutorStep, True)
+ &apos;setStep()
+ End If
+End Sub
+
+Function GetStepText()
+ Dim tempText As String
+ tempText = TutorText(TutorStep)
+ iPos = InStr(tempText,CHR(13))
+ ResultString = Right(tempText, Len(tempText) - iPos - 1)
+ GetStepText() = ResultString
+End Function
+
+Sub ItemChange(CurrentItemID, SelectitemID)
+ GotoStep(SelectitemID)
+End Sub
+
+Sub SetDisableShowMeButton()
+ myDialog.model.show.enabled = False
+ TutorLastStep = TutorLastStep + 1
+End Sub
+
+Sub Minimize(aEvent)
+ ActionItemsTextField = myDialog.GetControl(&quot;ActionItemsLabel&quot;)
+ FixedLineVertikal = myDialog.GetControl(&quot;FixedLineVertikal&quot;)
+
+ If myDialog.Size.Height = 35 Then
+ myDialog.setPosSize(0,0,0,myHeight,8)
+ oTextField.setVisible(False)
+ ActionItemsTextField.setVisible(True)
+ FixedLineVertikal.setVisible(True)
+ RoadMap.SetVisibleRoadMap(True)
+ Else
+ myDialog.setPosSize(0,0,0,35,8)
+ rmSelectedIndex = RoadMap.GetSelectedIndex() + 1
+ gsTitle = GetStepTitle()
+ oTextField.setText(rmSelectedIndex &amp; &quot;. &quot; &amp; gsTitle)
+ oTextField.setVisible(True)
+ ActionItemsTextField.setVisible(False)
+ FixedLineVertikal.setVisible(False)
+ RoadMap.SetVisibleRoadMap(False)
+ End If
+ If(imageStatus = &quot;MAX&quot;) Then
+ imageStatus = &quot;MIN&quot;
+ ElseIf(imageStatus = &quot;MIN&quot;) Then
+ imageStatus = &quot;MAX&quot;
+ End If
+ setMaxMinImage(imageStatus)
+
+End Sub
+
+Sub SetStepTitle()
+ stepcontent = TutorText(TutorStep)
+ iPos = InStr(stepcontent,CHR(13))
+ stepTitle = Left(stepcontent, iPos)
+ SetStepTitle() = stepTitle
+End Sub
+
+Function GetStepTitle()
+ GetStepTitle() = stepTitle
+End Function
+
+Sub CheckForStepShowButtonStatus()
+ If ((exampleUse.ContainsStepAction() = True And TutorStep = TutorLastStep) Or myDialog.model.show.Label = &quot;Tutorials&quot;) Then
+ myDialog.model.show.enabled = True
+ Else
+ myDialog.model.show.enabled = False
+ End If
+End Sub
+
+Sub CheckForStepNextButtonStatus()
+ If(TutorStep = Ubound(TutorText())) Then
+ myDialog.model.next.enabled = False
+ myDialog.model.done.Label = &quot;Done&quot;
+ End If
+End Sub
+
+Sub Show(aEvent)
+ &apos;ShowInfoMain()
+ If( myDialog.model.show.Label = &quot;Tutorials&quot;) Then
+ oOpenDialogFlag = True
+ DialogVisible = False
+ Else
+ SetMousePosition(aEvent)
+ exampleUse.Action()
+ End If
+End Sub
+
+Sub SetMousePosition(aEvent)
+ MyPoints() = MousePoints(aEvent)
+
+ Dim mousePosition(3) as new com.sun.star.beans.PropertyValue
+ mousePosition(0).Name = &quot;DocumentTYP&quot;
+ mousePosition(0).Value = docTYP
+ mousePosition(1).Name = &quot;MethodName&quot;
+ mousePosition(1).Value = &quot;setMousePosition&quot;
+ mousePosition(2).Name = &quot;Param&quot;
+ mousePosition(2).Value = MyPoints(0)
+ mousePosition(3).Name = &quot;Param&quot;
+ mousePosition(3).Value = MyPoints(1)
+
+ myTutorial.setPropertyValues(mousePosition())
+End Sub
+
+Function MousePoints(aEvent)
+ Dim position(1) As Integer
+ position(0) = myDialog.getControl(&quot;show&quot;).AccessibleContext.LocationOnScreen.X + aEvent.Source.Model.PositionX
+ position(1) = myDialog.getControl(&quot;show&quot;).AccessibleContext.LocationOnScreen.Y + aEvent.Source.Model.PositionY
+ MousePoints = position()
+End Function
+
+Function CheckPath(path() As String)
+ &apos;documentTitle = ThisComponent.getCurrentController.getFrame.Title
+ sTitle = path(0)
+ ResultString = Right(sTitle, 3)
+ iPos = InStr(ResultString,&quot;#&quot;)
+ ResultString = Right(ResultString, Len(ResultString) - iPos)
+ ResultFrameString = InStr (sTitle, &quot;{D}FRAME#&quot;)
+ If ResultFrameString &lt;&gt; 0 Then
+ If Not (sTitle = (&quot;{D}FRAME#&quot; &amp; documentTitle &amp; &quot;#&quot; &amp; ResultString)) Then
+ &apos;path(0) = &quot;{D}FRAME#&quot; &amp; documentTitle &amp; &quot;#&quot; &amp; ResultString
+ path(0) = &quot;FRAME#&quot; &amp; documentTitle &amp; &quot;#&quot; &amp; ResultString
+ sTitle = path(1)
+ ResultString = Right(sTitle, 3)
+ iPos = InStr(ResultString,&quot;#&quot;)
+ ResultString = Right(ResultString, Len(ResultString) - iPos)
+ path(1) = &quot;ROOT_PANE#&quot; &amp; documentTitle &amp; &quot;#&quot; &amp; ResultString
+ Else
+ &apos;path(0) = &quot;{D}FRAME#&quot; &amp; documentTitle &amp; &quot;#&quot; &amp; ResultString
+ path(0) = &quot;FRAME#&quot; &amp; documentTitle &amp; &quot;#&quot; &amp; ResultString
+ End If
+ End If
+End Function
+
+Sub SetVisibleTutorialsDialog(param)
+ myDialog.setVisible(param)
+End Sub
+
+Sub SetVisibleTrue()
+ myDialog.setVisible(True)
+End Sub
+
+Sub SetVisibleFalse()
+ myDialog.setVisible(False)
+End Sub
+
+Sub ExitTutorial()
+ Dim aUrl As new com.sun.star.util.URL
+ oDoc = ThisComponent
+ urlTransformer = createUNOService(&quot;com.sun.star.util.URLTransformer&quot;)
+ aUrl.Complete = &quot;slot:5621&quot;
+ urlTransformer.parseStrict(aUrl)
+ xController = oDoc.getCurrentController()
+ xDispatcher = xController.queryDispatch(aUrl, &quot;&quot;, 0)
+ if NOT isNull(xDispatcher) then
+ xDispatcher.dispatch(aUrl, DimArray())
+ else
+ msgBox &quot;Error! Cannot close document.&quot;
+ End If
+End Sub
+</script:module>
diff --git a/test/user-template/user/basic/Tutorials/RoadMap.xba b/test/user-template/user/basic/Tutorials/RoadMap.xba
new file mode 100644
index 000000000000..fa992cb13b8c
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/RoadMap.xba
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="RoadMap" script:language="StarBasic">REM ***** BASIC *****
+Dim oControlModel
+Dim oDialogModel
+Dim CurrentItem
+Dim bLongString
+Dim oControl
+Dim oEvent
+Dim oUseDialog As Object
+Dim oModulName As Object
+
+Sub RoadMapMain(ModulNameforItemChange, dialogtoUse)
+ GlobalScope.BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ oUseDialog = dialogtoUse
+ oModulName = ModulNameforItemChange
+ oDialogModel = oUseDialog.Model
+ oControlModel = oUseDialog.Model.CreateInstance(&quot;com.sun.star.awt.UnoControlRoadmapModel&quot;)
+
+ oDialogModel.insertByName(&quot;RoadMap&quot;, oControlModel)
+ oControl = oUseDialog.getControl(&quot;RoadMap&quot;)
+ oEvent = createUnoListener( &quot;CallBack_&quot;, &quot;com.sun.star.awt.XItemListener&quot; )
+ oControl.addItemListener(oEvent)
+ oControlModel.CurrentItemID = 0
+ oControlModel.Complete = True
+ oControlModel.Activated = True
+End Sub
+
+Sub SetVisibleRoadMap(param)
+ oControl.SetVisible(param)
+End Sub
+
+Sub SetDialogModelSize(Width, Height)
+ oDialogModel.Width = Width
+ oDialogModel.Height = Height
+End Sub
+
+Sub SetControlModelPosSize(X, Y, Width, Height)
+ oControlModel.PositionX = X
+ oControlModel.PositionY = Y
+ oControlModel.Width = Width
+ oControlModel.Height = Height
+End Sub
+
+Sub SetControlModelText( ModelText As String)
+ oControlModel.Text = ModelText
+End Sub
+
+Sub InsertItemsLabels( ItemLabelsArray() As String)
+ For i = 0 To Ubound(ItemLabelsArray())
+ oRoadmapItem = oControlModel.createInstance()
+ oRoadmapItem.Label = ItemLabelsArray(i)
+ oRoadmapItem.ID = i
+ oControlModel.insertbyIndex(i, oRoadmapItem)
+ Next i
+End Sub
+
+Sub SetItemEnabled( ItemIndex, param)
+ oControlModel.getByIndex(ItemIndex).Enabled = param
+ oControlModel.CurrentItemID = ItemIndex
+End Sub
+
+Sub AddImagetoControlModel( Url As String)
+ oControlModel.ImageUrl = ConvertToUrl(Url)
+End Sub
+
+Function GetSelectedIndex()
+ GetSelectedIndex() = oControlModel.CurrentItemID
+End Function
+
+Function GetControlModel()
+ GetControlModel = oControlModel
+End Function
+
+Function GetDialogModel()
+ GetDialogModel = oDialogModel
+End Function
+
+Sub Callback_itemStateChanged(aEvent)
+ oModulName.ItemChange(oControlModel.CurrentItemID, aEvent.itemID)
+End Sub
+
+Sub SetComplete(param)
+ oControlModel.Complete = param
+End Sub
+
+Sub SetActivated(param)
+ oControlModel.Activated = param
+End Sub
+
+Sub RemoveItem(ItemIndex)
+ If ItemIndex &gt; -1 Then
+ oControlModel.removeByIndex(ItemIndex)
+ End If
+End Sub
+
+Sub InsertItem(ItemLabel As String)
+ oRoadmapItem = oControlModel.createInstance()
+ oRoadmapItem.Label = ItemLabel
+ oControlModel.insertbyIndex(oControlModel.CurrentItemID, oRoadmapItem)
+End Sub
+
+Sub ReplaceItem(ItemLabel As String)
+ oRoadmapItem = oControlModel.createInstance()
+ oRoadmapItem.Label = ItemLabel
+ oControlModel.replacebyIndex(oControlModel.CurrentItemID, oRoadmapItem)
+End Sub
+
+Sub Callback_disposing(aEvent)
+End Sub
+
+Sub Property_propertyChange(aEvent)
+End Sub
+
+Sub Property_disposing(aEvent)
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tutorials/ShowInfoDialog.xba b/test/user-template/user/basic/Tutorials/ShowInfoDialog.xba
new file mode 100644
index 000000000000..61c2ed96731f
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/ShowInfoDialog.xba
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="ShowInfoDialog" script:language="StarBasic">REM ***** BASIC *****
+Dim oWnd As Object
+Dim oWnd2 As Object
+Dim oWnd3 As Object
+Dim oDoc as Object
+
+Sub ShowInfoMain
+ prop() = GetShowInfoPropeties()
+ Init(prop(0).Value, prop(1).Value, prop(2).Value, prop(3).Value, prop(4).Value, prop(5).Value, prop(6).Value, prop(7).Value, prop(8).Value)
+End Sub
+
+Sub Init(tFieldText As String, windowX, windowY, windowWidth, windowHeight, tFieldX, tFieldY, tFieldWidth, tFieldHeight)
+ toolkit = createUnoService(&quot;com.sun.star.awt.Toolkit&quot;)
+ Dim oWndDescr As new com.sun.star.awt.WindowDescriptor
+ Dim oBounds As new com.sun.star.awt.Rectangle
+ oWndDescr.Type = com.sun.star.awt.WindowClass.TOP
+ oWndDescr.WindowServiceName = &quot;&quot;
+ oWndDescr.ParentIndex = 0
+
+ &apos;officeX = StarDesktop.ActiveFrame.getContainerWindow().AccessibleContext.LocationOnScreen.X
+ &apos;officeY = StarDesktop.ActiveFrame.getContainerWindow().AccessibleContext.LocationOnScreen.Y
+ &apos;officeWidth = StarDesktop.ActiveFrame.getContainerWindow().getPosSize().Width
+ &apos;officeHeight = StarDesktop.ActiveFrame.getContainerWindow().getPosSize().Height
+ officeWidth = thisComponent.CurrentController.Frame.getContainerWindow().getPosSize().Width
+ officeHeight = thisComponent.CurrentController.Frame.getContainerWindow().getPosSize().Height
+
+ &apos;dialogWidth = myTutoShowDialog.getPosSize().Width
+ &apos;dialogHeight = myTutoShowDialog.getPosSize().Height
+ X = officeWidth - windowWidth - windowX
+ Y = officeHeight - windowHeight - windowY
+
+ oBounds.X = X : oBounds.Y = Y
+ oBounds.Width = windowWidth : oBounds.Height = windowHeight
+ oWndDescr.Bounds = oBounds
+ oWndDescr.Parent = thisComponent.CurrentController.Frame.ContainerWindow
+ with com.sun.star.awt.WindowAttribute
+ oWndDescr.WindowAttributes = .CLOSEABLE AND .MOVEABLE AND .SIZEABLE AND .BORDER AND .SHOW
+ end with
+
+ oWnd = toolkit.createWindow(oWndDescr)
+
+ Dim oWndDescr3 As new com.sun.star.awt.WindowDescriptor
+ Dim oBounds3 As new com.sun.star.awt.Rectangle
+ oWndDescr3.Type = com.sun.star.awt.WindowClass.TOP
+ oWndDescr3.WindowServiceName = &quot;fixedimage&quot; &apos;&quot;fixedtext&quot;
+ oWndDescr3.ParentIndex = 0
+ oBounds3.X = 0 : oBounds3.Y = 0
+ oBounds3.Width = tFieldWidth : oBounds3.Height = tFieldHeight
+ oWndDescr3.Bounds = oBounds3
+ oWndDescr3.Parent = oWnd
+ with com.sun.star.awt.WindowAttribute
+ oWndDescr3.WindowAttributes = .CLOSEABLE AND .MOVEABLE AND .SIZEABLE AND .BORDER AND .SHOW
+ end with
+
+ oWnd3= toolkit.createWindow(oWndDescr3)
+ &apos;oWnd2.Text = tFieldText
+ &apos;printdbgInfo(oWnd3)
+ setImage(oWnd3)
+ &apos;oWnd3.Background = 16777215
+&apos; oWnd2.SetBackGround(16776960)
+ oWnd.SetBackGround(16776960)
+&apos; oWnd.FontDescriptors(0).Name = &quot;Albany&quot;
+&apos; oWnd.FontDescriptors(0).StyleName = &quot;BOLD&quot;
+
+ Dim oWndDescr2 As new com.sun.star.awt.WindowDescriptor
+ Dim oBounds2 As new com.sun.star.awt.Rectangle
+ oWndDescr2.Type = com.sun.star.awt.WindowClass.TOP
+ oWndDescr2.WindowServiceName = &quot;fixedtext&quot;
+ oWndDescr2.ParentIndex = 0
+ oBounds2.X = tFieldX : oBounds2.Y = tFieldY
+ oBounds2.Width = tFieldWidth : oBounds2.Height = tFieldHeight
+ oWndDescr2.Bounds = oBounds2
+ oWndDescr2.Parent = oWnd3
+ with com.sun.star.awt.WindowAttribute
+ oWndDescr2.WindowAttributes = .CLOSEABLE AND .MOVEABLE AND .SIZEABLE AND .BORDER AND .SHOW
+ end with
+
+ oWnd2= toolkit.createWindow(oWndDescr2)
+ oWnd2.Text = tFieldText
+ oWnd2.Background = 268435455
+ &apos;printdbgInfo(oWnd2)
+
+ &apos;printdbgInfo oWnd.getPosSize()
+
+End Sub
+
+Function GetShowInfoPropeties()
+ stepText = GetStepTitle()
+ Dim Properties(8) As new com.sun.star.beans.NamedValue
+ Properties(0).Name = &quot;ShowInfoDialogText&quot;
+ Properties(0).Value = stepText &amp; &quot;Press [Esc] to abort.&quot;
+ Properties(1).Name = &quot;WindowX&quot;
+ Properties(1).Value = 20
+ Properties(2).Name = &quot;WindowY&quot;
+ Properties(2).Value = 40
+ Properties(3).Name = &quot;WindowWidth&quot;
+ Properties(3).Value = 190
+ Properties(4).Name = &quot;WindowHeight&quot;
+ Properties(4).Value = 50
+ Properties(5).Name = &quot;TFieldX&quot;
+ Properties(5).Value = 7
+ Properties(6).Name = &quot;TFieldY&quot;
+ Properties(6).Value = 8
+ Properties(7).Name = &quot;TFieldWidth&quot;
+ Properties(7).Value = 190
+ Properties(8).Name = &quot;TFieldHeight&quot;
+ Properties(8).Value = 50
+ GetShowInfoPropeties = Properties()
+End Function
+
+Sub setShowInfoText()
+ stepText = GetStepTitle()
+ oWnd2.Text = stepText &amp; &quot;Press [Esc] to abort.&quot;
+End Sub
+
+Sub ShowON()
+ setShowInfoText()
+ oWnd.setVisible(True)
+ oWnd3.setVisible(True)
+ oWnd2.setVisible(True)
+End Sub
+
+Sub ShowOFF()
+ &apos;On Local Error Goto NOPROPERTYSETINFO:
+ oWnd.setVisible(False)
+ oWnd2.setVisible(False)
+ oWnd3.setVisible(False)
+ &apos;oDoc.dispose()
+ Exit Sub
+ &apos;NOPROPERTYSETINFO:
+End Sub
+
+Sub DisposeIDialog()
+ &apos;On Local Error Goto NOPROPERTYSETINFO:
+ oWnd3.dispose
+ oWnd2.dispose
+ oWnd.dispose
+ oDoc.dispose()
+ Exit Sub
+ &apos;NOPROPERTYSETINFO:
+End Sub
+
+sub setImage(whatever as Object)
+
+ templatePath = GetPathSettings(&quot;Template&quot;,false, 0)
+ Dim bitmapPath As String
+ iPos = InStr(templatePath,&quot;/&quot;)
+ if(iPos &gt; 0) Then
+ bitmapPath = templatePath &amp; &quot;../wizard/bitmap/tutorial_background.gif&quot;
+ Else
+ bitmapPath = templatePath &amp; &quot;..\wizard\bitmap\tutorial_background.gif&quot;
+ End If
+
+ dim props(0) as new com.sun.star.beans.PropertyValue
+ props(0).Name = &quot;Hidden&quot;
+ props(0).Value = true
+ oDoc = StarDesktop.loadComponentFromUrl(&quot;private:factory/swriter&quot;,&quot;_blank&quot;,0,props())
+ oShape = addControlToDefaultForm(&quot;ImageButton&quot;, 1000, 1000, 2000, 1000)
+ imgControl = oShape.getControl()
+ &apos;imgControl.ImageUrl=&quot;file:///D:/Program%20Files/src680_m11_qwizards1_49_TEST/share/gallery/tutoItem.gif&quot;
+ imgControl.ImageUrl = bitmapPath
+ imgControl.addConsumer(whatever)
+ imgControl.startProduction()
+end sub
+
+Function createControlShape(cKind As String) As Object
+
+ Dim oControlShape As Object
+ Dim oControl As Object
+
+
+ oControlShape = oDoc.createInstance(&quot;com.sun.star.drawing.ControlShape&quot;)
+ oControl = oDoc.createInstance(&quot;com.sun.star.form.component.&quot; &amp; cKind)
+ oControl.setPropertyValue(&quot;DefaultControl&quot;, &quot;com.sun.star.form.control.&quot; &amp; cKind)
+ oControlShape.setControl(oControl)
+
+
+ createControlShape() = oControlShape
+
+End Function
+
+Function createControlShapeWithDefaultControl(cKind As String) As Object
+
+ Dim oControlShape As Object
+ Dim oControl As Object
+
+
+ oControlShape = oDoc.createInstance(&quot;com.sun.star.drawing.ControlShape&quot;)
+ oControl = oDoc.createInstance(&quot;com.sun.star.form.component.&quot; &amp; cKind)
+ oControlShape.setControl(oControl)
+
+
+ createControlShapeWithDefaultControl() = oControlShape
+
+End Function
+
+Function createUNOControlShape(cKind As String, defControl As String) As Object
+
+ Dim oControlShape As Object
+ Dim oControl As Object
+
+
+ oControlShape = oDoc.createInstance(&quot;com.sun.star.drawing.ControlShape&quot;)
+ oControl = oDoc.createInstance(&quot;com.sun.star.form.component.&quot; &amp; cKind)
+ oControl.setPropertyValue(&quot;DefaultControl&quot;, &quot;com.sun.star.awt.&quot; &amp; defControl)
+ oControlShape.setControl(oControl)
+
+
+ createUNOControlShape() = oControlShape
+
+End Function
+
+Function addShape(oShape As Object) As Boolean
+
+ Dim vSize As New com.sun.star.awt.Size
+ Dim oDrawPage As Object
+ Dim oForms As Object
+ Dim oForm As Object
+
+ oDrawPage = oDoc.getDrawPage()
+ oForms = oDrawPage.getForms()
+
+ if oForms.Count = 0 then
+ oForm = oDoc.createInstance(&quot;com.sun.star.form.component.Form&quot;)
+ oForms.insertByIndex(0, oForm)
+ end if
+
+ vSize.Height = 2000 : vSize.Width = 2000
+ oShape.Size = vSize
+ oDrawPage.add(oShape)
+
+ addShape() = true
+
+End Function
+
+sub addControl(cKind as String)
+
+ Dim oDrawPage As Object
+ Dim oForm As Object, oForms As Object
+ Dim oControl As Object, oControlShape As Object
+ Dim aSz As Variant
+ Dim oText As Object
+
+ oDrawPage = oDoc.DrawPage
+ oControlShape = oDoc.createInstance(&quot;com.sun.star.drawing.ControlShape&quot;)
+ oControl = oDoc.createInstance(&quot;com.sun.star.form.component.&quot; + cKind)
+ oForm = oDoc.createInstance(&quot;com.sun.star.form.component.Form&quot;)
+ oforms = oDrawPage.Forms
+ if oforms.count = 0 then
+ oforms.insertbyindex(0,oForm)
+ end if
+ oControlShape.Control = oControl
+ oDrawPage.add(oControlShape)
+
+End sub
+
+Function addControlToDefaultForm(cKind as String, x As Integer, y As Integer, width As Integer, height As Integer) As Object
+
+ Dim oDrawPage As Object
+ Dim oControl As Object, oControlShape As Object
+ Dim pos As New com.sun.star.awt.Point
+ Dim size As New com.sun.star.awt.Size
+
+ pos.X = x
+ pos.Y = y
+ size.Width = width
+ size.Height = height
+
+ oDrawPage = oDoc.DrawPage
+ oControlShape = oDoc.createInstance(&quot;com.sun.star.drawing.ControlShape&quot;)
+ oControl = oDoc.createInstance(&quot;com.sun.star.form.component.&quot; + cKind)
+ oControlShape.Control = oControl
+ oControlShape.Position = pos
+ oControlShape.Size = size
+ oDrawPage.add(oControlShape)
+
+ addControlToDefaultForm() = oControlShape
+
+End Function
+
+Function addShapeToDrawDoc(oPage as Object, nPosX, nPosY as Integer, oType As String) As Object
+ Dim aPoint As New com.sun.star.awt.Point
+ Dim aSize As New com.sun.star.awt.Size
+ Dim oShape As Object
+ Dim servNames As Variant
+
+ aPoint.x = nPosX
+ aPoint.y = nPosY
+ aSize.Width = 2000
+ aSize.Height = 1000
+ oShape = oDoc.createInstance(&quot;com.sun.star.drawing.&quot;+oType+&quot;Shape&quot;)
+ oShape.Size = aSize
+ oShape.Position = aPoint
+
+ if oShape.getPropertySetInfo().hasPropertyByName(&quot;FillColor&quot;) then
+ oShape.FillColor = RGB(128, 255, 0)
+ End If
+
+ oPage.add(oShape)
+
+ addShapeToDrawDoc() = oShape
+End Function
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tutorials/TutorialClose.xba b/test/user-template/user/basic/Tutorials/TutorialClose.xba
new file mode 100644
index 000000000000..2438243b82ff
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/TutorialClose.xba
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="TutorialClose" script:language="StarBasic">REM ***** BASIC *****
+Dim myCloseDialog As Object
+
+Sub TutorialCloseMain
+ myCloseDialog = LoadDialog(&quot;Tutorials&quot;,&quot;TutorialCloseDialog&quot;)
+ myCloseDialog.Execute()
+End Sub
+
+Sub CloseYes(aEvent)
+ myCloseDialog.EndExecute()
+ DialogVisible = False
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tutorials/TutorialCloseDialog.xdl b/test/user-template/user/basic/Tutorials/TutorialCloseDialog.xdl
new file mode 100644
index 000000000000..edc1dae7e699
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/TutorialCloseDialog.xdl
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="TutorialCloseDialog" dlg:left="173" dlg:top="82" dlg:width="132" dlg:height="38" dlg:closeable="true" dlg:moveable="true">
+ <dlg:styles>
+ <dlg:style dlg:style-id="0" dlg:font-weight="150"/>
+ </dlg:styles>
+ <dlg:bulletinboard>
+ <dlg:button dlg:id="yesButton" dlg:tab-index="1" dlg:left="24" dlg:top="20" dlg:width="50" dlg:height="14" dlg:value="Yes">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tutorials.TutorialClose.CloseYes?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="noButton" dlg:tab-index="0" dlg:left="76" dlg:top="20" dlg:width="50" dlg:height="14" dlg:value="No" dlg:button-type="cancel"/>
+ <dlg:text dlg:style-id="0" dlg:id="Label1" dlg:tab-index="2" dlg:left="6" dlg:top="6" dlg:width="120" dlg:height="8" dlg:value="Do you want to close this Tutorial?." dlg:align="center"/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tutorials/TutorialCreator.xba b/test/user-template/user/basic/Tutorials/TutorialCreator.xba
new file mode 100644
index 000000000000..7169b4e2e467
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/TutorialCreator.xba
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="TutorialCreator" script:language="StarBasic">REM ***** BASIC *****
+Sub TutorialCreatorMain
+ GlobalScope.BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ myTutorial = createUNOService(&quot;com.sun.star.wizards.tutorial.executer.CallTutorialFramework&quot;)
+ myTutorial.trigger(&quot;StartTutorialCreator&quot;)
+End Sub
+
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tutorials/TutorialOpen.xba b/test/user-template/user/basic/Tutorials/TutorialOpen.xba
new file mode 100644
index 000000000000..a64a72507ba1
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/TutorialOpen.xba
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
+<script:module xmlns:script="http://openoffice.org/2000/script" script:name="TutorialOpen" script:language="StarBasic">REM ***** BASIC *****
+Dim myOpenDialog As Object
+Dim oListBox As Object
+Dim files As Object
+Dim oUcb As Object
+Dim oListener As Object
+
+Sub TutorialOpenMain
+ GlobalScope.BasicLibraries.LoadLibrary(&quot;Tools&quot;)
+ myOpenDialog = LoadDialog(&quot;Tutorials&quot;,&quot;TutorialOpenDialog&quot;)
+ init()
+ myOpenDialog.Execute()
+End Sub
+
+Sub Init
+ On Local Error Goto NOFILE
+ myOpenDialog.Title = &quot;Tutorials&quot;
+ oListBox = myOpenDialog.GetControl(&quot;ListBox&quot;)
+ templatePath = GetPathSettings(&quot;Template&quot;,false, 0)
+ Dim tutorialPath As String
+ iPos = InStr(templatePath,&quot;/&quot;)
+ if(iPos &gt; 0) Then
+ tutorialPath = templatePath &amp; &quot;/tutorials&quot;
+ Else
+ tutorialPath = templatePath &amp; &quot;\tutorials&quot;
+ End If
+ oUcb = createUnoService(&quot;com.sun.star.ucb.SimpleFileAccess&quot;)
+ files = oUcb.getFolderContents(tutorialPath,true)
+ size = Ubound( files() )
+ Dim tempFiles(size) As String
+ tempCount = 0
+ For iCount = 0 To size
+ completPath = files(iCount)
+ oDocInfo = CreateUnoService(&quot;com.sun.star.document.DocumentProperties&quot;)
+ oDocInfo.Read(completPath)
+ sDocTitle = oDocInfo.Title
+ if(not isNull(sDocTitle) And len(sDocTitle) &gt; 0) Then
+ oListbox.additem(sDocTitle,0)
+ tempFiles(tempCount) = completPath
+ tempCount = tempCount + 1
+ End If
+ Next iCount
+ &apos;printdbgInfo oListbox
+ size = oListbox.ItemCount - 1
+ Dim tempFiles2(size) As String
+ For iCount = 0 To size
+ tempFiles2(iCount) = tempFiles(iCount)
+ Next iCount
+ files() = tempFiles2()
+ Exit Sub
+ NOFILE:
+ If Err &lt;&gt; 0 Then
+ Msgbox &quot;No file found error!&quot; &amp; CHR(13) &amp; &quot;Path: ...\share\template\...\tutorials\&quot;
+ myOpenDialog.model.Open.enabled = False
+ End If
+End Sub
+
+Sub ItemSelected(oEvent)
+ On Local Error Goto NOFILE
+ completPath = files(Ubound(files()) - oEvent.Selected)
+ oTextField = myOpenDialog.GetControl(&quot;Label&quot;) &apos;TextField
+ oTextField.setText(&quot;&quot;)
+ Dim NoArgs() as new com.sun.star.beans.PropertyValue
+ oDocInfo = CreateUnoService(&quot;com.sun.star.document.DocumentProperties&quot;)
+ oDocInfo.Read(completPath)
+ sDocDescription = oDocInfo.Description
+ if(not isNull(sDocTitle) And len(sDocDescription) &gt; 0) Then
+ oTextField.setText(sDocDescription)
+ Else
+ oTextField.setText(&quot;Not Description!!!.&quot;)
+ End If
+ Exit Sub
+ NOFILE:
+ If Err &lt;&gt; 0 Then
+ Msgbox &quot;Open file error!&quot;
+ End If
+End Sub
+
+Sub OpenTutorial(aEvent)
+ completPath = files(Ubound(files()) - oListBox.getSelectedItemPos())
+ Dim Args(2) as new com.sun.star.beans.PropertyValue
+ Args(1).Name = &quot;MacroExecutionMode&quot;
+ Args(1).Value = com.sun.star.document.MacroExecMode.ALWAYS_EXECUTE
+ Args(2).Name = &quot;AsTemplate&quot;
+ Args(2).Value = true
+
+ StarDesktop.LoadComponentFromURL(completPath,&quot;_default&quot;,0, Args())
+ myOpenDialog.endExecute()
+End Sub
+
+Sub Cancel(aEvent)
+ myOpenDialog.endExecute()
+End Sub
+</script:module> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tutorials/TutorialOpenDialog.xdl b/test/user-template/user/basic/Tutorials/TutorialOpenDialog.xdl
new file mode 100644
index 000000000000..6c9893306c6e
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/TutorialOpenDialog.xdl
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="TutorialOpenDialog" dlg:left="158" dlg:top="58" dlg:width="250" dlg:height="200" dlg:closeable="true" dlg:moveable="true">
+ <dlg:bulletinboard>
+ <dlg:button dlg:id="Open" dlg:tab-index="1" dlg:left="141" dlg:top="180" dlg:width="50" dlg:height="14" dlg:value="Open">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tutorials.TutorialOpen.OpenTutorial?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="Cancel" dlg:tab-index="2" dlg:left="194" dlg:top="180" dlg:width="50" dlg:height="14" dlg:value="Cancel">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tutorials.TutorialOpen.Cancel?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:menulist dlg:id="ListBox" dlg:tab-index="0" dlg:left="8" dlg:top="17" dlg:width="98" dlg:height="155">
+ <script:event script:event-name="on-performaction" script:location="application" script:macro-name="Tutorials.TutorialOpen.OpenTutorial" script:language="StarBasic"/>
+ <script:event script:event-name="on-itemstatechange" script:location="application" script:macro-name="Tutorials.TutorialOpen.ItemSelected" script:language="StarBasic"/>
+ </dlg:menulist>
+ <dlg:fixedline dlg:id="FixedLine" dlg:tab-index="3" dlg:left="6" dlg:top="6" dlg:width="100" dlg:height="8" dlg:value="Tutorials"/>
+ <dlg:fixedline dlg:id="FixedLine1" dlg:tab-index="4" dlg:left="6" dlg:top="176" dlg:width="238" dlg:height="1"/>
+ <dlg:fixedline dlg:id="FixedLine2" dlg:tab-index="5" dlg:left="110" dlg:top="6" dlg:width="134" dlg:height="8" dlg:value="Description"/>
+ <dlg:fixedline dlg:id="FixedLine3" dlg:tab-index="6" dlg:left="267" dlg:top="44" dlg:width="0" dlg:height="2"/>
+ <dlg:text dlg:id="Label" dlg:tab-index="7" dlg:left="112" dlg:top="17" dlg:width="132" dlg:height="155" dlg:multiline="true"/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tutorials/TutorialsDialog.xdl b/test/user-template/user/basic/Tutorials/TutorialsDialog.xdl
new file mode 100644
index 000000000000..3a211f9f649a
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/TutorialsDialog.xdl
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE dlg:window PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "dialog.dtd">
+<dlg:window xmlns:dlg="http://openoffice.org/2000/dialog" xmlns:script="http://openoffice.org/2000/script" dlg:id="TutorialsDialog" dlg:left="149" dlg:top="54" dlg:width="250" dlg:height="200" dlg:closeable="true" dlg:moveable="true">
+ <dlg:styles>
+ <dlg:style dlg:style-id="0" dlg:font-weight="150"/>
+ </dlg:styles>
+ <dlg:bulletinboard>
+ <dlg:button dlg:id="CommandButton" dlg:tab-index="3" dlg:left="232" dlg:top="4" dlg:width="13" dlg:height="13" dlg:value="C">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tutorials.Functions.Minimize?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:text dlg:id="myText" dlg:tab-index="4" dlg:left="91" dlg:top="26" dlg:width="153" dlg:height="145" dlg:value="This text explains all the action items that the user can do to follow the current step highlighted in the road map at the left side of the tutorial window.&#x0a;&#x0a;1. Open the Format menu&#x0a;2. Choose the Paragraph command&#x0a;3. Click the Numbering tab&#x0a;&#x0a;The first step will always explain what the current tutorial is about.&#x0a;&#x0a;The last step - it is higjlighted currently in the road map - will summarize what the user now has seen or learned." dlg:multiline="true"/>
+ <dlg:button dlg:id="show" dlg:tab-index="1" dlg:left="142" dlg:top="180" dlg:width="50" dlg:height="14" dlg:value="Show me">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tutorials.Functions.Show?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:button dlg:id="next" dlg:tab-index="0" dlg:left="89" dlg:top="180" dlg:width="50" dlg:height="14" dlg:value="Next &gt;&gt;">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tutorials.Functions.NextStep?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:text dlg:style-id="0" dlg:id="myTextField" dlg:tab-index="5" dlg:left="6" dlg:top="6" dlg:width="192" dlg:height="8" dlg:value="Current Step (in Road Map)"/>
+ <dlg:button dlg:id="done" dlg:tab-index="2" dlg:left="195" dlg:top="180" dlg:width="50" dlg:height="14" dlg:value="Close">
+ <script:event script:event-name="on-performaction" script:macro-name="vnd.sun.star.script:Tutorials.Functions.EndDialog?language=Basic&amp;location=application" script:language="Script"/>
+ </dlg:button>
+ <dlg:text dlg:style-id="0" dlg:id="ActionItemsLabel" dlg:tab-index="8" dlg:left="91" dlg:top="8" dlg:width="45" dlg:height="8" dlg:value="Action Items"/>
+ <dlg:fixedline dlg:id="FixedLineHorizontal" dlg:tab-index="7" dlg:left="0" dlg:top="176" dlg:width="250" dlg:height="1"/>
+ <dlg:fixedline dlg:id="FixedLineVertikal" dlg:tab-index="6" dlg:left="85" dlg:top="0" dlg:width="1" dlg:height="176" dlg:align="vertical"/>
+ </dlg:bulletinboard>
+</dlg:window> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tutorials/dialog.xlb b/test/user-template/user/basic/Tutorials/dialog.xlb
new file mode 100644
index 000000000000..e02b20688a72
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/dialog.xlb
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Tutorials" library:readonly="false" library:passwordprotected="false">
+ <library:element library:name="TutorialsDialog"/>
+ <library:element library:name="TutorialOpenDialog"/>
+ <library:element library:name="TutorialCloseDialog"/>
+</library:library> \ No newline at end of file
diff --git a/test/user-template/user/basic/Tutorials/script.xlb b/test/user-template/user/basic/Tutorials/script.xlb
new file mode 100644
index 000000000000..30280c6b1feb
--- /dev/null
+++ b/test/user-template/user/basic/Tutorials/script.xlb
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
+<library:library xmlns:library="http://openoffice.org/2000/library" library:name="Tutorials" library:readonly="false" library:passwordprotected="false">
+ <library:element library:name="Functions"/>
+ <library:element library:name="TutorialCreator"/>
+ <library:element library:name="TutorialOpen"/>
+ <library:element library:name="RoadMap"/>
+ <library:element library:name="ShowInfoDialog"/>
+ <library:element library:name="TutorialClose"/>
+</library:library> \ No newline at end of file
diff --git a/test/user-template/user/basic/dialog.xlc b/test/user-template/user/basic/dialog.xlc
new file mode 100644
index 000000000000..b63ebd6d71d2
--- /dev/null
+++ b/test/user-template/user/basic/dialog.xlc
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:libraries PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "libraries.dtd">
+<library:libraries xmlns:library="http://openoffice.org/2000/library" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <library:library library:name="FormWizard" xlink:href="$(INST)/share/basic/FormWizard/dialog.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Template" xlink:href="$(INST)/share/basic/Template/dialog.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Tools" xlink:href="$(INST)/share/basic/Tools/dialog.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Schedule" xlink:href="$(INST)/share/basic/Schedule/dialog.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Gimmicks" xlink:href="$(INST)/share/basic/Gimmicks/dialog.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="ImportWizard" xlink:href="$(INST)/share/basic/ImportWizard/dialog.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Euro" xlink:href="$(INST)/share/basic/Euro/dialog.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Depot" xlink:href="$(INST)/share/basic/Depot/dialog.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="ScriptBindingLibrary" xlink:href="$(INST)/share/basic/ScriptBindingLibrary/dialog.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+</library:libraries> \ No newline at end of file
diff --git a/test/user-template/user/basic/script.xlc b/test/user-template/user/basic/script.xlc
new file mode 100644
index 000000000000..aaf1b0d9303e
--- /dev/null
+++ b/test/user-template/user/basic/script.xlc
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE library:libraries PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "libraries.dtd">
+<library:libraries xmlns:library="http://openoffice.org/2000/library" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <library:library library:name="FormWizard" xlink:href="$(INST)/share/basic/FormWizard/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Template" xlink:href="$(INST)/share/basic/Template/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Tools" xlink:href="$(INST)/share/basic/Tools/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Schedule" xlink:href="$(INST)/share/basic/Schedule/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Gimmicks" xlink:href="$(INST)/share/basic/Gimmicks/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="ImportWizard" xlink:href="$(INST)/share/basic/ImportWizard/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Euro" xlink:href="$(INST)/share/basic/Euro/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="Depot" xlink:href="$(INST)/share/basic/Depot/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+ <library:library library:name="ScriptBindingLibrary" xlink:href="$(INST)/share/basic/ScriptBindingLibrary/script.xlb/" xlink:type="simple" library:link="true" library:readonly="false"/>
+</library:libraries> \ No newline at end of file
diff --git a/test/user-template/user/config/images.zip b/test/user-template/user/config/images.zip
new file mode 120000
index 000000000000..a7d51d861dba
--- /dev/null
+++ b/test/user-template/user/config/images.zip
@@ -0,0 +1 @@
+/devel/libo/libo1/packimages/unxlngx6.pro/bin/images.zip \ No newline at end of file
diff --git a/test/user-template/user/config/images_crystal.zip b/test/user-template/user/config/images_crystal.zip
new file mode 120000
index 000000000000..849d4dc9e049
--- /dev/null
+++ b/test/user-template/user/config/images_crystal.zip
@@ -0,0 +1 @@
+/devel/libo/libo1/packimages/unxlngx6.pro/bin/images_crystal.zip \ No newline at end of file
diff --git a/test/user-template/user/config/images_hicontrast.zip b/test/user-template/user/config/images_hicontrast.zip
new file mode 120000
index 000000000000..24237af99628
--- /dev/null
+++ b/test/user-template/user/config/images_hicontrast.zip
@@ -0,0 +1 @@
+/devel/libo/libo1/packimages/unxlngx6.pro/bin/images_hicontrast.zip \ No newline at end of file
diff --git a/test/user-template/user/config/images_oxygen.zip b/test/user-template/user/config/images_oxygen.zip
new file mode 120000
index 000000000000..0c83c8b25d98
--- /dev/null
+++ b/test/user-template/user/config/images_oxygen.zip
@@ -0,0 +1 @@
+/devel/libo/libo1/packimages/unxlngx6.pro/bin/images_oxygen.zip \ No newline at end of file
diff --git a/test/user-template/user/config/images_tango.zip b/test/user-template/user/config/images_tango.zip
new file mode 120000
index 000000000000..b5f8135a8d4e
--- /dev/null
+++ b/test/user-template/user/config/images_tango.zip
@@ -0,0 +1 @@
+/devel/libo/libo1/packimages/unxlngx6.pro/bin/images_tango.zip \ No newline at end of file
diff --git a/test/user-template/user/config/javasettingsunopkginstall.xml b/test/user-template/user/config/javasettingsunopkginstall.xml
new file mode 100644
index 000000000000..3efc8e87fc62
--- /dev/null
+++ b/test/user-template/user/config/javasettingsunopkginstall.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<java xmlns="http://openoffice.org/2004/java/framework/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+</java>
diff --git a/test/user-template/user/config/linked/images.zip b/test/user-template/user/config/linked/images.zip
new file mode 100644
index 000000000000..ee02f4ba881f
--- /dev/null
+++ b/test/user-template/user/config/linked/images.zip
Binary files differ
diff --git a/test/user-template/user/config/linked/images_crystal.zip b/test/user-template/user/config/linked/images_crystal.zip
new file mode 100644
index 000000000000..9c8eb94cbde3
--- /dev/null
+++ b/test/user-template/user/config/linked/images_crystal.zip
Binary files differ
diff --git a/test/user-template/user/config/linked/images_hicontrast.zip b/test/user-template/user/config/linked/images_hicontrast.zip
new file mode 100644
index 000000000000..481845bfb00a
--- /dev/null
+++ b/test/user-template/user/config/linked/images_hicontrast.zip
Binary files differ
diff --git a/test/user-template/user/config/linked/images_oxygen.zip b/test/user-template/user/config/linked/images_oxygen.zip
new file mode 100644
index 000000000000..a98f348892d7
--- /dev/null
+++ b/test/user-template/user/config/linked/images_oxygen.zip
Binary files differ
diff --git a/test/user-template/user/config/linked/images_tango.zip b/test/user-template/user/config/linked/images_tango.zip
new file mode 100644
index 000000000000..e795be3cd278
--- /dev/null
+++ b/test/user-template/user/config/linked/images_tango.zip
Binary files differ
diff --git a/test/user-template/user/config/psetup.xpm b/test/user-template/user/config/psetup.xpm
new file mode 100644
index 000000000000..f5129757923f
--- /dev/null
+++ b/test/user-template/user/config/psetup.xpm
@@ -0,0 +1,31 @@
+/* XPM */
+static char * L3PSetup_t_pm[] = {
+/* width height ncolors cpp [x_hot y_hot] */
+"16 16 9 1 0 0",
+/* colors */
+" s none m none c none",
+". c #861782078617",
+"X s iconColor1 m black c black",
+"o c #000000008617",
+"O s iconColor2 m white c white",
+"+ c #C71BC30BC71B",
+"@ s iconColor6 m white c yellow",
+"# c #00000000FFFF",
+"$ c #861700000000",
+/* pixels */
+" ",
+" .. XXXXX o",
+" ..OO+XO.OO@Xo",
+" ..OOOOX@.@.OOOo",
+"XXOOOOXOXO.O.@Oo",
+" XOOX@XOX@.OXXo",
+" XOOXOO+XXX o",
+" XX+XOO..+++O+. ",
+"X.++X..+++##++O.",
+"X...++++$$++OOO.",
+"X.....++++OO++O.",
+"X.......OO++++..",
+"XX......+++++.X.",
+" XX....+++.XX ",
+" XX..+.XX ",
+" XXXX "};
diff --git a/test/user-template/user/config/psetupl.xpm b/test/user-template/user/config/psetupl.xpm
new file mode 100644
index 000000000000..f9cca89f10e1
--- /dev/null
+++ b/test/user-template/user/config/psetupl.xpm
@@ -0,0 +1,49 @@
+/* XPM */
+static char * L3PSetup_m_pm[] = {
+/* width height ncolors cpp [x_hot y_hot] */
+"32 32 11 1 0 0",
+/* colors */
+" s none m none c none",
+". s iconColor1 m black c black",
+"X c #000000008617",
+"o c #861782078617",
+"O s iconColor2 m white c white",
+"+ c #C71BC30BC71B",
+"@ s iconColor6 m white c yellow",
+"# c #00000000FFFF",
+"$ c #861782070000",
+"% c #000082078617",
+"& c #861700000000",
+/* pixels */
+" ",
+" ........ XXXX",
+" .o..oo.OOOOOOO+..X+OX",
+" .+ooOO.@OO@OOOO@OOXOOX",
+" .+oo+O.OO.OOOOOOOOOXXXX",
+" .+oo+O.O@.OOO@OOOO@OXXXX",
+" .+oo+O.@O.O@O.OO@OOOOXXXX",
+" .+oo+O.OO.+.O.OOOOOOOOXXXX",
+" .+oo+O.O@.+O+.O@O.OOO..X.X.",
+" .+oo+O+...+O++o.O.OO@. .X. ",
+" .+oo+O+O+O+O++++o.@O..o ... ",
+" .ooo+O+O+O+O++++ooo.. ",
+" .ooo+O+O+O+O++++o..+Oo ",
+" .oo+O+O+O+O++++o....OO. ",
+" ..+O+O+O+O++++o......OO. ",
+" .o+OO+O+O++#+o....$o..OO. ",
+" .oo+OO+O++%+o....$$$...Oo. ",
+" .ooo+OO++&+o...$$$+$+...o. ",
+" .oooo+O+++o...$$$+$+++..o. ",
+" .oooooOO+o.o.$$++$+OoOO..o ",
+" .ooooo+Oo..O.$++$OOoOO$O.o ",
+"o.ooooooO.o.OO.+$OOoOOoOOO. ",
+"oo.ooooo.O.O.OO.OOoOO$OOoOO. ",
+" oo.oooo+O.OO.OO.OOOoOOoOO.o ",
+" oo.ooo+O.oOo.Oo.O$OO$OO.o ",
+" oo.oo+O.o+o.+o.OOOoOO.o ",
+" oo.o+O.o+o.+o.OOoOO.o ",
+" oo.+..o+o.+o..OOO.o ",
+" oo.oo.+..+o.o.O.o ",
+" ooooo.o.o.ooo.o ",
+" oooo.o oo ",
+" oo "};
diff --git a/test/user-template/user/config/soffice.cfg/modules/BasicIDE/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/menubar/menubar.xml
new file mode 100644
index 000000000000..4583ca294dc0
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/menubar/menubar.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Signature"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id="vnd.sun.star.findbar:FocusToFindbar"/>
+ <menu:menuitem menu:id=".uno:SearchDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FullScreen"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuseparator/>
+
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
+
diff --git a/test/user-template/user/config/soffice.cfg/modules/BasicIDE/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/statusbar/statusbar.xml
new file mode 100644
index 000000000000..37766aeb58ed
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/statusbar/statusbar.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:StatusGetTitle" statusbar:align="left" statusbar:autosize="true" statusbar:width="240" statusbar:helpid="helpid:30808"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:width="14" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:StatusGetPosition" statusbar:align="left" statusbar:width="120" statusbar:helpid="helpid:30806"/>
+ <statusbar:statusbaritem xlink:href=".uno:InsertMode" statusbar:align="center" statusbar:width="41" statusbar:helpid="helpid:10221"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+ <statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="left" statusbar:autosize="true" statusbar:ownerdraw="true" statusbar:width="160" statusbar:helpid="helpid:10224"/>
+</statusbar:statusbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/dialogbar.xml b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/dialogbar.xml
new file mode 100644
index 000000000000..91b9a925fa60
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/dialogbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:LibSelector" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ChooseControls" />
+ <toolbar:toolbaritem xlink:href=".uno:ImportDialog" />
+ <toolbar:toolbaritem xlink:href=".uno:ExportDialog" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/findbar.xml b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/findbar.xml
new file mode 100644
index 000000000000..49e483e178a3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/findbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FindText"/>
+ <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
+ <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..5aecdda4fb04
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/insertcontrolsbar.xml b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/insertcontrolsbar.xml
new file mode 100644
index 000000000000..fe0edf689bba
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/insertcontrolsbar.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectMode" toolbar:helpid="helpid:10198" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ManageLanguage" toolbar:helpid="helpid:30820" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:TestMode" toolbar:helpid="helpid:10199" />
+ <toolbar:toolbaritem xlink:href=".uno:ShowPropBrowser" toolbar:helpid="helpid:10943" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertPushbutton" toolbar:helpid="helpid:10146" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertImageControl" toolbar:helpid="helpid:10926" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Checkbox" toolbar:helpid="helpid:10148" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Radiobutton" toolbar:helpid="helpid:10147" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFixedText" toolbar:helpid="helpid:10188" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertEdit" toolbar:helpid="helpid:10190" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertListbox" toolbar:helpid="helpid:10191" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Combobox" toolbar:helpid="helpid:10192" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:HScrollbar" toolbar:helpid="helpid:10194" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:VScrollbar" toolbar:helpid="helpid:10195" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Groupbox" toolbar:helpid="helpid:10189" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ProgressBar" toolbar:helpid="helpid:10927" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:HFixedLine" toolbar:helpid="helpid:10928" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:VFixedLine" toolbar:helpid="helpid:10929" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDateField" toolbar:helpid="helpid:10936" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertTimeField" toolbar:helpid="helpid:10937" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertNumericField" toolbar:helpid="helpid:10938" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertCurrencyField" toolbar:helpid="helpid:10939" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFormattedField" toolbar:helpid="helpid:10940" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertPatternField" toolbar:helpid="helpid:10941" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFileControl" toolbar:helpid="helpid:10942" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertTreeControl" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/macrobar.xml b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/macrobar.xml
new file mode 100644
index 000000000000..6e22bff09baf
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/macrobar.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:LibSelector" toolbar:helpid="helpid:30787" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CompileBasic" toolbar:helpid="helpid:5954" />
+ <toolbar:toolbaritem xlink:href=".uno:RunBasic" toolbar:helpid="helpid:5955" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicStop" toolbar:helpid="helpid:5958" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicStepOver" toolbar:helpid="helpid:5957" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicStepInto" toolbar:helpid="helpid:5956" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicStepOut" toolbar:helpid="helpid:5963" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleBreakPoint" toolbar:helpid="helpid:30768" />
+ <toolbar:toolbaritem xlink:href=".uno:ManageBreakPoints" toolbar:helpid="helpid:30810" />
+ <toolbar:toolbaritem xlink:href=".uno:AddWatch" toolbar:helpid="helpid:30769" />
+ <toolbar:toolbaritem xlink:href=".uno:MatchGroup" toolbar:helpid="helpid:30782" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LoadBasic" toolbar:helpid="helpid:5951" />
+ <toolbar:toolbaritem xlink:href=".uno:SaveBasicAs" toolbar:helpid="helpid:5953" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ImportDialog" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/standardbar.xml
new file mode 100644
index 000000000000..3e685264b75b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/standardbar.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="helpid:5537" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="helpid:5501" />
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="helpid:5505" />
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="helpid:5710" />
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="helpid:5712" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="helpid:5701" />
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="helpid:5700" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectCatalog" toolbar:helpid="helpid:30774" />
+ <toolbar:toolbaritem xlink:href=".uno:ChooseMacro" toolbar:helpid="helpid:30770" />
+ <toolbar:toolbaritem xlink:href=".uno:ModuleDialog" toolbar:helpid="helpid:30773" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex" />
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/translationbar.xml b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/translationbar.xml
new file mode 100644
index 000000000000..0402e9ba38c6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/BasicIDE/toolbar/translationbar.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CurrentLanguage" toolbar:helpid="helpid:30821" />
+ <toolbar:toolbaritem xlink:href=".uno:ManageLanguage" toolbar:helpid="helpid:30820" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/StartModule/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/StartModule/menubar/menubar.xml
new file mode 100644
index 000000000000..5ac4c3eb4b7c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/StartModule/menubar/menubar.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/StartModule/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/StartModule/statusbar/statusbar.xml
new file mode 100644
index 000000000000..7b15360f9775
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/StartModule/statusbar/statusbar.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+</statusbar:statusbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/StartModule/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/StartModule/toolbar/standardbar.xml
new file mode 100644
index 000000000000..4d50afc6576a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/StartModule/toolbar/standardbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="helpid:5537" toolbar:style="dropdown"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:helpid="helpid:5500" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="helpid:5501"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbapp/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/dbapp/menubar/menubar.xml
new file mode 100644
index 000000000000..a76fda58c575
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbapp/menubar/menubar.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menu menu:id=".uno:SendToMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:DBSendReportAsMail"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DBSendReportToWriter"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:PasteSpecial"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DBDelete"/>
+ <menu:menuitem menu:id=".uno:DBRename"/>
+ <menu:menuitem menu:id=".uno:DBEdit"/>
+ <menu:menuitem menu:id=".uno:DBEditSqlView"/>
+ <menu:menuitem menu:id=".uno:DBOpen"/>
+ <menu:menuitem menu:id=".uno:DBConvertToView"/>
+ <menu:menuitem menu:id=".uno:DBNewFormAutoPilotWithPreSelection"/>
+ <menu:menuitem menu:id=".uno:DBNewReportAutoPilotWithPreSelection"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:DBDatabasePropertiesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DBDSProperties"/>
+ <menu:menuitem menu:id=".uno:DBDSConnectionType"/>
+ <menu:menuitem menu:id=".uno:DBDSAdvancedSettings"/>
+ </menu:menupopup>
+ </menu:menu>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:DBDatabaseObjectsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DBViewTables" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:DBViewQueries" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:DBViewForms" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:DBViewReports" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menu menu:id=".uno:DBPreview">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DBDisablePreview" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:DBShowDocInfoPreview" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:DBShowDocPreview" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:DBSort">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Sortup"/>
+ <menu:menuitem menu:id=".uno:SortDown"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:DBRefreshTables"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DBNewForm" menu:helpid="12305" menu:label="" />
+ <menu:menuitem menu:id=".uno:DBNewReport" menu:helpid="12316" menu:label="" />
+ <menu:menuitem menu:id=".uno:DBNewQuery" menu:helpid="38873" menu:label="" />
+ <menu:menuitem menu:id=".uno:DBNewQuerySql" menu:helpid="38841" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DBNewTable"/>
+ <menu:menuitem menu:id=".uno:DBNewView"/>
+ <menu:menuitem menu:id=".uno:DBNewViewSQL"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DBNewFolder"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DBRelationDesign"/>
+ <menu:menuitem menu:id=".uno:DBUserAdmin"/>
+ <menu:menuitem menu:id=".uno:DBTableFilter"/>
+ <menu:menuitem menu:id=".uno:DBDirectSQL"/>
+ <menu:menuitem menu:id=".uno:DBMigrateScripts"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:OpenXMLFilterSettings"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
+
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbapp/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbapp/statusbar/statusbar.xml
new file mode 100644
index 000000000000..ca0ad5fbdaa6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbapp/statusbar/statusbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:DBStatusType" statusbar:align="left" statusbar:autosize="true" statusbar:width="50" statusbar:helpid="helpid:12308"/>
+ <statusbar:statusbaritem xlink:href=".uno:DBStatusDBName" statusbar:align="left" statusbar:autosize="true" statusbar:width="70" statusbar:helpid="helpid:12309"/>
+ <statusbar:statusbaritem xlink:href=".uno:DBStatusUserName" statusbar:align="left" statusbar:autosize="true" statusbar:width="70" statusbar:helpid="helpid:12310"/>
+ <statusbar:statusbaritem xlink:href=".uno:DBStatusHostName" statusbar:align="left" statusbar:autosize="true" statusbar:width="70" statusbar:helpid="helpid:12311"/>
+</statusbar:statusbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/formobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/formobjectbar.xml
new file mode 100644
index 000000000000..b8f555a80d8c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/formobjectbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DBFormOpen" toolbar:helpid="helpid:12286" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBFormEdit" toolbar:helpid="helpid:12285" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBFormDelete" toolbar:helpid="helpid:12283" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBFormRename" toolbar:helpid="helpid:12284" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/queryobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/queryobjectbar.xml
new file mode 100644
index 000000000000..ad67b7c4d3e6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/queryobjectbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DBQueryOpen" toolbar:helpid="helpid:12282" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBQueryEdit" toolbar:helpid="helpid:12281" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBQueryDelete" toolbar:helpid="helpid:12279" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBQueryRename" toolbar:helpid="helpid:12280" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/reportobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/reportobjectbar.xml
new file mode 100644
index 000000000000..d9fb154df0c2
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/reportobjectbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DBReportOpen" toolbar:helpid="helpid:12290" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBReportEdit" toolbar:helpid="helpid:12289" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBReportDelete" toolbar:helpid="helpid:12287" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBReportRename" toolbar:helpid="helpid:12288" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/tableobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/tableobjectbar.xml
new file mode 100644
index 000000000000..66a2dd4cca98
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/tableobjectbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DBTableOpen" toolbar:helpid="helpid:12278" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBTableEdit" toolbar:helpid="helpid:12277" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBTableDelete" toolbar:helpid="helpid:12275" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBTableRename" toolbar:helpid="helpid:12276" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/toolbar.xml
new file mode 100644
index 000000000000..ad003449cedd
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbapp/toolbar/toolbar.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="helpid:5537" toolbar:text="" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="helpid:5501" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="helpid:5505" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="helpid:5712" toolbar:text="" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="helpid:10712" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="helpid:10713" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DBNewForm" toolbar:helpid="helpid:5500" toolbar:text="" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex" toolbar:helpid="helpid:5411" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbbrowser/menubar/compat.xml b/test/user-template/user/config/soffice.cfg/modules/dbbrowser/menubar/compat.xml
new file mode 100644
index 000000000000..1e224627c50f
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbbrowser/menubar/compat.xml
@@ -0,0 +1 @@
+<compat/>
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbbrowser/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbbrowser/toolbar/toolbar.xml
new file mode 100644
index 000000000000..54bfcda90988
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbbrowser/toolbar/toolbar.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="helpid:38991" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DSBEditDoc" toolbar:helpid="helpid:6312" toolbar:text="" toolbar:style="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="helpid:5710" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="helpid:5712" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="helpid:38992" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="helpid:10725" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="helpid:10724" toolbar:text="" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="helpid:10714" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="helpid:10712" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="helpid:10713" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="helpid:10716" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="helpid:10723" toolbar:text="" toolbar:style="" />
+ <toolbar:toolbaritem xlink:href=".uno:FilterCrit" toolbar:helpid="helpid:10715" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="helpid:10711" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DSBInsertColumns" toolbar:helpid="helpid:12202" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DSBInsertContent" toolbar:helpid="helpid:12201" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DSBFormLetter" toolbar:helpid="helpid:12203" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DSBDocumentDataSource" toolbar:helpid="helpid:12252" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DSBrowserExplorer" toolbar:helpid="helpid:10764" toolbar:text="" toolbar:style="" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbquery/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/dbquery/menubar/menubar.xml
new file mode 100644
index 000000000000..2d6ec8d05abc
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbquery/menubar/menubar.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DBDistinctValues"/>
+ <menu:menuitem menu:id=".uno:SbaNativeSql"/>
+ <menu:menuitem menu:id=".uno:DBClearQuery"/>
+ <menu:menuitem menu:id=".uno:SbaExecuteSql"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DBViewFunctions"/>
+ <menu:menuitem menu:id=".uno:DBViewTableNames"/>
+ <menu:menuitem menu:id=".uno:DBViewAliases"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DBChangeDesignMode"/>
+ <menu:menuitem menu:id=".uno:DBQueryPreview"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DBAddRelation"/>
+ <menu:menuitem menu:id=".uno:AddTable"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
+
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/designobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/designobjectbar.xml
new file mode 100644
index 000000000000..894e725fde7e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/designobjectbar.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:AddTable" toolbar:helpid="helpid:10722" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DBViewFunctions" toolbar:helpid="helpid:12297" toolbar:text="" toolbar:style="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBViewTableNames" toolbar:helpid="helpid:12298" toolbar:text="" toolbar:style="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBViewAliases" toolbar:helpid="helpid:12299" toolbar:text="" toolbar:style="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBDistinctValues" toolbar:helpid="helpid:12300" toolbar:text="" toolbar:style="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/sqlobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/sqlobjectbar.xml
new file mode 100644
index 000000000000..27b4825e5539
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/sqlobjectbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SbaNativeSql" toolbar:helpid="helpid:10720" toolbar:text="" toolbar:style="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/toolbar.xml
new file mode 100644
index 000000000000..790ee57c6b53
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbquery/toolbar/toolbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:text="" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:text="" toolbar:style="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SbaExecuteSql" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBChangeDesignMode" toolbar:text="" toolbar:style="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DBClearQuery" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbrelation/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/dbrelation/menubar/menubar.xml
new file mode 100644
index 000000000000..b7460a447e54
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbrelation/menubar/menubar.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DBAddRelation"/>
+ <menu:menuitem menu:id=".uno:AddTable"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
+
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbrelation/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbrelation/toolbar/toolbar.xml
new file mode 100644
index 000000000000..f7f79fff538d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbrelation/toolbar/toolbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="helpid:5505" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" toolbar:text="" toolbar:style="" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="helpid:5701" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="helpid:5700" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AddTable" toolbar:helpid="helpid:10722" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DBAddRelation" toolbar:helpid="helpid:12296" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/menubar/menubar.xml
new file mode 100644
index 000000000000..9993288d8601
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/menubar/menubar.xml
@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ExportReportTo">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TextDocument"/>
+ <menu:menuitem menu:id=".uno:Spreadsheet"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menu menu:id=".uno:Select">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuitem menu:id=".uno:SelectAllLabels"/>
+ <menu:menuitem menu:id=".uno:SelectAllEdits"/>
+ <menu:menuitem menu:id=".uno:SelectReport"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Delete"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PageHeaderFooter"/>
+ <menu:menuitem menu:id=".uno:ReportHeaderFooter"/>
+ <menu:menuitem menu:id=".uno:ColumnHeaderFooter"/>
+ <menu:menuseparator/>
+
+ <menu:menu menu:id=".uno:EditShapeMenu">
+ <menu:menupopup>
+ <!--
+ <menu:menu menu:id=".uno:ArrangeMenu">
+ <menu:menupopup>
+-->
+ <menu:menuitem menu:id=".uno:BringToFront"/>
+ <menu:menuitem menu:id=".uno:ObjectBackOne"/>
+ <menu:menuitem menu:id=".uno:ObjectForwardOne"/>
+ <menu:menuitem menu:id=".uno:SendToBack"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetObjectToForeground"/>
+ <menu:menuitem menu:id=".uno:SetObjectToBackground"/>
+ <!--
+ </menu:menupopup>
+ </menu:menu>
+-->
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:EditControlMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:ObjectAlign" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ObjectAlignLeft"/>
+ <menu:menuitem menu:id=".uno:AlignCenter"/>
+ <menu:menuitem menu:id=".uno:ObjectAlignRight"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AlignUp"/>
+ <menu:menuitem menu:id=".uno:AlignMiddle"/>
+ <menu:menuitem menu:id=".uno:AlignDown"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:ObjectResize" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SmallestWidth"/>
+ <menu:menuitem menu:id=".uno:GreatestWidth"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SmallestHeight"/>
+ <menu:menuitem menu:id=".uno:GreatestHeight"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:SectionAlignmentMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SectionAlignLeft"/>
+ <menu:menuitem menu:id=".uno:SectionAlignRight"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SectionAlignTop"/>
+ <menu:menuitem menu:id=".uno:SectionAlignBottom"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:SectionShrinkMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SectionShrink"/>
+ <menu:menuitem menu:id=".uno:SectionShrinkTop"/>
+ <menu:menuitem menu:id=".uno:SectionShrinkBottom"/>
+ </menu:menupopup>
+ </menu:menu>
+
+
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExecuteReport"/>
+ </menu:menupopup>
+ </menu:menu>
+
+
+ <menu:menu menu:id=".uno:ViewMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SwitchControlDesignMode"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ControlProperties"/>
+ <menu:menuitem menu:id=".uno:AddField"/>
+ <menu:menuitem menu:id=".uno:DbSortingAndGrouping"/>
+ <menu:menuitem menu:id=".uno:ReportNavigator"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowRuler"/>
+ <menu:menu menu:id=".uno:GridMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:GridVisible"/>
+ <menu:menuitem menu:id=".uno:GridUse"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:SnapLinesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelplinesMove"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertPageNumberField"/>
+ <menu:menuitem menu:id=".uno:InsertDateTimeField"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ReportControlMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectObject"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ControlProperties"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Label" />
+ <menu:menuitem menu:id=".uno:Edit" />
+ <menu:menuitem menu:id=".uno:ImageControl" />
+ <menu:menuitem menu:id=".uno:InsertObjectChart" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:HFixedLine" />
+ <menu:menuitem menu:id=".uno:VFixedLine" />
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:GraphicMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertGraphic"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:ShapesMenu" >
+ <menu:menupopup>
+
+ <menu:menu menu:id=".uno:BasicShapesMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:BasicShapes.rectangle"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.round-rectangle"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.quadrat"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.round-quadrat"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.circle"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.ellipse"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:BasicShapes.circle-pie"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.isosceles-triangle"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.right-triangle"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.trapezoid"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.diamond"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.parallelogram"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:BasicShapes.pentagon"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.hexagon"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.octagon"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.cross"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.ring"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.block-arc"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:BasicShapes.can"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.cube"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.paper"/>
+ <menu:menuitem menu:id=".uno:BasicShapes.frame"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:SymbolShapesMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SymbolShapes.smiley"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.sun"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.moon"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.lightning"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.heart"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.flower"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.cloud"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.forbidden"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.puzzle"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.bracket-pair"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.left-bracket"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.right-bracket"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.brace-pair"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.left-brace"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.right-brace"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.quad-bevel"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.octagon-bevel"/>
+ <menu:menuitem menu:id=".uno:SymbolShapes.diamond-bevel"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:ArrowShapesMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ArrowShapes.left-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.right-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.up-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.down-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.left-right-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.up-down-arrow"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.up-right-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.up-right-down-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.quad-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.corner-right-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.split-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.striped-right-arrow"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.notched-right-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.pentagon-right"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.chevron"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.right-arrow-callout"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.left-arrow-callout"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.up-arrow-callout"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.down-arrow-callout"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.left-right-arrow-callout"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.up-down-arrow-callout"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.up-right-arrow-callout"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.quad-arrow-callout"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.circular-arrow"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.split-round-arrow"/>
+ <menu:menuitem menu:id=".uno:ArrowShapes.s-sharped-arrow"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:FlowChartShapesMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-process"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-alternate-process"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-decision"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-data"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-predefined-process"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-internal-storage"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-document"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-multidocument"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-terminator"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-preparation"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-manual-input"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-manual-operation"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-connector"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-off-page-connector"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-card"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-punched-tape"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-summing-junction"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-or"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-collate"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-sort"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-extract"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-merge"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-stored-data"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-delay"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-sequential-access"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-magnetic-disk"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-direct-access-storage"/>
+ <menu:menuitem menu:id=".uno:FlowChartShapes.flowchart-display"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:CalloutShapesMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CalloutShapes.rectangular-callout" />
+ <menu:menuitem menu:id=".uno:CalloutShapes.round-rectangular-callout" />
+ <menu:menuitem menu:id=".uno:CalloutShapes.round-callout" />
+ <menu:menuitem menu:id=".uno:CalloutShapes.cloud-callout" />
+ <menu:menuitem menu:id=".uno:CalloutShapes.line-callout-1" />
+ <menu:menuitem menu:id=".uno:CalloutShapes.line-callout-2" />
+ <menu:menuitem menu:id=".uno:CalloutShapes.line-callout-3" />
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menu menu:id=".uno:StarShapesMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:StarShapes.bang"/>
+ <menu:menuitem menu:id=".uno:StarShapes.star4"/>
+ <menu:menuitem menu:id=".uno:StarShapes.star5"/>
+ <menu:menuitem menu:id=".uno:StarShapes.star6"/>
+ <menu:menuitem menu:id=".uno:StarShapes.star8"/>
+ <menu:menuitem menu:id=".uno:StarShapes.star12"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:StarShapes.star24"/>
+ <menu:menuitem menu:id=".uno:StarShapes.concave-star6"/>
+ <menu:menuitem menu:id=".uno:StarShapes.vertical-scroll"/>
+ <menu:menuitem menu:id=".uno:StarShapes.horizontal-scroll"/>
+ <menu:menuitem menu:id=".uno:StarShapes.signet"/>
+ <menu:menuitem menu:id=".uno:StarShapes.doorplate"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ </menu:menupopup>
+ </menu:menu>
+
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ConditionalFormatting"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FontDialog"/>
+ <menu:menuitem menu:id=".uno:PageDialog"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ArrangeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:BringToFront"/>
+ <menu:menuitem menu:id=".uno:ObjectBackOne"/>
+ <menu:menuitem menu:id=".uno:ObjectForwardOne"/>
+ <menu:menuitem menu:id=".uno:SendToBack"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetObjectToForeground"/>
+ <menu:menuitem menu:id=".uno:SetObjectToBackground"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectAlign" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ObjectAlignLeft"/>
+ <menu:menuitem menu:id=".uno:AlignCenter"/>
+ <menu:menuitem menu:id=".uno:ObjectAlignRight"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AlignUp"/>
+ <menu:menuitem menu:id=".uno:AlignMiddle"/>
+ <menu:menuitem menu:id=".uno:AlignDown"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectResize" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SmallestWidth"/>
+ <menu:menuitem menu:id=".uno:GreatestWidth"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SmallestHeight"/>
+ <menu:menuitem menu:id=".uno:GreatestHeight"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Distribution"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu" >
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:MacrosMenu" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuitem menu:id=".uno:MacroSignature"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuitem menu:id=".uno:HelpTip"/>
+ <menu:menuitem menu:id=".uno:ActiveHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:HelperDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/statusbar/statusbar.xml
new file mode 100644
index 000000000000..7e50780b633d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/statusbar/statusbar.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130" statusbar:helpid="helpid:11065"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="35" statusbar:helpid="helpid:10000"/>
+</statusbar:statusbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/Formatting.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/Formatting.xml
new file mode 100644
index 000000000000..2fc8494938d4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/Formatting.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:visible="false" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/alignmentbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/alignmentbar.xml
new file mode 100644
index 000000000000..1c4a05228a07
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/alignmentbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignLeft"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignCenter"/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignRight"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignUp"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignMiddle"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignDown"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..62f2e5e2d534
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..e26df54f29ab
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper"/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..5a37c8de0301
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/drawbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/drawbar.xml
new file mode 100644
index 000000000000..07778059053a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/drawbar.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:style="dropdown"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:style="dropdown"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:style="dropdown"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes" toolbar:style="dropdown"/>
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes" toolbar:style="dropdown"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes" toolbar:style="dropdown"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..d3e649930942
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/reportcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/reportcontrols.xml
new file mode 100644
index 000000000000..ac460a3ba77c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/reportcontrols.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:style="radio auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Label" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Edit" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ImageControl" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:style="radio auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HFixedLine" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:VFixedLine" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:style="radio auto" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/resizebar.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/resizebar.xml
new file mode 100644
index 000000000000..864f588b976b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/resizebar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SmallestWidth"/>
+ <toolbar:toolbaritem xlink:href=".uno:GreatestWidth"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SmallestHeight"/>
+ <toolbar:toolbaritem xlink:href=".uno:GreatestHeight"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/sectionalignmentbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/sectionalignmentbar.xml
new file mode 100644
index 000000000000..fc21516735a5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/sectionalignmentbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SectionAlignLeft"/>
+ <toolbar:toolbaritem xlink:href=".uno:SectionAlignRight"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SectionAlignTop"/>
+ <toolbar:toolbaritem xlink:href=".uno:SectionAlignBottom"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/sectionshrinkbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/sectionshrinkbar.xml
new file mode 100644
index 000000000000..0064ce8501b3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/sectionshrinkbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SectionShrink"/>
+ <toolbar:toolbaritem xlink:href=".uno:SectionShrinkTop"/>
+ <toolbar:toolbaritem xlink:href=".uno:SectionShrinkBottom"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/starshapes.xml
new file mode 100644
index 000000000000..820e9c07434d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..4269c1d42e08
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/toolbar.xml
new file mode 100644
index 000000000000..55d77cb75f97
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbreport/toolbar/toolbar.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:Save" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" />
+ <toolbar:toolbaritem xlink:href=".uno:Copy" />
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:text="" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" />
+ <toolbar:toolbaritem xlink:href=".uno:Redo" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AddField" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ReportNavigator" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:DbSortingAndGrouping" />
+ <toolbar:toolbaritem xlink:href=".uno:ExecuteReport" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex" />
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbtable/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/dbtable/menubar/menubar.xml
new file mode 100644
index 000000000000..ede5eed2c224
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbtable/menubar/menubar.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DBIndexDesign"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
+
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbtable/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbtable/toolbar/toolbar.xml
new file mode 100644
index 000000000000..f601211ca3d2
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbtable/toolbar/toolbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="helpid:5505" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" toolbar:text="" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" toolbar:text="" toolbar:style="" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DBIndexDesign" toolbar:helpid="helpid:12251" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="helpid:5710" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="helpid:5712" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="helpid:5701" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="helpid:5700" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbtdata/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/dbtdata/menubar/menubar.xml
new file mode 100644
index 000000000000..79fe68a2d7d8
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbtdata/menubar/menubar.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormSlots/undoRecord"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FormSlots/saveRecord"/>
+ <menu:menuitem menu:id=".uno:FormSlots/deleteRecord"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DSBEditDoc"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormSlots/insertRecord"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
+
diff --git a/test/user-template/user/config/soffice.cfg/modules/dbtdata/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/dbtdata/toolbar/toolbar.xml
new file mode 100644
index 000000000000..09b143b04c1d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/dbtdata/toolbar/toolbar.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="helpid:38991" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DSBEditDoc" toolbar:helpid="helpid:6312" toolbar:text="" toolbar:style="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="helpid:5710" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="helpid:5712" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="helpid:38992" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="helpid:10725" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="helpid:10724" toolbar:text="" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="helpid:10714" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="helpid:10712" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="helpid:10713" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="helpid:10716" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="helpid:10723" toolbar:text="" toolbar:style="" />
+ <toolbar:toolbaritem xlink:href=".uno:FilterCrit" toolbar:helpid="helpid:10715" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="helpid:10711" toolbar:text="" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sbibliography/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/sbibliography/menubar/menubar.xml
new file mode 100644
index 000000000000..817473af0e73
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sbibliography/menubar/menubar.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuitem menu:id=".uno:VersionDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SendToMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PrintPreview"/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Bib/Mapping"/>
+ <menu:menuitem menu:id=".uno:Bib/sdbsource"/>
+ <menu:menuitem menu:id=".uno:Bib/DeleteRecord"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Bib/InsertRecord"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Bib/standardFilter"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/layout/insert-sheet.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/layout/insert-sheet.xml
new file mode 100644
index 000000000000..35a55e405e7a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/layout/insert-sheet.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated XML files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<modaldialog sizeable="true" closeable="true" moveable="true" output-size="true" id="RID_SCDLG_INSERT_TABLE" sv-look="true" _title="Insert Sheet" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
+ <vbox spacing="5" border="5">
+ <fixedline id="FL_POSITION" _text="Position"/>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5">
+ <radiobutton radiogroup="insert-sheet-position" id="RB_BEFORE" tabstop="true" _label="B~efore current sheet"/>
+ <radiobutton radiogroup="insert-sheet-position" id="RB_BEHIND" tabstop="true" _label="~After current sheet"/>
+ </vbox>
+ </hbox>
+ <fixedline id="FL_TABLE" _text="Sheet"/>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5">
+ <radiobutton radiogroup="insert-sheet-source" id="RB_NEW" _label="~New sheet"/>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5" cnt:fill="false" cnt:expand="false">
+ <fixedtext id="FT_COUNT" _label="N~o. of sheets"/>
+ <fixedtext id="FT_NAME" _label="Na~me"/>
+ </vbox>
+ <vbox>
+ <hbox>
+ <numericfield has_border="true" maximum="256" minimum="1" repeat="true" id="NF_COUNT" spin="true" spin-size="1" tabstop="true" value="1" cnt:fill="true" cnt:expand="true"/>
+ </hbox>
+ <edit has_border="true" id="ED_TABNAME" cnt:fill="true" cnt:expand="true"/>
+ </vbox>
+ </hbox>
+ </vbox>
+ </hbox>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5">
+ <radiobutton radiogroup="insert-sheet-source" id="RB_FROMFILE" _label="~From file"/>
+ <hbox>
+ <vbox cnt:padding="13" spacing="5">
+ <hbox>
+ <multilistbox auto-hscroll="true" has_border="true" id="LB_TABLES" simple-mode="true" string-item-list=" : : : : " cnt:fill="true" cnt:expand="true"/>
+ <vbox cnt:fill="false" cnt:expand="false" spacing="5">
+ <pushbutton id="BTN_BROWSE" _label="~Browse..." cnt:expand="false"/>
+ <checkbox id="CB_LINK" _label="Lin~k" cnt:expand="false"/>
+ <flow/>
+ </vbox>
+ </hbox>
+ <fixedtext id="FT_PATH" label="FT-PATH"/>
+ </vbox>
+ </hbox>
+ </vbox>
+ </hbox>
+ <dialogbuttonhbox border="5" spacing="5">
+ <okbutton defbutton="true" id="BTN_OK"/>
+ <cancelbutton id="BTN_CANCEL"/>
+ <helpbutton id="BTN_HELP"/>
+ </dialogbuttonhbox>
+ </vbox>
+</modaldialog>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/layout/move-copy-sheet.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/layout/move-copy-sheet.xml
new file mode 100644
index 000000000000..3d26db1aa73d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/layout/move-copy-sheet.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated XML files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<modaldialog sizeable="true" closeable="true" help-id="FID_TAB_MOVE" moveable="true" output-size="true" id="RID_SCDLG_MOVETAB" sv-look="true" _title="Move/Copy Sheet" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container">
+ <vbox spacing="5" border="5">
+ <string id="STR_NEWDOC" _text="- new document -"/>
+ <fixedtext id="FT_DEST" _label="To ~document"/>
+ <listbox has_border="true" dropdown="true" id="LB_DEST" tabstop="true"/>
+ <fixedtext id="FT_INSERT" _label="~Insert before"/>
+ <listbox has_border="true" id="LB_INSERT" tabstop="true" string-item-list=" : : : : " />
+ <checkbox id="BTN_COPY" tabstop="true" _label="~Copy"/>
+ <dialogbuttonhbox border="5" spacing="5">
+ <flow/>
+ <cancelbutton id="BTN_CANCEL" tabstop="true"/>
+ <helpbutton id="BTN_HELP" tabstop="true"/>
+ <okbutton defbutton="true" id="BTN_OK" tabstop="true"/>
+ </dialogbuttonhbox>
+ </vbox>
+</modaldialog>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/layout/sort-options.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/layout/sort-options.xml
new file mode 100644
index 000000000000..a409ac2d530a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/layout/sort-options.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated XML files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<tabpage help-id="HID_SCPAGE_SORT_OPTIONS"
+ id="RID_SCPAGE_SORT_OPTIONS"
+ sv-look="true" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container"
+ optimumsize="true"
+ sizeable="true" moveable="true">
+ <vbox spacing="4" border="5">
+ <string id="STR_COL_LABEL" _text="Range contains column la~bels"/>
+ <string id="STR_ROW_LABEL" _text="Range contains ~row labels"/>
+ <string id="SCSTR_UNDEFINED" _text="- undefined -"/>
+ <vbox spacing="4" border="5">
+ <checkbox id="BTN_CASESENSITIVE" tabstop="true" _label="Case ~sensitive"/>
+ <checkbox id="BTN_LABEL" tabstop="true"/>
+ <checkbox id="BTN_FORMATS" tabstop="true" _label="Include ~formats"/>
+ <checkbox id="BTN_NATURALSORT" tabstop="true" _label="Enable ~natural sort"/>
+ <checkbox id="BTN_COPYRESULT" tabstop="true" _label="~Copy sort results to:"/>
+ <hbox>
+ <listbox has_border="true" dropdown="true" id="LB_OUTAREA" tabstop="true"/>
+ <edit has_border="true" disable="true" id="ED_OUTAREA" tabstop="true"/>
+ </hbox>
+ <checkbox id="BTN_SORT_USER" tabstop="true" _label="Custom sort ~order"/>
+ <listbox has_border="true" disable="true" dropdown="true" id="LB_SORT_USER" tabstop="true"/>
+ <hbox>
+ <fixedtext id="FT_LANGUAGE" _label="~Language"/>
+ <fixedtext id="FT_ALGORITHM" _label="O~ptions"/>
+ </hbox>
+ <hbox>
+ <svxlanguagebox has_border="true" dropdown="true" id="LB_LANGUAGE" sort="true" tabstop="true" _string-item-list="Default"/>
+ <listbox has_border="true" dropdown="true" id="LB_ALGORITHM" tabstop="true"/>
+ </hbox>
+ <fixedline id="FL_DIRECTION" _text="Direction"/>
+ <radiobutton id="BTN_TOP_DOWN" radiogroup="sort-options" tabstop="true" _label="~Top to bottom (sort rows)"/>
+ <radiobutton id="BTN_LEFT_RIGHT" radiogroup="sort-options" tabstop="true" _label="L~eft to right (sort columns)"/>
+ </vbox>
+ </vbox>
+</tabpage>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/layout/string-input.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/layout/string-input.xml
new file mode 100644
index 000000000000..b1aed5197c17
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/layout/string-input.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- This is a template. i18n translation is not performed in-place;
+ i18n translated XML files are generated from this template by
+ transex3/layout/tralay. !-->
+
+<modaldialog sizeable="true" closeable="false" moveable="true" output-size="true" id="RID_SCDLG_STRINPUT" sv-look="true" xmlns="http://openoffice.org/2007/layout" xmlns:cnt="http://openoffice.org/2007/layout/container" title="Insert String">
+ <vbox spacing="5" border="5">
+ <fixedtext id="FT_LABEL" label="FT-LABEL"/>
+ <edit has_border="true" id="ED_INPUT" tabstop="true"/>
+ <dialogbuttonhbox border="5" spacing="5">
+ <okbutton defbutton="true" id="BTN_OK" tabstop="true"/>
+ <cancelbutton id="BTN_CANCEL" tabstop="true"/>
+ <helpbutton id="BTN_HELP" tabstop="true"/>
+ </dialogbuttonhbox>
+ </vbox>
+</modaldialog>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/menubar/menubar.xml
new file mode 100644
index 000000000000..f59549918e9a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/menubar/menubar.xml
@@ -0,0 +1,456 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuitem menu:id=".uno:VersionDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menuitem menu:id=".uno:ExportToPDF"/>
+ <menu:menu menu:id=".uno:SendTo">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsOOo"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsMS"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsPDF"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menuitem menu:id=".uno:Signature"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WebHtml"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PrintPreview"/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuitem menu:id=".uno:Repeat"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:PasteSpecial"/>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ChangesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TraceChangeMode"/>
+ <menu:menuitem menu:id=".uno:ProtectTraceChangeMode"/>
+ <menu:menuitem menu:id=".uno:ShowChanges"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AcceptChanges"/>
+ <menu:menuitem menu:id=".uno:CommentChange"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MergeDocuments"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:CompareDocuments"/>
+ <menu:menuitem menu:id="vnd.sun.star.findbar:FocusToFindbar"/>
+ <menu:menuitem menu:id=".uno:SearchDialog"/>
+ <menu:menuitem menu:id=".uno:EditHeaderAndFooter"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:FillCellsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FillDown"/>
+ <menu:menuitem menu:id=".uno:FillRight"/>
+ <menu:menuitem menu:id=".uno:FillUp"/>
+ <menu:menuitem menu:id=".uno:FillLeft"/>
+ <menu:menuitem menu:id=".uno:FillTable"/>
+ <menu:menuitem menu:id=".uno:FillSeries"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:Delete"/>
+ <menu:menuitem menu:id=".uno:DeleteCell"/>
+ <menu:menu menu:id=".uno:EditSheetMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Move"/>
+ <menu:menuitem menu:id=".uno:SelectTables"/>
+ <menu:menuitem menu:id=".uno:Remove"/>
+ <menu:menuitem menu:id=".uno:TableEvents"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:DelBreakMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DeleteRowbreak"/>
+ <menu:menuitem menu:id=".uno:DeleteColumnbreak"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:EditLinks"/>
+ <menu:menuitem menu:id=".uno:PlugInsActive"/>
+ <menu:menuitem menu:id=".uno:ImageMapDialog"/>
+ <menu:menuitem menu:id=".uno:ObjectMenue"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NormalViewMode" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:PagebreakMode" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:InputLineVisible"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewRowColumnHeaders"/>
+ <menu:menuitem menu:id=".uno:ViewValueHighlighting"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewDataSourceBrowser"/>
+ <menu:menuitem menu:id=".uno:Navigator"/>
+ <menu:menuitem menu:id=".uno:TaskPane"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FullScreen"/>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:InsertBreakMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertRowBreak"/>
+ <menu:menuitem menu:id=".uno:InsertColumnBreak"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertCell"/>
+ <menu:menuitem menu:id=".uno:InsertRows"/>
+ <menu:menuitem menu:id=".uno:InsertColumns"/>
+ <menu:menuitem menu:id=".uno:Insert"/>
+ <menu:menuitem menu:id=".uno:InsertSheetFromFile"/>
+ <menu:menuitem menu:id=".uno:InsertExternalDataSource"/>
+ <menu:menuitem menu:id=".uno:InsertSymbol"/>
+ <menu:menu menu:id=".uno:FormattingMarkMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertNonBreakingSpace"/>
+ <menu:menuitem menu:id=".uno:InsertHardHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertSoftHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertZWSP"/>
+ <menu:menuitem menu:id=".uno:InsertZWNBSP"/>
+ <menu:menuitem menu:id=".uno:InsertLRM"/>
+ <menu:menuitem menu:id=".uno:InsertRLM"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:HyperlinkDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FunctionDialog"/>
+ <menu:menuitem menu:id=".uno:FunctionBox"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:NamesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DefineName"/>
+ <menu:menuitem menu:id=".uno:InsertName"/>
+ <menu:menuitem menu:id=".uno:CreateNames"/>
+ <menu:menuitem menu:id=".uno:DefineLabelRange"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertAnnotation"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:GraphicMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertGraphic"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertAVMedia"/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertObject"/>
+ <menu:menuitem menu:id=".uno:InsertPlugin"/>
+ <menu:menuitem menu:id=".uno:InsertSound"/>
+ <menu:menuitem menu:id=".uno:InsertVideo"/>
+ <menu:menuitem menu:id=".uno:InsertObjectStarMath"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertObjectChart"/>
+ <menu:menuitem menu:id=".uno:InsertObjectFloatingFrame"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ResetAttributes"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FormatCellDialog"/>
+ <menu:menu menu:id=".uno:RowMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:RowHeight"/>
+ <menu:menuitem menu:id=".uno:SetOptimalRowHeight"/>
+ <menu:menuitem menu:id=".uno:HideRow"/>
+ <menu:menuitem menu:id=".uno:ShowRow"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ColumnMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ColumnWidth"/>
+ <menu:menuitem menu:id=".uno:SetOptimalColumnWidth"/>
+ <menu:menuitem menu:id=".uno:HideColumn"/>
+ <menu:menuitem menu:id=".uno:ShowColumn"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:SheetMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:RenameTable"/>
+ <menu:menuitem menu:id=".uno:Hide"/>
+ <menu:menuitem menu:id=".uno:Show"/>
+ <menu:menuitem menu:id=".uno:SheetRightToLeft"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetTabBgColor"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:MergeCellsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ToggleMergeCells"/>
+ <menu:menuitem menu:id=".uno:MergeCells"/>
+ <menu:menuitem menu:id=".uno:SplitCell"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PageFormatDialog"/>
+ <menu:menu menu:id=".uno:PrintRangesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DefinePrintArea"/>
+ <menu:menuitem menu:id=".uno:AddPrintArea"/>
+ <menu:menuitem menu:id=".uno:DeletePrintArea"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:EditPrintArea"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FontDialog"/>
+ <menu:menuitem menu:id=".uno:ParagraphDialog"/>
+ <menu:menu menu:id=".uno:TransliterateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeCaseToSentenceCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToLower"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToUpper"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToTitleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToToggleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHalfWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToFullWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHiragana"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToKatakana"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:DesignerDialog"/>
+ <menu:menuitem menu:id=".uno:AutoFormat"/>
+ <menu:menuitem menu:id=".uno:ConditionalFormatDialog"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:AnchorMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetAnchorToPage" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToCell" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectAlign">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CommonAlignHorizontalDefault" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignLeft" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignHorizontalCenter" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignRight" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignJustified" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CommonAlignTop" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignVerticalCenter" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignBottom" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ArrangeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:BringToFront"/>
+ <menu:menuitem menu:id=".uno:ObjectForwardOne"/>
+ <menu:menuitem menu:id=".uno:ObjectBackOne"/>
+ <menu:menuitem menu:id=".uno:SendToBack"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetObjectToForeground"/>
+ <menu:menuitem menu:id=".uno:SetObjectToBackground"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FlipMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ObjectMirrorVertical"/>
+ <menu:menuitem menu:id=".uno:ObjectMirrorHorizontal"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:GroupMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormatGroup"/>
+ <menu:menuitem menu:id=".uno:FormatUngroup"/>
+ <menu:menuitem menu:id=".uno:EnterGroup"/>
+ <menu:menuitem menu:id=".uno:LeaveGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:DrawGraphicMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TransformDialog"/>
+ <menu:menuitem menu:id=".uno:FormatLine"/>
+ <menu:menuitem menu:id=".uno:FormatArea"/>
+ <menu:menuitem menu:id=".uno:TextAttributes"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ToggleObjectBezierMode"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:ControlProperties"/>
+ <menu:menuitem menu:id=".uno:FormProperties"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SpellDialog"/>
+ <menu:menu menu:id=".uno:LanguageMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HangulHanjaConversion"/>
+ <menu:menuitem menu:id=".uno:ChineseConversion"/>
+ <menu:menuitem menu:id=".uno:ThesaurusDialog"/>
+ <menu:menuitem menu:id=".uno:Hyphenate"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MoreDictionaries"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:AuditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ShowPrecedents"/>
+ <menu:menuitem menu:id=".uno:ClearArrowPrecedents"/>
+ <menu:menuitem menu:id=".uno:ShowDependents"/>
+ <menu:menuitem menu:id=".uno:ClearArrowDependents"/>
+ <menu:menuitem menu:id=".uno:ClearArrows"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowErrors"/>
+ <menu:menuitem menu:id=".uno:ShowInvalid"/>
+ <menu:menuitem menu:id=".uno:RefreshArrows"/>
+ <menu:menuitem menu:id=".uno:AutoRefreshArrows"/>
+ <menu:menuitem menu:id=".uno:AuditingFillMode"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:GoalSeekDialog"/>
+ <menu:menuitem menu:id=".uno:SolverDialog"/>
+ <menu:menuitem menu:id=".uno:ScenarioManager"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShareDocument"/>
+ <menu:menuitem menu:id=".uno:MergeDocuments"/>
+ <menu:menu menu:id=".uno:ProtectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Protect"/>
+ <menu:menuitem menu:id=".uno:ToolProtectionDocument"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:CellContentsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Calculate"/>
+ <menu:menuitem menu:id=".uno:AutomaticCalculation"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoComplete"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Gallery"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuitem menu:id=".uno:MacroSignature"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+
+ <menu:menuitem menu:id=".uno:OpenXMLFilterSettings"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:DataMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DefineDBName"/>
+ <menu:menuitem menu:id=".uno:SelectDB"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DataSort"/>
+ <menu:menu menu:id=".uno:FilterMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DataFilterAutoFilter"/>
+ <menu:menuitem menu:id=".uno:DataFilterStandardFilter"/>
+ <menu:menuitem menu:id=".uno:DataFilterSpecialFilter"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DataFilterRemoveFilter"/>
+ <menu:menuitem menu:id=".uno:DataFilterHideAutoFilter"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:DataForm"/>
+ <menu:menuitem menu:id=".uno:DataSubTotals"/>
+ <menu:menuitem menu:id=".uno:Validation"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TableOperationDialog"/>
+ <menu:menuitem menu:id=".uno:TextToColumns"/>
+ <menu:menuitem menu:id=".uno:DataConsolidate"/>
+ <menu:menu menu:id=".uno:GroupOutlineMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HideDetail"/>
+ <menu:menuitem menu:id=".uno:ShowDetail"/>
+ <menu:menuitem menu:id=".uno:Group"/>
+ <menu:menuitem menu:id=".uno:Ungroup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoOutline"/>
+ <menu:menuitem menu:id=".uno:ClearOutline"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:DataPilotMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DataDataPilotRun"/>
+ <menu:menuitem menu:id=".uno:RecalcPivotTable"/>
+ <menu:menuitem menu:id=".uno:DeletePivotTable"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DataAreaRefresh"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SplitWindow"/>
+ <menu:menuitem menu:id=".uno:FreezePanes"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/statusbar/statusbar.xml
new file mode 100644
index 000000000000..28dfaf480771
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/statusbar/statusbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:StatusDocPos" statusbar:align="left" statusbar:autosize="true" statusbar:width="58" statusbar:helpid="helpid:26114"/>
+ <statusbar:statusbaritem xlink:href=".uno:StatusPageStyle" statusbar:align="left" statusbar:autosize="true" statusbar:width="83" statusbar:helpid="helpid:26115"/>
+ <statusbar:statusbaritem xlink:href=".uno:InsertMode" statusbar:align="center" statusbar:width="41" statusbar:helpid="helpid:10221"/>
+ <statusbar:statusbaritem xlink:href=".uno:StatusSelectionMode" statusbar:align="center" statusbar:width="34" statusbar:helpid="helpid:26116"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="18" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+ <statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="center" statusbar:autosize="true" statusbar:ownerdraw="true" statusbar:width="212" statusbar:helpid="helpid:10224"/>
+ <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="140" statusbar:helpid="helpid:11065"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="35" statusbar:helpid="helpid:10000"/>
+</statusbar:statusbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/alignmentbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/alignmentbar.xml
new file mode 100644
index 000000000000..dbd7294e566c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/alignmentbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignLeft" toolbar:helpid="helpid:10131" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignCenter" toolbar:helpid="helpid:10132" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignRight" toolbar:helpid="helpid:10133" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignUp" toolbar:helpid="helpid:10134" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignMiddle" toolbar:helpid="helpid:10135" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignDown" toolbar:helpid="helpid:10136" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..4a53519494ea
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow" toolbar:helpid="helpid:11004" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..e65778305788
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame" toolbar:helpid="helpid:11002" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..91b957fa697a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" toolbar:helpid="helpid:11006" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/colorbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/colorbar.xml
new file mode 100644
index 000000000000..adcda76b5c3a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/colorbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GrafRed" toolbar:helpid="helpid:10865" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGreen" toolbar:helpid="helpid:10866" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafBlue" toolbar:helpid="helpid:10867" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafLuminance" toolbar:helpid="helpid:10863" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafContrast" toolbar:helpid="helpid:10864" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGamma" toolbar:helpid="helpid:10868" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/drawbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/drawbar.xml
new file mode 100644
index 000000000000..2407475a88f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/drawbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="10128"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+ <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
+ <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:helpid="11002"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:helpid="11003"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:helpid="11004"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes" toolbar:helpid="11005"/>
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes" toolbar:helpid="11006"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes" toolbar:helpid="11007"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="10126"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="10977"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/drawobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/drawobjectbar.xml
new file mode 100644
index 000000000000..8cd0a9bf8b67
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/drawobjectbar.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="10143"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineEndStyle" toolbar:helpid="10301"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineStyle" toolbar:helpid="10169"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineWidth" toolbar:helpid="10171"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineColor" toolbar:helpid="10172"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="10142"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="10164"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="26412"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToForeground" toolbar:helpid="10283"/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToBackground" toolbar:helpid="10282"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="10130"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/extrusionobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/extrusionobjectbar.xml
new file mode 100644
index 000000000000..148849db6ee7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/extrusionobjectbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltDown" toolbar:helpid="10961"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltUp" toolbar:helpid="10962"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltLeft" toolbar:helpid="10963"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltRight" toolbar:helpid="10964"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDepthFloater" toolbar:helpid="10965" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDirectionFloater" toolbar:helpid="10966" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionLightingFloater" toolbar:helpid="10967" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionSurfaceFloater" toolbar:helpid="10968" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:Extrusion3DColor" toolbar:helpid="10969" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/findbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/findbar.xml
new file mode 100644
index 000000000000..49e483e178a3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/findbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FindText"/>
+ <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
+ <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..bb1d1099dbd4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display" toolbar:helpid="helpid:11005" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fontworkobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fontworkobjectbar.xml
new file mode 100644
index 000000000000..32de621477dc
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fontworkobjectbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType" toolbar:helpid="helpid:10978" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkSameLetterHeights" toolbar:helpid="helpid:10979" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkAlignmentFloater" toolbar:helpid="helpid:10981" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkCharacterSpacingFloater" toolbar:helpid="helpid:10982" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fontworkshapetype.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fontworkshapetype.xml
new file mode 100644
index 000000000000..49b5b8173e0e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fontworkshapetype.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-plain-text" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-wave" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-inflate" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-stop" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-pour" toolbar:helpid="helpid:10978" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formatobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formatobjectbar.xml
new file mode 100644
index 000000000000..773befcc8ac7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formatobjectbar.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DesignerDialog" toolbar:helpid="helpid:5539" />
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:UnderlineDouble" toolbar:helpid="helpid:26648" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:26371" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="helpid:26373" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="helpid:26372" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignBlock" toolbar:helpid="helpid:26374" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleMergeCells" toolbar:helpid="helpid:26581" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="helpid:10907" />
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="helpid:10908" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="helpid:26375" toolbar:style="radio auto" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignVCenter" toolbar:helpid="helpid:26377" toolbar:style="radio auto" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="helpid:26376" toolbar:style="radio auto" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:NumberFormatCurrency" toolbar:helpid="helpid:26045" />
+ <toolbar:toolbaritem xlink:href=".uno:NumberFormatPercent" toolbar:helpid="helpid:26046" />
+ <toolbar:toolbaritem xlink:href=".uno:NumberFormatDate" toolbar:helpid="helpid:26053" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:NumberFormatScientific" toolbar:helpid="helpid:26055" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:NumberFormatStandard" toolbar:helpid="helpid:26052" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:NumberFormatIncDecimals" toolbar:helpid="helpid:26057" />
+ <toolbar:toolbaritem xlink:href=".uno:NumberFormatDecDecimals" toolbar:helpid="helpid:26058" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+ <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:26267" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:26268" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:26236" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:26237" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleSheetGrid" toolbar:helpid="helpid:26238" toolbar:visible="true" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formcontrols.xml
new file mode 100644
index 000000000000..e8060319e9f8
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formcontrols.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CheckBox" toolbar:helpid="helpid:10596" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Edit" toolbar:helpid="helpid:10599" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormattedField" toolbar:helpid="helpid:10728" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Pushbutton" toolbar:helpid="helpid:10594" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:RadioButton" toolbar:helpid="helpid:10595" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ListBox" toolbar:helpid="helpid:10600" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ComboBox" toolbar:helpid="helpid:10601" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Label" toolbar:helpid="helpid:10597" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SpinButton" toolbar:helpid="helpid:10769" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ScrollBar" toolbar:helpid="helpid:10768" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormDesignTools" toolbar:helpid="helpid:11046" />
+ <toolbar:toolbaritem xlink:href=".uno:MoreControls" toolbar:helpid="helpid:11045" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:UseWizards" toolbar:helpid="helpid:10727" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formdesign.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formdesign.xml
new file mode 100644
index 000000000000..5a74f41f361d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formdesign.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowFmExplorer" toolbar:helpid="helpid:10633" />
+ <toolbar:toolbaritem xlink:href=".uno:TabDialog" toolbar:helpid="helpid:10615" />
+ <toolbar:toolbaritem xlink:href=".uno:AddField" toolbar:helpid="helpid:10623" />
+ <toolbar:toolbaritem xlink:href=".uno:AutoControlFocus" toolbar:helpid="helpid:10763" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="helpid:10454" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="helpid:10455" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EnterGroup" toolbar:helpid="helpid:27096" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:LeaveGroup" toolbar:helpid="helpid:27097" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OpenReadOnly" toolbar:helpid="helpid:10709" />
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" />
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formsfilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formsfilterbar.xml
new file mode 100644
index 000000000000..be94f01b761f
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formsfilterbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterNavigator" toolbar:helpid="helpid:10732" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExecute" toolbar:helpid="helpid:10731" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExit" toolbar:helpid="helpid:10730" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formsnavigationbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formsnavigationbar.xml
new file mode 100644
index 000000000000..ce47a450e2f5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formsnavigationbar.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="10725"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecText" toolbar:helpid="10624"/>
+ <toolbar:toolbaritem xlink:href=".uno:AbsoluteRecord" toolbar:helpid="10622"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecFromText" toolbar:helpid="10625"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecTotal" toolbar:helpid="10626"/>
+ <toolbar:toolbaritem xlink:href=".uno:FirstRecord" toolbar:helpid="10616"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrevRecord" toolbar:helpid="10618"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextRecord" toolbar:helpid="10617"/>
+ <toolbar:toolbaritem xlink:href=".uno:LastRecord" toolbar:helpid="10619"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewRecord" toolbar:helpid="10620"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="10627"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="10630"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRecord" toolbar:helpid="10621"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="10724"/>
+ <toolbar:toolbaritem xlink:href=".uno:RefreshFormControl"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="10714"/>
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="10712"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="10713"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="10716"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="10723"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilter" toolbar:helpid="10729"/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="10711"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewFormAsGrid" toolbar:helpid="10761"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formtextobjectbar.xml
new file mode 100644
index 000000000000..dbdeaf675371
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/formtextobjectbar.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..5aecdda4fb04
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/graffilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/graffilterbar.xml
new file mode 100644
index 000000000000..287c33fe25e5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/graffilterbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterInvert" toolbar:helpid="helpid:34149" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSmooth" toolbar:helpid="helpid:34150" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSharpen" toolbar:helpid="helpid:34151" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRemoveNoise" toolbar:helpid="helpid:34152" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSolarize" toolbar:helpid="helpid:34159" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSepia" toolbar:helpid="helpid:34158" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPoster" toolbar:helpid="helpid:34156" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPopart" toolbar:helpid="helpid:34157" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSobel" toolbar:helpid="helpid:34153" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRelief" toolbar:helpid="helpid:34155" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterMosaic" toolbar:helpid="helpid:34154" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/graphicobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/graphicobjectbar.xml
new file mode 100644
index 000000000000..25eca7950842
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/graphicobjectbar.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterToolbox" toolbar:helpid="helpid:10469" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafMode" toolbar:helpid="helpid:10871" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ColorSettings" toolbar:helpid="helpid:11016" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafTransparence" toolbar:helpid="helpid:10869" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="helpid:10143" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="helpid:10142" />
+ <toolbar:toolbaritem xlink:href=".uno:FillShadow" toolbar:helpid="helpid:10299" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafAttrCrop" toolbar:helpid="helpid:10883" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:26412" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" />
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToForeground" toolbar:helpid="helpid:10283" />
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToBackground" toolbar:helpid="helpid:10282" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/insertbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/insertbar.xml
new file mode 100644
index 000000000000..5f5b73310ee4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/insertbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:helpid="helpid:10503" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="helpid:10241" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="helpid:6695" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="helpid:26063" />
+ <toolbar:toolbaritem xlink:href=".uno:DrawChart" toolbar:helpid="helpid:26071" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" toolbar:visible="false" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/insertcellsbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/insertcellsbar.xml
new file mode 100644
index 000000000000..c7b5b70cabcb
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/insertcellsbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertCellsDown" toolbar:helpid="helpid:26278" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertCellsRight" toolbar:helpid="helpid:26279" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:26267" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:26268" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/mediaobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/mediaobjectbar.xml
new file mode 100644
index 000000000000..2014343bf89b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/mediaobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AVMediaToolBox" toolbar:helpid="helpid:6693" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/moreformcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/moreformcontrols.xml
new file mode 100644
index 000000000000..cdcba63e9cc7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/moreformcontrols.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Imagebutton" toolbar:helpid="helpid:10604" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ImageControl" toolbar:helpid="helpid:10710" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FileControl" toolbar:helpid="helpid:10605" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:DateField" toolbar:helpid="helpid:10704" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:TimeField" toolbar:helpid="helpid:10705" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:NumericField" toolbar:helpid="helpid:10706" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CurrencyField" toolbar:helpid="helpid:10707" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:PatternField" toolbar:helpid="helpid:10708" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GroupBox" toolbar:helpid="helpid:10598" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Grid" toolbar:helpid="helpid:10603" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:NavigationBar" toolbar:helpid="helpid:10607" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/previewbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/previewbar.xml
new file mode 100644
index 000000000000..ef1acbe344ce
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/previewbar.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:PreviousPage" toolbar:helpid="helpid:26497" />
+ <toolbar:toolbaritem xlink:href=".uno:NextPage" toolbar:helpid="helpid:26496" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FirstPage" toolbar:helpid="helpid:26498" />
+ <toolbar:toolbaritem xlink:href=".uno:LastPage" toolbar:helpid="helpid:26499" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomIn" toolbar:helpid="helpid:26501" />
+ <toolbar:toolbaritem xlink:href=".uno:ZoomOut" toolbar:helpid="helpid:26502" />
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PageFormatDialog" toolbar:helpid="helpid:26295" />
+ <toolbar:toolbaritem xlink:href=".uno:EditHeaderAndFooter" toolbar:helpid="helpid:26235" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Margins" toolbar:helpid="helpid:26504" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ScalingFactor" toolbar:helpid="helpid:26505" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ClosePreview" toolbar:helpid="helpid:5325" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/standardbar.xml
new file mode 100644
index 000000000000..cb733829f67f
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/standardbar.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="helpid:5537"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:visible="false" toolbar:helpid="helpid:5500"/>
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="helpid:5501"/>
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="helpid:5505"/>
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:visible="false" toolbar:helpid="helpid:5502"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPreview" toolbar:helpid="helpid:5325"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellDialog" toolbar:helpid="helpid:20622"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellOnline" toolbar:helpid="helpid:12021"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="helpid:5710"/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711"/>
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="helpid:5712"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatPaintbrush" toolbar:helpid="helpid:5715"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="helpid:5701"/>
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="helpid:5700"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HyperlinkDialog" toolbar:helpid="helpid:5678"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortAscending" toolbar:helpid="helpid:26344"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortDescending" toolbar:helpid="helpid:26343"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="helpid:26155"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDraw" toolbar:helpid="helpid:10244"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="helpid:5961" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366"/>
+ <toolbar:toolbaritem xlink:href=".uno:Gallery" toolbar:helpid="helpid:5960"/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewDataSourceBrowser" toolbar:helpid="helpid:6660"/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="helpid:10000" toolbar:visible="false"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/starshapes.xml
new file mode 100644
index 000000000000..a2ff874d2fe7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate" toolbar:helpid="helpid:11007" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..0fa6aee313db
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel" toolbar:helpid="helpid:11003" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/textobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/textobjectbar.xml
new file mode 100644
index 000000000000..e76bd3970e13
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/textobjectbar.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:UnderlineDouble" toolbar:helpid="helpid:26648" toolbar:style="auto" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:10028" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="helpid:10030" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="helpid:10029" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignBlock" toolbar:helpid="helpid:10031" toolbar:style="radio auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:10294" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:10295" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="helpid:10907" />
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="helpid:10908" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/toolbar.xml
new file mode 100644
index 000000000000..e42964a86b0b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/toolbar.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertCtrl" toolbar:helpid="helpid:26626" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:InsCellsCtrl" toolbar:helpid="helpid:26627" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:InsObjCtrl" toolbar:helpid="helpid:26628" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:helpid="helpid:10593" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:10242" />
+ <toolbar:toolbaritem xlink:href=".uno:ChooseDesign" toolbar:helpid="helpid:26082" />
+ <toolbar:toolbaritem xlink:href=".uno:ThesaurusDialog" toolbar:helpid="helpid:10245" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DataFilterAutoFilter" toolbar:helpid="helpid:26325" />
+ <toolbar:toolbaritem xlink:href=".uno:DataFilterStandardFilter" toolbar:helpid="helpid:26323" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:DataFilterSpecialFilter" toolbar:helpid="helpid:26324" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:DataDataPilotRun" toolbar:helpid="helpid:26151" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EuroConverter" toolbar:helpid="helpid:26083" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DefineName" toolbar:helpid="helpid:26271" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:GoalSeekDialog" toolbar:helpid="helpid:26153" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Group" toolbar:helpid="helpid:26331" />
+ <toolbar:toolbaritem xlink:href=".uno:Ungroup" toolbar:helpid="helpid:26332" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/viewerbar.xml b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/viewerbar.xml
new file mode 100644
index 000000000000..d4d6a59d7ed5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/scalc/toolbar/viewerbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="helpid:5961" />
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="helpid:10000" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/schart/menubar/menubar.xml
new file mode 100644
index 000000000000..3c50167ef845
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/menubar/menubar.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect" menu:helpid="5537" menu:label="" />
+ <menu:menuitem menu:id=".uno:Open" menu:helpid="5501" menu:label="" />
+ <menu:menuitem menu:id=".uno:AutoPilotMenu" menu:helpid="6381" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc" menu:helpid="5503" menu:label="" />
+ <menu:menuitem menu:id=".uno:Save" menu:helpid="5505" menu:label="" />
+ <menu:menuitem menu:id=".uno:SaveAs" menu:helpid="5502" menu:label="" />
+ <menu:menuitem menu:id=".uno:SaveAll" menu:helpid="5309" menu:label="" />
+ <menu:menuitem menu:id=".uno:Reload" menu:helpid="5508" menu:label="" />
+ <menu:menuitem menu:id=".uno:VersionDialog" menu:helpid="6583" menu:label="" />
+ <menu:menuitem menu:id=".uno:SendMail" menu:helpid="5331" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties" menu:helpid="5535" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Print" menu:helpid="5504" menu:label="" />
+ <menu:menuitem menu:id=".uno:PrinterSetup" menu:helpid="5302" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit" menu:helpid="5300" menu:label="" />
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo" menu:helpid="5701" menu:label="" />
+ <menu:menuitem menu:id=".uno:Redo" menu:helpid="5700" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut" menu:helpid="5710" menu:label="" />
+ <menu:menuitem menu:id=".uno:Copy" menu:helpid="5711" menu:label="" />
+ <menu:menuitem menu:id=".uno:Paste" menu:helpid="5712" menu:label="" />
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AvailableToolbars" menu:label="" />
+ <menu:menuitem menu:id=".uno:StatusBarVisible" menu:helpid="5920" menu:label="" />
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow" menu:helpid="6680" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DiagramData" menu:helpid="30514" menu:label="" />
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertMenuTitles" menu:label="" />
+ <menu:menuitem menu:id=".uno:InsertMenuLegend" menu:label="" />
+ <menu:menuitem menu:id=".uno:InsertMenuAxes" menu:label="" />
+ <menu:menuitem menu:id=".uno:InsertMenuGrids" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertMenuDataLabels" menu:label="" />
+ <menu:menuitem menu:id=".uno:InsertMenuTrendlines" menu:label="" />
+ <menu:menuitem menu:id=".uno:InsertMenuMeanValues" menu:label="" />
+ <menu:menuitem menu:id=".uno:InsertMenuYErrorBars" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertSymbol" menu:helpid="10503" menu:label="" />
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormatSelection" menu:label="" />
+ <menu:menuitem menu:id=".uno:TransformDialog" menu:helpid="10087" menu:label="" />
+ <menu:menu menu:id=".uno:ArrangeRow" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Forward" menu:helpid="30594" menu:label="" />
+ <menu:menuitem menu:id=".uno:Backward" menu:helpid="30595" menu:label="" />
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ChartTitleMenu" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MainTitle" menu:helpid="30557" menu:label="" />
+ <menu:menuitem menu:id=".uno:SubTitle" menu:helpid="30558" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:XTitle" menu:helpid="30559" menu:label="" />
+ <menu:menuitem menu:id=".uno:YTitle" menu:helpid="30560" menu:label="" />
+ <menu:menuitem menu:id=".uno:ZTitle" menu:helpid="30561" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SecondaryXTitle" menu:label="" />
+ <menu:menuitem menu:id=".uno:SecondaryYTitle" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AllTitles" menu:helpid="30562" menu:label="" />
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:Legend" menu:helpid="30521" menu:label="" />
+ <menu:menu menu:id=".uno:DiagramAxisMenu" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DiagramAxisX" menu:helpid="30552" menu:label="" />
+ <menu:menuitem menu:id=".uno:DiagramAxisY" menu:helpid="30553" menu:label="" />
+ <menu:menuitem menu:id=".uno:DiagramAxisZ" menu:helpid="30554" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DiagramAxisA" menu:helpid="30616" menu:label="" />
+ <menu:menuitem menu:id=".uno:DiagramAxisB" menu:helpid="30617" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DiagramAxisAll" menu:helpid="30555" menu:label="" />
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:DiagramGridMenu" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DiagramGridYMain" menu:helpid="30564" menu:label="" />
+ <menu:menuitem menu:id=".uno:DiagramGridXMain" menu:helpid="30563" menu:label="" />
+ <menu:menuitem menu:id=".uno:DiagramGridZMain" menu:helpid="30565" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DiagramGridYHelp" menu:helpid="30579" menu:label="" />
+ <menu:menuitem menu:id=".uno:DiagramGridXHelp" menu:helpid="30578" menu:label="" />
+ <menu:menuitem menu:id=".uno:DiagramGridZHelp" menu:helpid="30580" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DiagramGridAll" menu:helpid="30566" menu:label="" />
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DiagramWall" menu:helpid="30524" menu:label="" />
+ <menu:menuitem menu:id=".uno:DiagramFloor" menu:helpid="30525" menu:label="" />
+ <menu:menuitem menu:id=".uno:DiagramArea" menu:helpid="30526" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DiagramType" menu:helpid="30528" menu:label="" />
+ <menu:menuitem menu:id=".uno:DataRanges" menu:helpid="30514" menu:label="" />
+ <menu:menuitem menu:id=".uno:View3D" menu:helpid="30527" menu:label="" />
+
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu" menu:label="" >
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:MacrosMenu" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder" menu:helpid="6669" menu:label="" />
+ <menu:menuitem menu:id=".uno:RunMacro" menu:helpid="40011" menu:label="" />
+ <menu:menu menu:id=".uno:ScriptOrganizer" menu:label="" />
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1" menu:helpid="40013" menu:label="" />
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog" menu:helpid="42772" />
+ <menu:menuitem menu:id=".uno:ConfigureDialog" menu:helpid="5904" menu:label="" />
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog" menu:helpid="31630" menu:label="" />
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList" menu:label="" >
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow" menu:helpid="5620" menu:label="" />
+ <menu:menuitem menu:id=".uno:CloseWin" menu:helpid="5621" menu:label="" />
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/schart/statusbar/statusbar.xml
new file mode 100644
index 000000000000..27af64165411
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/statusbar/statusbar.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:Context" statusbar:align="left" statusbar:autosize="true" statusbar:width="208" statusbar:helpid="helpid:5310"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:width="14" statusbar:helpid="helpid:5584"/>
+</statusbar:statusbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..4a53519494ea
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow" toolbar:helpid="helpid:11004" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..e65778305788
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame" toolbar:helpid="helpid:11002" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..91b957fa697a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" toolbar:helpid="helpid:11006" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/drawbar.xml b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/drawbar.xml
new file mode 100644
index 000000000000..f4017835635c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/drawbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="10128"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowEnd" toolbar:helpid="27173"/>
+ <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+ <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:style="dropdown" toolbar:helpid="11002"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:style="dropdown" toolbar:helpid="11003"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:style="dropdown" toolbar:helpid="11004"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes" toolbar:style="dropdown" toolbar:helpid="11005"/>
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes" toolbar:style="dropdown" toolbar:helpid="11006"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes" toolbar:style="dropdown" toolbar:helpid="11007"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..bb1d1099dbd4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display" toolbar:helpid="helpid:11005" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/standardbar.xml
new file mode 100644
index 000000000000..28b7f131af6a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/standardbar.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="helpid:5537" toolbar:text="" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:helpid="helpid:5500" toolbar:text="" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="helpid:5501" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="helpid:5505" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" toolbar:text="" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" toolbar:text="" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="helpid:5710" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="helpid:5712" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="helpid:5701" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="helpid:5700" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/starshapes.xml
new file mode 100644
index 000000000000..a2ff874d2fe7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate" toolbar:helpid="helpid:11007" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..0fa6aee313db
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel" toolbar:helpid="helpid:11003" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/toolbar.xml
new file mode 100644
index 000000000000..41d5bd41ab63
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/schart/toolbar/toolbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ChartElementSelector" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatSelection" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DiagramType" toolbar:helpid="helpid:30528" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:DiagramData" toolbar:helpid="helpid:30514" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleGridHorizontal" toolbar:helpid="helpid:30533" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleLegend" toolbar:helpid="helpid:30530" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ScaleText" toolbar:helpid="helpid:30586" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:NewArrangement" toolbar:helpid="helpid:30539" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/menubar/menubar.xml
new file mode 100644
index 000000000000..55f620d867de
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/menubar/menubar.xml
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuitem menu:id=".uno:VersionDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menuitem menu:id=".uno:ExportToPDF"/>
+ <menu:menu menu:id=".uno:SendMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsPDF"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menuitem menu:id=".uno:Signature"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WebHtml"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:PasteSpecial"/>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id="vnd.sun.star.findbar:FocusToFindbar"/>
+ <menu:menuitem menu:id=".uno:SearchDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CopyObjects"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ToggleObjectBezierMode"/>
+ <menu:menuitem menu:id=".uno:GlueEditMode"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Morphing"/>
+ <menu:menuitem menu:id=".uno:ModifyField"/>
+ <menu:menuitem menu:id=".uno:DeletePage"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ManageLinks"/>
+ <menu:menuitem menu:id=".uno:PlugInsActive"/>
+ <menu:menuitem menu:id=".uno:ImageMapDialog"/>
+ <menu:menuitem menu:id=".uno:ObjectMenue"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:PageMode" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:MasterPage" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:DisplayQualityMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:OutputQualityColor" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:OutputQualityGrayscale" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:OutputQualityBlackWhite" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:LeftPaneDraw"/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuitem menu:id=".uno:ShowRuler"/>
+ <menu:menu menu:id=".uno:GridMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:GridVisible"/>
+ <menu:menuitem menu:id=".uno:GridUse"/>
+ <menu:menuitem menu:id=".uno:GridFront"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:SnapLinesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelplinesVisible"/>
+ <menu:menuitem menu:id=".uno:HelplinesUse"/>
+ <menu:menuitem menu:id=".uno:HelplinesFront"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:ShowAnnotations"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Navigator"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertPage"/>
+ <menu:menuitem menu:id=".uno:DuplicatePage"/>
+ <menu:menuitem menu:id=".uno:InsertLayer"/>
+ <menu:menuitem menu:id=".uno:CapturePoint"/>
+ <menu:menu menu:id=".uno:FieldMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertDateFieldFix"/>
+ <menu:menuitem menu:id=".uno:InsertDateFieldVar"/>
+ <menu:menuitem menu:id=".uno:InsertTimeFieldFix"/>
+ <menu:menuitem menu:id=".uno:InsertTimeFieldVar"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertAuthorField"/>
+ <menu:menuitem menu:id=".uno:InsertPageField"/>
+ <menu:menuitem menu:id=".uno:InsertPagesField"/>
+ <menu:menuitem menu:id=".uno:InsertFileField"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertAnnotation"/>
+ <menu:menuitem menu:id=".uno:InsertSymbol"/>
+ <menu:menu menu:id=".uno:FormattingMarkMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertNonBreakingSpace"/>
+ <menu:menuitem menu:id=".uno:InsertHardHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertSoftHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertZWSP"/>
+ <menu:menuitem menu:id=".uno:InsertZWNBSP"/>
+ <menu:menuitem menu:id=".uno:InsertLRM"/>
+ <menu:menuitem menu:id=".uno:InsertRLM"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:HyperlinkDialog"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:GraphicMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertGraphic"/>
+ <menu:menu menu:id=".uno:Scan">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TwainSelect"/>
+ <menu:menuitem menu:id=".uno:TwainTransfer"/>
+ </menu:menupopup>
+ </menu:menu>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertAVMedia"/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertObject"/>
+ <menu:menuitem menu:id=".uno:InsertPlugin"/>
+ <menu:menuitem menu:id=".uno:InsertMath"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertObjectChart"/>
+ <menu:menuitem menu:id=".uno:InsertObjectFloatingFrame"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ImportFromFile"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetDefault"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FontDialog"/>
+ <menu:menuitem menu:id=".uno:ParagraphDialog"/>
+ <menu:menuitem menu:id=".uno:OutlineBullet"/>
+ <menu:menuitem menu:id=".uno:PageSetup"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:TransliterateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeCaseToSentenceCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToLower"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToUpper"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToTitleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToToggleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHalfWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToFullWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHiragana"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToKatakana"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TransformDialog"/>
+ <menu:menuitem menu:id=".uno:FormatLine"/>
+ <menu:menuitem menu:id=".uno:FormatArea"/>
+ <menu:menuitem menu:id=".uno:TextAttributes"/>
+ <menu:menuitem menu:id=".uno:GrafAttrCrop"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ModifyLayer"/>
+ <menu:menuitem menu:id=".uno:DesignerDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SpellDialog"/>
+ <menu:menu menu:id=".uno:LanguageMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HangulHanjaConversion"/>
+ <menu:menuitem menu:id=".uno:ChineseConversion"/>
+ <menu:menuitem menu:id=".uno:ThesaurusDialog"/>
+ <menu:menuitem menu:id=".uno:Hyphenation"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MoreDictionaries"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Gallery"/>
+ <menu:menuitem menu:id=".uno:BmpMask"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuitem menu:id=".uno:MacroSignature"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:OpenXMLFilterSettings"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ModifyMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ToggleObjectRotateMode"/>
+ <menu:menu menu:id=".uno:MirrorMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MirrorVert"/>
+ <menu:menuitem menu:id=".uno:MirrorHorz"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ConvertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeBezier"/>
+ <menu:menuitem menu:id=".uno:ChangePolygon"/>
+ <menu:menuitem menu:id=".uno:convert_to_contour"/>
+ <menu:menuitem menu:id=".uno:ConvertInto3D"/>
+ <menu:menuitem menu:id=".uno:ConvertInto3DLatheFast"/>
+ <menu:menuitem menu:id=".uno:ConvertIntoBitmap"/>
+ <menu:menuitem menu:id=".uno:ConvertIntoMetaFile"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ArrangeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:BringToFront"/>
+ <menu:menuitem menu:id=".uno:Forward"/>
+ <menu:menuitem menu:id=".uno:Backward"/>
+ <menu:menuitem menu:id=".uno:SendToBack"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:BeforeObject"/>
+ <menu:menuitem menu:id=".uno:BehindObject"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ReverseOrder"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectAlign">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ObjectAlignLeft"/>
+ <menu:menuitem menu:id=".uno:AlignCenter"/>
+ <menu:menuitem menu:id=".uno:ObjectAlignRight"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AlignUp"/>
+ <menu:menuitem menu:id=".uno:AlignMiddle"/>
+ <menu:menuitem menu:id=".uno:AlignDown"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:DistributeSelection"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ObjectTitleDescription"/>
+ <menu:menuitem menu:id=".uno:NameGroup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FormatGroup"/>
+ <menu:menuitem menu:id=".uno:FormatUngroup"/>
+ <menu:menuitem menu:id=".uno:EnterGroup"/>
+ <menu:menuitem menu:id=".uno:LeaveGroup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Combine"/>
+ <menu:menuitem menu:id=".uno:Dismantle"/>
+ <menu:menu menu:id=".uno:PolyFormen">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Merge"/>
+ <menu:menuitem menu:id=".uno:Substract"/>
+ <menu:menuitem menu:id=".uno:Intersect"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Connect"/>
+ <menu:menuitem menu:id=".uno:Break"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/statusbar/statusbar.xml
new file mode 100644
index 000000000000..0872bd42f3f4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/statusbar/statusbar.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:Context" statusbar:align="left" statusbar:autosize="true" statusbar:width="184" statusbar:helpid="helpid:5310"/>
+ <statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="208" statusbar:helpid="helpid:10224"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="14" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+ <statusbar:statusbaritem xlink:href=".uno:PageStatus" statusbar:align="left" statusbar:width="124" statusbar:helpid="helpid:27086"/>
+ <statusbar:statusbaritem xlink:href=".uno:LayoutStatus" statusbar:align="left" statusbar:autosize="true" statusbar:width="54" statusbar:helpid="helpid:27087"/>
+ <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130" statusbar:helpid="helpid:11065"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="36" statusbar:helpid="helpid:10000"/>
+</statusbar:statusbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/3dobjectsbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/3dobjectsbar.xml
new file mode 100644
index 000000000000..841d960388fb
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/3dobjectsbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Cube" toolbar:helpid="helpid:27296" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Sphere" toolbar:helpid="helpid:27297" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Cylinder" toolbar:helpid="helpid:27298" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Cone" toolbar:helpid="helpid:27299" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Cyramid" toolbar:helpid="helpid:27300" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Torus" toolbar:helpid="helpid:27312" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Shell3D" toolbar:helpid="helpid:27311" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:HalfSphere" toolbar:helpid="helpid:27313" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/alignmentbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/alignmentbar.xml
new file mode 100644
index 000000000000..dbd7294e566c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/alignmentbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignLeft" toolbar:helpid="helpid:10131" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignCenter" toolbar:helpid="helpid:10132" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignRight" toolbar:helpid="helpid:10133" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignUp" toolbar:helpid="helpid:10134" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignMiddle" toolbar:helpid="helpid:10135" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignDown" toolbar:helpid="helpid:10136" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/arrowsbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/arrowsbar.xml
new file mode 100644
index 000000000000..50a7b0af85ff
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/arrowsbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="helpid:10102" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowEnd" toolbar:helpid="helpid:27173" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowCircle" toolbar:helpid="helpid:27175" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowSquare" toolbar:helpid="helpid:27177" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Line_Diagonal" toolbar:helpid="helpid:10103" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowStart" toolbar:helpid="helpid:27172" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineCircleArrow" toolbar:helpid="helpid:27176" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineSquareArrow" toolbar:helpid="helpid:27178" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:MeasureLine" toolbar:helpid="helpid:27051" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrows" toolbar:helpid="helpid:27174" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..b1260e5410bc
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow" toolbar:helpid="helpid:11004" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..e65778305788
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame" toolbar:helpid="helpid:11002" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/bezierobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/bezierobjectbar.xml
new file mode 100644
index 000000000000..a711f4643918
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/bezierobjectbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="helpid:10126" toolbar:style="radio auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierMove" toolbar:helpid="helpid:10121" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierInsert" toolbar:helpid="helpid:10119" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierDelete" toolbar:helpid="helpid:10120" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierCutLine" toolbar:helpid="helpid:10127" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierConvert" toolbar:helpid="helpid:27065" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEdge" toolbar:helpid="helpid:27066" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSmooth" toolbar:helpid="helpid:10123" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSymmetric" toolbar:helpid="helpid:27067" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierClose" toolbar:helpid="helpid:10122" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEliminatePoints" toolbar:helpid="helpid:27030" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..91b957fa697a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" toolbar:helpid="helpid:11006" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/choosemodebar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/choosemodebar.xml
new file mode 100644
index 000000000000..9e30bc62d094
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/choosemodebar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="helpid:10129" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Mirror" toolbar:helpid="helpid:27085" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ConvertInto3DLathe" toolbar:helpid="helpid:27008" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CrookRotate" toolbar:helpid="helpid:27090" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CrookSlant" toolbar:helpid="helpid:27091" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Shear" toolbar:helpid="helpid:27107" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:InteractiveTransparence" toolbar:helpid="helpid:27100" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:InteractiveGradient" toolbar:helpid="helpid:27101" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/colorbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/colorbar.xml
new file mode 100644
index 000000000000..adcda76b5c3a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/colorbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GrafRed" toolbar:helpid="helpid:10865" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGreen" toolbar:helpid="helpid:10866" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafBlue" toolbar:helpid="helpid:10867" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafLuminance" toolbar:helpid="helpid:10863" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafContrast" toolbar:helpid="helpid:10864" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGamma" toolbar:helpid="helpid:10868" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/commentsbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/commentsbar.xml
new file mode 100644
index 000000000000..07c42d262758
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/commentsbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="helpid:26276"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PreviousAnnotation" toolbar:helpid="helpid:11095"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextAnnotation" toolbar:helpid="helpid:11094"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteAnnotation" toolbar:helpid="helpid:11093"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteAllAnnotation" toolbar:helpid="helpid:11096"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/connectorsbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/connectorsbar.xml
new file mode 100644
index 000000000000..b33662343f51
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/connectorsbar.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:Connector" toolbar:helpid="27058"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorArrowStart" toolbar:visible="false" toolbar:helpid="27119"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorArrowEnd" toolbar:helpid="27120"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorArrows" toolbar:helpid="27121"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleStart" toolbar:visible="false" toolbar:helpid="27122"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleEnd" toolbar:visible="false" toolbar:helpid="27123"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircles" toolbar:visible="false" toolbar:helpid="27124"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLines" toolbar:helpid="27139"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowStart" toolbar:visible="false" toolbar:helpid="27140"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowEnd" toolbar:helpid="27141"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrows" toolbar:helpid="27142"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleStart" toolbar:visible="false" toolbar:helpid="27143"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleEnd" toolbar:visible="false" toolbar:helpid="27144"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircles" toolbar:visible="false" toolbar:helpid="27145"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLine" toolbar:helpid="27125"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowStart" toolbar:visible="false" toolbar:helpid="27126"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowEnd" toolbar:helpid="27127"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrows" toolbar:helpid="27128"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleStart" toolbar:visible="false" toolbar:helpid="27129"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleEnd" toolbar:visible="false" toolbar:helpid="27130"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircles" toolbar:visible="false" toolbar:helpid="27131"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurve" toolbar:helpid="27132"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowStart" toolbar:visible="false" toolbar:helpid="27133"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowEnd" toolbar:helpid="27134"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrows" toolbar:helpid="27135"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleStart" toolbar:visible="false" toolbar:helpid="27136"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleEnd" toolbar:visible="false" toolbar:helpid="27137"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircles" toolbar:visible="false" toolbar:helpid="27138"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/drawingobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/drawingobjectbar.xml
new file mode 100644
index 000000000000..4c322a9028b6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/drawingobjectbar.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:DesignerDialog" toolbar:helpid="5539"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="10143"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineEndStyle" toolbar:helpid="10301"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineStyle" toolbar:helpid="10169"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineWidth" toolbar:helpid="10171"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineColor" toolbar:helpid="10172"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="10142"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="10164"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillShadow" toolbar:helpid="10299"/>
+ <toolbar:toolbaritem xlink:href=".uno:ImageMapDialog" toolbar:visible="false" toolbar:helpid="10371"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/ellipsesbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/ellipsesbar.xml
new file mode 100644
index 000000000000..84ccaf854009
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/ellipsesbar.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="helpid:10110" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Circle" toolbar:helpid="helpid:10385" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:helpid="helpid:10112" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CirclePie" toolbar:helpid="helpid:10388" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:EllipseCut" toolbar:helpid="helpid:10392" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:helpid="helpid:10115" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse_Unfilled" toolbar:helpid="helpid:10384" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Circle_Unfilled" toolbar:helpid="helpid:10386" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Pie_Unfilled" toolbar:helpid="helpid:10387" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CirclePie_Unfilled" toolbar:helpid="helpid:10389" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:EllipseCut_Unfilled" toolbar:helpid="helpid:10393" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CircleCut_Unfilled" toolbar:helpid="helpid:10391" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:helpid="helpid:10114" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CircleArc" toolbar:helpid="helpid:10390" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/extrusionobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/extrusionobjectbar.xml
new file mode 100644
index 000000000000..148849db6ee7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/extrusionobjectbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltDown" toolbar:helpid="10961"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltUp" toolbar:helpid="10962"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltLeft" toolbar:helpid="10963"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltRight" toolbar:helpid="10964"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDepthFloater" toolbar:helpid="10965" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDirectionFloater" toolbar:helpid="10966" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionLightingFloater" toolbar:helpid="10967" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionSurfaceFloater" toolbar:helpid="10968" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:Extrusion3DColor" toolbar:helpid="10969" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/findbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/findbar.xml
new file mode 100644
index 000000000000..49e483e178a3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/findbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FindText"/>
+ <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
+ <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..696a713424cd
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display" toolbar:helpid="helpid:11005" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fontworkobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fontworkobjectbar.xml
new file mode 100644
index 000000000000..32de621477dc
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fontworkobjectbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType" toolbar:helpid="helpid:10978" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkSameLetterHeights" toolbar:helpid="helpid:10979" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkAlignmentFloater" toolbar:helpid="helpid:10981" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkCharacterSpacingFloater" toolbar:helpid="helpid:10982" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fontworkshapetype.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fontworkshapetype.xml
new file mode 100644
index 000000000000..49b5b8173e0e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fontworkshapetype.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-plain-text" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-wave" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-inflate" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-stop" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-pour" toolbar:helpid="helpid:10978" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formcontrols.xml
new file mode 100644
index 000000000000..f0b802f28559
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formcontrols.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CheckBox" toolbar:helpid="helpid:10596" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Edit" toolbar:helpid="helpid:10599" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormattedField" toolbar:helpid="helpid:10728" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Pushbutton" toolbar:helpid="helpid:10594" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:RadioButton" toolbar:helpid="helpid:10595" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ListBox" toolbar:helpid="helpid:10600" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ComboBox" toolbar:helpid="helpid:10601" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Label" toolbar:helpid="helpid:10597" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormDesignTools" toolbar:helpid="helpid:11046" />
+ <toolbar:toolbaritem xlink:href=".uno:MoreControls" toolbar:helpid="helpid:11045" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:UseWizards" toolbar:helpid="helpid:10727" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formdesign.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formdesign.xml
new file mode 100644
index 000000000000..01f59fb34b91
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formdesign.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowFmExplorer" toolbar:helpid="helpid:10633" />
+ <toolbar:toolbaritem xlink:href=".uno:TabDialog" toolbar:helpid="helpid:10615" />
+ <toolbar:toolbaritem xlink:href=".uno:AddField" toolbar:helpid="helpid:10623" />
+ <toolbar:toolbaritem xlink:href=".uno:AutoControlFocus" toolbar:helpid="helpid:10763" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="helpid:10454" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="helpid:10455" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EnterGroup" toolbar:helpid="helpid:27096" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:LeaveGroup" toolbar:helpid="helpid:27097" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OpenReadOnly" toolbar:helpid="helpid:10709" />
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" />
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formsfilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formsfilterbar.xml
new file mode 100644
index 000000000000..311ae87a37af
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formsfilterbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterNavigator" toolbar:helpid="helpid:10732" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExecute" toolbar:helpid="helpid:10731" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExit" toolbar:helpid="helpid:10730" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formsnavigationbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formsnavigationbar.xml
new file mode 100644
index 000000000000..c6e16444a55d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formsnavigationbar.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="10725"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecText" toolbar:helpid="10624"/>
+ <toolbar:toolbaritem xlink:href=".uno:AbsoluteRecord" toolbar:helpid="10622"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecFromText" toolbar:helpid="10625"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecTotal" toolbar:helpid="10626"/>
+ <toolbar:toolbaritem xlink:href=".uno:FirstRecord" toolbar:helpid="10616"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrevRecord" toolbar:helpid="10618"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextRecord" toolbar:helpid="10617"/>
+ <toolbar:toolbaritem xlink:href=".uno:LastRecord" toolbar:helpid="10619"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewRecord" toolbar:helpid="10620"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="10627"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="10630"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRecord" toolbar:helpid="10621"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="10724"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="10714"/>
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="10712"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="10713"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="10716"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="10723"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilter" toolbar:helpid="10729"/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="10711"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewFormAsGrid" toolbar:helpid="10761"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formtextobjectbar.xml
new file mode 100644
index 000000000000..dbdeaf675371
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/formtextobjectbar.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..5aecdda4fb04
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/gluepointsobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/gluepointsobjectbar.xml
new file mode 100644
index 000000000000..b6c8501f4044
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/gluepointsobjectbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GlueInsertPoint" toolbar:helpid="helpid:27302" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GlueEscapeDirectionLeft" toolbar:helpid="helpid:27314" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueEscapeDirectionTop" toolbar:helpid="helpid:27316" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueEscapeDirectionRight" toolbar:helpid="helpid:27315" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueEscapeDirectionBottom" toolbar:helpid="helpid:27317" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GluePercent" toolbar:helpid="helpid:27303" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GlueHorzAlignLeft" toolbar:helpid="helpid:27306" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueHorzAlignCenter" toolbar:helpid="helpid:27305" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueHorzAlignRight" toolbar:helpid="helpid:27307" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GlueVertAlignTop" toolbar:helpid="helpid:27309" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueVertAlignCenter" toolbar:helpid="helpid:27308" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueVertAlignBottom" toolbar:helpid="helpid:27310" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/graffilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/graffilterbar.xml
new file mode 100644
index 000000000000..287c33fe25e5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/graffilterbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterInvert" toolbar:helpid="helpid:34149" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSmooth" toolbar:helpid="helpid:34150" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSharpen" toolbar:helpid="helpid:34151" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRemoveNoise" toolbar:helpid="helpid:34152" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSolarize" toolbar:helpid="helpid:34159" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSepia" toolbar:helpid="helpid:34158" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPoster" toolbar:helpid="helpid:34156" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPopart" toolbar:helpid="helpid:34157" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSobel" toolbar:helpid="helpid:34153" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRelief" toolbar:helpid="helpid:34155" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterMosaic" toolbar:helpid="helpid:34154" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/graphicobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/graphicobjectbar.xml
new file mode 100644
index 000000000000..43956d085f3c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/graphicobjectbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterToolbox" toolbar:helpid="helpid:10469" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafMode" toolbar:helpid="helpid:10871" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ColorSettings" toolbar:helpid="helpid:11016" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafTransparence" toolbar:helpid="helpid:10867" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="helpid:10143" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="helpid:10142" />
+ <toolbar:toolbaritem xlink:href=".uno:FillShadow" toolbar:helpid="helpid:10299" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Crop" toolbar:helpid="helpid:10883" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/insertbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/insertbar.xml
new file mode 100644
index 000000000000..8313e1ab9cb6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/insertbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertPage" toolbar:helpid="helpid:27014" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ImportFromFile" toolbar:helpid="helpid:27015" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:10141" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="helpid:10241" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="helpid:6695" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertSound" toolbar:helpid="helpid:5676" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertVideo" toolbar:helpid="helpid:5677" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertMath" toolbar:helpid="helpid:27106" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="helpid:10140" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/linesbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/linesbar.xml
new file mode 100644
index 000000000000..d0f9f8f90e18
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/linesbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BezierFill" toolbar:helpid="helpid:10118" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Polygon" toolbar:helpid="helpid:10117" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Diagonal" toolbar:helpid="helpid:10394" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Freeline" toolbar:helpid="helpid:10463" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:helpid="helpid:10397" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:helpid="helpid:10395" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Diagonal_Unfilled" toolbar:helpid="helpid:10396" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="helpid:10464" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/masterviewtoolbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/masterviewtoolbar.xml
new file mode 100644
index 000000000000..994c537a0aad
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/masterviewtoolbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertMasterPage" toolbar:helpid="helpid:27430" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteMasterPage" toolbar:helpid="helpid:27431" />
+ <toolbar:toolbaritem xlink:href=".uno:RenameMasterPage" toolbar:helpid="helpid:27432" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CloseMasterView" toolbar:helpid="helpid:27433" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/mediaobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/mediaobjectbar.xml
new file mode 100644
index 000000000000..2014343bf89b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/mediaobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AVMediaToolBox" toolbar:helpid="helpid:6693" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/moreformcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/moreformcontrols.xml
new file mode 100644
index 000000000000..275c733e7340
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/moreformcontrols.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SpinButton" toolbar:helpid="helpid:10769" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ScrollBar" toolbar:helpid="helpid:10768" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Imagebutton" toolbar:helpid="helpid:10604" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ImageControl" toolbar:helpid="helpid:10710" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FileControl" toolbar:helpid="helpid:10605" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:DateField" toolbar:helpid="helpid:10704" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:TimeField" toolbar:helpid="helpid:10705" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:NumericField" toolbar:helpid="helpid:10706" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CurrencyField" toolbar:helpid="helpid:10707" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:PatternField" toolbar:helpid="helpid:10708" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GroupBox" toolbar:helpid="helpid:10598" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Grid" toolbar:helpid="helpid:10603" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:NavigationBar" toolbar:helpid="helpid:10607" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/optimizetablebar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/optimizetablebar.xml
new file mode 100644
index 000000000000..bf97f65ae9cb
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/optimizetablebar.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DistributeColumns" toolbar:helpid="helpid:20582" />
+ <toolbar:toolbaritem xlink:href=".uno:DistributeRows" toolbar:helpid="helpid:20583" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/optionsbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/optionsbar.xml
new file mode 100644
index 000000000000..e3d92eb6a486
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/optionsbar.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ClickChangeRotation" toolbar:helpid="helpid:27170" toolbar:style="auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesVisible" toolbar:helpid="helpid:27324" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" toolbar:style="auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesUse" toolbar:helpid="helpid:27152" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SnapBorder" toolbar:helpid="helpid:27155" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SnapFrame" toolbar:helpid="helpid:27156" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SnapPoints" toolbar:helpid="helpid:27157" toolbar:style="auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:QuickEdit" toolbar:helpid="helpid:27158" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:PickThrough" toolbar:helpid="helpid:27159" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:DoubleClickTextEdit" toolbar:helpid="helpid:27169" toolbar:style="auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HandlesDraft" toolbar:helpid="helpid:27150" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:BigHandles" toolbar:helpid="helpid:27168" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SolidCreate" toolbar:helpid="helpid:27151" toolbar:style="auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeaveAllGroups" toolbar:helpid="helpid:27345" toolbar:style="auto" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/positionbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/positionbar.xml
new file mode 100644
index 000000000000..5f571924d72a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/positionbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" />
+ <toolbar:toolbaritem xlink:href=".uno:Forward" toolbar:helpid="helpid:27031" />
+ <toolbar:toolbaritem xlink:href=".uno:Backward" toolbar:helpid="helpid:27032" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BeforeObject" toolbar:helpid="helpid:27326" />
+ <toolbar:toolbaritem xlink:href=".uno:BehindObject" toolbar:helpid="helpid:27116" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ReverseOrder" toolbar:helpid="helpid:27117" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/rectanglesbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/rectanglesbar.xml
new file mode 100644
index 000000000000..2716265612f4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/rectanglesbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="helpid:10104" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Square" toolbar:helpid="helpid:10380" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Rect_Rounded" toolbar:helpid="helpid:10105" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Square_Rounded" toolbar:helpid="helpid:10381" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Rect_Unfilled" toolbar:helpid="helpid:10378" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Square_Unfilled" toolbar:helpid="helpid:10382" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Rect_Rounded_Unfilled" toolbar:helpid="helpid:10379" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Square_Rounded_Unfilled" toolbar:helpid="helpid:10383" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/standardbar.xml
new file mode 100644
index 000000000000..a53982f43767
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/standardbar.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="5537"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:visible="false" toolbar:helpid="5500"/>
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="5501"/>
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="5505"/>
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:visible="false" toolbar:helpid="5502"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="5331"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="6312"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="6674"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="5509"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellDialog" toolbar:helpid="20622"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellOnline" toolbar:helpid="12021"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="5710"/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="5711"/>
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="5712"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatPaintbrush" toolbar:helpid="5715"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="5701"/>
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="5700"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="10140"/>
+ <toolbar:toolbaritem xlink:href=".uno:HyperlinkDialog" toolbar:helpid="5678"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="10366"/>
+ <toolbar:toolbaritem xlink:href=".uno:Window3D" toolbar:helpid="helpid:10644" toolbar:style="auto" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomToolBox" toolbar:helpid="10096"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/starshapes.xml
new file mode 100644
index 000000000000..a2ff874d2fe7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate" toolbar:helpid="helpid:11007" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..0e96bcf78134
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel" toolbar:helpid="helpid:11003" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/tableobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/tableobjectbar.xml
new file mode 100644
index 000000000000..57726de89461
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/tableobjectbar.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:20330" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MergeCells" toolbar:helpid="helpid:20506" />
+ <toolbar:toolbaritem xlink:href=".uno:SplitCell" toolbar:helpid="helpid:20505" />
+ <toolbar:toolbaritem xlink:href=".uno:OptimizeTable" toolbar:helpid="helpid:20510" toolbar:style="dropdown" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CellVertTop" toolbar:helpid="helpid:20585" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertCenter" toolbar:helpid="helpid:20586" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertBottom" toolbar:helpid="helpid:20587" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:20501" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:20502" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TableDesign" toolbar:helpid="helpid:10429" />
+ <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/textbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/textbar.xml
new file mode 100644
index 000000000000..4bd5672237d3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/textbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Text" toolbar:helpid="helpid:10006" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:TextFitToSizeTool" toolbar:helpid="helpid:27285" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="helpid:10254" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="helpid:10905" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:VerticalTextFitToSizeTool" toolbar:helpid="helpid:27286" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="helpid:10906" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/textobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/textobjectbar.xml
new file mode 100644
index 000000000000..d364ca42e771
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/textobjectbar.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="10007"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="10015"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="10009"/>
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="10008"/>
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="10014"/>
+ <toolbar:toolbaritem xlink:href=".uno:Shadowed" toolbar:helpid="10010"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="10028"/>
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="10030"/>
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="10029"/>
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="10031"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="10950"/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="10951"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaspaceIncrease" toolbar:helpid="27346"/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaspaceDecrease" toolbar:helpid="27347"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="10034"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="10035"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="10036"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
+ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403"/>
+ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="10907"/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="10908"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="10296"/>
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="10297"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="10017"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:visible="false" toolbar:helpid="27019"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/toolbar.xml
new file mode 100644
index 000000000000..9bd802585f6f
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/toolbar.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="helpid:10102" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowEnd" toolbar:helpid="helpid:27173" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:10104" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:10110" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Text" toolbar:helpid="helpid:10398" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="helpid:10398" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineToolbox" toolbar:helpid="helpid:10401" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorToolbox" toolbar:helpid="helpid:27028" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowsToolbox" toolbar:helpid=".uno:ArrowsToolbox" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:Objects3DToolbox" toolbar:helpid="helpid:27295" toolbar:style="radio dropdown" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:helpid="helpid:11002" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:helpid="helpid:11003" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:helpid="helpid:11004" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes" toolbar:helpid="helpid:11005" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes" toolbar:helpid="helpid:11006" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes" toolbar:helpid="helpid:11007" toolbar:style="radio dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="10126"/>
+ <toolbar:toolbaritem xlink:href=".uno:GlueEditMode" toolbar:helpid="helpid:27301" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ChangeBezier" toolbar:helpid="helpid:27036" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ChangePolygon" toolbar:helpid="helpid:27037" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ConvertInto3D" toolbar:helpid="helpid:10648" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ConvertInto3DLatheFast" toolbar:helpid="helpid:10649" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="helpid:10241" />
+ <toolbar:toolbaritem xlink:href=".uno:Gallery" toolbar:helpid="helpid:5960" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AdvancedMode" toolbar:helpid="helpid:27095" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:Mirror" toolbar:helpid="helpid:27085" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectPosition" toolbar:helpid="helpid:27022" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertToolbox" toolbar:helpid="helpid:27318" toolbar:style="radio dropdown" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:helpid="helpid:10593" toolbar:style="dropdown" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/viewerbar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/viewerbar.xml
new file mode 100644
index 000000000000..d4d6a59d7ed5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/viewerbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="helpid:5961" />
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="helpid:10000" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/zoombar.xml b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/zoombar.xml
new file mode 100644
index 000000000000..fa59303d6176
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sdraw/toolbar/zoombar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPlus" toolbar:helpid="10097"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomMinus" toolbar:helpid="10098"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom100Percent" toolbar:helpid="10099"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPrevious" toolbar:visible="false" toolbar:helpid="10403"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomNext" toolbar:visible="false" toolbar:helpid="10402"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPage" toolbar:helpid="10100"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPageWidth" toolbar:helpid="27098"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomOptimal" toolbar:helpid="10101"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomObjects" toolbar:helpid="27099"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPanning" toolbar:helpid="27017"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/menubar/menubar.xml
new file mode 100644
index 000000000000..e643158b2506
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/menubar/menubar.xml
@@ -0,0 +1,459 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuitem menu:id=".uno:VersionDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menuitem menu:id=".uno:ExportToPDF"/>
+ <menu:menu menu:id=".uno:SendToMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsPDF"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:NewGlobalDoc"/>
+ <menu:menuitem menu:id=".uno:NewHtmlDoc"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SendOutlineToStarImpress"/>
+ <menu:menuitem menu:id=".uno:SendOutlineToClipboard"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CreateAbstract"/>
+ <menu:menuitem menu:id=".uno:SendAbstractToStarImpress"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WebHtml"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PrintPreview"/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuitem menu:id=".uno:Repeat"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:PasteSpecial"/>
+ <menu:menu menu:id=".uno:SelectionModeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectionModeDefault" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SelectionModeBlock" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:SelectTextMode"/>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ChangesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TrackChanges"/>
+ <menu:menuitem menu:id=".uno:ProtectTraceChangeMode"/>
+ <menu:menuitem menu:id=".uno:ShowTrackedChanges"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AcceptTrackedChanges"/>
+ <menu:menuitem menu:id=".uno:CommentChangeTracking"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MergeDocuments"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:CompareDocuments"/>
+ <menu:menuitem menu:id="vnd.sun.star.findbar:FocusToFindbar"/>
+ <menu:menuitem menu:id=".uno:SearchDialog"/>
+ <menu:menuitem menu:id=".uno:EditGlossary"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChangeDatabaseField"/>
+ <menu:menuitem menu:id=".uno:FieldDialog"/>
+ <menu:menuitem menu:id=".uno:EditFootnote"/>
+ <menu:menuitem menu:id=".uno:IndexEntryDialog"/>
+ <menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:LinkDialog"/>
+ <menu:menuitem menu:id=".uno:PlugInsActive"/>
+ <menu:menuitem menu:id=".uno:ImageMapDialog"/>
+ <menu:menuitem menu:id=".uno:ObjectMenue"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:PrintLayout" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:BrowseView" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuitem menu:id=".uno:Ruler"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewBounds"/>
+ <menu:menuitem menu:id=".uno:Marks"/>
+ <menu:menuitem menu:id=".uno:Fieldnames"/>
+ <menu:menuitem menu:id=".uno:ControlCodes"/>
+ <menu:menuitem menu:id=".uno:ShowHiddenParagraphs"/>
+ <menu:menuitem menu:id=".uno:ShowAnnotations"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewDataSourceBrowser"/>
+ <menu:menuitem menu:id=".uno:Navigator"/>
+ <menu:menuitem menu:id=".uno:TaskPane"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FullScreen"/>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertBreak"/>
+ <menu:menu menu:id=".uno:FieldMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertDateField"/>
+ <menu:menuitem menu:id=".uno:InsertTimeField"/>
+ <menu:menuitem menu:id=".uno:InsertPageNumberField"/>
+ <menu:menuitem menu:id=".uno:InsertPageCountField"/>
+ <menu:menuitem menu:id=".uno:InsertTopicField"/>
+ <menu:menuitem menu:id=".uno:InsertTitleField"/>
+ <menu:menuitem menu:id=".uno:InsertAuthorField"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertField"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertSymbol"/>
+ <menu:menu menu:id=".uno:FormattingMarkMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertNonBreakingSpace"/>
+ <menu:menuitem menu:id=".uno:InsertHardHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertSoftHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertZWSP"/>
+ <menu:menuitem menu:id=".uno:InsertZWNBSP"/>
+ <menu:menuitem menu:id=".uno:InsertLRM"/>
+ <menu:menuitem menu:id=".uno:InsertRLM"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertSection"/>
+ <menu:menuitem menu:id=".uno:HyperlinkDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertPageHeader"/>
+ <menu:menuitem menu:id=".uno:InsertPageFooter"/>
+ <menu:menuitem menu:id=".uno:InsertFootnoteDialog"/>
+ <menu:menuitem menu:id=".uno:InsertCaptionDialog"/>
+ <menu:menuitem menu:id=".uno:InsertBookmark"/>
+ <menu:menuitem menu:id=".uno:InsertReferenceField"/>
+ <menu:menuitem menu:id=".uno:InsertAnnotation"/>
+ <menu:menuitem menu:id=".uno:InsertScript"/>
+ <menu:menu menu:id=".uno:IndexesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertIndexesEntry"/>
+ <menu:menuitem menu:id=".uno:InsertMultiIndex"/>
+ <menu:menuitem menu:id=".uno:InsertAuthoritiesEntry"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertEnvelope"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertFrame"/>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertGraphicRuler"/>
+ <menu:menu menu:id=".uno:GraphicMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertGraphic"/>
+ <menu:menu menu:id=".uno:Scan">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TwainSelect"/>
+ <menu:menuitem menu:id=".uno:TwainTransfer"/>
+ </menu:menupopup>
+ </menu:menu>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertAVMedia"/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertObject"/>
+ <menu:menuitem menu:id=".uno:InsertPlugin"/>
+ <menu:menuitem menu:id=".uno:InsertObjectStarMath"/>
+ <menu:menuitem menu:id=".uno:InsertObjectChart"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertObjectFloatingFrame"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertDoc"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ResetAttributes"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FontDialog"/>
+ <menu:menuitem menu:id=".uno:ParagraphDialog"/>
+ <menu:menuitem menu:id=".uno:BulletsAndNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:PageDialog"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:TransliterateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeCaseToSentenceCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToLower"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToUpper"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToTitleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToToggleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHalfWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToFullWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHiragana"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToKatakana"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:RubyDialog"/>
+ <menu:menuitem menu:id=".uno:FormatColumns"/>
+ <menu:menuitem menu:id=".uno:EditRegion"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DesignerDialog"/>
+ <menu:menu menu:id=".uno:AutoFormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:OnlineAutoFormat"/>
+ <menu:menuitem menu:id=".uno:AutoFormatApply"/>
+ <menu:menuitem menu:id=".uno:AutoFormatRedlineApply"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:AnchorMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetAnchorToPage" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToPara" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorAtChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToFrame" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WrapMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:WrapOff"/>
+ <menu:menuitem menu:id=".uno:WrapOn"/>
+ <menu:menuitem menu:id=".uno:WrapIdeal"/>
+ <menu:menuitem menu:id=".uno:WrapThrough"/>
+ <menu:menuitem menu:id=".uno:WrapThroughTransparent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WrapContour"/>
+ <menu:menuitem menu:id=".uno:ContourDialog"/>
+ <menu:menuitem menu:id=".uno:WrapAnchorOnly"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TextWrap"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectAlign">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CommonAlignLeft" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignHorizontalCenter" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignRight" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignJustified" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CommonAlignTop"/>
+ <menu:menuitem menu:id=".uno:CommonAlignVerticalCenter"/>
+ <menu:menuitem menu:id=".uno:CommonAlignBottom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ArrangeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:BringToFront"/>
+ <menu:menuitem menu:id=".uno:ObjectForwardOne"/>
+ <menu:menuitem menu:id=".uno:ObjectBackOne"/>
+ <menu:menuitem menu:id=".uno:SendToBack"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetObjectToForeground"/>
+ <menu:menuitem menu:id=".uno:SetObjectToBackground"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FlipMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FlipHorizontal"/>
+ <menu:menuitem menu:id=".uno:FlipVertical"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:GroupMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormatGroup"/>
+ <menu:menuitem menu:id=".uno:FormatUngroup"/>
+ <menu:menuitem menu:id=".uno:EnterGroup"/>
+ <menu:menuitem menu:id=".uno:LeaveGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TransformDialog"/>
+ <menu:menuitem menu:id=".uno:FormatLine"/>
+ <menu:menuitem menu:id=".uno:FormatArea"/>
+ <menu:menuitem menu:id=".uno:TextAttributes"/>
+ <menu:menuitem menu:id=".uno:FontWork"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ObjectTitleDescription"/>
+ <menu:menuitem menu:id=".uno:NameGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:FrameDialog"/>
+ <menu:menuitem menu:id=".uno:GraphicDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:TableInsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertRowDialog"/>
+ <menu:menuitem menu:id=".uno:InsertColumnDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableDeleteMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DeleteTable"/>
+ <menu:menuitem menu:id=".uno:DeleteRows"/>
+ <menu:menuitem menu:id=".uno:DeleteColumns"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableSelectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectTable"/>
+ <menu:menuitem menu:id=".uno:EntireRow"/>
+ <menu:menuitem menu:id=".uno:EntireColumn"/>
+ <menu:menuitem menu:id=".uno:EntireCell"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:MergeCells"/>
+ <menu:menuitem menu:id=".uno:SplitCell"/>
+ <menu:menuitem menu:id=".uno:Protect"/>
+ <menu:menuitem menu:id=".uno:MergeTable"/>
+ <menu:menuitem menu:id=".uno:SplitTable"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoFormat"/>
+ <menu:menu menu:id=".uno:TableAutoFitMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetColumnWidth"/>
+ <menu:menuitem menu:id=".uno:SetOptimalColumnWidth"/>
+ <menu:menuitem menu:id=".uno:DistributeColumns"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetRowHeight"/>
+ <menu:menuitem menu:id=".uno:SetOptimalRowHeight"/>
+ <menu:menuitem menu:id=".uno:DistributeRows"/>
+ <menu:menuitem menu:id=".uno:RowSplit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:HeadingRowsRepeat"/>
+ <menu:menu menu:id=".uno:TableConvertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ConvertTextToTable"/>
+ <menu:menuitem menu:id=".uno:ConvertTableToText"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:TableSort"/>
+ <menu:menuitem menu:id=".uno:InsertFormula"/>
+ <menu:menuitem menu:id=".uno:TableNumberFormatDialog"/>
+ <menu:menuitem menu:id=".uno:TableBoundaries"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TableDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SpellingAndGrammarDialog"/>
+ <menu:menu menu:id=".uno:LanguageMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetLanguageSelectionMenu"/>
+ <menu:menuitem menu:id=".uno:SetLanguageParagraphMenu"/>
+ <menu:menuitem menu:id=".uno:SetLanguageAllTextMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:HangulHanjaConversion"/>
+ <menu:menuitem menu:id=".uno:ChineseConversion"/>
+ <menu:menuitem menu:id=".uno:ThesaurusDialog"/>
+ <menu:menuitem menu:id=".uno:Hyphenate"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MoreDictionaries"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:WordCountDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChapterNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:LineNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:FootnoteDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Gallery"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:BibliographyComponent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MergeDocuments"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SortDialog"/>
+ <menu:menuitem menu:id=".uno:CalculateSel"/>
+ <menu:menu menu:id=".uno:UpdateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:UpdateAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:UpdateFields"/>
+ <menu:menuitem menu:id=".uno:UpdateAllLinks"/>
+ <menu:menuitem menu:id=".uno:UpdateCharts"/>
+ <menu:menuitem menu:id=".uno:UpdateCurIndex"/>
+ <menu:menuitem menu:id=".uno:UpdateAllIndexes"/>
+ <menu:menuitem menu:id=".uno:Repaginate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuitem menu:id=".uno:MacroSignature"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:OpenXMLFilterSettings"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/statusbar/statusbar.xml
new file mode 100644
index 000000000000..3e46300cd0e7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/statusbar/statusbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:StatePageNumber" statusbar:align="left" statusbar:autosize="true" statusbar:width="54" statusbar:helpid="helpid:21181"/>
+ <statusbar:statusbaritem xlink:href=".uno:PageStyleName" statusbar:align="left" statusbar:autosize="true" statusbar:width="79" statusbar:helpid="helpid:21182"/>
+ <statusbar:statusbaritem xlink:href=".uno:LanguageStatus" statusbar:align="center" statusbar:autosize="true" statusbar:width="100" />
+ <statusbar:statusbaritem xlink:href=".uno:InsertMode" statusbar:align="center" statusbar:width="37" statusbar:helpid="helpid:10221"/>
+ <statusbar:statusbaritem xlink:href=".uno:SelectionMode" statusbar:align="center" statusbar:width="30" statusbar:helpid="helpid:21185"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="9" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+ <statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="left" statusbar:autosize="true" statusbar:ownerdraw="true" statusbar:width="129" statusbar:helpid="helpid:10224"/>
+ <statusbar:statusbaritem xlink:href=".uno:ViewLayout" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="63" statusbar:helpid="helpid:11064"/>
+ <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130" statusbar:helpid="helpid:11065"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="35" statusbar:helpid="helpid:10000"/>
+</statusbar:statusbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/alignmentbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/alignmentbar.xml
new file mode 100644
index 000000000000..7b6bb3e61d2e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/alignmentbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignLeft" toolbar:helpid="helpid:10131" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignCenter" toolbar:helpid="helpid:10132" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignRight" toolbar:helpid="helpid:10133" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignUp" toolbar:helpid="helpid:10134" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignMiddle" toolbar:helpid="helpid:10135" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignDown" toolbar:helpid="helpid:10136" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..4a53519494ea
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow" toolbar:helpid="helpid:11004" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..e65778305788
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame" toolbar:helpid="helpid:11002" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/bezierobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/bezierobjectbar.xml
new file mode 100644
index 000000000000..a17067c335ec
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/bezierobjectbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="helpid:10126" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierMove" toolbar:helpid="helpid:10121" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierInsert" toolbar:helpid="helpid:10119" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierDelete" toolbar:helpid="helpid:10120" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierCutLine" toolbar:helpid="helpid:10127" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierConvert" toolbar:helpid="helpid:27065" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEdge" toolbar:helpid="helpid:27066" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSmooth" toolbar:helpid="helpid:10123" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSymmetric" toolbar:helpid="helpid:27067" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierClose" toolbar:helpid="helpid:10122" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEliminatePoints" toolbar:helpid="helpid:27030" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..e708b70bbc4a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" toolbar:helpid="helpid:11006" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/colorbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/colorbar.xml
new file mode 100644
index 000000000000..e42bbfb49ad6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/colorbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GrafRed" toolbar:helpid="helpid:10865" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGreen" toolbar:helpid="helpid:10866" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafBlue" toolbar:helpid="helpid:10867" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafLuminance" toolbar:helpid="helpid:10863" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafContrast" toolbar:helpid="helpid:10864" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGamma" toolbar:helpid="helpid:10868" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawbar.xml
new file mode 100644
index 000000000000..2407475a88f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="10128"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+ <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
+ <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:helpid="11002"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:helpid="11003"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:helpid="11004"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes" toolbar:helpid="11005"/>
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes" toolbar:helpid="11006"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes" toolbar:helpid="11007"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="10126"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="10977"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawingobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawingobjectbar.xml
new file mode 100644
index 000000000000..3c64a4678780
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawingobjectbar.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="helpid:10143" />
+ <toolbar:toolbaritem xlink:href=".uno:LineEndStyle" toolbar:helpid="helpid:10301" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineStyle" toolbar:helpid="helpid:10169" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineWidth" toolbar:helpid="helpid:10171" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineColor" toolbar:helpid="helpid:10172" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="helpid:10142" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:visible="false" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapContour" toolbar:visible="false" toolbar:helpid="20584"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToForeground" toolbar:helpid="10283"/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToBackground" toolbar:helpid="10282"/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="10130"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="10455"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="10454"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawtextobjectbar.xml
new file mode 100644
index 000000000000..5734555531d7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/drawtextobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017" toolbar:style="dropdown" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="helpid:10907" />
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="helpid:10908" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/extrusionobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/extrusionobjectbar.xml
new file mode 100644
index 000000000000..148849db6ee7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/extrusionobjectbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltDown" toolbar:helpid="10961"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltUp" toolbar:helpid="10962"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltLeft" toolbar:helpid="10963"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltRight" toolbar:helpid="10964"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDepthFloater" toolbar:helpid="10965" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDirectionFloater" toolbar:helpid="10966" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionLightingFloater" toolbar:helpid="10967" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionSurfaceFloater" toolbar:helpid="10968" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:Extrusion3DColor" toolbar:helpid="10969" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/findbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/findbar.xml
new file mode 100644
index 000000000000..49e483e178a3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/findbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FindText"/>
+ <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
+ <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..bb1d1099dbd4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display" toolbar:helpid="helpid:11005" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fontworkobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fontworkobjectbar.xml
new file mode 100644
index 000000000000..32de621477dc
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fontworkobjectbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType" toolbar:helpid="helpid:10978" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkSameLetterHeights" toolbar:helpid="helpid:10979" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkAlignmentFloater" toolbar:helpid="helpid:10981" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkCharacterSpacingFloater" toolbar:helpid="helpid:10982" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fontworkshapetype.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fontworkshapetype.xml
new file mode 100644
index 000000000000..49b5b8173e0e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fontworkshapetype.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-plain-text" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-wave" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-inflate" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-stop" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-pour" toolbar:helpid="helpid:10978" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formcontrols.xml
new file mode 100644
index 000000000000..692fceee16f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formcontrols.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CheckBox" toolbar:helpid="helpid:10596" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Edit" toolbar:helpid="helpid:10599" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormattedField" toolbar:helpid="helpid:10728" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Pushbutton" toolbar:helpid="helpid:10594" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:RadioButton" toolbar:helpid="helpid:10595" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ListBox" toolbar:helpid="helpid:10600" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ComboBox" toolbar:helpid="helpid:10601" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Label" toolbar:helpid="helpid:10597" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:MoreControls" toolbar:helpid="helpid:11045" />
+ <toolbar:toolbaritem xlink:href=".uno:FormDesignTools" toolbar:helpid="helpid:11046" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:UseWizards" toolbar:helpid="helpid:10727" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formdesign.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formdesign.xml
new file mode 100644
index 000000000000..8598b48bd762
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formdesign.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowFmExplorer" toolbar:helpid="helpid:10633" />
+ <toolbar:toolbaritem xlink:href=".uno:TabDialog" toolbar:helpid="helpid:10615" />
+ <toolbar:toolbaritem xlink:href=".uno:AddField" toolbar:helpid="helpid:10623" />
+ <toolbar:toolbaritem xlink:href=".uno:AutoControlFocus" toolbar:helpid="helpid:10763" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="helpid:10454" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="helpid:10455" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EnterGroup" toolbar:helpid="helpid:27096" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:LeaveGroup" toolbar:helpid="helpid:27097" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OpenReadOnly" toolbar:helpid="helpid:10709" />
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" />
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formsfilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formsfilterbar.xml
new file mode 100644
index 000000000000..7ebaa53250bb
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formsfilterbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExecute" toolbar:helpid="helpid:10731" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterNavigator" toolbar:helpid="helpid:10732" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExit" toolbar:helpid="helpid:10730" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formsnavigationbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formsnavigationbar.xml
new file mode 100644
index 000000000000..c6e16444a55d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formsnavigationbar.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="10725"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecText" toolbar:helpid="10624"/>
+ <toolbar:toolbaritem xlink:href=".uno:AbsoluteRecord" toolbar:helpid="10622"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecFromText" toolbar:helpid="10625"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecTotal" toolbar:helpid="10626"/>
+ <toolbar:toolbaritem xlink:href=".uno:FirstRecord" toolbar:helpid="10616"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrevRecord" toolbar:helpid="10618"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextRecord" toolbar:helpid="10617"/>
+ <toolbar:toolbaritem xlink:href=".uno:LastRecord" toolbar:helpid="10619"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewRecord" toolbar:helpid="10620"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="10627"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="10630"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRecord" toolbar:helpid="10621"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="10724"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="10714"/>
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="10712"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="10713"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="10716"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="10723"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilter" toolbar:helpid="10729"/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="10711"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewFormAsGrid" toolbar:helpid="10761"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formtextobjectbar.xml
new file mode 100644
index 000000000000..dbdeaf675371
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/formtextobjectbar.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/frameobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/frameobjectbar.xml
new file mode 100644
index 000000000000..2225e004ae41
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/frameobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="helpid:20477" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="helpid:20476" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="helpid:20478" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="helpid:20480" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="helpid:20479" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="helpid:20456" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ChainFrames" toolbar:helpid="helpid:21736" />
+ <toolbar:toolbaritem xlink:href=".uno:UnhainFrames" toolbar:helpid="helpid:21737" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..87ff9203a9ff
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/graffilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/graffilterbar.xml
new file mode 100644
index 000000000000..67b6f17923ab
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/graffilterbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterInvert" toolbar:helpid="helpid:34149" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSmooth" toolbar:helpid="helpid:34150" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSharpen" toolbar:helpid="helpid:34151" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRemoveNoise" toolbar:helpid="helpid:34152" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSolarize" toolbar:helpid="helpid:34159" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSepia" toolbar:helpid="helpid:34158" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPoster" toolbar:helpid="helpid:34156" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPopart" toolbar:helpid="helpid:34157" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSobel" toolbar:helpid="helpid:34153" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRelief" toolbar:helpid="helpid:34155" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterMosaic" toolbar:helpid="helpid:34154" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/graphicobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/graphicobjectbar.xml
new file mode 100644
index 000000000000..040bb8cd8ae6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/graphicobjectbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterToolbox" toolbar:helpid="10469"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafMode" toolbar:helpid="10871"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ColorSettings" toolbar:helpid="11016"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafTransparence" toolbar:helpid="10869"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FlipVertical" toolbar:helpid="20426"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlipHorizontal" toolbar:helpid="20425"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20458"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/insertbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/insertbar.xml
new file mode 100644
index 000000000000..41bc831962c1
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/insertbar.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSection" toolbar:helpid="21419"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFrameInteract" toolbar:helpid="20333"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:visible="false" toolbar:helpid="helpid:5563" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFootnote" toolbar:helpid="20399"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertEndnote" toolbar:helpid="21418"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="20329"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertBookmark" toolbar:helpid="20302"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertReferenceField" toolbar:visible="false" toolbar:helpid="20313"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:helpid="5532"/>
+ <toolbar:toolbaritem xlink:href=".uno:EditGlossary"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:helpid="20328"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+ <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:visible="false" toolbar:helpid="10593"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="20369"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="10140"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:visible="false" toolbar:helpid="helpid:5561" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:visible="false" toolbar:helpid="helpid:5672" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/insertobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/insertobjectbar.xml
new file mode 100644
index 000000000000..ac28eb82bd11
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/insertobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/mediaobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/mediaobjectbar.xml
new file mode 100644
index 000000000000..35d0d138de84
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/mediaobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AVMediaToolBox" toolbar:helpid="helpid:6693"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/moreformcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/moreformcontrols.xml
new file mode 100644
index 000000000000..be3498c7f92b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/moreformcontrols.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SpinButton" toolbar:helpid="helpid:10769" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ScrollBar" toolbar:helpid="helpid:10768" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Imagebutton" toolbar:helpid="helpid:10604" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ImageControl" toolbar:helpid="helpid:10710" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FileControl" toolbar:helpid="helpid:10605" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:DateField" toolbar:helpid="helpid:10704" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:TimeField" toolbar:helpid="helpid:10705" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:NumericField" toolbar:helpid="helpid:10706" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CurrencyField" toolbar:helpid="helpid:10707" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:PatternField" toolbar:helpid="helpid:10708" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GroupBox" toolbar:helpid="helpid:10598" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Grid" toolbar:helpid="helpid:10603" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:NavigationBar" toolbar:helpid="helpid:10607" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/numobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/numobjectbar.xml
new file mode 100644
index 000000000000..50e28ac32f64
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/numobjectbar.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="20144"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveBullets" toolbar:helpid="20137"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementLevel" toolbar:helpid="20131"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementLevel" toolbar:helpid="20130"/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementSubLevels" toolbar:helpid="20140"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementSubLevels" toolbar:helpid="20139"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertNeutralParagraph" toolbar:helpid="20136"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUp" toolbar:helpid="20134"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDown" toolbar:helpid="20135"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUpSubItems" toolbar:helpid="20141"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDownSubItems" toolbar:helpid="20142"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:NumberingStart" toolbar:helpid="21738"/>
+ <toolbar:toolbaritem xlink:href=".uno:BulletsAndNumberingDialog" toolbar:helpid="20121"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/oleobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/oleobjectbar.xml
new file mode 100644
index 000000000000..c95b1aebb316
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/oleobjectbar.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="5552"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="20475"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="20477"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="20476"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="20478"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="20480"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="20479"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20456"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="10187"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="10200"/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="10201"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/optimizetablebar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/optimizetablebar.xml
new file mode 100644
index 000000000000..51ae902739de
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/optimizetablebar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DistributeColumns" toolbar:helpid="helpid:20582" />
+ <toolbar:toolbaritem xlink:href=".uno:DistributeRows" toolbar:helpid="helpid:20583" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalRowHeight" toolbar:helpid="helpid:20528" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalColumnWidth" toolbar:helpid="helpid:20521" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/previewobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/previewobjectbar.xml
new file mode 100644
index 000000000000..f0dc732d4ef9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/previewobjectbar.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:PageUp" toolbar:helpid="20937"/>
+ <toolbar:toolbaritem xlink:href=".uno:PageDown" toolbar:helpid="20938"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToStartOfDoc" toolbar:helpid="20907"/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToEndOfDoc" toolbar:helpid="20908"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowTwoPages" toolbar:helpid="21251"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowMultiplePages" toolbar:helpid="21252"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowBookview" toolbar:helpid="helpid:21255"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPlus" toolbar:helpid="10097"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PreviewZoom" toolbar:helpid="53071"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomMinus" toolbar:helpid="10098"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="5627"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPagePreView" toolbar:helpid="21253"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ClosePreview" toolbar:helpid="5325"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/standardbar.xml
new file mode 100644
index 000000000000..c1b38e3870f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/standardbar.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="5537"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:visible="false" toolbar:helpid="5500"/>
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="5501"/>
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="5505"/>
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:visible="false" toolbar:helpid="5502"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="5331"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="6312"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="6674"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="5509"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPreview" toolbar:helpid="5325"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellingAndGrammarDialog" toolbar:helpid="20622"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellOnline" toolbar:helpid="12021"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="5710"/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="5711"/>
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="5712"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatPaintbrush" toolbar:helpid="5715"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="5701"/>
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="5700"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HyperlinkDialog" toolbar:helpid="5678"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDraw" toolbar:helpid="10244"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="5961" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="10366"/>
+ <toolbar:toolbaritem xlink:href=".uno:Gallery" toolbar:helpid="5960"/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewDataSourceBrowser" toolbar:helpid="6660"/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlCodes" toolbar:helpid="20224"/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="10000" toolbar:visible="false"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false" toolbar:helpid="5402"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/starshapes.xml
new file mode 100644
index 000000000000..a2ff874d2fe7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate" toolbar:helpid="helpid:11007" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..0fa6aee313db
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel" toolbar:helpid="helpid:11003" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/tableobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/tableobjectbar.xml
new file mode 100644
index 000000000000..231431f56a73
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/tableobjectbar.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:20330" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MergeCells" toolbar:helpid="helpid:20506" />
+ <toolbar:toolbaritem xlink:href=".uno:SplitCell" toolbar:helpid="helpid:20505" />
+ <toolbar:toolbaritem xlink:href=".uno:OptimizeTable" toolbar:helpid="helpid:20510" toolbar:style="dropdown" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CellVertTop" toolbar:helpid="helpid:20585" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertCenter" toolbar:helpid="helpid:20586" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertBottom" toolbar:helpid="helpid:20587" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:20501" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:20502" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595" />
+ <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TableSort" toolbar:helpid="helpid:20533" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoSum" toolbar:helpid="helpid:20595" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/textobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/textobjectbar.xml
new file mode 100644
index 000000000000..a169820627f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/textobjectbar.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DesignerDialog" toolbar:helpid="5539"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="helpid:20144" />
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="helpid:20138" />
+ <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+ <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="helpid:10017" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="helpid:10489" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:visible="false" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/toolbar.xml
new file mode 100644
index 000000000000..f3e242673fd9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/toolbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertCtrl" toolbar:helpid="52822"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShadowCursor" toolbar:helpid="22204"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Hyphenate" toolbar:helpid="20605"/>
+ <toolbar:toolbaritem xlink:href=".uno:ThesaurusDialog" toolbar:helpid="20603"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Graphic" toolbar:helpid="20213"/>
+ <toolbar:toolbaritem xlink:href=".uno:BrowseView" toolbar:helpid="6313"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/viewerbar.xml b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/viewerbar.xml
new file mode 100644
index 000000000000..d4d6a59d7ed5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sglobal/toolbar/viewerbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="helpid:5961" />
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="helpid:10000" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/menubar/menubar.xml
new file mode 100644
index 000000000000..03ddd6d68ab8
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/menubar/menubar.xml
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuitem menu:id=".uno:VersionDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menuitem menu:id=".uno:ExportToPDF"/>
+ <menu:menu menu:id=".uno:SendMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsOOo"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsMS"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsPDF"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menuitem menu:id=".uno:Signature"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WebHtml"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:PasteSpecial"/>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id="vnd.sun.star.findbar:FocusToFindbar"/>
+ <menu:menuitem menu:id=".uno:SearchDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CopyObjects"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ToggleObjectBezierMode"/>
+ <menu:menuitem menu:id=".uno:GlueEditMode"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ModifyField"/>
+ <menu:menuitem menu:id=".uno:DeletePage"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ManageLinks"/>
+ <menu:menuitem menu:id=".uno:PlugInsActive"/>
+ <menu:menuitem menu:id=".uno:ImageMapDialog"/>
+ <menu:menuitem menu:id=".uno:ObjectMenue"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NormalMultiPaneGUI" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:OutlineMode" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:DiaMode" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:Presentation" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:NotesMode" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:HandoutMode" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MasterPageMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SlideMasterPage" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:NotesMasterPage" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MasterLayouts"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:DisplayQualityMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:OutputQualityColor" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:OutputQualityGrayscale" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:OutputQualityBlackWhite" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TaskPane"/>
+ <menu:menuitem menu:id=".uno:LeftPaneImpress"/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuitem menu:id=".uno:ShowRuler"/>
+ <menu:menu menu:id=".uno:GridMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:GridVisible"/>
+ <menu:menuitem menu:id=".uno:GridUse"/>
+ <menu:menuitem menu:id=".uno:GridFront"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:SnapLinesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelplinesVisible"/>
+ <menu:menuitem menu:id=".uno:HelplinesUse"/>
+ <menu:menuitem menu:id=".uno:HelplinesFront"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:ShowAnnotations"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Navigator"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:HeaderAndFooter"/>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertPage"/>
+ <menu:menuitem menu:id=".uno:DuplicatePage"/>
+ <menu:menuitem menu:id=".uno:ExpandPage"/>
+ <menu:menuitem menu:id=".uno:SummaryPage"/>
+ <menu:menuitem menu:id=".uno:InsertPageNumber"/>
+ <menu:menuitem menu:id=".uno:InsertDateAndTime"/>
+ <menu:menu menu:id=".uno:FieldMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertDateFieldFix"/>
+ <menu:menuitem menu:id=".uno:InsertDateFieldVar"/>
+ <menu:menuitem menu:id=".uno:InsertTimeFieldFix"/>
+ <menu:menuitem menu:id=".uno:InsertTimeFieldVar"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertAuthorField"/>
+ <menu:menuitem menu:id=".uno:InsertPageField"/>
+ <menu:menuitem menu:id=".uno:InsertPagesField"/>
+ <menu:menuitem menu:id=".uno:InsertFileField"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertAnnotation"/>
+ <menu:menuitem menu:id=".uno:InsertSymbol"/>
+ <menu:menu menu:id=".uno:FormattingMarkMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertNonBreakingSpace"/>
+ <menu:menuitem menu:id=".uno:InsertHardHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertSoftHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertZWSP"/>
+ <menu:menuitem menu:id=".uno:InsertZWNBSP"/>
+ <menu:menuitem menu:id=".uno:InsertLRM"/>
+ <menu:menuitem menu:id=".uno:InsertRLM"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:HyperlinkDialog"/>
+ <menu:menuitem menu:id=".uno:AnimationObjects"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:GraphicMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertGraphic"/>
+ <menu:menu menu:id=".uno:Scan">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TwainSelect"/>
+ <menu:menuitem menu:id=".uno:TwainTransfer"/>
+ </menu:menupopup>
+ </menu:menu>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertAVMedia"/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertObject"/>
+ <menu:menuitem menu:id=".uno:InsertPlugin"/>
+ <menu:menuitem menu:id=".uno:InsertMath"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertObjectChart"/>
+ <menu:menuitem menu:id=".uno:InsertObjectFloatingFrame"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ImportFromFile"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetDefault"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FontDialog"/>
+ <menu:menuitem menu:id=".uno:ParagraphDialog"/>
+ <menu:menuitem menu:id=".uno:OutlineBullet"/>
+ <menu:menuitem menu:id=".uno:PageSetup"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:TransliterateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeCaseToSentenceCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToLower"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToUpper"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToTitleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToToggleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHalfWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToFullWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHiragana"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToKatakana"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TransformDialog"/>
+ <menu:menuitem menu:id=".uno:FormatLine"/>
+ <menu:menuitem menu:id=".uno:FormatArea"/>
+ <menu:menuitem menu:id=".uno:TextAttributes"/>
+ <menu:menuitem menu:id=".uno:GrafAttrCrop"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PresentationLayout"/>
+ <menu:menuitem menu:id=".uno:ModifyPage"/>
+ <menu:menuitem menu:id=".uno:DesignerDialog"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:GroupMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormatGroup"/>
+ <menu:menuitem menu:id=".uno:FormatUngroup"/>
+ <menu:menuitem menu:id=".uno:EnterGroup"/>
+ <menu:menuitem menu:id=".uno:LeaveGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SpellDialog"/>
+ <menu:menu menu:id=".uno:LanguageMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HangulHanjaConversion"/>
+ <menu:menuitem menu:id=".uno:ChineseConversion"/>
+ <menu:menuitem menu:id=".uno:ThesaurusDialog"/>
+ <menu:menuitem menu:id=".uno:Hyphenation"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MoreDictionaries"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Gallery"/>
+ <menu:menuitem menu:id=".uno:BmpMask"/>
+ <menu:menuitem menu:id=".uno:AVMediaPlayer"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuitem menu:id=".uno:MacroSignature"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:OpenXMLFilterSettings"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:SlideShowMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Presentation"/>
+ <menu:menuitem menu:id=".uno:PresentationDialog"/>
+ <menu:menuitem menu:id=".uno:RehearseTimings"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AnimationEffects"/>
+ <!--menu:menuitem menu:id=".uno:CustomAnimationSchemes" / -->
+ <menu:menuitem menu:id=".uno:CustomAnimation"/>
+ <menu:menuitem menu:id=".uno:SlideChangeWindow"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowSlide"/>
+ <menu:menuitem menu:id=".uno:HideSlide"/>
+ <menu:menuitem menu:id=".uno:CustomShowDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/statusbar/statusbar.xml
new file mode 100644
index 000000000000..0872bd42f3f4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/statusbar/statusbar.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:Context" statusbar:align="left" statusbar:autosize="true" statusbar:width="184" statusbar:helpid="helpid:5310"/>
+ <statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="208" statusbar:helpid="helpid:10224"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="14" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+ <statusbar:statusbaritem xlink:href=".uno:PageStatus" statusbar:align="left" statusbar:width="124" statusbar:helpid="helpid:27086"/>
+ <statusbar:statusbaritem xlink:href=".uno:LayoutStatus" statusbar:align="left" statusbar:autosize="true" statusbar:width="54" statusbar:helpid="helpid:27087"/>
+ <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130" statusbar:helpid="helpid:11065"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="36" statusbar:helpid="helpid:10000"/>
+</statusbar:statusbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/3dobjectsbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/3dobjectsbar.xml
new file mode 100644
index 000000000000..841d960388fb
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/3dobjectsbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Cube" toolbar:helpid="helpid:27296" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Sphere" toolbar:helpid="helpid:27297" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Cylinder" toolbar:helpid="helpid:27298" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Cone" toolbar:helpid="helpid:27299" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Cyramid" toolbar:helpid="helpid:27300" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Torus" toolbar:helpid="helpid:27312" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Shell3D" toolbar:helpid="helpid:27311" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:HalfSphere" toolbar:helpid="helpid:27313" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/alignmentbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/alignmentbar.xml
new file mode 100644
index 000000000000..7b6bb3e61d2e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/alignmentbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignLeft" toolbar:helpid="helpid:10131" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignCenter" toolbar:helpid="helpid:10132" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignRight" toolbar:helpid="helpid:10133" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignUp" toolbar:helpid="helpid:10134" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignMiddle" toolbar:helpid="helpid:10135" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignDown" toolbar:helpid="helpid:10136" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/arrowsbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/arrowsbar.xml
new file mode 100644
index 000000000000..50a7b0af85ff
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/arrowsbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="helpid:10102" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowEnd" toolbar:helpid="helpid:27173" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowCircle" toolbar:helpid="helpid:27175" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowSquare" toolbar:helpid="helpid:27177" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Line_Diagonal" toolbar:helpid="helpid:10103" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowStart" toolbar:helpid="helpid:27172" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineCircleArrow" toolbar:helpid="helpid:27176" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineSquareArrow" toolbar:helpid="helpid:27178" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:MeasureLine" toolbar:helpid="helpid:27051" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrows" toolbar:helpid="helpid:27174" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..34f135283f50
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow" toolbar:helpid="helpid:11004" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..a9e23fe67ed9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame" toolbar:helpid="helpid:11002" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/bezierobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/bezierobjectbar.xml
new file mode 100644
index 000000000000..a711f4643918
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/bezierobjectbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="helpid:10126" toolbar:style="radio auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierMove" toolbar:helpid="helpid:10121" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierInsert" toolbar:helpid="helpid:10119" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierDelete" toolbar:helpid="helpid:10120" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierCutLine" toolbar:helpid="helpid:10127" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierConvert" toolbar:helpid="helpid:27065" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEdge" toolbar:helpid="helpid:27066" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSmooth" toolbar:helpid="helpid:10123" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSymmetric" toolbar:helpid="helpid:27067" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierClose" toolbar:helpid="helpid:10122" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEliminatePoints" toolbar:helpid="helpid:27030" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..91b957fa697a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" toolbar:helpid="helpid:11006" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/choosemodebar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/choosemodebar.xml
new file mode 100644
index 000000000000..9e30bc62d094
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/choosemodebar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="helpid:10129" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Mirror" toolbar:helpid="helpid:27085" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ConvertInto3DLathe" toolbar:helpid="helpid:27008" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CrookRotate" toolbar:helpid="helpid:27090" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CrookSlant" toolbar:helpid="helpid:27091" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Shear" toolbar:helpid="helpid:27107" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:InteractiveTransparence" toolbar:helpid="helpid:27100" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:InteractiveGradient" toolbar:helpid="helpid:27101" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/colorbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/colorbar.xml
new file mode 100644
index 000000000000..adcda76b5c3a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/colorbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GrafRed" toolbar:helpid="helpid:10865" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGreen" toolbar:helpid="helpid:10866" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafBlue" toolbar:helpid="helpid:10867" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafLuminance" toolbar:helpid="helpid:10863" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafContrast" toolbar:helpid="helpid:10864" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGamma" toolbar:helpid="helpid:10868" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/commentsbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/commentsbar.xml
new file mode 100644
index 000000000000..07c42d262758
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/commentsbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="helpid:26276"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PreviousAnnotation" toolbar:helpid="helpid:11095"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextAnnotation" toolbar:helpid="helpid:11094"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteAnnotation" toolbar:helpid="helpid:11093"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteAllAnnotation" toolbar:helpid="helpid:11096"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/commontaskbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/commontaskbar.xml
new file mode 100644
index 000000000000..c64a4b935717
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/commontaskbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertPage" toolbar:helpid="27014" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:AssignLayout" toolbar:helpid="27435" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:PresentationLayout" toolbar:helpid="27064"/>
+ <toolbar:toolbaritem xlink:href=".uno:DuplicatePage" toolbar:visible="false" toolbar:helpid="27342"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExpandPage" toolbar:visible="false" toolbar:helpid="27343"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Presentation" toolbar:helpid="10157"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/connectorsbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/connectorsbar.xml
new file mode 100644
index 000000000000..b33662343f51
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/connectorsbar.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:Connector" toolbar:helpid="27058"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorArrowStart" toolbar:visible="false" toolbar:helpid="27119"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorArrowEnd" toolbar:helpid="27120"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorArrows" toolbar:helpid="27121"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleStart" toolbar:visible="false" toolbar:helpid="27122"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircleEnd" toolbar:visible="false" toolbar:helpid="27123"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCircles" toolbar:visible="false" toolbar:helpid="27124"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLines" toolbar:helpid="27139"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowStart" toolbar:visible="false" toolbar:helpid="27140"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrowEnd" toolbar:helpid="27141"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesArrows" toolbar:helpid="27142"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleStart" toolbar:visible="false" toolbar:helpid="27143"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircleEnd" toolbar:visible="false" toolbar:helpid="27144"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLinesCircles" toolbar:visible="false" toolbar:helpid="27145"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLine" toolbar:helpid="27125"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowStart" toolbar:visible="false" toolbar:helpid="27126"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrowEnd" toolbar:helpid="27127"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineArrows" toolbar:helpid="27128"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleStart" toolbar:visible="false" toolbar:helpid="27129"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircleEnd" toolbar:visible="false" toolbar:helpid="27130"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorLineCircles" toolbar:visible="false" toolbar:helpid="27131"/>
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurve" toolbar:helpid="27132"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowStart" toolbar:visible="false" toolbar:helpid="27133"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrowEnd" toolbar:helpid="27134"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveArrows" toolbar:helpid="27135"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleStart" toolbar:visible="false" toolbar:helpid="27136"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircleEnd" toolbar:visible="false" toolbar:helpid="27137"/>
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorCurveCircles" toolbar:visible="false" toolbar:helpid="27138"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/drawingobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/drawingobjectbar.xml
new file mode 100644
index 000000000000..4c322a9028b6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/drawingobjectbar.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:DesignerDialog" toolbar:helpid="5539"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="10143"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineEndStyle" toolbar:helpid="10301"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineStyle" toolbar:helpid="10169"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineWidth" toolbar:helpid="10171"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineColor" toolbar:helpid="10172"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="10142"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="10164"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillShadow" toolbar:helpid="10299"/>
+ <toolbar:toolbaritem xlink:href=".uno:ImageMapDialog" toolbar:visible="false" toolbar:helpid="10371"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/ellipsesbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/ellipsesbar.xml
new file mode 100644
index 000000000000..84ccaf854009
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/ellipsesbar.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="helpid:10110" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Circle" toolbar:helpid="helpid:10385" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:helpid="helpid:10112" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CirclePie" toolbar:helpid="helpid:10388" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:EllipseCut" toolbar:helpid="helpid:10392" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:helpid="helpid:10115" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse_Unfilled" toolbar:helpid="helpid:10384" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Circle_Unfilled" toolbar:helpid="helpid:10386" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Pie_Unfilled" toolbar:helpid="helpid:10387" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CirclePie_Unfilled" toolbar:helpid="helpid:10389" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:EllipseCut_Unfilled" toolbar:helpid="helpid:10393" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CircleCut_Unfilled" toolbar:helpid="helpid:10391" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:helpid="helpid:10114" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CircleArc" toolbar:helpid="helpid:10390" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/extrusionobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/extrusionobjectbar.xml
new file mode 100644
index 000000000000..148849db6ee7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/extrusionobjectbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltDown" toolbar:helpid="10961"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltUp" toolbar:helpid="10962"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltLeft" toolbar:helpid="10963"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltRight" toolbar:helpid="10964"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDepthFloater" toolbar:helpid="10965" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDirectionFloater" toolbar:helpid="10966" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionLightingFloater" toolbar:helpid="10967" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionSurfaceFloater" toolbar:helpid="10968" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:Extrusion3DColor" toolbar:helpid="10969" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/findbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/findbar.xml
new file mode 100644
index 000000000000..49e483e178a3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/findbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FindText"/>
+ <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
+ <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..5eff42015672
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display" toolbar:helpid="helpid:11005" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fontworkobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fontworkobjectbar.xml
new file mode 100644
index 000000000000..28687d66eb6f
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fontworkobjectbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType" toolbar:helpid="helpid:10978" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkSameLetterHeights" toolbar:helpid="helpid:10979" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkAlignmentFloater" toolbar:helpid="helpid:10981" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkCharacterSpacingFloater" toolbar:helpid="helpid:10982" toolbar:style="dropdownonly" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fontworkshapetype.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fontworkshapetype.xml
new file mode 100644
index 000000000000..49b5b8173e0e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fontworkshapetype.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-plain-text" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-wave" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-inflate" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-stop" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-pour" toolbar:helpid="helpid:10978" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formcontrols.xml
new file mode 100644
index 000000000000..f0b802f28559
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formcontrols.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CheckBox" toolbar:helpid="helpid:10596" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Edit" toolbar:helpid="helpid:10599" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormattedField" toolbar:helpid="helpid:10728" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Pushbutton" toolbar:helpid="helpid:10594" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:RadioButton" toolbar:helpid="helpid:10595" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ListBox" toolbar:helpid="helpid:10600" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ComboBox" toolbar:helpid="helpid:10601" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Label" toolbar:helpid="helpid:10597" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormDesignTools" toolbar:helpid="helpid:11046" />
+ <toolbar:toolbaritem xlink:href=".uno:MoreControls" toolbar:helpid="helpid:11045" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:UseWizards" toolbar:helpid="helpid:10727" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formdesign.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formdesign.xml
new file mode 100644
index 000000000000..01f59fb34b91
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formdesign.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowFmExplorer" toolbar:helpid="helpid:10633" />
+ <toolbar:toolbaritem xlink:href=".uno:TabDialog" toolbar:helpid="helpid:10615" />
+ <toolbar:toolbaritem xlink:href=".uno:AddField" toolbar:helpid="helpid:10623" />
+ <toolbar:toolbaritem xlink:href=".uno:AutoControlFocus" toolbar:helpid="helpid:10763" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="helpid:10454" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="helpid:10455" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EnterGroup" toolbar:helpid="helpid:27096" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:LeaveGroup" toolbar:helpid="helpid:27097" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OpenReadOnly" toolbar:helpid="helpid:10709" />
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" />
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formsfilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formsfilterbar.xml
new file mode 100644
index 000000000000..1d1ad07a9938
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formsfilterbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExecute" toolbar:helpid="helpid:10731" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterNavigator" toolbar:helpid="helpid:10732" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExit" toolbar:helpid="helpid:10730" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formsnavigationbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formsnavigationbar.xml
new file mode 100644
index 000000000000..c6e16444a55d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formsnavigationbar.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="10725"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecText" toolbar:helpid="10624"/>
+ <toolbar:toolbaritem xlink:href=".uno:AbsoluteRecord" toolbar:helpid="10622"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecFromText" toolbar:helpid="10625"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecTotal" toolbar:helpid="10626"/>
+ <toolbar:toolbaritem xlink:href=".uno:FirstRecord" toolbar:helpid="10616"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrevRecord" toolbar:helpid="10618"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextRecord" toolbar:helpid="10617"/>
+ <toolbar:toolbaritem xlink:href=".uno:LastRecord" toolbar:helpid="10619"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewRecord" toolbar:helpid="10620"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="10627"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="10630"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRecord" toolbar:helpid="10621"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="10724"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="10714"/>
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="10712"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="10713"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="10716"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="10723"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilter" toolbar:helpid="10729"/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="10711"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewFormAsGrid" toolbar:helpid="10761"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formtextobjectbar.xml
new file mode 100644
index 000000000000..dbdeaf675371
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/formtextobjectbar.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..5aecdda4fb04
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/gluepointsobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/gluepointsobjectbar.xml
new file mode 100644
index 000000000000..b6c8501f4044
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/gluepointsobjectbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GlueInsertPoint" toolbar:helpid="helpid:27302" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GlueEscapeDirectionLeft" toolbar:helpid="helpid:27314" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueEscapeDirectionTop" toolbar:helpid="helpid:27316" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueEscapeDirectionRight" toolbar:helpid="helpid:27315" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueEscapeDirectionBottom" toolbar:helpid="helpid:27317" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GluePercent" toolbar:helpid="helpid:27303" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GlueHorzAlignLeft" toolbar:helpid="helpid:27306" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueHorzAlignCenter" toolbar:helpid="helpid:27305" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueHorzAlignRight" toolbar:helpid="helpid:27307" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GlueVertAlignTop" toolbar:helpid="helpid:27309" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueVertAlignCenter" toolbar:helpid="helpid:27308" />
+ <toolbar:toolbaritem xlink:href=".uno:GlueVertAlignBottom" toolbar:helpid="helpid:27310" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/graffilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/graffilterbar.xml
new file mode 100644
index 000000000000..287c33fe25e5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/graffilterbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterInvert" toolbar:helpid="helpid:34149" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSmooth" toolbar:helpid="helpid:34150" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSharpen" toolbar:helpid="helpid:34151" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRemoveNoise" toolbar:helpid="helpid:34152" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSolarize" toolbar:helpid="helpid:34159" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSepia" toolbar:helpid="helpid:34158" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPoster" toolbar:helpid="helpid:34156" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPopart" toolbar:helpid="helpid:34157" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSobel" toolbar:helpid="helpid:34153" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRelief" toolbar:helpid="helpid:34155" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterMosaic" toolbar:helpid="helpid:34154" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/graphicobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/graphicobjectbar.xml
new file mode 100644
index 000000000000..93312f0d9c29
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/graphicobjectbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterToolbox" toolbar:helpid="helpid:10469" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafMode" toolbar:helpid="helpid:10871" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ColorSettings" toolbar:helpid="helpid:11016" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafTransparence" toolbar:helpid="helpid:10869" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="helpid:10143" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="helpid:10142" />
+ <toolbar:toolbaritem xlink:href=".uno:FillShadow" toolbar:helpid="helpid:10299" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Crop" toolbar:helpid="helpid:10883" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/insertbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/insertbar.xml
new file mode 100644
index 000000000000..4ba1344cf2fc
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/insertbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertPage" toolbar:helpid="helpid:27014" toolbar:style="radio dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ImportFromFile" toolbar:helpid="helpid:27015" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:10141" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="helpid:10241" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="helpid:6695" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertSound" toolbar:helpid="helpid:5676" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertVideo" toolbar:helpid="helpid:5677" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertMath" toolbar:helpid="helpid:27106"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="helpid:10140" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/linesbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/linesbar.xml
new file mode 100644
index 000000000000..d0f9f8f90e18
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/linesbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BezierFill" toolbar:helpid="helpid:10118" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Polygon" toolbar:helpid="helpid:10117" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Diagonal" toolbar:helpid="helpid:10394" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Freeline" toolbar:helpid="helpid:10463" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:helpid="helpid:10397" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:helpid="helpid:10395" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Diagonal_Unfilled" toolbar:helpid="helpid:10396" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="helpid:10464" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/masterviewtoolbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/masterviewtoolbar.xml
new file mode 100644
index 000000000000..994c537a0aad
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/masterviewtoolbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertMasterPage" toolbar:helpid="helpid:27430" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteMasterPage" toolbar:helpid="helpid:27431" />
+ <toolbar:toolbaritem xlink:href=".uno:RenameMasterPage" toolbar:helpid="helpid:27432" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CloseMasterView" toolbar:helpid="helpid:27433" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/mediaobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/mediaobjectbar.xml
new file mode 100644
index 000000000000..2014343bf89b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/mediaobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AVMediaToolBox" toolbar:helpid="helpid:6693" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/moreformcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/moreformcontrols.xml
new file mode 100644
index 000000000000..275c733e7340
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/moreformcontrols.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SpinButton" toolbar:helpid="helpid:10769" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ScrollBar" toolbar:helpid="helpid:10768" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Imagebutton" toolbar:helpid="helpid:10604" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ImageControl" toolbar:helpid="helpid:10710" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FileControl" toolbar:helpid="helpid:10605" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:DateField" toolbar:helpid="helpid:10704" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:TimeField" toolbar:helpid="helpid:10705" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:NumericField" toolbar:helpid="helpid:10706" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CurrencyField" toolbar:helpid="helpid:10707" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:PatternField" toolbar:helpid="helpid:10708" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GroupBox" toolbar:helpid="helpid:10598" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Grid" toolbar:helpid="helpid:10603" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:NavigationBar" toolbar:helpid="helpid:10607" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/optimizetablebar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/optimizetablebar.xml
new file mode 100644
index 000000000000..bf97f65ae9cb
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/optimizetablebar.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DistributeColumns" toolbar:helpid="helpid:20582" />
+ <toolbar:toolbaritem xlink:href=".uno:DistributeRows" toolbar:helpid="helpid:20583" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/optionsbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/optionsbar.xml
new file mode 100644
index 000000000000..6b6325bb9c78
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/optionsbar.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ClickChangeRotation" toolbar:helpid="27170"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="27322"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesVisible" toolbar:helpid="27324"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="27153"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="27154"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesUse" toolbar:helpid="27152"/>
+ <toolbar:toolbaritem xlink:href=".uno:SnapBorder" toolbar:helpid="27155"/>
+ <toolbar:toolbaritem xlink:href=".uno:SnapFrame" toolbar:helpid="27156"/>
+ <toolbar:toolbaritem xlink:href=".uno:SnapPoints" toolbar:helpid="27157"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:QuickEdit" toolbar:helpid="27158"/>
+ <toolbar:toolbaritem xlink:href=".uno:PickThrough" toolbar:helpid="27159"/>
+ <toolbar:toolbaritem xlink:href=".uno:DoubleClickTextEdit" toolbar:helpid="27169"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HandlesDraft" toolbar:helpid="27150"/>
+ <toolbar:toolbaritem xlink:href=".uno:BigHandles" toolbar:helpid="27168"/>
+ <toolbar:toolbaritem xlink:href=".uno:SolidCreate" toolbar:helpid="helpid:27151"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeaveAllGroups" toolbar:helpid="27345"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/outlinetoolbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/outlinetoolbar.xml
new file mode 100644
index 000000000000..d580779b35ee
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/outlinetoolbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:OutlineCollapseAll" toolbar:helpid="helpid:10155" />
+ <toolbar:toolbaritem xlink:href=".uno:OutlineExpandAll" toolbar:helpid="helpid:10232" />
+ <toolbar:toolbaritem xlink:href=".uno:OutlineCollapse" toolbar:helpid="helpid:10231" />
+ <toolbar:toolbaritem xlink:href=".uno:OutlineExpand" toolbar:helpid="helpid:10233" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OutlineFormat" toolbar:helpid="helpid:10154" />
+ <toolbar:toolbaritem xlink:href=".uno:ColorView" toolbar:helpid="helpid:27257" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Presentation" toolbar:helpid="helpid:10157" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/positionbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/positionbar.xml
new file mode 100644
index 000000000000..5f571924d72a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/positionbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" />
+ <toolbar:toolbaritem xlink:href=".uno:Forward" toolbar:helpid="helpid:27031" />
+ <toolbar:toolbaritem xlink:href=".uno:Backward" toolbar:helpid="helpid:27032" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BeforeObject" toolbar:helpid="helpid:27326" />
+ <toolbar:toolbaritem xlink:href=".uno:BehindObject" toolbar:helpid="helpid:27116" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ReverseOrder" toolbar:helpid="helpid:27117" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/rectanglesbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/rectanglesbar.xml
new file mode 100644
index 000000000000..2716265612f4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/rectanglesbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="helpid:10104" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Square" toolbar:helpid="helpid:10380" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Rect_Rounded" toolbar:helpid="helpid:10105" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Square_Rounded" toolbar:helpid="helpid:10381" toolbar:style="radio" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Rect_Unfilled" toolbar:helpid="helpid:10378" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Square_Unfilled" toolbar:helpid="helpid:10382" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Rect_Rounded_Unfilled" toolbar:helpid="helpid:10379" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Square_Rounded_Unfilled" toolbar:helpid="helpid:10383" toolbar:style="radio" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/slideviewobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/slideviewobjectbar.xml
new file mode 100644
index 000000000000..2e28ce665391
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/slideviewobjectbar.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:RehearseTimings" toolbar:helpid="helpid:10159" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowSlide" toolbar:helpid="helpid:27440" />
+ <toolbar:toolbaritem xlink:href=".uno:HideSlide" toolbar:helpid="helpid:10161" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PagesPerRow" toolbar:helpid="helpid:27284" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/slideviewtoolbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/slideviewtoolbar.xml
new file mode 100644
index 000000000000..4ba11c49fd63
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/slideviewtoolbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Presentation" toolbar:helpid="helpid:10157" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/standardbar.xml
new file mode 100644
index 000000000000..e1d7147249ab
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/standardbar.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="helpid:5537" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:helpid="helpid:5500" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="helpid:5501" />
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="helpid:5505" />
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellDialog" toolbar:helpid="helpid:20622" />
+ <toolbar:toolbaritem xlink:href=".uno:SpellOnline" toolbar:helpid="12021" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="helpid:5710" />
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="helpid:5712" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatPaintbrush" toolbar:helpid="helpid:5715" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="helpid:5701" />
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="helpid:5700" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="10140" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:10141" />
+ <toolbar:toolbaritem xlink:href=".uno:HyperlinkDialog" toolbar:helpid="5678" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" toolbar:style="auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366" />
+ <toolbar:toolbaritem xlink:href=".uno:ZoomToolBox" toolbar:helpid="helpid:10096" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex" />
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/starshapes.xml
new file mode 100644
index 000000000000..073375a2b458
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate" toolbar:helpid="helpid:11007" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..0e96bcf78134
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel" toolbar:helpid="helpid:11003" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/tableobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/tableobjectbar.xml
new file mode 100644
index 000000000000..57726de89461
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/tableobjectbar.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:20330" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MergeCells" toolbar:helpid="helpid:20506" />
+ <toolbar:toolbaritem xlink:href=".uno:SplitCell" toolbar:helpid="helpid:20505" />
+ <toolbar:toolbaritem xlink:href=".uno:OptimizeTable" toolbar:helpid="helpid:20510" toolbar:style="dropdown" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CellVertTop" toolbar:helpid="helpid:20585" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertCenter" toolbar:helpid="helpid:20586" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertBottom" toolbar:helpid="helpid:20587" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:20501" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:20502" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TableDesign" toolbar:helpid="helpid:10429" />
+ <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/textbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/textbar.xml
new file mode 100644
index 000000000000..4bd5672237d3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/textbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:Text" toolbar:helpid="helpid:10006" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:TextFitToSizeTool" toolbar:helpid="helpid:27285" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="helpid:10254" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="helpid:10905" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:VerticalTextFitToSizeTool" toolbar:helpid="helpid:27286" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="helpid:10906" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/textobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/textobjectbar.xml
new file mode 100644
index 000000000000..f91767c983ed
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/textobjectbar.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="10007"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="10015"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="10009"/>
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="10008"/>
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="10014"/>
+ <toolbar:toolbaritem xlink:href=".uno:Shadowed" toolbar:helpid="10010"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="10028"/>
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="10030"/>
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="10029"/>
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="10031"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="10950"/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="10951"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaspaceIncrease" toolbar:visible="false" toolbar:helpid="27346"/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaspaceDecrease" toolbar:visible="false" toolbar:helpid="27347"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:visible="false" toolbar:helpid="10034"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:visible="false" toolbar:helpid="10035"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:visible="false" toolbar:helpid="10036"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
+ <toolbar:toolbaritem xlink:href=".uno:OutlineLeft" toolbar:helpid="10152"/>
+ <toolbar:toolbaritem xlink:href=".uno:OutlineRight" toolbar:helpid="10153"/>
+ <toolbar:toolbaritem xlink:href=".uno:OutlineUp" toolbar:helpid="10150"/>
+ <toolbar:toolbaritem xlink:href=".uno:OutlineDown" toolbar:helpid="10151"/>
+ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403"/>
+ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="10907"/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="10908"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="10296"/>
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="10297"/>
+ <toolbar:toolbaritem xlink:href=".uno:OutlineBullet" toolbar:helpid="10156"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:visible="false" toolbar:helpid="27019"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="10017"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/toolbar.xml
new file mode 100644
index 000000000000..25bffb7e72bb
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/toolbar.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="helpid:10102" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:LineArrowEnd" toolbar:helpid="helpid:27173" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:10104" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:10110" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:Text" toolbar:helpid="helpid:10398" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="helpid:10398" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineToolbox" toolbar:helpid="helpid:10401" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:ConnectorToolbox" toolbar:helpid="helpid:27028" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowsToolbox" toolbar:helpid=".uno:ArrowsToolbox" toolbar:style="radio dropdown" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Objects3DToolbox" toolbar:helpid="helpid:27295" toolbar:style="radio dropdown" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:helpid="helpid:11002" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:helpid="helpid:11003" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:helpid="helpid:11004" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes" toolbar:helpid="helpid:11005" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes" toolbar:helpid="helpid:11006" toolbar:style="radio dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes" toolbar:helpid="helpid:11007" toolbar:style="radio dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="10126"/>
+ <toolbar:toolbaritem xlink:href=".uno:GlueEditMode" toolbar:helpid="helpid:27301" toolbar:style="auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ChangeBezier" toolbar:helpid="helpid:27036" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ChangePolygon" toolbar:helpid="helpid:27037" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ConvertInto3D" toolbar:helpid="helpid:10648" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ConvertInto3DLatheFast" toolbar:helpid="helpid:10649" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="helpid:10241" />
+ <toolbar:toolbaritem xlink:href=".uno:Gallery" toolbar:helpid="helpid:5960" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="helpid:10129" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Mirror" toolbar:helpid="helpid:27085" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectPosition" toolbar:helpid="helpid:27022" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertToolbox" toolbar:helpid="helpid:27318" toolbar:style="radio dropdown" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:helpid="helpid:10593" toolbar:style="dropdown" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+ <toolbar:toolbaritem xlink:href=".uno:CustomAnimation" toolbar:helpid="helpid:27328" toolbar:style="auto" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:AnimationEffects" toolbar:helpid="helpid:27063" />
+ <toolbar:toolbaritem xlink:href=".uno:AnimationObjects" toolbar:helpid="helpid:27062" toolbar:style="auto" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Window3D" toolbar:helpid="helpid:10644" toolbar:style="auto" toolbar:visible="false" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/viewerbar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/viewerbar.xml
new file mode 100644
index 000000000000..861c4f3f890b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/viewerbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="helpid:5961" />
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="helpid:10000" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Presentation" toolbar:helpid="helpid:10157" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/zoombar.xml b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/zoombar.xml
new file mode 100644
index 000000000000..fa59303d6176
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/simpress/toolbar/zoombar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPlus" toolbar:helpid="10097"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomMinus" toolbar:helpid="10098"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom100Percent" toolbar:helpid="10099"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPrevious" toolbar:visible="false" toolbar:helpid="10403"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomNext" toolbar:visible="false" toolbar:helpid="10402"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPage" toolbar:helpid="10100"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPageWidth" toolbar:helpid="27098"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomOptimal" toolbar:helpid="10101"/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomObjects" toolbar:helpid="27099"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPanning" toolbar:helpid="27017"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/smath/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/smath/menubar/menubar.xml
new file mode 100644
index 000000000000..dcb68e740718
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/smath/menubar/menubar.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuitem menu:id=".uno:VersionDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menu menu:id=".uno:SendToMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsPDF"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menuitem menu:id=".uno:Signature"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:Select"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:NextMark"/>
+ <menu:menuitem menu:id=".uno:PrevMark"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:NextError"/>
+ <menu:menuitem menu:id=".uno:PrevError"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Draw"/>
+ <menu:menuitem menu:id=".uno:RedrawAutomatic"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuitem menu:id=".uno:ToolBox"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TaskPane"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FullScreen"/>
+ <menu:menuitem menu:id=".uno:ZoomIn"/>
+ <menu:menuitem menu:id=".uno:ZoomOut"/>
+ <menu:menuitem menu:id=".uno:Adjust"/>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeFont"/>
+ <menu:menuitem menu:id=".uno:ChangeFontSize"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChangeDistance"/>
+ <menu:menuitem menu:id=".uno:ChangeAlignment"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Textmode"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SymbolCatalogue"/>
+ <menu:menuitem menu:id=".uno:ImportFormula"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/smath/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/smath/statusbar/statusbar.xml
new file mode 100644
index 000000000000..33e4e4888f2a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/smath/statusbar/statusbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:TextStatus" statusbar:align="left" statusbar:width="300" statusbar:helpid="helpid:30367"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="54" statusbar:helpid="helpid:10000"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="14" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+</statusbar:statusbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/smath/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/smath/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..ce9cf7d93013
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/smath/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/smath/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/smath/toolbar/standardbar.xml
new file mode 100644
index 000000000000..1a00b34b0128
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/smath/toolbar/standardbar.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="helpid:5537" toolbar:text="" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:helpid="helpid:5500" toolbar:text="" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="helpid:5501" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="helpid:5505" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" toolbar:text="" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="5331"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SendFax" toolbar:helpid="helpid:20028" toolbar:text="" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="helpid:5710" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="helpid:5712" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="helpid:5701" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="helpid:5700" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex" toolbar:helpid="helpid:5401" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:text="" toolbar:visible="false" toolbar:helpid="5402"/>
+
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/smath/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/smath/toolbar/toolbar.xml
new file mode 100644
index 000000000000..1d3eeb2dd0c8
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/smath/toolbar/toolbar.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ZoomIn" toolbar:helpid="helpid:30266" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ZoomOut" toolbar:helpid="helpid:30267" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:View100" toolbar:helpid="helpid:30264" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Adjust" toolbar:helpid="helpid:30269" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Draw" toolbar:helpid="helpid:30268" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:FormelCursor" toolbar:helpid="helpid:30271" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolCatalogue" toolbar:helpid="helpid:30261" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/menubar/menubar.xml
new file mode 100644
index 000000000000..552019d6cf86
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/menubar/menubar.xml
@@ -0,0 +1,389 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menu menu:id=".uno:SendToMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsPDF"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WebHtml"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PrintPreview"/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuitem menu:id=".uno:Repeat"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:PasteSpecial"/>
+ <menu:menuitem menu:id=".uno:SelectTextMode"/>
+ <menu:menu menu:id=".uno:SelectionModeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectionModeDefault" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SelectionModeBlock" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id="vnd.sun.star.findbar:FocusToFindbar"/>
+ <menu:menuitem menu:id=".uno:SearchDialog"/>
+ <menu:menuitem menu:id=".uno:EditGlossary"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FieldDialog"/>
+ <menu:menuitem menu:id=".uno:EditFootnote"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:LinkDialog"/>
+ <menu:menuitem menu:id=".uno:PlugInsActive"/>
+ <menu:menuitem menu:id=".uno:ImageMapDialog"/>
+ <menu:menuitem menu:id=".uno:ObjectMenue"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:PrintLayout" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:BrowseView" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SourceView" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuitem menu:id=".uno:Ruler"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewBounds"/>
+ <menu:menuitem menu:id=".uno:Marks"/>
+ <menu:menuitem menu:id=".uno:Fieldnames"/>
+ <menu:menuitem menu:id=".uno:ControlCodes"/>
+ <menu:menuitem menu:id=".uno:ShowHiddenParagraphs"/>
+ <menu:menuitem menu:id=".uno:ShowAnnotations"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewDataSourceBrowser"/>
+ <menu:menuitem menu:id=".uno:Navigator"/>
+ <menu:menuitem menu:id=".uno:TaskPane"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FullScreen"/>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:FieldMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertDateField"/>
+ <menu:menuitem menu:id=".uno:InsertTimeField"/>
+ <menu:menuitem menu:id=".uno:InsertPageNumberField"/>
+ <menu:menuitem menu:id=".uno:InsertPageCountField"/>
+ <menu:menuitem menu:id=".uno:InsertTitleField"/>
+ <menu:menuitem menu:id=".uno:InsertAuthorField"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertField"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertSymbol"/>
+ <menu:menu menu:id=".uno:FormattingMarkMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertNonBreakingSpace"/>
+ <menu:menuitem menu:id=".uno:InsertHardHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertSoftHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertZWSP"/>
+ <menu:menuitem menu:id=".uno:InsertZWNBSP"/>
+ <menu:menuitem menu:id=".uno:InsertLRM"/>
+ <menu:menuitem menu:id=".uno:InsertRLM"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertSection"/>
+ <menu:menuitem menu:id=".uno:HyperlinkDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertFootnoteDialog"/>
+ <menu:menuitem menu:id=".uno:InsertBookmark"/>
+ <menu:menuitem menu:id=".uno:InsertAnnotation"/>
+ <menu:menuitem menu:id=".uno:InsertScript"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertFrame"/>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertGraphicRuler"/>
+ <menu:menuitem menu:id=".uno:InsertGraphic"/>
+ <menu:menuitem menu:id=".uno:InsertAVMedia"/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertObject"/>
+ <menu:menuitem menu:id=".uno:InsertPlugin"/>
+ <menu:menuitem menu:id=".uno:InsertObjectStarMath"/>
+ <menu:menuitem menu:id=".uno:InsertObjectChart"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertObjectFloatingFrame"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertDoc"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ResetAttributes"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FontDialog"/>
+ <menu:menuitem menu:id=".uno:ParagraphDialog"/>
+ <menu:menuitem menu:id=".uno:BulletsAndNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:PageDialog"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:TransliterateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeCaseToSentenceCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToLower"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToUpper"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToTitleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToToggleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHalfWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToFullWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHiragana"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToKatakana"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:FormatColumns"/>
+ <menu:menuitem menu:id=".uno:EditRegion"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DesignerDialog"/>
+ <menu:menu menu:id=".uno:AutoFormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:OnlineAutoFormat"/>
+ <menu:menuitem menu:id=".uno:AutoFormatApply"/>
+ <menu:menuitem menu:id=".uno:AutoFormatRedlineApply"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:AnchorMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetAnchorToPage" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToPara" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorAtChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToFrame" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WrapMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:WrapOff"/>
+ <menu:menuitem menu:id=".uno:WrapOn"/>
+ <menu:menuitem menu:id=".uno:WrapIdeal"/>
+ <menu:menuitem menu:id=".uno:WrapThrough"/>
+ <menu:menuitem menu:id=".uno:WrapThroughTransparent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WrapContour"/>
+ <menu:menuitem menu:id=".uno:ContourDialog"/>
+ <menu:menuitem menu:id=".uno:WrapAnchorOnly"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TextWrap"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectAlign">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CommonAlignLeft" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignHorizontalCenter" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignRight" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignJustified" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CommonAlignTop"/>
+ <menu:menuitem menu:id=".uno:CommonAlignVerticalCenter"/>
+ <menu:menuitem menu:id=".uno:CommonAlignBottom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ArrangeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:BringToFront"/>
+ <menu:menuitem menu:id=".uno:ObjectForwardOne"/>
+ <menu:menuitem menu:id=".uno:ObjectBackOne"/>
+ <menu:menuitem menu:id=".uno:SendToBack"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetObjectToForeground"/>
+ <menu:menuitem menu:id=".uno:SetObjectToBackground"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FlipMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FlipHorizontal"/>
+ <menu:menuitem menu:id=".uno:FlipVertical"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:GroupMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormatGroup"/>
+ <menu:menuitem menu:id=".uno:FormatUngroup"/>
+ <menu:menuitem menu:id=".uno:EnterGroup"/>
+ <menu:menuitem menu:id=".uno:LeaveGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TransformDialog"/>
+ <menu:menuitem menu:id=".uno:FormatLine"/>
+ <menu:menuitem menu:id=".uno:FormatArea"/>
+ <menu:menuitem menu:id=".uno:TextAttributes"/>
+ <menu:menuitem menu:id=".uno:FontWork"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:NameGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:FrameDialog"/>
+ <menu:menuitem menu:id=".uno:GraphicDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:TableInsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertRowDialog"/>
+ <menu:menuitem menu:id=".uno:InsertColumnDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableDeleteMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DeleteTable"/>
+ <menu:menuitem menu:id=".uno:DeleteRows"/>
+ <menu:menuitem menu:id=".uno:DeleteColumns"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableSelectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectTable"/>
+ <menu:menuitem menu:id=".uno:EntireRow"/>
+ <menu:menuitem menu:id=".uno:EntireColumn"/>
+ <menu:menuitem menu:id=".uno:EntireCell"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:MergeCells"/>
+ <menu:menuitem menu:id=".uno:SplitCell"/>
+ <menu:menuitem menu:id=".uno:Protect"/>
+ <menu:menuitem menu:id=".uno:MergeTable"/>
+ <menu:menuitem menu:id=".uno:SplitTable"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoFormat"/>
+ <menu:menu menu:id=".uno:TableAutoFitMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetColumnWidth"/>
+ <menu:menuitem menu:id=".uno:SetOptimalColumnWidth"/>
+ <menu:menuitem menu:id=".uno:DistributeColumns"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetRowHeight"/>
+ <menu:menuitem menu:id=".uno:SetOptimalRowHeight"/>
+ <menu:menuitem menu:id=".uno:DistributeRows"/>
+ <menu:menuitem menu:id=".uno:RowSplit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:HeadingRowsRepeat"/>
+ <menu:menu menu:id=".uno:TableConvertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ConvertTextToTable"/>
+ <menu:menuitem menu:id=".uno:ConvertTableToText"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:TableSort"/>
+ <menu:menuitem menu:id=".uno:InsertFormula"/>
+ <menu:menuitem menu:id=".uno:TableNumberFormatDialog"/>
+ <menu:menuitem menu:id=".uno:TableBoundaries"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TableDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SpellingAndGrammarDialog"/>
+ <menu:menu menu:id=".uno:LanguageMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetLanguageSelectionMenu"/>
+ <menu:menuitem menu:id=".uno:SetLanguageParagraphMenu"/>
+ <menu:menuitem menu:id=".uno:SetLanguageAllTextMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:HangulHanjaConversion"/>
+ <menu:menuitem menu:id=".uno:ChineseConversion"/>
+ <menu:menuitem menu:id=".uno:ThesaurusDialog"/>
+ <menu:menuitem menu:id=".uno:Hyphenate"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MoreDictionaries"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:WordCountDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FootnoteDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Gallery"/>
+ <menu:menuitem menu:id=".uno:AVMediaPlayer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:BibliographyComponent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SortDialog"/>
+ <menu:menuitem menu:id=".uno:CalculateSel"/>
+ <menu:menuitem menu:id=".uno:Repaginate"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:OpenXMLFilterSettings"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/statusbar/statusbar.xml
new file mode 100644
index 000000000000..f6880369df08
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/statusbar/statusbar.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:StatePageNumber" statusbar:align="left" statusbar:autosize="true" statusbar:width="54" statusbar:helpid="helpid:21181"/>
+ <statusbar:statusbaritem xlink:href=".uno:PageStyleName" statusbar:align="left" statusbar:autosize="true" statusbar:width="79" statusbar:helpid="helpid:21182"/>
+ <statusbar:statusbaritem xlink:href=".uno:LanguageStatus" statusbar:align="center" statusbar:autosize="true" statusbar:width="100" />
+ <statusbar:statusbaritem xlink:href=".uno:InsertMode" statusbar:align="center" statusbar:width="37" statusbar:helpid="helpid:10221"/>
+ <statusbar:statusbaritem xlink:href=".uno:SelectionMode" statusbar:align="center" statusbar:width="30" statusbar:helpid="helpid:21185"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="9" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+ <statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="left" statusbar:autosize="true" statusbar:ownerdraw="true" statusbar:width="129" statusbar:helpid="helpid:10224"/>
+ <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130" statusbar:helpid="helpid:11065"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="35" statusbar:helpid="helpid:10000"/>
+</statusbar:statusbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..4a53519494ea
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow" toolbar:helpid="helpid:11004" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..e65778305788
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame" toolbar:helpid="helpid:11002" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/bezierobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/bezierobjectbar.xml
new file mode 100644
index 000000000000..7c067e68d13c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/bezierobjectbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="helpid:10126" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierMove" toolbar:helpid="helpid:10121" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierInsert" toolbar:helpid="helpid:10119" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierDelete" toolbar:helpid="helpid:10120" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierCutLine" toolbar:helpid="helpid:10127" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierConvert" toolbar:helpid="helpid:27065" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEdge" toolbar:helpid="helpid:27066" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSmooth" toolbar:helpid="helpid:10123" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSymmetric" toolbar:helpid="helpid:27067" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierClose" toolbar:helpid="helpid:10122" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEliminatePoints" toolbar:helpid="helpid:27030" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..91b957fa697a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" toolbar:helpid="helpid:11006" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/colorbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/colorbar.xml
new file mode 100644
index 000000000000..51054f609d8b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/colorbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GrafRed" toolbar:helpid="helpid:10865" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGreen" toolbar:helpid="helpid:10866" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafBlue" toolbar:helpid="helpid:10867" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafLuminance" toolbar:helpid="helpid:10863" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafContrast" toolbar:helpid="helpid:10864" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGamma" toolbar:helpid="helpid:10868" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafTransparence" toolbar:helpid="helpid:10869" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/drawingobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/drawingobjectbar.xml
new file mode 100644
index 000000000000..124403489aaa
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/drawingobjectbar.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="10143"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineEndStyle" toolbar:helpid="10301"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineStyle" toolbar:helpid="10169"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineWidth" toolbar:helpid="10171"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineColor" toolbar:helpid="10172"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="10142"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="10164"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:visible="false" toolbar:helpid="20474"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapContour" toolbar:visible="false" toolbar:helpid="20584"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToForeground" toolbar:helpid="10283"/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToBackground" toolbar:helpid="10282"/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="10130"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/drawtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/drawtextobjectbar.xml
new file mode 100644
index 000000000000..e71905df663f
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/drawtextobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017" toolbar:style="dropdown" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="helpid:10907" />
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="helpid:10908" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/extrusionobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/extrusionobjectbar.xml
new file mode 100644
index 000000000000..148849db6ee7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/extrusionobjectbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltDown" toolbar:helpid="10961"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltUp" toolbar:helpid="10962"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltLeft" toolbar:helpid="10963"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltRight" toolbar:helpid="10964"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDepthFloater" toolbar:helpid="10965" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDirectionFloater" toolbar:helpid="10966" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionLightingFloater" toolbar:helpid="10967" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionSurfaceFloater" toolbar:helpid="10968" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:Extrusion3DColor" toolbar:helpid="10969" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/findbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/findbar.xml
new file mode 100644
index 000000000000..49e483e178a3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/findbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FindText"/>
+ <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
+ <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..bb1d1099dbd4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display" toolbar:helpid="helpid:11005" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fontworkobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fontworkobjectbar.xml
new file mode 100644
index 000000000000..a6d5c8d4f6f9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fontworkobjectbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType" toolbar:helpid="helpid:10978" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkSameLetterHeights" toolbar:helpid="helpid:10979" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkAlignmentFloater" toolbar:helpid="helpid:10981" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkCharacterSpacingFloater" toolbar:helpid="helpid:10982" toolbar:style="dropdownonly" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fontworkshapetype.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fontworkshapetype.xml
new file mode 100644
index 000000000000..49b5b8173e0e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fontworkshapetype.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-plain-text" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-wave" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-inflate" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-stop" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-pour" toolbar:helpid="helpid:10978" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formcontrols.xml
new file mode 100644
index 000000000000..48fc8fb1653e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formcontrols.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CheckBox" toolbar:helpid="helpid:10596" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Edit" toolbar:helpid="helpid:10599" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormattedField" toolbar:helpid="helpid:10728" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Pushbutton" toolbar:helpid="helpid:10594" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:RadioButton" toolbar:helpid="helpid:10595" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ListBox" toolbar:helpid="helpid:10600" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ComboBox" toolbar:helpid="helpid:10601" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Label" toolbar:helpid="helpid:10597" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormDesignTools" toolbar:helpid="helpid:11046" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:UseWizards" toolbar:helpid="helpid:10727" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formdesign.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formdesign.xml
new file mode 100644
index 000000000000..b667b509e9b2
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formdesign.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowFmExplorer" toolbar:helpid="helpid:10633" />
+ <toolbar:toolbaritem xlink:href=".uno:TabDialog" toolbar:helpid="helpid:10615" />
+ <toolbar:toolbaritem xlink:href=".uno:AddField" toolbar:helpid="helpid:10623" />
+ <toolbar:toolbaritem xlink:href=".uno:AutoControlFocus" toolbar:helpid="helpid:10763" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="helpid:10454" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="helpid:10455" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EnterGroup" toolbar:helpid="helpid:27096" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:LeaveGroup" toolbar:helpid="helpid:27097" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OpenReadOnly" toolbar:helpid="helpid:10709" />
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" />
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formsfilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formsfilterbar.xml
new file mode 100644
index 000000000000..1d1ad07a9938
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formsfilterbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExecute" toolbar:helpid="helpid:10731" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterNavigator" toolbar:helpid="helpid:10732" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExit" toolbar:helpid="helpid:10730" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formsnavigationbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formsnavigationbar.xml
new file mode 100644
index 000000000000..c6e16444a55d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formsnavigationbar.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="10725"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecText" toolbar:helpid="10624"/>
+ <toolbar:toolbaritem xlink:href=".uno:AbsoluteRecord" toolbar:helpid="10622"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecFromText" toolbar:helpid="10625"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecTotal" toolbar:helpid="10626"/>
+ <toolbar:toolbaritem xlink:href=".uno:FirstRecord" toolbar:helpid="10616"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrevRecord" toolbar:helpid="10618"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextRecord" toolbar:helpid="10617"/>
+ <toolbar:toolbaritem xlink:href=".uno:LastRecord" toolbar:helpid="10619"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewRecord" toolbar:helpid="10620"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="10627"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="10630"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRecord" toolbar:helpid="10621"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="10724"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="10714"/>
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="10712"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="10713"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="10716"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="10723"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilter" toolbar:helpid="10729"/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="10711"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewFormAsGrid" toolbar:helpid="10761"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formtextobjectbar.xml
new file mode 100644
index 000000000000..dbdeaf675371
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/formtextobjectbar.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/frameobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/frameobjectbar.xml
new file mode 100644
index 000000000000..a591f9094457
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/frameobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="helpid:20477" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="helpid:20476" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="helpid:20478" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="helpid:20480" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="helpid:20479" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="helpid:20456" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ChainFrames" toolbar:helpid="helpid:21736" />
+ <toolbar:toolbaritem xlink:href=".uno:UnhainFrames" toolbar:helpid="helpid:21737" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..5aecdda4fb04
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/graffilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/graffilterbar.xml
new file mode 100644
index 000000000000..287c33fe25e5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/graffilterbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterInvert" toolbar:helpid="helpid:34149" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSmooth" toolbar:helpid="helpid:34150" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSharpen" toolbar:helpid="helpid:34151" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRemoveNoise" toolbar:helpid="helpid:34152" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSolarize" toolbar:helpid="helpid:34159" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSepia" toolbar:helpid="helpid:34158" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPoster" toolbar:helpid="helpid:34156" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPopart" toolbar:helpid="helpid:34157" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSobel" toolbar:helpid="helpid:34153" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRelief" toolbar:helpid="helpid:34155" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterMosaic" toolbar:helpid="helpid:34154" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/graphicobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/graphicobjectbar.xml
new file mode 100644
index 000000000000..9b5f91cfe9ba
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/graphicobjectbar.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="20573"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ImageMapDialog" toolbar:helpid="10371"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="20475"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="20476"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="20478"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="20480"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="20479"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="10187"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="10200"/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="10201"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20458"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/insertbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/insertbar.xml
new file mode 100644
index 000000000000..bc58724fab26
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/insertbar.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSection" toolbar:helpid="21419"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFootnote" toolbar:helpid="20399"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertEndnote" toolbar:helpid="21418"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="20329"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertBookmark" toolbar:helpid="20302"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:visible="false" toolbar:helpid="5532"/>
+ <toolbar:toolbaritem xlink:href=".uno:EditGlossary"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:helpid="20328"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+ <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:visible="false" toolbar:helpid="10593"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="20369"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:visible="false" toolbar:helpid="10140"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/mediaobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/mediaobjectbar.xml
new file mode 100644
index 000000000000..2014343bf89b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/mediaobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AVMediaToolBox" toolbar:helpid="helpid:6693" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/numobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/numobjectbar.xml
new file mode 100644
index 000000000000..50e28ac32f64
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/numobjectbar.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="20144"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveBullets" toolbar:helpid="20137"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementLevel" toolbar:helpid="20131"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementLevel" toolbar:helpid="20130"/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementSubLevels" toolbar:helpid="20140"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementSubLevels" toolbar:helpid="20139"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertNeutralParagraph" toolbar:helpid="20136"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUp" toolbar:helpid="20134"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDown" toolbar:helpid="20135"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUpSubItems" toolbar:helpid="20141"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDownSubItems" toolbar:helpid="20142"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:NumberingStart" toolbar:helpid="21738"/>
+ <toolbar:toolbaritem xlink:href=".uno:BulletsAndNumberingDialog" toolbar:helpid="20121"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/oleobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/oleobjectbar.xml
new file mode 100644
index 000000000000..c95b1aebb316
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/oleobjectbar.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="5552"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="20475"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="20477"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="20476"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="20478"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="20480"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="20479"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20456"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="10187"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="10200"/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="10201"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/optimizetablebar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/optimizetablebar.xml
new file mode 100644
index 000000000000..7669add92e89
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/optimizetablebar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DistributeColumns" toolbar:helpid="helpid:20582" />
+ <toolbar:toolbaritem xlink:href=".uno:DistributeRows" toolbar:helpid="helpid:20583" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalRowHeight" toolbar:helpid="helpid:20528" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalColumnWidth" toolbar:helpid="helpid:20521" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/previewobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/previewobjectbar.xml
new file mode 100644
index 000000000000..5c6d30522614
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/previewobjectbar.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:PageUp" toolbar:helpid="20937"/>
+ <toolbar:toolbaritem xlink:href=".uno:PageDown" toolbar:helpid="20938"/>
+<toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToStartOfDoc" toolbar:helpid="20907"/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToEndOfDoc" toolbar:helpid="20908"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowTwoPages" toolbar:helpid="21251"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowMultiplePages" toolbar:helpid="21252"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowBookview" toolbar:helpid="helpid:21255" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPlus" toolbar:helpid="10097"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PreviewZoom" toolbar:helpid="53071"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomMinus" toolbar:helpid="10098"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="5627"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPagePreView" toolbar:helpid="21253"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ClosePreview" toolbar:helpid="5325"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/standardbar.xml
new file mode 100644
index 000000000000..a5d029920848
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/standardbar.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="5537"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:visible="false" toolbar:helpid="5500"/>
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="5501"/>
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="5505"/>
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:visible="false" toolbar:helpid="5502"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="5331"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="6312"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="6674"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="5509"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPreview" toolbar:helpid="5325"/>
+ <toolbar:toolbaritem xlink:href=".uno:SourceView" toolbar:helpid="5675"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellingAndGrammarDialog" toolbar:helpid="20622"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellOnline" toolbar:helpid="12021"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="5710"/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="5711"/>
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="5712"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatPaintbrush" toolbar:helpid="5715"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="5701"/>
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="5700"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HyperlinkDialog" toolbar:helpid="5678"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:helpid="10593"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="5961" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="10366"/>
+ <toolbar:toolbaritem xlink:href=".uno:Gallery" toolbar:helpid="5960"/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewDataSourceBrowser" toolbar:helpid="6660"/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlCodes" toolbar:helpid="20224"/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="10000" toolbar:visible="false"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false" toolbar:helpid="5402"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/starshapes.xml
new file mode 100644
index 000000000000..a2ff874d2fe7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate" toolbar:helpid="helpid:11007" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..0fa6aee313db
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel" toolbar:helpid="helpid:11003" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/tableobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/tableobjectbar.xml
new file mode 100644
index 000000000000..bce574f0d985
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/tableobjectbar.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:20330" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MergeCells" toolbar:helpid="helpid:20506" />
+ <toolbar:toolbaritem xlink:href=".uno:SplitCell" toolbar:helpid="helpid:20505" />
+ <toolbar:toolbaritem xlink:href=".uno:OptimizeTable" toolbar:helpid="helpid:20510" toolbar:style="dropdown" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CellVertTop" toolbar:helpid="helpid:20585" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertCenter" toolbar:helpid="helpid:20586" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertBottom" toolbar:helpid="helpid:20587" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:20501" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:20502" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595" />
+ <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TableSort" toolbar:helpid="helpid:20533" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoSum" toolbar:helpid="helpid:20595" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/textobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/textobjectbar.xml
new file mode 100644
index 000000000000..b0db34a8d1f3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/textobjectbar.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:DesignerDialog" toolbar:helpid="5539"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="5552"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="10007"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="10015"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="10009"/>
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="10008"/>
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="10014"/>
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:visible="false" toolbar:helpid="20411"/>
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:visible="false" toolbar:helpid="20412"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="10028"/>
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="10030"/>
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="10029"/>
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="10950"/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="10951"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:visible="false" toolbar:helpid="10034"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:visible="false" toolbar:helpid="10035"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:visible="false" toolbar:helpid="10036"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="20144"/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="10461"/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="10462"/>
+ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:visible="false" toolbar:helpid="20403"/>
+ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:visible="false" toolbar:helpid="20404"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="10017"/>
+ <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="10489"/>
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="10185"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:visible="false" toolbar:helpid="5723"/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:visible="false" toolbar:helpid="10296"/>
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:visible="false" toolbar:helpid="10297"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/toolbar.xml
new file mode 100644
index 000000000000..ce47aaabe082
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/toolbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertCtrl" toolbar:helpid="52822"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Hyphenate" toolbar:helpid="20605"/>
+ <toolbar:toolbaritem xlink:href=".uno:ThesaurusDialog" toolbar:helpid="20603"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Graphic" toolbar:helpid="20213"/>
+ <toolbar:toolbaritem xlink:href=".uno:ImageMapDialog" toolbar:helpid="10371"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/viewerbar.xml b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/viewerbar.xml
new file mode 100644
index 000000000000..d4d6a59d7ed5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/sweb/toolbar/viewerbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="helpid:5961" />
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="helpid:10000" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/menubar/menubar.xml
new file mode 100644
index 000000000000..7e5f14f5d58c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/menubar/menubar.xml
@@ -0,0 +1,454 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuitem menu:id=".uno:VersionDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menuitem menu:id=".uno:ExportToPDF"/>
+ <menu:menu menu:id=".uno:SendToMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsOOo"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsMS"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsPDF"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:NewGlobalDoc"/>
+ <menu:menuitem menu:id=".uno:NewHtmlDoc"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SendOutlineToStarImpress"/>
+ <menu:menuitem menu:id=".uno:SendOutlineToClipboard"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CreateAbstract"/>
+ <menu:menuitem menu:id=".uno:SendAbstractToStarImpress"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PrintPreview"/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuitem menu:id=".uno:Repeat"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:PasteSpecial"/>
+ <menu:menuitem menu:id=".uno:SelectTextMode"/>
+ <menu:menu menu:id=".uno:SelectionModeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectionModeDefault" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SelectionModeBlock" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ChangesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TrackChanges"/>
+ <menu:menuitem menu:id=".uno:ProtectTraceChangeMode"/>
+ <menu:menuitem menu:id=".uno:ShowTrackedChanges"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AcceptTrackedChanges"/>
+ <menu:menuitem menu:id=".uno:CommentChangeTracking"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MergeDocuments"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:CompareDocuments"/>
+ <menu:menuitem menu:id="vnd.sun.star.findbar:FocusToFindbar"/>
+ <menu:menuitem menu:id=".uno:SearchDialog"/>
+ <menu:menuitem menu:id=".uno:EditGlossary"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChangeDatabaseField"/>
+ <menu:menuitem menu:id=".uno:FieldDialog"/>
+ <menu:menuitem menu:id=".uno:EditFootnote"/>
+ <menu:menuitem menu:id=".uno:IndexEntryDialog"/>
+ <menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:LinkDialog"/>
+ <menu:menuitem menu:id=".uno:PlugInsActive"/>
+ <menu:menuitem menu:id=".uno:ImageMapDialog"/>
+ <menu:menuitem menu:id=".uno:ObjectMenue"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:PrintLayout" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:BrowseView" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuitem menu:id=".uno:Ruler"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewBounds"/>
+ <menu:menuitem menu:id=".uno:Marks"/>
+ <menu:menuitem menu:id=".uno:Fieldnames"/>
+ <menu:menuitem menu:id=".uno:ControlCodes"/>
+ <menu:menuitem menu:id=".uno:ShowHiddenParagraphs"/>
+ <menu:menuitem menu:id=".uno:ShowAnnotations"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewDataSourceBrowser"/>
+ <menu:menuitem menu:id=".uno:Navigator"/>
+ <menu:menuitem menu:id=".uno:TaskPane"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FullScreen"/>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertBreak"/>
+ <menu:menu menu:id=".uno:FieldMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertDateField"/>
+ <menu:menuitem menu:id=".uno:InsertTimeField"/>
+ <menu:menuitem menu:id=".uno:InsertPageNumberField"/>
+ <menu:menuitem menu:id=".uno:InsertPageCountField"/>
+ <menu:menuitem menu:id=".uno:InsertTopicField"/>
+ <menu:menuitem menu:id=".uno:InsertTitleField"/>
+ <menu:menuitem menu:id=".uno:InsertAuthorField"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertField"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertSymbol"/>
+ <menu:menu menu:id=".uno:FormattingMarkMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertNonBreakingSpace"/>
+ <menu:menuitem menu:id=".uno:InsertHardHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertSoftHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertZWSP"/>
+ <menu:menuitem menu:id=".uno:InsertZWNBSP"/>
+ <menu:menuitem menu:id=".uno:InsertLRM"/>
+ <menu:menuitem menu:id=".uno:InsertRLM"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertSection"/>
+ <menu:menuitem menu:id=".uno:HyperlinkDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertPageHeader"/>
+ <menu:menuitem menu:id=".uno:InsertPageFooter"/>
+ <menu:menuitem menu:id=".uno:InsertFootnoteDialog"/>
+ <menu:menuitem menu:id=".uno:InsertCaptionDialog"/>
+ <menu:menuitem menu:id=".uno:InsertBookmark"/>
+ <menu:menuitem menu:id=".uno:InsertReferenceField"/>
+ <menu:menuitem menu:id=".uno:InsertAnnotation"/>
+ <menu:menuitem menu:id=".uno:InsertScript"/>
+ <menu:menu menu:id=".uno:IndexesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertIndexesEntry"/>
+ <menu:menuitem menu:id=".uno:InsertMultiIndex"/>
+ <menu:menuitem menu:id=".uno:InsertAuthoritiesEntry"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertEnvelope"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertFrame"/>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertGraphicRuler"/>
+ <menu:menu menu:id=".uno:GraphicMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertGraphic"/>
+ <menu:menu menu:id=".uno:Scan">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TwainSelect"/>
+ <menu:menuitem menu:id=".uno:TwainTransfer"/>
+ </menu:menupopup>
+ </menu:menu>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertAVMedia"/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertObject"/>
+ <menu:menuitem menu:id=".uno:InsertPlugin"/>
+ <menu:menuitem menu:id=".uno:InsertObjectStarMath"/>
+ <menu:menuitem menu:id=".uno:InsertObjectChart"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertObjectFloatingFrame"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertDoc"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ResetAttributes"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FontDialog"/>
+ <menu:menuitem menu:id=".uno:ParagraphDialog"/>
+ <menu:menuitem menu:id=".uno:BulletsAndNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:PageDialog"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:TransliterateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeCaseToSentenceCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToLower"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToUpper"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToTitleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToToggleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHalfWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToFullWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHiragana"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToKatakana"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:RubyDialog"/>
+ <menu:menuitem menu:id=".uno:FormatColumns"/>
+ <menu:menuitem menu:id=".uno:EditRegion"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DesignerDialog"/>
+ <menu:menu menu:id=".uno:AutoFormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:OnlineAutoFormat"/>
+ <menu:menuitem menu:id=".uno:AutoFormatApply"/>
+ <menu:menuitem menu:id=".uno:AutoFormatRedlineApply"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:AnchorMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetAnchorToPage" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToPara" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorAtChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToFrame" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WrapMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:WrapOff"/>
+ <menu:menuitem menu:id=".uno:WrapOn"/>
+ <menu:menuitem menu:id=".uno:WrapIdeal"/>
+ <menu:menuitem menu:id=".uno:WrapThrough"/>
+ <menu:menuitem menu:id=".uno:WrapThroughTransparent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WrapContour"/>
+ <menu:menuitem menu:id=".uno:ContourDialog"/>
+ <menu:menuitem menu:id=".uno:WrapAnchorOnly"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TextWrap"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectAlign">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CommonAlignLeft" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignHorizontalCenter" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignRight" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignJustified" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CommonAlignTop"/>
+ <menu:menuitem menu:id=".uno:CommonAlignVerticalCenter"/>
+ <menu:menuitem menu:id=".uno:CommonAlignBottom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ArrangeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:BringToFront"/>
+ <menu:menuitem menu:id=".uno:ObjectForwardOne"/>
+ <menu:menuitem menu:id=".uno:ObjectBackOne"/>
+ <menu:menuitem menu:id=".uno:SendToBack"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetObjectToForeground"/>
+ <menu:menuitem menu:id=".uno:SetObjectToBackground"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FlipMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FlipHorizontal"/>
+ <menu:menuitem menu:id=".uno:FlipVertical"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:GroupMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormatGroup"/>
+ <menu:menuitem menu:id=".uno:FormatUngroup"/>
+ <menu:menuitem menu:id=".uno:EnterGroup"/>
+ <menu:menuitem menu:id=".uno:LeaveGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TransformDialog"/>
+ <menu:menuitem menu:id=".uno:FormatLine"/>
+ <menu:menuitem menu:id=".uno:FormatArea"/>
+ <menu:menuitem menu:id=".uno:TextAttributes"/>
+ <menu:menuitem menu:id=".uno:FontWork"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ObjectTitleDescription"/>
+ <menu:menuitem menu:id=".uno:NameGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:FrameDialog"/>
+ <menu:menuitem menu:id=".uno:GraphicDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:TableInsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertRowDialog"/>
+ <menu:menuitem menu:id=".uno:InsertColumnDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableDeleteMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DeleteTable"/>
+ <menu:menuitem menu:id=".uno:DeleteRows"/>
+ <menu:menuitem menu:id=".uno:DeleteColumns"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableSelectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectTable"/>
+ <menu:menuitem menu:id=".uno:EntireRow"/>
+ <menu:menuitem menu:id=".uno:EntireColumn"/>
+ <menu:menuitem menu:id=".uno:EntireCell"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:MergeCells"/>
+ <menu:menuitem menu:id=".uno:SplitCell"/>
+ <menu:menuitem menu:id=".uno:Protect"/>
+ <menu:menuitem menu:id=".uno:MergeTable"/>
+ <menu:menuitem menu:id=".uno:SplitTable"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoFormat"/>
+ <menu:menu menu:id=".uno:TableAutoFitMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetColumnWidth"/>
+ <menu:menuitem menu:id=".uno:SetOptimalColumnWidth"/>
+ <menu:menuitem menu:id=".uno:DistributeColumns"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetRowHeight"/>
+ <menu:menuitem menu:id=".uno:SetOptimalRowHeight"/>
+ <menu:menuitem menu:id=".uno:DistributeRows"/>
+ <menu:menuitem menu:id=".uno:RowSplit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:HeadingRowsRepeat"/>
+ <menu:menu menu:id=".uno:TableConvertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ConvertTextToTable"/>
+ <menu:menuitem menu:id=".uno:ConvertTableToText"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:TableSort"/>
+ <menu:menuitem menu:id=".uno:InsertFormula"/>
+ <menu:menuitem menu:id=".uno:TableNumberFormatDialog"/>
+ <menu:menuitem menu:id=".uno:TableBoundaries"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TableDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SpellingAndGrammarDialog"/>
+ <menu:menu menu:id=".uno:LanguageMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HangulHanjaConversion"/>
+ <menu:menuitem menu:id=".uno:ChineseConversion"/>
+ <menu:menuitem menu:id=".uno:ThesaurusDialog"/>
+ <menu:menuitem menu:id=".uno:Hyphenate"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MoreDictionaries"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:WordCountDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChapterNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:LineNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:FootnoteDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Gallery"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:BibliographyComponent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MailMergeWizard"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SortDialog"/>
+ <menu:menuitem menu:id=".uno:CalculateSel"/>
+ <menu:menu menu:id=".uno:UpdateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:UpdateAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:UpdateFields"/>
+ <menu:menuitem menu:id=".uno:UpdateAllLinks"/>
+ <menu:menuitem menu:id=".uno:UpdateCharts"/>
+ <menu:menuitem menu:id=".uno:UpdateCurIndex"/>
+ <menu:menuitem menu:id=".uno:UpdateAllIndexes"/>
+ <menu:menuitem menu:id=".uno:Repaginate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:OpenXMLFilterSettings"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/statusbar/statusbar.xml
new file mode 100644
index 000000000000..f6880369df08
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/statusbar/statusbar.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:StatePageNumber" statusbar:align="left" statusbar:autosize="true" statusbar:width="54" statusbar:helpid="helpid:21181"/>
+ <statusbar:statusbaritem xlink:href=".uno:PageStyleName" statusbar:align="left" statusbar:autosize="true" statusbar:width="79" statusbar:helpid="helpid:21182"/>
+ <statusbar:statusbaritem xlink:href=".uno:LanguageStatus" statusbar:align="center" statusbar:autosize="true" statusbar:width="100" />
+ <statusbar:statusbaritem xlink:href=".uno:InsertMode" statusbar:align="center" statusbar:width="37" statusbar:helpid="helpid:10221"/>
+ <statusbar:statusbaritem xlink:href=".uno:SelectionMode" statusbar:align="center" statusbar:width="30" statusbar:helpid="helpid:21185"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="9" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+ <statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="left" statusbar:autosize="true" statusbar:ownerdraw="true" statusbar:width="129" statusbar:helpid="helpid:10224"/>
+ <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130" statusbar:helpid="helpid:11065"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="35" statusbar:helpid="helpid:10000"/>
+</statusbar:statusbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/alignmentbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/alignmentbar.xml
new file mode 100644
index 000000000000..dbd7294e566c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/alignmentbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignLeft" toolbar:helpid="helpid:10131" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignCenter" toolbar:helpid="helpid:10132" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignRight" toolbar:helpid="helpid:10133" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignUp" toolbar:helpid="helpid:10134" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignMiddle" toolbar:helpid="helpid:10135" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignDown" toolbar:helpid="helpid:10136" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..4a53519494ea
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow" toolbar:helpid="helpid:11004" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..e65778305788
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame" toolbar:helpid="helpid:11002" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/bezierobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/bezierobjectbar.xml
new file mode 100644
index 000000000000..7c067e68d13c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/bezierobjectbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="helpid:10126" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierMove" toolbar:helpid="helpid:10121" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierInsert" toolbar:helpid="helpid:10119" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierDelete" toolbar:helpid="helpid:10120" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierCutLine" toolbar:helpid="helpid:10127" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierConvert" toolbar:helpid="helpid:27065" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEdge" toolbar:helpid="helpid:27066" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSmooth" toolbar:helpid="helpid:10123" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSymmetric" toolbar:helpid="helpid:27067" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierClose" toolbar:helpid="helpid:10122" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEliminatePoints" toolbar:helpid="helpid:27030" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..91b957fa697a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" toolbar:helpid="helpid:11006" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/colorbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/colorbar.xml
new file mode 100644
index 000000000000..adcda76b5c3a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/colorbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GrafRed" toolbar:helpid="helpid:10865" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGreen" toolbar:helpid="helpid:10866" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafBlue" toolbar:helpid="helpid:10867" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafLuminance" toolbar:helpid="helpid:10863" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafContrast" toolbar:helpid="helpid:10864" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGamma" toolbar:helpid="helpid:10868" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawbar.xml
new file mode 100644
index 000000000000..2407475a88f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="10128"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+ <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
+ <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:helpid="11002"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:helpid="11003"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:helpid="11004"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes" toolbar:helpid="11005"/>
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes" toolbar:helpid="11006"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes" toolbar:helpid="11007"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="10126"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="10977"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawingobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawingobjectbar.xml
new file mode 100644
index 000000000000..4703c3cfdad6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawingobjectbar.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="helpid:10143" />
+ <toolbar:toolbaritem xlink:href=".uno:LineEndStyle" toolbar:helpid="helpid:10301" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineStyle" toolbar:helpid="helpid:10169" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineWidth" toolbar:helpid="helpid:10171" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineColor" toolbar:helpid="helpid:10172" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="helpid:10142" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:visible="false" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapContour" toolbar:visible="false" toolbar:helpid="20584"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToForeground" toolbar:helpid="10283"/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToBackground" toolbar:helpid="10282"/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="10130"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="10455"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="10454"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawtextobjectbar.xml
new file mode 100644
index 000000000000..31e5ca4db662
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/drawtextobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017" toolbar:style="dropdown" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="helpid:10907" />
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="helpid:10908" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/extrusionobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/extrusionobjectbar.xml
new file mode 100644
index 000000000000..148849db6ee7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/extrusionobjectbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltDown" toolbar:helpid="10961"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltUp" toolbar:helpid="10962"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltLeft" toolbar:helpid="10963"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltRight" toolbar:helpid="10964"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDepthFloater" toolbar:helpid="10965" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDirectionFloater" toolbar:helpid="10966" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionLightingFloater" toolbar:helpid="10967" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionSurfaceFloater" toolbar:helpid="10968" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:Extrusion3DColor" toolbar:helpid="10969" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..bb1d1099dbd4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display" toolbar:helpid="helpid:11005" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fontworkobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fontworkobjectbar.xml
new file mode 100644
index 000000000000..5219a1e235e9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fontworkobjectbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType" toolbar:helpid="helpid:10978" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkSameLetterHeights" toolbar:helpid="helpid:10979" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkAlignmentFloater" toolbar:helpid="helpid:10981" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkCharacterSpacingFloater" toolbar:helpid="helpid:10982" toolbar:style="dropdownonly" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fontworkshapetype.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fontworkshapetype.xml
new file mode 100644
index 000000000000..49b5b8173e0e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fontworkshapetype.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-plain-text" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-wave" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-inflate" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-stop" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-pour" toolbar:helpid="helpid:10978" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formcontrols.xml
new file mode 100644
index 000000000000..573ca246f7a9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formcontrols.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:text="" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CheckBox" toolbar:helpid="helpid:10596" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Edit" toolbar:helpid="helpid:10599" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormattedField" toolbar:helpid="helpid:10728" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Pushbutton" toolbar:helpid="helpid:10594" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:RadioButton" toolbar:helpid="helpid:10595" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ListBox" toolbar:helpid="helpid:10600" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ComboBox" toolbar:helpid="helpid:10601" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Label" toolbar:helpid="helpid:10597" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:MoreControls" toolbar:helpid="helpid:11045" />
+ <toolbar:toolbaritem xlink:href=".uno:FormDesignTools" toolbar:helpid="helpid:11046" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:UseWizards" toolbar:helpid="helpid:10727" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formdesign.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formdesign.xml
new file mode 100644
index 000000000000..aaa3f09d9fb1
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formdesign.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowFmExplorer" toolbar:helpid="helpid:10633" />
+ <toolbar:toolbaritem xlink:href=".uno:AddField" toolbar:helpid="helpid:10623" />
+ <toolbar:toolbaritem xlink:href=".uno:TabDialog" toolbar:helpid="helpid:10615" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OpenReadOnly" toolbar:helpid="helpid:10709" />
+ <toolbar:toolbaritem xlink:href=".uno:AutoControlFocus" toolbar:helpid="helpid:10763" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="helpid:10454" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="helpid:10455" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EnterGroup" toolbar:helpid="helpid:27096" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:LeaveGroup" toolbar:helpid="helpid:27097" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" />
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formsfilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formsfilterbar.xml
new file mode 100644
index 000000000000..1d1ad07a9938
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formsfilterbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExecute" toolbar:helpid="helpid:10731" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterNavigator" toolbar:helpid="helpid:10732" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExit" toolbar:helpid="helpid:10730" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formsnavigationbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formsnavigationbar.xml
new file mode 100644
index 000000000000..ce47a450e2f5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formsnavigationbar.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="10725"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecText" toolbar:helpid="10624"/>
+ <toolbar:toolbaritem xlink:href=".uno:AbsoluteRecord" toolbar:helpid="10622"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecFromText" toolbar:helpid="10625"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecTotal" toolbar:helpid="10626"/>
+ <toolbar:toolbaritem xlink:href=".uno:FirstRecord" toolbar:helpid="10616"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrevRecord" toolbar:helpid="10618"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextRecord" toolbar:helpid="10617"/>
+ <toolbar:toolbaritem xlink:href=".uno:LastRecord" toolbar:helpid="10619"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewRecord" toolbar:helpid="10620"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="10627"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="10630"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRecord" toolbar:helpid="10621"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="10724"/>
+ <toolbar:toolbaritem xlink:href=".uno:RefreshFormControl"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="10714"/>
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="10712"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="10713"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="10716"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="10723"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilter" toolbar:helpid="10729"/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="10711"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewFormAsGrid" toolbar:helpid="10761"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formtextobjectbar.xml
new file mode 100644
index 000000000000..dbdeaf675371
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/formtextobjectbar.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/frameobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/frameobjectbar.xml
new file mode 100644
index 000000000000..a591f9094457
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/frameobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="helpid:20477" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="helpid:20476" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="helpid:20478" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="helpid:20480" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="helpid:20479" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="helpid:20456" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ChainFrames" toolbar:helpid="helpid:21736" />
+ <toolbar:toolbaritem xlink:href=".uno:UnhainFrames" toolbar:helpid="helpid:21737" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..5aecdda4fb04
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/graffilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/graffilterbar.xml
new file mode 100644
index 000000000000..287c33fe25e5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/graffilterbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterInvert" toolbar:helpid="helpid:34149" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSmooth" toolbar:helpid="helpid:34150" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSharpen" toolbar:helpid="helpid:34151" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRemoveNoise" toolbar:helpid="helpid:34152" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSolarize" toolbar:helpid="helpid:34159" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSepia" toolbar:helpid="helpid:34158" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPoster" toolbar:helpid="helpid:34156" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPopart" toolbar:helpid="helpid:34157" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSobel" toolbar:helpid="helpid:34153" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRelief" toolbar:helpid="helpid:34155" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterMosaic" toolbar:helpid="helpid:34154" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/graphicobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/graphicobjectbar.xml
new file mode 100644
index 000000000000..040bb8cd8ae6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/graphicobjectbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterToolbox" toolbar:helpid="10469"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafMode" toolbar:helpid="10871"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ColorSettings" toolbar:helpid="11016"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafTransparence" toolbar:helpid="10869"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FlipVertical" toolbar:helpid="20426"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlipHorizontal" toolbar:helpid="20425"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20458"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/insertbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/insertbar.xml
new file mode 100644
index 000000000000..a9bb7e0eb204
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/insertbar.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFrameInteract" toolbar:helpid="20333"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:helpid="5532"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFootnote" toolbar:helpid="20399"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertEndnote" toolbar:helpid="21418"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:helpid="20328"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="20369"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSection" toolbar:helpid="21419"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:visible="false" toolbar:helpid="10140"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjCtrl" toolbar:visible="false" toolbar:helpid="52823"/>
+ <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:visible="false" toolbar:helpid="10593"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+ <toolbar:toolbaritem xlink:href=".uno:EditGlossary"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="20329"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertBookmark" toolbar:helpid="20302"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/insertobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/insertobjectbar.xml
new file mode 100644
index 000000000000..951849543373
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/insertobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/mediaobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/mediaobjectbar.xml
new file mode 100644
index 000000000000..2014343bf89b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/mediaobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AVMediaToolBox" toolbar:helpid="helpid:6693" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/moreformcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/moreformcontrols.xml
new file mode 100644
index 000000000000..4c5274460a71
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/moreformcontrols.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SpinButton" toolbar:helpid="helpid:10769" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ScrollBar" toolbar:helpid="helpid:10768" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Imagebutton" toolbar:helpid="helpid:10604" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ImageControl" toolbar:helpid="helpid:10710" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:DateField" toolbar:helpid="helpid:10704" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:TimeField" toolbar:helpid="helpid:10705" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FileControl" toolbar:helpid="helpid:10605" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:NumericField" toolbar:helpid="helpid:10706" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CurrencyField" toolbar:helpid="helpid:10707" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:PatternField" toolbar:helpid="helpid:10708" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GroupBox" toolbar:helpid="helpid:10598" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Grid" toolbar:helpid="helpid:10603" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:NavigationBar" toolbar:helpid="helpid:10607" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/numobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/numobjectbar.xml
new file mode 100644
index 000000000000..50e28ac32f64
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/numobjectbar.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="20144"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveBullets" toolbar:helpid="20137"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementLevel" toolbar:helpid="20131"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementLevel" toolbar:helpid="20130"/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementSubLevels" toolbar:helpid="20140"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementSubLevels" toolbar:helpid="20139"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertNeutralParagraph" toolbar:helpid="20136"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUp" toolbar:helpid="20134"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDown" toolbar:helpid="20135"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUpSubItems" toolbar:helpid="20141"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDownSubItems" toolbar:helpid="20142"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:NumberingStart" toolbar:helpid="21738"/>
+ <toolbar:toolbaritem xlink:href=".uno:BulletsAndNumberingDialog" toolbar:helpid="20121"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/oleobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/oleobjectbar.xml
new file mode 100644
index 000000000000..c95b1aebb316
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/oleobjectbar.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="5552"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="20475"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="20477"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="20476"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="20478"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="20480"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="20479"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20456"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="10187"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="10200"/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="10201"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/optimizetablebar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/optimizetablebar.xml
new file mode 100644
index 000000000000..7669add92e89
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/optimizetablebar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DistributeColumns" toolbar:helpid="helpid:20582" />
+ <toolbar:toolbaritem xlink:href=".uno:DistributeRows" toolbar:helpid="helpid:20583" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalRowHeight" toolbar:helpid="helpid:20528" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalColumnWidth" toolbar:helpid="helpid:20521" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/previewobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/previewobjectbar.xml
new file mode 100644
index 000000000000..435250b63af5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/previewobjectbar.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:PageUp" toolbar:helpid="20937"/>
+ <toolbar:toolbaritem xlink:href=".uno:PageDown" toolbar:helpid="20938"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToStartOfDoc" toolbar:helpid="20907"/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToEndOfDoc" toolbar:helpid="20908"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowTwoPages" toolbar:helpid="21251"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowMultiplePages" toolbar:helpid="21252"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowBookview" toolbar:helpid="helpid:21255" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPlus" toolbar:helpid="10097"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PreviewZoom" toolbar:helpid="53071"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomMinus" toolbar:helpid="10098"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="5627"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPagePreView" toolbar:helpid="21253"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ClosePreview" toolbar:helpid="5325"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/standardbar.xml
new file mode 100644
index 000000000000..c1b38e3870f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/standardbar.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="5537"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:visible="false" toolbar:helpid="5500"/>
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="5501"/>
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="5505"/>
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:visible="false" toolbar:helpid="5502"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="5331"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="6312"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="6674"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="5509"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPreview" toolbar:helpid="5325"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellingAndGrammarDialog" toolbar:helpid="20622"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellOnline" toolbar:helpid="12021"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="5710"/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="5711"/>
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="5712"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatPaintbrush" toolbar:helpid="5715"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="5701"/>
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="5700"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HyperlinkDialog" toolbar:helpid="5678"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDraw" toolbar:helpid="10244"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="5961" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="10366"/>
+ <toolbar:toolbaritem xlink:href=".uno:Gallery" toolbar:helpid="5960"/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewDataSourceBrowser" toolbar:helpid="6660"/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlCodes" toolbar:helpid="20224"/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="10000" toolbar:visible="false"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false" toolbar:helpid="5402"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/starshapes.xml
new file mode 100644
index 000000000000..a2ff874d2fe7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate" toolbar:helpid="helpid:11007" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..0fa6aee313db
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel" toolbar:helpid="helpid:11003" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/tableobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/tableobjectbar.xml
new file mode 100644
index 000000000000..d34267a6e1de
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/tableobjectbar.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:20330" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MergeCells" toolbar:helpid="helpid:20506" />
+ <toolbar:toolbaritem xlink:href=".uno:SplitCell" toolbar:helpid="helpid:20505" />
+ <toolbar:toolbaritem xlink:href=".uno:OptimizeTable" toolbar:helpid="helpid:20510" toolbar:style="dropdown" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CellVertTop" toolbar:helpid="helpid:20585" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertCenter" toolbar:helpid="helpid:20586" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertBottom" toolbar:helpid="helpid:20587" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:20501" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:20502" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595" />
+ <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TableSort" toolbar:helpid="helpid:20533" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoSum" toolbar:helpid="helpid:20595" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/textobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/textobjectbar.xml
new file mode 100644
index 000000000000..d48a96df35dc
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/textobjectbar.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DesignerDialog" toolbar:helpid="5539"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="helpid:20144" />
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="helpid:20138" />
+ <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+ <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="helpid:10017" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="helpid:10489" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:visible="false" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/toolbar.xml
new file mode 100644
index 000000000000..7ff331e17224
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/toolbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertCtrl" toolbar:helpid="52822"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShadowCursor" toolbar:helpid="22204"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Hyphenate" toolbar:helpid="20605"/>
+ <toolbar:toolbaritem xlink:href=".uno:ThesaurusDialog" toolbar:helpid="20603"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Graphic" toolbar:helpid="20213"/>
+ <toolbar:toolbaritem xlink:href=".uno:BrowseView" toolbar:helpid="6313"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/viewerbar.xml b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/viewerbar.xml
new file mode 100644
index 000000000000..d4d6a59d7ed5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swform/toolbar/viewerbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="helpid:5961" />
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="helpid:10000" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/menubar/menubar.xml
new file mode 100644
index 000000000000..7e5f14f5d58c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/menubar/menubar.xml
@@ -0,0 +1,454 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuitem menu:id=".uno:VersionDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menuitem menu:id=".uno:ExportToPDF"/>
+ <menu:menu menu:id=".uno:SendToMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsOOo"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsMS"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsPDF"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:NewGlobalDoc"/>
+ <menu:menuitem menu:id=".uno:NewHtmlDoc"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SendOutlineToStarImpress"/>
+ <menu:menuitem menu:id=".uno:SendOutlineToClipboard"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CreateAbstract"/>
+ <menu:menuitem menu:id=".uno:SendAbstractToStarImpress"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PrintPreview"/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuitem menu:id=".uno:Repeat"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:PasteSpecial"/>
+ <menu:menuitem menu:id=".uno:SelectTextMode"/>
+ <menu:menu menu:id=".uno:SelectionModeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectionModeDefault" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SelectionModeBlock" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ChangesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TrackChanges"/>
+ <menu:menuitem menu:id=".uno:ProtectTraceChangeMode"/>
+ <menu:menuitem menu:id=".uno:ShowTrackedChanges"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AcceptTrackedChanges"/>
+ <menu:menuitem menu:id=".uno:CommentChangeTracking"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MergeDocuments"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:CompareDocuments"/>
+ <menu:menuitem menu:id="vnd.sun.star.findbar:FocusToFindbar"/>
+ <menu:menuitem menu:id=".uno:SearchDialog"/>
+ <menu:menuitem menu:id=".uno:EditGlossary"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChangeDatabaseField"/>
+ <menu:menuitem menu:id=".uno:FieldDialog"/>
+ <menu:menuitem menu:id=".uno:EditFootnote"/>
+ <menu:menuitem menu:id=".uno:IndexEntryDialog"/>
+ <menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:LinkDialog"/>
+ <menu:menuitem menu:id=".uno:PlugInsActive"/>
+ <menu:menuitem menu:id=".uno:ImageMapDialog"/>
+ <menu:menuitem menu:id=".uno:ObjectMenue"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:PrintLayout" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:BrowseView" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuitem menu:id=".uno:Ruler"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewBounds"/>
+ <menu:menuitem menu:id=".uno:Marks"/>
+ <menu:menuitem menu:id=".uno:Fieldnames"/>
+ <menu:menuitem menu:id=".uno:ControlCodes"/>
+ <menu:menuitem menu:id=".uno:ShowHiddenParagraphs"/>
+ <menu:menuitem menu:id=".uno:ShowAnnotations"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewDataSourceBrowser"/>
+ <menu:menuitem menu:id=".uno:Navigator"/>
+ <menu:menuitem menu:id=".uno:TaskPane"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FullScreen"/>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertBreak"/>
+ <menu:menu menu:id=".uno:FieldMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertDateField"/>
+ <menu:menuitem menu:id=".uno:InsertTimeField"/>
+ <menu:menuitem menu:id=".uno:InsertPageNumberField"/>
+ <menu:menuitem menu:id=".uno:InsertPageCountField"/>
+ <menu:menuitem menu:id=".uno:InsertTopicField"/>
+ <menu:menuitem menu:id=".uno:InsertTitleField"/>
+ <menu:menuitem menu:id=".uno:InsertAuthorField"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertField"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertSymbol"/>
+ <menu:menu menu:id=".uno:FormattingMarkMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertNonBreakingSpace"/>
+ <menu:menuitem menu:id=".uno:InsertHardHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertSoftHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertZWSP"/>
+ <menu:menuitem menu:id=".uno:InsertZWNBSP"/>
+ <menu:menuitem menu:id=".uno:InsertLRM"/>
+ <menu:menuitem menu:id=".uno:InsertRLM"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertSection"/>
+ <menu:menuitem menu:id=".uno:HyperlinkDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertPageHeader"/>
+ <menu:menuitem menu:id=".uno:InsertPageFooter"/>
+ <menu:menuitem menu:id=".uno:InsertFootnoteDialog"/>
+ <menu:menuitem menu:id=".uno:InsertCaptionDialog"/>
+ <menu:menuitem menu:id=".uno:InsertBookmark"/>
+ <menu:menuitem menu:id=".uno:InsertReferenceField"/>
+ <menu:menuitem menu:id=".uno:InsertAnnotation"/>
+ <menu:menuitem menu:id=".uno:InsertScript"/>
+ <menu:menu menu:id=".uno:IndexesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertIndexesEntry"/>
+ <menu:menuitem menu:id=".uno:InsertMultiIndex"/>
+ <menu:menuitem menu:id=".uno:InsertAuthoritiesEntry"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertEnvelope"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertFrame"/>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertGraphicRuler"/>
+ <menu:menu menu:id=".uno:GraphicMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertGraphic"/>
+ <menu:menu menu:id=".uno:Scan">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TwainSelect"/>
+ <menu:menuitem menu:id=".uno:TwainTransfer"/>
+ </menu:menupopup>
+ </menu:menu>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertAVMedia"/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertObject"/>
+ <menu:menuitem menu:id=".uno:InsertPlugin"/>
+ <menu:menuitem menu:id=".uno:InsertObjectStarMath"/>
+ <menu:menuitem menu:id=".uno:InsertObjectChart"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertObjectFloatingFrame"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertDoc"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ResetAttributes"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FontDialog"/>
+ <menu:menuitem menu:id=".uno:ParagraphDialog"/>
+ <menu:menuitem menu:id=".uno:BulletsAndNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:PageDialog"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:TransliterateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeCaseToSentenceCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToLower"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToUpper"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToTitleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToToggleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHalfWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToFullWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHiragana"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToKatakana"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:RubyDialog"/>
+ <menu:menuitem menu:id=".uno:FormatColumns"/>
+ <menu:menuitem menu:id=".uno:EditRegion"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DesignerDialog"/>
+ <menu:menu menu:id=".uno:AutoFormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:OnlineAutoFormat"/>
+ <menu:menuitem menu:id=".uno:AutoFormatApply"/>
+ <menu:menuitem menu:id=".uno:AutoFormatRedlineApply"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:AnchorMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetAnchorToPage" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToPara" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorAtChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToFrame" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WrapMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:WrapOff"/>
+ <menu:menuitem menu:id=".uno:WrapOn"/>
+ <menu:menuitem menu:id=".uno:WrapIdeal"/>
+ <menu:menuitem menu:id=".uno:WrapThrough"/>
+ <menu:menuitem menu:id=".uno:WrapThroughTransparent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WrapContour"/>
+ <menu:menuitem menu:id=".uno:ContourDialog"/>
+ <menu:menuitem menu:id=".uno:WrapAnchorOnly"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TextWrap"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectAlign">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CommonAlignLeft" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignHorizontalCenter" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignRight" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignJustified" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CommonAlignTop"/>
+ <menu:menuitem menu:id=".uno:CommonAlignVerticalCenter"/>
+ <menu:menuitem menu:id=".uno:CommonAlignBottom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ArrangeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:BringToFront"/>
+ <menu:menuitem menu:id=".uno:ObjectForwardOne"/>
+ <menu:menuitem menu:id=".uno:ObjectBackOne"/>
+ <menu:menuitem menu:id=".uno:SendToBack"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetObjectToForeground"/>
+ <menu:menuitem menu:id=".uno:SetObjectToBackground"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FlipMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FlipHorizontal"/>
+ <menu:menuitem menu:id=".uno:FlipVertical"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:GroupMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormatGroup"/>
+ <menu:menuitem menu:id=".uno:FormatUngroup"/>
+ <menu:menuitem menu:id=".uno:EnterGroup"/>
+ <menu:menuitem menu:id=".uno:LeaveGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TransformDialog"/>
+ <menu:menuitem menu:id=".uno:FormatLine"/>
+ <menu:menuitem menu:id=".uno:FormatArea"/>
+ <menu:menuitem menu:id=".uno:TextAttributes"/>
+ <menu:menuitem menu:id=".uno:FontWork"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ObjectTitleDescription"/>
+ <menu:menuitem menu:id=".uno:NameGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:FrameDialog"/>
+ <menu:menuitem menu:id=".uno:GraphicDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:TableInsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertRowDialog"/>
+ <menu:menuitem menu:id=".uno:InsertColumnDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableDeleteMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DeleteTable"/>
+ <menu:menuitem menu:id=".uno:DeleteRows"/>
+ <menu:menuitem menu:id=".uno:DeleteColumns"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableSelectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectTable"/>
+ <menu:menuitem menu:id=".uno:EntireRow"/>
+ <menu:menuitem menu:id=".uno:EntireColumn"/>
+ <menu:menuitem menu:id=".uno:EntireCell"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:MergeCells"/>
+ <menu:menuitem menu:id=".uno:SplitCell"/>
+ <menu:menuitem menu:id=".uno:Protect"/>
+ <menu:menuitem menu:id=".uno:MergeTable"/>
+ <menu:menuitem menu:id=".uno:SplitTable"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoFormat"/>
+ <menu:menu menu:id=".uno:TableAutoFitMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetColumnWidth"/>
+ <menu:menuitem menu:id=".uno:SetOptimalColumnWidth"/>
+ <menu:menuitem menu:id=".uno:DistributeColumns"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetRowHeight"/>
+ <menu:menuitem menu:id=".uno:SetOptimalRowHeight"/>
+ <menu:menuitem menu:id=".uno:DistributeRows"/>
+ <menu:menuitem menu:id=".uno:RowSplit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:HeadingRowsRepeat"/>
+ <menu:menu menu:id=".uno:TableConvertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ConvertTextToTable"/>
+ <menu:menuitem menu:id=".uno:ConvertTableToText"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:TableSort"/>
+ <menu:menuitem menu:id=".uno:InsertFormula"/>
+ <menu:menuitem menu:id=".uno:TableNumberFormatDialog"/>
+ <menu:menuitem menu:id=".uno:TableBoundaries"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TableDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SpellingAndGrammarDialog"/>
+ <menu:menu menu:id=".uno:LanguageMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HangulHanjaConversion"/>
+ <menu:menuitem menu:id=".uno:ChineseConversion"/>
+ <menu:menuitem menu:id=".uno:ThesaurusDialog"/>
+ <menu:menuitem menu:id=".uno:Hyphenate"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MoreDictionaries"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:WordCountDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChapterNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:LineNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:FootnoteDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Gallery"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:BibliographyComponent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MailMergeWizard"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SortDialog"/>
+ <menu:menuitem menu:id=".uno:CalculateSel"/>
+ <menu:menu menu:id=".uno:UpdateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:UpdateAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:UpdateFields"/>
+ <menu:menuitem menu:id=".uno:UpdateAllLinks"/>
+ <menu:menuitem menu:id=".uno:UpdateCharts"/>
+ <menu:menuitem menu:id=".uno:UpdateCurIndex"/>
+ <menu:menuitem menu:id=".uno:UpdateAllIndexes"/>
+ <menu:menuitem menu:id=".uno:Repaginate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:OpenXMLFilterSettings"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/statusbar/statusbar.xml
new file mode 100644
index 000000000000..f6880369df08
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/statusbar/statusbar.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:StatePageNumber" statusbar:align="left" statusbar:autosize="true" statusbar:width="54" statusbar:helpid="helpid:21181"/>
+ <statusbar:statusbaritem xlink:href=".uno:PageStyleName" statusbar:align="left" statusbar:autosize="true" statusbar:width="79" statusbar:helpid="helpid:21182"/>
+ <statusbar:statusbaritem xlink:href=".uno:LanguageStatus" statusbar:align="center" statusbar:autosize="true" statusbar:width="100" />
+ <statusbar:statusbaritem xlink:href=".uno:InsertMode" statusbar:align="center" statusbar:width="37" statusbar:helpid="helpid:10221"/>
+ <statusbar:statusbaritem xlink:href=".uno:SelectionMode" statusbar:align="center" statusbar:width="30" statusbar:helpid="helpid:21185"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="9" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+ <statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="left" statusbar:autosize="true" statusbar:ownerdraw="true" statusbar:width="129" statusbar:helpid="helpid:10224"/>
+ <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130" statusbar:helpid="helpid:11065"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="35" statusbar:helpid="helpid:10000"/>
+</statusbar:statusbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/alignmentbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/alignmentbar.xml
new file mode 100644
index 000000000000..dbd7294e566c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/alignmentbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignLeft" toolbar:helpid="helpid:10131" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignCenter" toolbar:helpid="helpid:10132" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignRight" toolbar:helpid="helpid:10133" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignUp" toolbar:helpid="helpid:10134" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignMiddle" toolbar:helpid="helpid:10135" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignDown" toolbar:helpid="helpid:10136" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..4a53519494ea
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow" toolbar:helpid="helpid:11004" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..e65778305788
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame" toolbar:helpid="helpid:11002" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/bezierobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/bezierobjectbar.xml
new file mode 100644
index 000000000000..7c067e68d13c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/bezierobjectbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="helpid:10126" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierMove" toolbar:helpid="helpid:10121" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierInsert" toolbar:helpid="helpid:10119" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierDelete" toolbar:helpid="helpid:10120" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierCutLine" toolbar:helpid="helpid:10127" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierConvert" toolbar:helpid="helpid:27065" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEdge" toolbar:helpid="helpid:27066" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSmooth" toolbar:helpid="helpid:10123" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSymmetric" toolbar:helpid="helpid:27067" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierClose" toolbar:helpid="helpid:10122" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEliminatePoints" toolbar:helpid="helpid:27030" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..91b957fa697a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" toolbar:helpid="helpid:11006" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/colorbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/colorbar.xml
new file mode 100644
index 000000000000..adcda76b5c3a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/colorbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GrafRed" toolbar:helpid="helpid:10865" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGreen" toolbar:helpid="helpid:10866" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafBlue" toolbar:helpid="helpid:10867" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafLuminance" toolbar:helpid="helpid:10863" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafContrast" toolbar:helpid="helpid:10864" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGamma" toolbar:helpid="helpid:10868" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawbar.xml
new file mode 100644
index 000000000000..2407475a88f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="10128"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+ <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
+ <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:helpid="11002"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:helpid="11003"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:helpid="11004"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes" toolbar:helpid="11005"/>
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes" toolbar:helpid="11006"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes" toolbar:helpid="11007"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="10126"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="10977"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawingobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawingobjectbar.xml
new file mode 100644
index 000000000000..4703c3cfdad6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawingobjectbar.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="helpid:10143" />
+ <toolbar:toolbaritem xlink:href=".uno:LineEndStyle" toolbar:helpid="helpid:10301" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineStyle" toolbar:helpid="helpid:10169" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineWidth" toolbar:helpid="helpid:10171" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineColor" toolbar:helpid="helpid:10172" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="helpid:10142" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:visible="false" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapContour" toolbar:visible="false" toolbar:helpid="20584"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToForeground" toolbar:helpid="10283"/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToBackground" toolbar:helpid="10282"/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="10130"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="10455"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="10454"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawtextobjectbar.xml
new file mode 100644
index 000000000000..31e5ca4db662
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/drawtextobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017" toolbar:style="dropdown" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="helpid:10907" />
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="helpid:10908" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/extrusionobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/extrusionobjectbar.xml
new file mode 100644
index 000000000000..148849db6ee7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/extrusionobjectbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltDown" toolbar:helpid="10961"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltUp" toolbar:helpid="10962"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltLeft" toolbar:helpid="10963"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltRight" toolbar:helpid="10964"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDepthFloater" toolbar:helpid="10965" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDirectionFloater" toolbar:helpid="10966" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionLightingFloater" toolbar:helpid="10967" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionSurfaceFloater" toolbar:helpid="10968" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:Extrusion3DColor" toolbar:helpid="10969" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..bb1d1099dbd4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display" toolbar:helpid="helpid:11005" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fontworkobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fontworkobjectbar.xml
new file mode 100644
index 000000000000..5219a1e235e9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fontworkobjectbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType" toolbar:helpid="helpid:10978" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkSameLetterHeights" toolbar:helpid="helpid:10979" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkAlignmentFloater" toolbar:helpid="helpid:10981" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkCharacterSpacingFloater" toolbar:helpid="helpid:10982" toolbar:style="dropdownonly" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fontworkshapetype.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fontworkshapetype.xml
new file mode 100644
index 000000000000..49b5b8173e0e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fontworkshapetype.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-plain-text" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-wave" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-inflate" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-stop" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-pour" toolbar:helpid="helpid:10978" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formcontrols.xml
new file mode 100644
index 000000000000..573ca246f7a9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formcontrols.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:text="" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CheckBox" toolbar:helpid="helpid:10596" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Edit" toolbar:helpid="helpid:10599" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormattedField" toolbar:helpid="helpid:10728" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Pushbutton" toolbar:helpid="helpid:10594" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:RadioButton" toolbar:helpid="helpid:10595" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ListBox" toolbar:helpid="helpid:10600" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ComboBox" toolbar:helpid="helpid:10601" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Label" toolbar:helpid="helpid:10597" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:MoreControls" toolbar:helpid="helpid:11045" />
+ <toolbar:toolbaritem xlink:href=".uno:FormDesignTools" toolbar:helpid="helpid:11046" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:UseWizards" toolbar:helpid="helpid:10727" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formdesign.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formdesign.xml
new file mode 100644
index 000000000000..f1cf268cea2a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formdesign.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowDataNavigator" toolbar:helpid="helpid:10773" />
+ <toolbar:toolbaritem xlink:href=".uno:ShowFmExplorer" toolbar:helpid="helpid:10633" />
+ <toolbar:toolbaritem xlink:href=".uno:AddField" toolbar:helpid="helpid:10623" />
+ <toolbar:toolbaritem xlink:href=".uno:TabDialog" toolbar:helpid="helpid:10615" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OpenReadOnly" toolbar:helpid="helpid:10709" />
+ <toolbar:toolbaritem xlink:href=".uno:AutoControlFocus" toolbar:helpid="helpid:10763" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="helpid:10454" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="helpid:10455" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EnterGroup" toolbar:helpid="helpid:27096" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:LeaveGroup" toolbar:helpid="helpid:27097" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" />
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formsfilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formsfilterbar.xml
new file mode 100644
index 000000000000..1d1ad07a9938
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formsfilterbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExecute" toolbar:helpid="helpid:10731" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterNavigator" toolbar:helpid="helpid:10732" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExit" toolbar:helpid="helpid:10730" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formsnavigationbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formsnavigationbar.xml
new file mode 100644
index 000000000000..c6e16444a55d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formsnavigationbar.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="10725"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecText" toolbar:helpid="10624"/>
+ <toolbar:toolbaritem xlink:href=".uno:AbsoluteRecord" toolbar:helpid="10622"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecFromText" toolbar:helpid="10625"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecTotal" toolbar:helpid="10626"/>
+ <toolbar:toolbaritem xlink:href=".uno:FirstRecord" toolbar:helpid="10616"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrevRecord" toolbar:helpid="10618"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextRecord" toolbar:helpid="10617"/>
+ <toolbar:toolbaritem xlink:href=".uno:LastRecord" toolbar:helpid="10619"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewRecord" toolbar:helpid="10620"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="10627"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="10630"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRecord" toolbar:helpid="10621"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="10724"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="10714"/>
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="10712"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="10713"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="10716"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="10723"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilter" toolbar:helpid="10729"/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="10711"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewFormAsGrid" toolbar:helpid="10761"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formtextobjectbar.xml
new file mode 100644
index 000000000000..dbdeaf675371
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/formtextobjectbar.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/frameobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/frameobjectbar.xml
new file mode 100644
index 000000000000..a591f9094457
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/frameobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="helpid:20477" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="helpid:20476" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="helpid:20478" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="helpid:20480" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="helpid:20479" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="helpid:20456" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ChainFrames" toolbar:helpid="helpid:21736" />
+ <toolbar:toolbaritem xlink:href=".uno:UnhainFrames" toolbar:helpid="helpid:21737" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..5aecdda4fb04
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/graffilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/graffilterbar.xml
new file mode 100644
index 000000000000..287c33fe25e5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/graffilterbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterInvert" toolbar:helpid="helpid:34149" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSmooth" toolbar:helpid="helpid:34150" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSharpen" toolbar:helpid="helpid:34151" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRemoveNoise" toolbar:helpid="helpid:34152" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSolarize" toolbar:helpid="helpid:34159" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSepia" toolbar:helpid="helpid:34158" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPoster" toolbar:helpid="helpid:34156" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPopart" toolbar:helpid="helpid:34157" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSobel" toolbar:helpid="helpid:34153" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRelief" toolbar:helpid="helpid:34155" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterMosaic" toolbar:helpid="helpid:34154" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/graphicobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/graphicobjectbar.xml
new file mode 100644
index 000000000000..040bb8cd8ae6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/graphicobjectbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterToolbox" toolbar:helpid="10469"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafMode" toolbar:helpid="10871"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ColorSettings" toolbar:helpid="11016"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafTransparence" toolbar:helpid="10869"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FlipVertical" toolbar:helpid="20426"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlipHorizontal" toolbar:helpid="20425"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20458"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/insertbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/insertbar.xml
new file mode 100644
index 000000000000..a9bb7e0eb204
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/insertbar.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFrameInteract" toolbar:helpid="20333"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:helpid="5532"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFootnote" toolbar:helpid="20399"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertEndnote" toolbar:helpid="21418"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:helpid="20328"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="20369"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSection" toolbar:helpid="21419"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:visible="false" toolbar:helpid="10140"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjCtrl" toolbar:visible="false" toolbar:helpid="52823"/>
+ <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:visible="false" toolbar:helpid="10593"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+ <toolbar:toolbaritem xlink:href=".uno:EditGlossary"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="20329"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertBookmark" toolbar:helpid="20302"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/insertobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/insertobjectbar.xml
new file mode 100644
index 000000000000..951849543373
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/insertobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/mediaobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/mediaobjectbar.xml
new file mode 100644
index 000000000000..2014343bf89b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/mediaobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AVMediaToolBox" toolbar:helpid="helpid:6693" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/moreformcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/moreformcontrols.xml
new file mode 100644
index 000000000000..4c5274460a71
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/moreformcontrols.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SpinButton" toolbar:helpid="helpid:10769" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ScrollBar" toolbar:helpid="helpid:10768" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Imagebutton" toolbar:helpid="helpid:10604" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ImageControl" toolbar:helpid="helpid:10710" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:DateField" toolbar:helpid="helpid:10704" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:TimeField" toolbar:helpid="helpid:10705" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FileControl" toolbar:helpid="helpid:10605" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:NumericField" toolbar:helpid="helpid:10706" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CurrencyField" toolbar:helpid="helpid:10707" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:PatternField" toolbar:helpid="helpid:10708" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GroupBox" toolbar:helpid="helpid:10598" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Grid" toolbar:helpid="helpid:10603" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:NavigationBar" toolbar:helpid="helpid:10607" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/numobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/numobjectbar.xml
new file mode 100644
index 000000000000..50e28ac32f64
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/numobjectbar.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="20144"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveBullets" toolbar:helpid="20137"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementLevel" toolbar:helpid="20131"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementLevel" toolbar:helpid="20130"/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementSubLevels" toolbar:helpid="20140"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementSubLevels" toolbar:helpid="20139"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertNeutralParagraph" toolbar:helpid="20136"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUp" toolbar:helpid="20134"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDown" toolbar:helpid="20135"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUpSubItems" toolbar:helpid="20141"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDownSubItems" toolbar:helpid="20142"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:NumberingStart" toolbar:helpid="21738"/>
+ <toolbar:toolbaritem xlink:href=".uno:BulletsAndNumberingDialog" toolbar:helpid="20121"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/oleobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/oleobjectbar.xml
new file mode 100644
index 000000000000..c95b1aebb316
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/oleobjectbar.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="5552"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="20475"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="20477"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="20476"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="20478"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="20480"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="20479"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20456"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="10187"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="10200"/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="10201"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/optimizetablebar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/optimizetablebar.xml
new file mode 100644
index 000000000000..7669add92e89
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/optimizetablebar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DistributeColumns" toolbar:helpid="helpid:20582" />
+ <toolbar:toolbaritem xlink:href=".uno:DistributeRows" toolbar:helpid="helpid:20583" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalRowHeight" toolbar:helpid="helpid:20528" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalColumnWidth" toolbar:helpid="helpid:20521" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/previewobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/previewobjectbar.xml
new file mode 100644
index 000000000000..435250b63af5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/previewobjectbar.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:PageUp" toolbar:helpid="20937"/>
+ <toolbar:toolbaritem xlink:href=".uno:PageDown" toolbar:helpid="20938"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToStartOfDoc" toolbar:helpid="20907"/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToEndOfDoc" toolbar:helpid="20908"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowTwoPages" toolbar:helpid="21251"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowMultiplePages" toolbar:helpid="21252"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowBookview" toolbar:helpid="helpid:21255" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPlus" toolbar:helpid="10097"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PreviewZoom" toolbar:helpid="53071"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomMinus" toolbar:helpid="10098"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="5627"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPagePreView" toolbar:helpid="21253"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ClosePreview" toolbar:helpid="5325"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/standardbar.xml
new file mode 100644
index 000000000000..c1b38e3870f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/standardbar.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="5537"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:visible="false" toolbar:helpid="5500"/>
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="5501"/>
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="5505"/>
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:visible="false" toolbar:helpid="5502"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="5331"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="6312"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="6674"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="5509"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPreview" toolbar:helpid="5325"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellingAndGrammarDialog" toolbar:helpid="20622"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellOnline" toolbar:helpid="12021"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="5710"/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="5711"/>
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="5712"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatPaintbrush" toolbar:helpid="5715"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="5701"/>
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="5700"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HyperlinkDialog" toolbar:helpid="5678"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDraw" toolbar:helpid="10244"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="5961" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="10366"/>
+ <toolbar:toolbaritem xlink:href=".uno:Gallery" toolbar:helpid="5960"/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewDataSourceBrowser" toolbar:helpid="6660"/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlCodes" toolbar:helpid="20224"/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="10000" toolbar:visible="false"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false" toolbar:helpid="5402"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/starshapes.xml
new file mode 100644
index 000000000000..a2ff874d2fe7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate" toolbar:helpid="helpid:11007" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..0fa6aee313db
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel" toolbar:helpid="helpid:11003" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/tableobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/tableobjectbar.xml
new file mode 100644
index 000000000000..d34267a6e1de
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/tableobjectbar.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:20330" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MergeCells" toolbar:helpid="helpid:20506" />
+ <toolbar:toolbaritem xlink:href=".uno:SplitCell" toolbar:helpid="helpid:20505" />
+ <toolbar:toolbaritem xlink:href=".uno:OptimizeTable" toolbar:helpid="helpid:20510" toolbar:style="dropdown" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CellVertTop" toolbar:helpid="helpid:20585" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertCenter" toolbar:helpid="helpid:20586" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertBottom" toolbar:helpid="helpid:20587" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:20501" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:20502" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595" />
+ <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TableSort" toolbar:helpid="helpid:20533" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoSum" toolbar:helpid="helpid:20595" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/textobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/textobjectbar.xml
new file mode 100644
index 000000000000..d48a96df35dc
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/textobjectbar.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DesignerDialog" toolbar:helpid="5539"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="helpid:20144" />
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="helpid:20138" />
+ <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+ <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="helpid:10017" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="helpid:10489" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:visible="false" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/toolbar.xml
new file mode 100644
index 000000000000..7ff331e17224
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/toolbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertCtrl" toolbar:helpid="52822"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShadowCursor" toolbar:helpid="22204"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Hyphenate" toolbar:helpid="20605"/>
+ <toolbar:toolbaritem xlink:href=".uno:ThesaurusDialog" toolbar:helpid="20603"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Graphic" toolbar:helpid="20213"/>
+ <toolbar:toolbaritem xlink:href=".uno:BrowseView" toolbar:helpid="6313"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/viewerbar.xml b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/viewerbar.xml
new file mode 100644
index 000000000000..d4d6a59d7ed5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swreport/toolbar/viewerbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="helpid:5961" />
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="helpid:10000" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/menubar/menubar.xml
new file mode 100644
index 000000000000..02107d0088a2
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/menubar/menubar.xml
@@ -0,0 +1,463 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuitem menu:id=".uno:VersionDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menuitem menu:id=".uno:ExportToPDF"/>
+ <menu:menu menu:id=".uno:SendToMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsOOo"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsMS"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsPDF"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:NewGlobalDoc"/>
+ <menu:menuitem menu:id=".uno:NewHtmlDoc"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SendOutlineToStarImpress"/>
+ <menu:menuitem menu:id=".uno:SendOutlineToClipboard"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CreateAbstract"/>
+ <menu:menuitem menu:id=".uno:SendAbstractToStarImpress"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menuitem menu:id=".uno:Signature"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WebHtml"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PrintPreview"/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuitem menu:id=".uno:Repeat"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:PasteSpecial"/>
+ <menu:menuitem menu:id=".uno:SelectTextMode"/>
+ <menu:menu menu:id=".uno:SelectionModeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectionModeDefault" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SelectionModeBlock" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ChangesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TrackChanges"/>
+ <menu:menuitem menu:id=".uno:ProtectTraceChangeMode"/>
+ <menu:menuitem menu:id=".uno:ShowTrackedChanges"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AcceptTrackedChanges"/>
+ <menu:menuitem menu:id=".uno:CommentChangeTracking"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MergeDocuments"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:CompareDocuments"/>
+ <menu:menuitem menu:id="vnd.sun.star.findbar:FocusToFindbar"/>
+ <menu:menuitem menu:id=".uno:SearchDialog"/>
+ <menu:menuitem menu:id=".uno:EditGlossary"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChangeDatabaseField"/>
+ <menu:menuitem menu:id=".uno:FieldDialog"/>
+ <menu:menuitem menu:id=".uno:EditFootnote"/>
+ <menu:menuitem menu:id=".uno:IndexEntryDialog"/>
+ <menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:LinkDialog"/>
+ <menu:menuitem menu:id=".uno:PlugInsActive"/>
+ <menu:menuitem menu:id=".uno:ImageMapDialog"/>
+ <menu:menuitem menu:id=".uno:ObjectMenue"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:PrintLayout" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:BrowseView" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuitem menu:id=".uno:Ruler"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewBounds"/>
+ <menu:menuitem menu:id=".uno:Marks"/>
+ <menu:menuitem menu:id=".uno:Fieldnames"/>
+ <menu:menuitem menu:id=".uno:ControlCodes"/>
+ <menu:menuitem menu:id=".uno:ShowHiddenParagraphs"/>
+ <menu:menuitem menu:id=".uno:ShowAnnotations"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewDataSourceBrowser"/>
+ <menu:menuitem menu:id=".uno:Navigator"/>
+ <menu:menuitem menu:id=".uno:TaskPane"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FullScreen"/>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertBreak"/>
+ <menu:menu menu:id=".uno:FieldMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertDateField"/>
+ <menu:menuitem menu:id=".uno:InsertTimeField"/>
+ <menu:menuitem menu:id=".uno:InsertPageNumberField"/>
+ <menu:menuitem menu:id=".uno:InsertPageCountField"/>
+ <menu:menuitem menu:id=".uno:InsertTopicField"/>
+ <menu:menuitem menu:id=".uno:InsertTitleField"/>
+ <menu:menuitem menu:id=".uno:InsertAuthorField"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertField"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertSymbol"/>
+ <menu:menu menu:id=".uno:FormattingMarkMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertNonBreakingSpace"/>
+ <menu:menuitem menu:id=".uno:InsertHardHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertSoftHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertZWSP"/>
+ <menu:menuitem menu:id=".uno:InsertZWNBSP"/>
+ <menu:menuitem menu:id=".uno:InsertLRM"/>
+ <menu:menuitem menu:id=".uno:InsertRLM"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertSection"/>
+ <menu:menuitem menu:id=".uno:HyperlinkDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertPageHeader"/>
+ <menu:menuitem menu:id=".uno:InsertPageFooter"/>
+ <menu:menuitem menu:id=".uno:InsertFootnoteDialog"/>
+ <menu:menuitem menu:id=".uno:InsertCaptionDialog"/>
+ <menu:menuitem menu:id=".uno:InsertBookmark"/>
+ <menu:menuitem menu:id=".uno:InsertReferenceField"/>
+ <menu:menuitem menu:id=".uno:InsertAnnotation"/>
+ <menu:menuitem menu:id=".uno:InsertScript"/>
+ <menu:menu menu:id=".uno:IndexesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertIndexesEntry"/>
+ <menu:menuitem menu:id=".uno:InsertMultiIndex"/>
+ <menu:menuitem menu:id=".uno:InsertAuthoritiesEntry"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertEnvelope"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertFrame"/>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertGraphicRuler"/>
+ <menu:menu menu:id=".uno:GraphicMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertGraphic"/>
+ <menu:menu menu:id=".uno:Scan">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TwainSelect"/>
+ <menu:menuitem menu:id=".uno:TwainTransfer"/>
+ </menu:menupopup>
+ </menu:menu>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertAVMedia"/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertObject"/>
+ <menu:menuitem menu:id=".uno:InsertPlugin"/>
+ <menu:menuitem menu:id=".uno:InsertObjectStarMath"/>
+ <menu:menuitem menu:id=".uno:InsertObjectChart"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertObjectFloatingFrame"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertDoc"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ResetAttributes"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FontDialog"/>
+ <menu:menuitem menu:id=".uno:ParagraphDialog"/>
+ <menu:menuitem menu:id=".uno:BulletsAndNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:PageDialog"/>
+ <menu:menuitem menu:id=".uno:TitlePageDialog"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:TransliterateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeCaseToSentenceCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToLower"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToUpper"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToTitleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToToggleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHalfWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToFullWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHiragana"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToKatakana"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:RubyDialog"/>
+ <menu:menuitem menu:id=".uno:FormatColumns"/>
+ <menu:menuitem menu:id=".uno:EditRegion"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DesignerDialog"/>
+ <menu:menu menu:id=".uno:AutoFormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:OnlineAutoFormat"/>
+ <menu:menuitem menu:id=".uno:AutoFormatApply"/>
+ <menu:menuitem menu:id=".uno:AutoFormatRedlineApply"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:AnchorMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetAnchorToPage" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToPara" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorAtChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToFrame" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WrapMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:WrapOff"/>
+ <menu:menuitem menu:id=".uno:WrapOn"/>
+ <menu:menuitem menu:id=".uno:WrapIdeal"/>
+ <menu:menuitem menu:id=".uno:WrapThrough"/>
+ <menu:menuitem menu:id=".uno:WrapThroughTransparent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WrapContour"/>
+ <menu:menuitem menu:id=".uno:ContourDialog"/>
+ <menu:menuitem menu:id=".uno:WrapAnchorOnly"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TextWrap"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectAlign">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CommonAlignLeft" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignHorizontalCenter" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignRight" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignJustified" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CommonAlignTop"/>
+ <menu:menuitem menu:id=".uno:CommonAlignVerticalCenter"/>
+ <menu:menuitem menu:id=".uno:CommonAlignBottom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ArrangeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:BringToFront"/>
+ <menu:menuitem menu:id=".uno:ObjectForwardOne"/>
+ <menu:menuitem menu:id=".uno:ObjectBackOne"/>
+ <menu:menuitem menu:id=".uno:SendToBack"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetObjectToForeground"/>
+ <menu:menuitem menu:id=".uno:SetObjectToBackground"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FlipMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FlipHorizontal"/>
+ <menu:menuitem menu:id=".uno:FlipVertical"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:GroupMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormatGroup"/>
+ <menu:menuitem menu:id=".uno:FormatUngroup"/>
+ <menu:menuitem menu:id=".uno:EnterGroup"/>
+ <menu:menuitem menu:id=".uno:LeaveGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TransformDialog"/>
+ <menu:menuitem menu:id=".uno:FormatLine"/>
+ <menu:menuitem menu:id=".uno:FormatArea"/>
+ <menu:menuitem menu:id=".uno:TextAttributes"/>
+ <menu:menuitem menu:id=".uno:FontWork"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ObjectTitleDescription"/>
+ <menu:menuitem menu:id=".uno:NameGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:FrameDialog"/>
+ <menu:menuitem menu:id=".uno:GraphicDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:TableInsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertRowDialog"/>
+ <menu:menuitem menu:id=".uno:InsertColumnDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableDeleteMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DeleteTable"/>
+ <menu:menuitem menu:id=".uno:DeleteRows"/>
+ <menu:menuitem menu:id=".uno:DeleteColumns"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableSelectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectTable"/>
+ <menu:menuitem menu:id=".uno:EntireRow"/>
+ <menu:menuitem menu:id=".uno:EntireColumn"/>
+ <menu:menuitem menu:id=".uno:EntireCell"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:MergeCells"/>
+ <menu:menuitem menu:id=".uno:SplitCell"/>
+ <menu:menuitem menu:id=".uno:Protect"/>
+ <menu:menuitem menu:id=".uno:MergeTable"/>
+ <menu:menuitem menu:id=".uno:SplitTable"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoFormat"/>
+ <menu:menu menu:id=".uno:TableAutoFitMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetColumnWidth"/>
+ <menu:menuitem menu:id=".uno:SetOptimalColumnWidth"/>
+ <menu:menuitem menu:id=".uno:DistributeColumns"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetRowHeight"/>
+ <menu:menuitem menu:id=".uno:SetOptimalRowHeight"/>
+ <menu:menuitem menu:id=".uno:DistributeRows"/>
+ <menu:menuitem menu:id=".uno:RowSplit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:HeadingRowsRepeat"/>
+ <menu:menu menu:id=".uno:TableConvertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ConvertTextToTable"/>
+ <menu:menuitem menu:id=".uno:ConvertTableToText"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:TableSort"/>
+ <menu:menuitem menu:id=".uno:InsertFormula"/>
+ <menu:menuitem menu:id=".uno:TableNumberFormatDialog"/>
+ <menu:menuitem menu:id=".uno:TableBoundaries"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TableDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SpellingAndGrammarDialog"/>
+ <menu:menu menu:id=".uno:LanguageMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetLanguageSelectionMenu"/>
+ <menu:menuitem menu:id=".uno:SetLanguageParagraphMenu"/>
+ <menu:menuitem menu:id=".uno:SetLanguageAllTextMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:HangulHanjaConversion"/>
+ <menu:menuitem menu:id=".uno:ChineseConversion"/>
+ <menu:menuitem menu:id=".uno:ThesaurusDialog"/>
+ <menu:menuitem menu:id=".uno:Hyphenate"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MoreDictionaries"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:WordCountDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChapterNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:LineNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:FootnoteDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Gallery"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:BibliographyComponent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MailMergeWizard"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SortDialog"/>
+ <menu:menuitem menu:id=".uno:CalculateSel"/>
+ <menu:menu menu:id=".uno:UpdateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:UpdateAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:UpdateFields"/>
+ <menu:menuitem menu:id=".uno:UpdateAllLinks"/>
+ <menu:menuitem menu:id=".uno:UpdateCharts"/>
+ <menu:menuitem menu:id=".uno:UpdateCurIndex"/>
+ <menu:menuitem menu:id=".uno:UpdateAllIndexes"/>
+ <menu:menuitem menu:id=".uno:Repaginate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuitem menu:id=".uno:MacroSignature"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:OpenXMLFilterSettings"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/statusbar/statusbar.xml
new file mode 100644
index 000000000000..3e46300cd0e7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/statusbar/statusbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:StatePageNumber" statusbar:align="left" statusbar:autosize="true" statusbar:width="54" statusbar:helpid="helpid:21181"/>
+ <statusbar:statusbaritem xlink:href=".uno:PageStyleName" statusbar:align="left" statusbar:autosize="true" statusbar:width="79" statusbar:helpid="helpid:21182"/>
+ <statusbar:statusbaritem xlink:href=".uno:LanguageStatus" statusbar:align="center" statusbar:autosize="true" statusbar:width="100" />
+ <statusbar:statusbaritem xlink:href=".uno:InsertMode" statusbar:align="center" statusbar:width="37" statusbar:helpid="helpid:10221"/>
+ <statusbar:statusbaritem xlink:href=".uno:SelectionMode" statusbar:align="center" statusbar:width="30" statusbar:helpid="helpid:21185"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="9" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+ <statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="left" statusbar:autosize="true" statusbar:ownerdraw="true" statusbar:width="129" statusbar:helpid="helpid:10224"/>
+ <statusbar:statusbaritem xlink:href=".uno:ViewLayout" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="63" statusbar:helpid="helpid:11064"/>
+ <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130" statusbar:helpid="helpid:11065"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="35" statusbar:helpid="helpid:10000"/>
+</statusbar:statusbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/alignmentbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/alignmentbar.xml
new file mode 100644
index 000000000000..dbd7294e566c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/alignmentbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignLeft" toolbar:helpid="helpid:10131" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignCenter" toolbar:helpid="helpid:10132" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignRight" toolbar:helpid="helpid:10133" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignUp" toolbar:helpid="helpid:10134" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignMiddle" toolbar:helpid="helpid:10135" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignDown" toolbar:helpid="helpid:10136" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..4a53519494ea
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow" toolbar:helpid="helpid:11004" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..e65778305788
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame" toolbar:helpid="helpid:11002" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/bezierobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/bezierobjectbar.xml
new file mode 100644
index 000000000000..7c067e68d13c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/bezierobjectbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="helpid:10126" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierMove" toolbar:helpid="helpid:10121" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierInsert" toolbar:helpid="helpid:10119" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierDelete" toolbar:helpid="helpid:10120" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierCutLine" toolbar:helpid="helpid:10127" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierConvert" toolbar:helpid="helpid:27065" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEdge" toolbar:helpid="helpid:27066" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSmooth" toolbar:helpid="helpid:10123" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSymmetric" toolbar:helpid="helpid:27067" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierClose" toolbar:helpid="helpid:10122" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEliminatePoints" toolbar:helpid="helpid:27030" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..91b957fa697a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" toolbar:helpid="helpid:11006" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/colorbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/colorbar.xml
new file mode 100644
index 000000000000..adcda76b5c3a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/colorbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GrafRed" toolbar:helpid="helpid:10865" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGreen" toolbar:helpid="helpid:10866" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafBlue" toolbar:helpid="helpid:10867" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafLuminance" toolbar:helpid="helpid:10863" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafContrast" toolbar:helpid="helpid:10864" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGamma" toolbar:helpid="helpid:10868" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawbar.xml
new file mode 100644
index 000000000000..2407475a88f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="10128"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+ <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
+ <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:helpid="11002"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:helpid="11003"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:helpid="11004"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes" toolbar:helpid="11005"/>
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes" toolbar:helpid="11006"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes" toolbar:helpid="11007"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="10126"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="10977"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawingobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawingobjectbar.xml
new file mode 100644
index 000000000000..4703c3cfdad6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawingobjectbar.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="helpid:10143" />
+ <toolbar:toolbaritem xlink:href=".uno:LineEndStyle" toolbar:helpid="helpid:10301" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineStyle" toolbar:helpid="helpid:10169" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineWidth" toolbar:helpid="helpid:10171" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineColor" toolbar:helpid="helpid:10172" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="helpid:10142" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:visible="false" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapContour" toolbar:visible="false" toolbar:helpid="20584"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToForeground" toolbar:helpid="10283"/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToBackground" toolbar:helpid="10282"/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="10130"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="10455"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="10454"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawtextobjectbar.xml
new file mode 100644
index 000000000000..31e5ca4db662
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/drawtextobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017" toolbar:style="dropdown" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="helpid:10907" />
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="helpid:10908" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/extrusionobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/extrusionobjectbar.xml
new file mode 100644
index 000000000000..148849db6ee7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/extrusionobjectbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltDown" toolbar:helpid="10961"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltUp" toolbar:helpid="10962"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltLeft" toolbar:helpid="10963"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltRight" toolbar:helpid="10964"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDepthFloater" toolbar:helpid="10965" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDirectionFloater" toolbar:helpid="10966" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionLightingFloater" toolbar:helpid="10967" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionSurfaceFloater" toolbar:helpid="10968" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:Extrusion3DColor" toolbar:helpid="10969" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/findbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/findbar.xml
new file mode 100644
index 000000000000..49e483e178a3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/findbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FindText"/>
+ <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
+ <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..bb1d1099dbd4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display" toolbar:helpid="helpid:11005" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fontworkobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fontworkobjectbar.xml
new file mode 100644
index 000000000000..5219a1e235e9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fontworkobjectbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType" toolbar:helpid="helpid:10978" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkSameLetterHeights" toolbar:helpid="helpid:10979" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkAlignmentFloater" toolbar:helpid="helpid:10981" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkCharacterSpacingFloater" toolbar:helpid="helpid:10982" toolbar:style="dropdownonly" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fontworkshapetype.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fontworkshapetype.xml
new file mode 100644
index 000000000000..49b5b8173e0e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fontworkshapetype.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-plain-text" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-wave" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-inflate" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-stop" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-pour" toolbar:helpid="helpid:10978" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formcontrols.xml
new file mode 100644
index 000000000000..573ca246f7a9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formcontrols.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:text="" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CheckBox" toolbar:helpid="helpid:10596" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Edit" toolbar:helpid="helpid:10599" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormattedField" toolbar:helpid="helpid:10728" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Pushbutton" toolbar:helpid="helpid:10594" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:RadioButton" toolbar:helpid="helpid:10595" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ListBox" toolbar:helpid="helpid:10600" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ComboBox" toolbar:helpid="helpid:10601" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Label" toolbar:helpid="helpid:10597" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:MoreControls" toolbar:helpid="helpid:11045" />
+ <toolbar:toolbaritem xlink:href=".uno:FormDesignTools" toolbar:helpid="helpid:11046" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:UseWizards" toolbar:helpid="helpid:10727" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formdesign.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formdesign.xml
new file mode 100644
index 000000000000..aaa3f09d9fb1
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formdesign.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchControlDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbaritem xlink:href=".uno:FormProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowFmExplorer" toolbar:helpid="helpid:10633" />
+ <toolbar:toolbaritem xlink:href=".uno:AddField" toolbar:helpid="helpid:10623" />
+ <toolbar:toolbaritem xlink:href=".uno:TabDialog" toolbar:helpid="helpid:10615" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OpenReadOnly" toolbar:helpid="helpid:10709" />
+ <toolbar:toolbaritem xlink:href=".uno:AutoControlFocus" toolbar:helpid="helpid:10763" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="helpid:10454" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="helpid:10455" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EnterGroup" toolbar:helpid="helpid:27096" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:LeaveGroup" toolbar:helpid="helpid:27097" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" />
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formsfilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formsfilterbar.xml
new file mode 100644
index 000000000000..1d1ad07a9938
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formsfilterbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExecute" toolbar:helpid="helpid:10731" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterNavigator" toolbar:helpid="helpid:10732" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExit" toolbar:helpid="helpid:10730" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formsnavigationbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formsnavigationbar.xml
new file mode 100644
index 000000000000..ce47a450e2f5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formsnavigationbar.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="10725"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecText" toolbar:helpid="10624"/>
+ <toolbar:toolbaritem xlink:href=".uno:AbsoluteRecord" toolbar:helpid="10622"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecFromText" toolbar:helpid="10625"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecTotal" toolbar:helpid="10626"/>
+ <toolbar:toolbaritem xlink:href=".uno:FirstRecord" toolbar:helpid="10616"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrevRecord" toolbar:helpid="10618"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextRecord" toolbar:helpid="10617"/>
+ <toolbar:toolbaritem xlink:href=".uno:LastRecord" toolbar:helpid="10619"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewRecord" toolbar:helpid="10620"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="10627"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="10630"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRecord" toolbar:helpid="10621"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="10724"/>
+ <toolbar:toolbaritem xlink:href=".uno:RefreshFormControl"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="10714"/>
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="10712"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="10713"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="10716"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="10723"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilter" toolbar:helpid="10729"/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="10711"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewFormAsGrid" toolbar:helpid="10761"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formtextobjectbar.xml
new file mode 100644
index 000000000000..dbdeaf675371
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/formtextobjectbar.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/frameobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/frameobjectbar.xml
new file mode 100644
index 000000000000..a591f9094457
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/frameobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="helpid:20477" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="helpid:20476" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="helpid:20478" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="helpid:20480" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="helpid:20479" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="helpid:20456" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ChainFrames" toolbar:helpid="helpid:21736" />
+ <toolbar:toolbaritem xlink:href=".uno:UnhainFrames" toolbar:helpid="helpid:21737" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..5aecdda4fb04
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/graffilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/graffilterbar.xml
new file mode 100644
index 000000000000..287c33fe25e5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/graffilterbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterInvert" toolbar:helpid="helpid:34149" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSmooth" toolbar:helpid="helpid:34150" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSharpen" toolbar:helpid="helpid:34151" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRemoveNoise" toolbar:helpid="helpid:34152" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSolarize" toolbar:helpid="helpid:34159" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSepia" toolbar:helpid="helpid:34158" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPoster" toolbar:helpid="helpid:34156" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPopart" toolbar:helpid="helpid:34157" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSobel" toolbar:helpid="helpid:34153" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRelief" toolbar:helpid="helpid:34155" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterMosaic" toolbar:helpid="helpid:34154" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/graphicobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/graphicobjectbar.xml
new file mode 100644
index 000000000000..040bb8cd8ae6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/graphicobjectbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterToolbox" toolbar:helpid="10469"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafMode" toolbar:helpid="10871"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ColorSettings" toolbar:helpid="11016"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafTransparence" toolbar:helpid="10869"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FlipVertical" toolbar:helpid="20426"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlipHorizontal" toolbar:helpid="20425"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20458"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/insertbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/insertbar.xml
new file mode 100644
index 000000000000..0b86a84ad6cd
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/insertbar.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSection" toolbar:helpid="21419"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFrameInteract" toolbar:helpid="20333"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:visible="false" toolbar:helpid="helpid:5563" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFootnote" toolbar:helpid="20399"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertEndnote" toolbar:helpid="21418"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="20329"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertBookmark" toolbar:helpid="20302"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertReferenceField" toolbar:visible="false" toolbar:helpid="20313"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:visible="false" toolbar:helpid="5532"/>
+ <toolbar:toolbaritem xlink:href=".uno:EditGlossary"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:helpid="20328"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+ <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:visible="false" toolbar:helpid="10593"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="20369"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:helpid="10140"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:visible="false" toolbar:helpid="helpid:5561" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:visible="false" toolbar:helpid="helpid:5672" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+</toolbar:toolbar>
+
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/mediaobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/mediaobjectbar.xml
new file mode 100644
index 000000000000..2014343bf89b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/mediaobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AVMediaToolBox" toolbar:helpid="helpid:6693" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/moreformcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/moreformcontrols.xml
new file mode 100644
index 000000000000..4c5274460a71
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/moreformcontrols.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SpinButton" toolbar:helpid="helpid:10769" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ScrollBar" toolbar:helpid="helpid:10768" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:Imagebutton" toolbar:helpid="helpid:10604" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ImageControl" toolbar:helpid="helpid:10710" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:DateField" toolbar:helpid="helpid:10704" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:TimeField" toolbar:helpid="helpid:10705" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FileControl" toolbar:helpid="helpid:10605" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:NumericField" toolbar:helpid="helpid:10706" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CurrencyField" toolbar:helpid="helpid:10707" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:PatternField" toolbar:helpid="helpid:10708" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GroupBox" toolbar:helpid="helpid:10598" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Grid" toolbar:helpid="helpid:10603" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:NavigationBar" toolbar:helpid="helpid:10607" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/navigationobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/navigationobjectbar.xml
new file mode 100644
index 000000000000..6cea7c3ca49c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/navigationobjectbar.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:NavigateBack" toolbar:helpid="helpid:22314"/>
+ <toolbar:toolbaritem xlink:href=".uno:NavigateForward" toolbar:helpid="helpid:22315"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/numobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/numobjectbar.xml
new file mode 100644
index 000000000000..50e28ac32f64
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/numobjectbar.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="20144"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveBullets" toolbar:helpid="20137"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementLevel" toolbar:helpid="20131"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementLevel" toolbar:helpid="20130"/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementSubLevels" toolbar:helpid="20140"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementSubLevels" toolbar:helpid="20139"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertNeutralParagraph" toolbar:helpid="20136"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUp" toolbar:helpid="20134"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDown" toolbar:helpid="20135"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUpSubItems" toolbar:helpid="20141"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDownSubItems" toolbar:helpid="20142"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:NumberingStart" toolbar:helpid="21738"/>
+ <toolbar:toolbaritem xlink:href=".uno:BulletsAndNumberingDialog" toolbar:helpid="20121"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/oleobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/oleobjectbar.xml
new file mode 100644
index 000000000000..c95b1aebb316
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/oleobjectbar.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="5552"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="20475"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="20477"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="20476"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="20478"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="20480"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="20479"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20456"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="10187"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="10200"/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="10201"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/optimizetablebar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/optimizetablebar.xml
new file mode 100644
index 000000000000..7669add92e89
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/optimizetablebar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DistributeColumns" toolbar:helpid="helpid:20582" />
+ <toolbar:toolbaritem xlink:href=".uno:DistributeRows" toolbar:helpid="helpid:20583" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalRowHeight" toolbar:helpid="helpid:20528" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalColumnWidth" toolbar:helpid="helpid:20521" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/previewobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/previewobjectbar.xml
new file mode 100644
index 000000000000..435250b63af5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/previewobjectbar.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:PageUp" toolbar:helpid="20937"/>
+ <toolbar:toolbaritem xlink:href=".uno:PageDown" toolbar:helpid="20938"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToStartOfDoc" toolbar:helpid="20907"/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToEndOfDoc" toolbar:helpid="20908"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowTwoPages" toolbar:helpid="21251"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowMultiplePages" toolbar:helpid="21252"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowBookview" toolbar:helpid="helpid:21255" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPlus" toolbar:helpid="10097"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PreviewZoom" toolbar:helpid="53071"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomMinus" toolbar:helpid="10098"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="5627"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPagePreView" toolbar:helpid="21253"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ClosePreview" toolbar:helpid="5325"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/standardbar.xml
new file mode 100644
index 000000000000..c1b38e3870f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/standardbar.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="5537"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:visible="false" toolbar:helpid="5500"/>
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="5501"/>
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="5505"/>
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:visible="false" toolbar:helpid="5502"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="5331"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="6312"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="6674"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="5509"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPreview" toolbar:helpid="5325"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellingAndGrammarDialog" toolbar:helpid="20622"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellOnline" toolbar:helpid="12021"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="5710"/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="5711"/>
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="5712"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatPaintbrush" toolbar:helpid="5715"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="5701"/>
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="5700"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HyperlinkDialog" toolbar:helpid="5678"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDraw" toolbar:helpid="10244"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="5961" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="10366"/>
+ <toolbar:toolbaritem xlink:href=".uno:Gallery" toolbar:helpid="5960"/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewDataSourceBrowser" toolbar:helpid="6660"/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlCodes" toolbar:helpid="20224"/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="10000" toolbar:visible="false"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false" toolbar:helpid="5402"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/starshapes.xml
new file mode 100644
index 000000000000..a2ff874d2fe7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate" toolbar:helpid="helpid:11007" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..0fa6aee313db
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel" toolbar:helpid="helpid:11003" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/tableobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/tableobjectbar.xml
new file mode 100644
index 000000000000..d34267a6e1de
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/tableobjectbar.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:20330" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MergeCells" toolbar:helpid="helpid:20506" />
+ <toolbar:toolbaritem xlink:href=".uno:SplitCell" toolbar:helpid="helpid:20505" />
+ <toolbar:toolbaritem xlink:href=".uno:OptimizeTable" toolbar:helpid="helpid:20510" toolbar:style="dropdown" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CellVertTop" toolbar:helpid="helpid:20585" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertCenter" toolbar:helpid="helpid:20586" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertBottom" toolbar:helpid="helpid:20587" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:20501" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:20502" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595" />
+ <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TableSort" toolbar:helpid="helpid:20533" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoSum" toolbar:helpid="helpid:20595" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/textobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/textobjectbar.xml
new file mode 100644
index 000000000000..d48a96df35dc
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/textobjectbar.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DesignerDialog" toolbar:helpid="5539"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="helpid:20144" />
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="helpid:20138" />
+ <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+ <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="helpid:10017" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="helpid:10489" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:visible="false" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/toolbar.xml
new file mode 100644
index 000000000000..7ff331e17224
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/toolbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertCtrl" toolbar:helpid="52822"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShadowCursor" toolbar:helpid="22204"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Hyphenate" toolbar:helpid="20605"/>
+ <toolbar:toolbaritem xlink:href=".uno:ThesaurusDialog" toolbar:helpid="20603"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Graphic" toolbar:helpid="20213"/>
+ <toolbar:toolbaritem xlink:href=".uno:BrowseView" toolbar:helpid="6313"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/viewerbar.xml b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/viewerbar.xml
new file mode 100644
index 000000000000..d4d6a59d7ed5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swriter/toolbar/viewerbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="helpid:5961" />
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="helpid:10000" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/menubar/menubar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/menubar/menubar.xml
new file mode 100644
index 000000000000..ff139ef3654d
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/menubar/menubar.xml
@@ -0,0 +1,455 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<menu:menubar xmlns:menu="http://openoffice.org/2001/menu" menu:id="menubar">
+ <menu:menu menu:id=".uno:PickList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:AddDirect"/>
+ <menu:menuitem menu:id=".uno:Open"/>
+ <menu:menuitem menu:id=".uno:RecentFileList"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoPilotMenu"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CloseDoc"/>
+ <menu:menuitem menu:id=".uno:Save"/>
+ <menu:menuitem menu:id=".uno:SaveAs"/>
+ <menu:menuitem menu:id=".uno:SaveAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Reload"/>
+ <menu:menuitem menu:id=".uno:VersionDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ExportTo"/>
+ <menu:menuitem menu:id=".uno:ExportToPDF"/>
+ <menu:menu menu:id=".uno:SendToMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SendMail"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsOOo"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsMS"/>
+ <menu:menuitem menu:id=".uno:SendMailDocAsPDF"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:NewGlobalDoc"/>
+ <menu:menuitem menu:id=".uno:NewHtmlDoc"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SendOutlineToStarImpress"/>
+ <menu:menuitem menu:id=".uno:SendOutlineToClipboard"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CreateAbstract"/>
+ <menu:menuitem menu:id=".uno:SendAbstractToStarImpress"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetDocumentProperties"/>
+ <menu:menuitem menu:id=".uno:Signature"/>
+ <menu:menu menu:id=".uno:TemplateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Organizer"/>
+ <menu:menuitem menu:id=".uno:AddressBookSource"/>
+ <menu:menuitem menu:id=".uno:SaveAsTemplate"/>
+ <menu:menuitem menu:id=".uno:OpenTemplate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:PrintPreview"/>
+ <menu:menuitem menu:id=".uno:Print"/>
+ <menu:menuitem menu:id=".uno:PrinterSetup"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Quit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:EditMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:Undo"/>
+ <menu:menuitem menu:id=".uno:Redo"/>
+ <menu:menuitem menu:id=".uno:Repeat"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Cut"/>
+ <menu:menuitem menu:id=".uno:Copy"/>
+ <menu:menuitem menu:id=".uno:Paste"/>
+ <menu:menuitem menu:id=".uno:PasteSpecial"/>
+ <menu:menuitem menu:id=".uno:SelectTextMode"/>
+ <menu:menu menu:id=".uno:SelectionModeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectionModeDefault" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SelectionModeBlock" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:SelectAll"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ChangesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TrackChanges"/>
+ <menu:menuitem menu:id=".uno:ProtectTraceChangeMode"/>
+ <menu:menuitem menu:id=".uno:ShowTrackedChanges"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AcceptTrackedChanges"/>
+ <menu:menuitem menu:id=".uno:CommentChangeTracking"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MergeDocuments"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:CompareDocuments"/>
+ <menu:menuitem menu:id="vnd.sun.star.findbar:FocusToFindbar"/>
+ <menu:menuitem menu:id=".uno:SearchDialog"/>
+ <menu:menuitem menu:id=".uno:EditGlossary"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChangeDatabaseField"/>
+ <menu:menuitem menu:id=".uno:FieldDialog"/>
+ <menu:menuitem menu:id=".uno:EditFootnote"/>
+ <menu:menuitem menu:id=".uno:IndexEntryDialog"/>
+ <menu:menuitem menu:id=".uno:AuthoritiesEntryDialog"/>
+ <menu:menuitem menu:id=".uno:EditHyperlink"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:LinkDialog"/>
+ <menu:menuitem menu:id=".uno:PlugInsActive"/>
+ <menu:menuitem menu:id=".uno:ImageMapDialog"/>
+ <menu:menuitem menu:id=".uno:ObjectMenue"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ViewMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:PrintLayout" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:BrowseView" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AvailableToolbars"/>
+ <menu:menuitem menu:id=".uno:StatusBarVisible"/>
+ <menu:menuitem menu:id=".uno:ShowImeStatusWindow"/>
+ <menu:menuitem menu:id=".uno:Ruler"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewBounds"/>
+ <menu:menuitem menu:id=".uno:Marks"/>
+ <menu:menuitem menu:id=".uno:Fieldnames"/>
+ <menu:menuitem menu:id=".uno:ControlCodes"/>
+ <menu:menuitem menu:id=".uno:ShowHiddenParagraphs"/>
+ <menu:menuitem menu:id=".uno:ShowAnnotations"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ViewDataSourceBrowser"/>
+ <menu:menuitem menu:id=".uno:Navigator"/>
+ <menu:menuitem menu:id=".uno:TaskPane"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FullScreen"/>
+ <menu:menuitem menu:id=".uno:Zoom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:InsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertBreak"/>
+ <menu:menu menu:id=".uno:FieldMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertDateField"/>
+ <menu:menuitem menu:id=".uno:InsertTimeField"/>
+ <menu:menuitem menu:id=".uno:InsertPageNumberField"/>
+ <menu:menuitem menu:id=".uno:InsertPageCountField"/>
+ <menu:menuitem menu:id=".uno:InsertTopicField"/>
+ <menu:menuitem menu:id=".uno:InsertTitleField"/>
+ <menu:menuitem menu:id=".uno:InsertAuthorField"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertField"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertSymbol"/>
+ <menu:menu menu:id=".uno:FormattingMarkMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertNonBreakingSpace"/>
+ <menu:menuitem menu:id=".uno:InsertHardHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertSoftHyphen"/>
+ <menu:menuitem menu:id=".uno:InsertZWSP"/>
+ <menu:menuitem menu:id=".uno:InsertZWNBSP"/>
+ <menu:menuitem menu:id=".uno:InsertLRM"/>
+ <menu:menuitem menu:id=".uno:InsertRLM"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertSection"/>
+ <menu:menuitem menu:id=".uno:HyperlinkDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertPageHeader"/>
+ <menu:menuitem menu:id=".uno:InsertPageFooter"/>
+ <menu:menuitem menu:id=".uno:InsertFootnoteDialog"/>
+ <menu:menuitem menu:id=".uno:InsertCaptionDialog"/>
+ <menu:menuitem menu:id=".uno:InsertBookmark"/>
+ <menu:menuitem menu:id=".uno:InsertReferenceField"/>
+ <menu:menuitem menu:id=".uno:InsertAnnotation"/>
+ <menu:menuitem menu:id=".uno:InsertScript"/>
+ <menu:menu menu:id=".uno:IndexesMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertIndexesEntry"/>
+ <menu:menuitem menu:id=".uno:InsertMultiIndex"/>
+ <menu:menuitem menu:id=".uno:InsertAuthoritiesEntry"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertEnvelope"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertFrame"/>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertGraphicRuler"/>
+ <menu:menu menu:id=".uno:GraphicMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertGraphic"/>
+ <menu:menu menu:id=".uno:Scan">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TwainSelect"/>
+ <menu:menuitem menu:id=".uno:TwainTransfer"/>
+ </menu:menupopup>
+ </menu:menu>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertAVMedia"/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertObject"/>
+ <menu:menuitem menu:id=".uno:InsertPlugin"/>
+ <menu:menuitem menu:id=".uno:InsertObjectStarMath"/>
+ <menu:menuitem menu:id=".uno:InsertObjectChart"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:InsertObjectFloatingFrame"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:InsertDoc"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ResetAttributes"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:FontDialog"/>
+ <menu:menuitem menu:id=".uno:ParagraphDialog"/>
+ <menu:menuitem menu:id=".uno:BulletsAndNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:PageDialog"/>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:TransliterateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ChangeCaseToSentenceCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToLower"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToUpper"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToTitleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToToggleCase"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHalfWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToFullWidth"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToHiragana"/>
+ <menu:menuitem menu:id=".uno:ChangeCaseToKatakana"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:RubyDialog"/>
+ <menu:menuitem menu:id=".uno:FormatColumns"/>
+ <menu:menuitem menu:id=".uno:EditRegion"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:DesignerDialog"/>
+ <menu:menu menu:id=".uno:AutoFormatMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:OnlineAutoFormat"/>
+ <menu:menuitem menu:id=".uno:AutoFormatApply"/>
+ <menu:menuitem menu:id=".uno:AutoFormatRedlineApply"/>
+ <menu:menuitem menu:id=".uno:AutoCorrectDlg"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:AnchorMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetAnchorToPage" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToPara" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorAtChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToChar" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:SetAnchorToFrame" menu:style="radio"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WrapMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:WrapOff"/>
+ <menu:menuitem menu:id=".uno:WrapOn"/>
+ <menu:menuitem menu:id=".uno:WrapIdeal"/>
+ <menu:menuitem menu:id=".uno:WrapThrough"/>
+ <menu:menuitem menu:id=".uno:WrapThroughTransparent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:WrapContour"/>
+ <menu:menuitem menu:id=".uno:ContourDialog"/>
+ <menu:menuitem menu:id=".uno:WrapAnchorOnly"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TextWrap"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ObjectAlign">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:CommonAlignLeft" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignHorizontalCenter" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignRight" menu:style="radio"/>
+ <menu:menuitem menu:id=".uno:CommonAlignJustified" menu:style="radio"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:CommonAlignTop"/>
+ <menu:menuitem menu:id=".uno:CommonAlignVerticalCenter"/>
+ <menu:menuitem menu:id=".uno:CommonAlignBottom"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ArrangeMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:BringToFront"/>
+ <menu:menuitem menu:id=".uno:ObjectForwardOne"/>
+ <menu:menuitem menu:id=".uno:ObjectBackOne"/>
+ <menu:menuitem menu:id=".uno:SendToBack"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetObjectToForeground"/>
+ <menu:menuitem menu:id=".uno:SetObjectToBackground"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:FlipMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FlipHorizontal"/>
+ <menu:menuitem menu:id=".uno:FlipVertical"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:GroupMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:FormatGroup"/>
+ <menu:menuitem menu:id=".uno:FormatUngroup"/>
+ <menu:menuitem menu:id=".uno:EnterGroup"/>
+ <menu:menuitem menu:id=".uno:LeaveGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:ObjectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:TransformDialog"/>
+ <menu:menuitem menu:id=".uno:FormatLine"/>
+ <menu:menuitem menu:id=".uno:FormatArea"/>
+ <menu:menuitem menu:id=".uno:TextAttributes"/>
+ <menu:menuitem menu:id=".uno:FontWork"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ObjectTitleDescription"/>
+ <menu:menuitem menu:id=".uno:NameGroup"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:FrameDialog"/>
+ <menu:menuitem menu:id=".uno:GraphicDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableMenu">
+ <menu:menupopup>
+ <menu:menu menu:id=".uno:TableInsertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:InsertTable"/>
+ <menu:menuitem menu:id=".uno:InsertRowDialog"/>
+ <menu:menuitem menu:id=".uno:InsertColumnDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableDeleteMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:DeleteTable"/>
+ <menu:menuitem menu:id=".uno:DeleteRows"/>
+ <menu:menuitem menu:id=".uno:DeleteColumns"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:TableSelectMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SelectTable"/>
+ <menu:menuitem menu:id=".uno:EntireRow"/>
+ <menu:menuitem menu:id=".uno:EntireColumn"/>
+ <menu:menuitem menu:id=".uno:EntireCell"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:MergeCells"/>
+ <menu:menuitem menu:id=".uno:SplitCell"/>
+ <menu:menuitem menu:id=".uno:Protect"/>
+ <menu:menuitem menu:id=".uno:MergeTable"/>
+ <menu:menuitem menu:id=".uno:SplitTable"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:AutoFormat"/>
+ <menu:menu menu:id=".uno:TableAutoFitMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SetColumnWidth"/>
+ <menu:menuitem menu:id=".uno:SetOptimalColumnWidth"/>
+ <menu:menuitem menu:id=".uno:DistributeColumns"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SetRowHeight"/>
+ <menu:menuitem menu:id=".uno:SetOptimalRowHeight"/>
+ <menu:menuitem menu:id=".uno:DistributeRows"/>
+ <menu:menuitem menu:id=".uno:RowSplit"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:HeadingRowsRepeat"/>
+ <menu:menu menu:id=".uno:TableConvertMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:ConvertTextToTable"/>
+ <menu:menuitem menu:id=".uno:ConvertTableToText"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:TableSort"/>
+ <menu:menuitem menu:id=".uno:InsertFormula"/>
+ <menu:menuitem menu:id=".uno:TableNumberFormatDialog"/>
+ <menu:menuitem menu:id=".uno:TableBoundaries"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:TableDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:ToolsMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:SpellingAndGrammarDialog"/>
+ <menu:menu menu:id=".uno:LanguageMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HangulHanjaConversion"/>
+ <menu:menuitem menu:id=".uno:ChineseConversion"/>
+ <menu:menuitem menu:id=".uno:ThesaurusDialog"/>
+ <menu:menuitem menu:id=".uno:Hyphenate"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MoreDictionaries"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id=".uno:WordCountDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ChapterNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:LineNumberingDialog"/>
+ <menu:menuitem menu:id=".uno:FootnoteDialog"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:Gallery"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:BibliographyComponent"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MailMergeWizard"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:SortDialog"/>
+ <menu:menuitem menu:id=".uno:CalculateSel"/>
+ <menu:menu menu:id=".uno:UpdateMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:UpdateAll"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:UpdateFields"/>
+ <menu:menuitem menu:id=".uno:UpdateAllLinks"/>
+ <menu:menuitem menu:id=".uno:UpdateCharts"/>
+ <menu:menuitem menu:id=".uno:UpdateCurIndex"/>
+ <menu:menuitem menu:id=".uno:UpdateAllIndexes"/>
+ <menu:menuitem menu:id=".uno:Repaginate"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuseparator/>
+ <menu:menu menu:id=".uno:MacrosMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:MacroRecorder"/>
+ <menu:menuitem menu:id=".uno:RunMacro"/>
+ <menu:menu menu:id=".uno:ScriptOrganizer"/>
+ <menu:menuitem menu:id=".uno:MacroSignature"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:MacroOrganizer?TabId:short=1"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menuitem menu:id="service:com.sun.star.deployment.ui.PackageManagerDialog"/>
+ <menu:menuitem menu:id=".uno:OpenXMLFilterSettings"/>
+ <menu:menuitem menu:id=".uno:ConfigureDialog"/>
+ <menu:menuitem menu:id=".uno:OptionsTreeDialog"/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:WindowList">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:NewWindow"/>
+ <menu:menuitem menu:id=".uno:CloseWin"/>
+ <menu:menuseparator/>
+ </menu:menupopup>
+ </menu:menu>
+ <menu:menu menu:id=".uno:HelpMenu">
+ <menu:menupopup>
+ <menu:menuitem menu:id=".uno:HelpIndex"/>
+ <menu:menuitem menu:id=".uno:ExtendedHelp"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowLicense"/>
+ <menu:menuseparator/>
+ <menu:menuitem menu:id=".uno:ShowCredits"/>
+ <menu:menuitem menu:id=".uno:About"/>
+ </menu:menupopup>
+ </menu:menu>
+</menu:menubar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/statusbar/statusbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/statusbar/statusbar.xml
new file mode 100644
index 000000000000..3e46300cd0e7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/statusbar/statusbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE statusbar:statusbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "statusbar.dtd">
+<statusbar:statusbar xmlns:statusbar="http://openoffice.org/2001/statusbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <statusbar:statusbaritem xlink:href=".uno:StatePageNumber" statusbar:align="left" statusbar:autosize="true" statusbar:width="54" statusbar:helpid="helpid:21181"/>
+ <statusbar:statusbaritem xlink:href=".uno:PageStyleName" statusbar:align="left" statusbar:autosize="true" statusbar:width="79" statusbar:helpid="helpid:21182"/>
+ <statusbar:statusbaritem xlink:href=".uno:LanguageStatus" statusbar:align="center" statusbar:autosize="true" statusbar:width="100" />
+ <statusbar:statusbaritem xlink:href=".uno:InsertMode" statusbar:align="center" statusbar:width="37" statusbar:helpid="helpid:10221"/>
+ <statusbar:statusbaritem xlink:href=".uno:SelectionMode" statusbar:align="center" statusbar:width="30" statusbar:helpid="helpid:21185"/>
+ <statusbar:statusbaritem xlink:href=".uno:ModifiedStatus" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="9" statusbar:helpid="helpid:5584"/>
+ <statusbar:statusbaritem xlink:href=".uno:Signature" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="16" statusbar:helpid="helpid:5699"/>
+ <statusbar:statusbaritem xlink:href=".uno:Size" statusbar:align="left" statusbar:autosize="true" statusbar:ownerdraw="true" statusbar:width="129" statusbar:helpid="helpid:10224"/>
+ <statusbar:statusbaritem xlink:href=".uno:ViewLayout" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="63" statusbar:helpid="helpid:11064"/>
+ <statusbar:statusbaritem xlink:href=".uno:ZoomSlider" statusbar:align="center" statusbar:ownerdraw="true" statusbar:width="130" statusbar:helpid="helpid:11065"/>
+ <statusbar:statusbaritem xlink:href=".uno:Zoom" statusbar:align="center" statusbar:width="35" statusbar:helpid="helpid:10000"/>
+</statusbar:statusbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/alignmentbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/alignmentbar.xml
new file mode 100644
index 000000000000..dbd7294e566c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/alignmentbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignLeft" toolbar:helpid="helpid:10131" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignCenter" toolbar:helpid="helpid:10132" />
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlignRight" toolbar:helpid="helpid:10133" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignUp" toolbar:helpid="helpid:10134" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignMiddle" toolbar:helpid="helpid:10135" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignDown" toolbar:helpid="helpid:10136" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/arrowshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/arrowshapes.xml
new file mode 100644
index 000000000000..4a53519494ea
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/arrowshapes.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-down-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.corner-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.striped-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.notched-right-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.pentagon-right" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.chevron" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.left-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-down-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.up-right-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.quad-arrow-callout" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.circular-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.split-round-arrow" toolbar:helpid="helpid:11004" />
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes.s-sharped-arrow" toolbar:helpid="helpid:11004" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/basicshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/basicshapes.xml
new file mode 100644
index 000000000000..e65778305788
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/basicshapes.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-rectangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.round-quadrat" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ellipse" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.circle-pie" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.isosceles-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.right-triangle" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.trapezoid" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.diamond" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.parallelogram" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.pentagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.hexagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.octagon" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cross" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.ring" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.block-arc" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.can" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.cube" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.paper" toolbar:helpid="helpid:11002" />
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes.frame" toolbar:helpid="helpid:11002" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/bezierobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/bezierobjectbar.xml
new file mode 100644
index 000000000000..7c067e68d13c
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/bezierobjectbar.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="helpid:10126" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierMove" toolbar:helpid="helpid:10121" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierInsert" toolbar:helpid="helpid:10119" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierDelete" toolbar:helpid="helpid:10120" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierCutLine" toolbar:helpid="helpid:10127" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierConvert" toolbar:helpid="helpid:27065" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEdge" toolbar:helpid="helpid:27066" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSmooth" toolbar:helpid="helpid:10123" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:BezierSymmetric" toolbar:helpid="helpid:27067" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierClose" toolbar:helpid="helpid:10122" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BezierEliminatePoints" toolbar:helpid="helpid:27030" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/calloutshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/calloutshapes.xml
new file mode 100644
index 000000000000..91b957fa697a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/calloutshapes.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-rectangular-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.round-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.cloud-callout" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-1" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-2" toolbar:helpid="helpid:11006" />
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes.line-callout-3" toolbar:helpid="helpid:11006" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/colorbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/colorbar.xml
new file mode 100644
index 000000000000..adcda76b5c3a
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/colorbar.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GrafRed" toolbar:helpid="helpid:10865" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGreen" toolbar:helpid="helpid:10866" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafBlue" toolbar:helpid="helpid:10867" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafLuminance" toolbar:helpid="helpid:10863" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafContrast" toolbar:helpid="helpid:10864" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafGamma" toolbar:helpid="helpid:10868" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawbar.xml
new file mode 100644
index 000000000000..2407475a88f6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="10128"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Line" toolbar:helpid="10102"/>
+ <toolbar:toolbaritem xlink:href=".uno:Rect" toolbar:helpid="10104"/>
+ <toolbar:toolbaritem xlink:href=".uno:Ellipse" toolbar:helpid="10110"/>
+ <toolbar:toolbaritem xlink:href=".uno:Polygon_Unfilled" toolbar:visible="false" toolbar:helpid="10395"/>
+ <toolbar:toolbaritem xlink:href=".uno:Bezier_Unfilled" toolbar:visible="false" toolbar:helpid="10397"/>
+ <toolbar:toolbaritem xlink:href=".uno:Freeline_Unfilled" toolbar:helpid="10464"/>
+ <toolbar:toolbaritem xlink:href=".uno:Arc" toolbar:visible="false" toolbar:helpid="10114"/>
+ <toolbar:toolbaritem xlink:href=".uno:Pie" toolbar:visible="false" toolbar:helpid="10112"/>
+ <toolbar:toolbaritem xlink:href=".uno:CircleCut" toolbar:visible="false" toolbar:helpid="10115"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawText" toolbar:helpid="10253"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalText" toolbar:helpid="10905"/>
+ <toolbar:toolbaritem xlink:href=".uno:Text_Marquee" toolbar:visible="false" toolbar:helpid="10465"/>
+ <toolbar:toolbaritem xlink:href=".uno:DrawCaption" toolbar:helpid="10254"/>
+ <toolbar:toolbaritem xlink:href=".uno:VerticalCaption" toolbar:helpid="10906"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BasicShapes" toolbar:helpid="11002"/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes" toolbar:helpid="11003"/>
+ <toolbar:toolbaritem xlink:href=".uno:ArrowShapes" toolbar:helpid="11004"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes" toolbar:helpid="11005"/>
+ <toolbar:toolbaritem xlink:href=".uno:CalloutShapes" toolbar:helpid="11006"/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes" toolbar:helpid="11007"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectBezierMode" toolbar:helpid="10126"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="10977"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawingobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawingobjectbar.xml
new file mode 100644
index 000000000000..4703c3cfdad6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawingobjectbar.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormatLine" toolbar:helpid="helpid:10143" />
+ <toolbar:toolbaritem xlink:href=".uno:LineEndStyle" toolbar:helpid="helpid:10301" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineStyle" toolbar:helpid="helpid:10169" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineWidth" toolbar:helpid="helpid:10171" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:XLineColor" toolbar:helpid="helpid:10172" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatArea" toolbar:helpid="helpid:10142" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FillStyle" toolbar:helpid="helpid:10164" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleObjectRotateMode" toolbar:helpid="10129"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:visible="false" toolbar:helpid="27322"/>
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:visible="false" toolbar:helpid="27154"/>
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false" toolbar:helpid="27153"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:visible="false" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:visible="false" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:visible="false" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapContour" toolbar:visible="false" toolbar:helpid="20584"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToForeground" toolbar:helpid="10283"/>
+ <toolbar:toolbaritem xlink:href=".uno:SetObjectToBackground" toolbar:helpid="10282"/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="10130"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="10455"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="10454"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawtextobjectbar.xml
new file mode 100644
index 000000000000..31e5ca4db662
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/drawtextobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Color" toolbar:helpid="helpid:10017" toolbar:style="dropdown" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionLeftToRight" toolbar:helpid="helpid:10907" />
+ <toolbar:toolbaritem xlink:href=".uno:TextdirectionTopToBottom" toolbar:helpid="helpid:10908" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/extrusionobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/extrusionobjectbar.xml
new file mode 100644
index 000000000000..148849db6ee7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/extrusionobjectbar.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionToggle" toolbar:helpid="10960"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltDown" toolbar:helpid="10961"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltUp" toolbar:helpid="10962"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltLeft" toolbar:helpid="10963"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionTiltRight" toolbar:helpid="10964"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDepthFloater" toolbar:helpid="10965" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionDirectionFloater" toolbar:helpid="10966" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionLightingFloater" toolbar:helpid="10967" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtrusionSurfaceFloater" toolbar:helpid="10968" toolbar:style="dropdownonly"/>
+ <toolbar:toolbaritem xlink:href=".uno:Extrusion3DColor" toolbar:helpid="10969" toolbar:style="dropdownonly"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/findbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/findbar.xml
new file mode 100644
index 000000000000..49e483e178a3
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/findbar.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FindText"/>
+ <toolbar:toolbaritem xlink:href=".uno:DownSearch"/>
+ <toolbar:toolbaritem xlink:href=".uno:UpSearch"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/flowchartshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/flowchartshapes.xml
new file mode 100644
index 000000000000..bb1d1099dbd4
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/flowchartshapes.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-alternate-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-decision" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-predefined-process" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-internal-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-document" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-multidocument" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-terminator" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-preparation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-input" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-manual-operation" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-off-page-connector" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-card" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-punched-tape" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-summing-junction" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-or" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-collate" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sort" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-extract" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-merge" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-stored-data" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-delay" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-sequential-access" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-magnetic-disk" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-direct-access-storage" toolbar:helpid="helpid:11005" />
+ <toolbar:toolbaritem xlink:href=".uno:FlowChartShapes.flowchart-display" toolbar:helpid="helpid:11005" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fontworkobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fontworkobjectbar.xml
new file mode 100644
index 000000000000..5219a1e235e9
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fontworkobjectbar.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkGalleryFloater" toolbar:helpid="helpid:10977" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType" toolbar:helpid="helpid:10978" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkSameLetterHeights" toolbar:helpid="helpid:10979" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkAlignmentFloater" toolbar:helpid="helpid:10981" toolbar:style="dropdownonly" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkCharacterSpacingFloater" toolbar:helpid="helpid:10982" toolbar:style="dropdownonly" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fontworkshapetype.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fontworkshapetype.xml
new file mode 100644
index 000000000000..49b5b8173e0e
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fontworkshapetype.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-plain-text" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-wave" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-inflate" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-stop" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-curve-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-triangle-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-slant-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-right" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-fade-up-and-left" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-up" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-chevron-down" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-curve" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-up-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-down-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-left-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-arch-right-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-circle-pour" toolbar:helpid="helpid:10978" />
+ <toolbar:toolbaritem xlink:href=".uno:FontworkShapeType.fontwork-open-circle-pour" toolbar:helpid="helpid:10978" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formcontrols.xml
new file mode 100644
index 000000000000..20be12fee858
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formcontrols.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:text="" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchXFormsDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10613" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CheckBox" toolbar:helpid="helpid:10596" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Edit" toolbar:helpid="helpid:10599" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:FormattedField" toolbar:helpid="helpid:10728" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Pushbutton" toolbar:helpid="helpid:10594" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:RadioButton" toolbar:helpid="helpid:10595" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:ListBox" toolbar:helpid="helpid:10600" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:ComboBox" toolbar:helpid="helpid:10601" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Label" toolbar:helpid="helpid:10597" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:MoreControls" toolbar:helpid="helpid:11045" />
+ <toolbar:toolbaritem xlink:href=".uno:FormDesignTools" toolbar:helpid="helpid:11046" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formdesign.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formdesign.xml
new file mode 100644
index 000000000000..0b81640ff691
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formdesign.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SelectObject" toolbar:helpid="helpid:10128" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:SwitchXFormsDesignMode" toolbar:helpid="helpid:10629" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlProperties" toolbar:helpid="helpid:10614" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowDataNavigator" toolbar:helpid="helpid:10773" />
+ <toolbar:toolbaritem xlink:href=".uno:ShowFmExplorer" toolbar:helpid="helpid:10633" />
+ <toolbar:toolbaritem xlink:href=".uno:AddField" toolbar:helpid="helpid:10623" />
+ <toolbar:toolbaritem xlink:href=".uno:TabDialog" toolbar:helpid="helpid:10615" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OpenReadOnly" toolbar:helpid="helpid:10709" />
+ <toolbar:toolbaritem xlink:href=".uno:AutoControlFocus" toolbar:helpid="helpid:10763" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TransformDialog" toolbar:helpid="helpid:10087" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatGroup" toolbar:helpid="helpid:10454" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FormatUngroup" toolbar:helpid="helpid:10455" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EnterGroup" toolbar:helpid="helpid:27096" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:LeaveGroup" toolbar:helpid="helpid:27097" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ObjectAlign" toolbar:helpid="helpid:10130" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GridVisible" toolbar:helpid="helpid:27322" />
+ <toolbar:toolbaritem xlink:href=".uno:GridUse" toolbar:helpid="helpid:27154" />
+ <toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:helpid="helpid:27153" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formsfilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formsfilterbar.xml
new file mode 100644
index 000000000000..1d1ad07a9938
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formsfilterbar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExecute" toolbar:helpid="helpid:10731" />
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterNavigator" toolbar:helpid="helpid:10732" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilterExit" toolbar:helpid="helpid:10730" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formsnavigationbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formsnavigationbar.xml
new file mode 100644
index 000000000000..ce47a450e2f5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formsnavigationbar.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:RecSearch" toolbar:helpid="10725"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecText" toolbar:helpid="10624"/>
+ <toolbar:toolbaritem xlink:href=".uno:AbsoluteRecord" toolbar:helpid="10622"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecFromText" toolbar:helpid="10625"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecTotal" toolbar:helpid="10626"/>
+ <toolbar:toolbaritem xlink:href=".uno:FirstRecord" toolbar:helpid="10616"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrevRecord" toolbar:helpid="10618"/>
+ <toolbar:toolbaritem xlink:href=".uno:NextRecord" toolbar:helpid="10617"/>
+ <toolbar:toolbaritem xlink:href=".uno:LastRecord" toolbar:helpid="10619"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewRecord" toolbar:helpid="10620"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RecSave" toolbar:helpid="10627"/>
+ <toolbar:toolbaritem xlink:href=".uno:RecUndo" toolbar:helpid="10630"/>
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRecord" toolbar:helpid="10621"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Refresh" toolbar:helpid="10724"/>
+ <toolbar:toolbaritem xlink:href=".uno:RefreshFormControl"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:OrderCrit" toolbar:helpid="10714"/>
+ <toolbar:toolbaritem xlink:href=".uno:Sortup" toolbar:helpid="10712"/>
+ <toolbar:toolbaritem xlink:href=".uno:SortDown" toolbar:helpid="10713"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFilter" toolbar:helpid="10716"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFiltered" toolbar:helpid="10723"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormFilter" toolbar:helpid="10729"/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveFilterSort" toolbar:helpid="10711"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewFormAsGrid" toolbar:helpid="10761"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formtextobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formtextobjectbar.xml
new file mode 100644
index 000000000000..dbdeaf675371
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/formtextobjectbar.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:text="" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:text="" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:text="" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:text="" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/frameobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/frameobjectbar.xml
new file mode 100644
index 000000000000..a591f9094457
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/frameobjectbar.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="helpid:20472" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="helpid:20473" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:helpid="helpid:20563" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:helpid="helpid:20572" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:helpid="helpid:20573" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="helpid:20474" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="helpid:20475" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="helpid:20477" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="helpid:20476" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="helpid:20478" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="helpid:20480" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="helpid:20479" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="helpid:20456" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="helpid:10286" />
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="helpid:10287" />
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="helpid:20349" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ChainFrames" toolbar:helpid="helpid:21736" />
+ <toolbar:toolbaritem xlink:href=".uno:UnhainFrames" toolbar:helpid="helpid:21737" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fullscreenbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fullscreenbar.xml
new file mode 100644
index 000000000000..5aecdda4fb04
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/fullscreenbar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="helpid:5627" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/graffilterbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/graffilterbar.xml
new file mode 100644
index 000000000000..287c33fe25e5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/graffilterbar.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterInvert" toolbar:helpid="helpid:34149" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSmooth" toolbar:helpid="helpid:34150" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSharpen" toolbar:helpid="helpid:34151" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRemoveNoise" toolbar:helpid="helpid:34152" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSolarize" toolbar:helpid="helpid:34159" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSepia" toolbar:helpid="helpid:34158" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPoster" toolbar:helpid="helpid:34156" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterPopart" toolbar:helpid="helpid:34157" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterSobel" toolbar:helpid="helpid:34153" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterRelief" toolbar:helpid="helpid:34155" />
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterMosaic" toolbar:helpid="helpid:34154" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/graphicobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/graphicobjectbar.xml
new file mode 100644
index 000000000000..040bb8cd8ae6
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/graphicobjectbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GraphicFilterToolbox" toolbar:helpid="10469"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafMode" toolbar:helpid="10871"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ColorSettings" toolbar:helpid="11016"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GrafTransparence" toolbar:helpid="10869"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FlipVertical" toolbar:helpid="20426"/>
+ <toolbar:toolbaritem xlink:href=".uno:FlipHorizontal" toolbar:helpid="20425"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20458"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/insertbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/insertbar.xml
new file mode 100644
index 000000000000..a9bb7e0eb204
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/insertbar.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFrameInteract" toolbar:helpid="20333"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDoc" toolbar:helpid="5532"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertGraphic" toolbar:helpid="10241"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFootnote" toolbar:helpid="20399"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertEndnote" toolbar:helpid="21418"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSymbol" toolbar:helpid="20328"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectStarMath" toolbar:helpid="20369"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertSection" toolbar:helpid="21419"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertIndexesEntry" toolbar:helpid="20335"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertFieldCtrl" toolbar:helpid="52824"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectChart" toolbar:visible="false" toolbar:helpid="10140"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjCtrl" toolbar:visible="false" toolbar:helpid="52823"/>
+ <toolbar:toolbaritem xlink:href=".uno:Config" toolbar:visible="false" toolbar:helpid="10593"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertMultiIndex" toolbar:helpid="21420"/>
+ <toolbar:toolbaritem xlink:href=".uno:EditGlossary"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertAnnotation" toolbar:helpid="20329"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertBookmark" toolbar:helpid="20302"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/insertobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/insertobjectbar.xml
new file mode 100644
index 000000000000..951849543373
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/insertobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertObjectFloatingFrame" toolbar:helpid="helpid:5563" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertObject" toolbar:helpid="helpid:5561" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertPlugin" toolbar:helpid="helpid:5672" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/mediaobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/mediaobjectbar.xml
new file mode 100644
index 000000000000..2014343bf89b
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/mediaobjectbar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertAVMedia" toolbar:helpid="6695"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AVMediaToolBox" toolbar:helpid="helpid:6693" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/moreformcontrols.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/moreformcontrols.xml
new file mode 100644
index 000000000000..c329d444c5d0
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/moreformcontrols.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SpinButton" toolbar:helpid="helpid:10769" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:Imagebutton" toolbar:helpid="helpid:10604" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:DateField" toolbar:helpid="helpid:10704" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:TimeField" toolbar:helpid="helpid:10705" toolbar:style="radio auto" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:NumericField" toolbar:helpid="helpid:10706" toolbar:style="radio auto" />
+ <toolbar:toolbaritem xlink:href=".uno:GroupBox" toolbar:helpid="helpid:10598" toolbar:style="radio auto" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/numobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/numobjectbar.xml
new file mode 100644
index 000000000000..50e28ac32f64
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/numobjectbar.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="20138"/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="20144"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:RemoveBullets" toolbar:helpid="20137"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementLevel" toolbar:helpid="20131"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementLevel" toolbar:helpid="20130"/>
+ <toolbar:toolbaritem xlink:href=".uno:IncrementSubLevels" toolbar:helpid="20140"/>
+ <toolbar:toolbaritem xlink:href=".uno:DecrementSubLevels" toolbar:helpid="20139"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertNeutralParagraph" toolbar:helpid="20136"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUp" toolbar:helpid="20134"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDown" toolbar:helpid="20135"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveUpSubItems" toolbar:helpid="20141"/>
+ <toolbar:toolbaritem xlink:href=".uno:MoveDownSubItems" toolbar:helpid="20142"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:NumberingStart" toolbar:helpid="21738"/>
+ <toolbar:toolbaritem xlink:href=".uno:BulletsAndNumberingDialog" toolbar:helpid="20121"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/oleobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/oleobjectbar.xml
new file mode 100644
index 000000000000..c95b1aebb316
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/oleobjectbar.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="5552"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignLeft" toolbar:helpid="20475"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignHorizontalCenter" toolbar:helpid="20477"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignRight" toolbar:helpid="20476"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignTop" toolbar:helpid="20478"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignVerticalCenter" toolbar:helpid="20480"/>
+ <toolbar:toolbaritem xlink:href=".uno:AlignBottom" toolbar:helpid="20479"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapLeft" toolbar:visible="false" toolbar:helpid="20572"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapRight" toolbar:visible="false" toolbar:helpid="20573"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOff" toolbar:helpid="20472"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapOn" toolbar:helpid="20473"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapThrough" toolbar:helpid="20474"/>
+ <toolbar:toolbaritem xlink:href=".uno:WrapIdeal" toolbar:visible="false" toolbar:helpid="20563"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameDialog" toolbar:helpid="20456"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:BringToFront" toolbar:helpid="10286"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendToBack" toolbar:helpid="10287"/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleAnchorType" toolbar:helpid="20349"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="10187"/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="10200"/>
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="10201"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/optimizetablebar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/optimizetablebar.xml
new file mode 100644
index 000000000000..7669add92e89
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/optimizetablebar.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DistributeColumns" toolbar:helpid="helpid:20582" />
+ <toolbar:toolbaritem xlink:href=".uno:DistributeRows" toolbar:helpid="helpid:20583" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalRowHeight" toolbar:helpid="helpid:20528" />
+ <toolbar:toolbaritem xlink:href=".uno:SetOptimalColumnWidth" toolbar:helpid="helpid:20521" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/previewobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/previewobjectbar.xml
new file mode 100644
index 000000000000..435250b63af5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/previewobjectbar.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:PageUp" toolbar:helpid="20937"/>
+ <toolbar:toolbaritem xlink:href=".uno:PageDown" toolbar:helpid="20938"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToStartOfDoc" toolbar:helpid="20907"/>
+ <toolbar:toolbaritem xlink:href=".uno:GoToEndOfDoc" toolbar:helpid="20908"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowTwoPages" toolbar:helpid="21251"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowMultiplePages" toolbar:helpid="21252"/>
+ <toolbar:toolbaritem xlink:href=".uno:ShowBookview" toolbar:helpid="helpid:21255" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomPlus" toolbar:helpid="10097"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:PreviewZoom" toolbar:helpid="53071"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ZoomMinus" toolbar:helpid="10098"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FullScreen" toolbar:helpid="5627"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPagePreView" toolbar:helpid="21253"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ClosePreview" toolbar:helpid="5325"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/standardbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/standardbar.xml
new file mode 100644
index 000000000000..1da9beff4735
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/standardbar.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:OpenUrl" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:AddDirect" toolbar:helpid="5537"/>
+ <toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:visible="false" toolbar:helpid="5500"/>
+ <toolbar:toolbaritem xlink:href=".uno:Open" toolbar:helpid="5501"/>
+ <toolbar:toolbaritem xlink:href=".uno:Save" toolbar:helpid="5505"/>
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:visible="false" toolbar:helpid="5502"/>
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="5331"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="6312"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="6674"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="5509"/>
+ <toolbar:toolbaritem xlink:href=".uno:PrintPreview" toolbar:helpid="5325"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellDialog" toolbar:helpid="20622"/>
+ <toolbar:toolbaritem xlink:href=".uno:SpellOnline" toolbar:helpid="12021"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Cut" toolbar:helpid="5710"/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="5711"/>
+ <toolbar:toolbaritem xlink:href=".uno:Paste" toolbar:helpid="5712"/>
+ <toolbar:toolbaritem xlink:href=".uno:FormatPaintbrush" toolbar:helpid="5715"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Undo" toolbar:helpid="5701"/>
+ <toolbar:toolbaritem xlink:href=".uno:Redo" toolbar:helpid="5700"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HyperlinkDialog" toolbar:helpid="5678"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="20330"/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertDraw" toolbar:helpid="10244"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="5961" toolbar:visible="false"/>
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="10366"/>
+ <toolbar:toolbaritem xlink:href=".uno:Gallery" toolbar:helpid="5960"/>
+ <toolbar:toolbaritem xlink:href=".uno:ViewDataSourceBrowser" toolbar:helpid="6660"/>
+ <toolbar:toolbaritem xlink:href=".uno:ControlCodes" toolbar:helpid="20224"/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="10000" toolbar:visible="false"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:HelpIndex"/>
+ <toolbar:toolbaritem xlink:href=".uno:ExtendedHelp" toolbar:visible="false" toolbar:helpid="5402"/>
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/starshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/starshapes.xml
new file mode 100644
index 000000000000..a2ff874d2fe7
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/starshapes.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.bang" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star4" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star5" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star8" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star12" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.star24" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.concave-star6" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.vertical-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.horizontal-scroll" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.signet" toolbar:helpid="helpid:11007" />
+ <toolbar:toolbaritem xlink:href=".uno:StarShapes.doorplate" toolbar:helpid="helpid:11007" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/symbolshapes.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/symbolshapes.xml
new file mode 100644
index 000000000000..0fa6aee313db
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/symbolshapes.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.smiley" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.sun" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.moon" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.lightning" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.heart" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.flower" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.cloud" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.forbidden" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.puzzle" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.bracket-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-bracket" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.brace-pair" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.left-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.right-brace" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.quad-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.octagon-bevel" toolbar:helpid="helpid:11003" />
+ <toolbar:toolbaritem xlink:href=".uno:SymbolShapes.diamond-bevel" toolbar:helpid="helpid:11003" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/tableobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/tableobjectbar.xml
new file mode 100644
index 000000000000..d34267a6e1de
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/tableobjectbar.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:InsertTable" toolbar:helpid="helpid:20330" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LineStyle" toolbar:helpid="helpid:10200" />
+ <toolbar:toolbaritem xlink:href=".uno:FrameLineColor" toolbar:helpid="helpid:10201" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SetBorderStyle" toolbar:helpid="helpid:10187" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:MergeCells" toolbar:helpid="helpid:20506" />
+ <toolbar:toolbaritem xlink:href=".uno:SplitCell" toolbar:helpid="helpid:20505" />
+ <toolbar:toolbaritem xlink:href=".uno:OptimizeTable" toolbar:helpid="helpid:20510" toolbar:style="dropdown" />
+ <toolbar:toolbarbreak/>
+ <toolbar:toolbaritem xlink:href=".uno:CellVertTop" toolbar:helpid="helpid:20585" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertCenter" toolbar:helpid="helpid:20586" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CellVertBottom" toolbar:helpid="helpid:20587" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:InsertRows" toolbar:helpid="helpid:20501" />
+ <toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:20502" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:20503" />
+ <toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:20504" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectTable" toolbar:helpid="helpid:20515" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireColumn" toolbar:helpid="helpid:20514" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:EntireRow" toolbar:helpid="helpid:20513" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoFormat" toolbar:helpid="helpid:20595" />
+ <toolbar:toolbaritem xlink:href=".uno:TableDialog" toolbar:helpid="helpid:20459" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:TableSort" toolbar:helpid="helpid:20533" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:AutoSum" toolbar:helpid="helpid:20595" />
+</toolbar:toolbar>
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/textobjectbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/textobjectbar.xml
new file mode 100644
index 000000000000..d48a96df35dc
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/textobjectbar.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:DesignerDialog" toolbar:helpid="5539"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:StyleApply" toolbar:helpid="helpid:5552" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:CharFontName" toolbar:helpid="helpid:10007" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontHeight" toolbar:helpid="helpid:10015" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Bold" toolbar:helpid="helpid:10009" />
+ <toolbar:toolbaritem xlink:href=".uno:Italic" toolbar:helpid="helpid:10008" />
+ <toolbar:toolbaritem xlink:href=".uno:Underline" toolbar:helpid="helpid:10014" />
+ <toolbar:toolbaritem xlink:href=".uno:SuperScript" toolbar:helpid="helpid:20411" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SubScript" toolbar:helpid="helpid:20412" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:LeftPara" toolbar:helpid="helpid:10028" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:CenterPara" toolbar:helpid="helpid:10030" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:RightPara" toolbar:helpid="helpid:10029" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:JustifyPara" toolbar:helpid="helpid:10031" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ParaLeftToRight" toolbar:helpid="helpid:10950" toolbar:style="radio" />
+ <toolbar:toolbaritem xlink:href=".uno:ParaRightToLeft" toolbar:helpid="helpid:10951" toolbar:style="radio" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara1" toolbar:helpid="helpid:10034" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara15" toolbar:helpid="helpid:10035" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:SpacePara2" toolbar:helpid="helpid:10036" toolbar:style="radio" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DefaultNumbering" toolbar:helpid="helpid:20144" />
+ <toolbar:toolbaritem xlink:href=".uno:DefaultBullet" toolbar:helpid="helpid:20138" />
+ <toolbar:toolbaritem xlink:href=".uno:DecrementIndent" toolbar:helpid="helpid:10461" />
+ <toolbar:toolbaritem xlink:href=".uno:IncrementIndent" toolbar:helpid="helpid:10462" />
+ <toolbar:toolbaritem xlink:href=".uno:Grow" toolbar:helpid="helpid:20403" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:Shrink" toolbar:helpid="helpid:20404" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:FontColor" toolbar:helpid="helpid:10017" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackColor" toolbar:helpid="helpid:10489" toolbar:style="dropdown" />
+ <toolbar:toolbaritem xlink:href=".uno:BackgroundColor" toolbar:helpid="helpid:10185" toolbar:style="dropdown" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SelectAll" toolbar:helpid="helpid:5723" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:FontDialog" toolbar:helpid="helpid:10296" toolbar:visible="false" />
+ <toolbar:toolbaritem xlink:href=".uno:ParagraphDialog" toolbar:helpid="helpid:10297" toolbar:visible="false" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/toolbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/toolbar.xml
new file mode 100644
index 000000000000..7ff331e17224
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/toolbar.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <toolbar:toolbaritem xlink:href=".uno:InsertCtrl" toolbar:helpid="52822"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ShadowCursor" toolbar:helpid="22204"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Hyphenate" toolbar:helpid="20605"/>
+ <toolbar:toolbaritem xlink:href=".uno:ThesaurusDialog" toolbar:helpid="20603"/>
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Graphic" toolbar:helpid="20213"/>
+ <toolbar:toolbaritem xlink:href=".uno:BrowseView" toolbar:helpid="6313"/>
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/viewerbar.xml b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/viewerbar.xml
new file mode 100644
index 000000000000..d4d6a59d7ed5
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/modules/swxform/toolbar/viewerbar.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbar:toolbar PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "toolbar.dtd">
+<toolbar:toolbar xmlns:toolbar="http://openoffice.org/2001/toolbar" xmlns:xlink="http://www.w3.org/1999/xlink" toolbar:id="toolbar">
+ <toolbar:toolbaritem xlink:href=".uno:SaveAs" toolbar:helpid="helpid:5502" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:EditDoc" toolbar:helpid="helpid:6312" />
+ <toolbar:toolbaritem xlink:href=".uno:SendMail" toolbar:helpid="helpid:5331" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ExportDirectToPDF" toolbar:helpid="helpid:6674" />
+ <toolbar:toolbaritem xlink:href=".uno:PrintDefault" toolbar:helpid="helpid:5509" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Copy" toolbar:helpid="helpid:5711" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:SearchDialog" toolbar:helpid="helpid:5961" />
+ <toolbar:toolbaritem xlink:href=".uno:Navigator" toolbar:helpid="helpid:10366" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:Zoom" toolbar:helpid="helpid:10000" />
+</toolbar:toolbar> \ No newline at end of file
diff --git a/test/user-template/user/config/soffice.cfg/simpress/effects.xml b/test/user-template/user/config/soffice.cfg/simpress/effects.xml
new file mode 100644
index 000000000000..be341ef5e229
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/simpress/effects.xml
@@ -0,0 +1,2630 @@
+<?xml version="1.0"?>
+<anim:seq xmlns:office="urn:oasis:names:tc:openoffice:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:openoffice:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:openoffice:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:openoffice:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:openoffice:xmlns:drawing:1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:openoffice:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:openoffice:xmlns:datastyle:1.0" xmlns:pres="urn:oasis:names:tc:openoffice:xmlns:presentation:1.0" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="urn:oasis:names:tc:openoffice:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:openoffice:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:openoffice:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:openoffice:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:smil="http://www.w3.org/2001/SMIL20" xmlns:anim="urn:oasis:names:tc:openoffice:xmlns:animation:1.0" pres:node-type="main-sequence">
+
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-appear">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-venetian-blinds" pres:preset-sub-type="vertical">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="blindsWipe" smil:subtype="horizontal"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-venetian-blinds" pres:preset-sub-type="horizontal">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="blindsWipe" smil:subtype="vertical"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-box" pres:preset-sub-type="in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="irisWipe" smil:subtype="rectangle" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-box" pres:preset-sub-type="out">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="irisWipe" smil:subtype="rectangle"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-checkerboard" pres:preset-sub-type="across">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="checkerBoardWipe" smil:subtype="across"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-checkerboard" pres:preset-sub-type="downward">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="checkerBoardWipe" smil:subtype="down"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-circle" pres:preset-sub-type="in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="ellipseWipe" smil:subtype="horizontal" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-circle" pres:preset-sub-type="out">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="ellipseWipe" smil:subtype="horizontal"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in-slow" pres:preset-sub-type="from-bottom">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="y" smil:values="1+height/2;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in-slow" pres:preset-sub-type="from-left">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="x" smil:values="0-width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in-slow" pres:preset-sub-type="from-right">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="x" smil:values="1+width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in-slow" pres:preset-sub-type="from-top">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="y" smil:values="0-height/2;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-diamond" pres:preset-sub-type="in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="irisWipe" smil:subtype="diamond" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-diamond" pres:preset-sub-type="out">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="irisWipe" smil:subtype="diamond"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-dissolve-in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="dissolve"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-flash-once">
+ <anim:set smil:begin="0" smil:dur="1" smil:attributeName="visibility" smil:to="visible"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in" pres:preset-sub-type="from-bottom">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="1+height/2;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in" pres:preset-sub-type="from-left">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="0-width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in" pres:preset-sub-type="from-right">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="1+width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in" pres:preset-sub-type="from-top">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="0-height/2;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in" pres:preset-sub-type="from-bottom-left">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="0-width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="1+height/2;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in" pres:preset-sub-type="from-bottom-right">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="1+width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="1+height/2;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in" pres:preset-sub-type="from-top-left">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="0-width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="0-height/2;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fly-in" pres:preset-sub-type="from-top-right">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="1+width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="0-height/2;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-peek-in" pres:preset-sub-type="from-bottom">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="slideWipe" smil:subtype="fromBottom"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-peek-in" pres:preset-sub-type="from-left">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="slideWipe" smil:subtype="fromLeft"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-peek-in" pres:preset-sub-type="from-right">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="slideWipe" smil:subtype="fromRight"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-peek-in" pres:preset-sub-type="from-top">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="slideWipe" smil:subtype="fromTop"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-plus" pres:preset-sub-type="in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="fourBoxWipe" smil:subtype="cornersIn"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-plus" pres:preset-sub-type="out">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="fourBoxWipe" smil:subtype="cornersIn" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-random-bars" pres:preset-sub-type="vertical">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="randomBarWipe" smil:subtype="horizontal"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-random-bars" pres:preset-sub-type="horizontal">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="randomBarWipe" smil:subtype="vertical"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-random"/>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-split" pres:preset-sub-type="horizontal-in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="barnDoorWipe" smil:subtype="horizontal" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-split" pres:preset-sub-type="horizontal-out">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="barnDoorWipe" smil:subtype="horizontal"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-split" pres:preset-sub-type="vertical-in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="barnDoorWipe" smil:subtype="vertical" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-split" pres:preset-sub-type="vertical-out">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="barnDoorWipe" smil:subtype="vertical"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-diagonal-squares" pres:preset-sub-type="left-to-bottom">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-diagonal-squares" pres:preset-sub-type="left-to-top">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-diagonal-squares" pres:preset-sub-type="right-to-bottom">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-diagonal-squares" pres:preset-sub-type="right-to-top">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-wedge">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="fanWipe" smil:subtype="centerTop"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-clock-wipe" pres:preset-sub-type="clockwise">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="clockWipe" smil:subtype="clockwiseTwelve"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-clock-wipe" pres:preset-sub-type="counter-clockwise">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="clockWipe" smil:subtype="clockwiseTwelve" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Spokes" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-wheel" pres:preset-sub-type="1">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="pinWheelWipe" smil:subtype="oneBlade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Spokes" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-wheel" pres:preset-sub-type="2">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="pinWheelWipe" smil:subtype="twoBladeVertical"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Spokes" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-wheel" pres:preset-sub-type="3">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="pinWheelWipe" smil:subtype="threeBlade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Spokes" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-wheel" pres:preset-sub-type="4">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="pinWheelWipe" smil:subtype="fourBlade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Spokes" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-wheel" pres:preset-sub-type="8">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="pinWheelWipe" smil:subtype="eightBlade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+
+<!-- ooo-entrance-snake-wipe -->
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-snake-wipe" pres:preset-sub-type="from-top-left-horizontal">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="snakeWipe" smil:subtype="topLeftHorizontal"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-snake-wipe" pres:preset-sub-type="from-top-left-vertical">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="snakeWipe" smil:subtype="topLeftVertical"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-snake-wipe" pres:preset-sub-type="from-bottom-right-vertical">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="snakeWipe" smil:subtype="topLeftVertical" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-snake-wipe" pres:preset-sub-type="from-bottom-right-horizontal">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="snakeWipe" smil:subtype="topLeftHorizontal" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+
+<!-- ooo-entrance-spiral-wipe -->
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-spiral-wipe" pres:preset-sub-type="from-top-left-clockwise">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="spiralWipe" smil:subtype="topLeftClockwise"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-spiral-wipe" pres:preset-sub-type="from-top-right-counter-clockwise">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="spiralWipe" smil:subtype="topRightCounterClockwise"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-spiral-wipe" pres:preset-sub-type="from-center-clockwise">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="spiralWipe" smil:subtype="topLeftClockwise" smil:direction="reverse"/>/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-spiral-wipe" pres:preset-sub-type="from-center-counter-clockwise">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="spiralWipe" smil:subtype="topRightCounterClockwise" smil:direction="reverse"/>/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+
+<!-- ooo-entrance-wipe -->
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-wipe" pres:preset-sub-type="from-bottom">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="barWipe" smil:subtype="topToBottom" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-wipe" pres:preset-sub-type="from-left">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="barWipe" smil:subtype="leftToRight"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-wipe" pres:preset-sub-type="from-right">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="barWipe" smil:subtype="leftToRight" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-wipe" pres:preset-sub-type="from-top">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="barWipe" smil:subtype="topToBottom"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-expand">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="width" smil:values="width*0.70;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fade-in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fade-in-and-swivel" anim:iterate-type="by-letter" anim:iterate-interval="0.2s">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="fade" smil:subtype="crossfade"/>
+ <anim:animate smil:dur="2" smil:fill="hold" smil:attributeName="width" smil:values="0;1" smil:keyTimes="0;1" anim:formula="width*sin(2.5*pi*$)"/>
+ <anim:animate smil:dur="2" smil:fill="hold" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fade-in-and-zoom">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-ascend">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="y" smil:values="y+.1;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-center-revolve">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.1" smil:type="fade" smil:subtype="crossfade"/>
+ <anim:animate smil:dur="0.4" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.4" smil:fill="hold" smil:attributeName="y" smil:values="y+0.31;y+0.31" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.4" smil:dur="0.6" smil:fill="hold" smil:decelerate="0.5" smil:attributeName="x" smil:values="x;x+0.0242;x+0.0479;x+0.0704;x+0.0911;x+0.1096;x+0.1254;x+0.1381;x+0.1474;x+0.1531;x+0.1550;x+0.1531;x+0.1474;x+0.1381;x+0.1254;x+0.1096;x+0.0911;x+0.0704;x+0.0479;x+0.0242;x" smil:keyTimes="0;0.05;0.1;0.15;0.2;0.25;0.3;0.35;0.4;0.45;0.5;0.55;0.6;0.65;0.7;0.75;0.8;0.85;0.9;0.95;1"/>
+ <anim:animate smil:begin="0.4" smil:dur="0.6" smil:fill="hold" smil:decelerate="0.5" smil:attributeName="y" smil:values="y+0.31;y+0.308;y+0.3024;y+0.2931;y+0.2804;y+0.2646;y+0.2461;y+0.2253;y+0.2029;y+0.1792;y+0.155;y+0.1307;y+0.1071;y+0.0846;y+0.0639;y+0.0454;y+0.0296;y+0.0169;y+0.0076;y+0.0019;y" smil:keyTimes="0;0.05;0.1;0.15;0.2;0.25;0.3;0.35;0.4;0.45;0.5;0.55;0.6;0.65;0.7;0.75;0.8;0.85;0.9;0.95;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:preset-property="Color1;Color2" pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-colored-lettering" anim:iterate-type="by-letter" anim:iterate-interval="0.04s">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.08" smil:attributeName="color" smil:values="#333399;#009999" smil:keyTimes="0;0.5" smil:calcMode="discrete"/>
+ <anim:animate smil:dur="0.08" smil:attributeName="fill-color" smil:values="#333399;#009999" smil:keyTimes="0;0.5" smil:calcMode="discrete"/>
+ <anim:set smil:dur="0.08" smil:attributeName="fill" smil:to="solid"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:decelerate="1" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-compress">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="width" smil:values="width+.3;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-descend">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="y" smil:values="y-.1;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-ease-in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="x" smil:values="x-.2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="1" smil:type="barWipe" smil:subtype="leftToRight" smil:direction="reverse"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-turn-and-grow" anim:iterate-type="by-letter" anim:iterate-interval="0.05s">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="rotate" smil:values="90;0" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-rise-up">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.9" smil:fill="hold" smil:decelerate="1" smil:attributeName="y" smil:values="y+1;y-.03" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.9" smil:dur="0.1" smil:fill="hold" smil:accelerate="1" smil:attributeName="y" smil:values="y-.03;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:decelerate="1" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-spin-in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="rotate" smil:values="360;0" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-stretchy" pres:preset-sub-type="across">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-stretchy" pres:preset-sub-type="downward">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="width;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-stretchy" pres:preset-sub-type="from-bottom">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y+height/2;y" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="width;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-stretchy" pres:preset-sub-type="from-left">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x-width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-stretchy" pres:preset-sub-type="from-right">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x+width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-stretchy" pres:preset-sub-type="from-top">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y-height/2;y" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="width;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-stretchy" pres:preset-sub-type="from-top-right">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x+width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y-height/2;y" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-stretchy" pres:preset-sub-type="from-bottom-right">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x+width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y+height/2;y" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-stretchy" pres:preset-sub-type="from-top-left">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x-width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y-height/2;y" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-stretchy" pres:preset-sub-type="from-bottom-left">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x-width/2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y+height/2;y" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-unfold" anim:iterate-type="by-letter" anim:iterate-interval="0.1s">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="x" smil:values="x-.1;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-zoom" pres:preset-sub-type="in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-zoom" pres:preset-sub-type="in-from-screen-center">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="0.5;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="0.5;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-zoom" pres:preset-sub-type="in-slightly">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="2/3*width;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="2/3*height;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-zoom" pres:preset-sub-type="out">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="4*width;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="4*height;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-zoom" pres:preset-sub-type="out-from-screen-center">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="(6*min(max(width*height,.3),1)-7.4)/-.7*width;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="(6*min(max(width*height,.3),1)-7.4)/-.7*height;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="0.5;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="1+(6*min(max(width*height,.3),1)-7.4)/-.7*height/2;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-zoom" pres:preset-sub-type="out-slightly">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="4/3*width;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="4/3*height;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-boomerang">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:fill="hold" smil:decelerate="0.5" smil:attributeName="rotate" smil:values="-90;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:fill="hold" smil:decelerate="0.5" smil:attributeName="width" smil:values="width;width*.05" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.5" smil:dur="0.5" smil:fill="hold" smil:accelerate="0.5" smil:attributeName="width" smil:values="width*.05;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:fill="hold" smil:decelerate="0.5" smil:attributeName="x" smil:values="x+.4;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:fill="hold" smil:decelerate="0.5" smil:attributeName="y" smil:values="y-.2;y+.1" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.5" smil:dur="0.5" smil:fill="hold" smil:accelerate="0.5" smil:attributeName="y" smil:values="y+.1;y" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:begin="0" smil:dur="1" smil:decelerate="0.5" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-bounce">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:begin="0" smil:dur="0.58" smil:type="barWipe" smil:subtype="topToBottom"/>
+ <anim:animate smil:begin="0" smil:dur="1.822" smil:attributeName="x" smil:values="x-0.25;x" smil:keyTimes="0;1" smil:keySplines="0,0;0.14,0.36;0.43,0.73;0.71,0.91;1,1"/>
+ <anim:animate smil:begin="0" smil:dur="0.664" smil:attributeName="y" smil:values="0.5;1" smil:keyTimes="0;1" anim:formula="y-sin(pi*$)/3" smil:keySplines="0,0;0.25,0.07;0.5,0.2;0.75,0.467;1,1"/>
+ <anim:animate smil:begin="0.664" smil:dur="0.664" smil:attributeName="y" smil:values="0;1" smil:keyTimes="0;1" anim:formula="y-sin(pi*$)/9" smil:keySplines="0,0;0.125,0.2665;0.25,0.4;0.375,0.465;0.5,0.5;0.625,0.535;0.75,0.6;0.875,0.7335;1,1"/>
+ <anim:animate smil:begin="1.324" smil:dur="0.332" smil:attributeName="y" smil:values="0;1" smil:keyTimes="0;1" anim:formula="y-sin(pi*$)/27" smil:keySplines="0,0;0.125,0.2665;0.25,0.4;0.375,0.465;0.5,0.5;0.625,0.535;0.75,0.6;0.875,0.7335;1,1"/>
+ <anim:animate smil:begin="1.656" smil:dur="0.164" smil:attributeName="y" smil:values="0;1" smil:keyTimes="0;1" anim:formula="y-sin(pi*$)/81" smil:keySplines="0,0;0.125,0.2665;0.25,0.4;0.375,0.465;0.5,0.5;0.625,0.535;0.75,0.6;0.875,0.7335;1,1"/>
+ <anim:animateTransform smil:begin="0.65" smil:dur="0.026" smil:to="1,0.6" svg:type="scale"/>
+ <anim:animateTransform smil:begin="0.676" smil:dur="0.166" smil:decelerate="0.5" smil:to="1,1" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.312" smil:dur="0.026" smil:to="1,0.8" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.338" smil:dur="0.166" smil:decelerate="0.5" smil:to="1,1" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.642" smil:dur="0.026" smil:to="1,0.9" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.668" smil:dur="0.166" smil:decelerate="0.5" smil:to="1,1" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.808" smil:dur="0.026" smil:to="1,0.95" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.834" smil:dur="0.166" smil:decelerate="0.5" smil:to="1,1" svg:type="scale"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-movie-credits">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="15" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="15" smil:fill="hold" smil:attributeName="y" smil:values="y+1;y-1" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-curve-up">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animateTransform smil:begin="0" smil:dur="1" smil:fill="hold" smil:decelerate="0.5" smil:from="2.5,2.5" smil:to="1,1" svg:type="scale"/>
+ <anim:animateMotion smil:begin="0" smil:dur="1" smil:fill="hold" smil:decelerate="0.5" svg:path="M -0.46736 0.92887 C -0.37517 0.88508 -0.02552 0.75279 0.0908 0.66613 C 0.20747 0.57948 0.21649 0.50394 0.23177 0.40825 C 0.24705 0.31256 0.22118 0.15964 0.18264 0.09152 C 0.1441 0.02341 0.03802 0.0 0.0 0.0"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-flip" anim:iterate-type="by-letter" anim:iterate-interval="0.1s">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:fill="hold" smil:autoReverse="true" smil:attributeName="width" smil:by="(-width*2)"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:fill="hold" smil:decelerate="0.5" smil:autoReverse="true" smil:attributeName="x" smil:by="(width*0.50)"/>
+ <anim:animate smil:begin="0" smil:dur="1" smil:fill="hold" smil:attributeName="y" smil:from="(-height/2)" smil:to="(y)"/>
+ <anim:animateTransform smil:begin="0" smil:dur="1" smil:fill="hold" smil:by="360" svg:type="rotate"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-float">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.8" smil:decelerate="1" smil:type="fade" smil:subtype="crossfade"/>
+ <anim:animate smil:dur="0.8" smil:fill="hold" smil:decelerate="1" smil:attributeName="rotate" smil:values="-90;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.8" smil:fill="hold" smil:decelerate="1" smil:attributeName="x" smil:values="x+0.4;x-0.05" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.8" smil:fill="hold" smil:decelerate="1" smil:attributeName="y" smil:values="y-0.4;y+0.1" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.8" smil:dur="0.2" smil:fill="hold" smil:accelerate="1" smil:attributeName="x" smil:values="x-0.05;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.8" smil:dur="0.2" smil:fill="hold" smil:accelerate="1" smil:attributeName="y" smil:values="y+0.1;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:text-only="true" smil:begin="0" smil:fill="hold" smil:accelerate="1" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-fold">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="width*2.5;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="height*0.01;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="height+1;y" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="1" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-glide">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="width*0.05;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x-.2;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-breaks">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:begin="0" smil:dur="0.6" smil:fill="hold" smil:attributeName="x" smil:from="(-width/2)" smil:to="(x)"/>
+ <anim:animate smil:begin="0.6" smil:dur="0.2" smil:fill="hold" smil:decelerate="0.5" smil:autoReverse="true" smil:attributeName="skewX" smil:from="0" smil:to="-1"/>
+ <anim:animateTransform smil:begin="0.6" smil:dur="0.2" smil:fill="hold" smil:decelerate="1" smil:autoReverse="true" smil:from="1,1" smil:to="0.8,1" svg:type="scale"/>
+ <anim:animate smil:begin="0.6" smil:dur="0.2" smil:fill="hold" smil:decelerate="1" smil:autoReverse="true" smil:attributeName="x" smil:by="(height/3+width*0.1)" smil:additive="sum"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-magnify">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="0.77" smil:decelerate="1" smil:type="fade" smil:subtype="crossfade"/>
+ <anim:animateTransform smil:dur="0.77" smil:decelerate="1" smil:from="0.1,0.1" smil:to="2,4.5" svg:type="scale"/>
+ <anim:animateTransform smil:begin="0.77" smil:dur="1.23" smil:fill="hold" smil:accelerate="1" smil:from="2,4.5" smil:to="1,1" svg:type="scale"/>
+ <anim:set smil:dur="0.77" smil:fill="hold" smil:attributeName="x" smil:to="(0.5)"/>
+ <anim:animate smil:begin="0.77" smil:dur="1.23" smil:fill="hold" smil:accelerate="1" smil:attributeName="x" smil:from="(0.5)" smil:to="(x)"/>
+ <anim:set smil:dur="0.77" smil:fill="hold" smil:attributeName="y" smil:to="(y+0.4)"/>
+ <anim:animate smil:begin="0.77" smil:dur="1.23" smil:fill="hold" smil:accelerate="1" smil:attributeName="y" smil:from="(y+0.4)" smil:to="(y)"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-pinwheel">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:transitionFilter smil:dur="2" smil:type="fade" smil:subtype="crossfade"/>
+ <anim:animate smil:dur="2" smil:fill="hold" smil:attributeName="rotate" smil:values="720;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="2" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="2" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-sling">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="rotate" smil:values="90;90;90;0" smil:keyTimes="0;0.8;0.8;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="x" smil:values="-1;0.949999988079071;x" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-spiral-in">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="x" smil:values="0;1" smil:keyTimes="0;1" anim:formula="x+(cos(-2*pi*(1-$))*-x-sin(-2*pi*(1-$))*(1-y))*(1-$)"/>
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="y" smil:values="0;1" smil:keyTimes="0;1" anim:formula="y+(sin(-2*pi*(1-$))*-x+cos(-2*pi*(1-$))*(1-y))*(1-$)"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" smil:accelerate="0.5" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-falling-in" anim:iterate-type="by-letter" anim:iterate-interval="0.5s">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:set smil:begin="0" smil:dur="0.455" smil:fill="hold" smil:attributeName="rotate" smil:to="-45"/>
+ <anim:animate smil:begin="0.455" smil:dur="0.455" smil:fill="hold" smil:attributeName="rotate" smil:values="-45;45;0" smil:keyTimes="0;0.699;1"/>
+ <anim:animate smil:begin="0" smil:dur="0.455" smil:fill="hold" smil:attributeName="y" smil:values="y-1;y-(0.354*width-0.172*height)" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.455" smil:dur="0.156" smil:fill="hold" smil:decelerate="0.5" smil:autoReverse="true" smil:attributeName="y" smil:values="y-(0.354*width-0.172*height);y-(0.354*width-0.172*height)-height/2" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.864" smil:dur="0.136" smil:fill="hold" smil:attributeName="y" smil:values="y-(0.354*width-0.172*height);y" smil:keyTimes="0;1"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-swivel" pres:preset-sub-type="vertical">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="width" smil:values="0;1" smil:keyTimes="0;1" anim:formula="width*sin(2.5*pi*$)"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-swivel" pres:preset-sub-type="horizontal">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="width" smil:values="width;width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="5" smil:fill="hold" smil:attributeName="height" smil:values="0;1" smil:keyTimes="0;1" anim:formula="height*sin(2.5*pi*$)"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="1" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-thread">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="height/20;height/20;height" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="width+.3;width+.3;width" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x-.3;x;x" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-entrance-whip" anim:iterate-type="by-letter" anim:iterate-interval="0.05s">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="visible"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="x" smil:values="x;x+.1;x" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="height" smil:values="height/10;height+.01;height" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" smil:attributeName="width" smil:values="width/10;width+.01;width" smil:keyTimes="0;0.5;1"/>
+ <anim:transitionFilter smil:dur="0.5" smil:keySplines="0,0;0.5,1;1,1" smil:type="fade" smil:subtype="crossfade"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="FillColor;ColorStyle;Accelerate;Decelerate;AutoReverse" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-fill-color" pres:preset-sub-type="2">
+ <anim:animateColor smil:dur="2" smil:fill="hold" smil:attributeName="fill-color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="2" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="FontStyle" pres:text-only="true" smil:begin="0" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-font">
+ <anim:set smil:dur="indefinite" anim:sub-item="text" smil:attributeName="font-family" smil:to="Times New Roman"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="CharColor;ColorStyle;Accelerate;Decelerate;AutoReverse" pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-font-color" pres:preset-sub-type="2">
+ <anim:animateColor smil:dur="2" smil:fill="hold" anim:sub-item="text" smil:attributeName="color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="CharHeight" pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-font-size" pres:preset-sub-type="2">
+ <anim:animate smil:dur="2" smil:fill="hold" anim:sub-item="text" smil:attributeName="font-size" smil:to="1.5pt"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="CharDecoration" pres:text-only="true" smil:begin="0" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-font-style" pres:preset-sub-type="1">
+ <anim:set smil:dur="indefinite" anim:sub-item="text" smil:attributeName="font-style" smil:to="normal"/>
+ <anim:set smil:dur="indefinite" anim:sub-item="text" smil:attributeName="font-weight" smil:to="bold"/>
+ <anim:set smil:dur="indefinite" anim:sub-item="text" smil:attributeName="text-underline" smil:to="none"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="LineColor;ColorStyle;Accelerate;Decelerate;AutoReverse" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-line-color" pres:preset-sub-type="2">
+ <anim:animateColor smil:dur="2" smil:fill="hold" smil:attributeName="stroke-color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="2" smil:fill="hold" smil:attributeName="stroke" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Scale;Accelerate;Decelerate;AutoReverse" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-grow-and-shrink">
+ <anim:animateTransform smil:dur="2" smil:fill="hold" smil:by="1.5,1.5" svg:type="scale"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Rotate;Accelerate;Decelerate;AutoReverse" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-spin">
+ <anim:animateTransform smil:dur="2" smil:fill="hold" smil:by="360" svg:type="rotate"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Transparency" smil:begin="0" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-transparency">
+ <anim:set smil:dur="indefinite" smil:attributeName="opacity" smil:to="0.5"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-bold-flash">
+ <anim:animate smil:dur="2" smil:fill="hold" anim:sub-item="text" smil:attributeName="font-weight" smil:values="normal;bold;normal;normal" smil:keyTimes="0;0.5;0.6;1" smil:calcMode="discrete"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:preset-property="Color" pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-color-over-by-word" anim:iterate-type="by-letter" anim:iterate-interval="0.2s">
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:attributeName="color" smil:to="#333399"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:attributeName="fill-color" smil:to="#333399"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-reveal-underline" anim:iterate-type="by-letter" anim:iterate-interval="0.2s">
+ <anim:set smil:dur="0.5" smil:fill="hold" anim:sub-item="text" smil:attributeName="text-underline" smil:to="solid"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Color" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-color-blend">
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="fill-color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:preset-property="Color" pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-color-over-by-letter" anim:iterate-type="by-letter" anim:iterate-interval="0.05s">
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:autoReverse="true" smil:attributeName="color" smil:to="#333399"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:autoReverse="true" smil:attributeName="fill-color" smil:to="#333399"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:autoReverse="true" smil:attributeName="fill" smil:to="solid"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-complementary-color">
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="color" smil:by="hsl(120,0%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="fill-color" smil:by="hsl(120,0%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="stroke-color" smil:by="hsl(120,0%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-complementary-color-2">
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="color" smil:by="hsl(-120,0%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="fill-color" smil:by="hsl(-120,0%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="stroke-color" smil:by="hsl(-120,0%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-contrasting-color">
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="color" smil:by="hsl(180,0%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="fill-color" smil:by="hsl(180,0%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="stroke-color" smil:by="hsl(180,0%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-darken">
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="color" smil:by="hsl(0,-12%,-25%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="fill-color" smil:by="hsl(0,-12%,-25%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="stroke-color" smil:by="hsl(0,-12%,-25%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-desaturate">
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="color" smil:by="hsl(0,-70%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="fill-color" smil:by="hsl(0,-70%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="stroke-color" smil:by="hsl(0,-70%,0%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-flash-bulb">
+ <anim:transitionFilter smil:dur="0.5" smil:keySplines="0,0;0.2,0.5;0.8,0.5;1,0" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animateTransform smil:dur="0.25" smil:fill="hold" smil:autoReverse="true" smil:by="1.05,1.05" svg:type="scale"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-lighten">
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="color" smil:by="hsl(0,12%,25%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="fill-color" smil:by="hsl(0,12%,25%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" smil:attributeName="stroke-color" smil:by="hsl(0,12%,25%)" anim:color-interpolation="hsl" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Color" smil:begin="0" smil:fill="remove" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-vertical-highlight">
+ <anim:animateColor smil:begin="0" smil:dur="1.5" smil:fill="hold" smil:accelerate="0.5" smil:autoReverse="true" smil:attributeName="color" smil:to="#333399" smil:keySplines="0,0;0.33333,1;1,1" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:begin="0" smil:dur="1.5" smil:fill="hold" smil:accelerate="0.5" smil:autoReverse="true" smil:attributeName="fill-color" smil:to="#333399" smil:keySplines="0,0;0.33333,1;1,1" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="3" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ <anim:animateTransform smil:begin="0" smil:dur="1.5" smil:fill="hold" smil:accelerate="0.5" smil:autoReverse="true" smil:from="1,1" smil:to="1,1.4" smil:keySplines="0,0;0.33333,1;1,1" svg:type="scale"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Color" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-flicker">
+ <anim:animateColor smil:dur="0.25" smil:fill="hold" smil:autoReverse="true" smil:attributeName="color" smil:to="#ffffff" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.25" smil:fill="hold" smil:autoReverse="true" smil:attributeName="fill-color" smil:to="#ffffff" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="0.25" smil:fill="hold" smil:autoReverse="true" smil:attributeName="fill" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:preset-property="Color" pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-grow-with-color" anim:iterate-type="by-letter" anim:iterate-interval="0.05s">
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" anim:sub-item="text" smil:attributeName="color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.5" smil:fill="hold" anim:sub-item="text" smil:attributeName="fill-color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" anim:sub-item="text" smil:attributeName="fill" smil:to="solid"/>
+ <anim:animate smil:dur="0.5" smil:fill="hold" anim:sub-item="text" smil:attributeName="font-size" smil:to="1.5pt"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-shimmer" anim:iterate-type="by-letter" anim:iterate-interval="0.025s">
+ <anim:animateTransform smil:begin="0" smil:dur="0.25" smil:fill="hold" smil:autoReverse="true" smil:to="0.8,1" svg:type="scale"/>
+ <anim:animate smil:begin="0" smil:dur="0.25" smil:fill="hold" smil:autoReverse="true" smil:attributeName="x" smil:by="(width*0.10)"/>
+ <anim:animate smil:begin="0" smil:dur="0.25" smil:fill="hold" smil:autoReverse="true" smil:attributeName="y" smil:by="(-width*0.10)"/>
+ <anim:animateTransform smil:begin="0" smil:dur="0.25" smil:fill="hold" smil:autoReverse="true" smil:by="-8" svg:type="rotate"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Color" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-teeter">
+ <anim:animateColor smil:dur="0.1" smil:fill="hold" smil:attributeName="color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:dur="0.1" smil:fill="hold" smil:attributeName="fill-color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:dur="0.1" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ <anim:animateTransform smil:begin="0" smil:dur="0.1" smil:fill="hold" smil:by="2" svg:type="rotate"/>
+ <anim:animateTransform smil:begin="0.2" smil:dur="0.2" smil:fill="hold" smil:by="-4" svg:type="rotate"/>
+ <anim:animateTransform smil:begin="0.4" smil:dur="0.2" smil:fill="hold" smil:by="4" svg:type="rotate"/>
+ <anim:animateTransform smil:begin="0.6" smil:dur="0.2" smil:fill="hold" smil:by="-4" svg:type="rotate"/>
+ <anim:animateTransform smil:begin="0.8" smil:dur="0.2" smil:fill="hold" smil:by="2" svg:type="rotate"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Color" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-blast">
+ <anim:animateColor smil:begin="0.1" smil:dur="1.9" smil:fill="hold" smil:attributeName="color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:animateColor smil:begin="0.1" smil:dur="1.9" smil:fill="hold" smil:attributeName="fill-color" smil:to="#333399" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise"/>
+ <anim:set smil:begin="0.1" smil:dur="1.9" smil:fill="hold" smil:attributeName="fill" smil:to="solid"/>
+ <anim:animateTransform smil:begin="0" smil:dur="0.2" smil:fill="hold" smil:from="1,1" smil:to="1,0.05" svg:type="scale"/>
+ <anim:animateTransform smil:begin="0.2" smil:dur="0.2" smil:fill="hold" smil:from="1,0.05" smil:to="1.2,1.5" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.4" smil:dur="0.6" smil:fill="hold" smil:to="1.2,1.5" svg:type="scale"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-blink">
+ <anim:animate smil:dur="1" smil:fill="hold" smil:attributeName="visibility" smil:values="hidden;visible" smil:keyTimes="0;0.5" smil:calcMode="discrete"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-bold-reveal" anim:iterate-type="by-letter" anim:iterate-interval="0.025s">
+ <anim:set smil:dur="indefinite" anim:sub-item="text" smil:attributeName="font-weight" smil:to="bold"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Color" pres:text-only="true" smil:begin="0" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-style-emphasis">
+ <anim:set smil:dur="0.5" smil:fill="hold" anim:sub-item="text" smil:attributeName="color" smil:to="#333399"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" anim:sub-item="text" smil:attributeName="font-style" smil:to="italic"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" anim:sub-item="text" smil:attributeName="font-weight" smil:to="bold"/>
+ <anim:set smil:dur="0.5" smil:fill="hold" anim:sub-item="text" smil:attributeName="text-underline" smil:to="solid"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="emphasis" pres:preset-id="ooo-emphasis-wave" anim:iterate-type="by-letter" anim:iterate-interval="0.05s">
+ <anim:animateMotion smil:begin="0" smil:dur="0.25" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" smil:autoReverse="true" svg:path="M 0.0 0.0 L 0.0 -0.07213"/>
+ <anim:animateTransform smil:begin="0" smil:dur="0.125" smil:fill="hold" smil:by="25" svg:type="rotate"/>
+ <anim:animateTransform smil:begin="0.125" smil:dur="0.125" smil:fill="hold" smil:by="-25" svg:type="rotate"/>
+ <anim:animateTransform smil:begin="0.25" smil:dur="0.125" smil:fill="hold" smil:by="-25" svg:type="rotate"/>
+ <anim:animateTransform smil:begin="0.375" smil:dur="0.125" smil:fill="hold" smil:by="25" svg:type="rotate"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-venetian-blinds" pres:preset-sub-type="vertical">
+ <anim:transitionFilter smil:dur="0.5" smil:type="blindsWipe" smil:subtype="horizontal" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-venetian-blinds" pres:preset-sub-type="horizontal">
+ <anim:transitionFilter smil:dur="0.5" smil:type="blindsWipe" smil:subtype="vertical" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-box" pres:preset-sub-type="in">
+ <anim:transitionFilter smil:dur="0.5" smil:type="irisWipe" smil:subtype="rectangle" smil:mode="out" smil:direction="reverse"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-box" pres:preset-sub-type="out">
+ <anim:transitionFilter smil:dur="0.5" smil:type="irisWipe" smil:subtype="rectangle" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-checkerboard" pres:preset-sub-type="across">
+ <anim:transitionFilter smil:dur="0.5" smil:type="checkerBoardWipe" smil:subtype="across" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-checkerboard" pres:preset-sub-type="downward">
+ <anim:transitionFilter smil:dur="0.5" smil:type="checkerBoardWipe" smil:subtype="down" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-circle" pres:preset-sub-type="in">
+ <anim:transitionFilter smil:dur="2" smil:type="ellipseWipe" smil:subtype="horizontal" smil:mode="out" smil:direction="reverse"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-circle" pres:preset-sub-type="out">
+ <anim:transitionFilter smil:dur="2" smil:type="ellipseWipe" smil:subtype="horizontal" smil:mode="out"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-crawl-out" pres:preset-sub-type="from-bottom">
+ <anim:animate smil:dur="5" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="5" smil:attributeName="y" smil:values="y;1+height/2" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="4.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-crawl-out" pres:preset-sub-type="from-left">
+ <anim:animate smil:dur="5" smil:attributeName="x" smil:values="x;0-width/2" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="5" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="4.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-crawl-out" pres:preset-sub-type="from-right">
+ <anim:animate smil:dur="5" smil:attributeName="x" smil:values="x;1+width/2" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="5" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="4.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-crawl-out" pres:preset-sub-type="from-top">
+ <anim:animate smil:dur="5" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="5" smil:attributeName="y" smil:values="y;0-height/2" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="4.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-diamond" pres:preset-sub-type="in">
+ <anim:transitionFilter smil:dur="2" smil:type="irisWipe" smil:subtype="diamond" smil:mode="out" smil:direction="reverse"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-diamond" pres:preset-sub-type="out">
+ <anim:transitionFilter smil:dur="2" smil:type="irisWipe" smil:subtype="diamond" smil:mode="out"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-disappear">
+ <anim:set smil:begin="0" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-dissolve">
+ <anim:transitionFilter smil:dur="0.5" smil:type="dissolve" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-flash-once">
+ <anim:animate smil:dur="1" smil:attributeName="visibility" smil:values="hidden;visible" smil:keyTimes="0;0.5" smil:calcMode="discrete"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fly-out" pres:preset-sub-type="from-bottom">
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;1+height/2" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fly-out" pres:preset-sub-type="from-left">
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;0-width/2" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fly-out" pres:preset-sub-type="from-right">
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;1+width/2" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fly-out" pres:preset-sub-type="from-top">
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;0-height/2" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fly-out" pres:preset-sub-type="from-bottom-left">
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;0-width/2" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;1+height/2" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fly-out" pres:preset-sub-type="from-bottom-right">
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;1+width/2" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;1+height/2" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fly-out" pres:preset-sub-type="from-top-left">
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;0-width/2" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;0-height/2" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction;Accelerate;Decelerate" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fly-out" pres:preset-sub-type="from-top-right">
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;1+width/2" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;0-height/2" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-peek-out" pres:preset-sub-type="from-bottom">
+ <anim:transitionFilter smil:dur="0.5" smil:type="slideWipe" smil:subtype="fromBottom" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-peek-out" pres:preset-sub-type="from-left">
+ <anim:transitionFilter smil:dur="0.5" smil:type="slideWipe" smil:subtype="fromLeft" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-peek-out" pres:preset-sub-type="from-right">
+ <anim:transitionFilter smil:dur="0.5" smil:type="slideWipe" smil:subtype="fromRight" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-peek-out" pres:preset-sub-type="from-top">
+ <anim:transitionFilter smil:dur="0.5" smil:type="slideWipe" smil:subtype="fromTop" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-plus" pres:preset-sub-type="in">
+ <anim:transitionFilter smil:dur="2" smil:type="fourBoxWipe" smil:subtype="cornersIn" smil:mode="out"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-plus" pres:preset-sub-type="out">
+ <anim:transitionFilter smil:dur="2" smil:type="fourBoxWipe" smil:subtype="cornersIn" smil:mode="out" smil:direction="reverse"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-random-bars" pres:preset-sub-type="vertical">
+ <anim:transitionFilter smil:dur="0.5" smil:type="randomBarWipe" smil:subtype="horizontal" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-random-bars" pres:preset-sub-type="horizontal">
+ <anim:transitionFilter smil:dur="0.5" smil:type="randomBarWipe" smil:subtype="vertical" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-random"/>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-split" pres:preset-sub-type="horizontal-in">
+ <anim:transitionFilter smil:dur="0.5" smil:type="barnDoorWipe" smil:subtype="horizontal" smil:mode="out" smil:direction="reverse"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-split" pres:preset-sub-type="horizontal-out">
+ <anim:transitionFilter smil:dur="0.5" smil:type="barnDoorWipe" smil:subtype="horizontal" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-split" pres:preset-sub-type="vertical-in">
+ <anim:transitionFilter smil:dur="0.5" smil:type="barnDoorWipe" smil:subtype="vertical" smil:mode="out" smil:direction="reverse"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-split" pres:preset-sub-type="vertical-out">
+ <anim:transitionFilter smil:dur="0.5" smil:type="barnDoorWipe" smil:subtype="vertical" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-diagonal-squares" pres:preset-sub-type="left-to-bottom">
+ <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-diagonal-squares" pres:preset-sub-type="left-to-top">
+ <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalRight" smil:mode="out" smil:direction="reverse"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-diagonal-squares" pres:preset-sub-type="right-to-bottom">
+ <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-diagonal-squares" pres:preset-sub-type="right-to-top">
+ <anim:transitionFilter smil:dur="0.5" smil:type="waterfallWipe" smil:subtype="horizontalLeft" smil:mode="out" smil:direction="reverse"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-wedge">
+ <anim:transitionFilter smil:dur="2" smil:type="fanWipe" smil:subtype="centerTop" smil:mode="out"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Spokes" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-wheel" pres:preset-sub-type="1">
+ <anim:transitionFilter smil:dur="2" smil:type="pinWheelWipe" smil:subtype="oneBlade" smil:mode="out"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Spokes" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-wheel" pres:preset-sub-type="2">
+ <anim:transitionFilter smil:dur="2" smil:type="pinWheelWipe" smil:subtype="twoBladeVertical" smil:mode="out"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Spokes" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-wheel" pres:preset-sub-type="3">
+ <anim:transitionFilter smil:dur="2" smil:type="pinWheelWipe" smil:subtype="threeBlade" smil:mode="out"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Spokes" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-wheel" pres:preset-sub-type="4">
+ <anim:transitionFilter smil:dur="2" smil:type="pinWheelWipe" smil:subtype="fourBlade" smil:mode="out"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Spokes" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-wheel" pres:preset-sub-type="8">
+ <anim:transitionFilter smil:dur="2" smil:type="pinWheelWipe" smil:subtype="eightBlade" smil:mode="out"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-wipe" pres:preset-sub-type="from-bottom">
+ <anim:transitionFilter smil:dur="0.5" smil:type="barWipe" smil:subtype="topToBottom" smil:mode="out" smil:direction="reverse"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-wipe" pres:preset-sub-type="from-left">
+ <anim:transitionFilter smil:dur="0.5" smil:type="barWipe" smil:subtype="leftToRight" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-wipe" pres:preset-sub-type="from-right">
+ <anim:transitionFilter smil:dur="0.5" smil:type="barWipe" smil:subtype="leftToRight" smil:mode="out" smil:direction="reverse"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-wipe" pres:preset-sub-type="from-top">
+ <anim:transitionFilter smil:dur="0.5" smil:type="barWipe" smil:subtype="topToBottom" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-contract">
+ <anim:animate smil:dur="1" smil:attributeName="width" smil:values="width;width*0.70" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fade-out">
+ <anim:transitionFilter smil:dur="2" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fade-out-and-swivel" anim:iterate-type="by-letter" anim:iterate-interval="0.2s">
+ <anim:transitionFilter smil:dur="2" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animate smil:dur="2" smil:attributeName="width" smil:values="width;0.92*width;0.71*width;0.38*width;0;-0.38*width;-0.71*width;-0.92*width;-width;-0.92*width;-0.71*width;-0.38*width;0;0.38*width;0.71*width;0.92*width;width;0.92*width;0.71*width;0.38*width;0" smil:keyTimes="0;0.05;0.1;0.15;0.2;0.25;0.3;0.35;0.4;0.45;0.5;0.55;0.6;0.65;0.7;0.75;0.8;0.85;0.9;0.95;1"/>
+ <anim:animate smil:dur="2" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fade-out-and-zoom">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;0" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-ascend">
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animate smil:dur="1" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="y" smil:values="y;y-.1" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-center-revolve">
+ <anim:animate smil:begin="0" smil:dur="0.6" smil:decelerate="0.5" smil:attributeName="x" smil:values="x;x+0.0242;x+0.0479;x+0.0704;x+0.0911;x+0.1096;x+0.1254;x+0.1381;x+0.1474;x+0.1531;x+0.155;x+0.1531;x+0.1474;x+0.1381;x+0.1254;x+0.1096;x+0.0911;x+0.0704;x+0.0479;x+0.0242;x" smil:keyTimes="0;0.05;0.1;0.15;0.2;0.25;0.3;0.35;0.4;0.45;0.5;0.55;0.6;0.65;0.7;0.75;0.8;0.85;0.9;0.95;1"/>
+ <anim:animate smil:begin="0.6" smil:dur="0.4" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0" smil:dur="0.6" smil:decelerate="0.5" smil:attributeName="y" smil:values="y;y+0.0019;y+0.0076;y+0.0169;y+0.0296;y+0.0454;y+0.0639;y+0.0846;y+0.1071;y+0.1307;y+0.155;y+0.1792;y+0.2029;y+0.2253;y+0.2461;y+0.2646;y+0.2804;y+0.2931;y+0.3024;y+0.308;y+0.31" smil:keyTimes="0;0.05;0.1;0.15;0.2;0.25;0.3;0.35;0.4;0.45;0.5;0.55;0.6;0.65;0.7;0.75;0.8;0.85;0.9;0.95;1"/>
+ <anim:animate smil:begin="0.6" smil:dur="0.4" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:begin="0.9" smil:dur="0.1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-collapse" pres:preset-sub-type="across">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:preset-property="Color1;Color2" pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-colored-lettering" anim:iterate-type="by-letter" anim:iterate-interval="0.04s">
+ <anim:animate smil:dur="0.08" smil:attributeName="color" smil:values="#009999;#333399" smil:keyTimes="0;0.5" smil:calcMode="discrete"/>
+ <anim:animate smil:dur="0.08" smil:attributeName="fill-color" smil:values="#009999;#333399" smil:keyTimes="0;0.5" smil:calcMode="discrete"/>
+ <anim:set smil:dur="0.08" smil:attributeName="fill" smil:to="solid"/>
+ <anim:set smil:begin="0.079" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-descend">
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animate smil:dur="1" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="y" smil:values="y;y+.1" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-ease-out">
+ <anim:animate smil:dur="1" smil:attributeName="x" smil:values="x;x-.2" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-turn-and-grow" anim:iterate-type="by-letter" anim:iterate-interval="0.05s">
+ <anim:animate smil:dur="1" smil:attributeName="width" smil:values="width;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="height" smil:values="height;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="rotate" smil:values="0;90" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-sink-down">
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animate smil:dur="1" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.1" smil:decelerate="1" smil:attributeName="y" smil:values="y;y-.03" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.1" smil:dur="0.9" smil:accelerate="1" smil:attributeName="y" smil:values="y;y+1" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="1" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-spin-out">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="rotate" smil:values="0;360" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="1" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-stretchy">
+ <anim:animate smil:dur="1" smil:attributeName="width" smil:values="width;width+.3" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-unfold" anim:iterate-type="by-letter" anim:iterate-interval="0.1s">
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animate smil:dur="1" smil:attributeName="x" smil:values="x;x-.1" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-zoom" pres:preset-sub-type="out">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;0" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-zoom" pres:preset-sub-type="544">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;0.5" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;0.5" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-zoom" pres:preset-sub-type="out-slightly">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;2/3*width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;2/3*height" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-zoom" pres:preset-sub-type="in">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;4*width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;4*height" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-zoom" pres:preset-sub-type="20">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;(6*min(max(width*height,.3),1)-7.4)/-.7*width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;(6*min(max(width*height,.3),1)-7.4)/-.7*height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;1+(6*min(max(width*height,.3),1)-7.4)/-.7*height/2" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Zoom" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-zoom" pres:preset-sub-type="in-slightly">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;4/3*width" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;4/3*height" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-boomerang">
+ <anim:transitionFilter smil:begin="0" smil:dur="1" smil:accelerate="0.5" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:accelerate="0.5" smil:attributeName="y" smil:values="y;y+.1" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.5" smil:dur="0.5" smil:decelerate="0.5" smil:attributeName="y" smil:values="y;y-.1" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.5" smil:dur="0.5" smil:accelerate="0.5" smil:attributeName="x" smil:values="x;x+.4" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:accelerate="0.5" smil:attributeName="width" smil:values="width;width*.05" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.5" smil:dur="0.5" smil:decelerate="0.5" smil:attributeName="width" smil:values="width;width/.05" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.5" smil:dur="0.5" smil:accelerate="0.5" smil:attributeName="rotate" smil:values="0;-90" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-boomerang">
+ <anim:transitionFilter smil:begin="0" smil:dur="1" smil:accelerate="0.5" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:accelerate="0.5" smil:attributeName="y" smil:values="y;y+.1" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.5" smil:dur="0.5" smil:decelerate="0.5" smil:attributeName="y" smil:values="y;y-.1" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.5" smil:dur="0.5" smil:accelerate="0.5" smil:attributeName="x" smil:values="x;x+.4" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:accelerate="0.5" smil:attributeName="width" smil:values="width;width*.05" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.5" smil:dur="0.5" smil:decelerate="0.5" smil:attributeName="width" smil:values="width;width/.05" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.5" smil:dur="0.5" smil:accelerate="0.5" smil:attributeName="rotate" smil:values="0;-90" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-bounce">
+ <anim:transitionFilter smil:begin="1.82" smil:dur="0.18" smil:accelerate="0.5" smil:type="barWipe" smil:subtype="topToBottom" smil:mode="out"/>
+ <anim:animate smil:begin="0" smil:dur="1.822" smil:attributeName="x" smil:values="x;x+0.25" smil:keyTimes="0;1" smil:keySplines="0,0;0.14,0.31;0.43,0.73;0.71,0.91;1,1"/>
+ <anim:animate smil:begin="1.822" smil:dur="0.178" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0" smil:dur="0.664" smil:attributeName="y" smil:values="y;y+0.026;y+0.052;y+0.078;y+0.103;y+0.151;y+0.196;y+0.236;y+0.270;y+0.297;y+0.317;y+0.329;y+0.333" smil:keyTimes="0;0.05;0.1;0.15;0.2;0.3;0.4;0.5;0.6;0.7;0.8;0.9;1" smil:keySplines="0,0;0.25,0.07;0.5,0.2;0.75,0.467;1,1"/>
+ <anim:animate smil:begin="0.664" smil:dur="0.664" smil:attributeName="y" smil:values="y;y-0.034;y-0.065;y-0.090;y-0.106;y-0.111;y-0.106;y-0.090;y-0.065;y-0.034;y" smil:keyTimes="0;0.1;0.2;0.3;0.4;0.5;0.6;0.7;0.8;0.9;1" smil:keySplines="0,0;0.125,0.2665;0.25,0.4;0.375,0.465;0.5,0.5;0.625,0.535;0.75,0.6;0.875,0.7335;1,1"/>
+ <anim:animate smil:begin="1.324" smil:dur="0.332" smil:attributeName="y" smil:values="y;y-0.011;y-0.022;y-0.030;y-0.035;y-0.037;y-0.035;y-0.030;y-0.022;y-0.011;y" smil:keyTimes="0;0.1;0.2;0.3;0.4;0.5;0.6;0.7;0.8;0.9;1" smil:keySplines="0,0;0.125,0.2665;0.25,0.4;0.375,0.465;0.5,0.5;0.625,0.535;0.75,0.6;0.875,0.7335;1,1"/>
+ <anim:animate smil:begin="1.656" smil:dur="0.164" smil:attributeName="y" smil:values="y;y-0.004;y-0.007;y-0.010;y-0.012;y-0.0123;y-0.012;y-0.010;y-0.007;y-0.004;y" smil:keyTimes="0;0.1;0.2;0.3;0.4;0.5;0.6;0.7;0.8;0.9;1" smil:keySplines="0,0;0.125,0.2665;0.25,0.4;0.375,0.465;0.5,0.5;0.625,0.535;0.75,0.6;0.875,0.7335;1,1"/>
+ <anim:animate smil:begin="1.82" smil:dur="0.18" smil:accelerate="0.5" smil:attributeName="y" smil:values="y;y+height" smil:keyTimes="0;1"/>
+ <anim:animateTransform smil:begin="0.62" smil:dur="0.026" smil:to="1,0.6" svg:type="scale"/>
+ <anim:animateTransform smil:begin="0.646" smil:dur="0.166" smil:decelerate="0.5" smil:to="1,1" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.312" smil:dur="0.026" smil:to="1,0.8" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.338" smil:dur="0.166" smil:decelerate="0.5" smil:to="1,1" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.642" smil:dur="0.026" smil:to="1,0.9" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.668" smil:dur="0.166" smil:decelerate="0.5" smil:to="1,1" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.808" smil:dur="0.026" smil:to="1,0.95" svg:type="scale"/>
+ <anim:animateTransform smil:begin="1.834" smil:dur="0.166" smil:decelerate="0.5" smil:to="1,1" svg:type="scale"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-movie-credits">
+ <anim:animate smil:dur="15" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="15" smil:attributeName="y" smil:values="y-1;y+1" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="14.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-curve-down">
+ <anim:animateTransform smil:begin="0" smil:dur="1" smil:accelerate="0.5" smil:from="1,1" smil:to="2.5,2.5" svg:type="scale"/>
+ <anim:animateMotion smil:begin="0" smil:dur="1" smil:accelerate="0.5" svg:path="M 0.0000 0.0000 C 0.03802 0.0 0.1441 0.02341 0.1826 0.0915 C 0.22118 0.15964 0.24705 0.31256 0.2318 0.4083 C 0.21649 0.50394 0.20747 0.57948 0.0908 0.6661 C -0.02552 0.75279 -0.37517 0.88508 -0.4674 0.9289"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-flip" anim:iterate-type="by-letter" anim:iterate-interval="0.1s">
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:autoReverse="true" smil:attributeName="width" smil:from="(width)" smil:to="(-width*2)"/>
+ <anim:animate smil:begin="0" smil:dur="0.5" smil:decelerate="0.5" smil:autoReverse="true" smil:attributeName="x" smil:by="(width*0.50)"/>
+ <anim:animate smil:begin="0" smil:dur="1" smil:attributeName="y" smil:from="(y)" smil:to="(1+height/2)"/>
+ <anim:animateTransform smil:begin="0" smil:dur="1" smil:by="360" svg:type="rotate"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-float">
+ <anim:transitionFilter smil:begin="0.2" smil:dur="0.8" smil:accelerate="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animate smil:begin="0.2" smil:dur="0.8" smil:accelerate="1" smil:attributeName="rotate" smil:values="0;-90" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.2" smil:decelerate="1" smil:attributeName="x" smil:values="x;x-0.05" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.2" smil:decelerate="1" smil:attributeName="y" smil:values="y;y+0.1" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.2" smil:dur="0.8" smil:accelerate="1" smil:attributeName="x" smil:values="x;x+0.4+0.05" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0.2" smil:dur="0.8" smil:accelerate="1" smil:attributeName="y" smil:values="y;y-0.4-0.1" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:text-only="true" smil:begin="0" smil:fill="hold" smil:decelerate="1" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-fold">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;width*2.5" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;height*0.01" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;height+1" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:decelerate="1" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-glide">
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;width*0.05" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;x-.2" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="0.5" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-breaks">
+ <anim:animate smil:begin="0" smil:dur="1" smil:attributeName="x" smil:from="(x)" smil:to="(x+1)"/>
+ <anim:animate smil:begin="0" smil:dur="0.2" smil:accelerate="0.5" smil:attributeName="skewX" smil:from="0" smil:to="-1"/>
+ <anim:set smil:begin="0.2" smil:dur="0.8" smil:attributeName="skewX" smil:to="-1"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-magnify">
+ <anim:transitionFilter smil:begin="1.23" smil:dur="0.77" smil:accelerate="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animateTransform smil:begin="1.23" smil:dur="0.77" smil:accelerate="1" smil:from="2,4.5" smil:to="0.1,0.1" svg:type="scale"/>
+ <anim:animateTransform smil:dur="1.23" smil:decelerate="1" smil:from="1,1" smil:to="2,4.5" svg:type="scale"/>
+ <anim:animate smil:dur="1.23" smil:decelerate="1" smil:attributeName="x" smil:from="(x)" smil:to="(0.5)"/>
+ <anim:animate smil:begin="1.23" smil:dur="0.77" smil:attributeName="x" smil:from="(0.5)" smil:to="(0.5)"/>
+ <anim:animate smil:dur="1.23" smil:decelerate="1" smil:attributeName="y" smil:from="(y)" smil:to="(y+0.4)"/>
+ <anim:animate smil:begin="1.23" smil:dur="0.77" smil:attributeName="y" smil:from="(y)" smil:to="(y)"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-pinwheel">
+ <anim:transitionFilter smil:dur="2" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:animate smil:dur="2" smil:attributeName="rotate" smil:values="0;720" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="2" smil:attributeName="height" smil:values="height;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="2" smil:attributeName="width" smil:values="width;0" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="1.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-sling">
+ <anim:animate smil:dur="1" smil:attributeName="rotate" smil:values="0;90;90;90" smil:keyTimes="0;0.2;0.2;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="x" smil:values="x;0.949999988079071;-1" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:transitionFilter smil:dur="1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-spiral-out">
+ <anim:animate smil:dur="1" smil:attributeName="width" smil:values="width;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="height" smil:values="height;0" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="x" smil:values="x;x+-0.0500*(x*0.9511+(1-y)*0.3090);x+-0.1000*(x*0.8090+(1-y)*0.5878);x+-0.1500*(x*0.5878+(1-y)*0.8090);x+-0.2000*(x*0.3090+(1-y)*0.9511);x+-0.2500*(x*-0.0000+(1-y)*1.0000);x+-0.3000*(x*-0.3090+(1-y)*0.9511);x+-0.3500*(x*-0.5878+(1-y)*0.8090);x+-0.4000*(x*-0.8090+(1-y)*0.5878);x+-0.4500*(x*-0.9511+(1-y)*0.3090);x+-0.5000*(x*-1.0000+(1-y)*-0.0000);x+-0.5500*(x*-0.9511+(1-y)*-0.3090);x+-0.6000*(x*-0.8090+(1-y)*-0.5878);x+-0.6500*(x*-0.5878+(1-y)*-0.8090);x+-0.7000*(x*-0.3090+(1-y)*-0.9511);x+-0.7500*(x*0.0000+(1-y)*-1.0000);x+-0.8000*(x*0.3090+(1-y)*-0.9511);x+-0.8500*(x*0.5878+(1-y)*-0.8090);x+-0.9000*(x*0.8090+(1-y)*-0.5878);x+-0.9500*(x*0.9511+(1-y)*-0.3090);x+-1.0000*(x*1.0000+(1-y)*0.0000)" smil:keyTimes="0;0.05;0.1;0.15;0.2;0.25;0.3;0.35;0.4;0.45;0.5;0.55;0.6;0.65;0.7;0.75;0.8;0.85;0.9;0.95;1"/>
+ <anim:animate smil:dur="1" smil:attributeName="y" smil:values="y;y+-0.0500*(x*0.3090-(1-y)*0.9511);y+-0.1000*(x*0.5878-(1-y)*0.8090);y+-0.1500*(x*0.8090-(1-y)*0.5878);y+-0.2000*(x*0.9511-(1-y)*0.3090);y+-0.2500*(x*1.0000-(1-y)*-0.0000);y+-0.3000*(x*0.9511-(1-y)*-0.3090);y+-0.3500*(x*0.8090-(1-y)*-0.5878);y+-0.4000*(x*0.5878-(1-y)*-0.8090);y+-0.4500*(x*0.3090-(1-y)*-0.9511);y+-0.5000*(x*-0.0000-(1-y)*-1.0000);y+-0.5500*(x*-0.3090-(1-y)*-0.9511);y+-0.6000*(x*-0.5878-(1-y)*-0.8090);y+-0.6500*(x*-0.8090-(1-y)*-0.5878);y+-0.7000*(x*-0.9511-(1-y)*-0.3090);y+-0.7500*(x*-1.0000-(1-y)*0.0000);y+-0.8000*(x*-0.9511-(1-y)*0.3090);y+-0.8500*(x*-0.8090-(1-y)*0.5878);y+-0.9000*(x*-0.5878-(1-y)*0.8090);y+-0.9500*(x*-0.3090-(1-y)*0.9511);y+-1.0000*(x*0.0000-(1-y)*1.0000)" smil:keyTimes="0;0.05;0.1;0.15;0.2;0.25;0.3;0.35;0.4;0.45;0.5;0.55;0.6;0.65;0.7;0.75;0.8;0.85;0.9;0.95;1"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" smil:accelerate="0.5" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-swish" anim:iterate-type="by-letter" anim:iterate-interval="0.5s">
+ <anim:animate smil:begin="0" smil:dur="1" smil:attributeName="rotate" smil:values="0;45" smil:keyTimes="0;1"/>
+ <anim:animate smil:begin="0" smil:dur="1" smil:attributeName="y" smil:values="y;y+1" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par pres:preset-property="Direction" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-swivel" pres:preset-sub-type="vertical">
+ <anim:animate smil:dur="5" smil:attributeName="height" smil:values="height;height" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="5" smil:attributeName="width" smil:values="width;0.92*width;0.71*width;0.38*width;0;-0.38*width;-0.71*width;-0.92*width;-width;-0.92*width;-0.71*width;-0.38*width;0;0.38*width;0.71*width;0.92*width;width;0.92*width;0.71*width;0.38*width;0" smil:keyTimes="0;0.05;0.1;0.15;0.2;0.25;0.3;0.35;0.4;0.45;0.5;0.55;0.6;0.65;0.7;0.75;0.8;0.85;0.9;0.95;1"/>
+ <anim:set smil:begin="4.999" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:decelerate="1" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-thread">
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;height/20;height/20" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;width+.3;width+.3" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;x;x-.3" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:iterate pres:text-only="true" smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="exit" pres:preset-id="ooo-exit-whip" anim:iterate-type="by-letter" anim:iterate-interval="0.05s">
+ <anim:animate smil:dur="0.5" smil:attributeName="x" smil:values="x;x+.1;x" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="y" smil:values="y;y" smil:keyTimes="0;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="height" smil:values="height;height+.01;height/10" smil:keyTimes="0;0.5;1"/>
+ <anim:animate smil:dur="0.5" smil:attributeName="width" smil:values="width;width+.01;width/10" smil:keyTimes="0;0.5;1"/>
+ <anim:transitionFilter smil:dur="0.5" smil:keySplines="0,0;0.5,0;1,1" smil:type="fade" smil:subtype="crossfade" smil:mode="out"/>
+ <anim:set smil:begin="0.499" smil:dur="0.001" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden"/>
+ </anim:iterate>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-4-point-star">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.091 -0.0453 L 0.125 -0.16655 L 0.158 -0.0453 L 0.249 0 L 0.158 0.0453 L 0.125 0.16655 L 0.091 0.0453 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-5-point-star">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.029 0.12125 L 0.125 0.12125 L 0.048 0.19586 L 0.077 0.31711 L 0 0.2425 L -0.077 0.31711 L -0.048 0.19586 L -0.125 0.12125 L -0.029 0.12125 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-6-point-star">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.036 0.08261 L 0.108 0.08261 L 0.072 0.16655 L 0.108 0.24916 L 0.036 0.24916 L 0 0.3331 L -0.036 0.24916 L -0.108 0.24916 L -0.072 0.16655 L -0.108 0.08261 L -0.036 0.08261 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-8-point-star">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.052 0 L 0.089 -0.0493 L 0.125 0 L 0.177 0 L 0.177 0.06929 L 0.213 0.11858 L 0.177 0.16655 L 0.177 0.23584 L 0.125 0.23584 L 0.089 0.2838 L 0.052 0.23584 L 0 0.23584 L 0 0.16655 L -0.037 0.11858 L 0 0.06929 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-circle">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.069 0 0.125 0.07461 0.125 0.16655 C 0.125 0.25849 0.069 0.3331 0 0.3331 C -0.069 0.3331 -0.125 0.25849 -0.125 0.16655 C -0.125 0.07461 -0.069 0 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-crescent-moon">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C -0.014 -0.00666 -0.029 -0.01199 -0.044 -0.01199 C -0.114 -0.01199 -0.169 0.06396 -0.169 0.15589 C -0.169 0.2465 -0.114 0.32111 -0.044 0.32111 C -0.029 0.32111 -0.014 0.31711 0 0.31045 C -0.047 0.28647 -0.08 0.22651 -0.08 0.15589 C -0.08 0.08394 -0.047 0.02398 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-diamond">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.125 -0.11192 L 0.25 0 L 0.125 0.11192 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-equal-triangle">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.125 0.2878 L -0.125 0.2878 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-oval">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.03 -0.05063 0.075 -0.08261 0.125 -0.08261 C 0.175 -0.08261 0.22 -0.05063 0.25 0 C 0.22 0.05063 0.175 0.08261 0.125 0.08261 C 0.075 0.08261 0.03 0.05063 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-heart">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.012 -0.02398 0.033 -0.05863 0.058 -0.05863 C 0.095 -0.05863 0.125 -0.02265 0.125 0.02265 C 0.125 0.03731 0.122 0.05063 0.116 0.06262 C 0.117 0.06262 0 0.2425 0 0.24383 C 0 0.2425 -0.117 0.06262 -0.116 0.06262 C -0.122 0.05063 -0.125 0.03731 -0.125 0.02265 C -0.125 -0.02265 -0.095 -0.05863 -0.057 -0.05863 C -0.033 -0.05863 -0.012 -0.02398 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-hexagon">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.125 0 L 0.188 0.14523 L 0.125 0.28913 L 0 0.28913 L -0.063 0.14523 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-octagon">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.073 -0.09727 L 0.177 -0.09727 L 0.25 0 L 0.25 0.13857 L 0.177 0.23584 L 0.073 0.23584 L 0 0.13857 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-parallelogram">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.178 0 L 0.25 0.16122 L 0.072 0.16122 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-pentagon">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.125 0.12125 L 0.077 0.31711 L -0.077 0.31711 L -0.125 0.12125 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-right-triangle">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0 -0.19586 L 0.25 0 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-square">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.25 0 L 0.25 0.3331 L 0 0.3331 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-teardrop">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.001 0.0453 0.011 0.08661 0.028 0.11325 C 0.028 0.11459 0.055 0.15056 0.055 0.14923 C 0.07 0.16922 0.079 0.1972 0.079 0.22651 C 0.079 0.28514 0.044 0.33177 0 0.3331 C -0.044 0.33177 -0.079 0.28514 -0.079 0.22651 C -0.079 0.1972 -0.07 0.16922 -0.055 0.14923 C -0.055 0.15056 -0.028 0.11459 -0.028 0.11325 C -0.011 0.08661 -0.001 0.0453 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-trapezoid">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.167 0 L 0.21 0.22251 L -0.04 0.22251 L 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-arc-down">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.067 0.0533 C 0.081 0.06529 0.102 0.07195 0.124 0.07195 C 0.149 0.07195 0.169 0.06529 0.183 0.0533 L 0.25 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-arc-left">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L -0.04 0.08927 C -0.049 0.10793 -0.054 0.13591 -0.054 0.16522 C -0.054 0.19853 -0.049 0.22518 -0.04 0.24383 L 0 0.3331"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-arc-right">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.04 0.08927 C 0.049 0.10793 0.054 0.13591 0.054 0.16522 C 0.054 0.19853 0.049 0.22518 0.04 0.24383 L 0 0.3331"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-arc-up">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.067 -0.0533 C 0.081 -0.06529 0.102 -0.07195 0.124 -0.07195 C 0.149 -0.07195 0.169 -0.06529 0.183 -0.0533 L 0.25 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-bounce-left">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 c -0.004 -0.01066 -0.018 -0.02132 -0.023 -0.02132 c -0.031 0 -0.063 0.16655 -0.063 0.3331 c 0 -0.08394 -0.016 -0.16655 -0.031 -0.16655 c -0.016 0 -0.031 0.08394 -0.031 0.16655 c 0 -0.0413 -0.008 -0.08394 -0.016 -0.08394 c -0.008 0 -0.016 0.0413 -0.016 0.08394 c 0 -0.02132 -0.004 -0.0413 -0.008 -0.0413 c -0.004 0 -0.008 0.02132 -0.008 0.0413 c 0 -0.01066 -0.002 -0.02132 -0.004 -0.02132 c -0.001 0 -0.004 0.01066 -0.004 0.02132 c 0 -0.00533 -0.001 -0.01066 -0.002 -0.01066 c 0 -0.00133 -0.002 0.00533 -0.002 0.01066 c 0 -0.00266 0 -0.00533 -0.001 -0.00533 c 0 0.00133 -0.001 0.00266 -0.001 0.00533 c 0 -0.00133 0 -0.00266 0 -0.004 c -0.001 0 -0.001 0.00133 -0.001 0.00266 c -0.001 0 -0.001 -0.00133 -0.001 -0.00266 c -0.001 0 -0.001 0.00133 -0.001 0.00266"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-bounce-right">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 c 0.004 -0.01066 0.018 -0.02132 0.023 -0.02132 c 0.031 0 0.063 0.16655 0.063 0.3331 c 0 -0.08394 0.016 -0.16655 0.031 -0.16655 c 0.016 0 0.031 0.08394 0.031 0.16655 c 0 -0.0413 0.008 -0.08394 0.016 -0.08394 c 0.008 0 0.016 0.0413 0.016 0.08394 c 0 -0.02132 0.004 -0.0413 0.008 -0.0413 c 0.004 0 0.008 0.02132 0.008 0.0413 c 0 -0.01066 0.002 -0.02132 0.004 -0.02132 c 0.001 0 0.004 0.01066 0.004 0.02132 c 0 -0.00533 0.001 -0.01066 0.002 -0.01066 c 0 0.00133 0.002 0.00533 0.002 0.01066 c 0 -0.00266 0 -0.00533 0.001 -0.00533 c 0 0.00133 0.001 0.00266 0.001 0.00533 c 0 -0.00133 0 -0.00266 0 -0.004 c 0.001 0 0.001 0.00133 0.001 0.00266 c 0.001 0 0.001 -0.00133 0.001 -0.00266 c 0.001 0 0.001 0.00133 0.001 0.00266"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-curvy-left">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.008 0.01066 0.017 0.02132 0.021 0.03464 C 0.025 0.0493 0.027 0.06662 0.029 0.08394 C 0.031 0.10126 0.029 0.11592 0.027 0.13191 C 0.025 0.14656 0.022 0.16255 0.015 0.17588 C 0.009 0.1892 -0.001 0.19986 -0.012 0.20786 C -0.022 0.21585 -0.034 0.22118 -0.046 0.22384 C -0.058 0.22651 -0.07 0.22651 -0.081 0.22384 C -0.093 0.22118 -0.104 0.21452 -0.113 0.20386 C -0.122 0.19453 -0.13 0.18254 -0.134 0.16788 C -0.139 0.15456 -0.141 0.13591 -0.141 0.12125 C -0.142 0.10659 -0.141 0.08927 -0.136 0.07461 C -0.131 0.06129 -0.122 0.05063 -0.11 0.0453 C -0.098 0.0413 -0.086 0.04663 -0.078 0.05596 C -0.071 0.06529 -0.066 0.07994 -0.065 0.09727 C -0.065 0.11459 -0.066 0.13058 -0.071 0.1439 C -0.076 0.15722 -0.075 0.15989 -0.095 0.17721 C -0.113 0.19586 -0.131 0.19053 -0.142 0.19187 C -0.153 0.19187 -0.162 0.18654 -0.173 0.18121 C -0.185 0.17455 -0.195 0.16255 -0.202 0.15189 C -0.209 0.14124 -0.212 0.12791 -0.216 0.10659 C -0.219 0.08527 -0.219 0.07461 -0.219 0.05863 C -0.219 0.04264 -0.219 0.02665 -0.219 0.01066"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-curvy-right">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C -0.008 0.01066 -0.017 0.02132 -0.021 0.03464 C -0.025 0.0493 -0.027 0.06662 -0.029 0.08394 C -0.031 0.10126 -0.029 0.11592 -0.027 0.13191 C -0.025 0.14656 -0.022 0.16255 -0.015 0.17588 C -0.009 0.1892 0.001 0.19986 0.012 0.20786 C 0.022 0.21585 0.034 0.22118 0.046 0.22384 C 0.058 0.22651 0.07 0.22651 0.081 0.22384 C 0.093 0.22118 0.104 0.21452 0.113 0.20386 C 0.122 0.19453 0.13 0.18254 0.134 0.16788 C 0.139 0.15456 0.141 0.13591 0.141 0.12125 C 0.142 0.10659 0.141 0.08927 0.136 0.07461 C 0.131 0.06129 0.122 0.05063 0.11 0.0453 C 0.098 0.0413 0.086 0.04663 0.078 0.05596 C 0.071 0.06529 0.066 0.07994 0.065 0.09727 C 0.065 0.11459 0.066 0.13058 0.071 0.1439 C 0.076 0.15722 0.075 0.15989 0.095 0.17721 C 0.113 0.19586 0.131 0.19053 0.142 0.19187 C 0.153 0.19187 0.162 0.18654 0.173 0.18121 C 0.185 0.17455 0.195 0.16255 0.202 0.15189 C 0.209 0.14124 0.212 0.12791 0.216 0.10659 C 0.219 0.08527 0.219 0.07461 0.219 0.05863 C 0.219 0.04264 0.219 0.02665 0.219 0.01066"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-decaying-wave">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.002 0.07062 0.007 0.16922 0.025 0.16788 C 0.051 0.16788 0.053 -0.16255 0.084 -0.16389 C 0.112 -0.16389 0.097 0.12525 0.124 0.12391 C 0.152 0.12391 0.137 -0.08527 0.167 -0.08527 C 0.194 -0.08527 0.179 0.05596 0.203 0.05596 C 0.226 0.05596 0.214 -0.05196 0.235 -0.05196 C 0.247 -0.05196 0.248 -0.02265 0.249 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-diagonal-down-right">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.25 0.3331"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-diagonal-up-right">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.25 -0.3331"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-down">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0 0.3331"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-funnel">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C -0.001 0.03331 0.06 0.06262 0.137 0.06396 C 0.198 0.06662 0.248 0.05063 0.249 0.03065 C 0.249 0.01066 0.2 -0.00799 0.138 -0.00933 C 0.107 -0.00933 0.079 -0.00666 0.059 0 C 0.03 0.00933 0.013 0.02398 0.013 0.0413 C 0.013 0.05063 0.018 0.05996 0.027 0.06795 C 0.048 0.08527 0.089 0.09727 0.136 0.0986 C 0.191 0.10126 0.236 0.08661 0.236 0.06929 C 0.237 0.05063 0.192 0.03464 0.137 0.03198 C 0.109 0.03198 0.084 0.03464 0.065 0.03997 C 0.04 0.0493 0.024 0.06396 0.024 0.07861 C 0.024 0.08661 0.029 0.0946 0.037 0.1026 C 0.056 0.11725 0.092 0.12924 0.135 0.13058 C 0.185 0.13191 0.225 0.11858 0.225 0.1026 C 0.226 0.08661 0.186 0.07195 0.136 0.07062 C 0.111 0.06929 0.088 0.07195 0.071 0.07728 C 0.048 0.08527 0.035 0.09727 0.035 0.11192 C 0.035 0.11858 0.039 0.12658 0.046 0.13324 C 0.063 0.14656 0.096 0.15722 0.134 0.15856 C 0.179 0.15856 0.215 0.1479 0.215 0.13324 C 0.215 0.11858 0.18 0.10526 0.135 0.10393 C 0.113 0.10393 0.092 0.10659 0.077 0.11059 C 0.056 0.11725 0.044 0.12924 0.043 0.14124 C 0.043 0.1479 0.048 0.15456 0.054 0.15989 C 0.069 0.17321 0.099 0.18254 0.133 0.18254 C 0.173 0.18387 0.206 0.17455 0.206 0.16122 C 0.207 0.1479 0.174 0.13591 0.134 0.13457 C 0.114 0.13457 0.095 0.13591 0.082 0.14124 C 0.063 0.14656 0.052 0.15722 0.052 0.16788 C 0.052 0.17455 0.055 0.17988 0.061 0.1852 C 0.075 0.1972 0.101 0.20519 0.132 0.20652 C 0.169 0.20652 0.198 0.19853 0.198 0.18654 C 0.199 0.17455 0.17 0.16389 0.133 0.16255 C 0.115 0.16255 0.099 0.16389 0.087 0.16788 C 0.07 0.17321 0.06 0.18254 0.06 0.1932 C 0.06 0.19853 0.063 0.20253 0.068 0.20786 C 0.08 0.21851 0.104 0.22518 0.132 0.22651 C 0.165 0.22784 0.191 0.21985 0.191 0.20786 C 0.191 0.19853 0.166 0.18787 0.133 0.18787 C 0.116 0.18654 0.101 0.1892 0.09 0.19187 C 0.075 0.1972 0.066 0.20519 0.066 0.21452 C 0.066 0.21985 0.069 0.22384 0.074 0.22784 C 0.085 0.23717 0.107 0.24383 0.131 0.24516 C 0.161 0.2465 0.185 0.2385 0.185 0.22917 C 0.185 0.21851 0.161 0.21052 0.132 0.20919 C 0.118 0.20919 0.104 0.21052 0.094 0.21452 C 0.08 0.21851 0.072 0.22518 0.072 0.2345 C 0.072 0.2385 0.075 0.2425 0.079 0.2465 C 0.089 0.25449 0.108 0.26115 0.131 0.26115 C 0.157 0.26248 0.179 0.25582 0.179 0.2465 C 0.179 0.2385 0.158 0.23051 0.131 0.23051 C 0.119 0.22917 0.106 0.23051 0.097 0.23317 C 0.085 0.2385 0.078 0.24516 0.078 0.25183 C 0.078 0.25582 0.08 0.25982 0.084 0.26248 C 0.093 0.27048 0.11 0.27581 0.131 0.27714 C 0.155 0.27714 0.174 0.27048 0.174 0.26382 C 0.174 0.25582 0.155 0.24783 0.131 0.24783 C 0.119 0.24783 0.108 0.24916 0.101 0.25183 C 0.089 0.25449 0.083 0.26115 0.083 0.26781 C 0.083 0.27048 0.085 0.27448 0.088 0.27714 C 0.096 0.28514 0.112 0.28913 0.13 0.29046 C 0.152 0.29046 0.169 0.28514 0.169 0.27847 C 0.169 0.27048 0.152 0.26515 0.131 0.26382 C 0.12 0.26382 0.11 0.26515 0.103 0.26781 C 0.093 0.27048 0.087 0.27581 0.087 0.28247 C 0.087 0.28514 0.089 0.2878 0.092 0.29046"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-heartbeat">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.017 0 C 0.025 0 0.034 -0.01865 0.042 -0.02132 C 0.048 -0.02132 0.059 -0.004 0.064 -0.004 C 0.071 -0.004 0.078 -0.00933 0.091 -0.00933 L 0.1 -0.21585 L 0.11 0.03331 L 0.122 0 L 0.132 -0.00933 L 0.156 -0.00133 C 0.167 -0.00533 0.176 -0.02265 0.187 -0.02931 C 0.191 -0.03065 0.2 -0.03198 0.206 -0.02931 C 0.212 -0.02665 0.217 -0.00799 0.219 -0.00666 C 0.222 -0.00133 0.229 -0.00666 0.233 -0.004 L 0.239 0 L 0.25 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-left">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L -0.25 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-right">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.25 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-s-curve-1">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0 -0.04663 0.028 -0.08261 0.062 -0.08261 C 0.097 -0.08261 0.125 -0.04663 0.125 0 C 0.125 0.04663 0.153 0.08261 0.188 0.08261 C 0.222 0.08261 0.25 0.04663 0.25 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-s-curve-2">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0 0.04663 0.028 0.08261 0.062 0.08261 C 0.097 0.08261 0.125 0.04663 0.125 0 C 0.125 -0.04663 0.153 -0.08261 0.188 -0.08261 C 0.222 -0.08261 0.25 -0.04663 0.25 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-sine-wave">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.003 -0.02532 0.007 -0.0493 0.015 -0.0493 C 0.024 -0.0493 0.027 -0.02532 0.03 0 C 0.034 0.02798 0.037 0.05596 0.047 0.05596 C 0.056 0.05596 0.059 0.02798 0.063 0 C 0.065 -0.02532 0.069 -0.0493 0.078 -0.0493 C 0.086 -0.0493 0.09 -0.02532 0.093 0 C 0.096 0.02798 0.1 0.05596 0.109 0.05596 C 0.118 0.05596 0.125 0 0.125 0 C 0.128 -0.02532 0.131 -0.0493 0.14 -0.0493 C 0.149 -0.0493 0.152 -0.02532 0.155 0 C 0.159 0.02798 0.162 0.05596 0.172 0.05596 C 0.181 0.05596 0.184 0.02798 0.187 0 C 0.191 -0.02532 0.194 -0.0493 0.203 -0.0493 C 0.211 -0.0493 0.215 -0.02532 0.218 0 C 0.221 0.02798 0.225 0.05596 0.234 0.05596 C 0.243 0.05596 0.246 0.02798 0.25 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-spiral-left">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.004 -0.08927 -0.046 -0.16655 -0.113 -0.17188 C -0.177 -0.17854 -0.237 -0.11858 -0.241 -0.03198 C -0.246 0.04797 -0.204 0.12258 -0.144 0.12791 C -0.089 0.13191 -0.037 0.08261 -0.033 0.00799 C -0.029 -0.05996 -0.064 -0.12391 -0.115 -0.12924 C -0.162 -0.13324 -0.206 -0.09194 -0.209 -0.02931 C -0.212 0.02665 -0.184 0.08128 -0.142 0.08394 C -0.104 0.08794 -0.068 0.05596 -0.065 0.00533 C -0.063 -0.03997 -0.084 -0.08394 -0.117 -0.08661 C -0.146 -0.08927 -0.175 -0.06529 -0.177 -0.02665 C -0.179 0.00666 -0.164 0.03864 -0.14 0.0413 C -0.12 0.04397 -0.099 0.02931 -0.098 0.00266 C -0.096 -0.01865 -0.104 -0.0413 -0.119 -0.04397 C -0.131 -0.04397 -0.143 -0.03864 -0.145 -0.02398 C -0.146 -0.01466 -0.144 -0.00533 -0.138 -0.00133 C -0.135 0 -0.133 0 -0.13 -0.00133"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-spiral-right">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C -0.004 -0.08927 0.046 -0.16655 0.113 -0.17188 C 0.177 -0.17854 0.237 -0.11858 0.241 -0.03198 C 0.246 0.04797 0.204 0.12258 0.144 0.12791 C 0.089 0.13191 0.037 0.08261 0.033 0.00799 C 0.029 -0.05996 0.064 -0.12391 0.115 -0.12924 C 0.162 -0.13324 0.206 -0.09194 0.209 -0.02931 C 0.212 0.02665 0.184 0.08128 0.142 0.08394 C 0.104 0.08794 0.068 0.05596 0.065 0.00533 C 0.063 -0.03997 0.084 -0.08394 0.117 -0.08661 C 0.146 -0.08927 0.175 -0.06529 0.177 -0.02665 C 0.179 0.00666 0.164 0.03864 0.14 0.0413 C 0.12 0.04397 0.099 0.02931 0.098 0.00266 C 0.096 -0.01865 0.104 -0.0413 0.119 -0.04397 C 0.131 -0.04397 0.143 -0.03864 0.145 -0.02398 C 0.146 -0.01466 0.144 -0.00533 0.138 -0.00133 C 0.135 0 0.133 0 0.13 -0.00133"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-spring">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C -0.066 0.00799 -0.115 0.02798 -0.115 0.04397 C -0.115 0.05863 -0.067 0.06929 -0.003 0.06929 C 0.061 0.06929 0.115 0.05863 0.115 0.04397 C 0.115 0.02798 0.059 0.02398 -0.005 0.03464 C -0.068 0.04663 -0.115 0.06662 -0.115 0.08128 C -0.115 0.09593 -0.066 0.10793 -0.003 0.10793 C 0.061 0.10793 0.115 0.09593 0.115 0.08128 C 0.115 0.06662 0.059 0.06262 -0.004 0.07328 C -0.068 0.08394 -0.115 0.10393 -0.115 0.11858 C -0.115 0.13457 -0.066 0.14656 -0.002 0.14656 C 0.061 0.14656 0.115 0.13457 0.115 0.11858 C 0.115 0.10526 0.059 0.10126 -0.004 0.11059 C -0.067 0.12125 -0.115 0.14257 -0.115 0.15722 C -0.115 0.17188 -0.065 0.18387 -0.002 0.18387 C 0.063 0.18387 0.115 0.17188 0.115 0.15722 C 0.115 0.14257 0.06 0.13857 -0.003 0.14923 C -0.066 0.15989 -0.115 0.17988 -0.115 0.19453 C -0.115 0.21052 -0.065 0.22118 -0.001 0.22118 C 0.063 0.22118 0.115 0.20919 0.115 0.19453 C 0.115 0.17988 0.06 0.17588 -0.003 0.18654 C -0.066 0.1972 -0.115 0.21851 -0.115 0.23184 C -0.115 0.2465 -0.064 0.25849 -0.001 0.25849 C 0.063 0.25849 0.115 0.2465 0.115 0.23184 C 0.115 0.21851 0.061 0.21452 -0.003 0.22384 C -0.066 0.2345 -0.115 0.25582 -0.115 0.27048 C -0.115 0.2838 -0.064 0.29713 0 0.29713 C 0.064 0.29713 0.115 0.28514 0.115 0.27048 C 0.115 0.25582 0.061 0.25183 -0.002 0.26248 C -0.065 0.27314 -0.116 0.29313 -0.115 0.30779 C -0.114 0.32244 -0.064 0.3331 0 0.3331 C 0.064 0.3331 0.115 0.32111 0.115 0.30645 C 0.115 0.29313 0.063 0.28913 0 0.30112"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-stairs-down">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 l 0.036 0 l 0 0.04797 l 0.036 0 l 0 0.04797 l 0.036 0 l 0 0.04797 l 0.036 0 l 0 0.04797 l 0.036 0 l 0 0.04797 l 0.036 0 l 0 0.04797 l 0.036 0 l 0 0.04797"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-turn-down">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.125 0 C 0.181 0 0.25 0.09194 0.25 0.16655 L 0.25 0.3331"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-turn-down-right">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0 0.16655 C 0 0.24117 0.069 0.3331 0.125 0.3331 L 0.25 0.3331"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-turn-up">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.125 0 C 0.181 0 0.25 -0.09194 0.25 -0.16655 L 0.25 -0.3331"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-turn-up-right">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0 -0.16655 C 0 -0.24117 0.069 -0.3331 0.125 -0.3331 L 0.25 -0.3331"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-up">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0 -0.3331"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-wave">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.002 0.08394 0.009 0.1439 0.016 0.1439 C 0.023 0.1439 0.029 0.08394 0.031 0 C 0.034 0.08394 0.04 0.1439 0.047 0.1439 C 0.054 0.1439 0.06 0.08394 0.062 0 C 0.065 0.08394 0.071 0.1439 0.078 0.1439 C 0.085 0.1439 0.092 0.08394 0.094 0 C 0.096 0.08394 0.102 0.1439 0.11 0.1439 C 0.116 0.1439 0.123 0.08394 0.125 0 C 0.127 0.08394 0.134 0.1439 0.141 0.1439 C 0.148 0.1439 0.154 0.08394 0.156 0 C 0.159 0.08394 0.165 0.1439 0.172 0.1439 C 0.179 0.1439 0.185 0.08394 0.188 0 C 0.19 0.08394 0.196 0.1439 0.203 0.1439 C 0.21 0.1439 0.217 0.08394 0.219 0 C 0.221 0.08394 0.227 0.1439 0.235 0.1439 C 0.242 0.1439 0.248 0.08394 0.25 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-zigzag">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 L 0.016 0.13191 L 0.031 0 L 0.047 0.13191 L 0.063 0 L 0.078 0.13191 L 0.094 0 L 0.109 0.13191 L 0.125 0 L 0.141 0.13191 L 0.156 0 L 0.172 0.13191 L 0.187 0 L 0.203 0.13191 L 0.219 0 L 0.234 0.13191 L 0.25 0"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-bean">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.002 -0.004 0.012 -0.0453 0.037 -0.04264 C 0.075 -0.03864 0.09 -0.00933 0.125 -0.03864 C 0.147 -0.05596 0.173 -0.09993 0.192 -0.0986 C 0.235 -0.09727 0.244 -0.05196 0.244 -0.01066 C 0.245 0.04797 0.189 0.09727 0.121 0.1026 C 0.052 0.10659 -0.005 0.04397 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-buzz-saw">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C -0.022 -0.02265 -0.033 -0.06129 -0.027 -0.09993 C -0.024 -0.11325 -0.02 -0.12658 -0.014 -0.13724 C -0.01 -0.10659 0.004 -0.07861 0.025 -0.06129 C 0.025 -0.0986 0.041 -0.13457 0.068 -0.15056 C 0.077 -0.15722 0.087 -0.15989 0.097 -0.16122 C 0.082 -0.13857 0.074 -0.10659 0.077 -0.07328 C 0.099 -0.09727 0.13 -0.1026 0.157 -0.08527 C 0.166 -0.07994 0.175 -0.07062 0.181 -0.06129 C 0.158 -0.06396 0.134 -0.05196 0.117 -0.02798 C 0.144 -0.01999 0.167 0.00799 0.174 0.04663 C 0.176 0.05996 0.176 0.07328 0.174 0.08661 C 0.161 0.06129 0.139 0.04397 0.115 0.0413 C 0.127 0.07461 0.124 0.11592 0.106 0.14656 C 0.099 0.15722 0.091 0.16655 0.082 0.17188 C 0.089 0.14257 0.085 0.10926 0.072 0.08261 C 0.06 0.11592 0.034 0.13857 0.004 0.13857 C -0.007 0.13857 -0.017 0.13591 -0.026 0.13058 C -0.004 0.11992 0.013 0.0946 0.021 0.06396 C -0.007 0.07195 -0.036 0.05996 -0.055 0.02931 C -0.062 0.01732 -0.066 0.00533 -0.069 -0.00799 C -0.049 0.00933 -0.023 0.01199 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-curved-square">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0 -0.04264 0.026 -0.07728 0.058 -0.07728 L 0.192 -0.07728 C 0.224 -0.07728 0.25 -0.04264 0.25 0 L 0.25 0.17588 C 0.25 0.21851 0.224 0.25449 0.192 0.25449 L 0.058 0.25449 C 0.026 0.25449 0 0.21851 0 0.17588 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-curved-x">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.006 0.00799 0.011 0.01466 0.015 0.02265 C 0.02 0.01466 0.024 0.00799 0.03 0 C 0.065 -0.04663 0.107 -0.06662 0.124 -0.0453 C 0.14 -0.02265 0.125 0.03331 0.09 0.07994 C 0.084 0.08661 0.079 0.09327 0.073 0.09993 C 0.079 0.10526 0.084 0.11192 0.09 0.11992 C 0.125 0.16655 0.14 0.22251 0.124 0.24383 C 0.107 0.26648 0.065 0.2465 0.03 0.19986 C 0.024 0.19187 0.02 0.1852 0.015 0.17721 C 0.011 0.1852 0.006 0.19187 0 0.19986 C -0.035 0.2465 -0.077 0.26648 -0.094 0.24383 C -0.11 0.22251 -0.095 0.16655 -0.06 0.11992 C -0.054 0.11192 -0.049 0.10526 -0.043 0.09993 C -0.049 0.09327 -0.054 0.08661 -0.06 0.07994 C -0.095 0.03331 -0.11 -0.02265 -0.094 -0.0453 C -0.077 -0.06662 -0.035 -0.04663 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-curvy-star">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.072 0.07728 0.1 0.20253 0.077 0.31711 C -0.015 0.31045 -0.093 0.23051 -0.125 0.12125 C -0.047 0.0533 0.051 0.05729 0.125 0.12125 C 0.092 0.23717 0.011 0.31045 -0.077 0.31711 C -0.101 0.1972 -0.068 0.07461 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-figure-8-four">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.017 0 0.031 0.01865 0.031 0.0413 C 0.031 0.06529 0.017 0.08394 0 0.08394 C -0.017 0.08394 -0.031 0.1026 -0.031 0.12525 C -0.031 0.1479 -0.017 0.16655 0 0.16655 C 0.017 0.16655 0.031 0.1852 0.031 0.20786 C 0.031 0.23051 0.017 0.24916 0 0.24916 C -0.017 0.24916 -0.031 0.26781 -0.031 0.2918 C -0.031 0.31445 -0.017 0.3331 0 0.3331 C 0.017 0.3331 0.031 0.31445 0.031 0.2918 C 0.031 0.26781 0.017 0.24916 0 0.24916 C -0.017 0.24916 -0.031 0.23051 -0.031 0.20786 C -0.031 0.1852 -0.017 0.16655 0 0.16655 C 0.017 0.16655 0.031 0.1479 0.031 0.12525 C 0.031 0.1026 0.017 0.08394 0 0.08394 C -0.017 0.08394 -0.031 0.06529 -0.031 0.0413 C -0.031 0.01865 -0.017 0 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-horizontal-figure-8">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0 0.04397 0.027 0.07994 0.06 0.07994 C 0.099 0.07994 0.113 0.03997 0.119 0.01599 L 0.125 -0.01599 C 0.131 -0.03997 0.146 -0.07994 0.19 -0.07994 C 0.218 -0.07994 0.25 -0.04397 0.25 0 C 0.25 0.04397 0.218 0.07994 0.19 0.07994 C 0.146 0.07994 0.131 0.03997 0.125 0.01599 L 0.119 -0.01599 C 0.113 -0.03997 0.099 -0.07994 0.06 -0.07994 C 0.027 -0.07994 0 -0.04397 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-inverted-square">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.004 -0.00533 0.01 -0.00799 0.015 -0.00799 C 0.022 -0.00799 0.029 -0.004 0.033 0.00266 C 0.05 0.02931 0.063 0.08794 0.063 0.15722 C 0.063 0.15722 0.063 0.15856 0.063 0.15856 C 0.063 0.15856 0.063 0.15989 0.063 0.15989 C 0.063 0.22917 0.05 0.28913 0.033 0.31578 C 0.029 0.32111 0.022 0.32511 0.015 0.32511 C 0.01 0.32511 0.004 0.32244 0 0.31711 C -0.004 0.31178 -0.006 0.30512 -0.006 0.29713 C -0.006 0.2878 -0.003 0.27981 0.002 0.27448 C 0.022 0.25049 0.066 0.23317 0.118 0.23317 C 0.118 0.23317 0.119 0.23317 0.119 0.23317 C 0.119 0.23317 0.12 0.23317 0.12 0.23317 C 0.172 0.23317 0.217 0.25049 0.237 0.27448 C 0.241 0.27981 0.244 0.2878 0.244 0.29713 C 0.244 0.30512 0.242 0.31178 0.238 0.31711 C 0.234 0.32244 0.229 0.32511 0.223 0.32511 C 0.216 0.32511 0.21 0.32111 0.206 0.31578 C 0.188 0.28913 0.175 0.22917 0.175 0.15989 C 0.175 0.15989 0.175 0.15856 0.175 0.15856 C 0.175 0.15856 0.175 0.15722 0.175 0.15722 C 0.175 0.08794 0.188 0.02931 0.206 0.00133 C 0.21 -0.004 0.216 -0.00799 0.223 -0.00799 C 0.229 -0.00799 0.234 -0.00533 0.238 0 C 0.242 0.00533 0.244 0.01332 0.244 0.01999 C 0.244 0.02931 0.241 0.03731 0.237 0.04397 C 0.217 0.06662 0.172 0.08394 0.12 0.08394 C 0.12 0.08394 0.12 0.08394 0.119 0.08394 C 0.119 0.08394 0.118 0.08394 0.118 0.08394 C 0.066 0.08394 0.022 0.06662 0.002 0.04397 C -0.003 0.03731 -0.006 0.02931 -0.006 0.01999 C -0.006 0.01332 -0.004 0.00533 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-inverted-triangle">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.015 0.03198 0.037 0.06529 0.055 0.07861 C 0.082 0.09993 0.108 0.10793 0.113 0.09727 C 0.117 0.08661 0.099 0.05996 0.072 0.03864 C 0.054 0.02532 0.021 0.01599 -0.008 0.01466 C -0.036 0.01599 -0.07 0.02532 -0.088 0.03864 C -0.115 0.05996 -0.133 0.08661 -0.128 0.09727 C -0.123 0.10793 -0.097 0.09993 -0.071 0.07861 C -0.053 0.06529 -0.03 0.03198 -0.016 0 C -0.001 -0.03331 0.009 -0.07728 0.009 -0.10526 C 0.009 -0.1479 0.002 -0.18121 -0.008 -0.18121 C -0.017 -0.18121 -0.025 -0.1479 -0.025 -0.10526 C -0.025 -0.07728 -0.014 -0.03331 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-loop-de-loop">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.023 0.00133 0.042 0.01199 0.052 0.02798 L 0.075 0.06529 C 0.08 0.07328 0.088 0.07728 0.098 0.07728 C 0.112 0.07728 0.124 0.06662 0.125 0.05063 C 0.124 0.03731 0.112 0.02532 0.098 0.02532 C 0.088 0.02532 0.08 0.03065 0.075 0.03731 L 0.052 0.07461 C 0.042 0.0906 0.023 0.10126 0 0.1026 C -0.023 0.10126 -0.042 0.0906 -0.052 0.07461 L -0.075 0.03731 C -0.08 0.03065 -0.088 0.02532 -0.098 0.02532 C -0.112 0.02532 -0.124 0.03731 -0.125 0.05063 C -0.124 0.06662 -0.112 0.07728 -0.098 0.07728 C -0.088 0.07728 -0.08 0.07328 -0.075 0.06529 L -0.052 0.02798 C -0.042 0.01199 -0.023 0.00133 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-neutron">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.007 -0.01332 0.014 -0.02798 0.021 -0.04663 C 0.04 -0.09993 0.045 -0.15189 0.031 -0.15989 C 0.017 -0.16922 -0.01 -0.13191 -0.029 -0.07861 C -0.039 -0.05063 -0.045 -0.02398 -0.047 -0.004 C -0.05 0.01199 -0.051 0.02798 -0.051 0.04663 C -0.051 0.10659 -0.038 0.15589 -0.023 0.15589 C -0.008 0.15589 0.005 0.10659 0.005 0.04663 C 0.005 0.01865 0.002 -0.00799 -0.003 -0.02665 C -0.005 -0.04264 -0.01 -0.05996 -0.016 -0.07728 C -0.036 -0.13191 -0.063 -0.16922 -0.077 -0.15989 C -0.091 -0.15056 -0.086 -0.09993 -0.066 -0.0453 C -0.058 -0.01999 -0.047 0.00133 -0.036 0.01599 C -0.028 0.02931 -0.019 0.0413 -0.007 0.0533 C 0.029 0.09194 0.065 0.10926 0.075 0.09327 C 0.084 0.07728 0.064 0.03331 0.028 -0.004 C 0.013 -0.01999 -0.003 -0.03198 -0.016 -0.03997 C -0.028 -0.04797 -0.043 -0.05463 -0.059 -0.05863 C -0.103 -0.07195 -0.141 -0.06795 -0.144 -0.04663 C -0.148 -0.02665 -0.115 0 -0.071 0.01332 C -0.051 0.01865 -0.032 0.02132 -0.017 0.01999 C -0.004 0.01999 0.01 0.01732 0.025 0.01332 C 0.069 0 0.102 -0.02798 0.098 -0.04797 C 0.095 -0.06795 0.057 -0.07328 0.013 -0.05996 C -0.008 -0.0533 -0.027 -0.04397 -0.04 -0.03331 C -0.051 -0.02532 -0.062 -0.01599 -0.074 -0.004 C -0.109 0.03464 -0.13 0.07728 -0.12 0.09327 C -0.111 0.10926 -0.074 0.09194 -0.039 0.05463 C -0.022 0.03598 -0.008 0.01732 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-peanut">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.038 0 0.069 0.0413 0.069 0.09194 C 0.069 0.12525 0.056 0.15456 0.037 0.17188 C 0.037 0.17188 0.036 0.17188 0.036 0.17188 C 0.029 0.17854 0.025 0.1892 0.025 0.20119 C 0.025 0.21185 0.029 0.22118 0.034 0.22784 C 0.042 0.2385 0.047 0.25449 0.047 0.27048 C 0.047 0.30512 0.026 0.3331 0 0.3331 C -0.026 0.3331 -0.047 0.30512 -0.047 0.27048 C -0.047 0.25449 -0.042 0.2385 -0.034 0.22784 C -0.029 0.22118 -0.026 0.21185 -0.026 0.20119 C -0.026 0.1892 -0.03 0.17854 -0.036 0.17188 C -0.036 0.17188 -0.037 0.17188 -0.037 0.17188 C -0.057 0.15456 -0.07 0.12525 -0.07 0.09194 C -0.07 0.0413 -0.039 0 0 0 C 0 0 0 0 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-clover">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C -0.118 -0.15722 0.132 -0.15722 0.011 0 C 0.132 -0.15722 0.132 0.17588 0.011 0.01466 C 0.132 0.17588 -0.118 0.17588 0 0.01466 C -0.118 0.17588 -0.118 -0.15722 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-pointy-star">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.069 0 0.124 -0.07461 0.124 -0.16655 C 0.124 -0.07461 0.179 -0.00133 0.248 -0.00133 C 0.179 -0.00133 0.125 0.07461 0.125 0.16655 C 0.125 0.07461 0.069 0 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-swoosh">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0 0 0.017 -0.08661 0.017 -0.08661 C 0.034 -0.15722 0.061 -0.1852 0.1 -0.1852 C 0.12 -0.1852 0.138 -0.17455 0.152 -0.15722 C 0.162 -0.14523 0.174 -0.13857 0.187 -0.13857 C 0.212 -0.13857 0.233 -0.16255 0.241 -0.1972 C 0.241 -0.1972 0.25 -0.2385 0.25 -0.2385 C 0.25 -0.2385 0.232 -0.15056 0.232 -0.15056 C 0.215 -0.08128 0.188 -0.0533 0.15 -0.0533 C 0.13 -0.0533 0.111 -0.06396 0.096 -0.08261 C 0.087 -0.09327 0.075 -0.09993 0.063 -0.09993 C 0.038 -0.09993 0.017 -0.07595 0.009 -0.0413 C 0.009 -0.0413 0 0 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" smil:accelerate="0.5" smil:decelerate="0.5" pres:node-type="on-click" pres:preset-class="motion-path" pres:preset-id="ooo-motionpath-vertical-figure-8">
+ <anim:animateMotion smil:dur="2" smil:fill="hold" svg:path="M 0 0 C 0.033 0 0.06 0.03598 0.06 0.07994 C 0.06 0.13191 0.03 0.15056 0.012 0.15856 L -0.012 0.16655 C -0.03 0.17455 -0.06 0.19453 -0.06 0.25316 C -0.06 0.29046 -0.033 0.3331 0 0.3331 C 0.033 0.3331 0.06 0.29046 0.06 0.25316 C 0.06 0.19453 0.03 0.17455 0.012 0.16655 L -0.012 0.15856 C -0.03 0.15056 -0.06 0.13191 -0.06 0.07994 C -0.06 0.03598 -0.033 0 0 0 Z"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-media-start">
+ <anim:command smil:begin="0" smil:dur="0.001" smil:fill="hold" anim:command="play"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-media-stop">
+ <anim:command smil:begin="0" smil:dur="0.001" smil:fill="hold" anim:command="stop"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+ <anim:par smil:begin="indefinite" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold">
+ <anim:par smil:begin="0" smil:fill="hold" pres:node-type="on-click" pres:preset-class="entrance" pres:preset-id="ooo-media-toggle-pause">
+ <anim:command smil:begin="0" smil:dur="0.001" smil:fill="hold" anim:command="toggle-pause"/>
+ </anim:par>
+ </anim:par>
+ </anim:par>
+</anim:seq>
diff --git a/test/user-template/user/config/soffice.cfg/simpress/transitions-ogl.xml b/test/user-template/user/config/soffice.cfg/simpress/transitions-ogl.xml
new file mode 100644
index 000000000000..ca1e3661c182
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/simpress/transitions-ogl.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0"?>
+<anim:seq xmlns:office="urn:oasis:names:tc:openoffice:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:openoffice:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:openoffice:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:openoffice:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:openoffice:xmlns:drawing:1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:openoffice:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:openoffice:xmlns:datastyle:1.0" xmlns:pres="urn:oasis:names:tc:openoffice:xmlns:presentation:1.0" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="urn:oasis:names:tc:openoffice:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:openoffice:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:openoffice:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:openoffice:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:smil="http://www.w3.org/2001/SMIL20" xmlns:anim="urn:oasis:names:tc:openoffice:xmlns:animation:1.0" pres:node-type="main-sequence">
+ <anim:par pres:preset-id="tile-flip">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="across"/>
+ </anim:par>
+ <anim:par pres:preset-id="outside-cube">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="cornersOut"/>
+ </anim:par>
+ <anim:par pres:preset-id="revolving-circles">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="circle"/>
+ </anim:par>
+ <anim:par pres:preset-id="turning-helix">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="fanOutHorizontal"/>
+ </anim:par>
+ <anim:par pres:preset-id="inside-cube">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="cornersIn"/>
+ </anim:par>
+ <anim:par pres:preset-id="fall">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="leftToRight"/>
+ </anim:par>
+ <anim:par pres:preset-id="turn-around">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topToBottom"/>
+ </anim:par>
+ <anim:par pres:preset-id="iris">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topLeft"/>
+ </anim:par>
+ <anim:par pres:preset-id="turn-down">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topRight"/>
+ </anim:par>
+ <anim:par pres:preset-id="rochade">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomRight"/>
+ </anim:par>
+ <anim:par pres:preset-id="venetian3dv">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomLeft"/>
+ </anim:par>
+ <anim:par pres:preset-id="venetian3dh">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="topCenter"/>
+ </anim:par>
+ <anim:par pres:preset-id="static">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="rightCenter"/>
+ </anim:par>
+ <anim:par pres:preset-id="finedissolve">
+ <anim:transitionFilter smil:type="miscShapeWipe" smil:subtype="bottomCenter"/>
+ </anim:par>
+ <anim:par pres:preset-id="zoom-rotate-in">
+ <anim:transitionFilter smil:type="zoom" smil:subtype="rotateIn"/>
+ </anim:par>
+ </anim:seq>
diff --git a/test/user-template/user/config/soffice.cfg/simpress/transitions.xml b/test/user-template/user/config/soffice.cfg/simpress/transitions.xml
new file mode 100644
index 000000000000..556eb6f504e8
--- /dev/null
+++ b/test/user-template/user/config/soffice.cfg/simpress/transitions.xml
@@ -0,0 +1,225 @@
+<?xml version="1.0"?>
+<anim:seq xmlns:office="urn:oasis:names:tc:openoffice:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:openoffice:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:openoffice:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:openoffice:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:openoffice:xmlns:drawing:1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:openoffice:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:openoffice:xmlns:datastyle:1.0" xmlns:pres="urn:oasis:names:tc:openoffice:xmlns:presentation:1.0" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="urn:oasis:names:tc:openoffice:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:openoffice:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:openoffice:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:openoffice:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:smil="http://www.w3.org/2001/SMIL20" xmlns:anim="urn:oasis:names:tc:openoffice:xmlns:animation:1.0" pres:node-type="main-sequence">
+ <anim:par pres:preset-id="wipe-up">
+ <anim:transitionFilter smil:type="barWipe" smil:subtype="topToBottom" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="wipe-right">
+ <anim:transitionFilter smil:type="barWipe" smil:subtype="leftToRight"/>
+ </anim:par>
+ <anim:par pres:preset-id="wipe-left">
+ <anim:transitionFilter smil:type="barWipe" smil:subtype="leftToRight" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="wipe-down">
+ <anim:transitionFilter smil:type="barWipe" smil:subtype="topToBottom"/>
+ </anim:par>
+ <anim:par pres:preset-id="wheel-clockwise-1-spoke">
+ <anim:transitionFilter smil:type="pinWheelWipe" smil:subtype="oneBlade"/>
+ </anim:par>
+ <anim:par pres:preset-id="wheel-clockwise-2-spokes">
+ <anim:transitionFilter smil:type="pinWheelWipe" smil:subtype="twoBladeVertical"/>
+ </anim:par>
+ <anim:par pres:preset-id="wheel-clockwise-3-spokes">
+ <anim:transitionFilter smil:type="pinWheelWipe" smil:subtype="threeBlade"/>
+ </anim:par>
+ <anim:par pres:preset-id="wheel-clockwise-4-spokes">
+ <anim:transitionFilter smil:type="pinWheelWipe" smil:subtype="fourBlade"/>
+ </anim:par>
+ <anim:par pres:preset-id="wheel-clockwise-8-spokes">
+ <anim:transitionFilter smil:type="pinWheelWipe" smil:subtype="eightBlade"/>
+ </anim:par>
+ <anim:par pres:preset-id="uncover-down">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTop" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="uncover-left">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromRight" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="uncover-right">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromLeft" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="uncover-up">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottom" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="uncover-left-down">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTopRight" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="uncover-left-up">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottomRight" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="uncover-right-down">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTopLeft" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="uncover-right-up">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottomLeft" smil:direction="reverse"/>
+ </anim:par>
+<!-- <anim:par pres:preset-id="barn-inVertical"> -->
+<!-- <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="vertical"/> -->
+<!-- </anim:par> -->
+<!-- <anim:par pres:preset-id="barn-outVertical"> -->
+<!-- <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="vertical" smil:direction="reverse"/> -->
+<!-- </anim:par> -->
+<!-- <anim:par pres:preset-id="barn-inHorizontal"> -->
+<!-- <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="horizontal"/> -->
+<!-- </anim:par> -->
+<!-- <anim:par pres:preset-id="barn-outHorizontal"> -->
+<!-- <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="horizontal" smil:direction="reverse"/> -->
+<!-- </anim:par> -->
+ <anim:par pres:preset-id="random-bars-vertical">
+ <anim:transitionFilter smil:type="randomBarWipe" smil:subtype="vertical"/>},
+ </anim:par>
+ <anim:par pres:preset-id="random-bars-horizontal">
+ <anim:transitionFilter smil:type="randomBarWipe" smil:subtype="horizontal"/>
+ </anim:par>
+ <anim:par pres:preset-id="checkerboard-down">
+ <anim:transitionFilter smil:type="checkerBoardWipe" smil:subtype="down"/>},
+ </anim:par>
+ <anim:par pres:preset-id="checkerboard-across">
+ <anim:transitionFilter smil:type="checkerBoardWipe" smil:subtype="across"/>
+ </anim:par>
+ <anim:par pres:preset-id="shape-plus">
+ <anim:transitionFilter smil:type="fourBoxWipe" smil:subtype="cornersOut"/>
+ </anim:par>
+<!-- <anim:par pres:preset-id="plus-in"> -->
+<!-- <anim:transitionFilter smil:type="fourBoxWipe" smil:subtype="cornersIn"/> -->
+<!-- </anim:par> -->
+ <anim:par pres:preset-id="shape-diamond">
+ <anim:transitionFilter smil:type="irisWipe" smil:subtype="diamond"/>
+ </anim:par>
+<!-- <anim:par pres:preset-id="diamond-in"> -->
+<!-- <anim:transitionFilter smil:type="irisWipe" smil:subtype="diamond" smil:direction="reverse"/> -->
+<!-- </anim:par> -->
+ <anim:par pres:preset-id="shape-circle">
+ <anim:transitionFilter smil:type="ellipseWipe" smil:subtype="circle"/>
+ </anim:par>
+<!-- <anim:par pres:preset-id="circle-in"> -->
+<!-- <anim:transitionFilter smil:type="ellipseWipe" smil:subtype="circle" smil:direction="reverse"/> -->
+<!-- </anim:par> -->
+ <anim:par pres:preset-id="box-out">
+ <anim:transitionFilter smil:type="irisWipe" smil:subtype="rectangle"/>
+ </anim:par>
+ <anim:par pres:preset-id="box-in">
+ <anim:transitionFilter smil:type="irisWipe" smil:subtype="rectangle" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="wedge">
+ <anim:transitionFilter smil:type="fanWipe" smil:subtype="centerTop"/>
+ </anim:par>
+ <anim:par pres:preset-id="venetian-blinds-vertical">
+ <anim:transitionFilter smil:type="blindsWipe" smil:subtype="vertical"/>
+ </anim:par>
+ <anim:par pres:preset-id="venetian-blinds-horizontal">
+ <anim:transitionFilter smil:type="blindsWipe" smil:subtype="horizontal"/>
+ </anim:par>
+ <anim:par pres:preset-id="fade-through-black">
+ <anim:transitionFilter smil:type="fade" smil:subtype="fadeOverColor" smil:fadeColor="#000000"/>
+ </anim:par>
+ <anim:par pres:preset-id="cut-through-black">
+ <anim:transitionFilter smil:type="barWipe" smil:subtype="fadeOverColor" smil:fadeColor="#000000"/>
+ </anim:par>
+ <anim:par pres:preset-id="cover-down">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTop"/>
+ </anim:par>
+ <anim:par pres:preset-id="cover-left">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromRight"/>
+ </anim:par>
+ <anim:par pres:preset-id="cover-right">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromLeft"/>
+ </anim:par>
+ <anim:par pres:preset-id="cover-up">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottom"/>
+ </anim:par>
+ <anim:par pres:preset-id="cover-left-down">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTopRight"/>
+ </anim:par>
+ <anim:par pres:preset-id="cover-left-up">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottomRight"/>
+ </anim:par>
+ <anim:par pres:preset-id="cover-right-down">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromTopLeft"/>
+ </anim:par>
+ <anim:par pres:preset-id="cover-right-up">
+ <anim:transitionFilter smil:type="slideWipe" smil:subtype="fromBottomLeft"/>
+ </anim:par>
+ <anim:par pres:preset-id="dissolve">
+ <anim:transitionFilter smil:type="dissolve" smil:subtype="default"/>
+ </anim:par>
+ <anim:par pres:preset-id="random-transition">
+ <anim:transitionFilter smil:type="random"/>
+ </anim:par>
+ <!--anim:par pres:preset-id="zoom-rotate-in">
+ <anim:transitionFilter smil:type="zoom" smil:subtype="rotateIn"/>
+ </anim:par-->
+ <anim:par pres:preset-id="clock-wipe-twelve">
+ <anim:transitionFilter smil:type="clockWipe" smil:subtype="clockwiseTwelve"/>
+ </anim:par>
+ <anim:par pres:preset-id="reverse-clock-wipe-twelve">
+ <anim:transitionFilter smil:type="clockWipe" smil:subtype="clockwiseTwelve" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="spiral-wipe-top-left-clockwise">
+ <anim:transitionFilter smil:type="spiralWipe" smil:subtype="topLeftClockwise"/>
+ </anim:par>
+ <anim:par pres:preset-id="spiral-wipe-top-right-counter-clockwise">
+ <anim:transitionFilter smil:type="spiralWipe" smil:subtype="topRightCounterClockwise"/>
+ </anim:par>
+ <anim:par pres:preset-id="spiral-wipe-out-to-bottom-right-clockwise">
+ <anim:transitionFilter smil:type="spiralWipe" smil:subtype="bottomRightCounterClockwise" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="spiral-wipe-out-to-bottom-left-counter-clockwise">
+ <anim:transitionFilter smil:type="spiralWipe" smil:subtype="bottomLeftClockwise" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="snake-wipe-top-left-vertical">
+ <anim:transitionFilter smil:type="snakeWipe" smil:subtype="topLeftVertical"/>
+ </anim:par>
+ <anim:par pres:preset-id="snake-wipe-top-left-horizontal">
+ <anim:transitionFilter smil:type="snakeWipe" smil:subtype="topLeftHorizontal"/>
+ </anim:par>
+ <anim:par pres:preset-id="snake-wipe-bottom-right-vertical">
+ <anim:transitionFilter smil:type="snakeWipe" smil:subtype="topLeftVertical" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="snake-wipe-bottom-right-horizontal">
+ <anim:transitionFilter smil:type="snakeWipe" smil:subtype="topLeftHorizontal" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="comb-horizontal">
+ <anim:transitionFilter smil:type="pushWipe" smil:subtype="combHorizontal"/>
+ </anim:par>
+ <anim:par pres:preset-id="comb-vertical">
+ <anim:transitionFilter smil:type="pushWipe" smil:subtype="combVertical"/>
+ </anim:par>
+ <anim:par pres:preset-id="fade-smoothly">
+ <anim:transitionFilter smil:type="fade" smil:subtype="crossfade"/>
+ </anim:par>
+ <anim:par pres:preset-id="push-down">
+ <anim:transitionFilter smil:type="pushWipe" smil:subtype="fromTop"/>
+ </anim:par>
+ <anim:par pres:preset-id="push-left">
+ <anim:transitionFilter smil:type="pushWipe" smil:subtype="fromRight"/>
+ </anim:par>
+ <anim:par pres:preset-id="push-right">
+ <anim:transitionFilter smil:type="pushWipe" smil:subtype="fromLeft"/>
+ </anim:par>
+ <anim:par pres:preset-id="push-up">
+ <anim:transitionFilter smil:type="pushWipe" smil:subtype="fromBottom"/>
+ </anim:par>
+ <anim:par pres:preset-id="split-horizontal-in">
+ <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="horizontal" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="split-horizontal-out">
+ <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="horizontal"/>
+ </anim:par>
+ <anim:par pres:preset-id="split-vertical-in">
+ <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="vertical" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="split-vertical-out">
+ <anim:transitionFilter smil:type="barnDoorWipe" smil:subtype="vertical"/>
+ </anim:par>
+ <anim:par pres:preset-id="diagonal-squares-left-down">
+ <anim:transitionFilter smil:type="waterfallWipe" smil:subtype="horizontalRight"/>
+ </anim:par>
+ <anim:par pres:preset-id="diagonal-squares-left-up">
+ <anim:transitionFilter smil:type="waterfallWipe" smil:subtype="horizontalLeft" smil:direction="reverse"/>
+ </anim:par>
+ <anim:par pres:preset-id="diagonal-squares-right-down">
+ <anim:transitionFilter smil:type="waterfallWipe" smil:subtype="horizontalLeft"/>
+ </anim:par>
+ <anim:par pres:preset-id="diagonal-squares-right-up">
+ <anim:transitionFilter smil:type="waterfallWipe" smil:subtype="horizontalRight" smil:direction="reverse"/>
+ </anim:par>
+ </anim:seq>
diff --git a/test/user-template/user/config/symbol/l_2people.bmp b/test/user-template/user/config/symbol/l_2people.bmp
new file mode 100644
index 000000000000..5b7a8fc17f2e
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_2people.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_attention1.bmp b/test/user-template/user/config/symbol/l_attention1.bmp
new file mode 100644
index 000000000000..bf6890f39341
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_attention1.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_attention2.bmp b/test/user-template/user/config/symbol/l_attention2.bmp
new file mode 100644
index 000000000000..120c9e9f223a
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_attention2.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_attention3.bmp b/test/user-template/user/config/symbol/l_attention3.bmp
new file mode 100644
index 000000000000..7b48a9cf0b06
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_attention3.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_candy.bmp b/test/user-template/user/config/symbol/l_candy.bmp
new file mode 100644
index 000000000000..935fdf8c378a
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_candy.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_face.bmp b/test/user-template/user/config/symbol/l_face.bmp
new file mode 100644
index 000000000000..c44d95616a38
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_face.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_flower.bmp b/test/user-template/user/config/symbol/l_flower.bmp
new file mode 100644
index 000000000000..ced7409f1285
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_flower.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_ghost.bmp b/test/user-template/user/config/symbol/l_ghost.bmp
new file mode 100644
index 000000000000..877ba2713893
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_ghost.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_halloween.bmp b/test/user-template/user/config/symbol/l_halloween.bmp
new file mode 100644
index 000000000000..8326cd23a269
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_halloween.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_home.bmp b/test/user-template/user/config/symbol/l_home.bmp
new file mode 100644
index 000000000000..c34900a2bc67
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_home.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_lamp.bmp b/test/user-template/user/config/symbol/l_lamp.bmp
new file mode 100644
index 000000000000..6a824ef26e82
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_lamp.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_lock.bmp b/test/user-template/user/config/symbol/l_lock.bmp
new file mode 100644
index 000000000000..986f4d055576
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_lock.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_page_b.bmp b/test/user-template/user/config/symbol/l_page_b.bmp
new file mode 100644
index 000000000000..94c3c67dd56c
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_page_b.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_page_g.bmp b/test/user-template/user/config/symbol/l_page_g.bmp
new file mode 100644
index 000000000000..f0b8d7dc6576
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_page_g.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_page_y.bmp b/test/user-template/user/config/symbol/l_page_y.bmp
new file mode 100644
index 000000000000..39e7c98c2c98
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_page_y.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_people.bmp b/test/user-template/user/config/symbol/l_people.bmp
new file mode 100644
index 000000000000..112339015a7d
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_people.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_rose.bmp b/test/user-template/user/config/symbol/l_rose.bmp
new file mode 100644
index 000000000000..5feafeed39ad
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_rose.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_save.bmp b/test/user-template/user/config/symbol/l_save.bmp
new file mode 100644
index 000000000000..77a33b032db4
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_save.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_smiley_1.bmp b/test/user-template/user/config/symbol/l_smiley_1.bmp
new file mode 100644
index 000000000000..1d4c064b4c88
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_smiley_1.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_smiley_oh.bmp b/test/user-template/user/config/symbol/l_smiley_oh.bmp
new file mode 100644
index 000000000000..54d6067f2138
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_smiley_oh.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_smiley_sad.bmp b/test/user-template/user/config/symbol/l_smiley_sad.bmp
new file mode 100644
index 000000000000..bfa17eaf012e
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_smiley_sad.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_snow.bmp b/test/user-template/user/config/symbol/l_snow.bmp
new file mode 100644
index 000000000000..fce169d0a611
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_snow.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/l_star.bmp b/test/user-template/user/config/symbol/l_star.bmp
new file mode 100644
index 000000000000..5a12554911f1
--- /dev/null
+++ b/test/user-template/user/config/symbol/l_star.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_arrow-1.bmp b/test/user-template/user/config/symbol/s_arrow-1.bmp
new file mode 100644
index 000000000000..4b77c9b44afd
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_arrow-1.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_arrow-2.bmp b/test/user-template/user/config/symbol/s_arrow-2.bmp
new file mode 100644
index 000000000000..e7c94e725911
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_arrow-2.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_arrow-3.bmp b/test/user-template/user/config/symbol/s_arrow-3.bmp
new file mode 100644
index 000000000000..14d544dc8c50
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_arrow-3.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_arrow-4.bmp b/test/user-template/user/config/symbol/s_arrow-4.bmp
new file mode 100644
index 000000000000..d0a192b6ce6d
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_arrow-4.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_attention1.bmp b/test/user-template/user/config/symbol/s_attention1.bmp
new file mode 100644
index 000000000000..d3fe270df958
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_attention1.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_attention2.bmp b/test/user-template/user/config/symbol/s_attention2.bmp
new file mode 100644
index 000000000000..dc9df13aa9f9
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_attention2.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_attention3.bmp b/test/user-template/user/config/symbol/s_attention3.bmp
new file mode 100644
index 000000000000..b52cd4d4e9ad
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_attention3.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_ball-b.bmp b/test/user-template/user/config/symbol/s_ball-b.bmp
new file mode 100644
index 000000000000..aba133720c5d
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_ball-b.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_ball-g.bmp b/test/user-template/user/config/symbol/s_ball-g.bmp
new file mode 100644
index 000000000000..be71aa3045e7
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_ball-g.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_ball-r.bmp b/test/user-template/user/config/symbol/s_ball-r.bmp
new file mode 100644
index 000000000000..40f49878b75f
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_ball-r.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_ball.bmp b/test/user-template/user/config/symbol/s_ball.bmp
new file mode 100644
index 000000000000..423f065ebdf7
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_ball.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_bug.bmp b/test/user-template/user/config/symbol/s_bug.bmp
new file mode 100644
index 000000000000..ca450ae47c59
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_bug.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_clover.bmp b/test/user-template/user/config/symbol/s_clover.bmp
new file mode 100644
index 000000000000..cff9bd253a61
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_clover.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_egg.bmp b/test/user-template/user/config/symbol/s_egg.bmp
new file mode 100644
index 000000000000..7a3a5521e90b
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_egg.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_face.bmp b/test/user-template/user/config/symbol/s_face.bmp
new file mode 100644
index 000000000000..60b5db9bd3a0
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_face.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_flower.bmp b/test/user-template/user/config/symbol/s_flower.bmp
new file mode 100644
index 000000000000..b560e3240422
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_flower.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_ghost.bmp b/test/user-template/user/config/symbol/s_ghost.bmp
new file mode 100644
index 000000000000..a657110ab50b
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_ghost.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_group.bmp b/test/user-template/user/config/symbol/s_group.bmp
new file mode 100644
index 000000000000..fe80f860834d
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_group.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_halloween.bmp b/test/user-template/user/config/symbol/s_halloween.bmp
new file mode 100644
index 000000000000..d1885178325b
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_halloween.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_heart.bmp b/test/user-template/user/config/symbol/s_heart.bmp
new file mode 100644
index 000000000000..6cea8eca909e
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_heart.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_home.bmp b/test/user-template/user/config/symbol/s_home.bmp
new file mode 100644
index 000000000000..931d25dc69b0
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_home.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_lock.bmp b/test/user-template/user/config/symbol/s_lock.bmp
new file mode 100644
index 000000000000..09914cbd14ac
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_lock.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_ok-g.bmp b/test/user-template/user/config/symbol/s_ok-g.bmp
new file mode 100644
index 000000000000..8c3480ce0bdb
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_ok-g.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_ok-r.bmp b/test/user-template/user/config/symbol/s_ok-r.bmp
new file mode 100644
index 000000000000..442391512ea2
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_ok-r.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_ok.bmp b/test/user-template/user/config/symbol/s_ok.bmp
new file mode 100644
index 000000000000..ca7372011580
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_ok.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_page_b.bmp b/test/user-template/user/config/symbol/s_page_b.bmp
new file mode 100644
index 000000000000..c97bc83c2203
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_page_b.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_page_g.bmp b/test/user-template/user/config/symbol/s_page_g.bmp
new file mode 100644
index 000000000000..ddeb8b5776b4
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_page_g.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_page_y.bmp b/test/user-template/user/config/symbol/s_page_y.bmp
new file mode 100644
index 000000000000..1af36585931f
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_page_y.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_pen-b.bmp b/test/user-template/user/config/symbol/s_pen-b.bmp
new file mode 100644
index 000000000000..bc340dbe86a5
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_pen-b.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_pen-g.bmp b/test/user-template/user/config/symbol/s_pen-g.bmp
new file mode 100644
index 000000000000..fe5ae67e90f0
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_pen-g.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_pen-r.bmp b/test/user-template/user/config/symbol/s_pen-r.bmp
new file mode 100644
index 000000000000..437df472c218
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_pen-r.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_people.bmp b/test/user-template/user/config/symbol/s_people.bmp
new file mode 100644
index 000000000000..d0add8e7b1d0
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_people.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_smily_1.bmp b/test/user-template/user/config/symbol/s_smily_1.bmp
new file mode 100644
index 000000000000..0fcdfdf0dcd2
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_smily_1.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_smily_oh.bmp b/test/user-template/user/config/symbol/s_smily_oh.bmp
new file mode 100644
index 000000000000..a9e15d73cde0
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_smily_oh.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_smily_sad.bmp b/test/user-template/user/config/symbol/s_smily_sad.bmp
new file mode 100644
index 000000000000..62f140edc972
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_smily_sad.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_snow.bmp b/test/user-template/user/config/symbol/s_snow.bmp
new file mode 100644
index 000000000000..a19e235e3c5d
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_snow.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_star.bmp b/test/user-template/user/config/symbol/s_star.bmp
new file mode 100644
index 000000000000..275325f4b303
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_star.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_team.bmp b/test/user-template/user/config/symbol/s_team.bmp
new file mode 100644
index 000000000000..08fcc178eeb8
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_team.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_x-g.bmp b/test/user-template/user/config/symbol/s_x-g.bmp
new file mode 100644
index 000000000000..e014a6cb79dc
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_x-g.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_x-r.bmp b/test/user-template/user/config/symbol/s_x-r.bmp
new file mode 100644
index 000000000000..01c236860da7
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_x-r.bmp
Binary files differ
diff --git a/test/user-template/user/config/symbol/s_x.bmp b/test/user-template/user/config/symbol/s_x.bmp
new file mode 100644
index 000000000000..01cbbc1b9e48
--- /dev/null
+++ b/test/user-template/user/config/symbol/s_x.bmp
Binary files differ
diff --git a/test/user-template/user/config/webcast/common.inc b/test/user-template/user/config/webcast/common.inc
new file mode 100644
index 000000000000..f0dd463821d2
--- /dev/null
+++ b/test/user-template/user/config/webcast/common.inc
@@ -0,0 +1,110 @@
+<%
+
+public const cnRefreshTime = 5 ' refresh time in seconds
+
+' filename for file with all pictures and file containing the name of the current picture
+public const csFilePicture= "picture.txt"
+public const csFileCurrent= "currpic.txt"
+
+' constants for file-access
+const ForReading = 1
+const ForWriting = 2
+
+' new-line delimiter
+Dim FILE_LINE_DELIMITER
+FILE_LINE_DELIMITER = vbCRLF
+
+'/**
+' * Get data from file using a given separator.
+' */
+function File_getDataVirtual( sFilename, sServerPath, sSeperator )
+ call Err.Clear()
+
+ Dim aFSObject, sServerFileName
+
+ Set aFSObject = CreateObject("Scripting.FileSystemObject")
+ sServerFileName = aFSObject.BuildPath( Server.MapPath( sServerPath ), sFileName )
+
+ File_getDataVirtual = ""
+ if Err.Number = 0 then
+ File_getDataVirtual = File_read( sServerFileName )
+ If Not IsNull(File_getDataVirtual) Then
+ File_getDataVirtual = Replace( File_getDataVirtual, FILE_LINE_DELIMITER, sSeperator)
+ File_getDataVirtual = Split( File_getDataVirtual, sSeperator)
+ End If
+ end if
+end function
+
+'/**
+' * Get data from a file
+' */
+function File_read( sFilename )
+ call Err.Clear()
+
+ Dim aFSObject, aStream
+
+ Set aFSObject = CreateObject( "Scripting.FileSystemObject" )
+ Set aStream = aFSObject.OpenTextFile( sFilename, ForReading )
+
+ while not aStream.AtEndOfStream
+ File_read = File_read + aStream.ReadLine + FILE_LINE_DELIMITER
+ wend
+
+ aStream.Close
+end function
+
+'/**
+' * Get data from a file given by filename and virtual pathname
+' */
+Function File_readVirtual(sFileName, sServerPath)
+ call Err.Clear()
+
+ Dim aFSObject, sServerFileName
+
+ Set aFSObject = CreateObject("Scripting.FileSystemObject")
+ sServerFileName = aFSObject.BuildPath( Server.MapPath( sServerPath ), sFileName )
+
+ File_readVirtual = ""
+ if Err.Number = 0 then
+ File_readVirtual = File_read( sServerFileName )
+ end if
+End Function
+
+'/**
+' * Write data to a file
+' */
+function File_write( sFileName, sText )
+ call Err.Clear()
+
+ Dim aFSObject, aFile
+
+ Set aFSObject = CreateObject( "Scripting.FileSystemObject" )
+ if Err.Number = 0 then
+ Set aFile = aFSObject.CreateTextFile( sFileName, TRUE )
+ if Err.Number = 0 then
+ aFile.Write( sText )
+ aFile.Close
+ end if
+ end if
+
+ File_write = ( Err.Number = 0 )
+end function
+
+'/**
+' * Write data to a file given by filename and virtual pathname
+' */
+function File_writeVirtual( sFileName, sServerPath, sText )
+ call Err.Clear()
+
+ Dim aFSObject, aServerFile
+
+ Set aFSObject = CreateObject( "Scripting.FileSystemObject" )
+ aServerFile = aFSObject.BuildPath( Server.MapPath( sServerPath ), sFileName )
+
+ If Err.Number = 0 Then
+ File_writeVirtual = File_write( aServerFile, sText )
+ else
+ File_writeVirtual = false
+ End If
+end function
+%> \ No newline at end of file
diff --git a/test/user-template/user/config/webcast/common.pl b/test/user-template/user/config/webcast/common.pl
new file mode 100644
index 000000000000..fc4a4866a6d7
--- /dev/null
+++ b/test/user-template/user/config/webcast/common.pl
@@ -0,0 +1,48 @@
+package common;
+
+$REFRESH_TIME = 5;
+
+sub File_read
+{
+ $sFilename = @_[ 0 ];
+
+ @aFileContentList = "";
+ open( F_CURRPIC, "<" . $sFilename ) || "Could not open file " . $sFilename . " !<BR>\n";
+ while( <F_CURRPIC> )
+ {
+ push( @aFileContentList, $_ );
+ }
+ close( F_CURRPIC );
+
+ return @aFileContentList;
+} ##File_read
+
+
+sub HTTP_getRequest
+{
+ # post- or get- method ?
+ if( $ENV{ 'REQUEST_METHOD' } eq 'GET' )
+ {
+ # get parameters from querystring (get)
+ $sRequest = $ENV{ 'QUERY_STRING' }
+ }
+ else
+ {
+ # get parameters from stdin (post)
+ read( STDIN, $sRequest, $ENV{ 'CONTENT_LENGTH' } );
+ }
+ # process parameters
+ @aRequestList = split( /&/, $sRequest );
+ foreach $Feld ( @aRequestList )
+ {
+ ( $name, $sValue ) = split( /=/, $Feld );
+ $sValue =~ tr/+/ /;
+ $sValue =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
+ $sValue =~ s/<!--(.|\n)*-->//g;
+ $aRequestMap{ $name } = $sValue;
+ }
+
+ return %aRequestMap;
+} ##HTTP_getRequest
+
+1; \ No newline at end of file
diff --git a/test/user-template/user/config/webcast/edit.asp b/test/user-template/user/config/webcast/edit.asp
new file mode 100644
index 000000000000..654a441fe357
--- /dev/null
+++ b/test/user-template/user/config/webcast/edit.asp
@@ -0,0 +1,9 @@
+<HTML>
+<HEAD>
+ <TITLE>$$1</TITLE>
+</HEAD>
+<FRAMESET ROWS="90%,10%" FRAMEBORDER=yes>
+ <FRAME name="view" src="webcast.asp">
+ <FRAME name="edit" src="editpic.asp">
+</FRAMESET>
+</HTML> \ No newline at end of file
diff --git a/test/user-template/user/config/webcast/edit.pl b/test/user-template/user/config/webcast/edit.pl
new file mode 100644
index 000000000000..e1888f7fef3e
--- /dev/null
+++ b/test/user-template/user/config/webcast/edit.pl
@@ -0,0 +1,18 @@
+<HTML>
+
+<HEAD>
+ <TITLE>$$1</TITLE>
+</HEAD>
+
+<FRAMESET ROWS="*,42,2" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0>
+ <FRAME SRC="$$3show.pl" NAME="frame1" SCROLLING=yes RESIZE MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0>
+ <FRAME SRC="$$3editpic.pl" NAME="frame3" SCROLLING=yes RESIZE MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0>
+ <FRAME SRC="$$3poll.pl" NAME="frame2" SCROLLING=no NORESIZE MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0>
+</FRAMESET>
+
+<NOFRAMES>
+
+<BODY BGCOLOR="white">
+ <META HTTP-EQUIV="-REFRESH" CONTENT="1;URL=$$3show.pl">
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/test/user-template/user/config/webcast/editpic.asp b/test/user-template/user/config/webcast/editpic.asp
new file mode 100644
index 000000000000..34a4a51e4473
--- /dev/null
+++ b/test/user-template/user/config/webcast/editpic.asp
@@ -0,0 +1,58 @@
+<%
+ Option Explicit
+ Response.Expires = 0
+ Response.Buffer = True
+%>
+
+<!-- #include file = "common.inc" -->
+
+
+<%
+ Dim aPictureArray, nPic, nUpper
+
+ aPictureArray = File_getDataVirtual( csFilePicture, ".", ";" )
+ nPic = File_readVirtual( "currpic.txt", "." )
+ nUpper = CInt( (UBound(aPictureArray) - 1 ) / 2)
+%>
+
+<HTML>
+<HEAD>
+</HEAD>
+<BODY>
+ <FORM action="savepic.asp" method=get>
+ <%
+ if isNumeric(nPic) then
+ if (CInt( nPic ) >= CInt( (UBound(aPictureArray ) - 1 ) / 2 )) then
+ nPic = nUpper
+ end if
+ else
+ nPic = nUpper
+ end if
+
+
+ if CInt( nPic ) > 1 then
+ %>
+ <INPUT type=submit name="Auswahl" value="-"></INPUT>
+ <%
+ else
+ %>
+ <INPUT type=button value=" "></INPUT>
+ <%
+ end if
+ %>
+ <INPUT type=text name="CurrPic" value="<% = nPic %>" SIZE=3></INPUT>
+ <%
+ if CInt( nPic ) < CInt( nUpper ) then
+ %>
+ <INPUT type=submit name="Auswahl" value="+"></INPUT>
+ <%
+ else
+ %>
+ <INPUT type=button value=" "></INPUT>
+ <%
+ end if
+ %>
+ <INPUT type=submit name="Auswahl" value="$$2"></INPUT>
+ </FORM>
+</BODY>
+</HTML>
diff --git a/test/user-template/user/config/webcast/editpic.pl b/test/user-template/user/config/webcast/editpic.pl
new file mode 100644
index 000000000000..834421601b77
--- /dev/null
+++ b/test/user-template/user/config/webcast/editpic.pl
@@ -0,0 +1,40 @@
+#!/usr/bin/perl
+
+require "common.pl";
+
+print "Content-type: text/html\n\n";
+print "<HTML>\n";
+
+print "<HEAD>\n";
+print "<title>editpic.pl</title>";
+print "</HEAD>\n";
+
+print "<BODY>\n";
+ $sCurrPic = join( "", common::File_read( "currpic.txt" ) );
+ @aPictureArray = common::File_read( "picture.txt" );
+ $nPictureArrayLen = @aPictureArray;
+ print "<FORM action=\"savepic.pl\" method=get>\n";
+ if( abs( $sCurrPic ) > 1 )
+ {
+ print "<INPUT type=submit name=\"Auswahl\" value=\"-\"></INPUT>\n";
+ }
+ else
+ {
+ print "<INPUT type=button value=\" \"></INPUT>\n";
+ }
+ print "<INPUT type=text name=\"CurrPic\" value=\"";
+ print $sCurrPic;
+ print "\" SIZE=3></INPUT>\n";
+ if( abs( $sCurrPic ) < ( $nPictureArrayLen - 1 ) )
+ {
+ print "<INPUT type=submit name=\"Auswahl\" value=\"+\"></INPUT>\n";
+ }
+ else
+ {
+ print "<INPUT type=button value=\" \"></INPUT>\n";
+ }
+ print "<INPUT type=submit name=\"Auswahl\" value=\"$$2\"></INPUT>\n";
+ print "</FORM>\n";
+print "</BODY>\n";
+
+print "</HTML>\n";
diff --git a/test/user-template/user/config/webcast/index.pl b/test/user-template/user/config/webcast/index.pl
new file mode 100644
index 000000000000..1fb265f54092
--- /dev/null
+++ b/test/user-template/user/config/webcast/index.pl
@@ -0,0 +1,17 @@
+<HTML>
+
+<HEAD>
+ <TITLE>$$1</TITLE>
+</HEAD>
+
+<FRAMESET ROWS="*" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0>
+ <FRAME SRC="$$3webcast.pl" NAME="frame1" SCROLLING=yes RESIZE MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0>
+</FRAMESET>
+
+<NOFRAMES>
+
+<BODY BGCOLOR="white">
+ <META HTTP-EQUIV="-REFRESH" CONTENT="1;URL=$$3webcast.pl">
+</BODY>;
+
+</HTML> \ No newline at end of file
diff --git a/test/user-template/user/config/webcast/poll.asp b/test/user-template/user/config/webcast/poll.asp
new file mode 100644
index 000000000000..dd1a9bfe0022
--- /dev/null
+++ b/test/user-template/user/config/webcast/poll.asp
@@ -0,0 +1,36 @@
+<%
+ Option Explicit
+ Response.Expires = 0
+%>
+
+<!-- #include file = "common.inc" -->
+
+<HTML>
+
+<HEAD>
+ <META http-equiv="refresh" CONTENT="<% = cnRefreshTime %>">
+</HEAD>
+
+<%
+ ' get current picture id
+ Dim nGIFID
+
+ nGifID = File_getDataVirtual( csFileCurrent, ".", ";" )( 0 )
+
+ ' a new picture was chosen ?
+ if nGIFID <> Session( "GIFID" ) then
+ ' then store the id of the new picture and show it
+ Session( "GIFID" ) = nGIFID
+ %>
+ <BODY bgcolor="red" onLoad="parent.frame1.location.href='./show.asp?<%= nGIFID %>'">
+ <%
+ else
+ %>
+ <BODY bgcolor="green">
+ <%
+ end if
+%>
+
+</BODY>
+
+</HTML> \ No newline at end of file
diff --git a/test/user-template/user/config/webcast/poll.pl b/test/user-template/user/config/webcast/poll.pl
new file mode 100644
index 000000000000..08a31c3e22b4
--- /dev/null
+++ b/test/user-template/user/config/webcast/poll.pl
@@ -0,0 +1,32 @@
+#!/usr/bin/perl
+
+require "common.pl";
+
+print "Content-type: text/html\n\n";
+print "<HTML>";
+
+# get current and last shown picture id
+$sCurrPic = join( "", common::File_read( "currpic.txt" ) );
+
+%aRequestMap = common::HTTP_getRequest();
+$sLastPic = $aRequestMap{ "LastPic" };
+
+print "<HEAD>";
+ print "<META http-equiv=\"refresh\" CONTENT=\"" . $common::REFRESH_TIME . "; URL=poll.pl?LastPic=" . $sCurrPic . "\">";
+print "</HEAD>";
+
+#' a new picture was chosen ?
+if( $sLastPic ne $sCurrPic )
+{
+ # then show the new picture
+ print "<BODY bgcolor=\"red\" onLoad=\"parent.frame1.location.href='./show.pl?" . $sCurrPic . "'\">";
+}
+else
+{
+ # otherwise do nothing
+ print "<BODY bgcolor=\"green\">";
+}
+
+print "</BODY>";
+
+print "</HTML>"; \ No newline at end of file
diff --git a/test/user-template/user/config/webcast/savepic.asp b/test/user-template/user/config/webcast/savepic.asp
new file mode 100644
index 000000000000..71adefc4f391
--- /dev/null
+++ b/test/user-template/user/config/webcast/savepic.asp
@@ -0,0 +1,39 @@
+<%
+ Option Explicit
+ Response.Expires = 0
+ Response.Buffer = True
+%>
+
+<!-- #include file = "common.inc" -->
+
+<%
+ ' get new picture
+ Dim sCurrPic,aPictureArray, nUpper, nCurrPic
+
+ aPictureArray = File_getDataVirtual( csFilePicture, ".", ";" )
+ nUpper = CInt( (UBound(aPictureArray) - 1 ) / 2)
+
+ sCurrPic = Request( "CurrPic" )
+
+ ' check if + or - was pressed
+ select case Request( "Auswahl" )
+ case "+"
+ if isNumeric( sCurrPic ) then
+ sCurrPic = CStr( CLng( sCurrPic ) + 1 )
+ end if
+ case "-"
+ if isNumeric( sCurrPic ) then
+ sCurrPic = CStr( CLng( sCurrPic ) - 1 )
+ end if
+ end select
+
+ ' save picture name
+ if isNumeric( sCurrPic ) then
+ if (CInt( sCurrPic ) > 0) and ( CInt( sCurrPic ) <= nUpper ) then
+ call File_writeVirtual( "currpic.txt", ".", sCurrPic )
+ end if
+ end if
+
+ ' return to edit page
+ Response.Redirect( "./editpic.asp" )
+%>
diff --git a/test/user-template/user/config/webcast/savepic.pl b/test/user-template/user/config/webcast/savepic.pl
new file mode 100644
index 000000000000..8d545aa108b0
--- /dev/null
+++ b/test/user-template/user/config/webcast/savepic.pl
@@ -0,0 +1,41 @@
+#!/usr/bin/perl
+
+require "common.pl";
+
+%aRequestMap = common::HTTP_getRequest();
+
+# get new picture
+$sCurrPic = $aRequestMap{ "CurrPic" };
+
+@aPictureArray = common::File_read( "picture.txt" );
+$nPictureArrayLen = @aPictureArray;
+
+# check if + or - was pressed
+if( $aRequestMap{ "Auswahl" } eq "+" )
+{
+ $sCurrPic = abs( $sCurrPic ) + 1;
+}
+
+if( $aRequestMap{ "Auswahl" } eq "-" )
+{
+ $sCurrPic = abs( $sCurrPic ) - 1;
+}
+
+# save picture name
+if( (abs( $sCurrPic ) > 0) && ( abs( $sCurrPic ) < ( $nPictureArrayLen ) ) )
+{
+ open( F_CURRPIC, ">currpic.txt");
+ print F_CURRPIC abs( $sCurrPic );
+ close( F_CURRPIC );
+}
+
+# return to edit page
+print "Content-type: text/html\n\n";
+print "<HTML>\n<HEAD>\n";
+print "<META http-equiv=\"refresh\" CONTENT=\"0 ;URL=editpic.pl\">";
+print "<title>savepic.pl</title>";
+print "</HEAD>\n";
+print "<BODY>\n";
+print "</BODY>\n";
+print "</HTML>\n";
+%>
diff --git a/test/user-template/user/config/webcast/show.asp b/test/user-template/user/config/webcast/show.asp
new file mode 100644
index 000000000000..b66103cc6edf
--- /dev/null
+++ b/test/user-template/user/config/webcast/show.asp
@@ -0,0 +1,42 @@
+<%
+ Option Explicit
+ Response.Expires = 0
+%>
+
+<!-- #include file = "common.inc" -->
+
+<%
+ Dim sGifName1, sGifName2, nGifID, aPictureArray
+
+ nGifID = Session( "GIFID" )
+
+ ' get current and next picture
+ aPictureArray = File_getDataVirtual( csFilePicture, ".", ";" )
+
+ ' not last picture or wrong input ?
+ If CInt( nGifID ) < UBound( aPictureArray ) / 2 Then
+ sGifName1 = aPictureArray( ( nGifID - 1 ) * 2 + 1 )
+ sGifName2 = aPictureArray( ( nGifID ) * 2 + 1 )
+ Else
+ nGifID = CInt( UBound( aPictureArray ) / 2 )
+ sGifName1 = aPictureArray( ( nGifID - 1 ) * 2 + 1 )
+ sGifName2 = sGifName1
+ End If
+%>
+
+<HTML>
+
+<HEAD>
+ <TITLE>$$1</TITLE>
+</HEAD>
+
+<BODY bgcolor="white">
+ <table width=100% height=99%>
+ <tr valign=center><td align=center>
+ <IMG src="<% = sGifName1 %>" width=$$4 height=$$5 border=0>
+ <br><IMG src="<% = sGifName2 %>" width=1 height=1 border=0>
+ </td></tr>
+ </table>
+</BODY>
+
+</HTML> \ No newline at end of file
diff --git a/test/user-template/user/config/webcast/show.pl b/test/user-template/user/config/webcast/show.pl
new file mode 100644
index 000000000000..9687bd995538
--- /dev/null
+++ b/test/user-template/user/config/webcast/show.pl
@@ -0,0 +1,39 @@
+#!/usr/bin/perl
+
+require "common.pl";
+
+print "Content-type: text/html\n\n";
+
+# get current and next picture
+$sCurrPic = join( "", common::File_read( "currpic.txt" ) );
+@aPictureArray = common::File_read( "picture.txt" );
+
+# not last picture or wrong input ?
+if( abs( $sCurrPic ) > 0 )
+{
+ $nCurrPic = abs( $sCurrPic );
+ $nPictureArrayLen = @aPictureArray;
+ if( $nCurrPic < $nPictureArrayLen )
+ {
+ $sPictureName1 = ( split( ";", @aPictureArray[ $nCurrPic ] ) )[ 1 ];
+ $sPictureName2 = ( split( ";", @aPictureArray[ $nCurrPic + 1 ] ) )[ 1 ];
+ }
+ else
+ {
+ $sPictureName1 = ( split( ";", @aPictureArray[ $nCurrPic ] ) )[ 1 ];
+ $sPictureName2 = $sPictureName1;
+ }
+}
+
+print "<HTML>";
+
+print "<HEAD>";
+ print "<TITLE>$$1</TITLE>";
+print "</HEAD>";
+
+print "<BODY bgcolor=\"white\">";
+ print "<P ALIGN=CENTER><IMG src=\"" . $sPictureName1 . "\" width=$$4 height=$$5 border=0>";
+ print "<P><IMG src=\"" . $sPictureName2 . "\" width=1 height=1 border=0>";
+print "</BODY>";
+
+print "</HTML>"; \ No newline at end of file
diff --git a/test/user-template/user/config/webcast/webcast.asp b/test/user-template/user/config/webcast/webcast.asp
new file mode 100644
index 000000000000..f3c3af760eda
--- /dev/null
+++ b/test/user-template/user/config/webcast/webcast.asp
@@ -0,0 +1,28 @@
+<%
+ Option Explicit
+ Response.Expires = 0
+%>
+
+<!-- #include file = "common.inc" -->
+
+<%
+ Session( "GIFID" ) = File_getDataVirtual( csFileCurrent, ".", ";" )( 0 )
+%>
+
+<HTML>
+
+<HEAD>
+</HEAD>
+
+<FRAMESET ROWS="*,2" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0>
+ <FRAME SRC="./show.asp" NAME="frame1" SCROLLING=yes RESIZE MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0>
+ <FRAME SRC="./poll.asp" NAME="frame2" SCROLLING=no NORESIZE MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0>
+</FRAMESET>
+
+<NOFRAMES>
+
+<BODY BGCOLOR="white">
+ <META HTTP-EQUIV="-REFRESH" CONTENT="1;URL=./show.asp">
+</BODY>
+
+</HTML> \ No newline at end of file
diff --git a/test/user-template/user/config/webcast/webcast.pl b/test/user-template/user/config/webcast/webcast.pl
new file mode 100644
index 000000000000..299c9480e330
--- /dev/null
+++ b/test/user-template/user/config/webcast/webcast.pl
@@ -0,0 +1,21 @@
+#!/usr/bin/perl
+
+print "Content-type: text/html\n\n";
+
+print "<HTML>";
+
+print "<HEAD>";
+print "</HEAD>";
+
+print "<FRAMESET ROWS=\"*,2\" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0>";
+ print "<FRAME SRC=\"./show.pl\" NAME=\"frame1\" SCROLLING=yes RESIZE MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0>";
+ print "<FRAME SRC=\"./poll.pl\" NAME=\"frame2\" SCROLLING=no NORESIZE MARGINWIDTH=0 MARGINHEIGHT=0 FRAMEBORDER=0>";
+print "</FRAMESET>";
+
+print "<NOFRAMES>";
+
+print "<BODY BGCOLOR=\"white\">";
+ print "<META HTTP-EQUIV=\"-REFRESH\" CONTENT=\"1;URL=./show.pl\">";
+print "</BODY>";
+
+print "</HTML>"; \ No newline at end of file
diff --git a/test/user-template/user/config/wizard/form/styles/beige.css b/test/user-template/user/config/wizard/form/styles/beige.css
new file mode 100644
index 000000000000..a1a2c4d29eba
--- /dev/null
+++ b/test/user-template/user/config/wizard/form/styles/beige.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #FFCC99;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #FFCC99;
+}
+.tcolor {
+ background-color: #FF9933;
+}
+.ccolor {
+ background-color: #FFCC99;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #003399;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #0099FF;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/form/styles/bgr.css b/test/user-template/user/config/wizard/form/styles/bgr.css
new file mode 100644
index 000000000000..72a241b0a1cd
--- /dev/null
+++ b/test/user-template/user/config/wizard/form/styles/bgr.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #660033;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #006699;
+}
+.tcolor {
+ background-color: #FFFF99;
+}
+.ccolor {
+ background-color: #0066CC;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0033CC;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0066FF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/form/styles/dark.css b/test/user-template/user/config/wizard/form/styles/dark.css
new file mode 100644
index 000000000000..dcff59016438
--- /dev/null
+++ b/test/user-template/user/config/wizard/form/styles/dark.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FF0000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #330000;
+}
+.tcolor {
+ background-color: #006633;
+}
+.ccolor {
+ background-color: #003300;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #EEEEEE;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #CCCCCC;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/form/styles/grey.css b/test/user-template/user/config/wizard/form/styles/grey.css
new file mode 100644
index 000000000000..bb69c13683e5
--- /dev/null
+++ b/test/user-template/user/config/wizard/form/styles/grey.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #CCCCCC;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #EEEEEE;
+}
+.tcolor {
+ background-color: #EEEEEE;
+}
+.ccolor {
+ background-color: #BBBBBB;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0033CC;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0099FF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/form/styles/ibg.css b/test/user-template/user/config/wizard/form/styles/ibg.css
new file mode 100644
index 000000000000..22837ee476f7
--- /dev/null
+++ b/test/user-template/user/config/wizard/form/styles/ibg.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #99CCCC;
+}
+.tcolor {
+ background-color: #DDDDDD;
+}
+.ccolor {
+ background-color: #99CCFF;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #003399;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #0066CC;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FF9900;
+}
diff --git a/test/user-template/user/config/wizard/form/styles/ice.css b/test/user-template/user/config/wizard/form/styles/ice.css
new file mode 100644
index 000000000000..3598cb509f20
--- /dev/null
+++ b/test/user-template/user/config/wizard/form/styles/ice.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #CCCCCC;
+}
+.tcolor {
+ background-color: #00CCFF;
+}
+.ccolor {
+ background-color: #CCCCCC;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #0033CC;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #0066FF;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/form/styles/orange.css b/test/user-template/user/config/wizard/form/styles/orange.css
new file mode 100644
index 000000000000..83c9d9e3e0e1
--- /dev/null
+++ b/test/user-template/user/config/wizard/form/styles/orange.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #660000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #FF9966;
+}
+.tcolor {
+ background-color: #FF6600;
+}
+.ccolor {
+ background-color: #660033;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #000099;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #0066CC;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #CC0000;
+}
diff --git a/test/user-template/user/config/wizard/form/styles/red.css b/test/user-template/user/config/wizard/form/styles/red.css
new file mode 100644
index 000000000000..bf36a6cfe0fc
--- /dev/null
+++ b/test/user-template/user/config/wizard/form/styles/red.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFF00;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FF0000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #660033;
+}
+.tcolor {
+ background-color: #330000;
+}
+.ccolor {
+ background-color: #660033;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FFFF00;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #00CCFF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/form/styles/violet.css b/test/user-template/user/config/wizard/form/styles/violet.css
new file mode 100644
index 000000000000..6a15f204cce0
--- /dev/null
+++ b/test/user-template/user/config/wizard/form/styles/violet.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFF00;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FF0000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #CCCCCC;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #660066;
+}
+.tcolor {
+ background-color: #330066;
+}
+.ccolor {
+ background-color: #330033;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FFFF00;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0099FF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/form/styles/water.css b/test/user-template/user/config/wizard/form/styles/water.css
new file mode 100644
index 000000000000..313dabd6e67a
--- /dev/null
+++ b/test/user-template/user/config/wizard/form/styles/water.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #CCCCCC;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #003399;
+}
+.tcolor {
+ background-color: #EEEEEE;
+}
+.ccolor {
+ background-color: #0066CC;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #0033CC;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0066CC;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #CC0000;
+}
diff --git a/test/user-template/user/config/wizard/web/buttons/glas-blue.zip b/test/user-template/user/config/wizard/web/buttons/glas-blue.zip
new file mode 100644
index 000000000000..93a380b6c522
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/glas-blue.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/buttons/glas-green.zip b/test/user-template/user/config/wizard/web/buttons/glas-green.zip
new file mode 100644
index 000000000000..af1543545442
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/glas-green.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/buttons/glas-red.zip b/test/user-template/user/config/wizard/web/buttons/glas-red.zip
new file mode 100644
index 000000000000..914514c7f166
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/glas-red.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/buttons/round-gorilla.zip b/test/user-template/user/config/wizard/web/buttons/round-gorilla.zip
new file mode 100644
index 000000000000..727df6b92e52
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/round-gorilla.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/buttons/round-white.zip b/test/user-template/user/config/wizard/web/buttons/round-white.zip
new file mode 100644
index 000000000000..9c5f1b2aaa3e
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/round-white.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/buttons/simple.zip b/test/user-template/user/config/wizard/web/buttons/simple.zip
new file mode 100644
index 000000000000..60c0b095702a
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/simple.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/buttons/square-blue.zip b/test/user-template/user/config/wizard/web/buttons/square-blue.zip
new file mode 100644
index 000000000000..86c33465fb6d
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/square-blue.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/buttons/square-gray.zip b/test/user-template/user/config/wizard/web/buttons/square-gray.zip
new file mode 100644
index 000000000000..31713b7975c3
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/square-gray.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/buttons/square-green.zip b/test/user-template/user/config/wizard/web/buttons/square-green.zip
new file mode 100644
index 000000000000..6962225306d0
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/square-green.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/buttons/square-red.zip b/test/user-template/user/config/wizard/web/buttons/square-red.zip
new file mode 100644
index 000000000000..8199cbe736b6
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/square-red.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/buttons/square-yellow.zip b/test/user-template/user/config/wizard/web/buttons/square-yellow.zip
new file mode 100644
index 000000000000..27af86075ee5
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/buttons/square-yellow.zip
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/images/calc.gif b/test/user-template/user/config/wizard/web/images/calc.gif
new file mode 100644
index 000000000000..36f89628f6d3
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/images/calc.gif
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/images/draw.gif b/test/user-template/user/config/wizard/web/images/draw.gif
new file mode 100644
index 000000000000..63096eafe656
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/images/draw.gif
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/images/fls.gif b/test/user-template/user/config/wizard/web/images/fls.gif
new file mode 100644
index 000000000000..e0f45ed49fd4
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/images/fls.gif
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/images/graphics.gif b/test/user-template/user/config/wizard/web/images/graphics.gif
new file mode 100644
index 000000000000..8cdb2458a82f
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/images/graphics.gif
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/images/html.gif b/test/user-template/user/config/wizard/web/images/html.gif
new file mode 100644
index 000000000000..231fe6dccb74
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/images/html.gif
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/images/impress.gif b/test/user-template/user/config/wizard/web/images/impress.gif
new file mode 100644
index 000000000000..8e0df7c2fe38
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/images/impress.gif
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/images/media.gif b/test/user-template/user/config/wizard/web/images/media.gif
new file mode 100644
index 000000000000..9b61737f1243
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/images/media.gif
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/images/other.gif b/test/user-template/user/config/wizard/web/images/other.gif
new file mode 100644
index 000000000000..29e7fcac574f
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/images/other.gif
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/images/pdf.gif b/test/user-template/user/config/wizard/web/images/pdf.gif
new file mode 100644
index 000000000000..c814d44911c9
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/images/pdf.gif
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/images/writer.gif b/test/user-template/user/config/wizard/web/images/writer.gif
new file mode 100644
index 000000000000..c79ef4fc7aa1
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/images/writer.gif
Binary files differ
diff --git a/test/user-template/user/config/wizard/web/layouts/diagonal/index.html.xsl b/test/user-template/user/config/wizard/web/layouts/diagonal/index.html.xsl
new file mode 100644
index 000000000000..516e35cb7dd1
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/diagonal/index.html.xsl
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <xsl:include href="../layout.xsl"/>
+
+
+ <!-- =============================
+ HTML BODY
+ ================================== -->
+
+ <xsl:template name="body">
+ <xsl:call-template name="title"/>
+ <xsl:call-template name="toc"/>
+ </xsl:template>
+
+
+ <xsl:template name="toc">
+ <!--
+ @ pre toc html here
+ -->
+
+ <xsl:apply-templates select="/session/content/document"/>
+
+ <!--
+ @ post toc html here
+ -->
+
+ </xsl:template>
+
+ <!-- also when using groups, in the end it comes
+ to this template, which is called for each document -->
+ <xsl:template match="document">
+ <xsl:variable name="i" select="position() - 1"/>
+ <xsl:variable name="x" select="( $i mod 3 ) * 250 + 50"/>
+ <xsl:variable name="y" select="( $i mod 3 ) * 50 + (floor( $i div 3 )) * 300 + 80"/>
+ <div style="position:absolute; padding:15px; left:{$x}px; top:{$y}px; width:170px; height:220px; z-index:1" class="tcolor">
+ <div align="center">
+
+ <xsl:apply-templates select="@icon"/>
+ <p>
+ <xsl:apply-templates select="@title"/>
+ <xsl:apply-templates select="@description"/>
+ <xsl:apply-templates select="@author"/>
+ <xsl:apply-templates select="@create-date"/>
+ <xsl:apply-templates select="@update-date"/>
+ <xsl:apply-templates select="@filename"/>
+ <xsl:apply-templates select="@format"/>
+ <xsl:apply-templates select="@pages"/>
+ <xsl:apply-templates select="@size"/>
+ </p>
+ </div>
+ </div>
+ </xsl:template>
+
+
+
+ <xsl:template name="document-group">
+ <xsl:param name="group"/>
+
+ <!-- @ pre group code here -->
+
+ <!-- - - -->
+
+ <xsl:variable name="count" select="(position() - 1) * $group + 1"/>
+
+ <xsl:for-each select="/session/content/document[$count &lt;= position() and position() &lt; ($count + $group)]">
+
+ <xsl:apply-templates select="."/>
+
+ </xsl:for-each>
+
+ <!-- @ post group code here -->
+
+ <!-- - - -->
+
+ </xsl:template>
+
+
+ <xsl:template name="title">
+ <!--
+ @ Pre title html code here
+ -->
+ <div style="position:absolute; left:280px; top:8px; width:220px; z-index:2; padding:10px" class="ccolor">
+ <div align="center" class="toctitle">
+ <xsl:value-of select="/session/general-info/@title"/>
+ <!--
+ @ Post title html code here
+ -->
+ </div>
+ </div>
+ </xsl:template>
+
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_bottom/index.html.xsl b/test/user-template/user/config/wizard/web/layouts/frame_bottom/index.html.xsl
new file mode 100644
index 000000000000..9e6a892ffcdb
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_bottom/index.html.xsl
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+
+ <!-- =============================
+ ROOT
+ ================================== -->
+
+
+ <xsl:template match="/">
+ <html>
+ <xsl:call-template name="head"/>
+ <xsl:call-template name="frameset"/>
+ </html>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML FRAMES
+ ================================== -->
+
+
+ <xsl:template name="frameset">
+ <frameset rows="*,281" cols="*" framespacing="0" frameborder="NO" border="0">
+ <frame src="mainframe.html" name="mainframe"/>
+ <frame src="tocframe.html" name="tocframe" scrolling="Auto" noresize=""/>
+ </frameset>
+ <noframes/>
+ <body>
+ </body>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML HEAD
+
+ this section should not be changed
+ ================================== -->
+
+ <xsl:template name="head">
+ <head>
+ <title>
+ <xsl:value-of select="/session/general-info/@title"/>
+ </title>
+ <!-- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -->
+ <meta name="description" content="{/session/general-info/@description}"/>
+ <meta name="keywords" content="{/session/general-info/@keywords}"/>
+ <meta name="author" content="{/session/general-info/@author}"/>
+ <meta name="email" content="{/session/general-info/@email}"/>
+ <meta name="copyright" content="{/session/general-info/@copyright}"/>
+ <!-- create date?
+ update date?
+ fav icon?
+ -->
+ <link REL="shortcut icon" href="images/favicon.ico" type="image/ico"/>
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+
+ </head>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_bottom/mainframe.html b/test/user-template/user/config/wizard/web/layouts/frame_bottom/mainframe.html
new file mode 100644
index 000000000000..ab1613b6d1dc
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_bottom/mainframe.html
@@ -0,0 +1,7 @@
+<html>
+ <head>
+ <title></title>
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+ </head>
+ <body></body>
+</html>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_bottom/tocframe.html.xsl b/test/user-template/user/config/wizard/web/layouts/frame_bottom/tocframe.html.xsl
new file mode 100644
index 000000000000..b45cc81cf7e6
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_bottom/tocframe.html.xsl
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- =================================================
+
+This template is a skeleton for single level TOC pages
+Do not overwrite this ! copy it and complete the missing
+code.
+
+I use the @ character whereever there is a missing code, so
+you can use a simple find to navigate and find the
+places...
+
+====================================================== -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <xsl:include href="../layout.xsl"/>
+
+
+
+ <!-- =============================
+ HTML BODY
+ ================================== -->
+
+ <xsl:template name="body">
+ <xsl:call-template name="toc"/>
+ </xsl:template>
+
+
+ <xsl:template name="toc">
+ <xsl:variable name="doc-count" select="count(/session/content/document)"/>
+
+ <table width="{$doc-count * 250}" height="250" border="0" cellpadding="0" cellspacing="0" class="tcolor">
+
+ <tr>
+ <td height="50" colspan="{$doc-count * 2 + 2}" class="toctitle">
+ <xsl:value-of select="/session/general-info/@title"/>
+ </td>
+ </tr>
+
+ <!-- use this alternative if you do not need to use groups
+ (uncomment to use - and do not forget to comment the group
+ option above...)-->
+
+ <tr>
+ <xsl:apply-templates select="/session/content/document"/>
+ <td colspan="2"></td>
+ </tr>
+
+ </table>
+
+ <!--
+ @ post toc html here
+ -->
+
+ <p class="colback"> </p>
+
+ </xsl:template>
+
+ <!-- also when using groups, in the end it comes
+ to this template, which is called for each document -->
+ <xsl:template match="document">
+
+ <!-- image cell -->
+
+ <td width="50" height="200" align="center">
+ <p>
+ <xsl:apply-templates select="@icon"/>
+ </p>
+ </td>
+
+ <td width="200"><p>
+
+ <xsl:apply-templates select="@title">
+ <xsl:with-param name="target" select="'mainframe'"/>
+ </xsl:apply-templates>
+
+ <xsl:apply-templates select="@description"/>
+ <xsl:apply-templates select="@author"/>
+ <xsl:apply-templates select="@create-date"/>
+ <xsl:apply-templates select="@update-date"/>
+ <xsl:apply-templates select="@filename"/>
+ <xsl:apply-templates select="@format"/>
+ <xsl:apply-templates select="@pages"/>
+ <xsl:apply-templates select="@size"/>
+
+
+ </p> </td>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_left/index.html.xsl b/test/user-template/user/config/wizard/web/layouts/frame_left/index.html.xsl
new file mode 100644
index 000000000000..a3d0fe9c15d2
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_left/index.html.xsl
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+
+ <!-- =============================
+ ROOT
+ ================================== -->
+
+
+ <xsl:template match="/">
+ <html>
+ <xsl:call-template name="head"/>
+ <xsl:call-template name="frameset"/>
+ </html>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML FRAMES
+ ================================== -->
+
+
+ <xsl:template name="frameset">
+ <frameset rows="*" cols="284,*" framespacing="0" frameborder="NO" border="0">
+ <frame src="tocframe.html" name="tocframe" scrolling="Auto" noresize=""/>
+ <frame src="mainframe.html" name="mainframe"/>
+ </frameset>
+ <noframes/>
+ <body>
+ </body>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML HEAD
+
+ this section should not be changed
+ ================================== -->
+
+ <xsl:template name="head">
+ <head>
+ <title>
+ <xsl:value-of select="/session/general-info/@title"/>
+ </title>
+ <!-- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -->
+ <meta name="description" content="{/session/general-info/@description}"/>
+ <meta name="keywords" content="{/session/general-info/@keywords}"/>
+ <meta name="author" content="{/session/general-info/@author}"/>
+ <meta name="email" content="{/session/general-info/@email}"/>
+ <meta name="copyright" content="{/session/general-info/@copyright}"/>
+ <!-- create date?
+ update date?
+ fav icon?
+ -->
+ <link REL="shortcut icon" href="images/favicon.ico" type="image/ico"/>
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+
+ </head>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_left/mainframe.html b/test/user-template/user/config/wizard/web/layouts/frame_left/mainframe.html
new file mode 100644
index 000000000000..ab1613b6d1dc
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_left/mainframe.html
@@ -0,0 +1,7 @@
+<html>
+ <head>
+ <title></title>
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+ </head>
+ <body></body>
+</html>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_left/tocframe.html.xsl b/test/user-template/user/config/wizard/web/layouts/frame_left/tocframe.html.xsl
new file mode 100644
index 000000000000..08048b517beb
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_left/tocframe.html.xsl
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- =================================================
+
+This template is a skeleton for single level TOC pages
+Do not overwrite this ! copy it and complete the missing
+code.
+
+I use the @ character whereever there is a missing code, so
+you can use a simple find to navigate and find the
+places...
+
+====================================================== -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <xsl:include href="../layout.xsl"/>
+
+ <!-- =============================
+ HTML BODY
+ ================================== -->
+
+ <xsl:template name="body">
+ <xsl:call-template name="toc"/>
+ </xsl:template>
+
+
+ <xsl:template name="toc">
+ <table width="100%" height="654" border="0" cellpadding="0" cellspacing="0" class="tcolor">
+
+ <tr>
+ <td height="80" colspan="2" class="toctitle">
+ <xsl:value-of select="/session/general-info/@title"/>
+ </td>
+ </tr>
+
+ <!-- use this alternative if you do not need to use groups
+ (uncomment to use - and do not forget to comment the group
+ option above...)-->
+
+
+ <xsl:apply-templates select="/session/content/document"/>
+
+
+ </table>
+
+ <!--
+ @ post toc html here
+ -->
+
+ <p class="colback"> </p>
+
+ </xsl:template>
+
+ <!-- also when using groups, in the end it comes
+ to this template, which is called for each document -->
+ <xsl:template match="document">
+
+ <tr>
+
+ <!-- image cell -->
+
+ <td width="40" height="200" align="center" class="ccolor">
+ <p>
+ <xsl:apply-templates select="@icon"/>
+ </p>
+ </td>
+
+ <td><p>
+
+ <xsl:apply-templates select="@title">
+ <xsl:with-param name="target" select="'mainframe'"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="@description"/>
+ <xsl:apply-templates select="@author"/>
+ <xsl:apply-templates select="@create-date"/>
+ <xsl:apply-templates select="@update-date"/>
+ <xsl:apply-templates select="@filename"/>
+ <xsl:apply-templates select="@format"/>
+ <xsl:apply-templates select="@pages"/>
+ <xsl:apply-templates select="@size"/>
+
+ </p> </td>
+ </tr>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_right/index.html.xsl b/test/user-template/user/config/wizard/web/layouts/frame_right/index.html.xsl
new file mode 100644
index 000000000000..c4288f11705e
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_right/index.html.xsl
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+
+ <!-- =============================
+ ROOT
+ ================================== -->
+
+
+ <xsl:template match="/">
+ <html>
+ <xsl:call-template name="head"/>
+ <xsl:call-template name="frameset"/>
+ </html>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML FRAMES
+ ================================== -->
+
+
+ <xsl:template name="frameset">
+ <frameset rows="*" cols="*,273" framespacing="0" frameborder="NO" border="0">
+ <frame src="mainframe.html" name="mainframe"/>
+ <frame src="tocframe.html" name="tocframe" scrolling="Auto" noresize=""/>
+ </frameset>
+ <noframes/>
+ <body>
+ </body>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML HEAD
+
+ this section should not be changed
+ ================================== -->
+
+ <xsl:template name="head">
+ <head>
+ <title>
+ <xsl:value-of select="/session/general-info/@title"/>
+ </title>
+ <!-- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -->
+ <meta name="description" content="{/session/general-info/@description}"/>
+ <meta name="keywords" content="{/session/general-info/@keywords}"/>
+ <meta name="author" content="{/session/general-info/@author}"/>
+ <meta name="email" content="{/session/general-info/@email}"/>
+ <meta name="copyright" content="{/session/general-info/@copyright}"/>
+ <!-- create date?
+ update date?
+ fav icon?
+ -->
+ <link REL="shortcut icon" href="images/favicon.ico" type="image/ico"/>
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+
+ </head>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_right/mainframe.html b/test/user-template/user/config/wizard/web/layouts/frame_right/mainframe.html
new file mode 100644
index 000000000000..ab1613b6d1dc
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_right/mainframe.html
@@ -0,0 +1,7 @@
+<html>
+ <head>
+ <title></title>
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+ </head>
+ <body></body>
+</html>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_right/tocframe.html.xsl b/test/user-template/user/config/wizard/web/layouts/frame_right/tocframe.html.xsl
new file mode 100644
index 000000000000..69aaa5f38d24
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_right/tocframe.html.xsl
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- =================================================
+
+This template is a skeleton for single level TOC pages
+Do not overwrite this ! copy it and complete the missing
+code.
+
+I use the @ character whereever there is a missing code, so
+you can use a simple find to navigate and find the
+places...
+
+====================================================== -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <xsl:include href="../layout.xsl"/>
+
+ <!-- =============================
+ HTML BODY
+ ================================== -->
+
+ <xsl:template name="body">
+ <xsl:call-template name="toc"/>
+ </xsl:template>
+
+
+ <xsl:template name="toc">
+ <table width="100%" height="654" border="0" cellpadding="0" cellspacing="0" class="tcolor">
+
+ <tr>
+ <td height="80" colspan="2" class="toctitle">
+ <xsl:value-of select="/session/general-info/@title"/>
+ </td>
+ </tr>
+
+ <!-- use this alternative if you do not need to use groups
+ (uncomment to use - and do not forget to comment the group
+ option above...)-->
+
+
+ <xsl:apply-templates select="/session/content/document"/>
+
+
+ </table>
+
+ <!--
+ @ post toc html here
+ -->
+
+ <p class="colback"> </p>
+
+ </xsl:template>
+
+ <!-- also when using groups, in the end it comes
+ to this template, which is called for each document -->
+ <xsl:template match="document">
+
+ <tr>
+
+ <!-- image cell -->
+
+ <td height="200" align="center" class="ccolor">
+ <p>
+ <xsl:apply-templates select="@icon"/>
+ </p>
+ </td>
+
+ <td width="200"><p>
+
+ <xsl:apply-templates select="@title">
+ <xsl:with-param name="target" select="'mainframe'"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="@description"/>
+ <xsl:apply-templates select="@author"/>
+ <xsl:apply-templates select="@create-date"/>
+ <xsl:apply-templates select="@update-date"/>
+ <xsl:apply-templates select="@filename"/>
+ <xsl:apply-templates select="@format"/>
+ <xsl:apply-templates select="@pages"/>
+ <xsl:apply-templates select="@size"/>
+
+ </p> </td>
+ </tr>
+
+ </xsl:template>
+
+
+
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_top/index.html.xsl b/test/user-template/user/config/wizard/web/layouts/frame_top/index.html.xsl
new file mode 100644
index 000000000000..bc056d2b3f65
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_top/index.html.xsl
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+
+ <!-- =============================
+ ROOT
+ ================================== -->
+
+
+ <xsl:template match="/">
+ <html>
+ <xsl:call-template name="head"/>
+ <xsl:call-template name="frameset"/>
+ </html>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML FRAMES
+ ================================== -->
+
+
+ <xsl:template name="frameset">
+ <frameset rows="281,*" cols="*" framespacing="0" frameborder="NO" border="0">
+ <frame src="tocframe.html" name="tocframe" scrolling="Auto" noresize=""/>
+ <frame src="mainframe.html" name="mainframe"/>
+ </frameset>
+ <noframes/>
+ <body>
+ </body>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML HEAD
+
+ this section should not be changed
+ ================================== -->
+
+ <xsl:template name="head">
+ <head>
+ <title>
+ <xsl:value-of select="/session/general-info/@title"/>
+ </title>
+ <!-- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -->
+ <meta name="description" content="{/session/general-info/@description}"/>
+ <meta name="keywords" content="{/session/general-info/@keywords}"/>
+ <meta name="author" content="{/session/general-info/@author}"/>
+ <meta name="email" content="{/session/general-info/@email}"/>
+ <meta name="copyright" content="{/session/general-info/@copyright}"/>
+ <!-- create date?
+ update date?
+ fav icon?
+ -->
+ <link REL="shortcut icon" href="images/favicon.ico" type="image/ico"/>
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+
+ </head>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_top/mainframe.html b/test/user-template/user/config/wizard/web/layouts/frame_top/mainframe.html
new file mode 100644
index 000000000000..ab1613b6d1dc
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_top/mainframe.html
@@ -0,0 +1,7 @@
+<html>
+ <head>
+ <title></title>
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+ </head>
+ <body></body>
+</html>
diff --git a/test/user-template/user/config/wizard/web/layouts/frame_top/tocframe.html.xsl b/test/user-template/user/config/wizard/web/layouts/frame_top/tocframe.html.xsl
new file mode 100644
index 000000000000..1fe3e93fbef4
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/frame_top/tocframe.html.xsl
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- =================================================
+
+This template is a skeleton for single level TOC pages
+Do not overwrite this ! copy it and complete the missing
+code.
+
+I use the @ character whereever there is a missing code, so
+you can use a simple find to navigate and find the
+places...
+
+====================================================== -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <xsl:include href="../layout.xsl"/>
+
+
+ <!-- =============================
+ HTML BODY
+ ================================== -->
+
+ <xsl:template name="body">
+ <xsl:call-template name="toc"/>
+ </xsl:template>
+
+
+ <xsl:template name="toc">
+ <xsl:variable name="doc-count" select="count(/session/content/document)"/>
+
+ <table width="{$doc-count * 250}" height="250" border="0" cellpadding="0" cellspacing="0" class="tcolor">
+
+ <tr>
+ <td height="50" colspan="{$doc-count * 2 + 2}" class="toctitle">
+ <xsl:value-of select="/session/general-info/@title"/>
+ </td>
+ </tr>
+
+ <!-- use this alternative if you do not need to use groups
+ (uncomment to use - and do not forget to comment the group
+ option above...)-->
+
+ <tr>
+ <xsl:apply-templates select="/session/content/document"/>
+ <td colspan="2"></td>
+ </tr>
+
+ </table>
+
+ <!--
+ @ post toc html here
+ -->
+
+ <p class="colback"> </p>
+
+ </xsl:template>
+
+ <!-- also when using groups, in the end it comes
+ to this template, which is called for each document -->
+ <xsl:template match="document">
+
+ <!-- image cell -->
+
+ <td width="50" height="200" align="center">
+ <p>
+ <xsl:apply-templates select="@icon"/>
+ </p>
+ </td>
+
+ <td width="200"><p>
+
+ <xsl:apply-templates select="@title">
+ <xsl:with-param name="target" select="'mainframe'"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="@description"/>
+ <xsl:apply-templates select="@author"/>
+ <xsl:apply-templates select="@create-date"/>
+ <xsl:apply-templates select="@update-date"/>
+ <xsl:apply-templates select="@filename"/>
+ <xsl:apply-templates select="@format"/>
+ <xsl:apply-templates select="@pages"/>
+ <xsl:apply-templates select="@size"/>
+
+ </p> </td>
+
+ </xsl:template>
+
+
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/layout.xsl b/test/user-template/user/config/wizard/web/layouts/layout.xsl
new file mode 100644
index 000000000000..4502c2ad1c0d
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/layout.xsl
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--*************************************************************************
+ *
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+ ************************************************************************-->
+<!-- =================================================
+
+This template is a skeleton for single level TOC pages
+Do not overwrite this ! copy it and complete the missing
+code.
+
+I use the @ character whereever there is a missing code, so
+you can use a simple find to navigate and find the
+places...
+
+====================================================== -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <!-- =============================
+ ROOT
+ ================================== -->
+
+
+ <xsl:template match="/">
+ <html>
+ <xsl:call-template name="head"/>
+ <xsl:call-template name="body"/>
+ </html>
+ </xsl:template>
+
+
+ <!-- =============================
+ Document properties
+
+ This section contains templates which
+ give the document properties...
+
+ ================================== -->
+
+ <!-- this tempaltes gives the
+ relative href of the document. To use
+ with the <a href="..."> attribute-->
+
+
+ <xsl:template match="document" mode="href">
+ <xsl:value-of select="concat(../@directory,'/')"/>
+ <xsl:if test="@dir">
+ <xsl:value-of select="concat(@dir,'/')"/>
+ </xsl:if>
+ <xsl:value-of select="@fn"/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@title">
+ <xsl:param name="target" select="''"/>
+
+ <span class="doctitle">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select=".." mode="href"/>
+ </xsl:attribute>
+
+ <xsl:if test=" $target != ''">
+ <xsl:attribute name="target">
+ <xsl:value-of select="$target"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:value-of select="."/>
+ </a>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@description">
+ <span class="docdescription">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@author">
+ <span class="docauthor">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@create-date">
+ <span class="doccreationdate">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@update-date">
+ <span class="doclastchangedate">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@filename">
+ <span class="docfilename">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@format">
+ <span class="docfileformatinfo">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@pages">
+ <span class="docnumberofpages">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@size">
+ <span class="docsizeinkb">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+ <xsl:template match="document/@icon">
+ <img src="images/{.}"/>
+ <br/>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML HEAD
+
+ this section should not be changed
+ ================================== -->
+
+ <xsl:template name="head">
+ <head>
+ <title>
+ <xsl:value-of select="/session/general-info/@title"/>
+ </title>
+ <!-- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -->
+ <meta HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8"/>
+ <meta name="description" content="{/session/general-info/@description}"/>
+ <meta name="keywords" content="{/session/general-info/@keywords}"/>
+ <meta name="author" content="{/session/general-info/@author}"/>
+ <meta name="email" content="{/session/general-info/@email}"/>
+ <meta name="copyright" content="{/session/general-info/@copyright}"/>
+ <!-- create date?
+ update date?
+ fav icon?
+ -->
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+
+ </head>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/layoutF.xsl b/test/user-template/user/config/wizard/web/layouts/layoutF.xsl
new file mode 100644
index 000000000000..8f12609b79e8
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/layoutF.xsl
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--*************************************************************************
+ *
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+ ************************************************************************-->
+<!-- =================================================
+
+This template is a skeleton for single level TOC pages
+with Frames : it generates the main index.html which contains
+the frameset.
+
+Do not overwrite this ! copy it and complete the missing
+code.
+
+I use the @ character whereever there is a missing code, so
+you can use a simple find to navigate and find the
+places...
+
+====================================================== -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <xsl:include href="../layout.xsl"/>
+
+
+ <!-- =============================
+ ROOT
+ ================================== -->
+
+
+ <xsl:template match="/">
+ <html>
+ <xsl:call-template name="head"/>
+ <xsl:call-template name="frameset"/>
+ </html>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML FRAMES
+ ================================== -->
+
+
+ <xsl:template name="frameset">
+
+ <!--
+ @ Add frameset here...
+
+ the following noframes tag is
+ naturally optional.
+ -->
+
+ <noframes/>
+
+ <!-- the body tag has no influance here,
+ we add it for good style.
+ -->
+
+ <body>
+ </body>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML HEAD
+
+ this section should not be changed
+ ================================== -->
+
+ <xsl:template name="head">
+ <head>
+ <title>
+ <xsl:value-of select="/session/general-info/@title"/>
+ </title>
+ <!-- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -->
+ <meta HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8"/>
+ <meta name="description" content="{/session/general-info/@description}"/>
+ <meta name="keywords" content="{/session/general-info/@keywords}"/>
+ <meta name="author" content="{/session/general-info/@author}"/>
+ <meta name="email" content="{/session/general-info/@email}"/>
+ <meta name="copyright" content="{/session/general-info/@copyright}"/>
+ <!-- create date?
+ update date?
+ fav icon?
+ -->
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+
+ </head>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/layoutX.xsl b/test/user-template/user/config/wizard/web/layouts/layoutX.xsl
new file mode 100644
index 000000000000..2c4ce08ff4c4
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/layoutX.xsl
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--*************************************************************************
+ *
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+ ************************************************************************-->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <xsl:include href="../layout.xsl"/>
+
+
+ <!-- =============================
+ ROOT
+ ================================== -->
+
+
+ <xsl:template match="/">
+ <html>
+ <xsl:call-template name="head"/>
+ <xsl:call-template name="body"/>
+ </html>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML BODY
+ ================================== -->
+
+ <xsl:template name="body">
+ <body>
+ <xsl:call-template name="title"/>
+ <xsl:call-template name="toc"/>
+ </body>
+ </xsl:template>
+
+
+ <xsl:template name="toc">
+ <!--
+ @ pre toc html here
+ -->
+
+ <!-- use this to group documents, it
+ is for example usefull when generating tables -->
+
+ <xsl:variable name="group" select="3"/>
+
+ <xsl:for-each select="/session/content/document[ ( ( position() - 1 ) mod $group ) = 0 ]">
+
+ <!--
+ @ pre group html here
+ -->
+
+ <xsl:call-template name="document-group">
+ <xsl:with-param name="group" select="$group"/>
+ </xsl:call-template>
+
+ <!--
+ @ post group html here
+ -->
+
+ </xsl:for-each>
+
+
+ <!-- use this alternative if you do not need to use groups
+ (uncomment to use - and do not forget to comment the group
+ option above...)-->
+
+ <!--
+ <xsl:apply-templates select="/session/content/document"/>
+ -->
+
+ <!--
+ @ post toc html here
+ -->
+
+ </xsl:template>
+
+ <!-- also when using groups, in the end it comes
+ to this template, which is called for each document -->
+ <xsl:template match="document">
+ <xsl:apply-templates select="@title"/>
+ <xsl:apply-templates select="@description"/>
+ <xsl:apply-templates select="@author"/>
+ <xsl:apply-templates select="@create-date"/>
+ <xsl:apply-templates select="@update-date"/>
+ <xsl:apply-templates select="@filename"/>
+ <xsl:apply-templates select="@format"/>
+ <xsl:apply-templates select="@format-icon"/>
+ <xsl:apply-templates select="@format-icon"/>
+ </xsl:template>
+
+
+
+ <xsl:template name="document-group">
+ <xsl:param name="group"/>
+
+ <!-- @ pre group code here -->
+
+ <!-- - - -->
+
+ <xsl:variable name="count" select="(position() - 1) * $group + 1"/>
+
+ <xsl:for-each select="/session/content/document[$count &lt;= position() and position() &lt; ($count + $group)]">
+
+ <xsl:apply-templates select="."/>
+
+ </xsl:for-each>
+
+ <!-- @ post group code here -->
+
+ <!-- - - -->
+
+ </xsl:template>
+
+
+ <xsl:template name="title">
+ <!--
+ @ Pre title html code here
+ -->
+
+ <xsl:value-of select="/session/general-info/@title"/>
+
+ <!--
+ @ Post title html code here
+ -->
+ </xsl:template>
+
+ <!-- =============================
+ Document properties
+
+ This section contains templates which
+ give the document properties...
+
+ ================================== -->
+
+ <!-- this tempaltes gives the
+ relative href of the document. To use
+ with the <a href="..."> attribute-->
+
+
+ <xsl:template match="document" mode="href">
+ <xsl:value-of select="concat(../@directory,'/')"/>
+ <xsl:if test="@dir">
+ <xsl:value-of select="concat(@dir,'/')"/>
+ </xsl:if>
+ <xsl:value-of select="@fn"/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@title">
+ <span class="doctitle">
+ <a>
+ <xsl:attribute name="href">
+ <xsl:apply-templates select=".." mode="href"/>
+ </xsl:attribute>
+
+ <xsl:value-of select="."/>
+ </a>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@description">
+ <span class="docdescription">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@author">
+ <span class="docauthor">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@create-date">
+ <span class="doccreationdate">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@update-date">
+ <span class="doclastchangedate">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@filename">
+ <span class="docfilename">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@format">
+ <span class="docfileformatinfo">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@pages">
+ <span class="docnumberofpages">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+
+ <xsl:template match="document/@size">
+ <span class="docsizeinkb">
+ <xsl:value-of select="."/>
+ </span>
+ <br/>
+ </xsl:template>
+
+ <xsl:template match="document/@icon">
+ <img src="images/{.}"/>
+ <br/>
+ </xsl:template>
+
+
+ <!-- =============================
+ HTML HEAD
+
+ this section should not be changed
+ ================================== -->
+
+ <xsl:template name="head">
+ <head>
+ <title>
+ <xsl:value-of select="/session/general-info/@title"/>
+ </title>
+ <!-- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> -->
+ <meta HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=UTF-8"/>
+ <meta name="description" content="{/session/general-info/@description}"/>
+ <meta name="keywords" content="{/session/general-info/@keywords}"/>
+ <meta name="author" content="{/session/general-info/@author}"/>
+ <meta name="email" content="{/session/general-info/@email}"/>
+ <meta name="copyright" content="{/session/general-info/@copyright}"/>
+ <!-- create date?
+ update date?
+ fav icon?
+ -->
+ <link href="style.css" rel="stylesheet" type="text/css"/>
+
+ </head>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/simple/index.html.xsl b/test/user-template/user/config/wizard/web/layouts/simple/index.html.xsl
new file mode 100644
index 000000000000..43d6f78931e5
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/simple/index.html.xsl
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- =================================================
+
+This template is a skeleton for single level TOC pages
+Do not overwrite this ! copy it and complete the missing
+code.
+
+I use the @ character whereever there is a missing code, so
+you can use a simple find to navigate and find the
+places...
+
+====================================================== -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+
+ <xsl:include href="../layout.xsl"/>
+
+
+ <!-- =============================
+ HTML BODY
+ ================================== -->
+
+ <xsl:template name="body">
+ <body>
+
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" class="tcolor">
+
+ <xsl:call-template name="title"/>
+ <xsl:call-template name="toc"/>
+
+ </table>
+
+ </body>
+ </xsl:template>
+
+
+ <xsl:template name="toc">
+ <!--
+ @ pre toc html here
+ -->
+ <tr>
+ <td width="30" class="ccolor">&#160;
+ </td>
+ <td>
+
+ <!-- use this alternative if you do not need to use groups
+ (uncomment to use - and do not forget to comment the group
+ option above...)-->
+
+ <xsl:apply-templates select="/session/content/document"/>
+
+ <!--
+ @ post toc html here
+ -->
+ </td>
+ </tr>
+
+ </xsl:template>
+
+ <!-- also when using groups, in the end it comes
+ to this template, which is called for each document -->
+ <xsl:template match="document">
+ <p>
+ <xsl:apply-templates select="@icon"/>
+
+ <xsl:apply-templates select="@title"/>
+ <xsl:apply-templates select="@description"/>
+ <xsl:apply-templates select="@author"/>
+ <xsl:apply-templates select="@create-date"/>
+ <xsl:apply-templates select="@update-date"/>
+ <xsl:apply-templates select="@filename"/>
+ <xsl:apply-templates select="@format"/>
+ <xsl:apply-templates select="@format-icon"/>
+ <xsl:apply-templates select="@format-icon"/>
+ </p>
+
+ <xsl:if test="position() &lt; last()">
+ <hr/>
+ </xsl:if>
+
+ </xsl:template>
+
+ <xsl:template name="document-group">
+ <xsl:param name="group"/>
+
+ <!-- @ pre group code here -->
+
+ <!-- - - -->
+
+ <xsl:variable name="count" select="(position() - 1) * $group + 1"/>
+
+ <xsl:for-each select="/session/content/document[$count &lt;= position() and position() &lt; ($count + $group)]">
+
+ <xsl:apply-templates select="."/>
+
+ </xsl:for-each>
+
+ <!-- @ post group code here -->
+
+ <!-- - - -->
+
+ </xsl:template>
+
+
+ <xsl:template name="title">
+ <!--
+ @ Pre title html code here
+ -->
+ <tr>
+ <td height="80" colspan="2" class="toctitle">
+
+ <xsl:value-of select="/session/general-info/@title"/>
+
+ <!--
+ @ Post title html code here
+ -->
+ </td>
+ </tr>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/source.xml.xsl b/test/user-template/user/config/wizard/web/layouts/source.xml.xsl
new file mode 100644
index 000000000000..4a9c471e7530
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/source.xml.xsl
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--*************************************************************************
+ *
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+ ************************************************************************-->
+<!-- =================================
+
+ This templates creates a source.xml file
+ which is identicall to the source xml tree
+ used for the transformation.
+ This is may be usefull for deveopement/debuging
+ of layouts.
+
+ ==================================== -->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:redirect="http://xml.apache.org/xalan/redirect"
+ extension-element-prefixes="redirect">
+
+ <xsl:output method="xml"/>
+
+
+ <xsl:template match="/">
+ <xsl:apply-templates mode="copy"/>
+ </xsl:template>
+
+ <xsl:template match="@*|node()" mode="copy">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|node()" mode="copy"/>
+ </xsl:copy>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/table_2/index.html.xsl b/test/user-template/user/config/wizard/web/layouts/table_2/index.html.xsl
new file mode 100644
index 000000000000..2ce0788a0c93
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/table_2/index.html.xsl
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- =================================================
+
+This template is a skeleton for single level TOC pages
+Do not overwrite this ! copy it and complete the missing
+code.
+I use the @ character whereever there is a missing code, so
+you can use a simple find to navigate and find the
+places...
+====================================================== -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <xsl:include href="../layout.xsl"/>
+
+
+ <!-- =============================
+ HTML BODY
+ ================================== -->
+
+ <xsl:template name="body">
+
+ <body>
+
+ <!--
+ @ pre code here
+ -->
+
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" class="tcolor">
+
+ <xsl:call-template name="title"/>
+
+ <!--
+ @ inter code here
+ -->
+
+ <xsl:call-template name="toc"/>
+
+ <!--
+ @ post code here
+ -->
+
+ </table>
+
+ </body>
+
+ </xsl:template>
+
+
+
+
+ <xsl:template name="title">
+ <!--
+ @ Pre title html code here
+ -->
+ <tr>
+ <td height="200%" colspan="7" class="toctitle">
+
+ <xsl:value-of select="/session/general-info/@title"/>
+
+ <!--
+ @ Post title html code here
+ -->
+
+ </td>
+ </tr>
+
+ </xsl:template>
+
+
+ <xsl:template name="toc">
+
+ <!-- @ pre toc html here -->
+
+ <!-- - - -->
+
+ <!-- use this to group documents, it
+ is for example usefull when generating tables -->
+
+
+
+ <xsl:call-template name="toc-with-group">
+ <xsl:with-param name="group" select="2"/>
+ </xsl:call-template>
+
+
+ <!-- use this alternative if you do not need to use groups
+ (uncomment to use - and do not forget to comment the group
+ option above...)-->
+
+ <!-- <xsl:apply-templates select="/session/content/document"/> -->
+
+ <!-- @ post toc html here -->
+
+ <!-- - - -->
+
+ </xsl:template>
+
+
+ <xsl:template name="toc-with-group">
+ <xsl:param name="group"/>
+
+ <xsl:for-each select="/session/content/document[ ( ( position() - 1 ) mod $group ) = 0 ]">
+
+ <xsl:call-template name="document-group">
+ <xsl:with-param name="group" select="$group"/>
+ </xsl:call-template>
+
+ </xsl:for-each>
+
+ </xsl:template>
+
+ <xsl:template name="document-group">
+ <xsl:param name="group"/>
+
+ <!-- @ pre group code here -->
+
+ <tr>
+ <td width="30" height="200" class="ccolor"></td>
+
+ <!-- - - -->
+
+ <xsl:variable name="count" select="(position() - 1) * $group + 1"/>
+
+ <xsl:for-each select="/session/content/document[$count &lt;= position() and position() &lt; ($count + $group)]">
+
+ <xsl:apply-templates select="."/>
+
+ <xsl:if test="last()=1 and position()=last()">
+ <xsl:call-template name="empty-doc"/>
+ </xsl:if>
+
+ </xsl:for-each>
+
+ <!-- @ post group code here -->
+
+ <td colspan="2" class="ccolor"></td>
+ </tr>
+
+ <!-- - - -->
+
+ </xsl:template>
+
+ <xsl:template name="empty-doc">
+ <td width="50"> <p> </p></td>
+ <td width="200"> <p> </p></td>
+ </xsl:template>
+
+
+ <!-- also when using groups, in the end it comes
+ to this template, which is called for each document -->
+
+ <xsl:template match="document">
+ <!-- file format icon -->
+
+ <td width="50"> <p>
+ <xsl:apply-templates select="@icon"/>
+ </p></td>
+
+ <td width="200"> <p>
+
+ <xsl:apply-templates select="@title"/>
+ <xsl:apply-templates select="@description"/>
+ <xsl:apply-templates select="@author"/>
+ <xsl:apply-templates select="@create-date"/>
+ <xsl:apply-templates select="@update-date"/>
+ <xsl:apply-templates select="@filename"/>
+ <xsl:apply-templates select="@format"/>
+ <xsl:apply-templates select="@pages"/>
+ <xsl:apply-templates select="@size"/>
+
+ </p> </td>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/table_3/index.html.xsl b/test/user-template/user/config/wizard/web/layouts/table_3/index.html.xsl
new file mode 100644
index 000000000000..e5456121f688
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/table_3/index.html.xsl
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- =================================================
+
+This template is a skeleton for single level TOC pages
+Do not overwrite this ! copy it and complete the missing
+code.
+I use the @ character whereever there is a missing code, so
+you can use a simple find to navigate and find the
+places...
+====================================================== -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <xsl:include href="../layout.xsl"/>
+
+
+ <!-- =============================
+ HTML BODY
+ ================================== -->
+
+ <xsl:template name="body">
+
+ <body>
+
+ <!--
+ @ pre code here
+ -->
+
+ <table width="100%" border="0" cellpadding="0" cellspacing="0" class="tcolor">
+
+ <xsl:call-template name="title"/>
+
+ <!--
+ @ inter code here
+ -->
+
+ <xsl:call-template name="toc"/>
+
+ <!--
+ @ post code here
+ -->
+
+ </table>
+
+ </body>
+
+ </xsl:template>
+
+
+
+
+ <xsl:template name="title">
+ <!--
+ @ Pre title html code here
+ -->
+ <tr>
+ <td height="200%" colspan="9" class="toctitle">
+
+ <xsl:value-of select="/session/general-info/@title"/>
+
+ <!--
+ @ Post title html code here
+ -->
+
+ </td>
+ </tr>
+
+ </xsl:template>
+
+
+ <xsl:template name="toc">
+
+ <!-- @ pre toc html here -->
+
+ <!-- - - -->
+
+ <!-- use this to group documents, it
+ is for example usefull when generating tables -->
+
+
+
+ <xsl:call-template name="toc-with-group">
+ <xsl:with-param name="group" select="3"/>
+ </xsl:call-template>
+
+
+ <!-- use this alternative if you do not need to use groups
+ (uncomment to use - and do not forget to comment the group
+ option above...)-->
+
+ <!-- <xsl:apply-templates select="/session/content/document"/> -->
+
+ <!-- @ post toc html here -->
+
+ <!-- - - -->
+
+ </xsl:template>
+
+
+ <xsl:template name="toc-with-group">
+ <xsl:param name="group"/>
+
+ <xsl:for-each select="/session/content/document[ ( ( position() - 1 ) mod $group ) = 0 ]">
+
+ <xsl:call-template name="document-group">
+ <xsl:with-param name="group" select="$group"/>
+ </xsl:call-template>
+
+ </xsl:for-each>
+
+ </xsl:template>
+
+ <xsl:template name="document-group">
+ <xsl:param name="group"/>
+
+ <!-- @ pre group code here -->
+
+ <tr>
+ <td width="30" height="200" class="ccolor"></td>
+
+ <!-- - - -->
+
+ <xsl:variable name="count" select="(position() - 1) * $group + 1"/>
+
+ <xsl:for-each select="/session/content/document[$count &lt;= position() and position() &lt; ($count + $group)]">
+
+ <xsl:apply-templates select="."/>
+
+ <xsl:choose>
+ <xsl:when test="last()=1 and position()=last()">
+ <xsl:call-template name="empty-doc"/>
+ <xsl:call-template name="empty-doc"/>
+ </xsl:when>
+ <xsl:when test="last()=2 and position()=last()">
+ <xsl:call-template name="empty-doc"/>
+ </xsl:when>
+ </xsl:choose>
+
+ </xsl:for-each>
+
+ <!-- @ post group code here -->
+
+ <td colspan="2" class="ccolor"></td>
+ </tr>
+
+ <!-- - - -->
+
+ </xsl:template>
+
+ <xsl:template name="empty-doc">
+ <td width="50"> <p> </p></td>
+ <td width="200"> <p> </p></td>
+ </xsl:template>
+
+
+ <!-- also when using groups, in the end it comes
+ to this template, which is called for each document -->
+
+ <xsl:template match="document">
+ <!-- file format icon -->
+
+ <td width="50"> <p>
+ <xsl:apply-templates select="@icon"/>
+ </p></td>
+
+ <td width="200"> <p>
+
+ <xsl:apply-templates select="@title"/>
+ <xsl:apply-templates select="@description"/>
+ <xsl:apply-templates select="@author"/>
+ <xsl:apply-templates select="@create-date"/>
+ <xsl:apply-templates select="@update-date"/>
+ <xsl:apply-templates select="@filename"/>
+ <xsl:apply-templates select="@format"/>
+ <xsl:apply-templates select="@pages"/>
+ <xsl:apply-templates select="@size"/>
+
+ </p> </td>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/layouts/zigzag/index.html.xsl b/test/user-template/user/config/wizard/web/layouts/zigzag/index.html.xsl
new file mode 100644
index 000000000000..4c19d31d29a4
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/layouts/zigzag/index.html.xsl
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- =================================================
+
+This template is a skeleton for single level TOC pages
+Do not overwrite this ! copy it and complete the missing
+code.
+
+I use the @ character whereever there is a missing code, so
+you can use a simple find to navigate and find the
+places...
+
+====================================================== -->
+<!DOCTYPE xsl:stylesheet [
+
+<!ENTITY x1 "0">
+<!ENTITY x2 "250">
+<!ENTITY x3 "500">
+
+<!ENTITY y1 "0">
+<!ENTITY y2 "150">
+<!ENTITY y3 "0">
+
+
+]>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+ <xsl:output method = "html"
+ media-type = "text/html"
+ indent = "yes"
+ doctype-public = "-//W3C//DTD HTML 4.0 Transitional//EN"
+ omit-xml-declaration = "yes"
+ standalone = "yes" />
+
+ <xsl:include href="../layout.xsl"/>
+
+ <!-- =============================
+ HTML BODY
+ ================================== -->
+
+ <xsl:template name="body">
+ <body>
+ <xsl:call-template name="title"/>
+ <xsl:call-template name="toc"/>
+ </body>
+ </xsl:template>
+
+
+ <xsl:template name="toc">
+ <!--
+ @ pre toc html here
+ -->
+
+ <xsl:apply-templates select="/session/content/document"/>
+
+ <!--
+ @ post toc html here
+ -->
+
+ </xsl:template>
+
+
+
+ <!-- also when using groups, in the end it comes
+ to this template, which is called for each document -->
+ <xsl:template match="document">
+
+ <xsl:variable name="i" select="position() - 1"/>
+
+ <xsl:variable name="x1">
+ <xsl:call-template name="x"/>
+ </xsl:variable>
+
+ <xsl:variable name="x" select="number($x1) + 50 "/>
+
+ <xsl:variable name="y1">
+ <xsl:call-template name="y"/>
+ </xsl:variable>
+
+ <xsl:variable name="y" select="(floor($i div 3)) * 300 + number($y1) + 80 "/>
+
+ <div style="position:absolute; padding:15px; left:{$x}px; top:{$y}px; width:170px; height:220px; z-index:1" class="tcolor">
+ <div align="center">
+
+ <xsl:apply-templates select="@icon"/>
+ <p>
+ <xsl:apply-templates select="@title"/>
+ <xsl:apply-templates select="@description"/>
+ <xsl:apply-templates select="@author"/>
+ <xsl:apply-templates select="@create-date"/>
+ <xsl:apply-templates select="@update-date"/>
+ <xsl:apply-templates select="@filename"/>
+ <xsl:apply-templates select="@format"/>
+ <xsl:apply-templates select="@pages"/>
+ <xsl:apply-templates select="@size"/>
+ </p>
+ </div>
+ </div>
+ </xsl:template>
+
+ <xsl:template name="x">
+ <xsl:variable name="i" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="$i = 2">
+ &x2;
+ </xsl:when>
+ <xsl:when test="$i = 3">
+ &x3;
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="($i mod 3) = 1">
+ &x1;
+ </xsl:when>
+ <xsl:when test="($i mod 3) = 2">
+ &x3;
+ </xsl:when>
+ <xsl:when test="($i mod 3) = 0">
+ &x2;
+ </xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="y">
+ <xsl:variable name="i" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="$i = 2">
+ &y2;
+ </xsl:when>
+ <xsl:when test="$i = 3">
+ &y3;
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="($i mod 3) = 1">
+ &y1;
+ </xsl:when>
+ <xsl:when test="($i mod 3) = 2">
+ &y3;
+ </xsl:when>
+ <xsl:when test="($i mod 3) = 0">
+ &y2;
+ </xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="document-group">
+ <xsl:param name="group"/>
+
+ <!-- @ pre group code here -->
+
+ <!-- - - -->
+
+ <xsl:variable name="count" select="(position() - 1) * $group + 1"/>
+
+ <xsl:for-each select="/session/content/document[$count &lt;= position() and position() &lt; ($count + $group)]">
+
+ <xsl:apply-templates select="."/>
+
+ </xsl:for-each>
+
+ <!-- @ post group code here -->
+
+ <!-- - - -->
+
+ </xsl:template>
+
+
+ <xsl:template name="title">
+ <!--
+ @ Pre title html code here
+ -->
+ <div style="position:absolute; left:280px; top:8px; width:220px; z-index:2; padding:10px" class="ccolor">
+ <div align="center" class="toctitle">
+ <xsl:value-of select="/session/general-info/@title"/>
+ &#160;
+ <!--
+ @ Post title html code here
+ -->
+ </div>
+ </div>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/config/wizard/web/preview.html b/test/user-template/user/config/wizard/web/preview.html
new file mode 100644
index 000000000000..6bbe75d623ab
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/preview.html
@@ -0,0 +1,41 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+ <title>Unbenanntes Dokument</title>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <link href="style.css" rel="stylesheet" type="text/css">
+</head>
+<body background="images/background.gif">
+<table width="177" height="100" border="0" align="center">
+ <tbody>
+ <tr>
+ <td width="12" height="20" class="ccolor">&nbsp;</td>
+ <td width="12" class="ccolor">&nbsp;</td>
+ <td width="149" class="toctitle">Site title</td>
+ <td width="12" class="ccolor">&nbsp;</td>
+ <td width="12" class="ccolor">&nbsp;</td>
+ </tr>
+ <tr>
+ <td height="80" class="ccolor">&nbsp;</td>
+ <td class="tcolor">&nbsp;</td>
+ <td class="tcolor">
+ <span class="doctitle">Document</span><br>
+ <span class="doccreationdate">Creation Date</span><br>
+ <span class="doclastchangeddate">Last Change Date</span><br>
+ <span class="docfilename">Filename</span></td>
+ <td class="tcolor">&nbsp;</td>
+ <td class="ccolor">&nbsp;</td>
+ </tr>
+ <tr>
+ <td width="12" height="20" class="ccolor">&nbsp;</td>
+ <td width="12" class="ccolor">&nbsp;</td>
+ <td width="149" class="ccolor">&nbsp;</td>
+ <td width="12" class="ccolor">&nbsp;</td>
+ <td width="12" class="ccolor">&nbsp;</td>
+ </tr>
+
+ </tbody>
+</table>
+</body>
+</html>
diff --git a/test/user-template/user/config/wizard/web/styles/beige.css b/test/user-template/user/config/wizard/web/styles/beige.css
new file mode 100644
index 000000000000..a1a2c4d29eba
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/beige.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #FFCC99;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #FFCC99;
+}
+.tcolor {
+ background-color: #FF9933;
+}
+.ccolor {
+ background-color: #FFCC99;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #003399;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #0099FF;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/bg.css b/test/user-template/user/config/wizard/web/styles/bg.css
new file mode 100644
index 000000000000..d571a7f0e7a4
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/bg.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #660033;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #006699;
+}
+.tcolor {
+ background-color: #FFFF99;
+}
+.ccolor {
+ background-color: #006699;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0033CC;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0099CC;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/bgr.css b/test/user-template/user/config/wizard/web/styles/bgr.css
new file mode 100644
index 000000000000..72a241b0a1cd
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/bgr.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #660033;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #006699;
+}
+.tcolor {
+ background-color: #FFFF99;
+}
+.ccolor {
+ background-color: #0066CC;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0033CC;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0066FF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/bgrey.css b/test/user-template/user/config/wizard/web/styles/bgrey.css
new file mode 100644
index 000000000000..6f92425f1e92
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/bgrey.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFCC00;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #000000;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #555555;
+}
+.tcolor {
+ background-color: #333333;
+}
+.ccolor {
+ background-color: #555555;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #CCCC00;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #CCCC99;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/bwb.css b/test/user-template/user/config/wizard/web/styles/bwb.css
new file mode 100644
index 000000000000..2bf3f8b6c8f0
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/bwb.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFF00;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FF0000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #003399;
+}
+.tcolor {
+ background-color: #000066;
+}
+.ccolor {
+ background-color: #003399;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FFFF00;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #CCCCCC;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/bwo.css b/test/user-template/user/config/wizard/web/styles/bwo.css
new file mode 100644
index 000000000000..50e746d53da9
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/bwo.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFF00;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FF0000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #666666;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #CC6600;
+}
+.tcolor {
+ background-color: #003366;
+}
+.ccolor {
+ background-color: #CC6600;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FFFF00;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0099FF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/dark.css b/test/user-template/user/config/wizard/web/styles/dark.css
new file mode 100644
index 000000000000..fb10ea73a5e7
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/dark.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFCC00;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #000000;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #333366;
+}
+.tcolor {
+ background-color: #333300;
+}
+.ccolor {
+ background-color: #333366;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #EEEEEE;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #CCCCCC;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FFCC00;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/dp.css b/test/user-template/user/config/wizard/web/styles/dp.css
new file mode 100644
index 000000000000..e8a600c1ce6a
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/dp.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFCC00;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #000000;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #333366;
+}
+.tcolor {
+ background-color: #660033;
+}
+.ccolor {
+ background-color: #333333;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #EEEEEE;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #CCCCCC;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FFCC00;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/forest.css b/test/user-template/user/config/wizard/web/styles/forest.css
new file mode 100644
index 000000000000..720cf39fc5bb
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/forest.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FF0000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #663300;
+}
+.tcolor {
+ background-color: #006633;
+}
+.ccolor {
+ background-color: #003300;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #EEEEEE;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #CCCCCC;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/green.css b/test/user-template/user/config/wizard/web/styles/green.css
new file mode 100644
index 000000000000..da200b7edfab
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/green.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFF00;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FF0000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #003333;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #CCCCCC;
+ background-color: #003333;
+}
+.tcolor {
+ background-color: #006666;
+}
+.ccolor {
+ background-color: #003333;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FFFF00;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0099FF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #CCFF00;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/greenred.css b/test/user-template/user/config/wizard/web/styles/greenred.css
new file mode 100644
index 000000000000..2894e31c7632
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/greenred.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFF00;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #CCCCCC;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #003333;
+}
+.tcolor {
+ background-color: #990000;
+}
+.ccolor {
+ background-color: #003333;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FFFF00;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0099FF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #99FF00;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/grey.css b/test/user-template/user/config/wizard/web/styles/grey.css
new file mode 100644
index 000000000000..54757009afc1
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/grey.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #CCCCCC;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #CCCCCC;
+}
+.tcolor {
+ background-color: #EEEEEE;
+}
+.ccolor {
+ background-color: #BBBBBB;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0033CC;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0099FF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/ibg.css b/test/user-template/user/config/wizard/web/styles/ibg.css
new file mode 100644
index 000000000000..22837ee476f7
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/ibg.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #99CCCC;
+}
+.tcolor {
+ background-color: #DDDDDD;
+}
+.ccolor {
+ background-color: #99CCFF;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #003399;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #0066CC;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FF9900;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/ice.css b/test/user-template/user/config/wizard/web/styles/ice.css
new file mode 100644
index 000000000000..719aa3cbae67
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/ice.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #EEEEEE;
+}
+.tcolor {
+ background-color: #00CCFF;
+}
+.ccolor {
+ background-color: #CCCCCC;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #0033CC;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #0066FF;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/marine.css b/test/user-template/user/config/wizard/web/styles/marine.css
new file mode 100644
index 000000000000..769a2c01c8f2
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/marine.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #CC0000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #000033;
+}
+.tcolor {
+ background-color: #000066;
+}
+.ccolor {
+ background-color: #000033;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #EEEEEE;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #CCCCCC;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/orange.css b/test/user-template/user/config/wizard/web/styles/orange.css
new file mode 100644
index 000000000000..dccfd6c296b7
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/orange.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #660000;
+}
+.docfilename {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Times New Roman", Times, serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #FF9900;
+}
+.tcolor {
+ background-color: #FF6600;
+}
+.ccolor {
+ background-color: #660033;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #000099;
+}
+a:visited {
+ font-family: "Times New Roman", Times, serif;
+ color: #0066CC;
+}
+a:active {
+ font-family: "Times New Roman", Times, serif;
+ color: #CC0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/pc_old.css b/test/user-template/user/config/wizard/web/styles/pc_old.css
new file mode 100644
index 000000000000..a56e7a621633
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/pc_old.css
@@ -0,0 +1,91 @@
+.doctitle {
+ font-family: "Courier New", Courier, mono;
+ font-size: 14px;
+ color: #00CC00;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: "Courier New", Courier, mono;
+ font-size: 12px;
+ font-style: italic;
+ color: #00CC00;
+}
+.docauthor {
+ font-family: "Courier New", Courier, mono;
+ font-size: 12px;
+ font-style: italic;
+ color: #00CC00;
+}
+.doccreationdate {
+ font-family: "Courier New", Courier, mono;
+ font-size: 12px;
+ color: #99CC00;
+}
+.doclastchangeddate {
+ font-family: "Courier New", Courier, mono;
+ font-size: 12px;
+ color: #FF0000;
+}
+.docfilename {
+ font-family: "Courier New", Courier, mono;
+ font-size: 12px;
+ color: #00CC00;
+}
+.docfileformatinfo {
+ font-family: "Courier New", Courier, mono;
+ font-size: 12px;
+ font-style: italic;
+ color: #00CC00;
+}
+.docnumberofpages {
+ font-family: "Courier New", Courier, mono;
+ font-size: 12px;
+ color: #00CC00;
+}
+.docsizeinkb {
+ font-family: "Courier New", Courier, mono;
+ font-size: 12px;
+ color: #00CC00;
+}
+body {
+ background-color: #000000;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: "Courier New", Courier, mono;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #00CC00;
+ background-color: #222222;
+}
+.tcolor {
+ background-color: #000000;
+ border-top-width: mittel;
+ border-right-width: mittel;
+ border-bottom-width: mittel;
+ border-left-width: mittel;
+ border-top-style: doppelt;
+ border-right-style: doppelt;
+ border-bottom-style: doppelt;
+ border-left-style: doppelt;
+ border-top-color: #333333;
+ border-right-color: #000000;
+ border-bottom-color: #000000;
+ border-left-color: #999999;
+}
+.ccolor {
+ background-color: #222222;
+}
+a:link {
+ font-family: "Courier New", Courier, mono;
+ color: #00FF33;
+}
+a:visited {
+ font-family: "Courier New", Courier, mono;
+ color: #00CC33;
+}
+a:active {
+ font-family: "Courier New", Courier, mono;
+ color: #CC0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/red.css b/test/user-template/user/config/wizard/web/styles/red.css
new file mode 100644
index 000000000000..bf36a6cfe0fc
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/red.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFF00;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FF0000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #999999;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #660033;
+}
+.tcolor {
+ background-color: #330000;
+}
+.ccolor {
+ background-color: #660033;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FFFF00;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #00CCFF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/rgb.css b/test/user-template/user/config/wizard/web/styles/rgb.css
new file mode 100644
index 000000000000..741a3ebe3329
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/rgb.css
@@ -0,0 +1,91 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #660000;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #CCCCCC;
+}
+.tcolor {
+ background-color: #FFCC00;
+ border-top-width: mittel;
+ border-right-width: mittel;
+ border-bottom-width: mittel;
+ border-left-width: mittel;
+ border-top-style: doppelt;
+ border-right-style: doppelt;
+ border-bottom-style: doppelt;
+ border-left-style: doppelt;
+ border-top-color: #003399;
+ border-right-color: #CC3300;
+ border-bottom-color: #003399;
+ border-left-color: #666666;
+}
+.ccolor {
+ background-color: #000066;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #003399;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0099CC;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #CC0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/strange.css b/test/user-template/user/config/wizard/web/styles/strange.css
new file mode 100644
index 000000000000..ac37b3835de3
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/strange.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #660000;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #000000;
+ background-color: #CCCCCC;
+}
+.tcolor {
+ background-color: #33CC66;
+}
+.ccolor {
+ background-color: #330099;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0033CC;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0099FF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/violet.css b/test/user-template/user/config/wizard/web/styles/violet.css
new file mode 100644
index 000000000000..4b42d1811fb3
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/violet.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #FFFFFF;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFF00;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FF0000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #FFFFFF;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #FFFFFF;
+}
+body {
+ background-color: #CCCCCC;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #330033;
+}
+.tcolor {
+ background-color: #330066;
+}
+.ccolor {
+ background-color: #330033;
+}
+a:link {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FFFF00;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0099FF;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #FF0000;
+}
diff --git a/test/user-template/user/config/wizard/web/styles/water.css b/test/user-template/user/config/wizard/web/styles/water.css
new file mode 100644
index 000000000000..f654fbff3455
--- /dev/null
+++ b/test/user-template/user/config/wizard/web/styles/water.css
@@ -0,0 +1,79 @@
+.doctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 14px;
+ color: #000000;
+ font-weight: bold;
+}
+.docdescription {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docauthor {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.doccreationdate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.doclastchangeddate {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #990000;
+}
+.docfilename {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000066;
+}
+.docfileformatinfo {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ font-style: italic;
+ color: #000000;
+}
+.docnumberofpages {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+.docsizeinkb {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 12px;
+ color: #000000;
+}
+body {
+ background-color: #CCCCCC;
+ background-image: url(images/background.gif);
+}
+.toctitle {
+ font-family: Arial, Helvetica, sans-serif;
+ font-size: 20px;
+ font-style: normal;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #006699;
+}
+.tcolor {
+ background-color: #EEEEEE;
+}
+.ccolor {
+ background-color: #0066CC;
+}
+a:link {
+ font-family: "Times New Roman", Times, serif;
+ color: #0033CC;
+}
+a:visited {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #0066CC;
+}
+a:active {
+ font-family: Arial, Helvetica, sans-serif;
+ color: #CC0000;
+}
diff --git a/test/user-template/user/dtd/math/1_01/w3c_ipr_software_notice.html b/test/user-template/user/dtd/math/1_01/w3c_ipr_software_notice.html
new file mode 100644
index 000000000000..3a4ed535c1a7
--- /dev/null
+++ b/test/user-template/user/dtd/math/1_01/w3c_ipr_software_notice.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- W3C IPR SOFTWARE NOTICE -->
+<!-- downloaded from: -->
+<!-- http://www.w3.org/Consortium/Legal/copyright-software-19980720 -->
+<!-- -->
+<!-- Changed: 24. July 2001 -->
+<!-- 1) removed link to stylesheet -->
+<!-- 2) removed "webmaster" link -->
+<!-- 3) changed site-relative URLs to absolute URLs -->
+<!-- 4) added this comment block -->
+<!-- Changes are intended to allow proper -->
+<!-- off-line viewing of the license. -->
+
+<html>
+<head>
+<meta name="generator" content="HTML Tidy, see www.w3.org">
+<meta http-equiv="Content-Type" content=
+"text/html; charset=iso-8859-1">
+<title>W3C IPR SOFTWARE NOTICE</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<h1>W3C<sup>&reg;</sup> SOFTWARE NOTICE AND LICENSE</h1>
+
+<h3>Copyright &copy; 1994-2001 <a href="http://www.w3.org/">World
+Wide Web Consortium</a>, (<a href=
+"http://www.lcs.mit.edu/">Massachusetts Institute of
+Technology</a>, <a href="http://www.inria.fr/">Institut National de
+Recherche en Informatique et en Automatique</a>, <a href=
+"http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/</h3>
+
+<p>This W3C work (including software, documents, or other related
+items) is being provided by the copyright holders under the
+following license. By obtaining, using and/or copying this work,
+you (the licensee) agree that you have read, understood, and will
+comply with the following terms and conditions:</p>
+
+<p>Permission to use, copy, modify, and distribute this software
+and its documentation, with or without modification,&nbsp; for any
+purpose and without fee or royalty is hereby granted, provided that
+you include the following on ALL copies of the software and
+documentation or portions thereof, including modifications, that
+you make:</p>
+
+<ol>
+<li>The full text of this NOTICE in a location viewable to users of
+the redistributed or derivative work.</li>
+
+<li>Any pre-existing intellectual property disclaimers, notices, or
+terms and conditions. If none exist, a short notice of the
+following form (hypertext is preferred, text is permitted) should
+be used within the body of any redistributed or derivative code:
+"Copyright &copy; [$date-of-software] <a href="http://www.w3.org/">
+World Wide Web Consortium</a>, (<a href=
+"http://www.lcs.mit.edu/">Massachusetts Institute of
+Technology</a>, <a href="http://www.inria.fr/">Institut National de
+Recherche en Informatique et en Automatique</a>, <a href=
+"http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/"</li>
+
+<li>Notice of any changes or modifications to the W3C files,
+including the date changes were made. (We recommend you provide
+URIs to the location from which the code is derived.)</li>
+</ol>
+
+<p>THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
+COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
+USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
+PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
+
+<p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
+SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
+SOFTWARE OR DOCUMENTATION.</p>
+
+<p>The name and trademarks of copyright holders may NOT be used in
+advertising or publicity pertaining to the software without
+specific, written prior permission. Title to copyright in this
+software and any associated documentation will at all times remain
+with copyright holders.</p>
+
+<p>____________________________________</p>
+
+<p>This formulation of W3C's notice and license became active on
+August 14 1998 so as to improve compatibility with GPL. This
+version ensures that W3C software licensing terms are no more
+restrictive than GPL and consequently W3C software may be
+distributed in GPL packages. See the <a href=
+"http://www.w3.org/Consortium/Legal/copyright-software-19980519.html">older formulation</a> for the
+policy prior to this date. Please see our <a href="http://www.w3.org/Consortium/Legal/IPR-FAQ.html">
+Copyright FAQ</a> for common questions about using materials from
+our site, including specific terms and conditions for packages like
+libwww, Amaya, and Jigsaw. Other questions about this notice can be
+directed to <a href="mailto:site-policy@w3.org">
+site-policy@w3.org</a>.<br>
+&nbsp;</p>
+
+<p>&nbsp;</p>
+
+</body>
+</html>
+
diff --git a/test/user-template/user/dtd/officedocument/1_0/Manifest.dtd b/test/user-template/user/dtd/officedocument/1_0/Manifest.dtd
new file mode 100644
index 000000000000..d5f9184bf07e
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/Manifest.dtd
@@ -0,0 +1,58 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!ELEMENT manifest:manifest (manifest:file-entry+)>
+<!ATTLIST manifest:manifest xmlns:manifest CDATA #FIXED "http://openoffice.org/2001/manifest">
+
+<!ELEMENT manifest:file-entry (manifest:encryption-data?)>
+<!-- manifest:size is usually only specified for encrypted entries -->
+<!ATTLIST manifest:file-entry
+ manifest:full-path CDATA #REQUIRED
+ manifest:size CDATA #IMPLIED
+ manifest:media-type CDATA #REQUIRED
+>
+
+<!ELEMENT manifest:encryption-data (manifest:algorithm,manifest:key-derivation)>
+<!ATTLIST manifest:encryption-data
+ manifest:checksum-type CDATA #REQUIRED
+ manifest:checksum CDATA #REQUIRED >
+<!-- algorithm-name specifies the name of the algorithm used to encrypt
+ the stream, for example Blowfish
+ manifest:initialisation-vector is stored encoded in Base64 -->
+<!ELEMENT manifest:algorithm EMPTY>
+<!ATTLIST manifest:algorithm
+ manifest:algorithm-name CDATA #REQUIRED
+ manifest:initialisation-vector CDATA #REQUIRED>
+
+<!ELEMENT manifest:key-derivation EMPTY>
+<!-- manifest:key-derivation-name specifies the name of the algorithm used to derive
+ the key, for example PBKDF2 (see rfc 2898 )
+ manifest:salt is stored encoded in Base64 -->
+<!ATTLIST manifest:key-derivation
+ manifest:key-derivation-name CDATA #REQUIRED
+ manifest:salt CDATA #REQUIRED
+ manifest:iteration-count CDATA #REQUIRED>
+
diff --git a/test/user-template/user/dtd/officedocument/1_0/accelerator.dtd b/test/user-template/user/dtd/officedocument/1_0/accelerator.dtd
new file mode 100644
index 000000000000..5217b635cd14
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/accelerator.dtd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY % boolean "(true|false)">
+
+<!ELEMENT accel:acceleratorlist (accel:item*)>
+<!ATTLIST accel:acceleratorlist
+ xmlns:accel CDATA #FIXED "http://openoffice.org/2001/accel"
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+>
+
+<!ELEMENT accel:item EMPTY>
+<!ATTLIST accel:item
+ accel:code CDATA #REQUIRED
+ accel:shift %boolean; "false"
+ accel:mod1 %boolean; "false"
+ accel:mod2 %boolean; "false"
+ xlink:href CDATA #REQUIRED
+>
diff --git a/test/user-template/user/dtd/officedocument/1_0/chart.mod b/test/user-template/user/dtd/officedocument/1_0/chart.mod
new file mode 100644
index 000000000000..e72bab68c3f9
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/chart.mod
@@ -0,0 +1,262 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+
+<!ENTITY % chart-class "(line|area|circle|ring|scatter|radar|bar|stock|add-in)">
+<!ENTITY % chart-solid-type "(cuboid|cylinder|cone|pyramid)">
+
+<!-- Chart element -->
+<!ELEMENT chart:chart ( chart:title?, chart:subtitle?, chart:legend?,
+ chart:plot-area,
+ table:table? )>
+<!ATTLIST chart:chart
+ chart:class %chart-class; #REQUIRED
+ chart:add-in-name %string; #IMPLIED
+ chart:table-number-list %string; #IMPLIED
+ draw:name %string; #IMPLIED
+ %draw-position;
+ %draw-size;
+ %draw-style-name;
+ chart:column-mapping %string; #IMPLIED
+ chart:row-mapping %string; #IMPLIED
+ chart:style-name %styleName; #IMPLIED>
+
+<!ATTLIST chart:chart %presentation-class; >
+<!ATTLIST chart:chart %zindex;>
+<!ATTLIST chart:chart %draw-end-position; >
+<!ATTLIST chart:chart draw:id %draw-shape-id; >
+<!ATTLIST chart:chart draw:layer %layerName; #IMPLIED>
+
+<!ATTLIST style:properties
+ chart:scale-text %boolean; "true"
+ chart:stock-updown-bars %boolean; "false"
+ chart:stock-with-volume %boolean; "false"
+ chart:three-dimensional %boolean; "false"
+ chart:deep %boolean; "false"
+ chart:lines %boolean; "false"
+ chart:percentage %boolean; "false"
+ chart:solid-type %chart-solid-type; "cuboid"
+ chart:splines %nonNegativeInteger; "0"
+ chart:stacked %boolean; "false"
+ chart:symbol %integer; "-1"
+ chart:vertical %boolean; "false"
+ chart:lines-used %nonNegativeInteger; "0"
+ chart:connect-bars %boolean; "false"
+ chart:spline-order %nonNegativeInteger; "2"
+ chart:spline-resolution %nonNegativeInteger; "20"
+ chart:pie-offset %nonNegativeInteger; "0">
+
+<!-- Main/Sub Title -->
+<!-- the cell-address attribute is currently not supported for titles -->
+<!ELEMENT chart:title (text:p)?>
+<!ATTLIST chart:title
+ table:cell-range %cell-address; #IMPLIED
+ svg:x %coordinate; #IMPLIED
+ svg:y %coordinate; #IMPLIED
+ chart:style-name %styleName; #IMPLIED >
+
+<!ELEMENT chart:subtitle (text:p)?>
+<!ATTLIST chart:subtitle
+ table:cell-range %cell-address; #IMPLIED
+ svg:x %coordinate; #IMPLIED
+ svg:y %coordinate; #IMPLIED
+ chart:style-name %styleName; #IMPLIED >
+
+<!-- you must specify either a legend-position or both, x and y coordinates -->
+<!ELEMENT chart:legend EMPTY>
+<!ATTLIST chart:legend
+ chart:legend-position (top|left|bottom|right) "right"
+ svg:x %coordinate; #IMPLIED
+ svg:y %coordinate; #IMPLIED
+ chart:style-name %styleName; #IMPLIED >
+
+<!-- Plot-Area specification -->
+
+<!ELEMENT chart:plot-area (dr3d:light*,
+ chart:axis*,
+ chart:categories?,
+ chart:series*,
+ chart:stock-gain-marker?,
+ chart:stock-loss-marker?,
+ chart:stock-range-line?,
+ chart:wall?,
+ chart:floor?) >
+
+<!ATTLIST chart:plot-area
+ svg:x %coordinate; #IMPLIED
+ svg:y %coordinate; #IMPLIED
+ svg:width %length; #IMPLIED
+ svg:height %length; #IMPLIED
+ chart:style-name %styleName; #IMPLIED
+ table:cell-range-address %cell-range-address; #IMPLIED
+ chart:table-number-list %string; #IMPLIED
+ chart:data-source-has-labels (none|row|column|both) "none" >
+
+<!-- 3d scene attributes on plot-area -->
+<!ATTLIST chart:plot-area
+ dr3d:vrp %vector3D; #IMPLIED
+ dr3d:vpn %vector3D; #IMPLIED
+ dr3d:vup %vector3D; #IMPLIED
+ dr3d:projection (parallel|perspective) #IMPLIED
+ dr3d:transform CDATA #IMPLIED
+ dr3d:distance %length; #IMPLIED
+ dr3d:focal-length %length; #IMPLIED
+ dr3d:shadow-slant %nonNegativeInteger; #IMPLIED
+ dr3d:shade-mode (flat|phong|gouraud|draft) #IMPLIED
+ dr3d:ambient-color %color; #IMPLIED
+ dr3d:lighting-mode %boolean; #IMPLIED >
+
+<!ATTLIST style:properties
+ chart:series-source (columns|rows) "columns" >
+
+<!ELEMENT chart:wall EMPTY>
+<!ATTLIST chart:wall
+ svg:width %length; #IMPLIED
+ chart:style-name %styleName; #IMPLIED >
+
+<!ELEMENT chart:floor EMPTY>
+<!ATTLIST chart:floor
+ svg:width %length; #IMPLIED
+ chart:style-name %styleName; #IMPLIED >
+
+<!-- Stock chart elements -->
+
+<!ELEMENT chart:stock-gain-marker EMPTY>
+<!ATTLIST chart:stock-gain-marker
+ chart:style-name %styleName; #IMPLIED >
+
+<!ELEMENT chart:stock-loss-marker EMPTY>
+<!ATTLIST chart:stock-loss-marker
+ chart:style-name %styleName; #IMPLIED >
+
+<!ELEMENT chart:stock-range-line EMPTY>
+<!ATTLIST chart:stock-range-line
+ chart:style-name %styleName; #IMPLIED >
+
+<!-- Axis -->
+
+<!ELEMENT chart:axis (chart:title?, chart:grid*)>
+<!ATTLIST chart:axis
+ chart:class (category|value|series|domain) #REQUIRED
+ chart:name %string; #IMPLIED
+ chart:style-name %styleName; #IMPLIED >
+
+<!ATTLIST style:properties
+ chart:tick-marks-major-inner %boolean; "false"
+ chart:tick-marks-major-outer %boolean; "true"
+ chart:tick-marks-minor-inner %boolean; "false"
+ chart:tick-marks-minor-outer %boolean; "false"
+ chart:logarithmic %boolean; "false"
+ chart:maximum %float; #IMPLIED
+ chart:minimum %float; #IMPLIED
+ chart:origin %float; #IMPLIED
+ chart:interval-major %float; #IMPLIED
+ chart:interval-minor %float; #IMPLIED
+ chart:gap-width %integer; #IMPLIED
+ chart:overlap %integer; #IMPLIED
+ text:line-break %boolean; "true"
+ chart:display-label %boolean; "true"
+ chart:label-arrangement (side-by-side|stagger-even|stagger-odd) "side-by-side"
+ chart:text-overlap %boolean; "false"
+ chart:visible %boolean; "true"
+ chart:link-data-style-to-source %boolean; "true" >
+
+<!ELEMENT chart:grid EMPTY>
+<!ATTLIST chart:grid
+ chart:class (major|minor) "major"
+ chart:style-name %styleName; #IMPLIED >
+
+
+<!ELEMENT chart:categories EMPTY>
+<!ATTLIST chart:categories
+ table:cell-range-address %cell-range-address; #IMPLIED >
+
+<!--
+ each series element must have an cell-range-address element that points
+ to the underlying table data.
+ Impl. Note: Internally all href elements are merged to one table range
+ that represents the data for the whole chart
+-->
+<!ELEMENT chart:series ( chart:domain*,
+ chart:mean-value?,
+ chart:regression-curve?,
+ chart:error-indicator?,
+ chart:data-point* )>
+<!ATTLIST chart:series
+ chart:values-cell-range-address %cell-range-address; #IMPLIED
+ chart:label-cell-address %cell-address; #IMPLIED
+ chart:class %chart-class; #IMPLIED
+ chart:attached-axis %string; #IMPLIED
+ chart:style-name %styleName; #IMPLIED >
+
+<!ELEMENT chart:domain EMPTY>
+<!ATTLIST chart:domain
+ table:cell-range-address %cell-range-address; #IMPLIED >
+
+<!ELEMENT chart:data-point EMPTY>
+<!ATTLIST chart:data-point
+ chart:repeated %nonNegativeInteger; #IMPLIED
+ chart:style-name %styleName; #IMPLIED >
+
+<!-- statistical properties -->
+
+<!ELEMENT chart:mean-value EMPTY>
+<!ELEMENT chart:regression-curve EMPTY >
+<!ELEMENT chart:error-indicator EMPTY >
+<!ATTLIST chart:mean-value chart:style-name %styleName; #IMPLIED >
+<!ATTLIST chart:regression-curve chart:style-name %styleName; #IMPLIED >
+<!ATTLIST chart:error-indicator chart:style-name %styleName; #IMPLIED >
+
+<!ATTLIST style:properties
+ chart:mean-value %boolean; #IMPLIED
+ chart:error-category (none|variance|standard-deviation|percentage|error-margin|constant) "none"
+ chart:error-percentage %float; #IMPLIED
+ chart:error-margin %float; #IMPLIED
+ chart:error-lower-limit %float; #IMPLIED
+ chart:error-upper-limit %float; #IMPLIED
+ chart:error-upper-indicator %boolean; #IMPLIED
+ chart:error-lower-indicator %boolean; #IMPLIED
+ chart:regression-type (none|linear|logarithmic|exponential|power) "none" >
+
+<!-- data label properties -->
+
+<!ATTLIST style:properties
+ chart:data-label-number (none|value|percentage) "none"
+ chart:data-label-text %boolean; "false"
+ chart:data-label-symbol %boolean; "false" >
+
+<!-- general text properties -->
+
+<!ATTLIST style:properties
+ text:rotation-angle %integer; "0" >
+
+<!-- symbol properties -->
+
+<!ATTLIST style:properties
+ chart:symbol-width %nonNegativeLength; #IMPLIED
+ chart:symbol-height %nonNegativeLength; #IMPLIED
+ chart:symbol-image-name %string; #IMPLIED >
diff --git a/test/user-template/user/dtd/officedocument/1_0/datastyl.mod b/test/user-template/user/dtd/officedocument/1_0/datastyl.mod
new file mode 100644
index 000000000000..daacfad66f5b
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/datastyl.mod
@@ -0,0 +1,208 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!-- data styles -->
+<!ENTITY % any-number "( number:number | number:scientific-number | number:fraction )">
+<!ENTITY % number-style-content "( (number:text,(%any-number;,number:text?)?) | (%any-number;,number:text?) )">
+<!ELEMENT number:number-style ( style:properties?, %number-style-content;, style:map* )>
+<!ELEMENT number:number ( number:embedded-text* )>
+<!ELEMENT number:scientific-number EMPTY>
+<!ELEMENT number:fraction EMPTY>
+
+<!ELEMENT number:embedded-text (#PCDATA)>
+<!ATTLIST number:embedded-text number:position %integer; #REQUIRED>
+
+<!ENTITY % currency-symbol-and-text "number:currency-symbol,number:text?">
+<!ENTITY % number-and-text "number:number,number:text?">
+<!ENTITY % currency-symbol-and-number "((%number-and-text;),(%currency-symbol-and-text;)?) | ((%currency-symbol-and-text;),(%number-and-text;)?)">
+<!ENTITY % currency-style-content "number:text?, (%currency-symbol-and-number;)?">
+
+<!ELEMENT number:currency-style ( style:properties?, (%currency-style-content;), style:map* )>
+<!ELEMENT number:currency-symbol (#PCDATA)>
+<!ATTLIST number:currency-symbol number:language CDATA #IMPLIED>
+<!ATTLIST number:currency-symbol number:country CDATA #IMPLIED>
+
+<!ENTITY % percentage-style-content "( (number:text,(%number-and-text;)?) | (%number-and-text;) )">
+<!ELEMENT number:percentage-style ( style:properties?, %percentage-style-content;, style:map* )>
+
+<!ENTITY % any-date "( number:day | number:month | number:year | number:era | number:day-of-week | number:week-of-year | number:quarter| number:hours | number:am-pm | number:minutes | number:seconds )">
+<!ENTITY % date-style-content "( (number:text,(%any-date;,number:text?)+) | (%any-date;,number:text?)+ )">
+<!ELEMENT number:date-style ( style:properties?, %date-style-content;, style:map* )>
+<!ELEMENT number:day EMPTY>
+<!ATTLIST number:day number:style (short|long) "short">
+<!ATTLIST number:day number:calendar CDATA #IMPLIED>
+<!ELEMENT number:month EMPTY>
+<!ATTLIST number:month number:textual %boolean; "false">
+<!ATTLIST number:month number:style (short|long) "short">
+<!ATTLIST number:month number:calendar CDATA #IMPLIED>
+<!ELEMENT number:year EMPTY>
+<!ATTLIST number:year number:style (short|long) "short">
+<!ATTLIST number:year number:calendar CDATA #IMPLIED>
+<!ELEMENT number:era EMPTY>
+<!ATTLIST number:era number:style (short|long) "short">
+<!ATTLIST number:era number:calendar CDATA #IMPLIED>
+<!ELEMENT number:day-of-week EMPTY>
+<!ATTLIST number:day-of-week number:style (short|long) "short">
+<!ATTLIST number:day-of-week number:calendar CDATA #IMPLIED>
+<!ELEMENT number:week-of-year EMPTY>
+<!ATTLIST number:week-of-year number:calendar CDATA #IMPLIED>
+<!ELEMENT number:quarter EMPTY>
+<!ATTLIST number:quarter number:style (short|long) "short">
+<!ATTLIST number:quarter number:calendar CDATA #IMPLIED>
+
+<!ENTITY % any-time "( number:hours | number:am-pm | number:minutes | number:seconds )">
+<!ENTITY % time-style-content "( (number:text,(%any-time;,number:text?)+) | (%any-time;,number:text?)+)">
+<!ELEMENT number:time-style ( style:properties?, %time-style-content;, style:map* )>
+<!ELEMENT number:hours EMPTY>
+<!ATTLIST number:hours number:style (short|long) "short">
+<!ELEMENT number:minutes EMPTY>
+<!ATTLIST number:minutes number:style (short|long) "short">
+<!ELEMENT number:seconds EMPTY>
+<!ATTLIST number:seconds number:style (short|long) "short">
+<!ATTLIST number:seconds number:decimal-places %integer; "0">
+<!ELEMENT number:am-pm EMPTY>
+
+<!ENTITY % boolean-style-content "( (number:text,(number:boolean,number:text?)?) | (number:boolean,number:text?) )">
+<!ELEMENT number:boolean-style ( style:properties?,%boolean-style-content;, style:map* )>
+<!ELEMENT number:boolean EMPTY>
+
+<!ENTITY % text-style-content "( (number:text,(number:text-content,number:text?)?) | (number:text-content,number:text?) )">
+<!ELEMENT number:text-style ( style:properties?,%text-style-content;, style:map* )>
+<!ELEMENT number:text (#PCDATA)>
+<!ELEMENT number:text-content EMPTY>
+
+<!ATTLIST number:number-style style:name %styleName; #REQUIRED>
+<!ATTLIST number:currency-style style:name %styleName; #REQUIRED>
+<!ATTLIST number:percentage-style style:name %styleName; #REQUIRED>
+<!ATTLIST number:date-style style:name %styleName; #REQUIRED>
+<!ATTLIST number:time-style style:name %styleName; #REQUIRED>
+<!ATTLIST number:boolean-style style:name %styleName; #REQUIRED>
+<!ATTLIST number:text-style style:name %styleName; #REQUIRED>
+
+<!-- The style:family is redundant and therefor should not exist at all -->
+<!-- Since OOo 1.0/1.1 is exporting this attribute is is an #IMPLIED -->
+<!-- one to avoid validation errors. -->
+<!ATTLIST number:number-style style:family CDATA #IMPLIED>
+<!ATTLIST number:currency-style style:family CDATA #IMPLIED>
+<!ATTLIST number:percentage-style style:family CDATA #IMPLIED>
+<!ATTLIST number:date-style style:family CDATA #IMPLIED>
+<!ATTLIST number:time-style style:family CDATA #IMPLIED>
+<!ATTLIST number:boolean-style style:family CDATA #IMPLIED>
+<!ATTLIST number:text-style style:family CDATA #IMPLIED>
+
+<!ATTLIST number:number-style number:language CDATA #IMPLIED>
+<!ATTLIST number:currency-style number:language CDATA #IMPLIED>
+<!ATTLIST number:percentage-style number:language CDATA #IMPLIED>
+<!ATTLIST number:date-style number:language CDATA #IMPLIED>
+<!ATTLIST number:time-style number:language CDATA #IMPLIED>
+<!ATTLIST number:boolean-style number:language CDATA #IMPLIED>
+<!ATTLIST number:text-style number:language CDATA #IMPLIED>
+
+<!ATTLIST number:number-style number:country CDATA #IMPLIED>
+<!ATTLIST number:currency-style number:country CDATA #IMPLIED>
+<!ATTLIST number:percentage-style number:country CDATA #IMPLIED>
+<!ATTLIST number:date-style number:country CDATA #IMPLIED>
+<!ATTLIST number:time-style number:country CDATA #IMPLIED>
+<!ATTLIST number:boolean-style number:country CDATA #IMPLIED>
+<!ATTLIST number:text-style number:country CDATA #IMPLIED>
+
+<!ATTLIST number:number-style number:title CDATA #IMPLIED>
+<!ATTLIST number:currency-style number:title CDATA #IMPLIED>
+<!ATTLIST number:percentage-style number:title CDATA #IMPLIED>
+<!ATTLIST number:date-style number:title CDATA #IMPLIED>
+<!ATTLIST number:time-style number:title CDATA #IMPLIED>
+<!ATTLIST number:boolean-style number:title CDATA #IMPLIED>
+<!ATTLIST number:text-style number:title CDATA #IMPLIED>
+
+<!ATTLIST number:number-style style:volatile %boolean; #IMPLIED>
+<!ATTLIST number:currency-style style:volatile %boolean; #IMPLIED>
+<!ATTLIST number:percentage-style style:volatile %boolean; #IMPLIED>
+<!ATTLIST number:date-style style:volatile %boolean; #IMPLIED>
+<!ATTLIST number:time-style style:volatile %boolean; #IMPLIED>
+<!ATTLIST number:boolean-style style:volatile %boolean; #IMPLIED>
+<!ATTLIST number:text-style style:volatile %boolean; #IMPLIED>
+
+<!ATTLIST number:number-style number:transliteration-format CDATA "1">
+<!ATTLIST number:currency-style number:transliteration-format CDATA "1">
+<!ATTLIST number:percentage-style number:transliteration-format CDATA "1">
+<!ATTLIST number:date-style number:transliteration-format CDATA "1">
+<!ATTLIST number:time-style number:transliteration-format CDATA "1">
+<!ATTLIST number:boolean-style number:transliteration-format CDATA "1">
+<!ATTLIST number:text-style number:transliteration-format CDATA "1">
+
+<!ATTLIST number:number-style number:transliteration-language CDATA #IMPLIED>
+<!ATTLIST number:currency-style number:transliteration-language CDATA #IMPLIED>
+<!ATTLIST number:percentage-style number:transliteration-language CDATA #IMPLIED>
+<!ATTLIST number:date-style number:transliteration-language CDATA #IMPLIED>
+<!ATTLIST number:time-style number:transliteration-language CDATA #IMPLIED>
+<!ATTLIST number:boolean-style number:transliteration-language CDATA #IMPLIED>
+<!ATTLIST number:text-style number:transliteration-language CDATA #IMPLIED>
+
+<!ATTLIST number:number-style number:transliteration-country CDATA #IMPLIED>
+<!ATTLIST number:currency-style number:transliteration-country CDATA #IMPLIED>
+<!ATTLIST number:percentage-style number:transliteration-country CDATA #IMPLIED>
+<!ATTLIST number:date-style number:transliteration-country CDATA #IMPLIED>
+<!ATTLIST number:time-style number:transliteration-country CDATA #IMPLIED>
+<!ATTLIST number:boolean-style number:transliteration-country CDATA #IMPLIED>
+<!ATTLIST number:text-style number:transliteration-country CDATA #IMPLIED>
+
+<!ATTLIST number:number-style number:transliteration-style (short|medium|long) "short">
+<!ATTLIST number:currency-style number:transliteration-style (short|medium|long) "short">
+<!ATTLIST number:percentage-style number:transliteration-style (short|medium|long) "short">
+<!ATTLIST number:date-style number:transliteration-style (short|medium|long) "short">
+<!ATTLIST number:time-style number:transliteration-style (short|medium|long) "short">
+<!ATTLIST number:boolean-style number:transliteration-style (short|medium|long) "short">
+<!ATTLIST number:text-style number:transliteration-style (short|medium|long) "short">
+
+<!ATTLIST number:currency-style number:automatic-order %boolean; "false">
+<!ATTLIST number:date-style number:automatic-order %boolean; "false">
+
+<!ATTLIST number:date-style number:format-source (fixed|language) "fixed">
+<!ATTLIST number:time-style number:format-source (fixed|language) "fixed">
+
+<!ATTLIST number:time-style number:truncate-on-overflow %boolean; "true">
+
+<!ATTLIST number:number number:decimal-places %integer; #IMPLIED>
+<!ATTLIST number:scientific-number number:decimal-places %integer; #IMPLIED>
+
+<!ATTLIST number:number number:min-integer-digits %integer; #IMPLIED>
+<!ATTLIST number:scientific-number number:min-integer-digits %integer; #IMPLIED>
+<!ATTLIST number:fraction number:min-integer-digits %integer; #IMPLIED>
+
+<!ATTLIST number:number number:grouping %boolean; "false">
+<!ATTLIST number:scientific-number number:grouping %boolean; "false">
+<!ATTLIST number:fraction number:grouping %boolean; "false">
+
+<!ATTLIST number:number number:decimal-replacement CDATA #IMPLIED>
+
+<!ATTLIST number:number number:display-factor %float; "1">
+
+<!ATTLIST number:scientific-number number:min-exponent-digits %integer; #IMPLIED>
+
+<!ATTLIST number:fraction number:min-numerator-digits %integer; #IMPLIED>
+
+<!ATTLIST number:fraction number:min-denominator-digits %integer; #IMPLIED>
diff --git a/test/user-template/user/dtd/officedocument/1_0/defs.mod b/test/user-template/user/dtd/officedocument/1_0/defs.mod
new file mode 100644
index 000000000000..98c964fe99e3
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/defs.mod
@@ -0,0 +1,56 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!-- This module should contain entities intended for content definitions
+ in several other modules. Putting all of them here should remove
+ (some) order dependencies of the other module files
+-->
+
+
+<!-- text marks for tracking changes; usually used inside of paragraphs -->
+<!ENTITY % change-marks "text:change | text:change-start | text:change-end">
+
+<!-- (optional) text declarations; used before the first paragraph -->
+<!ENTITY % text-decls "text:variable-decls?, text:sequence-decls?,
+ text:user-field-decls?, text:dde-connection-decls?,
+ text:alphabetical-index-auto-mark-file?" >
+
+<!-- define the types of text which may occur inside of sections -->
+<!ENTITY % sectionText "(text:h|text:p|text:ordered-list|
+ text:unordered-list|table:table|text:section|
+ text:table-of-content|text:illustration-index|
+ text:table-index|text:object-index|text:user-index|
+ text:alphabetical-index|text:bibliography|
+ text:index-title|%change-marks;)*">
+
+<!ENTITY % headerText "(%text-decls;, (text:h|text:p|text:ordered-list|
+ text:unordered-list|table:table|text:section|
+ text:table-of-content|text:illustration-index|
+ text:table-index|text:object-index|text:user-index|
+ text:alphabetical-index|text:bibliography|
+ text:index-title|%change-marks;)* )">
+
diff --git a/test/user-template/user/dtd/officedocument/1_0/dialog.dtd b/test/user-template/user/dtd/officedocument/1_0/dialog.dtd
new file mode 100644
index 000000000000..020ceedd5a5e
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/dialog.dtd
@@ -0,0 +1,405 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY % boolean "(true|false)">
+<!ENTITY % numeric "CDATA">
+
+<!ENTITY % default-attributes "dlg:id CDATA #REQUIRED
+ dlg:left %numeric; #REQUIRED
+ dlg:top %numeric; #REQUIRED
+ dlg:width %numeric; #REQUIRED
+ dlg:height %numeric; #REQUIRED
+ dlg:style-id CDATA #IMPLIED
+ dlg:tab-index %numeric; #IMPLIED
+ dlg:disabled %boolean; #IMPLIED
+ dlg:printable %boolean; #IMPLIED
+ dlg:page %numeric; #IMPLIED
+ dlg:tag CDATA #IMPLIED
+ dlg:help-text CDATA #IMPLIED
+ dlg:help-url CDATA #IMPLIED
+ ">
+
+<!ENTITY % event "(script:event|
+ script:listener-event|
+ dlg:event
+ )">
+
+<!ENTITY % control "(dlg:bulletinboard|
+ dlg:button|
+ dlg:checkbox|
+ dlg:combobox|
+ dlg:menulist|
+ dlg:radiogroup|
+ dlg:titledbox|
+ dlg:textfield|
+ dlg:text|
+ dlg:filecontrol|
+ dlg:img|
+ dlg:timefield|
+ dlg:datefield|
+ dlg:numericfield|
+ dlg:currencyfield|
+ dlg:patternfield|
+ dlg:formattedfield|
+ dlg:fixedline|
+ dlg:progressmeter|
+ dlg:scrollbar
+ )">
+
+<!ELEMENT dlg:window (dlg:styles*, (%event;)*, dlg:bulletinboard*)>
+<!ATTLIST dlg:window %default-attributes;
+ dlg:closeable %boolean; #IMPLIED
+ dlg:moveable %boolean; #IMPLIED
+ dlg:resizeable %boolean; #IMPLIED
+ dlg:title CDATA #IMPLIED
+ dlg:withtitlebar CDATA #IMPLIED
+ dlg:image-src CDATA #IMPLIED
+ xmlns:dlg CDATA #FIXED "http://openoffice.org/2000/dialog"
+ xmlns:script CDATA #FIXED "http://openoffice.org/2000/script"
+ >
+
+<!ELEMENT dlg:styles (dlg:style+)>
+
+<!ELEMENT dlg:style EMPTY>
+<!ATTLIST dlg:style dlg:style-id CDATA #REQUIRED
+ dlg:background-color %numeric; #IMPLIED
+ dlg:text-color %numeric; #IMPLIED
+ dlg:textline-color %numeric; #IMPLIED
+ dlg:fill-color %numeric; #IMPLIED
+ dlg:border CDATA #IMPLIED
+ dlg:font-name CDATA #IMPLIED
+ dlg:font-height %numeric; #IMPLIED
+ dlg:font-width %numeric; #IMPLIED
+ dlg:font-stylename CDATA #IMPLIED
+ dlg:font-family (decorative|modern|roman|script|swiss|system) #IMPLIED
+ dlg:font-charset (ansi|mac|ibmpc_437|ibmpc_850|ibmpc_860|ibmpc_861|ibmpc_863|ibmpc_865|system|symbol) #IMPLIED
+ dlg:font-pitch (fixed|variable) #IMPLIED
+ dlg:font-charwidth %numeric; #IMPLIED
+ dlg:font-weight %numeric; #IMPLIED
+ dlg:font-slant (oblique|italic|reverse_oblique|reverse_italic) #IMPLIED
+ dlg:font-underline (single|double|dotted|dash|longdash|dashdot|dashdotdot|smallwave|wave|doublewave|bold|bolddotted|bolddash|boldlongdash|bolddashdot|bolddashdotdot|boldwave) #IMPLIED
+ dlg:font-strikeout (single|double|bold|slash|x) #IMPLIED
+ dlg:font-orientation CDATA #IMPLIED
+ dlg:font-kerning %boolean; #IMPLIED
+ dlg:font-wordlinemode %boolean; #IMPLIED
+ dlg:font-type (raster|device|scalable) #IMPLIED
+ dlg:font-relief (none|embossed|engraved) #IMPLIED
+ dlg:font-emphasismark (none|dot|circle|disc|accent|above|below) #IMPLIED
+ dlg:look (none|3d|simple) #IMPLIED
+ >
+
+<!ELEMENT script:event EMPTY>
+<!ATTLIST script:event script:location CDATA #IMPLIED
+ script:language CDATA #REQUIRED
+ script:macro-name CDATA #REQUIRED
+ script:event-name CDATA #REQUIRED
+ >
+<!ELEMENT script:listener-event EMPTY>
+<!ATTLIST script:listener-event script:location CDATA #IMPLIED
+ script:language CDATA #REQUIRED
+ script:macro-name CDATA #REQUIRED
+ script:listener-type CDATA #REQUIRED
+ script:listener-method CDATA #REQUIRED
+ script:listener-param CDATA #IMPLIED
+ >
+<!-- deprecated -->
+<!ELEMENT dlg:event EMPTY>
+<!ATTLIST dlg:event dlg:listener-type CDATA #REQUIRED
+ dlg:event-method CDATA #REQUIRED
+ dlg:script-type CDATA #IMPLIED
+ dlg:script-code CDATA #IMPLIED
+ dlg:param CDATA #IMPLIED
+ >
+<!-- /deprecated -->
+
+<!ELEMENT dlg:bulletinboard ((%control;)*)>
+<!ATTLIST dlg:bulletinboard dlg:left %numeric; #IMPLIED
+ dlg:top %numeric; #IMPLIED
+ >
+
+<!ELEMENT dlg:button ((%event;)*)>
+<!ATTLIST dlg:button %default-attributes;
+ dlg:value CDATA #IMPLIED
+ dlg:align (left|center|right) #IMPLIED
+ dlg:valign (top|center|bottom) #IMPLIED
+ dlg:checked %boolean; #IMPLIED
+ dlg:image-src CDATA #IMPLIED
+ dlg:image-position (left-top|left-center|left-bottom|right-top|right-center|right-bottom|top-left|top-center|top-right|bottom-left|bottom-center|bottom-right|center) #IMPLIED
+ dlg:image-align (top|left|right|bottom) #IMPLIED
+ dlg:default %boolean; #IMPLIED
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:button-type (standard|ok|cancel|help) #IMPLIED
+ dlg:repeat %numeric; #IMPLIED
+ dlg:toggled (0|1) #IMPLIED
+ dlg:grab-focus (true|false) #IMPLIED
+ dlg:multiline %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:checkbox ((%event;)*)>
+<!ATTLIST dlg:checkbox %default-attributes;
+ dlg:value CDATA #IMPLIED
+ dlg:align (left|center|right) #IMPLIED
+ dlg:valign (top|center|bottom) #IMPLIED
+ dlg:checked %boolean; #IMPLIED
+ dlg:tristate %boolean; #IMPLIED
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:image-src CDATA #IMPLIED
+ dlg:image-position (left-top|left-center|left-bottom|right-top|right-center|right-bottom|top-left|top-center|top-right|bottom-left|bottom-center|bottom-right|center) #IMPLIED
+ dlg:multiline %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:combobox (dlg:menupopup?, (%event;)*)>
+<!ATTLIST dlg:combobox %default-attributes;
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:readonly %boolean; #IMPLIED
+ dlg:autocomplete %boolean; #IMPLIED
+ dlg:spin %boolean; #IMPLIED
+ dlg:maxlength %numeric; #IMPLIED
+ dlg:linecount %numeric; #IMPLIED
+ dlg:value CDATA #IMPLIED
+ dlg:hide-inactive-selection %boolean; #IMPLIED
+ dlg:align (left|center|right) #IMPLIED
+ >
+
+<!ELEMENT dlg:menulist (dlg:menupopup?, (%event;)*)>
+<!ATTLIST dlg:menulist %default-attributes;
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:spin %boolean; #IMPLIED
+ dlg:multiselection %boolean; #IMPLIED
+ dlg:readonly %boolean; #IMPLIED
+ dlg:linecount %numeric; #IMPLIED
+ dlg:align (left|center|right) #IMPLIED
+ >
+
+<!ELEMENT dlg:menupopup (dlg:menuitem+)>
+<!ELEMENT dlg:menuitem EMPTY>
+<!ATTLIST dlg:menuitem dlg:value CDATA #REQUIRED
+ dlg:selected %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:radiogroup (dlg:radio+)>
+<!ELEMENT dlg:radio ((%event;)*)>
+<!ATTLIST dlg:radio %default-attributes;
+ dlg:value CDATA #IMPLIED
+ dlg:align (left|center|right) #IMPLIED
+ dlg:valign (top|center|bottom) #IMPLIED
+ dlg:checked %boolean; #IMPLIED
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:image-src CDATA #IMPLIED
+ dlg:image-position (left-top|left-center|left-bottom|right-top|right-center|right-bottom|top-left|top-center|top-right|bottom-left|bottom-center|bottom-right|center) #IMPLIED
+ dlg:multiline %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:titledbox (dlg:title?, dlg:radio*, (%control;)*, (%event;)*)>
+<!ATTLIST dlg:titledbox %default-attributes;
+ >
+<!ELEMENT dlg:title EMPTY>
+<!ATTLIST dlg:title dlg:value CDATA #IMPLIED
+ >
+
+<!ELEMENT dlg:text ((%event;)*)>
+<!ATTLIST dlg:text %default-attributes;
+ dlg:value CDATA #IMPLIED
+ dlg:align (left|center|right) #IMPLIED
+ dlg:valign (top|center|bottom) #IMPLIED
+ dlg:multiline %boolean; #IMPLIED
+ dlg:tabstop %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:textfield ((%event;)*)>
+<!ATTLIST dlg:textfield %default-attributes;
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:align (left|center|right) #IMPLIED
+ dlg:readonly %boolean; #IMPLIED
+ dlg:echochar CDATA #IMPLIED
+ dlg:hard-linebreaks %boolean; #IMPLIED
+ dlg:hscroll %boolean; #IMPLIED
+ dlg:vscroll %boolean; #IMPLIED
+ dlg:maxlength %numeric; #IMPLIED
+ dlg:multiline %boolean; #IMPLIED
+ dlg:value CDATA #IMPLIED
+ dlg:hide-inactive-selection %boolean; #IMPLIED
+ dlg:lineend-format (carriage-return|line-feed|carriage-return-line-feed) #IMPLIED
+ >
+
+<!ELEMENT dlg:img ((%event;)*)>
+<!ATTLIST dlg:img %default-attributes;
+ dlg:src CDATA #IMPLIED
+ dlg:scale-image %boolean; #IMPLIED
+ dlg:tabstop %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:filecontrol ((%event;)*)>
+<!ATTLIST dlg:filecontrol %default-attributes;
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:value CDATA #IMPLIED
+ dlg:hide-inactive-selection %boolean; #IMPLIED
+ dlg:readonly %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:treecontrol ((%event;)*)>
+<!ATTLIST dlg:treecontrol %default-attributes;
+ dlg:selectiontype CDATA #IMPLIED
+ dlg:rootdisplayed %boolean; #IMPLIED
+ dlg:showshandles %boolean; #IMPLIED
+ dlg:showsroothandles %boolean; #IMPLIED
+ dlg:rowheight %boolean; #IMPLIED
+ dlg:editable %numeric; #IMPLIED
+ dlg:invokesstopnodeediting %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:currencyfield ((%event;)*)>
+<!ATTLIST dlg:currencyfield %default-attributes;
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:readonly %boolean; #IMPLIED
+ dlg:currency-symbol CDATA #IMPLIED
+ dlg:strict-format %boolean; #IMPLIED
+ dlg:decimal-accuracy %numeric; #IMPLIED
+ dlg:thousands-separator %boolean; #IMPLIED
+ dlg:value %numeric; #IMPLIED
+ dlg:value-min %numeric; #IMPLIED
+ dlg:value-max %numeric; #IMPLIED
+ dlg:value-step %numeric; #IMPLIED
+ dlg:spin %boolean; #IMPLIED
+ dlg:repeat %numeric; #IMPLIED
+ dlg:hide-inactive-selection %boolean; #IMPLIED
+ dlg:prepend-symbol %boolean; #IMPLIED
+ dlg:enforce-format %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:datefield ((%event;)*)>
+<!ATTLIST dlg:datefield %default-attributes;
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:readonly %boolean; #IMPLIED
+ dlg:strict-format %boolean; #IMPLIED
+ dlg:date-format (system_short|system_short_YY|system_short_YYYY|system_long|short_DDMMYY|short_MMDDYY|short_YYMMDD|short_DDMMYYYY|short_MMDDYYYY|short_YYYYMMDD|short_YYMMDD_DIN5008|short_YYYYMMDD_DIN5008) #IMPLIED
+ dlg:show-century %boolean; #IMPLIED
+ dlg:value CDATA #IMPLIED
+ dlg:value-min CDATA #IMPLIED
+ dlg:value-max CDATA #IMPLIED
+ dlg:spin %boolean; #IMPLIED
+ dlg:repeat %numeric; #IMPLIED
+ dlg:hide-inactive-selection %boolean; #IMPLIED
+ dlg:dropdown %boolean; #IMPLIED
+ dlg:text CDATA #IMPLIED
+ dlg:enforce-format %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:numericfield ((%event;)*)>
+<!ATTLIST dlg:numericfield %default-attributes;
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:readonly %boolean; #IMPLIED
+ dlg:strict-format %boolean; #IMPLIED
+ dlg:decimal-accuracy %numeric; #IMPLIED
+ dlg:thousands-separator %boolean; #IMPLIED
+ dlg:value %numeric; #IMPLIED
+ dlg:value-min %numeric; #IMPLIED
+ dlg:value-max %numeric; #IMPLIED
+ dlg:value-step %numeric; #IMPLIED
+ dlg:spin %boolean; #IMPLIED
+ dlg:repeat %numeric; #IMPLIED
+ dlg:hide-inactive-selection %boolean; #IMPLIED
+ dlg:enforce-format %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:timefield ((%event;)*)>
+<!ATTLIST dlg:timefield %default-attributes;
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:readonly %boolean; #IMPLIED
+ dlg:strict-format %boolean; #IMPLIED
+ dlg:time-format (24h_short|24h_long|12h_short|12h_long|Duration_short|Duration_long) #IMPLIED
+ dlg:value CDATA #IMPLIED
+ dlg:value-min CDATA #IMPLIED
+ dlg:value-max CDATA #IMPLIED
+ dlg:spin %boolean; #IMPLIED
+ dlg:repeat %numeric; #IMPLIED
+ dlg:hide-inactive-selection %boolean; #IMPLIED
+ dlg:text CDATA #IMPLIED
+ dlg:enforce-format %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:patternfield ((%event;)*)>
+<!ATTLIST dlg:patternfield %default-attributes;
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:readonly %boolean; #IMPLIED
+ dlg:strict-format %boolean; #IMPLIED
+ dlg:edit-mask CDATA #IMPLIED
+ dlg:literal-mask CDATA #IMPLIED
+ dlg:value CDATA #IMPLIED
+ dlg:maxlength %numeric; #IMPLIED
+ dlg:hide-inactive-selection %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:formattedfield ((%event;)*)>
+<!ATTLIST dlg:formattedfield %default-attributes;
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:readonly %boolean; #IMPLIED
+ dlg:strict-format %boolean; #IMPLIED
+ dlg:maxlength %numeric; #IMPLIED
+ dlg:spin %boolean; #IMPLIED
+ dlg:align (left|center|right) #IMPLIED
+ dlg:text CDATA #IMPLIED
+ dlg:value-default CDATA #IMPLIED
+ dlg:value-max %numeric; #IMPLIED
+ dlg:value-min %numeric; #IMPLIED
+ dlg:value %numeric; #IMPLIED
+ dlg:format-code CDATA #IMPLIED
+ dlg:format-locale CDATA #IMPLIED
+ dlg:repeat %numeric; #IMPLIED
+ dlg:hide-inactive-selection %boolean; #IMPLIED
+ dlg:treat-as-number %boolean; #IMPLIED
+ dlg:enforce-format %boolean; #IMPLIED
+ >
+
+<!ELEMENT dlg:fixedline ((%event;)*)>
+<!ATTLIST dlg:fixedline %default-attributes;
+ dlg:align (horizontal|vertical) #IMPLIED
+ dlg:value CDATA #IMPLIED
+ >
+
+<!ELEMENT dlg:scrollbar ((%event;)*)>
+<!ATTLIST dlg:scrollbar %default-attributes;
+ dlg:align (horizontal|vertical) #IMPLIED
+ dlg:curpos %numeric; #IMPLIED
+ dlg:maxpos %numeric; #IMPLIED
+ dlg:minpos %numeric; #IMPLIED
+ dlg:increment %numeric; #IMPLIED
+ dlg:pageincrement %numeric; #IMPLIED
+ dlg:visible-size %numeric; #IMPLIED
+ dlg:repeat %numeric; #IMPLIED
+ dlg:tabstop %boolean; #IMPLIED
+ dlg:live-scroll %boolean; #IMPLIED
+ dlg:symbol-color %numeric; #IMPLIED
+ >
+
+<!ELEMENT dlg:progressmeter ((%event;)*)>
+<!ATTLIST dlg:progressmeter %default-attributes;
+ dlg:value %numeric; #IMPLIED
+ dlg:value-min %numeric; #IMPLIED
+ dlg:value-max %numeric; #IMPLIED
+ >
diff --git a/test/user-template/user/dtd/officedocument/1_0/drawing.mod b/test/user-template/user/dtd/officedocument/1_0/drawing.mod
new file mode 100644
index 000000000000..93d7544b4fb9
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/drawing.mod
@@ -0,0 +1,861 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY % points "CDATA" >
+<!ENTITY % pathData "CDATA" >
+<!ENTITY % gradient-style "(linear|axial|radial|ellipsoid|square|rectangular)" >
+<!ENTITY % draw-position "svg:x %coordinate; #IMPLIED svg:y %coordinate; #IMPLIED">
+<!ENTITY % draw-end-position "table:end-cell-address %cell-address; #IMPLIED table:end-x %coordinate; #IMPLIED table:end-y %coordinate; #IMPLIED">
+<!ENTITY % draw-size "svg:width %coordinate; #IMPLIED svg:height %coordinate; #IMPLIED">
+<!ENTITY % draw-transform "draw:transform CDATA #IMPLIED">
+<!ENTITY % draw-viewbox "svg:viewBox CDATA #REQUIRED">
+<!ENTITY % draw-style-name "draw:style-name %styleName; #IMPLIED presentation:style-name %styleName; #IMPLIED draw:text-style-name %styleName; #IMPLIED">
+<!ENTITY % draw-shape-id "CDATA #IMPLIED" >
+<!ENTITY % draw-text "(text:p|text:unordered-list|text:ordered-list)*">
+<!ENTITY % zindex "draw:z-index %nonNegativeInteger; #IMPLIED">
+<!ENTITY % distance "CDATA">
+<!ENTITY % rectanglePoint "(top-left|top|top-right|left|center|right|bottom-left|bottom|bottom-right)">
+<!ENTITY % vector3D "CDATA">
+<!ENTITY % text-anchor "text:anchor-type %anchorType; #IMPLIED text:anchor-page-number %positiveInteger; #IMPLIED">
+<!ENTITY % layerName "CDATA">
+<!ENTITY % table-background "table:table-background (true | false) #IMPLIED">
+
+<!-- commont presentation shape attributes -->
+<!ENTITY % presentation-style-name "presentation:style-name %styleName; #IMPLIED">
+<!ENTITY % presentation-classes "(title|outline|subtitle|text|graphic|object|chart|table|orgchart|page|notes)" >
+<!-- ENTITY % presentation-class "presentation:class %presentation-classes; #IMPLIED" -->
+<!ENTITY % presentation-class "presentation:class %presentation-classes; #IMPLIED presentation:placeholder (true|false) #IMPLIED presentation:user-transformed (true|false) #IMPLIED">
+<!ENTITY % presentationEffects "(none|fade|move|stripes|open|close|dissolve|wavyline|random|lines|laser|appear|hide|move-short|checkerboard|rotate|stretch)" >
+<!ENTITY % presentationEffectDirections "(none|from-left|from-top|from-right|from-bottom|from-center|from-upper-left|from-upper-right|from-lower-left|from-lower-right|to-left|to-top|to-right|to-bottom|to-upper-left|to-upper-right|to-lower-right|to-lower-left|path|spiral-inward-left|spiral-inward-right|spiral-outward-left|spiral-outward-right|vertical|horizontal|to-center|clockwise|counter-clockwise)" >
+<!ENTITY % presentationSpeeds "(slow|medium|fast)" >
+
+<!-- Drawing shapes -->
+<!ELEMENT draw:rect ( office:events?, %draw-text; )>
+<!ATTLIST draw:rect %draw-position; >
+<!ATTLIST draw:rect %draw-end-position; >
+<!ATTLIST draw:rect %table-background; >
+<!ATTLIST draw:rect %draw-size; >
+<!ATTLIST draw:rect %draw-style-name; >
+<!ATTLIST draw:rect %draw-transform; >
+<!ATTLIST draw:rect draw:corner-radius %nonNegativeLength; #IMPLIED>
+<!ATTLIST draw:rect %zindex;>
+<!ATTLIST draw:rect draw:id %draw-shape-id;>
+<!ATTLIST draw:rect %text-anchor;>
+<!ATTLIST draw:rect draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:line ( office:events?, %draw-text; )>
+<!ATTLIST draw:line svg:x1 %length; #IMPLIED>
+<!ATTLIST draw:line svg:y1 %length; #IMPLIED>
+<!ATTLIST draw:line svg:x2 %length; #REQUIRED>
+<!ATTLIST draw:line svg:y2 %length; #REQUIRED>
+<!ATTLIST draw:line svg:y %coordinate; #IMPLIED>
+<!ATTLIST draw:line %draw-style-name; >
+<!ATTLIST draw:line %draw-transform; >
+<!ATTLIST draw:line %zindex;>
+<!ATTLIST draw:line %draw-end-position; >
+<!ATTLIST draw:line %table-background; >
+<!ATTLIST draw:line draw:id %draw-shape-id;>
+<!ATTLIST draw:line %text-anchor;>
+<!ATTLIST draw:line draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:polyline ( office:events?, %draw-text; )>
+<!ATTLIST draw:polyline %draw-position; >
+<!ATTLIST draw:polyline %draw-size; >
+<!ATTLIST draw:polyline %draw-viewbox; >
+<!ATTLIST draw:polyline draw:points %points; #REQUIRED>
+<!ATTLIST draw:polyline %draw-style-name; >
+<!ATTLIST draw:polyline %draw-transform; >
+<!ATTLIST draw:polyline %zindex;>
+<!ATTLIST draw:polyline %draw-end-position; >
+<!ATTLIST draw:polyline %table-background; >
+<!ATTLIST draw:polyline draw:id %draw-shape-id;>
+<!ATTLIST draw:polyline %text-anchor;>
+<!ATTLIST draw:polyline draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:polygon ( office:events?, %draw-text; )>
+<!ATTLIST draw:polygon %draw-position; >
+<!ATTLIST draw:polygon %draw-end-position; >
+<!ATTLIST draw:polygon %table-background; >
+<!ATTLIST draw:polygon %draw-size; >
+<!ATTLIST draw:polygon %draw-viewbox; >
+<!ATTLIST draw:polygon draw:points %points; #REQUIRED >
+<!ATTLIST draw:polygon %draw-style-name; >
+<!ATTLIST draw:polygon %draw-transform; >
+<!ATTLIST draw:polygon %zindex;>
+<!ATTLIST draw:polygon draw:id %draw-shape-id;>
+<!ATTLIST draw:polygon %text-anchor;>
+<!ATTLIST draw:polygon draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:path ( office:events?, %draw-text; )>
+<!ATTLIST draw:path %draw-position;>
+<!ATTLIST draw:path %draw-end-position; >
+<!ATTLIST draw:path %table-background; >
+<!ATTLIST draw:path %draw-size; >
+<!ATTLIST draw:path %draw-viewbox; >
+<!ATTLIST draw:path svg:d %pathData; #REQUIRED >
+<!ATTLIST draw:path %draw-style-name; >
+<!ATTLIST draw:path %draw-transform; >
+<!ATTLIST draw:path %zindex;>
+<!ATTLIST draw:path draw:id %draw-shape-id;>
+<!ATTLIST draw:path %text-anchor;>
+<!ATTLIST draw:path draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:circle ( office:events?, %draw-text; )>
+<!ATTLIST draw:circle %draw-position; >
+<!ATTLIST draw:circle %draw-size; >
+<!ATTLIST draw:circle %draw-style-name; >
+<!ATTLIST draw:circle %draw-transform; >
+<!ATTLIST draw:circle %zindex;>
+<!ATTLIST draw:circle %draw-end-position; >
+<!ATTLIST draw:circle %table-background; >
+<!ATTLIST draw:circle draw:id %draw-shape-id;>
+<!ATTLIST draw:circle draw:kind (full|section|cut|arc) "full">
+<!ATTLIST draw:circle draw:start-angle %nonNegativeInteger; #IMPLIED>
+<!ATTLIST draw:circle draw:end-angle %nonNegativeInteger; #IMPLIED>
+<!ATTLIST draw:circle %text-anchor;>
+<!ATTLIST draw:circle draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:ellipse ( office:events?, %draw-text; )>
+<!ATTLIST draw:ellipse %draw-position; >
+<!ATTLIST draw:ellipse %draw-size; >
+<!ATTLIST draw:ellipse %draw-style-name; >
+<!ATTLIST draw:ellipse %draw-transform; >
+<!ATTLIST draw:ellipse %zindex;>
+<!ATTLIST draw:ellipse %draw-end-position; >
+<!ATTLIST draw:ellipse %table-background; >
+<!ATTLIST draw:ellipse draw:id %draw-shape-id;>
+<!ATTLIST draw:ellipse draw:kind (full|section|cut|arc) "full">
+<!ATTLIST draw:ellipse draw:start-angle %nonNegativeInteger; #IMPLIED>
+<!ATTLIST draw:ellipse draw:end-angle %nonNegativeInteger; #IMPLIED>
+<!ATTLIST draw:ellipse %text-anchor;>
+<!ATTLIST draw:ellipse draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:connector ( office:events?, %draw-text;)>
+<!ATTLIST draw:connector draw:type (standard|lines|line|curve) "standard">
+<!ATTLIST draw:connector draw:line-skew CDATA #IMPLIED>
+<!ATTLIST draw:connector %draw-style-name;>
+<!ATTLIST draw:connector svg:x1 %coordinate; #REQUIRED>
+<!ATTLIST draw:connector svg:y1 %coordinate; #REQUIRED>
+<!ATTLIST draw:connector svg:x2 %coordinate; #REQUIRED>
+<!ATTLIST draw:connector svg:y2 %coordinate; #REQUIRED>
+<!ATTLIST draw:connector draw:start-shape %draw-shape-id;>
+<!ATTLIST draw:connector draw:start-glue-point %integer; #IMPLIED>
+<!ATTLIST draw:connector draw:end-shape %draw-shape-id;>
+<!ATTLIST draw:connector draw:end-glue-point %integer; #IMPLIED>
+<!ATTLIST draw:connector %zindex;>
+<!ATTLIST draw:connector %draw-end-position; >
+<!ATTLIST draw:connector %table-background; >
+<!ATTLIST draw:connector draw:id %draw-shape-id;>
+<!ATTLIST draw:connector %text-anchor;>
+<!ATTLIST draw:connector draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:control EMPTY>
+<!ATTLIST draw:control %draw-style-name;>
+<!ATTLIST draw:control %draw-position; >
+<!ATTLIST draw:control %draw-size; >
+<!ATTLIST draw:control %control-id; >
+<!ATTLIST draw:control %zindex;>
+<!ATTLIST draw:control %draw-end-position; >
+<!ATTLIST draw:control %table-background; >
+<!ATTLIST draw:control draw:id %draw-shape-id;>
+<!ATTLIST draw:control %text-anchor;>
+<!ATTLIST draw:control draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:g ( office:events?, (%shapes;)* ) >
+<!ATTLIST draw:g svg:y %coordinate; #IMPLIED>
+<!ATTLIST draw:g %draw-transform; >
+<!ATTLIST draw:g draw:name %string; #IMPLIED>
+<!ATTLIST draw:g %draw-style-name; >
+<!ATTLIST draw:g %zindex;>
+<!ATTLIST draw:g %draw-end-position; >
+<!ATTLIST draw:g %table-background; >
+<!ATTLIST draw:g draw:id %draw-shape-id;>
+<!ATTLIST draw:g %text-anchor;>
+<!ATTLIST draw:g draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:page-thumbnail EMPTY>
+<!ATTLIST draw:page-thumbnail draw:page-number %positiveInteger; #IMPLIED>
+<!ATTLIST draw:page-thumbnail %draw-position; >
+<!ATTLIST draw:page-thumbnail %draw-size; >
+<!ATTLIST draw:page-thumbnail %draw-style-name; >
+<!ATTLIST draw:page-thumbnail %presentation-class; >
+<!ATTLIST draw:page-thumbnail %zindex;>
+<!ATTLIST draw:page-thumbnail %draw-end-position; >
+<!ATTLIST draw:page-thumbnail %table-background; >
+<!ATTLIST draw:page-thumbnail draw:id %draw-shape-id;>
+<!ATTLIST draw:page-thumbnail %text-anchor;>
+<!ATTLIST draw:page-thumbnail draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT draw:caption ( office:events?, %draw-text;)>
+<!ATTLIST draw:caption %draw-position; >
+<!ATTLIST draw:caption %draw-end-position; >
+<!ATTLIST draw:caption %table-background; >
+<!ATTLIST draw:caption %draw-size; >
+<!ATTLIST draw:caption %draw-style-name; >
+<!ATTLIST draw:caption %draw-transform; >
+<!ATTLIST draw:caption draw:caption-point-x %coordinate; #IMPLIED>
+<!ATTLIST draw:caption draw:caption-point-y %coordinate; #IMPLIED>
+<!ATTLIST draw:caption %zindex;>
+<!ATTLIST draw:caption draw:id %draw-shape-id;>
+<!ATTLIST draw:caption %text-anchor;>
+<!ATTLIST draw:caption draw:layer %layerName; #IMPLIED>
+<!ATTLIST draw:caption draw:corner-radius %nonNegativeLength; #IMPLIED>
+
+<!ELEMENT draw:measure ( office:events?, %draw-text;)>
+<!ATTLIST draw:measure svg:x1 %coordinate; #REQUIRED>
+<!ATTLIST draw:measure svg:y1 %coordinate; #REQUIRED>
+<!ATTLIST draw:measure svg:x2 %coordinate; #REQUIRED>
+<!ATTLIST draw:measure svg:y2 %coordinate; #REQUIRED>
+<!ATTLIST draw:measure %draw-end-position; >
+<!ATTLIST draw:measure %table-background; >
+<!ATTLIST draw:measure %draw-style-name; >
+<!ATTLIST draw:measure %draw-transform; >
+<!ATTLIST draw:measure %zindex;>
+<!ATTLIST draw:measure draw:id %draw-shape-id;>
+<!ATTLIST draw:measure %text-anchor;>
+<!ATTLIST draw:measure draw:layer %layerName; #IMPLIED>
+
+<!-- graphic style elements -->
+<!ELEMENT draw:gradient EMPTY >
+<!ATTLIST draw:gradient draw:name %styleName; #REQUIRED>
+<!ATTLIST draw:gradient draw:style %gradient-style; #REQUIRED>
+<!ATTLIST draw:gradient draw:cx %coordinate; #IMPLIED>
+<!ATTLIST draw:gradient draw:cy %coordinate; #IMPLIED>
+<!ATTLIST draw:gradient draw:start-color %color; #IMPLIED>
+<!ATTLIST draw:gradient draw:end-color %color; #IMPLIED>
+<!ATTLIST draw:gradient draw:start-intensity %percentage; #IMPLIED>
+<!ATTLIST draw:gradient draw:end-intensity %percentage; #IMPLIED>
+<!ATTLIST draw:gradient draw:angle %integer; #IMPLIED>
+<!ATTLIST draw:gradient draw:border %percentage; #IMPLIED>
+
+<!ELEMENT draw:hatch EMPTY >
+<!ATTLIST draw:hatch draw:name %styleName; #REQUIRED>
+<!ATTLIST draw:hatch draw:style (single|double|triple) #REQUIRED >
+<!ATTLIST draw:hatch draw:color %color; #IMPLIED>
+<!ATTLIST draw:hatch draw:distance %length; #IMPLIED>
+<!ATTLIST draw:hatch draw:rotation %integer; #IMPLIED>
+
+
+<!ELEMENT draw:fill-image EMPTY >
+<!ATTLIST draw:fill-image draw:name %styleName; #REQUIRED>
+<!ATTLIST draw:fill-image xlink:href %uriReference; #REQUIRED>
+<!ATTLIST draw:fill-image xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:fill-image xlink:show (embed) #IMPLIED>
+<!ATTLIST draw:fill-image xlink:actuate (onLoad) #IMPLIED>
+<!ATTLIST draw:fill-image svg:width %length; #IMPLIED>
+<!ATTLIST draw:fill-image svg:height %length; #IMPLIED>
+
+<!ELEMENT draw:transparency EMPTY>
+<!ATTLIST draw:transparency draw:name %styleName; #REQUIRED>
+<!ATTLIST draw:transparency draw:style %gradient-style; #REQUIRED>
+<!ATTLIST draw:transparency draw:cx %coordinate; #IMPLIED>
+<!ATTLIST draw:transparency draw:cy %coordinate; #IMPLIED>
+<!ATTLIST draw:transparency draw:start %percentage; #IMPLIED>
+<!ATTLIST draw:transparency draw:end %percentage; #IMPLIED>
+<!ATTLIST draw:transparency draw:angle %integer; #IMPLIED>
+<!ATTLIST draw:transparency draw:border %percentage; #IMPLIED>
+
+<!ELEMENT draw:marker EMPTY>
+<!ATTLIST draw:marker draw:name %styleName; #REQUIRED>
+<!ATTLIST draw:marker %draw-viewbox; >
+<!ATTLIST draw:marker svg:d %pathData; #REQUIRED>
+
+<!ELEMENT draw:stroke-dash EMPTY>
+<!ATTLIST draw:stroke-dash draw:name %styleName; #REQUIRED>
+<!ATTLIST draw:stroke-dash draw:style (rect|round) #IMPLIED>
+<!ATTLIST draw:stroke-dash draw:dots1 %integer; #IMPLIED>
+<!ATTLIST draw:stroke-dash draw:dots1-length %length; #IMPLIED>
+<!ATTLIST draw:stroke-dash draw:dots2 %integer; #IMPLIED>
+<!ATTLIST draw:stroke-dash draw:dots2-length %length; #IMPLIED>
+<!ATTLIST draw:stroke-dash draw:distance %length; #IMPLIED>
+
+<!-- stroke attributes -->
+<!ATTLIST style:properties draw:stroke (none|dash|solid) #IMPLIED>
+<!ATTLIST style:properties draw:stroke-dash CDATA #IMPLIED>
+<!ATTLIST style:properties svg:stroke-width %length; #IMPLIED>
+<!ATTLIST style:properties svg:stroke-color %color; #IMPLIED>
+<!ATTLIST style:properties draw:marker-start %styleName; #IMPLIED>
+<!ATTLIST style:properties draw:marker-end %styleName; #IMPLIED>
+<!ATTLIST style:properties draw:marker-start-width %length; #IMPLIED>
+<!ATTLIST style:properties draw:marker-end-width %length; #IMPLIED>
+<!ATTLIST style:properties draw:marker-start-center %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:marker-end-center %boolean; #IMPLIED>
+<!ATTLIST style:properties svg:stroke-opacity %floatOrPercentage; #IMPLIED>
+<!ATTLIST style:properties svg:stroke-linejoin (miter|round|bevel|middle|none|inherit) #IMPLIED>
+
+<!-- text attributes -->
+<!ATTLIST style:properties draw:auto-grow-width %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:auto-grow-height %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:fit-to-size %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:fit-to-contour %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:textarea-horizontal-align ( left | center | right | justify ) #IMPLIED>
+<!ATTLIST style:properties draw:textarea-vertical-align ( top | middle | bottom | justify ) #IMPLIED>
+<!ATTLIST style:properties draw:writing-mode (lr-tb|tb-rl) "lr-tb">
+<!ATTLIST style:properties style:font-independent-line-spacing %boolean; #IMPLIED>
+
+
+<!-- fill attributes -->
+<!ATTLIST style:properties draw:fill (none|solid|bitmap|gradient|hatch) #IMPLIED>
+<!ATTLIST style:properties draw:fill-color %color; #IMPLIED>
+<!ATTLIST style:properties draw:fill-gradient-name %styleName; #IMPLIED>
+<!ATTLIST style:properties draw:gradient-step-count CDATA #IMPLIED>
+<!ATTLIST style:properties draw:fill-hatch-name %styleName; #IMPLIED>
+<!ATTLIST style:properties draw:fill-hatch-solid %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:fill-image-name %styleName; #IMPLIED>
+<!ATTLIST style:properties style:repeat (no-repeat|repeat|stretch) #IMPLIED>
+<!ATTLIST style:properties draw:fill-image-width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties draw:fill-image-height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties draw:fill-image-ref-point-x %percentage; #IMPLIED>
+<!ATTLIST style:properties draw:fill-image-ref-point-y %percentage; #IMPLIED>
+<!ATTLIST style:properties draw:fill-image-ref-point %rectanglePoint; #IMPLIED>
+<!ATTLIST style:properties draw:tile-repeat-offset CDATA #IMPLIED>
+<!ATTLIST style:properties draw:transparency %percentage; #IMPLIED>
+<!ATTLIST style:properties draw:transparency-name %styleName; #IMPLIED>
+
+<!-- graphic attributes -->
+<!ATTLIST style:properties draw:color-mode (greyscale|mono|watermark|standard) #IMPLIED>
+<!ATTLIST style:properties draw:luminance %percentage; #IMPLIED>
+<!ATTLIST style:properties draw:contrast %percentage; #IMPLIED>
+<!ATTLIST style:properties draw:gamma %percentage; #IMPLIED>
+<!ATTLIST style:properties draw:red %percentage; #IMPLIED>
+<!ATTLIST style:properties draw:green %percentage; #IMPLIED>
+<!ATTLIST style:properties draw:blue %percentage; #IMPLIED>
+<!ATTLIST style:properties draw:color-inversion %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:mirror %boolean; #IMPLIED>
+
+<!-- shadow attributes -->
+<!ATTLIST style:properties draw:shadow (visible|hidden) #IMPLIED>
+<!ATTLIST style:properties draw:shadow-offset-x %length; #IMPLIED>
+<!ATTLIST style:properties draw:shadow-offset-y %length; #IMPLIED>
+<!ATTLIST style:properties draw:shadow-color %color; #IMPLIED>
+<!ATTLIST style:properties draw:shadow-transparency CDATA #IMPLIED>
+
+<!-- connector attributes -->
+<!ATTLIST style:properties draw:start-line-spacing-horizontal %distance; #IMPLIED>
+<!ATTLIST style:properties draw:start-line-spacing-vertical %distance; #IMPLIED>
+<!ATTLIST style:properties draw:end-line-spacing-horizontal %distance; #IMPLIED>
+<!ATTLIST style:properties draw:end-line-spacing-vertical %distance; #IMPLIED>
+
+<!-- measure attributes -->
+<!ATTLIST style:properties draw:line-distance %distance; #IMPLIED>
+<!ATTLIST style:properties draw:guide-overhang %distance; #IMPLIED>
+<!ATTLIST style:properties draw:guide-distance %distance; #IMPLIED>
+<!ATTLIST style:properties draw:start-guide %distance; #IMPLIED>
+<!ATTLIST style:properties draw:end-guide %distance; #IMPLIED>
+<!ATTLIST style:properties draw:measure-align (automatic|left-outside|inside|right-outside) #IMPLIED>
+<!ATTLIST style:properties draw:measure-vertical-align (automatic|above|below|center) #IMPLIED>
+<!ATTLIST style:properties draw:unit (automatic|mm|cm|m|km|pt|pc|inch|ft|mi) #IMPLIED>
+<!ATTLIST style:properties draw:show-unit %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:placing (below|above) #IMPLIED>
+<!ATTLIST style:properties draw:parallel %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:decimal-places %nonNegativeLength; #IMPLIED>
+
+<!-- frame attributes -->
+<!ATTLIST style:properties draw:frame-display-scrollbar %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:frame-display-border %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:frame-margin-horizontal %nonNegativePixelLength; #IMPLIED>
+<!ATTLIST style:properties draw:frame-margin-vertical %nonNegativePixelLength; #IMPLIED>
+<!ATTLIST style:properties draw:size-protect %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:move-protect %boolean; #IMPLIED>
+
+<!-- ole object attributes -->
+<!ATTLIST style:properties draw:visible-area-left %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties draw:visible-area-top %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties draw:visible-area-width %positiveLength; #IMPLIED>
+<!ATTLIST style:properties draw:visible-area-height %positiveLength; #IMPLIED>
+
+<!-- fontwork attributes -->
+<!ATTLIST style:properties draw:fontwork-style (rotate|upright|slant-x|slant-y|none) #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-adjust (left|right|autosize|center) #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-distance %distance; #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-start %distance; #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-mirror %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-outline %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-shadow (normal|slant|none) #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-shadow-color %color; #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-shadow-offset-x %distance; #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-shadow-offset-y %distance; #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-form (none|top-circle|bottom-circle|left-circle|right-circle|top-arc|bottom-arc|left-arc|right-arc|button1|button2|button3|button4) #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-hide-form %boolean; #IMPLIED>
+<!ATTLIST style:properties draw:fontwork-shadow-transparence %percentage; #IMPLIED>
+
+<!-- caption attributes -->
+<!ATTLIST style:properties draw:caption-type (straight-line|angled-line|angled-connector-line) #IMPLIED>
+<!ATTLIST style:properties draw:caption-angle-type (fixed|free) #IMPLIED>
+<!ATTLIST style:properties draw:caption-angle %nonNegativeInteger; #IMPLIED>
+<!ATTLIST style:properties draw:caption-gap %distance; #IMPLIED>
+<!ATTLIST style:properties draw:caption-escape-direction (horizontal|vertical|auto) #IMPLIED>
+<!ATTLIST style:properties draw:caption-escape %lengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties draw:caption-line-length %distance; #IMPLIED>
+<!ATTLIST style:properties draw:caption-fit-line-length %boolean; #IMPLIED>
+
+<!-- Animations -->
+<!ELEMENT presentation:sound EMPTY>
+<!ATTLIST presentation:sound xlink:href %uriReference; #REQUIRED>
+<!ATTLIST presentation:sound xlink:type (simple) #FIXED "simple">
+<!ATTLIST presentation:sound xlink:show (new|replace) #IMPLIED>
+<!ATTLIST presentation:sound xlink:actuate (onRequest) "onRequest">
+<!ATTLIST presentation:sound presentation:play-full %boolean; #IMPLIED>
+
+<!ELEMENT presentation:show-shape (presentation:sound)?>
+<!ATTLIST presentation:show-shape draw:shape-id CDATA #REQUIRED>
+<!ATTLIST presentation:show-shape presentation:effect %presentationEffects; "none">
+<!ATTLIST presentation:show-shape presentation:direction %presentationEffectDirections; "none">
+<!ATTLIST presentation:show-shape presentation:speed %presentationSpeeds; "medium">
+<!ATTLIST presentation:show-shape presentation:start-scale %percentage; "100&#37;">
+<!ATTLIST presentation:show-shape presentation:path-id CDATA #IMPLIED >
+
+<!ELEMENT presentation:show-text (presentation:sound)?>
+<!ATTLIST presentation:show-text draw:shape-id CDATA #REQUIRED>
+<!ATTLIST presentation:show-text presentation:effect %presentationEffects; "none">
+<!ATTLIST presentation:show-text presentation:direction %presentationEffectDirections; "none">
+<!ATTLIST presentation:show-text presentation:speed %presentationSpeeds; "medium">
+<!ATTLIST presentation:show-text presentation:start-scale %percentage; "100&#37;">
+<!ATTLIST presentation:show-text presentation:path-id CDATA #IMPLIED >
+
+<!ELEMENT presentation:hide-shape (presentation:sound)?>
+<!ATTLIST presentation:hide-shape draw:shape-id CDATA #REQUIRED>
+<!ATTLIST presentation:hide-shape presentation:effect %presentationEffects; "none">
+<!ATTLIST presentation:hide-shape presentation:direction %presentationEffectDirections; "none">
+<!ATTLIST presentation:hide-shape presentation:speed %presentationSpeeds; "medium">
+<!ATTLIST presentation:hide-shape presentation:start-scale %percentage; "100&#37;">
+<!ATTLIST presentation:hide-shape presentation:path-id CDATA #IMPLIED >
+
+<!ELEMENT presentation:hide-text (presentation:sound)?>
+<!ATTLIST presentation:hide-text draw:shape-id CDATA #REQUIRED>
+<!ATTLIST presentation:hide-text presentation:effect %presentationEffects; "none">
+<!ATTLIST presentation:hide-text presentation:direction %presentationEffectDirections; "none">
+<!ATTLIST presentation:hide-text presentation:speed %presentationSpeeds; "medium">
+<!ATTLIST presentation:hide-text presentation:start-scale %percentage; "100&#37;">
+<!ATTLIST presentation:hide-text presentation:path-id CDATA #IMPLIED >
+
+<!ELEMENT presentation:dim (presentation:sound)?>
+<!ATTLIST presentation:dim draw:shape-id CDATA #REQUIRED>
+<!ATTLIST presentation:dim draw:color %color; #REQUIRED>
+
+<!ELEMENT presentation:play EMPTY>
+<!ATTLIST presentation:play draw:shape-id CDATA #REQUIRED>
+<!ATTLIST presentation:play presentation:speed %presentationSpeeds; "medium">
+
+<!ELEMENT presentation:animations (presentation:show-shape|presentation:show-text|presentation:hide-shape|presentation:hide-text|presentation:dim|presentation:play)*>
+
+<!ELEMENT presentation:show EMPTY>
+<!ATTLIST presentation:show presentation:name %styleName; #REQUIRED>
+<!ATTLIST presentation:show presentation:pages CDATA #REQUIRED>
+
+<!ELEMENT presentation:settings (presentation:show)*>
+<!ATTLIST presentation:settings presentation:start-page %styleName; #IMPLIED>
+<!ATTLIST presentation:settings presentation:show %styleName; #IMPLIED>
+<!ATTLIST presentation:settings presentation:full-screen %boolean; "true">
+<!ATTLIST presentation:settings presentation:endless %boolean; "false">
+<!ATTLIST presentation:settings presentation:pause %timeDuration; #IMPLIED>
+<!ATTLIST presentation:settings presentation:show-logo %boolean; "false">
+<!ATTLIST presentation:settings presentation:force-manual %boolean; "false">
+<!ATTLIST presentation:settings presentation:mouse-visible %boolean; "true">
+<!ATTLIST presentation:settings presentation:mouse-as-pen %boolean; "false">
+<!ATTLIST presentation:settings presentation:start-with-navigator %boolean; "false">
+<!ATTLIST presentation:settings presentation:animations (enabled|disabled) "enabled">
+<!ATTLIST presentation:settings presentation:stay-on-top %boolean; "false">
+<!ATTLIST presentation:settings presentation:transition-on-click (enabled|disabled) "enabled">
+
+<!-- Drawing page -->
+<!ELEMENT draw:page (office:forms?,(%shapes;)*,presentation:animations?,presentation:notes?)>
+<!ATTLIST draw:page draw:name %string; #IMPLIED>
+<!ATTLIST draw:page draw:style-name %styleName; #IMPLIED>
+<!ATTLIST draw:page draw:master-page-name %styleName; #REQUIRED>
+<!ATTLIST draw:page presentation:presentation-page-layout-name %styleName; #IMPLIED>
+<!ATTLIST draw:page draw:id %nonNegativeInteger; #IMPLIED>
+<!ATTLIST draw:page xlink:href %uriReference; #IMPLIED>
+<!ATTLIST draw:page xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:page xlink:show (replace) #IMPLIED>
+<!ATTLIST draw:page xlink:actuate (onRequest) #IMPLIED>
+
+<!-- Presentation notes -->
+<!ELEMENT presentation:notes (%shapes;)*>
+<!ATTLIST presentation:notes style:page-master-name %styleName; #IMPLIED>
+<!ATTLIST presentation:notes draw:style-name %styleName; #IMPLIED>
+
+<!-- presentation page layouts -->
+<!ELEMENT style:presentation-page-layout (presentation:placeholder)* >
+<!ATTLIST style:presentation-page-layout style:name %styleName; #REQUIRED>
+<!ELEMENT presentation:placeholder EMPTY >
+<!ATTLIST presentation:placeholder presentation:object (title|outline|subtitle|text|graphic|object|chart|orgchart|page|notes|handout) #REQUIRED>
+<!ATTLIST presentation:placeholder svg:x %coordinateOrPercentage; #REQUIRED>
+<!ATTLIST presentation:placeholder svg:y %coordinateOrPercentage; #REQUIRED>
+<!ATTLIST presentation:placeholder svg:width %lengthOrPercentage; #REQUIRED>
+<!ATTLIST presentation:placeholder svg:height %lengthOrPercentage; #REQUIRED>
+
+<!-- presentation page attributes -->
+<!ATTLIST style:properties presentation:transition-type (manual|automatic|semi-automatic) #IMPLIED >
+<!ATTLIST style:properties presentation:transition-style (none|fade-from-left|fade-from-top|fade-from-right|fade-from-bottom|fade-to-center|fade-from-center|move-from-left|move-from-top|move-from-right|move-from-bottom|roll-from-top|roll-from-left|roll-from-right|roll-from-bottom|vertical-stripes|horizontal-stripes|clockwise|counterclockwise|fade-from-upperleft|fade-from-upperright|fade-from-lowerleft|fade-from-lowerright|close-vertical|close-horizontal|open-vertical|open-horizontal|spiralin-left|spiralin-right|spiralout-left|spiralout-right|dissolve|wavyline-from-left|wavyline-from-top|wavyline-from-right|wavyline-from-bottom|random|stretch-from-left|stretch-from-top|stretch-from-right|stretch-from-bottom|vertical-lines|horizontal-lines) #IMPLIED >
+<!ATTLIST style:properties presentation:transition-speed %presentationSpeeds; #IMPLIED >
+<!ATTLIST style:properties presentation:duration %timeDuration; #IMPLIED>
+<!ATTLIST style:properties presentation:visibility (visible|hidden) #IMPLIED>
+<!ATTLIST style:properties draw:background-size (full|border) #IMPLIED>
+<!ATTLIST style:properties presentation:background-objects-visible %boolean; #IMPLIED>
+<!ATTLIST style:properties presentation:background-visible %boolean; #IMPLIED>
+
+
+<!-- text boxes -->
+<!ELEMENT draw:text-box (office:events?,draw:image-map?,
+ %sectionText;)>
+<!ATTLIST draw:text-box %draw-style-name;>
+<!ATTLIST draw:text-box %draw-transform; >
+<!ATTLIST draw:text-box draw:name %string; #IMPLIED>
+<!ATTLIST draw:text-box draw:chain-next-name %string; #IMPLIED>
+
+<!ATTLIST draw:text-box %text-anchor;>
+<!ATTLIST draw:text-box %draw-position;>
+<!ATTLIST draw:text-box %draw-end-position; >
+<!ATTLIST draw:text-box %table-background; >
+<!ATTLIST draw:text-box svg:width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:text-box svg:height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:text-box style:rel-width %percentage; #IMPLIED>
+<!ATTLIST draw:text-box style:rel-height %percentage; #IMPLIED>
+<!ATTLIST draw:text-box fo:min-height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:text-box %zindex;>
+<!ATTLIST draw:text-box %presentation-class; >
+<!ATTLIST draw:text-box draw:id %draw-shape-id;>
+<!ATTLIST draw:text-box draw:layer %layerName; #IMPLIED>
+<!ATTLIST draw:text-box draw:corner-radius %nonNegativeLength; #IMPLIED>
+
+<!-- image -->
+<!ELEMENT draw:image (office:binary-data?,office:events?,draw:image-map?,svg:desc?,(draw:contour-polygon|draw:contour-path)?)>
+<!ATTLIST draw:image %draw-transform; >
+<!ATTLIST draw:image %draw-style-name;>
+<!ATTLIST draw:image draw:name %string; #IMPLIED>
+<!ATTLIST draw:image xlink:href %uriReference; #IMPLIED>
+<!ATTLIST draw:image xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:image xlink:show (embed) #IMPLIED>
+<!ATTLIST draw:image xlink:actuate (onLoad) #IMPLIED>
+<!ATTLIST draw:image draw:filter-name %string; #IMPLIED>
+<!ATTLIST draw:image %text-anchor;>
+<!ATTLIST draw:image %draw-position;>
+<!ATTLIST draw:image %draw-end-position; >
+<!ATTLIST draw:image %table-background; >
+<!ATTLIST draw:image svg:width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:image svg:height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:image %presentation-class; >
+<!ATTLIST draw:image %zindex;>
+<!ATTLIST draw:image draw:id %draw-shape-id;>
+<!ATTLIST draw:image draw:layer %layerName; #IMPLIED>
+<!ATTLIST draw:image style:rel-width %percentage; #IMPLIED>
+<!ATTLIST draw:image style:rel-height %percentage; #IMPLIED>
+
+<!-- objects -->
+<!ELEMENT draw:thumbnail EMPTY>
+<!ATTLIST draw:thumbnail xlink:href %uriReference; #REQUIRED>
+<!ATTLIST draw:thumbnail xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:thumbnail xlink:show (embed) #IMPLIED>
+<!ATTLIST draw:thumbnail xlink:actuate (onLoad) #IMPLIED>
+
+<!ELEMENT math:math ANY> <!-- dummy (we have no MathML DTD currently)-->
+<!ELEMENT draw:object (draw:thumbnail?,(office:document|math:math)?,office:events?, draw:image-map?, svg:desc?,(draw:contour-polygon|draw:contour-path)?)>
+<!ATTLIST draw:object %draw-style-name;>
+<!ATTLIST draw:object draw:name %string; #IMPLIED>
+<!ATTLIST draw:object xlink:href %uriReference; #IMPLIED>
+<!ATTLIST draw:object xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:object xlink:show (embed) #IMPLIED>
+<!ATTLIST draw:object xlink:actuate (onLoad) #IMPLIED>
+<!ATTLIST draw:object %text-anchor;>
+<!ATTLIST draw:object %draw-position;>
+<!ATTLIST draw:object %draw-end-position; >
+<!ATTLIST draw:object %table-background; >
+<!ATTLIST draw:object svg:width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:object svg:height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:object %presentation-class; >
+<!ATTLIST draw:object %zindex;>
+<!ATTLIST draw:object draw:id %draw-shape-id;>
+<!ATTLIST draw:object draw:layer %layerName; #IMPLIED>
+<!ATTLIST draw:object draw:notify-on-update-of-ranges %string; #IMPLIED>
+<!ATTLIST draw:object style:rel-width %percentage; #IMPLIED>
+<!ATTLIST draw:object style:rel-height %percentage; #IMPLIED>
+
+<!ELEMENT draw:object-ole (office:binary-data?|office:events?|draw:image-map?|svg:desc?|draw:contour-polygon?|draw:contour-path?|draw:thumbnail?)>
+<!ATTLIST draw:object-ole draw:class-id CDATA #IMPLIED>
+<!ATTLIST draw:object-ole %draw-style-name;>
+<!ATTLIST draw:object-ole draw:name %string; #IMPLIED>
+<!ATTLIST draw:object-ole xlink:href %uriReference; #IMPLIED>
+<!ATTLIST draw:object-ole xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:object-ole xlink:show (embed) #IMPLIED>
+<!ATTLIST draw:object-ole xlink:actuate (onLoad) #IMPLIED>
+<!ATTLIST draw:object-ole %text-anchor;>
+<!ATTLIST draw:object-ole %draw-position;>
+<!ATTLIST draw:object-ole %draw-end-position; >
+<!ATTLIST draw:object-ole %table-background; >
+<!ATTLIST draw:object-ole svg:width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:object-ole svg:height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:object-ole %presentation-class; >
+<!ATTLIST draw:object-ole %zindex;>
+<!ATTLIST draw:object-ole draw:id %draw-shape-id;>
+<!ATTLIST draw:object-ole draw:layer %layerName; #IMPLIED>
+<!ATTLIST draw:object-ole style:rel-width %percentage; #IMPLIED>
+<!ATTLIST draw:object-ole style:rel-height %percentage; #IMPLIED>
+
+<!ELEMENT svg:desc (#PCDATA)>
+
+<!ELEMENT draw:contour-polygon EMPTY>
+<!ATTLIST draw:contour-polygon svg:width %coordinate; #REQUIRED>
+<!ATTLIST draw:contour-polygon svg:height %coordinate; #REQUIRED>
+<!ATTLIST draw:contour-polygon %draw-viewbox;>
+<!ATTLIST draw:contour-polygon draw:points %points; #REQUIRED>
+<!ATTLIST draw:contour-polygon draw:recreate-on-edit %boolean; #IMPLIED>
+
+<!ELEMENT draw:contour-path EMPTY>
+<!ATTLIST draw:contour-path svg:width %coordinate; #REQUIRED>
+<!ATTLIST draw:contour-path svg:height %coordinate; #REQUIRED>
+<!ATTLIST draw:contour-path %draw-viewbox;>
+<!ATTLIST draw:contour-path svg:d %pathData; #REQUIRED>
+<!ATTLIST draw:contour-path draw:recreate-on-edit %boolean; #IMPLIED>
+
+<!-- hyperlink -->
+<!ELEMENT draw:a (draw:image|draw:text-box)>
+<!ATTLIST draw:a xlink:href %uriReference; #REQUIRED>
+<!ATTLIST draw:a xlink:type (simple) #FIXED "simple">
+<!ATTLIST draw:a xlink:show (new|replace) #IMPLIED>
+<!ATTLIST draw:a xlink:actuate (onRequest) "onRequest">
+<!ATTLIST draw:a office:name %string; #IMPLIED>
+<!ATTLIST draw:a office:target-frame-name %string; #IMPLIED>
+<!ATTLIST draw:a office:server-map %boolean; "false">
+
+<!-- 3d properties -->
+<!ATTLIST style:properties dr3d:horizontal-segments %nonNegativeInteger; #IMPLIED>
+<!ATTLIST style:properties dr3d:vertical-segments %nonNegativeInteger; #IMPLIED>
+<!ATTLIST style:properties dr3d:edge-rounding %percentage; #IMPLIED>
+<!ATTLIST style:properties dr3d:edge-rounding-mode (correct|attractive) #IMPLIED>
+<!ATTLIST style:properties dr3d:back-scale %percentage; #IMPLIED>
+<!ATTLIST style:properties dr3d:end-angle %nonNegativeInteger; #IMPLIED>
+<!ATTLIST style:properties dr3d:depth %length; #IMPLIED>
+<!ATTLIST style:properties dr3d:backface-culling (enabled|disabled) #IMPLIED>
+<!ATTLIST style:properties dr3d:lighting-mode (standard|double-sided) #IMPLIED>
+<!ATTLIST style:properties dr3d:normals-kind (object|flat|sphere) #IMPLIED>
+<!ATTLIST style:properties dr3d:normals-direction (normal|inverse) #IMPLIED>
+<!ATTLIST style:properties dr3d:texture-generation-mode-x (object|parallel|sphere) #IMPLIED>
+<!ATTLIST style:properties dr3d:texture-generation-mode-y (object|parallel|sphere) #IMPLIED>
+<!ATTLIST style:properties dr3d:texture-kind (luminance|intesity|color) #IMPLIED>
+<!ATTLIST style:properties dr3d:texture-filter (enabled|disabled) #IMPLIED>
+<!ATTLIST style:properties dr3d:texture-mode (replace|modulate|blend) #IMPLIED>
+<!ATTLIST style:properties dr3d:ambient-color %color; #IMPLIED>
+<!ATTLIST style:properties dr3d:emissive-color %color; #IMPLIED>
+<!ATTLIST style:properties dr3d:specular-color %color; #IMPLIED>
+<!ATTLIST style:properties dr3d:diffuse-color %color; #IMPLIED>
+<!ATTLIST style:properties dr3d:shininess %percentage; #IMPLIED>
+<!ATTLIST style:properties dr3d:shadow (visible|hidden) #IMPLIED>
+<!ATTLIST style:properties dr3d:close-front %boolean; #IMPLIED>
+<!ATTLIST style:properties dr3d:close-back %boolean; #IMPLIED>
+
+<!ELEMENT dr3d:light EMPTY>
+<!ATTLIST dr3d:light dr3d:diffuse-color %color; #IMPLIED>
+<!ATTLIST dr3d:light dr3d:direction %vector3D; #REQUIRED>
+<!ATTLIST dr3d:light dr3d:enabled %boolean; #IMPLIED>
+<!ATTLIST dr3d:light dr3d:specular %boolean; #IMPLIED>
+
+<!ENTITY % shapes3d "(dr3d:scene|dr3d:extrude|dr3d:sphere|dr3d:rotate|dr3d:cube)">
+
+<!ELEMENT dr3d:cube EMPTY>
+<!ATTLIST dr3d:cube dr3d:transform CDATA #IMPLIED>
+<!ATTLIST dr3d:cube dr3d:min-edge %vector3D; #IMPLIED>
+<!ATTLIST dr3d:cube dr3d:max-edge %vector3D; #IMPLIED>
+<!ATTLIST dr3d:cube %zindex;>
+<!ATTLIST dr3d:cube draw:id %draw-shape-id;>
+<!ATTLIST dr3d:cube %draw-end-position; >
+<!ATTLIST dr3d:cube %table-background; >
+<!ATTLIST dr3d:cube %draw-style-name; >
+<!ATTLIST dr3d:cube draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT dr3d:sphere EMPTY>
+<!ATTLIST dr3d:sphere dr3d:transform CDATA #IMPLIED>
+<!ATTLIST dr3d:sphere dr3d:center %vector3D; #IMPLIED>
+<!ATTLIST dr3d:sphere dr3d:size %vector3D; #IMPLIED>
+<!ATTLIST dr3d:sphere %zindex;>
+<!ATTLIST dr3d:sphere draw:id %draw-shape-id;>
+<!ATTLIST dr3d:sphere %draw-end-position; >
+<!ATTLIST dr3d:sphere %table-background; >
+<!ATTLIST dr3d:sphere %draw-style-name; >
+<!ATTLIST dr3d:sphere draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT dr3d:extrude EMPTY>
+<!ATTLIST dr3d:extrude dr3d:transform CDATA #IMPLIED>
+<!ATTLIST dr3d:extrude %draw-viewbox;>
+<!ATTLIST dr3d:extrude svg:d %pathData; #REQUIRED >
+<!ATTLIST dr3d:extrude %zindex;>
+<!ATTLIST dr3d:extrude draw:id %draw-shape-id;>
+<!ATTLIST dr3d:extrude %draw-end-position; >
+<!ATTLIST dr3d:extrude %table-background; >
+<!ATTLIST dr3d:extrude %draw-style-name; >
+<!ATTLIST dr3d:extrude draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT dr3d:rotate EMPTY>
+<!ATTLIST dr3d:rotate dr3d:transform CDATA #IMPLIED>
+<!ATTLIST dr3d:rotate %draw-viewbox;>
+<!ATTLIST dr3d:rotate svg:d %pathData; #REQUIRED >
+<!ATTLIST dr3d:rotate %zindex;>
+<!ATTLIST dr3d:rotate draw:id %draw-shape-id;>
+<!ATTLIST dr3d:rotate %draw-end-position; >
+<!ATTLIST dr3d:rotate %table-background; >
+<!ATTLIST dr3d:rotate %draw-style-name; >
+<!ATTLIST dr3d:rotate draw:layer %layerName; #IMPLIED>
+
+<!ELEMENT dr3d:scene (dr3d:light*,(%shapes3d;)*)>
+<!ATTLIST dr3d:scene %draw-style-name; >
+<!ATTLIST dr3d:scene svg:x %coordinate; #IMPLIED>
+<!ATTLIST dr3d:scene svg:y %coordinate; #IMPLIED>
+<!ATTLIST dr3d:scene svg:width %length; #IMPLIED>
+<!ATTLIST dr3d:scene svg:height %length; #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:vrp %vector3D; #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:vpn %vector3D; #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:vup %vector3D; #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:projection (parallel|perspective) #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:transform CDATA #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:distance %length; #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:focal-length %length; #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:shadow-slant %nonNegativeInteger; #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:shade-mode (flat|phong|gouraud|draft) #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:ambient-color %color; #IMPLIED>
+<!ATTLIST dr3d:scene dr3d:lighting-mode %boolean; #IMPLIED>
+<!ATTLIST dr3d:scene %zindex;>
+<!ATTLIST dr3d:scene draw:id %draw-shape-id;>
+<!ATTLIST dr3d:scene %draw-end-position; >
+<!ATTLIST dr3d:scene %table-background; >
+
+<!-- layer -->
+
+<!ELEMENT draw:layer-set (draw:layer*)>
+
+<!ELEMENT draw:layer EMPTY>
+<!ATTLIST draw:layer draw:name %layerName; #REQUIRED>
+
+<!-- events -->
+<!ELEMENT presentation:event (presentation:sound)?>
+<!ATTLIST presentation:event %event-name;>
+<!ATTLIST presentation:event presentation:action (none|previous-page|next-page|first-page|last-page|hide|stop|execute|show|verb|fade-out|sound) #REQUIRED>
+<!ATTLIST presentation:event presentation:effect %presentationEffects; "none">
+<!ATTLIST presentation:event presentation:direction %presentationEffectDirections; "none">
+<!ATTLIST presentation:event presentation:speed %presentationSpeeds; "medium">
+<!ATTLIST presentation:event presentation:start-scale %percentage; "100&#37;">
+<!ATTLIST presentation:event xlink:href %uriReference; #IMPLIED>
+<!ATTLIST presentation:event xlink:type (simple) #IMPLIED>
+<!ATTLIST presentation:event xlink:show (embed) #IMPLIED>
+<!ATTLIST presentation:event xlink:actuate (onRequest) #IMPLIED>
+<!ATTLIST presentation:event presentation:verb %nonNegativeInteger; #IMPLIED>
+
+<!-- applets -->
+<!ELEMENT draw:applet (draw:thumbnail?, draw:param*, svg:desc?)>
+<!ATTLIST draw:applet xlink:href %uriReference; #IMPLIED>
+<!ATTLIST draw:applet xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:applet xlink:show (embed) #IMPLIED>
+<!ATTLIST draw:applet xlink:actuate (onLoad) #IMPLIED>
+<!ATTLIST draw:applet draw:code CDATA #REQUIRED>
+<!ATTLIST draw:applet draw:object CDATA #IMPLIED>
+<!ATTLIST draw:applet draw:archive CDATA #IMPLIED>
+<!ATTLIST draw:applet draw:may-script %boolean; "false">
+<!ATTLIST draw:applet draw:name CDATA #IMPLIED>
+<!ATTLIST draw:applet %draw-style-name;>
+<!ATTLIST draw:applet svg:width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:applet svg:height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:applet %zindex;>
+<!ATTLIST draw:applet draw:layer %layerName; #IMPLIED>
+<!ATTLIST draw:applet %draw-position;>
+<!ATTLIST draw:applet %draw-end-position; >
+
+<!-- plugins -->
+<!ELEMENT draw:plugin (draw:thumbnail?, draw:param*, svg:desc?)>
+<!ATTLIST draw:plugin xlink:href %uriReference; #IMPLIED>
+<!ATTLIST draw:plugin xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:plugin xlink:show (embed) #IMPLIED>
+<!ATTLIST draw:plugin xlink:actuate (onLoad) #IMPLIED>
+<!ATTLIST draw:plugin draw:mime-type CDATA #IMPLIED>
+<!ATTLIST draw:plugin draw:name CDATA #IMPLIED>
+<!ATTLIST draw:plugin %draw-style-name;>
+<!ATTLIST draw:plugin svg:width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:plugin svg:height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:plugin %zindex;>
+<!ATTLIST draw:plugin draw:layer %layerName; #IMPLIED>
+<!ATTLIST draw:plugin %draw-position;>
+<!ATTLIST draw:plugin %draw-end-position; >
+
+<!-- Paramaters -->
+<!ELEMENT draw:param EMPTY>
+<!ATTLIST draw:param draw:name CDATA #IMPLIED>
+<!ATTLIST draw:param draw:value CDATA #IMPLIED>
+
+<!-- Floating Frames -->
+<!ELEMENT draw:floating-frame (draw:thumbnail?, svg:desc?)>
+<!ATTLIST draw:floating-frame xlink:href %uriReference; #IMPLIED>
+<!ATTLIST draw:floating-frame xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:floating-frame xlink:show (embed) #IMPLIED>
+<!ATTLIST draw:floating-frame xlink:actuate (onLoad) #IMPLIED>
+<!ATTLIST draw:floating-frame draw:name CDATA #IMPLIED>
+<!ATTLIST draw:floating-frame draw:frame-name CDATA #IMPLIED>
+<!ATTLIST draw:floating-frame %draw-style-name;>
+<!ATTLIST draw:floating-frame svg:width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:floating-frame svg:height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST draw:floating-frame %zindex;>
+<!ATTLIST draw:floating-frame draw:layer %layerName; #IMPLIED>
+<!ATTLIST draw:floating-frame %draw-position;>
+<!ATTLIST draw:floating-frame %draw-end-position; >
+
+<!-- Image Maps -->
+<!ELEMENT draw:image-map
+ (draw:area-rectangle|draw:area-circle|draw:area-polygon)*>
+
+<!ELEMENT draw:area-rectangle (svg:desc?,office:events?)>
+<!ATTLIST draw:area-rectangle xlink:href %uriReference; #IMPLIED>
+<!ATTLIST draw:area-rectangle xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:area-rectangle office:target-frame-name CDATA #IMPLIED>
+<!ATTLIST draw:area-rectangle xlink:show (new|replace) #IMPLIED>
+<!ATTLIST draw:area-rectangle office:name CDATA #IMPLIED>
+<!ATTLIST draw:area-rectangle draw:nohref (nohref) #IMPLIED>
+<!ATTLIST draw:area-rectangle svg:x %coordinate; #REQUIRED>
+<!ATTLIST draw:area-rectangle svg:y %coordinate; #REQUIRED>
+<!ATTLIST draw:area-rectangle svg:width %coordinate; #REQUIRED>
+<!ATTLIST draw:area-rectangle svg:height %coordinate; #REQUIRED>
+
+<!ELEMENT draw:area-circle (svg:desc?,office:events?)>
+<!ATTLIST draw:area-circle xlink:href %uriReference; #IMPLIED>
+<!ATTLIST draw:area-circle xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:area-circle office:target-frame-name CDATA #IMPLIED>
+<!ATTLIST draw:area-circle xlink:show (new|replace) #IMPLIED>
+<!ATTLIST draw:area-circle office:name CDATA #IMPLIED>
+<!ATTLIST draw:area-circle draw:nohref (nohref) #IMPLIED>
+<!ATTLIST draw:area-circle svg:cx %coordinate; #REQUIRED>
+<!ATTLIST draw:area-circle svg:cy %coordinate; #REQUIRED>
+<!ATTLIST draw:area-circle svg:r %coordinate; #REQUIRED>
+
+<!ELEMENT draw:area-polygon (svg:desc?,office:events?)>
+<!ATTLIST draw:area-polygon xlink:href %uriReference; #IMPLIED>
+<!ATTLIST draw:area-polygon xlink:type (simple) #IMPLIED>
+<!ATTLIST draw:area-polygon office:target-frame-name CDATA #IMPLIED>
+<!ATTLIST draw:area-polygon xlink:show (new|replace) #IMPLIED>
+<!ATTLIST draw:area-polygon office:name CDATA #IMPLIED>
+<!ATTLIST draw:area-polygon draw:nohref (nohref) #IMPLIED>
+<!ATTLIST draw:area-polygon svg:x %coordinate; #REQUIRED>
+<!ATTLIST draw:area-polygon svg:y %coordinate; #REQUIRED>
+<!ATTLIST draw:area-polygon svg:width %coordinate; #REQUIRED>
+<!ATTLIST draw:area-polygon svg:height %coordinate; #REQUIRED>
+<!ATTLIST draw:area-polygon svg:points %points; #REQUIRED>
+<!ATTLIST draw:area-polygon svg:viewBox CDATA #REQUIRED>
diff --git a/test/user-template/user/dtd/officedocument/1_0/dtypes.mod b/test/user-template/user/dtd/officedocument/1_0/dtypes.mod
new file mode 100644
index 000000000000..4de538ced12b
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/dtypes.mod
@@ -0,0 +1,143 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!-- datatypes corresponding to XML Schema Part 2 W3C Working draft of -->
+<!-- 07 April 2000 -->
+
+<!-- string -->
+<!ENTITY % string "CDATA">
+<!ENTITY % cString "#PCDATA">
+
+<!-- boolean (values are "true" and "false" -->
+<!ENTITY % boolean "CDATA">
+
+<!-- integer ( ..., -2, -1, 0, 1, 2, ...) -->
+<!ENTITY % integer "CDATA">
+
+<!-- non negative integer ( 0, 1, 2, ...) -->
+<!ENTITY % nonNegativeInteger "CDATA">
+
+<!-- positive integer ( 1, 2, ...) -->
+<!ENTITY % positiveInteger "CDATA">
+<!ENTITY % cPositiveInteger "#PCDATA">
+
+<!ENTITY % positiveNumberOrDefault "CDATA">
+
+<!-- time duration as specified by ISO8601, section 5.5.3.2 -->
+<!ENTITY % timeDuration "CDATA">
+<!ENTITY % cTimeDuration "#PCDATA">
+
+<!-- time instance as specified by ISO8601, section 5.4 -->
+<!ENTITY % timeInstance "CDATA">
+<!ENTITY % cTimeInstance "#PCDATA">
+
+<!-- date instance as specified by ISO8601, section 5.2.1.1, extended format-->
+<!ENTITY % date "CDATA">
+<!ENTITY % cDate "#PCDATA">
+
+<!-- date duration, like timDuration but truncated to full dates -->
+<!ENTITY % dateDuration "CDATA">
+<!ENTITY % cDateDuration "#PCDATA">
+
+<!-- URI reference -->
+<!ENTITY % uriReference "CDATA">
+
+<!-- language code as specified by RFC1766 -->
+<!ENTITY % language "CDATA">
+<!ENTITY % cLanguage "#PCDATA">
+
+<!-- float -->
+<!ENTITY % float "CDATA">
+
+<!-- Some other common used data types -->
+
+<!-- a single UNICODE character -->
+<!ENTITY % character "CDATA">
+
+<!-- a style name -->
+<!ENTITY % styleName "CDATA">
+
+<!-- a target frame mame -->
+<!ENTITY % targetFrameName "CDATA">
+
+<!-- a language without a country as specified by ISO639 -->
+<!ENTITY % languageOnly "CDATA">
+
+<!-- a country as specified by ISO3166 -->
+<!ENTITY % country "CDATA">
+
+<!-- a color value having the format #rrggbb -->
+<!ENTITY % color "CDATA">
+<!-- a color value having the format #rrggbb or "transparent" -->
+<!ENTITY % transparentOrColor "CDATA">
+
+<!-- a percentage -->
+<!ENTITY % percentage "CDATA">
+
+<!-- a length (i.e. 1cm or .6inch) -->
+<!ENTITY % length "CDATA">
+<!ENTITY % positiveLength "CDATA">
+<!ENTITY % nonNegativeLength "CDATA">
+<!ENTITY % lengthOrNoLimit "CDATA">
+
+<!-- a length or a percentage -->
+<!ENTITY % lengthOrPercentage "CDATA">
+<!ENTITY % positiveLengthOrPercentage "CDATA">
+
+<!-- a pixel length (i.e. 2px) -->
+<!ENTITY % nonNegativePixelLength "CDATA">
+
+<!-- a float or a percentage -->
+<!ENTITY % floatOrPercentage "CDATA">
+
+<!-- a text encoding -->
+<!ENTITY % textEncoding "CDATA">
+
+<!-- cell address and cell range address -->
+<!ENTITY % cell-address "CDATA">
+<!ENTITY % cell-range-address "CDATA">
+<!ENTITY % cell-range-address-list "CDATA">
+
+<!-- value types -->
+<!ENTITY % valueType "(float|time|date|percentage|currency|boolean|string)">
+
+<!-- an svg coordinate in different distance formats -->
+<!ENTITY % coordinate "CDATA">
+
+<!ENTITY % coordinateOrPercentage "CDATA">
+
+<!ENTITY % shape "draw:rect|draw:line|draw:polyline|draw:polygon|draw:path|
+ draw:circle|draw:ellipse|draw:g|draw:page-thumbnail|
+ draw:text-box|draw:image|draw:object|draw:object-ole|
+ draw:applet|draw:floating-frame|draw:plugin|
+ draw:measure|draw:caption|draw:connector|chart:chart|
+ dr3d:scene|draw:control|draw:custom-shape" >
+<!ENTITY % shapes "(%shape;)" >
+
+<!ENTITY % anchorType "(page|frame|paragraph|char|as-char)">
+
+<!ENTITY % control-id "form:id CDATA #REQUIRED">
diff --git a/test/user-template/user/dtd/officedocument/1_0/event.dtd b/test/user-template/user/dtd/officedocument/1_0/event.dtd
new file mode 100644
index 000000000000..bf83b6458383
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/event.dtd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!-- xlink:type -->
+<!ENTITY % xlinkType "CDATA">
+
+<!ELEMENT event:event EMPTY>
+<!ATTLIST event:event
+ event:name CDATA #REQUIRED
+ event:language CDATA #REQUIRED
+ event:library CDATA #IMPLIED
+ event:macro-name CDATA #IMPLIED
+ xlink:type %xlinkType; "simple"
+ xlink:href CDATA #IMPLIED
+>
+<!ELEMENT event:events (event:event*)>
+<!ATTLIST event:events
+ xmlns:event CDATA #FIXED "http://openoffice.org/2001/event"
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+>
diff --git a/test/user-template/user/dtd/officedocument/1_0/form.mod b/test/user-template/user/dtd/officedocument/1_0/form.mod
new file mode 100644
index 000000000000..511fb180f488
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/form.mod
@@ -0,0 +1,366 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY % controls "form:text|form:textarea|form:fixed-text|form:file|
+ form:password|form:formatted-text|form:button|form:image|
+ form:checkbox|form:radio|form:listbox|form:combobox|form:frame|
+ form:hidden|form:image-frame|form:grid|form:value-range|form:generic-control">
+
+<!ENTITY % name "form:name CDATA #IMPLIED">
+<!ENTITY % service-name "form:service-name CDATA #IMPLIED">
+
+<!ENTITY % navigation "(none|current|parent)">
+<!ENTITY % cycles "(records|current|page)">
+<!ENTITY % url "CDATA">
+
+
+<!ENTITY % types "(submit|reset|push|url)">
+<!ENTITY % button-type "form:button-type %types; 'push'">
+<!ENTITY % current-selected "form:current-selected %boolean; 'false'">
+<!ENTITY % current-value "form:current-value CDATA #IMPLIED">
+<!ENTITY % value "form:value CDATA #IMPLIED">
+<!ENTITY % disabled "form:disabled %boolean; 'false'">
+<!ENTITY % dropdown "form:dropdown %boolean; 'false'">
+<!ENTITY % for "form:for CDATA #IMPLIED">
+<!ENTITY % image-data "form:image-data %url; #IMPLIED">
+<!ENTITY % label "form:label CDATA #IMPLIED">
+<!ENTITY % max-length "form:max-length CDATA #IMPLIED">
+<!ENTITY % printable "form:printable %boolean; 'true'">
+<!ENTITY % readonly "form:readonly %boolean; 'false'">
+<!ENTITY % size "form:size CDATA #IMPLIED">
+<!ENTITY % selected "form:selected %boolean; 'false'">
+<!ENTITY % size "form:size CDATA #IMPLIED">
+<!ENTITY % tab-index "form:tab-index CDATA #IMPLIED">
+<!ENTITY % target-frame "office:target-frame CDATA '_blank'">
+<!ENTITY % target-location "xlink:href %url; #IMPLIED">
+<!ENTITY % tab-stop "form:tab-stop %boolean; 'true'">
+<!ENTITY % title "form:title CDATA #IMPLIED">
+<!ENTITY % default-value "form:default-value CDATA #IMPLIED">
+<!ENTITY % bound-column "form:bound-column CDATA #IMPLIED">
+<!ENTITY % convert-empty "form:convert-empty-to-null %boolean; 'false'">
+<!ENTITY % data-field "form:data-field CDATA #IMPLIED">
+<!ENTITY % linked-cell "form:linked-cell CDATA #IMPLIED">
+<!ENTITY % visual-effect "form:visual-effect (flat|3d) #IMPLIED">
+<!ENTITY % image-position "form:image-position (start|end|top|bottom|center) 'center'">
+<!ENTITY % image-align "form:image-align (start|center|end) 'center'">
+<!ENTITY % list-linkage-type "form:list-linkage-type (selection|selection-indexes) #IMPLIED">
+<!ENTITY % source-cell-range "form:source-cell-range CDATA #IMPLIED">
+<!ENTITY % list-source "form:list-source CDATA #IMPLIED">
+<!ENTITY % list-source-types "(table|query|sql|sql-pass-through|value-list|table-fields)">
+<!ENTITY % list-source-type "form:list-source-type %list-source-types; #IMPLIED">
+<!ENTITY % column-style-name "form:column-style-name %styleName; #IMPLIED">
+<!ENTITY % min-value "form:min-value %float; #IMPLIED">
+<!ENTITY % max-value "form:max-value %float; #IMPLIED">
+<!ENTITY % step-size "form:step-size %positiveInteger; '1'">
+<!ENTITY % page-step-size "form:page-step-size %positiveInteger; #IMPLIED">
+<!ENTITY % delay-for-repeat "form:delay-for-repeat %positiveInteger; #IMPLIED">
+<!ENTITY % orientation "form:orientation (horizontal|vertical) #IMPLIED">
+
+
+
+
+<!ELEMENT form:control (%controls;)+>
+<!ATTLIST form:control %name;
+ %service-name;
+ %control-id;>
+
+<!ELEMENT form:form (form:properties?, office:events?, (form:control|form:form)*)>
+<!ATTLIST form:form %name; %service-name;>
+<!ATTLIST form:form xlink:href %url; #IMPLIED>
+<!ATTLIST form:form form:enctype CDATA "application/x-www-form-urlencoded">
+<!ATTLIST form:form form:method CDATA "get">
+<!ATTLIST form:form office:target-frame CDATA "_blank">
+<!ATTLIST form:form form:allow-deletes %boolean; "true">
+<!ATTLIST form:form form:allow-inserts %boolean; "true">
+<!ATTLIST form:form form:allow-updates %boolean; "true">
+<!ATTLIST form:form form:apply-filter %boolean; "false">
+<!ATTLIST form:form form:command CDATA #IMPLIED>
+<!ATTLIST form:form form:command-type (table|query|command) "command">
+<!ATTLIST form:form form:datasource CDATA #IMPLIED>
+<!ATTLIST form:form form:detail-fields CDATA #IMPLIED>
+<!ATTLIST form:form form:escape-processing %boolean; "true">
+<!ATTLIST form:form form:filter CDATA #IMPLIED>
+<!ATTLIST form:form form:ignore-result %boolean; "false">
+<!ATTLIST form:form form:master-fields CDATA #IMPLIED>
+<!ATTLIST form:form form:navigation-mode %navigation; #IMPLIED>
+<!ATTLIST form:form form:order CDATA #IMPLIED>
+<!ATTLIST form:form form:tab-cycle %cycles; #IMPLIED>
+
+<!ELEMENT office:forms (form:form*)>
+<!ATTLIST office:forms form:automatic-focus %boolean; "false">
+<!ATTLIST office:forms form:apply-design-mode %boolean; "true">
+
+<!ELEMENT form:text (form:properties?, office:events?)>
+<!ATTLIST form:text %current-value;
+ %disabled;
+ %max-length;
+ %printable;
+ %readonly;
+ %tab-index;
+ %tab-stop;
+ %title;
+ %value;
+ %convert-empty;
+ %data-field;
+ %linked-cell;>
+
+<!ELEMENT form:textarea (form:properties?, office:events?, text:p*)>
+<!ATTLIST form:textarea %current-value;
+ %disabled;
+ %max-length;
+ %printable;
+ %readonly;
+ %tab-index;
+ %tab-stop;
+ %title;
+ %value;
+ %convert-empty;
+ %data-field;
+ %linked-cell;>
+
+<!ELEMENT form:password (form:properties?, office:events?)>
+<!ATTLIST form:password %disabled;
+ %max-length;
+ %printable;
+ %tab-index;
+ %tab-stop;
+ %title;
+ %value;
+ %convert-empty;
+ %linked-cell;>
+
+<!ATTLIST form:password form:echo-char CDATA "*">
+
+<!ELEMENT form:file (form:properties?, office:events?)>
+<!ATTLIST form:file %current-value;
+ %disabled;
+ %max-length;
+ %printable;
+ %readonly;
+ %tab-index;
+ %tab-stop;
+ %title;
+ %value;>
+
+<!ELEMENT form:formatted-text (form:properties?, office:events?)>
+<!ATTLIST form:formatted-text %current-value;
+ %disabled;
+ %max-length;
+ %printable;
+ %readonly;
+ %tab-index;
+ %tab-stop;
+ %title;
+ %min-value;
+ %max-value;
+ %value;
+ %convert-empty;
+ %data-field;
+ %linked-cell;>
+<!ATTLIST form:formatted-text form:validation %boolean; "false">
+
+<!ELEMENT form:fixed-text (form:properties?, office:events?)>
+<!ATTLIST form:fixed-text %for;
+ %disabled;
+ %label;
+ %printable;
+ %title;>
+<!ATTLIST form:fixed-text form:multi-line %boolean; "false">
+
+<!ELEMENT form:combobox (form:properties?, office:events?, form:item*)>
+<!ATTLIST form:combobox %current-value;
+ %disabled;
+ %dropdown;
+ %max-length;
+ %printable;
+ %readonly;
+ %size;
+ %tab-index;
+ %tab-stop;
+ %title;
+ %value;
+ %convert-empty;
+ %data-field;
+ %list-source;
+ %list-source-type;
+ %linked-cell;
+ %source-cell-range;>
+
+<!ATTLIST form:combobox form:auto-complete %boolean; #IMPLIED>
+
+<!ELEMENT form:item (#PCDATA)>
+<!ATTLIST form:item %label;>
+
+<!ELEMENT form:listbox (form:properties?, office:events?, form:option*)>
+<!ATTLIST form:listbox %disabled;
+ %dropdown;
+ %printable;
+ %size;
+ %tab-index;
+ %tab-stop;
+ %title;
+ %bound-column;
+ %data-field;
+ %list-source;
+ %list-source-type;
+ %linked-cell;
+ %list-linkage-type;
+ %source-cell-range;>
+
+<!ATTLIST form:listbox form:multiple %boolean; "false">
+
+<!ELEMENT form:option (#PCDATA)>
+<!ATTLIST form:option %current-selected;
+ %selected;
+ %label;
+ %value;>
+
+<!ELEMENT form:button (form:properties?, office:events?)>
+<!ATTLIST form:button %button-type;
+ %disabled;
+ %label;
+ %image-data;
+ %printable;
+ %tab-index;
+ %tab-stop;
+ %target-frame;
+ %target-location;
+ %title;
+ %value;
+ %image-position;
+ %image-align;>
+
+<!ATTLIST form:button form:default-button %boolean; "false"
+ form:toggle %boolean; "false"
+ form:focus-on-click %boolean; "true">
+
+<!ELEMENT form:image (form:properties?, office:events?)>
+<!ATTLIST form:image %button-type;
+ %disabled;
+ %image-data;
+ %printable;
+ %tab-index;
+ %tab-stop;
+ %target-frame;
+ %target-location;
+ %title;
+ %value;>
+
+<!ELEMENT form:checkbox (form:properties?, office:events?)>
+<!ATTLIST form:checkbox %disabled;
+ %label;
+ %printable;
+ %tab-index;
+ %tab-stop;
+ %title;
+ %value;
+ %data-field;
+ %linked-cell;
+ %visual-effect;
+ %image-position;
+ %image-align;>
+
+<!ENTITY % states "(unchecked|checked|unknown)">
+<!ATTLIST form:checkbox form:current-state %states; #IMPLIED>
+<!ATTLIST form:checkbox form:is-tristate %boolean; "false">
+<!ATTLIST form:checkbox form:state %states; "unchecked">
+
+<!ELEMENT form:radio (form:properties?, office:events?)>
+<!ATTLIST form:radio %current-selected;
+ %disabled;
+ %label;
+ %printable;
+ %selected;
+ %tab-index;
+ %tab-stop;
+ %title;
+ %value;
+ %data-field;
+ %linked-cell;
+ %visual-effect;
+ %image-position;
+ %image-align;>
+
+<!ELEMENT form:frame (form:properties?, office:events?)>
+<!ATTLIST form:frame %disabled;
+ %for;
+ %label;
+ %printable;
+ %title;>
+
+<!ELEMENT form:image-frame (form:properties?, office:events?)>
+<!ATTLIST form:image-frame %disabled;
+ %image-data;
+ %printable;
+ %readonly;
+ %title;
+ %data-field;>
+
+<!ELEMENT form:hidden (form:properties?, office:events?)>
+<!ATTLIST form:hidden %name;
+ %service-name;
+ %value;>
+
+<!ELEMENT form:grid (form:properties?, office:events?, form:column*)>
+<!ATTLIST form:grid %disabled;
+ %printable;
+ %tab-index;
+ %tab-stop;
+ %title;>
+
+<!ENTITY % column-type "form:text| form:textarea| form:formatted-text|form:checkbox| form:listbox| form:combobox">
+<!ELEMENT form:column (%column-type;)+>
+<!ATTLIST form:column %name;
+ %service-name;
+ %label;
+ %column-style-name;>
+
+<!ELEMENT form:generic-control (form:properties?, office:events?)>
+
+<!ELEMENT form:value-range (form:properties?, office:events?)>
+<!ATTLIST form:value-range %disabled;
+ %printable;
+ %tab-index;
+ %tab-stop;
+ %title;
+ %min-value;
+ %max-value;
+ %current-value;
+ %value;
+ %linked-cell;
+ %step-size;
+ %page-step-size;
+ %delay-for-repeat;
+ %orientation;>
+
+<!ELEMENT form:properties (form:property+)>
+<!ELEMENT form:property (form:property-value*)>
+<!ATTLIST form:property form:property-is-list %boolean; #IMPLIED>
+<!ATTLIST form:property form:property-name CDATA #REQUIRED>
+<!ATTLIST form:property form:property-type (boolean|short|int|long|double|string) #REQUIRED>
+<!ELEMENT form:property-value (#PCDATA)>
+<!ATTLIST form:property-value form:property-is-void %boolean; #IMPLIED>
diff --git a/test/user-template/user/dtd/officedocument/1_0/groupuinames.dtd b/test/user-template/user/dtd/officedocument/1_0/groupuinames.dtd
new file mode 100644
index 000000000000..7feb3c5e0618
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/groupuinames.dtd
@@ -0,0 +1,35 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!ELEMENT groupuinames:template-group-list (groupuinames:template-group*)>
+<!ATTLIST groupuinames:template-group-list xmlns:groupuinames CDATA #FIXED "http://openoffice.org/2006/groupuinames">
+
+<!ELEMENT groupuinames:template-group>
+<!ATTLIST groupuinames:template-group
+ groupuinames:name CDATA #REQUIRED
+ groupuinames:default-ui-name CDATA #REQUIRED
+>
+
diff --git a/test/user-template/user/dtd/officedocument/1_0/image.dtd b/test/user-template/user/dtd/officedocument/1_0/image.dtd
new file mode 100644
index 000000000000..e79fdbbb42db
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/image.dtd
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY % url "CDATA">
+
+<!-- URI reference -->
+<!ENTITY % uriReference "CDATA">
+
+<!-- a color value having the format #rrggbb -->
+<!ENTITY % color "CDATA">
+
+<!-- determine the mask mode of the image bitmap -->
+<!ENTITY % maskMode "(maskcolor|maskbitmap)">
+
+<!ELEMENT image:entry EMPTY>
+<!ATTLIST image:entry
+ image:command %url; #REQUIRED
+ image:bitmap-index CDATA #REQUIRED
+>
+
+<!ELEMENT image:externalentry EMPTY>
+<!ATTLIST image:externalentry
+ image:command %url; #REQUIRED
+ xlink:href %uriReference; #REQUIRED
+ xlink:type CDATA #FIXED "simple"
+>
+
+<!ELEMENT image:externalimages (image:externalentry*)>
+<!ELEMENT image:images (image:entry*)>
+<!ATTLIST image:images
+ xlink:href %uriReference; #REQUIRED
+ xlink:type CDATA #FIXED "simple"
+ image:maskmode %maskMode; "maskcolor"
+ image:maskcolor %color; "#000000"
+ image:maskurl %url; #IMPLIED
+>
+
+<!ELEMENT image:imagescontainer (image:images*, image:externalimages?)>
+<!ATTLIST image:imagescontainer
+ xmlns:image CDATA #FIXED "http://openoffice.org/2001/image"
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+>
diff --git a/test/user-template/user/dtd/officedocument/1_0/libraries.dtd b/test/user-template/user/dtd/officedocument/1_0/libraries.dtd
new file mode 100644
index 000000000000..383f37e21315
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/libraries.dtd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY % boolean "(true|false)">
+
+<!ELEMENT library:libraries (library:library)*>
+<!ATTLIST library:libraries
+ xmlns:library CDATA #FIXED "http://openoffice.org/2000/library"
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+>
+
+<!ELEMENT library:library EMPTY>
+<!ATTLIST library:library
+ library:name CDATA #REQUIRED
+ xlink:href CDATA #IMPLIED
+ xlink:type CDATA #IMPLIED
+ library:link %boolean; #REQUIRED
+ library:readonly %boolean; #IMPLIED
+>
+
diff --git a/test/user-template/user/dtd/officedocument/1_0/library.dtd b/test/user-template/user/dtd/officedocument/1_0/library.dtd
new file mode 100644
index 000000000000..80f687b9bfc2
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/library.dtd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY % boolean "(true|false)">
+
+<!ELEMENT library:library (library:element)*>
+<!ATTLIST library:library
+ xmlns:library CDATA #FIXED "http://openoffice.org/2000/library"
+ library:name CDATA #REQUIRED
+ library:readonly %boolean; #REQUIRED
+ library:passwordprotected %boolean; #REQUIRED
+ library:preload %boolean; #IMPLIED
+>
+
+<!ELEMENT library:element EMPTY>
+<!ATTLIST library:element
+ library:name CDATA #REQUIRED
+>
+
diff --git a/test/user-template/user/dtd/officedocument/1_0/menubar.dtd b/test/user-template/user/dtd/officedocument/1_0/menubar.dtd
new file mode 100644
index 000000000000..df118322742c
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/menubar.dtd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ELEMENT menu:menubar (menu:menu+)>
+<!ELEMENT menu:menu (menu:menupopup)>
+<!ELEMENT menu:menupopup (menu:menuitem | menu:menuseparator | menu:menu)+>
+<!ELEMENT menu:menuseparator EMPTY>
+<!ELEMENT menu:menuitem EMPTY>
+<!ATTLIST menu:menubar
+ menu:id CDATA #REQUIRED
+ xmlns:menu CDATA #FIXED "http://openoffice.org/2001/menu"
+>
+<!ATTLIST menu:menu
+ menu:id CDATA #REQUIRED
+ menu:label CDATA #IMPLIED
+>
+<!ATTLIST menu:menuitem
+ menu:id CDATA #REQUIRED
+ menu:helpid CDATA #IMPLIED
+ menu:label CDATA #IMPLIED
+>
diff --git a/test/user-template/user/dtd/officedocument/1_0/meta.mod b/test/user-template/user/dtd/officedocument/1_0/meta.mod
new file mode 100644
index 000000000000..1ea845bcb02d
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/meta.mod
@@ -0,0 +1,90 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+
+<!ELEMENT meta:generator (%cString;)>
+
+<!ELEMENT dc:title (%cString;)>
+
+<!ELEMENT dc:description (%cString;)>
+
+<!ELEMENT dc:subject (%cString;)>
+
+<!ELEMENT meta:keywords (meta:keyword)*>
+<!ELEMENT meta:keyword (%cString;)>
+
+<!ELEMENT meta:initial-creator (%cString;)>
+
+<!ELEMENT dc:creator (%cString;)>
+
+<!ELEMENT meta:printed-by (%cString;)>
+
+<!ELEMENT meta:creation-date (%cTimeInstance;)>
+
+<!ELEMENT dc:date (%cTimeInstance;)>
+
+<!ELEMENT meta:print-date (%cTimeInstance;)>
+
+<!ELEMENT meta:template EMPTY>
+<!ATTLIST meta:template xlink:type (simple) #FIXED "simple">
+<!ATTLIST meta:template xlink:actuate (onRequest) "onRequest">
+<!ATTLIST meta:template xlink:href %uriReference; #REQUIRED>
+<!ATTLIST meta:template xlink:title %string; #IMPLIED>
+<!ATTLIST meta:template meta:date %timeInstance; #IMPLIED>
+
+<!ELEMENT meta:auto-reload EMPTY>
+<!ATTLIST meta:auto-reload xlink:type (simple) #IMPLIED>
+<!ATTLIST meta:auto-reload xlink:show (replace) #IMPLIED>
+<!ATTLIST meta:auto-reload xlink:actuate (onLoad) #IMPLIED>
+<!ATTLIST meta:auto-reload xlink:href %uriReference; #IMPLIED>
+<!ATTLIST meta:auto-reload meta:delay %timeDuration; "P0S">
+
+<!ELEMENT meta:hyperlink-behaviour EMPTY>
+<!ATTLIST meta:hyperlink-behaviour office:target-frame-name %targetFrameName; #IMPLIED>
+<!ATTLIST meta:hyperlink-behaviour xlink:show (new|replace) #IMPLIED>
+
+<!ELEMENT dc:language (%cLanguage;)>
+
+<!ELEMENT meta:editing-cycles (%cPositiveInteger;)>
+
+<!ELEMENT meta:editing-duration (%cTimeDuration;)>
+
+<!ELEMENT meta:user-defined (%cString;)>
+<!ATTLIST meta:user-defined meta:name %string; #REQUIRED>
+
+<!ELEMENT meta:document-statistic EMPTY>
+<!ATTLIST meta:document-statistic meta:page-count %positiveInteger; #IMPLIED
+ meta:table-count %nonNegativeInteger; #IMPLIED
+ meta:draw-count %nonNegativeInteger; #IMPLIED
+ meta:image-count %nonNegativeInteger; #IMPLIED
+ meta:ole-object-count %nonNegativeInteger; #IMPLIED
+ meta:paragraph-count %nonNegativeInteger; #IMPLIED
+ meta:word-count %nonNegativeInteger; #IMPLIED
+ meta:character-count %nonNegativeInteger; #IMPLIED
+ meta:row-count %nonNegativeInteger; #IMPLIED
+ meta:cell-count %nonNegativeInteger; #IMPLIED
+ meta:object-count %positiveInteger; #IMPLIED>
diff --git a/test/user-template/user/dtd/officedocument/1_0/module.dtd b/test/user-template/user/dtd/officedocument/1_0/module.dtd
new file mode 100644
index 000000000000..e0e7c843d46d
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/module.dtd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ELEMENT script:module (#PCDATA)>
+<!ATTLIST script:module
+ xmlns:script CDATA #FIXED "http://openoffice.org/2000/script"
+ script:name CDATA #REQUIRED
+ script:language CDATA #REQUIRED
+>
+
diff --git a/test/user-template/user/dtd/officedocument/1_0/nmspace.mod b/test/user-template/user/dtd/officedocument/1_0/nmspace.mod
new file mode 100644
index 000000000000..addcdc59224f
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/nmspace.mod
@@ -0,0 +1,53 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY nFO "http://www.w3.org/1999/XSL/Format">
+<!ENTITY nXLink "http://www.w3.org/1999/xlink">
+<!ENTITY nSVG "http://www.w3.org/2000/svg">
+<!ENTITY nMath "http://www.w3.org/1998/Math/MathML">
+
+<!-- StarOffice namespace names and prefixes -->
+
+<!ENTITY nOpenOffice "http://openoffice.org/2000">
+<!ENTITY nOpenOffice2001 "http://openoffice.org/2001">
+
+<!ENTITY nOffice "&nOpenOffice;/office">
+<!ENTITY nStyle "&nOpenOffice;/style">
+<!ENTITY nText "&nOpenOffice;/text">
+<!ENTITY nTable "&nOpenOffice;/table">
+<!ENTITY nMeta "&nOpenOffice;/meta">
+<!ENTITY nScript "&nOpenOffice;/script">
+<!ENTITY nDraw "&nOpenOffice;/drawing">
+<!ENTITY nChart "&nOpenOffice;/chart">
+<!ENTITY nNumber "&nOpenOffice;/datastyle">
+<!ENTITY nDr3D "&nOpenOffice;/dr3d">
+<!ENTITY nForm "&nOpenOffice;/form">
+<!ENTITY nConfig "&nOpenOffice2001;/config">
+<!ENTITY nPresentation "&nOpenOffice2001;/presentation">
+
+<!-- dublin core namespace name and prefic -->
+<!ENTITY nDC "http://purl.org/dc/elements/1.1/">
diff --git a/test/user-template/user/dtd/officedocument/1_0/office.dtd b/test/user-template/user/dtd/officedocument/1_0/office.dtd
new file mode 100644
index 000000000000..c66bc8d2ad4b
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/office.dtd
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY % dtypes-mod SYSTEM "dtypes.mod">
+%dtypes-mod;
+<!ENTITY % nmspace-mod SYSTEM "nmspace.mod">
+%nmspace-mod;
+<!ENTITY % defs-mod SYSTEM "defs.mod">
+%defs-mod;
+<!ENTITY % office-mod SYSTEM "office.mod">
+%office-mod;
+<!ENTITY % style-mod SYSTEM "style.mod">
+%style-mod;
+<!ENTITY % meta-mod SYSTEM "meta.mod">
+%meta-mod;
+<!ENTITY % script-mod SYSTEM "script.mod">
+%script-mod;
+<!ENTITY % drawing-mod SYSTEM "drawing.mod">
+%drawing-mod;
+<!ENTITY % text-mod SYSTEM "text.mod">
+%text-mod;
+<!ENTITY % table-mod SYSTEM "table.mod">
+%table-mod;
+<!ENTITY % chart-mod SYSTEM "chart.mod">
+%chart-mod;
+<!ENTITY % datastyl-mod SYSTEM "datastyl.mod">
+%datastyl-mod;
+<!ENTITY % form-mod SYSTEM "form.mod">
+%form-mod;
+<!ENTITY % settings-mod SYSTEM "settings.mod">
+%settings-mod;
diff --git a/test/user-template/user/dtd/officedocument/1_0/office.mod b/test/user-template/user/dtd/officedocument/1_0/office.mod
new file mode 100644
index 000000000000..a7d50df0cf06
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/office.mod
@@ -0,0 +1,245 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ELEMENT office:document ( office:meta?,
+ office:settings?,
+ office:script?,
+ office:font-decls?,
+ office:styles?,
+ office:automatic-styles?,
+ office:master-styles?,
+ office:body ) >
+
+<!ATTLIST office:document xmlns:office CDATA #FIXED "&nOffice;">
+<!ATTLIST office:document xmlns:meta CDATA #FIXED "&nMeta;">
+<!ATTLIST office:document xmlns:script CDATA #FIXED "&nScript;">
+<!ATTLIST office:document xmlns:style CDATA #FIXED "&nStyle;">
+<!ATTLIST office:document xmlns:text CDATA #FIXED "&nText;">
+<!ATTLIST office:document xmlns:table CDATA #FIXED "&nTable;">
+<!ATTLIST office:document xmlns:draw CDATA #FIXED "&nDraw;">
+<!ATTLIST office:document xmlns:chart CDATA #FIXED "&nChart;">
+<!ATTLIST office:document xmlns:number CDATA #FIXED "&nNumber;">
+<!ATTLIST office:document xmlns:fo CDATA #FIXED "&nFO;">
+<!ATTLIST office:document xmlns:xlink CDATA #FIXED "&nXLink;">
+<!ATTLIST office:document xmlns:svg CDATA #FIXED "&nSVG;">
+<!ATTLIST office:document xmlns:dc CDATA #FIXED "&nDC;">
+<!ATTLIST office:document xmlns:dr3d CDATA #FIXED "&nDr3D;">
+<!ATTLIST office:document xmlns:math CDATA #FIXED "&nMath;">
+<!ATTLIST office:document xmlns:form CDATA #FIXED "&nForm;">
+<!ATTLIST office:document xmlns:config CDATA #FIXED "&nConfig;">
+<!ATTLIST office:document xmlns:presentation CDATA #FIXED "&nPresentation;">
+
+<!ATTLIST office:document office:class
+ (text|text-global|
+ drawing|presentation|
+ spreadsheet|chart) #REQUIRED>
+
+<!ATTLIST office:document office:version %string; #IMPLIED>
+
+<!-- document-styles -->
+<!ELEMENT office:document-styles (
+ office:font-decls?,
+ office:styles?,
+ office:automatic-styles?,
+ office:master-styles? ) >
+
+<!ATTLIST office:document-styles xmlns:office CDATA #FIXED "&nOffice;">
+<!ATTLIST office:document-styles xmlns:meta CDATA #FIXED "&nMeta;">
+<!ATTLIST office:document-styles xmlns:script CDATA #FIXED "&nScript;">
+<!ATTLIST office:document-styles xmlns:style CDATA #FIXED "&nStyle;">
+<!ATTLIST office:document-styles xmlns:text CDATA #FIXED "&nText;">
+<!ATTLIST office:document-styles xmlns:table CDATA #FIXED "&nTable;">
+<!ATTLIST office:document-styles xmlns:draw CDATA #FIXED "&nDraw;">
+<!ATTLIST office:document-styles xmlns:chart CDATA #FIXED "&nChart;">
+<!ATTLIST office:document-styles xmlns:number CDATA #FIXED "&nNumber;">
+<!ATTLIST office:document-styles xmlns:fo CDATA #FIXED "&nFO;">
+<!ATTLIST office:document-styles xmlns:xlink CDATA #FIXED "&nXLink;">
+<!ATTLIST office:document-styles xmlns:svg CDATA #FIXED "&nSVG;">
+<!ATTLIST office:document-styles xmlns:dc CDATA #FIXED "&nDC;">
+<!ATTLIST office:document-styles xmlns:dr3d CDATA #FIXED "&nDr3D;">
+<!ATTLIST office:document-styles xmlns:math CDATA #FIXED "&nMath;">
+<!ATTLIST office:document-styles xmlns:form CDATA #FIXED "&nForm;">
+
+<!ATTLIST office:document-styles office:version %string; #IMPLIED>
+
+<!-- document-content -->
+
+<!ELEMENT office:document-content (
+ office:script?,
+ office:font-decls?,
+ office:automatic-styles?,
+ office:body ) >
+
+<!ATTLIST office:document-content xmlns:office CDATA #FIXED "&nOffice;">
+<!ATTLIST office:document-content xmlns:meta CDATA #FIXED "&nMeta;">
+<!ATTLIST office:document-content xmlns:script CDATA #FIXED "&nScript;">
+<!ATTLIST office:document-content xmlns:style CDATA #FIXED "&nStyle;">
+<!ATTLIST office:document-content xmlns:text CDATA #FIXED "&nText;">
+<!ATTLIST office:document-content xmlns:table CDATA #FIXED "&nTable;">
+<!ATTLIST office:document-content xmlns:draw CDATA #FIXED "&nDraw;">
+<!ATTLIST office:document-content xmlns:chart CDATA #FIXED "&nChart;">
+<!ATTLIST office:document-content xmlns:number CDATA #FIXED "&nNumber;">
+<!ATTLIST office:document-content xmlns:fo CDATA #FIXED "&nFO;">
+<!ATTLIST office:document-content xmlns:xlink CDATA #FIXED "&nXLink;">
+<!ATTLIST office:document-content xmlns:svg CDATA #FIXED "&nSVG;">
+<!ATTLIST office:document-content xmlns:dc CDATA #FIXED "&nDC;">
+<!ATTLIST office:document-content xmlns:dr3d CDATA #FIXED "&nDr3D;">
+<!ATTLIST office:document-content xmlns:math CDATA #FIXED "&nMath;">
+<!ATTLIST office:document-content xmlns:form CDATA #FIXED "&nForm;">
+
+<!ATTLIST office:document-content office:class
+ (text|text-global|
+ drawing|presentation|
+ spreadsheet|chart) #REQUIRED>
+
+<!ATTLIST office:document-content office:version %string; #IMPLIED>
+
+<!-- document-content -->
+
+<!ELEMENT office:document-meta ( office:meta? ) >
+
+<!ATTLIST office:document-meta xmlns:office CDATA #FIXED "&nOffice;">
+<!ATTLIST office:document-meta xmlns:meta CDATA #FIXED "&nMeta;">
+<!ATTLIST office:document-meta xmlns:script CDATA #FIXED "&nScript;">
+<!ATTLIST office:document-meta xmlns:style CDATA #FIXED "&nStyle;">
+<!ATTLIST office:document-meta xmlns:text CDATA #FIXED "&nText;">
+<!ATTLIST office:document-meta xmlns:table CDATA #FIXED "&nTable;">
+<!ATTLIST office:document-meta xmlns:draw CDATA #FIXED "&nDraw;">
+<!ATTLIST office:document-meta xmlns:chart CDATA #FIXED "&nChart;">
+<!ATTLIST office:document-meta xmlns:number CDATA #FIXED "&nNumber;">
+<!ATTLIST office:document-meta xmlns:fo CDATA #FIXED "&nFO;">
+<!ATTLIST office:document-meta xmlns:xlink CDATA #FIXED "&nXLink;">
+<!ATTLIST office:document-meta xmlns:svg CDATA #FIXED "&nSVG;">
+<!ATTLIST office:document-meta xmlns:dc CDATA #FIXED "&nDC;">
+<!ATTLIST office:document-meta xmlns:dr3d CDATA #FIXED "&nDr3D;">
+<!ATTLIST office:document-meta xmlns:math CDATA #FIXED "&nMath;">
+<!ATTLIST office:document-meta xmlns:form CDATA #FIXED "&nForm;">
+
+<!ATTLIST office:document-meta office:version %string; #IMPLIED>
+
+<!ELEMENT office:document-settings (office:settings) >
+<!ATTLIST office:document-settings xmlns:office CDATA #FIXED "&nOffice;">
+<!ATTLIST office:document-settings xmlns:xlink CDATA #FIXED "&nXLink;">
+<!ATTLIST office:document-settings xmlns:config CDATA #FIXED "&nConfig;">
+
+<!ATTLIST office:document-settings office:version %string; #IMPLIED>
+
+<!ENTITY % meta "(meta:generator?,
+ dc:title?,
+ dc:description?,
+ dc:subject?,
+ meta:initial-creator?,
+ meta:creation-date?,
+ dc:creator?,
+ dc:date?,
+ meta:printed-by?,
+ meta:print-date?,
+ meta:keywords?,
+ dc:language?,
+ meta:editing-cycles?,
+ meta:editing-duration?,
+ meta:hyperlink-behaviour?,
+ meta:auto-reload?,
+ meta:template?,
+ meta:user-defined*,
+ meta:document-statistic?)">
+<!ELEMENT office:meta %meta;>
+
+<!ENTITY % script "office:script-data*,office:events?">
+<!ELEMENT office:script (%script;)>
+
+<!ELEMENT office:script-data (script:libraries*)>
+<!ATTLIST office:script-data script:language %string; #REQUIRED>
+
+<!ELEMENT office:font-decls (style:font-decl)*>
+
+<!ENTITY % styles "(style:default-style|style:style|text:list-style|
+ number:number-style|number:currency-style|number:percentage-style|
+ number:date-style|number:time-style|number:boolean-style|
+ number:text-style|
+ draw:gradient|draw:hatch|draw:fill-image|draw:marker|draw:stroke-dash|
+ style:presentation-page-layout|draw:transparency)">
+
+<!-- Validity constraint: The elements
+ text:outline-style,
+ text:footnotes-configuration,
+ text:endnotes-configuration,
+ text:bibliography-configuration and
+ text:linenumbering-configuration
+ may appear only once!
+ Unfortunatetly, this constraint cannot be easily specified in the DTD.
+-->
+<!ELEMENT office:styles (%styles;|text:outline-style|
+ text:footnotes-configuration|text:endnotes-configuration|
+ text:bibliography-configuration|text:linenumbering-configuration)*>
+
+<!ELEMENT office:automatic-styles (%styles;|style:page-master)*>
+
+<!ELEMENT office:master-styles (draw:layer-set?,style:handout-master?,style:master-page*) >
+
+
+<!ENTITY % body "(office:forms?,(text:tracked-changes|table:tracked-changes)?,%text-decls;,table:calculation-settings?,table:content-validations?,table:label-ranges?,
+ (text:h|text:p|text:ordered-list|
+ text:unordered-list|table:table|draw:page|
+ draw:a|%shape;|text:section|text:table-of-content|
+ text:illustration-index|text:table-index|text:object-index|
+ text:user-index|text:alphabetical-index|text:bibliography|
+ %change-marks;)*,
+ table:named-expressions?,
+ table:database-ranges?,table:data-pilot-tables?,
+ table:consolidation?,
+ table:dde-links?,
+ presentation:settings?)">
+<!ELEMENT office:body %body;>
+<!ATTLIST office:body table:structure-protected %boolean; "false"
+ table:protection-key CDATA #IMPLIED>
+
+<!ELEMENT office:events (script:event|presentation:event)*>
+
+<!-- DDE source: for text sections and tables -->
+<!ELEMENT office:dde-source EMPTY>
+<!ATTLIST office:dde-source office:dde-application CDATA #IMPLIED>
+<!ATTLIST office:dde-source office:dde-topic CDATA #IMPLIED>
+<!ATTLIST office:dde-source office:dde-item CDATA #IMPLIED>
+<!ATTLIST office:dde-source office:automatic-update %boolean; "false">
+<!ATTLIST office:dde-source office:name CDATA #IMPLIED>
+<!ATTLIST office:dde-source table:conversion-mode (into-default-style-data-style|into-english-number|let-text) "into-default-style-data-style" >
+
+<!-- annotations -->
+<!-- limitation: in the current implementation, only plain text inside of
+ paragraphs is supported -->
+<!ELEMENT office:annotation (text:p)*>
+<!ATTLIST office:annotation office:author %string; #IMPLIED>
+<!ATTLIST office:annotation office:create-date %date; #IMPLIED>
+<!ATTLIST office:annotation office:create-date-string %string; #IMPLIED>
+<!ATTLIST office:annotation office:display %boolean; "false">
+
+<!ELEMENT office:change-info (text:p)*>
+<!ATTLIST office:change-info office:chg-author %string; #REQUIRED>
+<!ATTLIST office:change-info office:chg-date-time %timeInstance; #REQUIRED>
+
+<!ELEMENT office:binary-data (#PCDATA)>
diff --git a/test/user-template/user/dtd/officedocument/1_0/script.mod b/test/user-template/user/dtd/officedocument/1_0/script.mod
new file mode 100644
index 000000000000..5e255ac6df4d
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/script.mod
@@ -0,0 +1,59 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ELEMENT script:libraries (script:library-embedded | script:library-linked)*>
+<!ATTLIST script:libraries xmlns:script CDATA #FIXED "http://openoffice.org/2000/script">
+<!ATTLIST script:libraries xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink">
+
+<!ENTITY % boolean "(true|false)">
+
+<!ELEMENT script:library-embedded (script:module*)>
+<!ATTLIST script:library-embedded script:name %string; #REQUIRED>
+<!ATTLIST script:library-embedded script:readonly %boolean; #IMPLIED>
+
+<!ELEMENT script:library-linked EMPTY>
+<!ATTLIST script:library-linked script:name %string; #REQUIRED>
+<!ATTLIST script:library-linked xlink:href %string; #REQUIRED>
+<!ATTLIST script:library-linked xlink:type (simple) #FIXED "simple">
+<!ATTLIST script:library-linked script:readonly %boolean; #IMPLIED>
+
+<!ELEMENT script:module (script:source-code)>
+<!ATTLIST script:module script:name %string; #REQUIRED>
+
+<!ELEMENT script:source-code (#PCDATA)>
+
+
+<!ENTITY % script-language "script:language %string; #REQUIRED">
+<!ENTITY % event-name "script:event-name %string; #REQUIRED">
+<!ENTITY % location "script:location (document|application) #REQUIRED">
+<!ENTITY % macro-name "script:macro-name %string; #REQUIRED">
+
+<!ELEMENT script:event (#PCDATA)>
+<!ATTLIST script:event %script-language;
+ %event-name;
+ %location;
+ %macro-name;>
diff --git a/test/user-template/user/dtd/officedocument/1_0/settings.mod b/test/user-template/user/dtd/officedocument/1_0/settings.mod
new file mode 100644
index 000000000000..bb9224237fa8
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/settings.mod
@@ -0,0 +1,49 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ELEMENT office:settings (config:config-item-set+)>
+
+<!ENTITY % items "(config:config-item |
+ config:config-item-set |
+ config:config-item-map-named |
+ config:config-item-map-indexed)+">
+
+<!ELEMENT config:config-item-set %items;>
+<!ATTLIST config:config-item-set config:name CDATA #REQUIRED>
+
+<!ELEMENT config:config-item (#PCDATA)>
+<!ATTLIST config:config-item config:name CDATA #REQUIRED
+ config:type (boolean | short | int | long | double | string | datetime | base64Binary) #REQUIRED>
+
+<!ELEMENT config:config-item-map-named (config:config-item-map-entry)+>
+<!ATTLIST config:config-item-map-named config:name CDATA #REQUIRED>
+
+<!ELEMENT config:config-item-map-indexed (config:config-item-map-entry)+>
+<!ATTLIST config:config-item-map-indexed config:name CDATA #REQUIRED>
+
+<!ELEMENT config:config-item-map-entry %items;>
+<!ATTLIST config:config-item-map-entry config:name CDATA #IMPLIED>
diff --git a/test/user-template/user/dtd/officedocument/1_0/statusbar.dtd b/test/user-template/user/dtd/officedocument/1_0/statusbar.dtd
new file mode 100644
index 000000000000..3b380317b65e
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/statusbar.dtd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY % boolean "(true|false)">
+<!ENTITY % numeric "CDATA">
+<!ENTITY % alignment "(left|center|right)">
+<!ENTITY % style "(in|out|flat)">
+
+<!ELEMENT statusbar:statusbar (statusbar:statusbaritem*)>
+<!ATTLIST statusbar:statusbar
+ xmlns:statusbar CDATA #FIXED "http://openoffice.org/2001/statusbar"
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+>
+<!ELEMENT statusbar:statusbaritem EMPTY>
+<!ATTLIST statusbar:statusbaritem
+ xlink:href CDATA #REQUIRED
+ statusbar:align %alignment; "center"
+ statusbar:style %style; "in"
+ statusbar:autosize %boolean; "false"
+ statusbar:ownerdraw %boolean; "false"
+ statusbar:width %numeric; "0"
+ statusbar:offset %numeric; "5"
+>
diff --git a/test/user-template/user/dtd/officedocument/1_0/style.mod b/test/user-template/user/dtd/officedocument/1_0/style.mod
new file mode 100644
index 000000000000..fef8f73630ef
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/style.mod
@@ -0,0 +1,427 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ELEMENT style:font-decl EMPTY>
+<!ATTLIST style:font-decl style:name %string; #REQUIRED>
+<!ATTLIST style:font-decl fo:font-family %string; #REQUIRED>
+<!ATTLIST style:font-decl style:font-style-name %string; #IMPLIED>
+<!ENTITY % fontFamilyGeneric "(roman|swiss|modern|decorative|script|system)">
+<!ATTLIST style:font-decl style:font-family-generic %fontFamilyGeneric;
+ #IMPLIED>
+<!ENTITY % fontPitch "(fixed|variable)">
+<!ATTLIST style:font-decl style:font-pitch %fontPitch; #IMPLIED>
+<!ATTLIST style:font-decl style:font-charset %textEncoding; #IMPLIED>
+
+<!ELEMENT style:style ( style:properties?,office:events?,style:map*)>
+
+<!ATTLIST style:style style:name %styleName; #REQUIRED>
+
+<!ENTITY % styleFamily "(paragraph|text|section|
+ table|table-column|table-row|table-cell|table-page|chart|graphics|default|drawing-page|presentation|control|ruby)">
+<!ATTLIST style:style style:family %styleFamily; #REQUIRED>
+
+<!ATTLIST style:style style:parent-style-name %styleName; #IMPLIED>
+<!ATTLIST style:style style:master-page-name %styleName; #IMPLIED>
+<!ATTLIST style:style style:next-style-name %styleName; #IMPLIED>
+<!ATTLIST style:style style:list-style-name %styleName; #IMPLIED>
+<!ATTLIST style:style style:data-style-name %styleName; #IMPLIED>
+
+<!ATTLIST style:style style:auto-update %boolean; "false">
+
+<!ATTLIST style:style style:class %string; #IMPLIED>
+
+<!ELEMENT style:default-style (style:properties?)>
+<!ATTLIST style:default-style style:family %styleFamily; #REQUIRED>
+
+<!ELEMENT style:map EMPTY>
+
+<!ATTLIST style:map style:condition %string; #REQUIRED>
+<!ATTLIST style:map style:apply-style-name %styleName; #REQUIRED>
+<!ATTLIST style:map style:base-cell-address %cell-address; #IMPLIED>
+
+<!ELEMENT style:properties ANY>
+
+<!-- number format properties -->
+<!ATTLIST style:properties style:num-prefix %string; #IMPLIED>
+<!ATTLIST style:properties style:num-suffix %string; #IMPLIED>
+<!ATTLIST style:properties style:num-format %string; #IMPLIED>
+<!ATTLIST style:properties style:num-letter-sync %boolean; #IMPLIED>
+
+<!-- frame properties -->
+<!ATTLIST style:properties fo:width %positiveLength; #IMPLIED>
+<!ATTLIST style:properties fo:height %positiveLength; #IMPLIED>
+<!ATTLIST style:properties style:vertical-pos (top|middle|bottom|from-top|below) #IMPLIED>
+<!ATTLIST style:properties style:vertical-rel (page|page-content|
+ frame|frame-content|
+ paragraph|paragraph-content|char|
+ line|baseline|text) #IMPLIED>
+<!ATTLIST style:properties style:horizontal-pos (left|center|right|from-left|inside|outside|from-inside) #IMPLIED>
+<!ATTLIST style:properties style:horizontal-rel (page|page-content|
+ page-start-margin|page-end-margin|
+ frame|frame-content|
+ frame-start-margin|frame-end-margin|
+ paragraph|paragraph-content|
+ paragraph-start-margin|paragraph-end-margin|
+ char) #IMPLIED>
+<!ATTLIST style:properties svg:width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties svg:height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties fo:min-height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties fo:min-width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties fo:max-height %lengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties fo:max-width %lengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties text:anchor-type %anchorType; #IMPLIED>
+<!ATTLIST style:properties text:anchor-page-number %positiveInteger; #IMPLIED>
+<!ATTLIST style:properties svg:x %coordinate; #IMPLIED>
+<!ATTLIST style:properties svg:y %coordinate; #IMPLIED>
+<!ATTLIST style:properties style:print-content %boolean; #IMPLIED>
+<!ATTLIST style:properties style:protect %boolean; #IMPLIED>
+<!ATTLIST style:properties style:wrap (none|left|right|parallel|dynamic|run-through) #IMPLIED>
+<!ENTITY % noLimitOrPositiveInteger "CDATA">
+<!ATTLIST style:properties style:number-wrapped-paragraphs %noLimitOrPositiveInteger; #IMPLIED>
+<!ATTLIST style:properties style:wrap-contour %boolean; #IMPLIED>
+<!ATTLIST style:properties style:wrap-contour-mode (full|outside) #IMPLIED>
+<!ATTLIST style:properties style:run-through (foreground|background) #IMPLIED>
+<!ATTLIST style:properties style:editable %boolean; #IMPLIED>
+<!ATTLIST style:properties style:mirror CDATA #IMPLIED>
+<!ATTLIST style:properties fo:clip CDATA #IMPLIED>
+<!ATTLIST style:properties text:animation (none|scroll|alternate|slide) #IMPLIED>
+<!ATTLIST style:properties text:animation-direction (left|right|up|down) #IMPLIED>
+<!ATTLIST style:properties text:animation-start-inside %boolean; #IMPLIED>
+<!ATTLIST style:properties text:animation-stop-inside %boolean; #IMPLIED>
+<!ATTLIST style:properties text:animation-repeat %integer; #IMPLIED>
+<!ATTLIST style:properties text:animation-delay %timeDuration; #IMPLIED>
+<!ATTLIST style:properties text:animation-steps %length; #IMPLIED>
+
+<!-- text properties -->
+<!ATTLIST style:properties fo:font-variant (normal|small-caps) #IMPLIED>
+<!ATTLIST style:properties fo:text-transform (none|lowercase|
+ uppercase|capitalize) #IMPLIED>
+<!ATTLIST style:properties fo:color %color; #IMPLIED>
+<!ATTLIST style:properties style:use-window-font-color %boolean; #IMPLIED>
+<!ATTLIST style:properties style:text-outline %boolean; #IMPLIED>
+<!ATTLIST style:properties style:text-crossing-out
+ (none|single-line|double-line|thick-line|slash|X)
+ #IMPLIED>
+<!ATTLIST style:properties style:text-position CDATA #IMPLIED>
+<!ATTLIST style:properties style:text-align (left|right|start|center|end|justify|justified) #IMPLIED>
+
+<!ATTLIST style:properties style:font-name %string; #IMPLIED>
+<!ATTLIST style:properties fo:font-family %string; #IMPLIED>
+<!ATTLIST style:properties style:font-family-generic %fontFamilyGeneric;
+ #IMPLIED>
+<!ATTLIST style:properties style:font-style-name %string; #IMPLIED>
+<!ATTLIST style:properties style:font-pitch %fontPitch; #IMPLIED>
+<!ATTLIST style:properties style:font-charset %textEncoding; #IMPLIED>
+<!ATTLIST style:properties style:font-name-asian %string; #IMPLIED>
+<!ATTLIST style:properties style:font-family-asian %string; #IMPLIED>
+<!ATTLIST style:properties style:font-family-generic-asian %fontFamilyGeneric;
+ #IMPLIED>
+<!ATTLIST style:properties style:font-style-name-asian %string; #IMPLIED>
+<!ATTLIST style:properties style:font-pitch-asian %fontPitch; #IMPLIED>
+<!ATTLIST style:properties style:font-charset-asian %textEncoding; #IMPLIED>
+<!ATTLIST style:properties style:font-name-complex %string; #IMPLIED>
+<!ATTLIST style:properties style:font-family-complex %string; #IMPLIED>
+<!ATTLIST style:properties style:font-family-generic-complex %fontFamilyGeneric;
+ #IMPLIED>
+<!ATTLIST style:properties style:font-style-name-complex %string; #IMPLIED>
+<!ATTLIST style:properties style:font-pitch-complex %fontPitch; #IMPLIED>
+<!ATTLIST style:properties style:font-charset-complex %textEncoding; #IMPLIED>
+
+<!ATTLIST style:properties fo:font-size %positiveLengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties style:font-size-rel %length; #IMPLIED>
+<!ATTLIST style:properties style:font-size-asian %positiveLengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties style:font-size-rel-asian %length; #IMPLIED>
+<!ATTLIST style:properties style:font-size-complex %positiveLengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties style:font-size-rel-complex %length; #IMPLIED>
+<!ENTITY % normalOrLength "CDATA">
+<!ATTLIST style:properties fo:letter-spacing %normalOrLength; #IMPLIED>
+<!ATTLIST style:properties fo:language %languageOnly; #IMPLIED>
+<!ATTLIST style:properties style:language-asian %languageOnly; #IMPLIED>
+<!ATTLIST style:properties style:language-complex %languageOnly; #IMPLIED>
+<!ATTLIST style:properties fo:country %country; #IMPLIED>
+<!ATTLIST style:properties style:country-asian %country; #IMPLIED>
+<!ATTLIST style:properties style:country-complex %country; #IMPLIED>
+<!ENTITY % fontStyle "(normal|italic|oblique)">
+<!ATTLIST style:properties fo:font-style %fontStyle; #IMPLIED>
+<!ATTLIST style:properties style:font-style-asian %fontStyle; #IMPLIED>
+<!ATTLIST style:properties style:font-style-complex %fontStyle; #IMPLIED>
+<!ENTITY % fontRelief "(none|embossed|engraved)">
+<!ATTLIST style:properties style:font-relief %fontRelief; #IMPLIED>
+<!ATTLIST style:properties fo:text-shadow CDATA #IMPLIED>
+<!ATTLIST style:properties style:text-underline
+ (none|single|double|dotted|dash|long-dash|dot-dash|
+ dot-dot-dash|wave|bold|bold-dotted|bold-dash|
+ bold-long-dash|bold-dot-dash|bold-dot-dot-dash|
+ bold-wave|double-wave|small-wave) #IMPLIED>
+<!ATTLIST style:properties style:text-autospace (none | ideograph-alpha) #IMPLIED>
+<!ATTLIST style:properties style:punctuation-wrap (simple | hanging) #IMPLIED>
+<!ATTLIST style:properties style:line-break (normal | strict) #IMPLIED>
+<!ENTITY % fontColorOrColor "CDATA">
+<!ATTLIST style:properties style:text-underline-color %fontColorOrColor;
+ #IMPLIED>
+<!ATTLIST style:properties fo:font-weight CDATA #IMPLIED>
+<!ATTLIST style:properties style:font-weight-asian CDATA #IMPLIED>
+<!ATTLIST style:properties style:font-weight-complex CDATA #IMPLIED>
+<!ATTLIST style:properties fo:score-spaces %boolean; #IMPLIED>
+<!ATTLIST style:properties style:letter-kerning %boolean; #IMPLIED>
+<!ATTLIST style:properties style:text-blinking %boolean; #IMPLIED>
+<!ATTLIST style:properties style:text-background-color %transparentOrColor;
+ #IMPLIED>
+
+<!ATTLIST style:properties style:text-combine (none|letters|lines) #IMPLIED>
+<!ATTLIST style:properties style:text-combine-start-char %character; #IMPLIED>
+<!ATTLIST style:properties style:text-combine-end-char %character; #IMPLIED>
+<!ATTLIST style:properties style:text-emphasize CDATA #IMPLIED>
+<!ATTLIST style:properties style:text-scale %percentage; #IMPLIED>
+<!ATTLIST style:properties style:text-rotation-angle %integer; #IMPLIED>
+<!ATTLIST style:properties style:text-rotation-scale (fixed|line-height) #IMPLIED>
+<!ATTLIST style:properties text:display (none|true) #IMPLIED>
+
+<!-- paragraph properties -->
+<!ENTITY % nonNegativeLengthOrPercentageOrNormal "CDATA">
+<!ATTLIST style:properties fo:line-height
+ %nonNegativeLengthOrPercentageOrNormal; #IMPLIED>
+<!ATTLIST style:properties style:line-height-at-least %nonNegativeLength;
+ #IMPLIED>
+<!ATTLIST style:properties style:line-spacing %length; #IMPLIED>
+<!ATTLIST style:properties fo:text-align (start|end|center|justify) #IMPLIED>
+<!ATTLIST style:properties fo:text-align-last (start|center|justify) #IMPLIED>
+<!ATTLIST style:properties style:text-align-source (fix|value-type) #IMPLIED>
+<!ATTLIST style:properties style:justify-single-word %boolean; #IMPLIED>
+<!-- fo:keep-together is new in OOo 2.0 -->
+<!ATTLIST style:properties fo:keep-together (auto|always) #IMPLIED>
+<!ATTLIST style:properties style:break-inside (auto|avoid) #IMPLIED>
+<!ATTLIST style:properties fo:widows %nonNegativeInteger; #IMPLIED>
+<!ATTLIST style:properties fo:orphans %nonNegativeInteger; #IMPLIED>
+
+<!ATTLIST style:properties fo:hyphenate %boolean; #IMPLIED>
+<!ATTLIST style:properties fo:hyphenate-keep (none|page) #IMPLIED>
+<!ATTLIST style:properties fo:hyphenation-remain-char-count %positiveInteger;
+ #IMPLIED>
+<!ATTLIST style:properties fo:hyphenation-push-char-count %positiveInteger;
+ #IMPLIED>
+<!ATTLIST style:properties fo:hyphenation-ladder-count
+ %noLimitOrPositiveInteger; #IMPLIED>
+<!ATTLIST style:properties style:page-number %positiveInteger; #IMPLIED>
+
+<!ELEMENT style:tab-stops (style:tab-stop)*>
+<!ELEMENT style:tab-stop EMPTY>
+<!ATTLIST style:tab-stop style:position %nonNegativeLength; #REQUIRED>
+<!ATTLIST style:tab-stop style:type (left|center|right|char|default) "left">
+<!ATTLIST style:tab-stop style:char %character; #IMPLIED>
+<!ATTLIST style:tab-stop style:leader-char %character; " ">
+
+<!ELEMENT style:drop-cap EMPTY>
+<!ENTITY % wordOrPositiveInteger "CDATA">
+<!ATTLIST style:drop-cap style:length %wordOrPositiveInteger; "1">
+<!ATTLIST style:drop-cap style:lines %positiveInteger; "1">
+<!ATTLIST style:drop-cap style:distance %length; "0cm">
+<!ATTLIST style:drop-cap style:style-name %styleName; #IMPLIED>
+
+<!ATTLIST style:properties style:register-true %boolean; #IMPLIED>
+<!ATTLIST style:properties style:register-truth-ref-style-name %styleName; #IMPLIED>
+<!ATTLIST style:properties fo:margin-left %positiveLengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties fo:margin-right %positiveLengthOrPercentage;
+ #IMPLIED>
+<!ATTLIST style:properties fo:text-indent %lengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties style:auto-text-indent %boolean; #IMPLIED>
+<!ATTLIST style:properties fo:margin-top %positiveLengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties fo:margin-bottom %positiveLengthOrPercentage; #IMPLIED>
+<!ATTLIST style:properties fo:break-before (auto|column|page) #IMPLIED>
+<!ATTLIST style:properties fo:break-after (auto|column|page) #IMPLIED>
+<!ATTLIST style:properties fo:background-color %transparentOrColor; #IMPLIED>
+<!ATTLIST style:properties style:background-transparency %percentage; #IMPLIED>
+<!ATTLIST style:properties style:dynamic-spacing %boolean; #IMPLIED>
+
+<!ELEMENT style:background-image (office:binary-data?)>
+<!ATTLIST style:background-image xlink:type (simple) #IMPLIED>
+<!ATTLIST style:background-image xlink:href %uriReference; #IMPLIED>
+<!ATTLIST style:background-image xlink:show (embed) #IMPLIED>
+<!ATTLIST style:background-image xlink:actuate (onLoad) #IMPLIED>
+<!ATTLIST style:background-image style:repeat (no-repeat|repeat|stretch)
+ "repeat">
+<!ATTLIST style:background-image style:position CDATA "center">
+<!ATTLIST style:background-image style:filter-name %string; #IMPLIED>
+<!ATTLIST style:background-image draw:transparency %percentage; #IMPLIED>
+
+<!ELEMENT style:symbol-image (office:binary-data?)>
+<!ATTLIST style:symbol-image xlink:type (simple) #IMPLIED>
+<!ATTLIST style:symbol-image xlink:href %uriReference; #IMPLIED>
+<!ATTLIST style:symbol-image xlink:show (embed) #IMPLIED>
+<!ATTLIST style:symbol-image xlink:actuate (onLoad) #IMPLIED>
+
+<!ATTLIST style:properties fo:border CDATA #IMPLIED>
+<!ATTLIST style:properties fo:border-top CDATA #IMPLIED>
+<!ATTLIST style:properties fo:border-bottom CDATA #IMPLIED>
+<!ATTLIST style:properties fo:border-left CDATA #IMPLIED>
+<!ATTLIST style:properties fo:border-right CDATA #IMPLIED>
+<!ATTLIST style:properties style:border-line-width CDATA #IMPLIED>
+<!ATTLIST style:properties style:border-line-width-top CDATA #IMPLIED>
+<!ATTLIST style:properties style:border-line-width-bottom CDATA #IMPLIED>
+<!ATTLIST style:properties style:border-line-width-left CDATA #IMPLIED>
+<!ATTLIST style:properties style:border-line-width-right CDATA #IMPLIED>
+<!ATTLIST style:properties fo:padding %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties fo:padding-top %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties fo:padding-bottom %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties fo:padding-left %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties fo:padding-right %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties style:shadow CDATA #IMPLIED>
+<!ATTLIST style:properties fo:keep-with-next %boolean; #IMPLIED>
+<!ATTLIST style:properties style:join-border %boolean; #IMPLIED>
+
+<!ATTLIST style:properties text:number-lines %boolean; "false">
+<!ATTLIST style:properties text:line-number %nonNegativeInteger; #IMPLIED>
+
+<!ATTLIST style:properties style:decimal-places %nonNegativeInteger; #IMPLIED>
+<!ATTLIST style:properties style:tab-stop-distance %nonNegativeLength; #IMPLIED>
+
+<!-- section properties -->
+<!ATTLIST style:properties text:dont-balance-text-columns %boolean; #IMPLIED>
+
+<!-- ruby properties -->
+<!ATTLIST style:properties style:ruby-align (left|center|right|distribute-letter|distribute-space) #IMPLIED>
+<!ATTLIST style:properties style:ruby-position (above|below) #IMPLIED>
+
+
+<!-- table properties -->
+<!ATTLIST style:properties style:width %positiveLength; #IMPLIED>
+<!ATTLIST style:properties style:rel-width %percentage; #IMPLIED>
+<!ATTLIST style:properties style:may-break-between-rows %boolean; #IMPLIED>
+<!ATTLIST style:properties table:page-style-name %styleName; #IMPLIED>
+<!ATTLIST style:properties table:display %boolean; #IMPLIED>
+
+<!-- table column properties -->
+<!ATTLIST style:properties style:column-width %positiveLength; #IMPLIED>
+<!ENTITY % relWidth "CDATA">
+<!ATTLIST style:properties style:rel-column-width %relWidth; #IMPLIED>
+<!ATTLIST style:properties style:use-optimal-column-width %boolean; #IMPLIED>
+
+<!-- table row properties -->
+<!ATTLIST style:properties style:row-height %positiveLength; #IMPLIED>
+<!ATTLIST style:properties style:min-row-height %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties style:use-optimal-row-height %boolean; #IMPLIED>
+
+<!-- table cell properties -->
+<!ATTLIST style:properties
+ table:align (left | center | right | margins) #IMPLIED
+ table:border-model (collapsing | separating) #IMPLIED
+ fo:vertical-align (top | middle | bottom | automatic) #IMPLIED
+ fo:direction (ltr | ttb) #IMPLIED
+ style:glyph-orientation-vertical (auto | 0) #IMPLIED
+ style:rotation-angle %nonNegativeInteger; #IMPLIED
+ style:rotation-align (none | bottom | top | center) #IMPLIED
+ style:cell-protect CDATA #IMPLIED
+ fo:wrap-option (no-wrap | wrap) #IMPLIED
+>
+<!ELEMENT style:columns (style:column-sep?,style:column*)>
+<!ATTLIST style:columns fo:column-count %nonNegativeInteger; #IMPLIED>
+<!ATTLIST style:columns fo:column-gap %positiveLength; #IMPLIED>
+
+<!ELEMENT style:column EMPTY>
+<!ATTLIST style:column style:rel-width CDATA #IMPLIED>
+<!ATTLIST style:column fo:margin-left %positiveLength; #IMPLIED>
+<!ATTLIST style:column fo:margin-right %positiveLength; #IMPLIED>
+
+<!ELEMENT style:column-sep EMPTY>
+<!ATTLIST style:column-sep style:style (none|solid|dotted|dashed|dot-dashed)
+ "solid">
+<!ATTLIST style:column-sep style:width %length; #REQUIRED>
+<!ATTLIST style:column-sep style:height %percentage; "100&#37;">
+<!ATTLIST style:column-sep style:vertical-align (top|middle|bottom) "top">
+<!ATTLIST style:column-sep style:color %color; "#000000">
+
+<!-- page master properties -->
+<!ELEMENT style:page-master (style:properties?, style:header-style?, style:footer-style?)>
+<!ATTLIST style:page-master style:name %styleName; #REQUIRED>
+<!ATTLIST style:page-master style:page-usage (all|left|right|mirrored) "all">
+
+<!ELEMENT style:header-style (style:properties?)>
+<!ELEMENT style:footer-style (style:properties?)>
+
+<!ATTLIST style:properties fo:page-width %length; #IMPLIED>
+<!ATTLIST style:properties fo:page-height %length; #IMPLIED>
+<!ATTLIST style:properties style:paper-tray-name %string; #IMPLIED>
+<!ATTLIST style:properties style:print-orientation (portrait|landscape) #IMPLIED>
+<!ATTLIST style:properties style:print CDATA #IMPLIED>
+<!ATTLIST style:properties style:print-page-order (ttb|ltr) #IMPLIED>
+<!ATTLIST style:properties style:first-page-number %positiveInteger; #IMPLIED>
+<!ATTLIST style:properties style:scale-to %percentage; #IMPLIED>
+<!ATTLIST style:properties style:scale-to-pages %positiveInteger; #IMPLIED>
+<!ATTLIST style:properties style:table-centering (horizontal | vertical | both | none) #IMPLIED>
+
+<!ATTLIST style:properties style:footnote-max-height %lengthOrNoLimit; #IMPLIED>
+<!ATTLIST style:properties style:vertical-align (top|bottom|middle|basline|auto) #IMPLIED>
+<!ATTLIST style:properties style:writing-mode (lr-tb|rl-tb|tb-rl|tb-lr|lr|rl|tb|page) "lr-tb">
+<!ATTLIST style:properties style:layout-grid-mode (none|line|both) #IMPLIED>
+<!ATTLIST style:properties style:layout-grid-base-height %length; #IMPLIED>
+<!ATTLIST style:properties style:layout-grid-ruby-height %length; #IMPLIED>
+<!ATTLIST style:properties style:layout-grid-lines %positiveInteger; #IMPLIED>
+<!ATTLIST style:properties style:layout-grid-color %color; #IMPLIED>
+<!ATTLIST style:properties style:layout-grid-ruby-below %boolean; #IMPLIED>
+<!ATTLIST style:properties style:layout-grid-print %boolean; #IMPLIED>
+<!ATTLIST style:properties style:layout-grid-display %boolean; #IMPLIED>
+<!ATTLIST style:properties style:snap-to-layout-grid %boolean; #IMPLIED>
+
+<!ELEMENT style:footnote-sep EMPTY>
+<!ATTLIST style:footnote-sep style:width %length; #IMPLIED>
+<!ATTLIST style:footnote-sep style:rel-width %percentage; #IMPLIED>
+<!ATTLIST style:footnote-sep style:color %color; #IMPLIED>
+<!ATTLIST style:footnote-sep style:adjustment (left|center|right) "left">
+<!ATTLIST style:footnote-sep style:distance-before-sep %length; #IMPLIED>
+<!ATTLIST style:footnote-sep style:distance-after-sep %length; #IMPLIED>
+
+<!-- master page -->
+<!ELEMENT style:master-page ( (style:header, style:header-left?)?, (style:footer, style:footer-left?)?,
+ office:forms?,style:style*, (%shapes;)*, presentation:notes? )>
+<!ATTLIST style:master-page style:name %styleName; #REQUIRED>
+<!ATTLIST style:master-page style:page-master-name %styleName; #REQUIRED>
+<!ATTLIST style:master-page style:next-style-name %styleName; #IMPLIED>
+<!ATTLIST style:master-page draw:style-name %styleName; #IMPLIED>
+
+<!-- handout master -->
+<!ELEMENT style:handout-master (%shapes;)*>
+<!ATTLIST style:handout-master presentation:presentation-page-layout-name %styleName; #IMPLIED>
+<!ATTLIST style:handout-master style:page-master-name %styleName; #IMPLIED>
+<!ATTLIST style:handout-master draw:style-name %styleName; #IMPLIED>
+
+<!ENTITY % hd-ft-content "( %headerText; | (style:region-left?, style:region-center?, style:region-right?) )">
+<!ELEMENT style:header %hd-ft-content;>
+<!ATTLIST style:header style:display %boolean; "true">
+<!ELEMENT style:footer %hd-ft-content;>
+<!ATTLIST style:footer style:display %boolean; "true">
+<!ELEMENT style:header-left %hd-ft-content;>
+<!ATTLIST style:header-left style:display %boolean; "true">
+<!ELEMENT style:footer-left %hd-ft-content;>
+<!ATTLIST style:footer-left style:display %boolean; "true">
+
+<!ENTITY % region-content "(text:p*)">
+<!ELEMENT style:region-left %region-content;>
+<!ELEMENT style:region-center %region-content;>
+<!ELEMENT style:region-right %region-content;>
+
+<!-- control shape properties -->
+<!ATTLIST style:properties draw:symbol-color %color; #IMPLIED>
diff --git a/test/user-template/user/dtd/officedocument/1_0/table.mod b/test/user-template/user/dtd/officedocument/1_0/table.mod
new file mode 100644
index 000000000000..be30da54293c
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/table.mod
@@ -0,0 +1,496 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ELEMENT table:calculation-settings (table:null-date?, table:iteration?)>
+<!ATTLIST table:calculation-settings
+ table:case-sensitive %boolean; "true"
+ table:precision-as-shown %boolean; "false"
+ table:search-criteria-must-apply-to-whole-cell %boolean; "true"
+ table:automatic-find-labels %boolean; "true"
+ table:use-regular-expressions %boolean; "true"
+ table:null-year %positiveInteger; "1930"
+>
+<!ELEMENT table:null-date EMPTY>
+<!ATTLIST table:null-date
+ table:value-type %valueType; #FIXED "date"
+ table:date-value %date; "1899-12-30"
+>
+<!ELEMENT table:iteration EMPTY>
+<!ATTLIST table:iteration
+ table:status (enable | disable) "disable"
+ table:steps %positiveInteger; "100"
+ table:maximum-difference %float; "0.001"
+>
+
+<!ELEMENT table:tracked-changes (table:cell-content-change | table:insertion | table:deletion | table:movement | table:rejection)*>
+<!ATTLIST table:tracked-changes table:track-changes %boolean; "true"
+ table:protected %boolean; "false"
+ table:protection-key CDATA #IMPLIED
+>
+
+<!ELEMENT table:dependences (table:dependence)+>
+<!ELEMENT table:dependence EMPTY>
+<!ATTLIST table:dependence
+ table:id CDATA #REQUIRED
+>
+<!ELEMENT table:deletions (table:cell-content-deletion | table:change-deletion)+>
+<!ELEMENT table:cell-content-deletion (table:cell-address?, table:change-track-table-cell?)>
+<!ATTLIST table:cell-content-deletion
+ table:id CDATA #IMPLIED
+>
+<!ELEMENT table:change-deletion EMPTY>
+<!ATTLIST table:change-deletion
+ table:id CDATA #IMPLIED
+>
+<!ELEMENT table:insertion (office:change-info, table:dependences?, table:deletions?)>
+<!ATTLIST table:insertion
+ table:id CDATA #REQUIRED
+ table:acceptance-state (accepted | rejected | pending) "pending"
+ table:rejecting-change-id %positiveInteger; #IMPLIED
+ table:type (row | column | table) #REQUIRED
+ table:position %integer; #REQUIRED
+ table:count %positiveInteger; "1"
+ table:table %integer; #IMPLIED
+>
+<!ELEMENT table:deletion (office:change-info, table:dependences?, table:deletions?, table:cut-offs?)>
+<!ATTLIST table:deletion
+ table:id CDATA #REQUIRED
+ table:acceptance-state (accepted | rejected | pending) "pending"
+ table:rejecting-change-id %positiveInteger; #IMPLIED
+ table:type (row | column | table) #REQUIRED
+ table:position %integer; #REQUIRED
+ table:count %positiveInteger; "1"
+ table:table %integer; #IMPLIED
+ table:multi-deletion-spanned %integer; #IMPLIED
+>
+<!ELEMENT table:cut-offs (table:movement-cut-off+ | (table:insertion-cut-off, table:movement-cut-off*))>
+<!ELEMENT table:insertion-cut-off EMPTY>
+<!ATTLIST table:insertion-cut-off
+ table:id CDATA #REQUIRED
+ table:position %integer; #REQUIRED
+>
+<!ELEMENT table:movement-cut-off EMPTY>
+<!ATTLIST table:movement-cut-off
+ table:id CDATA #REQUIRED
+ table:start-position %integer; #IMPLIED
+ table:end-position %integer; #IMPLIED
+ table:position %integer; #IMPLIED
+>
+<!ELEMENT table:movement (table:source-range-address, table:target-range-address, office:change-info, table:dependences?, table:deletions?)>
+<!ATTLIST table:movement
+ table:id CDATA #REQUIRED
+ table:acceptance-state (accepted | rejected | pending) "pending"
+ table:rejecting-change-id %positiveInteger; #IMPLIED
+>
+<!ELEMENT table:target-range-address EMPTY>
+<!ATTLIST table:target-range-address
+ table:column %integer; #IMPLIED
+ table:row %integer; #IMPLIED
+ table:table %integer; #IMPLIED
+ table:start-column %integer; #IMPLIED
+ table:start-row %integer; #IMPLIED
+ table:start-table %integer; #IMPLIED
+ table:end-column %integer; #IMPLIED
+ table:end-row %integer; #IMPLIED
+ table:end-table %integer; #IMPLIED
+>
+<!ELEMENT table:source-range-address EMPTY>
+<!ATTLIST table:source-range-address
+ table:column %integer; #IMPLIED
+ table:row %integer; #IMPLIED
+ table:table %integer; #IMPLIED
+ table:start-column %integer; #IMPLIED
+ table:start-row %integer; #IMPLIED
+ table:start-table %integer; #IMPLIED
+ table:end-column %integer; #IMPLIED
+ table:end-row %integer; #IMPLIED
+ table:end-table %integer; #IMPLIED
+>
+<!ELEMENT table:change-track-table-cell (text:p*)>
+<!ATTLIST table:change-track-table-cell
+ table:cell-address %cell-address; #IMPLIED
+ table:matrix-covered (true | false) "false"
+ table:formula %string; #IMPLIED
+ table:number-matrix-rows-spanned %positiveInteger; #IMPLIED
+ table:number-matrix-columns-spanned %positiveInteger; #IMPLIED
+ table:value-type %valueType; "string"
+ table:value %float; #IMPLIED
+ table:date-value %date; #IMPLIED
+ table:time-value %timeInstance; #IMPLIED
+ table:string-value %string; #IMPLIED
+>
+<!ELEMENT table:cell-content-change (table:cell-address, office:change-info, table:dependences?, table:deletions?, table:previous)>
+<!ATTLIST table:cell-content-change
+ table:id CDATA #REQUIRED
+ table:acceptance-state (accepted | rejected | pending) "pending"
+ table:rejecting-change-id %positiveInteger; #IMPLIED
+>
+<!ELEMENT table:cell-address EMPTY>
+<!ATTLIST table:cell-address
+ table:column %integer; #IMPLIED
+ table:row %integer; #IMPLIED
+ table:table %integer; #IMPLIED
+>
+<!ELEMENT table:previous (table:change-track-table-cell)>
+<!ATTLIST table:previous
+ table:id CDATA #IMPLIED
+>
+<!ELEMENT table:rejection (office:change-info, table:dependences?, table:deletions?)>
+<!ATTLIST table:rejection
+ table:id CDATA #REQUIRED
+ table:acceptance-state (accepted | rejected | pending) "pending"
+ table:rejecting-change-id %positiveInteger; #IMPLIED
+>
+
+<!ENTITY % table-columns "table:table-columns | ( table:table-column | table:table-column-group )+">
+<!ENTITY % table-header-columns "table:table-header-columns">
+<!ENTITY % table-rows "table:table-rows | ( table:table-row | table:table-row-group )+">
+<!ENTITY % table-header-rows "table:table-header-rows">
+<!ENTITY % table-column-groups "((%table-columns;),(%table-header-columns;,(%table-columns;)?)?) | (%table-header-columns;,(%table-columns;)?)">
+<!ENTITY % table-row-groups "((%table-rows;),(%table-header-rows;,(%table-rows;)?)?) | (%table-header-rows;,(%table-rows;)?)">
+<!ELEMENT table:table (table:table-source?, table:scenario?, office:forms?, table:shapes?, (%table-column-groups;), (%table-row-groups;))>
+<!ATTLIST table:table
+ table:name %string; #IMPLIED
+ table:style-name %styleName; #IMPLIED
+ table:protected %boolean; "false"
+ table:protection-key CDATA #IMPLIED
+ table:print-ranges %cell-range-address-list; #IMPLIED
+ table:automatic-print-range %boolean; #IMPLIED
+>
+<!ELEMENT table:table-source EMPTY>
+<!ATTLIST table:table-source
+ table:mode (copy-all | copy-results-only) "copy-all"
+ xlink:type (simple) #FIXED "simple"
+ xlink:actuate (onRequest) "onRequest"
+ xlink:href %uriReference; #REQUIRED
+ table:filter-name CDATA #IMPLIED
+ table:table-name CDATA #IMPLIED
+ table:filter-options CDATA #IMPLIED
+ table:refresh-delay %timeDuration; #IMPLIED
+>
+<!ELEMENT table:scenario EMPTY>
+<!ATTLIST table:scenario
+ table:display-border %boolean; "true"
+ table:border-color %color; #IMPLIED
+ table:copy-back %boolean; "true"
+ table:copy-styles %boolean; "true"
+ table:copy-formulas %boolean; "true"
+ table:is-active %boolean; #REQUIRED
+ table:scenario-ranges %cell-range-address-list; #REQUIRED
+ table:comment CDATA #IMPLIED
+>
+<!ELEMENT table:shapes %shapes;>
+<!ELEMENT table:table-column-group (table:table-header-columns | table:table-column | table:table-column-group)+>
+<!ATTLIST table:table-column-group
+ table:display %boolean; "true"
+>
+<!ELEMENT table:table-header-columns (table:table-column | table:table-column-group)+>
+<!ELEMENT table:table-columns (table:table-column | table:table-column-group)+>
+<!ELEMENT table:table-column EMPTY>
+<!ATTLIST table:table-column
+ table:number-columns-repeated %positiveInteger; "1"
+ table:style-name %styleName; #IMPLIED
+ table:visibility (visible | collapse | filter) "visible"
+ table:default-cell-style-name %styleName; #IMPLIED
+>
+<!ELEMENT table:table-row-group (table:table-header-rows | table:table-row | table:table-row-group)+>
+<!ATTLIST table:table-row-group
+ table:display %boolean; "true"
+>
+<!ELEMENT table:table-header-rows (table:table-row | table:table-row-group)+>
+<!ELEMENT table:table-rows (table:table-row | table:table-row-group)+>
+<!ENTITY % table-cells "(table:table-cell|table:covered-table-cell)+">
+<!ELEMENT table:table-row %table-cells;>
+<!ATTLIST table:table-row
+ table:number-rows-repeated %positiveInteger; "1"
+ table:style-name %styleName; #IMPLIED
+ table:visibility (visible | collapse | filter) "visible"
+ table:default-cell-style-name %styleName; #IMPLIED
+>
+
+<!ENTITY % text-wo-table "(text:h|text:p|text:ordered-list|text:unordered-list|%shapes;)*">
+<!ENTITY % cell-content "(table:cell-range-source?,office:annotation?,table:detective?,(table:sub-table|%text-wo-table;))">
+<!ELEMENT table:table-cell %cell-content;>
+<!ELEMENT table:covered-table-cell %cell-content;>
+<!ATTLIST table:table-cell
+ table:number-columns-repeated %positiveInteger; "1"
+ table:number-rows-spanned %positiveInteger; "1"
+ table:number-columns-spanned %positiveInteger; "1"
+ table:style-name %styleName; #IMPLIED
+ table:validation-name CDATA #IMPLIED
+ table:formula %string; #IMPLIED
+ table:number-matrix-rows-spanned %positiveInteger; #IMPLIED
+ table:number-matrix-columns-spanned %positiveInteger; #IMPLIED
+ table:value-type %valueType; "string"
+ table:value %float; #IMPLIED
+ table:date-value %date; #IMPLIED
+ table:time-value %timeInstance; #IMPLIED
+ table:boolean-value %boolean; #IMPLIED
+ table:string-value %string; #IMPLIED
+ table:currency %string; #IMPLIED
+>
+<!ATTLIST table:covered-table-cell
+ table:number-columns-repeated %positiveInteger; "1"
+ table:style-name %styleName; #IMPLIED
+ table:validation-name CDATA #IMPLIED
+ table:formula %string; #IMPLIED
+ table:number-matrix-rows-spanned %positiveInteger; #IMPLIED
+ table:number-matrix-columns-spanned %positiveInteger; #IMPLIED
+ table:value-type %valueType; "string"
+ table:value %float; #IMPLIED
+ table:date-value %date; #IMPLIED
+ table:time-value %timeInstance; #IMPLIED
+ table:boolean-value %boolean; #IMPLIED
+ table:string-value %string; #IMPLIED
+ table:currency %string; #IMPLIED
+>
+<!-- cell protection in writer: cell attribute; calc uses format -->
+<!ATTLIST table:table-cell table:protected %boolean; "false">
+
+<!ELEMENT table:cell-range-source EMPTY>
+<!ATTLIST table:cell-range-source
+ table:name %string; #REQUIRED
+ xlink:type (simple) #FIXED "simple"
+ xlink:actuate (onRequest) #FIXED "onRequest"
+ xlink:href %uriReference; #REQUIRED
+ table:filter-name %string; #REQUIRED
+ table:filter-options %string; #IMPLIED
+ table:last-column-spanned %positiveInteger; #REQUIRED
+ table:last-row-spanned %positiveInteger; #REQUIRED
+ table:refresh-delay %timeDuration; #IMPLIED
+>
+
+<!ELEMENT table:detective (table:highlighted-range*, table:operation*)>
+<!ELEMENT table:highlighted-range EMPTY>
+<!ATTLIST table:highlighted-range
+ table:cell-range-address %cell-range-address; #IMPLIED
+ table:direction (from-another-table | to-another-table | from-same-table | to-same-table) #IMPLIED
+ table:contains-error %boolean; #IMPLIED
+ table:marked-invalid %boolean; #IMPLIED
+>
+<!ELEMENT table:operation EMPTY>
+<!ATTLIST table:operation
+ table:name (trace-dependents | remove-dependents | trace-precedents | remove-precedents | trace-errors) #REQUIRED
+ table:index %nonNegativeInteger; #REQUIRED
+>
+
+<!ELEMENT table:content-validations (table:content-validation)+>
+<!ELEMENT table:content-validation (table:help-message?, (table:error-message | (table:error-macro, office:events?))?)>
+<!ATTLIST table:content-validation
+ table:name CDATA #REQUIRED
+ table:condition CDATA #IMPLIED
+ table:base-cell-address %cell-address; #IMPLIED
+ table:allow-empty-cell %boolean; #IMPLIED
+ table:show-list (no | unsorted | sorted-ascending) #IMPLIED
+>
+<!ELEMENT table:help-message (text:p*)>
+<!ATTLIST table:help-message
+ table:title CDATA #IMPLIED
+ table:display %boolean; #IMPLIED
+>
+<!ELEMENT table:error-message (text:p*)>
+<!ATTLIST table:error-message
+ table:title CDATA #IMPLIED
+ table:message-type (stop | warning | information) #IMPLIED
+ table:display %boolean; #IMPLIED
+>
+<!ELEMENT table:error-macro EMPTY>
+<!ATTLIST table:error-macro
+ table:name CDATA #IMPLIED
+ table:execute %boolean; #IMPLIED
+>
+
+<!ELEMENT table:sub-table ((%table-column-groups;) , (%table-row-groups;))>
+
+<!ELEMENT table:label-ranges (table:label-range)*>
+<!ELEMENT table:label-range EMPTY>
+<!ATTLIST table:label-range
+ table:label-cell-range-address %cell-range-address; #REQUIRED
+ table:data-cell-range-address %cell-range-address; #REQUIRED
+ table:orientation (column | row) #REQUIRED
+>
+
+<!ELEMENT table:named-expressions (table:named-range | table:named-expression)*>
+<!ELEMENT table:named-range EMPTY>
+<!ATTLIST table:named-range
+ table:name CDATA #REQUIRED
+ table:cell-range-address %cell-range-address; #REQUIRED
+ table:base-cell-address %cell-address; #IMPLIED
+ table:range-usable-as CDATA "none"
+>
+<!ELEMENT table:named-expression EMPTY>
+<!ATTLIST table:named-expression
+ table:name CDATA #REQUIRED
+ table:expression CDATA #REQUIRED
+ table:base-cell-address %cell-address; #IMPLIED
+>
+
+<!ELEMENT table:filter (table:filter-condition | table:filter-and | table:filter-or)>
+<!ATTLIST table:filter
+ table:target-range-address %cell-range-address; #IMPLIED
+ table:condition-source-range-address %cell-range-address; #IMPLIED
+ table:condition-source (self | cell-range) "self"
+ table:display-duplicates %boolean; "true"
+>
+<!ELEMENT table:filter-and (table:filter-or | table:filter-condition)+>
+<!ELEMENT table:filter-or (table:filter-and | table:filter-condition)+>
+<!ELEMENT table:filter-condition EMPTY>
+<!ATTLIST table:filter-condition
+ table:field-number %nonNegativeInteger; #REQUIRED
+ table:case-sensitive %boolean; "false"
+ table:data-type (text | number) "text"
+ table:value CDATA #REQUIRED
+ table:operator CDATA #REQUIRED
+>
+
+<!ELEMENT table:database-ranges (table:database-range)*>
+<!ELEMENT table:database-range ((table:database-source-sql | table:database-source-table | table:database-source-query)?, table:filter?, table:sort?, table:subtotal-rules?)>
+<!ATTLIST table:database-range
+ table:name CDATA #IMPLIED
+ table:is-selection %boolean; "false"
+ table:on-update-keep-styles %boolean; "false"
+ table:on-update-keep-size %boolean; "true"
+ table:has-persistant-data %boolean; "true"
+ table:orientation (row | column) "row"
+ table:contains-header %boolean; "true"
+ table:display-filter-buttons %boolean; "false"
+ table:target-range-address %cell-range-address; #REQUIRED
+ table:refresh-delay %timeDuration; #IMPLIED
+>
+<!ELEMENT table:database-source-sql EMPTY>
+<!ATTLIST table:database-source-sql
+ table:database-name CDATA #REQUIRED
+ table:sql-statement CDATA #REQUIRED
+ table:parse-sql-statements %boolean; "false"
+>
+<!ELEMENT table:database-source-table EMPTY>
+<!ATTLIST table:database-source-table
+ table:database-name CDATA #REQUIRED
+ table:table-name CDATA #REQUIRED
+>
+<!ELEMENT table:database-source-query EMPTY>
+<!ATTLIST table:database-source-query
+ table:database-name CDATA #REQUIRED
+ table:query-name CDATA #REQUIRED
+>
+
+<!ELEMENT table:sort (table:sort-by)+>
+<!ATTLIST table:sort
+ table:bind-styles-to-content %boolean; "true"
+ table:target-range-address %cell-range-address; #IMPLIED
+ table:case-sensitive %boolean; "false"
+ table:language CDATA #IMPLIED
+ table:country CDATA #IMPLIED
+ table:algorithm CDATA #IMPLIED
+>
+<!ELEMENT table:sort-by EMPTY>
+<!ATTLIST table:sort-by
+ table:field-number %nonNegativeInteger; #REQUIRED
+ table:data-type CDATA "automatic"
+ table:order (ascending | descending) "ascending"
+>
+
+<!ELEMENT table:subtotal-rules (table:sort-groups? | table:subtotal-rule*)?>
+<!ATTLIST table:subtotal-rules
+ table:bind-styles-to-content %boolean; "true"
+ table:case-sensitive %boolean; "false"
+ table:page-breaks-on-group-change %boolean; "false"
+>
+<!ELEMENT table:sort-groups EMPTY>
+<!ATTLIST table:sort-groups
+ table:data-type CDATA "automatic"
+ table:order (ascending | descending) "ascending"
+>
+<!ELEMENT table:subtotal-rule (table:subtotal-field)*>
+<!ATTLIST table:subtotal-rule
+ table:group-by-field-number %nonNegativeInteger; #REQUIRED
+>
+<!ELEMENT table:subtotal-field EMPTY>
+<!ATTLIST table:subtotal-field
+ table:field-number %nonNegativeInteger; #REQUIRED
+ table:function CDATA #REQUIRED
+>
+
+<!ELEMENT table:data-pilot-tables (table:data-pilot-table)*>
+<!ELEMENT table:data-pilot-table ((table:database-source-sql | table:database-source-table | table:database-source-query | table:source-service | table:source-cell-range)?, table:data-pilot-field+)>
+<!ATTLIST table:data-pilot-table
+ table:name CDATA #REQUIRED
+ table:application-data CDATA #IMPLIED
+ table:grand-total (none | row | column | both) "both"
+ table:ignore-empty-rows %boolean; "false"
+ table:identify-categories %boolean; "false"
+ table:target-range-address %cell-range-address; #REQUIRED
+ table:buttons %cell-range-address-list; #REQUIRED
+>
+<!ELEMENT table:source-service EMPTY>
+<!ATTLIST table:source-service
+ table:name CDATA #REQUIRED
+ table:source-name CDATA #REQUIRED
+ table:object-name CDATA #REQUIRED
+ table:username CDATA #IMPLIED
+ table:password CDATA #IMPLIED
+>
+<!ELEMENT table:source-cell-range (table:filter)?>
+<!ATTLIST table:source-cell-range
+ table:cell-range-address %cell-range-address; #REQUIRED
+>
+<!ELEMENT table:data-pilot-field (table:data-pilot-level)?>
+<!ATTLIST table:data-pilot-field
+ table:source-field-name CDATA #REQUIRED
+ table:is-data-layout-field %boolean; "false"
+ table:function CDATA #REQUIRED
+ table:orientation (row | column | data | page | hidden) #REQUIRED
+ table:used-hierarchy %positiveInteger; "1"
+>
+<!ELEMENT table:data-pilot-level (table:data-pilot-subtotals?, table:data-pilot-members?)>
+<!ATTLIST table:data-pilot-level
+ table:display-empty %boolean; #IMPLIED
+>
+<!ELEMENT table:data-pilot-subtotals (table:data-pilot-subtotal)*>
+<!ELEMENT table:data-pilot-subtotal EMPTY>
+<!ATTLIST table:data-pilot-subtotal
+ table:function CDATA #REQUIRED
+>
+<!ELEMENT table:data-pilot-members (table:data-pilot-member)*>
+<!ELEMENT table:data-pilot-member EMPTY>
+<!ATTLIST table:data-pilot-member
+ table:name CDATA #REQUIRED
+ table:display %boolean; #IMPLIED
+ table:display-details %boolean; #IMPLIED
+>
+
+<!ELEMENT table:consolidation EMPTY>
+<!ATTLIST table:consolidation
+ table:function CDATA #REQUIRED
+ table:source-cell-range-addresses %cell-range-address-list; #REQUIRED
+ table:target-cell-address %cell-address; #REQUIRED
+ table:use-label (none | column | row | both) "none"
+ table:link-to-source-data %boolean; "false"
+>
+
+<!ELEMENT table:dde-links (table:dde-link)+>
+<!ELEMENT table:dde-link (office:dde-source, table:table)>
diff --git a/test/user-template/user/dtd/officedocument/1_0/text.mod b/test/user-template/user/dtd/officedocument/1_0/text.mod
new file mode 100644
index 000000000000..909321312df8
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/text.mod
@@ -0,0 +1,1099 @@
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+
+<!ENTITY % fields "text:date |
+ text:time |
+ text:page-number |
+ text:page-continuation |
+ text:sender-firstname |
+ text:sender-lastname |
+ text:sender-initials |
+ text:sender-title |
+ text:sender-position |
+ text:sender-email |
+ text:sender-phone-private |
+ text:sender-fax |
+ text:sender-company |
+ text:sender-phone-work |
+ text:sender-street |
+ text:sender-city |
+ text:sender-postal-code |
+ text:sender-country |
+ text:sender-state-or-province |
+ text:author-name |
+ text:author-initials |
+ text:placeholder |
+ text:variable-set |
+ text:variable-get |
+ text:variable-input |
+ text:user-field-get |
+ text:user-field-input |
+ text:sequence |
+ text:expression |
+ text:text-input |
+ text:database-display |
+ text:database-next |
+ text:database-select |
+ text:database-row-number |
+ text:database-name |
+ text:initial-creator |
+ text:creation-date |
+ text:creation-time |
+ text:description |
+ text:user-defined |
+ text:print-time |
+ text:print-date |
+ text:printed-by |
+ text:title |
+ text:subject |
+ text:keywords |
+ text:editing-cycles |
+ text:editing-duration |
+ text:modification-time |
+ text:modification-date |
+ text:creator |
+ text:conditional-text |
+ text:hidden-text |
+ text:hidden-paragraph |
+ text:chapter |
+ text:file-name |
+ text:template-name |
+ text:page-variable-set |
+ text:page-variable-get |
+ text:execute-macro |
+ text:dde-connection |
+ text:reference-ref |
+ text:sequence-ref |
+ text:bookmark-ref |
+ text:footnote-ref |
+ text:endnote-ref |
+ text:sheet-name |
+ text:bibliography-mark |
+ text:page-count |
+ text:paragraph-count |
+ text:word-count |
+ text:character-count |
+ text:table-count |
+ text:image-count |
+ text:object-count |
+ office:annotation |
+ text:script |
+ text:measure" >
+
+<!ENTITY % inline-text-elements "
+ text:span|text:tab-stop|text:s|text:line-break|
+ text:footnote|text:endnote|text:a|
+ text:bookmark|text:bookmark-start|text:bookmark-end|
+ text:reference-mark|text:reference-mark-start|
+ text:reference-mark-end|%fields;|%shape;|
+ text:toc-mark-start | text:toc-mark-end |
+ text:toc-mark | text:user-index-mark-start |
+ text:user-index-mark-end | text:user-index-mark |
+ text:alphabetical-index-mark-start |
+ text:alphabetical-index-mark-end |
+ text:alphabetical-index-mark |
+ %change-marks; | draw:a | text:ruby">
+
+<!ENTITY % inline-text "( #PCDATA | %inline-text-elements; )*">
+
+<!ELEMENT text:p %inline-text;>
+<!ELEMENT text:h %inline-text;>
+
+<!ATTLIST text:p text:style-name %styleName; #IMPLIED>
+<!ATTLIST text:p text:cond-style-name %styleName; #IMPLIED>
+
+<!ATTLIST text:h text:style-name %styleName; #IMPLIED>
+<!ATTLIST text:h text:cond-style-name %styleName; #IMPLIED>
+<!ATTLIST text:h text:level %positiveInteger; "1">
+
+<!ELEMENT text:span %inline-text;>
+<!ATTLIST text:span text:style-name %styleName; #REQUIRED>
+
+<!ELEMENT text:a (#PCDATA | office:events | %inline-text-elements;)*>
+<!ATTLIST text:a xlink:href %uriReference; #REQUIRED>
+<!ATTLIST text:a xlink:type (simple) #FIXED "simple">
+<!ATTLIST text:a xlink:actuate (onRequest) "onRequest">
+<!ATTLIST text:a xlink:show (new|replace) "replace">
+<!ATTLIST text:a office:name %string; #IMPLIED>
+<!ATTLIST text:a office:target-frame-name %string; #IMPLIED>
+<!ATTLIST text:a text:style-name %styleName; #IMPLIED>
+<!ATTLIST text:a text:visited-style-name %styleName; #IMPLIED>
+
+
+<!ELEMENT text:s EMPTY>
+<!ATTLIST text:s text:c %positiveInteger; "1">
+
+<!ELEMENT text:tab-stop EMPTY>
+
+<!ELEMENT text:line-break EMPTY>
+
+
+<!ENTITY % list-items "((text:list-header,text:list-item*)|text:list-item+)">
+<!ELEMENT text:ordered-list %list-items;>
+<!ELEMENT text:unordered-list %list-items;>
+
+
+<!ATTLIST text:ordered-list text:style-name %styleName; #IMPLIED>
+<!ATTLIST text:unordered-list text:style-name %styleName; #IMPLIED>
+
+<!ATTLIST text:ordered-list text:continue-numbering %boolean; "false">
+
+<!ELEMENT text:list-header (text:p|text:h)+>
+<!ELEMENT text:list-item (text:p|text:h|text:ordered-list|text:unordered-list)+>
+
+<!ATTLIST text:list-item text:restart-numbering %boolean; "false">
+<!ATTLIST text:list-item text:start-value %positiveInteger; #IMPLIED>
+
+<!ELEMENT text:list-style (text:list-level-style-number|
+ text:list-level-style-bullet|
+ text:list-level-style-image)+>
+
+<!ATTLIST text:list-style style:name %styleName; #IMPLIED>
+
+<!ATTLIST text:list-style text:consecutive-numbering %boolean; "false">
+
+
+<!ELEMENT text:list-level-style-number (style:properties?)>
+
+<!ATTLIST text:list-level-style-number text:level %positiveInteger;
+ #REQUIRED>
+<!ATTLIST text:list-level-style-number text:style-name %styleName; #IMPLIED>
+
+<!ATTLIST text:list-level-style-number style:num-format %string; #REQUIRED>
+<!ATTLIST text:list-level-style-number style:num-prefix %string; #IMPLIED>
+<!ATTLIST text:list-level-style-number style:num-suffix %string; #IMPLIED>
+<!ATTLIST text:list-level-style-number style:num-letter-sync %boolean;
+ "false">
+<!ATTLIST text:list-level-style-number text:display-levels %positiveInteger;
+ "1">
+<!ATTLIST text:list-level-style-number text:start-value %positiveInteger;
+ "1">
+<!ELEMENT text:list-level-style-bullet (style:properties?)>
+
+<!ATTLIST text:list-level-style-bullet text:level %positiveInteger; #REQUIRED>
+<!ATTLIST text:list-level-style-bullet text:style-name %styleName; #IMPLIED>
+<!ATTLIST text:list-level-style-bullet text:bullet-char %character; #REQUIRED>
+<!ATTLIST text:list-level-style-bullet style:num-prefix %string; #IMPLIED>
+<!ATTLIST text:list-level-style-bullet style:num-suffix %string; #IMPLIED>
+
+<!ELEMENT text:list-level-style-image (style:properties?,office:binary-data?)>
+
+<!ATTLIST text:list-level-style-image text:level %positiveInteger; #REQUIRED>
+<!ATTLIST text:list-level-style-image xlink:type (simple) #IMPLIED>
+<!ATTLIST text:list-level-style-image xlink:href %uriReference; #IMPLIED>
+<!ATTLIST text:list-level-style-image xlink:actuate (onLoad) #IMPLIED>
+<!ATTLIST text:list-level-style-image xlink:show (embed) #IMPLIED>
+
+
+<!-- list properties -->
+<!ATTLIST style:properties text:space-before %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties text:min-label-width %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties text:min-label-distance %nonNegativeLength; #IMPLIED>
+<!ATTLIST style:properties text:enable-numbering %boolean; #IMPLIED>
+<!ATTLIST style:properties style:list-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:outline-style (text:outline-level-style)+>
+
+<!ELEMENT text:outline-level-style (style:properties?)>
+
+<!ATTLIST text:outline-level-style text:level %positiveInteger;
+ #REQUIRED>
+<!ATTLIST text:outline-level-style text:style-name %styleName; #IMPLIED>
+
+<!ATTLIST text:outline-level-style style:num-format %string; #REQUIRED>
+<!ATTLIST text:outline-level-style style:num-prefix %string; #IMPLIED>
+<!ATTLIST text:outline-level-style style:num-suffix %string; #IMPLIED>
+<!ATTLIST text:outline-level-style style:num-letter-sync %boolean;
+ "false">
+<!ATTLIST text:outline-level-style text:display-levels %positiveInteger;
+ "1">
+<!ATTLIST text:outline-level-style text:start-value %positiveInteger;
+ "1">
+
+<!ENTITY % field-declarations "text:variable-decls?,
+ text:user-field-decls?,
+ text:sequence-decls?">
+
+<!ENTITY % variableName "CDATA">
+
+<!ENTITY % formula "CDATA">
+
+<!ENTITY % valueAttr "text:value-type %valueType; #IMPLIED
+ text:currency CDATA #IMPLIED" >
+
+<!ENTITY % valueAndTypeAttr "%valueAttr;
+ text:value %float; #IMPLIED
+ text:date-value %date; #IMPLIED
+ text:time-value %timeInstance; #IMPLIED
+ text:boolean-value %boolean; #IMPLIED
+ text:string-value %string; #IMPLIED" >
+
+<!ENTITY % numFormat 'style:num-format CDATA #IMPLIED
+ style:num-letter-sync %boolean; "false"'>
+
+
+<!ELEMENT text:date (#PCDATA)>
+<!ATTLIST text:date text:date-value %timeInstance; #IMPLIED>
+<!ATTLIST text:date text:date-adjust %dateDuration; #IMPLIED>
+<!ATTLIST text:date text:fixed %boolean; "false">
+<!ATTLIST text:date style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:time (#PCDATA)>
+<!ATTLIST text:time text:time-value %timeInstance; #IMPLIED>
+<!ATTLIST text:time text:time-adjust %timeDuration; #IMPLIED>
+<!ATTLIST text:time text:fixed %boolean; "false">
+<!ATTLIST text:time style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:page-number (#PCDATA)>
+<!ATTLIST text:page-number text:page-adjust %positiveInteger; #IMPLIED>
+<!ATTLIST text:page-number text:select-page (previous|current|next) "current">
+<!ATTLIST text:page-number %numFormat;>
+
+<!ELEMENT text:page-continuation (#PCDATA)>
+<!ATTLIST text:page-continuation text:select-page (previous|next) #REQUIRED>
+<!ATTLIST text:page-continuation text:string-value %string; #IMPLIED>
+
+<!ELEMENT text:sender-firstname (#PCDATA)>
+<!ATTLIST text:sender-firstname text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-lastname (#PCDATA)>
+<!ATTLIST text:sender-lastname text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-initials (#PCDATA)>
+<!ATTLIST text:sender-initials text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-title (#PCDATA)>
+<!ATTLIST text:sender-title text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-position (#PCDATA)>
+<!ATTLIST text:sender-position text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-email (#PCDATA)>
+<!ATTLIST text:sender-email text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-phone-private (#PCDATA)>
+<!ATTLIST text:sender-phone-private text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-fax (#PCDATA)>
+<!ATTLIST text:sender-fax text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-company (#PCDATA)>
+<!ATTLIST text:sender-company text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-phone-work (#PCDATA)>
+<!ATTLIST text:sender-phone-work text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-street (#PCDATA)>
+<!ATTLIST text:sender-street text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-city (#PCDATA)>
+<!ATTLIST text:sender-city text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-postal-code (#PCDATA)>
+<!ATTLIST text:sender-postal-code text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-country (#PCDATA)>
+<!ATTLIST text:sender-country text:fixed %boolean; "true">
+
+<!ELEMENT text:sender-state-or-province (#PCDATA)>
+<!ATTLIST text:sender-state-or-province text:fixed %boolean; "true">
+
+<!ELEMENT text:author-name (#PCDATA)>
+<!ATTLIST text:author-name text:fixed %boolean; "true">
+
+<!ELEMENT text:author-initials (#PCDATA)>
+<!ATTLIST text:author-initials text:fixed %boolean; "true">
+
+<!ELEMENT text:placeholder (#PCDATA)>
+<!ATTLIST text:placeholder text:placeholder-type (text|table|text-box|image|object) #REQUIRED>
+<!ATTLIST text:placeholder text:description %string; #IMPLIED>
+
+<!ELEMENT text:variable-decls (text:variable-decl)*>
+
+<!ELEMENT text:variable-decl EMPTY>
+<!ATTLIST text:variable-decl text:name %variableName; #REQUIRED>
+<!ATTLIST text:variable-decl %valueAndTypeAttr;>
+
+<!ELEMENT text:variable-set (#PCDATA)>
+<!ATTLIST text:variable-set text:name %variableName; #REQUIRED>
+<!ATTLIST text:variable-set text:formula %formula; #IMPLIED>
+<!ATTLIST text:variable-set %valueAndTypeAttr;>
+<!ATTLIST text:variable-set text:display (value|none) "value">
+<!ATTLIST text:variable-set style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:variable-get (#PCDATA)>
+<!ATTLIST text:variable-get text:name %variableName; #REQUIRED>
+<!ATTLIST text:variable-get text:display (value|formula) "value">
+<!ATTLIST text:variable-get style:data-style-name %styleName; #IMPLIED>
+<!ATTLIST text:variable-get %valueAttr;>
+
+<!ELEMENT text:variable-input (#PCDATA)>
+<!ATTLIST text:variable-input text:name %variableName; #REQUIRED>
+<!ATTLIST text:variable-input text:description %string; #IMPLIED>
+<!ATTLIST text:variable-input %valueAndTypeAttr;>
+<!ATTLIST text:variable-input text:display (value|none) "value">
+<!ATTLIST text:variable-input style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:user-field-decls (text:user-field-decl)*>
+
+<!ELEMENT text:user-field-decl EMPTY>
+<!ATTLIST text:user-field-decl text:name %variableName; #REQUIRED>
+<!ATTLIST text:user-field-decl text:formula %formula; #IMPLIED>
+<!ATTLIST text:user-field-decl %valueAndTypeAttr;>
+
+<!ELEMENT text:user-field-get (#PCDATA)>
+<!ATTLIST text:user-field-get text:name %variableName; #REQUIRED>
+<!ATTLIST text:user-field-get text:display (value|formula|none) "value">
+<!ATTLIST text:user-field-get style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:user-field-input (#PCDATA)>
+<!ATTLIST text:user-field-input text:name %variableName; #REQUIRED>
+<!ATTLIST text:user-field-input text:description %string; #IMPLIED>
+<!ATTLIST text:user-field-input style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:sequence-decls (text:sequence-decl)*>
+
+<!ELEMENT text:sequence-decl EMPTY>
+<!ATTLIST text:sequence-decl text:name %variableName; #REQUIRED>
+<!ATTLIST text:sequence-decl text:display-outline-level %positiveInteger; "0">
+<!ATTLIST text:sequence-decl text:separation-character %character; ".">
+
+<!ELEMENT text:sequence (#PCDATA)>
+<!ATTLIST text:sequence text:name %variableName; #REQUIRED>
+<!ATTLIST text:sequence text:formula %formula; #IMPLIED>
+<!ATTLIST text:sequence %numFormat;>
+<!ATTLIST text:sequence text:ref-name ID #IMPLIED>
+
+<!ELEMENT text:expression (#PCDATA)>
+<!ATTLIST text:expression text:formula %formula; #IMPLIED>
+<!ATTLIST text:expression text:display (value|formula ) "value">
+<!ATTLIST text:expression %valueAndTypeAttr;>
+<!ATTLIST text:expression style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:text-input (#PCDATA)>
+<!ATTLIST text:text-input text:description %string; #IMPLIED>
+
+<!ENTITY % database-table "text:database-name CDATA #REQUIRED
+ text:table-name CDATA #REQUIRED
+ text:table-type (table|query|command) #IMPLIED">
+
+<!ELEMENT text:database-display (#PCDATA)>
+<!ATTLIST text:database-display %database-table;>
+<!ATTLIST text:database-display text:column-name %string; #REQUIRED>
+<!ATTLIST text:database-display style:data-style-name %styleName; #IMPLIED>
+<!ATTLIST text:database-display text:display (none|value) #IMPLIED>
+
+<!ELEMENT text:database-next (#PCDATA)>
+<!ATTLIST text:database-next %database-table;>
+<!ATTLIST text:database-next text:condition %formula; #IMPLIED>
+
+<!ELEMENT text:database-select (#PCDATA)>
+<!ATTLIST text:database-select %database-table;>
+<!ATTLIST text:database-select text:condition %formula; #IMPLIED>
+<!ATTLIST text:database-select text:row-number %integer; #REQUIRED>
+
+<!ELEMENT text:database-row-number (#PCDATA)>
+<!ATTLIST text:database-row-number %database-table;>
+<!ATTLIST text:database-row-number %numFormat;>
+<!ATTLIST text:database-row-number text:value %integer; #IMPLIED>
+<!ATTLIST text:database-row-number text:display (none|value) #IMPLIED>
+
+<!ELEMENT text:database-name (#PCDATA)>
+<!ATTLIST text:database-name %database-table;>
+<!ATTLIST text:database-name text:display (none|value) #IMPLIED>
+
+<!ELEMENT text:initial-creator (#PCDATA)>
+<!ATTLIST text:initial-creator text:fixed %boolean; "false">
+
+<!ELEMENT text:creation-date (#PCDATA)>
+<!ATTLIST text:creation-date text:fixed %boolean; "false">
+<!ATTLIST text:creation-date text:date-value %date; #IMPLIED>
+<!ATTLIST text:creation-date style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:creation-time (#PCDATA)>
+<!ATTLIST text:creation-time text:fixed %boolean; "false">
+<!ATTLIST text:creation-time text:time-value %timeInstance; #IMPLIED>
+<!ATTLIST text:creation-time style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:description (#PCDATA)>
+<!ATTLIST text:description text:fixed %boolean; "false">
+
+<!ELEMENT text:user-defined (#PCDATA)>
+<!ATTLIST text:user-defined text:fixed %boolean; "false">
+<!ATTLIST text:user-defined text:name %string; #REQUIRED>
+
+<!ELEMENT text:print-time (#PCDATA)>
+<!ATTLIST text:print-time text:fixed %boolean; "false">
+<!ATTLIST text:print-time text:time-value %timeInstance; #IMPLIED>
+<!ATTLIST text:print-time style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:print-date (#PCDATA)>
+<!ATTLIST text:print-date text:fixed %boolean; "false">
+<!ATTLIST text:print-date text:date-value %date; #IMPLIED>
+<!ATTLIST text:print-date style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:printed-by (#PCDATA)>
+<!ATTLIST text:printed-by text:fixed %boolean; "false">
+
+<!ELEMENT text:title (#PCDATA)>
+<!ATTLIST text:title text:fixed %boolean; "false">
+
+<!ELEMENT text:subject (#PCDATA)>
+<!ATTLIST text:subject text:fixed %boolean; "false">
+
+<!ELEMENT text:keywords (#PCDATA)>
+<!ATTLIST text:keywords text:fixed %boolean; "false">
+
+<!ELEMENT text:editing-cycles (#PCDATA)>
+<!ATTLIST text:editing-cycles text:fixed %boolean; "false">
+
+<!ELEMENT text:editing-duration (#PCDATA)>
+<!ATTLIST text:editing-duration text:fixed %boolean; "false">
+<!ATTLIST text:editing-duration text:duration %timeDuration; #IMPLIED>
+<!ATTLIST text:editing-duration style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:modification-time (#PCDATA)>
+<!ATTLIST text:modification-time text:fixed %boolean; "false">
+<!ATTLIST text:modification-time text:time-value %timeInstance; #IMPLIED>
+<!ATTLIST text:modification-time style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:modification-date (#PCDATA)>
+<!ATTLIST text:modification-date text:fixed %boolean; "false">
+<!ATTLIST text:modification-date text:date-value %date; #IMPLIED>
+<!ATTLIST text:modification-date style:data-style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:creator (#PCDATA)>
+<!ATTLIST text:creator text:fixed %boolean; "false">
+
+<!ELEMENT text:conditional-text (#PCDATA)>
+<!ATTLIST text:conditional-text text:condition %formula; #REQUIRED>
+<!ATTLIST text:conditional-text text:string-value-if-false %string; #REQUIRED>
+<!ATTLIST text:conditional-text text:string-value-if-true %string; #REQUIRED>
+<!ATTLIST text:conditional-text text:current-value %boolean; "false">
+
+<!ELEMENT text:hidden-text (#PCDATA)>
+<!ATTLIST text:hidden-text text:condition %formula; #REQUIRED>
+<!ATTLIST text:hidden-text text:string-value %string; #REQUIRED>
+<!ATTLIST text:hidden-text text:is-hidden %boolean; "false">
+
+<!ELEMENT text:hidden-paragraph EMPTY>
+<!ATTLIST text:hidden-paragraph text:condition %formula; #REQUIRED>
+<!ATTLIST text:hidden-paragraph text:is-hidden %boolean; "false">
+
+<!ELEMENT text:chapter (#PCDATA)>
+<!ATTLIST text:chapter text:display (name|number|number-and-name|
+ plain-number-and-name|plain-number)
+ "number-and-name">
+<!ATTLIST text:chapter text:outline-level %integer; "1">
+
+<!ELEMENT text:file-name (#PCDATA)>
+<!ATTLIST text:file-name text:display (full|path|name|name-and-extension)
+ "full">
+<!ATTLIST text:file-name text:fixed %boolean; "false">
+
+<!ELEMENT text:template-name (#PCDATA)>
+<!ATTLIST text:template-name text:display (full|path|name|name-and-extension|
+ area|title) "full">
+
+<!ELEMENT text:page-variable-set EMPTY>
+<!ATTLIST text:page-variable-set text:active %boolean; "true">
+<!ATTLIST text:page-variable-set text:page-adjust %integer; "0">
+
+<!ELEMENT text:page-variable-get (#PCDATA)>
+<!ATTLIST text:page-variable-get %numFormat;>
+
+<!ELEMENT text:execute-macro (#PCDATA|office:events)* >
+<!ATTLIST text:execute-macro text:description %string; #IMPLIED>
+
+
+<!ELEMENT text:dde-connection-decls (text:dde-connection-decl)*>
+
+<!ELEMENT text:dde-connection-decl EMPTY>
+<!ATTLIST text:dde-connection-decl text:name %string; #REQUIRED>
+<!ATTLIST text:dde-connection-decl office:dde-application %string; #REQUIRED>
+<!ATTLIST text:dde-connection-decl office:dde-topic %string; #REQUIRED>
+<!ATTLIST text:dde-connection-decl office:dde-item %string; #REQUIRED>
+<!ATTLIST text:dde-connection-decl office:automatic-update %boolean; "false">
+
+<!ELEMENT text:dde-connection (#PCDATA)>
+<!ATTLIST text:dde-connection text:connection-name %string; #REQUIRED>
+
+<!ELEMENT text:reference-ref (#PCDATA)>
+<!ATTLIST text:reference-ref text:ref-name %string; #REQUIRED>
+<!ATTLIST text:reference-ref text:reference-format (page|chapter|text|direction) #IMPLIED>
+
+<!ELEMENT text:sequence-ref (#PCDATA)>
+<!ATTLIST text:sequence-ref text:ref-name %string; #REQUIRED>
+<!ATTLIST text:sequence-ref text:reference-format (page|chapter|text|direction|category-and-value|caption|value) #IMPLIED>
+
+<!ELEMENT text:bookmark-ref (#PCDATA)>
+<!ATTLIST text:bookmark-ref text:ref-name %string; #REQUIRED>
+<!ATTLIST text:bookmark-ref text:reference-format (page|chapter|text|direction) #IMPLIED>
+
+<!ELEMENT text:footnote-ref (#PCDATA)>
+<!ATTLIST text:footnote-ref text:ref-name %string; #REQUIRED>
+<!ATTLIST text:footnote-ref text:reference-format (page|chapter|text|direction) #IMPLIED>
+
+<!ELEMENT text:endnote-ref (#PCDATA)>
+<!ATTLIST text:endnote-ref text:ref-name %string; #REQUIRED>
+<!ATTLIST text:endnote-ref text:reference-format (page|chapter|text|direction) #IMPLIED>
+
+<!ELEMENT text:sheet-name (#PCDATA)>
+
+<!ELEMENT text:page-count (#PCDATA)>
+<!ATTLIST text:page-count style:num-format %string; #IMPLIED>
+<!ATTLIST text:page-count style:num-letter-sync %boolean; "false">
+
+<!ELEMENT text:paragraph-count (#PCDATA)>
+<!ATTLIST text:paragraph-count style:num-format %string; #IMPLIED>
+<!ATTLIST text:paragraph-count style:num-letter-sync %boolean; "false">
+
+<!ELEMENT text:word-count (#PCDATA)>
+<!ATTLIST text:word-count style:num-format %string; #IMPLIED>
+<!ATTLIST text:word-count style:num-letter-sync %boolean; "false">
+
+<!ELEMENT text:character-count (#PCDATA)>
+<!ATTLIST text:character-count style:num-format %string; #IMPLIED>
+<!ATTLIST text:character-count style:num-letter-sync %boolean; "false">
+
+<!ELEMENT text:table-count (#PCDATA)>
+<!ATTLIST text:table-count style:num-format %string; #IMPLIED>
+<!ATTLIST text:table-count style:num-letter-sync %boolean; "false">
+
+<!ELEMENT text:image-count (#PCDATA)>
+<!ATTLIST text:image-count style:num-format %string; #IMPLIED>
+<!ATTLIST text:image-count style:num-letter-sync %boolean; "false">
+
+<!ELEMENT text:object-count (#PCDATA)>
+<!ATTLIST text:object-count style:num-format %string; #IMPLIED>
+<!ATTLIST text:object-count style:num-letter-sync %boolean; "false">
+
+<!ELEMENT text:bibliography-mark (#PCDATA)>
+<!ATTLIST text:bibliography-mark text:bibliography-type
+ ( article | book | booklet | conference | custom1 | custom2 | custom3 |
+ custom4 | custom5 | email | inbook | incollection | inproceedings |
+ journal | manual | mastersthesis | misc | phdthesis | proceedings |
+ techreport | unpublished | www ) #REQUIRED >
+<!ATTLIST text:bibliography-mark text:identifier CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:address CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:annote CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:author CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:booktitle CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:chapter CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:edition CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:editor CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:howpublished CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:institution CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:journal CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:month CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:note CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:number CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:organizations CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:pages CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:publisher CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:school CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:series CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:title CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:report-type CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:volume CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:year CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:url CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:custom1 CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:custom2 CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:custom3 CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:custom4 CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:custom5 CDATA #IMPLIED>
+<!ATTLIST text:bibliography-mark text:isbn CDATA #IMPLIED>
+
+
+<!ELEMENT text:bookmark EMPTY>
+<!ATTLIST text:bookmark text:name CDATA #REQUIRED>
+
+<!ELEMENT text:bookmark-start EMPTY>
+<!ATTLIST text:bookmark-start text:name CDATA #REQUIRED>
+
+<!ELEMENT text:bookmark-end EMPTY>
+<!ATTLIST text:bookmark-end text:name CDATA #REQUIRED>
+
+<!ELEMENT text:reference-mark EMPTY>
+<!ATTLIST text:reference-mark text:name CDATA #REQUIRED>
+
+<!ELEMENT text:reference-mark-start EMPTY>
+<!ATTLIST text:reference-mark-start text:name CDATA #REQUIRED>
+
+<!ELEMENT text:reference-mark-end EMPTY>
+<!ATTLIST text:reference-mark-end text:name CDATA #REQUIRED>
+
+<!ELEMENT text:footnotes-configuration (text:footnote-continuation-notice-forward?,text:footnote-continuation-notice-backward?)>
+<!ATTLIST text:footnotes-configuration style:num-prefix %string; #IMPLIED>
+<!ATTLIST text:footnotes-configuration style:num-suffix %string; #IMPLIED>
+<!ATTLIST text:footnotes-configuration style:num-format %string; #IMPLIED>
+<!ATTLIST text:footnotes-configuration style:num-letter-sync %string; #IMPLIED>
+<!ATTLIST text:footnotes-configuration text:citation-body-style-name %styleName; #IMPLIED>
+<!ATTLIST text:footnotes-configuration text:citation-style-name %styleName; #IMPLIED>
+<!ATTLIST text:footnotes-configuration text:default-style-name %styleName; #IMPLIED>
+<!ATTLIST text:footnotes-configuration text:master-page-name %styleName; #IMPLIED>
+<!ATTLIST text:footnotes-configuration text:start-value %integer; #IMPLIED>
+<!ATTLIST text:footnotes-configuration text:footnotes-position (document|page) "page">
+<!ATTLIST text:footnotes-configuration text:start-numbering-at (document|chapter|page) "document">
+
+<!ELEMENT text:footnote-continuation-notice-forward (#PCDATA)>
+<!ELEMENT text:footnote-continuation-notice-backward (#PCDATA)>
+
+<!ELEMENT text:endnotes-configuration EMPTY>
+<!ATTLIST text:endnotes-configuration style:num-prefix %string; #IMPLIED>
+<!ATTLIST text:endnotes-configuration style:num-suffix %string; #IMPLIED>
+<!ATTLIST text:endnotes-configuration style:num-format %string; #IMPLIED>
+<!ATTLIST text:endnotes-configuration style:num-letter-sync %string; #IMPLIED>
+<!ATTLIST text:endnotes-configuration text:start-value %integer; #IMPLIED>
+<!ATTLIST text:endnotes-configuration text:citation-style-name %styleName; #IMPLIED>
+<!ATTLIST text:endnotes-configuration text:citation-body-style-name %styleName; #IMPLIED>
+<!ATTLIST text:endnotes-configuration text:default-style-name %styleName; #IMPLIED>
+<!ATTLIST text:endnotes-configuration text:master-page-name %styleName; #IMPLIED>
+
+<!-- Validity constraint: text:footnote and text:endnote elements may not
+ contain other text:footnote or text:endnote elements, even though the DTD
+ allows this (via the %text; in the foot-/endnote-body).
+ Unfortunatetly, this constraint cannot be easily specified in the DTD.
+-->
+<!ELEMENT text:footnote (text:footnote-citation, text:footnote-body)>
+<!ATTLIST text:footnote text:id ID #IMPLIED>
+
+<!ELEMENT text:footnote-citation (#PCDATA)>
+<!ATTLIST text:footnote-citation text:label %string; #IMPLIED>
+
+<!ELEMENT text:footnote-body (text:h|text:p|
+ text:ordered-list|text:unordered-list)*>
+
+<!ELEMENT text:endnote (text:endnote-citation, text:endnote-body)>
+<!ATTLIST text:endnote text:id ID #IMPLIED>
+
+<!ELEMENT text:endnote-citation (#PCDATA)>
+<!ATTLIST text:endnote-citation text:label %string; #IMPLIED>
+
+<!ELEMENT text:endnote-body (text:h|text:p|
+ text:ordered-list|text:unordered-list)*>
+
+<!ENTITY % sectionAttr "text:name CDATA #REQUIRED
+ text:style-name %styleName; #IMPLIED
+ text:protected %boolean; 'false' ">
+
+
+<!ELEMENT text:section ((text:section-source|office:dde-source)?,
+ %sectionText;) >
+
+<!ATTLIST text:section %sectionAttr;>
+<!ATTLIST text:section text:display (true|none|condition) "true">
+<!ATTLIST text:section text:condition %formula; #IMPLIED>
+<!ATTLIST text:section text:protection-key CDATA #IMPLIED>
+<!ATTLIST text:section text:is-hidden %boolean; #IMPLIED>
+
+<!ELEMENT text:section-source EMPTY>
+<!ATTLIST text:section-source xlink:href %string; #IMPLIED>
+<!ATTLIST text:section-source xlink:type (simple) #FIXED "simple">
+<!ATTLIST text:section-source xlink:show (embed) #FIXED "embed">
+<!ATTLIST text:section-source text:section-name %string; #IMPLIED>
+<!ATTLIST text:section-source text:filter-name %string; #IMPLIED>
+
+<!ELEMENT text:table-of-content (text:table-of-content-source,
+ text:index-body) >
+<!ATTLIST text:table-of-content %sectionAttr;>
+
+<!ELEMENT text:table-of-content-source (text:index-title-template? ,
+ text:table-of-content-entry-template*,
+ text:index-source-styles* ) >
+<!ATTLIST text:table-of-content-source text:outline-level %integer; #IMPLIED>
+<!ATTLIST text:table-of-content-source text:use-outline-level %boolean; "true">
+<!ATTLIST text:table-of-content-source text:use-index-marks %boolean; "true">
+<!ATTLIST text:table-of-content-source text:use-index-source-styles
+ %boolean; "false">
+<!ATTLIST text:table-of-content-source text:index-scope (document|chapter)
+ "document">
+<!ATTLIST text:table-of-content-source text:relative-tab-stop-position
+ %boolean; "true">
+<!ATTLIST text:table-of-content-source fo:language %string; #IMPLIED>
+<!ATTLIST text:table-of-content-source fo:country %string; #IMPLIED>
+<!ATTLIST text:table-of-content-source text:sort-algorithm %string; #IMPLIED>
+
+<!ELEMENT text:table-of-content-entry-template (text:index-entry-chapter-number |
+ text:index-entry-page-number |
+ text:index-entry-text |
+ text:index-entry-span |
+ text:index-entry-tab-stop |
+ text:index-entry-link-start |
+ text:index-entry-link-end)* >
+<!ATTLIST text:table-of-content-entry-template text:outline-level
+ %integer; #REQUIRED>
+<!ATTLIST text:table-of-content-entry-template text:style-name
+ %styleName; #REQUIRED>
+
+<!ELEMENT text:illustration-index
+ (text:illustration-index-source, text:index-body)>
+<!ATTLIST text:illustration-index %sectionAttr;>
+
+<!ELEMENT text:illustration-index-source (text:index-title-template?,
+ text:illustration-index-entry-template?) >
+<!ATTLIST text:illustration-index-source text:index-scope
+ (document|chapter) "document">
+<!ATTLIST text:illustration-index-source text:relative-tab-stop-position
+ %boolean; "true">
+<!ATTLIST text:illustration-index-source text:use-caption %boolean; "true">
+<!ATTLIST text:illustration-index-source text:caption-sequence-name
+ %string; #IMPLIED>
+<!ATTLIST text:illustration-index-source text:caption-sequence-format
+ (text|category-and-value|caption) "text">
+<!ATTLIST text:illustration-index-source fo:language %string; #IMPLIED>
+<!ATTLIST text:illustration-index-source fo:country %string; #IMPLIED>
+<!ATTLIST text:illustration-index-source text:sort-algorithm %string; #IMPLIED>
+
+<!ELEMENT text:illustration-index-entry-template
+ ( text:index-entry-page-number |
+ text:index-entry-text |
+ text:index-entry-span |
+ text:index-entry-tab-stop )* >
+<!ATTLIST text:illustration-index-entry-template text:style-name
+ %styleName; #REQUIRED>
+
+<!ELEMENT text:table-index (text:table-index-source, text:index-body)>
+<!ATTLIST text:table-index %sectionAttr;>
+
+<!ELEMENT text:table-index-source (text:index-title-template?,
+ text:table-index-entry-template?) >
+<!ATTLIST text:table-index-source text:index-scope
+ (document|chapter) "document">
+<!ATTLIST text:table-index-source text:relative-tab-stop-position
+ %boolean; "true">
+<!ATTLIST text:table-index-source text:use-caption %boolean; "true">
+<!ATTLIST text:table-index-source text:caption-sequence-name
+ %string; #IMPLIED>
+<!ATTLIST text:table-index-source text:caption-sequence-format
+ (text|category-and-value|caption) "text">
+<!ATTLIST text:table-index-source fo:language %string; #IMPLIED>
+<!ATTLIST text:table-index-source fo:country %string; #IMPLIED>
+<!ATTLIST text:table-index-source text:sort-algorithm %string; #IMPLIED>
+
+<!ELEMENT text:table-index-entry-template ( text:index-entry-page-number |
+ text:index-entry-text |
+ text:index-entry-span |
+ text:index-entry-tab-stop )* >
+<!ATTLIST text:table-index-entry-template text:style-name
+ %styleName; #REQUIRED>
+
+<!ELEMENT text:object-index ( text:object-index-source, text:index-body ) >
+<!ATTLIST text:object-index %sectionAttr;>
+
+<!ELEMENT text:object-index-source ( text:index-title-template?,
+ text:object-index-entry-template? ) >
+<!ATTLIST text:object-index-source text:index-scope
+ (document|chapter) "document">
+<!ATTLIST text:object-index-source text:relative-tab-stop-position
+ %boolean; "true">
+<!ATTLIST text:object-index-source text:use-spreadsheet-objects
+ %boolean; "false">
+<!ATTLIST text:object-index-source text:use-draw-objects %boolean; "false">
+<!ATTLIST text:object-index-source text:use-chart-objects %boolean; "false">
+<!ATTLIST text:object-index-source text:use-other-objects %boolean; "false">
+<!ATTLIST text:object-index-source text:use-math-objects %boolean; "false">
+<!ATTLIST text:object-index-source fo:language %string; #IMPLIED>
+<!ATTLIST text:object-index-source fo:country %string; #IMPLIED>
+<!ATTLIST text:object-index-source text:sort-algorithm %string; #IMPLIED>
+
+<!ELEMENT text:object-index-entry-template ( text:index-entry-page-number |
+ text:index-entry-text |
+ text:index-entry-span |
+ text:index-entry-tab-stop )* >
+<!ATTLIST text:object-index-entry-template text:style-name
+ %styleName; #REQUIRED >
+
+<!ELEMENT text:user-index (text:user-index-source, text:index-body) >
+<!ATTLIST text:user-index %sectionAttr;>
+
+<!ELEMENT text:user-index-source ( text:index-title-template?,
+ text:user-index-entry-template*,
+ text:index-source-styles* ) >
+<!ATTLIST text:user-index-source text:index-scope
+ (document|chapter) "document">
+<!ATTLIST text:user-index-source text:relative-tab-stop-position
+ %boolean; "true">
+<!ATTLIST text:user-index-source text:use-index-marks %boolean; "false">
+<!ATTLIST text:user-index-source text:use-graphics %boolean; "false">
+<!ATTLIST text:user-index-source text:use-tables %boolean; "false">
+<!ATTLIST text:user-index-source text:use-floating-frames %boolean; "false">
+<!ATTLIST text:user-index-source text:use-objects %boolean; "false">
+<!ATTLIST text:user-index-source text:use-index-source-styles
+ %boolean; "false">
+<!ATTLIST text:user-index-source text:copy-outline-levels %boolean; "false">
+<!ATTLIST text:user-index-source fo:language %string; #IMPLIED>
+<!ATTLIST text:user-index-source fo:country %string; #IMPLIED>
+<!ATTLIST text:user-index-source text:sort-algorithm %string; #IMPLIED>
+<!ATTLIST text:user-index-source text:index-name %string; #IMPLIED>
+
+<!ELEMENT text:user-index-entry-template ( text:index-entry-chapter |
+ text:index-entry-page-number |
+ text:index-entry-text |
+ text:index-entry-span |
+ text:index-entry-tab-stop )* >
+<!ATTLIST text:user-index-entry-template text:outline-level %integer; #REQUIRED>
+<!ATTLIST text:user-index-entry-template text:style-name %styleName; #REQUIRED>
+
+<!ELEMENT text:alphabetical-index (text:alphabetical-index-source,
+ text:index-body)>
+<!ATTLIST text:alphabetical-index %sectionAttr;>
+
+<!ELEMENT text:alphabetical-index-source ( text:index-title-template?,
+ text:alphabetical-index-entry-template* ) >
+<!ATTLIST text:alphabetical-index-source text:index-scope
+ (document|chapter) "document">
+<!ATTLIST text:alphabetical-index-source text:relative-tab-stop-position
+ %boolean; "true">
+<!ATTLIST text:alphabetical-index-source text:ignore-case %boolean; "false">
+<!ATTLIST text:alphabetical-index-source text:main-entry-style-name
+ %styleName; #IMPLIED>
+<!ATTLIST text:alphabetical-index-source text:alphabetical-separators
+ %boolean; "false">
+<!ATTLIST text:alphabetical-index-source text:combine-entries
+ %boolean; "true">
+<!ATTLIST text:alphabetical-index-source text:combine-entries-with-dash
+ %boolean; "false">
+<!ATTLIST text:alphabetical-index-source text:combine-entries-with-pp
+ %boolean; "true">
+<!ATTLIST text:alphabetical-index-source text:use-keys-as-entries
+ %boolean; "false">
+<!ATTLIST text:alphabetical-index-source text:capitalize-entries
+ %boolean; "false">
+<!ATTLIST text:alphabetical-index-source text:comma-separated
+ %boolean; "false">
+<!ATTLIST text:alphabetical-index-source fo:language %string; #IMPLIED>
+<!ATTLIST text:alphabetical-index-source fo:country %string; #IMPLIED>
+<!ATTLIST text:alphabetical-index-source text:sort-algorithm %string; #IMPLIED>
+
+<!ELEMENT text:alphabetical-index-entry-template ( text:index-entry-chapter |
+ text:index-entry-page-number |
+ text:index-entry-text |
+ text:index-entry-span |
+ text:index-entry-tab-stop )* >
+<!ATTLIST text:alphabetical-index-entry-template text:outline-level
+ (1|2|3|separator) #REQUIRED>
+<!ATTLIST text:alphabetical-index-entry-template text:style-name
+ %styleName; #REQUIRED>
+
+<!ELEMENT text:alphabetical-index-auto-mark-file EMPTY>
+<!ATTLIST text:alphabetical-index-auto-mark-file xlink:href CDATA #IMPLIED>
+<!ATTLIST text:alphabetical-index-auto-mark-file xlink:type (simple) #FIXED "simple">
+
+<!ELEMENT text:bibliography (text:bibliography-source, text:index-body) >
+<!ATTLIST text:bibliography %sectionAttr;>
+
+<!ELEMENT text:bibliography-source ( text:index-title-template?,
+ text:bibliography-entry-template* ) >
+
+<!ELEMENT text:bibliography-entry-template ( text:index-entry-span |
+ text:index-entry-tab-stop |
+ text:index-entry-bibliography )* >
+<!ATTLIST text:bibliography-entry-template text:bibliography-type
+ ( article | book | booklet | conference | custom1 | custom2 |
+ custom3 | custom4 | custom5 | email | inbook | incollection |
+ inproceedings | journal | manual | mastersthesis | misc |
+ phdthesis | proceedings | techreport | unpublished | www )
+ #REQUIRED >
+<!ATTLIST text:bibliography-entry-template text:style-name
+ %styleName; #REQUIRED>
+
+<!ELEMENT text:index-body %sectionText; >
+
+<!--
+Validity constraint: text:index-title elements may appear only in
+indices, and there may be only one text:index-title element.
+-->
+<!ELEMENT text:index-title %sectionText; >
+<!ATTLIST text:index-title text:style-name %styleName; #IMPLIED>
+<!ATTLIST text:index-title text:name %string; #IMPLIED>
+
+<!ELEMENT text:index-title-template (#PCDATA)>
+<!ATTLIST text:index-title-template text:style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:index-entry-chapter-number EMPTY>
+<!ATTLIST text:index-entry-chapter-number text:style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:index-entry-chapter EMPTY>
+<!ATTLIST text:index-entry-chapter text:style-name %styleName; #IMPLIED>
+<!ATTLIST text:index-entry-chapter text:display (name|number|number-and-name)
+ "number-and-name" >
+
+<!ELEMENT text:index-entry-text EMPTY>
+<!ATTLIST text:index-entry-text text:style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:index-entry-page-number EMPTY>
+<!ATTLIST text:index-entry-page-number text:style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:index-entry-span (#PCDATA)>
+<!ATTLIST text:index-entry-span text:style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:index-entry-bibliography EMPTY>
+<!ATTLIST text:index-entry-bibliography text:style-name %styleName; #IMPLIED>
+<!ATTLIST text:index-entry-bibliography text:bibliography-data-field
+ ( address | annote | author | bibliography-type |
+ booktitle | chapter | custom1 | custom2 |
+ custom3 | custom4 | custom5 | edition | editor |
+ howpublished | identifier | institution | isbn |
+ journal | month | note | number | organizations |
+ pages | publisher | report-type | school |
+ series | title | url | volume | year ) #REQUIRED>
+
+
+<!ELEMENT text:index-entry-tab-stop EMPTY>
+<!ATTLIST text:index-entry-tab-stop text:style-name %styleName; #IMPLIED>
+<!ATTLIST text:index-entry-tab-stop style:leader-char %character; " ">
+<!ATTLIST text:index-entry-tab-stop style:type (left|right) "left">
+<!ATTLIST text:index-entry-tab-stop style:position %length; #IMPLIED>
+<!ATTLIST text:index-entry-tab-stop style:with-tab %boolean; "true">
+
+<!ELEMENT text:index-entry-link-start EMPTY>
+<!ATTLIST text:index-entry-link-start text:style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:index-entry-link-end EMPTY>
+<!ATTLIST text:index-entry-link-end text:style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:index-source-styles (text:index-source-style)*>
+<!ATTLIST text:index-source-styles text:outline-level %integer; #REQUIRED>
+
+<!ELEMENT text:index-source-style EMPTY>
+<!ATTLIST text:index-source-style text:style-name %styleName; #REQUIRED>
+
+<!ELEMENT text:toc-mark-start EMPTY>
+<!ATTLIST text:toc-mark-start text:id %string; #REQUIRED>
+<!ATTLIST text:toc-mark-start text:outline-level %integer; #IMPLIED>
+
+<!ELEMENT text:toc-mark-end EMPTY>
+<!ATTLIST text:toc-mark-end text:id %string; #REQUIRED>
+
+<!ELEMENT text:toc-mark EMPTY>
+<!ATTLIST text:toc-mark text:string-value %string; #REQUIRED>
+<!ATTLIST text:toc-mark text:outline-level %integer; #IMPLIED>
+
+<!ELEMENT text:user-index-mark-start EMPTY>
+<!ATTLIST text:user-index-mark-start text:id %string; #REQUIRED>
+<!ATTLIST text:user-index-mark-start text:outline-level %integer; #IMPLIED>
+<!ATTLIST text:user-index-mark-start text:index-name %string; #IMPLIED>
+
+<!ELEMENT text:user-index-mark-end EMPTY>
+<!ATTLIST text:user-index-mark-end text:id %string; #REQUIRED>
+
+<!ELEMENT text:user-index-mark EMPTY>
+<!ATTLIST text:user-index-mark text:string-value %string; #REQUIRED>
+<!ATTLIST text:user-index-mark text:outline-level %integer; #IMPLIED>
+<!ATTLIST text:user-index-mark text:index-name %string; #IMPLIED>
+
+<!ELEMENT text:alphabetical-index-mark-start EMPTY>
+<!ATTLIST text:alphabetical-index-mark-start text:id %string; #REQUIRED>
+<!ATTLIST text:alphabetical-index-mark-start text:key1 %string; #IMPLIED>
+<!ATTLIST text:alphabetical-index-mark-start text:key2 %string; #IMPLIED>
+<!ATTLIST text:alphabetical-index-mark-start text:main-etry %boolean; "false">
+
+<!ELEMENT text:alphabetical-index-mark-end EMPTY>
+<!ATTLIST text:alphabetical-index-mark-end text:id %string; #REQUIRED>
+
+<!ELEMENT text:alphabetical-index-mark EMPTY>
+<!ATTLIST text:alphabetical-index-mark text:string-value %string; #REQUIRED>
+<!ATTLIST text:alphabetical-index-mark text:key1 %string; #IMPLIED>
+<!ATTLIST text:alphabetical-index-mark text:key2 %string; #IMPLIED>
+<!ATTLIST text:alphabetical-index-mark text:main-etry %boolean; "false">
+
+<!ELEMENT text:bibliography-configuration (text:sort-key)*>
+<!ATTLIST text:bibliography-configuration text:prefix %string; #IMPLIED>
+<!ATTLIST text:bibliography-configuration text:suffix %string; #IMPLIED>
+<!ATTLIST text:bibliography-configuration text:sort-by-position %boolean; "true">
+<!ATTLIST text:bibliography-configuration text:numbered-entries %boolean; "false">
+<!ATTLIST text:bibliography-configuration fo:language %string; #IMPLIED>
+<!ATTLIST text:bibliography-configuration fo:country %string; #IMPLIED>
+<!ATTLIST text:bibliography-configuration text:sort-algorithm %string; #IMPLIED>
+
+<!ELEMENT text:sort-key EMPTY>
+<!ATTLIST text:sort-key text:key ( address | annote | author |
+ bibliography-type | booktitle | chapter | custom1 | custom2 |
+ custom3 | custom4 | custom5 | edition | editor | howpublished |
+ identifier | institution | isbn | journal | month | note | number |
+ organizations | pages | publisher | report-type | school | series |
+ title | url | volume | year ) #REQUIRED>
+<!ATTLIST text:sort-key text:sort-ascending %boolean; "true">
+
+<!ELEMENT text:linenumbering-configuration (text:linenumbering-separator?)>
+<!ATTLIST text:linenumbering-configuration text:style-name %styleName; #IMPLIED>
+<!ATTLIST text:linenumbering-configuration text:number-lines %boolean; "true">
+<!ATTLIST text:linenumbering-configuration text:count-empty-lines %boolean; "true">
+<!ATTLIST text:linenumbering-configuration text:count-in-floating-frames %boolean; "false">
+<!ATTLIST text:linenumbering-configuration text:restart-numbering %boolean; "false">
+<!ATTLIST text:linenumbering-configuration text:offset %nonNegativeLength; #IMPLIED>
+<!ATTLIST text:linenumbering-configuration style:num-format (1|a|A|i|I) "1">
+<!ATTLIST text:linenumbering-configuration style:num-letter-sync %boolean; "false">
+<!ATTLIST text:linenumbering-configuration text:number-position (left|rigth|inner|outer) "left">
+<!ATTLIST text:linenumbering-configuration text:increment %nonNegativeInteger; #IMPLIED>
+
+<!ELEMENT text:linenumbering-separator (#PCDATA)>
+<!ATTLIST text:linenumbering-separator text:increment %nonNegativeInteger; #IMPLIED>
+
+<!ELEMENT text:script (#PCDATA)>
+<!ATTLIST text:script script:language CDATA #REQUIRED>
+<!ATTLIST text:script xlink:href CDATA #IMPLIED>
+<!ATTLIST text:script xlink:type (simple) #FIXED "simple">
+
+<!ELEMENT text:measure (#PCDATA)>
+<!ATTLIST text:measure text:kind (value|unit|gap) #REQUIRED>
+
+<!ELEMENT text:ruby (text:ruby-base, text:ruby-text)>
+<!ATTLIST text:ruby text:style-name %styleName; #IMPLIED>
+
+<!ELEMENT text:ruby-base %inline-text;>
+
+<!ELEMENT text:ruby-text (#PCDATA)>
+<!ATTLIST text:ruby-text text:style-name %styleName; #IMPLIED>
+
+<!-- elements for change tracking -->
+
+<!ELEMENT text:change EMPTY>
+<!ATTLIST text:change text:change-id CDATA #REQUIRED>
+
+<!ELEMENT text:change-start EMPTY>
+<!ATTLIST text:change-start text:change-id CDATA #REQUIRED>
+
+<!ELEMENT text:change-end EMPTY>
+<!ATTLIST text:change-end text:change-id CDATA #REQUIRED>
+
+<!ELEMENT text:tracked-changes (text:changed-region)*>
+<!ATTLIST text:tracked-changes text:track-changes %boolean; "true">
+<!ATTLIST text:tracked-changes text:protection-key CDATA #IMPLIED>
+
+<!ELEMENT text:changed-region (text:insertion |
+ (text:deletion, text:insertion?) |
+ text:format-change) >
+<!ATTLIST text:changed-region text:id ID #REQUIRED>
+<!ATTLIST text:changed-region text:merge-last-paragraph %boolean; "true">
+
+<!ELEMENT text:insertion (office:change-info, %sectionText;)>
+<!ELEMENT text:deletion (office:change-info, %sectionText;)>
+<!ELEMENT text:format-change (office:change-info)>
+
diff --git a/test/user-template/user/dtd/officedocument/1_0/toolbar.dtd b/test/user-template/user/dtd/officedocument/1_0/toolbar.dtd
new file mode 100644
index 000000000000..258f9ddb3066
--- /dev/null
+++ b/test/user-template/user/dtd/officedocument/1_0/toolbar.dtd
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!ENTITY % boolean "(true|false)">
+<!ENTITY % numeric "CDATA">
+<!ENTITY % alignment "(top|bottom|left|right)">
+<!ENTITY % style "(symbol|text|symboltext)">
+<!ELEMENT toolbar:toolbar (toolbar:toolbaritem | toolbar:toolbarspace | toolbar:toolbarbreak | toolbar:toolbarseparator)*>
+<!ATTLIST toolbar:toolbar
+ xmlns:toolbar CDATA #FIXED "http://openoffice.org/2001/toolbar"
+ xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"
+>
+<!ELEMENT toolbar:toolbaritem EMPTY>
+<!ATTLIST toolbar:toolbaritem
+ xlink:href CDATA #REQUIRED
+ toolbar:visible %boolean; "true"
+ toolbar:userdefined %boolean; "false"
+ toolbar:text CDATA #IMPLIED
+ toolbar:width %numeric; "0"
+ toolbar:style CDATA #IMPLIED
+ toolbar:bitmap CDATA #IMPLIED
+ toolbar:helpid CDATA #IMPLIED
+>
+<!ELEMENT toolbar:toolbarspace EMPTY>
+<!ELEMENT toolbar:toolbarbreak EMPTY>
+<!ELEMENT toolbar:toolbarseparator EMPTY>
+<!ELEMENT toolbar:toolbarlayouts (toolbar:toolbarlayout*)>
+<!ATTLIST toolbar:toolbarlayouts
+ xmlns:toolbar CDATA #FIXED "http://openoffice.org/2001/toolbar"
+>
+<!ELEMENT toolbar:toolbarlayout EMPTY>
+<!ATTLIST toolbar:toolbarlayout
+ toolbar:id CDATA #REQUIRED
+ toolbar:floatingposleft %numeric; #IMPLIED
+ toolbar:floatingpostop %numeric; #IMPLIED
+ toolbar:floatinglines %numeric; "0"
+ toolbar:dockinglines %numeric; "1"
+ toolbar:align %alignment; "left"
+ toolbar:visible %boolean; "false"
+ toolbar:floating %boolean; "false"
+ toolbar:style %style; "symbol"
+ toolbar:userdefname CDATA #IMPLIED
+>
diff --git a/test/user-template/user/fingerprint/afrikaans.lm b/test/user-template/user/fingerprint/afrikaans.lm
new file mode 100644
index 000000000000..c110f154b664
--- /dev/null
+++ b/test/user-template/user/fingerprint/afrikaans.lm
@@ -0,0 +1,400 @@
+_ 23602
+e 8036
+a 4087
+n 3782
+i 3726
+o 3314
+r 2951
+s 2885
+t 2749
+d 2479
+e_ 2118
+l 1854
+k 1741
+ie 1670
+g 1601
+n_ 1447
+m 1440
+_d 1219
+t_ 1143
+er 1124
+h 1124
+u 1110
+ie_ 1079
+y 1048
+w 986
+s_ 982
+_s 969
+_h 956
+di 924
+an 922
+r_ 912
+aa 882
+v 876
+en 807
+_di 807
+. 790
+y_ 747
+_v 709
+et 706
+._ 694
+die 691
+die_ 667
+_n 666
+_die 651
+p 639
+_m 634
+_die_ 633
+_w 632
+ee 607
+ge 606
+_o 598
+b 586
+te 568
+, 560
+in 555
+k_ 550
+_e 550
+,_ 548
+oo 516
+et_ 511
+de 509
+el 489
+_g 486
+f 461
+ar 451
+ni 450
+nd 442
+an_ 440
+en_ 437
+_i 426
+he 423
+g_ 418
+_t 412
+oe 410
+at 406
+er_ 400
+om 381
+wa 378
+_a 378
+_b 377
+_k 371
+nie 371
+_he 370
+aar 355
+_ge 351
+es 351
+_ni 348
+da 346
+m_ 342
+ou 338
+it 335
+_nie 335
+d_ 332
+l_ 330
+_wa 329
+or 327
+le 326
+we 326
+ek 324
+het 321
+me 319
+_het 319
+is 318
+j 315
+at_ 311
+on 309
+se 308
+_en 298
+ma 294
+st 291
+as 280
+va 277
+_en_ 270
+re 270
+" 269
+' 265
+het_ 261
+_het_ 260
+om_ 254
+al 252
+ar_ 250
+li 248
+te_ 247
+aar_ 247
+_da 245
+u_ 242
+nde 241
+ou_ 237
+_l 231
+be 229
+_' 226
+rd 224
+_va 224
+ig 223
+ng 222
+ns 221
+ve 220
+it_ 218
+_j 216
+_me 216
+sy 215
+ke 213
+_sy 212
+aan 212
+van 212
+_in 210
+is_ 210
+in_ 208
+sy_ 206
+_sy_ 206
+'n 205
+ro 205
+ko 204
+_'n 203
+ra 203
+'n_ 203
+_'n_ 202
+so 202
+D 202
+ho 201
+rs 200
+eer 200
+ik 199
+la 198
+_te 196
+_van 196
+_ma 195
+as_ 194
+ui 194
+ver 192
+e. 192
+der 191
+to 188
+op 187
+van_ 184
+ag 184
+_ve 182
+and 180
+_van_ 178
+ha 178
+f_ 176
+ka 176
+ne 175
+_is 175
+sk 174
+e._ 174
+oor 174
+_ver 170
+ek_ 170
+_hy 170
+hy 170
+p_ 168
+_be 168
+ri 168
+ur 167
+nie_ 165
+_so 165
+_D 164
+si 164
+ll 164
+no 164
+_in_ 163
+_hy_ 162
+hy_ 162
+ed 161
+ers 160
+_r 156
+ak 156
+_ho 155
+_nie_ 153
+eg 153
+nt 152
+de_ 152
+_p 151
+_we 148
+_is_ 148
+ei 147
+es_ 142
+maa 142
+wee 142
+na 141
+nder 139
+a_ 138
+ing 138
+ew 138
+S 135
+lle 135
+_om 135
+_te_ 134
+eu 134
+ie. 134
+wo 132
+em 132
+wat 131
+_no 130
+_" 130
+vo 130
+E 129
+H 128
+_wat 127
+ti 126
+mo 126
+A 126
+e, 126
+_ha 125
+vi 125
+el_ 125
+ter 125
+e,_ 124
+dat 124
+eer_ 124
+wat_ 124
+le_ 124
+ta 124
+Di 123
+dat_ 123
+_wat_ 122
+ie._ 122
+was 121
+ste 121
+_H 121
+_se 121
+se_ 120
+ul 120
+al_ 120
+_was 120
+_om_ 119
+_st 119
+lik 118
+"_ 118
+_ko 118
+_maa 118
+lo 117
+_to 117
+ns_ 115
+aan_ 115
+nie. 114
+_vi 114
+met 114
+_nie. 111
+nk 110
+_Di 110
+- 110
+_op 109
+_oo 109
+_on 108
+ir 108
+ord 108
+uit 106
+ens 105
+_was_ 105
+was_ 105
+een 105
+_met 105
+os 105
+_S 104
+nie._ 104
+ig_ 103
+_sk 102
+op_ 101
+_ek 101
+_wee 101
+ir_ 101
+met_ 100
+_met_ 100
+rt 100
+ik_ 99
+end 99
+nd_ 99
+gt 99
+ond 98
+ot 98
+_aa 97
+og 97
+vir_ 95
+vir 95
+_ka 94
+hu 94
+_mo 94
+_vir_ 94
+_vir 94
+_dit 93
+kr 93
+am 93
+ol 93
+dit 93
+_ek_ 93
+ki 93
+sa 93
+_aan 92
+man 92
+jy 92
+ng_ 92
+aak 92
+lle_ 91
+_hu 91
+_na 91
+_vo 90
+ewe 90
+of 90
+jy_ 90
+_dit_ 90
+dit_ 90
+_jy 89
+der_ 89
+jo 89
+_f 88
+_u 88
+sie 87
+_dat 87
+_jy_ 87
+daa 87
+do 87
+vr 87
+wi 86
+ry 86
+_dat_ 86
+eur 86
+rs_ 85
+_jo 85
+_wo 84
+_ne 84
+jie 84
+ji 84
+pe 83
+moe 83
+my 82
+ull 82
+Die 81
+maar 81
+_hom 81
+ulle 81
+_maar 81
+hom 81
+_uit 80
+_ui 80
+ges 80
+raa 80
+or_ 80
+ies 80
+jou 79
+_la 79
+maar_ 79
+ulle_ 79
+_daa 79
+Die_ 79
+daar 78
+_daar 78
+ien 78
+_my 78
+_jou 78
+ok 78
+il 78
+lik_ 77
+sta 77
+_Die 77
+ur_ 77
+ga 77
+ag_ 77
+kan 77
diff --git a/test/user-template/user/fingerprint/albanian.lm b/test/user-template/user/fingerprint/albanian.lm
new file mode 100644
index 000000000000..0665a962d018
--- /dev/null
+++ b/test/user-template/user/fingerprint/albanian.lm
@@ -0,0 +1,400 @@
+_ 19480
+ë 4099
+e 4082
+t 3635
+i 3134
+a 2893
+r 2820
+n 2610
+s 2380
+h 2060
+ë_ 2055
+e_ 1825
+j 1677
+u 1489
+d 1381
+o 1370
+m 1318
+k 1264
+të 1091
+p 1072
+_t 1068
+sh 998
+l 936
+_n 876
+a_ 822
+, 816
+,_ 808
+të_ 795
+i_ 770
+_p 739
+_m 702
+_s 700
+te 653
+ër 620
+_d 613
+_e 607
+g 602
+_k 601
+_të 593
+. 575
+_të_ 574
+v 567
+_e_ 554
+r_ 525
+._ 523
+ht 503
+n_ 480
+he 473
+në 462
+sht 461
+te_ 457
+q 454
+nd 436
+ri 432
+is 414
+et 403
+b 402
+je 401
+me 395
+in 391
+it 381
+rë 374
+_a 374
+t_ 359
+ur 353
+_i 346
+ar 342
+ës 339
+er 338
+në_ 338
+ën 338
+dh 337
+en 336
+pë 334
+f 328
+_v 323
+jë 318
+nj 313
+ish 312
+për 294
+y 285
+z 282
+es 281
+at 274
+_me 273
+_q 273
+gj 269
+ra 261
+as 258
+_në 256
+ku 256
+j_ 250
+ta 249
+re 246
+një 245
+o_ 243
+ni 243
+_pë 240
+hte 240
+_nj 239
+on 239
+isht 236
+pa 234
+th 233
+shte 233
+_për 232
+se 228
+_g 223
+ve 221
+in_ 220
+s_ 219
+_në_ 219
+do 218
+hte_ 218
+më 216
+ti 215
+aj 212
+shte_ 212
+ej 212
+u_ 211
+që 211
+_sh 210
+nt 207
+jë_ 206
+_b 205
+_një 203
+di 202
+_pa 201
+_i_ 201
+ll 199
+_f 199
+kë 198
+me_ 197
+dhe 195
+ishte 195
+si 194
+hi 191
+he_ 188
+- 187
+ja 187
+_që 187
+ua 186
+il 184
+_dh 184
+ur_ 183
+ër_ 182
+or 180
+se_ 179
+që_ 178
+S 176
+ç 175
+_h 173
+an 172
+një_ 172
+ng 170
+nte 170
+_që_ 169
+_S 169
+rë_ 166
+dhe_ 165
+_me_ 164
+ka 162
+im 159
+hë 158
+mi 157
+to 156
+tu 156
+ën_ 155
+_një_ 154
+ha 153
+nte_ 150
+tr 148
+sa 148
+ët 148
+_gj 148
+un 147
+rr 147
+ë, 147
+_dhe 147
+ej_ 147
+ki 146
+ë,_ 146
+_ku 145
+_- 144
+_ng 142
+ik 141
+_nd 140
+end 138
+uk 137
+etë 135
+ko 135
+_dhe_ 135
+_ve 132
+va 131
+_l 131
+për_ 131
+shi 131
+erë 129
+ke 127
+kis 127
+së 126
+jo 125
+li 124
+ga 124
+kish 123
+_ki 122
+po 122
+_se 122
+' 121
+du 120
+mb 120
+_më 119
+Si 115
+më_ 115
+esh 115
+_si 114
+qe 114
+lë 114
+_kis 113
+oh 113
+_kish 113
+_Si 113
+pr 112
+_u 112
+uar 111
+de 111
+hu 111
+_th 111
+al 111
+ta_ 109
+ilv 108
+Sil 108
+Silv 108
+lv 108
+k_ 108
+e, 108
+ji 107
+e,_ 106
+_Sil 106
+_Silv 106
+_r 105
+os 104
+_se_ 104
+kisht 102
+_di 102
+st 101
+_për_ 101
+bë 101
+tj 100
+_nga 99
+nga 99
+_du 98
+ra_ 98
+vë 98
+gji 98
+_ish 96
+rt 96
+_is 96
+ro 95
+ir 94
+ga_ 94
+ësh 94
+ont 93
+c 93
+t, 93
+t,_ 93
+hin 92
+a, 92
+_at 92
+und 92
+jt 91
+_mb 91
+a,_ 91
+tje 90
+_nga_ 90
+_do 90
+_pr 90
+rit 90
+men 90
+nga_ 90
+ri_ 89
+N 89
+ma 89
+it_ 88
+_kë 88
+-_ 88
+m_ 87
+jo_ 87
+onte 87
+atë 87
+la 87
+ëri 87
+ilva 86
+shin 86
+ë. 86
+Silva 86
+lva 86
+së_ 85
+jer 85
+et_ 85
+_po 85
+ës_ 84
+kur 84
+ru 84
+nin 83
+ot 83
+hin_ 83
+_N 83
+her 83
+htë 82
+ap 82
+shin_ 82
+mo 81
+ash 81
+tha 81
+_ç 81
+ë._ 81
+ëm 81
+jit 80
+_ta 80
+ul 80
+le 80
+ho 80
+_z 79
+dr 78
+jet 78
+nin_ 78
+_më_ 78
+gjit 78
+A 78
+hk 78
+onte_ 78
+oni 77
+lo 77
+ba 77
+herë 77
+ndo 76
+shk 76
+mend 75
+_vë 75
+ha_ 75
+dë 75
+tur 74
+_A 74
+el 74
+bi 74
+_ko 74
+uk_ 73
+erë_ 73
+si_ 73
+_sa 73
+ar_ 72
+P 72
+rs 72
+pas 72
+ith 72
+uar_ 71
+_isht 71
+ai 70
+e. 70
+_vet 70
+vet 70
+_bë 70
+zi 70
+d_ 70
+jith 70
+da 70
+gjith 69
+duk 69
+na 69
+hej 69
+tër 68
+_men 68
+_ka 68
+am 68
+nd_ 68
+_c 67
+_pas 67
+_duk 67
+jes 67
+ak 67
+s, 67
+e._ 67
+s,_ 67
+K 67
+ësht 67
+mu 66
+kur_ 66
+yr 66
+em 65
+_së 65
+tha_ 65
+imi 65
+ie 65
+hej_ 64
+_së_ 64
+_u_ 64
+? 64
+fu 64
+_P 64
diff --git a/test/user-template/user/fingerprint/amharic_utf.lm b/test/user-template/user/fingerprint/amharic_utf.lm
new file mode 100644
index 000000000000..0c5bc813e663
--- /dev/null
+++ b/test/user-template/user/fingerprint/amharic_utf.lm
@@ -0,0 +1,400 @@
+á 21403
+_ 10092
+ˆ 7734
+ሠ6558
+_á 5003
+‹ 4717
+‰ 4401
+በ4274
+á‹ 4176
+Š 4054
+አ3868
+ 2728
+Π1656
+ጠ1591
+µ 1579
+  1425
+ á 1402
+_አ1261
+_á‹ 1231
+¨ 1217
+á 1187
+¨á 1183
+_ሠ1160
+• 1145
+ˆá 1123
+­ 1097
+ን 1043
+Š• 1043
+° 1041
+°á 1004
+_በ991
+á 936
+« 880
+‹ 855
+á‹ 855
+¥ 849
+µá 805
+‰µ 783
+ት 783
+µ_ 763
+«á 709
+¥á 704
+‰  682
+በ 682
+­á 679
+˜ 670
+•á 667
+በá 666
+‰ á 666
+˜á 658
+ 643
+የ 637
+ܬ 637
+‹¨á 627
+የá 627
+ለ 614
+ˆˆ 614
+ˆ­ 611
+ር 611
+_ 588
+‰µ_ 583
+ት_ 583
+_የ 577
+_የá 574
+ለá 573
+ˆˆá 573
+ንá 570
+Š•á 570
+መ 563
+ˆ˜ 563
+ˆ˜á 557
+መá 557
+Š  554
+አ 554
+አá 553
+ተ 553
+Š á 553
+‰° 553
+ተá 547
+‰°á 547
+ሠ534
+ˆ 534
+ áˆ 532
+- 531
+ስ 525
+ˆµ 525
+-- 521
+ሠ515
+ˆ 515
+--- 512
+---- 503
+_በ 499
+----- 494
+_በá 487
+‹á 479
+¨áˆ 477
+•_ 473
+‹á 469
+á‹á 469
+ን_ 468
+Š•_ 468
+¢ 465
+³ 464
+á‹« 457
+‹« 457
+°áˆ 444
+_አ 424
+_አá 424
+ስá 423
+ˆµá 423
+­_ 415
+³á 402
+½ 401
+ 390
+ˆáˆ 389
+› 382
+‹_ 378
+á‹_ 378
+á 365
+‹«á 364
+á‹«á 364
+“ 363
+áˆá 357
+ˆá 357
+£ 356
+¢_ 351
+‰½ 347
+ች 347
+Š 341
+አ341
+á‹­ 337
+¢ 337
+ᢠ337
+‹­ 337
+¢_ 337
+á¢_ 337
+á 336
+… 334
+Š¥ 320
+እ 320
+£á 320
+ሠ320
+Š¥á 318
+እá 318
+ˆ­_ 314
+ር_ 314
+•á‹ 312
+݇ 311
+¨á‰ 301
+ና 300
+ገ 300
+Š“ 300
+Œˆ 300
+ á‰ 299
+˜áˆ 297
+ርá 294
+Π294
+ጠ294
+ˆ­á 294
+š 293
+ˆá 291
+ከ 291
+Œˆá 291
+Šá 291
+Š¨ 291
+áˆá 291
+ገá 291
+áŠá 291
+á‹° 288
+‹° 288
+_እ 285
+_እá 283
+® 279
+Š¨á 279
+ከá 279
+‰ áˆ 279
+በሠ279
+ንዠ276
+šá 276
+Š•á‹ 276
+_ጠ272
+‰¥ 270
+ብ 270
+_ 269
+áŒá 264
+· 264
+ˆ˜áˆ 262
+¥áˆ 262
+መሠ262
+¥áŠ 262
+á‹­á 261
+‹­á 261
+ˆ› 260
+ማ 260
+á‹°á 259
+‹°á 259
+ራ 254
+‰£ 254
+ባ 254
+ˆ« 254
+€ 253
+®á 249
+á 247
+ۇ 245
+µáˆ 244
+ላ 242
+ˆ‹ 242
+የሠ242
+‹¨áˆ 242
+ማá 238
+ˆ›á 238
+ áŠ 237
+ረ 237
+ˆ¨ 237
+‰°áˆ 236
+ተሠ236
+áˆ_ 235
+ˆ_ 235
+ˆá‹ 234
+­áˆ 233
+«áˆ 233
+䣇 230
+ˆš 230
+ባá 230
+ሚ 230
+ድ 228
+‹µ 228
+_መ 227
+በ227
+_መá 226
+ˆ¨á 225
+ረá 225
+² 225
+ᢠ222
+á¢_ 222
+ á‹ 216
+እአ214
+ሚá 214
+Š¥áŠ 214
+ˆšá 214
+…á 213
+²á 212
+«á‹ 210
+ˆ‹á 209
+ላá 209
+© 208
+ˆá‰ 207
+‹áˆ 206
+½_ 206
+䴇 205
+ብá 205
+አ202
+ˆ° 200
+ታ 200
+‰³ 200
+ሰ 200
+ˆ«á 199
+ራá 199
+ሰá 198
+ˆ°á 198
+ትá 195
+ወ 195
+䵇 195
+‹ˆ 195
+‹ˆá 194
+ወá 194
+½á 191
+Ž 191
+‰½_ 189
+ች_ 189
+“á 188
+¸á 186
+¸ 186
+_ለ 184
+_ለá 183
+ለሠ183
+ˆˆáˆ 183
+¥áŠ• 180
+‹¨á‰ 179
+የበ179
+Žá 178
+± 177
+¥áŠ•á 177
+_ከ 175
+δ 174
+ጥ 174
+Š áˆ 172
+አሠ172
+_ከá 170
+† 170
+«_ 169
+Š¥áŠ• 169
+†á 166
+°á‹ 166
+áˆá 165
+“_ 165
+ˆá 165
+ና_ 163
+Š“_ 163
+‰¸ 160
+ቸ 160
+ቸá 160
+‰¸á 160
+ˆáŠ 160
+¨áŠ 159
+¸á‹ 159
+‰€ 158
+ቀ 158
+­á‰ 158
+£áˆ 156
+ቀá 155
+‰€á 155
+ችá 154
+‰¸á‹ 154
+áˆ_ 154
+‰½á 154
+¸á‹ 154
+ቸዠ154
+ˆ_ 154
+µá‰ 152
+³á‹ 151
+‰¸á‹ 151
+Šá 150
+_አ150
+¶ 150
+_áŠá 150
+ƒ 150
+_á‹­á 150
+_á‹­ 150
+‰³á 149
+ታá 149
+ˆá¢ 148
+‰ á‰ 147
+ደሠ147
+‹°áˆ 147
+በበ147
+ 146
+_ተ 146
+_ተá 146
+ለዠ145
+ˆˆá‹ 145
+ድá 144
+µáŠ 144
+›áˆ 144
+‹µá 144
+ቅ 143
+‰… 143
+¥_ 143
+áŒáˆ 142
+Œáˆ 142
+‹³ 141
+ዳ 141
+Žá‰ 139
+ህ 138
+ˆ… 138
+Š“á 137
+ናá 137
+«á‰ 137
+ን 136
+ጠ136
+አዠ135
+Š á‹ 135
+†áŠ 135
+ስበ134
+ˆµá‰ 134
+ጠ 133
+ዳá 133
+Œ  133
+ሆá 133
+ˆ†á 133
+ሆ 133
+‹³á 133
+ˆ† 133
+ሆአ132
+ˆ†áŠ 132
+¨á‰° 131
+ያሠ131
+¨á‰°á 131
+‹«áˆ 131
+á‹ 129
+µá‹ 128
+Š­ 128
+ክ 128
+á 128
+ 128
+°á‰ 127
+Œ á 127
+ጠá 127
+Š« 126
+ካ 126
+á 124
+በአ123
+°áŒ 123
+á‹«á‹ 123
+‹«á‹ 123
+‰ áŠ 123
+Š¨áˆ 122
+ከሠ122
+Œˆáˆ 121
+ገሠ121
diff --git a/test/user-template/user/fingerprint/arabic.lm b/test/user-template/user/fingerprint/arabic.lm
new file mode 100644
index 000000000000..85f701965e2e
--- /dev/null
+++ b/test/user-template/user/fingerprint/arabic.lm
@@ -0,0 +1,400 @@
+_
+ا
+Ù„
+Ùˆ
+ال
+_ا
+ÙŠ
+Ù†
+Ù…
+_ال
+ر
+ب
+.
+ت
+د
+ع
+Ù‡
+_Ùˆ
+Ù†_
+ا_
+Ùƒ
+ج
+..
+Ø©
+Ø­
+Ø£
+س
+_Ù…
+._
+Ù‚
+Ø©_
+Ù‡_
+لا
+Ù’
+_Ø£
+ان
+_Ù
+_ب
+ÙŽ
+لم
+د_
+ول
+ÙŠ_
+Ù‰
+Ù‰_
+...
+وج
+_Ù„
+_ع
+Ù„_
+وا
+جو
+Ù’.
+ص
+الم
+_الم
+..._
+.._
+Ø«
+ود
+Ø°
+Ø´
+من
+وجو
+ÙŽ_
+ÙÙŠ
+لا_
+جود
+ر_
+لى_
+لى
+ان_
+وجود
+لو
+Ù…_
+_ت
+_من
+Ù’...
+_وا
+لع
+الو
+عل
+Ù’..._
+Ù’..
+ين
+الع
+_ÙÙŠ
+ز
+ات
+_ÙŠ
+_الع
+Ù_
+_Ùƒ
+_الو
+من_
+_ان
+مر
+Ø¡
+ÙÙŠ_
+يا
+ب_
+را
+،_
+Ù_
+،
+ض
+_ÙÙŠ_
+تب
+_من_
+لوج
+كا
+لي
+ت_
+لوجو
+Ù‘
+ون
+الوج
+اء
+جود_
+أح
+_أح
+الوجو
+له
+ود_
+ها
+حا
+ذا
+_ر
+على_
+وجود_
+على
+رب
+لوجود
+عر
+_ان_
+او
+اول
+Ø·
+رت
+لت
+بْ
+أحا
+_الوج
+أحاو
+با
+وال
+_ول
+اد
+_وال
+حاول
+_أحاو
+_أحا
+أحاول
+_،_
+حاو
+_،
+ني
+بي
+_عل
+لن
+ته
+ما
+-_
+-
+مرتب
+نا
+_.
+ها_
+مرت
+_._
+_-
+_-_
+بة
+ول_
+_Ø­
+رتب
+دا
+له_
+Ø¡_
+Ùƒ_
+قي
+تبة
+اول_
+مرتبة
+ية
+بل
+ور
+ده
+الت
+Ø®
+رتبة
+الا
+رتبة_
+ين_
+عرب
+ير
+بة_
+تبة_
+قد
+ربْ
+لعربْ
+لعر
+العر
+أن
+لك
+حد
+ون_
+لعرب
+_على_
+_العر
+تÙ
+عن
+بْ.
+_لا
+حاول_
+ذات
+العرب
+_على
+ية_
+عربْ
+Ø¥
+اب
+ئ
+سا
+نو
+كو
+المر
+لل
+يت
+_Ø´
+لم_
+_المر
+اع
+مو
+لمر
+_الا
+ته_
+اج
+_Ù‚
+س_
+ائ
+جب
+ام
+اجب_
+كون
+واجب_
+Ù„ÙŽ
+_لا_
+اني
+سي
+واج
+سم
+Ù„ÙŽ_
+يس
+ال_
+_ولا
+عي
+وص
+عا
+جب_
+اس
+ير_
+_مر
+واجب
+اجب
+_بل
+الن
+ولا
+_بال
+وأ
+أع
+اك
+وق
+بلاد
+نت
+Ù†Ù
+ضا
+نه
+كون_
+بْ..
+ثل
+كل
+ولا_
+_ذا
+ذاته
+المرت
+دة
+ذاته_
+ور_
+بال
+بْ...
+_ولا_
+_الت
+يه
+_الل
+_س
+اء_
+ات_
+بلا
+_وأ
+_Ø°
+صو
+ربْ.
+_بلاد
+لاد
+_بلا
+غ
+لمرتب
+_Ù‡
+بن
+لمرت
+عربْ.
+_Ù†
+_ذات
+اته_
+لله
+Ù’._
+_با
+اته
+_Ø¥
+وم
+الل
+الوا
+موج
+_الله
+نْ
+Ù„Ù
+اÙ
+_يكو
+لر
+قا
+عين
+ست
+يكون
+موجو
+ليس
+ده_
+Ù„Ù_
+_وج
+_وص
+دي
+حم
+الواج
+بين
+_الر
+_يك
+مس
+Ù…Ù
+لله_
+Ù_
+عد
+يل
+_الن
+عق
+اش
+يكو
+يق
+الر
+تÙ_
+_كا
+شي
+_يكون
+لوا
+ار
+موجود
+يك
+هْ
+_ذاته
+ع_
+جا
+الله
+ÙÙˆ
+وب
+_عي
+رس
+دة_
+لواجب
+يكون_
+لواج
+رك
+Ù_
+كان
+لص
+لش
+لث
+زا
+ياء
+ساء
+لعق
+انت
+علم
+العق
+ما_
+قد_
+Ù„Ù
+الله_
diff --git a/test/user-template/user/fingerprint/armenian.lm b/test/user-template/user/fingerprint/armenian.lm
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/test/user-template/user/fingerprint/armenian.lm
diff --git a/test/user-template/user/fingerprint/basque.lm b/test/user-template/user/fingerprint/basque.lm
new file mode 100644
index 000000000000..32522a7eca20
--- /dev/null
+++ b/test/user-template/user/fingerprint/basque.lm
@@ -0,0 +1,400 @@
+_ 12114
+a 5537
+e 4040
+i 3103
+t 2567
+n 2474
+r 2406
+o 1937
+k 1761
+z 1627
+u 1561
+d 1367
+l 1075
+s 1048
+b 995
+n_ 958
+a_ 957
+en 802
+g 772
+_e 736
+er 680
+ra 669
+. 625
+at 610
+_b 594
+ar 589
+an 585
+_d 580
+, 569
+,_ 569
+h 563
+ta 563
+te 555
+._ 520
+ko 513
+m 503
+o_ 486
+al 481
+en_ 471
+tz 458
+re 435
+_a 423
+ik 416
+in 409
+it 392
+za 391
+ak 388
+ba 358
+et 357
+da 352
+di 351
+ka 350
+ze 349
+ai 347
+p 340
+ri 335
+la 329
+an_ 327
+de 322
+ez 318
+na 314
+ti 307
+be 305
+i_ 302
+iz 294
+k_ 293
+tu 289
+eta 287
+( 280
+) 280
+_i 279
+or 276
+_( 270
+ko_ 269
+ek 265
+rr 264
+_h 263
+e_ 260
+es 260
+_ba 258
+nt 258
+ha 255
+_g 247
+era 246
+ia 240
+_be 234
+oa 229
+un 229
+ta_ 218
+ma 212
+on 211
+z_ 209
+du 207
+(_ 205
+_(_ 205
+: 204
+tze 204
+:_ 204
+us 191
+u_ 191
+_da 188
+ren 183
+az 183
+_) 183
+ur 182
+st 182
+ea 181
+_et 181
+eta_ 179
+zi 178
+si 177
+zen 177
+as 176
+_n 175
+go 175
+_eta 172
+il 169
+tik 169
+_z 167
+_eta_ 167
+ne 167
+bi 166
+zk 166
+sk 165
+ag 163
+t_ 162
+le 160
+rt 160
+ke 158
+- 150
+gu 148
+au 148
+tza 147
+_de 147
+ati 146
+ut 146
+A 145
+li 145
+hi 145
+E 144
+bat 144
+_o 143
+a, 142
+a,_ 142
+_m 141
+ntz 141
+ad 140
+ren_ 139
+_er 138
+io 138
+)_ 138
+_ez 138
+ir 137
+eh 137
+ab 135
+ate 135
+ak_ 134
+sa 134
+ra_ 134
+_bat 133
+nd 133
+_l 133
+ki 132
+ere 131
+ika 125
+ku 125
+f 124
+ga 123
+ld 122
+_di 121
+arr 120
+el 120
+eg 119
+uz 119
+are 116
+ng 116
+os 116
+_E 115
+gi 113
+_p 113
+_du 113
+mo 113
+zen_ 112
+ib 111
+_k 110
+ber 109
+ako 108
+_iz 107
+iza 107
+ala 107
+itz 107
+har 106
+eko 106
+adi 105
+l_ 105
+ie 105
+ste 105
+atu 104
+am 104
+ska 104
+ah 104
+_. 104
+r_ 104
+zt 103
+rri 103
+ait 103
+ua 103
+tzen 103
+ald 103
+usk 102
+aren 102
+_._ 102
+ro 102
+id 100
+la_ 99
+_s 98
+ue 98
+tek 97
+uska 97
+atz 96
+aren_ 96
+_ha 95
+rre 95
+" 94
+atik 94
+tzen_ 94
+ara 94
+in_ 93
+ni 93
+j 92
+ge 91
+ez_ 91
+ain 91
+od 91
+no 91
+na_ 91
+ri_ 90
+tan 90
+mat 90
+do 89
+_mo 88
+ho 88
+iko 88
+beh 88
+_ad 88
+al_ 87
+_iza 87
+I 87
+zan 87
+_ze 87
+_adi 87
+_A 86
+uk 86
+eha 85
+dit 85
+ru 85
+pe 85
+eko_ 84
+ela 84
+ed 84
+kar 84
+n,_ 83
+ari 83
+bil 83
+_beh 83
+bai 83
+tu_ 83
+n, 83
+ehar 83
+_izan 82
+itu 82
+_ho 82
+is 82
+ean 82
+ama 82
+izan 82
+_)_ 81
+ik_ 81
+B 80
+koa 80
+ot 80
+_na 79
+zu 79
+beha 78
+behar 78
+_t 78
+H 78
+_ko 78
+dir 77
+mati 76
+_j 75
+at_ 75
+em 74
+tika 74
+K 74
+_B 74
+zte 74
+ten 74
+_beha 74
+ter 74
+matik 73
+egi 73
+_dir 73
+a. 72
+ago 72
+kal 72
+ram 72
+ena 72
+unt 71
+lt 71
+_H 71
+su 71
+mod 71
+bo 71
+G 70
+_ber 70
+lde 70
+c 69
+te_ 69
+ar_ 69
+me 69
+ina 69
+dal 69
+ako_ 68
+L 68
+rik 68
+a._ 68
+ori 68
+ite 68
+raz 67
+alde 67
+)._ 67
+). 67
+zio 66
+_ez_ 66
+tan_ 66
+amat 66
+atika 66
+est 66
+ntza 65
+dut 65
+izk 65
+_ga 65
+ia_ 65
+s_ 65
+ita 65
+tea 64
+ei 64
+hal 64
+_mod 64
+pa 64
+bu 64
+re_ 63
+eu 63
+ert 63
+oa_ 63
+_era 63
+ten_ 63
+_G 63
+_eg 63
+rama 63
+odal 63
+ramat 63
+oda 63
+amati 62
+atze 62
+gr 62
+untz 62
+eza 62
+gra 62
+_ge 61
+gram 61
+kat 61
+abi 61
+_gr 60
+_gram 60
+_gra 60
+int 60
+rd 60
+_in 60
+k, 59
+_hi 59
+zko 59
+k,_ 59
+pr 59
+rab 59
+da_ 59
+ide 58
+_)._ 57
+tat 57
+ing 57
+ira 57
+tak 57
+x 57
+_). 57
+_ed 57
+_es 57
+_bi 57
+rak 56
+_- 56
diff --git a/test/user-template/user/fingerprint/belarus.lm b/test/user-template/user/fingerprint/belarus.lm
new file mode 100644
index 000000000000..7d58602e51c3
--- /dev/null
+++ b/test/user-template/user/fingerprint/belarus.lm
@@ -0,0 +1,400 @@
+_
+а
+н
+Ñ€
+е
+i
+к
+Ñ‹
+л
+у
+Ñ‚
+д
+а_
+о
+м
+в
+ц
+з
+.
+на
+г
+п
+ка
+._
+ра
+ч
+i_
+ал
+у_
+ар
+ан
+Ñ_
+та
+,
+б
+,_
+ва
+Ñ‹_
+ш
+_Ñ
+ла
+ь
+й
+_д
+ле
+га
+_а
+ад
+_п
+ры
+да
+_у
+ен
+Ñ‚Ñ‹
+й_
+е_
+_г
+ны
+_н
+на_
+зе
+_в
+-
+_б
+аÑ
+ам
+_i
+ав
+ро
+аг
+_у_
+_з
+па
+нн
+Ñк
+Ñ…
+ÑŽ
+_м
+не
+дз
+_i_
+_к
+Ñ‹Ñ
+пр
+ÑÑ‚
+ак
+ын
+iк
+ль
+нÑ
+нi
+лi
+за
+аз
+ру
+ет
+ж
+Ñн
+ку
+лÑ
+ай
+_М
+_Ð
+_Ñ
+нÑ
+ага
+ат
+ай_
+М
+але
+га_
+ага_
+ме
+_на
+ала
+"
+_па
+Ñ‚Ñ€
+ер
+кал
+кi
+м_
+кт
+ава
+вi
+дзе
+нÑк
+ана
+Ð’
+го
+ац
+Ñц
+а.
+)
+о_
+iн
+_ад
+цы
+ца
+а._
+тар
+ма
+цi
+ау
+ь_
+Ñка
+ча
+_ка
+Ñа
+Ñ€_
+_._
+Ñк
+_га
+_Ñ€
+_Ñ‚
+_пр
+_за
+ве
+ÑÑ
+ны_
+да_
+др
+мi
+бы
+_.
+Ñ€Ñ
+ара
+он
+оу
+_да
+ек
+и
+лек
+_У
+ым
+ыл
+аÑ
+ло
+нк
+нт
+пра
+)_
+пi
+ары
+_на_
+та_
+рн
+Ñ…_
+У
+Ñi
+шы
+кр
+аÑ_
+ел
+ван
+ец
+Ñта
+чы
+_бы
+ае
+I
+_Ñ
+_П
+iка
+Ñу
+Ñд
+(
+iм
+газе
+_газ
+_газе
+_I
+азе
+_)
+вÑ
+_(
+iч
+тро
+нÑ_
+аш
+ор
+газ
+_)_
+ов
+аван
+П
+ран
+ун
+лÑ_
+ар_
+дак
+вар
+_да_
+Ñ‹Ñн
+Ñв
+черн
+_Я
+ык
+ктрон
+трон
+Ñл
+'
+ект
+ектро
+но
+нага_
+нна
+--
+iл
+ку_
+нÑу
+-_
+Ðл
+Ве
+был
+рыÑ
+онн
+_-
+ронн
+iÑ
+Ñдак
+ктр
+кта
+Ñан
+лi_
+_"
+д_
+Ñлект
+ап
+ктро
+_Ñл
+чер
+Ñлек
+зе_
+лектр
+мп
+ерн
+_Ñле
+_кал
+нÑка
+ктар
+Ñцi
+Вечер
+ечер
+ач
+ечерн
+Я
+ам_
+ектр
+Вече
+кÑ
+_--_
+дзе_
+тронн
+наг
+Ñда
+Веч
+Б
+Ñ‚Ñ‹_
+зет
+ече
+лект
+_Ðл
+еч
+ук
+ада
+рон
+_ва
+ла_
+_Ñлек
+_был
+уÑ
+--_
+нага
+че
+вары
+Ñле
+_--
+рав
+уку
+каг
+_ш
+кай
+ний_
+Ðа
+ий_
+ка.
+_ч
+ннаг
+ыц
+_Р
+руÑ
+_Ð’
+_Ð
+ÑÑ€
+Ñн
+Ñм
+_Б
+кра
+черни
+у,_
+нд
+ни
+дакт
+лару
+нц
+кага_
+_Мин
+ныÑ
+МинÑ
+нь
+акта
+лар
+_длÑ
+..
+_вар
+нiк
+i,
+_пра
+i.
+Ñнт
+Ñна
+о,
+Ñу
+(_
+бо
+ннÑ
+ць
+рни
+цц
+це
+Ñнта_
+дл
+_МинÑ
+ларуÑ
+Ñнта
+_го
+Ñ‚Ñ
+к_
+_Ñ€Ñ
+ерни
+вы
+цца
+ана_
+ронна
+не_
+ндр
+зеты_
+_Ñк
+Мин
+длÑ_
+_длÑ_
+елар
+Бел
+рыÑн
diff --git a/test/user-template/user/fingerprint/bosnian.lm b/test/user-template/user/fingerprint/bosnian.lm
new file mode 100644
index 000000000000..cf6b8a41ce67
--- /dev/null
+++ b/test/user-template/user/fingerprint/bosnian.lm
@@ -0,0 +1,400 @@
+_ 9464
+a 2787
+i 2108
+e 2077
+o 2018
+j 1396
+n 1328
+s 1170
+u 1010
+r 988
+d 957
+a_ 889
+e_ 833
+t 774
+je 771
+k 756
+l 743
+m 702
+v 685
+p 604
+c 538
+i_ 538
+_s 522
+u_ 476
+z 463
+_p 450
+o_ 433
+,_ 381
+, 381
+_i 369
+_n 358
+b 349
+_d 349
+. 346
+na 341
+je_ 337
+._ 321
+_j 307
+g 299
+ra 292
+st 283
+ko 278
+_je 274
+ij 254
+_o 245
+ni 240
+_k 236
+an 228
+oj 227
+da 226
+_u 222
+pr 221
+no 219
+ma 219
+la 211
+ri 206
+_je_ 203
+po 203
+ci 196
+_pr 191
+os 190
+od 187
+ka 186
+im 185
+ti 184
+li 182
+vo 178
+_po 174
+ja 171
+_i_ 169
+ov 169
+al 168
+re 167
+ne 167
+m_ 164
+ta 160
+na_ 158
+ed 157
+_m 157
+_na 157
+se 156
+_u_ 154
+en 153
+ic 151
+sa 151
+_b 149
+ak 141
+va 140
+ad 137
+h 136
+ju 135
+su 134
+dj 133
+ije 133
+ar 127
+ca 127
+_z 126
+nj 125
+ji 124
+da_ 124
+_ko 123
+_da 122
+il 121
+" 120
+av 120
+_t 118
+aj 116
+ob 115
+ro 114
+am 114
+vi 114
+_su 113
+om 112
+dje 112
+za 112
+at 111
+le 111
+di 110
+su_ 107
+iz 107
+ve 107
+lj 106
+_se 105
+ev 105
+is 105
+es 103
+se_ 103
+do 101
+ih 100
+a, 99
+_su_ 99
+a,_ 99
+on 98
+bi 98
+in 97
+voj 97
+az 96
+ac 95
+_da_ 95
+la_ 95
+_r 93
+_g 93
+jev 92
+ma_ 92
+er 92
+or 91
+h_ 90
+_sa 90
+e, 90
+e,_ 90
+ba 90
+ima 89
+a. 88
+ol 88
+_do 87
+dn 87
+it 87
+ko_ 86
+ne_ 86
+ost 85
+ek 85
+to 85
+d_ 84
+as 84
+ju_ 84
+ao 84
+ih_ 84
+a._ 84
+te 83
+evo 83
+koj 83
+pri 82
+jevo 82
+ce 81
+_se_ 81
+og 80
+go 80
+jevoj 79
+de 79
+uc 79
+evoj 79
+_od 78
+_za 78
+tr 78
+S 77
+_koj 76
+ke 75
+_v 75
+ao_ 75
+_dje 74
+_bi 74
+sta 74
+_dj 74
+cij 74
+ik 74
+djev 73
+sl 73
+_djev 72
+ga 72
+djevo 72
+_ka 71
+rij 71
+_iz 71
+P 71
+_pri 70
+_a 69
+us 68
+_S 68
+mo 67
+el 67
+sk 66
+me 66
+zi 66
+ija 65
+n_ 65
+ku 64
+im_ 63
+_st 63
+ica 63
+_na_ 62
+_ne 62
+em 61
+edn 61
+jk 61
+io 61
+li_ 60
+ojk 60
+evojk 60
+_" 60
+zn 60
+vojk 60
+pro 59
+lo 59
+ije_ 59
+jed 58
+ke_ 58
+om_ 58
+jen 58
+sti 57
+_im 57
+le_ 57
+_ra 56
+e. 56
+ze 55
+_pro 55
+nu 55
+nje 55
+ti_ 55
+ec 55
+pre 55
+oc 54
+aci 54
+no_ 54
+et 54
+oji 53
+si 53
+ara 53
+ama 53
+z_ 53
+pos 52
+rad 52
+ran 52
+ima_ 52
+ru 52
+_P 52
+tu 52
+mu 51
+e._ 51
+ja_ 50
+_pre 50
+sa_ 49
+io_ 49
+od_ 48
+ni_ 48
+_nj 48
+j_ 48
+_pos 47
+_c 47
+ila 47
+K 46
+_sa_ 46
+uz 46
+N 46
+_ni 45
+zna 45
+U 45
+za_ 45
+_no 45
+ako 45
+u, 44
+lu 44
+ali 44
+u,_ 44
+sto 44
+ste 44
+ve_ 44
+ani 44
+oli 44
+aka 44
+_jed 43
+i,_ 43
+ji_ 43
+uci 43
+i, 43
+ci_ 43
+osti 43
+_N 42
+dr 42
+so 42
+ust 41
+ila_ 41
+B 41
+- 41
+red 41
+jke 41
+sv 41
+_go 41
+bar 41
+g_ 41
+est 40
+D 40
+iv 40
+vojke 40
+aju 40
+ta_ 40
+A 40
+lje 40
+jedn 40
+bil 40
+ojke 40
+ova 40
+ati 39
+_mu 39
+pa 39
+M 39
+_ba 39
+ca_ 39
+O 39
+ka_ 39
+_a_ 38
+_B 38
+_ima 38
+sn 38
+nu_ 38
+T 38
+to_ 38
+eg 38
+ava 38
+ros 37
+ir 37
+ala 37
+og_ 37
+osl 37
+ovi 37
+koji 37
+_sv 37
+dv 36
+ric 36
+_za_ 36
+br 36
+_on 36
+odi 36
+_koji 36
+_jedn 35
+nik 35
+dno 35
+_D 35
+jo 35
+tra 35
+_M 35
+sp 35
+iz_ 35
+oz 35
+vr 35
+u. 35
+eri 35
+I 35
+eko 35
+ale 35
+_ma 34
+lik 34
+_bil 34
+c_ 34
+ut 34
+je,_ 34
+u._ 34
+str 34
+je, 34
+adi 34
+tit 34
+_iz_ 34
+iti 34
+i. 33
+_rad 33
+ici 33
+rost 33
+aju_ 33
+va_ 33
+_ob 33
+nog 33
diff --git a/test/user-template/user/fingerprint/breton.lm b/test/user-template/user/fingerprint/breton.lm
new file mode 100644
index 000000000000..6d021d739672
--- /dev/null
+++ b/test/user-template/user/fingerprint/breton.lm
@@ -0,0 +1,400 @@
+_ 21447
+e 6375
+a 5414
+n 3228
+r 3039
+o 2968
+t 2392
+i 1812
+h 1751
+u 1650
+l 1630
+d 1506
+a_ 1352
+z 1319
+t_ 1310
+_e 1168
+_a 1168
+e_ 1133
+m 1105
+s 1100
+g 1090
+r_ 998
+k 997
+n_ 958
+et 941
+v 888
+_d 868
+an 859
+. 846
+' 841
+en 836
+b 757
+, 749
+,_ 743
+._ 716
+ar 703
+ou 700
+et_ 689
+c 686
+ez 572
+'h 572
+_g 565
+er 555
+p 553
+_k 535
+c'h 530
+c' 530
+nt 513
+_h 505
+re 505
+ra 478
+ha 466
+ñ 458
+ne 456
+oa 454
+_o 442
+_b 434
+- 432
+zh 422
+ar_ 415
+_m 414
+_e_ 414
+nn 384
+el 376
+_a_ 356
+ur 350
+o_ 346
+h_ 345
+ve 340
+nt_ 340
+w 339
+ke 338
+de 333
+añ 332
+_p 332
+s_ 327
+he 325
+on 318
+le 318
+ga 316
+ma 315
+_ar 312
+eu 312
+_n 310
+an_ 298
+ant 296
+enn 285
+z_ 282
+_ar_ 281
+be 280
+_v 276
+_r 272
+al 270
+en_ 268
+_ke 267
+l_ 264
+em 264
+_c 263
+ñ_ 262
+da 262
+_s 261
+ho 260
+di 259
+_ha 252
+ll 250
+tr 248
+oa_ 247
+me 246
+us 242
+_ga 234
+la 231
+ket 227
+ant_ 219
+_da 219
+_l 216
+ur_ 216
+_oa 215
+in 214
+ket_ 211
+gan 211
+_c' 207
+_u 207
+_c'h 207
+ad 207
+añ_ 207
+ao 204
+_ma 204
+_t 204
+_ket 201
+_an 199
+_di 197
+ezh 196
+ù 196
+où 196
+_de 195
+ev 193
+? 192
+st 192
+ro 192
+P 192
+_ket_ 188
+er_ 188
+f 186
+na 186
+ue 185
+da_ 184
+?_ 184
+_gan 184
+_da_ 184
+_ne 183
+ed 182
+_P 180
+g_ 180
+pe 179
+m_ 178
+A 177
+ri 176
+us_ 175
+ta 174
+ze 174
+gant 174
+ka 174
+i_ 172
+d_ 171
+G 167
+te 167
+ae 166
+zh_ 164
+ha_ 163
+_ha_ 163
+_he 161
+_gant 159
+do 159
+oue 159
+_G 158
+eus 158
+eo 158
+'h_ 157
+_en 157
+go 157
+am 157
+c'h_ 157
+_be 156
+we 156
+iz 154
+_an_ 151
+_A 150
+eus_ 147
+sk 147
+li 146
+as 146
+_pe 146
+j 146
+_oa_ 146
+av 144
+gant_ 143
+ut 142
+no 141
+vez 140
+va 140
+_ra 140
+ge 138
+ez_ 138
+bo 137
+  137
+_ur 136
+lo 134
+he_ 134
+où_ 133
+ù_ 133
+_ur_ 132
+es 130
+'ho 129
+ni 129
+uz 129
+tra 127
+se 126
+it 125
+ra_ 125
+out 125
+is 125
+at 125
+hi 125
+eg 125
+ig 124
+ko 124
+io 123
+k_ 123
+ch 123
+_w 121
+or 121
+Pe 121
+_ma_ 119
+ma_ 119
+gw 118
+_em 118
+_Pe 118
+un 118
+eme 117
+ne_ 117
+nn_ 117
+c'ho 117
+ol 116
+ag 116
+M 115
+'ha 115
+_en_ 115
+iv 115
+vi 113
+_ka 113
+K 113
+ud 112
+_he_ 111
+ont 110
+oc 110
+vo 110
+ec 109
+wa 109
+.. 107
+_M 107
+_z 107
+br 107
+om 106
+to 105
+_f 105
+N 105
+_c'ho 104
+ti 104
+ut_ 104
+D 104
+_o_ 103
+_la 103
+_go 101
+az 101
+out_ 101
+ba 101
+enn_ 101
+c'ha 101
+our 100
+oc'h 100
+ell 100
+oc' 100
+etr 99
+el_ 99
+_K 99
+_D 99
+: 99
+:_ 99
+eve 98
+_d' 97
+all 97
+d' 97
+E 97
+_ne_ 97
+_me 95
+eo_ 95
+ak 95
+bet 95
+_eu 95
+rc 94
+_do 94
+_gw 94
+zi 93
+oz 93
+aou 93
+etra 92
+pa 91
+ab 90
+on_ 90
+ei 90
+tra_ 90
+n, 89
+zo 89
+ag_ 89
+_ev 88
+ul 88
+'e 88
+n' 88
+n,_ 88
+ouz 87
+v_ 86
+_n' 86
+_eus 84
+H 83
+za 83
+S 83
+etra_ 83
+_eo 82
+t,_ 82
+t, 82
+il 81
+ent 81
+fe 81
+rc'h 81
+rc' 81
+_eus_ 80
+ie 80
+_bo 79
+ele 79
+_ve 79
+mp 79
+_bet 78
+B 78
+it_ 77
+_vo 77
+'a 77
+n. 76
+_S 76
+hag 76
+hoa 75
+_hag 75
+len 75
+_N 75
+'hoa 74
+_E 74
+ir 74
+hag_ 74
+_hag_ 74
+mañ 74
+as_ 73
+eze 73
+ont_ 73
+_. 73
+iñ 73
+r, 72
+pr 72
+ed_ 72
+n._ 72
+re_ 72
+in_ 72
+r,_ 72
+_H 71
+'he 70
+t. 70
+gou 70
+em_ 70
+_br 70
+rae 70
+rez 69
+t._ 69
+bet_ 69
+net 69
+dr 68
+_eo_ 68
+ll_ 68
+mo 67
+po 67
+oul 67
+rou 67
+c'hoa 67
+a- 67
+vel 67
+oc'h_ 67
+nna 66
+_B 66
+met 65
+ec' 65
+ec'h 65
+R 64
+den 64
diff --git a/test/user-template/user/fingerprint/catalan.lm b/test/user-template/user/fingerprint/catalan.lm
new file mode 100644
index 000000000000..086a45b50c50
--- /dev/null
+++ b/test/user-template/user/fingerprint/catalan.lm
@@ -0,0 +1,400 @@
+_ 16604
+e 5091
+a 4937
+s 3120
+r 3037
+i 2987
+l 2747
+n 2641
+t 2466
+o 2274
+d 1775
+c 1740
+u 1515
+a_ 1460
+s_ 1416
+_d 1116
+e_ 1067
+p 1014
+m 995
+es 985
+de 972
+_de 842
+en 700
+_l 691
+re 652
+_e 637
+de_ 611
+el 602
+_de_ 601
+_a 600
+, 599
+,_ 599
+er 598
+la 584
+ar 583
+_p 550
+l_ 547
+ci 522
+n_ 518
+es_ 515
+an 515
+ra 499
+nt 495
+ta 495
+b 476
+_c 452
+al 450
+v 440
+g 428
+. 420
+on 420
+or 404
+t_ 402
+at 396
+._ 377
+r_ 372
+i_ 371
+la_ 368
+_i 364
+_la 351
+_la_ 325
+f 325
+le 322
+te 312
+' 311
+_s 308
+st 308
+se 305
+ó 302
+ue 302
+na 301
+os 301
+qu 300
+q 300
+el_ 299
+it 292
+co 290
+ri 277
+ca 277
+ti 273
+ac 272
+in 268
+ll 264
+ic 264
+me 259
+un 257
+que 248
+C 248
+tr 244
+ns 242
+ió 238
+_i_ 236
+ad 233
+ent 232
+_el 227
+ne 226
+_t 223
+_co 221
+_m 221
+_C 217
+en_ 217
+li 217
+ia 212
+à 212
+pe 207
+_a_ 207
+pr 206
+ció 203
+ó_ 203
+pa 203
+ro 202
+o_ 198
+E 198
+di 197
+io 197
+ls 196
+h 192
+_q 192
+_qu 192
+_en 187
+aci 186
+am 186
+ec 183
+to 183
+as 180
+om 180
+ni 180
+da 179
+ió_ 179
+si 178
+ls_ 176
+L 175
+ma 172
+res 172
+ur 171
+_el_ 162
+rt 162
+ue_ 160
+A 160
+os_ 159
+_que 159
+que_ 158
+_r 158
+po 157
+_es 155
+er_ 155
+_que_ 155
+M 155
+_se 153
+va 153
+del 153
+ció_ 151
+_pr 151
+is 150
+_en_ 149
+P 147
+_pe 146
+_del 145
+ts 145
+lo 145
+_M 144
+ct 144
+_u 144
+ol 143
+ve 141
+_L 140
+x 140
+y 140
+a,_ 139
+a, 139
+nc 138
+men 137
+al_ 137
+_f 137
+_re 137
+_P 136
+ació 136
+les 136
+rs 134
+est 133
+tu 131
+_E 130
+et 130
+s,_ 129
+_un 129
+na_ 129
+_v 129
+s, 129
+ion 127
+per 126
+so 125
+em 125
+at_ 124
+no 124
+j 124
+br 123
+nt_ 122
+ar_ 122
+sa 121
+_n 119
+les_ 118
+é 118
+ce 117
+il 117
+ell 116
+_per 114
+í 114
+ob 113
+re_ 113
+ir 113
+_A 112
+ons 112
+do 112
+ua 112
+con 112
+ment 111
+gu 111
+ts_ 110
+ss 110
+ns_ 109
+ant 109
+ra_ 109
+Co 109
+par 108
+l' 107
+d' 107
+_l' 107
+els 107
+tat 107
+sc 106
+_d' 106
+an_ 105
+_Co 105
+vi 104
+els_ 104
+ica 104
+ran 103
+ul 102
+iv 102
+S 102
+_del_ 102
+del_ 102
+mb 101
+mi 101
+ita 101
+nta 100
+_pa 99
+_o 99
+_con 98
+ació_ 97
+rn 96
+_in 96
+ia_ 96
+z 96
+im 95
+rr 95
+art 94
+ta_ 93
+com 93
+tre 92
+_h 92
+s. 91
+mp 90
+ie 90
+J 90
+s._ 89
+cio 89
+_le 89
+bre 88
+_ca 88
+_al 88
+sta 88
+_com 88
+cu 88
+à_ 87
+pre 87
+fe 86
+ba 86
+tra 86
+ge 85
+pro 85
+_les 84
+des 84
+ter 84
+_po 84
+_les_ 84
+T 84
+_J 84
+nd 84
+cion 84
+_S 84
+ura 83
+nci 82
+va_ 81
+ha 81
+ona 81
+ent_ 80
+ues 80
+oc 80
+ea 80
+nte 80
+és 80
+_di 79
+ui 79
+as_ 78
+ut 78
+ici 78
+res_ 78
+us 77
+ot 77
+ara 77
+ip 75
+rm 75
+ab 75
+eg 75
+_per_ 75
+ng 75
+'a 75
+I 75
+per_ 75
+rec 74
+du 74
+_tr 74
+è 73
+cia 73
+_no 73
+b_ 73
+_par 72
+ep 72
+id 72
+lle 71
+rc 71
+_pro 70
+D 69
+G 69
+ga 69
+fo 69
+una 68
+El 68
+lit 68
+un_ 68
+ques 68
+amb 67
+ix 67
+és_ 67
+_G 67
+era 67
+cr 67
+) 66
+da_ 66
+- 66
+sp 66
+y_ 66
+ada 66
+tor 66
+( 66
+_( 66
+_T 65
+ment_ 65
+B 65
+_es_ 65
+Ma 65
+V 65
+uc 65
+ect 65
+ame 64
+iu 64
+_Ma 64
+orn 64
+_B 64
+_D 64
+Ca 64
+sti 64
+_g 63
+esc 63
+rd 63
+una_ 63
+là 62
+" 62
+ed 62
+amen 61
+mo 61
+ions 61
+_El 61
+_Ca 61
+Jo 61
+eu 61
+ari 61
+lt 61
+F 61
+u_ 61
+ament 60
+_V 60
+m_ 60
+fi 60
+au 60
+ev 60
+La 60
+itat 59
+_ha 59
diff --git a/test/user-template/user/fingerprint/chinese_simplified.lm b/test/user-template/user/fingerprint/chinese_simplified.lm
new file mode 100644
index 000000000000..622b89c3ba80
--- /dev/null
+++ b/test/user-template/user/fingerprint/chinese_simplified.lm
@@ -0,0 +1,400 @@
+_
+,_
+_,_
+_,
+,
+çš„
+çš„_
+_çš„
+_çš„_
+_。
+。_
+。
+_。_
+国
+了_
+了
+_了_
+在
+_了
+_ï¿¥_
+_在
+_1_
+_1
+_ï¿¥
+国_
+1
+在_
+ï¿¥_
+ï¿¥
+å¹´
+1_
+_在_
+_ï¼
+_ï¼_
+部
+ï¼
+ï¼_
+5_
+æ°‘
+_5
+_5_
+5
+政
+å·¥
+ã€_
+_å¹´
+_æ—¥
+æ—¥
+_ã€
+å¹´_
+行
+_ã€_
+建
+ã€
+ï¼”
+多_
+多
+ï¼–
+百
+作
+会
+æ—¥_
+_百
+_建
+ç†
+和
+_ï¼”
+军
+_多
+_多_
+_百_
+_部
+_æ—¥_
+å…³
+_ï¼–_
+和_
+æˆ
+百_
+_ï¼–
+_和_
+_和
+ï¼”_
+è¿›
+ï¼–_
+_军
+_ï¼”_
+_万_
+ï¼™
+我
+_万
+展
+å¾—
+地
+们
+产
+举
+过
+主
+上
+ç›®
+行_
+于
+一
+万
+_国
+å…¨
+å‘
+到_
+_è¿›
+_å·¥
+_过
+人
+_ï¼™_
+_我
+到
+个_
+个
+_上
+_ï¼™
+万_
+_举
+ä¸
+部_
+_å…³
+ï¼™_
+们_
+é•¿
+_政
+å¼€
+战
+ç»
+_性
+_上_
+并
+性
+æ²»_
+大
+_工作
+_个
+æ°‘_
+_内_
+ä»–
+è¿™
+_内
+æ²»
+计
+å“
+术
+工作_
+å…±
+县
+内
+―_
+区_
+员_
+_―
+术_
+_工作_
+上_
+部门
+_部门
+作_
+_并
+_è¿™
+一_
+于_
+分
+区
+å“_
+_引
+_å¼€
+ç³»
+员
+县_
+_―_
+_ä¸
+工作
+_一_
+―
+_å‘
+_到_
+_ä»–
+_到
+_æ°‘
+主义
+_å¹´_
+_å…¨
+生
+_å…±
+_个_
+性_
+é—¨
+_性_
+地_
+å¾€
+机
+案
+引
+åˆ
+内_
+_一
+展_
+义
+府
+问题_
+里_
+常
+å–得了
+市
+期
+è¿™_
+æ•°
+é—¨_
+å°±
+è¦_
+ç­‰_
+å°
+ä»–_
+å­—
+家
+社会
+技
+å¾—_
+å°†
+_分_
+å–得了_
+è¥
+8
+女
+级
+约
+_å°†_
+ç»
+统
+厂_
+我们
+安
+å­—_
+_厂_
+大_
+#_
+_作
+å·¥_
+æ–‡
+å°†_
+æ–°
+组
+外
+_å·²_
+å·²
+产_
+_中
+_产
+_技术_
+_生产
+过_
+但
+ä»·
+ç»_
+å‡
+å·²_
+_之
+_技
+家_
+事
+ï¼’
+_举行_
+è”åˆå›½_
+中
+严
+è®­
+_å…ƒ_
+_ç­‰_
+å¾€_
+之
+_但
+_å‘展
+问题
+_机
+åŽ
+_å–得了_
+_市_
+政治_
+厂
+_战
+å–
+务
+_但_
+é•¿_
+政_
+几
+刚
+_æˆ
+_å_
+事_
+_会
+_8_
+会主义
+部门_
+_女
+_ï¼’_
+机_
+_å·²
+_â€
+ç†_
+å…¬
+å„
+技术
+å…ƒ_
+_èŒå·¥
+ç»æµŽ_
+举行
+_#_
+_军民
+_问题
+义_
+之_
+举行_
+_æ–°
+解
+_两
+_è¿™_
+得了
+_å¾—_
+_几_
+_é—®
+两_
+我们_
+进行
+å–å¾—
+_æ–‡
+_ä»–_
+_é•¿
+_è”åˆ
+_过_
+_计
+_进行_
+法国_
+建设_
+_说
+题_
+é‡
+_政治
+_市
+里
+_解
+_政府
+å£
+è¦
+_å‡
+å‘展_
+è”åˆå›½
+_组
+几_
+_我们_
+åŽ_
+_ç»
+_美
+æ¥_
+åˆå›½_
+济_
+å£_
+â€_
+å…ƒ
+#
+府_
+军民
+并_
+èŒå·¥
+_8
+æˆ_
+约_
+_ç­‰
+级_
+次_
+_社会主
+_ï¼’
+_政治_
+_â€_
+_英
+得了_
+_#
+_å‘展_
+_社
+生产
+_æ¡
+军民_
+â€
+_èŒ
+_å–得了
+_è”
+å°±_
+_我们
+å‘展
+两
+è®®
+_å°
+_è”åˆå›½
diff --git a/test/user-template/user/fingerprint/chinese_traditional.lm b/test/user-template/user/fingerprint/chinese_traditional.lm
new file mode 100644
index 000000000000..6708981ba6e7
--- /dev/null
+++ b/test/user-template/user/fingerprint/chinese_traditional.lm
@@ -0,0 +1,400 @@
+_
+ï¹_
+_ï¹_
+ï¹
+_ï¹
+çš„
+_çš„
+çš„_
+_çš„_
+。
+_。
+。_
+_。_
+å¹´
+_會
+會_
+_會_
+å¹´_
+_å¹´_
+é›»
+會
+_å¹´
+_在
+é›»_
+_是_
+_é›»_
+一
+æ–¼
+å­¸_
+_æ–¼_
+_æ–¼
+在
+_é›»
+å­¸
+是_
+港
+_å­¸_
+在_
+_是
+æ–¼_
+_在_
+_å­¸
+是
+ä¸_
+_å
+_ä¸
+_港_
+_港
+_ä¸_
+å_
+_一
+å“¡
+å“¡_
+_一_
+ä¸
+_å_
+一_
+港_
+_ç½²
+_å“¡_
+_å“¡
+_業
+業
+_ç½²_
+業_
+_業_
+ç½²_
+ç½²
+_事
+_åŒ
+æ©Ÿ
+_國_
+,
+ã€
+_,_
+_å…§
+ã€_
+_外_
+_åŒ_
+_政_
+_å…¬_
+為
+外
+å…¬
+_å…¬
+有
+_å…§_
+åŒ
+_政
+國_
+國
+å…¬_
+香
+_事_
+外_
+事
+å…§_
+_,
+_ã€
+政
+_外
+_ã€_
+香_
+政_
+å…§
+åŒ_
+事_
+,_
+_國
+為_
+_é•·_
+_較_
+_æ–¹_
+_用_
+ç­‰_
+ç²
+錦
+_æ–‡_
+_中
+_錦
+用
+_通
+_較
+_ç­‰
+有_
+_é•·
+_è·¯
+通
+_è­¦_
+_åŠ
+_åŠ_
+_è­¦
+_香
+錦_
+_訴
+中_
+_話
+_有_
+通_
+時_
+ç²_
+_予
+è·¯_
+較_
+æ–¹_
+ç”°
+è­¦
+æ©Ÿ_
+_訴_
+_ç”°_
+ç­‰
+_有
+話_
+_æ©Ÿ_
+_予_
+è·¯
+時
+æ–¹
+æ—¥
+è­¦_
+_通_
+訴_
+_用
+_æ–¹
+åŠ_
+ç”°_
+_話_
+_中_
+_香_
+訴
+_ç”°
+_æ–‡
+_錦_
+三
+較
+用_
+_時_
+中
+_ç­‰_
+åŠ
+話
+_æ©Ÿ
+_ç²
+ä¹
+æ–‡
+_時
+_è·¯_
+_ç²_
+é•·
+_為_
+_為
+予
+é•·_
+予_
+æ–‡_
+_æ—¥_
+ä¹_
+途_
+_高
+è£_
+æ•…_
+_室
+_發_
+_控_
+å‰_
+回:
+_查_
+_三
+_安
+_以
+_控
+途
+_安_
+_è£
+_士_
+_雇
+_大_
+_上_
+_èµ·
+出_
+_三_
+_人_
+_èµ·_
+室_
+_人
+_分_
+_至_
+上_
+_出_
+第
+_*
+至
+_查
+程
+_ç…™_
+_生_
+_以_
+_åª
+者
+_å¯
+三_
+_*_
+分_
+_途
+_å‰
+_分
+_ç·š_
+_出
+發
+_與_
+生
+ç”±
+å¯_
+ç…™_
+_ç”±_
+_ç·š
+者_
+至_
+æ—¥_
+åª_
+ç…™
+發_
+_使
+_使_
+查
+_第
+_雇_
+以_
+_åª_
+控_
+安_
+*
+與_
+ç·š
+_與
+_至
+改
+人_
+大_
+_上
+_高_
+æ•…
+èµ·_
+高
+ç·š_
+大
+控
+士
+_æ•…_
+_作_
+使
+_ç”±
+ç”±_
+_途_
+安
+作
+*_
+以
+_生
+來
+_大
+回
+_æ—¥
+_å‰_
+å››
+_ä¹_
+_ä¹
+人
+_è£_
+上
+_發
+_作
+士_
+_æ•…
+作_
+高_
+雇
+åª
+å¯
+:
+è£
+使_
+èµ·
+出
+å‰
+_ç…™
+_å¯_
+雇_
+_室_
+生_
+å…«
+_士
+查_
+分
+室
+與
+也_
+肇_
+和_
+_物_
+_如_
+_霧_
+主_
+_商_
+ç´„
+_府_
+到_
+é”
+é“
+都_
+黨_
+éŽ
+_é‡_
+_者_
+未_
+_ä¿®_
+_ç´„_
+別_
+郵_
+_能_
+來_
+_霧
+_車
+ï¼
+_å¸_
+_排
+_該_
+_柙_
+被_
+總_
+_越
+å‘Ž_
+_資
+_排_
+期_
+_夜_
+_ä¿®
+å·´_
+_育_
+_歌_
+_號_
+_åœ_
+_調
+_亦_
+_æ ¡
+_)
+_後_
+å…¥_
+_便
+_訊
+_期_
+脹_
+_而_
+_é‡
+o
+_該
+_o
+_(
+程_
diff --git a/test/user-template/user/fingerprint/croatian.lm b/test/user-template/user/fingerprint/croatian.lm
new file mode 100644
index 000000000000..b054ac34ab89
--- /dev/null
+++ b/test/user-template/user/fingerprint/croatian.lm
@@ -0,0 +1,400 @@
+_ 36598
+a 9456
+o 9050
+i 8526
+e 7955
+n 5513
+j 5379
+s 4971
+t 4125
+r 3889
+u 3423
+je 3281
+l 3231
+e_ 3177
+d 3128
+k 2992
+v 2891
+a_ 2835
+o_ 2679
+m 2645
+p 2316
+_s 2212
+i_ 2205
+y 2174
+c 1894
+z 1867
+je_ 1613
+_n 1593
+g 1581
+_p 1490
+b 1386
+u_ 1382
+, 1208
+,_ 1208
+st 1203
+_j 1202
+na 1159
+_je 1118
+_d 1105
+_i 1104
+. 1069
+._ 1058
+ra 1017
+ko 981
+ni 980
+_je_ 918
+ij 914
+ti 911
+no 891
+da 884
+to 879
+_k 863
+_o 856
+cy 839
+li 838
+ne 790
+sy 786
+- 785
+pr 760
+_u 748
+po 734
+ta 711
+_b 705
+_t 704
+la 699
+ja 699
+an 691
+m_ 680
+ov 674
+ije 673
+_z 669
+ka 662
+ri 652
+lo 651
+vo 643
+re 641
+is 626
+in 623
+se 623
+va 622
+_m 617
+oj 614
+_po 594
+_pr 592
+bi 588
+en 582
+il 578
+os 576
+vi 572
+nj 569
+ak 564
+_na 558
+im 558
+da_ 553
+od 550
+ao 550
+al 549
+om 545
+na_ 533
+_se 524
+_i_ 523
+h 517
+_g 511
+ma 508
+at 502
+cj 501
+og 497
+-- 493
+ro 493
+on 485
+av 480
+_da 474
+_ne 474
+ed 472
+zy 471
+se_ 466
+_se_ 458
+_bi 457
+ao_ 452
+ad 452
+lj 445
+es 444
+ji 441
+_v 433
+_c 430
+za 421
+go 418
+_r 413
+_u_ 411
+yi 410
+ek 406
+di 403
+sa 396
+et 393
+ic 391
+io 390
+_da_ 389
+to_ 389
+as 386
+_ko 383
+ye 378
+ar 378
+mo 373
+le 367
+or 364
+ju 363
+el 354
+tr 354
+io_ 352
+ve 345
+lo_ 344
+su 344
+ol 344
+am 344
+iz 343
+li_ 338
+ti_ 336
+sto 323
+n_ 321
+it 319
+_za 319
+sta 317
+_ni 316
+te 312
+nu 312
+a, 309
+a,_ 309
+ya 309
+do 304
+om_ 303
+la_ 300
+no_ 299
+_na_ 299
+d_ 297
+ko_ 296
+aj 294
+ik 292
+ru 291
+ga 291
+em 288
+nje 283
+dj 281
+ne_ 281
+k_ 277
+_st 276
+koj 276
+ec 274
+_ka 272
+_su 270
+ob 265
+-_ 263
+az 261
+sv 260
+_koj 260
+im_ 260
+ije_ 259
+pa 258
+ot 257
+yt 256
+ok 255
+su_ 255
+ih 254
+me 253
+dn 253
+_cy 253
+iv 251
+syt 248
+g_ 247
+--_ 246
+_- 246
+kr 246
+--- 246
+a. 245
+e,_ 245
+---_ 245
+e, 245
+er 245
+a._ 244
+_iz 244
+mi 243
+_---_ 242
+cyi 242
+_-- 242
+_--- 242
+jed 240
+h_ 239
+_a 239
+_sa 237
+j_ 236
+_l 231
+_sv 229
+_to 229
+sk 228
+ih_ 224
+ja_ 223
+pro 223
+yn 222
+t_ 222
+ost 221
+_do 221
+oc 219
+gl 218
+_su_ 216
+og_ 216
+uc 214
+s_ 214
+bil 213
+oz 213
+ki 212
+ni_ 212
+nij 209
+ako 208
+eg 208
+ut 205
+pre 205
+ci 204
+ji_ 203
+_od 203
+ilo 202
+ati 202
+ac 201
+ns 200
+_mo 197
+rij 196
+bo 195
+ovo 195
+ku 195
+dje 194
+ma_ 192
+_bil 191
+cje 186
+sti 186
+_go 186
+de 185
+sl 183
+_pro 182
+ju_ 182
+nije 181
+tv 180
+lje 179
+isy 179
+pri 178
+_pre 177
+dr 177
+e._ 177
+e. 177
+op 176
+ima 176
+anj 175
+jen 175
+us 172
+ilo_ 172
+_ra 170
+S 167
+ecj 166
+iti 166
+sp 163
+_S 161
+vr 161
+i. 161
+i._ 161
+zn 161
+ali 161
+i,_ 160
+i, 160
+ap 157
+nije_ 157
+nst 156
+pi 156
+ga_ 156
+_sy 155
+_nj 155
+jes 155
+ran 155
+vo_ 155
+yto 154
+ev 153
+_to_ 152
+_pri 151
+est 150
+N 150
+ins 150
+ist 149
+ir 149
+o, 148
+vj 148
+vje 148
+o,_ 148
+B 148
+zi 147
+jec 147
+gov 147
+yto_ 147
+syto 146
+ton 146
+od_ 145
+O 144
+rije 144
+lik 143
+on_ 142
+ocy 142
+W 142
+ba 142
+_W 141
+kao 141
+Wi 141
+_N 141
+inst 141
+_nij 141
+_nije 140
+_Wi 140
+syto_ 140
+lic 139
+P 139
+ovi 138
+_tr 138
+rs 137
+ez 137
+edn 136
+_P 136
+si 136
+ili 136
+du 136
+Winst 135
+cye 135
+nston 135
+ston 135
+ud 135
+kao_ 135
+Wins 135
+insto 135
+oji 135
+nsto 135
+Win 135
+raz 135
+zye 135
+_Win 134
+ova 134
+_Wins 134
+_on 133
+ako_ 133
+odi 133
+cya 133
+ila 133
+icy 133
+oj_ 133
+ke 133
+va_ 132
+ija 132
+_is 132
+jel 132
+oje 130
+pu 130
+cje_ 130
+bi_ 129
+rat 128
+ce 128
+tu 128
+mu 128
+ve_ 127
diff --git a/test/user-template/user/fingerprint/czech.lm b/test/user-template/user/fingerprint/czech.lm
new file mode 100644
index 000000000000..097bbc5b2241
--- /dev/null
+++ b/test/user-template/user/fingerprint/czech.lm
@@ -0,0 +1,400 @@
+_ 26378
+o 5870
+e 5354
+a 4740
+n 4462
+t 3745
+s 3438
+i 3187
+v 3118
+l 2891
+r 2754
+k 2566
+d 2508
+m 2198
+u 2197
+p 2032
+í 1924
+c 1678
+h 1572
+z 1544
+á 1522
+_p 1299
+e_ 1266
+y 1231
+a_ 1219
+j 1219
+_s 1156
+b 1079
+o_ 1065
+Ä› 1043
+_v 1038
+, 952
+,_ 946
+st 945
+_n 911
+é 878
+. 870
+í_ 848
+Å™ 822
+._ 803
+ní 782
+ov 757
+_z 723
+i_ 716
+u_ 684
+ro 674
+en 656
+ý 647
+ž 639
+po 630
+ch 629
+Ä 625
+na 599
+_a 598
+sk 592
+Å¡ 563
+ho 552
+_d 551
+ra 545
+m_ 539
+y_ 530
+_t 512
+ko 504
+_k 503
+le 502
+_j 501
+_o 486
+to 479
+pr 471
+ne 468
+ní_ 462
+je 458
+é_ 456
+ti 455
+od 433
+li 432
+va 432
+_po 429
+_m 428
+al 424
+te 424
+ou 423
+ed 418
+se 415
+la 410
+no 397
+os 382
+lo 377
+an 376
+_pr 375
+ů 375
+v_ 372
+ře 370
+_a_ 364
+em 363
+at 360
+ta 359
+do 357
+t_ 357
+_b 355
+or 349
+h_ 345
+_v_ 338
+ch_ 327
+S 325
+ce 323
+av 323
+pÅ™ 322
+ni 319
+ké 316
+er 315
+nÄ› 315
+_na 313
+na_ 312
+_ne 311
+de 308
+ic 307
+in 306
+_se 306
+l_ 304
+dn 302
+za 298
+_pÅ™ 293
+ě_ 291
+ol 290
+_je 281
+ob 280
+is 277
+ve 274
+ho_ 272
+es 270
+ot 268
+ak 265
+vo 263
+ná 260
+il 257
+se_ 257
+it 256
+et 253
+ad 250
+by 249
+P 242
+_r 242
+k_ 242
+ost 241
+_se_ 241
+tr 238
+me 237
+pro 234
+že 234
+ka 230
+_za 227
+om 224
+el 223
+_P 223
+on 218
+_pro 216
+ou_ 216
+tu 215
+O 212
+mi 212
+ku 211
+_u 210
+_do 208
+_l 207
+_na_ 206
+N 205
+ské 205
+ím 205
+íc 205
+ý_ 203
+mÄ› 203
+_S 200
+oz 200
+V 200
+ze 198
+da 194
+sl 192
+á_ 191
+ova 190
+mo 190
+re 189
+so 187
+vy 186
+ej 185
+rá 184
+ar 184
+s_ 183
+vÄ› 183
+A 181
+ru 180
+_st 178
+f 178
+éh 177
+ého 176
+kt 176
+tn 175
+g 174
+bo 174
+ez 173
+ci 172
+ký 172
+né 170
+M 170
+án 169
+as 168
+vi 167
+ři 167
+ac 166
+že_ 165
+ýc 165
+ž_ 165
+ck 164
+K 164
+B 164
+ých 164
+vá 162
+_c 162
+ého_ 162
+ení 161
+lá 160
+_ž 160
+ří 160
+pře 159
+ec 158
+ů_ 157
+J 156
+vn 156
+_h 155
+ké_ 155
+ok 154
+sta 154
+to_ 152
+vý 152
+nt 151
+ých_ 149
+lo_ 149
+_by 149
+dy 149
+_pře 148
+ce_ 147
+R 146
+n_ 146
+ád 146
+pa 145
+vé 145
+am 145
+mu 145
+ný 145
+ud 144
+_Ä 144
+_B 142
+ter 141
+ně_ 141
+Äe 140
+Å¡e 140
+_V 140
+_ko 140
+li_ 139
+dÄ› 137
+hl 137
+je_ 137
+ji 137
+ist 135
+jí 135
+- 134
+ik 133
+si 133
+ál 132
+em_ 132
+_to 132
+_vy 131
+sp 130
+ut 130
+_J 130
+_že 130
+_M 129
+di 129
+kon 128
+la_ 128
+tí 128
+_ro 127
+ns 127
+ek 126
+ick 126
+T 126
+yl 125
+Än 125
+rn 125
+_že_ 124
+op 124
+sti 124
+kte 124
+řed 124
+edn 123
+us 121
+ím_ 120
+" 119
+z_ 119
+str 118
+ti_ 118
+ém 118
+vat 118
+d_ 118
+_ve 118
+áv 118
+ení_ 117
+iv 117
+oj 117
+_kt 117
+ěl 117
+val 116
+eb 116
+_K 115
+tÅ™ 115
+_kte 115
+át 115
+_i 114
+_N 114
+D 114
+kl 114
+ny 114
+byl 113
+ev 113
+ri 113
+ú 113
+ky 111
+sm 111
+oh 111
+E 110
+ma 110
+ět 110
+ský 110
+kter 109
+nu 109
+le_ 108
+ja 107
+zá 107
+tÄ› 106
+tá 106
+zn 106
+let 105
+aj 105
+sto 105
+ší 105
+me_ 105
+-_ 105
+u, 105
+sv 104
+_le 104
+pol 104
+L 104
+_- 104
+ln 104
+pod 104
+H 103
+zi 103
+kéh 103
+kého 103
+_ná 103
+ent 102
+u,_ 102
+_od 102
+né_ 101
+_-_ 101
+al_ 101
+_kter 101
+do_ 100
+nos 100
+cí 100
+rav 99
+ran 99
+_sv 99
+ká 98
+eÄ 98
+ním 98
+bu 97
+_z_ 97
+ích 97
+_byl 97
+ání 96
+rov 96
+kr 96
+dá 95
+ové 95
+dl 95
+uj 95
+nost 95
+ém_ 95
+ech 94
+ly 94
+oc 94
+vé_ 93
+_o_ 93
+dy_ 93
+ak_ 93
+nsk 93
+_so 93
+_ob 92
+nc 92
diff --git a/test/user-template/user/fingerprint/danish.lm b/test/user-template/user/fingerprint/danish.lm
new file mode 100644
index 000000000000..5e5a61a98638
--- /dev/null
+++ b/test/user-template/user/fingerprint/danish.lm
@@ -0,0 +1,400 @@
+_ 21274
+e 9291
+r 5307
+n 4733
+i 3976
+t 3948
+s 3751
+a 3296
+l 3063
+d 3025
+o 2868
+g 2471
+er 2164
+k 2002
+m 1680
+e_ 1655
+en 1613
+f 1507
+de 1484
+r_ 1379
+v 1245
+u 1176
+t_ 1081
+n_ 1032
+er_ 992
+b 942
+. 870
+ge 868
+._ 831
+re 816
+h 816
+et 813
+te 813
+p 806
+in 788
+or 775
+_s 753
+_a 749
+en_ 712
+_e 691
+ti 689
+an 687
+, 681
+,_ 677
+_f 655
+_d 645
+el 642
+ng 635
+nd 634
+g_ 634
+se 615
+le 615
+st 607
+s_ 601
+_o 572
+ne 560
+li 537
+et_ 524
+es 521
+_i 512
+ri 511
+sk 510
+_de 498
+Ã¥ 497
+ar 475
+ed 473
+ig 463
+at 452
+_m 446
+is 443
+fo 441
+æ 441
+ve 438
+_k 434
+ø 432
+der 429
+ke 428
+ing 427
+og 426
+_b 412
+me 408
+il 407
+for 405
+ns 394
+y 389
+_h 380
+_t 374
+on 371
+d_ 370
+al 362
+be 359
+_fo 351
+af 336
+de_ 335
+_og 333
+_p 332
+og_ 325
+om 325
+_for 324
+_og_ 313
+l_ 308
+nge 302
+i_ 295
+_v 294
+c 289
+ter 283
+ll 280
+ni 278
+nde 278
+rs 277
+_af 277
+un 275
+ra 271
+ko 271
+den 270
+_i_ 268
+id 265
+til 265
+j 265
+vi 264
+D 260
+ere 256
+ma 255
+si 253
+f_ 252
+af_ 238
+_af_ 235
+ik 235
+m_ 234
+Ã¥_ 232
+_ti 227
+_D 226
+_u 226
+_er 225
+nt 224
+_en 224
+ls 221
+es_ 216
+lig 216
+ger 216
+re_ 210
+ag 210
+_me 207
+at_ 204
+lle 200
+ge_ 200
+_til 200
+ige 199
+_er_ 199
+der_ 199
+em 199
+ds 197
+r. 195
+io 195
+r._ 195
+ud 193
+_at 192
+_at_ 191
+ta 190
+els 190
+_l 190
+ha 190
+il_ 189
+or_ 189
+ke_ 186
+rt 185
+gen 184
+ka 183
+- 180
+rk 180
+ning 178
+ol 178
+nin 178
+la 177
+ld 175
+De 175
+it 173
+ede 172
+ed_ 171
+_ko 171
+lse 171
+ek 168
+else 167
+inge 167
+på 167
+ng_ 167
+_på 167
+iv 166
+ør 166
+so 165
+he 165
+ens 165
+ske 165
+ind 164
+til_ 163
+rn 163
+ide 162
+ev 162
+den_ 162
+to 162
+sen 160
+_be 160
+sa 160
+bl 158
+_g 158
+an_ 157
+det 156
+om_ 156
+ru 156
+va 155
+_til_ 155
+ste 154
+rd 153
+_på_ 152
+k_ 152
+på_ 152
+di 152
+kr 152
+K 151
+_De 149
+for_ 148
+te_ 148
+kon 148
+ver 147
+mm 146
+am 146
+_en_ 145
+_r 145
+ne_ 144
+ing_ 144
+tr 143
+le_ 142
+del 142
+_in 142
+gt 140
+_st 138
+S 138
+eg 138
+gs 138
+tt 138
+r, 137
+ser 137
+r,_ 137
+er. 137
+ro 137
+er._ 137
+_for_ 136
+ent 136
+kt 136
+eri 135
+ur 134
+lin 134
+B 133
+A 133
+sti 133
+ner 133
+da 133
+ris 132
+ion 132
+_K 131
+ern 131
+ers 130
+ist 130
+ær 130
+ige_ 130
+_si 130
+tte 129
+E 128
+_n 128
+nn 127
+_B 126
+_ha 126
+_. 126
+rne 125
+H 125
+_ud 125
+rin 124
+na 124
+und 124
+ft 124
+_der 124
+ku 123
+_A 122
+ler 120
+and 120
+end 120
+ns_ 120
+rg 119
+op 119
+er,_ 119
+er, 119
+ar_ 118
+P 118
+_S 117
+_H 117
+_._ 116
+ov 116
+erne 115
+tio 115
+med 115
+tion 115
+_E 115
+_P 115
+det_ 114
+pr 114
+e. 113
+ter_ 113
+: 113
+kk 113
+e._ 113
+e,_ 113
+e, 113
+od 113
+kke 113
+ten 113
+ling 113
+:_ 112
+mi 112
+eli 112
+lo 111
+som 111
+_den 111
+rb 110
+se_ 110
+ell 110
+sid 110
+nne 109
+fi 108
+lt 107
+v_ 107
+_de_ 107
+ark 106
+lige 106
+ngen 106
+ie 105
+_med 105
+_der_ 105
+ring 105
+a_ 105
+_vi 104
+-_ 104
+ys 103
+gel 103
+_so 103
+ia 103
+ive 102
+ej 101
+ati 101
+ren 101
+_det 101
+side 101
+ske_ 101
+br 100
+gi 100
+F 100
+M 100
+ul 99
+isk 99
+men 99
+n,_ 99
+age 99
+fr 99
+n, 99
+tu 98
+ts 98
+_ma 98
+nder 98
+ot 97
+dt 97
+R 97
+med_ 96
+ho 96
+ans 95
+_kon 95
+pe 95
+ce 94
+gr 93
+mme 92
+ret 92
+lige_ 92
+mu 91
+_med_ 91
+hv 91
+væ 91
+Det 91
+ens_ 91
+kl 91
+_M 90
+T 90
+ingen 90
+rm 90
+ill 89
+elle 89
+ef 89
+ene 89
+nds 89
+ove 89
+som_ 89
+C 88
+_den_ 88
diff --git a/test/user-template/user/fingerprint/drents.lm b/test/user-template/user/fingerprint/drents.lm
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/test/user-template/user/fingerprint/drents.lm
diff --git a/test/user-template/user/fingerprint/dutch.lm b/test/user-template/user/fingerprint/dutch.lm
new file mode 100644
index 000000000000..17a0626982a5
--- /dev/null
+++ b/test/user-template/user/fingerprint/dutch.lm
@@ -0,0 +1,400 @@
+_ 20104
+e 9848
+n 5323
+a 3733
+t 3683
+i 3490
+r 3195
+d 2876
+o 2845
+n_ 2443
+en 2439
+s 2195
+e_ 1842
+l 1837
+g 1522
+en_ 1500
+de 1489
+er 1388
+t_ 1377
+v 1253
+u 1217
+k 1204
+_d 1136
+h 1102
+m 1084
+an 939
+te 875
+j 857
+in 810
+_v 793
+r_ 751
+de_ 742
+ee 737
+p 732
+et 718
+ge 716
+aa 708
+b 703
+_e 686
+st 669
+z 668
+ie 662
+_de 655
+w 631
+c 611
+. 604
+s_ 582
+_de_ 576
+_h 572
+el 570
+ij 564
+._ 554
+et_ 531
+an_ 522
+he 505
+_o 497
+nd 478
+_i 475
+ar 459
+_m 451
+re 442
+ve 441
+' 428
+or 424
+ng 421
+at 418
+_s 415
+oo 403
+_z 401
+le 395
+_b 394
+_a 391
+_he 386
+va 385
+er_ 381
+me 372
+_w 368
+f 361
+on 351
+_t 351
+_va 345
+_g 342
+di 342
+nt 340
+, 335
+g_ 335
+,_ 334
+van 327
+ch 326
+is 326
+ing 325
+be 325
+ni 320
+it 317
+een 316
+_van 315
+al 310
+den 309
+ti 309
+van_ 307
+oe 302
+ke 302
+_van_ 299
+aar 299
+d_ 295
+we 293
+da 292
+tu 290
+_ee 290
+ud 287
+een_ 286
+li 284
+es 282
+_st 281
+ver 281
+ten 281
+ri 275
+nde 275
+der 274
+_in 270
+k_ 268
+vo 267
+het 266
+oor 264
+_het 262
+het_ 262
+_het_ 259
+_een 258
+l_ 258
+ze 257
+_n 254
+ro 248
+gen 243
+_een_ 241
+at_ 240
+op 238
+n. 238
+_en 237
+rs 237
+_da 235
+stu 232
+in_ 230
+_be 229
+_ge 228
+_k 226
+rd 226
+tud 220
+_en_ 220
+n._ 217
+te_ 209
+ei 208
+ent 206
+_me 203
+la 202
+ek 202
+ed 201
+ra 200
+stud 200
+en. 200
+ie_ 197
+ste 196
+_vo 195
+_in_ 193
+_stu 191
+zi 191
+om 189
+ui 189
+en._ 186
+ten_ 185
+_stud 185
+ude 184
+die 183
+ns 183
+_j 181
+D 179
+aan 179
+se 179
+ma 178
+_ve 176
+ne 174
+_p 174
+eg 173
+p_ 172
+ar_ 172
+aar_ 171
+_te 170
+ng_ 169
+_we 169
+'' 167
+_D 165
+ers 164
+_op 163
+dat 161
+dat_ 160
+ig 160
+ere 159
+eer 158
+_zi 158
+voor 156
+voo 156
+nge 155
+nder 151
+nte 151
+or_ 150
+ta 150
+je 149
+ing_ 148
+ll 148
+_ver 147
+jk 146
+oor_ 146
+_dat 145
+ijk 145
+ren 145
+is_ 145
+_dat_ 144
+_l 144
+and 144
+lij 143
+ter 143
+na 142
+uden 139
+tude 138
+_voor 136
+_voo 136
+ond 136
+ken 135
+cht 135
+_al 135
+ht 135
+wa 134
+ho 133
+em 133
+den_ 133
+pe 132
+sc 132
+un 131
+ur 131
+_di 130
+gen_ 130
+zo 129
+rt 129
+ev 128
+mo 128
+lijk 127
+_is 126
+stude 124
+ha 123
+to 122
+el_ 121
+og 121
+op_ 121
+sch 120
+ol 120
+ente 119
+_u 118
+pr 118
+end 118
+mi 117
+iet 116
+_aa 116
+eli 115
+dent 115
+ijn 115
+jn 115
+ou 115
+men 114
+_' 114
+tie 113
+_is_ 113
+nie 113
+tr 112
+ak 112
+id 112
+udent 111
+tuden 111
+uit 110
+_te_ 109
+aan_ 109
+ld 109
+S 108
+_aan 108
+ede 108
+ja 107
+nten 107
+it_ 107
+je_ 107
+ts 107
+erd 106
+est 106
+E 105
+_op_ 105
+ad 104
+al_ 104
+_ze 104
+_on 104
+rk 104
+lle 103
+ens 103
+gel 103
+m_ 103
+len 103
+_r 102
+ec 102
+inge 102
+met 102
+_met 101
+si 100
+die_ 100
+us 100
+onde 99
+_ni 99
+De 99
+eu 99
+dente 99
+enten 99
+ic 99
+_met_ 98
+f_ 98
+met_ 98
+no 97
+ko 96
+voor_ 96
+rde 96
+H 96
+ngen 95
+lo 95
+ot 95
+as 94
+zij 93
+_nie 92
+vi 92
+eb 92
+_De 92
+_zij 91
+ep 91
+wi 91
+_zo 91
+kt 91
+ege 91
+G 91
+bi 90
+j_ 90
+ij_ 90
+ze_ 90
+do 90
+lan 89
+ov 89
+udi 89
+ord 89
+onder 89
+V 88
+elij 88
+_wa 88
+elijk 88
+ef 88
+_die 87
+ag 86
+erk 86
+eren 86
+R 85
+ik 85
+_ma 85
+gr 85
+am 85
+_mo 84
+ul 84
+nn 83
+eve 83
+De_ 83
+maa 83
+ingen 83
+wo 83
+_'' 83
+O 83
+tudi 82
+I 82
+nt_ 82
+tudie 81
+ven 81
+udie 81
+nten_ 81
+_die_ 81
+jaa 80
+ka 80
+eke 80
+ite 80
+a_ 80
+_je 80
+ac 80
+jaar 80
+_je_ 79
+_H 79
+_zijn 79
+zijn 79
+n, 78
+nen 78
+N 78
+n,_ 78
+ijn_ 77
diff --git a/test/user-template/user/fingerprint/english.lm b/test/user-template/user/fingerprint/english.lm
new file mode 100644
index 000000000000..ab71632c6214
--- /dev/null
+++ b/test/user-template/user/fingerprint/english.lm
@@ -0,0 +1,400 @@
+_ 20326
+e 6617
+t 4843
+o 3834
+n 3653
+i 3602
+a 3433
+s 2945
+r 2921
+h 2507
+e_ 2000
+d 1816
+_t 1785
+c 1639
+l 1635
+th 1535
+he 1351
+_th 1333
+u 1309
+f 1253
+m 1175
+p 1151
+_a 1145
+the 1142
+_the 1060
+s_ 978
+er 968
+_o 967
+he_ 928
+d_ 888
+t_ 885
+the_ 844
+_the_ 843
+on 842
+in 817
+y 783
+n_ 773
+b 761
+re 754
+, 734
+,_ 732
+an 732
+g 728
+w 718
+_i 707
+en 676
+f_ 599
+y_ 595
+of 594
+_of 592
+es 589
+ti 587
+v 580
+_of_ 575
+of_ 575
+nd 568
+at 549
+r_ 540
+_w 534
+it 522
+ed 496
+_p 494
+nt 485
+_c 462
+o_ 457
+io 450
+_an 439
+te 432
+or 425
+_b 418
+nd_ 407
+to 406
+st 402
+is 401
+_s 396
+_in 389
+ion 385
+and 385
+de 384
+ve 382
+ha 375
+ar 366
+_m 361
+and_ 360
+_and 360
+_and_ 358
+se 353
+_to 347
+me 346
+to_ 344
+ed_ 339
+. 330
+be 329
+_f 329
+._ 329
+_to_ 320
+co 317
+ic 316
+ns 308
+al 307
+le 304
+ou 304
+ce 293
+ent 279
+l_ 278
+_co 277
+tio 275
+on_ 274
+_d 274
+tion 268
+ri 266
+_e 264
+ng 253
+hi 251
+er_ 249
+ea 246
+as 245
+_be 242
+pe 242
+h_ 234
+_r 232
+ec 227
+ch 223
+ro 222
+ct 220
+_h 219
+pr 217
+in_ 217
+ne 214
+ll 214
+rt 213
+s,_ 210
+s, 210
+li 209
+ra 208
+T 207
+wh 204
+a_ 203
+ac 201
+_wh 199
+_n 196
+ts 196
+di 196
+es_ 195
+si 194
+re_ 193
+at_ 192
+nc 192
+ie 190
+_a_ 188
+_in_ 185
+ing 184
+us 182
+_re 182
+g_ 179
+ng_ 178
+op 178
+con 177
+tha 175
+_l 174
+_tha 174
+ver 173
+ma 173
+ion_ 171
+_con 171
+ci 170
+ons 170
+_it 170
+po 169
+ere 168
+is_ 167
+ta 167
+la 166
+_pr 165
+fo 164
+ho 164
+ir 162
+ss 161
+men 160
+be_ 160
+un 159
+ty 159
+_be_ 158
+ing_ 157
+om 156
+ot 156
+hat 155
+ly 155
+_g 155
+em 153
+_T 151
+rs 150
+mo 148
+ch_ 148
+wi 147
+we 147
+ad 147
+ts_ 145
+res 143
+_wi 143
+I 143
+hat_ 142
+ei 141
+ly_ 141
+ni 140
+os 140
+ca 139
+ur 139
+A 138
+ut 138
+that 138
+_that 137
+ati 137
+_fo 137
+st_ 137
+il 136
+or_ 136
+for 136
+pa 136
+ul 135
+ate 135
+ter 134
+it_ 134
+nt_ 133
+that_ 132
+_ha 129
+al_ 128
+el 128
+as_ 127
+ll_ 127
+_ma 125
+no 124
+ment 124
+an_ 124
+tion_ 122
+su 122
+bl 122
+_de 122
+nce 120
+pl 120
+fe 119
+tr 118
+so 118
+int 115
+ov 114
+e, 114
+e,_ 114
+_u 113
+ent_ 113
+Th 113
+her 113
+j 112
+atio 112
+ation 112
+_Th 111
+le_ 110
+ai 110
+_it_ 110
+_on 110
+_for 109
+ect 109
+k 109
+hic 108
+est 108
+der 107
+tu 107
+na 106
+_by_ 106
+by_ 106
+E 106
+by 106
+_by 106
+ve_ 106
+_di 106
+en_ 104
+vi 104
+m_ 103
+_whi 102
+iv 102
+whi 102
+ns_ 102
+_A 101
+ich 100
+ge 100
+pro 99
+ess 99
+_whic 99
+ers 99
+hich 99
+ce_ 99
+which 99
+whic 99
+all 98
+ove 98
+_is 98
+ich_ 97
+ee 97
+hich_ 97
+n,_ 96
+n, 96
+im 95
+ir_ 94
+hei 94
+ions 94
+sti 94
+se_ 94
+per 93
+The 93
+_pa 93
+heir 93
+id 93
+eir 93
+eir_ 93
+ig 93
+heir_ 93
+_no 93
+ev 93
+era 92
+_int 92
+ted 91
+_The 91
+ies 91
+art 91
+thei 90
+_ar 90
+_thei 90
+their 90
+_pro 90
+et 89
+_pe 88
+_mo 88
+ther 88
+x 87
+gh 87
+S 87
+_is_ 87
+ol 87
+ty_ 87
+_I 86
+nde 86
+am 86
+rn 86
+nte 86
+mp 85
+_su 84
+_we 84
+par 84
+_v 84
+pu 82
+his 82
+ow 82
+mi 82
+go 81
+N 81
+ue 81
+ple 81
+ep 80
+ab 80
+;_ 80
+; 80
+ex 80
+ain 80
+over 80
+_un 79
+q 79
+qu 79
+pp 79
+ith 79
+ry 79
+_as 79
+ber 79
+ub 78
+av 78
+uc 78
+s._ 77
+s. 77
+enc 77
+are 77
+iti 77
+gr 76
+his_ 76
+ua 76
+part 76
+ff 75
+eve 75
+O 75
+rea 74
+ous 74
+ia 74
+The_ 73
+ag 73
+mb 73
+_go 73
+fa 72
+on,_ 72
+ern 72
+t,_ 72
+on, 72
+t, 72
+_me 71
diff --git a/test/user-template/user/fingerprint/esperanto.lm b/test/user-template/user/fingerprint/esperanto.lm
new file mode 100644
index 000000000000..0eef3ec8894a
--- /dev/null
+++ b/test/user-template/user/fingerprint/esperanto.lm
@@ -0,0 +1,400 @@
+_ 57050
+a 16035
+i 12706
+e 12227
+o 12102
+n 10393
+s 8344
+l 7707
+r 7492
+t 7134
+k 5376
+u 4558
+j 3946
+a_ 3875
+m 3783
+d 3710
+p 3693
+la 2840
+s_ 2769
+e_ 2751
+. 2706
+_l 2635
+_k 2619
+v 2531
+n_ 2504
+o_ 2444
+i_ 2333
+._ 2278
+on 2238
+, 2193
+,_ 2182
+_la 2100
+en 2080
+j_ 2050
+as 2028
+la_ 2012
+ta 1956
+_la_ 1907
+an 1882
+_p 1850
+g 1831
+_e 1791
+_d 1778
+is 1737
+aj 1658
+st 1635
+_s 1575
+c 1526
+de 1517
+oj 1498
+er 1476
+ti 1456
+f 1443
+_a 1442
+b 1427
+ro 1379
+_m 1351
+ra 1341
+nt 1293
+ka 1270
+ri 1258
+al 1249
+as_ 1248
+aj_ 1213
+to 1209
+_de 1203
+_t 1200
+te 1179
+_n 1176
+is_ 1171
+in 1151
+ko 1145
+or 1114
+es 1083
+re 1034
+ia 1029
+li 1022
+de_ 1016
+_de_ 979
+ar 974
+_v 966
+vi 942
+lo 932
+x 928
+io 917
+ne 855
+no 848
+ni 843
+mi 835
+ma 819
+_ka 816
+el 815
+pr 771
+z 744
+un 734
+l_ 732
+po 730
+_f 725
+ø 724
+est 691
+na 687
+ki 679
+kaj 676
+si 665
+u_ 663
+kaj_ 660
+" 654
+tas 651
+le 650
+oj_ 648
+_i 643
+tr 642
+_pr 630
+_es 628
+jn 626
+pe 618
+_kaj 616
+ig 616
+_kaj_ 611
+do 608
+sta 606
+on_ 602
+ek 602
+ci 597
+r_ 595
+ý 594
+_r 593
+il 592
+_est 587
+di 586
+am 586
+_mi 582
+aý 578
+_vi 577
+mo 575
+ant 565
+_ne 562
+en_ 561
+o. 559
+æ 543
+iu 538
+o, 529
+ur 527
+o._ 527
+om 525
+o,_ 524
+at 521
+va 521
+- 519
+_en 518
+: 513
+:_ 512
+_ti 500
+M 496
+h 488
+nd 484
+me 484
+_al 481
+_ko 479
+ve 478
+ie 478
+_ki 473
+it 473
+L 466
+_b 465
+se 462
+em 452
+ol 450
+nta 449
+tu 448
+ik 444
+ov 443
+da 443
+_M 440
+_po 439
+tas_ 438
+ne_ 437
+et 437
+_ma 436
+_en_ 435
+su 429
+pl 426
+_L 425
+pa 420
+_o 417
+vo 408
+an_ 407
+ro_ 406
+sti 406
+nu 399
+kon 396
+stas 391
+m_ 391
+ir 388
+n. 386
+fa 386
+jn_ 382
+ku 382
+os 376
+ke 375
+n, 375
+esta 374
+n,_ 372
+_su 362
+ta_ 362
+stas_ 359
+xi 359
+Mi 358
+_ne_ 356
+al_ 355
+nk 353
+so 353
+n._ 352
+id 349
+_g 348
+estas 347
+ga 346
+_h 345
+per 345
+_Mi 340
+ok 339
+K 339
+mp 337
+_esta 337
+s,_ 335
+s, 335
+_se 333
+anta 332
+ul 326
+ran 325
+_" 323
+ý_ 322
+te_ 320
+ak 320
+aý_ 320
+ed 320
+rt 319
+ojn 318
+gi 318
+_æ 317
+tis 316
+gx 316
+mal 316
+ia_ 315
+ks 310
+_al_ 310
+mi_ 309
+S 309
+lu 309
+ns 308
+kt 305
+io_ 302
+ent 300
+? 300
+_K 300
+ec 300
+el_ 299
+_- 299
+li_ 299
+E 298
+þ 298
+_li 297
+fo 296
+ter 296
+_re 296
+A 295
+nto 294
+vi_ 292
+La 292
+_mal 290
+nte 288
+sp 287
+sa 287
+_mi_ 279
+ut 278
+op 278
+_ke 277
+bo 277
+ajn 276
+un_ 276
+T 274
+to_ 272
+-_ 272
+bl 272
+_an 271
+_La 271
+øi 269
+_S 268
+_pl 267
+_fa 266
+ni_ 266
+La_ 265
+_E 264
+N 263
+tis_ 263
+_tr 263
+' 262
+! 262
+_-_ 262
+pro 261
+iu_ 261
+iø 261
+nc 260
+_si 259
+du 257
+_kon 256
+ru 255
+_vi_ 254
+_j 253
+ce 251
+ke_ 249
+ap 248
+us 247
+be 247
+im 247
+B 246
+_ku 246
+_La_ 246
+tra 245
+ad 245
+uj 245
+ac 245
+ita 243
+pre 242
+_pro 242
+co 241
+rm 241
+_ni 238
+_pe 236
+?_ 234
+on. 234
+toj 234
+"_ 234
+j. 234
+_ke_ 233
+s. 232
+_A 231
+av 230
+ri_ 230
+_el 229
+por 229
+` 224
+ev 224
+las 223
+P 223
+j._ 221
+eni 220
+_T 220
+_B 219
+j,_ 218
+j, 218
+era 217
+_in 216
+on._ 216
+cx 216
+_N 215
+ion 215
+ab 215
+.. 214
+) 213
+fi 213
+or_ 212
+pri 212
+s._ 212
+_por 210
+ez 210
+in_ 210
+am_ 209
+on,_ 209
+ll 209
+æi 209
+on, 209
+_ve 208
+ris 208
+esti 208
+!_ 207
+men 206
+vas 205
+iel 204
+taj 203
+_c 201
+aro 201
+ank 200
+_pri 200
+jo 200
+ja 200
+ont 200
+lt 199
+_P 199
+igi 199
+_pa 197
+oj. 197
+( 196
+au 195
+oro 195
+ng 195
+_( 194
+sto 194
+ast 194
+ag 193
diff --git a/test/user-template/user/fingerprint/estonian.lm b/test/user-template/user/fingerprint/estonian.lm
new file mode 100644
index 000000000000..74a7aa014324
--- /dev/null
+++ b/test/user-template/user/fingerprint/estonian.lm
@@ -0,0 +1,400 @@
+_ 20738
+a 7004
+e 5699
+i 5321
+s 4731
+t 3769
+l 3448
+u 3446
+n 2902
+k 2584
+d 2202
+m 2043
+a_ 1758
+o 1684
+r 1429
+g 1174
+v 1151
+e_ 1139
+i_ 1136
+_k 1136
+s_ 1077
+h 1009
+, 995
+,_ 995
+_t 953
+p 953
+j 940
+ä 900
+is 896
+st 851
+se 841
+_s 822
+. 821
+as 801
+d_ 801
+le 800
+ta 794
+in 793
+_m 790
+ô 754
+._ 753
+t_ 746
+ma 710
+_p 680
+si 677
+_v 660
+es 636
+al 626
+us 619
+el 602
+_o 596
+_e 586
+ja 580
+_j 563
+te 562
+ü 549
+li 532
+va 515
+id 501
+ol 498
+tu 497
+da 490
+_n 480
+ku 478
+ud 459
+nu 455
+na 438
+ei 432
+ks 418
+mi 411
+ee 411
+u_ 407
+ka 400
+n_ 394
+b 394
+ga 386
+_l 384
+_a 380
+an 366
+ja_ 365
+et 358
+me 358
+l_ 350
+at 348
+la 341
+ad 340
+st_ 339
+ne 336
+ll 333
+_ta 332
+ra 330
+_ja 328
+ik 323
+en 318
+ni 308
+ul 305
+sa 302
+_ol 302
+nd 299
+_ja_ 299
+nud 296
+ii 291
+ko 286
+_se 285
+le_ 283
+aa 281
+is_ 281
+gi 270
+_te 269
+ag 269
+_va 268
+_ku 267
+ed 262
+em 255
+_mi 255
+ma_ 247
+ti 246
+ri 245
+_h 242
+gu 239
+id_ 238
+ast 237
+it 236
+ga_ 236
+un 232
+de 230
+ud_ 230
+ha 230
+ak 228
+ah 228
+uu 228
+il 227
+ôi 226
+as_ 223
+ke 222
+ar 220
+a, 220
+am 220
+_ko 220
+a,_ 220
+_ka 220
+ai 220
+eg 216
+sin 214
+est 214
+ui 214
+he 214
+ks_ 213
+ö 213
+oo 213
+ju 207
+är 205
+ut 203
+in_ 203
+oli 201
+ki 199
+su 199
+es_ 199
+lt 198
+ist 188
+li_ 186
+ea 186
+vi 184
+im 181
+mu 181
+se_ 180
+ts 180
+on 178
+ise 178
+ta_ 177
+ek 176
+_oli 176
+sel 173
+nud_ 173
+_ü 172
+a. 171
+nn 170
+ema 169
+ng 168
+lu 168
+ge 167
+_si 166
+_ei 165
+_i 165
+_ei_ 164
+ei_ 164
+_r 163
+ole 161
+pa 160
+lle 160
+a._ 160
+ust 159
+du 156
+er 156
+vô 153
+da_ 153
+min 152
+et_ 151
+d,_ 149
+_M 149
+ht 149
+d, 149
+M 149
+kui 148
+_et 147
+K 147
+_K 146
+pe 145
+gi_ 145
+_vô 145
+or 144
+_tu 142
+lt_ 141
+_ma 141
+asi 140
+ve 139
+us_ 138
+ig 136
+sin_ 136
+ur 135
+_ta_ 134
+di 134
+_et_ 134
+s,_ 132
+tas 132
+s, 132
+_kui 131
+sk 131
+re 130
+po 129
+oli_ 129
+om 129
+äi 128
+inu 128
+_na 128
+_oli_ 128
+_sa 128
+aj 128
+mis 127
+ui_ 127
+_me 127
+_pa 126
+tus 125
+pi 125
+te_ 124
+ül 123
+- 123
+est_ 122
+_on 121
+kk 121
+tt 120
+aga 119
+na_ 119
+_T 119
+T 119
+b_ 118
+al_ 118
+sta 118
+_mu 116
+_ju 116
+ida 116
+aks 116
+gu_ 116
+_ni 116
+s. 116
+ad_ 116
+_pe 114
+eks 114
+ev 114
+end 113
+s._ 113
+use 111
+ära 111
+_po 111
+_min 110
+S 110
+aja 110
+_la 110
+ele 109
+el_ 108
+on_ 108
+ab 108
+_S 108
+av 107
+ing 107
+kui_ 106
+_on_ 106
+au 104
+ne_ 104
+ti_ 104
+ell 103
+ae 101
+kô 101
+ed_ 100
+_ke 99
+ata 99
+iis 99
+! 98
+!_ 98
+sid 98
+nda 98
+eh 98
+lle_ 97
+pu 97
+ää 97
+vôi 97
+ine 96
+t, 96
+e,_ 96
+ale 96
+_vôi 96
+t,_ 96
+e, 96
+eda 96
+uk 95
+ast_ 95
+ld 95
+? 94
+_kui_ 94
+_sel 93
+_kô 93
+tul 93
+ega 93
+lg 92
+sii 92
+val 92
+e. 92
+_su 92
+ug 92
+oh 92
+kü 92
+d. 91
+ee_ 91
+see 91
+e._ 91
+öö 91
+oma 91
+_ole 90
+ses 90
+stu 90
+ôt 90
+üü 90
+_om 89
+me_ 89
+ot 89
+d._ 89
+_sii 88
+to 88
+_en 87
+atu 87
+?_ 87
+A 86
+J 86
+pea 86
+jä 85
+_A 85
+_see 85
+ime 84
+_pi 84
+_ha 84
+mô 84
+nä 84
+_J 84
+les 84
+ste 84
+kas 84
+_ä 84
+vä 83
+E 83
+pä 83
+_ve 83
+_E 83
+eis 82
+_jä 81
+_pea 81
+_mô 80
+um 80
+_kü 80
+iku 80
+üd 80
+all 79
+eid 79
+ba 79
+_vä 79
+ina 78
+lj 78
+sid_ 78
+hu 78
+tun 78
+lä 78
+_oma 77
+i,_ 77
+i, 77
+agu 77
+uh 77
+lm 76
+ras 76
+ss 76
+kä 76
+ees 76
diff --git a/test/user-template/user/fingerprint/finnish.lm b/test/user-template/user/fingerprint/finnish.lm
new file mode 100644
index 000000000000..328f88604279
--- /dev/null
+++ b/test/user-template/user/fingerprint/finnish.lm
@@ -0,0 +1,400 @@
+_ 19984
+a 9133
+i 8384
+t 7797
+e 6481
+n 6431
+s 5897
+l 4504
+o 4163
+u 4106
+k 4013
+ä 3354
+n_ 2868
+m 2569
+a_ 1987
+v 1905
+r 1827
+ta 1580
+en 1553
+is 1515
+h 1508
+y 1462
+st 1390
+in 1375
+p 1342
+j 1333
+an 1139
+si 1073
+tt 1030
+te 1008
+en_ 982
+_k 980
+it 974
+ll 947
+aa 942
+ä_ 902
+va 878
+el 855
+_t 851
+ka 846
+i_ 835
+. 832
+se 818
+li 806
+tä 804
+oi 767
+ai 744
+._ 739
+tu 734
+_o 719
+mi 715
+al 703
+on 684
+d 681
+_v 662
+et 654
+_j 641
+t_ 635
+ti 632
+_m 628
+_s 620
+ja 616
+ma 596
+sa 595
+la 582
+ist 575
+_e 565
+to 565
+ks 557
+in_ 554
+es 551
+il 538
+an_ 536
+ki 527
+, 525
+ku 525
+,_ 524
+us 520
+as 514
+nt 512
+ri 495
+ke 494
+at 491
+_p 485
+le 484
+ik 483
+ss 477
+ut 469
+ö 469
+sta 460
+ee 459
+uu 458
+ol 457
+ta_ 451
+ne 445
+ää 445
+ei 443
+uo 436
+ko 433
+un 430
+lu 421
+ii 420
+e_ 418
+nn 413
+_h 412
+ar 408
+er 402
+än 396
+ja_ 386
+im 381
+on_ 365
+_va 363
+aan 354
+_a 352
+me 350
+ak 345
+ssa 331
+na 330
+ie 329
+pa 327
+_ja 326
+ia 325
+tä_ 322
+_l 319
+vi 317
+ise 316
+tta 315
+de 314
+os 312
+lli 309
+_ja_ 304
+jo 295
+vä 290
+su 289
+au 287
+lis 286
+_on 285
+sä 284
+uk 280
+am 280
+ot 280
+ty 275
+ett 271
+ttä 270
+ni 269
+lä 267
+ksi 264
+nk 264
+ht 263
+ul 261
+ell 261
+sa_ 259
+ha 257
+sen 257
+a. 254
+isi 253
+ste 253
+aan_ 252
+_on_ 252
+_ka 252
+sk 251
+kk 246
+itt 245
+ok 242
+a._ 239
+all 239
+yt 239
+mä 237
+mu 237
+av 237
+_y 236
+lla 233
+taa 231
+ais 231
+een 230
+K 230
+lt 228
+s_ 227
+ast 227
+iv 226
+ssa_ 225
+ra 225
+- 223
+kse 223
+oit 220
+om 220
+T 219
+_ku 218
+än_ 216
+aa_ 214
+at_ 214
+tel 211
+ui 210
+si_ 208
+rk 207
+sta_ 207
+_jo 203
+kä 202
+_K 201
+est 200
+em 200
+he 199
+_n 199
+vo 198
+_ta 196
+eh 196
+_ol 196
+S 196
+nta 196
+_ko 194
+je 194
+stä 194
+är 193
+ust 191
+mis 191
+ns 190
+pu 189
+nen 188
+ät 188
+toi 188
+iin 187
+ten 187
+min 186
+ista 185
+hd 184
+a, 184
+a,_ 184
+sen_ 183
+E 182
+lle 181
+vat 179
+ill 177
+no 176
+pä 176
+lm 176
+llis 175
+n. 175
+io 172
+ine 171
+n._ 170
+pi 169
+uks 168
+ava 168
+ään 166
+nen_ 165
+ah 165
+_mu 164
+tus 163
+mm 162
+_to 162
+ek 160
+int 159
+_r 159
+lin 158
+oim 158
+_T 158
+A 158
+imi 157
+tö 157
+la_ 157
+jä 157
+aj 156
+yh 155
+o_ 154
+lo 154
+oli 153
+een_ 153
+le_ 153
+_si 153
+g 152
+aik 151
+vat_ 150
+L 149
+ur 149
+ti_ 149
+sia 148
+ite 147
+inen 147
+ain 146
+sti 146
+lla_ 146
+ys 145
+_mi 145
+val 144
+stu 144
+äm 144
+alli 143
+pe 143
+utt 142
+et_ 141
+_tu 141
+eri 140
+_E 140
+: 140
+nki 139
+ir 139
+llä 138
+up 138
+äi 137
+ama 137
+_ha 135
+id 135
+_se 135
+po 134
+inen_ 134
+tte 133
+nna 133
+ten_ 132
+or 132
+ts 131
+nä 131
+yk 131
+äs 131
+_S 130
+ses 130
+ve 130
+ess 129
+äl 129
+ita 129
+lai 129
+H 129
+van 127
+äk 127
+kin 127
+N 127
+_te 126
+den 126
+tee 126
+P 126
+kaa 126
+iin_ 125
+kun 125
+ois 125
+sit 125
+oh 124
+V 124
+yö 124
+äv 124
+tav 124
+voi 124
+ia_ 123
+I 123
+oll 123
+maa 122
+ih 122
+oj 122
+rj 121
+ro 121
+ikk 120
+so 120
+oo 120
+oimi 120
+do 120
+pp 119
+M 119
+_ei 118
+toim 118
+op 118
+uut 118
+tet 118
+_i 118
+_ma 117
+vai 117
+lä_ 116
+u_ 116
+sy 116
+kau 116
+utta 116
+un_ 115
+eu 115
+ssä 115
+tti 115
+_sa 115
+mp 114
+eis 114
+ka_ 112
+että 112
+taa_ 111
+_et 111
+hu 111
+itu 111
+suu 111
+den_ 111
+ksen 110
+ap 110
+_ke 110
+uv 110
+tam 110
+yv 109
+aup 109
+stä_ 109
+asta 109
+äy 109
+kan 108
+nu 108
+ukse 108
+_toi 107
+ien 107
+hi 107
+iss 107
diff --git a/test/user-template/user/fingerprint/fpdb.conf b/test/user-template/user/fingerprint/fpdb.conf
new file mode 100644
index 000000000000..329184d514d1
--- /dev/null
+++ b/test/user-template/user/fingerprint/fpdb.conf
@@ -0,0 +1,86 @@
+#
+# A sample config file for the language models
+# provided with Gertjan van Noords language guesser
+# (http://odur.let.rug.nl/~vannoord/TextCat/)
+#
+# Notes:
+# - You may consider eliminating a couple of small languages from this
+# list because they cause false positives with big languages and are
+# bad for performance. (Do you really want to recognize Drents?)
+# - Putting the most probable languages at the top of the list
+# improves performance, because this will raise the threshold for
+# likely candidates more quickly.
+#
+
+# this file have been modified (to OOo by Jocelyn MERAND joc.mer@gmail.com) to include country and encoding
+# guess strings are made as following : language-country-encoding
+
+afrikaans.lm af--utf8
+albanian.lm sq--utf8
+amharic_utf.lm am--utf8
+arabic.lm ar--utf8
+basque.lm eu--utf8
+belarus.lm be--utf8
+bosnian.lm bs--utf8
+breton.lm br--utf8
+catalan.lm ca--utf8
+chinese_simplified.lm zh-CN-utf8
+chinese_traditional.lm zh-TW-utf8
+croatian.lm hr--utf8
+czech.lm cs--utf8
+danish.lm da--utf8
+dutch.lm nl--utf8
+english.lm en--utf8
+esperanto.lm eo--utf8
+estonian.lm et--utf8
+finnish.lm fi--utf8
+french.lm fr--utf8
+frisian.lm fy--utf8
+georgian.lm ka--utf8
+german.lm de--utf8
+greek.lm el--utf8
+hebrew.lm he--utf8
+hindi.lm hi--utf8
+hungarian.lm hu--utf8
+icelandic.lm is--utf8
+indonesian.lm id--utf8
+irish_gaelic.lm ga--utf8
+italian.lm it--utf8
+japanese.lm ja--utf8
+korean.lm ko--utf8
+latin.lm la--utf8
+latvian.lm lv--utf8
+lithuanian.lm lt--utf8
+luxembourgish.lm lb--utf8
+malay.lm ms--utf8
+manx_gaelic.lm gv--utf8
+marathi.lm mr--utf8
+mongolian_cyrillic.lm mn--utf8
+nepali.lm ne--utf8
+norwegian.lm nb--utf8 # Norwegian (Bokmal)
+persian.lm fa--utf8 # Farsi
+polish.lm pl--utf8
+portuguese.lm pt-PT-utf8
+quechua.lm qu--utf8
+romanian.lm ro--utf8
+romansh.lm rm--utf8
+russian.lm ru--utf8
+sanskrit.lm sa--utf8
+scots.lm sco--utf8
+scots_gaelic.lm gd--utf8
+serbian.lm sr--utf-8
+serbian-latin.lm sh--utf-8
+slovak_ascii.lm sk-SK-utf8
+slovenian.lm sl--utf8
+spanish.lm es--utf8
+swahili.lm sw--utf8
+swedish.lm sv--utf8
+tagalog.lm tl--utf8
+tamil.lm ta--utf8
+thai.lm th--utf8
+turkish.lm tr--utf8
+ukrainian.lm uk--utf8
+vietnamese.lm vi--utf8
+welsh.lm cy--utf8
+yiddish_utf.lm yi--utf8
+zulu.lm zu--utf8
diff --git a/test/user-template/user/fingerprint/french.lm b/test/user-template/user/fingerprint/french.lm
new file mode 100644
index 000000000000..5080d9cba9d5
--- /dev/null
+++ b/test/user-template/user/fingerprint/french.lm
@@ -0,0 +1,400 @@
+_ 20800
+e 7258
+i 4051
+s 4003
+a 3972
+n 3903
+r 3650
+t 3590
+u 2968
+o 2823
+l 2723
+e_ 2632
+d 2241
+s_ 1721
+_d 1693
+c 1663
+p 1528
+é 1320
+m 1297
+es 1164
+t_ 1106
+_l 1079
+de 1048
+on 959
+_de 940
+en 939
+_p 852
+nt 825
+le 808
+es_ 791
+re 777
+, 721
+,_ 720
+n_ 703
+de_ 685
+' 670
+an 667
+_de_ 645
+v 641
+_s 610
+r_ 596
+_c 594
+er 585
+ai 575
+_a 558
+_e 554
+ou 554
+q 549
+qu 538
+is 530
+te 528
+ti 525
+ur 519
+it 514
+g 498
+a_ 490
+f 480
+la 476
+in 475
+_le 441
+me 436
+nt_ 432
+. 427
+b 427
+ra 423
+io 416
+ent 415
+._ 404
+ne 395
+ns 392
+ion 383
+h 381
+ue 376
+se 371
+le_ 370
+ar 370
+ie 362
+co 361
+at 359
+tr 359
+et 349
+pr 342
+ce 336
+au 328
+u_ 321
+il 314
+_r 313
+_la 304
+un 303
+eu 303
+st 300
+re_ 296
+ro 290
+la_ 288
+on_ 287
+_m 286
+_la_ 283
+que 281
+_qu 280
+_q 280
+po 275
+tio 273
+tion 273
+pa 273
+li 271
+_t 269
+nc 268
+si 266
+_pr 265
+ri 264
+al 263
+ui 262
+_co 259
+i_ 255
+ta 255
+é_ 251
+x 247
+em 244
+l_ 243
+et_ 238
+_l' 236
+l' 236
+les 233
+ns_ 233
+ir 232
+_le_ 228
+ent_ 227
+or 226
+ré 224
+_f 224
+ne_ 222
+à 221
+ve 220
+ch 220
+it_ 219
+di 219
+oi 217
+- 216
+ni 215
+à_ 215
+les_ 215
+d' 214
+el 212
+ss 212
+_n 212
+ut 211
+our 210
+des 210
+" 208
+ur_ 207
+nd 207
+er_ 206
+ait 206
+ion_ 204
+rs 202
+_en 201
+_et 200
+j 200
+_d' 200
+ll 199
+_des 198
+des_ 197
+_pa 197
+té 196
+_et_ 195
+_à 195
+_à_ 195
+om 193
+ma 192
+ati 190
+_des_ 189
+L 188
+so 187
+_u 185
+è 184
+_" 183
+sa 182
+_po 181
+tre 181
+dé 181
+ue_ 180
+pe 179
+en_ 179
+ont 178
+_un 178
+_L 178
+us 176
+_les 176
+_les_ 176
+rt 176
+is_ 173
+_i 173
+du 172
+e,_ 171
+e, 171
+na 171
+s, 170
+s,_ 170
+as 169
+men 169
+M 167
+ait_ 167
+'a 166
+vi 162
+ci 159
+ant 158
+_au 158
+da 157
+_M 157
+ation 155
+atio 155
+con 154
+que_ 153
+ons 153
+eur 151
+est 149
+me_ 149
+mi 149
+par 148
+tion_ 148
+_so 147
+te_ 147
+res 144
+lo 144
+ment 144
+és 144
+ans 143
+_du 142
+du_ 141
+ux 141
+un_ 140
+y 138
+pro 138
+_du_ 136
+_dé 136
+ce_ 135
+_se 134
+_re 134
+pl 133
+A 132
+ge 131
+ic 131
+su 130
+x_ 129
+ien 129
+nce 129
+"_ 129
+ac 128
+il_ 128
+qui 128
+_pro 127
+no 127
+av 126
+_v 125
+_o 125
+rs_ 125
+ans_ 124
+eme 124
+bl 123
+emen 122
+_en_ 122
+iqu 122
+ct 122
+iq 122
+lle 122
+nn 121
+ts 121
+ement 121
+ét 120
+_"_ 120
+ér 119
+té_ 119
+_ce 119
+mp 119
+ire 119
+ui_ 119
+to 118
+he 117
+_é 117
+ca 117
+_j 116
+ec 116
+va 116
+_par 116
+ée 115
+_con 115
+se_ 114
+tre_ 113
+ique 112
+dan 111
+éc 111
+ha 110
+une 110
+P 110
+lu 110
+ux_ 109
+_b 108
+s. 108
+pou 108
+_pou 108
+ier 107
+C 107
+ais 106
+s._ 105
+ain 104
+_un_ 104
+nte 103
+'e 103
+mo 103
+mm 103
+ment_ 102
+une_ 102
+com 101
+_P 101
+'i 101
+_ma 100
+do 99
+ant_ 98
+anc 98
+che 97
+ap 97
+ont_ 97
+_que 97
+os 97
+urs 96
+_di 96
+fi 96
+im 96
+pour 96
+_pour 96
+ê 95
+ts_ 95
+_g 95
+our_ 94
+_sa 94
+ntr 94
+_da 94
+_ré 93
+rai 93
+rm 93
+_qui 93
+e. 92
+am 92
+_com 91
+uv 91
+_C 91
+D 91
+qui_ 90
+e._ 90
+pu 89
+_qui_ 88
+ia 87
+_dan 87
+_dans 87
+dans 87
+ter 87
+fo 87
+son 87
+dans_ 87
+id 86
+ag 86
+ine 86
+tu 85
+ran 85
+au_ 85
+ol 85
+oc 84
+est_ 84
+st_ 84
+enc 84
+F 82
+_tr 81
+'u 81
+tai 81
+ell 80
+R 79
+_su 79
+S 79
+ions 79
+pré 79
+sé 78
+ab 78
+né 77
+_que_ 77
+_in 77
+_av 76
+pour_ 76
+fa 76
+rr 76
+air 75
+_ch 75
+_a_ 75
+ba 74
+_pl 74
+gr 74
+tt 74
+ssi 74
+rd 73
+pas 73
+bi 73
diff --git a/test/user-template/user/fingerprint/frisian.lm b/test/user-template/user/fingerprint/frisian.lm
new file mode 100644
index 000000000000..9efa35f370c8
--- /dev/null
+++ b/test/user-template/user/fingerprint/frisian.lm
@@ -0,0 +1,400 @@
+_ 46446
+e 15767
+n 9616
+i 7837
+a 7830
+t 7562
+r 7297
+s 6307
+o 4784
+n_ 4595
+d 4564
+e_ 4213
+l 4032
+k 3951
+t_ 3079
+en 2863
+m 2605
+er 2492
+y 2462
+f 2371
+_d 2253
+de 2124
+h 1943
+in 1899
+w 1898
+en_ 1857
+_i 1815
+u 1769
+g 1738
+an 1690
+j 1678
+p 1651
+r_ 1619
+_f 1602
+. 1601
+ar 1561
+te 1545
+b 1488
+s_ 1476
+._ 1435
+_s 1370
+de_ 1235
+_de 1224
+_w 1181
+it 1172
+ie 1140
+, 1078
+_o 1056
+,_ 1056
+oa 1045
+_e 1040
+st 1038
+an_ 1010
+_b 972
+_de_ 965
+ke 949
+_m 947
+_t 933
+ne 920
+er_ 895
+at 863
+sk 856
+c 850
+it_ 848
+_h 838
+ei 832
+k_ 817
+yn 790
+ch 784
+le 772
+is 769
+je 765
+el 761
+me 758
+ea 754
+_k 740
+fa 736
+in_ 735
+' 733
+_it 733
+_it_ 727
+ge 727
+re 725
+al 724
+_fa 684
+yn_ 640
+aa 628
+fan 626
+_y 618
+ar_ 617
+et 616
+ri 615
+_fan 613
+_n 612
+li 611
+_yn 610
+_en 598
+fan_ 594
+oe 589
+_fan_ 584
+_en_ 583
+at_ 581
+_in 570
+oar 565
+_in_ 560
+y_ 555
+F 549
+es 540
+_a 536
+ng 523
+be 514
+sj 512
+nt 510
+l_ 510
+_F 506
+ns 506
+D 499
+te_ 499
+der 497
+_yn_ 497
+ti 493
+ek 490
+ro 476
+rs 474
+rd 473
+se 470
+fo 470
+ys 462
+op 461
+û 461
+we 456
+ry 451
+da 445
+d_ 443
+is_ 442
+_D 440
+ur 433
+i_ 432
+ha 426
+_me 425
+ear 422
+_l 417
+ed 410
+as 409
+om 407
+ei_ 406
+Fr 405
+nd 404
+_fo 394
+_p 393
+oc 390
+rys 389
+ol 386
+_Fr 386
+och 383
+fe 381
+ik 379
+ma 379
+ra 377
+nn 374
+_g 368
+_da 367
+di 363
+ts 362
+ta 361
+a_ 360
+ko 359
+et_ 358
+ysk 356
+Fry 354
+Frys 354
+z 354
+ll 350
+_be 349
+ke_ 348
+I 347
+ing 346
+_' 345
+m_ 343
+h_ 340
+ske 339
+_ha 338
+sje 336
+_Fry 336
+_Frys 336
+wi 335
+_op 334
+p_ 334
+_is 333
+ch_ 333
+tr 330
+ten 328
+ers 327
+wa 325
+ter 322
+ji 322
+rysk 319
+_ne 319
+je_ 312
+foa 311
+ê 309
+jo 307
+_is_ 307
+ste 307
+_te 306
+â 301
+n. 301
+nne 300
+rt 300
+foar 299
+S 299
+mei 299
+_r 298
+_oa 297
+wu 293
+ak 291
+si 290
+wur 290
+ni 290
+pe 288
+Frysk 287
+oan 286
+n._ 285
+_mei 284
+der_ 281
+_foar 281
+_foa 281
+ht 278
+cht 277
+- 275
+ú 275
+_j 274
+ne_ 273
+ken 273
+fer 271
+ûn 270
+am 270
+on 268
+nde 264
+_S 264
+B 262
+ki 261
+id 261
+le_ 261
+dat 260
+v 259
+_I 256
+oar_ 255
+op_ 254
+lle 252
+la 244
+tt 243
+dat_ 242
+_fe 242
+mm 240
+inn 239
+_wi 239
+_dat 237
+g_ 236
+mei_ 236
+al_ 235
+_B 234
+e. 234
+ld 231
+_al 230
+_wur 230
+urd 230
+_wu 230
+_op_ 230
+De 229
+inne 228
+ng_ 227
+_mei_ 227
+'t 226
+ks 226
+'t_ 224
+_dat_ 224
+_ko 223
+_st 220
+ân 219
+rk 219
+sa 219
+e._ 219
+tte 218
+en. 218
+n, 217
+ier 216
+ten_ 216
+_fer 215
+mi 215
+hi 215
+ien 214
+_wa 213
+n,_ 213
+no 213
+_te_ 212
+ig 212
+_De 212
+ske_ 212
+_der 212
+W 211
+H 211
+_oan 210
+ee 209
+dy 208
+ek_ 207
+en._ 207
+ic 207
+mme 206
+yk 204
+pr 204
+net 203
+foar_ 203
+he 203
+wurd 201
+_der_ 199
+jen 199
+_dy 199
+kr 198
+ka 197
+im 196
+_H 196
+il 196
+ze 196
+_ma 195
+by 194
+oer 194
+kt 193
+us 193
+M 193
+sk_ 192
+wo 192
+_hi 191
+or 190
+ing_ 190
+_W 190
+ich 189
+De_ 187
+rr 186
+int 185
+_ú 184
+: 184
+ij 184
+_ek 183
+eg 182
+:_ 180
+gen 180
+as_ 180
+_se 179
+e, 178
+_net 177
+e,_ 177
+ins 177
+N 177
+ls 176
+st_ 176
+_wurd 176
+ie_ 175
+E 175
+nne_ 175
+_De_ 175
+sy 175
+wer 174
+gr 174
+f_ 173
+nk 172
+och_ 172
+net_ 169
+ad 169
+_we 169
+rde 168
+sl 168
+bi 168
+of 168
+so 168
+_no 167
+_ta 167
+re_ 167
+to 167
+den 167
+J 167
+t. 166
+It 165
+út 165
+inne_ 165
+ysk_ 165
+lik 164
+sp 163
+_ek_ 162
+ou 162
+tsj 162
+It_ 161
+_sa 160
+A 160
+wol 160
+lâ 159
+_wo 159
+ge_ 159
+lân 159
+ige 158
diff --git a/test/user-template/user/fingerprint/georgian.lm b/test/user-template/user/fingerprint/georgian.lm
new file mode 100644
index 000000000000..0e88ab08a895
--- /dev/null
+++ b/test/user-template/user/fingerprint/georgian.lm
@@ -0,0 +1,400 @@
+_ 14926
+À 7221
+È 5780
+Ä 4137
+Ã 2966
+Ñ 2908
+Ë 2607
+Ê 2372
+Ã 2260
+Ã… 2080
+Ã 2078
+Ì 2005
+Ç 1598
+Ã 1383
+Ó 1363
+È_ 1248
+À_ 1149
+Â 1145
+ÊÈ 1009
+Þ 974
+_Ë 965
+Ñ_ 964
+ÃÀ 912
+ÈÑ 901
+Àà 897
+Ø 820
+. 813
+Äà 767
+" 762
+._ 735
+, 720
+,_ 718
+ÑÀ 684
+_À 669
+Ú 653
+ËÀ 631
+ÀÌ 622
+ÄÊ 575
+ÃÈ 570
+ÅÄ 567
+Õ 551
+_Ã 550
+Ã’ 542
+_Ñ 526
+É 518
+ÀË 517
+ÅÀ 485
+ÅÈ 479
+ÂÀ 478
+_Â 474
+ÓÊ 468
+_È 436
+ÃÀ 435
+ÀÅ 420
+ËÈ 419
+ÌÈ 418
+Äà 416
+ÄÌ 412
+ÈÑ_ 407
+_ÃÀ 404
+ÃÀ_ 393
+ÀÊ 384
+Ëà 382
+Ü 376
+_" 374
+ÊÈ_ 371
+× 369
+ÃÃ 364
+ÀÑ 360
+ÈÇ 358
+ÀÃ 353
+ÌÀ 349
+Ô 349
+ÃÀ 342
+Æ 341
+ËÄ 335
+ÈÀ 334
+ÈÊ 332
+ÃÇ 326
+_Ã 322
+ÃÈ 321
+ØÈ 319
+_Ä 319
+_Ø 319
+ÃÄ 317
+_ÂÀ 316
+ÇÀ 316
+ÄÑ 306
+Ä_ 299
+_Ç 288
+ÃÄ 279
+ÓÊÈ 273
+Êà 271
+Ö 270
+Ì_ 267
+ÌÄ 267
+_ÑÀ 266
+ÃÃ 263
+Óà 260
+Ç_ 256
+ÄÊÈ 255
+ÃÈ 238
+ÊÄ 238
+ÑÈ 234
+ÊÀ 233
+ÃÃ 230
+ÈÌ 229
+_Þ 227
+"_ 225
+ÄÃÈ 224
+: 224
+:_ 223
+È. 221
+_ÃÀ_ 217
+Û 215
+ÞÄ 213
+È, 213
+È,_ 212
+_Ó 211
+Ã_ 209
+_ËÀ 208
+ÈÑÀ 208
+ÃË 206
+_Àà 204
+ÇÅ 203
+ÀÃÇ 203
+ØÄ 203
+È._ 201
+À. 200
+- 193
+ÀÞ 192
+ÅÄÊ 192
+Ú_ 189
+ÈÃ 188
+Ù 188
+ÕÀ 187
+Ã_ 185
+ÈÊÈ 183
+ÄÃ 179
+À._ 177
+Ã_ 177
+ÃÃ 174
+ÞÀ 174
+Èà 173
+ÌÃ 172
+_ÃÃ 172
+ÃÑ 172
+ÄÃÀ 171
+_Ëà 170
+ÃÈ_ 170
+_ËÈ 170
+_Ü 169
+ÇÈ 166
+ÃÄ 166
+_Õ 165
+ØÈ_ 165
+ÄÑ_ 163
+ÀÈ 162
+_ØÄ 160
+ÄÅ 158
+_É 155
+ÀÚ 154
+ÊÈÑ 153
+ÃŽ 151
+Ë_ 149
+ÕÀà 148
+À,_ 147
+À, 147
+ÀÇ 147
+ÀÂ 145
+ÕÀÃÇ 145
+ÈÂ 143
+ËÀà 143
+ÃÊ 143
+ÀÊÈ 142
+ÂÈ 142
+ÌÄà 141
+ÄË 140
+ÀØ 139
+ÓÊÈ_ 139
+ÄÇ 139
+ÇÓ 138
+_Ì 136
+ÈÇ_ 135
+ÀÃÈ 133
+ÀÌ_ 132
+ÊÄà 131
+×à 130
+ÑÄ 130
+ÈË 130
+ÃÄà 128
+ÀÕ 125
+ÆÄ 125
+ÔÄ 125
+Ê_ 124
+ÀÅÈ 124
+ÀÃ_ 124
+ÅÈÑ 123
+_ËÄ 123
+ÀËÈ 122
+_ÕÀ 121
+ÉÈ 121
+_Ã… 120
+×Å 120
+ÃÃ… 116
+_Ã 114
+ÀÌÈ 113
+ÀËà 113
+ÂÀÌ 113
+ÃÃŒ 112
+ÉÀ 112
+ÈÚ 112
+ØÀ 112
+ÀÃÀ 111
+ÃÓ 111
+ÞÅ 109
+ÀÖ 109
+Âà 107
+ÃÀ_ 107
+ÌÈ_ 107
+ÅÀà 107
+ÄÊÈ_ 106
+ÃÃ 106
+ÀÃ_ 106
+_ÀË 105
+ß 104
+ÄÃÇ 104
+_Äà 104
+ÅÄÌ 103
+_ÄÑ 103
+ÃÃË 103
+ÄÌÈ 103
+_Ú 103
+ÃÃ 102
+_Ù 102
+ËÈÑ 102
+ÃÈÑ 102
+Þà 102
+_ÃÃË 101
+_ÕÀà 101
+ÈÅ 100
+_ÕÀÃÇ 100
+ÓÃÈ 99
+ÒÈ 99
+ÂÄ 99
+ÈÒ 99
+ÀÀ 97
+ÀÒ 97
+ÃÓÊ 96
+ÕÅ 94
+ÈÄ 94
+_ÇÀ 94
+Ñ,_ 93
+ÃÑ 93
+ÅÊ 93
+_ØÀ 93
+Ñ, 93
+_ÑÈ 93
+ÀÉ 93
+ÀÆ 92
+ÃÃÀ 92
+ÀÑ_ 92
+Ìà 91
+ÄÃÓ 91
+ÇÕ 91
+ËÓ 90
+ÄÌ_ 90
+ÇÀÅ 89
+ÄÃÓÊ 89
+ÊÑ 89
+ÀØÈ 89
+ÃÄà 89
+Àà 89
+È" 89
+Ñ. 88
+ÚÞ 88
+ÂÀË 88
+ÃÑ_ 87
+_ÄÃÇ 87
+È× 87
+ÃÈÑ 87
+ÌÃÀ 87
+ØÅ 87
+ÞÄÊ 87
+ÃÈÇ 85
+ÑÀ_ 85
+ÇÅÄ 85
+ÓÌ 85
+ÒÀ 85
+_ÃŽ 84
+ÊÈ. 84
+_ÃÀ 83
+Ñ._ 83
+_Ô 83
+_ÂÀË 83
+ÊÈÀ 83
+ÊÈ._ 82
+ÄÃÈ 82
+ÈÀ_ 82
+ÈÀÌ 82
+ÜÈ 81
+ÀÚ_ 81
+"Ë 81
+ÈÓ 80
+_"Ë 80
+ÃÇÅ 80
+_ÄÑ_ 79
+_ÈÂ 79
+ÀÓ 79
+ÈÕ 79
+ÀÃÇÅ 79
+ÇÈ_ 79
+ÑÀÞ 79
+ÃÇÓ 78
+ÊÈ, 78
+ÚÈ 78
+ÞÈ 78
+ÃÇÓÊ 78
+ÇÓÊ 78
+ÊÈ,_ 78
+ÀÃÀ 78
+ÃÑ 78
+_ÀÃ_ 77
+ÞÊ 77
+ÃÓ 77
+ÀÃÇÓÊ 77
+_ÌÀ 77
+ÅÈÇ 77
+ÈÂÈ 77
+ÀÃÇÓ 77
+ÜÀ 76
+ÅÀ_ 75
+_ÞÀ 75
+ÉÅ 75
+ÒÄ 75
+ÃÀ_ 75
+ÅÀÊ 75
+ÇÅÄÊ 74
+ÃÇÅÄ 74
+ÀÃÇÅÄ 74
+ÄÃÀ_ 74
+ÃË 73
+ÑÞ 73
+ÑÒ 73
+ÅÑ 73
+ÑÓ 73
+ÃÇÅÄÊ 73
+ËÞ 73
+ÃÊà 72
+ÃÚ 72
+_× 72
+Âà 71
+ÅÄ_ 71
+Ã’Ã 71
+ÇÄ 71
+ÃÂ 71
+ÅÄà 71
+ÕÀÃÇÓ 71
+ÃÀÃ 70
+ÀË_ 70
+ÅÃ 69
+ËÀ_ 69
+ÃÄ 69
+_ÀÃÀ 67
+à 67
+ÄÃÀ 67
+ÇÀÌ 67
+È×à 67
+ÕÀÃÇÅ 67
+Ò× 67
+ÂÀËà 66
+_ÂÀËà 66
+ÄÒ 66
+ÃÃÀ 66
+ÅÄÊÈ 66
+ÀÌÀ 66
+ÄÃÈÇ 66
+_ÈÂÈ 66
+ÄÊà 65
+ÄÂ 65
+ËÈÊ 65
+ÊË 65
+ÈÊÈ_ 65
+ÃÃÈ 65
+Ã…Ã 65
+_ÈÑ 64
+Ó_ 63
+ËÃ 63
+", 63
+Ãà 63
+ÊÃà 63
+ÂÅ 63
+ÃÂ 63
+Äà 62
+À" 62
+ÀÅÀ 62
+? 62
+",_ 62
+! 62
+_È× 62
diff --git a/test/user-template/user/fingerprint/german.lm b/test/user-template/user/fingerprint/german.lm
new file mode 100644
index 000000000000..eb4eda0f8239
--- /dev/null
+++ b/test/user-template/user/fingerprint/german.lm
@@ -0,0 +1,400 @@
+_ 31586
+e 15008
+n 9058
+i 7299
+r 6830
+t 5662
+s 5348
+a 4618
+h 4176
+d 4011
+er 3415
+en 3412
+u 3341
+l 3266
+n_ 2848
+c 2636
+ch 2460
+g 2407
+o 2376
+e_ 2208
+r_ 2128
+m 2077
+_d 1948
+de 1831
+en_ 1786
+ei 1718
+er_ 1570
+in 1568
+te 1505
+ie 1505
+b 1458
+t_ 1425
+f 1306
+k 1176
+ge 1144
+s_ 1137
+un 1113
+, 1104
+,_ 1099
+w 1099
+z 1060
+nd 1039
+he 1004
+st 989
+_s 952
+_de 949
+. 909
+_e 906
+ne 906
+der 880
+._ 847
+be 841
+es 829
+ic 796
+_a 791
+ie_ 779
+is 769
+ich 763
+an 755
+re 749
+di 732
+ein 730
+se 730
+" 720
+ng 709
+_i 706
+sc 683
+sch 681
+it 673
+der_ 652
+h_ 651
+ch_ 642
+S 630
+le 609
+p 609
+ä 607
+ü 603
+au 603
+v 602
+che 599
+_w 596
+d_ 585
+die 576
+_di 572
+m_ 562
+_die 559
+el 548
+_S 540
+_der 529
+li 527
+_der_ 523
+si 515
+al 514
+ns 507
+on 501
+or 495
+ti 490
+ten 487
+ht 486
+die_ 485
+_die_ 483
+D 479
+rt 478
+nd_ 476
+_u 470
+nt 468
+A 466
+in_ 464
+den 461
+cht 447
+und 443
+me 440
+_z 429
+ung 426
+ll 423
+_un 421
+_ei 419
+_n 415
+hr 412
+ine 412
+_A 408
+_ein 405
+ar 404
+ra 403
+_v 400
+_g 400
+as 395
+zu 392
+et 389
+em 385
+_D 380
+eine 376
+gen 376
+g_ 376
+da 368
+we 366
+K 365
+lt 360
+B 354
+_" 353
+nde 349
+ni 347
+und_ 345
+E 345
+ur 345
+_m 342
+ri 341
+ha 340
+eh 339
+ten_ 338
+es_ 336
+_K 336
+_und 335
+ig 335
+_b 335
+hen 334
+_und_ 332
+_au 329
+_B 327
+_da 325
+_zu 324
+_in 322
+at 321
+us 318
+wi 307
+n, 305
+n,_ 304
+nn 304
+te_ 301
+eit 301
+_h 300
+ter 299
+M 298
+n. 295
+ß 294
+ng_ 289
+sche 289
+- 283
+rs 282
+den_ 282
+_si 280
+G 280
+im 278
+_ge 277
+chen 276
+rd 273
+_E 273
+n._ 270
+icht 270
+rn 268
+uf 267
+isch 264
+isc 264
+nen 263
+_in_ 262
+_M 260
+_er 257
+ich_ 255
+ac 253
+lic 252
+_G 252
+ber 252
+la 251
+vo 251
+eb 250
+ke 249
+F 248
+as_ 248
+hen_ 248
+ach 245
+en, 244
+ung_ 243
+lich 243
+ste 243
+en,_ 243
+_k 241
+ben 241
+_f 241
+en. 241
+_be 239
+it_ 239
+L 238
+_se 237
+mi 236
+ve 236
+na 236
+on_ 236
+P 235
+ss 234
+ist 234
+ö 234
+ht_ 233
+ru 233
+st_ 229
+_F 229
+ts 227
+ab 226
+W 226
+ol 225
+_eine 225
+hi 225
+so 224
+em_ 223
+"_ 223
+ren 222
+en._ 221
+chen_ 221
+R 221
+ta 221
+ere 220
+ische 219
+ers 218
+ert 217
+_P 217
+tr 217
+ed 215
+ze 215
+eg 215
+ens 215
+ür 213
+ah 212
+_vo 212
+ne_ 211
+cht_ 210
+uc 209
+_wi 209
+nge 208
+lle 208
+fe 207
+_L 207
+ver 206
+hl 205
+V 204
+ma 203
+wa 203
+auf 201
+H 198
+_W 195
+T 195
+nte 193
+uch 193
+l_ 192
+sei 192
+nen_ 190
+u_ 189
+_den 189
+_al 189
+_V 188
+t. 188
+lte 187
+ut 186
+ent 184
+sich 183
+sic 183
+il 183
+ier 182
+am 181
+gen_ 180
+sen 179
+fü 178
+um 178
+t._ 177
+f_ 174
+he_ 174
+ner 174
+nst 174
+ls 174
+_sei 173
+ro 173
+ir 173
+ebe 173
+mm 173
+ag 172
+ern 169
+t,_ 169
+t, 169
+eu 169
+ft 168
+icht_ 167
+hre 167
+Be 166
+nz 165
+nder 165
+_T 164
+_den_ 164
+iche 163
+tt 163
+zu_ 162
+and 162
+J 161
+rde 160
+rei 160
+_we 159
+_H 159
+ige 159
+_Be 158
+rte 157
+hei 156
+das 155
+aus 155
+che_ 154
+_das 154
+_zu_ 154
+tz 154
+_ni 153
+das_ 153
+_R 153
+N 153
+des 153
+_ve 153
+_J 152
+I 152
+_das_ 152
+men 151
+_so 151
+_ver 151
+_auf 150
+ine_ 150
+_ha 150
+rg 149
+ind 148
+eben 148
+kt 147
+mit 147
+_an 147
+her 146
+Ge 146
+Sc 145
+_sich 145
+U 145
+Sch 145
+_sic 145
+end 145
+Di 144
+abe 143
+ck 143
+sse 142
+ür_ 142
+ell 142
+ik 141
+o_ 141
+nic 141
+nich 141
+sa 141
+_fü 140
+hn 140
+zi 140
+no 140
+nicht 140
+im_ 139
+von_ 139
+von 139
+_nic 139
+_nich 139
+eine_ 139
+oc 138
+wei 138
+io 138
+schen 138
+gt 138
diff --git a/test/user-template/user/fingerprint/greek.lm b/test/user-template/user/fingerprint/greek.lm
new file mode 100644
index 000000000000..6dff6cd4f767
--- /dev/null
+++ b/test/user-template/user/fingerprint/greek.lm
@@ -0,0 +1,400 @@
+_ 89284
+α 19666
+Ï„ 16086
+ο 15826
+ε 14848
+ι 12766
+ν 12189
+Ï€ 8776
+σ 8653
+Ï 8399
+κ 7761
+μ 7529
+Ï… 6850
+ά 6284
+_Ï„ 5918
+λ 5802
+Ï‚ 5371
+α_ 5272
+η 5236
+έ 4739
+ί 4609
+ό 4489
+το 4461
+Ï‚_ 4111
+ου 4075
+ι_ 4033
+ε_ 4019
+. 3916
+_κ 3897
+ο_ 3836
+._ 3810
+ν_ 3661
+_Ï€ 3414
+_σ 3333
+" 3247
+_μ 3242
+_το 3118
+, 3106
+,_ 3068
+γ 3058
+_α 2912
+ω 2689
+να 2593
+δ 2455
+τα 2420
+χ 2411
+κα 2406
+στ 2406
+_ε 2353
+- 2335
+-_ 2192
+Ï 2171
+αν 2162
+τη 2151
+ή 2141
+Ï…_ 2133
+αι 2100
+θ 2053
+φ 1989
+ου_ 1974
+ει 1889
+_κα 1882
+εί 1864
+το_ 1802
+πο 1771
+αι_ 1727
+σε 1709
+_ν 1647
+_" 1619
+η_ 1609
+ια 1602
+να_ 1518
+τι 1501
+ον 1501
+του 1495
+με 1460
+_του 1407
+_έ 1405
+_στ 1396
+ÏŽ 1364
+πε 1359
+τε 1300
+μα 1298
+β 1274
+Ïι 1252
+ό_ 1241
+_δ 1231
+ξ 1223
+ντ 1220
+_το_ 1196
+απ 1187
+Ïο 1184
+_γ 1183
+_τη 1177
+ζ 1158
+_εί 1150
+ά_ 1150
+_να 1124
+έν 1115
+και 1110
+_και 1093
+αν_ 1082
+Ïα 1078
+και_ 1061
+_να_ 1060
+_και_ 1053
+μπ 1049
+νο 1048
+ατ 1036
+ιο 1024
+ια_ 1018
+ÎµÏ 1003
+Î¿Ï 993
+_απ 984
+σε_ 974
+ικ 973
+_ο 967
+εν 947
+ος 936
+ει_ 935
+πό 901
+λο 892
+_με 890
+νε 884
+του_ 871
+ον_ 869
+ας 865
+_του_ 854
+ασ 841
+με_ 840
+σα 834
+κο 833
+Î±Ï 832
+Ï€Ï 824
+ίν 820
+κά 808
+_πο 804
+πι 796
+Κ 796
+μέ 783
+μο 777
+Î­Ï 772
+αλ 766
+ην 762
+Μ 759
+ισ 745
+κε 742
+τα_ 740
+στο 738
+ω_ 730
+ην_ 728
+Ο 717
+Τ 714
+_φ 711
+ετ 705
+δε 704
+πα 697
+ας_ 688
+τά 684
+ος_ 683
+_ό 680
+_Κ 675
+οι 671
+_χ 670
+την 663
+την_ 658
+_στο 647
+ή_ 645
+πό_ 638
+_θ 633
+_ο_ 631
+", 630
+_Ï€Ï 626
+_Μ 624
+ίπ 624
+άν 623
+",_ 623
+από 620
+που 619
+ότ 618
+λα 617
+τον 617
+_από 616
+μι 612
+Ο_ 611
+Ïε 607
+Ï…Ï„ 604
+λε 595
+_λ 594
+ÏÏŒ 590
+_με_ 586
+ιά 580
+τον_ 577
+γι 577
+_Ο 575
+από_ 572
+Î¬Ï 570
+πά 570
+_από_ 569
+Ïά 562
+ταν 554
+ένα 553
+υν 552
+που_ 551
+δι 547
+Ï„Ï 547
+τό 544
+_β 540
+χε 536
+εν_ 534
+ησ 528
+_Ο_ 525
+ης 520
+". 519
+_που 516
+_Τ 515
+"._ 513
+τη_ 512
+Ï‚. 510
+είπ 508
+ταν_ 504
+_είπ 503
+Ï‚._ 501
+_τα 500
+ξε 497
+στο_ 496
+λλ 493
+ακ 492
+Α 491
+_που_ 490
+άλ 489
+ίπε 489
+είπε 485
+_είπε 483
+_την 483
+τι_ 482
+_την_ 481
+άτ 480
+λι 480
+_δε 479
+άμ 477
+_στο_ 475
+σο 473
+_ά 468
+"_ 463
+μέν 463
+ιν 461
+ις 452
+_αν 452
+κό 451
+αυ 451
+_τον 450
+_γι 449
+θα 447
+ες 446
+ση 446
+_μι 445
+_τον_ 443
+ε. 441
+ε._ 441
+ους 439
+λά 439
+Ï…Ï‚ 439
+ολ 438
+πιο 437
+Î¿Ï 432
+_πα 428
+_κά 427
+τε_ 427
+αμ 423
+; 423
+_μο 422
+σκ 421
+της 421
+_ξ 418
+στη 415
+Κά 411
+νη 408
+για 405
+α. 403
+ÎºÏ 402
+κι 402
+Ï‚, 402
+Ï‚,_ 401
+α._ 398
+ηκ 397
+_Κά 397
+ελ 396
+_έν 395
+_ή 393
+_μα 392
+ία 391
+ως 391
+λη 390
+ίνα 389
+πί 389
+μου 388
+μά 388
+_αυ 387
+ης_ 386
+συ 384
+ναι 384
+Π 383
+αυτ 382
+ί_ 376
+μπι 375
+ίσ 372
+_της 370
+_τα_ 367
+_για 365
+_ένα 362
+_μπ 361
+θε 361
+ιον 359
+ις_ 358
+τή 358
+_θα 354
+_αυτ 354
+άμπ 352
+κ. 352
+κ._ 351
+είν 351
+ομ 350
+ίναι 348
+ντα 348
+ναι_ 348
+ως_ 347
+χα 346
+Ε 346
+Ï…. 346
+για_ 346
+Ï…._ 345
+δεν 345
+ένα_ 345
+α, 344
+α,_ 344
+δεν_ 344
+ÏÏ 343
+όν 343
+α- 342
+Ïσ 341
+_κ. 340
+στε 339
+Κάμ 339
+_κ._ 339
+τέ 339
+α-_ 338
+ευ 338
+ιλ 338
+Ïί 338
+Κάμπ 338
+_μου 338
+_Κάμ 338
+_Κάμπ 337
+υμ 336
+σει 336
+πιον 336
+μπιον 336
+μπιο 336
+_κο 334
+Κάμπι 334
+_η 334
+άμπι 334
+θα_ 333
+νι 332
+της_ 331
+ψ 331
+όμ 330
+ησε 330
+_σα 329
+μα_ 328
+ός 328
+Σ 326
+_δεν 325
+_δεν_ 325
+σμ 324
+ες_ 324
+Ï€ÎµÏ 324
+ίχ 323
+ίναι_ 323
+τικ 322
+_Ï 321
+άμπιο 321
+Ï…Ï‚_ 321
+ους_ 321
+_πε 321
+σω 320
+_για_ 320
+Ï€Ïο 320
+γε 318
+;" 316
+;"_ 316
+Δ 315
+Ï„Ï… 314
+Ïα_ 313
+_συ 312
+Ïω 312
+_θα_ 310
+όσ 309
+ου. 309
diff --git a/test/user-template/user/fingerprint/hebrew.lm b/test/user-template/user/fingerprint/hebrew.lm
new file mode 100644
index 000000000000..31b4ee0af280
--- /dev/null
+++ b/test/user-template/user/fingerprint/hebrew.lm
@@ -0,0 +1,400 @@
+_ 81560
+×™ 23072
+ו 19215
+×” 15606
+ל 12612
+ר 11293
+ת 11070
+מ 10090
+ב 9648
+× 9601
+ש 9081
+×”_ 7811
+×  6685
+×¢ 6326
+_ת 5878
+× 5542
+ד 5019
+×— 4669
+_× 4570
+ב_ 4267
+×› 3984
+_×” 3812
+ק 3769
+פ 3699
+ל_ 3693
+××™ 3535
+מ_ 3489
+ס 3374
+×_ 3362
+תו 3130
+, 3067
+_ל 3037
+_, 3035
+_×™ 2936
+ש_ 2886
+_××™ 2840
+×’ 2768
+ט 2626
+ן 2424
+_ר 2395
+_תו 2291
+. 2256
+צ 2215
+_. 2205
+×™×  2144
+×¢_ 2003
+_ן 1959
+_ו 1913
+" 1815
+יב 1797
+לש 1742
+יל 1687
+יר 1665
+×™_ 1647
+וי 1620
+ו_ 1578
+ור 1525
+×ª× 1475
+×›_ 1469
+רו 1411
+×– 1383
+ונ 1353
+מה 1351
+תי 1343
+×™×™ 1343
+לו 1315
+יד 1285
+רי 1236
+מה_ 1211
+הל 1206
+ומ 1192
+× ×™ 1163
+רש 1155
+×™× 1146
+×ר 1138
+_×ª× 1137
+שי 1134
+יש 1087
+× _ 1080
+×œ× 1074
+וח 1067
+_× 1062
+שמ 1059
+ימ 1052
+×”×™ 1047
+- 1024
+לש_ 1008
+וה 973
+רב 967
+×•× 954
+ת×_ 951
+ול 948
+_ד 941
+×™×” 896
+נו 888
+וע 883
+×™×› 873
+וש 871
+לע 867
+×ל 850
+עו 843
+_- 830
+×—_ 830
+דו 824
+ןו 820
+ר_ 806
+וב 805
+_לש 799
+יט 784
+××” 773
+_לש_ 748
+×™×¢ 746
+די 743
+_ש 726
+_ת×_ 723
+ך 720
+_תי 719
+-_ 716
+_-_ 713
+בי 709
+בו 706
+ות 699
+××”_ 690
+רמ 686
+שה 683
+וד 678
+×™×— 675
+פ_ 672
+×”×  669
+_ב 668
+_×¢ 659
+_ך 655
+יס 652
+ןי 649
+_לע 640
+יו 635
+×מ 635
+יב_ 632
+ת_ 631
+×ž× 628
+שו 627
+_ןו 624
+לי 624
+לע_ 621
+תה 619
+ית 600
+הל_ 599
+וכ 599
+יפ 596
+פה 595
+וק 586
+הש 578
+×¢×™ 575
+_ןי 569
+מו 564
+_לע_ 561
+קי 560
+×™×’ 557
+×™×”_ 557
+רשי 554
+×ו 548
+×ל_ 548
+תוי 548
+ל×ר 546
+×¨× 542
+הר 540
+"_ 540
+מב 539
+שה_ 538
+ופ 538
+×רש 535
+רע 534
+×—×” 533
+וג 532
+×רשי 530
+ל×רשי 530
+ל×רש 530
+×ו 527
+מי 525
+_×™×› 518
+המ 518
+פה_ 511
+×™×›_ 510
+_×™×  509
+לכ 506
+תמ 502
+מב_ 500
+סו 498
+×—× 497
+יק 497
+וו 494
+_ק 485
+×’_ 481
+×יל 477
+_×”×™ 477
+דמ 472
+בה 470
+,×” 470
+_,×” 470
+ק_ 469
+עב 468
+_×ו 467
+הב 467
+×—×”_ 466
+_×™×›_ 463
+×ב 462
+רח 462
+_×ל 461
+×¥ 455
+מל 454
+×™× ×™ 454
+×©× 453
+רה 453
+יצ 452
+×יר 451
+_×”×  447
+טי 443
+ד_ 441
+מע 440
+××™×™ 439
+וה_ 439
+' 435
+×מ_ 430
+.× 429
+תנ 429
+_.× 428
+רק 427
+תר 423
+וס 417
+נש 417
+_הל 414
+סל 413
+נת 408
+ס_ 405
+סה 400
+לפ 400
+בש 399
+,× 399
+_,× 399
+ממ 397
+שי_ 396
+נב 396
+×¢×” 394
+תה_ 393
+תונ 393
+××™×  389
+_רו 385
+×¨×ž× 384
+×™×_ 384
+לב 384
+תב 381
+בר 378
+בה_ 377
+טס 374
+_×¥ 374
+עמ 374
+×—×™ 373
+רפ 373
+הו 371
+חו 370
+בל 370
+_×œ× 370
+קו 367
+_הר 366
+_×יר 364
+חמ 363
+×–_ 362
+_×— 360
+× ×› 360
+_לו 360
+כו 359
+,ת 358
+_,ת 357
+מת 356
+ינו 353
+ורי 353
+ו×_ 349
+רד 348
+תור 348
+××™ 345
+×£ 345
+לשמ 344
+×›×™ 340
+_×יל 340
+וצ 338
+תל 338
+_××™×™ 336
+×¨×—× 335
+_תוי 335
+מ×_ 332
+לח 331
+_תר 329
+_תונ 325
+×’×™ 325
+×¢×”_ 325
+: 324
+פל 324
+×ב_ 324
+שר 322
+רט 321
+תש 320
+צ_ 320
+מע_ 319
+וי_ 319
+_: 319
+צמ 316
+שממ 315
+_ס 315
+תינ 315
+סמ 315
+הד 313
+רה_ 312
+וט 312
+_×£ 310
+ש×ר 309
+רשי_ 305
+×רשי_ 305
+.××™ 305
+_.××™ 304
+הת 303
+יטס 303
+_' 303
+×’×” 302
+שמ_ 302
+_××™×  301
+לה 298
+רג 294
+חט 293
+דע 293
+×יד 292
+×ש 292
+לשממ 292
+××¢ 292
+ידי 290
+של 289
+פו 289
+דב 289
+צו 287
+_××¢ 286
+,××™ 285
+_,××™ 285
+נמ 284
+סי 282
+שב 282
+_רש 281
+דר 281
+_תור 281
+קה 280
+תוש 278
+הש_ 276
+מל_ 276
+_×ל_ 275
+והי 274
+_ל×ר 274
+פי 274
+עב_ 271
+ל×_ 271
+×‘× 270
+×—×_ 269
+חל 268
+עפ 267
+בע 267
+.×” 266
+_רי 266
+_ל×רש 266
+וני 266
+_.×” 265
+יטסל 265
+טסל 265
+×™×œ× 265
+תע 264
+× ×” 263
+קל 262
+ניט 260
+_.ת 260
+.ת 260
+פל_ 260
+הו_ 259
+סלפ 258
+טסלפ 258
+יטסלפ 258
+ניטסל 257
+ניטס 257
+ומ_ 256
+סה_ 256
+מש 255
+ירו 255
+נש_ 254
+ומת 254
+×”×” 252
+בק 251
+יש_ 251
+_ונ 251
+ירב 251
+_רב 249
+_יד 249
+_×יד 249
+×›×” 248
+×’×  247
+_דו 247
diff --git a/test/user-template/user/fingerprint/hindi.lm b/test/user-template/user/fingerprint/hindi.lm
new file mode 100644
index 000000000000..3b4e1584a943
--- /dev/null
+++ b/test/user-template/user/fingerprint/hindi.lm
@@ -0,0 +1,400 @@
+_ 75620
+æ 19109
+U 16333
+ð 11131
+¤ 11107
+· 10241
+·¤ 7855
+Ú 6993
+ÚU 6598
+ç 6322
+è 6151
+Ù 5887
+_· 5800
+ã 5370
+â 5168
+U_ 5118
+æ_ 4935
+Ì 4508
+× 4467
+Ø 4292
+ð_ 3962
+_·¤ 3937
+è_ 3904
+Â 3718
+¤_ 3609
+Ü 3563
+ãU 3514
+_ç 3394
+´ 3363
+ß 2962
+Â¥ 2907
+ÚU_ 2851
+_Â¥ 2668
+_ã 2632
+_â 2575
+ô 2527
+ÃŽ 2513
+´_ 2512
+Ã 2451
+Uæ 2336
+Õ 2314
+_Â 2280
+_× 2260
+ñ 2187
+¢ 2082
+» 2078
+¤æ 1988
+ð´ 1913
+·¤æ 1886
+·ð 1881
+ð¤ 1877
+·ð¤ 1860
+Ã 1842
+Ã_ 1830
+·¤_ 1746
+é 1714
+æð 1703
+ð¤_ 1695
+·ð¤_ 1694
+æÚ 1631
+ü 1610
+_·ð 1579
+_·ð¤ 1567
+ð´_ 1556
+æÚU 1536
+Øæ 1528
+Ùð 1525
+Uè 1515
+_·ð¤_ 1488
+Ù_ 1411
+Ùð_ 1407
+à 1390
+_ãñ 1357
+ãñ 1357
+Ã… 1337
+Ì_ 1319
+_Õ 1315
+×ð 1300
+ç· 1279
+Ö 1270
+_Ã 1258
+_·¤æ 1209
+ç·¤ 1203
+¤è 1195
+_Ù 1187
+° 1181
+§ 1166
+×ð´ 1163
+àæ 1162
+ý 1157
+¿ 1155
+_×ð 1150
+×ð´_ 1140
+·¤è 1127
+¤è_ 1092
+_×ð´ 1086
+_×ð´_ 1077
+ñU 1075
+_ãU 1071
+·¤è_ 1065
+ãñU 1062
+_ãñU 1062
+æÙ 1053
+¥æ 1052
+Ìæ 1038
+¤Ú 1035
+_ç· 1009
+¤ÚU 972
+âð 970
+_ç·¤ 967
+_·¤è 959
+ÚUæ 936
+ãUæ 930
+_·¤è_ 929
+·¤Ú 928
+Ã 926
+_¥æ 904
+Ã…U 904
+Ç 904
+© 890
+ê 887
+©U 885
+·¤ÚU 866
+_© 865
+_©U 862
+_Ö 854
+âð_ 850
+_Ú 847
+_Ì 837
+S 834
+UÃ 831
+_ÃŽ 830
+UÃ_ 823
+_ß 798
+Ùæ 788
+â_ 783
+_ÚU 773
+Uè_ 770
+ô´ 753
+æØ 752
+Ã 749
+Øæ_ 732
+×æ 732
+ô_ 704
+_§ 704
+Ãæ 704
+_âð 697
+Âý 695
+ãUè 693
+¤æ_ 690
+ü_ 688
+æÚU_ 685
+, 684
+_» 682
+·¤æ_ 679
+,_ 674
+_·¤Ú 670
+¹ 665
+ðU 664
+ßæ 648
+_Âý 647
+UÌ 644
+Ü_ 643
+_Ü 641
+ç·¤_ 639
+Ø_ 639
+Üæ 633
+_âð_ 633
+æç 623
+Uô 621
+ô´_ 615
+_·¤ÚU 611
+Uæ_ 599
+ãU_ 595
+Üð 594
+UÙ 589
+ñUà 580
+_ãñUà 580
+ãñUà 580
+_° 576
+_Ãæ 573
+ñUÃ_ 572
+ãñUÃ_ 572
+æÜ 569
+_Ø 569
+_Ùð 569
+ÂÚ 561
+_ç·¤_ 557
+‡ 556
+¤ô 552
+ææ 550
+ÂÚU 549
+çß 544
+Õæ 538
+_·¤æ_ 535
+×_ 532
+çÜ 525
+âæ 523
+·¤ô 519
+æð_ 502
+æ¢ 501
+¸ 498
+_Ùð_ 495
+‹ 494
+_ÂÚ 493
+Âæ 493
+Ìæ_ 490
+_ÂÚU 485
+çÙ 484
+õ 481
+È 478
+ྠ469
+. 459
+ÂÚU_ 458
+Öæ 449
+Øð 449
+_çß 445
+§â 444
+¤ÚU_ 443
+Öè 442
+_§â 440
+_ÂÚU_ 439
+æð´ 437
+Ùæ_ 435
+€ 434
+_¿ 433
+ÚUè 431
+⢠431
+_·¤ô 430
+Îð 427
+æÌ 425
+ÃŽ_ 420
+Öè_ 419
+¸U 415
+˜ 412
+˜æ 412
+§ü 410
+´U 405
+ÇU 399
+Ⱦ 399
+·¤ÚU_ 394
+Uã 394
+æÙ_ 393
+çÌ 393
+¤ô_ 392
+·¤ô_ 392
+çÎ 389
+ÚUÌ 385
+æà 385
+Ǹ 383
+æð´_ 382
+Ìè 381
+Ãæ 379
+çÚ 375
+°_ 374
+ãUô 374
+ÚUã 374
+æà 373
+æÃ_ 372
+_·¤ô_ 371
+_Õæ 369
+æè 364
+çÚU 364
+ðU_ 362
+¤æð 358
+Ȥ 357
+Uæð 354
+è´ 353
+â· 352
+ß_ 350
+U· 349
+¤æÚ 346
+Ìð 346
+·¤æð 346
+æü 345
+õÚ 344
+õÚU 342
+·¤æÚ 342
+_×æ 341
+_Öè 341
+_çÜ 340
+ñU_ 337
+_ãñU_ 337
+ÿ 337
+ãñU_ 337
+Ùè 336
+ãUè_ 334
+¿æ 334
+ñ´ 334
+_Öè_ 332
+æ× 327
+¤æÚU 327
+ÿæ 326
+_Ã 325
+U·¤ 323
+·¤æÚU 323
+Uè´ 322
+ãUè´ 321
+_âæ 320
+ǸU 319
+_¥õ 319
+¥õ 319
+õÚU_ 319
+_ÚUã 318
+Úð 317
+è´_ 316
+_⢠316
+æ· 313
+Øô 310
+_ãUæ 309
+Øã 309
+À 308
+ØãU 308
+_Øã 308
+_ØãU 307
+_·¤æð 304
+_¥õÚ 304
+¥õÚ 304
+_¥õÚU 304
+_Öæ 304
+¥õÚU 304
+¥õÚU_ 303
+_çÙ 303
+ãUè´_ 300
+Uè´_ 300
+_S 300
+Îæ 300
+UÜ 298
+ÚUè_ 296
+æÎ 296
+æß 294
+Ã…U_ 294
+Øð_ 293
+Ùã 292
+âè 291
+_Ùã 290
+æè_ 290
+ðà 290
+Üð_ 289
+UãU 288
+ÙãU 288
+Uâ 288
+_ÙãU 286
+_à 286
+_ÙãUè 285
+_Âæ 285
+ÙãUè 285
+æ·¤ 284
+_àæ 284
+ÙãUè´ 283
+UÌ_ 282
+ãñ´ 280
+_ãñ´ 280
+ñ´U 280
+â× 279
+_çÎ 278
+_ãñ´U 278
+ãñ´U 278
+»_ 277
+_Îð 275
+ðàæ 274
+àæ_ 273
+æñ 272
+·¤ã 272
+¤ã 272
+Ìð_ 272
+_ãUô 272
+‡æ_ 272
+- 271
+¤ãU 271
+·¤ãU 271
+¢_ 271
+_·¤ã 270
+ãUæ_ 270
+_·¤ãU 269
+ÚUãU 268
+ãé 267
+æâ 265
+°· 263
+¤Ø 263
+¤æð_ 262
+·¤æð_ 262
+°·¤ 262
+ÚðU 258
+_°· 258
+Ùè_ 258
+_°·¤ 257
+ÀU 256
+v 253
+ÂÙ 252
+_ÚUæ 252
+Üè 249
+ç× 247
+çâ 246
+_Ã… 246
+ÚUÙ 246
+×é 245
+._ 245
+UÚ 244
+éU 243
diff --git a/test/user-template/user/fingerprint/hungarian.lm b/test/user-template/user/fingerprint/hungarian.lm
new file mode 100644
index 000000000000..307348b47789
--- /dev/null
+++ b/test/user-template/user/fingerprint/hungarian.lm
@@ -0,0 +1,400 @@
+_ 19186
+e 5753
+a 4627
+t 4522
+s 3480
+l 3437
+n 3137
+k 3036
+i 2527
+r 2437
+z 2399
+o 2303
+á 2039
+é 1995
+g 1978
+m 1695
+y 1338
+_a 1256
+b 1186
+d 1148
+a_ 1108
+v 1057
+t_ 901
+sz 889
+el 832
+, 819
+,_ 818
+h 792
+k_ 769
+. 767
+et 743
+gy 711
+s_ 705
+_m 702
+_a_ 695
+en 671
+ö 662
+n_ 646
+_k 645
+j 623
+._ 613
+i_ 606
+eg 601
+p 586
+_e 580
+u 579
+le 576
+ó 542
+er 495
+f 485
+ek 477
+te 477
+és 473
+_s 471
+al 464
+ta 458
+í 453
+_h 444
+_t 442
+an 426
+ze 425
+me 406
+at 405
+l_ 401
+es 395
+õ 387
+y_ 381
+z_ 375
+tt 374
+ke 372
+_v 369
+ás 368
+ak 367
+_é 365
+ny 363
+tá 359
+c 358
+re 350
+to 347
+A 343
+e_ 340
+ü 332
+ne 330
+os 326
+ál 320
+_f 320
+az 317
+zt 317
+ár 317
+_n 315
+ko 312
+_A 303
+_sz 302
+is 301
+ve 299
+gy_ 297
+ít 293
+_b 293
+ra 291
+or 289
+ol 284
+_i 281
+em 279
+_l 274
+la 264
+ez 262
+be 260
+lt 260
+ok 260
+ye 256
+_me 252
+on 251
+en_ 247
+ar 245
+_az 245
+in 243
+án 242
+se 242
+ég 238
+egy 237
+ha 237
+r_ 237
+té 237
+ér 235
+sze 233
+én 226
+ly 224
+g_ 221
+" 221
+ll 219
+iz 214
+de 214
+ek_ 213
+mi 212
+rt 211
+ba 209
+ho 209
+A_ 209
+és_ 209
+az_ 205
+va 204
+ag 203
+ka 202
+na 202
+og 201
+ik 201
+nt 200
+_A_ 199
+ô 199
+- 198
+tt_ 198
+_az_ 197
+ni 195
+cs 194
+ki 190
+kö 187
+át 187
+_eg 187
+nd 186
+fe 185
+_és 185
+lá 182
+bi 181
+nk 180
+_le 179
+an_ 179
+_és_ 177
+tás 175
+ké 174
+meg 173
+_egy 172
+ma 171
+as 170
+sa 170
+sí 169
+ge 167
+ot 167
+za 167
+E 166
+m_ 165
+_meg 165
+_el 165
+bb 164
+ro 164
+zá 163
+he 162
+má 161
+sé 160
+_r 160
+sít 160
+tos 159
+ti 159
+st 158
+_j 158
+él 157
+it 156
+_ho 156
+ül 156
+_ha 155
+vé 154
+am 152
+oz 152
+ele 151
+ya 151
+zto 150
+ú 149
+biz 147
+so 147
+et_ 145
+izto 144
+izt 144
+ap 141
+"_ 141
+ed 141
+ss 140
+bizt 140
+ék 140
+bizto 140
+iztos 139
+ét 139
+ztos 139
+osít 138
+zet 138
+osí 138
+mé 137
+_is 137
+t, 136
+tosít 136
+tosí 136
+t,_ 136
+ó_ 135
+agy 135
+ztosí 135
+li 134
+om 134
+_fe 134
+ere 133
+ág 133
+t. 132
+nek 131
+vi 129
+_d 129
+zo 128
+k,_ 128
+k, 128
+_kö 127
+_p 127
+M 126
+let 126
+ak_ 125
+já 125
+ett 125
+û 124
+si 124
+ész 123
+_E 123
+ép 123
+vá 123
+rá 123
+t._ 123
+is_ 123
+S 123
+ítás 122
+ítá 122
+kor 121
+ai 121
+fel 120
+da 120
+_mi 120
+pe 119
+ogy 118
+ban 118
+ad 117
+ga 116
+_va 116
+ott 114
+_ne 114
+_ki 113
+ör 113
+zé 112
+ben 112
+_te 111
+zi 111
+sá 110
+ség 109
+do 109
+tó 108
+em_ 108
+_" 108
+_ta 108
+_M 107
+ogy_ 107
+_á 107
+k. 106
+ól 105
+_ke 105
+_g 104
+: 103
+gye 102
+ák 102
+hog 102
+ri 102
+mo 101
+ok_ 101
+:_ 101
+hogy 101
+il 101
+el_ 100
+zer 100
+ete 99
+nn 99
+nak 98
+je 98
+sítá 98
+szá 98
+yo 98
+osítá 98
+sítás 98
+_ké 98
+_hog 98
+lé 97
+_S 97
+_hogy 97
+ig 97
+_- 96
+hogy_ 96
+ban_ 96
+ese 95
+_bi 94
+fo 94
+ja 94
+ul 94
+õ_ 94
+k._ 94
+_c 93
+ká 91
+es_ 91
+ná 91
+ény 91
+gé 91
+ás_ 91
+egy_ 90
+áb 90
+rd 89
+I 89
+ány 89
+_biz 89
+_fel 88
+öv 88
+ala 88
+szer 88
+po 88
+_ma 88
+leg 88
+tö 88
+ket 87
+un 87
+di 87
+ai_ 87
+nek_ 87
+rm 86
+tal 86
+év 85
+_is_ 85
+nem 85
+ti_ 84
+öz 84
+szt 84
+ut 83
+ter 83
+dé 83
+kk 83
+or_ 83
+b_ 82
+né 82
+os_ 82
+re_ 82
+rs 82
+_bizt 82
+min 82
+ben_ 81
+ra_ 81
+ik_ 81
+go 80
+len 80
+lm 80
+öt 80
+ely 80
+aj 80
+öl 80
+_sze 80
+_be 79
+ev 79
+ré 79
+ssz 79
+nt_ 79
+gya 79
+K 79
+si_ 79
+sza 78
diff --git a/test/user-template/user/fingerprint/icelandic.lm b/test/user-template/user/fingerprint/icelandic.lm
new file mode 100644
index 000000000000..b1fe0f2c27dd
--- /dev/null
+++ b/test/user-template/user/fingerprint/icelandic.lm
@@ -0,0 +1,400 @@
+_ 26104
+a 6496
+r 6044
+n 5160
+i 5123
+s 3987
+e 3891
+u 3582
+t 3300
+ð 3126
+l 3071
+g 2726
+m 2459
+k 2256
+f 2230
+r_ 1967
+v 1641
+ar 1472
+ð_ 1420
+_s 1332
+á 1248
+o 1221
+í 1197
+a_ 1155
+in 1150
+i_ 1114
+h 1023
+j 975
+d 974
+st 929
+að 925
+. 922
+n_ 875
+._ 875
+_v 874
+m_ 854
+nn 842
+_f 840
+ur 824
+_a 806
+ó 785
+_h 782
+æ 779
+ið 771
+er 765
+um 727
+g_ 716
+y 711
+_e 709
+þ 672
+b 672
+ir 671
+ri 670
+an 667
+ö 650
+_á 648
+að_ 645
+u_ 633
+na 631
+í_ 625
+ar_ 622
+_þ 608
+á_ 606
+_í 595
+ta 567
+ei 566
+la 558
+_m 549
+_í_ 549
+um_ 547
+t_ 535
+ti 529
+_o 524
+ur_ 523
+_að 519
+ið_ 512
+ði 496
+ve 494
+og 494
+ú 482
+og_ 479
+_og 478
+_og_ 478
+nd 469
+p 464
+ra 455
+un 454
+ir_ 452
+_að_ 451
+ni 439
+en 439
+ðu 439
+_á_ 436
+ng 434
+il 404
+ga 395
+_t 395
+nu 393
+ki 392
+ja 383
+inn 379
+_b 375
+sk 352
+s_ 350
+vi 349
+rð 347
+ða 345
+ef 339
+ag 336
+_u 330
+se 324
+lu 324
+af 321
+_ve 320
+tu 318
+em 307
+eg 304
+nn_ 303
+_l 303
+va 301
+_k 296
+, 295
+ns 292
+re 292
+tt 291
+,_ 291
+l_ 286
+am 286
+es 285
+yr 285
+al 281
+da 277
+S 275
+gu 273
+_se 271
+ver 268
+_g 266
+ing 266
+_n 262
+is 258
+_er 257
+sa 256
+ður 255
+le 255
+_st 255
+_S 254
+sem 254
+ll 254
+me 253
+ha 251
+li 249
+kk 249
+rs 247
+_vi 247
+rn 246
+sl 244
+gi 243
+ss 242
+rf 241
+fy 240
+ði_ 240
+mi 238
+ka 237
+ma 231
+ld 230
+é 229
+rir 227
+sta 227
+fyr 227
+ví 227
+di 226
+ru 224
+var 224
+_fy 222
+ku 221
+em_ 221
+nar 220
+_sem_ 220
+_sem 220
+sem_ 220
+he 219
+yri 217
+_fyr 216
+si 216
+yrir 215
+au 212
+er_ 212
+ek 211
+_ha 210
+þe 209
+fyri 207
+fyrir 207
+_þe 205
+fi 204
+fr 203
+ge 201
+or 200
+ne 200
+ann 198
+jó 198
+_va 196
+_fyri 196
+_ver 194
+fl 192
+_er_ 191
+_um 189
+ík 188
+til 187
+_he 186
+fa 186
+il_ 182
+_ti 178
+_til 177
+gar 176
+_var 176
+na_ 176
+ý 175
+eð 171
+fu 170
+nni 169
+_me 168
+ki_ 167
+við 166
+ey 165
+fn 165
+arf 164
+til_ 163
+st_ 162
+_til_ 162
+þa 161
+num 161
+_þa 161
+as 160
+_við 160
+rt 159
+el 158
+uð 156
+inn_ 155
+_um_ 154
+ra_ 153
+bæ 153
+tar 151
+ta_ 151
+erð 151
+ór 148
+and 148
+_sa 146
+ig 146
+_en 146
+nga 145
+rir_ 145
+us 144
+jar 143
+et 143
+ár 142
+_sk 140
+ndi 140
+æð 139
+var_ 139
+_r 138
+av 138
+æk 137
+nna 137
+ður_ 136
+ál 136
+ko 135
+nin 135
+við_ 135
+ól 135
+ins 134
+ik 133
+E 133
+K 133
+yrir_ 133
+ns_ 133
+on 133
+ein 132
+_við_ 132
+ög 132
+já 132
+Þ 132
+öl 132
+ðs 132
+_mi 131
+f_ 131
+sí 131
+sj 131
+stu 131
+nda 130
+_var_ 130
+gr 129
+ús 128
+tæ 127
+ri_ 126
+haf 126
+_sí 125
+vík 124
+rin 124
+te 124
+r. 124
+r._ 123
+H 123
+nes 123
+ót 123
+ru_ 123
+kr 122
+F 122
+ær 121
+num_ 121
+k_ 121
+a. 121
+_H 121
+_fr 120
+_ge 120
+rá 120
+_E 120
+_Þ 120
+ug 120
+ngu 119
+an_ 119
+inga 118
+_K 118
+_haf 118
+enn 117
+ars 117
+rið 117
+en_ 117
+sin 116
+kur 116
+it 116
+ða_ 116
+ti_ 115
+rði 114
+tj 114
+ni_ 114
+at 114
+tarf 114
+br 113
+slu 113
+kki 113
+rg 113
+má 113
+kv 113
+_en_ 113
+a._ 112
+gar_ 112
+du 112
+ju 110
+eið 110
+und 110
+lag 110
+tur 110
+ega 109
+hú 109
+íð 109
+gn 109
+hef 109
+kj 109
+_hef 109
+_sta 108
+B 108
+V 108
+sam 107
+_ei 106
+_B 106
+ft 106
+ga_ 106
+G 106
+_G 105
+lö 105
+kki_ 105
+star 104
+in_ 104
+R 104
+með 104
+_ár 103
+_með 103
+ekk 103
+inu 103
+tö 103
+_V 103
+m. 103
+aði 103
+jö 102
+æj 102
+_bæ 102
+ess 102
+hús 101
+ut 101
+gs 101
+aví 101
+mu 101
+_R 101
+_ú 101
+rst 100
+æjar 100
+leg 100
+æja 100
+ja_ 99
+avík 99
diff --git a/test/user-template/user/fingerprint/indonesian.lm b/test/user-template/user/fingerprint/indonesian.lm
new file mode 100644
index 000000000000..3fa5a09b4691
--- /dev/null
+++ b/test/user-template/user/fingerprint/indonesian.lm
@@ -0,0 +1,400 @@
+_ 19406
+a 10666
+n 5455
+e 4535
+i 4387
+r 2936
+t 2902
+an 2853
+u 2841
+k 2761
+s 2311
+m 2178
+d 2134
+g 2105
+l 1780
+a_ 1506
+n_ 1476
+ng 1449
+p 1397
+b 1275
+an_ 1270
+o 1246
+h 1130
+i_ 1108
+er 1038
+ka 1032
+_d 1006
+y 997
+, 951
+en 941
+ar 914
+,_ 900
+_m 880
+ya 842
+ta 838
+ang 797
+di 787
+da 773
+. 754
+la 742
+._ 738
+me 732
+ak 728
+_s 718
+at 690
+ra 688
+ga 683
+_k 671
+_me 650
+in 628
+ah 601
+_t 583
+_p 570
+g_ 551
+_b 551
+_di 548
+ng_ 544
+ma 536
+se 526
+tu 511
+na 506
+al 500
+ri 490
+as 483
+k_ 482
+j 480
+si 470
+ny 467
+h_ 457
+sa 452
+ang_ 439
+it 424
+kan 423
+ti 418
+_se 417
+pe 412
+S 409
+ba 407
+ke 407
+em 405
+men 405
+be 403
+un 401
+te 401
+am 396
+pa 395
+nya 390
+_men 374
+el 374
+t_ 371
+_a 360
+_i 356
+u_ 355
+kan_ 345
+_ke 339
+is 335
+ah_ 324
+_S 324
+eng 321
+nga 320
+ia 318
+_pe 316
+ha 313
+ap 311
+r_ 308
+w 305
+li 301
+_da 300
+s_ 299
+P 296
+nd 290
+_be 287
+ik 283
+ja 281
+yan 281
+ad 275
+ek 273
+uk 272
+di_ 270
+bu 269
+ya_ 268
+yang 268
+ak_ 266
+ber 265
+_y 265
+_ya 264
+_P 263
+ru 260
+K 259
+yang_ 256
+_yang 256
+_yan 256
+nt 255
+de 253
+_te 250
+wa 249
+et 247
+at_ 246
+ara 245
+gan 243
+A 237
+ari 235
+ala 230
+itu 229
+c 225
+ol 225
+ni 225
+us 225
+dan 224
+_K 224
+M 224
+B 223
+ata 222
+ai 221
+ur 219
+nya_ 217
+ua 215
+_ka 214
+_ber 210
+eb 209
+ran 206
+D 206
+ela 206
+_di_ 205
+_l 204
+ngan 204
+ter 203
+re 201
+- 199
+aka 198
+l_ 194
+_A 191
+era 191
+a, 191
+e_ 190
+ir 187
+I 186
+tan 185
+_B 184
+ut 184
+ku 183
+a,_ 183
+il 182
+J 181
+um 180
+_it 180
+_itu 180
+_ta 179
+su 179
+dan_ 177
+es 177
+on 177
+or 177
+_dan 176
+lu 174
+_M 172
+tu_ 172
+_dan_ 172
+enga 171
+mb 169
+R 169
+si_ 168
+per 168
+gan_ 168
+ngan_ 165
+" 162
+_ter 162
+a. 161
+man 161
+gk 160
+a._ 160
+asi 160
+ngk 160
+ep 160
+ag 159
+ul 158
+da_ 157
+m_ 155
+du 155
+ada 153
+ki 153
+rt 150
+mp 150
+T 150
+ama 148
+ing 148
+na_ 147
+_J 147
+_D 145
+ung 145
+ana 145
+n, 144
+ju 144
+ud 144
+rin 143
+gi 143
+aw 141
+lah 138
+lan 138
+_sa 136
+ri_ 136
+meng 136
+_meng 135
+_ma 134
+n,_ 134
+awa 134
+st 134
+eka 133
+mi 133
+mu 132
+_T 132
+po 131
+ge 131
+ar_ 130
+id 129
+ko 129
+le 128
+_h 128
+ena 127
+_j 126
+emb 126
+ina 125
+_r 124
+itu_ 124
+ay 123
+ngg 123
+gg 123
+rang 123
+pi 120
+nan 120
+_ba 119
+_la 119
+apa 119
+_I 118
+p_ 118
+bi 117
+ai_ 117
+ta_ 116
+san 116
+Ke 116
+ro 115
+eri 114
+kar 113
+lah_ 113
+_itu_ 112
+aya 111
+i, 110
+an, 110
+ra_ 110
+_per 110
+im 110
+ika 109
+isi 109
+mem 109
+tah 108
+_Ke 108
+ian 108
+_mem 108
+akan 108
+Se 108
+to 107
+ab 107
+ngka 106
+rs 106
+gka 106
+uk_ 105
+seb 104
+_de 104
+pu 104
+i,_ 104
+ita 104
+nda 103
+_ti 103
+ni_ 103
+ca 103
+_Se 103
+ers 103
+pen 103
+ini 102
+an,_ 102
+angk 101
+uh 101
+han 101
+nta 100
+_in 99
+f 99
+nj 99
+ok 99
+aga 99
+_R 98
+as_ 98
+tr 98
+mer 97
+lam 97
+and 97
+end 96
+anga 96
+ne 96
+Sa 96
+ka_ 96
+arin 95
+gu 95
+_ha 94
+Z 94
+al_ 94
+ga_ 94
+_Z 93
+_pen 93
+dar 93
+Ad 93
+i._ 93
+ada_ 93
+atan 93
+tak 93
+i. 93
+ia_ 92
+asa 92
+ap_ 92
+ari_ 92
+kat 92
+_seb 92
+_Za 91
+Za 91
+den 91
+n. 90
+_u 90
+_Ad 90
+engan 89
+ib 89
+any 89
+n._ 89
+o_ 89
+Zar 88
+Zari 88
+rina 88
+_Zar 88
+_Zari 88
+Zarin 88
+arina 88
+ks 88
+angka 87
+oli 87
+eg 87
+kt 86
+_Sa 86
+hu 85
+ih 85
+us_ 85
+adi 85
+om 85
+eba 85
+anya 85
+_bu 84
+denga 83
+L 83
+ed 83
+dak 83
+deng 83
+ma_ 82
+asi_ 82
diff --git a/test/user-template/user/fingerprint/irish_gaelic.lm b/test/user-template/user/fingerprint/irish_gaelic.lm
new file mode 100644
index 000000000000..b6874862da01
--- /dev/null
+++ b/test/user-template/user/fingerprint/irish_gaelic.lm
@@ -0,0 +1,400 @@
+_ 8010
+a 2622
+i 1573
+h 1334
+n 1247
+r 968
+_a 847
+e 830
+s 817
+t 747
+l 639
+c 636
+g 598
+o 590
+d 554
+n_ 501
+a_ 487
+m 432
+an 415
+u 413
+b 379
+h_ 352
+ai 350
+ch 350
+ea 346
+r_ 346
+í 334
+é 321
+_s 309
+á 306
+in 281
+ar 277
+. 269
+_d 266
+s_ 254
+ir 253
+_b 250
+f 250
+an_ 246
+, 241
+,_ 226
+ag 225
+_an 221
+bh 218
+_c 216
+._ 212
+ac 210
+ha 208
+_a_ 201
+" 199
+_m 199
+th 198
+_t 190
+ach 182
+_ag 180
+_an_ 179
+í_ 176
+_l 168
+na 168
+nn 160
+e_ 159
+ar_ 158
+_g 157
+ú 156
+_i 152
+il 150
+le 150
+is 143
+ó 142
+_bh 138
+ei 138
+g_ 135
+_f 135
+dh 135
+l_ 126
+t_ 125
+ig 123
+é_ 122
+_n 120
+gu 120
+á_ 120
+mh 118
+id 117
+ch_ 117
+ad 116
+he 114
+ir_ 114
+ra 109
+o_ 109
+ach_ 107
+ia 105
+_ar 105
+us 104
+ui 104
+_" 101
+us_ 100
+T 99
+am 99
+ta 98
+gus 98
+gus_ 98
+_le 97
+gh 97
+_ch 97
+agus 94
+agus_ 94
+agu 94
+éa 93
+_agus 93
+_agu 93
+ean 93
+na_ 92
+d_ 92
+ái 91
+p 89
+it 89
+A 89
+_ar_ 88
+rt 86
+al 85
+oi 84
+sa 84
+"_ 82
+hai 81
+_r 79
+nn_ 79
+hu 79
+as 79
+éi 78
+_T 78
+ma 77
+air 77
+at 77
+ann 76
+B 76
+sé 76
+hí 75
+igh 74
+st 74
+ga 73
+go 71
+ua 71
+ne 71
+la 71
+- 71
+de 71
+te 71
+re 70
+inn 70
+ith 69
+eac 69
+_sé 69
+in_ 68
+_go 68
+hi 68
+each 68
+dh_ 68
+si 67
+ag_ 67
+_go_ 66
+hea 66
+go_ 66
+tha 64
+om 64
+_sé_ 63
+sé_ 63
+hí_ 63
+on 62
+se 61
+úi 60
+nt 60
+C 60
+D 59
+i_ 58
+_ag_ 58
+is_ 58
+ío 58
+_de 57
+_B 56
+il_ 56
+or 56
+_th 54
+ca 53
+fa 53
+amh 53
+_A 53
+le_ 52
+? 52
+S 51
+io 51
+_in 51
+sí 51
+li 51
+rai 50
+hf 50
+ht 50
+eo 50
+sc 50
+ri 49
+: 49
+igh_ 49
+gh_ 49
+_sí 49
+:_ 49
+há 49
+_D 49
+be 49
+aig 49
+hé 48
+oc 48
+idh 48
+rt_ 48
+ho 47
+os 47
+ann_ 47
+_C 46
+! 46
+Bh 46
+bhf 45
+_si 45
+lt 45
+_bhf 45
+irt 45
+ear 44
+_na 44
+ta_ 44
+air_ 44
+_p 44
+im 44
+aga 44
+_ma 44
+_S 44
+aigh 43
+án 43
+_dh 43
+uai 43
+ao 43
+cht 43
+ain 42
+bhe 42
+ait 42
+fh 42
+sa_ 41
+m_ 41
+adh 41
+ile 41
+_é 41
+ail 41
+eir 41
+ói 41
+_Bh 40
+as_ 40
+cha 40
+idh_ 40
+hái 39
+_i_ 39
+bh_ 39
+th_ 39
+ad_ 39
+och 39
+mh_ 39
+tr 39
+rea 38
+_se 38
+ro 38
+rí 38
+hair 38
+_is 38
+uil 37
+iú 37
+áin 37
+I 37
+ll 37
+mé 37
+_be 36
+ba 36
+eann 36
+tá 36
+_o 36
+M 36
+aid 36
+aith 36
+ib 36
+' 36
+tea 36
+_mé 35
+chu 35
+ibh 35
+each_ 35
+ean_ 34
+irt_ 34
+_na_ 34
+N 34
+ist 34
+fu 34
+mha 34
+bea 34
+h. 34
+_bhe 34
+lá 34
+ic 34
+_sí_ 33
+eis 33
+bhí 33
+ni 33
+héa 33
+_sa 33
+ith_ 33
+sí_ 33
+har 33
+_bhí 33
+ig_ 32
+ur 32
+aí 32
+hr 32
+_am 32
+_bhí_ 31
+da 31
+úir 31
+hfu 31
+_chu 31
+ol 31
+ne_ 31
+_fa 31
+An 31
+Bhí_ 31
+Bhí 31
+n, 31
+_ac 31
+bhí_ 31
+_bhfu 30
+_ó 30
+ana 30
+_M 30
+mé_ 30
+_fh 30
+aigh_ 30
+bhfu 30
+_mé_ 30
+tú 29
+_le_ 29
+tá_ 29
+hean 29
+háin 29
+sin 29
+eir_ 29
+nne 29
+cé 29
+_aga 29
+h._ 29
+Tá 29
+ibh_ 29
+iste 28
+An_ 28
+do 28
+hui 28
+fui 28
+ní 28
+ste 28
+acht 28
+n,_ 28
+co 28
+dea 28
+ng 28
+nach 28
+id_ 28
+hfui 28
+.. 28
+lei 28
+nac 28
+ce 27
+a. 27
+c_ 27
+lea 27
+hfuil 27
+_Bhí_ 27
+_bea 27
+adh_ 27
+di 27
+fuil 27
+." 27
+Tá_ 27
+ha_ 27
+ú_ 27
+uil_ 27
+."_ 27
+bhfui 27
+_Bhí 27
+éan 27
+_do 27
+lta 27
+aoi 27
+_lei 27
+_mh 26
+dú 26
+fuil_ 26
+eat 26
+-_ 26
+teac 26
+ath 26
diff --git a/test/user-template/user/fingerprint/italian.lm b/test/user-template/user/fingerprint/italian.lm
new file mode 100644
index 000000000000..543cadcfa88e
--- /dev/null
+++ b/test/user-template/user/fingerprint/italian.lm
@@ -0,0 +1,400 @@
+_ 25028
+a 7570
+e 6477
+i 5481
+o 5104
+l 3905
+n 3866
+r 3502
+t 2934
+c 2862
+s 2862
+a_ 2504
+e_ 2404
+d 2004
+i_ 1749
+o_ 1679
+u 1650
+v 1611
+p 1561
+m 1414
+_c 1325
+, 1192
+,_ 1192
+_s 1190
+_d 1094
+g 1067
+an 925
+er 915
+_a 914
+_p 895
+la 858
+_l 830
+re 799
+ar 769
+h 762
+no 753
+co 726
+va 698
+_e 657
+n_ 656
+on 656
+ra 653
+to 651
+f 638
+di 638
+_i 634
+ch 634
+ll 633
+l_ 624
+la_ 598
+ta 593
+el 576
+in 567
+_m 558
+en 529
+b 528
+ri 525
+_co 523
+_n 523
+_di 522
+li 513
+av 507
+al 501
+le 494
+ia 492
+se 484
+ol 479
+_f 477
+or 477
+te 469
+_e_ 467
+ve 454
+at 449
+de 447
+. 443
+ne 429
+va_ 428
+ca 426
+._ 422
+tt 422
+re_ 415
+nt 415
+io 411
+_v 407
+pe 405
+z 392
+to_ 391
+_ch 389
+na 384
+si 384
+' 383
+he 382
+no_ 379
+ci 374
+_la 373
+ro 371
+_g 370
+st 368
+cc 366
+he_ 362
+di_ 362
+ma 358
+ev 354
+che 354
+es 352
+me 352
+pa 351
+_t 349
+ti 348
+_di_ 347
+ss 345
+che_ 344
+a,_ 337
+a, 337
+nd 335
+o, 333
+o,_ 333
+ell 330
+gl 323
+sa 322
+il 322
+gli 321
+da 318
+as 318
+do 314
+_che 308
+_che_ 306
+eva 306
+_la_ 300
+lla 298
+le_ 293
+un 291
+_pe 290
+_de 288
+q 283
+qu 283
+ava 280
+po 277
+on_ 275
+r_ 273
+li_ 273
+_b 269
+_il 268
+_il_ 268
+il_ 268
+lo 267
+om 263
+e, 263
+e,_ 263
+ni 258
+tr 258
+so 255
+ra_ 253
+os 251
+_in 249
+_u 248
+per 244
+are 243
+et 243
+_se 240
+ano 239
+si_ 238
+_ca 238
+_qu 238
+lla_ 238
+_q 238
+_a_ 236
+ac 236
+_r 234
+ic 233
+_no 232
+ie 227
+fa 227
+hi 226
+del 225
+ua 222
+_per 218
+ce 218
+_ma 216
+sc 216
+_del 215
+mi 212
+_un 208
+chi 206
+era 205
+i, 205
+i,_ 205
+su 203
+and 202
+vo 202
+_fa 201
+eva_ 200
+ano_ 199
+gli_ 197
+non 196
+pi 196
+vi 195
+er_ 195
+_al 194
+se_ 193
+_ne 192
+_non 191
+am 190
+is 187
+ava_ 187
+_non_ 186
+non_ 186
+in_ 185
+ent 185
+_si 184
+_pa 184
+com 183
+! 182
+_le 182
+_su 181
+uo 181
+el_ 180
+!_ 180
+l' 178
+ue 177
+te_ 177
+_com 177
+are_ 176
+pr 176
+_in_ 176
+van 172
+mo 172
+ta_ 171
+gn 167
+ere 166
+na_ 166
+tto 163
+it 161
+_per_ 161
+per_ 161
+é 161
+all 160
+ess 159
+ut 159
+col 158
+acc 157
+gi 155
+lo_ 154
+oc 154
+vano 153
+io_ 153
+_av 151
+ndo 151
+é_ 151
+ato 149
+ave 148
+_st 147
+me_ 147
+'a 146
+ia_ 144
+con 143
+mp 143
+fi 142
+ett 142
+_si_ 141
+_pi 140
+era_ 140
+ti_ 140
+ó 140
+vano_ 140
+_gl 139
+qua 139
+ella 139
+sta 138
+ome 137
+S 137
+_gli 137
+_S 137
+ad 136
+_ve 134
+ant 134
+ne_ 134
+ó_ 133
+sp 133
+do_ 133
+_po 132
+ro_ 132
+ov 132
+_le_ 131
+ella_ 130
+sse 129
+_con 128
+ir 128
+_vi 128
+ig 127
+_gli_ 127
+_ave 127
+vev 127
+un_ 126
+ot 126
+veva 125
+dell 125
+que 125
+a. 125
+_o 125
+a._ 124
+tu 124
+cia 123
+za 123
+_que 123
+_da 121
+par 121
+_pr 120
+cch 120
+_dell 120
+eg 119
+_sa 119
+o._ 119
+o. 119
+_col 118
+lt 118
+_un_ 118
+rt 118
+ur 117
+_vo 117
+_me 117
+ome_ 117
+L 116
+ap 116
+_L 116
+zi 116
+nto 116
+og 115
+_an 115
+_so 115
+em 114
+ag 114
+be 111
+ni_ 111
+im 110
+cchi 110
+ver 110
+lle 109
+nz 109
+cci 109
+_ri 109
+nc 108
+_er 108
+come_ 107
+come 107
+aveva 107
+ui 107
+avev 107
+tto_ 107
+_come 106
+ed 106
+P 105
+man 105
+_P 105
+rs 105
+occ 104
+ndo_ 103
+ato_ 103
+_qua 103
+_era 103
+ari 102
+ba 100
+_mo 100
+nel 100
+id 99
+men 98
+_fi 98
+_all 98
+rr 97
+_do 97
+_avev 97
+att 97
+l'a 96
+ei 96
+zz 96
+; 96
+vol 95
+pp 95
+tra 95
+;_ 95
+ere_ 94
+lle_ 94
+nda 94
+utt 94
+est 93
+_nel 93
+ul 92
+ola 92
+iv 92
+ando 90
+ale 90
+lu 90
+rn 90
+e. 89
+e._ 89
+ll' 89
+tta 88
+nte 87
+_l' 87
+uel 87
diff --git a/test/user-template/user/fingerprint/japanese.lm b/test/user-template/user/fingerprint/japanese.lm
new file mode 100644
index 000000000000..654341bfeae2
--- /dev/null
+++ b/test/user-template/user/fingerprint/japanese.lm
@@ -0,0 +1,400 @@
+_
+ã®
+ã€
+ã«
+ã‚’
+ã¨
+ã—
+ãŸ
+ãª
+ã¦
+。
+ã§
+ã‚‹
+ã‹
+ã™
+ã¯
+ã‚Š
+ã„
+ã¾
+ら
+ãŒ
+ 
+。_
+ã£
+ã‚‚
+_ 
+ã—ã¦
+ã™ã€‚
+1
+地
+ã‹ã‚‰
+ã†
+ã 
+ã¾ã™
+å¹´
+ー
+中
+れ
+ã‚
+ã¾ã™ã€‚
+ã€
+ãŸã€‚
+大
+分
+「
+ス
+ã—ãŸ
+ã‘
+ã“
+人
+国
+政
+ã‚“
+å­¦
+ã£ã¦
+æ–¹
+ã‚Šã¾
+ã£ãŸ
+ã™ã‚‹
+改é©
+é©
+改
+çš„
+ã¯ã€
+ã¡
+ã•
+ï¼’
+ã‚
+ã¦ã€
+部
+ã©
+生
+ã¦ã„
+ã‚¿
+会
+ン
+ï¼™
+よ
+果
+ã›
+ã‚
+ã‚‹ã¨
+地方
+ã«ã€
+行
+ã‚„
+ã™ã€‚_
+3
+力
+自
+ã¨ã—
+レ
+ç«‹
+)
+ã¨ã—ã¦
+_)
+ãªã‚Š
+ã§ã
+進
+月
+æ–°
+ã‚Šã¾ã™
+æ°´
+åŒ
+女
+下
+ã‚Šã¾ã™ã€‚
+作
+(_
+ã“ã¨
+実
+å½¹
+権
+ã„ãŸ
+(
+ã—ã¦ã„
+ル
+ク
+(
+ã¿
+ニ
+ã­
+ã¤
+ãã‚‹
+経
+ï¼–
+時
+å¼·
+家
+性
+5
+内
+調
+集
+る。
+上
+財
+改é©(
+安
+çš„ãª
+事
+å‹™
+ã€ã¨
+一
+ã£ãŸã€‚
+å­
+å…¨
+ã§ãã‚‹
+å·
+ãŸã€‚_
+次
+業
+ãªã„
+ド
+)
+ç¾
+é©(_
+ï¼
+る。_
+改é©(_
+é©(
+ã§ã™
+ã§ã€
+マ
+ミ
+ジ
+社
+ã§ã‚‚
+ç›®
+å¹´ã‹ã‚‰
+発
+çœ
+ã€ä¸­
+ã‚¢
+ã¹
+ッ
+ã°
+済
+女性
+ï¼…
+法
+ãªã‚“
+ãˆ
+ç”»
+地方分権
+ãªã
+æ°‘
+構
+æ ¹
+ã—ã€
+ãŒã€
+高
+推
+æ–½
+ã¨ã„
+何
+é›»
+調査
+éš›
+ã‚‚ã€
+和
+分権
+効
+é™
+地方分
+国ã®
+é•·
+経済
+設
+計
+方分権
+野
+é‡
+å°
+ã«ãª
+構造
+本
+æ ¡
+査
+ã—ã¾
+造
+ã¾ã™ã€‚_
+ãªã‚Šã¾
+ã‚ŒãŸ
+方分
+ã‚ã‚Š
+財政
+ç†
+ãª_
+ã—ãŸã€‚
+å¹´ã‹
+ç´„
+_ã¦
+1年
+よã†
+ç§
+・
+メ
+育
+ã‚»
+ビ
+ã‚·
+ã—ã¦ã€
+ナ
+ã‚«
+ト
+生ã®
+ç€
+ã»
+æµ
+構造改
+ã‚“ã¦
+ãƒ
+ã‚
+èŒ
+æ²»
+時ã«
+ï¼…ã€
+æ°—
+ãŠ
+ドレ
+ãªã£
+ãªã©
+ãŸã‚Š
+何ã‹
+ã‚‹ã“
+ã€ãã—ã¦
+ã¦ã
+ãŸã¡
+ã§ã¯
+ã¦ã¯
+進ã‚
+造改
+構造改é©(
+ã®å­
+率
+期
+度
+æ—¥
+部çœ
+計画
+ã_
+æ—
+æ–‡
+構造改é©
+ã¨ã„ã†
+ã—ã¾ã™
+ãªã£ãŸ
+å±€
+踊り
+ãªã‚“ã¦
+æ­£
+夫
+増
+多
+食
+使
+ã ã£ãŸ
+戻
+ããª
+ã„ã¾
+体
+スを
+題
+ãŸãŒã€
+ã„ã‚‹
+ã„ã†
+身
+ã‚‚ãª
+ã„。
+中部
+ã‹ã‘
+踊
+_ã™
+é¢
+_ã«
+ã ã£ãŸã€‚
+çš„ã«
+é–€
+ドレス
+レス
+ï¼’å¹´
+ã¾ã—ãŸ
+制
+åˆ
+ã—ã¾ã™ã€‚
+ã¾ã§
+ã¾ã—
+ã‚ã‚Šã¾
+ãã€
+冬
+ã¨ã‚’
+文部çœ
+を進ã‚
+推進
+å…ƒ
+ãã—
+é ƒ
+è¾²
+å…¥
+域
+解
+ã¦ã„ã‚‹
+らã€
+ã€ãã—
+ã¨ã€
+造改é©
+家æ—
+見
+è¦
+ã—ãŸã€‚_
+è¦
+8
+5年
+ã‚ã‚Šã¾ã™ã€‚
+葉
+ï¼ï¼…
+造改é©(
+ã‚ã‚Šã¾ã™
+å…¬
+ã¯ãª
+ã«ã‚
+ã—ãª
+çµæžœ
+表
+ã‚ãŸ
+ãã—ã¦
+ã ã‘
+ã ã£
+_ã™ã€‚
+ï¼”
+第
+ã“ã¨ã‚’
+ã„ã¾ã™
+文部
+ã®ç›®
+ã€ã
+を進
+効果
+ã‚‹ã“ã¨
+ã®ã¾
+ã‚ã‚‹
+3ï¼
+ã€åœ°
+自分
+組
+çµ
+ 「
+ã«ã‚‚
+ãŸãŒ
+造改é©(_
+ã‚‹é™ã‚Š
+ã女性ãŸ
+ナ増強
+戻る。
+ã£ãŸã€‚_
+ç¾ã™
diff --git a/test/user-template/user/fingerprint/korean.lm b/test/user-template/user/fingerprint/korean.lm
new file mode 100644
index 000000000000..159493270c3f
--- /dev/null
+++ b/test/user-template/user/fingerprint/korean.lm
@@ -0,0 +1,400 @@
+_ 11636
+À 2659
+° 1629
+Ç 1578
+¸ 1458
+¿ 1397
+´ 1299
+µ 1118
+Ã 1005
+± 928
+» 849
+¼ 840
+_À 809
+¹ 808
+º 780
+¡ 773
+Ã 764
+³ 674
+¾ 640
+Ì 591
+ÃŽ 580
+ÀÌ 538
+½ 526
+Ã 519
+Â 518
+_° 518
+Ù 506
+· 483
+È 464
+ö 463
+­ 454
+´Ù 451
+ø 404
+Æ 395
+ë 384
+_¿ 382
+í 377
+. 374
+Ã… 373
+ç 358
+._ 347
+_Ç 344
+´Â 338
+¡_ 333
+Â_ 329
+¿¡ 327
+_Ã 319
+´Â_ 317
+´Ù. 313
+Ù. 313
+â 308
+¶ 308
+´Ù._ 301
+Ù._ 301
+»_ 299
+_¹ 291
+î 288
+® 282
+À» 279
+Ö 278
+¦ 274
+À»_ 271
+ÃŽ_ 269
+, 266
+Ñ 266
+°í 261
+Ãö 258
+,_ 258
+°¡ 250
+ß 248
+_¼ 246
+Ä 245
+ÀÇ 244
+Ì_ 243
+_¸ 243
+_µ 242
+ü 238
+é 235
+¼­ 234
+ÀÌ_ 234
+Çà 234
+_± 233
+´ë 228
+·Î 227
+ÇÑ 222
+½Ã 222
+_³ 215
+±â 212
+_Ã 210
+í_ 208
+_´ 206
+¦_ 206
+Ç_ 205
+_¾ 205
+º_ 204
+÷ 198
+˼ 198
+°í_ 194
+·Î_ 193
+ó 193
+¿¡_ 193
+¸¦_ 192
+¸¦ 192
+_ÀÌ 190
+­_ 189
+˼_ 189
+_½ 189
+µµ 188
+Àà 188
+ÀÇ_ 188
+_º 186
+Ã 177
+Ú 175
+ú 171
+ȍ 161
+Ô 154
+_Àà 153
+Ø 152
+¿ø 151
+±¸ 150
+µ¿ 147
+Ã’ 147
+¸¸ 145
+¼ö 143
+¤ 142
+ºÎ 142
+_» 141
+ÀÖ 140
+æ 139
+Ã 138
+ù 138
+ª 137
+µé 136
+è 134
+À¸ 134
+_ÀÖ 133
+² 132
+Ñ_ 127
+ÀÎ 125
+°¡_ 123
+ÀÚ 122
+ÇÑ_ 121
+Àü 121
+¾Æ 118
+ý 117
+Ã¥ 116
+Ã_ 115
+¾î 115
+µ_ 115
+¢ 114
+Ö´ 113
+°ú 112
+¸· 111
+¯ 109
+ÇØ 109
+§ 108
+à 108
+_È 108
+±¹ 107
+¼­_ 107
+× 107
+£ 106
+ÀÖ´ 105
+ȸ 103
+¸® 101
+ö_ 101
+û 100
+_ÀÖ´ 100
+õ 100
+¸·Î 100
+" 98
+À¸·Î 97
+ÃÖ 97
+À¸· 97
+Àå 95
+_´ë 94
+¡¼ 94
+³ª 94
+_½Ã 94
+Â¥ 94
+µî 94
+ä 92
+°ø 92
+_Ã… 91
+á 91
+ð 90
+Çà 90
+¸·Î_ 90
+Ê 89
+© 89
+Ã_ 89
+¸_ 89
+À¸·Î_ 89
+éÀ 89
+Þ 88
+¡¼­ 88
+¿¡¼ 88
+¿¡¼­ 88
+ê 87
+µµ_ 87
+±³ 85
+_Æ 85
+î_ 84
+°æ 84
+µéÀ 84
+¸í 84
+ëÇ 83
+¿ù 83
+_Ãö 82
+Çð 82
+¿À 81
+¶ó 80
+¿¡¼­_ 79
+¡¼­_ 79
+ÀÃ_ 78
+Ã 78
+æ 78
+ç_ 78
+øÀ 78
+' 77
+Çß 77
+ì 77
+Ü 77
+Ãß 77
+ú_ 76
+Ãö_ 76
+Ó 76
+â_ 75
+( 74
+) 74
+»ó 74
+°ü 74
+»ý 73
+_¿ù 72
+_°¡ 72
+_¼ö 72
+- 72
+¿© 72
+Ö´Ù 72
+º¸ 71
+ÀÖ´Ù 71
+Ȑ 70
+°³ 70
+½º 70
+¼± 69
+¿ë 69
+°ú_ 69
+_ÀÖ´Ù 69
+_µî 69
+ø_ 69
+ß´ 69
+°à 68
+³» 68
+_¡ 68
+_ÇÑ 68
+ù_ 67
+ü 67
+¸¿ 66
+_ÀÃ_ 66
+Çß´ 66
+°Ô 65
+ñ 65
+_¶ 65
+_°à 65
+Çß´Ù 64
+ß´Ù 64
+_Çà 63
+¹Î 62
+« 62
+ô 62
+¼Ò 62
+¿ù_ 62
+ö 61
+³â 61
+ðí 61
+Ì´ 60
+¾È 60
+Çðí 60
+õ 59
+_¿ù_ 59
+_¼­ 59
+Åë 59
+ÆÄ 58
+®_ 58
+_¸¸ 58
+Ø_ 58
+´ç 57
+ß´Ù. 57
+¬ 57
+Õ 57
+Çß´Ù. 57
+¹° 57
+¾÷ 57
+Ö´Ù. 56
+ß_ 56
+ÀÖ´Ù. 56
+¿à 56
+ß´Ù._ 56
+Ãø 56
+Àç 55
+¸° 55
+ÃÀ 55
+Æ® 55
+¹é 55
+ÀÌ´ 55
+Ö´Ù._ 54
+_¹é 54
+¿Ã_ 53
+Àû 53
+ð 53
+¹® 53
+_ÃÖ 53
+´Ü 53
+¼º 53
+ÇØ_ 53
+°Ç 53
+íÀ 52
+_Àü 52
+Ô_ 52
+¿¬ 52
+_°æ 51
+°ÃÀ 51
+°£ 51
+¿ì 51
+È­ 51
+ä 50
+_¾Æ 50
+´ëÇ 50
+Ä¡ 50
+ðí_ 49
+Çðí_ 49
+_ÀÎ 49
+Û 49
+É 49
+_" 48
+öµ 48
+ˤ 48
+ÀÌ´Ù 48
+ÀÔ 48
+_°ÃÀ 48
+Ì´Ù 48
+¡­ 47
+Ì´Ù. 47
+_°ø 47
+ÀÌ´Ù. 47
+°Ô_ 47
+_ȍ 47
+¸ç 47
+½Å 47
+Ã_ 46
+Ã…Ã 46
+é_ 46
+Ã’_ 46
+ï 46
+Çô 46
+_°³ 45
+_´Ù 45
+_ÀÚ 45
+¸¶ 45
+°è 45
+Çà 45
+Ì´Ù._ 45
+÷À 44
+îà 44
+ÈÄ 44
+±â_ 43
+(_ 43
+¸é 43
+­¿ 43
+ü_ 43
+ºñ 42
+­´ 42
+ë_ 42
+ÀÎ_ 42
+_ÀÌ_ 42
+µî_ 42
+°­ 42
+ÎÃ 41
+µÇ 41
+¿øÀ 41
+¿µ 41
+À½ 40
+Îõ 40
+±× 40
+Ë 40
+¿¹ 40
+_¿À 40
+øÇ 40
+¸» 40
+_Çà 40
+¡­_ 39
+_³â 39
+³² 39
+ÇÒ 39
+¿_ 39
+_³ª 39
+³­ 38
+¸íÀ 38
+âÀ 38
+ª_ 38
diff --git a/test/user-template/user/fingerprint/latin.lm b/test/user-template/user/fingerprint/latin.lm
new file mode 100644
index 000000000000..177cd35aa174
--- /dev/null
+++ b/test/user-template/user/fingerprint/latin.lm
@@ -0,0 +1,400 @@
+_ 20136
+e 6892
+i 5604
+a 5443
+u 4581
+t 4552
+s 4354
+r 3923
+n 3375
+m 3063
+o 2921
+c 2224
+l 1805
+e_ 1625
+s_ 1503
+p 1424
+d 1397
+, 1285
+,_ 1276
+er 1077
+qu 1028
+q 1028
+a_ 1019
+t_ 1018
+is 942
+_a 921
+re 902
+m_ 891
+v 858
+b 821
+um 808
+_s 773
+us 772
+en 766
+nt 733
+in 729
+ue 727
+te 720
+g 718
+_i 710
+_p 679
+it 676
+_c 669
+et 653
+que 652
+_e 643
+at 643
+ue_ 616
+ra 614
+que_ 611
+f 601
+or 598
+ri 576
+ti 572
+ta 559
+tu 552
+an 551
+ae 527
+_m 513
+am 501
+_t 493
+us_ 488
+is_ 487
+es 479
+em 479
+_f 451
+um_ 443
+_v 442
+ia 442
+li 438
+_d 436
+. 432
+i_ 430
+et_ 429
+ni 412
+ne 409
+h 406
+de 404
+ur 396
+._ 392
+ar 388
+os 388
+mi 382
+pe 382
+la 376
+st 371
+s, 368
+di 367
+_et 366
+s,_ 365
+_in 363
+on 360
+o_ 359
+_n 351
+_et_ 351
+as 346
+im 336
+na 327
+se 320
+ma 315
+cu 307
+vi 306
+si 303
+ro 303
+r_ 302
+su 299
+un 295
+_l 291
+to 291
+ec 290
+ci 288
+co 287
+_r 287
+ere 286
+ce 284
+tr 280
+re_ 278
+ent 275
+x 275
+ct 274
+ve 271
+ru 259
+ul 256
+me 255
+ui 255
+c_ 252
+_o 250
+ic 249
+ns 247
+_qu 242
+_q 242
+no 241
+ant 235
+am_ 235
+_co 233
+sa 231
+ca 230
+t, 226
+mu 225
+t,_ 225
+_re 223
+el 222
+ib 222
+id 218
+om 212
+_te 211
+al 209
+le 209
+it_ 208
+mo 208
+ol 206
+_u 203
+; 199
+_h 199
+ac 198
+;_ 198
+bu 197
+nu 196
+ua 195
+n_ 195
+ll 194
+tis 191
+A 189
+rt 188
+ge 188
+nd 187
+au 187
+lu 186
+iu 185
+squ 185
+per 185
+sq 185
+ter 185
+pa 183
+_A 183
+em_ 183
+ia_ 180
+ed 179
+_pe 178
+m, 176
+sque 175
+_su 175
+ae_ 175
+m,_ 175
+pr 175
+bi 175
+bus 174
+_vi 174
+os_ 173
+ta_ 172
+mqu 171
+mq 171
+ss 170
+sque_ 169
+ibu 167
+ad 166
+ibus 165
+I 164
+nte 163
+ra_ 163
+mque 162
+_de 162
+po 161
+_se 160
+ere_ 160
+nc 160
+qua 159
+T 159
+lo 157
+oc 156
+mque_ 156
+_T 155
+_pa 155
+_pr 155
+tem 154
+bus_ 152
+nti 149
+rum 149
+er_ 149
+ab 148
+ir 148
+da 147
+_ve 146
+ibus_ 146
+ex 146
+ut 145
+pi 145
+tur 145
+_ca 143
+_me 142
+es_ 142
+gi 142
+te_ 141
+_I 141
+vo 141
+do 141
+_si 140
+tus 139
+il 137
+_ar 136
+du 133
+nt_ 133
+uc 133
+fa 132
+as_ 132
+rr 131
+ba 130
+_ad 128
+ne_ 127
+_ma 127
+ens 127
+gn 126
+s. 126
+y 126
+min 125
+ris 124
+in_ 123
+tum 123
+P 123
+_g 123
+mp 123
+e, 122
+io 122
+_P 122
+ea 122
+hi 122
+e,_ 121
+era 120
+sc 120
+_la 120
+qui 120
+unt 120
+fe 119
+_in_ 118
+_no 118
+ore 118
+iam 118
+va 117
+tis_ 117
+s._ 117
+at_ 117
+eri 116
+d_ 116
+con 115
+fu 115
+pu 114
+cum 114
+ub 114
+ng 114
+ine 113
+_au 113
+: 113
+_di 112
+ag 111
+_con 111
+ect 111
+i, 111
+equ 111
+i,_ 111
+be 111
+eq 111
+_po 110
+so 110
+:_ 110
+nis 109
+ha 109
+uo 109
+_fa 108
+na_ 107
+ip 107
+is, 107
+_cu 106
+cr 106
+ate 105
+is,_ 105
+ig 105
+tor 105
+rat 104
+_qua 103
+eg 103
+a, 103
+a,_ 102
+tra 102
+_mo 101
+sp 101
+mis 100
+itu 100
+D 99
+ali 99
+eb 99
+eni 99
+_sa 98
+ie 98
+imu 98
+_ex 97
+_D 96
+res 95
+est 94
+tri 94
+ene 94
+_mi 94
+str 94
+enti 93
+t. 92
+av 92
+_per 91
+ur_ 91
+ora 91
+lt 91
+umqu 90
+_vo 90
+umq 90
+up 89
+t._ 88
+quo 88
+_ne 88
+gen 88
+rum_ 87
+tqu 87
+tq 87
+_fu 86
+ep 86
+ma_ 86
+umque 86
+it,_ 85
+ine_ 85
+it, 85
+men 85
+mus 84
+ort 83
+ven 83
+ina 83
+us,_ 83
+us, 83
+tque 82
+_ge 82
+per_ 82
+mor 82
+inc 82
+are 81
+tus_ 81
+_an 81
+rim 81
+tque_ 81
+ot 81
+ani 80
+H 80
+_tu 80
+ho 80
+tem_ 80
+u_ 80
+ser 79
+um,_ 79
+um, 79
+S 79
+ten 79
+ver 79
+sti 79
+ntu 78
+fer 78
diff --git a/test/user-template/user/fingerprint/latvian.lm b/test/user-template/user/fingerprint/latvian.lm
new file mode 100644
index 000000000000..bffdd309b9bb
--- /dev/null
+++ b/test/user-template/user/fingerprint/latvian.lm
@@ -0,0 +1,400 @@
+_ 24504
+a 8735
+i 7353
+s 6064
+t 5176
+e 4390
+r 4339
+u 4200
+n 3422
+â 3055
+m 2817
+p 2755
+k 2703
+o 2643
+s_ 2595
+d 2131
+l 2035
+j 1972
+î 1958
+ie 1887
+v 1822
+as 1530
+u_ 1396
+_p 1380
+b 1357
+z 1311
+ç 1267
+a_ 1261
+as_ 1217
+. 1065
+, 1048
+,_ 1033
+g 1010
+ar 970
+ð 965
+ti 962
+c 922
+_a 876
+ja 838
+st 828
+_i 822
+_v 805
+pa 792
+_t 775
+._ 774
+um 760
+_k 749
+â_ 734
+_n 728
+es 712
+i_ 706
+at 703
+is 695
+_s 680
+ai 649
+ta 635
+an 631
+ka 621
+r_ 615
+îb 586
+ij 585
+_u 568
+_pa 548
+un 541
+no 539
+va 537
+ma 525
+ra 522
+ri 515
+iz 512
+in 509
+vi 508
+pr 506
+sa 487
+ju 486
+tâ 483
+ik 473
+n_ 472
+am 454
+en 452
+tie 440
+na 432
+ða 430
+tu 420
+ija 420
+ir 419
+o_ 415
+m_ 414
+li 411
+ci 409
+ku 404
+mi 401
+_no 398
+ek 398
+_un 397
+t_ 395
+_l 394
+un_ 393
+_d 393
+ot 392
+_un_ 392
+ies 391
+ar_ 388
+nâ 387
+da 387
+ei 385
+em 382
+_ti 382
+pi 380
+al 368
+ba 356
+ts 355
+_iz 353
+ap 350
+jas 349
+ko 346
+au 345
+ðan 339
+re 339
+ni 337
+kâ 328
+ro 327
+et 326
+rî 325
+ga 323
+mu 322
+jas_ 321
+tr 317
+_va 312
+te 310
+_pr 307
+sp 298
+sk 297
+ne 295
+îba 293
+âs 289
+ijas 287
+_ar 283
+la 283
+to 282
+ad 280
+dz 278
+îg 277
+tî 277
+çj 277
+_sa 277
+jâ 274
+_m 273
+ties 273
+lî 272
+ijas_ 269
+_at 269
+ed 267
+_pi 267
+ò 267
+s, 265
+s,_ 265
+çr 261
+gu 258
+f 258
+si 257
+mâ 256
+nt 254
+tu_ 254
+_r 253
+ru 252
+âj 251
+jum 251
+âs_ 250
+ât 249
+iem 248
+_b 248
+_vi 245
+par 244
+pie 244
+rt 243
+vç 242
+_ne 240
+âr 240
+ai_ 239
+_. 239
+_j 237
+us 237
+_ka 236
+er 232
+bas 232
+_tie 232
+_par 230
+di 229
+û 228
+ms 228
+âd 226
+îbas 224
+om 220
+bu 219
+umu 217
+iek 216
+kt 216
+it 216
+râ 215
+_ko 214
+ana 211
+âk 211
+or 210
+de 210
+inâ 207
+dî 204
+ur 203
+pri 203
+_c 202
+ta_ 202
+bas_ 201
+es_ 201
+_pie 200
+il 200
+os 199
+ðana 199
+id 198
+L 198
+_ie 197
+bi 194
+ak 194
+ja_ 194
+îbas_ 193
+çt 192
+îbu 192
+_g 191
+ï 189
+ma_ 189
+ien 188
+kum 187
+— 187
+_ir 186
+on 186
+_ties 185
+zî 185
+ce 185
+ied 184
+ist 183
+ts_ 183
+_— 183
+—_ 182
+âm 181
+vie 180
+_—_ 180
+cij 180
+ka_ 179
+_ap 175
+sî 174
+ir_ 174
+zi 174
+uma 173
+âl 172
+_ir_ 172
+oð 171
+_da 169
+î_ 168
+arî 168
+) 167
+do 166
+ve 166
+( 165
+ls 165
+bu_ 164
+val 164
+mu_ 164
+isk 163
+uz 161
+av 160
+par_ 160
+_vç 159
+_par_ 158
+vçr 158
+_ar_ 157
+rie 157
+_uz 157
+aj 156
+îbu_ 156
+oj 155
+kâ_ 155
+ld 154
+iet 154
+iku 154
+ks 153
+du 153
+ep 153
+ms_ 152
+ec 152
+V 151
+ais 150
+str 150
+nie 149
+am_ 149
+ums 148
+_( 147
+ju_ 146
+z_ 142
+ru_ 142
+îj 142
+gum 142
+u,_ 141
+u, 141
+iò 141
+uma_ 141
+çrt 141
+îgu 141
+me 140
+dâ 140
+ît 140
+ent 139
+ikum 138
+pâ 138
+em_ 138
+_L 138
+lie 136
+sta 136
+rî_ 136
+lst 136
+eik 135
+se 135
+s. 134
+pro 134
+rs 134
+s._ 134
+tik 134
+lç 134
+ska 133
+pap 133
+kas 133
+rm 133
+âju 133
+pî 132
+nu 132
+T 132
+pç 131
+tei 131
+nas 131
+_V 131
+jo 131
+lîg 131
+ut 131
+iem_ 130
+ras 129
+pu 129
+_li 129
+_ga 128
+dar 128
+_kâ 128
+umu_ 127
+îv 126
+îgum 126
+kas_ 126
+tîb 125
+vai 125
+lîgu 125
+P 125
+arî_ 125
+ev 124
+lai 124
+îr 124
+lîgum 124
+tv 123
+að 123
+_arî_ 122
+_arî 122
+_vie 121
+S 121
+_T 120
+îju 120
+teik 120
+cija 119
+rb 119
+_ð 119
+jâ_ 119
+nas_ 118
+tâj 118
+vçrt 118
+iec 118
+_la 117
+îd 116
+_vai 116
+îjum 116
+vien 116
+als 116
+_lî 116
+apîr 115
+rts 115
+isi 115
+pîr 115
+papî 115
+papîr 115
+apî 115
+tsp 115
+mç 114
+im 114
+be 114
+is_ 114
+alst 114
+_ja 114
+rtspa 113
diff --git a/test/user-template/user/fingerprint/lithuanian.lm b/test/user-template/user/fingerprint/lithuanian.lm
new file mode 100644
index 000000000000..eca25a45b2ba
--- /dev/null
+++ b/test/user-template/user/fingerprint/lithuanian.lm
@@ -0,0 +1,400 @@
+_ 23070
+i 8196
+a 7763
+s 5179
+e 3458
+o 3425
+u 3371
+t 3344
+r 3240
+n 3070
+k 3019
+l 2060
+p 1889
+s_ 1756
+m 1680
+d 1640
+v 1590
+, 1501
+,_ 1497
+ó 1400
+g 1302
+j 1200
+o_ 1138
+. 1128
+ai 1113
+÷ 1075
+_p 1047
+_k 1035
+i_ 990
+._ 984
+as 975
+b 937
+au 903
+is 863
+_n 815
+ka 811
+si 804
+_s 799
+ia 796
+ý 759
+ta 735
+ie 731
+ti 728
+y 721
+_t 711
+in 697
+_i 686
+us 675
+pa 658
+ir 640
+ar 633
+ù 620
+_a 617
+r_ 609
+ne 583
+a_ 578
+ri 569
+_v 558
+_pa 541
+al 540
+ra 531
+li 522
+Ã 509
+u_ 493
+vi 490
+_ka 489
+da 487
+_ne 482
+_j 481
+en 478
+ù_ 445
+os 444
+ki 442
+õ 441
+an 440
+ik 434
+ma 433
+as_ 430
+st 420
+_d 420
+ai_ 417
+s,_ 396
+am 396
+is_ 396
+s, 396
+_ir 390
+jo 387
+ir_ 385
+at 384
+_ir_ 383
+i÷ 381
+ni 377
+ga 376
+_b 367
+na 366
+e_ 365
+to 352
+pr 337
+_g 332
+_m 332
+û 328
+ß 326
+io 323
+ei 323
+Ã_ 321
+su 320
+ßi 320
+uo 319
+la 317
+er 303
+va 299
+vo 298
+ýi 293
+es 291
+- 290
+ó_ 286
+-_ 285
+_vi 284
+_- 283
+ko 283
+_-_ 283
+iau 281
+sa 278
+s. 278
+iu 276
+et 274
+nu 265
+ja 262
+õ_ 262
+_ta 262
+s._ 259
+el 258
+ój 258
+os_ 256
+im 255
+it 254
+_pr 253
+no 252
+av 251
+ur 251
+_÷ 248
+mi 246
+ve 245
+ak 245
+ku 243
+ek 241
+tu 241
+_ý 241
+ad 241
+ñ 238
+_l 238
+_i÷ 236
+us_ 236
+_su 232
+oj 231
+au_ 231
+ba 224
+nt 218
+me 214
+te 210
+jo_ 208
+ro 205
+ós 204
+iù 203
+tai 203
+_õ 201
+ló 201
+pas 200
+ip 198
+iai 197
+di 195
+usi 194
+vo_ 193
+kai 190
+i, 189
+i,_ 189
+sk 187
+_r 186
+aus 184
+ap 183
+gi 182
+mo 182
+uk 181
+t_ 180
+_da 177
+be 176
+ien 176
+o, 174
+il 174
+o,_ 173
+ti_ 173
+re 172
+_nu 171
+ßia 171
+_pas 169
+pri 169
+÷_ 169
+ok 168
+dó 166
+ól 162
+bu 161
+÷i 160
+on 160
+asi 159
+id 158
+ul 157
+ji 157
+aip 156
+ia_ 155
+_sa 154
+ot 154
+gal 153
+nk 153
+om 152
+p_ 151
+_pri 151
+od 151
+vis 150
+_at 150
+vie 150
+uv 150
+ab 150
+iù_ 149
+ama 149
+nó 149
+A 149
+sta 148
+kr 148
+_A 145
+ais 144
+rt 143
+J 142
+_J 142
+ójo 142
+_õ_ 141
+K 140
+_K 139
+pi 139
+avo 139
+ng 139
+mas 138
+du 138
+ug 137
+_ga 137
+ol 136
+tik 135
+ali 135
+.. 135
+_vis 135
+iek 134
+ini 133
+kad 133
+a, 133
+le 133
+kó 133
+T 133
+tó 132
+i. 132
+_T 131
+dý 131
+a,_ 131
+go 131
+ip_ 131
+aip_ 131
+ró 129
+a÷ 129
+dýi 129
+ke 128
+k_ 128
+d_ 127
+ad_ 127
+_ti 127
+_ma 126
+_va 125
+i._ 124
+z 123
+÷k 123
+iau_ 121
+m_ 120
+kar 119
+um 119
+tù 119
+_kad 118
+uý 117
+tr 117
+_kai 117
+as, 116
+og 116
+kad_ 116
+as,_ 116
+_ji 116
+rie 115
+yt 114
+_ja 114
+_ko 114
+vó 114
+ys 114
+jau 113
+ar_ 113
+pra 112
+aý 112
+ant 112
+kl 111
+tas 111
+gu 111
+_ku 110
+si_ 110
+pe 109
+eb 109
+N 109
+ójo_ 108
+_kad_ 108
+se 108
+_ki 108
+or 107
+ly 107
+lo 107
+iai_ 107
+_la 106
+ts 106
+ñs 106
+ig 105
+_N 105
+ut 105
+_u 105
+ós_ 105
+avo_ 104
+ie_ 104
+a. 104
+kt 104
+em 103
+do 103
+je 102
+ks 102
+ats 101
+_be 101
+ris 101
+l_ 101
+_vie 101
+tin 101
+ag 100
+dam 100
+_st 100
+a._ 99
+_bu 99
+? 99
+V 98
+io_ 98
+kas 98
+_jo 98
+vien 97
+_gal 97
+ót 97
+kia 97
+lia 96
+c 96
+uri 96
+_V 96
+?_ 96
+uvo 95
+ru 95
+ty 95
+ep 94
+nd 94
+lai 94
+_tai 94
+ju 93
+man 92
+o. 92
+buv 92
+tà 92
+_÷i 91
+i÷_ 91
+_i÷_ 91
+i÷k 90
+o._ 90
+_to 90
+bi 90
+up 89
+po 89
+rs 89
+_prie 88
+ù,_ 88
+aik 88
+ui 88
+_tik 88
+ij 88
+ù, 88
+pat 88
+prie 88
+I 87
+ies 87
+tai_ 87
+n_ 87
+pasi 87
+ius 87
+÷t 87
+eik 86
+_me 86
+ina 86
diff --git a/test/user-template/user/fingerprint/luxembourgish.lm b/test/user-template/user/fingerprint/luxembourgish.lm
new file mode 100644
index 000000000000..149c3d9d4359
--- /dev/null
+++ b/test/user-template/user/fingerprint/luxembourgish.lm
@@ -0,0 +1,400 @@
+_
+e
+n
+r
+t
+i
+a
+s
+u
+er
+h
+d
+o
+l
+n_
+g
+en
+c
+ch
+_d
+m
+t_
+r_
+_a
+de
+e_
+en_
+er_
+an
+z
+é
+,
+un
+,_
+.
+ge
+b
+k
+w
+ë
+f
+._
+éi
+_de
+v
+p
+sc
+sch
+es
+nn
+ng
+te
+_v
+ne
+_g
+ue
+h_
+ie
+ch_
+m_
+ou
+i_
+ä
+s_
+_e
+ee
+el
+ze
+at
+re
+ss
+'
+vu
+_vu
+D
+le
+se
+st
+_an
+_s
+un_
+g_
+et
+_D
+_h
+he
+an_
+ec
+in
+rt
+_an_
+ro
+der
+ll
+is
+ht
+ech
+cht
+d'
+_d'
+S
+nt
+uer
+der_
+éi_
+em
+_o
+it
+L
+l_
+on
+esc
+A
+esch
+ti
+al
+us
+ier
+_z
+ra
+E
+we
+che
+_S
+ir
+ei
+ët
+äi
+vun
+_w
+me
+_m
+_A
+be
+ert
+vun_
+_vun
+_vun_
+nne
+tz
+ng_
+eb
+_der
+_E
+_der_
+ar
+_n
+rg
+n,_
+u_
+_L
+n,
+den
+eng
+um
+_b
+io
+ns
+erg
+au
+_en
+K
+M
+_ge
+dé
+as
+eg
+tze
+ung
+a_
+n.
+hu
+ner
+op
+n._
+ur
+et_
+B
+oun
+ën
+hi
+si
+bu
+nn_
+ëtz
+_dé
+déi
+_f
+inn
+de_
+_déi
+li
+tt
+ebu
+W
+ass
+uerg
+nd
+ebue
+bue
+rt_
+ëtze
+buer
+déi_
+ma
+ebuer
+_déi_
+_K
+_hu
+nge
+_M
+buerg
+ëtzeb
+zebue
+zeb
+zebu
+tzebu
+tzeb
+um_
+ioun
+ss_
+iou
+ges
+ere
+ha
+den_
+Lë
+éie
+F
+ke
+_a_
+t.
+ta
+Lëtz
+G
+Lëtze
+Lët
+t._
+en,_
+t,_
+en,
+t,
+at_
+ech_
+o_
+_de_
+ren
+ri
+ic
+ter
+_W
+_eng
+éier
+la
+ol
+rs
+scht
+ir_
+ru
+_B
+ert_
+_k
+oc
+P
+ten
+ht_
+_Lë
+nz
+em_
+p_
+ent
+wa
+cht_
+_den
+_Lët
+_Lëtz
+ich
+_G
+_den_
+tio
+il
+nner
+ger
+_as
+sse
+_op
+och
+ll_
+_ass
+R
+am
+-
+_se
+_F
+sche
+d_
+sch_
+ati
+_be
+ts
+ik
+nen
+De
+ers
+_.
+_P
+_._
+fe
+ass_
+mm
+gi
+aa
+zu
+_De
+ve
+pe
+fi
+tr
+lt
+en.
+_ass_
+eng_
+op_
+ck
+en._
+sen
+na
+rge
+ës
+kt
+ed
+_al
+äit
+so
+uro
+_op_
+gesc
+_R
+gesch
+Eur
+tiou
+Euro
+aus
+Eu
+erge
+hen
+tioun
+lec
+no
+fir_
+chen
+fir
+V
+hue
+_si
+or
+ut
+ac
+uf
+Z
+gen
+tu
+ver
+lech
+da
+mat
+_V
+_Eur
+_Eu
+wer
+lle
+_Euro
+uerge
+_ze
+éis
+J
+est
+ger_
+tt_
+_hue
+go
+_fi
+dee
+_fir_
+uet
+vum
+_zu
+ni
+_vum
+_fir
+een
+_vum_
+vum_
+huet
+ann
+_huet
+T
+I
+el_
+_wa
diff --git a/test/user-template/user/fingerprint/malay.lm b/test/user-template/user/fingerprint/malay.lm
new file mode 100644
index 000000000000..911d0cfef150
--- /dev/null
+++ b/test/user-template/user/fingerprint/malay.lm
@@ -0,0 +1,400 @@
+_ 87128
+a 50232
+n 25424
+e 18746
+i 18605
+an 14419
+u 12470
+k 11955
+t 11875
+r 11007
+d 9856
+g 9545
+m 9390
+s 8926
+l 8631
+n_ 8004
+an_ 7095
+p 6890
+a_ 6739
+b 6645
+ng 6630
+h 5964
+da 5153
+_d 5107
+er 4625
+ka 4448
+la 4339
+y 4323
+i_ 4295
+en 4159
+ya 3800
+ang 3778
+_m 3750
+o 3593
+. 3539
+._ 3310
+at 3288
+ah 3216
+_b 3199
+_s 3177
+ta 3076
+ra 3036
+_k 2949
+g_ 2939
+ng_ 2933
+ar 2915
+_p 2906
+me 2884
+ga 2781
+di 2778
+ak 2727
+al 2705
+_me 2671
+ang_ 2524
+h_ 2509
+ba 2508
+pa 2454
+kan 2449
+in 2437
+tu 2411
+_t 2376
+sa 2338
+_da 2276
+j 2276
+pe 2225
+, 2150
+k_ 2147
+ma 2143
+se 2138
+am 2131
+kan_ 2117
+_di 2082
+,_ 2079
+ke 2048
+un 2004
+be 1947
+_a 1925
+na 1871
+ti 1868
+ri 1861
+u_ 1857
+as 1854
+ny 1827
+ha 1789
+te 1788
+_pe 1768
+em 1750
+it 1737
+_i 1732
+_ke 1711
+yan 1706
+ad 1698
+ia 1673
+yang 1673
+_y 1668
+_ya 1655
+yang_ 1653
+_se 1648
+ah_ 1646
+_yan 1639
+_yang 1639
+ala 1612
+nya 1587
+el 1576
+ik 1571
+t_ 1568
+ai 1549
+men 1531
+eng 1522
+_men 1464
+nga 1441
+dan 1366
+_be 1365
+si 1343
+uk 1328
+ada 1299
+nt 1291
+__ 1287
+ap 1276
+ua 1265
+___ 1238
+- 1213
+ja 1211
+ber 1204
+gan 1203
+_ba 1193
+____ 1189
+ni 1181
+_te 1169
+c 1143
+ran 1141
+_____ 1140
+m_ 1127
+ara 1118
+per 1099
+le 1084
+_dan 1083
+dan_ 1079
+ngan 1060
+_dan_ 1050
+ya_ 1046
+at_ 1044
+da_ 1021
+li 1016
+aka 1013
+A 999
+r_ 999
+w 997
+eb 995
+lah 980
+ata 980
+ak_ 978
+nd 974
+_ber 955
+gi 936
+is 933
+il 931
+tu_ 923
+s_ 920
+gan_ 915
+mb 913
+wa 904
+ag 903
+ngan_ 898
+ter 887
+nya_ 877
+S 873
+ek 853
+ru 852
+_l 838
+ela 828
+itu 824
+ol 822
+aha 822
+ada_ 820
+pu 812
+di_ 807
+bu 807
+am_ 804
+ur 801
+tan 790
+mp 790
+_per 786
+_sa 784
+M 782
+ut 781
+us 779
+era 779
+lam 778
+lah_ 775
+asa 767
+ki 761
+ir 759
+de 756
+enga 750
+su 748
+du 741
+id 739
+" 733
+akan 732
+apa 728
+_S 724
+ul 721
+lu 717
+ari 717
+dal 704
+et 698
+es 698
+pad 688
+_ma 688
+_M 685
+ana 684
+bi 679
+pada 673
+dala 673
+l_ 671
+ep 664
+f 662
+_di_ 658
+B 655
+ing 655
+_j 654
+ika 653
+ku 650
+_. 644
+akan_ 642
+ama 637
+pen 636
+alam 634
+eh 634
+pada_ 633
+ai_ 632
+_ter 632
+K 631
+mu 628
+ju 628
+P 626
+mem 625
+au 622
+_mem 614
+lan 612
+_._ 611
+ntu 608
+lam_ 605
+um 601
+on 600
+gk 597
+_in 597
+ngk 597
+a. 584
+meng 582
+_meng 578
+alam_ 577
+_A 576
+aa 575
+uk_ 572
+_pen 569
+ban 569
+or 569
+st 566
+ay 566
+dar 565
+_pa 564
+a._ 564
+_h 562
+bah 562
+_P 560
+D 559
+ri_ 558
+ini 552
+_de 551
+rt 550
+aan 545
+_it 542
+_itu 542
+nda 540
+eri 540
+dalam 537
+_B 533
+_dal 532
+ip 532
+_dala 532
+ta_ 528
+_u 527
+ung 525
+ih 524
+aw 520
+_n 519
+atu 517
+ila 513
+mi 513
+leh 513
+ian 512
+tuk 509
+awa 508
+gu 506
+ert 506
+engan 505
+ole 504
+_K 501
+seb 497
+ca 496
+gg 493
+_ta 489
+ra_ 488
+ngg 488
+itu_ 487
+emb 482
+ni_ 482
+ida 482
+nj 482
+_ti 479
+man 478
+den 477
+_D 474
+_ka 473
+aj 470
+oleh 468
+n. 468
+n._ 464
+ngka 464
+gka 464
+dak 464
+anga 461
+ena 459
+san 458
+pat 458
+rk 458
+( 455
+ent 454
+agi 453
+) 451
+ia_ 450
+ge 450
+ab 449
+im 447
+_ini 446
+ntuk 445
+I 445
+ar_ 440
+N 439
+aan_ 436
+_la 433
+pi 432
+baha 431
+deng 430
+han 430
+bag 429
+eh_ 429
+hu 429
+denga 428
+_o 427
+na_ 427
+T 425
+leh_ 422
+_den 422
+ka_ 419
+any 415
+ud 415
+rang 414
+anya 413
+gi_ 412
+angan 412
+a, 411
+_deng 410
+ita 409
+kat 408
+re 408
+_( 406
+tuk_ 403
+aga 401
+ne 400
+and 399
+aya 398
+_dar 397
+a,_ 396
+ro 396
+ntuk_ 393
+eba 392
+aran 390
+_" 387
+ed 385
+end 384
+ko 383
+sa_ 381
+p_ 381
+ara_ 380
+_seb 379
+alah 379
+oleh_ 379
+an. 378
+dak_ 378
+eg 378
+hi 376
+dari 375
+an._ 375
+au_ 373
+bo 373
+ti_ 371
+ula 371
diff --git a/test/user-template/user/fingerprint/manx_gaelic.lm b/test/user-template/user/fingerprint/manx_gaelic.lm
new file mode 100644
index 000000000000..e6eceebeb080
--- /dev/null
+++ b/test/user-template/user/fingerprint/manx_gaelic.lm
@@ -0,0 +1,400 @@
+_ 36004
+e 9455
+a 8302
+y 6395
+n 6395
+h 5736
+r 4939
+s 4799
+o 4429
+i 4129
+l 3462
+y_ 2896
+g 2731
+n_ 2549
+d 2232
+t 2160
+_a 1836
+m 1823
+sh 1774
+e_ 1746
+h_ 1645
+yn 1550
+c 1531
+ee 1515
+gh 1461
+s_ 1460
+_s 1388
+ey 1345
+_e 1316
+ag 1312
+a_ 1201
+r_ 1173
+agh 1165
+in 1148
+as 1136
+_d 1136
+u 1124
+he 1060
+yn_ 1025
+oo 1012
+ey_ 1005
+_m 1002
+er 965
+v 949
+_y 941
+_v 895
+_c 891
+_as 880
+' 869
+, 866
+_n 832
+ll 828
+,_ 827
+_sh 818
+. 802
+hi 797
+as_ 770
+ee_ 768
+ne 767
+_as_ 764
+b 762
+re 735
+ay 730
+._ 730
+an 726
+ar 725
+gh_ 722
+ny 709
+en 703
+_r 697
+ch 688
+agh_ 687
+dy 686
+t_ 677
+le 667
+k 658
+er_ 616
+oi 612
+ea 607
+_t 601
+yr 596
+_er 585
+ra 574
+_dy 572
+in_ 570
+l_ 564
+f 557
+_l 556
+ha 551
+_g 548
+_ny 534
+nn 530
+" 528
+_ch 527
+_y_ 524
+ie 514
+dy_ 514
+_dy_ 513
+aa 510
+_f 509
+j 504
+sh_ 487
+oa 480
+is 478
+_h 470
+rr 468
+ny_ 467
+_ny_ 463
+_er_ 454
+ish 445
+ho 442
+ai 441
+d_ 435
+ro 423
+ht 418
+ei 417
+shi 416
+il 409
+me 408
+_ay 403
+_b 403
+la 400
+_j 400
+my 394
+va 391
+ns 386
+on 385
+_o 381
+ys 380
+_shi 379
+ia 377
+ayn 373
+_va 371
+hen 362
+she 356
+ri 345
+lle 342
+ooi 342
+mee 340
+ley 335
+_me 331
+el 330
+rt 328
+ie_ 327
+eh 324
+w 316
+_ayn 313
+al 311
+g_ 309
+ish_ 308
+lley 307
+mee_ 305
+_mee 304
+ill 301
+es 299
+na 299
+je 298
+yns 296
+C 294
+_my 291
+_she 290
+ley_ 282
+V 280
+_yn 278
+_" 278
+_mee_ 277
+ta 272
+_V 271
+ys_ 268
+- 268
+lley_ 265
+hin 264
+_ro 259
+shin 256
+_yn_ 255
+_je 255
+do 253
+va_ 253
+ne_ 253
+_va_ 252
+ns_ 252
+_shin 251
+yns_ 250
+ayns 248
+en_ 247
+che 246
+_ayns 246
+eh_ 246
+_do 242
+ad 241
+ney 240
+o_ 240
+ym 240
+ed 239
+yr_ 239
+ayns_ 237
+ur 237
+st 234
+_C 234
+rt_ 234
+'n 232
+m_ 232
+p 231
+li 231
+or 230
+ow 228
+hin_ 225
+da 225
+shen 223
+"_ 223
+'n_ 223
+Va 221
+ght 220
+shin_ 219
+tr 217
+_Va 217
+ry 216
+ve 216
+_shen 215
+ty 214
+mo 206
+_' 205
+_ve 205
+ma 203
+be 203
+te 203
+hie 203
+hey 203
+nag 202
+ll_ 201
+yl 200
+w_ 200
+ss 200
+aa_ 198
+nagh 198
+an_ 197
+io 195
+ow_ 194
+it 194
+sy 193
+ayr 193
+ney_ 192
+E 192
+sht 192
+ni 191
+_k 190
+ha_ 190
+ain 189
+u_ 189
+hy 189
+aght 188
+oo_ 188
+ree 188
+lh 187
+_tr 186
+esh 186
+_che 183
+yrt 182
+_da 182
+oar 182
+doo 181
+k_ 181
+se 180
+au 180
+ille 179
+ar_ 179
+_lh 179
+ki 177
+arr 176
+ec 176
+ol 175
+_doo 175
+T 175
+row 175
+_row 174
+ge 173
+so 172
+oy 171
+oil 170
+_re 170
+_ag 170
+'e 169
+rey 169
+illey 169
+ck 168
+ad_ 168
+ann 168
+n, 166
+eea 166
+_ta 166
+ht_ 165
+ae 162
+_row_ 162
+! 162
+row_ 162
+ane 161
+fe 161
+dd 160
+go 159
+tyn 159
+oin 158
+ooa 158
+n. 158
+eg 156
+_ec 156
+_ma 156
+_agh 155
+n,_ 154
+_fe 154
+Ch 154
+nyn 153
+fo 152
+eay 152
+nagh_ 152
+n._ 152
+_go 151
+S 150
+ke 150
+hey_ 150
+enn 150
+cha 149
+rre 149
+_fo 149
+ghe 149
+raa 149
+G 148
+lan 148
+mm 147
+ym_ 147
+A 146
+c_ 146
+oill 145
+hee 144
+ooar 144
+_E 144
+nne 143
+tey 142
+ir 141
+de 141
+hyn 140
+_he 140
+nyn_ 140
+'s 139
+_gh 139
+_cha 138
+L 138
+yrt_ 138
+_Ch 137
+e, 137
+lla 136
+Va_ 136
+ooin 136
+ell 135
+a' 135
+os 135
+_oo 134
+am 134
+rish 133
+th 133
+_mo 133
+ris 133
+iag 133
+gg 133
+_Va_ 132
+iagh 132
+_G 132
+e,_ 132
+ass 132
+!_ 132
+my_ 132
+hoo 131
+_T 131
+nee 130
+a'n_ 129
+rag 129
+a'n 129
+_'s 129
+_so 128
+co 128
+rey_ 128
+_eh 126
+_my_ 126
+nni 126
+ou 126
+_'sy 125
+'sy 125
+_p 125
+vo 125
+_S 125
+H 125
+_agh_ 125
+tra 124
+moo 124
+hu 123
+ooy 123
+ragh 123
+al_ 123
+it_ 123
+hia 122
+id 122
diff --git a/test/user-template/user/fingerprint/marathi.lm b/test/user-template/user/fingerprint/marathi.lm
new file mode 100644
index 000000000000..479f4fd9b760
--- /dev/null
+++ b/test/user-template/user/fingerprint/marathi.lm
@@ -0,0 +1,400 @@
+þ 17815
+_ 14534
+þþ 4035
+þ_ 3087
+· 2180
+ø 1762
+·þ 1669
+ú 1654
+¡ 1534
+¥ 1480
+¡þ 1433
+Å 1342
+£ 1289
+ˆ 1237
+› 1163
+­ 1158
+¬ 1153
+þþ_ 1133
+¿ 1099
+¨ 1084
+Ÿ 1062
+ 1059
+ú_ 1054
+¥þ 1054
+ˆÅ 1050
+¡þþ 1039
+þú 989
+œ 983
+›þ 968
+‚ 965
+¹ 949
+_‚ 936
+. 936
+¨þ 915
+þ¿ 859
+þ£ 842
+¬þ 838
+Ÿþ 836
+þ· 769
+þ 764
+µ 710
+þ¥ 710
+œþ 684
+þ·þ 681
+._ 670
+þú_ 637
+½ 609
+‚þ 578
+_Ÿ 578
+_‚þ 569
+_ˆ 543
+þ 530
+_· 530
+µþ 524
+_œ 523
+Š 511
+ 504
+ø_ 495
+·þ_ 477
+þ¥þ 476
+þ­ 474
+_¹ 474
+_¬ 457
+_ˆÅ 447
+_Ÿþ 447
+¡þþ_ 446
+þø 444
+¸ 438
+Šþ 423
+¥þþ 422
+þ 409
+þ¨ 388
+Åþ 387
+þþ 381
+£_ 366
+ˆÅþ 359
+é 339
+þ¨þ 334
+_¬þ 332
+þµ 331
+þ› 324
+›þþ 320
+_œþ 320
+Ÿþþ 318
+ª 315
+_­ 315
+›þ_ 314
+Û 313
+þ¹ 306
+þ£_ 303
+þ¬ 301
+þˆ 297
+ 297
+þþ 295
+ªþ 284
+þ¡ 280
+§ 274
+¿_ 272
+þþ· 270
+þ¡þ 268
+¥þþ_ 268
+£þ 264
+þ 264
+­ú 263
+, 258
+þþ·þ 256
+þ¥þþ 256
+þ·þ_ 256
+,_ 255
+þˆÅ 255
+Ù 249
+¬þþ 247
+þþ¿ 243
+þþ£ 241
+_› 234
+_·þ 233
+·þþ 232
+þœ 232
+·¡ 231
+þ¿_ 231
+þ›þ 230
+þ¬þ 228
+Ä 227
+š 226
+þµþ 225
+½_ 223
+·¡þ 221
+­½ 220
+_ 220
+¥ø 219
+µþ_ 218
+¨þþ 217
+þ. 216
+þŸ 215
+_›þ 213
+.. 209
+_Ÿþþ 209
+þþþ 205
+þþ 205
+·¡þþ 204
+‰ 204
+·þú 203
+þ¥þþ_ 202
+Å_ 202
+þþ¥ 201
+ê 198
+_¨ 198
+þŠ 193
+_¡ 191
+þœþ 190
+þ._ 189
+¡þ 188
+¡ 188
+¡þþ 187
+Ï 186
+ø· 186
+ž 185
+­ú_ 180
+þ_ 180
+_þ 180
+‰þ 179
+Ú 178
+_ˆÅþ 176
+_·¡þ 175
+_·¡þþ 175
+­þ 175
+_·¡ 175
+þŠþ 174
+þ­ú 171
+¥¡ 170
+_ 170
+... 168
+¥¡þ 167
+þú 166
+_¥ 164
+þŸþ 164
+‚þ­ 163
+¥¡þþ 163
+žþ 162
+ø·þ 162
+_‚þ­ 162
+¡þþ_ 161
+­ø 160
+ˆÅ_ 159
+þþ¥þ 159
+þ­½ 157
+œþþ 154
+þ 154
+_þ 154
+_¸ 154
+ø¥ 153
+þþ 153
+šþ 151
+þ£þ 151
+_Š 151
+‚þ­½ 150
+þ§ 150
+·ø 150
+ø. 149
+_‚þ­½ 149
+‚¬ 148
+¥þú 148
+£ú 147
+œÏ 147
+Å£ 146
+þú_ 146
+_‚¬ 145
+ø._ 145
+þþ¨ 144
+þÄ 143
+‹ 142
+ 140
+¡þþ 140
+¹¨þ 139
+¹¨ 139
+þþ­ 137
+þþ› 136
+_­ø 136
+Ÿ­ 136
+_¡þ 135
+ú. 135
+·þø 135
+' 135
+ˆÅ£ 134
+_¥þ 132
+þþ¨þ 131
+þþ·þ_ 131
+µþþ 129
+'_ 129
+_›þþ 129
+ú._ 128
+þÛ 127
+.... 127
+˜ 127
+¿ 126
+þþ¬ 125
+_¨þ 124
+¡þ_ 123
+þ·þþ 123
+« 122
+; 122
+_œÏ 121
+_¡þþ 119
+» 118
+¬þ¿ 115
+¥þ¿ 114
+¥þ_ 114
+þþŠ 113
+þ¥¡þ 113
+þ¥¡ 113
+b 113
+þ£ú 112
+_' 112
+s 111
+& 111
+þþ 111
+‚¬þ 111
+þþú 111
+p 111
+ê› 111
+_£ 110
+þ¥¡þþ 110
+bs 109
+ê›þ 109
+n 109
+º 109
+_‚¬þ 108
+&n 107
+bsp; 107
+nbsp; 107
+sp; 107
+nb 107
+bsp 107
+nbs 107
+sp 107
+nbsp 107
+&nb 107
+&nbsp 107
+p; 107
+&nbs 107
+þþþ 106
+_'_ 106
+þ¥ø 106
+·þ£ 106
+ø¥þ 106
+þþ_ 105
+¨þ£ 104
+þ¿ 104
+˜þ 104
+þ¸ 104
+_Šþ 103
+þ¬þþ 103
+›ø 103
+­ø· 102
+þþŠþ 101
+þþ­ú 100
+þ›þþ 99
+þ, 99
+_ 98
+þ,_ 98
+_ˆÅ£ 98
+‚þœ 98
+þþú_ 98
+_þþ 97
+;& 97
+_‚þœ 97
+‚þœþ 97
+_‚þœþ 96
+þ 96
+¡þþþ 96
+¬þ· 96
+‡ 96
+;&nb 95
+p;&nb 95
+;&n 95
+p;& 95
+;&nbs 95
+bsp;& 95
+..... 95
+ê›þ_ 95
+sp;&n 95
+sp;& 95
+p;&n 95
+° 94
+_‡ 94
+ƒ 94
+¥¡þþ_ 94
+þþ¬þ 93
+Ÿþú 93
+þµþ_ 93
+£ú_ 93
+œþµ 93
+_ž 92
+µ¡ 92
+_­ø· 92
+þ­ú_ 92
+µ¡þ 92
+·þú_ 91
+¹­ 91
+­½_ 90
+_¬þþ 90
+_œþþ 90
+þþ¥þþ 90
+„ 90
+µ¡þþ 90
+‹þ 89
+¹· 89
+þ¡þ 89
+þ£ú_ 89
+þÚ 89
+þ¡ 89
+þˆÅþ 89
+¿Š 89
+Šþþ 89
+_Ÿ­ 88
+½Å 88
+þ¡þþ 88
+_¹¨ 88
+_¹¨þ 88
+­ø·þ 87
+ø 87
+ˆ½ 87
+›þþ­ú 87
+_‹ 87
+­µ 87
+›þþ­ 87
+œþµþ 86
+¥þú_ 86
+_‚þ¹ 85
+‚þ¹ 85
+£· 85
+_„ 85
+¹·þ 85
+_›þþ­ 84
+¡ø 84
+þ¹µþ 83
+þþµ 83
+¹µþ 83
+¹µ 83
+þ¹µ 83
+þþ_ 83
+_ª 82
+_‚þ¹µ 82
+þ¹µþ_ 82
+›þþ_ 82
+‚þ¹µþ 82
+‚þ¹µ 82
+Ÿþú_ 82
+_þ 82
+¹µþ_ 82
+þþ£_ 81
+øˆ 81
+½._ 80
+¿Šþ 80
+_·þ£ 80
+½. 80
+ú 79
+_žþ 79
+œþµþ_ 79
+² 79
diff --git a/test/user-template/user/fingerprint/middle_frisian.lm b/test/user-template/user/fingerprint/middle_frisian.lm
new file mode 100644
index 000000000000..17e4f149d122
--- /dev/null
+++ b/test/user-template/user/fingerprint/middle_frisian.lm
@@ -0,0 +1,400 @@
+_ 60524
+e 20138
+n 10664
+t 8674
+i 7833
+a 7549
+o 7278
+r 6963
+n_ 5391
+s 5087
+d 4731
+t_ 4327
+l 4306
+e_ 4271
+en 4068
+k 3483
+m 3346
+g 2990
+er 2965
+en_ 2835
+y 2597
+w 2481
+h 2475
+j 2441
+_d 2375
+r_ 2250
+u 2059
+s_ 1921
+ie 1780
+_h 1725
+z 1710
+de 1666
+_m 1652
+_w 1629
+_i 1611
+et 1550
+te 1540
+b 1538
+. 1517
+er_ 1481
+in 1420
+an 1408
+p 1392
+f 1311
+, 1280
+,_ 1273
+k_ 1266
+._ 1258
+y_ 1238
+_z 1230
+oe 1162
+v 1144
+et_ 1138
+ne 1131
+ee 1125
+st 1120
+_o 1107
+_s 1107
+_e 1076
+_n 1068
+_b 989
+_t 988
+l_ 983
+oo 981
+ge 975
+je 963
+_g 952
+at 949
+me 946
+ij 943
+is 913
+he 899
+' 892
+aa 882
+el 870
+_v 864
+re 843
+ar 837
+_de 805
+on 800
+ke 796
+de_ 788
+ei 782
+_a 776
+_' 770
+le 744
+at_ 742
+it 741
+_k 738
+or 734
+an_ 729
+in_ 723
+da 715
+te_ 703
+_he 680
+_l 664
+H 661
+al 652
+_H 652
+a_ 650
+_da 648
+D 648
+d_ 646
+_D 643
+es 617
+g_ 608
+is_ 606
+æ 596
+_f 594
+'t 591
+_'t 584
+'t_ 583
+_me 580
+c 576
+_'t_ 576
+ri 571
+_en 564
+yn 563
+_en_ 559
+ze 538
+m_ 535
+om 535
+ik 522
+_de_ 522
+ed 521
+be 517
+wi 509
+ch 509
+ol 498
+ar_ 498
+ha 496
+_ne 495
+we 494
+ou 486
+nd 474
+ma 474
+ik_ 470
+J 459
+_ik 456
+_ik_ 451
+_J 451
+ll 450
+M 446
+li 443
+wa 442
+_M 442
+ien 435
+ro 432
+di 421
+nn 418
+ste 415
+wo 415
+yn_ 415
+_r 413
+_ha 411
+it_ 409
+tt 408
+ve 407
+S 404
+_j 399
+_S 398
+_in 395
+as 395
+der 395
+hi 389
+_al 388
+uw 384
+tte 384
+ng 381
+_wi 381
+nne 381
+het 380
+_het 378
+lle 376
+nt 374
+ns 373
+op 373
+je_ 367
+E 366
+ek 363
+B 363
+dat 362
+_B 362
+_ma 362
+_in_ 361
+_dat 359
+_wo 359
+ier 358
+og 357
+_E 354
+_ge 352
+dat_ 349
+ne_ 349
+eer 349
+het_ 348
+_het_ 348
+_is 348
+_dat_ 348
+ey 347
+W 346
+_W 343
+_te 339
+eg 337
+ra 335
+rs 335
+! 332
+zi 332
+gt 329
+_He 327
+He 327
+_be 324
+j_ 320
+ij_ 320
+u_ 319
+f_ 317
+_di 316
+; 315
+_we 315
+_is_ 314
+rt 313
+!_ 313
+;_ 312
+n. 311
+p_ 310
+la 310
+_wa 310
+ea 308
+_u 308
+pe 304
+ta 304
+il 301
+my 300
+ig 300
+n, 300
+n,_ 298
+iet 297
+sc 297
+ter 296
+sch 296
+oor 295
+no 294
+_my 293
+n._ 291
+ti 290
+_zi 289
+st_ 288
+el_ 283
+gen 282
+se 280
+K 279
+_oo 278
+ui 278
+e, 275
+ten 274
+net 274
+oon 274
+ho 274
+jn 273
+e,_ 273
+ijn 272
+ien_ 272
+ko 272
+N 271
+ni 271
+_N 269
+den 269
+za 268
+_net 267
+i_ 266
+wol 266
+een 264
+va 264
+am 264
+do 263
+ol_ 262
+le_ 261
+_te_ 260
+rd 260
+ke_ 259
+ey_ 259
+ers 258
+_K 255
+_ie 255
+ver 254
+to 254
+_hi 253
+nde 253
+: 253
+der_ 252
+jo 251
+net_ 251
+al_ 250
+_wol 250
+_p 250
+_no 250
+aar 248
+_za 245
+_net_ 245
+nk 242
+est 241
+om_ 241
+_va 241
+ak 241
+tj 239
+ae 238
+_op 237
+mo 236
+tr 236
+_st 233
+ier_ 233
+_ve 233
+mm 232
+T 231
+eu 229
+_ze 228
+:_ 228
+mi 228
+ag 227
+zo 227
+_ko 226
+vo 225
+_T 225
+nne_ 225
+F 224
+.. 224
+fo 224
+_F 223
+en, 223
+oe_ 222
+wie 222
+en,_ 221
+kk 221
+_ien 220
+on_ 218
+wol_ 218
+_fo 218
+I 217
+_do 216
+eit 214
+ei_ 214
+mme 214
+G 213
+_I 213
+as_ 213
+or_ 211
+A 211
+_G 210
+_A 210
+lle_ 209
+Da 208
+_Da 207
+_wol_ 207
+ren 206
+_ee 206
+e. 205
+van 205
+jen 205
+een_ 205
+_van 204
+kke 204
+en. 204
+O 204
+_vo 204
+V 203
+_O 203
+_V 203
+ken 203
+_mo 203
+ot 202
+ie_ 201
+ou_ 201
+ur 201
+tte_ 200
+em 200
+_van_ 199
+L 199
+van_ 199
+_zo 199
+op_ 199
+_L 197
+iet_ 196
+of 194
+ten_ 194
+oer 193
+_ien_ 193
+e._ 193
+oed 192
+hie 192
+zy 191
+en._ 191
+De 191
+_ver 191
+_ho 189
+_De 189
+oa 189
+den_ 188
+_zy 188
+lo 187
+dan 187
+nt_ 186
diff --git a/test/user-template/user/fingerprint/mingo.lm b/test/user-template/user/fingerprint/mingo.lm
new file mode 100644
index 000000000000..4d1947a33345
--- /dev/null
+++ b/test/user-template/user/fingerprint/mingo.lm
@@ -0,0 +1,400 @@
+_ 3156
+' 991
+a 829
+t 788
+k 788
+n 752
+e 640
+h 602
+ë 551
+s 495
+w 466
+ö 422
+y 403
+u 397
+'_ 368
+_n 330
+i 269
+. 269
+._ 240
+e' 238
+ô 219
+a' 209
+ne 209
+e_ 194
+_ne 184
+wa 172
+_k 164
+kw 162
+á 154
+e'_ 146
+_t 145
+'t 141
+" 141
+ë' 134
+ê 132
+_h 131
+é 129
+ak 129
+ne_ 126
+ta 123
+_ne_ 123
+at 121
+u' 121
+hu 118
+_u 108
+ka 107
+í 106
+nö 105
+N 103
+ö' 100
+hs 95
+ha 95
+te 94
+ya 93
+_ë 92
+kh 90
+'k 86
+ú 85
+æ 84
+ni 84
+'. 84
+wë 83
+ny 83
+sh 80
+_N 80
+'._ 76
+ö_ 76
+kë 72
+_" 71
+ën 70
+th 69
+yu 66
+_w 66
+ëh 66
+t_ 66
+ô_ 66
+Ne 65
+Ne' 65
+'s 64
+ne' 64
+"_ 64
+_. 63
+_._ 61
+Ne'_ 61
+, 60
+ne'_ 58
+në 58
+kwa 57
+_ne' 57
+öt 57
+a't 57
+ek 56
+s_ 56
+ët 55
+i' 55
+_hu 54
+T 54
+ë_ 54
+_s 54
+_Ne 53
+të 53
+tö 53
+_Ne' 53
+_ne'_ 53
+ht 53
+- 53
+ts 52
+ya' 52
+ë'_ 51
+_wa 51
+_Ne'_ 51
+'ö 50
+íy 50
+_ka 50
+as 50
+ní 49
+un 49
+ê_ 49
+ty 48
+hu_ 48
+ke 48
+u_ 48
+,_ 47
+yô 46
+he 46
+ye 46
+kê 45
+si 45
+nô 44
+khu 44
+a'k 44
+_a 43
+ák 43
+wat 42
+'ë 42
+nö' 42
+wá 42
+aw 41
+an 41
+we 41
+ôt 41
+i_ 41
+_kh 41
+tak 41
+_te 41
+ik 41
+_khu 40
+ës 40
+yö 40
+k_ 39
+khu_ 39
+yu' 38
+hö 38
+wën 38
+n- 38
+ëhs 38
+_ha 38
+wa' 38
+_n- 37
+sa 37
+? 37
+_T 37
+æ' 37
+_un 36
+hô 36
+wé 36
+ah 36
+_khu_ 35
+iy 35
+ëk 35
+ut 35
+ök 35
+öh 35
+te' 35
+u'_ 35
+_kë 34
+yô_ 34
+ha' 34
+st 34
+ti 34
+ta' 34
+u't 33
+ya't 33
+'t_ 33
+'ö_ 33
+akw 33
+ôk 33
+níy 32
+'ta 32
+ku 32
+ui 32
+_sh 32
+aa 31
+én 31
+ay 31
+ënö 31
+â 30
+se 30
+tw 30
+yë 30
+(_ 29
+_(_ 29
+_)_ 29
+us 29
+_ëhs 29
+( 29
+kö 29
+_ëh 29
+ae 29
+hë 29
+_) 29
+)_ 29
+_( 29
+sy 29
+) 29
+ëë 28
+ôn 28
+sk 28
+tá 28
+té 28
+tk 28
+ên 28
+kê_ 28
+a_ 28
+án 27
+_huik 27
+ön 27
+_hui 27
+kwé 27
+huik 27
+ék 27
+hui 27
+uik 27
+_na 27
+na 27
+a'_ 26
+uikê 26
+_ni 26
+." 26
+ææ 26
+wi 26
+huikê 26
+ikê 26
+nya 25
+."_ 25
+?" 25
+të' 25
+íyu 25
+awë 25
+sn 25
+në_ 24
+ö'_ 24
+ikê_ 24
+ekh 24
+'ke 24
+uikê_ 24
+?"_ 24
+tek 24
+êt 24
+', 24
+"N 23
+_ta 23
+'a 23
+hk 23
+tê 23
+tsi 23
+wö 23
+yu'_ 23
+_"N 23
+íyu' 23
+níyu 23
+a'ta 23
+é' 23
+níyu' 23
+shô 22
+wëní 22
+kwa' 22
+ëní 22
+kwë 22
+_u' 22
+ey 22
+ëníyu 22
+K 22
+ai 22
+_shô 22
+úw 22
+aö 22
+ëht 22
+ëníy 22
+kwe 22
+wëníy 22
+_he 22
+_te' 21
+ún 21
+s. 21
+nöh 21
+ëö 21
+_ëk 21
+'sh 21
+kë' 21
+htö 21
+H 21
+ata 21
+U 20
+'h 20
+_ha' 20
+ææ' 20
+ae_ 20
+a'ke 20
+ény 20
+unö 20
+we' 20
+wë' 20
+i'_ 20
+kës 20
+ya'ta 19
+es 19
+awëní 19
+hô_ 19
+uk 19
+awën 19
+hw 19
+ë'. 19
+ô' 19
+tö' 19
+sé 19
+ë'ë 19
+ë'._ 19
+'ëë 19
+hkw 19
+-a 19
+twa 19
+'kw 18
+he_ 18
+_K 18
+nöt 18
+hsa 18
+hsi 18
+ôni 18
+aya 18
+is 18
+ëë' 18
+kæ 18
+skw 18
+uw 18
+',_ 18
+e't 18
+kææ 18
+ka' 18
+nae 17
+shô_ 17
+sat 17
+niy 17
+ëts 17
+ath 17
+ye' 17
+í_ 17
+'ëë' 17
+'u 17
+_ët 17
+ës_ 17
+_kës 17
+_y 17
+kak 17
+ö'ö 17
+kat 17
+_th 17
+'ë_ 17
+út 17
+u'k 17
+_H 17
+tekh 17
+s._ 17
+wê 17
+_nae 17
+kwá 17
+_shô_ 17
+yê 17
+öte 16
+sha 16
+ke_ 16
+k. 16
+si' 16
+hö' 16
+yá 16
+hta 16
+kn 16
+_nae_ 16
+hse 16
+ké 16
+ë'ë_ 16
+unë 16
+nya' 16
+nae_ 16
+nê 16
+á' 16
+ás 16
+tô 16
+a's 16
+a'u 16
diff --git a/test/user-template/user/fingerprint/mongolian_cyrillic.lm b/test/user-template/user/fingerprint/mongolian_cyrillic.lm
new file mode 100644
index 000000000000..7ac690c8ac2e
--- /dev/null
+++ b/test/user-template/user/fingerprint/mongolian_cyrillic.lm
@@ -0,0 +1,363 @@
+_ 77671
+о 60289
+г 57097
+Ó© 51540
+л 41421
+а 40332
+Ñ€ 35484
+Ñ… 31764
+н 31695
+д 30802
+Ñ 29381
+и 28336
+Ò¯ 26898
+й 25901
+у 21671
+Ñ‚ 21639
+Ñ 21118
+ч 19759
+оо 12185
+м 12159
+Ó©Ó© 11964
+ц 11468
+гү 10443
+үй 10090
+чи 9604
+н_ 9584
+гүй 9529
+в 9133
+_Ñ… 8958
+й_ 8712
+ор 8462
+з 8134
+г_ 8106
+ий 8078
+Ó©Ñ€ 7638
+б 7524
+ол 7372
+ÑÑ 6997
+_Ñ‚ 6942
+уу 6908
+их 6787
+йг 6584
+ог 6380
+го 6337
+чих 6301
+өл 6221
+_о 6219
+д_ 6092
+_Ó© 6085
+Ò¯Ò¯ 5978
+Ñ€_ 5841
+гө 5674
+ш 5656
+өг 5647
+_б 5547
+аа 5471
+он 5259
+_з 5115
+Ð³Ñ 5047
+нг 5025
+Ñ…Ó© 4840
+хо 4806
+ж 4794
+ар 4704
+л_ 4687
+до 4578
+ал 4489
+йн 4345
+е 4326
+өн 4232
+Ñ_ 4191
+дө 4122
+лг 4089
+то 4085
+ан 4062
+чх 4039
+а_ 3970
+о_ 3935
+үйг 3903
+ул 3888
+гүйг 3887
+га 3756
+_Ñ 3746
+_ц 3600
+ÑÑ_ 3567
+гÑÑ 3545
+аг 3529
+гч 3515
+Ñо 3502
+Ñ‹ 3455
+цг 3441
+Ó©_ 3396
+лд 3389
+ха 3367
+ла 3290
+оо_ 3290
+ло 3281
+ги 3278
+Ñ_ 3252
+Ñ…_ 3249
+ийн 3227
+ÑÑ€ 3212
+ро 3204
+_д 3176
+_м 3157
+Ó©Ó©_ 3138
+рч 3048
+Ð¹Ð³Ñ 3033
+йн_ 3031
+йгÑÑ 3027
+ÑÓ© 3006
+үл 2995
+Ò¯Ð¹Ð³Ñ 2931
+үйгÑÑ 2931
+Ð³Ò¯Ð¹Ð³Ñ 2929
+та 2922
+үй_ 2876
+йг_ 2861
+_г 2851
+гүй_ 2831
+Ñ‚Ñ 2816
+ай 2795
+гоо 2759
+да 2724
+уул 2723
+рд 2687
+Ð¾Ñ 2650
+аа_ 2642
+гөө 2602
+рг 2598
+Ñг 2567
+Ñй 2566
+гий 2547
+Ñл 2546
+_ш 2543
+дг 2513
+Ñ€Ó© 2478
+ли 2469
+лө 2462
+_а 2461
+ох 2455
+Ñй_ 2448
+к 2440
+ийг 2425
+Ñ‚Ó© 2423
+ур 2418
+үүл 2406
+оро 2401
+_хо 2378
+Ó©Ñ… 2370
+лч 2367
+_Ñ…Ó© 2359
+од 2253
+Ó©Ñ 2252
+ра 2246
+_то 2227
+_н 2215
+Ð»Ñ 2177
+Ñ‚_ 2162
+лц 2141
+Ó©Ñ€Ó© 2123
+онг 2044
+Ó©Ó©Ñ€ 2037
+ийн_ 2022
+_ор 2015
+Ñа 2014
+зо 1998
+хг 1989
+_Ó©Ñ€ 1989
+ин 1981
+нх 1972
+ов 1970
+Ñ 1960
+гд 1959
+дог 1959
+хгү 1951
+хгүй 1948
+цо 1931
+ма 1925
+үр 1920
+лт 1919
+өнг 1896
+нд 1895
+дөг 1882
+ил 1878
+оол 1876
+оор 1871
+уд 1867
+ийг_ 1864
+ба 1859
+на 1852
+_у 1850
+мо 1818
+зө 1816
+өөл 1813
+хи 1810
+өд 1804
+мө 1794
+хд 1790
+өв 1772
+_Ò¯ 1767
+Ñн 1758
+в_ 1757
+Ð´Ñ 1757
+Ñон 1745
+_зо 1734
+_Ñ‚Ó© 1728
+цө 1726
+Ñ‚Ñй 1722
+но 1719
+ам 1716
+ÑÑ€_ 1707
+Ð¾Ð¾Ñ 1697
+ц_ 1696
+ав 1681
+дч 1680
+дчи 1668
+_зө 1665
+Ó©Ó©Ñ 1645
+нгү 1634
+Ñөн 1631
+дчих 1631
+Ñ‚Ñй_ 1623
+Ñ…Ó©Ó© 1610
+йл 1600
+ÑÑÑ€ 1583
+рл 1572
+гу 1569
+Ñ…Ñ 1565
+рчи 1555
+ÑÑ 1543
+ши 1514
+жи 1503
+ь 1492
+гÑÑ_ 1481
+_ха 1478
+гийн 1477
+ихд 1476
+цго 1474
+_цо 1470
+оог 1470
+цгоо 1466
+өөг 1465
+чихд 1464
+хоо 1463
+ри 1457
+ан_ 1447
+ай_ 1440
+ой 1438
+ни 1428
+ÑÑÑ€_ 1427
+лий 1417
+нгүй 1410
+үд 1402
+цгө 1402
+цгөө 1400
+_цө 1396
+ын 1383
+_ба 1378
+гг 1372
+оч 1372
+ггү 1368
+ггүй 1368
+өгч 1353
+ом 1350
+иг 1335
+огч 1320
+нө 1313
+ууд 1312
+Ñ…Ñ 1300
+ÑÑ 1298
+йд 1296
+ар_ 1289
+Ñ€Ñ 1288
+Ð°Ñ 1287
+ад 1282
+ч_ 1280
+ж_ 1278
+аг_ 1271
+өч 1269
+_Ñ 1268
+Ñн 1268
+ху 1267
+роо 1266
+ыг 1260
+ыг_ 1253
+лгү 1251
+гт 1249
+ÑÑ_ 1246
+_ол 1238
+чд 1230
+Ñ€Ó©Ó© 1223
+бу 1220
+йнх 1203
+ÑÑÑ 1203
+ын_ 1201
+бо 1196
+ид 1194
+ийнх 1188
+гчи 1184
+ороо 1181
+Ñ€Ñ 1179
+ат 1174
+оÑо 1170
+Ð¸Ñ…Ñ 1168
+дги 1166
+дгий 1166
+Ñ‡Ð¸Ñ…Ñ 1158
+ах 1155
+ÑÑÑ_ 1154
+ту 1153
+уг 1152
+лгүй 1150
+_бу 1139
+Ñ‚Ò¯ 1129
+_өл 1129
+өрч 1124
+цоо 1121
+лз 1119
+нго 1119
+гц 1110
+Ó©Ñ€Ó©Ó© 1100
+йгÑÑ_ 1098
+Ð½Ñ 1096
+ор_ 1094
+онго 1090
+за 1089
+оло 1087
+от 1085
+лчи 1079
+ал_ 1066
+өлг 1066
+гÑÑÑ€ 1063
+олг 1062
+Ñ…Ò¯ 1060
+цөө 1059
+тл 1054
+_ху 1054
+_мө 1052
+чхө 1050
+он_ 1047
+үүд 1046
+гÑÑÑ€_ 1046
+лу 1040
+аар 1036
+п 1026
+рх 1025
+рчих 1024
+Ð»Ñ 1021
+йгÑÑÑ€ 1020
+гчд 1019
+Ñв 1016
+вл 1014
+лчх 1014
+орд 1013
+орч 1013
+ихг 1012
+ихгү 1012
+ихгүй 1012
+йт 1010
+нгө 1008
+йд_ 1005
+өнгө 1004
diff --git a/test/user-template/user/fingerprint/nepali.lm b/test/user-template/user/fingerprint/nepali.lm
new file mode 100644
index 000000000000..5d3507646f93
--- /dev/null
+++ b/test/user-template/user/fingerprint/nepali.lm
@@ -0,0 +1,400 @@
+_ 7044
+f 2698
+] 1196
+g 933
+s 815
+l 781
+/ 698
+; 662
+k 645
+d 635
+]_ 630
+f_ 611
+sf 549
+f] 541
+n 526
+t 460
+o 412
+j 399
+f]_ 374
+L 365
+_; 364
+x 356
+_k 353
+{ 337
+b 323
+u 321
+' 303
+df 299
+sf] 290
+_l 283
+sf]_ 265
+g] 245
+G 232
+e 231
+| 227
+a 222
+/_ 222
+L_ 211
+_g 210
+c 207
+df_ 207
+{_ 207
+_c 201
+g_ 201
+kf 184
+f/ 177
+_u 171
+/f 168
+P 163
+_/ 162
+k| 161
+_s 161
+} 159
++ 158
+h 151
+fn 150
+n] 145
+of 141
+tf 140
+: 136
+p 136
+t_ 134
+. 133
+_k| 133
+._ 133
+_e 131
+_d 131
+_f 129
+_._ 127
+_. 127
+n]_ 123
+;f 119
+lj 118
+O 118
+? 118
+q 118
+nf 118
+y 116
+_a 113
+m 111
+Ps 110
+r 110
+fg 106
+w 105
+sf_ 103
+lg 102
+g]_ 100
+gf 94
+_g] 91
+Psf 90
+x? 89
+fd 88
+fO 88
+_lj 85
+]s 85
+z 85
+s_ 84
+_p 82
+_sf 80
+D 79
+kl 78
+_;f 78
+f/_ 77
+cf 77
+}_ 76
+Psf] 76
+jf 76
+, 75
+fl 75
+\ 75
+_x 74
+kfn 74
+f{ 74
+_/f 74
+]k 73
+of] 73
+,_ 72
+v 72
+lt 72
+_cf 72
+_b 71
+O{ 70
+i 69
+xf 68
+]kf 68
+_/_ 68
+Psf]_ 68
+_h 67
+g]kfn 67
+g]k 67
+d_ 67
+g]kf 67
+O{_ 67
+]kfn 67
+_g]k 66
+g' 66
+_g]kf 66
+o_ 64
+" 64
+;b 63
+Gq 63
+f+ 63
+n_ 63
+fk 62
+sf/ 62
+/L 62
+_kl 62
+I 61
+T 61
+/s 61
+If 61
+dG 60
+_j 60
+]sf 60
+;_ 59
+u_ 59
+yf 59
+dGq 58
+fO{ 58
+af 57
+eP 57
+fs 57
+fO{_ 57
+fj 56
+f; 56
+qL 56
+l/ 55
+\_ 55
+;D 54
+dGqL 54
+GqL 54
+;+ 53
+g\ 53
+/sf 52
+nfO 51
+_kf 51
+ug 51
+pg 51
+:t 51
+fp 50
+_ug 50
+u/ 50
+lg_ 49
+ePs 49
+fdf 48
+cl 48
+nfO{_ 48
+nfO{ 48
+;/ 48
+_cl 47
+F 47
+'/ 47
+g\_ 47
+_r 47
+fo 47
+_eP 47
+]{ 46
+Z 46
+/L_ 46
+_f_ 45
+ePsf 45
+gd 45
+_;D 45
+if 45
+Gb 44
+lb 44
+Q 44
+_n 44
+fsf 44
+]sf] 43
++; 43
+nL 43
+lx 43
+_t 43
+_: 42
++;b 42
+_o 42
+fdf_ 42
+bf 42
+hf 42
+_lg 42
+ePsf] 41
+j_ 41
+ln 41
+ef 41
+/] 41
+_df 41
+To 40
+klg_ 40
+_klg_ 40
+]sf]_ 40
+klg 40
+_klg 40
+_u/ 40
+f{_ 40
+_ePs 40
+'g 40
+Gg 39
+:y 39
+_g\ 39
+f} 39
+kf_ 39
+:tf 38
+]{_ 38
+fpg 38
+b' 38
+hg 38
+g]{ 38
+jZ 38
+_;+ 37
+gs 37
+wf 37
+o{ 37
+GqL_ 37
+l_ 37
+qL_ 37
+dGqL_ 37
+gf_ 37
+]; 37
+_ePsf 36
+x' 36
+?_ 36
+! 36
+fx 35
+u| 34
+;d 34
+_lb 34
+fn_ 34
+_P 34
+fg_ 34
+= 34
+bn 34
+Zj 34
+o; 34
+g]{_ 34
+_g\_ 34
+kIf 33
+dl 33
+kI 33
+ljZj 33
+jZj 33
+rf 33
++u 33
+]d 33
+ljZ 33
+nL_ 32
+f+; 32
+fnL 32
+gL 32
+;/sf 32
+tf_ 32
+wfg 32
+_;/ 32
+Qm 32
+fb 32
+f;_ 32
+ld 32
+;/sf/ 32
+/sf/ 32
+_x' 32
+;/s 32
+;f+ 32
+_;f+ 32
+fu 32
+x?_ 32
+;f+; 31
+_k|:t 31
+s' 31
+_kI 31
+_k|: 31
+of]_ 31
+_kIf 31
+_;f+; 31
+]l 31
+k|: 31
+bg 31
+_;/s 31
+|: 31
+f+;b 31
+_;/sf 31
+|:t 31
+|] 31
+k|:t 31
+m_ 31
+;f+;b 31
+Jo 30
+k|wf 30
+|w 30
+|wf 30
+k|w 30
+km 30
+J 30
+k|wfg 30
+|wfg 30
+]t 30
+@ 30
+;f] 30
+b_ 29
+> 29
+kfn_ 29
+fn] 29
+gsf 29
+sf+ 29
+Zjf 29
+]kfn_ 29
+jif 29
+ji 29
+jf; 29
+_k|w 29
+fgd 29
+_k|wf 29
+Zjf; 29
+ljZjf 28
+jZjf; 28
+]n 28
+_z 28
+_s' 28
+_dG 28
+|]; 28
+_;d 28
+jZjf 28
+u|] 27
+gdGq 27
+gdG 27
+?n 27
+x'g 27
+|wfgd 27
+wfgd 27
+gdGqL 27
++u|] 27
+f+u 27
+fgdG 27
+u|]; 27
++u|]; 27
+wfgdG 27
+dfg 27
+a} 27
+_dGq 27
+f+u| 27
+fgdGq 27
+sf+u| 27
+_sf+u 27
+f+u|] 27
++u| 27
+sf+u 27
+_sf+ 27
+x?n 27
+S 26
+_To 26
+]kfnL 26
+_! 26
+_T 26
+ul 26
+/f] 26
+fsf] 26
+af_ 26
+;s 26
+kfnL 26
+|:tf 26
+k|:tf 26
diff --git a/test/user-template/user/fingerprint/norwegian.lm b/test/user-template/user/fingerprint/norwegian.lm
new file mode 100644
index 000000000000..f2c3cec3aae3
--- /dev/null
+++ b/test/user-template/user/fingerprint/norwegian.lm
@@ -0,0 +1,400 @@
+_ 22970
+e 6833
+n 4206
+r 3516
+t 3112
+a 2587
+s 2440
+i 2112
+l 1901
+o 1900
+n_ 1875
+r_ 1761
+k 1713
+g 1630
+en 1615
+m 1508
+e_ 1450
+d 1444
+er 1436
+h 1306
+t_ 1300
+_h 1180
+_s 1148
+er_ 1105
+v 982
+en_ 976
+an 919
+. 901
+._ 791
+_. 781
+et 770
+g_ 762
+_._ 726
+Ã¥ 725
+u 719
+f 709
+p 702
+ha 682
+_ha 672
+de 657
+te 651
+_e 621
+et_ 614
+re 581
+ne 565
+_o 554
+an_ 544
+ke 534
+_, 522
+,_ 522
+, 522
+_,_ 522
+_f 519
+_m 515
+or 503
+_d 483
+_i 480
+Ã¥_ 479
+se 476
+m_ 469
+nn 454
+b 449
+me 441
+ø 434
+_a 413
+st 404
+_t 398
+og 380
+_v 377
+_og 366
+ar 364
+el 364
+le 361
+i_ 356
+om 353
+og_ 351
+_og_ 351
+li 350
+_k 346
+_de 339
+ge 339
+han 337
+y 333
+_han 332
+ve 330
+kk 323
+in 311
+_b 307
+fo 301
+j 301
+il 298
+_H 291
+H 291
+han_ 288
+_han_ 288
+for 287
+ik 281
+l_ 278
+kke 277
+tt 276
+ti 270
+ne_ 270
+d_ 269
+ed 269
+om_ 268
+nne 266
+_me 264
+ng 257
+_er 257
+_fo 256
+eg 256
+_se 256
+_g 256
+un 255
+ig 255
+sk 253
+_er_ 252
+_p 252
+_for 250
+ke_ 249
+_n 238
+_l 233
+al 232
+ør 222
+s_ 221
+ar_ 215
+at 214
+_en 211
+he 211
+pe 209
+_i_ 208
+am 200
+es 200
+si 200
+enn 197
+det 195
+or_ 193
+vi 190
+ns 189
+ikk 188
+det_ 185
+so 185
+un_ 183
+il_ 181
+nd 181
+te_ 181
+"_ 180
+" 180
+_"_ 180
+_" 180
+em 179
+_ti 176
+kke_ 176
+lig 174
+ten 174
+Ha 173
+_Ha 173
+re_ 172
+ikke 168
+je 165
+Han 165
+ter 165
+_Han 165
+eg_ 164
+på 164
+_på 163
+_si 163
+_Ã¥ 163
+_Han_ 162
+Han_ 162
+på_ 162
+_på_ 161
+til 160
+som 160
+_so 159
+den 159
+_det 157
+ed_ 155
+ll 155
+_ik 155
+rt 155
+som_ 153
+ra 152
+a_ 152
+har 152
+nt 152
+de_ 152
+tr 151
+v_ 151
+_har 151
+ka 151
+ig_ 150
+_som 150
+for_ 150
+_som_ 150
+_en_ 149
+hu 149
+_ikk 148
+_ham 148
+ham 148
+ste 148
+_det_ 148
+_ikke 148
+enne 148
+ikke_ 148
+har_ 147
+nge 147
+D 147
+_har_ 147
+_D 147
+am_ 147
+ere 147
+ham_ 146
+_ham_ 146
+it 145
+_he 144
+_til 144
+av 143
+va 140
+men 140
+Ã¥r 140
+_ve 140
+_hu 139
+ta 139
+pen 137
+sp 137
+_st 135
+tte 135
+la 135
+_E 133
+E 133
+den_ 130
+is 130
+til_ 128
+_r 128
+tt_ 128
+Ã¥r_ 127
+k_ 124
+_Ã¥_ 124
+ri 124
+_til_ 124
+at_ 123
+ene 123
+seg 123
+_av 123
+med 122
+_vi 122
+_seg 122
+seg_ 121
+_seg_ 121
+_for_ 120
+nne_ 120
+ut 120
+_u 119
+mm 119
+mme 119
+De 118
+_De 118
+_at 118
+_hun 117
+hun 117
+ko 117
+be 116
+_at_ 115
+ter_ 115
+pen_ 114
+ker 113
+hun_ 113
+_hun_ 113
+on 111
+lig_ 111
+.. 110
+hen 107
+_med 107
+rs 106
+ser 106
+med_ 105
+_men 104
+_hen 104
+_sk 104
+_med_ 104
+ak 103
+ans 103
+ker_ 102
+av_ 101
+_ka 101
+no 100
+ver 100
+ler 99
+J 99
+spe 99
+ten_ 99
+_J 99
+ene_ 98
+ld 98
+hv 98
+_av_ 98
+ger 97
+ni 96
+gen 96
+ie 95
+ser_ 94
+_et 94
+spen 94
+_hv 94
+men_ 93
+Espe 92
+Es 92
+_Esp 92
+_Es 92
+_Espe 92
+Esp 92
+_al 92
+Espen 92
+lle 89
+rem 89
+id 89
+fø 89
+ei 88
+inn 88
+rd 88
+enne_ 88
+_henn 87
+henne 87
+henn 87
+kt 86
+spen_ 86
+_om 86
+ler_ 86
+da 86
+ett 86
+itt 86
+bl 85
+to 85
+_Je 84
+ger_ 84
+Je 84
+æ 84
+ma 83
+ing 83
+ær 83
+ns_ 83
+eli 82
+ang 82
+_be 82
+så 82
+_den 82
+pp 81
+rk 81
+dr 81
+oe 81
+ss 81
+_fø 80
+ek 80
+le_ 79
+_no 79
+kj 78
+elig 78
+nes 78
+nn_ 77
+nk 77
+fr 77
+sl 77
+my 77
+kan 77
+så_ 76
+as 76
+_om_ 76
+_kan 75
+_ko 75
+_bl 73
+Hu 73
+nen 73
+_Hu 73
+eng 73
+gj 73
+rt_ 72
+ge_ 72
+ba 72
+lv 71
+rer 71
+nde 71
+ls 70
+lo 70
+ga 70
+_noe 70
+ro 70
+_den_ 70
+_ut 70
+noe 70
+Hun 69
+Hun_ 69
+_in 69
+_Hun 69
+_Hun_ 69
+ren 68
+øre 68
+ør_ 68
+sen 68
+sa 67
diff --git a/test/user-template/user/fingerprint/persian.lm b/test/user-template/user/fingerprint/persian.lm
new file mode 100644
index 000000000000..858f468ae54a
--- /dev/null
+++ b/test/user-template/user/fingerprint/persian.lm
@@ -0,0 +1,400 @@
+_ 12318
+? 5938
+¤ 2613
+?_ 1815
+¢ 1745
+þ 1569
+ø 1546
+õ 1422
+- 1333
+÷ 1155
+ù 991
+¨ 841
+_ù 778
+ö 761
+î 693
+ü 664
+_ö 663
+ª 660
+¤? 631
+õ_ 624
+_? 601
+?¤ 598
+Â¥ 589
+_¤ 565
+?? 564
+ý 513
+¢_ 486
+_ü 473
+_ý 469
+þ? 459
+û 428
+ø_ 427
+_¢ 398
+î_ 392
+ó 390
+ê 384
+ö? 379
+÷? 361
+_ø 337
+_- 334
+> 327
+ú 324
+_ö? 319
+ù? 313
+_ø_ 308
+ð 305
+¤¢ 303
+¤_ 297
+?õ 290
+¨? 285
+¢÷ 272
+-_ 271
+S 266
+_ù? 265
+ô 259
+-¨ 255
+¡ 255
+??_ 255
+ý? 254
+Â¥? 250
+Y 246
+¤¢_ 245
+ì 243
+_ý? 238
+?¢ 234
+_Â¥ 229
+ò 229
+_S 228
+¤ø 216
+ø¤ 215
+?þ 215
+?¨ 214
+_¤¢ 214
+ñ 208
+þ?_ 207
+¢¤ 203
+?- 202
+_ô 199
+ù?_ 199
+öþ 195
+¨_ 190
+¨?_ 190
+_?? 189
+õ? 188
+. 188
+_¤¢_ 185
+_ñ 183
+?ø 181
+_öþ 180
+¢? 177
+* 176
+÷_ 176
+_ù?_ 174
+?û 173
+¤þ 172
+ª_ 170
+þõ 164
+ä 161
+¯ 158
+-¨? 156
+û_ 155
+¤?_ 155
+_Â¥? 152
+üõ 151
+ý¤ 150
+_¤? 146
+Â¥?_ 144
+þ¤ 143
+¢ø 141
+?¤_ 140
+*_ 138
+ü÷ 137
+?÷ 136
+¬ 133
+ùî 132
+_ý¤ 131
+-ª 131
+ø? 130
+?ú 129
+_. 129
+þó 129
+¡_ 128
+ù¢ 124
+¤õ 121
+¤- 120
+ùî_ 120
+_ùî 120
+_??_ 119
+ª? 119
+-¨?_ 119
+ã 118
+-? 118
+>_ 116
+öþ? 114
+ê_ 111
+¢þ 109
+_Â¥?_ 109
+_ü÷ 109
+_ùî_ 108
+_öþ? 107
+ö?¤ 107
+© 106
+_¢÷ 106
+.¢ 104
+?Â¥ 103
+_?¤ 103
+¤ê 103
+ó? 103
+þ¢ 103
+ñ? 102
+ªî 100
+?î 100
+?¤? 98
+ð_ 98
+ý?û 96
+¤ú 95
+öþ?_ 95
+_© 94
+§ 94
+Y_ 94
+_ö?¤ 93
+_ý?û 93
+¥ø 92
+øª 91
+_ñ? 91
+_öþ?_ 91
+?¨_ 90
+÷?_ 90
+óþ 90
+õ?_ 90
+ü- 90
+øõ 89
+: 89
+ªî_ 88
+ü÷? 88
+öø 88
+_ù¢ 87
+-ê 86
+þ÷ 85
+_öø 83
+, 82
+þõ_ 82
+þ¨ 82
+?¢_ 80
+® 80
+?¤þ 79
+_ü÷? 79
+¢ª 77
+??? 77
+øþ 76
+_-? 75
+֔ 75
+?ª 75
+?ì 75
+¤î 74
+_¤ø 73
+ä_ 73
+þóþ 73
+û? 73
+óþõ 72
+þóþõ 71
+ù¤ 71
+?> 71
+ê? 70
+_?¤_ 70
+_.¢ 70
+ø¡ 69
+à 69
+_§ 68
+¥ø¤ 68
+þóþõ_ 67
+_ü- 67
+¤øª 67
+óþõ_ 67
+õû 67
+¤ê_ 67
+¨õ 67
+¤õ_ 66
+?-_ 65
+ù÷ 65
+ý?¤ 65
+öøþ 64
+¤þ? 64
+¬_ 64
+?ð 63
+?-¨ 63
+ø- 63
+_ý?¤ 62
+ø?_ 62
+ø¤_ 62
+_-¨ 61
+õþ 61
+øþóþõ 60
+øþóþ 60
+øþó 60
+?ù 60
+øªî 60
+_¢ø 60
+¤øªî 60
+_öøþ 60
+-ª? 60
+ì_ 60
+¨¤ 60
+ý¤? 60
+÷þ 59
+öøþóþ 59
+¯? 59
+_¢? 59
+öøþó 59
+¢ª_ 59
+¤?? 58
+¤?¥ 58
+_üõ 58
+.- 58
+?¡ 58
+ø÷ 57
+í 57
+¢¤î 57
+?¤?_ 57
+þ?¤ 57
+ù- 57
+üõ_ 56
+ñ?¨ 56
+øõ_ 56
+?¤þ? 56
+ú? 56
+î¤ 56
+¤?¢ 56
+õû_ 55
+ô? 55
+ª?¢ 55
+_öøþó 55
+-ª?¢ 55
+þ_ 55
+ö?¤þ 55
+¤î_ 55
+S¤ 55
+üþ 54
+_S¤ 53
+øªî_ 53
+_ù¤ 53
+ò¢ 53
+¤ò 53
+¤øªî_ 53
+ø¡_ 52
+¢÷? 52
+û¤ 52
+üþ? 52
+õ> 52
+-õ 52
+¢¤? 52
+üð 52
+ì? 52
+_í 52
+î? 52
+üó 52
+??¤ 52
+ð÷ 51
+¤ò¢ 51
+-þ 51
+_ý¤? 51
+¡? 50
+_¢¤ 50
+¢¤î_ 50
+.-¨ 50
+ö?õ 50
+ë 50
+_ô? 50
+ø¢ 50
+_ñ?¨ 49
+.¢÷ 49
+÷¤ 49
+ý?¤? 49
+ú- 48
+_üð 48
+_ö?¤þ 48
+¤þ?_ 48
+ò¢_ 48
+ûù 48
+ú?_ 48
+¤ò¢_ 47
+ê¤ 47
+â 47
+.-¨? 47
+_¢þ 47
+>÷ 47
+úª 47
+÷?õ 47
+£ 47
+?¤þ?_ 47
+?ûù 47
+¤¯ 46
+_.- 46
+_ý?¤? 46
+õ¤ 46
+õó 46
+-¤ 46
+_üþ 46
+¥þ 46
+¤ð 45
+ôþ 45
+_üó 45
+ö?- 45
+§þ 45
+_ë 45
+f 45
+õ- 44
+_ù- 44
+úõ 44
+_üþ? 44
+ü-ª 44
+-î 44
+ð¢ 44
+ö?¤þ? 44
+õª 44
+.-¨?_ 44
+¨õ_ 44
+¤ª 44
+_-¨? 44
+¤?î 43
+ä? 43
+é 43
+?õ_ 43
+_¤øªî 43
+þª 43
+?ê 43
+?î_ 43
+_¤øª 43
+¯_ 43
+¤¨ 43
+þ?? 42
+Y? 42
+Â¥_ 42
+÷÷ 42
+÷õ 42
+_¥ø 42
+þ¨? 42
+¢õ 42
+/ 42
+_â 42
+???_ 42
+_¥ø¤ 42
+_ù÷ 42
+s 42
+¢÷÷ 42
+ö?-¨ 41
+÷ø 41
+ù÷? 41
+?* 41
+S¤ò¢ 41
+_ö?õ 41
+ñþ 41
+_.-¨ 41
+îþ 41
+÷¢ 41
+ùõ 41
+S¤ò 41
+ªø 41
+ý?¤?_ 40
+¤úª 40
diff --git a/test/user-template/user/fingerprint/polish.lm b/test/user-template/user/fingerprint/polish.lm
new file mode 100644
index 000000000000..eac3b27eca6a
--- /dev/null
+++ b/test/user-template/user/fingerprint/polish.lm
@@ -0,0 +1,400 @@
+_ 31480
+a 7945
+i 7766
+e 7462
+o 6838
+z 5104
+n 5077
+r 4178
+w 4139
+s 3596
+c 3580
+y 3569
+t 3381
+d 3027
+k 2819
+p 2639
+m 2494
+ie 2484
+u 2016
+l 1947
+j 1932
+ni 1930
+e_ 1746
+_p 1712
+³ 1649
+a_ 1496
+o_ 1431
+, 1368
+,_ 1366
+b 1296
+_w 1257
+g 1249
+i_ 1140
+. 1118
+_s 1045
+ze 1041
+._ 1035
+_n 997
+nie 958
+cz 956
+rz 952
+h 950
+_z 933
+ê 918
+ow 911
+ie_ 902
+y_ 899
+na 885
+ch 871
+po 864
+pr 863
+wi 851
+st 847
+¿ 835
+± 832
+an 814
+ó 800
+ra 778
+zy 766
+ia 726
+za 718
+_t 699
+wa 692
+ro 692
+_d 683
+_pr 675
+¶ 661
+w_ 658
+sz 652
+_po 649
+_o 628
+m_ 613
+li 613
+dz 611
+ki 611
+en 609
+mi 593
+ta 571
+ci 564
+ej 562
+nie_ 558
+_m 553
+_k 549
+ar 543
+go 541
+_i 540
+em 532
+od 525
+yc 520
+a³ 511
+rze 508
+do 504
+eg 503
+ko 502
+ac 482
+to 478
+_na 467
+_ni 467
+h_ 466
+ch_ 466
+æ 465
+iê 461
+_b 458
+on 458
+u_ 458
+zi 454
+ka 450
+er 448
+sk 447
+si 447
+wy 444
+te 437
+ak 434
+ê_ 431
+_j 429
+je 429
+z_ 427
+ny 422
+aw 422
+ne 420
+ów 418
+_w_ 415
+_c 414
+ego 412
+prz 412
+_r 410
+al 407
+³a 405
+" 405
+re 405
+es 401
+_nie 396
+dzi 394
+ty 389
+j_ 380
+ic 380
+_prz 379
+ad 367
+ej_ 364
+le 359
+æ_ 358
+ed 354
+ych 346
+_za 346
+_do 344
+zn 344
+go_ 344
+ani 343
+_i_ 342
+no 339
+or 337
+³o 336
+tr 334
+P 330
+os 329
+am 329
+da 328
+ec 327
+ol 325
+±_ 325
+by 322
+ego_ 321
+at 321
+¿e 319
+ym 317
+wie 314
+³_ 312
+- 310
+na_ 309
+_si 303
+W 301
+as 301
+wo 300
+pa 299
+siê 295
+nia 293
+owa 292
+o¶ 286
+_P 283
+el 282
+_siê 279
+ja 278
+rzy 276
+prze 276
+_wy 275
+iê_ 269
+in 267
+_- 267
+de 267
+kie 267
+dn 264
+ob 262
+_u 261
+ych_ 260
+-_ 258
+ez 257
+_-_ 256
+¶c 255
+ws 255
+¶ci 254
+em_ 253
+_siê_ 253
+siê_ 253
+_nie_ 253
+kt 252
+ski 252
+we 251
+_g 251
+_W 250
+t_ 249
+_prze 249
+_je 248
+aj 247
+_a 247
+¿e_ 246
+_¿ 244
+ia_ 243
+eni 241
+om 240
+la 240
+k_ 235
+mo 235
+f 234
+pi 232
+is 231
+cze 231
+_z_ 230
+ñ 228
+nt 227
+ce 224
+sta 221
+ry 220
+ma 219
+cj 219
+zie 218
+ek 216
+oc 213
+dy 212
+owi 208
+sp 208
+K 208
+tó 205
+_" 204
+ud 203
+S 202
+ier 202
+pra 202
+czn 201
+ys 200
+nia_ 199
+j± 198
+_¿e 196
+oz 194
+N 192
+zo 191
+dzie 190
+ku 190
+ów_ 189
+czy 189
+_mi 188
+_¿e_ 187
+mie 186
+do_ 186
+iej 185
+ym_ 185
+_do_ 184
+cy 184
+_pa 183
+y³ 182
+_na_ 181
+zy_ 181
+ew 180
+_l 180
+_cz 178
+_by 178
+ru 177
+to_ 175
+±c 175
+_wi 175
+ln 174
+_K 171
+ok 170
+ot 170
+raw 169
+nych 168
+nyc 168
+az 168
+ik 167
+bi 167
+i,_ 166
+i, 166
+_te 165
+tu 163
+wan 163
+et 162
+J 162
+ór 161
+cie 160
+_od 160
+ba 160
+oj 159
+o¶c 158
+i³ 158
+_ro 158
+og 158
+mu 158
+A 158
+o¶ci 158
+d_ 157
+tw 156
+io 155
+gr 155
+_J 155
+_N 155
+_to 155
+us 155
+¿_ 154
+aæ 154
+ach 154
+yd 153
+_kt 153
+_ko 152
+_st 152
+pow 151
+yt 150
+kr 149
+_S 149
+a³_ 149
+ak_ 149
+li_ 148
+T 148
+ur 148
+sa 148
+op 147
+yw 147
+ent 147
+bo 146
+_sp 145
+O 145
+a,_ 144
+a, 144
+iem 144
+któ 143
+praw 143
+wn 142
+tór 142
+i± 141
+³y 141
+zu 141
+dni 140
+im 139
+icz 139
+ró 139
+³e 138
+któr 137
+my 137
+est 136
+awi 135
+przy 134
+nych_ 134
+e,_ 132
+e, 132
+ki_ 132
+pro 131
+_któ 131
+_któr 131
+_przy 130
+_ja 129
+szy 127
+ia³ 127
+Po 127
+ania 127
+M 126
+ze_ 125
+ne_ 125
+ñs 124
+_ty 124
+sze 124
+a¿ 124
+nn 124
+pod 124
+aæ_ 122
+B 122
+za_ 122
+cza 122
+³o_ 122
+Z 122
+_to_ 121
+iu 120
+zc 119
+esz 119
+skie 118
+i. 118
+_ka 117
+so 117
+trz 117
+o¿ 116
+ieg 116
+nik 116
+ga 116
diff --git a/test/user-template/user/fingerprint/portuguese.lm b/test/user-template/user/fingerprint/portuguese.lm
new file mode 100644
index 000000000000..4e1a5d7698e4
--- /dev/null
+++ b/test/user-template/user/fingerprint/portuguese.lm
@@ -0,0 +1,400 @@
+_ 35328
+a 10423
+e 10132
+o 8919
+s 6795
+r 6033
+i 5443
+n 4588
+d 4531
+t 4217
+m 3476
+u 3404
+o_ 3240
+a_ 3029
+e_ 2879
+c 2756
+s_ 2461
+_d 2379
+l 2307
+p 2242
+_a 1753
+de 1751
+, 1660
+,_ 1658
+_e 1454
+es 1447
+os 1412
+ra 1343
+_p 1328
+nt 1302
+_de 1248
+do 1215
+en 1176
+re 1150
+as 1123
+v 1115
+m_ 1113
+de_ 1096
+er 1082
+g 1053
+_c 1047
+da 1008
+co 986
+os_ 975
+te 974
+ar 950
+or 943
+q 938
+qu 938
+_s 908
+ta 902
+_de_ 901
+_o 858
+se 841
+ue 831
+to 799
+ad 777
+. 761
+que 752
+em 751
+an 748
+f 746
+r_ 745
+b 732
+st 718
+is 716
+al 712
+_qu 706
+_q 706
+in 701
+as_ 696
+ã 695
+do_ 685
+ent 678
+ão 677
+_n 671
+_co 660
+_a_ 654
+_m 646
+on 645
+ç 624
+ri 623
+_que 619
+ma 602
+po 581
+ia 580
+ão_ 575
+._ 573
+na 572
+me 564
+ro 554
+_t 544
+pa 533
+da_ 528
+h 523
+ue_ 515
+ca 511
+que_ 509
+nte 503
+no 499
+tr 498
+am 496
+em_ 491
+_que_ 487
+_se 485
+om 471
+io 460
+_do 459
+ti 448
+ci 445
+_da 444
+nd 442
+ei 435
+ra_ 435
+pr 427
+_r 423
+_e_ 420
+_f 420
+ss 412
+es_ 412
+el 407
+id 406
+_o_ 399
+_pa 390
+um 379
+pe 378
+_po 376
+la 374
+ir 371
+á 371
+ic 362
+di 362
+li 359
+é 359
+_re 353
+ve 353
+mo 350
+s, 349
+s,_ 349
+ou 347
+com 340
+sa 338
+si 338
+men 337
+rt 331
+_i 330
+con 330
+o, 327
+_da_ 326
+o,_ 326
+se_ 325
+_com 325
+ado 323
+to_ 322
+ai 322
+it 320
+A 319
+ec 316
+dos 316
+_em 312
+ção 310
+aç 310
+çã 310
+ara 305
+so 299
+tu 299
+res 297
+im 296
+_pr 295
+mi 293
+ua 292
+nto 291
+ment 290
+í 290
+par 288
+_do_ 287
+ce 286
+est 286
+u_ 284
+ente 284
+S 278
+l_ 278
+_u 278
+" 276
+ni 276
+z 274
+sta 273
+nc 272
+_em_ 270
+P 269
+ção_ 267
+_v 267
+at 267
+dos_ 266
+_es 262
+« 259
+_« 259
+te_ 258
+» 257
+va 255
+le 252
+ur 252
+_um 252
+vi 251
+_par 250
+a, 247
+a,_ 247
+_con 247
+ant 242
+lo 240
+ia_ 240
+gu 237
+ar_ 235
+ac 235
+e,_ 234
+e, 234
+no_ 232
+eg 232
+il 232
+ns 232
+er_ 231
+_ma 230
+por 230
+_in 228
+_l 226
+ó 225
+ont 224
+_no 223
+_P 222
+tra 220
+E 219
+ida 218
+is_ 217
+ol 216
+açã 215
+ter 215
+ação 215
+_A 211
+un 211
+- 210
+_te 210
+or_ 209
+ma_ 208
+_pe 208
+ara_ 208
+C 206
+ist 202
+para 202
+nta 201
+ais 201
+ut 198
+nte_ 198
+j 197
+dad 196
+_na 195
+am_ 195
+ade 193
+ica 191
+x 190
+al_ 189
+O 188
+des 187
+_para 187
+ada 187
+nh 186
+_se_ 186
+mp 185
+ndo 184
+R 183
+_por 181
+ação_ 181
+para_ 179
+eir 177
+ui 177
+vo 177
+ou_ 177
+ta_ 177
+M 176
+ria 175
+tos 175
+rr 174
+D 174
+io_ 174
+br 174
+_di 173
+õ 173
+õe 173
+fo 173
+I 172
+ões 172
+_C 171
+mo_ 171
+ov 170
+pro 169
+_os_ 169
+_os 169
+das 167
+iv 166
+uma 165
+gr 165
+su 164
+fi 164
+um_ 162
+na_ 162
+ga 162
+ais_ 161
+_S 161
+lh 159
+ort 159
+cia 158
+.. 157
+_est 156
+cont 156
+ig 155
+á_ 154
+ran 154
+ça 154
+om_ 153
+_en 152
+dade 152
+_as 152
+ho 152
+ntr 151
+nto_ 151
+fe 150
+N 149
+das_ 149
+uma_ 149
+ess 149
+é_ 148
+ndo_ 147
+ob 147
+»_ 147
+ul 146
+ente_ 146
+go 146
+ento 144
+ver 144
+_des 144
+gi 144
+ha 142
+cu 142
+idad 142
+av 141
+ões_ 141
+_pro 141
+ura 141
+ap 139
+_com_ 139
+_ca 139
+com_ 139
+ao 139
+ne 138
+od 138
+_" 137
+_M 137
+pre 137
+ras 136
+_me 136
+_ao 136
+_no_ 134
+oc 134
+str 133
+tes 133
+_b 133
+and 133
+_g 133
+ro_ 133
+omo 133
+_dos 132
+_fo 132
+_dos_ 132
+rn 132
+mento 131
+ito 131
+ev 131
+rio 130
+ass 130
+eu 130
+be 128
+os, 128
+os,_ 128
+sp 127
+_uma 127
+ep 126
+tad 125
+s. 125
+_uma_ 125
+_E 125
+idade 124
+_um_ 124
+nã 124
+não 124
+ct 123
+ram 123
+ado_ 123
+ela 123
+omo_ 121
+iz 121
+_an 121
diff --git a/test/user-template/user/fingerprint/quechua.lm b/test/user-template/user/fingerprint/quechua.lm
new file mode 100644
index 000000000000..e59992d781b3
--- /dev/null
+++ b/test/user-template/user/fingerprint/quechua.lm
@@ -0,0 +1,400 @@
+_ 5766
+a 4900
+n 1941
+i 1666
+u 1384
+s 1032
+t 995
+y 939
+h 929
+k 915
+q 909
+p 882
+a_ 847
+an 821
+r 783
+m 740
+c 705
+l 695
+ta 637
+ch 613
+ay 587
+qa 557
+pa 490
+ha 486
+e 474
+ma 457
+o 441
+na 434
+ku 411
+j 409
+un 367
+w 358
+in 353
+, 345
+,_ 344
+cha 318
+ar 317
+n_ 315
+as 291
+wa 289
+ta_ 269
+ll 259
+man 255
+_k 248
+._ 243
+. 243
+nt 227
+am 224
+pi 222
+la 222
+ka 217
+ac 214
+ni 214
+at 213
+aq 213
+i_ 208
+ri 207
+qa_ 204
+una 204
+y_ 192
+aj 192
+_p 192
+is 188
+_m 181
+lla 175
+ach 174
+rq 173
+us 172
+an_ 171
+_ka 171
+ata 169
+rqa 165
+sq 163
+hu 162
+sp 161
+_w 157
+nk 157
+hay 157
+_s 156
+sqa 155
+ki 153
+kun 152
+_c 152
+al 150
+nta 149
+ap 147
+ant 146
+yk 146
+ay_ 144
+spa 141
+hi 137
+_ch 136
+_n 136
+ya 135
+' 134
+j_ 133
+uy 132
+ra 132
+a,_ 132
+a, 132
+ti 130
+_a 125
+nc 125
+kuna 122
+s_ 121
+su 121
+ak 121
+_ma 118
+ana 118
+ari 115
+_t 114
+ama 114
+chi 114
+ñ 113
+a._ 111
+a. 111
+nch 111
+iy 111
+all 110
+aw 110
+_r 110
+anta 109
+ayk 109
+na_ 109
+chay 108
+sa 104
+_wa 104
+si 103
+chu 102
+pa_ 101
+acha 101
+_cha 101
+pi_ 101
+qan 100
+_pa 99
+_q 97
+aj_ 97
+awa 97
+ank 95
+nku 95
+im 94
+q_ 92
+uk 92
+C 92
+mu 90
+tu 89
+J 89
+_ni 88
+taj 87
+_J 87
+nin 86
+_chay 86
+u_ 86
+_C 84
+wan 83
+nta_ 81
+_j 81
+mant 80
+ut 79
+in_ 79
+ik 79
+manta 79
+asq 79
+yt 78
+n, 78
+asqa 78
+n,_ 78
+pay 78
+li 77
+yn 77
+nq 76
+yta 76
+ic 76
+up 76
+_Ch 75
+yku 75
+Ch 75
+he 75
+hay_ 74
+nan 74
+ina 74
+ur 73
+er 72
+S 72
+arq 72
+or 72
+_l 71
+_u 71
+aq_ 70
+os 70
+yp 70
+anc 69
+man_ 69
+mi 69
+ich 68
+_i 68
+st 67
+_S 67
+arqa 66
+it 66
+anch 66
+ru 66
+aku 65
+pu 65
+ña 65
+alla 64
+mp 64
+sqa_ 64
+'a 64
+ayku 63
+es 63
+A 63
+ia 63
+_man 63
+_Cha 61
+Cha 61
+taj_ 60
+api 60
+_ll 60
+wi 60
+ayp 60
+aman 59
+g 58
+anku 58
+yki 57
+ima 57
+yni 57
+oj 57
+mana 57
+anta_ 57
+_su 57
+uc 56
+isp 56
+ispa 56
+uch 56
+M 56
+ir 56
+_h 55
+nqa 55
+kuy 55
+ayt 54
+_M 54
+b 54
+_y 53
+_mana 53
+: 53
+uku 53
+:_ 53
+nm 53
+au 52
+ayta 52
+io 52
+qo 51
+an,_ 51
+apa 51
+spa_ 51
+erq 51
+_wi 51
+erqa 51
+_sa 51
+an, 51
+el 50
+um 50
+ana_ 50
+han 50
+il 50
+on 49
+chay_ 49
+sta 49
+_D 49
+D 49
+iku 49
+aqa 49
+che 48
+en 48
+yta_ 48
+Ma 47
+P 47
+_lla 47
+_Je 47
+yq 47
+Je 47
+ita 47
+rqan 47
+ypi 46
+har 46
+Jes 46
+_Jes 46
+ios 46
+ayq 46
+Dio 46
+un_ 46
+kus 46
+_Dio 46
+taq 46
+_Dios 46
+_Ma 46
+_Di 46
+Dios 46
+Di 46
+d 46
+kan 45
+Chay 45
+oq 45
+_Chay 45
+_pay 45
+upa 45
+mun 45
+ata_ 44
+_tu 44
+nis 44
+re 44
+paq 44
+yo 44
+ej 44
+qay 43
+ncha 43
+ha_ 43
+_A 43
+I 43
+_kan 43
+_nis 43
+_P 43
+nman 43
+nma 43
+ataj 42
+ara 42
+ku_ 42
+nata 42
+nat 42
+i, 41
+tin 41
+qh 41
+t' 41
+orq 41
+nki 41
+_ru 41
+_ku 41
+i,_ 41
+ip 40
+ham 40
+usq 40
+_ya 40
+qank 39
+orqa 39
+ayn 39
+mana_ 39
+ray 39
+ym 39
+uma 39
+_pu 39
+par 39
+kay 39
+n. 38
+qa,_ 38
+n._ 38
+sus 38
+aypi 38
+usqa 38
+qanku 38
+ill 38
+qa, 38
+was 38
+pa, 38
+pa,_ 38
+asp 38
+qa._ 37
+_mu 37
+paj 37
+amp 37
+hin 37
+uti 37
+rin 37
+_im 37
+_ima 37
+ja 37
+_ri 37
+rqa_ 37
+taq_ 37
+qa. 37
+sh 36
+spa,_ 36
+cha_ 36
+spa, 36
+achi 36
+una_ 36
+rqank 36
+jt 36
+K 36
+amu 36
+aspa 35
+_Jesu 35
+Jesus 35
+nispa 35
+ki_ 35
+waw 35
+ko 35
+ne 35
+esus 35
+int 35
diff --git a/test/user-template/user/fingerprint/romanian.lm b/test/user-template/user/fingerprint/romanian.lm
new file mode 100644
index 000000000000..65b8e7554d8e
--- /dev/null
+++ b/test/user-template/user/fingerprint/romanian.lm
@@ -0,0 +1,400 @@
+_ 20674
+a 6376
+e 5815
+i 5746
+t 3396
+r 3280
+n 3103
+u 2835
+s 2611
+c 2582
+e_ 2235
+l 2224
+o 2149
+a_ 1974
+d 1629
+m 1528
+p 1410
+i_ 1358
+in 1308
+_c 1167
+_s 1118
+_d 999
+re 905
+ar 898
+, 791
+,_ 786
+_p 785
+de 771
+_a 754
+te 687
+_i 667
+at 654
+ti 645
+ca 639
+n_ 630
+ta 617
+si 614
+_de 609
+f 606
+st 583
+ri 581
+u_ 567
+nt 553
+. 542
+ra 540
+_m 534
+g 528
+v 516
+ul 516
+de_ 513
+_in 503
+b 492
+_de_ 474
+._ 472
+le 459
+l_ 444
+un 443
+_si 440
+es 437
+tr 426
+ea 420
+t_ 412
+ce 412
+ma 407
+cu 402
+er 398
+_ca 397
+si_ 388
+_f 387
+_l 383
+z 382
+la 381
+ne 370
+sa 364
+as 360
+_e 357
+in_ 356
+an 352
+it 351
+te_ 346
+or 345
+el 345
+ci 339
+_si_ 333
+_n 330
+are 324
+pe 319
+re_ 317
+al 310
+_t 309
+se 304
+ic 295
+ie 290
+_u 290
+ul_ 290
+ni 289
+int 285
+_o 280
+en 279
+ta_ 279
+ur 261
+pa 256
+co 255
+_pe 254
+ia 252
+mi 251
+pr 249
+_ma 249
+oa 249
+me 246
+lu 246
+li 241
+im 238
+_in_ 237
+da 237
+na 237
+_sa 235
+ac 234
+- 234
+ii 232
+est 231
+r_ 231
+h 230
+_cu 230
+le_ 229
+ai 229
+ca_ 227
+il 226
+ru 223
+sc 223
+_v 221
+nu 220
+tu 220
+_un 220
+nd 220
+di 219
+are_ 216
+to 215
+am 214
+on 213
+o_ 208
+is 208
+sa_ 203
+la_ 200
+_b 200
+ste 195
+et 194
+ec 191
+_r 186
+car 185
+ui 180
+un_ 179
+lo 178
+cu_ 177
+ei 176
+e, 175
+e,_ 175
+pe_ 171
+m_ 167
+_la 166
+a, 165
+a,_ 164
+_ce 164
+rt 163
+_co 163
+ent 162
+ro 162
+ele 162
+_pe_ 160
+po 160
+ea_ 159
+" 158
+ntr 158
+_cu_ 158
+_pr 157
+ut 157
+nc 156
+ata 155
+care 154
+um 153
+au 151
+va 151
+_o_ 150
+_car 150
+ii_ 145
+ind 145
+_un_ 144
+os 144
+ad 141
+_la_ 140
+I 140
+este 138
+ste_ 138
+care_ 138
+ir 137
+ga 136
+ap 136
+ol 136
+ra_ 136
+_di 134
+D 134
+_care 133
+se_ 133
+om 133
+ara 133
+ati 133
+fi 133
+_sa_ 131
+zi 130
+vi 130
+_ca_ 129
+_se 128
+_nu 128
+ai_ 127
+ch 127
+pi 124
+ve 123
+fa 122
+ot 121
+_a_ 120
+este_ 120
+du 119
+ine 119
+s_ 118
+fo 118
+_ci 118
+ui_ 118
+ba 118
+i, 117
+i,_ 116
+ne_ 115
+us 115
+_g 115
+a. 115
+fe 114
+A 114
+pu 114
+ce_ 113
+ar_ 113
+_pa 113
+oc 112
+sta 112
+lui 112
+ns 112
+em 112
+' 112
+oar 112
+din 111
+iu 111
+_int 111
+ate 111
+mu 111
+hi 110
+ele_ 110
+mp 109
+_D 109
+S 109
+sti 108
+bi 108
+ata_ 107
+ti_ 107
+tra 107
+C 107
+c_ 106
+tre 106
+_al 105
+rea 105
+mai 105
+j 104
+a._ 104
+gi 104
+e. 103
+d_ 103
+_fa 103
+E 102
+mo 102
+at_ 101
+_e_ 101
+nte 101
+lt 101
+sp 101
+za 100
+mai_ 100
+su 99
+na_ 98
+tat 97
+sin 97
+ez 96
+tru 96
+e._ 96
+ie_ 96
+ia_ 96
+_re 96
+tul 96
+_fo 96
+ina 95
+art 95
+_C 95
+no 95
+nu_ 94
+_es 94
+_po 94
+cr 94
+inc 93
+_da 92
+_mai 92
+lui_ 92
+_din 92
+_est 92
+pre 91
+_mai_ 91
+io 91
+chi 91
+ge 90
+pri 90
+eu 90
+uri 90
+az 90
+_nu_ 89
+_me 89
+ct 89
+au_ 88
+esc 88
+ev 88
+ei_ 88
+min 87
+ace 87
+op 86
+ng 86
+ici 86
+_lu 85
+ari 85
+_mi 84
+ita 84
+_S 84
+_tr 84
+ere 83
+or_ 83
+ast 83
+ist 83
+nt_ 83
+_se_ 82
+ou 82
+tin 82
+intr 82
+con 82
+do 81
+_fi 81
+str 81
+am_ 80
+rat 80
+ru_ 80
+ri_ 80
+par 80
+oi 80
+uc 79
+ze 79
+pl 79
+res 78
+_ac 77
+ulu 77
+din_ 76
+va_ 76
+ada 76
+ului 75
+_con 75
+id 75
+inte 74
+ile 73
+cit 73
+_din_ 73
+lor 73
+_" 72
+ig 72
+rin 72
+da_ 72
+_st 72
+-_ 71
+_- 71
+it_ 71
+ani 71
+nd_ 71
+ci_ 70
+ag 70
+eri 70
+i. 70
+tru_ 70
+_ne 70
+rm 70
+P 69
+_este 69
+nta 69
+bu 69
+une 69
+ma_ 69
+nti 69
+imp 68
+_-_ 68
+iv 68
+ind_ 68
diff --git a/test/user-template/user/fingerprint/romansh.lm b/test/user-template/user/fingerprint/romansh.lm
new file mode 100644
index 000000000000..e65969ca34fa
--- /dev/null
+++ b/test/user-template/user/fingerprint/romansh.lm
@@ -0,0 +1,400 @@
+_ 10888
+a 3490
+e 2268
+i 2196
+s 2169
+n 1961
+t 1555
+r 1510
+l 1281
+u 1249
+a_ 1155
+c 1060
+d 954
+o 815
+s_ 744
+g 726
+m 686
+h 620
+p 617
+n_ 559
+v 493
+_s 480
+er 476
+ch 469
+_d 457
+in 455
+da 418
+_c 404
+r_ 388
+_e 377
+. 358
+_p 340
+as 333
+l_ 328
+, 327
+._ 320
+_i 320
+,_ 315
+la 313
+en 312
+sc 310
+an 301
+ta 300
+_da 285
+f 282
+_t 268
+_a 262
+nt 259
+_m 252
+un 248
+ra 247
+i_ 247
+na 245
+ma 245
+ia 241
+ar 234
+sch 228
+b 228
+da_ 217
+es 214
+ai 213
+st 212
+' 209
+e_ 208
+as_ 208
+er_ 200
+t_ 199
+re 199
+_l 195
+al 193
+_n 193
+el 192
+tg 192
+te 188
+z 187
+ha 180
+_f 180
+sa 174
+_da_ 172
+ve 169
+ei 168
+_v 165
+at 165
+ss 161
+is 161
+_ch 161
+on 160
+la_ 158
+cu 158
+ad 158
+he 156
+in_ 147
+va 147
+_in 146
+gl 145
+ns 141
+ur 140
+ü 140
+u_ 138
+ts 138
+pe 136
+li 134
+gi 133
+et 133
+de 132
+ig 132
+or 130
+ti 129
+il 127
+d_ 126
+che 123
+ut 122
+us 122
+cha 121
+di 120
+ia_ 120
+_b 118
+_la 117
+na_ 116
+ain 115
+per 115
+to 115
+_cu 113
+_sc 112
+se 111
+ls 109
+- 108
+iu 108
+ca 107
+si 104
+ir 102
+rt 102
+ie 102
+_g 102
+un_ 102
+nd 101
+av 101
+ni 100
+q 99
+au 97
+ls_ 97
+ll 96
+qu 96
+_pe 96
+le 96
+rs 95
+pa 95
+ri 95
+_ma 94
+_per 93
+am 93
+eg 92
+_r 92
+gn 92
+me 92
+pi 91
+an_ 91
+en_ 91
+ga 91
+ent 90
+hi 90
+_e_ 90
+it 89
+ta_ 88
+ter 87
+ns_ 86
+iv 86
+igl 86
+a. 85
+em 85
+I 85
+chi 84
+_en 84
+int 84
+ue 83
+su 82
+tt 82
+a, 82
+a,_ 82
+o_ 82
+_ve 82
+a._ 82
+_q 81
+_qu 80
+ge 80
+" 80
+_la_ 80
+ar_ 80
+vi 79
+gl_ 79
+tu 78
+ng 78
+ro 76
+mi 76
+sta 75
+ed 75
+lla 74
+ei_ 73
+_o 73
+ic 73
+el_ 73
+_il 73
+_in_ 72
+g_ 72
+pr 71
+nu 70
+ina 70
+_h 69
+scha 68
+mai 68
+pl 68
+il_ 68
+os 68
+ha_ 68
+be 67
+uo 67
+cun 67
+ra_ 67
+_pa 65
+ts_ 64
+s. 64
+co 64
+_u 64
+fi 64
+_I 63
+sa_ 63
+s._ 63
+_re 62
+ün 62
+_nu 62
+? 62
+S 62
+_se 61
+no 61
+nt_ 61
+E 61
+tr 61
+mp 60
+igl_ 60
+_su 60
+_st 60
+ess 60
+im 60
+zi 59
+?_ 59
+nc 59
+_E 58
+_- 58
+_cun 58
+_te 58
+_sa 58
+ant 58
+main 58
+eu 57
+ssa 57
+-_ 57
+iun 57
+_-_ 57
+aint 56
+op 56
+al_ 56
+dal 56
+j 56
+ama 55
+_tg 55
+ua 55
+M 55
+per_ 55
+tsc 54
+nta 54
+tsch 54
+um 54
+fa 54
+za 54
+_di 54
+pia 54
+_per_ 54
+T 54
+_M 53
+ne 53
+era 53
+A 53
+que 53
+_dal 53
+cr 53
+_de 53
+lla_ 53
+_che 52
+h' 52
+_me 51
+ot 51
+_pr 51
+_pl 51
+_sch 51
+ch' 50
+_S 50
+opi 50
+ou 50
+tta 50
+mo 50
+ada 50
+ba 50
+_an 49
+top 49
+id 49
+è 49
+he_ 49
+C 49
+va_ 49
+uto 49
+ins 48
+topi 48
+L 48
+ir_ 48
+ist 48
+c_ 48
+_il_ 48
+P 48
+ss_ 48
+ag 47
+_no 47
+res 47
+las 47
+_vi 46
+s, 46
+schi 46
+_en_ 46
+tg_ 46
+s,_ 46
+_si 46
+_que 45
+_T 45
+az 45
+'i 45
+cun_ 44
+_fa 44
+_mi 44
+utop 44
+utopi 44
+sche 44
+_C 44
+ur_ 44
+tge 44
+po 44
+es_ 44
+x 44
+nz 44
+_L 44
+_cun_ 44
+man 44
+_ch' 43
+_fi 43
+pu 43
+ell 43
+opia 43
+_igl 43
+_ig 43
+sp 43
+topia 43
+ava 42
+egn 42
+che_ 42
+on_ 42
+ci 42
+_P 42
+ev 42
+ond 41
+_" 41
+à 41
+us_ 41
+_ha 41
+D 40
+_co 40
+etg 40
+'e 40
+las_ 40
+est 40
+ura 40
+uel 39
+ed_ 39
+vo 39
+gia 39
+bu 39
+mu 39
+nn 39
+gli 39
+_A 39
+lu 39
+cha_ 39
+ul 38
+mal 38
+_ün 38
+ina_ 38
+_bu 38
+_ca 38
+_ü 38
+uc 38
+nts 38
+tra 38
+_tu 37
diff --git a/test/user-template/user/fingerprint/russian.lm b/test/user-template/user/fingerprint/russian.lm
new file mode 100644
index 000000000000..bddb68514275
--- /dev/null
+++ b/test/user-template/user/fingerprint/russian.lm
@@ -0,0 +1,400 @@
+_ 76249
+о 19732
+е 16714
+а 14389
+и 13942
+Ñ‚ 13160
+н 12444
+Ñ 9867
+Ñ€ 8461
+в 7895
+л 7330
+к 6498
+м 5935
+. 5725
+у 5287
+д 5019
+п 4877
+Ñ 4083
+, 3899
+,_ 3878
+Ñ‹ 3656
+ь 3376
+и_ 3167
+_п 3144
+е_ 3135
+о_ 3098
+- 3019
+з 2983
+_в 2952
+._ 2930
+_Ñ 2919
+ч 2887
+г 2876
+б 2797
+ÑÑ‚ 2672
+_н 2631
+то 2585
+.. 2407
+_и 2316
+но 2300
+-_ 2294
+й 2281
+а_ 2249
+на 2057
+Ñ_ 2029
+ов 1981
+ни 1950
+_Ñ‚ 1944
+Ñ… 1874
+ен 1856
+_о 1774
+... 1744
+ра 1709
+не 1685
+по 1636
+_- 1625
+ко 1616
+те 1595
+ро 1584
+_к 1558
+_-_ 1531
+й_ 1521
+ет 1518
+ж 1509
+_и_ 1454
+та 1433
+ан 1419
+ер 1396
+от 1389
+ь_ 1381
+го 1375
+ал 1370
+_по 1364
+ре 1345
+ка 1338
+пр 1337
+ва 1329
+ти 1306
+ли 1300
+_д 1297
+_м 1290
+ÐµÑ 1284
+во 1271
+че 1256
+ор 1245
+.... 1232
+ть 1219
+Ð¾Ñ 1212
+ш 1192
+ÑŽ 1187
+в_ 1168
+..... 1167
+он 1147
+ак 1144
+ц 1109
+ог 1101
+ло 1099
+Ñ‚_ 1093
+ри 1076
+м_ 1074
+_пр 1063
+ол 1062
+ль 1045
+_не 1034
+ел 1029
+_б 1026
+ин 1000
+од 998
+ом 996
+ме 993
+Ñ‹_ 975
+ве 968
+Ñк 968
+_на 966
+де 946
+ны 943
+_Ñ€ 931
+_ч 923
+ат 913
+ем 910
+у_ 907
+за 898
+Ñ…_ 898
+ле 889
+то_ 881
+ит 878
+ой 875
+Ñе 862
+_в_ 833
+_з 816
+ки 816
+Ñ‚Ñ€ 807
+" 786
+ть_ 769
+ед 767
+не_ 762
+ÑÑ 754
+ла 748
+об 747
+мо 741
+да 730
+го_ 715
+к_ 713
+Ð¸Ñ 711
+_у 702
+ой_ 697
+ил 694
+ма 692
+нн 687
+до 662
+Ð°Ñ 660
+ам 656
+Ð¸Ñ 649
+же 646
+аз 638
+Ñо 629
+на_ 619
+_г 615
+ми 612
+_а 610
+Ñ 609
+Ð²Ñ 608
+.._ 605
+вы 604
+ого 604
+им 604
+_ко 600
+ав 597
+Ñл 594
+ие 593
+_не_ 589
+_е 587
+_те 583
+ту 583
+ич 583
+ру 575
+оÑÑ‚ 571
+щ 571
+л_ 570
+_Ñ 569
+_Ñ 559
+Ð 556
+ени 544
+из 540
+ек 536
+ова 533
+Ñ„ 525
+: 519
+Ð’ 513
+ани 511
+_Ð²Ñ 510
+ий 510
+Ð 508
+_ка 508
+! 503
+? 501
+ди 498
+ли_ 489
+П 488
+про 486
+_ра 485
+Ñи 484
+ир 484
+_ÑÑ‚ 484
+ьн 484
+льн 484
+:_ 484
+ÑÑ_ 480
+_за 477
+бо 470
+_л 469
+..._ 465
+бы 464
+их 464
+И 462
+ег 461
+тв 459
+Ð½Ð¸Ñ 458
+ÑÑ‚ 454
+чт 454
+ÑÑ‚ 445
+Ñ‡ÐµÑ 442
+_то 442
+иÑ_ 441
+ик 440
+ви 437
+ак_ 436
+Ñта 436
+ого_ 435
+_Ð’ 434
+иче 433
+ци 431
+что 431
+Ñ‹Ñ… 429
+_ÑÑ‚ 429
+С 425
+_чт 424
+_Ð 424
+ÑŽ_ 423
+пе 422
+Ð½Ñ 422
+_что 422
+Ð»Ñ 419
+вÑе 418
+ду 418
+еÑк 415
+нт 413
+как 411
+Ñто 411
+_вы 409
+ну 408
+Ñ‚Ñ 406
+н_ 406
+_П 401
+М 401
+но_ 399
+_про 398
+_. 397
+ров 396
+це 396
+кт 394
+еÑÑ‚ 394
+_" 393
+ше 393
+Ñ_ 392
+_от 392
+О 391
+_на_ 391
+ред 391
+чеÑк 390
+о- 390
+ван 388
+а, 385
+ад 384
+Ð°Ñ 384
+_Ñ_ 383
+а,_ 383
+Ñ‚Ñ‹ 383
+?_ 383
+_об 380
+_вÑе 380
+_та 378
+_как 376
+хо 375
+так 375
+аль 374
+ож 373
+Ñ‹Ñ…_ 372
+ово 372
+ив 371
+_во 369
+му 369
+_Ð 369
+ей 368
+пре 368
+зн 366
+Ð¸Ñ‡ÐµÑ 365
+пи 365
+его 362
+_Ñо 360
+ое 360
+!_ 360
+ать 360
+Ñти 358
+их_ 358
+тн 358
+мен 358
+Ñ‚ÑÑ 356
+ие_ 356
+ичеÑк 354
+бе 352
+_бы 352
+ÑÑ‚Ñ€ 349
+ку 349
+_мо 348
+ет_ 348
+Т 346
+_ме 344
+ев 344
+при 343
+чи 342
+мн 341
+ниÑ_ 339
+ар 338
+нно 337
+ован 334
+ÐºÑ 334
+ур 328
+_че 328
+оль 328
+ут 327
+что_ 324
+ом_ 323
+оп 323
+рм 322
+Ð_ 322
+_что_ 322
+Ñто 322
+оч 321
+о,_ 320
+о, 320
+Ñко 319
+кон 319
+лов 318
+ый 318
+ÑƒÑ 317
+от_ 316
+иро 315
+Ñтв 314
+и, 314
+ий_ 313
+ÑÑ 313
+и,_ 313
+том 312
+ае 312
+енн 311
+ез 311
+ной 311
+_Ñто 310
+К 309
+Ñа 309
+раз 309
+еп 309
+_до 308
+оло 308
+ÑÑ‚ÑŒ 308
+уд 307
+дел 307
+_И 305
+аб 305
+ÑÑŒ 303
+альн 302
+ок 300
+Ñки 300
+ных 300
+_при 298
+ча 297
+_ж 297
+е, 297
+е,_ 297
+_Ð_ 296
+_ни 296
+_._ 295
+Ñ‚ÑÑ_ 295
+ии 294
+зна 293
+Ñ, 292
+Ñ,_ 292
+_пре 291
+_С 290
+ной_ 290
+аÑ_ 288
+_О 288
+али 286
+же_ 285
+Ñп 285
+иÑÑ‚ 285
+ных_ 285
+з_ 283
+_М 283
diff --git a/test/user-template/user/fingerprint/sanskrit.lm b/test/user-template/user/fingerprint/sanskrit.lm
new file mode 100644
index 000000000000..e21b8712111d
--- /dev/null
+++ b/test/user-template/user/fingerprint/sanskrit.lm
@@ -0,0 +1,400 @@
+a 15017
+_ 14975
+h 5028
+i 3820
+t 2976
+s 2788
+r 2599
+| 2437
+n 2432
+aa 2276
+ha 2007
+m 1982
+a_ 1802
+v 1799
+d 1768
+u 1629
+y 1599
+_| 1470
+|_ 1470
+e 1403
+k 1371
+sh 1330
+ra 1243
+p 1213
+va 1152
+A 1134
+ya 1120
+ma 1097
+na 1091
+ar 1080
+ta 1054
+M 1050
+. 1047
+am 1037
+an 1006
+|| 967
+||_ 965
+_|| 965
+_||_ 963
+at 962
+M_ 946
+as 910
+_s 882
+o 848
+b 844
+i_ 827
+aM 764
+aM_ 685
+c 630
+ch 629
+sa 623
+N 616
+ad 612
+H 601
+pa 595
+H_ 584
+g 580
+_n 579
+l 554
+bh 552
+hi 547
+ka 542
+it 536
+ii 535
+ama 519
+_|_ 505
+e_ 477
+_p 475
+dh 475
+av 469
+ak 445
+aH 444
+da 440
+aH_ 439
+ay 437
+j 437
+_na 432
+ana 430
+hh 428
+ti 426
+ara 425
+aa_ 410
+_k 394
+shh 389
+_v 388
+_sa 381
+.h 379
+ah 369
+_b 368
+h_ 363
+.h_ 363
+cha 362
+haa 361
+_t 358
+ri 352
+sha 345
+ap 333
+vi 330
+is 329
+^ 321
+o_ 321
+_m 320
+ai 311
+_d 311
+la 302
+na_ 301
+.n 298
+ava 295
+al 294
+_sh 291
+ja 288
+a. 280
+aan 277
+ish 274
+aN 273
+aya 273
+ash 266
+ha_ 265
+ga 264
+st 255
+ni 255
+ii_ 254
+hu 253
+Na 253
+R 248
+R^ 248
+^i 247
+R^i 247
+a.n 243
+th 241
+_c 240
+_ch 239
+maa 238
+bha 237
+vaa 233
+ab 228
+ir 226
+\ 226
+ita 223
+uu 222
+dha 220
+har 218
+_a 216
+_bh 216
+nam 212
+u_ 212
+he 212
+m.h_ 211
+m. 211
+m.h 211
+ur 210
+es 209
+ata 208
+te 206
+yaa 205
+_ma 204
+esh 202
+aka 200
+id 199
+pr 199
+aha 198
+hy 198
+T 197
+aat 197
+_OM_ 196
+OM 196
+_O 196
+_OM 196
+OM_ 196
+O 196
+ti_ 195
+ari 194
+raa 193
+ag 192
+_y 192
+aas 190
+_ta 190
+_j 189
+I 189
+_na_ 187
+am.h_ 185
+am.h 185
+am. 185
+_pa 183
+iv 182
+de 182
+ada 178
+nd 178
+_cha 177
+_h 176
+ati 175
+taa 173
+ev 172
+nt 171
+rii 171
+ishh 170
+ya_ 168
+_vi 166
+ast 165
+tr 164
+abh 164
+kh 162
+ala 160
+tha 160
+apa 160
+asa 158
+naa 158
+_nam 156
+ru 156
+A_ 155
+_ka 154
+aar 153
+_pr 152
+_g 151
+pra 150
+ham 150
+hha 149
+aana 149
+di 149
+ra_ 147
+ik 146
+.a 144
+yat 143
+ks 143
+hA 143
+hya 143
+ksh 143
+ut 142
+sy 141
+nama 140
+_va 140
+.\ 140
+paa 140
+han 139
+eva 138
+U 138
+mi 138
+_r 136
+_ja 136
+asy 135
+hr 135
+sya 134
+cha_ 132
+rv 132
+tv 130
+asya 130
+kar 130
+ho 129
+yo 129
+in 128
+adh 127
+yA 127
+va_ 126
+su 125
+_ya 125
+shha 124
+pu 124
+R^it 123
+sta 123
+mu 123
+^it 123
+ty 123
+_nama 121
+ac 120
+rii_ 120
+ach 120
+aNa 119
+tas 119
+shi 119
+iva 119
+hav 119
+tra 118
+var 118
+par 118
+haM 117
+aad 117
+kaa 117
+hch 117
+mas 117
+ai_ 117
+hc 117
+sar 116
+aam 116
+_bha 115
+_pra 114
+et 114
+haM_ 113
+aay 113
+aj 113
+ye 113
+o. 113
+An 111
+arii 111
+t.h 110
+t. 110
+ath 110
+t.h_ 109
+man 109
+te_ 108
+o.a 108
+hara 108
+rA 108
+rva 108
+tva 108
+asta 108
+up 108
+shr 107
+daa 104
+me 104
+dr 104
+ram 104
+arii_ 102
+_ni 102
+arv 102
+iH 102
+hit 101
+ras 101
+aga 101
+Am 101
+mA 101
+ba 101
+amas 100
+tu 100
+yaM 100
+ant 99
+ud 99
+uk 98
+iH_ 98
+yaM_ 98
+kha 98
+au 98
+ira 97
+shhT 97
+rah 97
+hT 97
+hhT 97
+D 96
+_sar 96
+re 96
+eshh 95
+sarv 94
+amaa 94
+and 94
+arva 94
+_ra 93
+_dh 93
+tt 92
+tad 92
+hm 92
+raM_ 91
+dev 91
+raM 91
+C 91
+ani 91
+_sarv 90
+atha 89
+Ad 89
+chi 89
+tA 88
+sarva 88
+avi 88
+taM 87
+hava 87
+anaa 86
+vA 86
+dd 86
+nA 85
+Ar 85
+hv 85
+taM_ 85
+dhi 84
+ksha 84
+ip 84
+ma_ 84
+_sha 84
+ati_ 83
+yai 83
+vat 83
+At 83
+kR 82
+kR^ 82
+bhi 82
+_shr 82
+to 82
+ta_ 82
+br 82
+ek 82
+kR^i 82
+tat 81
+nta 81
+hma 81
+aaya 80
+tam 80
+en 80
+us 79
+bra 79
+ke 79
+kt 79
+ddh 79
+mo 79
diff --git a/test/user-template/user/fingerprint/scots.lm b/test/user-template/user/fingerprint/scots.lm
new file mode 100644
index 000000000000..7aac457075f6
--- /dev/null
+++ b/test/user-template/user/fingerprint/scots.lm
@@ -0,0 +1,400 @@
+_ 11688
+e 3223
+a 2469
+t 2269
+i 1928
+n 1903
+r 1414
+o 1406
+h 1369
+s 1249
+l 929
+n_ 890
+_t 862
+_a 843
+d 818
+e_ 798
+th 704
+w 661
+he 625
+an 612
+t_ 606
+u 592
+_th 575
+c 508
+s_ 471
+the 470
+, 469
+- 458
+in 455
+m 445
+,_ 440
+b 434
+g 429
+er 409
+ee 408
+_the 407
+k 402
+an_ 402
+f 385
+_w 378
+he_ 376
+the_ 364
+_an 362
+_o 360
+y 358
+_the_ 354
+_s 353
+_an_ 342
+a_ 335
+r_ 327
+_b 316
+d_ 303
+i_ 278
+en 277
+p 270
+ei 245
+A 236
+wa 232
+_A 231
+re 229
+in_ 229
+ui 218
+oo 217
+le 217
+ai 216
+et 212
+ti 209
+it 209
+_f 206
+te 204
+_a_ 203
+_m 202
+ha 200
+as 193
+on 188
+at 184
+_i 183
+_wa 183
+_c 182
+o_ 180
+or 178
+_h 176
+_g 169
+ch 165
+A_ 159
+_l 158
+_A_ 157
+st 156
+_d 155
+_ti 148
+. 148
+._ 146
+ke 144
+ti_ 143
+-- 143
+_o_ 142
+ow 142
+--- 140
+ed 138
+---- 138
+_r 137
+as_ 137
+y_ 136
+er_ 136
+----- 136
+ir 135
+aa 135
+la 131
+een 130
+ae 129
+_ti_ 128
+ra 126
+es 125
+nd 124
+de 120
+h_ 120
+ie 120
+ar 119
+ll 119
+nt 118
+ot 118
+en_ 115
+ma 115
+eet 113
+her 112
+el 112
+is 112
+' 112
+at_ 111
+ic 109
+se 108
+or_ 106
+wu 104
+me 104
+ne 103
+fo 102
+on_ 101
+was 99
+_was 98
+et_ 98
+ri 98
+_e 97
+_ma 97
+v 97
+_n 97
+! 97
+li 97
+ht 93
+hi 92
+_wu 92
+ng 91
+ro 91
+it_ 90
+ck 90
+_fo 90
+tha 90
+k_ 89
+il 89
+cht 86
+eet_ 86
+_p 86
+we 86
+_was_ 85
+was_ 85
+rt 84
+ed_ 83
+ter 83
+id 83
+ga 82
+; 82
+;_ 81
+ther 79
+tt 76
+air 76
+e, 75
+un 75
+ho 75
+for 74
+ge 74
+_st 73
+_y 72
+_he 72
+wh 71
+_on 71
+sh 70
+z 70
+e,_ 69
+bi 68
+_tha 68
+wui 67
+!_ 67
+ad 67
+een_ 66
+l_ 66
+ts 66
+_for 66
+n, 66
+_wh 65
+re_ 65
+be 65
+eh 64
+hat 64
+ns 64
+br 64
+g_ 64
+ui_ 64
+rr 64
+wui_ 63
+ni 63
+_wui 62
+ay 62
+s, 62
+pe 61
+n,_ 61
+bo 61
+al 61
+ye 61
+_bi 60
+oot 60
+na 60
+ang 60
+s,_ 59
+es_ 59
+ill 58
+that 58
+_wui_ 58
+nn 58
+eh_ 58
+oa 57
+han 57
+_that 56
+_br 56
+ca 56
+_ga 56
+ng_ 56
+um 55
+hat_ 55
+oon 55
+od 55
+for_ 55
+no 55
+ree 55
+_for_ 54
+_le 54
+ht_ 54
+ot_ 54
+_k 53
+rd 53
+ki 53
+aw 53
+nd_ 53
+_on_ 53
+_it 53
+ik 53
+t, 53
+_be 52
+that_ 52
+ve 52
+rn 52
+'s 51
+au 51
+co 51
+ich 51
+to 51
+lo 51
+t,_ 51
+ea 51
+tee 51
+lan 50
+fi 50
+_at 50
+am 50
+_in 50
+ere 50
+ur 50
+le_ 50
+nt_ 49
+'s_ 49
+hin 49
+yi 49
+hr 49
+ts_ 49
+_ca 48
+" 48
+ta 48
+cht_ 48
+-_ 48
+_as 47
+T 47
+ang_ 47
+lei 46
+_ma_ 46
+tr 46
+_ro 46
+fe 46
+ma_ 46
+icht 46
+_as_ 46
+der 46
+cl 46
+e- 45
+n- 45
+thr 45
+ba 45
+m_ 45
+st_ 45
+rt_ 45
+_u 45
+do 45
+_T 45
+im 44
+_se 44
+sk 44
+_la 44
+eik 44
+bit 43
+ike 43
+B 43
+kee 43
+tte 43
+di 43
+eed 43
+_B 42
+_aa 42
+her_ 42
+da 42
+ff 42
+tu 42
+ie_ 42
+_cl 42
+_ba 42
+oot_ 42
+bu 41
+eike 41
+oc 41
+hu 41
+_thr 41
+ther_ 41
+_co 41
+aa_ 41
+so 41
+_me 41
+H 41
+_H 40
+ke_ 40
+ert 40
+lu 40
+ist 40
+si 40
+iz 40
+ar_ 39
+uc 39
+thi 39
+ad_ 39
+ru 39
+owe 39
+gi 38
+_bit 38
+_do 38
+int 38
+bl 38
+ld 38
+_at_ 38
+lt 38
+ac 38
+_ha 38
+ae_ 38
+rs 37
+here 37
+ei_ 37
+han_ 37
+p_ 37
+is_ 37
+eth 37
+fa 37
+_sk 37
+ll_ 37
+ss 36
+bra 36
+wha 36
+gl 36
+ck_ 36
+pl 36
+lin 36
+ir_ 36
+ab 36
+_ther 36
+_da 35
+ce 35
+rin 35
+_oo 35
+rl 35
+wee 35
+and 35
+sa 35
+_yi 35
+_bra 35
+'d 35
+ds 35
+_bo 35
diff --git a/test/user-template/user/fingerprint/scots_gaelic.lm b/test/user-template/user/fingerprint/scots_gaelic.lm
new file mode 100644
index 000000000000..491862a8c9d2
--- /dev/null
+++ b/test/user-template/user/fingerprint/scots_gaelic.lm
@@ -0,0 +1,400 @@
+_ 12634
+a 5353
+h 3268
+i 2898
+n 2792
+e 1651
+r 1563
+d 1455
+_a 1425
+c 1245
+n_ 1236
+s 1165
+l 1152
+an 1121
+t 980
+ai 979
+g 962
+u 905
+ch 902
+ha 836
+h_ 833
+a_ 829
+ea 821
+o 794
+dh 726
+an_ 711
+b 639
+m 585
+na 514
+nn 506
+ac 498
+r_ 495
+s_ 482
+ir 480
+ach 466
+id 458
+_an 450
+_c 427
+th 403
+à 388
+he 383
+in 379
+bh 367
+idh 358
+ad 342
+_n 341
+il 332
+nn_ 323
+_t 322
+_d 319
+ar 317
+e_ 311
+dh_ 307
+_an_ 303
+_b 302
+_na 294
+air 289
+ig 279
+. 275
+ir_ 272
+ag 272
+_ai 272
+, 270
+gu 269
+,_ 269
+._ 265
+ean 264
+ch_ 261
+f 259
+? 258
+_s 255
+ann 250
+ra 241
+ei 241
+_a_ 241
+ha_ 241
+d_ 238
+- 235
+_m 231
+gh 230
+hea 228
+le 226
+_f 224
+ui 223
+is 223
+as 218
+adh 218
+l_ 216
+g_ 208
+ài 207
+ò 207
+hai 205
+cha 205
+air_ 204
+na_ 201
+inn 198
+tha 190
+C 189
+G 188
+ann_ 187
+_ag 186
+_air 186
+eac 185
+_g 185
+_na_ 184
+ach_ 184
+_C 183
+us 183
+_ch 183
+la 182
+_G 182
+each 181
+us_ 178
+al 178
+gus 176
+gus_ 176
+_th 169
+_air_ 168
+_agus 167
+agus_ 167
+_agu 167
+agus 167
+agu 167
+ta 164
+aid 163
+hi 163
+hd 163
+chd 160
+T 157
+A 156
+ic 152
+_T 152
+adh_ 150
+idh_ 148
+mh 147
+?_ 146
+ar_ 145
+oi 144
+da 143
+aidh 143
+_bh 139
+ean_ 138
+sa 138
+ig_ 138
+_r 136
+_A 134
+ì 134
+te 134
+achd 131
+hu 131
+_e 130
+aig 130
+_l 130
+_ann 129
+ain 127
+ne 127
+dhe 125
+_dh 125
+àid 123
+o_ 121
+hl 119
+acha 119
+ga 118
+àidh 118
+on 118
+it 117
+aidh_ 116
+de 115
+nan 115
+ua 115
+_ann_ 115
+ich 115
+il_ 114
+m_ 114
+eil 114
+ri 112
+at 112
+ma 111
+li 109
+ao 109
+re 109
+inn_ 108
+_tha 107
+fh 106
+as_ 106
+bh_ 106
+nan_ 103
+lea 103
+lt 103
+S 103
+a? 103
+a?_ 102
+io 102
+E 101
+am 101
+' 100
+_a? 100
+igh 100
+_a?_ 99
+_gu 99
+idhe 99
+t_ 99
+se 99
+si 98
+ba 97
+ù 97
+tha_ 96
+bha 95
+B 94
+is_ 94
+u_ 94
+_B 94
+_i 93
+ile 92
+aic 91
+hei 91
+ia 90
+ho 89
+Th 88
+ath 88
+_Th 88
+rt 87
+ib 87
+Gàid 86
+_Gài 86
+_Gà 86
+Gài 86
+òr 86
+Gà 86
+Gàidh 86
+_Gàid 86
+had 85
+ibh 85
+_fh 85
+p 84
+ad_ 83
+_? 83
+_E 83
+hd_ 82
+dhea 82
+chd_ 82
+ear 81
+ith 81
+_tha_ 80
+h- 79
+eal 78
+hean 78
+sg 77
+rea 77
+_S 76
+ais 75
+ll 75
+han 74
+hà 74
+achd_ 74
+ead 74
+idhea 73
+am_ 72
+dha 72
+_nan 71
+_nan_ 71
+hadh 71
+gh_ 71
+ail 70
+hui 70
+Ch 69
+eachd 69
+h. 69
+aich 69
+hli 69
+chai 69
+om 68
+fa 68
+chad 68
+I 67
+h._ 67
+_Ch 67
+tea 67
+nea 66
+chadh 66
+achad 66
+rai 66
+lig 66
+haid 66
+dea 66
+rt_ 65
+àr 65
+dhl 65
+ana 64
+eann 64
+Ei 64
+le_ 64
+hn 64
+ilt 64
+uid 64
+_fa 63
+_Tha 63
+Tha 63
+ob 63
+_si 62
+ro 62
+cu 62
+ainn 62
+un 62
+dhli 61
+idhli 61
+lean 61
+idhl 61
+àidhl 61
+hlig 61
+dhlig 61
+in_ 60
+_à 60
+st 60
+rr 60
+_cu 60
+hr 60
+_aig 60
+bhe 59
+i_ 59
+aigh 59
+Tha_ 59
+è 59
+_ri 59
+_Tha_ 59
+lb 58
+che 58
+ran 58
+nac 58
+haidh 58
+hadh_ 58
+aig_ 58
+Gh 58
+ilea 58
+_Gh 58
+lte 58
+_le 58
+ru 58
+àidhe 57
+_I 57
+ilte 57
+eadh 57
+M 56
+hlig_ 56
+L 56
+chu 56
+nach 56
+_ma 56
+lig_ 56
+h,_ 55
+th_ 55
+ibh_ 55
+_aig_ 55
+D 55
+atha 55
+_Ei 55
+h, 55
+gu_ 54
+_gu_ 54
+im 54
+eil_ 54
+eu 53
+_M 53
+Al 53
+irt 53
+_L 53
+iad 53
+sea 52
+lba 52
+Alba 52
+F 52
+Alb 52
+uai 52
+ich_ 52
+_F 51
+ilean 51
+has 51
+tai 51
+each_ 50
+eacha 50
+har 50
+ni 50
+_de 50
+irt_ 50
+n,_ 50
+mha 50
+n, 50
+_e_ 50
+ide 49
+neach 49
+neac 49
+ur 49
+rd 49
+_h 49
+hean_ 49
+oc 49
+eò 49
+te_ 49
+han_ 49
+on_ 49
diff --git a/test/user-template/user/fingerprint/serbian-latin.lm b/test/user-template/user/fingerprint/serbian-latin.lm
new file mode 100644
index 000000000000..0a028311a030
--- /dev/null
+++ b/test/user-template/user/fingerprint/serbian-latin.lm
@@ -0,0 +1,400 @@
+_ 56298
+a 17374
+i 15500
+e 13745
+o 13087
+n 9704
+r 8535
+s 7383
+t 6692
+j 6664
+u 6390
+k 6060
+a_ 5221
+v 5177
+l 5082
+d 4923
+e_ 4729
+m 4663
+p 4121
+i_ 3992
+_s 2964
+je 2847
+g 2703
+z 2575
+u_ 2521
+_p 2491
+ra 2430
+_i 2355
+na 2337
+. 2169
+, 2142
+,_ 2134
+._ 2112
+st 2091
+o_ 2004
+ni 1971
+b 1933
+ko 1894
+je_ 1700
+an 1671
+ij 1628
+no 1559
+Ä 1550
+_n 1522
+_u 1516
+re 1465
+ti 1409
+_o 1368
+en 1365
+_k 1353
+_j 1346
+_d 1341
+ja 1325
+li 1314
+ta 1309
+pr 1303
+c 1287
+ka 1269
+_je 1233
+po 1224
+ne 1221
+_i_ 1220
+ri 1198
+va 1197
+ov 1151
+od 1146
+la 1139
+sk 1132
+m_ 1124
+_pr 1120
+os 1086
+in 1060
+Å¡ 1053
+ve 1048
+oj 1035
+ma 1029
+om 1027
+og 1024
+im 1006
+av 1002
+al 982
+me 976
+vi 971
+_po 966
+_na 963
+na_ 944
+da 928
+ro 905
+nj 900
+ik 891
+_je_ 889
+to 884
+ad 881
+ar 873
+h 862
+or 858
+se 840
+_m 836
+te 819
+is 816
+_u_ 810
+aj 809
+ed 800
+_t 791
+et 772
+at 740
+vo 735
+ju 731
+gr 723
+di 722
+lo 722
+za 709
+il 709
+ak 707
+_r 704
+ja_ 703
+ji 700
+ne_ 694
+_ko 691
+ki 689
+er 681
+ci 680
+ć 673
+_se 670
+_v 664
+ž 663
+el 662
+on 658
+_z 656
+S 638
+iz 635
+bi 622
+ek 616
+_S 612
+su 607
+gra 606
+sa 603
+a, 601
+a,_ 598
+_b 598
+ih 597
+om_ 591
+_g 588
+ost 587
+ije 586
+d_ 579
+tr 574
+se_ 567
+ija 561
+de 559
+em 552
+_se_ 552
+le 549
+a. 548
+lj 548
+a._ 542
+do 540
+_su 533
+zi 529
+iÄ 525
+sta 520
+h_ 520
+ke 517
+ih_ 511
+f 507
+go 505
+ol 504
+dn 498
+sti 496
+ka_ 493
+_. 489
+_._ 473
+rad 472
+_a 468
+g_ 463
+ic 461
+as 461
+_za 461
+it 456
+koj 454
+ob 448
+iv 442
+da_ 442
+az 441
+su_ 436
+ku 433
+ma_ 430
+mo 429
+ju_ 429
+_sa 427
+ke_ 421
+ni_ 421
+ist 421
+og_ 418
+_od 417
+am 416
+anj 412
+Ä‘ 407
+_su_ 407
+ru 400
+nje 398
+sl 397
+ok 392
+op 391
+_koj 391
+_na_ 389
+tn 388
+ji_ 384
+e, 383
+_do 381
+e,_ 380
+ima 379
+aÄ 378
+nos 378
+vn 377
+B 377
+_ka 373
+ti_ 372
+li_ 370
+eo 370
+pre 367
+_iz 364
+P 361
+sko 361
+io 360
+n_ 360
+" 356
+vr 354
+_st 354
+mi 352
+Äk 351
+ao 350
+im_ 347
+es 346
+_B 346
+ev 344
+ski 343
+ez 343
+j_ 341
+ije_ 341
+ig 339
+_ra 338
+ko_ 336
+tv 336
+grad 335
+no_ 335
+la_ 334
+_P 333
+_da 333
+Å¡t 332
+od_ 330
+- 326
+dr 323
+va_ 322
+tu 320
+_l 316
+pro 315
+ori 315
+N 314
+ika 311
+ija_ 311
+sto 309
+e. 307
+ir 303
+e._ 302
+_pro 301
+_pre 300
+ki_ 300
+ot 299
+_N 297
+sv 294
+pe 291
+ns 291
+sn 291
+met 290
+t_ 289
+pri 289
+ba 288
+ili 288
+pa 288
+ut 287
+ao_ 286
+oji 285
+_ne 285
+Äe 284
+ova 283
+kom 282
+um 281
+iÄk 279
+nost 279
+k_ 279
+si 279
+ada 278
+van 278
+cij 276
+Sr 276
+lik 275
+_Sr 275
+nt 275
+ogr 274
+ug 274
+_ve 274
+ran 273
+br 273
+ani 272
+ine 272
+ac 271
+edn 271
+red 268
+_bi 266
+_pri 266
+ud 266
+ogra 265
+nja 265
+odi 264
+_f 263
+_re 262
+ga 258
+ati 258
+zn 257
+ovi 255
+rij 254
+_sv 254
+ako 252
+nu 252
+nij 251
+ana 251
+Äa 251
+rav 250
+din 248
+kr 247
+iš 247
+Äi 245
+up 245
+ce 245
+ta_ 244
+rv 244
+men 244
+un 243
+rb 243
+aju 241
+ava 241
+ra_ 241
+etn 239
+oj_ 239
+ln 238
+T 238
+pos 237
+eni 237
+M 234
+_go 233
+_od_ 232
+du 231
+ali 231
+ini 229
+ima_ 229
+_da_ 228
+nov 227
+_te 227
+ps 225
+_e 225
+Srb 223
+ca 223
+_M 223
+_Srb 222
+ara 222
+_mo 221
+Be 221
+_de 221
+i. 220
+bij 220
+K 220
+jed 219
+sa_ 219
+oji_ 218
+Än 218
+_ob 218
+pi 218
+ur 218
+eogr 217
+ove 217
+avi 217
+tno 217
+eog 217
+eogra 217
+stv 216
+zv 216
+_Be 216
+i._ 216
+nik 215
+bo 214
+_koji 214
+nic 214
+koji 214
+_pos 214
+_K 213
+ume 213
+za_ 211
+i, 211
+i,_ 211
diff --git a/test/user-template/user/fingerprint/serbian.lm b/test/user-template/user/fingerprint/serbian.lm
new file mode 100644
index 000000000000..55b590608018
--- /dev/null
+++ b/test/user-template/user/fingerprint/serbian.lm
@@ -0,0 +1,400 @@
+_ 56294
+а 17374
+и 15500
+е 13745
+о 13087
+н 8809
+Ñ€ 8535
+Ñ 7383
+Ñ‚ 6692
+у 6390
+к 6060
+а_ 5221
+ј 5197
+в 5177
+д 4882
+е_ 4729
+м 4663
+л 4534
+п 4121
+и_ 3992
+_Ñ 2964
+г 2703
+з 2575
+у_ 2521
+_п 2491
+ра 2430
+_и 2355
+на 2337
+је 2281
+. 2169
+, 2142
+,_ 2134
+._ 2112
+ÑÑ‚ 2091
+о_ 2004
+ни 1971
+б 1933
+ко 1894
+иј 1628
+но 1559
+ч 1550
+_у 1516
+је_ 1465
+ре 1465
+_н 1437
+ти 1409
+_о 1368
+_к 1353
+_ј 1346
+_д 1315
+ли 1314
+та 1309
+пр 1303
+ц 1287
+ка 1269
+ан 1260
+_је 1233
+по 1224
+не 1221
+_и_ 1220
+ен 1198
+ри 1198
+ва 1197
+ов 1151
+од 1146
+ла 1139
+Ñк 1132
+м_ 1124
+_пр 1120
+Ð¾Ñ 1086
+ш 1053
+ве 1048
+ој 1035
+ма 1029
+ом 1027
+ин 1025
+ог 1024
+им 1006
+ав 1002
+ме 976
+ви 971
+_по 966
+_на 963
+на_ 944
+да 928
+ја 906
+ро 905
+Ñš 895
+ал 893
+ик 891
+_је_ 889
+то 884
+ад 876
+ар 873
+Ñ… 862
+ор 858
+Ñе 840
+_м 836
+те 819
+Ð¸Ñ 816
+_у_ 810
+ај 809
+ед 800
+_Ñ‚ 791
+ет 772
+ат 740
+во 735
+гр 723
+ди 722
+ло 722
+за 709
+ак 707
+_Ñ€ 704
+не_ 694
+_ко 691
+ки 689
+ер 681
+ил 681
+ци 680
+Ñ› 673
+_Ñе 670
+_в 664
+_з 656
+он 651
+С 638
+из 635
+би 622
+ж 617
+ек 616
+_С 612
+ел 611
+Ñу 607
+гра 606
+Ñа 603
+а, 601
+а,_ 598
+_б 598
+их 597
+ом_ 591
+_г 588
+оÑÑ‚ 587
+ије 586
+д_ 579
+Ñ‚Ñ€ 574
+Ñе_ 567
+ија 561
+де 559
+_Ñе_ 552
+ем 552
+ле 549
+а. 548
+Ñ™ 548
+а._ 542
+до 540
+_Ñу 533
+ју 529
+зи 529
+ји 525
+ич 525
+Ñта 520
+Ñ…_ 520
+ке 517
+их_ 511
+Ñ„ 507
+го 505
+Ñти 496
+ка_ 493
+_. 489
+_._ 473
+_а 468
+рад 467
+ја_ 467
+г_ 463
+иц 461
+Ð°Ñ 461
+_за 461
+ит 456
+кој 454
+об 448
+да_ 442
+ив 442
+аз 441
+Ñу_ 436
+ку 433
+ма_ 430
+мо 429
+_Ñа 427
+ке_ 421
+ол 421
+ни_ 421
+иÑÑ‚ 421
+дн 421
+ог_ 418
+_од 417
+ам 416
+ањ 411
+Ñ’ 407
+_Ñу_ 407
+ру 400
+ње 398
+Ñл 397
+ок 392
+оп 391
+_кој 391
+_на_ 389
+е, 383
+тн 381
+_до 381
+е,_ 380
+има 379
+Ð½Ð¾Ñ 378
+ач 378
+вн 377
+Б 377
+_ка 373
+ти_ 372
+ео 370
+ли_ 370
+пре 367
+_из 364
+Ñко 361
+ио 360
+н_ 360
+П 359
+ју_ 359
+" 356
+вр 354
+_ÑÑ‚ 354
+ји_ 354
+ми 352
+чк 351
+ао 350
+им_ 347
+_Б 346
+ÐµÑ 346
+ев 344
+Ñки 343
+ез 343
+ије_ 341
+иг 339
+_ра 338
+тв 336
+ко_ 336
+град 335
+но_ 335
+ла_ 334
+_да 333
+_П 333
+шт 332
+од_ 330
+- 326
+ј_ 326
+др 323
+ва_ 322
+ту 320
+ори 315
+про 315
+ија_ 311
+ика 311
+Ñто 309
+е. 307
+ир 303
+е._ 302
+_про 301
+_пре 300
+ки_ 300
+от 299
+Ð 296
+Ñв 294
+пе 291
+Ñн 291
+Ð½Ñ 291
+мет 290
+Ñ‚_ 289
+при 289
+ба 288
+па 288
+или 288
+ут 287
+ао_ 286
+оји 285
+_не 285
+че 284
+ова 283
+ком 282
+ум 281
+_Ð 280
+Ñи 279
+ичк 279
+ноÑÑ‚ 279
+к_ 279
+ада 278
+Ср 276
+циј 276
+лик 275
+_Ср 275
+нт 275
+огр 274
+_ве 274
+уг 274
+бр 273
+ани 272
+ине 272
+ац 271
+ред 268
+_би 266
+_при 266
+уд 265
+ња 265
+огра 265
+оди 264
+_Ñ„ 263
+_ре 262
+_л 259
+ати 258
+га 258
+зн 257
+ови 255
+риј 254
+_Ñв 254
+ну 252
+ако 252
+ча 251
+ниј 251
+ана 251
+рав 250
+иш 247
+кр 247
+чи 245
+уп 245
+це 245
+дин 244
+та_ 244
+рв 244
+рб 243
+ра_ 241
+ају 241
+ава 241
+ун 240
+ој_ 239
+Т 238
+лн 238
+Ð¿Ð¾Ñ 237
+ени 237
+етн 234
+М 234
+_го 233
+_од_ 232
+али 231
+ду 231
+ини 229
+има_ 229
+_да_ 228
+_те 227
+нов 227
+Ð¿Ñ 225
+_е 225
+_М 223
+Срб 223
+ца 223
+_Срб 222
+ара 222
+ран 221
+_мо 221
+Бе 221
+_де 221
+биј 220
+и. 220
+јед 219
+К 219
+едн 219
+Ñа_ 219
+пи 218
+оји_ 218
+ур 218
+_об 218
+ове 217
+чн 217
+тно 217
+ави 217
+еогр 217
+еогра 217
+еог 217
+и._ 216
+Ñтв 216
+зв 216
+_Бе 216
+ник 215
+_који 214
+ниц 214
+бо 214
+који 214
+_Ð¿Ð¾Ñ 214
+уме 213
+_К 212
+за_ 211
+и,_ 211
+и, 211
+тра 209
+Ñп 209
diff --git a/test/user-template/user/fingerprint/slovak_ascii.lm b/test/user-template/user/fingerprint/slovak_ascii.lm
new file mode 100644
index 000000000000..29c8736b3ba3
--- /dev/null
+++ b/test/user-template/user/fingerprint/slovak_ascii.lm
@@ -0,0 +1,400 @@
+_ 20064
+a 4991
+o 4983
+e 3838
+n 3342
+i 3317
+r 2583
+s 2501
+v 2383
+t 2325
+c 1918
+k 1912
+l 1888
+d 1736
+u 1725
+p 1543
+a_ 1527
+y 1371
+m 1339
+z 1227
+h 1194
+e_ 956
+_p 881
+_s 828
+o_ 814
+na 809
+b 808
+_v 798
+j 797
+. 796
+ov 795
+._ 785
+st 687
+i_ 665
+, 657
+,_ 657
+_n 625
+ch 623
+u_ 618
+ro 617
+po 598
+_o 546
+ne 529
+en 520
+v_ 519
+_a 516
+ra 506
+pr 488
+y_ 481
+od 476
+_z 467
+ie 462
+ni 448
+an 447
+vy 434
+to 433
+h_ 431
+_na 429
+re 416
+ch_ 404
+ho 401
+al 399
+ci 394
+va 387
+na_ 386
+_pr 385
+_d 384
+_k 378
+la 377
+ko 375
+do 374
+_po 373
+si 353
+_t 346
+_r 337
+os 336
+no 334
+in 328
+tr 324
+om 321
+_v_ 320
+ny 319
+m_ 319
+ri 317
+S 306
+ac 302
+sa 300
+ti 300
+_m 298
+za 298
+er 291
+ia 290
+ce 290
+li 289
+yc 286
+ych 285
+ed 284
+at 281
+ob 281
+ak 280
+_na_ 280
+il 279
+_, 279
+_,_ 279
+ok 277
+sk 268
+ych_ 265
+_c 262
+mi 261
+ol 260
+me 260
+l_ 259
+t_ 259
+ku 258
+ta 256
+le 256
+_b 254
+or 252
+_a_ 250
+lo 247
+oc 246
+vo 246
+es 244
+ve 242
+_vy 240
+on 238
+_sa 231
+as 231
+da 230
+aj 228
+av 218
+el 216
+ova 216
+ic 215
+ne_ 209
+_do 208
+sa_ 207
+ka 205
+_sa_ 204
+te 203
+j_ 201
+_ro 199
+P 198
+_za 196
+ky 196
+_S 195
+je 194
+ar 193
+_. 193
+it 192
+s_ 192
+em 191
+ej 191
+ur 190
+ad 189
+_o_ 187
+_._ 187
+ov_ 185
+de 180
+_% 179
+om_ 179
+% 179
+_u 174
+pre 173
+dn 173
+D 172
+rok 170
+ie_ 170
+sp 169
+pri 167
+_pre 167
+am 165
+- 164
+ke 164
+eh 162
+oz 161
+k_ 160
+ost 160
+_j 156
+f 155
+zn 153
+g 152
+kt 152
+ho_ 151
+eho 151
+hod 150
+ku_ 148
+is 148
+zi 147
+cn 147
+eho_ 146
+ej_ 145
+az 145
+tu 145
+_pri 144
+cen 144
+_st 143
+ma 142
+ast 141
+_ce 140
+rov 140
+la_ 138
+ot 138
+nych 135
+nyc 135
+_ob 133
+z_ 133
+nych_ 131
+N 130
+li_ 129
+ani 129
+co 128
+nt 128
+ny_ 127
+E 125
+_ne 124
+) 123
+_( 123
+sti 123
+A 123
+( 123
+cho 122
+vi 122
+_sp 122
+di 120
+pa 120
+n_ 119
+ju 118
+ys 117
+bo 117
+_P 116
+_tr 115
+V 114
+je_ 114
+ln 114
+_i 113
+ze 113
+spo 112
+_N 112
+nd 111
+nu 111
+so 111
+red 110
+vn 110
+kl 110
+kov 110
+_cen 110
+_rok 109
+tn 109
+du 109
+nc 109
+ap 109
+d_ 108
+van 108
+ca 108
+M 108
+chod 107
+ti_ 107
+U 106
+_ak 106
+ru 105
+sta 105
+ym 105
+_- 104
+et 103
+_h 102
+est 102
+_je 102
+nos 101
+aci 101
+us 100
+dov 100
+pod 100
+_to 100
+tor 99
+uc 99
+ras 98
+ky_ 98
+_s_ 98
+_mi 97
+* 97
+uj 97
+nost 97
+vys 97
+ovy 97
+ez 97
+oku 96
+_V 96
+op 96
+bc 96
+rast 96
+se 95
+B 95
+roku 95
+kto 94
+ove 94
+by 94
+-_ 94
+_ko 93
+obc 92
+nie 91
+ia_ 91
+ka_ 91
+*_ 90
+ali 90
+lo_ 89
+ovan 89
+to_ 88
+iz 88
+_bo 88
+_l 88
+odo 87
+bch 87
+bchod 87
+bcho 87
+sl 86
+st_ 86
+pred 86
+C 86
+pol 85
+_pred 85
+R 85
+ik 84
+uro 84
+pi 84
+ek 84
+zo 83
+eni 83
+obch 83
+cie 83
+oku_ 83
+obcho 83
+ns 83
+roku_ 82
+ii 82
+tv 82
+ba 82
+ent 82
+_spo 81
+tov 81
+pe 81
+kon 80
+kc 80
+ec 80
+kci 80
+ck 80
+x 79
+osti 79
+_Sk 79
+mi_ 79
+_in 79
+Sk 79
+sia 79
+br 78
+rh 78
+val 78
+olo 77
+_pod 77
+%_ 77
+_%_ 77
+bu 77
+_f 77
+iv 77
+_obc 77
+_obch 77
+eb 76
+str 76
+nej 76
+_D 76
+ni_ 75
+ou 75
+im 75
+ena 74
+tre 74
+_A 74
+mo 74
+su 74
+rz 73
+_trh 73
+trh 73
+_U 73
+al_ 73
+_ra 73
+_e 72
+_C 72
+sti_ 72
+zv 72
+te_ 72
+cno 72
+oj 72
+ktor 71
+_roku 71
+ocn 71
+ina 71
+sil 71
+nov 71
+alo 71
+odn 70
+nan 70
+oh 70
diff --git a/test/user-template/user/fingerprint/slovenian.lm b/test/user-template/user/fingerprint/slovenian.lm
new file mode 100644
index 000000000000..0fb3f18f1659
--- /dev/null
+++ b/test/user-template/user/fingerprint/slovenian.lm
@@ -0,0 +1,400 @@
+_ 10406
+a 2828
+e 2676
+i 2458
+o 2418
+n 1814
+r 1484
+v 1253
+l 1248
+s 1228
+t 1172
+j 1107
+d 1085
+k 911
+p 880
+a_ 823
+m 763
+i_ 681
+e_ 678
+_p 603
+o_ 566
+u 521
+z 516
+b 456
+_s 435
+je 434
+, 416
+,_ 411
+ni 399
+Ä 383
+_v 372
+_d 356
+pr 355
+g 345
+ra 336
+_n 332
+st 323
+an 313
+po 303
+re 301
+na 295
+h 287
+ov 276
+_pr 276
+li 275
+al 274
+_z 270
+je_ 259
+la 255
+Å¡ 253
+ne 248
+en 246
+ko 244
+in 237
+c 234
+ti 234
+v_ 234
+_po 232
+no 230
+ve 230
+_k 227
+_i 224
+da 224
+. 221
+_j 221
+ri 220
+ja 216
+_t 214
+se 213
+ed 212
+._ 211
+em 206
+te 205
+za 201
+od 201
+av 200
+lo 196
+nj 194
+_o 194
+_je 193
+il 190
+or 183
+ka 181
+sk 179
+_b 178
+_je_ 178
+ih 178
+n_ 177
+_za 173
+h_ 171
+er 171
+os 171
+_na 168
+va 168
+ta 164
+le 163
+m_ 161
+ev 157
+ij 157
+ar 157
+do 155
+to 155
+ž 154
+A 153
+el 150
+_m 148
+ro 147
+ol 146
+_v_ 145
+aj 145
+di 143
+N 142
+S 142
+at 140
+ih_ 139
+ki 138
+de 137
+_in 135
+vo 135
+ga 134
+me 131
+in_ 129
+vi 129
+om 127
+_in_ 125
+et 124
+pre 124
+O 123
+bi 120
+I 119
+da_ 117
+ik 117
+ma 115
+E 114
+so 113
+bo 112
+it 112
+anj 112
+eg 110
+ni_ 109
+mi 108
+ke 108
+na_ 108
+u_ 108
+lj 106
+iz 105
+ob 105
+_da 103
+li_ 103
+is 103
+im 102
+red 102
+_pre 102
+dr 100
+mo 99
+P 99
+_se 99
+ji 98
+r_ 97
+ad 97
+pri 97
+K 97
+_l 97
+tr 95
+pa 94
+no_ 94
+j_ 92
+ki_ 91
+ti_ 91
+_pri 91
+dn 89
+_P 88
+ej 88
+_da_ 87
+ne_ 86
+ega 86
+_r 86
+_bi 86
+l_ 86
+em_ 86
+go 86
+" 85
+sl 85
+ek 84
+ali 84
+ove 84
+aÄ 84
+ak 84
+ci 83
+ga_ 83
+ko_ 83
+se_ 82
+_S 82
+jo 81
+ot 81
+ja_ 81
+_so 80
+lov 80
+L 80
+D 79
+V 79
+as 78
+_do 78
+am 78
+nje 77
+es 77
+za_ 77
+_pa 76
+T 75
+tu 75
+_za_ 74
+sti 74
+_dr 74
+la_ 74
+_N 74
+_de 74
+ega_ 73
+_ko 73
+og 73
+ns 72
+Äe 72
+ds 72
+_bo 71
+ora 71
+vn 71
+ost 71
+_ne 71
+iÄ 70
+ven 69
+z_ 69
+Äi 69
+_te 68
+ce 68
+_se_ 67
+Äa 67
+oÄ 67
+M 66
+_u 66
+un 65
+ln 65
+pos 64
+ju 64
+sta 64
+op 64
+di_ 63
+ud 63
+vs 63
+t_ 62
+nsk 62
+tv 62
+on 62
+ski 62
+R 62
+pa_ 62
+_ka 62
+i, 61
+so_ 61
+_iz 60
+_pa_ 60
+s_ 60
+i,_ 60
+pro 59
+del 59
+rav 59
+eni 59
+oli 58
+rj 58
+e, 57
+Å¡e 57
+ili 57
+vr 57
+d_ 57
+_le 57
+pred 57
+jo_ 56
+e,_ 56
+nik 56
+love 56
+_pred 56
+ske 56
+er_ 55
+str 55
+Än 54
+pra 54
+J 54
+_Å¡ 54
+oven 53
+_ra 53
+tn 53
+_na_ 53
+_so_ 53
+nih 53
+loven 53
+si 52
+ke_ 52
+_g 52
+ic 52
+udi 51
+bi_ 51
+eds 51
+oj 51
+ru 51
+a, 51
+_pro 50
+_pos 50
+nc 50
+nih_ 50
+Äu 50
+a,_ 50
+_a 50
+az 50
+ok 50
+B 50
+let 49
+udi_ 49
+_od 49
+_K 49
+aj_ 48
+_bi_ 48
+_ve 48
+raÄ 48
+o, 47
+_tu 47
+ija 47
+ter 47
+ist 47
+Z 47
+reds 46
+nd 46
+ali_ 46
+A_ 46
+iti 46
+bil 46
+_ob 46
+o,_ 46
+ati 46
+tud 45
+tudi 45
+_ki 45
+k_ 45
+be 45
+aš 45
+ir 45
+ža 45
+do_ 45
+sp 45
+_ki_ 45
+_st 45
+ep 44
+_del 44
+tudi_ 44
+rž 44
+aÄu 44
+_ni 44
+ah 43
+raÄu 43
+raÄun 43
+iš 43
+_mo 43
+avn 43
+_tud 43
+Äun 43
+aÄun 43
+_tudi 43
+_to 42
+raz 42
+kr 42
+ova 42
+_e 42
+ogo 42
+ani 42
+_" 42
+ev_ 42
+br 42
+eb 42
+sa 42
+mi_ 42
+tem 42
+ta_ 41
+prav 41
+i. 41
+slov 41
+ens 41
+bo_ 41
+že 41
+_T 41
+_let 41
+odo 41
+slo 41
+ensk 40
+ka_ 40
+neg 40
+ez 40
+nos 40
+eÄ 40
+_sl 40
+_V 40
+rža 40
+nega 40
+ili_ 39
diff --git a/test/user-template/user/fingerprint/spanish.lm b/test/user-template/user/fingerprint/spanish.lm
new file mode 100644
index 000000000000..e40317f956a9
--- /dev/null
+++ b/test/user-template/user/fingerprint/spanish.lm
@@ -0,0 +1,400 @@
+_ 25044
+e 7830
+a 7437
+o 5102
+s 4394
+n 4358
+i 4065
+r 3998
+l 3634
+d 3118
+c 2931
+t 2834
+u 2316
+a_ 2269
+e_ 2211
+s_ 1862
+de 1679
+p 1673
+_d 1644
+m 1447
+_de 1443
+n_ 1332
+o_ 1301
+en 1295
+_e 1216
+es 1177
+_l 1132
+de_ 1080
+la 1060
+os 1028
+_de_ 1027
+_p 963
+l_ 910
+ci 890
+_c 866
+_a 866
+os_ 801
+ar 777
+er 775
+as 768
+ra 746
+nt 736
+_la 727
+re 726
+,_ 724
+, 724
+el 722
+ta 708
+ue 701
+g 678
+on 674
+al 670
+_s 666
+co 653
+b 637
+an 622
+v 616
+la_ 616
+or 612
+te 599
+st 596
+el_ 580
+_la_ 573
+y 545
+to 543
+r_ 517
+ad 512
+ó 511
+do 504
+ro 504
+se 488
+as_ 488
+q 487
+qu 487
+. 479
+._ 478
+en_ 475
+ca 460
+in 459
+un 456
+_co 450
+es_ 449
+ic 449
+_en 440
+ac 440
+que 439
+na 439
+lo 430
+_m 430
+f 429
+ent 428
+da 412
+ue_ 411
+po 405
+le 399
+_q 399
+_qu 399
+que_ 393
+_que 388
+ie 386
+h 385
+pa 382
+y_ 371
+ti 367
+_que_ 365
+_en_ 365
+_y 361
+tr 358
+_el 353
+ri 349
+ia 342
+_el_ 333
+_se 330
+ió 330
+_y_ 330
+io 329
+pr 320
+ón 317
+ec 317
+no 314
+id 301
+í 300
+mi 299
+_t 299
+ión 292
+nte 292
+me 286
+aci 283
+do_ 279
+li 276
+con 276
+nd 273
+est 272
+ni 272
+á 271
+di 270
+_es 268
+_lo 267
+ció 265
+ma 265
+ón_ 264
+_pr 263
+_r 261
+ción 255
+z 254
+ra_ 251
+si 247
+ión_ 246
+oc 245
+nc 244
+_u 244
+_po 243
+los 243
+or_ 242
+_con 241
+is 239
+del 238
+_del 237
+ado 236
+se_ 233
+_i 233
+los_ 231
+_re 231
+por 229
+_del_ 228
+sta 228
+del_ 228
+al_ 228
+ne 226
+_h 226
+cu 225
+_n 225
+_a_ 224
+_v 224
+_un 223
+ce 222
+so 220
+ción_ 218
+res 218
+vi 217
+om 216
+te_ 212
+_pa 211
+ien 210
+j 209
+E 208
+_los 207
+_los_ 207
+to_ 206
+ol 204
+it 203
+am 202
+ació 201
+rt 201
+ación 201
+pe 197
+ha 190
+_se_ 189
+nto 188
+_o 184
+_E 184
+on_ 184
+sa 183
+na_ 182
+ta_ 181
+su 180
+cia 180
+mo 180
+ct 178
+par 178
+_f 177
+_por 176
+eg 172
+_in 172
+ur 170
+L 168
+ve 166
+im 164
+ga 163
+_est 161
+ar_ 161
+ab 160
+_L 159
+tu 158
+at 158
+no_ 157
+s, 157
+s,_ 157
+_por_ 156
+por_ 156
+las 156
+ba 154
+o,_ 154
+o, 154
+ento 151
+et 150
+C 150
+_ha 149
+A 149
+tra 148
+ient 148
+_al 147
+a,_ 146
+ica 146
+a, 146
+pro 146
+ado_ 145
+ici 144
+_ca 144
+an_ 144
+las_ 143
+ara 143
+nci 143
+ente 142
+ú 142
+rr 142
+ir 142
+da_ 141
+em 141
+ll 140
+il 139
+ía 138
+iv 138
+_su 138
+_par 136
+ul 136
+ant 136
+_A 135
+mp 135
+_las_ 134
+_las 134
+_C 134
+_pro 133
+men 132
+P 132
+des 131
+com 130
+ion 130
+era 130
+ed 129
+ida 129
+sp 128
+gu 127
+nte_ 127
+ns 127
+za 126
+dos 125
+M 125
+cio 125
+les 125
+_P 124
+bl 124
+_com 122
+s._ 122
+s. 122
+_M 121
+ua 120
+nta 120
+mu 119
+_no 118
+dad 118
+ñ 117
+é 116
+un_ 116
+va 116
+ist 116
+nes 116
+iento 115
+one 114
+ara_ 113
+S 113
+ada 113
+_un_ 113
+fi 111
+pre 110
+tos 110
+ter 109
+ot 109
+esta 108
+_me 107
+ido 107
+ob 107
+_g 105
+br 105
+go 105
+ea 104
+nto_ 104
+ona 103
+pu 103
+dos_ 103
+tro 103
+ier 103
+para 102
+ment 101
+ag 101
+ero 101
+gr 101
+rec 101
+bi 101
+ia_ 100
+una 100
+nic 99
+ncia 99
+ía_ 98
+a._ 98
+tos_ 98
+a. 98
+ran 98
+lo_ 97
+ones 97
+rm 96
+lu 96
+ron 95
+con_ 95
+ó_ 95
+nes_ 95
+_ci 95
+ante 94
+ch 94
+_con_ 94
+_para 94
+ntr 93
+una_ 93
+para_ 93
+mie 92
+ico 92
+fe 92
+les_ 92
+uc 92
+ip 91
+sto 91
+_ma 91
+ui 91
+sta_ 91
+_ve 90
+cion 90
+" 90
+op 90
+cal 89
+_mu 89
+_S 89
+ro_ 89
+_pe 88
+ste 88
+ras 88
+pl 88
+_una 88
+_di 87
+ento_ 86
+ita 86
+ione 85
+ect 85
+_una_ 85
+mien 85
+tan 85
+du 84
+den 84
+ndo 84
+per 84
+eri 84
diff --git a/test/user-template/user/fingerprint/swahili.lm b/test/user-template/user/fingerprint/swahili.lm
new file mode 100644
index 000000000000..56090b40153e
--- /dev/null
+++ b/test/user-template/user/fingerprint/swahili.lm
@@ -0,0 +1,400 @@
+_ 16483
+a 9342
+i 5293
+a_ 4071
+u 2730
+k 2609
+n 2351
+w 2076
+m 1928
+e 1866
+h 1800
+o 1775
+wa 1743
+l 1486
+s 1419
+i_ 1401
+t 1399
+_k 1306
+y 1100
+_w 969
+li 945
+wa_ 911
+z 891
+_wa 890
+ka 834
+ku 799
+r 770
+b 733
+an 727
+ma 723
+o_ 711
+_m 707
+na 698
+ya 675
+ha 672
+g 602
+al 580
+d 570
+at 560
+am 554
+_n 549
+_ku 549
+ik 543
+_h 515
+ya_ 514
+A 494
+is 487
+_y 485
+hi 474
+na_ 471
+_ya 471
+ta 468
+sh 456
+ali 449
+j 426
+u_ 423
+ki 418
+e_ 402
+p 401
+ti 401
+_wa_ 399
+f 392
+_ya_ 390
+ba 390
+ri 385
+ng 385
+il 380
+c 358
+hu 356
+_na 356
+ni 355
+za 354
+zi 351
+ia 344
+_na_ 343
+_a 336
+in 327
+_ma 326
+ch 322
+mb 317
+ika 314
+. 311
+._ 309
+_ka 307
+as 306
+ak 306
+ati 301
+, 300
+ka_ 296
+,_ 294
+_u 292
+kw 286
+ili 278
+K 274
+en 271
+si 266
+_kw 262
+la 261
+ni_ 261
+ma_ 261
+_s 258
+kwa 258
+ar 256
+ut 245
+za_ 245
+nd 242
+mba 241
+_kwa 239
+_z 234
+li_ 233
+un 233
+ny 230
+it 229
+se 229
+yo 227
+ia_ 222
+M 221
+sa 221
+kat 217
+_K 214
+_i 213
+ika_ 213
+ana 212
+ish 212
+kati 206
+_ha 204
+on 201
+ai 200
+I 198
+aa 196
+um 195
+im 190
+v 188
+mu 187
+amb 187
+sha 185
+em 183
+fa 181
+zi_ 180
+di 179
+mi 178
+_M 178
+us 176
+_ki 176
+ha_ 175
+iw 172
+ama 172
+_kat 168
+_kati 168
+_hi 166
+_l 166
+ra 166
+kwa_ 165
+la_ 164
+W 164
+ja 163
+U 163
+N 163
+amba 161
+ao 161
+_za 160
+ji 160
+B 157
+iwa 155
+tik 155
+wal 155
+le 155
+tika 154
+ge 153
+lis 153
+tu 152
+atika 152
+to 152
+atik 152
+uw 152
+_kwa_ 151
+A_ 151
+ke 150
+S 147
+tika_ 145
+aj 145
+we 144
+cha 144
+bi 141
+az 140
+er 139
+ek 138
+katik 138
+ez 138
+uwa 137
+kut 135
+_al 134
+_B 134
+ad 134
+mu_ 133
+_ali 133
+rik 132
+_W 131
+ba_ 131
+kuw 131
+me 130
+ali_ 128
+kuwa 128
+ema 127
+wan 127
+bu 126
+sem 126
+_A 125
+ir 125
+ata 125
+iz 124
+_hu 124
+ay 124
+ul 124
+af 123
+iki 122
+ema_ 121
+da 120
+ti_ 120
+sema 119
+aka 118
+sema_ 118
+te 118
+uz 117
+yo_ 117
+_v 117
+io 116
+iy 115
+uta 115
+ani 115
+_wal 115
+he 115
+if 114
+_la 114
+ab 114
+go 112
+_za_ 111
+ama_ 111
+sa_ 111
+pa 110
+_t 110
+zo 110
+nge 110
+wam 109
+wali 108
+ua 107
+ur 106
+_c 106
+ise 105
+_ch 105
+isem 105
+ho 105
+ye 104
+iyo 104
+E 104
+el 104
+mo 103
+ung 103
+eri 103
+_wali 103
+_b 102
+mba_ 102
+ari 101
+ita 101
+isema 100
+ot 99
+_la_ 99
+uk 99
+ao_ 99
+di_ 99
+sha_ 99
+ini 99
+kuwa_ 98
+uwa_ 98
+ana_ 98
+lise 98
+lisem 98
+uli 97
+shi 97
+ga 96
+iwa_ 96
+fu 96
+T 96
+R 95
+_il 95
+wak 94
+aw 94
+isha 94
+ri_ 93
+_am 93
+ara 92
+_cha 92
+aji 92
+_ili 91
+ifa 91
+O 90
+_p 90
+uh 90
+iri 90
+chi 90
+asi 89
+po 89
+a. 89
+ong 89
+azi 88
+_j 88
+_kut 88
+eny 88
+nc 88
+a._ 88
+ko 87
+uu 87
+id 87
+w_ 87
+no 87
+P 86
+ah 86
+ina 86
+rika 86
+_Bw 85
+H 85
+gu 85
+uo 85
+Bw_ 85
+_Bw_ 85
+_se 85
+Bw 85
+ib 84
+_S 84
+kam 84
+hi_ 84
+nya 84
+si_ 83
+a, 82
+no_ 81
+pi 81
+ok 81
+i. 81
+ip 81
+kwam 81
+i._ 81
+amba_ 80
+dh 80
+end 80
+ani_ 80
+a,_ 79
+wamb 79
+kwamb 79
+_sh 79
+eza 79
+nz 79
+wi 79
+_kwam 79
+wamba 79
+alis 78
+_kuw 78
+ngo 78
+ap 77
+_N 77
+any 77
+ili_ 77
+C 77
+WA 76
+vy 76
+wana 76
+_hiy 75
+Wa 75
+hiyo 75
+nch 75
+_hiyo 75
+de 75
+_kuwa 75
+ing 75
+hiy 75
+vi 75
+isha_ 74
+es 74
+atu 74
+_Wa 74
+nchi 74
+aki 74
+lim 73
+da_ 73
+ini_ 73
+ash 73
+ala 73
+i, 73
+ano 73
+i,_ 72
+_kam 71
+_wan 71
+ano_ 71
+mw 71
+nde 71
+ji_ 71
+ion 70
+_amb 70
+ndi 70
+_Ka 70
+eza_ 70
diff --git a/test/user-template/user/fingerprint/swedish.lm b/test/user-template/user/fingerprint/swedish.lm
new file mode 100644
index 000000000000..1c021242b9fe
--- /dev/null
+++ b/test/user-template/user/fingerprint/swedish.lm
@@ -0,0 +1,400 @@
+_ 33494
+e 8992
+n 7900
+t 7859
+a 7781
+r 7251
+s 6435
+i 5649
+l 4541
+d 4079
+o 3724
+m 3203
+k 3058
+g 2478
+en 2403
+n_ 2389
+t_ 2073
+de 1939
+r_ 1910
+v 1890
+h 1789
+u 1782
+_s 1768
+ä 1724
+er 1709
+f 1597
+en_ 1537
+a_ 1526
+an 1357
+p 1320
+et 1317
+ö 1278
+Ã¥ 1261
+st 1236
+ar 1226
+c 1191
+_d 1158
+e_ 1116
+in 1045
+_f 1027
+te 1000
+b 997
+_a 978
+s_ 974
+ra 958
+. 956
+tt 935
+_i 898
+_m 890
+._ 886
+ll 870
+ta 844
+_o 842
+_e 839
+nd 820
+ti 804
+sk 798
+re 779
+at 769
+_de 754
+om 743
+m_ 739
+ör 720
+, 697
+,_ 695
+ng 686
+li 673
+ka 666
+oc 662
+_h 654
+on 652
+et_ 647
+ch 645
+ns 643
+is 642
+er_ 630
+är 625
+_v 614
+_t 614
+ni 611
+i_ 609
+_oc 592
+tt_ 587
+na 586
+y 586
+la 579
+_b 579
+h_ 577
+kt 575
+ch_ 568
+ig 564
+fö 563
+och 555
+or 555
+_och 554
+och_ 554
+_och_ 553
+me 548
+den 548
+om_ 535
+_i_ 531
+d_ 530
+j 529
+ik 520
+de_ 520
+för 518
+ge 498
+ad 497
+_k 491
+_fö 487
+ri 484
+el 482
+il 481
+so 480
+al 474
+g_ 469
+le 464
+an_ 461
+_för 447
+si 437
+ar_ 437
+att 435
+_p 434
+es 420
+ing 413
+se 407
+to 404
+_u 403
+_en 403
+and 398
+den_ 395
+nde 393
+nn 393
+_l 391
+Ã¥_ 391
+D 385
+än 383
+nt 382
+l_ 381
+tr 378
+_D 372
+va 370
+am 369
+sa 367
+_so 365
+ga 364
+_en_ 361
+är_ 358
+ck 357
+av 354
+v_ 351
+ed 347
+ma 346
+da 346
+som 346
+rs 344
+som_ 344
+ve 342
+ter 341
+att_ 341
+ha 338
+ne 337
+ut 335
+as 332
+ska 329
+_at 327
+_att 326
+_som 324
+_att_ 324
+_som_ 323
+vi 322
+ikt 317
+_av 316
+det 316
+_den 315
+he 315
+ss 314
+un 307
+ke 304
+_g 303
+us 302
+di 302
+_st 300
+rn 297
+_me 296
+_ä 295
+ade 294
+" 290
+_ha 290
+av_ 289
+ill 288
+_n 286
+_in 279
+io 275
+_r 275
+der 275
+it 274
+_av_ 274
+sta 274
+gen 272
+isk 270
+_ti 269
+id 265
+na_ 265
+ns_ 264
+ko 262
+_den_ 261
+ag 258
+det_ 257
+lig 257
+era 256
+ll_ 255
+_det 252
+_är 251
+be 249
+_är_ 248
+ra_ 247
+ion 244
+- 241
+pr 240
+oni 233
+til 231
+ten 228
+_si 225
+k_ 222
+på 222
+fr 221
+ro 219
+till 219
+iv 216
+ls 216
+ande 215
+ör_ 214
+_det_ 213
+äl 212
+_på 211
+ts 210
+ens 209
+med 209
+mm 208
+rt 208
+_till 208
+_til 208
+_va 207
+_fr 205
+_sk 205
+var 205
+nin 204
+ning 203
+ol 201
+ka_ 200
+lle 198
+ett 198
+rd 197
+em 196
+på_ 195
+x 195
+rk 194
+_ut 194
+ste 194
+ds 193
+_vi 192
+Ã¥r 192
+S 192
+nde_ 191
+are 191
+ver 190
+_på_ 190
+nis 189
+kr 189
+_med 188
+all 188
+Ã¥n 187
+nge 185
+mo 184
+os 183
+ld 182
+ade_ 181
+_S 181
+ed_ 180
+rä 176
+De 175
+_- 175
+kan 174
+ta_ 173
+ng_ 172
+vä 171
+för_ 170
+ill_ 170
+han 170
+_De 170
+pp 169
+lt 169
+sam 168
+nte 167
+ans 167
+ton 166
+ur 165
+mi 165
+ess 165
+kl 164
+ig_ 164
+ks 164
+as_ 163
+und 163
+men 162
+med_ 161
+_med_ 161
+ak 161
+Di 160
+ot 159
+rna 159
+ul 159
+_var 159
+te_ 158
+gen_ 158
+het 157
+kto 157
+str 156
+_Di 155
+tad 155
+lan 154
+ga_ 154
+iska 154
+fa 154
+fi 154
+så 154
+Dikt 153
+Dik 153
+pe 153
+ska_ 152
+ja 152
+H 151
+res 151
+ku 151
+iu 150
+ande_ 150
+till_ 150
+t. 150
+ern 150
+rm 149
+_Dikt 149
+_Dik 149
+ie 149
+bl 148
+-_ 147
+od 147
+_H 147
+n. 147
+ist 147
+_di 146
+ius 146
+_" 145
+la_ 145
+sl 145
+man 145
+ren 145
+_för_ 145
+toni 144
+kton 144
+n._ 144
+ktoni 144
+ikton 144
+I 144
+ikto 144
+nius 143
+ten_ 143
+onius 143
+oniu 143
+toniu 143
+ing_ 143
+Dikto 143
+niu 143
+_ko 143
+ic 142
+_sa 142
+_han 142
+ett_ 142
+sm 141
+ba 141
+M 141
+gr 140
+lä 140
+ex 138
+t._ 138
+sp 137
+lla 137
+_et 137
+_M 137
+dr 137
+rö 136
+rad 136
+ek 136
+_be 135
+tar 135
+_-_ 135
+_om 134
+rl 134
+E 134
+mä 133
diff --git a/test/user-template/user/fingerprint/tagalog.lm b/test/user-template/user/fingerprint/tagalog.lm
new file mode 100644
index 000000000000..bc87d38d0c92
--- /dev/null
+++ b/test/user-template/user/fingerprint/tagalog.lm
@@ -0,0 +1,400 @@
+_ 10664
+a 6092
+n 3421
+i 2332
+g 2149
+ng 1488
+an 1332
+g_ 1308
+ng_ 1243
+t 1155
+a_ 1138
+o 1137
+l 1105
+s 1067
+k 1035
+_n 957
+m 909
+y 801
+ang 787
+u 767
+ang_ 683
+p 682
+na 670
+_a 634
+la 596
+. 572
+in 561
+r 559
+sa 545
+_s 502
+._ 487
+ma 476
+ka 473
+_na 464
+b 462
+_m 458
+al 448
+d 445
+pa 414
+n_ 412
+at 394
+ak 393
+h 378
+ya 358
+_k 356
+ag 350
+ni 344
+_p 339
+_sa 335
+o_ 328
+ta 308
+_an 307
+iy 300
+sa_ 296
+_ang 294
+_ang_ 293
+t_ 290
+ay 286
+ga 283
+on 280
+it 275
+_sa_ 265
+ala 258
+_ng 256
+am 252
+_i 248
+_pa 248
+i_ 243
+na_ 243
+an_ 240
+e 239
+_ma 237
+_ka 235
+iya 231
+y_ 229
+il 228
+li 228
+w 226
+_ni 225
+_na_ 224
+_ng_ 220
+as 214
+ba 207
+si 206
+" 195
+ti 195
+ha 186
+, 179
+ar 178
+ing 173
+ra 173
+A 172
+ki 168
+ong 167
+_b 167
+ap 166
+,_ 162
+ong_ 161
+ko 159
+ay_ 159
+un 157
+ul 155
+yo 154
+to 152
+_l 150
+ah 148
+is 147
+hi 147
+_t 146
+lan 145
+ama 142
+niy 139
+at_ 138
+_niy 138
+aka 136
+wa 136
+niya 135
+_niya 135
+ab 134
+- 134
+di 133
+_si 132
+"_ 131
+aw 129
+_d 126
+_A 126
+yan 123
+ya_ 122
+ata 120
+a. 120
+gi 120
+P 120
+ing_ 118
+um 115
+o. 113
+aki 113
+ri 113
+ik 112
+nd 112
+ila 111
+mo 110
+da 110
+a._ 110
+in_ 109
+la_ 107
+ali 106
+S 106
+man 105
+ig 105
+iya_ 105
+s_ 104
+_ak 104
+_at 103
+_h 102
+yon 102
+asa 101
+ina 101
+_P 101
+n. 99
+N 98
+aa 98
+ga_ 97
+_mo 97
+_ba 97
+_" 95
+ito 94
+bi 94
+yang 94
+n._ 93
+pag 92
+lang 92
+yang_ 92
+_la 92
+o._ 90
+K 90
+_at_ 90
+tu 88
+_S 88
+ara 87
+nga 87
+ro 85
+apa 83
+rr 82
+lam 82
+lo 81
+nan 81
+_N 80
+aman 79
+aha 78
+mg 78
+mga 78
+mga_ 78
+_mga_ 78
+_mg 78
+_mga 78
+_K 78
+siy 77
+kan 76
+it_ 76
+san 76
+d_ 75
+ad 75
+di_ 74
+tin 74
+' 74
+ati 73
+siya 73
+kin 72
+M 72
+lang_ 71
+mo_ 70
+_mo_ 70
+ako 70
+uma 70
+_pag 69
+pi 69
+l_ 68
+_siy 68
+rrr 68
+_siya 67
+ula 67
+_M 66
+Pa 66
+iyo 66
+mi 66
+bu 66
+mu 65
+no 65
+pu 65
+nag 65
+ung 65
+Na 65
+ot 64
+_Na 64
+niya_ 64
+iyan 64
+ku 64
+k_ 63
+go 62
+awa 62
+ip 61
+_Pa 61
+lu 61
+_di 60
+pan 60
+_ta 60
+ini 60
+isa 60
+nt 60
+iyang 60
+_iyo 59
+_iy 59
+on_ 59
+tan 59
+mang 59
+aba 59
+gan 59
+ut 58
+I 58
+hin 58
+nak 58
+an. 57
+akin 57
+_r 57
+han 57
+Ka 57
+_ay 57
+_ako 56
+may 56
+iyon 56
+rrrr 55
+Sa 55
+aga 55
+to_ 55
+nit 55
+_ko 54
+er 54
+ib 54
+ari 54
+ana 54
+ili 54
+an._ 54
+ahi 54
+au 54
+ala_ 54
+gk 53
+pa_ 53
+_is 53
+rin 53
+ilan 52
+_kan 52
+_Ka 52
+_it 52
+_Sa 51
+king 51
+ko_ 51
+_nak 51
+gin 51
+_ay_ 50
+bo 50
+_iyon 50
+amang 50
+'y 49
+os 49
+mang_ 49
+_pa_ 49
+kat 49
+a, 49
+An 48
+Ma 48
+ny 48
+mag 48
+_ku 48
+_ito 48
+_ha 47
+yong 47
+? 47
+aking 47
+T 47
+ni_ 47
+yong_ 47
+_An 47
+king_ 47
+_akin 46
+sang 46
+_nag 46
+kas 46
+_aki 46
+_ni_ 46
+ayo 45
+kit 45
+'y_ 45
+mat 45
+_Ma 45
+lal 45
+ot_ 45
+nya 44
+ban 44
+ndi 44
+oo 44
+_u 44
+ngi 44
+_hi 44
+sang_ 44
+B 43
+su 43
+may_ 43
+rrrrr 43
+p_ 43
+ita 43
+wal 43
+ika 43
+abi 43
+aan 43
+_may 43
+lama 42
+naka 42
+mal 42
+_I 42
+_ri 42
+alan 42
+any 42
+im 42
+_pu 42
+ai 42
+wala 41
+anya 41
+a,_ 41
+_B 41
+ndi_ 41
+as_ 41
+pat 41
+po 41
+nang 41
+_mag 41
+laman 40
+lala 40
+kal 40
+g- 40
+.. 40
+ir 40
+! 40
+uk 40
+gu 39
+ito_ 39
+ro_ 39
+_g 39
+_da 39
+_isa 39
+_lam 39
+ilang 39
+kanya 39
+w_ 39
+kany 39
+agk 38
+pal 38
+ka_ 38
+_naka 38
+siya_ 38
+isan 38
diff --git a/test/user-template/user/fingerprint/tamil.lm b/test/user-template/user/fingerprint/tamil.lm
new file mode 100644
index 000000000000..8563707d5e9d
--- /dev/null
+++ b/test/user-template/user/fingerprint/tamil.lm
@@ -0,0 +1,400 @@
+_ 11468
+Õ 2697
+Ô 2533
+´ 1960
+» 1786
+½ 1249
+Â 1103
+Ù 990
+£ 976
+Ø 849
+¡ 847
+¨ 831
+¿ 821
+À 794
+¾ 758
+§ 750
+Ã 721
+¹ 715
+¶ 713
+. 702
+£_ 671
+× 655
+â 648
+Æ 625
+._ 611
+ç 601
+Ã… 571
+¯ 557
+»Õ 556
+É 524
+_É 520
+¢ 518
+_½ 492
+Ç 489
+_× 488
+Þ 484
+_Ç 482
+¤ 461
+Ä 442
+¼ 418
+ÿ 416
+Â¥ 403
+§_ 398
+½Ô 373
+_Ø 368
+ª 360
+Ã 359
+_Ã 349
+»Ô 348
+´Õ 342
+à 337
+_Â 331
+õ 331
+¨_ 323
+_¼ 321
+¡´ 320
+_´ 310
+Õ¿ 308
+Ü 299
+¢» 294
+Ó 292
+´Ô 292
+ÿ» 290
+Õ§ 288
+¡Þ 284
+â_ 279
+ý 271
+õ´ 266
+ÂÕ 265
+_» 265
+¾Ô 241
+_¾ 234
+´ª 232
+= 231
+± 229
+¤½ 227
+== 221
+¶Õ 218
+»_ 218
+Õ§_ 213
+=== 211
+Õ_ 210
+==== 201
+ª_ 199
+´_ 198
+ÀÕ 197
+===== 191
+, 188
+ؽ 188
+¿Õ 187
+º 186
+_¶ 184
+,_ 184
+Ã 183
+Ô¯ 181
+¿_ 179
+Ô¨ 178
+Ã¥ 172
+´ª_ 171
+ì 169
+Ùà 168
+¢»Õ 165
+¿Ô 165
+Ô_ 165
+ç¡ 164
+È 161
+Þ_ 160
+è 160
+_è 157
+« 156
+_È 156
+§à 152
+Ô´ 152
+Ù» 151
+Ã 150
+_Ã 149
+ä 149
+ö 146
+ÕÅ 146
+Ø½Ô 145
+¯´ 143
+Ö 142
+׶ 142
+ÃÔ 142
+½Õ 140
+Ã_ 139
+Ô§ 138
+_Éç 138
+Éç 138
+¶Ô 137
+Õ¨ 137
+Æ_ 136
+¢â 133
+_׶ 132
+ÔÆ 128
+¡´Õ 128
+ÀÔ 127
+¥¹ 127
+_Ë 127
+Ë 127
+_ؽ 127
+ÕÀ 125
+öÓ 125
+ÄÕ 124
+ÆÔ 122
+ÅÕ 121
+Þ£ 120
+Õç 119
+¼Ô 119
+×½ 119
+´Ù 119
+_Ã¥ 118
+¯_ 118
+£. 117
+´ÕÅ 116
+»Õ¿ 115
+ÂÔ 115
+_ÂÕ 113
+â. 113
+×» 113
+£._ 112
+¡Þ_ 112
+ÕÙ 111
+Õ¡ 111
+ÙÄ 109
+×´ 109
+é 109
+â._ 108
+_½Ô 107
+Õ´ 106
+¤_ 105
+ÆÕ 104
+' 104
+½¹ 103
+ç_ 102
+¹Ô 102
+Ø´ 101
+¼Õ 100
+Éÿ 100
+_Éÿ 99
+_×» 99
+ÔÀ 98
+Éÿ» 98
+æ 98
+_×½ 97
+Ã…_ 97
+Ô» 97
+_Éÿ» 97
+Ô¨_ 97
+¹_ 97
+ß 96
+±Å 96
+×´Ô 96
+»Ô¨ 95
+¡Þ£ 94
+Õ¿_ 94
+Ø» 94
+ø 94
+ØÂ 93
+í 93
+_Ø½Ô 93
+¾Õ 93
+Õ¨_ 92
+ÿ»_ 91
+ÃÕ 91
+_Éç¡ 90
+Éç¡ 90
+Ãç 90
+ÕÆ 90
+_Ãç 90
+ÿ»Õ 90
+Ù¹ 89
+_´Ô 89
+_Ãç_ 88
+_¼Ô 88
+Ãç_ 88
+ì_ 86
+ç¡´ 86
+ÅÔ 86
+ÿâ 85
+¥à 85
+¯´ª 84
+¨Æ 84
+¨ì 83
+Ô¥ 83
+÷ 83
+_Þ 83
+´Ä 82
+à_ 81
+Ô´_ 81
+¨. 80
+_¾Ô 80
+¿Õ§ 80
+² 80
+Õà 80
+Ä_ 79
+´ÙÄ 79
+_½¹ 79
+¨Å 79
+Ô£ 79
+Ǧ 78
+¡_ 78
+¨._ 77
+_¶Õ 77
+§ÃÔ 77
+_¼Õ 77
+ë 77
+Åâ 76
+Þ£_ 75
+ÔÆ_ 75
+Ù¾ 75
+¯ 75
+ÙÂ 74
+çÿ 73
+ýà 72
+è 72
+¨ì_ 71
+Ô§_ 71
+´ë 71
+¥Ü 71
+§Ù 70
+»Õ§ 70
+§Ùà 70
+£½ 69
+Ù»_ 69
+ªÄ 69
+ç¡Þ 69
+Ó_ 68
+Ôõ 68
+ؾ 67
+_Ø´ 67
+Õ¢ 66
+ÄÔ 66
+»Ô¨_ 66
+࣠66
+_Ç» 66
+Ç» 66
+Ô¹ 66
+ÃŽ 66
+¿Õ§_ 65
+Ôâ 65
+_»Õ 64
+¯. 64
+¹¢ 63
+Õ¥ 63
+Ô¡ 63
+_×´ 63
+_ÃŽ 63
+Ù´ 62
+´ÄÕ 62
+Õ¿Ô 62
+¯._ 61
+Éÿ»Õ 61
+_½Õ 61
+_×»Ô 61
+×»Ô 61
+Ôõ´ 61
+½¥ 60
+ÿ»Õ¿ 60
+_ä 60
+_Éÿ»Õ 60
+Ô¾ 60
+Ôç 59
+×¶Ô 59
+¡Þ£_ 59
+¤ä 59
+_ÇÙ 58
+ÿâ_ 58
+ÙÅ 58
+ÇÂ 58
+ÇÙ 58
+Éÿ»Õ¿ 58
+ºÕ 58
+»À 57
+½Ô¯ 57
+¹£ 57
+ýº 57
+_ÇÂ 57
+æ£ 56
+Ôà 56
+_×¶Ô 55
+? 55
+ý¹ 54
+ÃÕ 54
+ÙÆ 54
+»Õç 54
+_×´Ô 54
+´ÕÅâ 53
+»Õ¿_ 53
+_À 53
+ÕÅâ 53
+¡´ÕÅ 53
+ç¡´Õ 52
+ÇÀ 52
+ÙÄ_ 52
+× 51
+Ü_ 51
+'_ 51
+_ÇÀ 51
+ÔÂ 51
+èì 51
+Âç 51
+î 51
+â¡ 51
+_èì 51
+À_ 51
+Õ¿Õ 51
+ÙÀ 51
+_ɧ 50
+ɧ 50
+½ý 50
+»Õ§_ 50
+×½Ô 50
+±ÅÕ 50
+»¾ 49
+à£_ 49
+Ôà 49
+õ´ª 49
+´¥ 49
+»Õ_ 49
+»ÕÀ 48
+¶Ô§ 48
+ç£ 48
+Õ¡´ 48
+Õ¤ 48
+ÕØ 48
+À£ 48
+ÀÕ¿ 48
+_Éç¡´ 47
+æ£_ 47
+ê 47
+èì_ 47
+׶ԧ 47
+Éç¡´ 47
+Â_ 47
+_èì_ 47
+?_ 46
+Ø¿ 46
+Ô¿ 46
+_Ø» 46
+¹õ 46
+_Ù 46
+õ´ª_ 46
+è£ 45
+´ÙÄ_ 45
+¢Ù» 45
+¢Ù 45
+»Ù 45
+_×½Ô 44
+½Ü 44
+Ô£_ 44
+ÕÆÕ 44
+´Ø 44
+á 44
+´£ 44
+½Ôâ 44
+ÃÔ£ 44
+Ã. 44
+_׶ԧ 43
+´ë¡ 43
diff --git a/test/user-template/user/fingerprint/thai.lm b/test/user-template/user/fingerprint/thai.lm
new file mode 100644
index 000000000000..e4b65ecdad56
--- /dev/null
+++ b/test/user-template/user/fingerprint/thai.lm
@@ -0,0 +1,400 @@
+_ 6290
+Ã’ 5252
+Ã 4377
+¹ 3920
+¡ 3050
+è 2984
+Ã 2657
+§ 2522
+Ñ 2454
+Ã 2369
+é 2304
+à 2158
+Â 1981
+Ç 1908
+Õ 1693
+Ã… 1543
+Ô 1443
+´ 1422
+· 1398
+µ 1398
+» 1301
+Ë 1245
+Ã 1239
+¤ 1210
+º 1181
+Ê 1081
+¨ 1045
+ä 978
+ÒÃ 951
+¾ 907
+ª 892
+èÒ 829
+á 795
+¡Ò 735
+ã 722
+¡ÒÃ 710
+¢ 691
+ÒÂ 688
+× 668
+ç 595
+. 588
+ç 553
+Ø 543
+ÃÑ 532
+Õè 528
+Ãà 522
+»Ã 522
+·Õ 477
+Ù 452
+·Õè 451
+èà 443
+¹Ò 441
+Ó 422
+Ò§ 419
+éÒ 414
+ì 388
+¹_ 378
+ÃÃ 367
+Ã’Ã 360
+° 354
+Ѻ 349
+Ã’_ 347
+éà 345
+»Ãà 340
+Çè 337
+ÃÒ 337
+Ãè 336
+ÇèÒ 336
+à» 334
+Ò¹ 333
+Ñé 332
+¡Ã 328
+´é 325
+Ö 322
+_à 320
+ç¹ 314
+À 313
+ÃÃ’ 299
+ѧ 297
+Ò¡ 297
+×à 296
+äà 295
+Ñ° 293
+ÃÑ° 293
+×è 290
+â 289
+äÃè 288
+¸ 285
+ã¹ 280
+¼ 273
+è§ 268
+¹ÒÂ 268
+é¹ 266
+¾Ã 263
+ѹ 263
+³ 263
+áÅ 256
+¹¡ 254
+ËÒ 253
+§¡ 252
+×èà 251
+ÃÕ 251
+ä´ 248
+­ 248
+ä´é 248
+¨à 248
+»ç¹ 247
+à»ç¹ 247
+ȍ 247
+à»ç 247
+á 245
+ÇÒ 245
+ãË 244
+¶ 244
+ªÒ 243
+µÔ 241
+_á 240
+¡Ñ 238
+È 237
+_¡ 236
+µè 234
+« 227
+éÇ 225
+é§ 221
+É 216
+¡ 214
+ä 213
+ÕÂ 211
+Ñé§ 211
+Ãà 211
+¢à 210
+Ô¹ 209
+èÇ 206
+Õé 202
+Ã…Ã 202
+˹ 201
+¹Ñ 201
+_¹ 200
+µÃ 197
+Ëé 196
+§_ 193
+ù 191
+Ãà 191
+ÀÒ 188
+ÃÂ 188
+ÒÇ 186
+¢Ã§ 184
+¹Õ 184
+ãËé 183
+¤Ç 183
+ÃÕ 181
+§à 180
+¡Å 179
+áÅà 178
+èÒ§ 177
+èÒ_ 176
+Ãä 176
+_¾ 176
+¤ÇÒà 174
+¹µ 174
+ÇÒà 174
+¤ÇÒ 174
+Ñ´ 172
+Ô´ 172
+ÇèÒ_ 171
+¾Ãà 167
+¨Ò 167
+ù 167
+Òµ 167
+¹Õé 167
+¾Ãä 166
+¡ç 166
+¤Ã 165
+¹à 165
+è¹ 163
+ºÒ 162
+¢é 161
+§ã 161
+Õ_ 161
+ì_ 154
+ËÅ 154
+Ã× 154
+éç 151
+¹¡Òà 151
+¹¡Ò 151
+ä» 150
+Ñ¡ 150
+é_ 148
+ÃÒÂ 147
+µÑ 146
+¹· 146
+ÅÑ 146
+Â_ 146
+ྠ145
+Åé 140
+à¡ 139
+¨Ò¡ 139
+àà 138
+ÃÔ 138
+¾Å 137
+Ã× 136
+·Ñ 135
+¡Ñº 134
+Ò¡ 133
+_Ã 132
+ºÃ 132
+§ä 132
+Ãà 131
+à· 130
+Åè 129
+ÒµÔ 129
+_· 128
+¡Ô 128
+µÃÕ 128
+ÃѺ 128
+Õ¡ 128
+àË 127
+¹à 127
+µé 126
+_¹Ò 126
+ªÒµÔ 126
+Ã…Ã’ 126
+ªÒµ 126
+¹Ç 126
+Òà 126
+_áÅ 125
+§¹ 124
+§¤ 124
+¡ÒÃà 124
+ÒÃà 124
+ÃÃ 123
+Ò¤ 122
+  122
+áµ 122
+àÊ 121
+ÇÑ 121
+Ñé¹ 120
+ÃÃà 120
+Ò· 119
+¹µÃ 119
+èÒÇ 118
+áµè 118
+§· 117
+ǹ 117
+ÂÑ 117
+ùµÃ 117
+¹µÃÕ 117
+ùµ 117
+ùµÃÕ 117
+Ãà 116
+Ùé 116
+_¹ÒÂ 116
+àÃ× 116
+°Ã¹ 115
+àà 115
+ÃѰù 115
+Ëà 115
+ࢠ115
+Ñ°à 115
+Ã. 115
+Ѱùµ 115
+ÃÑ°à 115
+°Ã¹µ 115
+Ѱù 115
+°Ã¹µÃ 115
+°à 115
+_áÅà 113
+éà 113
+Ãè 113
+èà 112
+㨠112
+_Ê 112
+¹Ñé 111
+Ô» 111
+¹Ñé¹ 111
+èà 111
+èä 110
+_Ã 110
+Âà 110
+_¨ 110
+Ò¨ 109
+»ÃÒ 108
+¹Ò¡ 108
+_Ë 107
+Ñ­ 107
+éÒ¹ 107
+¨Ñ 106
+§¡Ò 106
+_¤ 106
+§¡Òà 105
+ÇÂ 105
+Ôµ 105
+¹é 105
+Ã’Ã… 103
+´Â 102
+è_ 102
+ÃÃà 102
+àà 102
+¹¹ 102
+ÃÃ’ 101
+â´ 100
+悅 100
+ªè 100
+_ä 99
+ÇÅ 99
+悇 99
+â´Â 99
+Ã_ 98
+ê 98
+¾Ñ 98
+»ÃÃà 98
+¡à 97
+Öè§ 97
+¡_ 97
+Öè 97
+Òª 97
+é¹_ 96
+ÅÔ 96
+Ñ°º 94
+Ò¾ 94
+ÃÑ°º 94
+¼Ù 94
+°º 94
+Âè 93
+¹ä 93
+·Ò 93
+°ºÒ 92
+ÅèÒ 92
+Ã…. 92
+Ñ°ºÒ 92
+¡Ñ¹ 92
+Ñ°ºÒÅ 92
+§Ã 92
+ÃÑ°ºÒ 92
+ºÒÅ 92
+°ºÒÅ 92
+Ö§ 92
+.Ã 91
+¢éÒ 91
+á 91
+_¾Å 90
+ÃÂè 90
+¾Å. 90
+Ãà 90
+ÃÂèÒ 90
+ÂèÒ 90
+¡Ãà 89
+.Ã. 89
+ÂèÒ§ 89
+Õé_ 89
+ÃÂèÒ§ 89
+儤 89
+ÊØ 89
+抅 88
+ú 88
+_â 88
+Ã….Ã 87
+èç 87
+Ãê 87
+Ãà 87
+ÂÇ 87
+Åѧ 87
+¾Å.Ã. 87
+Ã….Ã. 87
+¹Õé_ 87
+à´ 87
+á 87
+¼Ùé 87
+ÇÔ 87
+¾Å.à 87
+»Ãê 87
+Ȅ 87
+' 86
+ÊÔ 86
+Êè 86
+Ãèä 86
+_¾Å. 86
+·Ò§ 86
+Çà 85
+¡à 85
+§ 85
+._ 85
+¡ÃÑ 85
+ÃÀ 85
+ªÇ 84
+Ã’Ã 84
+¹éÒ 84
+¡ÃÑ° 84
+ÀÔ 84
+·Ó 84
+ËÒÃ 84
+_¾Å.à 84
+ÃÃ 83
+§Ê 83
+ÃÀÔ 83
+äÃèä 83
+ѵ 82
+»ÃÒ 82
+¤¹ 82
+Ã_ 82
diff --git a/test/user-template/user/fingerprint/turkish.lm b/test/user-template/user/fingerprint/turkish.lm
new file mode 100644
index 000000000000..553be45fd735
--- /dev/null
+++ b/test/user-template/user/fingerprint/turkish.lm
@@ -0,0 +1,400 @@
+_ 23226
+i 8957
+a 7675
+e 6219
+n 5169
+& 4950
+; 4950
+l 4674
+r 4464
+&i 3206
+&i; 3206
+i; 3206
+s 3206
+k 3009
+d 2977
+t 2442
+m 2010
+y 2001
+u 1885
+n_ 1725
+g 1584
+o 1567
+b 1470
+e_ 1426
+ü 1353
+ar 1273
+la 1236
+a_ 1209
+i_ 1169
+in 1124
+_b 1101
+an 1097
+er 1073
+le 1058
+s; 1036
+&s; 1036
+&s 1036
+;_ 1018
+de 936
+;n 918
+&i;n 917
+i;n 917
+,_ 872
+_, 872
+_,_ 872
+, 872
+i;_ 863
+&i;_ 863
+_k 816
+en 769
+r_ 762
+_y 759
+da 759
+il 759
+k_ 750
+z 739
+nd 725
+&g; 708
+g; 708
+&g 708
+ra 697
+_a 692
+_d 692
+_s 676
+' 673
+_i 644
+._ 641
+. 641
+_. 637
+_._ 637
+c 637
+ka 635
+v 632
+;& 624
+h 615
+_g 597
+ri 596
+ç 596
+lar 583
+li 580
+ma 559
+ya 555
+ler 553
+p 547
+re 529
+al 529
+ö 527
+_t 520
+ir 508
+ak 502
+bi 500
+;l 480
+in_ 478
+di 477
+r& 468
+el 453
+et 449
+ek 445
+n& 439
+_o 439
+ol 437
+da_ 434
+n&i 433
+n&i; 433
+ni 429
+ti 428
+de_ 425
+an_ 422
+eri 421
+r&i 417
+r&i; 417
+s& 413
+s&i 413
+s&i; 413
+ar& 412
+me 407
+te 405
+a& 404
+i& 390
+ay 387
+ne 380
+_bi 373
+_ka 368
+ar&i; 367
+ar&i 367
+u_ 363
+as 363
+_e 362
+ta 359
+&i;l 352
+i;l 352
+nda 350
+ki 347
+na 346
+si 343
+_v 337
+;&i; 334
+;&i 334
+ve 334
+ara 333
+en_ 332
+;i 331
+on 328
+un 326
+l&i; 322
+l& 322
+l&i 322
+leri 322
+ba 318
+_m 318
+ik 315
+mi 315
+f 306
+lar& 302
+lar&i 302
+sa 298
+_h 297
+ld 296
+&i;& 290
+i;& 290
+_ve 288
+l_ 287
+ge 286
+is 285
+ed 285
+i&s; 284
+i&s 284
+;r 282
+_ya 279
+_ol 279
+d&i; 278
+d& 278
+d&i 278
+nl 277
+kl 275
+;k 274
+&i;n_ 271
+;n_ 271
+i;n_ 271
+ile 270
+or 269
+iy 267
+a&s 264
+a&s; 264
+y&i; 262
+ad 262
+y& 262
+y&i 262
+ye 259
+ha 258
+es 258
+t& 257
+t&i 257
+t&i; 257
+ini 253
+;nd 253
+i;nd 253
+ür 253
+&i;nd 253
+se 248
+_ge 248
+i;nda 248
+;nda 248
+;n&i; 247
+i;n& 247
+;n& 247
+&i;n& 247
+i;n&i 247
+;n&i 247
+bu 245
+_' 245
+_ba 244
+as&i 242
+as&i; 242
+_de 242
+as& 242
+at 240
+am 240
+nda_ 239
+ar_ 231
+ve_ 230
+rin 230
+_ve_ 228
+_bu 227
+im 227
+&i;r 226
+i;r 226
+ur 221
+g;&i 220
+g;& 220
+&g;& 220
+yo 220
+&g;&i 220
+g;&i; 220
+ul 215
+ak_ 215
+ke 213
+nu 213
+erin 211
+g;i 208
+&g;i 208
+lan 207
+bir 205
+r&i;n 205
+nde 202
+rl 202
+n&i;_ 201
+ko 201
+ca 200
+m_ 197
+rd 196
+t_ 194
+er_ 194
+st 193
+em 193
+_sa 190
+lm 189
+rt 188
+_ü 187
+i;k 187
+ün 187
+ola 187
+&i;k 187
+lerin 185
+ce 185
+'_ 185
+;m 183
+az 183
+rk 182
+yü 182
+;la 181
+_bir 181
+ir_ 180
+n&i;n 180
+ru 180
+lu 180
+;nda_ 178
+e& 177
+_ç 176
+_ha 175
+_ko 173
+esi 171
+_ö 170
+ap 170
+ni_ 168
+tü 167
+den 164
+ind 161
+di_ 161
+be 161
+s&i;n 160
+nin 159
+üz 158
+ri_ 155
+y&i;l 155
+_p 154
+nin_ 153
+&s;_ 152
+_y& 152
+edi 152
+s;_ 152
+_y&i; 152
+_y&i 152
+yl 151
+le_ 151
+inde 150
+eti 150
+ala 150
+&i;&s 149
+ele 149
+i;&s; 149
+;&s; 149
+;&s 149
+i;&s 149
+ek_ 148
+ere 148
+çi 147
+du 145
+ön 145
+z_ 144
+na_ 144
+eri_ 143
+ec 142
+gö 142
+i;&g; 141
+s&i;_ 141
+bir_ 141
+&i;&g 141
+i;&g 141
+ah 141
+;&g; 141
+;&g 141
+_gö 140
+lar_ 140
+eli 140
+a&g; 140
+a&g 140
+dan 140
+ac 140
+iç 140
+an& 140
+u& 139
+;&g;& 138
+_yü 138
+an&i 138
+an&i; 138
+pa 138
+it 137
+_ola 137
+_bir_ 136
+;t 135
+ör 135
+ne_ 135
+ini_ 134
+lma 134
+kan 133
+ab 132
+to 131
+ba& 131
+kar 130
+r&i;_ 130
+_ar 129
+ili 129
+li_ 129
+ki_ 128
+bu_ 127
+anl 127
+dü 127
+ler_ 126
+_ba& 126
+kon 126
+ll 125
+tl 125
+ine 125
+e&g; 124
+e&g 124
+_il 124
+_bu_ 124
+re_ 124
+bil 123
+&s;i 123
+;&i;n 123
+s;i 123
+ede 123
+zd 123
+'' 122
+_da 122
+_'' 122
+_tü 122
+ret 122
+_-_ 121
+_''_ 121
+mas 121
+''_ 121
+- 121
+dan_ 121
+leri_ 121
+;u 121
+_- 121
+ev 121
diff --git a/test/user-template/user/fingerprint/ukrainian.lm b/test/user-template/user/fingerprint/ukrainian.lm
new file mode 100644
index 000000000000..438bbdabae46
--- /dev/null
+++ b/test/user-template/user/fingerprint/ukrainian.lm
@@ -0,0 +1,400 @@
+_
+о
+и
+а
+â••
+в
+н
+Ñ€
+Ñ‚
+е
+д
+л
+к
+у
+п
+_п
+м
+и_
+_в
+з
+â••_
+а_
+б
+о_
+е_
+ь
+г
+ч
+_Ñ‚
+ов
+_з
+_д
+у_
+в╕
+.
+_Ñ
+ли
+ро
+в_
+на
+по
+ш
+ÑŽ
+ти
+й
+ж
+ор
+Ñ…
+_к
+ит
+ин
+щ
+╕д
+"
+_б
+Ñ_
+до
+ви
+ц
+О
+ом
+ко
+_н
+пр
+â•“
+ра
+ни
+С
+._
+то
+од
+ка
+ло
+_по
+ри
+м_
+ÑŽ_
+ки
+_пр
+ал
+н╕
+ть
+_м
+ен
+ол
+ер
+,
+го
+ь_
+ою
+"_
+_до
+ар
+за
+й_
+на_
+_в_
+во
+ил
+бу
+та
+â•–
+_щ
+ав
+ки_
+_â••
+що
+И
+об
+да
+уд
+д╕
+мо
+_бу
+_â••_
+ть_
+Т
+ог
+Р
+_за
+,_
+╕в
+_ц
+╕н
+ою_
+╕л
+ÑÑ‚
+п╕
+де
+ат
+оÑ
+те
+ну
+не
+_що
+_в╕
+в╕д
+_о
+дн
+ти_
+ла
+а╓
+ли_
+ого
+Ñ‚â••
+он
+П
+о╖
+хо
+ик
+_ч
+ле
+_Ñ€
+â•–_
+л╕
+ц╕
+_П
+ом_
+що_
+но
+р╕
+ду
+ить
+_п╕
+ьк
+н╕_
+_"
+же
+з_
+_не
+ÑÑ
+аж
+Я
+З
+Ð’
+_г
+â•“_
+Ñ…_
+_ви
+иÑ
+_то
+оро
+ва
+нн
+_л
+ов╕
+_що_
+ди
+про
+_мо
+ль
+му
+ем
+н_
+ий_
+_Ñ‚â••
+ати
+Я_
+ще
+_про
+К
+оди
+оло
+рт
+ак
+ить_
+ад
+о╖_
+ив
+лÑ
+ий
+_Ñ
+_Ð
+го_
+до_
+_З
+_ка
+п╕д
+нÑ
+_ко
+_на
+че
+чи
+_Ñо
+_ÑÑ‚
+а╓_
+_з_
+же_
+при
+ÑÑ_
+ови
+б╕
+ка_
+╕й
+ого_
+пе
+би
+╕ль
+â••Ñ‚
+к_
+_буд
+ма
+Ñо
+Ñи
+буд
+Ñв
+пов
+оз
+ок
+Л
+_при
+Г
+Д
+оч
+тор
+ур
+га
+уде
+аз
+ел
+ан
+их_
+╕льк
+ити
+ен╕
+к╕
+ому
+их
+ен╕_
+льк
+_до_
+_Ñ…
+ве
+ОС
+му_
+_п╕д
+не_
+ннÑ
+зн
+буде
+ча
+ому_
+али
+â••Ñ
+ц╕_
+ин_
+_буде
+â••Ñ€
+â••Ñ
+ннÑ_
+д_
+!
+чен
+Ñ„
+Й
+ов╕д
+_пра
+дов
+льки
+ув
+ру
+ре
+гр
+_пер
+_не_
+╕да
+тер
+рон
+Й_
+енн
+рн
+пер
+им
+ши
+╕льки
+ла_
+льки_
+шо
+ба
+_й
+."
+в╕р
+_т╕ль
+ход
+ьки
+_Ñоб
+иш
+дем
+Ñто
+_С
+_К
+ви_
+арти
+_Ñто
+_Ð’
+СТ
+вÑ
+нк
+вч
+вÑ
+дно
+_л╕
+т╕л
+!_
+_ки
+_у
+╕й_
+ван
+ьки_
+нÑ_
+т╕ль
+чо
+рти
+бит
+еннÑ
+ину
+_Ñв
+вин
+д╕_
+пра
+ну_
+каж
+_па
+_пе
+_за_
+удем
+будем
+т╕льк
+арт
+кою
+ьо
+па
+I
+зна
+але
+щен
+."_
+аже
+пов╕
+за_
+_ро
+_гр
+ми
+_т╕л
+Ñоб
+РО
+_в╕д
+карт
+каже
+*
+ЗÐ
+Ч
+_Ñтор
+╕нк
+ож
+Б
diff --git a/test/user-template/user/fingerprint/vietnamese.lm b/test/user-template/user/fingerprint/vietnamese.lm
new file mode 100644
index 000000000000..14221268dc1e
--- /dev/null
+++ b/test/user-template/user/fingerprint/vietnamese.lm
@@ -0,0 +1,400 @@
+_ 88044
+n 17000
+h 12823
+t 9071
+i 8490
+c 8394
+g 8035
+ng 6718
+_t 6352
+_c 5234
+a 5083
+g_ 4883
+ng_ 4882
+_n 4379
+n_ 4365
+i_ 4365
+u 4149
+m 3648
+à 3635
+nh 3480
+o 3451
+Ç 3193
+_Ç 3168
+r 3011
+l 2692
+Ü 2659
+, 2328
+,_ 2295
+c_ 2279
+_l 2263
+ch 2226
+v 2161
+th 2158
+a_ 2132
+_th 2113
+y 2111
+. 2107
+t_ 2106
+h_ 2074
+_v 2057
+_h 1888
+_m 1834
+_ch 1813
+s 1749
+nh_ 1715
+u_ 1679
+á 1668
+à_ 1649
+tr 1611
+b 1589
+_tr 1581
+_nh 1541
+_b 1530
+m_ 1505
+p 1483
+._ 1455
+k 1429
+_s 1415
+o_ 1380
+y_ 1371
+_k 1367
+_ng 1348
+© 1343
+e 1296
+ó 1208
+‰ 1199
+ô 1181
+¶ 1139
+Ã¥ 1132
+T 1126
+hi 1121
+â 1081
+ì 1058
+ê 1055
+d 1040
+_g 1039
+kh 1034
+_kh 1027
+_T 994
+©i 967
+là 943
+_là 941
+" 926
+ä 916
+Ü© 901
+an 893
+_d 888
+Ó 877
+©i_ 859
+on 853
+Ã 848
+N 846
+Š 820
+ó_ 813
+Π801
+ôn 795
+ph 776
+_p 772
+_ph 752
+û 752
+§ 734
+hÜ 728
+ho 715
+và 709
+_và 703
+gÜ 702
+® 700
+_r 696
+H 693
+_là_ 691
+là_ 691
+Ü©i 684
+àn 679
+ên 677
+ông 676
+ha 672
+gi 663
+C 656
+_gi 655
+Ö 654
+gܩi 646
+gܩ 646
+Ü©i_ 624
+ông_ 610
+ngÜ 610
+_ngÜ 608
+ác 606
+ú 601
+ngܩ 600
+ngܩi 600
+_ngܩ 598
+gܩi_ 594
+ûa 587
+cû 586
+_cû 585
+¶t 585
+cûa 585
+ên_ 585
+_cûa 584
+có 583
+ûa_ 582
+_có 581
+cûa_ 581
+ã 581
+_cûa_ 580
+¶t_ 578
+_N 574
+có_ 574
+» 573
+_có_ 572
+iΠ568
+À 562
+‹ 562
+m¶ 557
+_C 553
+_m¶ 551
+p_ 540
+Æ 540
+m¶t 538
+m¶t_ 534
+_m¶t 532
+ìn 528
+_m¶t_ 528
+ti 526
+i‰ 525
+Ù 517
+ÃŽ 512
+ình 500
+.. 500
+† 497
+và_ 497
+_và_ 496
+æ 491
+q 490
+qu 490
+_H 487
+_q 484
+_qu 484
+ong 481
+ong_ 471
+há 471
+x 470
+hô 468
+¿ 466
+_" 460
+Ü® 456
+ro 453
+ình_ 445
+ì_ 434
+_x 434
+ã_ 427
+í 423
+_ti 423
+in 422
+ân 421
+"_ 418
+iŠ 415
+Ön 413
+ron 412
+V 411
+rong 410
+§i 410
+rong_ 409
+ác_ 405
+ª 400
+‰n 399
+hôn 398
+Ã¥i 395
+ay 390
+_V 387
+h» 382
+hà 380
+ày 377
+Ãt 376
+uy 374
+ÇÜ 374
+_ÇÜ 373
+§i_ 372
+cá 371
+_cá 367
+nà 366
+‹_ 366
+hú 366
+_nà 365
+ra 363
+hông 362
+ho_ 359
+ân_ 356
+án 356
+° 355
+Ã¥i_ 354
+ai 352
+hu 352
+cho 352
+ܮc 351
+®c 351
+Ón 351
+_cho 349
+tro 347
+‰t 347
+ào 347
+_tro 346
+_tron 346
+ñ 346
+tron 346
+trong 346
+M 345
+khô 340
+âu 338
+_khô 338
+cho_ 337
+_cho_ 336
+hông_ 336
+ay_ 333
+ch_ 332
+Çã 331
+Ãt_ 331
+( 331
+_( 330
+Ã’ 329
+_Çã 329
+ÇÜ® 328
+_ÇÜ®c 328
+) 328
+ÇÜ®c 328
+_ÇÜ® 328
+khôn 324
+_ñ 324
+_khôn 322
+Çã_ 322
+_Çã_ 320
+ò 318
+Ã¥n 318
+không 316
+ào_ 316
+ܮc_ 316
+®c_ 316
+nhÜ 315
+Ü_ 315
+»ng 313
+»ng_ 313
+»n 313
+_nhÜ 313
+Th 312
+hì 311
+Û 310
+h»n 310
+h»ng_ 310
+h»ng 310
+iê 309
+gh 309
+Šu 307
+ta 307
+anh 307
+¡ 307
+ai_ 306
+àng 306
+ày_ 304
+ÇÜ®c_ 298
+ÜÖ 295
+S 295
+: 294
+‰t_ 294
+e_ 294
+:_ 290
+ÃŽ_ 289
+ua 288
+æn 288
+ài 286
+Šu_ 285
+_nh» 285
+nh» 285
+nh»ng 285
+nh»n 285
+_nh»n 285
+_Th 285
+‰n_ 284
+ÂŒn 283
+Ø 281
+_M 281
+A 281
+úc 278
+L 277
+ø 277
+ÜÖn 276
+_ha 276
+n, 275
+Öng 275
+ÜÖng 275
+an_ 272
+ài_ 271
+iŠu 269
+sÓ 269
+n,_ 268
+¿_ 268
+on_ 267
+_sÓ 267
+các 265
+àng_ 265
+_các 264
+anh_ 264
+ngh 264
+_ta 263
+hi_ 262
+hàn 261
+Š_ 261
+âu_ 261
+Àn 260
+ù 260
+_ngh 257
+ia 255
+¢ 252
+... 252
+êu 251
+Ùc 251
+i, 249
+iŠu_ 248
+nhi 247
+B 246
+i,_ 245
+Óng 244
+ª_ 244
+co 244
+_nhi 244
+Â¥ 244
+ܧ 244
+iên 243
+D 243
+Tr 241
+_S 240
+hÜ_ 239
+òn 237
+hà 236
+hÆ 233
+K 233
+Öng_ 232
+ôi 232
+ÜÖng_ 232
+Àn_ 231
+_co 231
+ÂŒn_ 229
+hå 229
+äi 229
+yê 229
+Ûn 229
+¢n 228
+Ûng 228
+_L 227
+Ûng_ 226
+inh 226
+Çi 225
+mà 225
+_Çi 225
+ng, 224
+ang 224
+P 224
+Šn 224
+g, 224
+g,_ 223
+_v§ 223
diff --git a/test/user-template/user/fingerprint/welsh.lm b/test/user-template/user/fingerprint/welsh.lm
new file mode 100644
index 000000000000..c25d4a410bef
--- /dev/null
+++ b/test/user-template/user/fingerprint/welsh.lm
@@ -0,0 +1,400 @@
+_ 78614
+a 18113
+d 17890
+y 16837
+e 14108
+n 13902
+r 13869
+i 12928
+o 9972
+l 9188
+h 7454
+g 7165
+w 7010
+t 6296
+f 6080
+u 5400
+n_ 5159
+_y 5051
+dd 4946
+s 4884
+r_ 4547
+m 4364
+d_ 4223
+yn 4082
+_a 4020
+c 3707
+th 3301
+u_ 2900
+yd 2900
+ae 2649
+l_ 2588
+_g 2547
+. 2460
+' 2458
+._ 2408
+wy 2334
+yn_ 2331
+_d 2307
+b 2267
+ym 2262
+ra 2261
+an 2235
+ar 2228
+ol 2218
+ia 2212
+i_ 2199
+ed 2191
+_yn 2038
+_i 2020
+y_ 1983
+_c 1934
+_yn_ 1861
+ei 1815
+it 1796
+g_ 1787
+ith 1779
+dd_ 1745
+h_ 1741
+ydd 1731
+ai 1709
+au 1708
+'r_ 1655
+'r 1655
+_y_ 1621
+di 1615
+, 1613
+,_ 1608
+da 1585
+od 1546
+_o 1535
+ad 1532
+th_ 1510
+ll 1494
+au_ 1492
+_s 1415
+er 1359
+o_ 1350
+io 1311
+a_ 1299
+ol_ 1294
+_e 1273
+_h 1249
+cy 1246
+yr 1243
+en 1228
+p 1217
+_f 1212
+_cy 1203
+mr 1200
+gy 1193
+ymr 1185
+ha 1172
+hy 1164
+eg 1159
+do 1151
+edd 1147
+G 1134
+we 1107
+C 1089
+_ar 1078
+_m 1075
+yf 1057
+de 1048
+fe 1047
+_G 1045
+ch 1043
+rae 1023
+el 1016
+no 1010
+ni 1010
+_b 1009
+ne 1001
+ef 992
+ri 983
+et 978
+_C 957
+_gy 952
+_a_ 943
+eth 943
+_. 940
+_._ 939
+eit 930
+eith 927
+ys 921
+wyd 912
+ga 901
+_i_ 893
+s_ 887
+mrae 878
+mraeg 878
+raeg 878
+ymrae 878
+aeg 878
+ymra 878
+mra 878
+_p 856
+aet 850
+aeth 850
+_n 844
+un 838
+on 836
+ait 833
+aith 833
+nn 830
+at 827
+oe 823
+li 805
+_r 801
+ddi 795
+gw 789
+ma 783
+le 777
+nt 772
+ho 769
+ff 766
+yr_ 764
+na 753
+la 748
+rh 747
+eg_ 734
+si 733
+ng 732
+dol 732
+ro 718
+al 712
+_dd 706
+wn 705
+oed 705
+Gy 704
+dy 701
+Cy 696
+o' 692
+ar_ 691
+ny 690
+Gym 678
+wr 677
+id 676
+_Gy 672
+_o_ 668
+Gymr 667
+if 662
+ith_ 662
+_ar_ 660
+iad 657
+_w 657
+fo 656
+eu 655
+aeg_ 650
+raeg_ 650
+aith_ 648
+or 648
+_Gym 646
+fa 642
+re 638
+_Cy 638
+_Gymr 635
+_gw 633
+fy 633
+oedd 633
+edd_ 629
+rd 627
+od_ 622
+ac 619
+ddo 612
+an_ 607
+Gymra 606
+er_ 605
+A 604
+eth_ 601
+hw 596
+ydd_ 591
+o'r 586
+o'r_ 586
+es 583
+ir 579
+dw 573
+go 559
+yl 548
+rw 545
+aeth_ 545
+wydd 543
+aw 539
+_rh 539
+dr 537
+ly 537
+fn 534
+dau 533
+_hy 531
+t_ 531
+sg 529
+'n 529
+* 528
+'n_ 523
+_* 522
+nyd 521
+nydd 521
+M 519
+st 518
+Y 516
+sy 515
+yd_ 513
+lw 512
+_ga 508
+iai 503
+il 502
+_l 499
+rt 494
+ad_ 493
+_yr 493
+_yr_ 492
+as 492
+dol_ 492
+f_ 491
+dda 491
+ig 490
+og 484
+wa 479
+he 478
+iaith 477
+iait 477
+oedd_ 475
+_ma 473
+c_ 472
+Cym 470
+te 469
+_ym 467
+am 467
+_M 465
+_ia 462
+efn 462
+i' 460
+ie 458
+_Cym 458
+_ac 457
+dau_ 456
+yw 455
+ew 453
+fr 441
+fod 441
+_A 441
+du 437
+_sy 434
+e_ 432
+wi 426
+Cymr 426
+se 425
+B 424
+D 424
+_Cymr 423
+bl 423
+lu 420
+in 417
+_t 417
+tr 414
+ac_ 413
+wed 410
+os 410
+_iai 407
+_iait 407
+el_ 405
+_ac_ 405
+rha 404
+m_ 404
+is 403
+on_ 401
+eu_ 393
+hi 393
+rdd 393
+id_ 389
+_Y 388
+ry 387
+odd 387
+rwy 387
+rf 386
+io_ 380
+ynn 380
+cyf 380
+hr 380
+_cyf 379
+yddi 379
+cyn 372
+_de 372
+rth 371
+ru 368
+S 363
+wei 363
+ysg 362
+_B 362
+u' 361
+yddo 360
+wn_ 360
+so 359
+dio 359
+_ei 358
+N 356
+dwy 355
+_da 353
+me 353
+gan 353
+gyf 353
+w_ 352
+_o' 351
+fer 349
+nol 347
+hyn 346
+ddy 346
+af 346
+ta 343
+ddol 343
+_fe 340
+nd 340
+mae 338
+_cyn 338
+efnyd 337
+fnydd 337
+fny 337
+efny 337
+fnyd 337
+iad_ 335
+_mae 333
+ion 333
+_ll 330
+def 330
+_gyf 327
+nt_ 326
+i'r_ 326
+- 326
+i'r 326
+weith 325
+weit 325
+defn 325
+defny 325
+bo 324
+hyd 323
+by 322
+_si 321
+ir_ 321
+hau 318
+nod 318
+edi 315
+I 314
+fyd 313
+wyr 313
+ada 311
+ddio 310
+rif 309
+sia 307
+sa 306
+fel 305
+tha 305
+_S 302
+_ne 302
+_u 301
+fod_ 300
+_o'r 300
+yg 300
+_o'r_ 300
+_i' 299
+ge 299
+dia 299
diff --git a/test/user-template/user/fingerprint/yiddish_utf.lm b/test/user-template/user/fingerprint/yiddish_utf.lm
new file mode 100644
index 000000000000..e3386a3c1d86
--- /dev/null
+++ b/test/user-template/user/fingerprint/yiddish_utf.lm
@@ -0,0 +1,400 @@
+× 29767
+_ 13552
+_× 6516
+Ö 4273
+ 3670
+× 3670
+×¢ 3261
+¢ 3261
+¢× 2826
+×¢× 2826
+×Ö 2785
+Ö 2785
+×™ 2565
+™ 2565
+¨ 2082
+ר 2082
+™× 2062
+×™× 2062
+˜ 1857
+ט 1857
+· 1828
+Ö· 1828
+Ÿ 1793
+ן 1793
+_× 1537
+Ÿ_ 1532
+ן_ 1532
+·× 1527
+Ö·× 1527
+×Ö· 1517
+Ö· 1517
+×¨× 1355
+¨× 1355
+œ 1270
+ל 1270
+¸ 1268
+×Ö¸ 1268
+Ö¸ 1268
+Ö¸ 1268
+Ö·× 1240
+×Ö·× 1240
+×  1232
+  1232
+×Ö¸× 1229
+Ö¸× 1229
+¸× 1229
+Ö¸× 1229
+× × 1181
+ × 1181
+ו 1116
+• 1116
+“ 1031
+ד 1031
+×˜× 1012
+˜× 1012
+×œ× 1007
+œ× 1007
+×•× 975
+•× 975
+×“× 965
+“× 965
+×¤Ö 929
+¤ 929
+פ 929
+¤Ö 929
+¢×¨ 873
+ער 873
+×× 870
+× 870
+×– 868
+– 868
+¡ 832
+ס 832
+§ 797
+ק 797
+_×× 784
+מ 766
+ž 766
+_×Ö 752
+ž× 747
+×ž× 747
+’ 742
+×’ 742
+© 725
+ש 725
+ט_ 699
+˜_ 699
+×° 691
+° 691
+×°× 674
+°× 674
+² 667
+ײ 667
+’× 664
+×’× 664
+¿ 661
+Ö¿ 661
+×§× 654
+§× 654
+¿× 652
+Ö¿× 652
+×©× 651
+©× 651
+–× 643
+×–× 643
+פֿ 641
+¤Ö¿ 641
+×¤Ö¿× 638
+¤Ö¿× 638
+_×Ö· 638
+ר_ 592
+¨_ 592
+_ד 560
+_×“× 554
+, 551
+,_ 534
+ב 517
+‘ 517
+_×¤Ö 502
+_פ 502
+×‘× 472
+‘× 472
+×¡× 436
+¡× 436
+צ 436
+¦ 436
+×¦× 433
+¦× 433
+_×° 430
+_×°× 429
+” 410
+×” 410
+¢×¨_ 404
+_פֿ 404
+ער_ 404
+_מ 400
+_×ž× 396
+×’×¢ 390
+’×¢ 390
+_×– 390
+_×–× 386
+’×¢× 384
+ען 384
+×’×¢× 384
+¢×Ÿ 384
+×¢×¨× 382
+¢×¨× 382
+. 374
+××™ 372
+×™ 372
+Ö¼ 366
+¼ 366
+”× 363
+×”× 363
+×™× 362
+××™× 362
+_×’ 359
+×± 357
+± 357
+_×’× 356
+ון 349
+•×Ÿ 349
+×™_ 346
+™_ 346
+×¢_ 343
+¢_ 343
+•×Ÿ_ 337
+ון_ 337
+“×¢ 334
+דע 334
+_××™ 331
+ך 330
+š 330
+“×¢× 323
+¼× 323
+×“×¢× 323
+Ö¼× 323
+²× 322
+×²× 322
+ען_ 321
+¢×Ÿ_ 321
+±× 320
+×±× 320
+“×™ 317
+די 317
+²Ö· 311
+ַר 311
+×²Ö 311
+·×¨ 311
+ַר 311
+ײַ 311
+²Ö 311
+לע 310
+œ×¢ 310
+._ 307
+- 305
+·_ 297
+Ö·_ 297
+› 294
+×› 294
+ ×¢ 290
+× ×¢ 290
+ס_ 289
+¡_ 289
+פּ 288
+¤Ö¼ 288
+×²Ö·× 287
+²Ö·× 287
+ך_ 283
+š_ 283
+Ö·_ 274
+×Ö·_ 274
+Ö·×¨× 272
+·×¨× 272
+×œ×¢× 261
+œ×¢× 261
+_×”× 260
+_×” 260
+_צ 259
+™×© 257
+יש 257
+_×¦× 256
+×–×™ 254
+–×™ 254
+×¤Ö¼× 252
+¤Ö¼× 252
+מע 248
+ž×¢ 248
+_ק 247
+× ×¢× 247
+ ×¢× 247
+טע 245
+˜×¢ 245
+_×§× 245
+×ו 244
+×•× 244
+ו 244
+××•× 244
+¢×œ 238
+על 238
+”× 235
+×”× 235
+×”×Ö 235
+שט 235
+©×˜ 235
+”×Ö 235
+×›× 234
+›× 234
+_×‘× 231
+“ער 231
+_ב 231
+Ö·×  229
+·×  229
+·× × 228
+Ö·× × 228
+_×ו 227
+_×’×¢ 226
+ 219
+× 219
+" 218
+ž×¢× 217
+×ž×¢× 217
+°×¢ 217
+×°×¢ 217
+·×œ 216
+ַל 216
+_×–×™ 215
+_×  215
+×¢×œ× 212
+¢×œ× 212
+¨× 211
+×¨× 211
+_× × 211
+×˜×¢× 211
+˜×¢× 211
+×°× 210
+°× 210
+_דע 210
+°×Ö 209
+×°×¢× 209
+×°×Ö 209
+°×¢× 209
+™×©× 208
+×™×©× 208
+™×§ 207
+יק 207
+ר×Ö 206
+¨×Ö 206
+–_ 205
+×–_ 205
+ž×™ 196
+מי 196
+_ש 195
+×ž×™× 195
+ž×™× 195
+ַל 193
+_×©× 191
+Ö¿× 189
+¿× 189
+¤Ö¿× 189
+Ö¿×Ö 188
+¿×• 188
+Ö¿×•× 188
+ֿו 188
+¿×•× 188
+¿×Ö 188
+ון 187
+”×Ö¸ 186
+_×”× 185
+¤Ö¿×• 184
+_×¢ 179
+_די 178
+˜× 176
+×˜× 176
+ט×Ö 175
+˜×Ö 175
+ָס 174
+ָס 174
+יט 174
+™×˜ 174
+¸×¡ 174
+ל_ 173
+œ_ 173
+“×™_ 173
+די_ 173
+×_ 171
+·×œ× 171
+_ 171
+Ö·×œ× 171
+_×¢× 171
+ָט 169
+¸×˜ 169
+ָט 169
+יך 168
+™×š 168
+ָר 166
+–×™× 166
+ָר 166
+¸×¨ 166
+×–×™× 166
+× ×™ 164
+×¢×  164
+ ×™ 164
+¢×  164
+¨×™ 163
+רי 163
+יך_ 163
+™×š_ 163
+°×Ö¸ 162
+×¢× × 162
+¢× × 162
+¿×Ö· 160
+¢×˜ 160
+עט 160
+_×™ 158
+¨×™× 157
+™×¨ 157
+×¨×™× 157
+יר 157
+-× 156
+ָס_ 155
+¸×¡_ 155
+œ×™ 154
+_מי 154
+לי 154
+קע 153
+ונ 153
+§×¢ 153
+•×  153
+_×°× 152
+ ×™× 152
+× ×™× 152
+™×Ÿ 151
+ין 151
+××± 151
+×± 151
+×™Ö 150
+·×˜ 150
+´ 150
+™Ö 150
+×™Ö´ 150
+™Ö´ 150
+Ö´ 150
+ַט 150
+Ö´× 149
+™Ö´× 149
+´× 149
+×™Ö´× 149
+œ×™× 148
+_×™× 148
+×œ×™× 148
+×±× 146
+××±× 146
+Ö·×  146
+_××± 145
+¿×•×Ÿ 145
+×™×– 143
+™×– 143
+“×™× 142
+×“×™× 142
diff --git a/test/user-template/user/fingerprint/zulu.lm b/test/user-template/user/fingerprint/zulu.lm
new file mode 100644
index 000000000000..f30c09ced93f
--- /dev/null
+++ b/test/user-template/user/fingerprint/zulu.lm
@@ -0,0 +1,400 @@
+_
+a
+e
+i
+n
+u
+o
+l
+k
+h
+s
+a_
+b
+t
+m
+g
+w
+z
+e_
+i_
+ng
+ku
+d
+y
+la
+an
+_n
+th
+le
+_u
+o_
+el
+ba
+_k
+en
+in
+wa
+p
+_e
+zi
+.
+hi
+si
+al
+ha
+uk
+ab
+_i
+r
+is
+ka
+_a
+kh
+we
+li
+ni
+ma
+_ng
+he
+ul
+._
+ga
+thi
+la_
+be
+ak
+c
+on
+nd
+na
+ok
+am
+lo
+ho
+,
+se
+ph
+hi_
+ut
+es
+nga
+_ku
+,_
+ez
+thi_
+un
+uth
+le_
+uku
+hu
+f
+u_
+um
+ek
+ne
+go
+q
+_uk
+at
+aba
+_l
+sh
+lu
+M
+_uku
+ol
+_b
+hl
+ni_
+ngo
+kw
+-
+N
+ik
+oku
+em
+nt
+as
+ge
+az
+ya
+iz
+sa
+_o
+S
+uthi
+A
+za
+_w
+wa_
+_s
+mb
+kut
+kuth
+ela
+ye
+_y
+uthi_
+il
+ay
+ele
+ba_
+I
+dl
+nge
+ath
+ub
+ke
+U
+zo
+na_
+yi
+us
+kuthi
+esi
+ob
+v
+om
+ama
+it
+lo_
+bu
+L
+ezi
+j
+ny
+im
+ing
+li_
+_ab
+eni
+no
+de
+ela_
+ze
+ang
+ko
+ala
+lw
+yo
+zin
+_U
+lel
+eng
+mi
+_ngo
+eb
+uz
+me
+gi
+ti
+ukut
+so
+ukuth
+bo
+da
+_ba
+nz
+_aba
+the
+eli
+akh
+eni_
+E
+ban
+s_
+aka
+_kw
+ma_
+ap
+_ukut
+he_
+ini
+di
+K
+ka_
+ib
+kwa
+ulu
+ele_
+kho
+nj
+bi
+_z
+khu
+we_
+lal
+enz
+ho_
+et
+C
+gu
+zi_
+and
+hla
+ngi
+pha
+_um
+_ka
+isi
+_nge
+isa
+aph
+ung
+izi
+dla
+ala_
+zw
+nde
+to
+n_
+ne_
+nk
+ke_
+_I
+athi
+_no
+lan
+_wa
+kul
+B
+ind
+fu
+wen
+ikh
+azi
+ule
+kub
+e.
+_S
+x
+o.
+ona
+kha
+_iz
+je
+bh
+_M
+er
+kwe
+oba
+ane
+O
+_N
+sa_
+a.
+lwa
+_ez
+kus
+ki
+mu
+od
+"
+ebe
+P
+_nga
+hul
+_m
+ase
+ben
+_be
+T
+ic
+nda
+_si
+_na
+/
+ant
+ngu
+ad
+anga
+nje
+ith
+a._
+ye_
+athi_
+R
+os
+alo
+tha
+za_
+eth
+_es
+uma
+ana
+ile
+te
+ale
+aban
+:
+_A
+oba_
+hat
+kun
+ha_
+phe
+be_
+ali
+_am
+si_
+wo
+uy
+sik
+ise
+kan
+hath
+dlal
+_ne
+zwe
+aw
+han
+tu
+nye
+qe
+_ko
+ah
+hel
+thu
+isa_
+gob
+_K
+_lo
+ta
+_ama
+ot
+ula
+_em
+ze_
+i.
+ngob
+_izi
+hol
+ar
+ani
+ole
+uba
+_in
+up
+eka
+ini_
+goba
+tho
+hon
+_ezi
+ona_
+ezin
+ngoba
+lu_
+goba_
+ip
+a,
+eli_
+t_
+nya
+ndl
+sha
+_is
+the_
+i._
+amb
diff --git a/test/user-template/user/fonts/truetype/DejaVuSans-Bold.ttf b/test/user-template/user/fonts/truetype/DejaVuSans-Bold.ttf
new file mode 100644
index 000000000000..ac313d269cae
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSans-Bold.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSans-BoldOblique.ttf b/test/user-template/user/fonts/truetype/DejaVuSans-BoldOblique.ttf
new file mode 100644
index 000000000000..c818ae6e7c24
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSans-BoldOblique.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSans-ExtraLight.ttf b/test/user-template/user/fonts/truetype/DejaVuSans-ExtraLight.ttf
new file mode 100644
index 000000000000..45b1df611491
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSans-ExtraLight.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSans-Oblique.ttf b/test/user-template/user/fonts/truetype/DejaVuSans-Oblique.ttf
new file mode 100644
index 000000000000..d5ac60d6aa1d
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSans-Oblique.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSans.ttf b/test/user-template/user/fonts/truetype/DejaVuSans.ttf
new file mode 100644
index 000000000000..a99969e1b2db
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSans.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSansCondensed-Bold.ttf b/test/user-template/user/fonts/truetype/DejaVuSansCondensed-Bold.ttf
new file mode 100644
index 000000000000..91ccf5cda6b6
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSansCondensed-Bold.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSansCondensed-BoldOblique.ttf b/test/user-template/user/fonts/truetype/DejaVuSansCondensed-BoldOblique.ttf
new file mode 100644
index 000000000000..9f82d61cd089
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSansCondensed-BoldOblique.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSansCondensed-Oblique.ttf b/test/user-template/user/fonts/truetype/DejaVuSansCondensed-Oblique.ttf
new file mode 100644
index 000000000000..bb4872cc08cf
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSansCondensed-Oblique.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSansCondensed.ttf b/test/user-template/user/fonts/truetype/DejaVuSansCondensed.ttf
new file mode 100644
index 000000000000..2b79e6415e37
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSansCondensed.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSansMono-Bold.ttf b/test/user-template/user/fonts/truetype/DejaVuSansMono-Bold.ttf
new file mode 100644
index 000000000000..a6ff5aa1c5a8
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSansMono-Bold.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSansMono-BoldOblique.ttf b/test/user-template/user/fonts/truetype/DejaVuSansMono-BoldOblique.ttf
new file mode 100644
index 000000000000..9070783f4e79
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSansMono-BoldOblique.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSansMono-Oblique.ttf b/test/user-template/user/fonts/truetype/DejaVuSansMono-Oblique.ttf
new file mode 100644
index 000000000000..734e0be4f43c
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSansMono-Oblique.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSansMono.ttf b/test/user-template/user/fonts/truetype/DejaVuSansMono.ttf
new file mode 100644
index 000000000000..f7d27851b4f2
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSansMono.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSerif-Bold.ttf b/test/user-template/user/fonts/truetype/DejaVuSerif-Bold.ttf
new file mode 100644
index 000000000000..763d20902c96
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSerif-Bold.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSerif-BoldItalic.ttf b/test/user-template/user/fonts/truetype/DejaVuSerif-BoldItalic.ttf
new file mode 100644
index 000000000000..568153842bc7
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSerif-BoldItalic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSerif-Italic.ttf b/test/user-template/user/fonts/truetype/DejaVuSerif-Italic.ttf
new file mode 100644
index 000000000000..3b01cf3f2f50
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSerif-Italic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSerif.ttf b/test/user-template/user/fonts/truetype/DejaVuSerif.ttf
new file mode 100644
index 000000000000..64bd24c1a0ec
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSerif.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSerifCondensed-Bold.ttf b/test/user-template/user/fonts/truetype/DejaVuSerifCondensed-Bold.ttf
new file mode 100644
index 000000000000..2e292c300d46
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSerifCondensed-Bold.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSerifCondensed-BoldItalic.ttf b/test/user-template/user/fonts/truetype/DejaVuSerifCondensed-BoldItalic.ttf
new file mode 100644
index 000000000000..4eb02591773e
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSerifCondensed-BoldItalic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSerifCondensed-Italic.ttf b/test/user-template/user/fonts/truetype/DejaVuSerifCondensed-Italic.ttf
new file mode 100644
index 000000000000..d27836d1ca1c
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSerifCondensed-Italic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/DejaVuSerifCondensed.ttf b/test/user-template/user/fonts/truetype/DejaVuSerifCondensed.ttf
new file mode 100644
index 000000000000..2c217d17a328
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/DejaVuSerifCondensed.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/GenBasB.ttf b/test/user-template/user/fonts/truetype/GenBasB.ttf
new file mode 100644
index 000000000000..0538a008c24e
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/GenBasB.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/GenBasBI.ttf b/test/user-template/user/fonts/truetype/GenBasBI.ttf
new file mode 100644
index 000000000000..786c6276ffb3
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/GenBasBI.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/GenBasI.ttf b/test/user-template/user/fonts/truetype/GenBasI.ttf
new file mode 100644
index 000000000000..e326cd727222
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/GenBasI.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/GenBasR.ttf b/test/user-template/user/fonts/truetype/GenBasR.ttf
new file mode 100644
index 000000000000..6f37980e0600
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/GenBasR.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/GenBkBasB.ttf b/test/user-template/user/fonts/truetype/GenBkBasB.ttf
new file mode 100644
index 000000000000..0677a1113698
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/GenBkBasB.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/GenBkBasBI.ttf b/test/user-template/user/fonts/truetype/GenBkBasBI.ttf
new file mode 100644
index 000000000000..cf898574bd9b
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/GenBkBasBI.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/GenBkBasI.ttf b/test/user-template/user/fonts/truetype/GenBkBasI.ttf
new file mode 100644
index 000000000000..c62506b17ceb
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/GenBkBasI.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/GenBkBasR.ttf b/test/user-template/user/fonts/truetype/GenBkBasR.ttf
new file mode 100644
index 000000000000..9c76a38180a1
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/GenBkBasR.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationMono-Bold.ttf b/test/user-template/user/fonts/truetype/LiberationMono-Bold.ttf
new file mode 100644
index 000000000000..42941e57b165
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationMono-Bold.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationMono-BoldItalic.ttf b/test/user-template/user/fonts/truetype/LiberationMono-BoldItalic.ttf
new file mode 100644
index 000000000000..4682e4de1fcf
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationMono-BoldItalic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationMono-Italic.ttf b/test/user-template/user/fonts/truetype/LiberationMono-Italic.ttf
new file mode 100644
index 000000000000..e19f08cfb7c6
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationMono-Italic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationMono-Regular.ttf b/test/user-template/user/fonts/truetype/LiberationMono-Regular.ttf
new file mode 100644
index 000000000000..dea96958a1b3
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationMono-Regular.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSans-Bold.ttf b/test/user-template/user/fonts/truetype/LiberationSans-Bold.ttf
new file mode 100644
index 000000000000..b29a5640e414
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSans-Bold.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSans-BoldItalic.ttf b/test/user-template/user/fonts/truetype/LiberationSans-BoldItalic.ttf
new file mode 100644
index 000000000000..0b0bf94a5774
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSans-BoldItalic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSans-Italic.ttf b/test/user-template/user/fonts/truetype/LiberationSans-Italic.ttf
new file mode 100644
index 000000000000..4a430cdddd17
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSans-Italic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSans-Regular.ttf b/test/user-template/user/fonts/truetype/LiberationSans-Regular.ttf
new file mode 100644
index 000000000000..2de10634e06d
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSans-Regular.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSansNarrow-Bold.ttf b/test/user-template/user/fonts/truetype/LiberationSansNarrow-Bold.ttf
new file mode 100644
index 000000000000..a7f73aa809b2
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSansNarrow-Bold.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSansNarrow-BoldItalic.ttf b/test/user-template/user/fonts/truetype/LiberationSansNarrow-BoldItalic.ttf
new file mode 100644
index 000000000000..10cbf03969f0
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSansNarrow-BoldItalic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSansNarrow-Italic.ttf b/test/user-template/user/fonts/truetype/LiberationSansNarrow-Italic.ttf
new file mode 100644
index 000000000000..86bf39aafc7e
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSansNarrow-Italic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSansNarrow-Regular.ttf b/test/user-template/user/fonts/truetype/LiberationSansNarrow-Regular.ttf
new file mode 100644
index 000000000000..738b1c3d9cd5
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSansNarrow-Regular.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSerif-Bold.ttf b/test/user-template/user/fonts/truetype/LiberationSerif-Bold.ttf
new file mode 100644
index 000000000000..892746e128d1
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSerif-Bold.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSerif-BoldItalic.ttf b/test/user-template/user/fonts/truetype/LiberationSerif-BoldItalic.ttf
new file mode 100644
index 000000000000..ad754700fdef
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSerif-BoldItalic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSerif-Italic.ttf b/test/user-template/user/fonts/truetype/LiberationSerif-Italic.ttf
new file mode 100644
index 000000000000..e81544aab294
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSerif-Italic.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LiberationSerif-Regular.ttf b/test/user-template/user/fonts/truetype/LiberationSerif-Regular.ttf
new file mode 100644
index 000000000000..155675f711ce
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LiberationSerif-Regular.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LinBiolinumG_Bd.ttf b/test/user-template/user/fonts/truetype/LinBiolinumG_Bd.ttf
new file mode 100644
index 000000000000..230f377fc95f
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LinBiolinumG_Bd.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LinBiolinumG_It.ttf b/test/user-template/user/fonts/truetype/LinBiolinumG_It.ttf
new file mode 100644
index 000000000000..101aa0a3adeb
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LinBiolinumG_It.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LinBiolinumG_Re.ttf b/test/user-template/user/fonts/truetype/LinBiolinumG_Re.ttf
new file mode 100644
index 000000000000..6c36ebe0209b
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LinBiolinumG_Re.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LinLibertineG_BI.ttf b/test/user-template/user/fonts/truetype/LinLibertineG_BI.ttf
new file mode 100644
index 000000000000..533fb56184a0
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LinLibertineG_BI.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LinLibertineG_Bd.ttf b/test/user-template/user/fonts/truetype/LinLibertineG_Bd.ttf
new file mode 100644
index 000000000000..878e4dfad490
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LinLibertineG_Bd.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LinLibertineG_It.ttf b/test/user-template/user/fonts/truetype/LinLibertineG_It.ttf
new file mode 100644
index 000000000000..2f8e212c40f4
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LinLibertineG_It.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/LinLibertineG_Re.ttf b/test/user-template/user/fonts/truetype/LinLibertineG_Re.ttf
new file mode 100644
index 000000000000..2288b70e9f82
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/LinLibertineG_Re.ttf
Binary files differ
diff --git a/test/user-template/user/fonts/truetype/fc_local.conf b/test/user-template/user/fonts/truetype/fc_local.conf
new file mode 100644
index 000000000000..973c7b57f2b9
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/fc_local.conf
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!DOCTYPE fontconfig SYSTEM "/etc/fonts/conf.d/fonts.dtd">
+<fontconfig>
+
+ <!-- Alias similar/metric-compatible families from various sources: -->
+
+ <alias binding="same">
+ <family>Liberation Sans Narrow</family>
+ <family>Arial Narrow</family>
+ <default>
+ <family>Arial Narrow</family>
+ </default>
+ </alias>
+
+<!-- -->
+ <alias binding="same">
+ <family>Arial Narrow</family>
+ <accept>
+ <family>Liberation Sans Narrow</family>
+ </accept>
+ </alias>
+<!-- -->
+
+</fontconfig>
diff --git a/test/user-template/user/fonts/truetype/opens___.ttf b/test/user-template/user/fonts/truetype/opens___.ttf
new file mode 100644
index 000000000000..96707f2638a8
--- /dev/null
+++ b/test/user-template/user/fonts/truetype/opens___.ttf
Binary files differ
diff --git a/test/user-template/user/gallery/apples.gif b/test/user-template/user/gallery/apples.gif
new file mode 100644
index 000000000000..3a177cf4ccd5
--- /dev/null
+++ b/test/user-template/user/gallery/apples.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bigapple.gif b/test/user-template/user/gallery/bigapple.gif
new file mode 100644
index 000000000000..d35f457122f8
--- /dev/null
+++ b/test/user-template/user/gallery/bigapple.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/blkpearl.gif b/test/user-template/user/gallery/bullets/blkpearl.gif
new file mode 100644
index 000000000000..6f67d5c0e2e6
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/blkpearl.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/bluarrow.gif b/test/user-template/user/gallery/bullets/bluarrow.gif
new file mode 100644
index 000000000000..821f5031ba48
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/bluarrow.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/bluball.gif b/test/user-template/user/gallery/bullets/bluball.gif
new file mode 100644
index 000000000000..dc7c020045d3
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/bluball.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/bludiamd.gif b/test/user-template/user/gallery/bullets/bludiamd.gif
new file mode 100644
index 000000000000..341cf0726d3b
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/bludiamd.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/bluered.gif b/test/user-template/user/gallery/bullets/bluered.gif
new file mode 100644
index 000000000000..fbaf32d32da8
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/bluered.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/blusqare.gif b/test/user-template/user/gallery/bullets/blusqare.gif
new file mode 100644
index 000000000000..9b59932f22f0
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/blusqare.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/blustar.gif b/test/user-template/user/gallery/bullets/blustar.gif
new file mode 100644
index 000000000000..3092e0e02572
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/blustar.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/coffee_1.gif b/test/user-template/user/gallery/bullets/coffee_1.gif
new file mode 100644
index 000000000000..de68d352857b
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/coffee_1.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/coffee_2.gif b/test/user-template/user/gallery/bullets/coffee_2.gif
new file mode 100644
index 000000000000..d099f711f678
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/coffee_2.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/coffee_3.gif b/test/user-template/user/gallery/bullets/coffee_3.gif
new file mode 100644
index 000000000000..4e19b01e7dc6
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/coffee_3.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/coffee_4.gif b/test/user-template/user/gallery/bullets/coffee_4.gif
new file mode 100644
index 000000000000..72f23c6aaff8
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/coffee_4.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/coffee_5.gif b/test/user-template/user/gallery/bullets/coffee_5.gif
new file mode 100644
index 000000000000..2238af94131d
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/coffee_5.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/con-blue.gif b/test/user-template/user/gallery/bullets/con-blue.gif
new file mode 100644
index 000000000000..2e47d8fab981
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/con-blue.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/con-cyan.gif b/test/user-template/user/gallery/bullets/con-cyan.gif
new file mode 100644
index 000000000000..5cc2f4ed4e3f
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/con-cyan.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/con-green.gif b/test/user-template/user/gallery/bullets/con-green.gif
new file mode 100644
index 000000000000..72eb5f8767d9
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/con-green.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/con-lilac.gif b/test/user-template/user/gallery/bullets/con-lilac.gif
new file mode 100644
index 000000000000..3d37287dbbd3
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/con-lilac.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/con-oran.gif b/test/user-template/user/gallery/bullets/con-oran.gif
new file mode 100644
index 000000000000..a7e442b4bc42
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/con-oran.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/con-pink.gif b/test/user-template/user/gallery/bullets/con-pink.gif
new file mode 100644
index 000000000000..29e3ff88233d
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/con-pink.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/con-red.gif b/test/user-template/user/gallery/bullets/con-red.gif
new file mode 100644
index 000000000000..90bd63ca0127
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/con-red.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/con-yellow.gif b/test/user-template/user/gallery/bullets/con-yellow.gif
new file mode 100644
index 000000000000..7aacef535d22
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/con-yellow.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/corner_1.gif b/test/user-template/user/gallery/bullets/corner_1.gif
new file mode 100644
index 000000000000..7328c3b4b833
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/corner_1.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/corner_2.gif b/test/user-template/user/gallery/bullets/corner_2.gif
new file mode 100644
index 000000000000..71559769371e
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/corner_2.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/corner_3.gif b/test/user-template/user/gallery/bullets/corner_3.gif
new file mode 100644
index 000000000000..17a8876de16e
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/corner_3.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/corner_4.gif b/test/user-template/user/gallery/bullets/corner_4.gif
new file mode 100644
index 000000000000..164af6358e7e
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/corner_4.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/darkball.gif b/test/user-template/user/gallery/bullets/darkball.gif
new file mode 100644
index 000000000000..6224fba04b40
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/darkball.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/darkblue.gif b/test/user-template/user/gallery/bullets/darkblue.gif
new file mode 100644
index 000000000000..2170e0f3b8f8
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/darkblue.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/gldpearl.gif b/test/user-template/user/gallery/bullets/gldpearl.gif
new file mode 100644
index 000000000000..5072aea1edde
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/gldpearl.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/golfball.gif b/test/user-template/user/gallery/bullets/golfball.gif
new file mode 100644
index 000000000000..38a718421c68
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/golfball.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/grnarrow.gif b/test/user-template/user/gallery/bullets/grnarrow.gif
new file mode 100644
index 000000000000..26affb19fcd1
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/grnarrow.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/grnball.gif b/test/user-template/user/gallery/bullets/grnball.gif
new file mode 100644
index 000000000000..a518839e7296
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/grnball.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/grndiamd.gif b/test/user-template/user/gallery/bullets/grndiamd.gif
new file mode 100644
index 000000000000..9774a0ae652f
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/grndiamd.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/grnpearl.gif b/test/user-template/user/gallery/bullets/grnpearl.gif
new file mode 100644
index 000000000000..2152229d8357
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/grnpearl.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/grnsqare.gif b/test/user-template/user/gallery/bullets/grnsqare.gif
new file mode 100644
index 000000000000..f0490809301e
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/grnsqare.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/grnstar.gif b/test/user-template/user/gallery/bullets/grnstar.gif
new file mode 100644
index 000000000000..403a850ac93c
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/grnstar.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/gryarrow.gif b/test/user-template/user/gallery/bullets/gryarrow.gif
new file mode 100644
index 000000000000..b27c35f02d70
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/gryarrow.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/gryball.gif b/test/user-template/user/gallery/bullets/gryball.gif
new file mode 100644
index 000000000000..4ef8ea8505de
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/gryball.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/grydiamd.gif b/test/user-template/user/gallery/bullets/grydiamd.gif
new file mode 100644
index 000000000000..d00025c2f28c
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/grydiamd.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/grysqare.gif b/test/user-template/user/gallery/bullets/grysqare.gif
new file mode 100644
index 000000000000..75f093291753
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/grysqare.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/grystar.gif b/test/user-template/user/gallery/bullets/grystar.gif
new file mode 100644
index 000000000000..1108636d6de0
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/grystar.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/orgarrow.gif b/test/user-template/user/gallery/bullets/orgarrow.gif
new file mode 100644
index 000000000000..567324338c3c
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/orgarrow.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/orgball.gif b/test/user-template/user/gallery/bullets/orgball.gif
new file mode 100644
index 000000000000..6a96b1152a4d
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/orgball.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/orgdiamd.gif b/test/user-template/user/gallery/bullets/orgdiamd.gif
new file mode 100644
index 000000000000..3bc8bd6b073e
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/orgdiamd.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/orgsqare.gif b/test/user-template/user/gallery/bullets/orgsqare.gif
new file mode 100644
index 000000000000..14393addcd71
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/orgsqare.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/orgstar.gif b/test/user-template/user/gallery/bullets/orgstar.gif
new file mode 100644
index 000000000000..5c6897512e2d
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/orgstar.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/pebble_1.gif b/test/user-template/user/gallery/bullets/pebble_1.gif
new file mode 100644
index 000000000000..26aabff4fffa
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/pebble_1.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/pebble_2.gif b/test/user-template/user/gallery/bullets/pebble_2.gif
new file mode 100644
index 000000000000..58ec6ff76a8a
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/pebble_2.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/pebble_3.gif b/test/user-template/user/gallery/bullets/pebble_3.gif
new file mode 100644
index 000000000000..06a41dfcbbe1
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/pebble_3.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/poliball.gif b/test/user-template/user/gallery/bullets/poliball.gif
new file mode 100644
index 000000000000..dda461bd347e
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/poliball.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/popcorn_1.gif b/test/user-template/user/gallery/bullets/popcorn_1.gif
new file mode 100644
index 000000000000..273f685d9b5e
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/popcorn_1.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/popcorn_2.gif b/test/user-template/user/gallery/bullets/popcorn_2.gif
new file mode 100644
index 000000000000..20ef72b26f4d
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/popcorn_2.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/rainbow.gif b/test/user-template/user/gallery/bullets/rainbow.gif
new file mode 100644
index 000000000000..f17a58e6cdac
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/rainbow.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/redarrow.gif b/test/user-template/user/gallery/bullets/redarrow.gif
new file mode 100644
index 000000000000..bf937dcf566c
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/redarrow.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/redball.gif b/test/user-template/user/gallery/bullets/redball.gif
new file mode 100644
index 000000000000..c8c639358b55
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/redball.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/reddiamd.gif b/test/user-template/user/gallery/bullets/reddiamd.gif
new file mode 100644
index 000000000000..6842c82ac3cd
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/reddiamd.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/redsqare.gif b/test/user-template/user/gallery/bullets/redsqare.gif
new file mode 100644
index 000000000000..ca2b35bddfad
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/redsqare.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/redstar.gif b/test/user-template/user/gallery/bullets/redstar.gif
new file mode 100644
index 000000000000..fa53bfc49093
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/redstar.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/whtpearl.gif b/test/user-template/user/gallery/bullets/whtpearl.gif
new file mode 100644
index 000000000000..b55995280cd7
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/whtpearl.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/ylwarrow.gif b/test/user-template/user/gallery/bullets/ylwarrow.gif
new file mode 100644
index 000000000000..146269bb9579
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/ylwarrow.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/ylwball.gif b/test/user-template/user/gallery/bullets/ylwball.gif
new file mode 100644
index 000000000000..372bda8b165a
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/ylwball.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/ylwdiamd.gif b/test/user-template/user/gallery/bullets/ylwdiamd.gif
new file mode 100644
index 000000000000..70eb03359e7c
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/ylwdiamd.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/ylwsqare.gif b/test/user-template/user/gallery/bullets/ylwsqare.gif
new file mode 100644
index 000000000000..955e1c1c210a
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/ylwsqare.gif
Binary files differ
diff --git a/test/user-template/user/gallery/bullets/ylwstar.gif b/test/user-template/user/gallery/bullets/ylwstar.gif
new file mode 100644
index 000000000000..09384021f307
--- /dev/null
+++ b/test/user-template/user/gallery/bullets/ylwstar.gif
Binary files differ
diff --git a/test/user-template/user/gallery/flower.gif b/test/user-template/user/gallery/flower.gif
new file mode 100644
index 000000000000..2d5923306ead
--- /dev/null
+++ b/test/user-template/user/gallery/flower.gif
Binary files differ
diff --git a/test/user-template/user/gallery/flowers.gif b/test/user-template/user/gallery/flowers.gif
new file mode 100644
index 000000000000..31d1fa88f55b
--- /dev/null
+++ b/test/user-template/user/gallery/flowers.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/bludown.gif b/test/user-template/user/gallery/htmlexpo/bludown.gif
new file mode 100644
index 000000000000..8db5e143b4f7
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/bludown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/blufirs.gif b/test/user-template/user/gallery/htmlexpo/blufirs.gif
new file mode 100644
index 000000000000..34c390f9bf97
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/blufirs.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/blufirs_.gif b/test/user-template/user/gallery/htmlexpo/blufirs_.gif
new file mode 100644
index 000000000000..617be4f8349e
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/blufirs_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/blulast.gif b/test/user-template/user/gallery/htmlexpo/blulast.gif
new file mode 100644
index 000000000000..9356074310c4
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/blulast.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/blulast_.gif b/test/user-template/user/gallery/htmlexpo/blulast_.gif
new file mode 100644
index 000000000000..5d22bd51d821
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/blulast_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/blunav.gif b/test/user-template/user/gallery/htmlexpo/blunav.gif
new file mode 100644
index 000000000000..2a863c68fcf2
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/blunav.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/blunext.gif b/test/user-template/user/gallery/htmlexpo/blunext.gif
new file mode 100644
index 000000000000..c4e28a48b6ec
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/blunext.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/blunext_.gif b/test/user-template/user/gallery/htmlexpo/blunext_.gif
new file mode 100644
index 000000000000..bc2b1d64e511
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/blunext_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/bluprev.gif b/test/user-template/user/gallery/htmlexpo/bluprev.gif
new file mode 100644
index 000000000000..ffd6416c0b23
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/bluprev.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/bluprev_.gif b/test/user-template/user/gallery/htmlexpo/bluprev_.gif
new file mode 100644
index 000000000000..7c8d757c295e
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/bluprev_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/blutext.gif b/test/user-template/user/gallery/htmlexpo/blutext.gif
new file mode 100644
index 000000000000..389589bce693
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/blutext.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/bluup.gif b/test/user-template/user/gallery/htmlexpo/bluup.gif
new file mode 100644
index 000000000000..b3a48e48b81f
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/bluup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cubdown.gif b/test/user-template/user/gallery/htmlexpo/cubdown.gif
new file mode 100644
index 000000000000..2501a9946363
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cubdown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cubfirs.gif b/test/user-template/user/gallery/htmlexpo/cubfirs.gif
new file mode 100644
index 000000000000..5ac9a5825b57
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cubfirs.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cubfirs_.gif b/test/user-template/user/gallery/htmlexpo/cubfirs_.gif
new file mode 100644
index 000000000000..ad50c2120580
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cubfirs_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cublast.gif b/test/user-template/user/gallery/htmlexpo/cublast.gif
new file mode 100644
index 000000000000..b670f3cac886
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cublast.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cublast_.gif b/test/user-template/user/gallery/htmlexpo/cublast_.gif
new file mode 100644
index 000000000000..91b5a97853e3
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cublast_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cubnav.gif b/test/user-template/user/gallery/htmlexpo/cubnav.gif
new file mode 100644
index 000000000000..2c8d8e092626
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cubnav.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cubnext.gif b/test/user-template/user/gallery/htmlexpo/cubnext.gif
new file mode 100644
index 000000000000..16cb6a0bc906
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cubnext.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cubnext_.gif b/test/user-template/user/gallery/htmlexpo/cubnext_.gif
new file mode 100644
index 000000000000..ffb23fde8fbf
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cubnext_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cubprev.gif b/test/user-template/user/gallery/htmlexpo/cubprev.gif
new file mode 100644
index 000000000000..d6f3d0f3087c
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cubprev.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cubprev_.gif b/test/user-template/user/gallery/htmlexpo/cubprev_.gif
new file mode 100644
index 000000000000..ea316de5cb89
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cubprev_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cubtext.gif b/test/user-template/user/gallery/htmlexpo/cubtext.gif
new file mode 100644
index 000000000000..99b8ee0cc548
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cubtext.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/cubup.gif b/test/user-template/user/gallery/htmlexpo/cubup.gif
new file mode 100644
index 000000000000..004db12ac3d9
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/cubup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/gredown.gif b/test/user-template/user/gallery/htmlexpo/gredown.gif
new file mode 100644
index 000000000000..3913764c35fd
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/gredown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/grefirs.gif b/test/user-template/user/gallery/htmlexpo/grefirs.gif
new file mode 100644
index 000000000000..f6c0e33c1ddb
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/grefirs.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/grefirs_.gif b/test/user-template/user/gallery/htmlexpo/grefirs_.gif
new file mode 100644
index 000000000000..522859aef2c6
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/grefirs_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/grelast.gif b/test/user-template/user/gallery/htmlexpo/grelast.gif
new file mode 100644
index 000000000000..b73ee772cdf8
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/grelast.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/grelast_.gif b/test/user-template/user/gallery/htmlexpo/grelast_.gif
new file mode 100644
index 000000000000..a45aead597b0
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/grelast_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/grenav.gif b/test/user-template/user/gallery/htmlexpo/grenav.gif
new file mode 100644
index 000000000000..2be669986085
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/grenav.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/grenext.gif b/test/user-template/user/gallery/htmlexpo/grenext.gif
new file mode 100644
index 000000000000..563b5d2d8cb6
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/grenext.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/grenext_.gif b/test/user-template/user/gallery/htmlexpo/grenext_.gif
new file mode 100644
index 000000000000..38dfe6704cce
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/grenext_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/greprev.gif b/test/user-template/user/gallery/htmlexpo/greprev.gif
new file mode 100644
index 000000000000..8618373a5a55
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/greprev.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/greprev_.gif b/test/user-template/user/gallery/htmlexpo/greprev_.gif
new file mode 100644
index 000000000000..cc110f4b614b
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/greprev_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/gretext.gif b/test/user-template/user/gallery/htmlexpo/gretext.gif
new file mode 100644
index 000000000000..93ae1f8e103f
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/gretext.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/greup.gif b/test/user-template/user/gallery/htmlexpo/greup.gif
new file mode 100644
index 000000000000..8d07a2043624
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/greup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simdown.gif b/test/user-template/user/gallery/htmlexpo/simdown.gif
new file mode 100644
index 000000000000..6728eb6c0384
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simdown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simfirs.gif b/test/user-template/user/gallery/htmlexpo/simfirs.gif
new file mode 100644
index 000000000000..ecec47cbd159
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simfirs.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simfirs_.gif b/test/user-template/user/gallery/htmlexpo/simfirs_.gif
new file mode 100644
index 000000000000..8d637b004ff4
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simfirs_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simlast.gif b/test/user-template/user/gallery/htmlexpo/simlast.gif
new file mode 100644
index 000000000000..dfbcfa640b00
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simlast.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simlast_.gif b/test/user-template/user/gallery/htmlexpo/simlast_.gif
new file mode 100644
index 000000000000..438baa8ad282
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simlast_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simnav.gif b/test/user-template/user/gallery/htmlexpo/simnav.gif
new file mode 100644
index 000000000000..0b17af7475a9
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simnav.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simnext.gif b/test/user-template/user/gallery/htmlexpo/simnext.gif
new file mode 100644
index 000000000000..a2331bab12c7
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simnext.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simnext_.gif b/test/user-template/user/gallery/htmlexpo/simnext_.gif
new file mode 100644
index 000000000000..c5c42deee345
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simnext_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simprev.gif b/test/user-template/user/gallery/htmlexpo/simprev.gif
new file mode 100644
index 000000000000..d92c5451caa1
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simprev.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simprev_.gif b/test/user-template/user/gallery/htmlexpo/simprev_.gif
new file mode 100644
index 000000000000..4096d953924e
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simprev_.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simtext.gif b/test/user-template/user/gallery/htmlexpo/simtext.gif
new file mode 100644
index 000000000000..1ccdbeb20d95
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simtext.gif
Binary files differ
diff --git a/test/user-template/user/gallery/htmlexpo/simup.gif b/test/user-template/user/gallery/htmlexpo/simup.gif
new file mode 100644
index 000000000000..bae1e2f6e5d2
--- /dev/null
+++ b/test/user-template/user/gallery/htmlexpo/simup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/blkballs.gif b/test/user-template/user/gallery/rulers/blkballs.gif
new file mode 100644
index 000000000000..5854549160a1
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/blkballs.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/blurulr1.gif b/test/user-template/user/gallery/rulers/blurulr1.gif
new file mode 100644
index 000000000000..3fac0a9220d0
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/blurulr1.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/blurulr2.gif b/test/user-template/user/gallery/rulers/blurulr2.gif
new file mode 100644
index 000000000000..91ada2dc5d49
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/blurulr2.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/blurulr3.gif b/test/user-template/user/gallery/rulers/blurulr3.gif
new file mode 100644
index 000000000000..075743a73440
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/blurulr3.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/blurulr4.gif b/test/user-template/user/gallery/rulers/blurulr4.gif
new file mode 100644
index 000000000000..5fdfb6ebb076
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/blurulr4.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/blurulr5.gif b/test/user-template/user/gallery/rulers/blurulr5.gif
new file mode 100644
index 000000000000..33520470052c
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/blurulr5.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/blurulr6.gif b/test/user-template/user/gallery/rulers/blurulr6.gif
new file mode 100644
index 000000000000..d4ebdce7bea5
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/blurulr6.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/gldballs.gif b/test/user-template/user/gallery/rulers/gldballs.gif
new file mode 100644
index 000000000000..9b0e5b0859fb
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/gldballs.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/grnballs.gif b/test/user-template/user/gallery/rulers/grnballs.gif
new file mode 100644
index 000000000000..6a1aa5cb6c17
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/grnballs.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/grnrulr1.gif b/test/user-template/user/gallery/rulers/grnrulr1.gif
new file mode 100644
index 000000000000..482395ca1952
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/grnrulr1.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/grnrulr2.gif b/test/user-template/user/gallery/rulers/grnrulr2.gif
new file mode 100644
index 000000000000..a06aa22ed0f7
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/grnrulr2.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/grnrulr3.gif b/test/user-template/user/gallery/rulers/grnrulr3.gif
new file mode 100644
index 000000000000..9fed8326bb50
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/grnrulr3.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/grnrulr4.gif b/test/user-template/user/gallery/rulers/grnrulr4.gif
new file mode 100644
index 000000000000..92a25cbab752
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/grnrulr4.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/gryrulr1.gif b/test/user-template/user/gallery/rulers/gryrulr1.gif
new file mode 100644
index 000000000000..b424d090ef10
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/gryrulr1.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/gryrulr2.gif b/test/user-template/user/gallery/rulers/gryrulr2.gif
new file mode 100644
index 000000000000..c14edbe88ee4
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/gryrulr2.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/gryrulr3.gif b/test/user-template/user/gallery/rulers/gryrulr3.gif
new file mode 100644
index 000000000000..82d498ed2c03
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/gryrulr3.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/orgrulr1.gif b/test/user-template/user/gallery/rulers/orgrulr1.gif
new file mode 100644
index 000000000000..bf56d93b98f6
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/orgrulr1.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/redrulr1.gif b/test/user-template/user/gallery/rulers/redrulr1.gif
new file mode 100644
index 000000000000..54931bc4a4da
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/redrulr1.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/redrulr2.gif b/test/user-template/user/gallery/rulers/redrulr2.gif
new file mode 100644
index 000000000000..5b26382ab9a2
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/redrulr2.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/redrulr3.gif b/test/user-template/user/gallery/rulers/redrulr3.gif
new file mode 100644
index 000000000000..572114c27008
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/redrulr3.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/redrulr4.gif b/test/user-template/user/gallery/rulers/redrulr4.gif
new file mode 100644
index 000000000000..a27624b39e76
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/redrulr4.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/redrulr5.gif b/test/user-template/user/gallery/rulers/redrulr5.gif
new file mode 100644
index 000000000000..d5b10814d92e
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/redrulr5.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/striped.gif b/test/user-template/user/gallery/rulers/striped.gif
new file mode 100644
index 000000000000..2c1313e55d92
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/striped.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/whtballs.gif b/test/user-template/user/gallery/rulers/whtballs.gif
new file mode 100644
index 000000000000..279be208c662
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/whtballs.gif
Binary files differ
diff --git a/test/user-template/user/gallery/rulers/ylwrulr1.gif b/test/user-template/user/gallery/rulers/ylwrulr1.gif
new file mode 100644
index 000000000000..07bf5a927d12
--- /dev/null
+++ b/test/user-template/user/gallery/rulers/ylwrulr1.gif
Binary files differ
diff --git a/test/user-template/user/gallery/sg1.sdg b/test/user-template/user/gallery/sg1.sdg
new file mode 100644
index 000000000000..788590cc6545
--- /dev/null
+++ b/test/user-template/user/gallery/sg1.sdg
Binary files differ
diff --git a/test/user-template/user/gallery/sg1.sdv b/test/user-template/user/gallery/sg1.sdv
new file mode 100644
index 000000000000..fc17dd9d0528
--- /dev/null
+++ b/test/user-template/user/gallery/sg1.sdv
Binary files differ
diff --git a/test/user-template/user/gallery/sg1.thm b/test/user-template/user/gallery/sg1.thm
new file mode 100644
index 000000000000..9b60977e8df1
--- /dev/null
+++ b/test/user-template/user/gallery/sg1.thm
Binary files differ
diff --git a/test/user-template/user/gallery/sg2.sdg b/test/user-template/user/gallery/sg2.sdg
new file mode 100644
index 000000000000..dd045f29ea36
--- /dev/null
+++ b/test/user-template/user/gallery/sg2.sdg
Binary files differ
diff --git a/test/user-template/user/gallery/sg2.sdv b/test/user-template/user/gallery/sg2.sdv
new file mode 100644
index 000000000000..fc17dd9d0528
--- /dev/null
+++ b/test/user-template/user/gallery/sg2.sdv
Binary files differ
diff --git a/test/user-template/user/gallery/sg2.thm b/test/user-template/user/gallery/sg2.thm
new file mode 100644
index 000000000000..79d1cdd460cc
--- /dev/null
+++ b/test/user-template/user/gallery/sg2.thm
Binary files differ
diff --git a/test/user-template/user/gallery/sg24.sdg b/test/user-template/user/gallery/sg24.sdg
new file mode 100644
index 000000000000..8027ee32eff9
--- /dev/null
+++ b/test/user-template/user/gallery/sg24.sdg
Binary files differ
diff --git a/test/user-template/user/gallery/sg24.sdv b/test/user-template/user/gallery/sg24.sdv
new file mode 100644
index 000000000000..555717b94ce4
--- /dev/null
+++ b/test/user-template/user/gallery/sg24.sdv
Binary files differ
diff --git a/test/user-template/user/gallery/sg24.thm b/test/user-template/user/gallery/sg24.thm
new file mode 100644
index 000000000000..054018db134e
--- /dev/null
+++ b/test/user-template/user/gallery/sg24.thm
Binary files differ
diff --git a/test/user-template/user/gallery/sg25.sdg b/test/user-template/user/gallery/sg25.sdg
new file mode 100644
index 000000000000..af78e56603e0
--- /dev/null
+++ b/test/user-template/user/gallery/sg25.sdg
Binary files differ
diff --git a/test/user-template/user/gallery/sg25.sdv b/test/user-template/user/gallery/sg25.sdv
new file mode 100644
index 000000000000..444959152744
--- /dev/null
+++ b/test/user-template/user/gallery/sg25.sdv
Binary files differ
diff --git a/test/user-template/user/gallery/sg25.thm b/test/user-template/user/gallery/sg25.thm
new file mode 100644
index 000000000000..e7b0a497cfd0
--- /dev/null
+++ b/test/user-template/user/gallery/sg25.thm
Binary files differ
diff --git a/test/user-template/user/gallery/sg3.sdg b/test/user-template/user/gallery/sg3.sdg
new file mode 100644
index 000000000000..41007194985c
--- /dev/null
+++ b/test/user-template/user/gallery/sg3.sdg
Binary files differ
diff --git a/test/user-template/user/gallery/sg3.sdv b/test/user-template/user/gallery/sg3.sdv
new file mode 100644
index 000000000000..fc17dd9d0528
--- /dev/null
+++ b/test/user-template/user/gallery/sg3.sdv
Binary files differ
diff --git a/test/user-template/user/gallery/sg3.thm b/test/user-template/user/gallery/sg3.thm
new file mode 100644
index 000000000000..eb9385f93ae9
--- /dev/null
+++ b/test/user-template/user/gallery/sg3.thm
Binary files differ
diff --git a/test/user-template/user/gallery/sg36.sdg b/test/user-template/user/gallery/sg36.sdg
new file mode 100644
index 000000000000..556084bf21df
--- /dev/null
+++ b/test/user-template/user/gallery/sg36.sdg
Binary files differ
diff --git a/test/user-template/user/gallery/sg36.sdv b/test/user-template/user/gallery/sg36.sdv
new file mode 100644
index 000000000000..d3b220d8b65a
--- /dev/null
+++ b/test/user-template/user/gallery/sg36.sdv
Binary files differ
diff --git a/test/user-template/user/gallery/sg36.thm b/test/user-template/user/gallery/sg36.thm
new file mode 100644
index 000000000000..31e8f7d1ee0a
--- /dev/null
+++ b/test/user-template/user/gallery/sg36.thm
Binary files differ
diff --git a/test/user-template/user/gallery/sg4.sdg b/test/user-template/user/gallery/sg4.sdg
new file mode 100644
index 000000000000..f0edebfeaca5
--- /dev/null
+++ b/test/user-template/user/gallery/sg4.sdg
Binary files differ
diff --git a/test/user-template/user/gallery/sg4.sdv b/test/user-template/user/gallery/sg4.sdv
new file mode 100644
index 000000000000..fc17dd9d0528
--- /dev/null
+++ b/test/user-template/user/gallery/sg4.sdv
Binary files differ
diff --git a/test/user-template/user/gallery/sg4.thm b/test/user-template/user/gallery/sg4.thm
new file mode 100644
index 000000000000..b7f888659f7d
--- /dev/null
+++ b/test/user-template/user/gallery/sg4.thm
Binary files differ
diff --git a/test/user-template/user/gallery/sg9.sdg b/test/user-template/user/gallery/sg9.sdg
new file mode 100644
index 000000000000..d17717056263
--- /dev/null
+++ b/test/user-template/user/gallery/sg9.sdg
Binary files differ
diff --git a/test/user-template/user/gallery/sg9.sdv b/test/user-template/user/gallery/sg9.sdv
new file mode 100644
index 000000000000..fc17dd9d0528
--- /dev/null
+++ b/test/user-template/user/gallery/sg9.sdv
Binary files differ
diff --git a/test/user-template/user/gallery/sg9.thm b/test/user-template/user/gallery/sg9.thm
new file mode 100644
index 000000000000..4b6ef2091b96
--- /dev/null
+++ b/test/user-template/user/gallery/sg9.thm
Binary files differ
diff --git a/test/user-template/user/gallery/sky.gif b/test/user-template/user/gallery/sky.gif
new file mode 100644
index 000000000000..8491a7312ac2
--- /dev/null
+++ b/test/user-template/user/gallery/sky.gif
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/apert.wav b/test/user-template/user/gallery/sounds/apert.wav
new file mode 100644
index 000000000000..eb4b96628c48
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/apert.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/apert2.wav b/test/user-template/user/gallery/sounds/apert2.wav
new file mode 100644
index 000000000000..43e7ae6308e0
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/apert2.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/applause.wav b/test/user-template/user/gallery/sounds/applause.wav
new file mode 100644
index 000000000000..3a371ff1423e
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/applause.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/beam.wav b/test/user-template/user/gallery/sounds/beam.wav
new file mode 100644
index 000000000000..8f9de067af80
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/beam.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/beam2.wav b/test/user-template/user/gallery/sounds/beam2.wav
new file mode 100644
index 000000000000..49e23b9c1c1a
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/beam2.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/cow.wav b/test/user-template/user/gallery/sounds/cow.wav
new file mode 100644
index 000000000000..494e6c4ac12a
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/cow.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/curve.wav b/test/user-template/user/gallery/sounds/curve.wav
new file mode 100644
index 000000000000..3db9221161d4
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/curve.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/drama.wav b/test/user-template/user/gallery/sounds/drama.wav
new file mode 100644
index 000000000000..7490cc1594d8
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/drama.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/explos.wav b/test/user-template/user/gallery/sounds/explos.wav
new file mode 100644
index 000000000000..8e7cec5c3d5b
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/explos.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/falling.wav b/test/user-template/user/gallery/sounds/falling.wav
new file mode 100644
index 000000000000..442d2fe662b8
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/falling.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/glasses.wav b/test/user-template/user/gallery/sounds/glasses.wav
new file mode 100644
index 000000000000..2aa05154e8de
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/glasses.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/gong.wav b/test/user-template/user/gallery/sounds/gong.wav
new file mode 100644
index 000000000000..13030157eeab
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/gong.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/horse.wav b/test/user-template/user/gallery/sounds/horse.wav
new file mode 100644
index 000000000000..3d4827ac66ed
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/horse.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/kling.wav b/test/user-template/user/gallery/sounds/kling.wav
new file mode 100644
index 000000000000..88bace778b8b
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/kling.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/kongas.wav b/test/user-template/user/gallery/sounds/kongas.wav
new file mode 100644
index 000000000000..8a691f17c7a4
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/kongas.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/laser.wav b/test/user-template/user/gallery/sounds/laser.wav
new file mode 100644
index 000000000000..2ecf82292f5b
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/laser.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/left.wav b/test/user-template/user/gallery/sounds/left.wav
new file mode 100644
index 000000000000..513cce404dd4
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/left.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/nature1.wav b/test/user-template/user/gallery/sounds/nature1.wav
new file mode 100644
index 000000000000..349fd1fae146
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/nature1.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/nature2.wav b/test/user-template/user/gallery/sounds/nature2.wav
new file mode 100644
index 000000000000..035af3d8f43c
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/nature2.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/ok.wav b/test/user-template/user/gallery/sounds/ok.wav
new file mode 100644
index 000000000000..c333c6e052d7
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/ok.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/pluck.wav b/test/user-template/user/gallery/sounds/pluck.wav
new file mode 100644
index 000000000000..29b6b93bd2ec
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/pluck.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/roll.wav b/test/user-template/user/gallery/sounds/roll.wav
new file mode 100644
index 000000000000..acc9d2a48d57
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/roll.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/romans.wav b/test/user-template/user/gallery/sounds/romans.wav
new file mode 100644
index 000000000000..6e1fb7395692
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/romans.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/soft.wav b/test/user-template/user/gallery/sounds/soft.wav
new file mode 100644
index 000000000000..eb8e32bbff57
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/soft.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/space.wav b/test/user-template/user/gallery/sounds/space.wav
new file mode 100644
index 000000000000..1455b34b41f6
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/space.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/space2.wav b/test/user-template/user/gallery/sounds/space2.wav
new file mode 100644
index 000000000000..848f286b2a72
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/space2.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/space3.wav b/test/user-template/user/gallery/sounds/space3.wav
new file mode 100644
index 000000000000..d47a7a87186a
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/space3.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/sparcle.wav b/test/user-template/user/gallery/sounds/sparcle.wav
new file mode 100644
index 000000000000..4c15caab24a1
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/sparcle.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/strom.wav b/test/user-template/user/gallery/sounds/strom.wav
new file mode 100644
index 000000000000..b67838d2ac67
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/strom.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/theetone.wav b/test/user-template/user/gallery/sounds/theetone.wav
new file mode 100644
index 000000000000..daf050be8d6b
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/theetone.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/top.wav b/test/user-template/user/gallery/sounds/top.wav
new file mode 100644
index 000000000000..4b825ba0fee4
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/top.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/train.wav b/test/user-template/user/gallery/sounds/train.wav
new file mode 100644
index 000000000000..9396150dade3
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/train.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/untie.wav b/test/user-template/user/gallery/sounds/untie.wav
new file mode 100644
index 000000000000..1efe546b7518
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/untie.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/ups.wav b/test/user-template/user/gallery/sounds/ups.wav
new file mode 100644
index 000000000000..fb67c720a585
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/ups.wav
Binary files differ
diff --git a/test/user-template/user/gallery/sounds/wallewal.wav b/test/user-template/user/gallery/sounds/wallewal.wav
new file mode 100644
index 000000000000..d1d7b0807364
--- /dev/null
+++ b/test/user-template/user/gallery/sounds/wallewal.wav
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/aqua.jpg b/test/user-template/user/gallery/www-back/aqua.jpg
new file mode 100644
index 000000000000..a7b29ee29bbd
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/aqua.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/bathroom.jpg b/test/user-template/user/gallery/www-back/bathroom.jpg
new file mode 100644
index 000000000000..058f01ae9237
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/bathroom.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/blocks.jpg b/test/user-template/user/gallery/www-back/blocks.jpg
new file mode 100644
index 000000000000..1cd0c6ebceb5
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/blocks.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/blow_green.jpg b/test/user-template/user/gallery/www-back/blow_green.jpg
new file mode 100644
index 000000000000..aedb52e224f7
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/blow_green.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/blueblop.jpg b/test/user-template/user/gallery/www-back/blueblop.jpg
new file mode 100644
index 000000000000..330cacb7a1e4
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/blueblop.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/bulging.jpg b/test/user-template/user/gallery/www-back/bulging.jpg
new file mode 100644
index 000000000000..02c083061c52
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/bulging.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/canvas_blue.jpg b/test/user-template/user/gallery/www-back/canvas_blue.jpg
new file mode 100644
index 000000000000..a0ab3b3f2ff8
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/canvas_blue.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/cheese.jpg b/test/user-template/user/gallery/www-back/cheese.jpg
new file mode 100644
index 000000000000..dea5795fd0b7
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/cheese.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/chocolate.jpg b/test/user-template/user/gallery/www-back/chocolate.jpg
new file mode 100644
index 000000000000..7e04116603e5
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/chocolate.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/citrus.jpg b/test/user-template/user/gallery/www-back/citrus.jpg
new file mode 100644
index 000000000000..ceb9ef08c344
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/citrus.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/confetti.jpg b/test/user-template/user/gallery/www-back/confetti.jpg
new file mode 100644
index 000000000000..f04bfab2f4a4
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/confetti.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/daisy.jpg b/test/user-template/user/gallery/www-back/daisy.jpg
new file mode 100644
index 000000000000..69287fa1d6f9
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/daisy.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/fluffy-grey.jpg b/test/user-template/user/gallery/www-back/fluffy-grey.jpg
new file mode 100644
index 000000000000..351ac420dc59
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/fluffy-grey.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/fluffy.jpg b/test/user-template/user/gallery/www-back/fluffy.jpg
new file mode 100644
index 000000000000..c8398cca3c1f
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/fluffy.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/fuzzy-blue.jpg b/test/user-template/user/gallery/www-back/fuzzy-blue.jpg
new file mode 100644
index 000000000000..b65a17e03e98
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/fuzzy-blue.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/fuzzy-darkgrey.jpg b/test/user-template/user/gallery/www-back/fuzzy-darkgrey.jpg
new file mode 100644
index 000000000000..ed8c40e25df7
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/fuzzy-darkgrey.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/fuzzy-grey.jpg b/test/user-template/user/gallery/www-back/fuzzy-grey.jpg
new file mode 100644
index 000000000000..2263906eb142
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/fuzzy-grey.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/fuzzy-lightgrey.jpg b/test/user-template/user/gallery/www-back/fuzzy-lightgrey.jpg
new file mode 100644
index 000000000000..fe3b8954d5cc
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/fuzzy-lightgrey.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/fuzzy_light.jpg b/test/user-template/user/gallery/www-back/fuzzy_light.jpg
new file mode 100644
index 000000000000..8715e992a4ca
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/fuzzy_light.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/gregre.gif b/test/user-template/user/gallery/www-back/gregre.gif
new file mode 100644
index 000000000000..9d86063a1087
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/gregre.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/grey.gif b/test/user-template/user/gallery/www-back/grey.gif
new file mode 100644
index 000000000000..cde670fb5115
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/grey.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/grypaws.gif b/test/user-template/user/gallery/www-back/grypaws.gif
new file mode 100644
index 000000000000..9ea9652b768d
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/grypaws.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/ice-blue.jpg b/test/user-template/user/gallery/www-back/ice-blue.jpg
new file mode 100644
index 000000000000..db5d36163879
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/ice-blue.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/ice-light.jpg b/test/user-template/user/gallery/www-back/ice-light.jpg
new file mode 100644
index 000000000000..e82653d9812f
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/ice-light.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/imitation_leather.jpg b/test/user-template/user/gallery/www-back/imitation_leather.jpg
new file mode 100644
index 000000000000..12ddb212d779
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/imitation_leather.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/interstices.jpg b/test/user-template/user/gallery/www-back/interstices.jpg
new file mode 100644
index 000000000000..5f5cf7709553
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/interstices.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/jeans.jpg b/test/user-template/user/gallery/www-back/jeans.jpg
new file mode 100644
index 000000000000..63d13c34a8cf
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/jeans.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/jeansblk.jpg b/test/user-template/user/gallery/www-back/jeansblk.jpg
new file mode 100644
index 000000000000..25a2f71cf685
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/jeansblk.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/lawn-artificial.jpg b/test/user-template/user/gallery/www-back/lawn-artificial.jpg
new file mode 100644
index 000000000000..ff2ecca7b619
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/lawn-artificial.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/lawn.jpg b/test/user-template/user/gallery/www-back/lawn.jpg
new file mode 100644
index 000000000000..60382b3b1709
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/lawn.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/lightblue-wet.jpg b/test/user-template/user/gallery/www-back/lightblue-wet.jpg
new file mode 100644
index 000000000000..227afaf6ba91
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/lightblue-wet.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/linen-fine.jpg b/test/user-template/user/gallery/www-back/linen-fine.jpg
new file mode 100644
index 000000000000..af874d217ffd
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/linen-fine.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/lino-green.jpg b/test/user-template/user/gallery/www-back/lino-green.jpg
new file mode 100644
index 000000000000..e178db00a1a4
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/lino-green.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/liquid-blue.jpg b/test/user-template/user/gallery/www-back/liquid-blue.jpg
new file mode 100644
index 000000000000..97b56e0b0044
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/liquid-blue.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/marble.jpg b/test/user-template/user/gallery/www-back/marble.jpg
new file mode 100644
index 000000000000..96f220950dca
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/marble.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/marble_dark.jpg b/test/user-template/user/gallery/www-back/marble_dark.jpg
new file mode 100644
index 000000000000..e610fc731e79
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/marble_dark.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/mazes.jpg b/test/user-template/user/gallery/www-back/mazes.jpg
new file mode 100644
index 000000000000..2aa84ade7ea7
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/mazes.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/mint.gif b/test/user-template/user/gallery/www-back/mint.gif
new file mode 100644
index 000000000000..a32311256d6d
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/mint.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/notes.gif b/test/user-template/user/gallery/www-back/notes.gif
new file mode 100644
index 000000000000..6637d61aead2
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/notes.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/pattern.jpg b/test/user-template/user/gallery/www-back/pattern.jpg
new file mode 100644
index 000000000000..6a6a3d8d4e44
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/pattern.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/pebble-light.jpg b/test/user-template/user/gallery/www-back/pebble-light.jpg
new file mode 100644
index 000000000000..9a314557daec
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/pebble-light.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/pink.gif b/test/user-template/user/gallery/www-back/pink.gif
new file mode 100644
index 000000000000..b4f98594b349
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/pink.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/pool.jpg b/test/user-template/user/gallery/www-back/pool.jpg
new file mode 100644
index 000000000000..1f5943f7589c
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/pool.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/popcorn.jpg b/test/user-template/user/gallery/www-back/popcorn.jpg
new file mode 100644
index 000000000000..4b464604c402
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/popcorn.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/purple.jpg b/test/user-template/user/gallery/www-back/purple.jpg
new file mode 100644
index 000000000000..71a027a38da9
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/purple.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/reddark.jpg b/test/user-template/user/gallery/www-back/reddark.jpg
new file mode 100644
index 000000000000..a7e5eaff8052
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/reddark.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/rings-green.jpg b/test/user-template/user/gallery/www-back/rings-green.jpg
new file mode 100644
index 000000000000..17062c2d0629
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/rings-green.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/rings-orange.jpg b/test/user-template/user/gallery/www-back/rings-orange.jpg
new file mode 100644
index 000000000000..4c49bb9c19fd
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/rings-orange.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/roses.jpg b/test/user-template/user/gallery/www-back/roses.jpg
new file mode 100644
index 000000000000..3bcc34ea464e
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/roses.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/sand-light.jpg b/test/user-template/user/gallery/www-back/sand-light.jpg
new file mode 100644
index 000000000000..87715ad29d15
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/sand-light.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/sand.jpg b/test/user-template/user/gallery/www-back/sand.jpg
new file mode 100644
index 000000000000..2ec83cdfc20e
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/sand.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/sky.jpg b/test/user-template/user/gallery/www-back/sky.jpg
new file mode 100644
index 000000000000..2ccdb489d5f5
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/sky.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/soft-structure_grey.jpg b/test/user-template/user/gallery/www-back/soft-structure_grey.jpg
new file mode 100644
index 000000000000..48d0943adef9
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/soft-structure_grey.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/space.jpg b/test/user-template/user/gallery/www-back/space.jpg
new file mode 100644
index 000000000000..808165d35633
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/space.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/stone-dark.jpg b/test/user-template/user/gallery/www-back/stone-dark.jpg
new file mode 100644
index 000000000000..eb50eeec98af
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/stone-dark.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/stone.jpg b/test/user-template/user/gallery/www-back/stone.jpg
new file mode 100644
index 000000000000..26c36d063bcb
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/stone.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/structure.jpg b/test/user-template/user/gallery/www-back/structure.jpg
new file mode 100644
index 000000000000..b49da3066e97
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/structure.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/structure_darkgreen.gif b/test/user-template/user/gallery/www-back/structure_darkgreen.gif
new file mode 100644
index 000000000000..ed9e6d27c3a1
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/structure_darkgreen.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/structure_green.jpg b/test/user-template/user/gallery/www-back/structure_green.jpg
new file mode 100644
index 000000000000..240f2adae06b
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/structure_green.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/wall-grey.jpg b/test/user-template/user/gallery/www-back/wall-grey.jpg
new file mode 100644
index 000000000000..42270e0c1a58
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/wall-grey.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/wet-turquoise.jpg b/test/user-template/user/gallery/www-back/wet-turquoise.jpg
new file mode 100644
index 000000000000..4f6dfc31816b
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/wet-turquoise.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-back/wood.jpg b/test/user-template/user/gallery/www-back/wood.jpg
new file mode 100644
index 000000000000..889a838477f6
--- /dev/null
+++ b/test/user-template/user/gallery/www-back/wood.jpg
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bluat.gif b/test/user-template/user/gallery/www-graf/bluat.gif
new file mode 100644
index 000000000000..7c9f67994d4f
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bluat.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bluback.gif b/test/user-template/user/gallery/www-graf/bluback.gif
new file mode 100644
index 000000000000..44a0801be348
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bluback.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bludisk.gif b/test/user-template/user/gallery/www-graf/bludisk.gif
new file mode 100644
index 000000000000..9d2d8f715e54
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bludisk.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bludown.gif b/test/user-template/user/gallery/www-graf/bludown.gif
new file mode 100644
index 000000000000..4f091b73de99
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bludown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bluhome.gif b/test/user-template/user/gallery/www-graf/bluhome.gif
new file mode 100644
index 000000000000..ea52ee4bce8f
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bluhome.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bluinfo.gif b/test/user-template/user/gallery/www-graf/bluinfo.gif
new file mode 100644
index 000000000000..a18d9a902663
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bluinfo.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bluleft.gif b/test/user-template/user/gallery/www-graf/bluleft.gif
new file mode 100644
index 000000000000..9f0e78a9930c
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bluleft.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/blumail.gif b/test/user-template/user/gallery/www-graf/blumail.gif
new file mode 100644
index 000000000000..da02f1ad8065
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/blumail.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bluminus.gif b/test/user-template/user/gallery/www-graf/bluminus.gif
new file mode 100644
index 000000000000..a089203d970e
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bluminus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bluplus.gif b/test/user-template/user/gallery/www-graf/bluplus.gif
new file mode 100644
index 000000000000..29921f57eff5
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bluplus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bluquest.gif b/test/user-template/user/gallery/www-graf/bluquest.gif
new file mode 100644
index 000000000000..761848e53b80
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bluquest.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bluright.gif b/test/user-template/user/gallery/www-graf/bluright.gif
new file mode 100644
index 000000000000..cf046bacf30a
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bluright.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/bluup.gif b/test/user-template/user/gallery/www-graf/bluup.gif
new file mode 100644
index 000000000000..5efe05349ccb
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/bluup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gredisk.gif b/test/user-template/user/gallery/www-graf/gredisk.gif
new file mode 100644
index 000000000000..8feb3dae8d1d
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gredisk.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gredown.gif b/test/user-template/user/gallery/www-graf/gredown.gif
new file mode 100644
index 000000000000..dca89f8322f8
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gredown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grehome.gif b/test/user-template/user/gallery/www-graf/grehome.gif
new file mode 100644
index 000000000000..b0afe42a09a8
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grehome.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/greinfo.gif b/test/user-template/user/gallery/www-graf/greinfo.gif
new file mode 100644
index 000000000000..d5d3f32de054
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/greinfo.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/greleft.gif b/test/user-template/user/gallery/www-graf/greleft.gif
new file mode 100644
index 000000000000..cec6a7e75e4d
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/greleft.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gremail.gif b/test/user-template/user/gallery/www-graf/gremail.gif
new file mode 100644
index 000000000000..7c7a1cd8c0e9
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gremail.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/greminus.gif b/test/user-template/user/gallery/www-graf/greminus.gif
new file mode 100644
index 000000000000..a83c80f22f90
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/greminus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/greplus.gif b/test/user-template/user/gallery/www-graf/greplus.gif
new file mode 100644
index 000000000000..a8172f7111d1
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/greplus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grequest.gif b/test/user-template/user/gallery/www-graf/grequest.gif
new file mode 100644
index 000000000000..ec6be9a33e79
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grequest.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/greright.gif b/test/user-template/user/gallery/www-graf/greright.gif
new file mode 100644
index 000000000000..1df483b6c02b
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/greright.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/greup.gif b/test/user-template/user/gallery/www-graf/greup.gif
new file mode 100644
index 000000000000..6aac4dccb4df
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/greup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnat.gif b/test/user-template/user/gallery/www-graf/grnat.gif
new file mode 100644
index 000000000000..351a4f85f24d
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnat.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnback.gif b/test/user-template/user/gallery/www-graf/grnback.gif
new file mode 100644
index 000000000000..2b830de3573f
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnback.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grndisk.gif b/test/user-template/user/gallery/www-graf/grndisk.gif
new file mode 100644
index 000000000000..cd859359581a
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grndisk.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grndown.gif b/test/user-template/user/gallery/www-graf/grndown.gif
new file mode 100644
index 000000000000..9da0d02dce2e
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grndown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnexcla.gif b/test/user-template/user/gallery/www-graf/grnexcla.gif
new file mode 100644
index 000000000000..834ad607e47c
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnexcla.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnhome.gif b/test/user-template/user/gallery/www-graf/grnhome.gif
new file mode 100644
index 000000000000..d6bd2386c400
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnhome.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grninfo.gif b/test/user-template/user/gallery/www-graf/grninfo.gif
new file mode 100644
index 000000000000..9aedd3422032
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grninfo.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnleft.gif b/test/user-template/user/gallery/www-graf/grnleft.gif
new file mode 100644
index 000000000000..512ec1fd72bf
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnleft.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnmail.gif b/test/user-template/user/gallery/www-graf/grnmail.gif
new file mode 100644
index 000000000000..0b586a5a137e
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnmail.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnminus.gif b/test/user-template/user/gallery/www-graf/grnminus.gif
new file mode 100644
index 000000000000..5ca73de31d98
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnminus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnplus.gif b/test/user-template/user/gallery/www-graf/grnplus.gif
new file mode 100644
index 000000000000..f259ebc70087
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnplus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnquest.gif b/test/user-template/user/gallery/www-graf/grnquest.gif
new file mode 100644
index 000000000000..c620a70a7c7f
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnquest.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnright.gif b/test/user-template/user/gallery/www-graf/grnright.gif
new file mode 100644
index 000000000000..7d229301a0d5
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnright.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grnup.gif b/test/user-template/user/gallery/www-graf/grnup.gif
new file mode 100644
index 000000000000..5933b8e639ce
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grnup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gryat.gif b/test/user-template/user/gallery/www-graf/gryat.gif
new file mode 100644
index 000000000000..11214d1d0ad4
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gryat.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gryback.gif b/test/user-template/user/gallery/www-graf/gryback.gif
new file mode 100644
index 000000000000..d333cbbcdb40
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gryback.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grydisk.gif b/test/user-template/user/gallery/www-graf/grydisk.gif
new file mode 100644
index 000000000000..28f026f4a056
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grydisk.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grydown.gif b/test/user-template/user/gallery/www-graf/grydown.gif
new file mode 100644
index 000000000000..9d10addd367a
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grydown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gryhome.gif b/test/user-template/user/gallery/www-graf/gryhome.gif
new file mode 100644
index 000000000000..afb880af59ab
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gryhome.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gryinfo.gif b/test/user-template/user/gallery/www-graf/gryinfo.gif
new file mode 100644
index 000000000000..16b583332cb1
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gryinfo.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gryleft.gif b/test/user-template/user/gallery/www-graf/gryleft.gif
new file mode 100644
index 000000000000..cd385acf4237
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gryleft.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/grymail.gif b/test/user-template/user/gallery/www-graf/grymail.gif
new file mode 100644
index 000000000000..e2f79d0493a9
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/grymail.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gryminus.gif b/test/user-template/user/gallery/www-graf/gryminus.gif
new file mode 100644
index 000000000000..66d8bd1a4583
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gryminus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gryplus.gif b/test/user-template/user/gallery/www-graf/gryplus.gif
new file mode 100644
index 000000000000..38ef102f0161
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gryplus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gryquest.gif b/test/user-template/user/gallery/www-graf/gryquest.gif
new file mode 100644
index 000000000000..c029339804de
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gryquest.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gryright.gif b/test/user-template/user/gallery/www-graf/gryright.gif
new file mode 100644
index 000000000000..af9c59a7d03f
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gryright.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/gryup.gif b/test/user-template/user/gallery/www-graf/gryup.gif
new file mode 100644
index 000000000000..77f7a7ec7009
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/gryup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/men@work.gif b/test/user-template/user/gallery/www-graf/men@work.gif
new file mode 100644
index 000000000000..94cdffe5dbb2
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/men@work.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgat.gif b/test/user-template/user/gallery/www-graf/orgat.gif
new file mode 100644
index 000000000000..62017e9307bb
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgat.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgback.gif b/test/user-template/user/gallery/www-graf/orgback.gif
new file mode 100644
index 000000000000..2424599899df
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgback.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgdisk.gif b/test/user-template/user/gallery/www-graf/orgdisk.gif
new file mode 100644
index 000000000000..6e258772360d
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgdisk.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgdown.gif b/test/user-template/user/gallery/www-graf/orgdown.gif
new file mode 100644
index 000000000000..44e7f1540c22
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgdown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orghome.gif b/test/user-template/user/gallery/www-graf/orghome.gif
new file mode 100644
index 000000000000..a65ad12b7a16
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orghome.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orginfo.gif b/test/user-template/user/gallery/www-graf/orginfo.gif
new file mode 100644
index 000000000000..4c7f0893f8f5
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orginfo.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgleft.gif b/test/user-template/user/gallery/www-graf/orgleft.gif
new file mode 100644
index 000000000000..1c390994356f
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgleft.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgmail.gif b/test/user-template/user/gallery/www-graf/orgmail.gif
new file mode 100644
index 000000000000..1887cd5d4e3b
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgmail.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgminus.gif b/test/user-template/user/gallery/www-graf/orgminus.gif
new file mode 100644
index 000000000000..6295b5949a22
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgminus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgplus.gif b/test/user-template/user/gallery/www-graf/orgplus.gif
new file mode 100644
index 000000000000..2fecfd4dbf3b
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgplus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgquest.gif b/test/user-template/user/gallery/www-graf/orgquest.gif
new file mode 100644
index 000000000000..cadb4f6ea5dc
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgquest.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgright.gif b/test/user-template/user/gallery/www-graf/orgright.gif
new file mode 100644
index 000000000000..0b15305d2deb
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgright.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/orgup.gif b/test/user-template/user/gallery/www-graf/orgup.gif
new file mode 100644
index 000000000000..169e4f3a8201
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/orgup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redat.gif b/test/user-template/user/gallery/www-graf/redat.gif
new file mode 100644
index 000000000000..b775b490da66
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redat.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redback.gif b/test/user-template/user/gallery/www-graf/redback.gif
new file mode 100644
index 000000000000..da21ca4657cc
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redback.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/reddisk.gif b/test/user-template/user/gallery/www-graf/reddisk.gif
new file mode 100644
index 000000000000..bf8e9acecaf7
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/reddisk.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/reddown.gif b/test/user-template/user/gallery/www-graf/reddown.gif
new file mode 100644
index 000000000000..d757c11a6c23
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/reddown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redhome.gif b/test/user-template/user/gallery/www-graf/redhome.gif
new file mode 100644
index 000000000000..d888674e8796
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redhome.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redinfo.gif b/test/user-template/user/gallery/www-graf/redinfo.gif
new file mode 100644
index 000000000000..b98a4043c238
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redinfo.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redleft.gif b/test/user-template/user/gallery/www-graf/redleft.gif
new file mode 100644
index 000000000000..cefd436dbcb2
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redleft.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redmail.gif b/test/user-template/user/gallery/www-graf/redmail.gif
new file mode 100644
index 000000000000..e046d7451952
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redmail.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redminus.gif b/test/user-template/user/gallery/www-graf/redminus.gif
new file mode 100644
index 000000000000..fe2728148de1
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redminus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redplus.gif b/test/user-template/user/gallery/www-graf/redplus.gif
new file mode 100644
index 000000000000..ce263117223b
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redplus.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redquest.gif b/test/user-template/user/gallery/www-graf/redquest.gif
new file mode 100644
index 000000000000..9d1c39ef63cc
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redquest.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redright.gif b/test/user-template/user/gallery/www-graf/redright.gif
new file mode 100644
index 000000000000..63e88f3235d6
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redright.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/redup.gif b/test/user-template/user/gallery/www-graf/redup.gif
new file mode 100644
index 000000000000..0440c5ce0dd0
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/redup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/turdown.gif b/test/user-template/user/gallery/www-graf/turdown.gif
new file mode 100644
index 000000000000..5fe7eb961b65
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/turdown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/turhome.gif b/test/user-template/user/gallery/www-graf/turhome.gif
new file mode 100644
index 000000000000..73e75405ac62
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/turhome.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/turleft.gif b/test/user-template/user/gallery/www-graf/turleft.gif
new file mode 100644
index 000000000000..3e4c54cee0ff
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/turleft.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/turright.gif b/test/user-template/user/gallery/www-graf/turright.gif
new file mode 100644
index 000000000000..3cd281b35eab
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/turright.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/turup.gif b/test/user-template/user/gallery/www-graf/turup.gif
new file mode 100644
index 000000000000..d91cf36332e6
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/turup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/viohome.gif b/test/user-template/user/gallery/www-graf/viohome.gif
new file mode 100644
index 000000000000..a5ed74a143ed
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/viohome.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/violeft.gif b/test/user-template/user/gallery/www-graf/violeft.gif
new file mode 100644
index 000000000000..012eaabaea36
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/violeft.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/vioright.gif b/test/user-template/user/gallery/www-graf/vioright.gif
new file mode 100644
index 000000000000..91a463096075
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/vioright.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/vioup.gif b/test/user-template/user/gallery/www-graf/vioup.gif
new file mode 100644
index 000000000000..3cf93c8bd3e9
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/vioup.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/ylwdown.gif b/test/user-template/user/gallery/www-graf/ylwdown.gif
new file mode 100644
index 000000000000..15a10b024c40
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/ylwdown.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/ylwhome.gif b/test/user-template/user/gallery/www-graf/ylwhome.gif
new file mode 100644
index 000000000000..4144432d48ba
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/ylwhome.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/ylwleft.gif b/test/user-template/user/gallery/www-graf/ylwleft.gif
new file mode 100644
index 000000000000..9c2c29a6f125
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/ylwleft.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/ylwmail.gif b/test/user-template/user/gallery/www-graf/ylwmail.gif
new file mode 100644
index 000000000000..7a7dcd007c56
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/ylwmail.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/ylwright.gif b/test/user-template/user/gallery/www-graf/ylwright.gif
new file mode 100644
index 000000000000..eced2a8221be
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/ylwright.gif
Binary files differ
diff --git a/test/user-template/user/gallery/www-graf/ylwup.gif b/test/user-template/user/gallery/www-graf/ylwup.gif
new file mode 100644
index 000000000000..3820551aec9d
--- /dev/null
+++ b/test/user-template/user/gallery/www-graf/ylwup.gif
Binary files differ
diff --git a/test/user-template/user/psprint/driver/SGENPRT.PS b/test/user-template/user/psprint/driver/SGENPRT.PS
new file mode 100644
index 000000000000..79eead5f329a
--- /dev/null
+++ b/test/user-template/user/psprint/driver/SGENPRT.PS
@@ -0,0 +1,589 @@
+*PPD-Adobe: "4.0"
+*%
+*% DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*%
+*% Copyright 2000, 2010 Oracle and/or its affiliates.
+*%
+*% OpenOffice.org - a multi-platform office productivity suite
+*%
+*% This file is part of OpenOffice.org.
+*%
+*% OpenOffice.org is free software: you can redistribute it and/or modify
+*% it under the terms of the GNU Lesser General Public License version 3
+*% only, as published by the Free Software Foundation.
+*%
+*% OpenOffice.org is distributed in the hope that it will be useful,
+*% but WITHOUT ANY WARRANTY; without even the implied warranty of
+*% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+*% GNU Lesser General Public License version 3 for more details
+*% (a copy is included in the LICENSE file that accompanied this code).
+*%
+*% You should have received a copy of the GNU Lesser General Public License
+*% version 3 along with OpenOffice.org. If not, see
+*% <http://www.openoffice.org/license.html>
+*% for a copy of the LGPLv3 License.
+*%
+*%
+*%
+*% The user must print with a PostScript(R) emulator to non PostScript(R)
+*% printers if the system has no specific printer support. This file
+*% allows the user to print to most printers without any modification.
+*% Standard paper sizes and resolutions are defined. There are some
+*% additional definitions for screen or online documents in this file.
+*% To print to a PostScript(R) printer, use the specific PPD file.
+
+*% ===== General =====
+
+*FormatVersion: "4.0"
+*FileVersion: "1.0"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PSVersion: "(1) 1"
+*Product: "(Generic Printer)"
+*ModelName: "Generic Printer"
+*NickName: "Generic Printer"
+*PCFileName: "SGENPRT.PPD"
+
+
+*% ===== Basic Capabilities and Defaults =====
+
+*ColorDevice: True
+*DefaultColorSpace: RGB
+*LanguageLevel: "2"
+
+*% --- For None Color or old PostScript(R) printers use following lines ---
+*% *ColorDevice: False
+*% *DefaultColorSpace: Gray
+*% *LanguageLevel: "1"
+
+*FreeVM: "8388608"
+*VariablePaperSize: True
+*FileSystem: False
+*Throughput: "8"
+*Password: "0"
+*ExitServer: "
+ count 0 eq % is the password on the stack?
+ { true }
+ { dup % potential password
+ statusdict /checkpassword get exec not
+ } ifelse
+ { % if no password or not valid
+ (WARNING : Cannot perform the exitserver command.) =
+ (Password supplied is not valid.) =
+ (Please contact the author of this software.) = flush
+ quit
+ } if
+ serverdict /exitserver get exec
+"
+*End
+*Reset: "
+ count 0 eq % is the password on the stack?
+ { true }
+ { dup % potential password
+ statusdict /checkpassword get exec not
+ } ifelse
+ { % if no password or not valid
+ (WARNING : Cannot reset printer.) =
+ (Password supplied is not valid.) =
+ (Please contact the author of this software.) = flush
+ quit
+ } if
+ serverdict /exitserver get exec
+ systemdict /quit get exec
+ (WARNING : Printer Reset Failed.) = flush
+"
+*End
+
+
+*DefaultResolution: 300dpi
+
+*ResScreenFreq 72dpi: "60.0"
+*ResScreenFreq 144dpi: "60.0"
+*ResScreenFreq 300dpi: "60.0"
+*ResScreenFreq 360dpi: "60.0"
+*ResScreenFreq 600dpi: "60.0"
+*ResScreenFreq 720dpi: "60.0"
+*ResScreenFreq 1200dpi: "60.0"
+*ResScreenFreq 1440dpi: "60.0"
+*ResScreenFreq 2400dpi: "60.0"
+*ResScreenAngle 72dpi: "45.0"
+*ResScreenAngle 144dpi: "45.0"
+*ResScreenAngle 300dpi: "45.0"
+*ResScreenAngle 360dpi: "45.0"
+*ResScreenAngle 600dpi: "45.0"
+*ResScreenAngle 720dpi: "45.0"
+*ResScreenAngle 1200dpi: "45.0"
+*ResScreenAngle 1440dpi: "45.0"
+*ResScreenAngle 2400dpi: "45.0"
+
+
+*% ===== Halftone =====
+
+*ContoneOnly: False
+*DefaultHalftoneType: 1
+*ScreenFreq: "60.0"
+*ScreenAngle: "45.0"
+*DefaultScreenProc: Dot
+*ScreenProc Dot: "
+ { abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub
+ dup mul add 1 sub } { dup mul exch dup mul add 1 exch sub }
+ ifelse } bind
+"
+*End
+*ScreenProc Line: "{ exch pop abs neg } bind"
+*ScreenProc Ellipse: "
+ { abs exch abs 2 copy mul exch 4 mul add 3 sub dup 0
+ lt { pop dup mul exch .75 div dup mul add 4 div 1 exch sub }
+ { dup 1 gt { pop 1 exch sub dup mul exch 1 exch sub .75 div
+ dup mul add 4 div 1 sub }
+ { .5 exch sub exch pop exch pop } ifelse } ifelse } bind
+"
+*End
+*ScreenProc Cross: "{ abs exch abs 2 copy gt { exch } if pop neg } bind"
+
+*DefaultTransfer: Null
+*Transfer Null: "{ } bind"
+*Transfer Null.Inverse: "{ 1 exch sub } bind"
+
+
+*% ===== Paper =====
+
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize A0: "<</PageSize [2384 3370] /ImagingBBox null>> setpagedevice"
+*PageSize A1: "<</PageSize [1684 2384] /ImagingBBox null>> setpagedevice"
+*PageSize A2: "<</PageSize [1191 1684] /ImagingBBox null>> setpagedevice"
+*PageSize A3: "<</PageSize [842 1191] /ImagingBBox null>> setpagedevice"
+*PageSize A4: "<</PageSize [595 842] /ImagingBBox null>> setpagedevice"
+*PageSize A5: "<</PageSize [420 595] /ImagingBBox null>> setpagedevice"
+*PageSize A6: "<</PageSize [297 420] /ImagingBBox null>> setpagedevice"
+*PageSize B4: "<</PageSize [728 1032] /ImagingBBox null>> setpagedevice"
+*PageSize B5: "<</PageSize [516 729] /ImagingBBox null>> setpagedevice"
+*PageSize B6: "<</PageSize [363 516] /ImagingBBox null>> setpagedevice"
+*PageSize Legal/US Legal: "<</PageSize [612 1008] /ImagingBBox null>> setpagedevice"
+*PageSize Letter/US Letter: "<</PageSize [612 792] /ImagingBBox null>> setpagedevice"
+*PageSize Executive: "<</PageSize [522 756] /ImagingBBox null>> setpagedevice"
+*PageSize Statement: "<</PageSize [396 612] /ImagingBBox null>> setpagedevice"
+*PageSize Tabloid/US Tabloid: "<</PageSize [792 1224] /ImagingBBox null>> setpagedevice"
+*PageSize Ledger/Ledger Landscape: "<</PageSize [1224 792] /ImagingBBox null>> setpagedevice"
+*PageSize AnsiC/US C: "<</PageSize [1224 1584] /ImagingBBox null>> setpagedevice"
+*PageSize AnsiD/US D: "<</PageSize [1584 2448] /ImagingBBox null>> setpagedevice"
+*PageSize AnsiE/US E: "<</PageSize [2448 3168] /ImagingBBox null>> setpagedevice"
+*PageSize ARCHA/ARCH A: "<</PageSize [648 864] /ImagingBBox null>> setpagedevice"
+*PageSize ARCHB/ARCH B: "<</PageSize [864 1296] /ImagingBBox null>> setpagedevice"
+*PageSize ARCHC/ARCH C: "<</PageSize [1296 1728] /ImagingBBox null>> setpagedevice"
+*PageSize ARCHD/ARCH D: "<</PageSize [1728 2592] /ImagingBBox null>> setpagedevice"
+*PageSize ARCHE/ARCH E: "<</PageSize [2592 3456] /ImagingBBox null>> setpagedevice"
+*PageSize EnvMonarch/Monarch Envelope: "<</PageSize [279 540] /ImagingBBox null>> setpagedevice"
+*PageSize EnvDL/DL Envelope: "<</PageSize [312 624] /ImagingBBox null>> setpagedevice"
+*PageSize EnvC4/C4 Envelope: "<</PageSize [649 918] /ImagingBBox null>> setpagedevice"
+*PageSize EnvC5/C5 Envelope: "<</PageSize [459 649] /ImagingBBox null>> setpagedevice"
+*PageSize EnvC6/C6 Envelope: "<</PageSize [323 459] /ImagingBBox null>> setpagedevice"
+*PageSize Env10/C10 Envelope: "<</PageSize [297 684] /ImagingBBox null>> setpagedevice"
+*PageSize EnvC65/C65 Envelope: "<</PageSize [324 648] /ImagingBBox null>> setpagedevice"
+*PageSize Folio: "<</PageSize [595 935] /ImagingBBox null>> setpagedevice"
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 32 dict
+ dup [2384 3370] (A0) put
+ dup [1684 2384] (A1) put
+ dup [1191 1684] (A2) put
+ dup [842 1191] (A3) put
+ dup [595 842] (A4) put
+ dup [420 595] (A5) put
+ dup [297 420] (A6) put
+ dup [728 1032] (B4) put
+ dup [516 729] (B5) put
+ dup [363 516] (B6) put
+ dup [612 1008] (Legal) put
+ dup [612 792] (Letter) put
+ dup [522 756] (Executive) put
+ dup [396 612] (Statement) put
+ dup [792 1224] (Tabloid) put
+ dup [1224 792] (Ledger) put
+ dup [1224 1584] (AnsiC) put
+ dup [1584 2448] (AnsiD) put
+ dup [2448 3168] (AnsiE) put
+ dup [648 864] (ARCHA) put
+ dup [864 1296] (ARCHB) put
+ dup [1296 1728] (ARCHC) put
+ dup [1728 2592] (ARCHD) put
+ dup [2592 3456] (ARCHE) put
+ dup [279 540] (EnvMonarch) put
+ dup [312 624] (EnvDL) put
+ dup [649 918] (EnvC4) put
+ dup [459 649] (EnvC5) put
+ dup [323 459] (EnvC6) put
+ dup [297 684] (Env10) put
+ dup [324 648] (EnvC65) put
+ dup [595 935] (Folio) put
+ { exch aload pop 4 index sub abs 5 le exch
+ 5 index sub abs 5 le and
+ { exch pop exit } { pop } ifelse
+ } bind forall
+ = flush pop pop
+ restore
+"
+*End
+*CloseUI: *PageSize
+
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 40 AnySetup *PageRegion
+*DefaultPageRegion: Letter
+*PageRegion A0: "<</PageSize [2384 3370] /ImagingBBox null>> setpagedevice"
+*PageRegion A1: "<</PageSize [1684 2384] /ImagingBBox null>> setpagedevice"
+*PageRegion A2: "<</PageSize [1191 1684] /ImagingBBox null>> setpagedevice"
+*PageRegion A3: "<</PageSize [842 1191] /ImagingBBox null>> setpagedevice"
+*PageRegion A4: "<</PageSize [595 842] /ImagingBBox null>> setpagedevice"
+*PageRegion A5: "<</PageSize [420 595] /ImagingBBox null>> setpagedevice"
+*PageRegion A6: "<</PageSize [297 420] /ImagingBBox null>> setpagedevice"
+*PageRegion B4: "<</PageSize [728 1032] /ImagingBBox null>> setpagedevice"
+*PageRegion B5: "<</PageSize [516 729] /ImagingBBox null>> setpagedevice"
+*PageRegion B6: "<</PageSize [363 516] /ImagingBBox null>> setpagedevice"
+*PageRegion Legal/US Legal: "<</PageSize [612 1008] /ImagingBBox null>> setpagedevice"
+*PageRegion Letter/US Letter: "<</PageSize [612 792] /ImagingBBox null>> setpagedevice"
+*PageRegion Executive: "<</PageSize [522 756] /ImagingBBox null>> setpagedevice"
+*PageRegion Statement: "<</PageSize [396 612] /ImagingBBox null>> setpagedevice"
+*PageRegion Tabloid/US Tabloid: "<</PageSize [792 1224] /ImagingBBox null>> setpagedevice"
+*PageRegion Ledger/Ledger Landscape: "<</PageSize [1224 792] /ImagingBBox null>> setpagedevice"
+*PageRegion AnsiC/US C: "<</PageSize [1224 1584] /ImagingBBox null>> setpagedevice"
+*PageRegion AnsiD/US D: "<</PageSize [1584 2448] /ImagingBBox null>> setpagedevice"
+*PageRegion AnsiE/US E: "<</PageSize [2448 3168] /ImagingBBox null>> setpagedevice"
+*PageRegion ARCHA/ARCH A: "<</PageSize [648 864] /ImagingBBox null>> setpagedevice"
+*PageRegion ARCHB/ARCH B: "<</PageSize [864 1296] /ImagingBBox null>> setpagedevice"
+*PageRegion ARCHC/ARCH C: "<</PageSize [1296 1728] /ImagingBBox null>> setpagedevice"
+*PageRegion ARCHD/ARCH D: "<</PageSize [1728 2592] /ImagingBBox null>> setpagedevice"
+*PageRegion ARCHE/ARCH E: "<</PageSize [2592 3456] /ImagingBBox null>> setpagedevice"
+*PageRegion EnvMonarch/Monarch Envelope: "<</PageSize [279 540] /ImagingBBox null>> setpagedevice"
+*PageRegion EnvDL/DL Envelope: "<</PageSize [312 624] /ImagingBBox null>> setpagedevice"
+*PageRegion EnvC4/C4 Envelope: "<</PageSize [649 918] /ImagingBBox null>> setpagedevice"
+*PageRegion EnvC5/C5 Envelope: "<</PageSize [459 649] /ImagingBBox null>> setpagedevice"
+*PageRegion EnvC6/C6 Envelope: "<</PageSize [323 459] /ImagingBBox null>> setpagedevice"
+*PageRegion Env10/C10 Envelope: "<</PageSize [297 684] /ImagingBBox null>> setpagedevice"
+*PageRegion EnvC65/C65 Envelope: "<</PageSize [324 648] /ImagingBBox null>> setpagedevice"
+*PageRegion Folio: "<</PageSize [595 935] /ImagingBBox null>> setpagedevice"
+*CloseUI: *PageRegion
+
+*DefaultImageableArea: Letter
+*ImageableArea A0: "0 0 2384 3370"
+*ImageableArea A1: "0 0 1684 2384"
+*ImageableArea A2: "0 0 1191 1684"
+*ImageableArea A3: "18 18 824 1173"
+*ImageableArea A4: "18 18 577 824"
+*ImageableArea A5: "18 18 402 577"
+*ImageableArea A6: "18 18 279 402"
+*ImageableArea B4: "18 18 710 1014"
+*ImageableArea B5: "18 18 498 711"
+*ImageableArea B6: "18 18 345 498"
+*ImageableArea Legal: "18 18 594 990"
+*ImageableArea Letter: "18 18 594 774"
+*ImageableArea Executive: "18 18 504 738"
+*ImageableArea Statement: "18 18 378 594"
+*ImageableArea Tabloid: "18 18 774 1206"
+*ImageableArea Ledger: "18 18 1206 774"
+*ImageableArea AnsiC: "0 0 1224 1584"
+*ImageableArea AnsiD: "0 0 1584 2448"
+*ImageableArea AnsiE: "0 0 2448 3168"
+*ImageableArea ARCHA: "0 0 648 864"
+*ImageableArea ARCHB: "0 0 864 1296"
+*ImageableArea ARCHC: "0 0 1296 1728"
+*ImageableArea ARCHD: "0 0 1728 2592"
+*ImageableArea ARCHE: "0 0 2592 3456"
+*ImageableArea EnvMonarch: "0 0 279 540"
+*ImageableArea EnvDL: "0 0 312 624"
+*ImageableArea EnvC4: "0 0 649 918"
+*ImageableArea EnvC5: "0 0 459 649"
+*ImageableArea EnvC6: "0 0 323 459"
+*ImageableArea Env10: "0 0 297 684"
+*ImageableArea EnvC65: "0 0 324 648"
+*ImageableArea Folio: "0 0 595 935"
+
+*DefaultPaperDimension: Letter
+*PaperDimension A0: "2384 3370"
+*PaperDimension A1: "1684 2384"
+*PaperDimension A2: "1191 1684"
+*PaperDimension A3: "842 1191"
+*PaperDimension A4: "595 842"
+*PaperDimension A5: "420 595"
+*PaperDimension A6: "297 420"
+*PaperDimension B4: "728 1032"
+*PaperDimension B5: "516 729"
+*PaperDimension B6: "363 516"
+*PaperDimension Legal: "612 1008"
+*PaperDimension Letter: "612 792"
+*PaperDimension Executive: "522 756"
+*PaperDimension Statement: "396 612"
+*PaperDimension Tabloid: "792 1224"
+*PaperDimension Ledger: "1224 792"
+*PaperDimension AnsiC: "1224 1584"
+*PaperDimension AnsiD: "1584 2448"
+*PaperDimension AnsiE: "2448 3168"
+*PaperDimension ARCHA: "648 864"
+*PaperDimension ARCHB: "864 1296"
+*PaperDimension ARCHC: "1296 1728"
+*PaperDimension ARCHD: "1728 2592"
+*PaperDimension ARCHE: "2592 3456"
+*PaperDimension EnvMonarch: "279 540"
+*PaperDimension EnvDL: "312 624"
+*PaperDimension EnvC4: "649 918"
+*PaperDimension EnvC5: "459 649"
+*PaperDimension EnvC6: "323 459"
+*PaperDimension Env10: "297 684"
+*PaperDimension EnvC65: "324 648"
+*PaperDimension Folio: "595 935"
+
+*% ===== Duplex =====
+*OpenUI *Duplex/Duplex: PickOne
+*OrderDependency: 30 AnySetup *Duplex
+*DefaultDuplex: Simplex
+*Duplex Simplex: ""
+*Duplex None/Off: "
+<</Duplex false /Tumble false
+ /Policies << /Duplex 1 /Tumble 1 >>
+>> setpagedevice"
+*Duplex DuplexNoTumble/Long edge:"
+<</Duplex true /Tumble false
+ /Policies << /Duplex 1 /Tumble 1 >>
+>> setpagedevice"
+*Duplex DuplexTumble/Short edge:"
+<</Duplex true /Tumble true
+ /Policies << /Duplex 1 /Tumble 1 >>
+>> setpagedevice"
+*End
+*CloseUI: *Duplex
+
+*% ===== ManualFeed ===
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 15 AnySetup *ManualFeed
+*DefaultManualFeed: False
+*ManualFeed False: "
+<< /ManualFeed false /Policies << /ManualFeed 1 >> >> setpagedevice"
+*ManualFeed True: "
+<< /ManualFeed true /Policies << /ManualFeed 1 >> >> setpagedevice"
+*End
+*CloseUI: *ManualFeed
+
+*% ===== Fonts =====
+
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.000)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.000)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.000)" Standard ROM
+*Font Bookman-Demi: Standard "(001.000)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.000)" Standard ROM
+*Font Bookman-Light: Standard "(001.000)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.000)" Standard ROM
+*Font Courier: Standard "(001.000)" Standard ROM
+*Font Courier-Bold: Standard "(001.000)" Standard ROM
+*Font Courier-BoldOblique: Standard "(001.000)" Standard ROM
+*Font Courier-Oblique: Standard "(001.000)" Standard ROM
+*Font Helvetica: Standard "(001.000)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.000)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.000)" Standard ROM
+*Font Helvetica-Narrow: Standard "(001.000)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.000)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.000)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.000)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.000)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.000)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.000)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.000)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.000)" Standard ROM
+*Font Palatino-Bold: Standard "(001.000)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.000)" Standard ROM
+*Font Palatino-Italic: Standard "(001.000)" Standard ROM
+*Font Palatino-Roman: Standard "(001.000)" Standard ROM
+*Font Symbol: Special "(001.001)" Special ROM
+*Font Times-Bold: Standard "(001.000)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.000)" Standard ROM
+*Font Times-Italic: Standard "(001.000)" Standard ROM
+*Font Times-Roman: Standard "(001.000)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.000)" Standard ROM
+*Font ZapfDingbats: Special "(001.000)" Special ROM
+*?FontQuery: "
+ save
+ {
+ count 1 gt
+ {
+ exch dup 127 string cvs (/) print print (:) print
+ /Font resourcestatus {pop pop (Yes)} {(No)} ifelse =
+ }
+ { exit } ifelse
+ } bind loop
+ (*) = flush
+ restore
+"
+*End
+
+*?FontList: "
+ save
+ (*) {cvn ==} 128 string /Font resourceforall
+ (*) = flush
+ restore
+"
+*End
+
+
+*% === Printer Messages ===
+
+*Message: "%%[ exitserver: permanent state may be changed ]%%"
+*Message: "%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%"
+*Message: "\FontName\ not found, using Courier"
+
+*% Status (format: %%[ status: <one of these> %%] )
+*Status: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "printing"
+*Status: "PrinterError: timeout, clearing printer"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: no toner cartridge"
+*Status: "PrinterError: no paper tray"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: resetting printer"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: timeout"
+*Status: "PrinterError: manual feed timeout"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these>]%% )
+
+*% Printer Error (format: %%[ PrinterError: <one of these>]%%)
+*PrinterError: "timeout, clearing printer"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "warming up"
+*PrinterError: "service call"
+*PrinterError: "no toner cartridge"
+*PrinterError: "no paper tray"
+*PrinterError: "cover open"
+*PrinterError: "resetting printer"
+*PrinterError: "out of paper"
+*PrinterError: "timeout"
+*PrinterError: "manual feed timeout"
+
+
+*% ===== Color Separation =====
+
+*DefaultColorSep: ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi
+*InkName: ProcessBlack/Process Black
+*InkName: CustomColor/Custom Color
+*InkName: ProcessCyan/Process Cyan
+*InkName: ProcessMagenta/Process Magenta
+*InkName: ProcessYellow/Process Yellow
+
+*% --- For 60 lpi / 72 dpi ---
+*ColorSepScreenAngle ProcessBlack.60lpi.72dpi/60 lpi / 72 dpi: "45"
+*ColorSepScreenAngle CustomColor.60lpi.72dpi/60 lpi / 72 dpi: "45"
+*ColorSepScreenAngle ProcessCyan.60lpi.72dpi/60 lpi / 72 dpi: "15"
+*ColorSepScreenAngle ProcessMagenta.60lpi.72dpi/60 lpi / 72 dpi: "75"
+*ColorSepScreenAngle ProcessYellow.60lpi.72dpi/60 lpi / 72 dpi: "0"
+*ColorSepScreenFreq ProcessBlack.60lpi.72dpi/60 lpi / 72 dpi: "60"
+*ColorSepScreenFreq CustomColor.60lpi.72dpi/60 lpi / 72 dpi: "60"
+*ColorSepScreenFreq ProcessCyan.60lpi.72dpi/60 lpi / 72 dpi: "60"
+*ColorSepScreenFreq ProcessMagenta.60lpi.72dpi/60 lpi / 72 dpi: "60"
+*ColorSepScreenFreq ProcessYellow.60lpi.72dpi/60 lpi / 72 dpi: "60"
+
+*% --- For 60 lpi / 144 dpi ---
+*ColorSepScreenAngle ProcessBlack.60lpi.144dpi/60 lpi / 144 dpi: "45"
+*ColorSepScreenAngle CustomColor.60lpi.144dpi/60 lpi / 144 dpi: "45"
+*ColorSepScreenAngle ProcessCyan.60lpi.144dpi/60 lpi / 144 dpi: "15"
+*ColorSepScreenAngle ProcessMagenta.60lpi.144dpi/60 lpi / 144 dpi: "75"
+*ColorSepScreenAngle ProcessYellow.60lpi.144dpi/60 lpi / 144 dpi: "0"
+*ColorSepScreenFreq ProcessBlack.60lpi.144dpi/60 lpi / 144 dpi: "60"
+*ColorSepScreenFreq CustomColor.60lpi.144dpi/60 lpi / 144 dpi: "60"
+*ColorSepScreenFreq ProcessCyan.60lpi.144dpi/60 lpi / 144 dpi: "60"
+*ColorSepScreenFreq ProcessMagenta.60lpi.144dpi/60 lpi / 144 dpi: "60"
+*ColorSepScreenFreq ProcessYellow.60lpi.144dpi/60 lpi / 144 dpi: "60"
+
+*% --- For 60 lpi / 300 dpi ---
+*ColorSepScreenAngle ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "45"
+*ColorSepScreenAngle CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "45"
+*ColorSepScreenAngle ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "15"
+*ColorSepScreenAngle ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "75"
+*ColorSepScreenAngle ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "0"
+*ColorSepScreenFreq ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "60"
+*ColorSepScreenFreq CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "60"
+*ColorSepScreenFreq ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "60"
+*ColorSepScreenFreq ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "60"
+*ColorSepScreenFreq ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "60"
+
+*% --- For 60 lpi / 360 dpi ---
+*ColorSepScreenAngle ProcessBlack.60lpi.360dpi/60 lpi / 360 dpi: "45"
+*ColorSepScreenAngle CustomColor.60lpi.360dpi/60 lpi / 360 dpi: "45"
+*ColorSepScreenAngle ProcessCyan.60lpi.360dpi/60 lpi / 360 dpi: "15"
+*ColorSepScreenAngle ProcessMagenta.60lpi.360dpi/60 lpi / 360 dpi: "75"
+*ColorSepScreenAngle ProcessYellow.60lpi.360dpi/60 lpi / 360 dpi: "0"
+*ColorSepScreenFreq ProcessBlack.60lpi.360dpi/60 lpi / 360 dpi: "60"
+*ColorSepScreenFreq CustomColor.60lpi.360dpi/60 lpi / 360 dpi: "60"
+*ColorSepScreenFreq ProcessCyan.60lpi.360dpi/60 lpi / 360 dpi: "60"
+*ColorSepScreenFreq ProcessMagenta.60lpi.360dpi/60 lpi / 360 dpi: "60"
+*ColorSepScreenFreq ProcessYellow.60lpi.360dpi/60 lpi / 360 dpi: "60"
+
+*% --- For 71 lpi / 600 dpi ---
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+*% --- For 71 lpi / 720 dpi ---
+*ColorSepScreenAngle ProcessBlack.71lpi.720dpi/71 lpi / 720 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.720dpi/71 lpi / 720 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.720dpi/71 lpi / 720 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.720dpi/71 lpi / 720 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.720dpi/71 lpi / 720 dpi: "0.0"
+*ColorSepScreenFreq ProcessBlack.71lpi.720dpi/71 lpi / 720 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.720dpi/71 lpi / 720 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.720dpi/71 lpi / 720 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.720dpi/71 lpi / 720 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.720dpi/71 lpi / 720 dpi: "66.6667"
+
+*% --- For 100 lpi / 1200 dpi ---
+*ColorSepScreenAngle ProcessBlack.100lpi.1200dpi/100 lpi / 1200 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.100lpi.1200dpi/100 lpi / 1200 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.100lpi.1200dpi/100 lpi / 1200 dpi: "15.0"
+*ColorSepScreenAngle ProcessMagenta.100lpi.1200dpi/100 lpi / 1200 dpi: "75.0"
+*ColorSepScreenAngle ProcessYellow.100lpi.1200dpi/100 lpi / 1200 dpi: "0.0"
+*ColorSepScreenFreq ProcessBlack.100lpi.1200dpi/100 lpi / 1200 dpi: "100.0"
+*ColorSepScreenFreq CustomColor.100lpi.1200dpi/100 lpi / 1200 dpi: "100.0"
+*ColorSepScreenFreq ProcessCyan.100lpi.1200dpi/100 lpi / 1200 dpi: "100.0"
+*ColorSepScreenFreq ProcessMagenta.100lpi.1200dpi/100 lpi / 1200 dpi: "100.0"
+*ColorSepScreenFreq ProcessYellow.100lpi.1200dpi/100 lpi / 1200 dpi: "100.0"
+
+*% --- For 100 lpi / 1440 dpi ---
+*ColorSepScreenAngle ProcessBlack.100lpi.1440dpi/100 lpi / 1440 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.100lpi.1440dpi/100 lpi / 1440 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.100lpi.1440dpi/100 lpi / 1440 dpi: "15.0"
+*ColorSepScreenAngle ProcessMagenta.100lpi.1440dpi/100 lpi / 1440 dpi: "75.0"
+*ColorSepScreenAngle ProcessYellow.100lpi.1440dpi/100 lpi / 1440 dpi: "0.0"
+*ColorSepScreenFreq ProcessBlack.100lpi.1440dpi/100 lpi / 1440 dpi: "100.0"
+*ColorSepScreenFreq CustomColor.100lpi.1440dpi/100 lpi / 1440 dpi: "100.0"
+*ColorSepScreenFreq ProcessCyan.100lpi.1440dpi/100 lpi / 1440 dpi: "100.0"
+*ColorSepScreenFreq ProcessMagenta.100lpi.1440dpi/100 lpi / 1440 dpi: "100.0"
+*ColorSepScreenFreq ProcessYellow.100lpi.1440dpi/100 lpi / 1440 dpi: "100.0"
+
+*% --- For 175 lpi / 2400 dpi ---
+*ColorSepScreenAngle ProcessBlack.175lpi.2400dpi/175 lpi / 2400 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.175lpi.2400dpi/175 lpi / 2400 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.175lpi.2400dpi/175 lpi / 2400 dpi: "15.0"
+*ColorSepScreenAngle ProcessMagenta.175lpi.2400dpi/175 lpi / 2400 dpi: "75.0"
+*ColorSepScreenAngle ProcessYellow.175lpi.2400dpi/175 lpi / 2400 dpi: "0.0"
+*ColorSepScreenFreq ProcessBlack.175lpi.2400dpi/175 lpi / 2400 dpi: "175.0"
+*ColorSepScreenFreq CustomColor.175lpi.2400dpi/175 lpi / 2400 dpi: "175.0"
+*ColorSepScreenFreq ProcessCyan.175lpi.2400dpi/175 lpi / 2400 dpi: "175.0"
+*ColorSepScreenFreq ProcessMagenta.175lpi.2400dpi/175 lpi / 2400 dpi: "175.0"
+*ColorSepScreenFreq ProcessYellow.175lpi.2400dpi/175 lpi / 2400 dpi: "175.0"
+
+*% Last Edit Date: March 24 2000
+*% end of PPD file
diff --git a/test/user-template/user/psprint/driver/SGENT42.PS b/test/user-template/user/psprint/driver/SGENT42.PS
new file mode 100644
index 000000000000..3f61379a2269
--- /dev/null
+++ b/test/user-template/user/psprint/driver/SGENT42.PS
@@ -0,0 +1,29 @@
+*PPD-Adobe: "4.0"
+*% DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*%
+*% Copyright 2000, 2010 Oracle and/or its affiliates.
+*%
+*% OpenOffice.org - a multi-platform office productivity suite
+*%
+*% This file is part of OpenOffice.org.
+*%
+*% OpenOffice.org is free software: you can redistribute it and/or modify
+*% it under the terms of the GNU Lesser General Public License version 3
+*% only, as published by the Free Software Foundation.
+*%
+*% OpenOffice.org is distributed in the hope that it will be useful,
+*% but WITHOUT ANY WARRANTY; without even the implied warranty of
+*% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+*% GNU Lesser General Public License version 3 for more details
+*% (a copy is included in the LICENSE file that accompanied this code).
+*%
+*% You should have received a copy of the GNU Lesser General Public License
+*% version 3 along with OpenOffice.org. If not, see
+*% <http://www.openoffice.org/license.html>
+*% for a copy of the LGPLv3 License.
+
+*Product: "(Generic Printer T42)"
+*ModelName: "Generic Printer (T42 enabled)"
+*NickName: "Generic Printer (T42 enabled)"
+*TTRasterizer: Type42
+*Include: "./SGENPRT.PS"
diff --git a/test/user-template/user/psprint/fontmetric/Courier-Bold.afm b/test/user-template/user/psprint/fontmetric/Courier-Bold.afm
new file mode 100644
index 000000000000..20246cc6900d
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Courier-Bold.afm
@@ -0,0 +1,340 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Mon Jun 23 16:28:00 1997
+Comment UniqueID 43048
+Comment VMusage 41139 52164
+FontName Courier-Bold
+FullName Courier Bold
+FamilyName Courier
+Weight Bold
+ItalicAngle 0
+IsFixedPitch true
+FontBBox -113 -250 749 801
+UnderlinePosition -100
+UnderlineThickness 50
+Version 003.000
+Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 562
+XHeight 439
+Ascender 629
+Descender -157
+StdHW 84
+StdVW 106
+StartCharMetrics 314
+C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 600 ; N exclam ; B 202 -15 398 572 ;
+C 34 ; WX 600 ; N quotedbl ; B 135 277 465 562 ;
+C 35 ; WX 600 ; N numbersign ; B 56 -45 544 651 ;
+C 36 ; WX 600 ; N dollar ; B 82 -126 519 666 ;
+C 37 ; WX 600 ; N percent ; B 5 -15 595 616 ;
+C 38 ; WX 600 ; N ampersand ; B 36 -15 546 543 ;
+C 39 ; WX 600 ; N quoteright ; B 171 277 423 562 ;
+C 40 ; WX 600 ; N parenleft ; B 219 -102 461 616 ;
+C 41 ; WX 600 ; N parenright ; B 139 -102 381 616 ;
+C 42 ; WX 600 ; N asterisk ; B 91 219 509 601 ;
+C 43 ; WX 600 ; N plus ; B 71 39 529 478 ;
+C 44 ; WX 600 ; N comma ; B 123 -111 393 174 ;
+C 45 ; WX 600 ; N hyphen ; B 100 203 500 313 ;
+C 46 ; WX 600 ; N period ; B 192 -15 408 171 ;
+C 47 ; WX 600 ; N slash ; B 98 -77 502 626 ;
+C 48 ; WX 600 ; N zero ; B 87 -15 513 616 ;
+C 49 ; WX 600 ; N one ; B 81 0 539 616 ;
+C 50 ; WX 600 ; N two ; B 61 0 499 616 ;
+C 51 ; WX 600 ; N three ; B 63 -15 501 616 ;
+C 52 ; WX 600 ; N four ; B 53 0 507 616 ;
+C 53 ; WX 600 ; N five ; B 70 -15 521 601 ;
+C 54 ; WX 600 ; N six ; B 90 -15 521 616 ;
+C 55 ; WX 600 ; N seven ; B 55 0 494 601 ;
+C 56 ; WX 600 ; N eight ; B 83 -15 517 616 ;
+C 57 ; WX 600 ; N nine ; B 79 -15 510 616 ;
+C 58 ; WX 600 ; N colon ; B 191 -15 407 425 ;
+C 59 ; WX 600 ; N semicolon ; B 123 -111 408 425 ;
+C 60 ; WX 600 ; N less ; B 66 15 523 501 ;
+C 61 ; WX 600 ; N equal ; B 71 118 529 398 ;
+C 62 ; WX 600 ; N greater ; B 77 15 534 501 ;
+C 63 ; WX 600 ; N question ; B 98 -14 501 580 ;
+C 64 ; WX 600 ; N at ; B 16 -15 584 616 ;
+C 65 ; WX 600 ; N A ; B -9 0 609 562 ;
+C 66 ; WX 600 ; N B ; B 30 0 573 562 ;
+C 67 ; WX 600 ; N C ; B 22 -18 560 580 ;
+C 68 ; WX 600 ; N D ; B 30 0 594 562 ;
+C 69 ; WX 600 ; N E ; B 25 0 560 562 ;
+C 70 ; WX 600 ; N F ; B 39 0 570 562 ;
+C 71 ; WX 600 ; N G ; B 22 -18 594 580 ;
+C 72 ; WX 600 ; N H ; B 20 0 580 562 ;
+C 73 ; WX 600 ; N I ; B 77 0 523 562 ;
+C 74 ; WX 600 ; N J ; B 37 -18 601 562 ;
+C 75 ; WX 600 ; N K ; B 21 0 599 562 ;
+C 76 ; WX 600 ; N L ; B 39 0 578 562 ;
+C 77 ; WX 600 ; N M ; B -2 0 602 562 ;
+C 78 ; WX 600 ; N N ; B 8 -12 610 562 ;
+C 79 ; WX 600 ; N O ; B 22 -18 578 580 ;
+C 80 ; WX 600 ; N P ; B 48 0 559 562 ;
+C 81 ; WX 600 ; N Q ; B 32 -138 578 580 ;
+C 82 ; WX 600 ; N R ; B 24 0 599 562 ;
+C 83 ; WX 600 ; N S ; B 47 -22 553 582 ;
+C 84 ; WX 600 ; N T ; B 21 0 579 562 ;
+C 85 ; WX 600 ; N U ; B 4 -18 596 562 ;
+C 86 ; WX 600 ; N V ; B -13 0 613 562 ;
+C 87 ; WX 600 ; N W ; B -18 0 618 562 ;
+C 88 ; WX 600 ; N X ; B 12 0 588 562 ;
+C 89 ; WX 600 ; N Y ; B 12 0 589 562 ;
+C 90 ; WX 600 ; N Z ; B 62 0 539 562 ;
+C 91 ; WX 600 ; N bracketleft ; B 245 -102 475 616 ;
+C 92 ; WX 600 ; N backslash ; B 99 -77 503 626 ;
+C 93 ; WX 600 ; N bracketright ; B 125 -102 355 616 ;
+C 94 ; WX 600 ; N asciicircum ; B 108 250 492 616 ;
+C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ;
+C 96 ; WX 600 ; N quoteleft ; B 178 277 428 562 ;
+C 97 ; WX 600 ; N a ; B 35 -15 570 454 ;
+C 98 ; WX 600 ; N b ; B 0 -15 584 626 ;
+C 99 ; WX 600 ; N c ; B 40 -15 545 459 ;
+C 100 ; WX 600 ; N d ; B 20 -15 591 626 ;
+C 101 ; WX 600 ; N e ; B 40 -15 563 454 ;
+C 102 ; WX 600 ; N f ; B 83 0 547 626 ; L i fi ; L l fl ;
+C 103 ; WX 600 ; N g ; B 30 -146 580 454 ;
+C 104 ; WX 600 ; N h ; B 5 0 592 626 ;
+C 105 ; WX 600 ; N i ; B 77 0 523 658 ;
+C 106 ; WX 600 ; N j ; B 63 -146 440 658 ;
+C 107 ; WX 600 ; N k ; B 20 0 585 626 ;
+C 108 ; WX 600 ; N l ; B 77 0 523 626 ;
+C 109 ; WX 600 ; N m ; B -22 0 626 454 ;
+C 110 ; WX 600 ; N n ; B 18 0 592 454 ;
+C 111 ; WX 600 ; N o ; B 30 -15 570 454 ;
+C 112 ; WX 600 ; N p ; B -1 -142 570 454 ;
+C 113 ; WX 600 ; N q ; B 20 -142 591 454 ;
+C 114 ; WX 600 ; N r ; B 47 0 580 454 ;
+C 115 ; WX 600 ; N s ; B 68 -17 535 459 ;
+C 116 ; WX 600 ; N t ; B 47 -15 532 562 ;
+C 117 ; WX 600 ; N u ; B -1 -15 569 439 ;
+C 118 ; WX 600 ; N v ; B -1 0 601 439 ;
+C 119 ; WX 600 ; N w ; B -18 0 618 439 ;
+C 120 ; WX 600 ; N x ; B 6 0 594 439 ;
+C 121 ; WX 600 ; N y ; B -4 -142 601 439 ;
+C 122 ; WX 600 ; N z ; B 81 0 520 439 ;
+C 123 ; WX 600 ; N braceleft ; B 160 -102 464 616 ;
+C 124 ; WX 600 ; N bar ; B 255 -250 345 750 ;
+C 125 ; WX 600 ; N braceright ; B 136 -102 440 616 ;
+C 126 ; WX 600 ; N asciitilde ; B 71 153 530 356 ;
+C 161 ; WX 600 ; N exclamdown ; B 202 -146 398 449 ;
+C 162 ; WX 600 ; N cent ; B 66 -49 518 614 ;
+C 163 ; WX 600 ; N sterling ; B 72 -28 558 611 ;
+C 164 ; WX 600 ; N fraction ; B 25 -60 576 661 ;
+C 165 ; WX 600 ; N yen ; B 10 0 590 562 ;
+C 166 ; WX 600 ; N florin ; B -30 -131 572 616 ;
+C 167 ; WX 600 ; N section ; B 83 -70 517 580 ;
+C 168 ; WX 600 ; N currency ; B 54 49 546 517 ;
+C 169 ; WX 600 ; N quotesingle ; B 227 277 373 562 ;
+C 170 ; WX 600 ; N quotedblleft ; B 71 277 535 562 ;
+C 171 ; WX 600 ; N guillemotleft ; B 8 70 553 446 ;
+C 172 ; WX 600 ; N guilsinglleft ; B 141 70 459 446 ;
+C 173 ; WX 600 ; N guilsinglright ; B 141 70 459 446 ;
+C 174 ; WX 600 ; N fi ; B 12 0 593 626 ;
+C 175 ; WX 600 ; N fl ; B 12 0 593 626 ;
+C 177 ; WX 600 ; N endash ; B 65 203 535 313 ;
+C 178 ; WX 600 ; N dagger ; B 106 -70 494 580 ;
+C 179 ; WX 600 ; N daggerdbl ; B 106 -70 494 580 ;
+C 180 ; WX 600 ; N periodcentered ; B 196 165 404 351 ;
+C 182 ; WX 600 ; N paragraph ; B 6 -70 576 580 ;
+C 183 ; WX 600 ; N bullet ; B 140 132 460 430 ;
+C 184 ; WX 600 ; N quotesinglbase ; B 175 -142 427 143 ;
+C 185 ; WX 600 ; N quotedblbase ; B 65 -142 529 143 ;
+C 186 ; WX 600 ; N quotedblright ; B 61 277 525 562 ;
+C 187 ; WX 600 ; N guillemotright ; B 47 70 592 446 ;
+C 188 ; WX 600 ; N ellipsis ; B 26 -15 574 116 ;
+C 189 ; WX 600 ; N perthousand ; B -113 -15 713 616 ;
+C 191 ; WX 600 ; N questiondown ; B 99 -146 502 449 ;
+C 193 ; WX 600 ; N grave ; B 132 508 395 661 ;
+C 194 ; WX 600 ; N acute ; B 205 508 468 661 ;
+C 195 ; WX 600 ; N circumflex ; B 103 483 497 657 ;
+C 196 ; WX 600 ; N tilde ; B 89 493 512 636 ;
+C 197 ; WX 600 ; N macron ; B 88 505 512 585 ;
+C 198 ; WX 600 ; N breve ; B 83 468 517 631 ;
+C 199 ; WX 600 ; N dotaccent ; B 230 498 370 638 ;
+C 200 ; WX 600 ; N dieresis ; B 128 498 472 638 ;
+C 202 ; WX 600 ; N ring ; B 198 481 402 678 ;
+C 203 ; WX 600 ; N cedilla ; B 205 -206 387 0 ;
+C 205 ; WX 600 ; N hungarumlaut ; B 68 488 588 661 ;
+C 206 ; WX 600 ; N ogonek ; B 169 -199 400 0 ;
+C 207 ; WX 600 ; N caron ; B 103 493 497 667 ;
+C 208 ; WX 600 ; N emdash ; B -10 203 610 313 ;
+C 225 ; WX 600 ; N AE ; B -29 0 602 562 ;
+C 227 ; WX 600 ; N ordfeminine ; B 147 196 453 580 ;
+C 232 ; WX 600 ; N Lslash ; B 39 0 578 562 ;
+C 233 ; WX 600 ; N Oslash ; B 22 -22 578 584 ;
+C 234 ; WX 600 ; N OE ; B -25 0 595 562 ;
+C 235 ; WX 600 ; N ordmasculine ; B 147 196 453 580 ;
+C 241 ; WX 600 ; N ae ; B -4 -15 601 454 ;
+C 245 ; WX 600 ; N dotlessi ; B 77 0 523 439 ;
+C 248 ; WX 600 ; N lslash ; B 77 0 523 626 ;
+C 249 ; WX 600 ; N oslash ; B 30 -24 570 463 ;
+C 250 ; WX 600 ; N oe ; B -18 -15 611 454 ;
+C 251 ; WX 600 ; N germandbls ; B 22 -15 596 626 ;
+C -1 ; WX 600 ; N Idieresis ; B 77 0 523 761 ;
+C -1 ; WX 600 ; N eacute ; B 40 -15 563 661 ;
+C -1 ; WX 600 ; N abreve ; B 35 -15 570 661 ;
+C -1 ; WX 600 ; N uhungarumlaut ; B -1 -15 628 661 ;
+C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ;
+C -1 ; WX 600 ; N Ydieresis ; B 12 0 589 761 ;
+C -1 ; WX 600 ; N divide ; B 71 16 529 500 ;
+C -1 ; WX 600 ; N Yacute ; B 12 0 589 784 ;
+C -1 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ;
+C -1 ; WX 600 ; N aacute ; B 35 -15 570 661 ;
+C -1 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ;
+C -1 ; WX 600 ; N yacute ; B -4 -142 601 661 ;
+C -1 ; WX 600 ; N scommaaccent ; B 68 -250 535 459 ;
+C -1 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ;
+C -1 ; WX 600 ; N Uring ; B 4 -18 596 801 ;
+C -1 ; WX 600 ; N Udieresis ; B 4 -18 596 761 ;
+C -1 ; WX 600 ; N aogonek ; B 35 -199 586 454 ;
+C -1 ; WX 600 ; N Uacute ; B 4 -18 596 784 ;
+C -1 ; WX 600 ; N uogonek ; B -1 -199 585 439 ;
+C -1 ; WX 600 ; N Edieresis ; B 25 0 560 761 ;
+C -1 ; WX 600 ; N Dcroat ; B 30 0 594 562 ;
+C -1 ; WX 600 ; N commaaccent ; B 205 -250 397 -57 ;
+C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ;
+C -1 ; WX 600 ; N Emacron ; B 25 0 560 708 ;
+C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ;
+C -1 ; WX 600 ; N aring ; B 35 -15 570 678 ;
+C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 610 562 ;
+C -1 ; WX 600 ; N lacute ; B 77 0 523 801 ;
+C -1 ; WX 600 ; N agrave ; B 35 -15 570 661 ;
+C -1 ; WX 600 ; N Tcommaaccent ; B 21 -250 579 562 ;
+C -1 ; WX 600 ; N Cacute ; B 22 -18 560 784 ;
+C -1 ; WX 600 ; N atilde ; B 35 -15 570 636 ;
+C -1 ; WX 600 ; N Edotaccent ; B 25 0 560 761 ;
+C -1 ; WX 600 ; N scaron ; B 68 -17 535 667 ;
+C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ;
+C -1 ; WX 600 ; N iacute ; B 77 0 523 661 ;
+C -1 ; WX 600 ; N lozenge ; B 66 0 534 740 ;
+C -1 ; WX 600 ; N Rcaron ; B 24 0 599 790 ;
+C -1 ; WX 600 ; N Gcommaaccent ; B 22 -250 594 580 ;
+C -1 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ;
+C -1 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ;
+C -1 ; WX 600 ; N Amacron ; B -9 0 609 708 ;
+C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ;
+C -1 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ;
+C -1 ; WX 600 ; N Zdotaccent ; B 62 0 539 761 ;
+C -1 ; WX 600 ; N Thorn ; B 48 0 557 562 ;
+C -1 ; WX 600 ; N Omacron ; B 22 -18 578 708 ;
+C -1 ; WX 600 ; N Racute ; B 24 0 599 784 ;
+C -1 ; WX 600 ; N Sacute ; B 47 -22 553 784 ;
+C -1 ; WX 600 ; N dcaron ; B 20 -15 727 626 ;
+C -1 ; WX 600 ; N Umacron ; B 4 -18 596 708 ;
+C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ;
+C -1 ; WX 600 ; N threesuperior ; B 138 222 433 616 ;
+C -1 ; WX 600 ; N Ograve ; B 22 -18 578 784 ;
+C -1 ; WX 600 ; N Agrave ; B -9 0 609 784 ;
+C -1 ; WX 600 ; N Abreve ; B -9 0 609 784 ;
+C -1 ; WX 600 ; N multiply ; B 81 39 520 478 ;
+C -1 ; WX 600 ; N uacute ; B -1 -15 569 661 ;
+C -1 ; WX 600 ; N Tcaron ; B 21 0 579 790 ;
+C -1 ; WX 600 ; N partialdiff ; B 63 -38 537 728 ;
+C -1 ; WX 600 ; N ydieresis ; B -4 -142 601 638 ;
+C -1 ; WX 600 ; N Nacute ; B 8 -12 610 784 ;
+C -1 ; WX 600 ; N icircumflex ; B 73 0 523 657 ;
+C -1 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ;
+C -1 ; WX 600 ; N adieresis ; B 35 -15 570 638 ;
+C -1 ; WX 600 ; N edieresis ; B 40 -15 563 638 ;
+C -1 ; WX 600 ; N cacute ; B 40 -15 545 661 ;
+C -1 ; WX 600 ; N nacute ; B 18 0 592 661 ;
+C -1 ; WX 600 ; N umacron ; B -1 -15 569 585 ;
+C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 790 ;
+C -1 ; WX 600 ; N Iacute ; B 77 0 523 784 ;
+C -1 ; WX 600 ; N plusminus ; B 71 24 529 515 ;
+C -1 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ;
+C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ;
+C -1 ; WX 600 ; N Gbreve ; B 22 -18 594 784 ;
+C -1 ; WX 600 ; N Idotaccent ; B 77 0 523 761 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 600 ; N Egrave ; B 25 0 560 784 ;
+C -1 ; WX 600 ; N racute ; B 47 0 580 661 ;
+C -1 ; WX 600 ; N omacron ; B 30 -15 570 585 ;
+C -1 ; WX 600 ; N Zacute ; B 62 0 539 784 ;
+C -1 ; WX 600 ; N Zcaron ; B 62 0 539 790 ;
+C -1 ; WX 600 ; N greaterequal ; B 26 0 523 696 ;
+C -1 ; WX 600 ; N Eth ; B 30 0 594 562 ;
+C -1 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ;
+C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 523 626 ;
+C -1 ; WX 600 ; N tcaron ; B 47 -15 532 703 ;
+C -1 ; WX 600 ; N eogonek ; B 40 -199 563 454 ;
+C -1 ; WX 600 ; N Uogonek ; B 4 -199 596 562 ;
+C -1 ; WX 600 ; N Aacute ; B -9 0 609 784 ;
+C -1 ; WX 600 ; N Adieresis ; B -9 0 609 761 ;
+C -1 ; WX 600 ; N egrave ; B 40 -15 563 661 ;
+C -1 ; WX 600 ; N zacute ; B 81 0 520 661 ;
+C -1 ; WX 600 ; N iogonek ; B 77 -199 523 658 ;
+C -1 ; WX 600 ; N Oacute ; B 22 -18 578 784 ;
+C -1 ; WX 600 ; N oacute ; B 30 -15 570 661 ;
+C -1 ; WX 600 ; N amacron ; B 35 -15 570 585 ;
+C -1 ; WX 600 ; N sacute ; B 68 -17 535 661 ;
+C -1 ; WX 600 ; N idieresis ; B 77 0 523 618 ;
+C -1 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ;
+C -1 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ;
+C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ;
+C -1 ; WX 600 ; N thorn ; B -14 -142 570 626 ;
+C -1 ; WX 600 ; N twosuperior ; B 143 230 436 616 ;
+C -1 ; WX 600 ; N Odieresis ; B 22 -18 578 761 ;
+C -1 ; WX 600 ; N mu ; B -1 -142 569 439 ;
+C -1 ; WX 600 ; N igrave ; B 77 0 523 661 ;
+C -1 ; WX 600 ; N ohungarumlaut ; B 30 -15 668 661 ;
+C -1 ; WX 600 ; N Eogonek ; B 25 -199 576 562 ;
+C -1 ; WX 600 ; N dcroat ; B 20 -15 591 626 ;
+C -1 ; WX 600 ; N threequarters ; B -47 -60 648 661 ;
+C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ;
+C -1 ; WX 600 ; N lcaron ; B 77 0 597 626 ;
+C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 599 562 ;
+C -1 ; WX 600 ; N Lacute ; B 39 0 578 784 ;
+C -1 ; WX 600 ; N trademark ; B -9 230 749 562 ;
+C -1 ; WX 600 ; N edotaccent ; B 40 -15 563 638 ;
+C -1 ; WX 600 ; N Igrave ; B 77 0 523 784 ;
+C -1 ; WX 600 ; N Imacron ; B 77 0 523 708 ;
+C -1 ; WX 600 ; N Lcaron ; B 39 0 637 562 ;
+C -1 ; WX 600 ; N onehalf ; B -47 -60 648 661 ;
+C -1 ; WX 600 ; N lessequal ; B 26 0 523 696 ;
+C -1 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ;
+C -1 ; WX 600 ; N ntilde ; B 18 0 592 636 ;
+C -1 ; WX 600 ; N Uhungarumlaut ; B 4 -18 638 784 ;
+C -1 ; WX 600 ; N Eacute ; B 25 0 560 784 ;
+C -1 ; WX 600 ; N emacron ; B 40 -15 563 585 ;
+C -1 ; WX 600 ; N gbreve ; B 30 -146 580 661 ;
+C -1 ; WX 600 ; N onequarter ; B -56 -60 656 661 ;
+C -1 ; WX 600 ; N Scaron ; B 47 -22 553 790 ;
+C -1 ; WX 600 ; N Scommaaccent ; B 47 -250 553 582 ;
+C -1 ; WX 600 ; N Ohungarumlaut ; B 22 -18 628 784 ;
+C -1 ; WX 600 ; N degree ; B 86 243 474 616 ;
+C -1 ; WX 600 ; N ograve ; B 30 -15 570 661 ;
+C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 790 ;
+C -1 ; WX 600 ; N ugrave ; B -1 -15 569 661 ;
+C -1 ; WX 600 ; N radical ; B -19 -104 473 778 ;
+C -1 ; WX 600 ; N Dcaron ; B 30 0 594 790 ;
+C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 580 454 ;
+C -1 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ;
+C -1 ; WX 600 ; N otilde ; B 30 -15 570 636 ;
+C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 599 562 ;
+C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 578 562 ;
+C -1 ; WX 600 ; N Atilde ; B -9 0 609 759 ;
+C -1 ; WX 600 ; N Aogonek ; B -9 -199 625 562 ;
+C -1 ; WX 600 ; N Aring ; B -9 0 609 801 ;
+C -1 ; WX 600 ; N Otilde ; B 22 -18 578 759 ;
+C -1 ; WX 600 ; N zdotaccent ; B 81 0 520 638 ;
+C -1 ; WX 600 ; N Ecaron ; B 25 0 560 790 ;
+C -1 ; WX 600 ; N Iogonek ; B 77 -199 523 562 ;
+C -1 ; WX 600 ; N kcommaaccent ; B 20 -250 585 626 ;
+C -1 ; WX 600 ; N minus ; B 71 203 529 313 ;
+C -1 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ;
+C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ;
+C -1 ; WX 600 ; N tcommaaccent ; B 47 -250 532 562 ;
+C -1 ; WX 600 ; N logicalnot ; B 71 103 529 413 ;
+C -1 ; WX 600 ; N odieresis ; B 30 -15 570 638 ;
+C -1 ; WX 600 ; N udieresis ; B -1 -15 569 638 ;
+C -1 ; WX 600 ; N notequal ; B 12 -47 537 563 ;
+C -1 ; WX 600 ; N gcommaaccent ; B 30 -146 580 714 ;
+C -1 ; WX 600 ; N eth ; B 58 -27 543 626 ;
+C -1 ; WX 600 ; N zcaron ; B 81 0 520 667 ;
+C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 592 454 ;
+C -1 ; WX 600 ; N onesuperior ; B 153 230 447 616 ;
+C -1 ; WX 600 ; N imacron ; B 77 0 523 585 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Courier-BoldOblique.afm b/test/user-template/user/psprint/fontmetric/Courier-BoldOblique.afm
new file mode 100644
index 000000000000..053da6cfec99
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Courier-BoldOblique.afm
@@ -0,0 +1,340 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Mon Jun 23 16:28:46 1997
+Comment UniqueID 43049
+Comment VMusage 17529 79244
+FontName Courier-BoldOblique
+FullName Courier Bold Oblique
+FamilyName Courier
+Weight Bold
+ItalicAngle -12
+IsFixedPitch true
+FontBBox -57 -250 869 801
+UnderlinePosition -100
+UnderlineThickness 50
+Version 003.000
+Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 562
+XHeight 439
+Ascender 629
+Descender -157
+StdHW 84
+StdVW 106
+StartCharMetrics 314
+C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 600 ; N exclam ; B 215 -15 495 572 ;
+C 34 ; WX 600 ; N quotedbl ; B 211 277 585 562 ;
+C 35 ; WX 600 ; N numbersign ; B 88 -45 641 651 ;
+C 36 ; WX 600 ; N dollar ; B 87 -126 630 666 ;
+C 37 ; WX 600 ; N percent ; B 101 -15 625 616 ;
+C 38 ; WX 600 ; N ampersand ; B 61 -15 595 543 ;
+C 39 ; WX 600 ; N quoteright ; B 229 277 543 562 ;
+C 40 ; WX 600 ; N parenleft ; B 265 -102 592 616 ;
+C 41 ; WX 600 ; N parenright ; B 117 -102 444 616 ;
+C 42 ; WX 600 ; N asterisk ; B 179 219 598 601 ;
+C 43 ; WX 600 ; N plus ; B 114 39 596 478 ;
+C 44 ; WX 600 ; N comma ; B 99 -111 430 174 ;
+C 45 ; WX 600 ; N hyphen ; B 143 203 567 313 ;
+C 46 ; WX 600 ; N period ; B 206 -15 427 171 ;
+C 47 ; WX 600 ; N slash ; B 90 -77 626 626 ;
+C 48 ; WX 600 ; N zero ; B 135 -15 593 616 ;
+C 49 ; WX 600 ; N one ; B 93 0 562 616 ;
+C 50 ; WX 600 ; N two ; B 61 0 594 616 ;
+C 51 ; WX 600 ; N three ; B 71 -15 571 616 ;
+C 52 ; WX 600 ; N four ; B 81 0 559 616 ;
+C 53 ; WX 600 ; N five ; B 77 -15 621 601 ;
+C 54 ; WX 600 ; N six ; B 135 -15 652 616 ;
+C 55 ; WX 600 ; N seven ; B 147 0 622 601 ;
+C 56 ; WX 600 ; N eight ; B 115 -15 604 616 ;
+C 57 ; WX 600 ; N nine ; B 75 -15 592 616 ;
+C 58 ; WX 600 ; N colon ; B 205 -15 480 425 ;
+C 59 ; WX 600 ; N semicolon ; B 99 -111 481 425 ;
+C 60 ; WX 600 ; N less ; B 120 15 613 501 ;
+C 61 ; WX 600 ; N equal ; B 96 118 614 398 ;
+C 62 ; WX 600 ; N greater ; B 97 15 589 501 ;
+C 63 ; WX 600 ; N question ; B 183 -14 592 580 ;
+C 64 ; WX 600 ; N at ; B 65 -15 642 616 ;
+C 65 ; WX 600 ; N A ; B -9 0 632 562 ;
+C 66 ; WX 600 ; N B ; B 30 0 630 562 ;
+C 67 ; WX 600 ; N C ; B 74 -18 675 580 ;
+C 68 ; WX 600 ; N D ; B 30 0 664 562 ;
+C 69 ; WX 600 ; N E ; B 25 0 670 562 ;
+C 70 ; WX 600 ; N F ; B 39 0 684 562 ;
+C 71 ; WX 600 ; N G ; B 74 -18 675 580 ;
+C 72 ; WX 600 ; N H ; B 20 0 700 562 ;
+C 73 ; WX 600 ; N I ; B 77 0 643 562 ;
+C 74 ; WX 600 ; N J ; B 58 -18 721 562 ;
+C 75 ; WX 600 ; N K ; B 21 0 692 562 ;
+C 76 ; WX 600 ; N L ; B 39 0 636 562 ;
+C 77 ; WX 600 ; N M ; B -2 0 722 562 ;
+C 78 ; WX 600 ; N N ; B 8 -12 730 562 ;
+C 79 ; WX 600 ; N O ; B 74 -18 645 580 ;
+C 80 ; WX 600 ; N P ; B 48 0 643 562 ;
+C 81 ; WX 600 ; N Q ; B 83 -138 636 580 ;
+C 82 ; WX 600 ; N R ; B 24 0 617 562 ;
+C 83 ; WX 600 ; N S ; B 54 -22 673 582 ;
+C 84 ; WX 600 ; N T ; B 86 0 679 562 ;
+C 85 ; WX 600 ; N U ; B 101 -18 716 562 ;
+C 86 ; WX 600 ; N V ; B 84 0 733 562 ;
+C 87 ; WX 600 ; N W ; B 79 0 738 562 ;
+C 88 ; WX 600 ; N X ; B 12 0 690 562 ;
+C 89 ; WX 600 ; N Y ; B 109 0 709 562 ;
+C 90 ; WX 600 ; N Z ; B 62 0 637 562 ;
+C 91 ; WX 600 ; N bracketleft ; B 223 -102 606 616 ;
+C 92 ; WX 600 ; N backslash ; B 222 -77 496 626 ;
+C 93 ; WX 600 ; N bracketright ; B 103 -102 486 616 ;
+C 94 ; WX 600 ; N asciicircum ; B 171 250 556 616 ;
+C 95 ; WX 600 ; N underscore ; B -27 -125 585 -75 ;
+C 96 ; WX 600 ; N quoteleft ; B 297 277 487 562 ;
+C 97 ; WX 600 ; N a ; B 61 -15 593 454 ;
+C 98 ; WX 600 ; N b ; B 13 -15 636 626 ;
+C 99 ; WX 600 ; N c ; B 81 -15 631 459 ;
+C 100 ; WX 600 ; N d ; B 60 -15 645 626 ;
+C 101 ; WX 600 ; N e ; B 81 -15 605 454 ;
+C 102 ; WX 600 ; N f ; B 83 0 677 626 ; L i fi ; L l fl ;
+C 103 ; WX 600 ; N g ; B 40 -146 674 454 ;
+C 104 ; WX 600 ; N h ; B 18 0 615 626 ;
+C 105 ; WX 600 ; N i ; B 77 0 546 658 ;
+C 106 ; WX 600 ; N j ; B 36 -146 580 658 ;
+C 107 ; WX 600 ; N k ; B 33 0 643 626 ;
+C 108 ; WX 600 ; N l ; B 77 0 546 626 ;
+C 109 ; WX 600 ; N m ; B -22 0 649 454 ;
+C 110 ; WX 600 ; N n ; B 18 0 615 454 ;
+C 111 ; WX 600 ; N o ; B 71 -15 622 454 ;
+C 112 ; WX 600 ; N p ; B -32 -142 622 454 ;
+C 113 ; WX 600 ; N q ; B 60 -142 685 454 ;
+C 114 ; WX 600 ; N r ; B 47 0 655 454 ;
+C 115 ; WX 600 ; N s ; B 66 -17 608 459 ;
+C 116 ; WX 600 ; N t ; B 118 -15 567 562 ;
+C 117 ; WX 600 ; N u ; B 70 -15 592 439 ;
+C 118 ; WX 600 ; N v ; B 70 0 695 439 ;
+C 119 ; WX 600 ; N w ; B 53 0 712 439 ;
+C 120 ; WX 600 ; N x ; B 6 0 671 439 ;
+C 121 ; WX 600 ; N y ; B -21 -142 695 439 ;
+C 122 ; WX 600 ; N z ; B 81 0 614 439 ;
+C 123 ; WX 600 ; N braceleft ; B 203 -102 595 616 ;
+C 124 ; WX 600 ; N bar ; B 201 -250 505 750 ;
+C 125 ; WX 600 ; N braceright ; B 114 -102 506 616 ;
+C 126 ; WX 600 ; N asciitilde ; B 120 153 590 356 ;
+C 161 ; WX 600 ; N exclamdown ; B 196 -146 477 449 ;
+C 162 ; WX 600 ; N cent ; B 121 -49 605 614 ;
+C 163 ; WX 600 ; N sterling ; B 106 -28 650 611 ;
+C 164 ; WX 600 ; N fraction ; B 22 -60 708 661 ;
+C 165 ; WX 600 ; N yen ; B 98 0 710 562 ;
+C 166 ; WX 600 ; N florin ; B -57 -131 702 616 ;
+C 167 ; WX 600 ; N section ; B 74 -70 620 580 ;
+C 168 ; WX 600 ; N currency ; B 77 49 644 517 ;
+C 169 ; WX 600 ; N quotesingle ; B 303 277 493 562 ;
+C 170 ; WX 600 ; N quotedblleft ; B 190 277 594 562 ;
+C 171 ; WX 600 ; N guillemotleft ; B 62 70 639 446 ;
+C 172 ; WX 600 ; N guilsinglleft ; B 195 70 545 446 ;
+C 173 ; WX 600 ; N guilsinglright ; B 165 70 514 446 ;
+C 174 ; WX 600 ; N fi ; B 12 0 644 626 ;
+C 175 ; WX 600 ; N fl ; B 12 0 644 626 ;
+C 177 ; WX 600 ; N endash ; B 108 203 602 313 ;
+C 178 ; WX 600 ; N dagger ; B 175 -70 586 580 ;
+C 179 ; WX 600 ; N daggerdbl ; B 121 -70 587 580 ;
+C 180 ; WX 600 ; N periodcentered ; B 248 165 461 351 ;
+C 182 ; WX 600 ; N paragraph ; B 61 -70 700 580 ;
+C 183 ; WX 600 ; N bullet ; B 196 132 523 430 ;
+C 184 ; WX 600 ; N quotesinglbase ; B 144 -142 458 143 ;
+C 185 ; WX 600 ; N quotedblbase ; B 34 -142 560 143 ;
+C 186 ; WX 600 ; N quotedblright ; B 119 277 645 562 ;
+C 187 ; WX 600 ; N guillemotright ; B 71 70 647 446 ;
+C 188 ; WX 600 ; N ellipsis ; B 35 -15 587 116 ;
+C 189 ; WX 600 ; N perthousand ; B -45 -15 743 616 ;
+C 191 ; WX 600 ; N questiondown ; B 100 -146 509 449 ;
+C 193 ; WX 600 ; N grave ; B 272 508 503 661 ;
+C 194 ; WX 600 ; N acute ; B 312 508 609 661 ;
+C 195 ; WX 600 ; N circumflex ; B 212 483 607 657 ;
+C 196 ; WX 600 ; N tilde ; B 199 493 643 636 ;
+C 197 ; WX 600 ; N macron ; B 195 505 637 585 ;
+C 198 ; WX 600 ; N breve ; B 217 468 652 631 ;
+C 199 ; WX 600 ; N dotaccent ; B 348 498 493 638 ;
+C 200 ; WX 600 ; N dieresis ; B 246 498 595 638 ;
+C 202 ; WX 600 ; N ring ; B 319 481 528 678 ;
+C 203 ; WX 600 ; N cedilla ; B 168 -206 368 0 ;
+C 205 ; WX 600 ; N hungarumlaut ; B 171 488 729 661 ;
+C 206 ; WX 600 ; N ogonek ; B 143 -199 367 0 ;
+C 207 ; WX 600 ; N caron ; B 238 493 633 667 ;
+C 208 ; WX 600 ; N emdash ; B 33 203 677 313 ;
+C 225 ; WX 600 ; N AE ; B -29 0 708 562 ;
+C 227 ; WX 600 ; N ordfeminine ; B 188 196 526 580 ;
+C 232 ; WX 600 ; N Lslash ; B 39 0 636 562 ;
+C 233 ; WX 600 ; N Oslash ; B 48 -22 673 584 ;
+C 234 ; WX 600 ; N OE ; B 26 0 701 562 ;
+C 235 ; WX 600 ; N ordmasculine ; B 188 196 543 580 ;
+C 241 ; WX 600 ; N ae ; B 21 -15 652 454 ;
+C 245 ; WX 600 ; N dotlessi ; B 77 0 546 439 ;
+C 248 ; WX 600 ; N lslash ; B 77 0 587 626 ;
+C 249 ; WX 600 ; N oslash ; B 54 -24 638 463 ;
+C 250 ; WX 600 ; N oe ; B 18 -15 662 454 ;
+C 251 ; WX 600 ; N germandbls ; B 22 -15 629 626 ;
+C -1 ; WX 600 ; N Idieresis ; B 77 0 643 761 ;
+C -1 ; WX 600 ; N eacute ; B 81 -15 609 661 ;
+C -1 ; WX 600 ; N abreve ; B 61 -15 658 661 ;
+C -1 ; WX 600 ; N uhungarumlaut ; B 70 -15 769 661 ;
+C -1 ; WX 600 ; N ecaron ; B 81 -15 633 667 ;
+C -1 ; WX 600 ; N Ydieresis ; B 109 0 709 761 ;
+C -1 ; WX 600 ; N divide ; B 114 16 596 500 ;
+C -1 ; WX 600 ; N Yacute ; B 109 0 709 784 ;
+C -1 ; WX 600 ; N Acircumflex ; B -9 0 632 780 ;
+C -1 ; WX 600 ; N aacute ; B 61 -15 609 661 ;
+C -1 ; WX 600 ; N Ucircumflex ; B 101 -18 716 780 ;
+C -1 ; WX 600 ; N yacute ; B -21 -142 695 661 ;
+C -1 ; WX 600 ; N scommaaccent ; B 66 -250 608 459 ;
+C -1 ; WX 600 ; N ecircumflex ; B 81 -15 607 657 ;
+C -1 ; WX 600 ; N Uring ; B 101 -18 716 801 ;
+C -1 ; WX 600 ; N Udieresis ; B 101 -18 716 761 ;
+C -1 ; WX 600 ; N aogonek ; B 61 -199 593 454 ;
+C -1 ; WX 600 ; N Uacute ; B 101 -18 716 784 ;
+C -1 ; WX 600 ; N uogonek ; B 70 -199 592 439 ;
+C -1 ; WX 600 ; N Edieresis ; B 25 0 670 761 ;
+C -1 ; WX 600 ; N Dcroat ; B 30 0 664 562 ;
+C -1 ; WX 600 ; N commaaccent ; B 151 -250 385 -57 ;
+C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ;
+C -1 ; WX 600 ; N Emacron ; B 25 0 670 708 ;
+C -1 ; WX 600 ; N ccaron ; B 81 -15 633 667 ;
+C -1 ; WX 600 ; N aring ; B 61 -15 593 678 ;
+C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 730 562 ;
+C -1 ; WX 600 ; N lacute ; B 77 0 639 801 ;
+C -1 ; WX 600 ; N agrave ; B 61 -15 593 661 ;
+C -1 ; WX 600 ; N Tcommaaccent ; B 86 -250 679 562 ;
+C -1 ; WX 600 ; N Cacute ; B 74 -18 675 784 ;
+C -1 ; WX 600 ; N atilde ; B 61 -15 643 636 ;
+C -1 ; WX 600 ; N Edotaccent ; B 25 0 670 761 ;
+C -1 ; WX 600 ; N scaron ; B 66 -17 633 667 ;
+C -1 ; WX 600 ; N scedilla ; B 66 -206 608 459 ;
+C -1 ; WX 600 ; N iacute ; B 77 0 609 661 ;
+C -1 ; WX 600 ; N lozenge ; B 145 0 614 740 ;
+C -1 ; WX 600 ; N Rcaron ; B 24 0 659 790 ;
+C -1 ; WX 600 ; N Gcommaaccent ; B 74 -250 675 580 ;
+C -1 ; WX 600 ; N ucircumflex ; B 70 -15 597 657 ;
+C -1 ; WX 600 ; N acircumflex ; B 61 -15 607 657 ;
+C -1 ; WX 600 ; N Amacron ; B -9 0 633 708 ;
+C -1 ; WX 600 ; N rcaron ; B 47 0 655 667 ;
+C -1 ; WX 600 ; N ccedilla ; B 81 -206 631 459 ;
+C -1 ; WX 600 ; N Zdotaccent ; B 62 0 637 761 ;
+C -1 ; WX 600 ; N Thorn ; B 48 0 620 562 ;
+C -1 ; WX 600 ; N Omacron ; B 74 -18 663 708 ;
+C -1 ; WX 600 ; N Racute ; B 24 0 665 784 ;
+C -1 ; WX 600 ; N Sacute ; B 54 -22 673 784 ;
+C -1 ; WX 600 ; N dcaron ; B 60 -15 861 626 ;
+C -1 ; WX 600 ; N Umacron ; B 101 -18 716 708 ;
+C -1 ; WX 600 ; N uring ; B 70 -15 592 678 ;
+C -1 ; WX 600 ; N threesuperior ; B 193 222 526 616 ;
+C -1 ; WX 600 ; N Ograve ; B 74 -18 645 784 ;
+C -1 ; WX 600 ; N Agrave ; B -9 0 632 784 ;
+C -1 ; WX 600 ; N Abreve ; B -9 0 684 784 ;
+C -1 ; WX 600 ; N multiply ; B 104 39 606 478 ;
+C -1 ; WX 600 ; N uacute ; B 70 -15 599 661 ;
+C -1 ; WX 600 ; N Tcaron ; B 86 0 679 790 ;
+C -1 ; WX 600 ; N partialdiff ; B 91 -38 627 728 ;
+C -1 ; WX 600 ; N ydieresis ; B -21 -142 695 638 ;
+C -1 ; WX 600 ; N Nacute ; B 8 -12 730 784 ;
+C -1 ; WX 600 ; N icircumflex ; B 77 0 577 657 ;
+C -1 ; WX 600 ; N Ecircumflex ; B 25 0 670 780 ;
+C -1 ; WX 600 ; N adieresis ; B 61 -15 595 638 ;
+C -1 ; WX 600 ; N edieresis ; B 81 -15 605 638 ;
+C -1 ; WX 600 ; N cacute ; B 81 -15 649 661 ;
+C -1 ; WX 600 ; N nacute ; B 18 0 639 661 ;
+C -1 ; WX 600 ; N umacron ; B 70 -15 637 585 ;
+C -1 ; WX 600 ; N Ncaron ; B 8 -12 730 790 ;
+C -1 ; WX 600 ; N Iacute ; B 77 0 643 784 ;
+C -1 ; WX 600 ; N plusminus ; B 76 24 614 515 ;
+C -1 ; WX 600 ; N brokenbar ; B 217 -175 489 675 ;
+C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ;
+C -1 ; WX 600 ; N Gbreve ; B 74 -18 684 784 ;
+C -1 ; WX 600 ; N Idotaccent ; B 77 0 643 761 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 672 706 ;
+C -1 ; WX 600 ; N Egrave ; B 25 0 670 784 ;
+C -1 ; WX 600 ; N racute ; B 47 0 655 661 ;
+C -1 ; WX 600 ; N omacron ; B 71 -15 637 585 ;
+C -1 ; WX 600 ; N Zacute ; B 62 0 665 784 ;
+C -1 ; WX 600 ; N Zcaron ; B 62 0 659 790 ;
+C -1 ; WX 600 ; N greaterequal ; B 26 0 627 696 ;
+C -1 ; WX 600 ; N Eth ; B 30 0 664 562 ;
+C -1 ; WX 600 ; N Ccedilla ; B 74 -206 675 580 ;
+C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 546 626 ;
+C -1 ; WX 600 ; N tcaron ; B 118 -15 627 703 ;
+C -1 ; WX 600 ; N eogonek ; B 81 -199 605 454 ;
+C -1 ; WX 600 ; N Uogonek ; B 101 -199 716 562 ;
+C -1 ; WX 600 ; N Aacute ; B -9 0 655 784 ;
+C -1 ; WX 600 ; N Adieresis ; B -9 0 632 761 ;
+C -1 ; WX 600 ; N egrave ; B 81 -15 605 661 ;
+C -1 ; WX 600 ; N zacute ; B 81 0 614 661 ;
+C -1 ; WX 600 ; N iogonek ; B 77 -199 546 658 ;
+C -1 ; WX 600 ; N Oacute ; B 74 -18 645 784 ;
+C -1 ; WX 600 ; N oacute ; B 71 -15 649 661 ;
+C -1 ; WX 600 ; N amacron ; B 61 -15 637 585 ;
+C -1 ; WX 600 ; N sacute ; B 66 -17 609 661 ;
+C -1 ; WX 600 ; N idieresis ; B 77 0 561 618 ;
+C -1 ; WX 600 ; N Ocircumflex ; B 74 -18 645 780 ;
+C -1 ; WX 600 ; N Ugrave ; B 101 -18 716 784 ;
+C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ;
+C -1 ; WX 600 ; N thorn ; B -32 -142 622 626 ;
+C -1 ; WX 600 ; N twosuperior ; B 191 230 542 616 ;
+C -1 ; WX 600 ; N Odieresis ; B 74 -18 645 761 ;
+C -1 ; WX 600 ; N mu ; B 49 -142 592 439 ;
+C -1 ; WX 600 ; N igrave ; B 77 0 546 661 ;
+C -1 ; WX 600 ; N ohungarumlaut ; B 71 -15 809 661 ;
+C -1 ; WX 600 ; N Eogonek ; B 25 -199 670 562 ;
+C -1 ; WX 600 ; N dcroat ; B 60 -15 712 626 ;
+C -1 ; WX 600 ; N threequarters ; B 8 -60 699 661 ;
+C -1 ; WX 600 ; N Scedilla ; B 54 -206 673 582 ;
+C -1 ; WX 600 ; N lcaron ; B 77 0 731 626 ;
+C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 692 562 ;
+C -1 ; WX 600 ; N Lacute ; B 39 0 636 784 ;
+C -1 ; WX 600 ; N trademark ; B 86 230 869 562 ;
+C -1 ; WX 600 ; N edotaccent ; B 81 -15 605 638 ;
+C -1 ; WX 600 ; N Igrave ; B 77 0 643 784 ;
+C -1 ; WX 600 ; N Imacron ; B 77 0 663 708 ;
+C -1 ; WX 600 ; N Lcaron ; B 39 0 757 562 ;
+C -1 ; WX 600 ; N onehalf ; B 22 -60 716 661 ;
+C -1 ; WX 600 ; N lessequal ; B 26 0 671 696 ;
+C -1 ; WX 600 ; N ocircumflex ; B 71 -15 622 657 ;
+C -1 ; WX 600 ; N ntilde ; B 18 0 643 636 ;
+C -1 ; WX 600 ; N Uhungarumlaut ; B 101 -18 805 784 ;
+C -1 ; WX 600 ; N Eacute ; B 25 0 670 784 ;
+C -1 ; WX 600 ; N emacron ; B 81 -15 637 585 ;
+C -1 ; WX 600 ; N gbreve ; B 40 -146 674 661 ;
+C -1 ; WX 600 ; N onequarter ; B 13 -60 707 661 ;
+C -1 ; WX 600 ; N Scaron ; B 54 -22 689 790 ;
+C -1 ; WX 600 ; N Scommaaccent ; B 54 -250 673 582 ;
+C -1 ; WX 600 ; N Ohungarumlaut ; B 74 -18 795 784 ;
+C -1 ; WX 600 ; N degree ; B 173 243 570 616 ;
+C -1 ; WX 600 ; N ograve ; B 71 -15 622 661 ;
+C -1 ; WX 600 ; N Ccaron ; B 74 -18 689 790 ;
+C -1 ; WX 600 ; N ugrave ; B 70 -15 592 661 ;
+C -1 ; WX 600 ; N radical ; B 67 -104 635 778 ;
+C -1 ; WX 600 ; N Dcaron ; B 30 0 664 790 ;
+C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 655 454 ;
+C -1 ; WX 600 ; N Ntilde ; B 8 -12 730 759 ;
+C -1 ; WX 600 ; N otilde ; B 71 -15 643 636 ;
+C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 617 562 ;
+C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 636 562 ;
+C -1 ; WX 600 ; N Atilde ; B -9 0 669 759 ;
+C -1 ; WX 600 ; N Aogonek ; B -9 -199 632 562 ;
+C -1 ; WX 600 ; N Aring ; B -9 0 632 801 ;
+C -1 ; WX 600 ; N Otilde ; B 74 -18 669 759 ;
+C -1 ; WX 600 ; N zdotaccent ; B 81 0 614 638 ;
+C -1 ; WX 600 ; N Ecaron ; B 25 0 670 790 ;
+C -1 ; WX 600 ; N Iogonek ; B 77 -199 643 562 ;
+C -1 ; WX 600 ; N kcommaaccent ; B 33 -250 643 626 ;
+C -1 ; WX 600 ; N minus ; B 114 203 596 313 ;
+C -1 ; WX 600 ; N Icircumflex ; B 77 0 643 780 ;
+C -1 ; WX 600 ; N ncaron ; B 18 0 633 667 ;
+C -1 ; WX 600 ; N tcommaaccent ; B 118 -250 567 562 ;
+C -1 ; WX 600 ; N logicalnot ; B 135 103 617 413 ;
+C -1 ; WX 600 ; N odieresis ; B 71 -15 622 638 ;
+C -1 ; WX 600 ; N udieresis ; B 70 -15 595 638 ;
+C -1 ; WX 600 ; N notequal ; B 30 -47 626 563 ;
+C -1 ; WX 600 ; N gcommaaccent ; B 40 -146 674 714 ;
+C -1 ; WX 600 ; N eth ; B 93 -27 661 626 ;
+C -1 ; WX 600 ; N zcaron ; B 81 0 643 667 ;
+C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 615 454 ;
+C -1 ; WX 600 ; N onesuperior ; B 212 230 514 616 ;
+C -1 ; WX 600 ; N imacron ; B 77 0 575 585 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Courier-Oblique.afm b/test/user-template/user/psprint/fontmetric/Courier-Oblique.afm
new file mode 100644
index 000000000000..996792de46d8
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Courier-Oblique.afm
@@ -0,0 +1,340 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 17:37:52 1997
+Comment UniqueID 43051
+Comment VMusage 16248 75829
+FontName Courier-Oblique
+FullName Courier Oblique
+FamilyName Courier
+Weight Medium
+ItalicAngle -12
+IsFixedPitch true
+FontBBox -27 -250 849 805
+UnderlinePosition -100
+UnderlineThickness 50
+Version 003.000
+Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 562
+XHeight 426
+Ascender 629
+Descender -157
+StdHW 51
+StdVW 51
+StartCharMetrics 314
+C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 600 ; N exclam ; B 243 -15 464 572 ;
+C 34 ; WX 600 ; N quotedbl ; B 273 328 532 562 ;
+C 35 ; WX 600 ; N numbersign ; B 133 -32 596 639 ;
+C 36 ; WX 600 ; N dollar ; B 108 -126 596 662 ;
+C 37 ; WX 600 ; N percent ; B 134 -15 599 622 ;
+C 38 ; WX 600 ; N ampersand ; B 87 -15 580 543 ;
+C 39 ; WX 600 ; N quoteright ; B 283 328 495 562 ;
+C 40 ; WX 600 ; N parenleft ; B 313 -108 572 622 ;
+C 41 ; WX 600 ; N parenright ; B 137 -108 396 622 ;
+C 42 ; WX 600 ; N asterisk ; B 212 257 580 607 ;
+C 43 ; WX 600 ; N plus ; B 129 44 580 470 ;
+C 44 ; WX 600 ; N comma ; B 157 -112 370 122 ;
+C 45 ; WX 600 ; N hyphen ; B 152 231 558 285 ;
+C 46 ; WX 600 ; N period ; B 238 -15 382 109 ;
+C 47 ; WX 600 ; N slash ; B 112 -80 604 629 ;
+C 48 ; WX 600 ; N zero ; B 154 -15 575 622 ;
+C 49 ; WX 600 ; N one ; B 98 0 515 622 ;
+C 50 ; WX 600 ; N two ; B 70 0 568 622 ;
+C 51 ; WX 600 ; N three ; B 82 -15 538 622 ;
+C 52 ; WX 600 ; N four ; B 108 0 541 622 ;
+C 53 ; WX 600 ; N five ; B 99 -15 589 607 ;
+C 54 ; WX 600 ; N six ; B 155 -15 629 622 ;
+C 55 ; WX 600 ; N seven ; B 182 0 612 607 ;
+C 56 ; WX 600 ; N eight ; B 132 -15 588 622 ;
+C 57 ; WX 600 ; N nine ; B 93 -15 574 622 ;
+C 58 ; WX 600 ; N colon ; B 238 -15 441 385 ;
+C 59 ; WX 600 ; N semicolon ; B 157 -112 441 385 ;
+C 60 ; WX 600 ; N less ; B 96 42 610 472 ;
+C 61 ; WX 600 ; N equal ; B 109 138 600 376 ;
+C 62 ; WX 600 ; N greater ; B 85 42 599 472 ;
+C 63 ; WX 600 ; N question ; B 222 -15 583 572 ;
+C 64 ; WX 600 ; N at ; B 127 -15 582 622 ;
+C 65 ; WX 600 ; N A ; B 3 0 607 562 ;
+C 66 ; WX 600 ; N B ; B 43 0 616 562 ;
+C 67 ; WX 600 ; N C ; B 93 -18 655 580 ;
+C 68 ; WX 600 ; N D ; B 43 0 645 562 ;
+C 69 ; WX 600 ; N E ; B 53 0 660 562 ;
+C 70 ; WX 600 ; N F ; B 53 0 660 562 ;
+C 71 ; WX 600 ; N G ; B 83 -18 645 580 ;
+C 72 ; WX 600 ; N H ; B 32 0 687 562 ;
+C 73 ; WX 600 ; N I ; B 96 0 623 562 ;
+C 74 ; WX 600 ; N J ; B 52 -18 685 562 ;
+C 75 ; WX 600 ; N K ; B 38 0 671 562 ;
+C 76 ; WX 600 ; N L ; B 47 0 607 562 ;
+C 77 ; WX 600 ; N M ; B 4 0 715 562 ;
+C 78 ; WX 600 ; N N ; B 7 -13 712 562 ;
+C 79 ; WX 600 ; N O ; B 94 -18 625 580 ;
+C 80 ; WX 600 ; N P ; B 79 0 644 562 ;
+C 81 ; WX 600 ; N Q ; B 95 -138 625 580 ;
+C 82 ; WX 600 ; N R ; B 38 0 598 562 ;
+C 83 ; WX 600 ; N S ; B 76 -20 650 580 ;
+C 84 ; WX 600 ; N T ; B 108 0 665 562 ;
+C 85 ; WX 600 ; N U ; B 125 -18 702 562 ;
+C 86 ; WX 600 ; N V ; B 105 -13 723 562 ;
+C 87 ; WX 600 ; N W ; B 106 -13 722 562 ;
+C 88 ; WX 600 ; N X ; B 23 0 675 562 ;
+C 89 ; WX 600 ; N Y ; B 133 0 695 562 ;
+C 90 ; WX 600 ; N Z ; B 86 0 610 562 ;
+C 91 ; WX 600 ; N bracketleft ; B 246 -108 574 622 ;
+C 92 ; WX 600 ; N backslash ; B 249 -80 468 629 ;
+C 93 ; WX 600 ; N bracketright ; B 135 -108 463 622 ;
+C 94 ; WX 600 ; N asciicircum ; B 175 354 587 622 ;
+C 95 ; WX 600 ; N underscore ; B -27 -125 584 -75 ;
+C 96 ; WX 600 ; N quoteleft ; B 343 328 457 562 ;
+C 97 ; WX 600 ; N a ; B 76 -15 569 441 ;
+C 98 ; WX 600 ; N b ; B 29 -15 625 629 ;
+C 99 ; WX 600 ; N c ; B 106 -15 608 441 ;
+C 100 ; WX 600 ; N d ; B 85 -15 640 629 ;
+C 101 ; WX 600 ; N e ; B 106 -15 598 441 ;
+C 102 ; WX 600 ; N f ; B 114 0 662 629 ; L i fi ; L l fl ;
+C 103 ; WX 600 ; N g ; B 61 -157 657 441 ;
+C 104 ; WX 600 ; N h ; B 33 0 592 629 ;
+C 105 ; WX 600 ; N i ; B 95 0 515 657 ;
+C 106 ; WX 600 ; N j ; B 52 -157 550 657 ;
+C 107 ; WX 600 ; N k ; B 58 0 633 629 ;
+C 108 ; WX 600 ; N l ; B 95 0 515 629 ;
+C 109 ; WX 600 ; N m ; B -5 0 615 441 ;
+C 110 ; WX 600 ; N n ; B 26 0 585 441 ;
+C 111 ; WX 600 ; N o ; B 102 -15 588 441 ;
+C 112 ; WX 600 ; N p ; B -24 -157 605 441 ;
+C 113 ; WX 600 ; N q ; B 85 -157 682 441 ;
+C 114 ; WX 600 ; N r ; B 60 0 636 441 ;
+C 115 ; WX 600 ; N s ; B 78 -15 584 441 ;
+C 116 ; WX 600 ; N t ; B 167 -15 561 561 ;
+C 117 ; WX 600 ; N u ; B 101 -15 572 426 ;
+C 118 ; WX 600 ; N v ; B 90 -10 681 426 ;
+C 119 ; WX 600 ; N w ; B 76 -10 695 426 ;
+C 120 ; WX 600 ; N x ; B 20 0 655 426 ;
+C 121 ; WX 600 ; N y ; B -4 -157 683 426 ;
+C 122 ; WX 600 ; N z ; B 99 0 593 426 ;
+C 123 ; WX 600 ; N braceleft ; B 233 -108 569 622 ;
+C 124 ; WX 600 ; N bar ; B 222 -250 485 750 ;
+C 125 ; WX 600 ; N braceright ; B 140 -108 477 622 ;
+C 126 ; WX 600 ; N asciitilde ; B 116 197 600 320 ;
+C 161 ; WX 600 ; N exclamdown ; B 225 -157 445 430 ;
+C 162 ; WX 600 ; N cent ; B 151 -49 588 614 ;
+C 163 ; WX 600 ; N sterling ; B 124 -21 621 611 ;
+C 164 ; WX 600 ; N fraction ; B 84 -57 646 665 ;
+C 165 ; WX 600 ; N yen ; B 120 0 693 562 ;
+C 166 ; WX 600 ; N florin ; B -26 -143 671 622 ;
+C 167 ; WX 600 ; N section ; B 104 -78 590 580 ;
+C 168 ; WX 600 ; N currency ; B 94 58 628 506 ;
+C 169 ; WX 600 ; N quotesingle ; B 345 328 460 562 ;
+C 170 ; WX 600 ; N quotedblleft ; B 262 328 541 562 ;
+C 171 ; WX 600 ; N guillemotleft ; B 92 70 652 446 ;
+C 172 ; WX 600 ; N guilsinglleft ; B 204 70 540 446 ;
+C 173 ; WX 600 ; N guilsinglright ; B 170 70 506 446 ;
+C 174 ; WX 600 ; N fi ; B 3 0 619 629 ;
+C 175 ; WX 600 ; N fl ; B 3 0 619 629 ;
+C 177 ; WX 600 ; N endash ; B 124 231 586 285 ;
+C 178 ; WX 600 ; N dagger ; B 217 -78 546 580 ;
+C 179 ; WX 600 ; N daggerdbl ; B 163 -78 546 580 ;
+C 180 ; WX 600 ; N periodcentered ; B 275 189 434 327 ;
+C 182 ; WX 600 ; N paragraph ; B 100 -78 630 562 ;
+C 183 ; WX 600 ; N bullet ; B 224 130 485 383 ;
+C 184 ; WX 600 ; N quotesinglbase ; B 185 -134 397 100 ;
+C 185 ; WX 600 ; N quotedblbase ; B 115 -134 478 100 ;
+C 186 ; WX 600 ; N quotedblright ; B 213 328 576 562 ;
+C 187 ; WX 600 ; N guillemotright ; B 58 70 618 446 ;
+C 188 ; WX 600 ; N ellipsis ; B 46 -15 575 111 ;
+C 189 ; WX 600 ; N perthousand ; B 59 -15 627 622 ;
+C 191 ; WX 600 ; N questiondown ; B 105 -157 466 430 ;
+C 193 ; WX 600 ; N grave ; B 294 497 484 672 ;
+C 194 ; WX 600 ; N acute ; B 348 497 612 672 ;
+C 195 ; WX 600 ; N circumflex ; B 229 477 581 654 ;
+C 196 ; WX 600 ; N tilde ; B 212 489 629 606 ;
+C 197 ; WX 600 ; N macron ; B 232 525 600 565 ;
+C 198 ; WX 600 ; N breve ; B 279 501 576 609 ;
+C 199 ; WX 600 ; N dotaccent ; B 373 537 478 640 ;
+C 200 ; WX 600 ; N dieresis ; B 272 537 579 640 ;
+C 202 ; WX 600 ; N ring ; B 332 463 500 627 ;
+C 203 ; WX 600 ; N cedilla ; B 197 -151 344 10 ;
+C 205 ; WX 600 ; N hungarumlaut ; B 239 497 683 672 ;
+C 206 ; WX 600 ; N ogonek ; B 189 -172 377 4 ;
+C 207 ; WX 600 ; N caron ; B 262 492 614 669 ;
+C 208 ; WX 600 ; N emdash ; B 49 231 661 285 ;
+C 225 ; WX 600 ; N AE ; B 3 0 655 562 ;
+C 227 ; WX 600 ; N ordfeminine ; B 209 249 512 580 ;
+C 232 ; WX 600 ; N Lslash ; B 47 0 607 562 ;
+C 233 ; WX 600 ; N Oslash ; B 94 -80 625 629 ;
+C 234 ; WX 600 ; N OE ; B 59 0 672 562 ;
+C 235 ; WX 600 ; N ordmasculine ; B 210 249 535 580 ;
+C 241 ; WX 600 ; N ae ; B 41 -15 626 441 ;
+C 245 ; WX 600 ; N dotlessi ; B 95 0 515 426 ;
+C 248 ; WX 600 ; N lslash ; B 95 0 587 629 ;
+C 249 ; WX 600 ; N oslash ; B 102 -80 588 506 ;
+C 250 ; WX 600 ; N oe ; B 54 -15 615 441 ;
+C 251 ; WX 600 ; N germandbls ; B 48 -15 617 629 ;
+C -1 ; WX 600 ; N Idieresis ; B 96 0 623 753 ;
+C -1 ; WX 600 ; N eacute ; B 106 -15 612 672 ;
+C -1 ; WX 600 ; N abreve ; B 76 -15 576 609 ;
+C -1 ; WX 600 ; N uhungarumlaut ; B 101 -15 723 672 ;
+C -1 ; WX 600 ; N ecaron ; B 106 -15 614 669 ;
+C -1 ; WX 600 ; N Ydieresis ; B 133 0 695 753 ;
+C -1 ; WX 600 ; N divide ; B 136 48 573 467 ;
+C -1 ; WX 600 ; N Yacute ; B 133 0 695 805 ;
+C -1 ; WX 600 ; N Acircumflex ; B 3 0 607 787 ;
+C -1 ; WX 600 ; N aacute ; B 76 -15 612 672 ;
+C -1 ; WX 600 ; N Ucircumflex ; B 125 -18 702 787 ;
+C -1 ; WX 600 ; N yacute ; B -4 -157 683 672 ;
+C -1 ; WX 600 ; N scommaaccent ; B 78 -250 584 441 ;
+C -1 ; WX 600 ; N ecircumflex ; B 106 -15 598 654 ;
+C -1 ; WX 600 ; N Uring ; B 125 -18 702 760 ;
+C -1 ; WX 600 ; N Udieresis ; B 125 -18 702 753 ;
+C -1 ; WX 600 ; N aogonek ; B 76 -172 569 441 ;
+C -1 ; WX 600 ; N Uacute ; B 125 -18 702 805 ;
+C -1 ; WX 600 ; N uogonek ; B 101 -172 572 426 ;
+C -1 ; WX 600 ; N Edieresis ; B 53 0 660 753 ;
+C -1 ; WX 600 ; N Dcroat ; B 43 0 645 562 ;
+C -1 ; WX 600 ; N commaaccent ; B 145 -250 323 -58 ;
+C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ;
+C -1 ; WX 600 ; N Emacron ; B 53 0 660 698 ;
+C -1 ; WX 600 ; N ccaron ; B 106 -15 614 669 ;
+C -1 ; WX 600 ; N aring ; B 76 -15 569 627 ;
+C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 712 562 ;
+C -1 ; WX 600 ; N lacute ; B 95 0 640 805 ;
+C -1 ; WX 600 ; N agrave ; B 76 -15 569 672 ;
+C -1 ; WX 600 ; N Tcommaaccent ; B 108 -250 665 562 ;
+C -1 ; WX 600 ; N Cacute ; B 93 -18 655 805 ;
+C -1 ; WX 600 ; N atilde ; B 76 -15 629 606 ;
+C -1 ; WX 600 ; N Edotaccent ; B 53 0 660 753 ;
+C -1 ; WX 600 ; N scaron ; B 78 -15 614 669 ;
+C -1 ; WX 600 ; N scedilla ; B 78 -151 584 441 ;
+C -1 ; WX 600 ; N iacute ; B 95 0 612 672 ;
+C -1 ; WX 600 ; N lozenge ; B 94 0 519 706 ;
+C -1 ; WX 600 ; N Rcaron ; B 38 0 642 802 ;
+C -1 ; WX 600 ; N Gcommaaccent ; B 83 -250 645 580 ;
+C -1 ; WX 600 ; N ucircumflex ; B 101 -15 572 654 ;
+C -1 ; WX 600 ; N acircumflex ; B 76 -15 581 654 ;
+C -1 ; WX 600 ; N Amacron ; B 3 0 607 698 ;
+C -1 ; WX 600 ; N rcaron ; B 60 0 636 669 ;
+C -1 ; WX 600 ; N ccedilla ; B 106 -151 614 441 ;
+C -1 ; WX 600 ; N Zdotaccent ; B 86 0 610 753 ;
+C -1 ; WX 600 ; N Thorn ; B 79 0 606 562 ;
+C -1 ; WX 600 ; N Omacron ; B 94 -18 628 698 ;
+C -1 ; WX 600 ; N Racute ; B 38 0 670 805 ;
+C -1 ; WX 600 ; N Sacute ; B 76 -20 650 805 ;
+C -1 ; WX 600 ; N dcaron ; B 85 -15 849 629 ;
+C -1 ; WX 600 ; N Umacron ; B 125 -18 702 698 ;
+C -1 ; WX 600 ; N uring ; B 101 -15 572 627 ;
+C -1 ; WX 600 ; N threesuperior ; B 213 240 501 622 ;
+C -1 ; WX 600 ; N Ograve ; B 94 -18 625 805 ;
+C -1 ; WX 600 ; N Agrave ; B 3 0 607 805 ;
+C -1 ; WX 600 ; N Abreve ; B 3 0 607 732 ;
+C -1 ; WX 600 ; N multiply ; B 103 43 607 470 ;
+C -1 ; WX 600 ; N uacute ; B 101 -15 602 672 ;
+C -1 ; WX 600 ; N Tcaron ; B 108 0 665 802 ;
+C -1 ; WX 600 ; N partialdiff ; B 45 -38 546 710 ;
+C -1 ; WX 600 ; N ydieresis ; B -4 -157 683 620 ;
+C -1 ; WX 600 ; N Nacute ; B 7 -13 712 805 ;
+C -1 ; WX 600 ; N icircumflex ; B 95 0 551 654 ;
+C -1 ; WX 600 ; N Ecircumflex ; B 53 0 660 787 ;
+C -1 ; WX 600 ; N adieresis ; B 76 -15 575 620 ;
+C -1 ; WX 600 ; N edieresis ; B 106 -15 598 620 ;
+C -1 ; WX 600 ; N cacute ; B 106 -15 612 672 ;
+C -1 ; WX 600 ; N nacute ; B 26 0 602 672 ;
+C -1 ; WX 600 ; N umacron ; B 101 -15 600 565 ;
+C -1 ; WX 600 ; N Ncaron ; B 7 -13 712 802 ;
+C -1 ; WX 600 ; N Iacute ; B 96 0 640 805 ;
+C -1 ; WX 600 ; N plusminus ; B 96 44 594 558 ;
+C -1 ; WX 600 ; N brokenbar ; B 238 -175 469 675 ;
+C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ;
+C -1 ; WX 600 ; N Gbreve ; B 83 -18 645 732 ;
+C -1 ; WX 600 ; N Idotaccent ; B 96 0 623 753 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 670 706 ;
+C -1 ; WX 600 ; N Egrave ; B 53 0 660 805 ;
+C -1 ; WX 600 ; N racute ; B 60 0 636 672 ;
+C -1 ; WX 600 ; N omacron ; B 102 -15 600 565 ;
+C -1 ; WX 600 ; N Zacute ; B 86 0 670 805 ;
+C -1 ; WX 600 ; N Zcaron ; B 86 0 642 802 ;
+C -1 ; WX 600 ; N greaterequal ; B 98 0 594 710 ;
+C -1 ; WX 600 ; N Eth ; B 43 0 645 562 ;
+C -1 ; WX 600 ; N Ccedilla ; B 93 -151 658 580 ;
+C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 515 629 ;
+C -1 ; WX 600 ; N tcaron ; B 167 -15 587 717 ;
+C -1 ; WX 600 ; N eogonek ; B 106 -172 598 441 ;
+C -1 ; WX 600 ; N Uogonek ; B 124 -172 702 562 ;
+C -1 ; WX 600 ; N Aacute ; B 3 0 660 805 ;
+C -1 ; WX 600 ; N Adieresis ; B 3 0 607 753 ;
+C -1 ; WX 600 ; N egrave ; B 106 -15 598 672 ;
+C -1 ; WX 600 ; N zacute ; B 99 0 612 672 ;
+C -1 ; WX 600 ; N iogonek ; B 95 -172 515 657 ;
+C -1 ; WX 600 ; N Oacute ; B 94 -18 640 805 ;
+C -1 ; WX 600 ; N oacute ; B 102 -15 612 672 ;
+C -1 ; WX 600 ; N amacron ; B 76 -15 600 565 ;
+C -1 ; WX 600 ; N sacute ; B 78 -15 612 672 ;
+C -1 ; WX 600 ; N idieresis ; B 95 0 545 620 ;
+C -1 ; WX 600 ; N Ocircumflex ; B 94 -18 625 787 ;
+C -1 ; WX 600 ; N Ugrave ; B 125 -18 702 805 ;
+C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ;
+C -1 ; WX 600 ; N thorn ; B -24 -157 605 629 ;
+C -1 ; WX 600 ; N twosuperior ; B 230 249 535 622 ;
+C -1 ; WX 600 ; N Odieresis ; B 94 -18 625 753 ;
+C -1 ; WX 600 ; N mu ; B 72 -157 572 426 ;
+C -1 ; WX 600 ; N igrave ; B 95 0 515 672 ;
+C -1 ; WX 600 ; N ohungarumlaut ; B 102 -15 723 672 ;
+C -1 ; WX 600 ; N Eogonek ; B 53 -172 660 562 ;
+C -1 ; WX 600 ; N dcroat ; B 85 -15 704 629 ;
+C -1 ; WX 600 ; N threequarters ; B 73 -56 659 666 ;
+C -1 ; WX 600 ; N Scedilla ; B 76 -151 650 580 ;
+C -1 ; WX 600 ; N lcaron ; B 95 0 667 629 ;
+C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 671 562 ;
+C -1 ; WX 600 ; N Lacute ; B 47 0 607 805 ;
+C -1 ; WX 600 ; N trademark ; B 75 263 742 562 ;
+C -1 ; WX 600 ; N edotaccent ; B 106 -15 598 620 ;
+C -1 ; WX 600 ; N Igrave ; B 96 0 623 805 ;
+C -1 ; WX 600 ; N Imacron ; B 96 0 628 698 ;
+C -1 ; WX 600 ; N Lcaron ; B 47 0 632 562 ;
+C -1 ; WX 600 ; N onehalf ; B 65 -57 669 665 ;
+C -1 ; WX 600 ; N lessequal ; B 98 0 645 710 ;
+C -1 ; WX 600 ; N ocircumflex ; B 102 -15 588 654 ;
+C -1 ; WX 600 ; N ntilde ; B 26 0 629 606 ;
+C -1 ; WX 600 ; N Uhungarumlaut ; B 125 -18 761 805 ;
+C -1 ; WX 600 ; N Eacute ; B 53 0 670 805 ;
+C -1 ; WX 600 ; N emacron ; B 106 -15 600 565 ;
+C -1 ; WX 600 ; N gbreve ; B 61 -157 657 609 ;
+C -1 ; WX 600 ; N onequarter ; B 65 -57 674 665 ;
+C -1 ; WX 600 ; N Scaron ; B 76 -20 672 802 ;
+C -1 ; WX 600 ; N Scommaaccent ; B 76 -250 650 580 ;
+C -1 ; WX 600 ; N Ohungarumlaut ; B 94 -18 751 805 ;
+C -1 ; WX 600 ; N degree ; B 214 269 576 622 ;
+C -1 ; WX 600 ; N ograve ; B 102 -15 588 672 ;
+C -1 ; WX 600 ; N Ccaron ; B 93 -18 672 802 ;
+C -1 ; WX 600 ; N ugrave ; B 101 -15 572 672 ;
+C -1 ; WX 600 ; N radical ; B 85 -15 765 792 ;
+C -1 ; WX 600 ; N Dcaron ; B 43 0 645 802 ;
+C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 636 441 ;
+C -1 ; WX 600 ; N Ntilde ; B 7 -13 712 729 ;
+C -1 ; WX 600 ; N otilde ; B 102 -15 629 606 ;
+C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 598 562 ;
+C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 607 562 ;
+C -1 ; WX 600 ; N Atilde ; B 3 0 655 729 ;
+C -1 ; WX 600 ; N Aogonek ; B 3 -172 607 562 ;
+C -1 ; WX 600 ; N Aring ; B 3 0 607 750 ;
+C -1 ; WX 600 ; N Otilde ; B 94 -18 655 729 ;
+C -1 ; WX 600 ; N zdotaccent ; B 99 0 593 620 ;
+C -1 ; WX 600 ; N Ecaron ; B 53 0 660 802 ;
+C -1 ; WX 600 ; N Iogonek ; B 96 -172 623 562 ;
+C -1 ; WX 600 ; N kcommaaccent ; B 58 -250 633 629 ;
+C -1 ; WX 600 ; N minus ; B 129 232 580 283 ;
+C -1 ; WX 600 ; N Icircumflex ; B 96 0 623 787 ;
+C -1 ; WX 600 ; N ncaron ; B 26 0 614 669 ;
+C -1 ; WX 600 ; N tcommaaccent ; B 165 -250 561 561 ;
+C -1 ; WX 600 ; N logicalnot ; B 155 108 591 369 ;
+C -1 ; WX 600 ; N odieresis ; B 102 -15 588 620 ;
+C -1 ; WX 600 ; N udieresis ; B 101 -15 575 620 ;
+C -1 ; WX 600 ; N notequal ; B 43 -16 621 529 ;
+C -1 ; WX 600 ; N gcommaaccent ; B 61 -157 657 708 ;
+C -1 ; WX 600 ; N eth ; B 102 -15 639 629 ;
+C -1 ; WX 600 ; N zcaron ; B 99 0 624 669 ;
+C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 585 441 ;
+C -1 ; WX 600 ; N onesuperior ; B 231 249 491 622 ;
+C -1 ; WX 600 ; N imacron ; B 95 0 543 565 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Courier.afm b/test/user-template/user/psprint/fontmetric/Courier.afm
new file mode 100644
index 000000000000..b288dbd96dc0
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Courier.afm
@@ -0,0 +1,340 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 17:27:09 1997
+Comment UniqueID 43050
+Comment VMusage 39754 50779
+FontName Courier
+FullName Courier
+FamilyName Courier
+Weight Medium
+ItalicAngle 0
+IsFixedPitch true
+FontBBox -23 -250 715 805
+UnderlinePosition -100
+UnderlineThickness 50
+Version 003.000
+Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 562
+XHeight 426
+Ascender 629
+Descender -157
+StdHW 51
+StdVW 51
+StartCharMetrics 314
+C 32 ; WX 600 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 600 ; N exclam ; B 236 -15 364 572 ;
+C 34 ; WX 600 ; N quotedbl ; B 187 328 413 562 ;
+C 35 ; WX 600 ; N numbersign ; B 93 -32 507 639 ;
+C 36 ; WX 600 ; N dollar ; B 105 -126 496 662 ;
+C 37 ; WX 600 ; N percent ; B 81 -15 518 622 ;
+C 38 ; WX 600 ; N ampersand ; B 63 -15 538 543 ;
+C 39 ; WX 600 ; N quoteright ; B 213 328 376 562 ;
+C 40 ; WX 600 ; N parenleft ; B 269 -108 440 622 ;
+C 41 ; WX 600 ; N parenright ; B 160 -108 331 622 ;
+C 42 ; WX 600 ; N asterisk ; B 116 257 484 607 ;
+C 43 ; WX 600 ; N plus ; B 80 44 520 470 ;
+C 44 ; WX 600 ; N comma ; B 181 -112 344 122 ;
+C 45 ; WX 600 ; N hyphen ; B 103 231 497 285 ;
+C 46 ; WX 600 ; N period ; B 229 -15 371 109 ;
+C 47 ; WX 600 ; N slash ; B 125 -80 475 629 ;
+C 48 ; WX 600 ; N zero ; B 106 -15 494 622 ;
+C 49 ; WX 600 ; N one ; B 96 0 505 622 ;
+C 50 ; WX 600 ; N two ; B 70 0 471 622 ;
+C 51 ; WX 600 ; N three ; B 75 -15 466 622 ;
+C 52 ; WX 600 ; N four ; B 78 0 500 622 ;
+C 53 ; WX 600 ; N five ; B 92 -15 497 607 ;
+C 54 ; WX 600 ; N six ; B 111 -15 497 622 ;
+C 55 ; WX 600 ; N seven ; B 82 0 483 607 ;
+C 56 ; WX 600 ; N eight ; B 102 -15 498 622 ;
+C 57 ; WX 600 ; N nine ; B 96 -15 489 622 ;
+C 58 ; WX 600 ; N colon ; B 229 -15 371 385 ;
+C 59 ; WX 600 ; N semicolon ; B 181 -112 371 385 ;
+C 60 ; WX 600 ; N less ; B 41 42 519 472 ;
+C 61 ; WX 600 ; N equal ; B 80 138 520 376 ;
+C 62 ; WX 600 ; N greater ; B 66 42 544 472 ;
+C 63 ; WX 600 ; N question ; B 129 -15 492 572 ;
+C 64 ; WX 600 ; N at ; B 77 -15 533 622 ;
+C 65 ; WX 600 ; N A ; B 3 0 597 562 ;
+C 66 ; WX 600 ; N B ; B 43 0 559 562 ;
+C 67 ; WX 600 ; N C ; B 41 -18 540 580 ;
+C 68 ; WX 600 ; N D ; B 43 0 574 562 ;
+C 69 ; WX 600 ; N E ; B 53 0 550 562 ;
+C 70 ; WX 600 ; N F ; B 53 0 545 562 ;
+C 71 ; WX 600 ; N G ; B 31 -18 575 580 ;
+C 72 ; WX 600 ; N H ; B 32 0 568 562 ;
+C 73 ; WX 600 ; N I ; B 96 0 504 562 ;
+C 74 ; WX 600 ; N J ; B 34 -18 566 562 ;
+C 75 ; WX 600 ; N K ; B 38 0 582 562 ;
+C 76 ; WX 600 ; N L ; B 47 0 554 562 ;
+C 77 ; WX 600 ; N M ; B 4 0 596 562 ;
+C 78 ; WX 600 ; N N ; B 7 -13 593 562 ;
+C 79 ; WX 600 ; N O ; B 43 -18 557 580 ;
+C 80 ; WX 600 ; N P ; B 79 0 558 562 ;
+C 81 ; WX 600 ; N Q ; B 43 -138 557 580 ;
+C 82 ; WX 600 ; N R ; B 38 0 588 562 ;
+C 83 ; WX 600 ; N S ; B 72 -20 529 580 ;
+C 84 ; WX 600 ; N T ; B 38 0 563 562 ;
+C 85 ; WX 600 ; N U ; B 17 -18 583 562 ;
+C 86 ; WX 600 ; N V ; B -4 -13 604 562 ;
+C 87 ; WX 600 ; N W ; B -3 -13 603 562 ;
+C 88 ; WX 600 ; N X ; B 23 0 577 562 ;
+C 89 ; WX 600 ; N Y ; B 24 0 576 562 ;
+C 90 ; WX 600 ; N Z ; B 86 0 514 562 ;
+C 91 ; WX 600 ; N bracketleft ; B 269 -108 442 622 ;
+C 92 ; WX 600 ; N backslash ; B 118 -80 482 629 ;
+C 93 ; WX 600 ; N bracketright ; B 158 -108 331 622 ;
+C 94 ; WX 600 ; N asciicircum ; B 94 354 506 622 ;
+C 95 ; WX 600 ; N underscore ; B 0 -125 600 -75 ;
+C 96 ; WX 600 ; N quoteleft ; B 224 328 387 562 ;
+C 97 ; WX 600 ; N a ; B 53 -15 559 441 ;
+C 98 ; WX 600 ; N b ; B 14 -15 575 629 ;
+C 99 ; WX 600 ; N c ; B 66 -15 529 441 ;
+C 100 ; WX 600 ; N d ; B 45 -15 591 629 ;
+C 101 ; WX 600 ; N e ; B 66 -15 548 441 ;
+C 102 ; WX 600 ; N f ; B 114 0 531 629 ; L i fi ; L l fl ;
+C 103 ; WX 600 ; N g ; B 45 -157 566 441 ;
+C 104 ; WX 600 ; N h ; B 18 0 582 629 ;
+C 105 ; WX 600 ; N i ; B 95 0 505 657 ;
+C 106 ; WX 600 ; N j ; B 82 -157 410 657 ;
+C 107 ; WX 600 ; N k ; B 43 0 580 629 ;
+C 108 ; WX 600 ; N l ; B 95 0 505 629 ;
+C 109 ; WX 600 ; N m ; B -5 0 605 441 ;
+C 110 ; WX 600 ; N n ; B 26 0 575 441 ;
+C 111 ; WX 600 ; N o ; B 62 -15 538 441 ;
+C 112 ; WX 600 ; N p ; B 9 -157 555 441 ;
+C 113 ; WX 600 ; N q ; B 45 -157 591 441 ;
+C 114 ; WX 600 ; N r ; B 60 0 559 441 ;
+C 115 ; WX 600 ; N s ; B 80 -15 513 441 ;
+C 116 ; WX 600 ; N t ; B 87 -15 530 561 ;
+C 117 ; WX 600 ; N u ; B 21 -15 562 426 ;
+C 118 ; WX 600 ; N v ; B 10 -10 590 426 ;
+C 119 ; WX 600 ; N w ; B -4 -10 604 426 ;
+C 120 ; WX 600 ; N x ; B 20 0 580 426 ;
+C 121 ; WX 600 ; N y ; B 7 -157 592 426 ;
+C 122 ; WX 600 ; N z ; B 99 0 502 426 ;
+C 123 ; WX 600 ; N braceleft ; B 182 -108 437 622 ;
+C 124 ; WX 600 ; N bar ; B 275 -250 326 750 ;
+C 125 ; WX 600 ; N braceright ; B 163 -108 418 622 ;
+C 126 ; WX 600 ; N asciitilde ; B 63 197 540 320 ;
+C 161 ; WX 600 ; N exclamdown ; B 236 -157 364 430 ;
+C 162 ; WX 600 ; N cent ; B 96 -49 500 614 ;
+C 163 ; WX 600 ; N sterling ; B 84 -21 521 611 ;
+C 164 ; WX 600 ; N fraction ; B 92 -57 509 665 ;
+C 165 ; WX 600 ; N yen ; B 26 0 574 562 ;
+C 166 ; WX 600 ; N florin ; B 4 -143 539 622 ;
+C 167 ; WX 600 ; N section ; B 113 -78 488 580 ;
+C 168 ; WX 600 ; N currency ; B 73 58 527 506 ;
+C 169 ; WX 600 ; N quotesingle ; B 259 328 341 562 ;
+C 170 ; WX 600 ; N quotedblleft ; B 143 328 471 562 ;
+C 171 ; WX 600 ; N guillemotleft ; B 37 70 563 446 ;
+C 172 ; WX 600 ; N guilsinglleft ; B 149 70 451 446 ;
+C 173 ; WX 600 ; N guilsinglright ; B 149 70 451 446 ;
+C 174 ; WX 600 ; N fi ; B 3 0 597 629 ;
+C 175 ; WX 600 ; N fl ; B 3 0 597 629 ;
+C 177 ; WX 600 ; N endash ; B 75 231 525 285 ;
+C 178 ; WX 600 ; N dagger ; B 141 -78 459 580 ;
+C 179 ; WX 600 ; N daggerdbl ; B 141 -78 459 580 ;
+C 180 ; WX 600 ; N periodcentered ; B 222 189 378 327 ;
+C 182 ; WX 600 ; N paragraph ; B 50 -78 511 562 ;
+C 183 ; WX 600 ; N bullet ; B 172 130 428 383 ;
+C 184 ; WX 600 ; N quotesinglbase ; B 213 -134 376 100 ;
+C 185 ; WX 600 ; N quotedblbase ; B 143 -134 457 100 ;
+C 186 ; WX 600 ; N quotedblright ; B 143 328 457 562 ;
+C 187 ; WX 600 ; N guillemotright ; B 37 70 563 446 ;
+C 188 ; WX 600 ; N ellipsis ; B 37 -15 563 111 ;
+C 189 ; WX 600 ; N perthousand ; B 3 -15 600 622 ;
+C 191 ; WX 600 ; N questiondown ; B 108 -157 471 430 ;
+C 193 ; WX 600 ; N grave ; B 151 497 378 672 ;
+C 194 ; WX 600 ; N acute ; B 242 497 469 672 ;
+C 195 ; WX 600 ; N circumflex ; B 124 477 476 654 ;
+C 196 ; WX 600 ; N tilde ; B 105 489 503 606 ;
+C 197 ; WX 600 ; N macron ; B 120 525 480 565 ;
+C 198 ; WX 600 ; N breve ; B 153 501 447 609 ;
+C 199 ; WX 600 ; N dotaccent ; B 249 537 352 640 ;
+C 200 ; WX 600 ; N dieresis ; B 148 537 453 640 ;
+C 202 ; WX 600 ; N ring ; B 218 463 382 627 ;
+C 203 ; WX 600 ; N cedilla ; B 224 -151 362 10 ;
+C 205 ; WX 600 ; N hungarumlaut ; B 133 497 540 672 ;
+C 206 ; WX 600 ; N ogonek ; B 211 -172 407 4 ;
+C 207 ; WX 600 ; N caron ; B 124 492 476 669 ;
+C 208 ; WX 600 ; N emdash ; B 0 231 600 285 ;
+C 225 ; WX 600 ; N AE ; B 3 0 550 562 ;
+C 227 ; WX 600 ; N ordfeminine ; B 156 249 442 580 ;
+C 232 ; WX 600 ; N Lslash ; B 47 0 554 562 ;
+C 233 ; WX 600 ; N Oslash ; B 43 -80 557 629 ;
+C 234 ; WX 600 ; N OE ; B 7 0 567 562 ;
+C 235 ; WX 600 ; N ordmasculine ; B 157 249 443 580 ;
+C 241 ; WX 600 ; N ae ; B 19 -15 570 441 ;
+C 245 ; WX 600 ; N dotlessi ; B 95 0 505 426 ;
+C 248 ; WX 600 ; N lslash ; B 95 0 505 629 ;
+C 249 ; WX 600 ; N oslash ; B 62 -80 538 506 ;
+C 250 ; WX 600 ; N oe ; B 19 -15 559 441 ;
+C 251 ; WX 600 ; N germandbls ; B 48 -15 588 629 ;
+C -1 ; WX 600 ; N Idieresis ; B 96 0 504 753 ;
+C -1 ; WX 600 ; N eacute ; B 66 -15 548 672 ;
+C -1 ; WX 600 ; N abreve ; B 53 -15 559 609 ;
+C -1 ; WX 600 ; N uhungarumlaut ; B 21 -15 580 672 ;
+C -1 ; WX 600 ; N ecaron ; B 66 -15 548 669 ;
+C -1 ; WX 600 ; N Ydieresis ; B 24 0 576 753 ;
+C -1 ; WX 600 ; N divide ; B 87 48 513 467 ;
+C -1 ; WX 600 ; N Yacute ; B 24 0 576 805 ;
+C -1 ; WX 600 ; N Acircumflex ; B 3 0 597 787 ;
+C -1 ; WX 600 ; N aacute ; B 53 -15 559 672 ;
+C -1 ; WX 600 ; N Ucircumflex ; B 17 -18 583 787 ;
+C -1 ; WX 600 ; N yacute ; B 7 -157 592 672 ;
+C -1 ; WX 600 ; N scommaaccent ; B 80 -250 513 441 ;
+C -1 ; WX 600 ; N ecircumflex ; B 66 -15 548 654 ;
+C -1 ; WX 600 ; N Uring ; B 17 -18 583 760 ;
+C -1 ; WX 600 ; N Udieresis ; B 17 -18 583 753 ;
+C -1 ; WX 600 ; N aogonek ; B 53 -172 587 441 ;
+C -1 ; WX 600 ; N Uacute ; B 17 -18 583 805 ;
+C -1 ; WX 600 ; N uogonek ; B 21 -172 590 426 ;
+C -1 ; WX 600 ; N Edieresis ; B 53 0 550 753 ;
+C -1 ; WX 600 ; N Dcroat ; B 30 0 574 562 ;
+C -1 ; WX 600 ; N commaaccent ; B 198 -250 335 -58 ;
+C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ;
+C -1 ; WX 600 ; N Emacron ; B 53 0 550 698 ;
+C -1 ; WX 600 ; N ccaron ; B 66 -15 529 669 ;
+C -1 ; WX 600 ; N aring ; B 53 -15 559 627 ;
+C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 593 562 ;
+C -1 ; WX 600 ; N lacute ; B 95 0 505 805 ;
+C -1 ; WX 600 ; N agrave ; B 53 -15 559 672 ;
+C -1 ; WX 600 ; N Tcommaaccent ; B 38 -250 563 562 ;
+C -1 ; WX 600 ; N Cacute ; B 41 -18 540 805 ;
+C -1 ; WX 600 ; N atilde ; B 53 -15 559 606 ;
+C -1 ; WX 600 ; N Edotaccent ; B 53 0 550 753 ;
+C -1 ; WX 600 ; N scaron ; B 80 -15 513 669 ;
+C -1 ; WX 600 ; N scedilla ; B 80 -151 513 441 ;
+C -1 ; WX 600 ; N iacute ; B 95 0 505 672 ;
+C -1 ; WX 600 ; N lozenge ; B 18 0 443 706 ;
+C -1 ; WX 600 ; N Rcaron ; B 38 0 588 802 ;
+C -1 ; WX 600 ; N Gcommaaccent ; B 31 -250 575 580 ;
+C -1 ; WX 600 ; N ucircumflex ; B 21 -15 562 654 ;
+C -1 ; WX 600 ; N acircumflex ; B 53 -15 559 654 ;
+C -1 ; WX 600 ; N Amacron ; B 3 0 597 698 ;
+C -1 ; WX 600 ; N rcaron ; B 60 0 559 669 ;
+C -1 ; WX 600 ; N ccedilla ; B 66 -151 529 441 ;
+C -1 ; WX 600 ; N Zdotaccent ; B 86 0 514 753 ;
+C -1 ; WX 600 ; N Thorn ; B 79 0 538 562 ;
+C -1 ; WX 600 ; N Omacron ; B 43 -18 557 698 ;
+C -1 ; WX 600 ; N Racute ; B 38 0 588 805 ;
+C -1 ; WX 600 ; N Sacute ; B 72 -20 529 805 ;
+C -1 ; WX 600 ; N dcaron ; B 45 -15 715 629 ;
+C -1 ; WX 600 ; N Umacron ; B 17 -18 583 698 ;
+C -1 ; WX 600 ; N uring ; B 21 -15 562 627 ;
+C -1 ; WX 600 ; N threesuperior ; B 155 240 406 622 ;
+C -1 ; WX 600 ; N Ograve ; B 43 -18 557 805 ;
+C -1 ; WX 600 ; N Agrave ; B 3 0 597 805 ;
+C -1 ; WX 600 ; N Abreve ; B 3 0 597 732 ;
+C -1 ; WX 600 ; N multiply ; B 87 43 515 470 ;
+C -1 ; WX 600 ; N uacute ; B 21 -15 562 672 ;
+C -1 ; WX 600 ; N Tcaron ; B 38 0 563 802 ;
+C -1 ; WX 600 ; N partialdiff ; B 17 -38 459 710 ;
+C -1 ; WX 600 ; N ydieresis ; B 7 -157 592 620 ;
+C -1 ; WX 600 ; N Nacute ; B 7 -13 593 805 ;
+C -1 ; WX 600 ; N icircumflex ; B 94 0 505 654 ;
+C -1 ; WX 600 ; N Ecircumflex ; B 53 0 550 787 ;
+C -1 ; WX 600 ; N adieresis ; B 53 -15 559 620 ;
+C -1 ; WX 600 ; N edieresis ; B 66 -15 548 620 ;
+C -1 ; WX 600 ; N cacute ; B 66 -15 529 672 ;
+C -1 ; WX 600 ; N nacute ; B 26 0 575 672 ;
+C -1 ; WX 600 ; N umacron ; B 21 -15 562 565 ;
+C -1 ; WX 600 ; N Ncaron ; B 7 -13 593 802 ;
+C -1 ; WX 600 ; N Iacute ; B 96 0 504 805 ;
+C -1 ; WX 600 ; N plusminus ; B 87 44 513 558 ;
+C -1 ; WX 600 ; N brokenbar ; B 275 -175 326 675 ;
+C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ;
+C -1 ; WX 600 ; N Gbreve ; B 31 -18 575 732 ;
+C -1 ; WX 600 ; N Idotaccent ; B 96 0 504 753 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ;
+C -1 ; WX 600 ; N Egrave ; B 53 0 550 805 ;
+C -1 ; WX 600 ; N racute ; B 60 0 559 672 ;
+C -1 ; WX 600 ; N omacron ; B 62 -15 538 565 ;
+C -1 ; WX 600 ; N Zacute ; B 86 0 514 805 ;
+C -1 ; WX 600 ; N Zcaron ; B 86 0 514 802 ;
+C -1 ; WX 600 ; N greaterequal ; B 98 0 502 710 ;
+C -1 ; WX 600 ; N Eth ; B 30 0 574 562 ;
+C -1 ; WX 600 ; N Ccedilla ; B 41 -151 540 580 ;
+C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 505 629 ;
+C -1 ; WX 600 ; N tcaron ; B 87 -15 530 717 ;
+C -1 ; WX 600 ; N eogonek ; B 66 -172 548 441 ;
+C -1 ; WX 600 ; N Uogonek ; B 17 -172 583 562 ;
+C -1 ; WX 600 ; N Aacute ; B 3 0 597 805 ;
+C -1 ; WX 600 ; N Adieresis ; B 3 0 597 753 ;
+C -1 ; WX 600 ; N egrave ; B 66 -15 548 672 ;
+C -1 ; WX 600 ; N zacute ; B 99 0 502 672 ;
+C -1 ; WX 600 ; N iogonek ; B 95 -172 505 657 ;
+C -1 ; WX 600 ; N Oacute ; B 43 -18 557 805 ;
+C -1 ; WX 600 ; N oacute ; B 62 -15 538 672 ;
+C -1 ; WX 600 ; N amacron ; B 53 -15 559 565 ;
+C -1 ; WX 600 ; N sacute ; B 80 -15 513 672 ;
+C -1 ; WX 600 ; N idieresis ; B 95 0 505 620 ;
+C -1 ; WX 600 ; N Ocircumflex ; B 43 -18 557 787 ;
+C -1 ; WX 600 ; N Ugrave ; B 17 -18 583 805 ;
+C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ;
+C -1 ; WX 600 ; N thorn ; B -6 -157 555 629 ;
+C -1 ; WX 600 ; N twosuperior ; B 177 249 424 622 ;
+C -1 ; WX 600 ; N Odieresis ; B 43 -18 557 753 ;
+C -1 ; WX 600 ; N mu ; B 21 -157 562 426 ;
+C -1 ; WX 600 ; N igrave ; B 95 0 505 672 ;
+C -1 ; WX 600 ; N ohungarumlaut ; B 62 -15 580 672 ;
+C -1 ; WX 600 ; N Eogonek ; B 53 -172 561 562 ;
+C -1 ; WX 600 ; N dcroat ; B 45 -15 591 629 ;
+C -1 ; WX 600 ; N threequarters ; B 8 -56 593 666 ;
+C -1 ; WX 600 ; N Scedilla ; B 72 -151 529 580 ;
+C -1 ; WX 600 ; N lcaron ; B 95 0 533 629 ;
+C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 582 562 ;
+C -1 ; WX 600 ; N Lacute ; B 47 0 554 805 ;
+C -1 ; WX 600 ; N trademark ; B -23 263 623 562 ;
+C -1 ; WX 600 ; N edotaccent ; B 66 -15 548 620 ;
+C -1 ; WX 600 ; N Igrave ; B 96 0 504 805 ;
+C -1 ; WX 600 ; N Imacron ; B 96 0 504 698 ;
+C -1 ; WX 600 ; N Lcaron ; B 47 0 554 562 ;
+C -1 ; WX 600 ; N onehalf ; B 0 -57 611 665 ;
+C -1 ; WX 600 ; N lessequal ; B 98 0 502 710 ;
+C -1 ; WX 600 ; N ocircumflex ; B 62 -15 538 654 ;
+C -1 ; WX 600 ; N ntilde ; B 26 0 575 606 ;
+C -1 ; WX 600 ; N Uhungarumlaut ; B 17 -18 590 805 ;
+C -1 ; WX 600 ; N Eacute ; B 53 0 550 805 ;
+C -1 ; WX 600 ; N emacron ; B 66 -15 548 565 ;
+C -1 ; WX 600 ; N gbreve ; B 45 -157 566 609 ;
+C -1 ; WX 600 ; N onequarter ; B 0 -57 600 665 ;
+C -1 ; WX 600 ; N Scaron ; B 72 -20 529 802 ;
+C -1 ; WX 600 ; N Scommaaccent ; B 72 -250 529 580 ;
+C -1 ; WX 600 ; N Ohungarumlaut ; B 43 -18 580 805 ;
+C -1 ; WX 600 ; N degree ; B 123 269 477 622 ;
+C -1 ; WX 600 ; N ograve ; B 62 -15 538 672 ;
+C -1 ; WX 600 ; N Ccaron ; B 41 -18 540 802 ;
+C -1 ; WX 600 ; N ugrave ; B 21 -15 562 672 ;
+C -1 ; WX 600 ; N radical ; B 3 -15 597 792 ;
+C -1 ; WX 600 ; N Dcaron ; B 43 0 574 802 ;
+C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 559 441 ;
+C -1 ; WX 600 ; N Ntilde ; B 7 -13 593 729 ;
+C -1 ; WX 600 ; N otilde ; B 62 -15 538 606 ;
+C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 588 562 ;
+C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 554 562 ;
+C -1 ; WX 600 ; N Atilde ; B 3 0 597 729 ;
+C -1 ; WX 600 ; N Aogonek ; B 3 -172 608 562 ;
+C -1 ; WX 600 ; N Aring ; B 3 0 597 750 ;
+C -1 ; WX 600 ; N Otilde ; B 43 -18 557 729 ;
+C -1 ; WX 600 ; N zdotaccent ; B 99 0 502 620 ;
+C -1 ; WX 600 ; N Ecaron ; B 53 0 550 802 ;
+C -1 ; WX 600 ; N Iogonek ; B 96 -172 504 562 ;
+C -1 ; WX 600 ; N kcommaaccent ; B 43 -250 580 629 ;
+C -1 ; WX 600 ; N minus ; B 80 232 520 283 ;
+C -1 ; WX 600 ; N Icircumflex ; B 96 0 504 787 ;
+C -1 ; WX 600 ; N ncaron ; B 26 0 575 669 ;
+C -1 ; WX 600 ; N tcommaaccent ; B 87 -250 530 561 ;
+C -1 ; WX 600 ; N logicalnot ; B 87 108 513 369 ;
+C -1 ; WX 600 ; N odieresis ; B 62 -15 538 620 ;
+C -1 ; WX 600 ; N udieresis ; B 21 -15 562 620 ;
+C -1 ; WX 600 ; N notequal ; B 15 -16 540 529 ;
+C -1 ; WX 600 ; N gcommaaccent ; B 45 -157 566 708 ;
+C -1 ; WX 600 ; N eth ; B 62 -15 538 629 ;
+C -1 ; WX 600 ; N zcaron ; B 99 0 502 669 ;
+C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 575 441 ;
+C -1 ; WX 600 ; N onesuperior ; B 172 249 428 622 ;
+C -1 ; WX 600 ; N imacron ; B 95 0 505 565 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Helvetica-Bold.afm b/test/user-template/user/psprint/fontmetric/Helvetica-Bold.afm
new file mode 100644
index 000000000000..0932bdffe2dd
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Helvetica-Bold.afm
@@ -0,0 +1,2825 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:43:52 1997
+Comment UniqueID 43052
+Comment VMusage 37169 48194
+FontName Helvetica-Bold
+FullName Helvetica Bold
+FamilyName Helvetica
+Weight Bold
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -170 -228 1003 962
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 718
+XHeight 532
+Ascender 718
+Descender -207
+StdHW 118
+StdVW 140
+StartCharMetrics 314
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 90 0 244 718 ;
+C 34 ; WX 474 ; N quotedbl ; B 98 447 376 718 ;
+C 35 ; WX 556 ; N numbersign ; B 18 0 538 698 ;
+C 36 ; WX 556 ; N dollar ; B 30 -115 523 775 ;
+C 37 ; WX 889 ; N percent ; B 28 -19 861 710 ;
+C 38 ; WX 722 ; N ampersand ; B 54 -19 701 718 ;
+C 39 ; WX 278 ; N quoteright ; B 69 445 209 718 ;
+C 40 ; WX 333 ; N parenleft ; B 35 -208 314 734 ;
+C 41 ; WX 333 ; N parenright ; B 19 -208 298 734 ;
+C 42 ; WX 389 ; N asterisk ; B 27 387 362 718 ;
+C 43 ; WX 584 ; N plus ; B 40 0 544 506 ;
+C 44 ; WX 278 ; N comma ; B 64 -168 214 146 ;
+C 45 ; WX 333 ; N hyphen ; B 27 215 306 345 ;
+C 46 ; WX 278 ; N period ; B 64 0 214 146 ;
+C 47 ; WX 278 ; N slash ; B -33 -19 311 737 ;
+C 48 ; WX 556 ; N zero ; B 32 -19 524 710 ;
+C 49 ; WX 556 ; N one ; B 69 0 378 710 ;
+C 50 ; WX 556 ; N two ; B 26 0 511 710 ;
+C 51 ; WX 556 ; N three ; B 27 -19 516 710 ;
+C 52 ; WX 556 ; N four ; B 27 0 526 710 ;
+C 53 ; WX 556 ; N five ; B 27 -19 516 698 ;
+C 54 ; WX 556 ; N six ; B 31 -19 520 710 ;
+C 55 ; WX 556 ; N seven ; B 25 0 528 698 ;
+C 56 ; WX 556 ; N eight ; B 32 -19 524 710 ;
+C 57 ; WX 556 ; N nine ; B 30 -19 522 710 ;
+C 58 ; WX 333 ; N colon ; B 92 0 242 512 ;
+C 59 ; WX 333 ; N semicolon ; B 92 -168 242 512 ;
+C 60 ; WX 584 ; N less ; B 38 -8 546 514 ;
+C 61 ; WX 584 ; N equal ; B 40 87 544 419 ;
+C 62 ; WX 584 ; N greater ; B 38 -8 546 514 ;
+C 63 ; WX 611 ; N question ; B 60 0 556 727 ;
+C 64 ; WX 975 ; N at ; B 118 -19 856 737 ;
+C 65 ; WX 722 ; N A ; B 20 0 702 718 ;
+C 66 ; WX 722 ; N B ; B 76 0 669 718 ;
+C 67 ; WX 722 ; N C ; B 44 -19 684 737 ;
+C 68 ; WX 722 ; N D ; B 76 0 685 718 ;
+C 69 ; WX 667 ; N E ; B 76 0 621 718 ;
+C 70 ; WX 611 ; N F ; B 76 0 587 718 ;
+C 71 ; WX 778 ; N G ; B 44 -19 713 737 ;
+C 72 ; WX 722 ; N H ; B 71 0 651 718 ;
+C 73 ; WX 278 ; N I ; B 64 0 214 718 ;
+C 74 ; WX 556 ; N J ; B 22 -18 484 718 ;
+C 75 ; WX 722 ; N K ; B 87 0 722 718 ;
+C 76 ; WX 611 ; N L ; B 76 0 583 718 ;
+C 77 ; WX 833 ; N M ; B 69 0 765 718 ;
+C 78 ; WX 722 ; N N ; B 69 0 654 718 ;
+C 79 ; WX 778 ; N O ; B 44 -19 734 737 ;
+C 80 ; WX 667 ; N P ; B 76 0 627 718 ;
+C 81 ; WX 778 ; N Q ; B 44 -52 737 737 ;
+C 82 ; WX 722 ; N R ; B 76 0 677 718 ;
+C 83 ; WX 667 ; N S ; B 39 -19 629 737 ;
+C 84 ; WX 611 ; N T ; B 14 0 598 718 ;
+C 85 ; WX 722 ; N U ; B 72 -19 651 718 ;
+C 86 ; WX 667 ; N V ; B 19 0 648 718 ;
+C 87 ; WX 944 ; N W ; B 16 0 929 718 ;
+C 88 ; WX 667 ; N X ; B 14 0 653 718 ;
+C 89 ; WX 667 ; N Y ; B 15 0 653 718 ;
+C 90 ; WX 611 ; N Z ; B 25 0 586 718 ;
+C 91 ; WX 333 ; N bracketleft ; B 63 -196 309 722 ;
+C 92 ; WX 278 ; N backslash ; B -33 -19 311 737 ;
+C 93 ; WX 333 ; N bracketright ; B 24 -196 270 722 ;
+C 94 ; WX 584 ; N asciicircum ; B 62 323 522 698 ;
+C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ;
+C 96 ; WX 278 ; N quoteleft ; B 69 454 209 727 ;
+C 97 ; WX 556 ; N a ; B 29 -14 527 546 ;
+C 98 ; WX 611 ; N b ; B 61 -14 578 718 ;
+C 99 ; WX 556 ; N c ; B 34 -14 524 546 ;
+C 100 ; WX 611 ; N d ; B 34 -14 551 718 ;
+C 101 ; WX 556 ; N e ; B 23 -14 528 546 ;
+C 102 ; WX 333 ; N f ; B 10 0 318 727 ; L i fi ; L l fl ;
+C 103 ; WX 611 ; N g ; B 40 -217 553 546 ;
+C 104 ; WX 611 ; N h ; B 65 0 546 718 ;
+C 105 ; WX 278 ; N i ; B 69 0 209 725 ;
+C 106 ; WX 278 ; N j ; B 3 -214 209 725 ;
+C 107 ; WX 556 ; N k ; B 69 0 562 718 ;
+C 108 ; WX 278 ; N l ; B 69 0 209 718 ;
+C 109 ; WX 889 ; N m ; B 64 0 826 546 ;
+C 110 ; WX 611 ; N n ; B 65 0 546 546 ;
+C 111 ; WX 611 ; N o ; B 34 -14 578 546 ;
+C 112 ; WX 611 ; N p ; B 62 -207 578 546 ;
+C 113 ; WX 611 ; N q ; B 34 -207 552 546 ;
+C 114 ; WX 389 ; N r ; B 64 0 373 546 ;
+C 115 ; WX 556 ; N s ; B 30 -14 519 546 ;
+C 116 ; WX 333 ; N t ; B 10 -6 309 676 ;
+C 117 ; WX 611 ; N u ; B 66 -14 545 532 ;
+C 118 ; WX 556 ; N v ; B 13 0 543 532 ;
+C 119 ; WX 778 ; N w ; B 10 0 769 532 ;
+C 120 ; WX 556 ; N x ; B 15 0 541 532 ;
+C 121 ; WX 556 ; N y ; B 10 -214 539 532 ;
+C 122 ; WX 500 ; N z ; B 20 0 480 532 ;
+C 123 ; WX 389 ; N braceleft ; B 48 -196 365 722 ;
+C 124 ; WX 280 ; N bar ; B 84 -225 196 775 ;
+C 125 ; WX 389 ; N braceright ; B 24 -196 341 722 ;
+C 126 ; WX 584 ; N asciitilde ; B 61 163 523 343 ;
+C 161 ; WX 333 ; N exclamdown ; B 90 -186 244 532 ;
+C 162 ; WX 556 ; N cent ; B 34 -118 524 628 ;
+C 163 ; WX 556 ; N sterling ; B 28 -16 541 718 ;
+C 164 ; WX 167 ; N fraction ; B -170 -19 336 710 ;
+C 165 ; WX 556 ; N yen ; B -9 0 565 698 ;
+C 166 ; WX 556 ; N florin ; B -10 -210 516 737 ;
+C 167 ; WX 556 ; N section ; B 34 -184 522 727 ;
+C 168 ; WX 556 ; N currency ; B -3 76 559 636 ;
+C 169 ; WX 238 ; N quotesingle ; B 70 447 168 718 ;
+C 170 ; WX 500 ; N quotedblleft ; B 64 454 436 727 ;
+C 171 ; WX 556 ; N guillemotleft ; B 88 76 468 484 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 83 76 250 484 ;
+C 173 ; WX 333 ; N guilsinglright ; B 83 76 250 484 ;
+C 174 ; WX 611 ; N fi ; B 10 0 542 727 ;
+C 175 ; WX 611 ; N fl ; B 10 0 542 727 ;
+C 177 ; WX 556 ; N endash ; B 0 227 556 333 ;
+C 178 ; WX 556 ; N dagger ; B 36 -171 520 718 ;
+C 179 ; WX 556 ; N daggerdbl ; B 36 -171 520 718 ;
+C 180 ; WX 278 ; N periodcentered ; B 58 172 220 334 ;
+C 182 ; WX 556 ; N paragraph ; B -8 -191 539 700 ;
+C 183 ; WX 350 ; N bullet ; B 10 194 340 524 ;
+C 184 ; WX 278 ; N quotesinglbase ; B 69 -146 209 127 ;
+C 185 ; WX 500 ; N quotedblbase ; B 64 -146 436 127 ;
+C 186 ; WX 500 ; N quotedblright ; B 64 445 436 718 ;
+C 187 ; WX 556 ; N guillemotright ; B 88 76 468 484 ;
+C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ;
+C 189 ; WX 1000 ; N perthousand ; B -3 -19 1003 710 ;
+C 191 ; WX 611 ; N questiondown ; B 55 -195 551 532 ;
+C 193 ; WX 333 ; N grave ; B -23 604 225 750 ;
+C 194 ; WX 333 ; N acute ; B 108 604 356 750 ;
+C 195 ; WX 333 ; N circumflex ; B -10 604 343 750 ;
+C 196 ; WX 333 ; N tilde ; B -17 610 350 737 ;
+C 197 ; WX 333 ; N macron ; B -6 604 339 678 ;
+C 198 ; WX 333 ; N breve ; B -2 604 335 750 ;
+C 199 ; WX 333 ; N dotaccent ; B 104 614 230 729 ;
+C 200 ; WX 333 ; N dieresis ; B 6 614 327 729 ;
+C 202 ; WX 333 ; N ring ; B 59 568 275 776 ;
+C 203 ; WX 333 ; N cedilla ; B 6 -228 245 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 9 604 486 750 ;
+C 206 ; WX 333 ; N ogonek ; B 71 -228 304 0 ;
+C 207 ; WX 333 ; N caron ; B -10 604 343 750 ;
+C 208 ; WX 1000 ; N emdash ; B 0 227 1000 333 ;
+C 225 ; WX 1000 ; N AE ; B 5 0 954 718 ;
+C 227 ; WX 370 ; N ordfeminine ; B 22 401 347 737 ;
+C 232 ; WX 611 ; N Lslash ; B -20 0 583 718 ;
+C 233 ; WX 778 ; N Oslash ; B 33 -27 744 745 ;
+C 234 ; WX 1000 ; N OE ; B 37 -19 961 737 ;
+C 235 ; WX 365 ; N ordmasculine ; B 6 401 360 737 ;
+C 241 ; WX 889 ; N ae ; B 29 -14 858 546 ;
+C 245 ; WX 278 ; N dotlessi ; B 69 0 209 532 ;
+C 248 ; WX 278 ; N lslash ; B -18 0 296 718 ;
+C 249 ; WX 611 ; N oslash ; B 22 -29 589 560 ;
+C 250 ; WX 944 ; N oe ; B 34 -14 912 546 ;
+C 251 ; WX 611 ; N germandbls ; B 69 -14 579 731 ;
+C -1 ; WX 278 ; N Idieresis ; B -21 0 300 915 ;
+C -1 ; WX 556 ; N eacute ; B 23 -14 528 750 ;
+C -1 ; WX 556 ; N abreve ; B 29 -14 527 750 ;
+C -1 ; WX 611 ; N uhungarumlaut ; B 66 -14 625 750 ;
+C -1 ; WX 556 ; N ecaron ; B 23 -14 528 750 ;
+C -1 ; WX 667 ; N Ydieresis ; B 15 0 653 915 ;
+C -1 ; WX 584 ; N divide ; B 40 -42 544 548 ;
+C -1 ; WX 667 ; N Yacute ; B 15 0 653 936 ;
+C -1 ; WX 722 ; N Acircumflex ; B 20 0 702 936 ;
+C -1 ; WX 556 ; N aacute ; B 29 -14 527 750 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 72 -19 651 936 ;
+C -1 ; WX 556 ; N yacute ; B 10 -214 539 750 ;
+C -1 ; WX 556 ; N scommaaccent ; B 30 -228 519 546 ;
+C -1 ; WX 556 ; N ecircumflex ; B 23 -14 528 750 ;
+C -1 ; WX 722 ; N Uring ; B 72 -19 651 962 ;
+C -1 ; WX 722 ; N Udieresis ; B 72 -19 651 915 ;
+C -1 ; WX 556 ; N aogonek ; B 29 -224 545 546 ;
+C -1 ; WX 722 ; N Uacute ; B 72 -19 651 936 ;
+C -1 ; WX 611 ; N uogonek ; B 66 -228 545 532 ;
+C -1 ; WX 667 ; N Edieresis ; B 76 0 621 915 ;
+C -1 ; WX 722 ; N Dcroat ; B -5 0 685 718 ;
+C -1 ; WX 250 ; N commaaccent ; B 64 -228 199 -50 ;
+C -1 ; WX 737 ; N copyright ; B -11 -19 749 737 ;
+C -1 ; WX 667 ; N Emacron ; B 76 0 621 864 ;
+C -1 ; WX 556 ; N ccaron ; B 34 -14 524 750 ;
+C -1 ; WX 556 ; N aring ; B 29 -14 527 776 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 654 718 ;
+C -1 ; WX 278 ; N lacute ; B 69 0 329 936 ;
+C -1 ; WX 556 ; N agrave ; B 29 -14 527 750 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 14 -228 598 718 ;
+C -1 ; WX 722 ; N Cacute ; B 44 -19 684 936 ;
+C -1 ; WX 556 ; N atilde ; B 29 -14 527 737 ;
+C -1 ; WX 667 ; N Edotaccent ; B 76 0 621 915 ;
+C -1 ; WX 556 ; N scaron ; B 30 -14 519 750 ;
+C -1 ; WX 556 ; N scedilla ; B 30 -228 519 546 ;
+C -1 ; WX 278 ; N iacute ; B 69 0 329 750 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 722 ; N Rcaron ; B 76 0 677 936 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 44 -228 713 737 ;
+C -1 ; WX 611 ; N ucircumflex ; B 66 -14 545 750 ;
+C -1 ; WX 556 ; N acircumflex ; B 29 -14 527 750 ;
+C -1 ; WX 722 ; N Amacron ; B 20 0 702 864 ;
+C -1 ; WX 389 ; N rcaron ; B 18 0 373 750 ;
+C -1 ; WX 556 ; N ccedilla ; B 34 -228 524 546 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 25 0 586 915 ;
+C -1 ; WX 667 ; N Thorn ; B 76 0 627 718 ;
+C -1 ; WX 778 ; N Omacron ; B 44 -19 734 864 ;
+C -1 ; WX 722 ; N Racute ; B 76 0 677 936 ;
+C -1 ; WX 667 ; N Sacute ; B 39 -19 629 936 ;
+C -1 ; WX 743 ; N dcaron ; B 34 -14 750 718 ;
+C -1 ; WX 722 ; N Umacron ; B 72 -19 651 864 ;
+C -1 ; WX 611 ; N uring ; B 66 -14 545 776 ;
+C -1 ; WX 333 ; N threesuperior ; B 8 271 326 710 ;
+C -1 ; WX 778 ; N Ograve ; B 44 -19 734 936 ;
+C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ;
+C -1 ; WX 722 ; N Abreve ; B 20 0 702 936 ;
+C -1 ; WX 584 ; N multiply ; B 40 1 545 505 ;
+C -1 ; WX 611 ; N uacute ; B 66 -14 545 750 ;
+C -1 ; WX 611 ; N Tcaron ; B 14 0 598 936 ;
+C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 556 ; N ydieresis ; B 10 -214 539 729 ;
+C -1 ; WX 722 ; N Nacute ; B 69 0 654 936 ;
+C -1 ; WX 278 ; N icircumflex ; B -37 0 316 750 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 76 0 621 936 ;
+C -1 ; WX 556 ; N adieresis ; B 29 -14 527 729 ;
+C -1 ; WX 556 ; N edieresis ; B 23 -14 528 729 ;
+C -1 ; WX 556 ; N cacute ; B 34 -14 524 750 ;
+C -1 ; WX 611 ; N nacute ; B 65 0 546 750 ;
+C -1 ; WX 611 ; N umacron ; B 66 -14 545 678 ;
+C -1 ; WX 722 ; N Ncaron ; B 69 0 654 936 ;
+C -1 ; WX 278 ; N Iacute ; B 64 0 329 936 ;
+C -1 ; WX 584 ; N plusminus ; B 40 0 544 506 ;
+C -1 ; WX 280 ; N brokenbar ; B 84 -150 196 700 ;
+C -1 ; WX 737 ; N registered ; B -11 -19 748 737 ;
+C -1 ; WX 778 ; N Gbreve ; B 44 -19 713 936 ;
+C -1 ; WX 278 ; N Idotaccent ; B 64 0 214 915 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ;
+C -1 ; WX 667 ; N Egrave ; B 76 0 621 936 ;
+C -1 ; WX 389 ; N racute ; B 64 0 384 750 ;
+C -1 ; WX 611 ; N omacron ; B 34 -14 578 678 ;
+C -1 ; WX 611 ; N Zacute ; B 25 0 586 936 ;
+C -1 ; WX 611 ; N Zcaron ; B 25 0 586 936 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 722 ; N Eth ; B -5 0 685 718 ;
+C -1 ; WX 722 ; N Ccedilla ; B 44 -228 684 737 ;
+C -1 ; WX 278 ; N lcommaaccent ; B 69 -228 213 718 ;
+C -1 ; WX 389 ; N tcaron ; B 10 -6 421 878 ;
+C -1 ; WX 556 ; N eogonek ; B 23 -228 528 546 ;
+C -1 ; WX 722 ; N Uogonek ; B 72 -228 651 718 ;
+C -1 ; WX 722 ; N Aacute ; B 20 0 702 936 ;
+C -1 ; WX 722 ; N Adieresis ; B 20 0 702 915 ;
+C -1 ; WX 556 ; N egrave ; B 23 -14 528 750 ;
+C -1 ; WX 500 ; N zacute ; B 20 0 480 750 ;
+C -1 ; WX 278 ; N iogonek ; B 16 -224 249 725 ;
+C -1 ; WX 778 ; N Oacute ; B 44 -19 734 936 ;
+C -1 ; WX 611 ; N oacute ; B 34 -14 578 750 ;
+C -1 ; WX 556 ; N amacron ; B 29 -14 527 678 ;
+C -1 ; WX 556 ; N sacute ; B 30 -14 519 750 ;
+C -1 ; WX 278 ; N idieresis ; B -21 0 300 729 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 44 -19 734 936 ;
+C -1 ; WX 722 ; N Ugrave ; B 72 -19 651 936 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 611 ; N thorn ; B 62 -208 578 718 ;
+C -1 ; WX 333 ; N twosuperior ; B 9 283 324 710 ;
+C -1 ; WX 778 ; N Odieresis ; B 44 -19 734 915 ;
+C -1 ; WX 611 ; N mu ; B 66 -207 545 532 ;
+C -1 ; WX 278 ; N igrave ; B -50 0 209 750 ;
+C -1 ; WX 611 ; N ohungarumlaut ; B 34 -14 625 750 ;
+C -1 ; WX 667 ; N Eogonek ; B 76 -224 639 718 ;
+C -1 ; WX 611 ; N dcroat ; B 34 -14 650 718 ;
+C -1 ; WX 834 ; N threequarters ; B 16 -19 799 710 ;
+C -1 ; WX 667 ; N Scedilla ; B 39 -228 629 737 ;
+C -1 ; WX 400 ; N lcaron ; B 69 0 408 718 ;
+C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 722 718 ;
+C -1 ; WX 611 ; N Lacute ; B 76 0 583 936 ;
+C -1 ; WX 1000 ; N trademark ; B 44 306 956 718 ;
+C -1 ; WX 556 ; N edotaccent ; B 23 -14 528 729 ;
+C -1 ; WX 278 ; N Igrave ; B -50 0 214 936 ;
+C -1 ; WX 278 ; N Imacron ; B -33 0 312 864 ;
+C -1 ; WX 611 ; N Lcaron ; B 76 0 583 718 ;
+C -1 ; WX 834 ; N onehalf ; B 26 -19 794 710 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 611 ; N ocircumflex ; B 34 -14 578 750 ;
+C -1 ; WX 611 ; N ntilde ; B 65 0 546 737 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 72 -19 681 936 ;
+C -1 ; WX 667 ; N Eacute ; B 76 0 621 936 ;
+C -1 ; WX 556 ; N emacron ; B 23 -14 528 678 ;
+C -1 ; WX 611 ; N gbreve ; B 40 -217 553 750 ;
+C -1 ; WX 834 ; N onequarter ; B 26 -19 766 710 ;
+C -1 ; WX 667 ; N Scaron ; B 39 -19 629 936 ;
+C -1 ; WX 667 ; N Scommaaccent ; B 39 -228 629 737 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 44 -19 734 936 ;
+C -1 ; WX 400 ; N degree ; B 57 426 343 712 ;
+C -1 ; WX 611 ; N ograve ; B 34 -14 578 750 ;
+C -1 ; WX 722 ; N Ccaron ; B 44 -19 684 936 ;
+C -1 ; WX 611 ; N ugrave ; B 66 -14 545 750 ;
+C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 722 ; N Dcaron ; B 76 0 685 936 ;
+C -1 ; WX 389 ; N rcommaaccent ; B 64 -228 373 546 ;
+C -1 ; WX 722 ; N Ntilde ; B 69 0 654 923 ;
+C -1 ; WX 611 ; N otilde ; B 34 -14 578 737 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 677 718 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 583 718 ;
+C -1 ; WX 722 ; N Atilde ; B 20 0 702 923 ;
+C -1 ; WX 722 ; N Aogonek ; B 20 -224 742 718 ;
+C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ;
+C -1 ; WX 778 ; N Otilde ; B 44 -19 734 923 ;
+C -1 ; WX 500 ; N zdotaccent ; B 20 0 480 729 ;
+C -1 ; WX 667 ; N Ecaron ; B 76 0 621 936 ;
+C -1 ; WX 278 ; N Iogonek ; B -11 -228 222 718 ;
+C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 562 718 ;
+C -1 ; WX 584 ; N minus ; B 40 197 544 309 ;
+C -1 ; WX 278 ; N Icircumflex ; B -37 0 316 936 ;
+C -1 ; WX 611 ; N ncaron ; B 65 0 546 750 ;
+C -1 ; WX 333 ; N tcommaaccent ; B 10 -228 309 676 ;
+C -1 ; WX 584 ; N logicalnot ; B 40 108 544 419 ;
+C -1 ; WX 611 ; N odieresis ; B 34 -14 578 729 ;
+C -1 ; WX 611 ; N udieresis ; B 66 -14 545 729 ;
+C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 611 ; N gcommaaccent ; B 40 -217 553 850 ;
+C -1 ; WX 611 ; N eth ; B 34 -14 578 737 ;
+C -1 ; WX 500 ; N zcaron ; B 20 0 480 750 ;
+C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 546 546 ;
+C -1 ; WX 333 ; N onesuperior ; B 26 283 237 710 ;
+C -1 ; WX 278 ; N imacron ; B -8 0 285 678 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2481
+KPX A C -40
+KPX A Cacute -40
+KPX A Ccaron -40
+KPX A Ccedilla -40
+KPX A G -50
+KPX A Gbreve -50
+KPX A Gcommaaccent -50
+KPX A O -40
+KPX A Oacute -40
+KPX A Ocircumflex -40
+KPX A Odieresis -40
+KPX A Ograve -40
+KPX A Ohungarumlaut -40
+KPX A Omacron -40
+KPX A Oslash -40
+KPX A Otilde -40
+KPX A Q -40
+KPX A T -90
+KPX A Tcaron -90
+KPX A Tcommaaccent -90
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -80
+KPX A W -60
+KPX A Y -110
+KPX A Yacute -110
+KPX A Ydieresis -110
+KPX A u -30
+KPX A uacute -30
+KPX A ucircumflex -30
+KPX A udieresis -30
+KPX A ugrave -30
+KPX A uhungarumlaut -30
+KPX A umacron -30
+KPX A uogonek -30
+KPX A uring -30
+KPX A v -40
+KPX A w -30
+KPX A y -30
+KPX A yacute -30
+KPX A ydieresis -30
+KPX Aacute C -40
+KPX Aacute Cacute -40
+KPX Aacute Ccaron -40
+KPX Aacute Ccedilla -40
+KPX Aacute G -50
+KPX Aacute Gbreve -50
+KPX Aacute Gcommaaccent -50
+KPX Aacute O -40
+KPX Aacute Oacute -40
+KPX Aacute Ocircumflex -40
+KPX Aacute Odieresis -40
+KPX Aacute Ograve -40
+KPX Aacute Ohungarumlaut -40
+KPX Aacute Omacron -40
+KPX Aacute Oslash -40
+KPX Aacute Otilde -40
+KPX Aacute Q -40
+KPX Aacute T -90
+KPX Aacute Tcaron -90
+KPX Aacute Tcommaaccent -90
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -80
+KPX Aacute W -60
+KPX Aacute Y -110
+KPX Aacute Yacute -110
+KPX Aacute Ydieresis -110
+KPX Aacute u -30
+KPX Aacute uacute -30
+KPX Aacute ucircumflex -30
+KPX Aacute udieresis -30
+KPX Aacute ugrave -30
+KPX Aacute uhungarumlaut -30
+KPX Aacute umacron -30
+KPX Aacute uogonek -30
+KPX Aacute uring -30
+KPX Aacute v -40
+KPX Aacute w -30
+KPX Aacute y -30
+KPX Aacute yacute -30
+KPX Aacute ydieresis -30
+KPX Abreve C -40
+KPX Abreve Cacute -40
+KPX Abreve Ccaron -40
+KPX Abreve Ccedilla -40
+KPX Abreve G -50
+KPX Abreve Gbreve -50
+KPX Abreve Gcommaaccent -50
+KPX Abreve O -40
+KPX Abreve Oacute -40
+KPX Abreve Ocircumflex -40
+KPX Abreve Odieresis -40
+KPX Abreve Ograve -40
+KPX Abreve Ohungarumlaut -40
+KPX Abreve Omacron -40
+KPX Abreve Oslash -40
+KPX Abreve Otilde -40
+KPX Abreve Q -40
+KPX Abreve T -90
+KPX Abreve Tcaron -90
+KPX Abreve Tcommaaccent -90
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -80
+KPX Abreve W -60
+KPX Abreve Y -110
+KPX Abreve Yacute -110
+KPX Abreve Ydieresis -110
+KPX Abreve u -30
+KPX Abreve uacute -30
+KPX Abreve ucircumflex -30
+KPX Abreve udieresis -30
+KPX Abreve ugrave -30
+KPX Abreve uhungarumlaut -30
+KPX Abreve umacron -30
+KPX Abreve uogonek -30
+KPX Abreve uring -30
+KPX Abreve v -40
+KPX Abreve w -30
+KPX Abreve y -30
+KPX Abreve yacute -30
+KPX Abreve ydieresis -30
+KPX Acircumflex C -40
+KPX Acircumflex Cacute -40
+KPX Acircumflex Ccaron -40
+KPX Acircumflex Ccedilla -40
+KPX Acircumflex G -50
+KPX Acircumflex Gbreve -50
+KPX Acircumflex Gcommaaccent -50
+KPX Acircumflex O -40
+KPX Acircumflex Oacute -40
+KPX Acircumflex Ocircumflex -40
+KPX Acircumflex Odieresis -40
+KPX Acircumflex Ograve -40
+KPX Acircumflex Ohungarumlaut -40
+KPX Acircumflex Omacron -40
+KPX Acircumflex Oslash -40
+KPX Acircumflex Otilde -40
+KPX Acircumflex Q -40
+KPX Acircumflex T -90
+KPX Acircumflex Tcaron -90
+KPX Acircumflex Tcommaaccent -90
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -80
+KPX Acircumflex W -60
+KPX Acircumflex Y -110
+KPX Acircumflex Yacute -110
+KPX Acircumflex Ydieresis -110
+KPX Acircumflex u -30
+KPX Acircumflex uacute -30
+KPX Acircumflex ucircumflex -30
+KPX Acircumflex udieresis -30
+KPX Acircumflex ugrave -30
+KPX Acircumflex uhungarumlaut -30
+KPX Acircumflex umacron -30
+KPX Acircumflex uogonek -30
+KPX Acircumflex uring -30
+KPX Acircumflex v -40
+KPX Acircumflex w -30
+KPX Acircumflex y -30
+KPX Acircumflex yacute -30
+KPX Acircumflex ydieresis -30
+KPX Adieresis C -40
+KPX Adieresis Cacute -40
+KPX Adieresis Ccaron -40
+KPX Adieresis Ccedilla -40
+KPX Adieresis G -50
+KPX Adieresis Gbreve -50
+KPX Adieresis Gcommaaccent -50
+KPX Adieresis O -40
+KPX Adieresis Oacute -40
+KPX Adieresis Ocircumflex -40
+KPX Adieresis Odieresis -40
+KPX Adieresis Ograve -40
+KPX Adieresis Ohungarumlaut -40
+KPX Adieresis Omacron -40
+KPX Adieresis Oslash -40
+KPX Adieresis Otilde -40
+KPX Adieresis Q -40
+KPX Adieresis T -90
+KPX Adieresis Tcaron -90
+KPX Adieresis Tcommaaccent -90
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -80
+KPX Adieresis W -60
+KPX Adieresis Y -110
+KPX Adieresis Yacute -110
+KPX Adieresis Ydieresis -110
+KPX Adieresis u -30
+KPX Adieresis uacute -30
+KPX Adieresis ucircumflex -30
+KPX Adieresis udieresis -30
+KPX Adieresis ugrave -30
+KPX Adieresis uhungarumlaut -30
+KPX Adieresis umacron -30
+KPX Adieresis uogonek -30
+KPX Adieresis uring -30
+KPX Adieresis v -40
+KPX Adieresis w -30
+KPX Adieresis y -30
+KPX Adieresis yacute -30
+KPX Adieresis ydieresis -30
+KPX Agrave C -40
+KPX Agrave Cacute -40
+KPX Agrave Ccaron -40
+KPX Agrave Ccedilla -40
+KPX Agrave G -50
+KPX Agrave Gbreve -50
+KPX Agrave Gcommaaccent -50
+KPX Agrave O -40
+KPX Agrave Oacute -40
+KPX Agrave Ocircumflex -40
+KPX Agrave Odieresis -40
+KPX Agrave Ograve -40
+KPX Agrave Ohungarumlaut -40
+KPX Agrave Omacron -40
+KPX Agrave Oslash -40
+KPX Agrave Otilde -40
+KPX Agrave Q -40
+KPX Agrave T -90
+KPX Agrave Tcaron -90
+KPX Agrave Tcommaaccent -90
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -80
+KPX Agrave W -60
+KPX Agrave Y -110
+KPX Agrave Yacute -110
+KPX Agrave Ydieresis -110
+KPX Agrave u -30
+KPX Agrave uacute -30
+KPX Agrave ucircumflex -30
+KPX Agrave udieresis -30
+KPX Agrave ugrave -30
+KPX Agrave uhungarumlaut -30
+KPX Agrave umacron -30
+KPX Agrave uogonek -30
+KPX Agrave uring -30
+KPX Agrave v -40
+KPX Agrave w -30
+KPX Agrave y -30
+KPX Agrave yacute -30
+KPX Agrave ydieresis -30
+KPX Amacron C -40
+KPX Amacron Cacute -40
+KPX Amacron Ccaron -40
+KPX Amacron Ccedilla -40
+KPX Amacron G -50
+KPX Amacron Gbreve -50
+KPX Amacron Gcommaaccent -50
+KPX Amacron O -40
+KPX Amacron Oacute -40
+KPX Amacron Ocircumflex -40
+KPX Amacron Odieresis -40
+KPX Amacron Ograve -40
+KPX Amacron Ohungarumlaut -40
+KPX Amacron Omacron -40
+KPX Amacron Oslash -40
+KPX Amacron Otilde -40
+KPX Amacron Q -40
+KPX Amacron T -90
+KPX Amacron Tcaron -90
+KPX Amacron Tcommaaccent -90
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -80
+KPX Amacron W -60
+KPX Amacron Y -110
+KPX Amacron Yacute -110
+KPX Amacron Ydieresis -110
+KPX Amacron u -30
+KPX Amacron uacute -30
+KPX Amacron ucircumflex -30
+KPX Amacron udieresis -30
+KPX Amacron ugrave -30
+KPX Amacron uhungarumlaut -30
+KPX Amacron umacron -30
+KPX Amacron uogonek -30
+KPX Amacron uring -30
+KPX Amacron v -40
+KPX Amacron w -30
+KPX Amacron y -30
+KPX Amacron yacute -30
+KPX Amacron ydieresis -30
+KPX Aogonek C -40
+KPX Aogonek Cacute -40
+KPX Aogonek Ccaron -40
+KPX Aogonek Ccedilla -40
+KPX Aogonek G -50
+KPX Aogonek Gbreve -50
+KPX Aogonek Gcommaaccent -50
+KPX Aogonek O -40
+KPX Aogonek Oacute -40
+KPX Aogonek Ocircumflex -40
+KPX Aogonek Odieresis -40
+KPX Aogonek Ograve -40
+KPX Aogonek Ohungarumlaut -40
+KPX Aogonek Omacron -40
+KPX Aogonek Oslash -40
+KPX Aogonek Otilde -40
+KPX Aogonek Q -40
+KPX Aogonek T -90
+KPX Aogonek Tcaron -90
+KPX Aogonek Tcommaaccent -90
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -80
+KPX Aogonek W -60
+KPX Aogonek Y -110
+KPX Aogonek Yacute -110
+KPX Aogonek Ydieresis -110
+KPX Aogonek u -30
+KPX Aogonek uacute -30
+KPX Aogonek ucircumflex -30
+KPX Aogonek udieresis -30
+KPX Aogonek ugrave -30
+KPX Aogonek uhungarumlaut -30
+KPX Aogonek umacron -30
+KPX Aogonek uogonek -30
+KPX Aogonek uring -30
+KPX Aogonek v -40
+KPX Aogonek w -30
+KPX Aogonek y -30
+KPX Aogonek yacute -30
+KPX Aogonek ydieresis -30
+KPX Aring C -40
+KPX Aring Cacute -40
+KPX Aring Ccaron -40
+KPX Aring Ccedilla -40
+KPX Aring G -50
+KPX Aring Gbreve -50
+KPX Aring Gcommaaccent -50
+KPX Aring O -40
+KPX Aring Oacute -40
+KPX Aring Ocircumflex -40
+KPX Aring Odieresis -40
+KPX Aring Ograve -40
+KPX Aring Ohungarumlaut -40
+KPX Aring Omacron -40
+KPX Aring Oslash -40
+KPX Aring Otilde -40
+KPX Aring Q -40
+KPX Aring T -90
+KPX Aring Tcaron -90
+KPX Aring Tcommaaccent -90
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -80
+KPX Aring W -60
+KPX Aring Y -110
+KPX Aring Yacute -110
+KPX Aring Ydieresis -110
+KPX Aring u -30
+KPX Aring uacute -30
+KPX Aring ucircumflex -30
+KPX Aring udieresis -30
+KPX Aring ugrave -30
+KPX Aring uhungarumlaut -30
+KPX Aring umacron -30
+KPX Aring uogonek -30
+KPX Aring uring -30
+KPX Aring v -40
+KPX Aring w -30
+KPX Aring y -30
+KPX Aring yacute -30
+KPX Aring ydieresis -30
+KPX Atilde C -40
+KPX Atilde Cacute -40
+KPX Atilde Ccaron -40
+KPX Atilde Ccedilla -40
+KPX Atilde G -50
+KPX Atilde Gbreve -50
+KPX Atilde Gcommaaccent -50
+KPX Atilde O -40
+KPX Atilde Oacute -40
+KPX Atilde Ocircumflex -40
+KPX Atilde Odieresis -40
+KPX Atilde Ograve -40
+KPX Atilde Ohungarumlaut -40
+KPX Atilde Omacron -40
+KPX Atilde Oslash -40
+KPX Atilde Otilde -40
+KPX Atilde Q -40
+KPX Atilde T -90
+KPX Atilde Tcaron -90
+KPX Atilde Tcommaaccent -90
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -80
+KPX Atilde W -60
+KPX Atilde Y -110
+KPX Atilde Yacute -110
+KPX Atilde Ydieresis -110
+KPX Atilde u -30
+KPX Atilde uacute -30
+KPX Atilde ucircumflex -30
+KPX Atilde udieresis -30
+KPX Atilde ugrave -30
+KPX Atilde uhungarumlaut -30
+KPX Atilde umacron -30
+KPX Atilde uogonek -30
+KPX Atilde uring -30
+KPX Atilde v -40
+KPX Atilde w -30
+KPX Atilde y -30
+KPX Atilde yacute -30
+KPX Atilde ydieresis -30
+KPX B A -30
+KPX B Aacute -30
+KPX B Abreve -30
+KPX B Acircumflex -30
+KPX B Adieresis -30
+KPX B Agrave -30
+KPX B Amacron -30
+KPX B Aogonek -30
+KPX B Aring -30
+KPX B Atilde -30
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -40
+KPX D Aacute -40
+KPX D Abreve -40
+KPX D Acircumflex -40
+KPX D Adieresis -40
+KPX D Agrave -40
+KPX D Amacron -40
+KPX D Aogonek -40
+KPX D Aring -40
+KPX D Atilde -40
+KPX D V -40
+KPX D W -40
+KPX D Y -70
+KPX D Yacute -70
+KPX D Ydieresis -70
+KPX D comma -30
+KPX D period -30
+KPX Dcaron A -40
+KPX Dcaron Aacute -40
+KPX Dcaron Abreve -40
+KPX Dcaron Acircumflex -40
+KPX Dcaron Adieresis -40
+KPX Dcaron Agrave -40
+KPX Dcaron Amacron -40
+KPX Dcaron Aogonek -40
+KPX Dcaron Aring -40
+KPX Dcaron Atilde -40
+KPX Dcaron V -40
+KPX Dcaron W -40
+KPX Dcaron Y -70
+KPX Dcaron Yacute -70
+KPX Dcaron Ydieresis -70
+KPX Dcaron comma -30
+KPX Dcaron period -30
+KPX Dcroat A -40
+KPX Dcroat Aacute -40
+KPX Dcroat Abreve -40
+KPX Dcroat Acircumflex -40
+KPX Dcroat Adieresis -40
+KPX Dcroat Agrave -40
+KPX Dcroat Amacron -40
+KPX Dcroat Aogonek -40
+KPX Dcroat Aring -40
+KPX Dcroat Atilde -40
+KPX Dcroat V -40
+KPX Dcroat W -40
+KPX Dcroat Y -70
+KPX Dcroat Yacute -70
+KPX Dcroat Ydieresis -70
+KPX Dcroat comma -30
+KPX Dcroat period -30
+KPX F A -80
+KPX F Aacute -80
+KPX F Abreve -80
+KPX F Acircumflex -80
+KPX F Adieresis -80
+KPX F Agrave -80
+KPX F Amacron -80
+KPX F Aogonek -80
+KPX F Aring -80
+KPX F Atilde -80
+KPX F a -20
+KPX F aacute -20
+KPX F abreve -20
+KPX F acircumflex -20
+KPX F adieresis -20
+KPX F agrave -20
+KPX F amacron -20
+KPX F aogonek -20
+KPX F aring -20
+KPX F atilde -20
+KPX F comma -100
+KPX F period -100
+KPX J A -20
+KPX J Aacute -20
+KPX J Abreve -20
+KPX J Acircumflex -20
+KPX J Adieresis -20
+KPX J Agrave -20
+KPX J Amacron -20
+KPX J Aogonek -20
+KPX J Aring -20
+KPX J Atilde -20
+KPX J comma -20
+KPX J period -20
+KPX J u -20
+KPX J uacute -20
+KPX J ucircumflex -20
+KPX J udieresis -20
+KPX J ugrave -20
+KPX J uhungarumlaut -20
+KPX J umacron -20
+KPX J uogonek -20
+KPX J uring -20
+KPX K O -30
+KPX K Oacute -30
+KPX K Ocircumflex -30
+KPX K Odieresis -30
+KPX K Ograve -30
+KPX K Ohungarumlaut -30
+KPX K Omacron -30
+KPX K Oslash -30
+KPX K Otilde -30
+KPX K e -15
+KPX K eacute -15
+KPX K ecaron -15
+KPX K ecircumflex -15
+KPX K edieresis -15
+KPX K edotaccent -15
+KPX K egrave -15
+KPX K emacron -15
+KPX K eogonek -15
+KPX K o -35
+KPX K oacute -35
+KPX K ocircumflex -35
+KPX K odieresis -35
+KPX K ograve -35
+KPX K ohungarumlaut -35
+KPX K omacron -35
+KPX K oslash -35
+KPX K otilde -35
+KPX K u -30
+KPX K uacute -30
+KPX K ucircumflex -30
+KPX K udieresis -30
+KPX K ugrave -30
+KPX K uhungarumlaut -30
+KPX K umacron -30
+KPX K uogonek -30
+KPX K uring -30
+KPX K y -40
+KPX K yacute -40
+KPX K ydieresis -40
+KPX Kcommaaccent O -30
+KPX Kcommaaccent Oacute -30
+KPX Kcommaaccent Ocircumflex -30
+KPX Kcommaaccent Odieresis -30
+KPX Kcommaaccent Ograve -30
+KPX Kcommaaccent Ohungarumlaut -30
+KPX Kcommaaccent Omacron -30
+KPX Kcommaaccent Oslash -30
+KPX Kcommaaccent Otilde -30
+KPX Kcommaaccent e -15
+KPX Kcommaaccent eacute -15
+KPX Kcommaaccent ecaron -15
+KPX Kcommaaccent ecircumflex -15
+KPX Kcommaaccent edieresis -15
+KPX Kcommaaccent edotaccent -15
+KPX Kcommaaccent egrave -15
+KPX Kcommaaccent emacron -15
+KPX Kcommaaccent eogonek -15
+KPX Kcommaaccent o -35
+KPX Kcommaaccent oacute -35
+KPX Kcommaaccent ocircumflex -35
+KPX Kcommaaccent odieresis -35
+KPX Kcommaaccent ograve -35
+KPX Kcommaaccent ohungarumlaut -35
+KPX Kcommaaccent omacron -35
+KPX Kcommaaccent oslash -35
+KPX Kcommaaccent otilde -35
+KPX Kcommaaccent u -30
+KPX Kcommaaccent uacute -30
+KPX Kcommaaccent ucircumflex -30
+KPX Kcommaaccent udieresis -30
+KPX Kcommaaccent ugrave -30
+KPX Kcommaaccent uhungarumlaut -30
+KPX Kcommaaccent umacron -30
+KPX Kcommaaccent uogonek -30
+KPX Kcommaaccent uring -30
+KPX Kcommaaccent y -40
+KPX Kcommaaccent yacute -40
+KPX Kcommaaccent ydieresis -40
+KPX L T -90
+KPX L Tcaron -90
+KPX L Tcommaaccent -90
+KPX L V -110
+KPX L W -80
+KPX L Y -120
+KPX L Yacute -120
+KPX L Ydieresis -120
+KPX L quotedblright -140
+KPX L quoteright -140
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -90
+KPX Lacute Tcaron -90
+KPX Lacute Tcommaaccent -90
+KPX Lacute V -110
+KPX Lacute W -80
+KPX Lacute Y -120
+KPX Lacute Yacute -120
+KPX Lacute Ydieresis -120
+KPX Lacute quotedblright -140
+KPX Lacute quoteright -140
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcommaaccent T -90
+KPX Lcommaaccent Tcaron -90
+KPX Lcommaaccent Tcommaaccent -90
+KPX Lcommaaccent V -110
+KPX Lcommaaccent W -80
+KPX Lcommaaccent Y -120
+KPX Lcommaaccent Yacute -120
+KPX Lcommaaccent Ydieresis -120
+KPX Lcommaaccent quotedblright -140
+KPX Lcommaaccent quoteright -140
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -90
+KPX Lslash Tcaron -90
+KPX Lslash Tcommaaccent -90
+KPX Lslash V -110
+KPX Lslash W -80
+KPX Lslash Y -120
+KPX Lslash Yacute -120
+KPX Lslash Ydieresis -120
+KPX Lslash quotedblright -140
+KPX Lslash quoteright -140
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX O A -50
+KPX O Aacute -50
+KPX O Abreve -50
+KPX O Acircumflex -50
+KPX O Adieresis -50
+KPX O Agrave -50
+KPX O Amacron -50
+KPX O Aogonek -50
+KPX O Aring -50
+KPX O Atilde -50
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -50
+KPX O X -50
+KPX O Y -70
+KPX O Yacute -70
+KPX O Ydieresis -70
+KPX O comma -40
+KPX O period -40
+KPX Oacute A -50
+KPX Oacute Aacute -50
+KPX Oacute Abreve -50
+KPX Oacute Acircumflex -50
+KPX Oacute Adieresis -50
+KPX Oacute Agrave -50
+KPX Oacute Amacron -50
+KPX Oacute Aogonek -50
+KPX Oacute Aring -50
+KPX Oacute Atilde -50
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -50
+KPX Oacute X -50
+KPX Oacute Y -70
+KPX Oacute Yacute -70
+KPX Oacute Ydieresis -70
+KPX Oacute comma -40
+KPX Oacute period -40
+KPX Ocircumflex A -50
+KPX Ocircumflex Aacute -50
+KPX Ocircumflex Abreve -50
+KPX Ocircumflex Acircumflex -50
+KPX Ocircumflex Adieresis -50
+KPX Ocircumflex Agrave -50
+KPX Ocircumflex Amacron -50
+KPX Ocircumflex Aogonek -50
+KPX Ocircumflex Aring -50
+KPX Ocircumflex Atilde -50
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -50
+KPX Ocircumflex X -50
+KPX Ocircumflex Y -70
+KPX Ocircumflex Yacute -70
+KPX Ocircumflex Ydieresis -70
+KPX Ocircumflex comma -40
+KPX Ocircumflex period -40
+KPX Odieresis A -50
+KPX Odieresis Aacute -50
+KPX Odieresis Abreve -50
+KPX Odieresis Acircumflex -50
+KPX Odieresis Adieresis -50
+KPX Odieresis Agrave -50
+KPX Odieresis Amacron -50
+KPX Odieresis Aogonek -50
+KPX Odieresis Aring -50
+KPX Odieresis Atilde -50
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -50
+KPX Odieresis X -50
+KPX Odieresis Y -70
+KPX Odieresis Yacute -70
+KPX Odieresis Ydieresis -70
+KPX Odieresis comma -40
+KPX Odieresis period -40
+KPX Ograve A -50
+KPX Ograve Aacute -50
+KPX Ograve Abreve -50
+KPX Ograve Acircumflex -50
+KPX Ograve Adieresis -50
+KPX Ograve Agrave -50
+KPX Ograve Amacron -50
+KPX Ograve Aogonek -50
+KPX Ograve Aring -50
+KPX Ograve Atilde -50
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -50
+KPX Ograve X -50
+KPX Ograve Y -70
+KPX Ograve Yacute -70
+KPX Ograve Ydieresis -70
+KPX Ograve comma -40
+KPX Ograve period -40
+KPX Ohungarumlaut A -50
+KPX Ohungarumlaut Aacute -50
+KPX Ohungarumlaut Abreve -50
+KPX Ohungarumlaut Acircumflex -50
+KPX Ohungarumlaut Adieresis -50
+KPX Ohungarumlaut Agrave -50
+KPX Ohungarumlaut Amacron -50
+KPX Ohungarumlaut Aogonek -50
+KPX Ohungarumlaut Aring -50
+KPX Ohungarumlaut Atilde -50
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -50
+KPX Ohungarumlaut X -50
+KPX Ohungarumlaut Y -70
+KPX Ohungarumlaut Yacute -70
+KPX Ohungarumlaut Ydieresis -70
+KPX Ohungarumlaut comma -40
+KPX Ohungarumlaut period -40
+KPX Omacron A -50
+KPX Omacron Aacute -50
+KPX Omacron Abreve -50
+KPX Omacron Acircumflex -50
+KPX Omacron Adieresis -50
+KPX Omacron Agrave -50
+KPX Omacron Amacron -50
+KPX Omacron Aogonek -50
+KPX Omacron Aring -50
+KPX Omacron Atilde -50
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -50
+KPX Omacron X -50
+KPX Omacron Y -70
+KPX Omacron Yacute -70
+KPX Omacron Ydieresis -70
+KPX Omacron comma -40
+KPX Omacron period -40
+KPX Oslash A -50
+KPX Oslash Aacute -50
+KPX Oslash Abreve -50
+KPX Oslash Acircumflex -50
+KPX Oslash Adieresis -50
+KPX Oslash Agrave -50
+KPX Oslash Amacron -50
+KPX Oslash Aogonek -50
+KPX Oslash Aring -50
+KPX Oslash Atilde -50
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -50
+KPX Oslash X -50
+KPX Oslash Y -70
+KPX Oslash Yacute -70
+KPX Oslash Ydieresis -70
+KPX Oslash comma -40
+KPX Oslash period -40
+KPX Otilde A -50
+KPX Otilde Aacute -50
+KPX Otilde Abreve -50
+KPX Otilde Acircumflex -50
+KPX Otilde Adieresis -50
+KPX Otilde Agrave -50
+KPX Otilde Amacron -50
+KPX Otilde Aogonek -50
+KPX Otilde Aring -50
+KPX Otilde Atilde -50
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -50
+KPX Otilde X -50
+KPX Otilde Y -70
+KPX Otilde Yacute -70
+KPX Otilde Ydieresis -70
+KPX Otilde comma -40
+KPX Otilde period -40
+KPX P A -100
+KPX P Aacute -100
+KPX P Abreve -100
+KPX P Acircumflex -100
+KPX P Adieresis -100
+KPX P Agrave -100
+KPX P Amacron -100
+KPX P Aogonek -100
+KPX P Aring -100
+KPX P Atilde -100
+KPX P a -30
+KPX P aacute -30
+KPX P abreve -30
+KPX P acircumflex -30
+KPX P adieresis -30
+KPX P agrave -30
+KPX P amacron -30
+KPX P aogonek -30
+KPX P aring -30
+KPX P atilde -30
+KPX P comma -120
+KPX P e -30
+KPX P eacute -30
+KPX P ecaron -30
+KPX P ecircumflex -30
+KPX P edieresis -30
+KPX P edotaccent -30
+KPX P egrave -30
+KPX P emacron -30
+KPX P eogonek -30
+KPX P o -40
+KPX P oacute -40
+KPX P ocircumflex -40
+KPX P odieresis -40
+KPX P ograve -40
+KPX P ohungarumlaut -40
+KPX P omacron -40
+KPX P oslash -40
+KPX P otilde -40
+KPX P period -120
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX Q comma 20
+KPX Q period 20
+KPX R O -20
+KPX R Oacute -20
+KPX R Ocircumflex -20
+KPX R Odieresis -20
+KPX R Ograve -20
+KPX R Ohungarumlaut -20
+KPX R Omacron -20
+KPX R Oslash -20
+KPX R Otilde -20
+KPX R T -20
+KPX R Tcaron -20
+KPX R Tcommaaccent -20
+KPX R U -20
+KPX R Uacute -20
+KPX R Ucircumflex -20
+KPX R Udieresis -20
+KPX R Ugrave -20
+KPX R Uhungarumlaut -20
+KPX R Umacron -20
+KPX R Uogonek -20
+KPX R Uring -20
+KPX R V -50
+KPX R W -40
+KPX R Y -50
+KPX R Yacute -50
+KPX R Ydieresis -50
+KPX Racute O -20
+KPX Racute Oacute -20
+KPX Racute Ocircumflex -20
+KPX Racute Odieresis -20
+KPX Racute Ograve -20
+KPX Racute Ohungarumlaut -20
+KPX Racute Omacron -20
+KPX Racute Oslash -20
+KPX Racute Otilde -20
+KPX Racute T -20
+KPX Racute Tcaron -20
+KPX Racute Tcommaaccent -20
+KPX Racute U -20
+KPX Racute Uacute -20
+KPX Racute Ucircumflex -20
+KPX Racute Udieresis -20
+KPX Racute Ugrave -20
+KPX Racute Uhungarumlaut -20
+KPX Racute Umacron -20
+KPX Racute Uogonek -20
+KPX Racute Uring -20
+KPX Racute V -50
+KPX Racute W -40
+KPX Racute Y -50
+KPX Racute Yacute -50
+KPX Racute Ydieresis -50
+KPX Rcaron O -20
+KPX Rcaron Oacute -20
+KPX Rcaron Ocircumflex -20
+KPX Rcaron Odieresis -20
+KPX Rcaron Ograve -20
+KPX Rcaron Ohungarumlaut -20
+KPX Rcaron Omacron -20
+KPX Rcaron Oslash -20
+KPX Rcaron Otilde -20
+KPX Rcaron T -20
+KPX Rcaron Tcaron -20
+KPX Rcaron Tcommaaccent -20
+KPX Rcaron U -20
+KPX Rcaron Uacute -20
+KPX Rcaron Ucircumflex -20
+KPX Rcaron Udieresis -20
+KPX Rcaron Ugrave -20
+KPX Rcaron Uhungarumlaut -20
+KPX Rcaron Umacron -20
+KPX Rcaron Uogonek -20
+KPX Rcaron Uring -20
+KPX Rcaron V -50
+KPX Rcaron W -40
+KPX Rcaron Y -50
+KPX Rcaron Yacute -50
+KPX Rcaron Ydieresis -50
+KPX Rcommaaccent O -20
+KPX Rcommaaccent Oacute -20
+KPX Rcommaaccent Ocircumflex -20
+KPX Rcommaaccent Odieresis -20
+KPX Rcommaaccent Ograve -20
+KPX Rcommaaccent Ohungarumlaut -20
+KPX Rcommaaccent Omacron -20
+KPX Rcommaaccent Oslash -20
+KPX Rcommaaccent Otilde -20
+KPX Rcommaaccent T -20
+KPX Rcommaaccent Tcaron -20
+KPX Rcommaaccent Tcommaaccent -20
+KPX Rcommaaccent U -20
+KPX Rcommaaccent Uacute -20
+KPX Rcommaaccent Ucircumflex -20
+KPX Rcommaaccent Udieresis -20
+KPX Rcommaaccent Ugrave -20
+KPX Rcommaaccent Uhungarumlaut -20
+KPX Rcommaaccent Umacron -20
+KPX Rcommaaccent Uogonek -20
+KPX Rcommaaccent Uring -20
+KPX Rcommaaccent V -50
+KPX Rcommaaccent W -40
+KPX Rcommaaccent Y -50
+KPX Rcommaaccent Yacute -50
+KPX Rcommaaccent Ydieresis -50
+KPX T A -90
+KPX T Aacute -90
+KPX T Abreve -90
+KPX T Acircumflex -90
+KPX T Adieresis -90
+KPX T Agrave -90
+KPX T Amacron -90
+KPX T Aogonek -90
+KPX T Aring -90
+KPX T Atilde -90
+KPX T O -40
+KPX T Oacute -40
+KPX T Ocircumflex -40
+KPX T Odieresis -40
+KPX T Ograve -40
+KPX T Ohungarumlaut -40
+KPX T Omacron -40
+KPX T Oslash -40
+KPX T Otilde -40
+KPX T a -80
+KPX T aacute -80
+KPX T abreve -80
+KPX T acircumflex -80
+KPX T adieresis -80
+KPX T agrave -80
+KPX T amacron -80
+KPX T aogonek -80
+KPX T aring -80
+KPX T atilde -80
+KPX T colon -40
+KPX T comma -80
+KPX T e -60
+KPX T eacute -60
+KPX T ecaron -60
+KPX T ecircumflex -60
+KPX T edieresis -60
+KPX T edotaccent -60
+KPX T egrave -60
+KPX T emacron -60
+KPX T eogonek -60
+KPX T hyphen -120
+KPX T o -80
+KPX T oacute -80
+KPX T ocircumflex -80
+KPX T odieresis -80
+KPX T ograve -80
+KPX T ohungarumlaut -80
+KPX T omacron -80
+KPX T oslash -80
+KPX T otilde -80
+KPX T period -80
+KPX T r -80
+KPX T racute -80
+KPX T rcommaaccent -80
+KPX T semicolon -40
+KPX T u -90
+KPX T uacute -90
+KPX T ucircumflex -90
+KPX T udieresis -90
+KPX T ugrave -90
+KPX T uhungarumlaut -90
+KPX T umacron -90
+KPX T uogonek -90
+KPX T uring -90
+KPX T w -60
+KPX T y -60
+KPX T yacute -60
+KPX T ydieresis -60
+KPX Tcaron A -90
+KPX Tcaron Aacute -90
+KPX Tcaron Abreve -90
+KPX Tcaron Acircumflex -90
+KPX Tcaron Adieresis -90
+KPX Tcaron Agrave -90
+KPX Tcaron Amacron -90
+KPX Tcaron Aogonek -90
+KPX Tcaron Aring -90
+KPX Tcaron Atilde -90
+KPX Tcaron O -40
+KPX Tcaron Oacute -40
+KPX Tcaron Ocircumflex -40
+KPX Tcaron Odieresis -40
+KPX Tcaron Ograve -40
+KPX Tcaron Ohungarumlaut -40
+KPX Tcaron Omacron -40
+KPX Tcaron Oslash -40
+KPX Tcaron Otilde -40
+KPX Tcaron a -80
+KPX Tcaron aacute -80
+KPX Tcaron abreve -80
+KPX Tcaron acircumflex -80
+KPX Tcaron adieresis -80
+KPX Tcaron agrave -80
+KPX Tcaron amacron -80
+KPX Tcaron aogonek -80
+KPX Tcaron aring -80
+KPX Tcaron atilde -80
+KPX Tcaron colon -40
+KPX Tcaron comma -80
+KPX Tcaron e -60
+KPX Tcaron eacute -60
+KPX Tcaron ecaron -60
+KPX Tcaron ecircumflex -60
+KPX Tcaron edieresis -60
+KPX Tcaron edotaccent -60
+KPX Tcaron egrave -60
+KPX Tcaron emacron -60
+KPX Tcaron eogonek -60
+KPX Tcaron hyphen -120
+KPX Tcaron o -80
+KPX Tcaron oacute -80
+KPX Tcaron ocircumflex -80
+KPX Tcaron odieresis -80
+KPX Tcaron ograve -80
+KPX Tcaron ohungarumlaut -80
+KPX Tcaron omacron -80
+KPX Tcaron oslash -80
+KPX Tcaron otilde -80
+KPX Tcaron period -80
+KPX Tcaron r -80
+KPX Tcaron racute -80
+KPX Tcaron rcommaaccent -80
+KPX Tcaron semicolon -40
+KPX Tcaron u -90
+KPX Tcaron uacute -90
+KPX Tcaron ucircumflex -90
+KPX Tcaron udieresis -90
+KPX Tcaron ugrave -90
+KPX Tcaron uhungarumlaut -90
+KPX Tcaron umacron -90
+KPX Tcaron uogonek -90
+KPX Tcaron uring -90
+KPX Tcaron w -60
+KPX Tcaron y -60
+KPX Tcaron yacute -60
+KPX Tcaron ydieresis -60
+KPX Tcommaaccent A -90
+KPX Tcommaaccent Aacute -90
+KPX Tcommaaccent Abreve -90
+KPX Tcommaaccent Acircumflex -90
+KPX Tcommaaccent Adieresis -90
+KPX Tcommaaccent Agrave -90
+KPX Tcommaaccent Amacron -90
+KPX Tcommaaccent Aogonek -90
+KPX Tcommaaccent Aring -90
+KPX Tcommaaccent Atilde -90
+KPX Tcommaaccent O -40
+KPX Tcommaaccent Oacute -40
+KPX Tcommaaccent Ocircumflex -40
+KPX Tcommaaccent Odieresis -40
+KPX Tcommaaccent Ograve -40
+KPX Tcommaaccent Ohungarumlaut -40
+KPX Tcommaaccent Omacron -40
+KPX Tcommaaccent Oslash -40
+KPX Tcommaaccent Otilde -40
+KPX Tcommaaccent a -80
+KPX Tcommaaccent aacute -80
+KPX Tcommaaccent abreve -80
+KPX Tcommaaccent acircumflex -80
+KPX Tcommaaccent adieresis -80
+KPX Tcommaaccent agrave -80
+KPX Tcommaaccent amacron -80
+KPX Tcommaaccent aogonek -80
+KPX Tcommaaccent aring -80
+KPX Tcommaaccent atilde -80
+KPX Tcommaaccent colon -40
+KPX Tcommaaccent comma -80
+KPX Tcommaaccent e -60
+KPX Tcommaaccent eacute -60
+KPX Tcommaaccent ecaron -60
+KPX Tcommaaccent ecircumflex -60
+KPX Tcommaaccent edieresis -60
+KPX Tcommaaccent edotaccent -60
+KPX Tcommaaccent egrave -60
+KPX Tcommaaccent emacron -60
+KPX Tcommaaccent eogonek -60
+KPX Tcommaaccent hyphen -120
+KPX Tcommaaccent o -80
+KPX Tcommaaccent oacute -80
+KPX Tcommaaccent ocircumflex -80
+KPX Tcommaaccent odieresis -80
+KPX Tcommaaccent ograve -80
+KPX Tcommaaccent ohungarumlaut -80
+KPX Tcommaaccent omacron -80
+KPX Tcommaaccent oslash -80
+KPX Tcommaaccent otilde -80
+KPX Tcommaaccent period -80
+KPX Tcommaaccent r -80
+KPX Tcommaaccent racute -80
+KPX Tcommaaccent rcommaaccent -80
+KPX Tcommaaccent semicolon -40
+KPX Tcommaaccent u -90
+KPX Tcommaaccent uacute -90
+KPX Tcommaaccent ucircumflex -90
+KPX Tcommaaccent udieresis -90
+KPX Tcommaaccent ugrave -90
+KPX Tcommaaccent uhungarumlaut -90
+KPX Tcommaaccent umacron -90
+KPX Tcommaaccent uogonek -90
+KPX Tcommaaccent uring -90
+KPX Tcommaaccent w -60
+KPX Tcommaaccent y -60
+KPX Tcommaaccent yacute -60
+KPX Tcommaaccent ydieresis -60
+KPX U A -50
+KPX U Aacute -50
+KPX U Abreve -50
+KPX U Acircumflex -50
+KPX U Adieresis -50
+KPX U Agrave -50
+KPX U Amacron -50
+KPX U Aogonek -50
+KPX U Aring -50
+KPX U Atilde -50
+KPX U comma -30
+KPX U period -30
+KPX Uacute A -50
+KPX Uacute Aacute -50
+KPX Uacute Abreve -50
+KPX Uacute Acircumflex -50
+KPX Uacute Adieresis -50
+KPX Uacute Agrave -50
+KPX Uacute Amacron -50
+KPX Uacute Aogonek -50
+KPX Uacute Aring -50
+KPX Uacute Atilde -50
+KPX Uacute comma -30
+KPX Uacute period -30
+KPX Ucircumflex A -50
+KPX Ucircumflex Aacute -50
+KPX Ucircumflex Abreve -50
+KPX Ucircumflex Acircumflex -50
+KPX Ucircumflex Adieresis -50
+KPX Ucircumflex Agrave -50
+KPX Ucircumflex Amacron -50
+KPX Ucircumflex Aogonek -50
+KPX Ucircumflex Aring -50
+KPX Ucircumflex Atilde -50
+KPX Ucircumflex comma -30
+KPX Ucircumflex period -30
+KPX Udieresis A -50
+KPX Udieresis Aacute -50
+KPX Udieresis Abreve -50
+KPX Udieresis Acircumflex -50
+KPX Udieresis Adieresis -50
+KPX Udieresis Agrave -50
+KPX Udieresis Amacron -50
+KPX Udieresis Aogonek -50
+KPX Udieresis Aring -50
+KPX Udieresis Atilde -50
+KPX Udieresis comma -30
+KPX Udieresis period -30
+KPX Ugrave A -50
+KPX Ugrave Aacute -50
+KPX Ugrave Abreve -50
+KPX Ugrave Acircumflex -50
+KPX Ugrave Adieresis -50
+KPX Ugrave Agrave -50
+KPX Ugrave Amacron -50
+KPX Ugrave Aogonek -50
+KPX Ugrave Aring -50
+KPX Ugrave Atilde -50
+KPX Ugrave comma -30
+KPX Ugrave period -30
+KPX Uhungarumlaut A -50
+KPX Uhungarumlaut Aacute -50
+KPX Uhungarumlaut Abreve -50
+KPX Uhungarumlaut Acircumflex -50
+KPX Uhungarumlaut Adieresis -50
+KPX Uhungarumlaut Agrave -50
+KPX Uhungarumlaut Amacron -50
+KPX Uhungarumlaut Aogonek -50
+KPX Uhungarumlaut Aring -50
+KPX Uhungarumlaut Atilde -50
+KPX Uhungarumlaut comma -30
+KPX Uhungarumlaut period -30
+KPX Umacron A -50
+KPX Umacron Aacute -50
+KPX Umacron Abreve -50
+KPX Umacron Acircumflex -50
+KPX Umacron Adieresis -50
+KPX Umacron Agrave -50
+KPX Umacron Amacron -50
+KPX Umacron Aogonek -50
+KPX Umacron Aring -50
+KPX Umacron Atilde -50
+KPX Umacron comma -30
+KPX Umacron period -30
+KPX Uogonek A -50
+KPX Uogonek Aacute -50
+KPX Uogonek Abreve -50
+KPX Uogonek Acircumflex -50
+KPX Uogonek Adieresis -50
+KPX Uogonek Agrave -50
+KPX Uogonek Amacron -50
+KPX Uogonek Aogonek -50
+KPX Uogonek Aring -50
+KPX Uogonek Atilde -50
+KPX Uogonek comma -30
+KPX Uogonek period -30
+KPX Uring A -50
+KPX Uring Aacute -50
+KPX Uring Abreve -50
+KPX Uring Acircumflex -50
+KPX Uring Adieresis -50
+KPX Uring Agrave -50
+KPX Uring Amacron -50
+KPX Uring Aogonek -50
+KPX Uring Aring -50
+KPX Uring Atilde -50
+KPX Uring comma -30
+KPX Uring period -30
+KPX V A -80
+KPX V Aacute -80
+KPX V Abreve -80
+KPX V Acircumflex -80
+KPX V Adieresis -80
+KPX V Agrave -80
+KPX V Amacron -80
+KPX V Aogonek -80
+KPX V Aring -80
+KPX V Atilde -80
+KPX V G -50
+KPX V Gbreve -50
+KPX V Gcommaaccent -50
+KPX V O -50
+KPX V Oacute -50
+KPX V Ocircumflex -50
+KPX V Odieresis -50
+KPX V Ograve -50
+KPX V Ohungarumlaut -50
+KPX V Omacron -50
+KPX V Oslash -50
+KPX V Otilde -50
+KPX V a -60
+KPX V aacute -60
+KPX V abreve -60
+KPX V acircumflex -60
+KPX V adieresis -60
+KPX V agrave -60
+KPX V amacron -60
+KPX V aogonek -60
+KPX V aring -60
+KPX V atilde -60
+KPX V colon -40
+KPX V comma -120
+KPX V e -50
+KPX V eacute -50
+KPX V ecaron -50
+KPX V ecircumflex -50
+KPX V edieresis -50
+KPX V edotaccent -50
+KPX V egrave -50
+KPX V emacron -50
+KPX V eogonek -50
+KPX V hyphen -80
+KPX V o -90
+KPX V oacute -90
+KPX V ocircumflex -90
+KPX V odieresis -90
+KPX V ograve -90
+KPX V ohungarumlaut -90
+KPX V omacron -90
+KPX V oslash -90
+KPX V otilde -90
+KPX V period -120
+KPX V semicolon -40
+KPX V u -60
+KPX V uacute -60
+KPX V ucircumflex -60
+KPX V udieresis -60
+KPX V ugrave -60
+KPX V uhungarumlaut -60
+KPX V umacron -60
+KPX V uogonek -60
+KPX V uring -60
+KPX W A -60
+KPX W Aacute -60
+KPX W Abreve -60
+KPX W Acircumflex -60
+KPX W Adieresis -60
+KPX W Agrave -60
+KPX W Amacron -60
+KPX W Aogonek -60
+KPX W Aring -60
+KPX W Atilde -60
+KPX W O -20
+KPX W Oacute -20
+KPX W Ocircumflex -20
+KPX W Odieresis -20
+KPX W Ograve -20
+KPX W Ohungarumlaut -20
+KPX W Omacron -20
+KPX W Oslash -20
+KPX W Otilde -20
+KPX W a -40
+KPX W aacute -40
+KPX W abreve -40
+KPX W acircumflex -40
+KPX W adieresis -40
+KPX W agrave -40
+KPX W amacron -40
+KPX W aogonek -40
+KPX W aring -40
+KPX W atilde -40
+KPX W colon -10
+KPX W comma -80
+KPX W e -35
+KPX W eacute -35
+KPX W ecaron -35
+KPX W ecircumflex -35
+KPX W edieresis -35
+KPX W edotaccent -35
+KPX W egrave -35
+KPX W emacron -35
+KPX W eogonek -35
+KPX W hyphen -40
+KPX W o -60
+KPX W oacute -60
+KPX W ocircumflex -60
+KPX W odieresis -60
+KPX W ograve -60
+KPX W ohungarumlaut -60
+KPX W omacron -60
+KPX W oslash -60
+KPX W otilde -60
+KPX W period -80
+KPX W semicolon -10
+KPX W u -45
+KPX W uacute -45
+KPX W ucircumflex -45
+KPX W udieresis -45
+KPX W ugrave -45
+KPX W uhungarumlaut -45
+KPX W umacron -45
+KPX W uogonek -45
+KPX W uring -45
+KPX W y -20
+KPX W yacute -20
+KPX W ydieresis -20
+KPX Y A -110
+KPX Y Aacute -110
+KPX Y Abreve -110
+KPX Y Acircumflex -110
+KPX Y Adieresis -110
+KPX Y Agrave -110
+KPX Y Amacron -110
+KPX Y Aogonek -110
+KPX Y Aring -110
+KPX Y Atilde -110
+KPX Y O -70
+KPX Y Oacute -70
+KPX Y Ocircumflex -70
+KPX Y Odieresis -70
+KPX Y Ograve -70
+KPX Y Ohungarumlaut -70
+KPX Y Omacron -70
+KPX Y Oslash -70
+KPX Y Otilde -70
+KPX Y a -90
+KPX Y aacute -90
+KPX Y abreve -90
+KPX Y acircumflex -90
+KPX Y adieresis -90
+KPX Y agrave -90
+KPX Y amacron -90
+KPX Y aogonek -90
+KPX Y aring -90
+KPX Y atilde -90
+KPX Y colon -50
+KPX Y comma -100
+KPX Y e -80
+KPX Y eacute -80
+KPX Y ecaron -80
+KPX Y ecircumflex -80
+KPX Y edieresis -80
+KPX Y edotaccent -80
+KPX Y egrave -80
+KPX Y emacron -80
+KPX Y eogonek -80
+KPX Y o -100
+KPX Y oacute -100
+KPX Y ocircumflex -100
+KPX Y odieresis -100
+KPX Y ograve -100
+KPX Y ohungarumlaut -100
+KPX Y omacron -100
+KPX Y oslash -100
+KPX Y otilde -100
+KPX Y period -100
+KPX Y semicolon -50
+KPX Y u -100
+KPX Y uacute -100
+KPX Y ucircumflex -100
+KPX Y udieresis -100
+KPX Y ugrave -100
+KPX Y uhungarumlaut -100
+KPX Y umacron -100
+KPX Y uogonek -100
+KPX Y uring -100
+KPX Yacute A -110
+KPX Yacute Aacute -110
+KPX Yacute Abreve -110
+KPX Yacute Acircumflex -110
+KPX Yacute Adieresis -110
+KPX Yacute Agrave -110
+KPX Yacute Amacron -110
+KPX Yacute Aogonek -110
+KPX Yacute Aring -110
+KPX Yacute Atilde -110
+KPX Yacute O -70
+KPX Yacute Oacute -70
+KPX Yacute Ocircumflex -70
+KPX Yacute Odieresis -70
+KPX Yacute Ograve -70
+KPX Yacute Ohungarumlaut -70
+KPX Yacute Omacron -70
+KPX Yacute Oslash -70
+KPX Yacute Otilde -70
+KPX Yacute a -90
+KPX Yacute aacute -90
+KPX Yacute abreve -90
+KPX Yacute acircumflex -90
+KPX Yacute adieresis -90
+KPX Yacute agrave -90
+KPX Yacute amacron -90
+KPX Yacute aogonek -90
+KPX Yacute aring -90
+KPX Yacute atilde -90
+KPX Yacute colon -50
+KPX Yacute comma -100
+KPX Yacute e -80
+KPX Yacute eacute -80
+KPX Yacute ecaron -80
+KPX Yacute ecircumflex -80
+KPX Yacute edieresis -80
+KPX Yacute edotaccent -80
+KPX Yacute egrave -80
+KPX Yacute emacron -80
+KPX Yacute eogonek -80
+KPX Yacute o -100
+KPX Yacute oacute -100
+KPX Yacute ocircumflex -100
+KPX Yacute odieresis -100
+KPX Yacute ograve -100
+KPX Yacute ohungarumlaut -100
+KPX Yacute omacron -100
+KPX Yacute oslash -100
+KPX Yacute otilde -100
+KPX Yacute period -100
+KPX Yacute semicolon -50
+KPX Yacute u -100
+KPX Yacute uacute -100
+KPX Yacute ucircumflex -100
+KPX Yacute udieresis -100
+KPX Yacute ugrave -100
+KPX Yacute uhungarumlaut -100
+KPX Yacute umacron -100
+KPX Yacute uogonek -100
+KPX Yacute uring -100
+KPX Ydieresis A -110
+KPX Ydieresis Aacute -110
+KPX Ydieresis Abreve -110
+KPX Ydieresis Acircumflex -110
+KPX Ydieresis Adieresis -110
+KPX Ydieresis Agrave -110
+KPX Ydieresis Amacron -110
+KPX Ydieresis Aogonek -110
+KPX Ydieresis Aring -110
+KPX Ydieresis Atilde -110
+KPX Ydieresis O -70
+KPX Ydieresis Oacute -70
+KPX Ydieresis Ocircumflex -70
+KPX Ydieresis Odieresis -70
+KPX Ydieresis Ograve -70
+KPX Ydieresis Ohungarumlaut -70
+KPX Ydieresis Omacron -70
+KPX Ydieresis Oslash -70
+KPX Ydieresis Otilde -70
+KPX Ydieresis a -90
+KPX Ydieresis aacute -90
+KPX Ydieresis abreve -90
+KPX Ydieresis acircumflex -90
+KPX Ydieresis adieresis -90
+KPX Ydieresis agrave -90
+KPX Ydieresis amacron -90
+KPX Ydieresis aogonek -90
+KPX Ydieresis aring -90
+KPX Ydieresis atilde -90
+KPX Ydieresis colon -50
+KPX Ydieresis comma -100
+KPX Ydieresis e -80
+KPX Ydieresis eacute -80
+KPX Ydieresis ecaron -80
+KPX Ydieresis ecircumflex -80
+KPX Ydieresis edieresis -80
+KPX Ydieresis edotaccent -80
+KPX Ydieresis egrave -80
+KPX Ydieresis emacron -80
+KPX Ydieresis eogonek -80
+KPX Ydieresis o -100
+KPX Ydieresis oacute -100
+KPX Ydieresis ocircumflex -100
+KPX Ydieresis odieresis -100
+KPX Ydieresis ograve -100
+KPX Ydieresis ohungarumlaut -100
+KPX Ydieresis omacron -100
+KPX Ydieresis oslash -100
+KPX Ydieresis otilde -100
+KPX Ydieresis period -100
+KPX Ydieresis semicolon -50
+KPX Ydieresis u -100
+KPX Ydieresis uacute -100
+KPX Ydieresis ucircumflex -100
+KPX Ydieresis udieresis -100
+KPX Ydieresis ugrave -100
+KPX Ydieresis uhungarumlaut -100
+KPX Ydieresis umacron -100
+KPX Ydieresis uogonek -100
+KPX Ydieresis uring -100
+KPX a g -10
+KPX a gbreve -10
+KPX a gcommaaccent -10
+KPX a v -15
+KPX a w -15
+KPX a y -20
+KPX a yacute -20
+KPX a ydieresis -20
+KPX aacute g -10
+KPX aacute gbreve -10
+KPX aacute gcommaaccent -10
+KPX aacute v -15
+KPX aacute w -15
+KPX aacute y -20
+KPX aacute yacute -20
+KPX aacute ydieresis -20
+KPX abreve g -10
+KPX abreve gbreve -10
+KPX abreve gcommaaccent -10
+KPX abreve v -15
+KPX abreve w -15
+KPX abreve y -20
+KPX abreve yacute -20
+KPX abreve ydieresis -20
+KPX acircumflex g -10
+KPX acircumflex gbreve -10
+KPX acircumflex gcommaaccent -10
+KPX acircumflex v -15
+KPX acircumflex w -15
+KPX acircumflex y -20
+KPX acircumflex yacute -20
+KPX acircumflex ydieresis -20
+KPX adieresis g -10
+KPX adieresis gbreve -10
+KPX adieresis gcommaaccent -10
+KPX adieresis v -15
+KPX adieresis w -15
+KPX adieresis y -20
+KPX adieresis yacute -20
+KPX adieresis ydieresis -20
+KPX agrave g -10
+KPX agrave gbreve -10
+KPX agrave gcommaaccent -10
+KPX agrave v -15
+KPX agrave w -15
+KPX agrave y -20
+KPX agrave yacute -20
+KPX agrave ydieresis -20
+KPX amacron g -10
+KPX amacron gbreve -10
+KPX amacron gcommaaccent -10
+KPX amacron v -15
+KPX amacron w -15
+KPX amacron y -20
+KPX amacron yacute -20
+KPX amacron ydieresis -20
+KPX aogonek g -10
+KPX aogonek gbreve -10
+KPX aogonek gcommaaccent -10
+KPX aogonek v -15
+KPX aogonek w -15
+KPX aogonek y -20
+KPX aogonek yacute -20
+KPX aogonek ydieresis -20
+KPX aring g -10
+KPX aring gbreve -10
+KPX aring gcommaaccent -10
+KPX aring v -15
+KPX aring w -15
+KPX aring y -20
+KPX aring yacute -20
+KPX aring ydieresis -20
+KPX atilde g -10
+KPX atilde gbreve -10
+KPX atilde gcommaaccent -10
+KPX atilde v -15
+KPX atilde w -15
+KPX atilde y -20
+KPX atilde yacute -20
+KPX atilde ydieresis -20
+KPX b l -10
+KPX b lacute -10
+KPX b lcommaaccent -10
+KPX b lslash -10
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -20
+KPX b y -20
+KPX b yacute -20
+KPX b ydieresis -20
+KPX c h -10
+KPX c k -20
+KPX c kcommaaccent -20
+KPX c l -20
+KPX c lacute -20
+KPX c lcommaaccent -20
+KPX c lslash -20
+KPX c y -10
+KPX c yacute -10
+KPX c ydieresis -10
+KPX cacute h -10
+KPX cacute k -20
+KPX cacute kcommaaccent -20
+KPX cacute l -20
+KPX cacute lacute -20
+KPX cacute lcommaaccent -20
+KPX cacute lslash -20
+KPX cacute y -10
+KPX cacute yacute -10
+KPX cacute ydieresis -10
+KPX ccaron h -10
+KPX ccaron k -20
+KPX ccaron kcommaaccent -20
+KPX ccaron l -20
+KPX ccaron lacute -20
+KPX ccaron lcommaaccent -20
+KPX ccaron lslash -20
+KPX ccaron y -10
+KPX ccaron yacute -10
+KPX ccaron ydieresis -10
+KPX ccedilla h -10
+KPX ccedilla k -20
+KPX ccedilla kcommaaccent -20
+KPX ccedilla l -20
+KPX ccedilla lacute -20
+KPX ccedilla lcommaaccent -20
+KPX ccedilla lslash -20
+KPX ccedilla y -10
+KPX ccedilla yacute -10
+KPX ccedilla ydieresis -10
+KPX colon space -40
+KPX comma quotedblright -120
+KPX comma quoteright -120
+KPX comma space -40
+KPX d d -10
+KPX d dcroat -10
+KPX d v -15
+KPX d w -15
+KPX d y -15
+KPX d yacute -15
+KPX d ydieresis -15
+KPX dcroat d -10
+KPX dcroat dcroat -10
+KPX dcroat v -15
+KPX dcroat w -15
+KPX dcroat y -15
+KPX dcroat yacute -15
+KPX dcroat ydieresis -15
+KPX e comma 10
+KPX e period 20
+KPX e v -15
+KPX e w -15
+KPX e x -15
+KPX e y -15
+KPX e yacute -15
+KPX e ydieresis -15
+KPX eacute comma 10
+KPX eacute period 20
+KPX eacute v -15
+KPX eacute w -15
+KPX eacute x -15
+KPX eacute y -15
+KPX eacute yacute -15
+KPX eacute ydieresis -15
+KPX ecaron comma 10
+KPX ecaron period 20
+KPX ecaron v -15
+KPX ecaron w -15
+KPX ecaron x -15
+KPX ecaron y -15
+KPX ecaron yacute -15
+KPX ecaron ydieresis -15
+KPX ecircumflex comma 10
+KPX ecircumflex period 20
+KPX ecircumflex v -15
+KPX ecircumflex w -15
+KPX ecircumflex x -15
+KPX ecircumflex y -15
+KPX ecircumflex yacute -15
+KPX ecircumflex ydieresis -15
+KPX edieresis comma 10
+KPX edieresis period 20
+KPX edieresis v -15
+KPX edieresis w -15
+KPX edieresis x -15
+KPX edieresis y -15
+KPX edieresis yacute -15
+KPX edieresis ydieresis -15
+KPX edotaccent comma 10
+KPX edotaccent period 20
+KPX edotaccent v -15
+KPX edotaccent w -15
+KPX edotaccent x -15
+KPX edotaccent y -15
+KPX edotaccent yacute -15
+KPX edotaccent ydieresis -15
+KPX egrave comma 10
+KPX egrave period 20
+KPX egrave v -15
+KPX egrave w -15
+KPX egrave x -15
+KPX egrave y -15
+KPX egrave yacute -15
+KPX egrave ydieresis -15
+KPX emacron comma 10
+KPX emacron period 20
+KPX emacron v -15
+KPX emacron w -15
+KPX emacron x -15
+KPX emacron y -15
+KPX emacron yacute -15
+KPX emacron ydieresis -15
+KPX eogonek comma 10
+KPX eogonek period 20
+KPX eogonek v -15
+KPX eogonek w -15
+KPX eogonek x -15
+KPX eogonek y -15
+KPX eogonek yacute -15
+KPX eogonek ydieresis -15
+KPX f comma -10
+KPX f e -10
+KPX f eacute -10
+KPX f ecaron -10
+KPX f ecircumflex -10
+KPX f edieresis -10
+KPX f edotaccent -10
+KPX f egrave -10
+KPX f emacron -10
+KPX f eogonek -10
+KPX f o -20
+KPX f oacute -20
+KPX f ocircumflex -20
+KPX f odieresis -20
+KPX f ograve -20
+KPX f ohungarumlaut -20
+KPX f omacron -20
+KPX f oslash -20
+KPX f otilde -20
+KPX f period -10
+KPX f quotedblright 30
+KPX f quoteright 30
+KPX g e 10
+KPX g eacute 10
+KPX g ecaron 10
+KPX g ecircumflex 10
+KPX g edieresis 10
+KPX g edotaccent 10
+KPX g egrave 10
+KPX g emacron 10
+KPX g eogonek 10
+KPX g g -10
+KPX g gbreve -10
+KPX g gcommaaccent -10
+KPX gbreve e 10
+KPX gbreve eacute 10
+KPX gbreve ecaron 10
+KPX gbreve ecircumflex 10
+KPX gbreve edieresis 10
+KPX gbreve edotaccent 10
+KPX gbreve egrave 10
+KPX gbreve emacron 10
+KPX gbreve eogonek 10
+KPX gbreve g -10
+KPX gbreve gbreve -10
+KPX gbreve gcommaaccent -10
+KPX gcommaaccent e 10
+KPX gcommaaccent eacute 10
+KPX gcommaaccent ecaron 10
+KPX gcommaaccent ecircumflex 10
+KPX gcommaaccent edieresis 10
+KPX gcommaaccent edotaccent 10
+KPX gcommaaccent egrave 10
+KPX gcommaaccent emacron 10
+KPX gcommaaccent eogonek 10
+KPX gcommaaccent g -10
+KPX gcommaaccent gbreve -10
+KPX gcommaaccent gcommaaccent -10
+KPX h y -20
+KPX h yacute -20
+KPX h ydieresis -20
+KPX k o -15
+KPX k oacute -15
+KPX k ocircumflex -15
+KPX k odieresis -15
+KPX k ograve -15
+KPX k ohungarumlaut -15
+KPX k omacron -15
+KPX k oslash -15
+KPX k otilde -15
+KPX kcommaaccent o -15
+KPX kcommaaccent oacute -15
+KPX kcommaaccent ocircumflex -15
+KPX kcommaaccent odieresis -15
+KPX kcommaaccent ograve -15
+KPX kcommaaccent ohungarumlaut -15
+KPX kcommaaccent omacron -15
+KPX kcommaaccent oslash -15
+KPX kcommaaccent otilde -15
+KPX l w -15
+KPX l y -15
+KPX l yacute -15
+KPX l ydieresis -15
+KPX lacute w -15
+KPX lacute y -15
+KPX lacute yacute -15
+KPX lacute ydieresis -15
+KPX lcommaaccent w -15
+KPX lcommaaccent y -15
+KPX lcommaaccent yacute -15
+KPX lcommaaccent ydieresis -15
+KPX lslash w -15
+KPX lslash y -15
+KPX lslash yacute -15
+KPX lslash ydieresis -15
+KPX m u -20
+KPX m uacute -20
+KPX m ucircumflex -20
+KPX m udieresis -20
+KPX m ugrave -20
+KPX m uhungarumlaut -20
+KPX m umacron -20
+KPX m uogonek -20
+KPX m uring -20
+KPX m y -30
+KPX m yacute -30
+KPX m ydieresis -30
+KPX n u -10
+KPX n uacute -10
+KPX n ucircumflex -10
+KPX n udieresis -10
+KPX n ugrave -10
+KPX n uhungarumlaut -10
+KPX n umacron -10
+KPX n uogonek -10
+KPX n uring -10
+KPX n v -40
+KPX n y -20
+KPX n yacute -20
+KPX n ydieresis -20
+KPX nacute u -10
+KPX nacute uacute -10
+KPX nacute ucircumflex -10
+KPX nacute udieresis -10
+KPX nacute ugrave -10
+KPX nacute uhungarumlaut -10
+KPX nacute umacron -10
+KPX nacute uogonek -10
+KPX nacute uring -10
+KPX nacute v -40
+KPX nacute y -20
+KPX nacute yacute -20
+KPX nacute ydieresis -20
+KPX ncaron u -10
+KPX ncaron uacute -10
+KPX ncaron ucircumflex -10
+KPX ncaron udieresis -10
+KPX ncaron ugrave -10
+KPX ncaron uhungarumlaut -10
+KPX ncaron umacron -10
+KPX ncaron uogonek -10
+KPX ncaron uring -10
+KPX ncaron v -40
+KPX ncaron y -20
+KPX ncaron yacute -20
+KPX ncaron ydieresis -20
+KPX ncommaaccent u -10
+KPX ncommaaccent uacute -10
+KPX ncommaaccent ucircumflex -10
+KPX ncommaaccent udieresis -10
+KPX ncommaaccent ugrave -10
+KPX ncommaaccent uhungarumlaut -10
+KPX ncommaaccent umacron -10
+KPX ncommaaccent uogonek -10
+KPX ncommaaccent uring -10
+KPX ncommaaccent v -40
+KPX ncommaaccent y -20
+KPX ncommaaccent yacute -20
+KPX ncommaaccent ydieresis -20
+KPX ntilde u -10
+KPX ntilde uacute -10
+KPX ntilde ucircumflex -10
+KPX ntilde udieresis -10
+KPX ntilde ugrave -10
+KPX ntilde uhungarumlaut -10
+KPX ntilde umacron -10
+KPX ntilde uogonek -10
+KPX ntilde uring -10
+KPX ntilde v -40
+KPX ntilde y -20
+KPX ntilde yacute -20
+KPX ntilde ydieresis -20
+KPX o v -20
+KPX o w -15
+KPX o x -30
+KPX o y -20
+KPX o yacute -20
+KPX o ydieresis -20
+KPX oacute v -20
+KPX oacute w -15
+KPX oacute x -30
+KPX oacute y -20
+KPX oacute yacute -20
+KPX oacute ydieresis -20
+KPX ocircumflex v -20
+KPX ocircumflex w -15
+KPX ocircumflex x -30
+KPX ocircumflex y -20
+KPX ocircumflex yacute -20
+KPX ocircumflex ydieresis -20
+KPX odieresis v -20
+KPX odieresis w -15
+KPX odieresis x -30
+KPX odieresis y -20
+KPX odieresis yacute -20
+KPX odieresis ydieresis -20
+KPX ograve v -20
+KPX ograve w -15
+KPX ograve x -30
+KPX ograve y -20
+KPX ograve yacute -20
+KPX ograve ydieresis -20
+KPX ohungarumlaut v -20
+KPX ohungarumlaut w -15
+KPX ohungarumlaut x -30
+KPX ohungarumlaut y -20
+KPX ohungarumlaut yacute -20
+KPX ohungarumlaut ydieresis -20
+KPX omacron v -20
+KPX omacron w -15
+KPX omacron x -30
+KPX omacron y -20
+KPX omacron yacute -20
+KPX omacron ydieresis -20
+KPX oslash v -20
+KPX oslash w -15
+KPX oslash x -30
+KPX oslash y -20
+KPX oslash yacute -20
+KPX oslash ydieresis -20
+KPX otilde v -20
+KPX otilde w -15
+KPX otilde x -30
+KPX otilde y -20
+KPX otilde yacute -20
+KPX otilde ydieresis -20
+KPX p y -15
+KPX p yacute -15
+KPX p ydieresis -15
+KPX period quotedblright -120
+KPX period quoteright -120
+KPX period space -40
+KPX quotedblright space -80
+KPX quoteleft quoteleft -46
+KPX quoteright d -80
+KPX quoteright dcroat -80
+KPX quoteright l -20
+KPX quoteright lacute -20
+KPX quoteright lcommaaccent -20
+KPX quoteright lslash -20
+KPX quoteright quoteright -46
+KPX quoteright r -40
+KPX quoteright racute -40
+KPX quoteright rcaron -40
+KPX quoteright rcommaaccent -40
+KPX quoteright s -60
+KPX quoteright sacute -60
+KPX quoteright scaron -60
+KPX quoteright scedilla -60
+KPX quoteright scommaaccent -60
+KPX quoteright space -80
+KPX quoteright v -20
+KPX r c -20
+KPX r cacute -20
+KPX r ccaron -20
+KPX r ccedilla -20
+KPX r comma -60
+KPX r d -20
+KPX r dcroat -20
+KPX r g -15
+KPX r gbreve -15
+KPX r gcommaaccent -15
+KPX r hyphen -20
+KPX r o -20
+KPX r oacute -20
+KPX r ocircumflex -20
+KPX r odieresis -20
+KPX r ograve -20
+KPX r ohungarumlaut -20
+KPX r omacron -20
+KPX r oslash -20
+KPX r otilde -20
+KPX r period -60
+KPX r q -20
+KPX r s -15
+KPX r sacute -15
+KPX r scaron -15
+KPX r scedilla -15
+KPX r scommaaccent -15
+KPX r t 20
+KPX r tcommaaccent 20
+KPX r v 10
+KPX r y 10
+KPX r yacute 10
+KPX r ydieresis 10
+KPX racute c -20
+KPX racute cacute -20
+KPX racute ccaron -20
+KPX racute ccedilla -20
+KPX racute comma -60
+KPX racute d -20
+KPX racute dcroat -20
+KPX racute g -15
+KPX racute gbreve -15
+KPX racute gcommaaccent -15
+KPX racute hyphen -20
+KPX racute o -20
+KPX racute oacute -20
+KPX racute ocircumflex -20
+KPX racute odieresis -20
+KPX racute ograve -20
+KPX racute ohungarumlaut -20
+KPX racute omacron -20
+KPX racute oslash -20
+KPX racute otilde -20
+KPX racute period -60
+KPX racute q -20
+KPX racute s -15
+KPX racute sacute -15
+KPX racute scaron -15
+KPX racute scedilla -15
+KPX racute scommaaccent -15
+KPX racute t 20
+KPX racute tcommaaccent 20
+KPX racute v 10
+KPX racute y 10
+KPX racute yacute 10
+KPX racute ydieresis 10
+KPX rcaron c -20
+KPX rcaron cacute -20
+KPX rcaron ccaron -20
+KPX rcaron ccedilla -20
+KPX rcaron comma -60
+KPX rcaron d -20
+KPX rcaron dcroat -20
+KPX rcaron g -15
+KPX rcaron gbreve -15
+KPX rcaron gcommaaccent -15
+KPX rcaron hyphen -20
+KPX rcaron o -20
+KPX rcaron oacute -20
+KPX rcaron ocircumflex -20
+KPX rcaron odieresis -20
+KPX rcaron ograve -20
+KPX rcaron ohungarumlaut -20
+KPX rcaron omacron -20
+KPX rcaron oslash -20
+KPX rcaron otilde -20
+KPX rcaron period -60
+KPX rcaron q -20
+KPX rcaron s -15
+KPX rcaron sacute -15
+KPX rcaron scaron -15
+KPX rcaron scedilla -15
+KPX rcaron scommaaccent -15
+KPX rcaron t 20
+KPX rcaron tcommaaccent 20
+KPX rcaron v 10
+KPX rcaron y 10
+KPX rcaron yacute 10
+KPX rcaron ydieresis 10
+KPX rcommaaccent c -20
+KPX rcommaaccent cacute -20
+KPX rcommaaccent ccaron -20
+KPX rcommaaccent ccedilla -20
+KPX rcommaaccent comma -60
+KPX rcommaaccent d -20
+KPX rcommaaccent dcroat -20
+KPX rcommaaccent g -15
+KPX rcommaaccent gbreve -15
+KPX rcommaaccent gcommaaccent -15
+KPX rcommaaccent hyphen -20
+KPX rcommaaccent o -20
+KPX rcommaaccent oacute -20
+KPX rcommaaccent ocircumflex -20
+KPX rcommaaccent odieresis -20
+KPX rcommaaccent ograve -20
+KPX rcommaaccent ohungarumlaut -20
+KPX rcommaaccent omacron -20
+KPX rcommaaccent oslash -20
+KPX rcommaaccent otilde -20
+KPX rcommaaccent period -60
+KPX rcommaaccent q -20
+KPX rcommaaccent s -15
+KPX rcommaaccent sacute -15
+KPX rcommaaccent scaron -15
+KPX rcommaaccent scedilla -15
+KPX rcommaaccent scommaaccent -15
+KPX rcommaaccent t 20
+KPX rcommaaccent tcommaaccent 20
+KPX rcommaaccent v 10
+KPX rcommaaccent y 10
+KPX rcommaaccent yacute 10
+KPX rcommaaccent ydieresis 10
+KPX s w -15
+KPX sacute w -15
+KPX scaron w -15
+KPX scedilla w -15
+KPX scommaaccent w -15
+KPX semicolon space -40
+KPX space T -100
+KPX space Tcaron -100
+KPX space Tcommaaccent -100
+KPX space V -80
+KPX space W -80
+KPX space Y -120
+KPX space Yacute -120
+KPX space Ydieresis -120
+KPX space quotedblleft -80
+KPX space quoteleft -60
+KPX v a -20
+KPX v aacute -20
+KPX v abreve -20
+KPX v acircumflex -20
+KPX v adieresis -20
+KPX v agrave -20
+KPX v amacron -20
+KPX v aogonek -20
+KPX v aring -20
+KPX v atilde -20
+KPX v comma -80
+KPX v o -30
+KPX v oacute -30
+KPX v ocircumflex -30
+KPX v odieresis -30
+KPX v ograve -30
+KPX v ohungarumlaut -30
+KPX v omacron -30
+KPX v oslash -30
+KPX v otilde -30
+KPX v period -80
+KPX w comma -40
+KPX w o -20
+KPX w oacute -20
+KPX w ocircumflex -20
+KPX w odieresis -20
+KPX w ograve -20
+KPX w ohungarumlaut -20
+KPX w omacron -20
+KPX w oslash -20
+KPX w otilde -20
+KPX w period -40
+KPX x e -10
+KPX x eacute -10
+KPX x ecaron -10
+KPX x ecircumflex -10
+KPX x edieresis -10
+KPX x edotaccent -10
+KPX x egrave -10
+KPX x emacron -10
+KPX x eogonek -10
+KPX y a -30
+KPX y aacute -30
+KPX y abreve -30
+KPX y acircumflex -30
+KPX y adieresis -30
+KPX y agrave -30
+KPX y amacron -30
+KPX y aogonek -30
+KPX y aring -30
+KPX y atilde -30
+KPX y comma -80
+KPX y e -10
+KPX y eacute -10
+KPX y ecaron -10
+KPX y ecircumflex -10
+KPX y edieresis -10
+KPX y edotaccent -10
+KPX y egrave -10
+KPX y emacron -10
+KPX y eogonek -10
+KPX y o -25
+KPX y oacute -25
+KPX y ocircumflex -25
+KPX y odieresis -25
+KPX y ograve -25
+KPX y ohungarumlaut -25
+KPX y omacron -25
+KPX y oslash -25
+KPX y otilde -25
+KPX y period -80
+KPX yacute a -30
+KPX yacute aacute -30
+KPX yacute abreve -30
+KPX yacute acircumflex -30
+KPX yacute adieresis -30
+KPX yacute agrave -30
+KPX yacute amacron -30
+KPX yacute aogonek -30
+KPX yacute aring -30
+KPX yacute atilde -30
+KPX yacute comma -80
+KPX yacute e -10
+KPX yacute eacute -10
+KPX yacute ecaron -10
+KPX yacute ecircumflex -10
+KPX yacute edieresis -10
+KPX yacute edotaccent -10
+KPX yacute egrave -10
+KPX yacute emacron -10
+KPX yacute eogonek -10
+KPX yacute o -25
+KPX yacute oacute -25
+KPX yacute ocircumflex -25
+KPX yacute odieresis -25
+KPX yacute ograve -25
+KPX yacute ohungarumlaut -25
+KPX yacute omacron -25
+KPX yacute oslash -25
+KPX yacute otilde -25
+KPX yacute period -80
+KPX ydieresis a -30
+KPX ydieresis aacute -30
+KPX ydieresis abreve -30
+KPX ydieresis acircumflex -30
+KPX ydieresis adieresis -30
+KPX ydieresis agrave -30
+KPX ydieresis amacron -30
+KPX ydieresis aogonek -30
+KPX ydieresis aring -30
+KPX ydieresis atilde -30
+KPX ydieresis comma -80
+KPX ydieresis e -10
+KPX ydieresis eacute -10
+KPX ydieresis ecaron -10
+KPX ydieresis ecircumflex -10
+KPX ydieresis edieresis -10
+KPX ydieresis edotaccent -10
+KPX ydieresis egrave -10
+KPX ydieresis emacron -10
+KPX ydieresis eogonek -10
+KPX ydieresis o -25
+KPX ydieresis oacute -25
+KPX ydieresis ocircumflex -25
+KPX ydieresis odieresis -25
+KPX ydieresis ograve -25
+KPX ydieresis ohungarumlaut -25
+KPX ydieresis omacron -25
+KPX ydieresis oslash -25
+KPX ydieresis otilde -25
+KPX ydieresis period -80
+KPX z e 10
+KPX z eacute 10
+KPX z ecaron 10
+KPX z ecircumflex 10
+KPX z edieresis 10
+KPX z edotaccent 10
+KPX z egrave 10
+KPX z emacron 10
+KPX z eogonek 10
+KPX zacute e 10
+KPX zacute eacute 10
+KPX zacute ecaron 10
+KPX zacute ecircumflex 10
+KPX zacute edieresis 10
+KPX zacute edotaccent 10
+KPX zacute egrave 10
+KPX zacute emacron 10
+KPX zacute eogonek 10
+KPX zcaron e 10
+KPX zcaron eacute 10
+KPX zcaron ecaron 10
+KPX zcaron ecircumflex 10
+KPX zcaron edieresis 10
+KPX zcaron edotaccent 10
+KPX zcaron egrave 10
+KPX zcaron emacron 10
+KPX zcaron eogonek 10
+KPX zdotaccent e 10
+KPX zdotaccent eacute 10
+KPX zdotaccent ecaron 10
+KPX zdotaccent ecircumflex 10
+KPX zdotaccent edieresis 10
+KPX zdotaccent edotaccent 10
+KPX zdotaccent egrave 10
+KPX zdotaccent emacron 10
+KPX zdotaccent eogonek 10
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Helvetica-BoldOblique.afm b/test/user-template/user/psprint/fontmetric/Helvetica-BoldOblique.afm
new file mode 100644
index 000000000000..e94412061d1a
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Helvetica-BoldOblique.afm
@@ -0,0 +1,2825 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:45:12 1997
+Comment UniqueID 43053
+Comment VMusage 14482 68586
+FontName Helvetica-BoldOblique
+FullName Helvetica Bold Oblique
+FamilyName Helvetica
+Weight Bold
+ItalicAngle -12
+IsFixedPitch false
+FontBBox -174 -228 1114 962
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 718
+XHeight 532
+Ascender 718
+Descender -207
+StdHW 118
+StdVW 140
+StartCharMetrics 314
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 94 0 397 718 ;
+C 34 ; WX 474 ; N quotedbl ; B 193 447 529 718 ;
+C 35 ; WX 556 ; N numbersign ; B 60 0 644 698 ;
+C 36 ; WX 556 ; N dollar ; B 67 -115 622 775 ;
+C 37 ; WX 889 ; N percent ; B 136 -19 901 710 ;
+C 38 ; WX 722 ; N ampersand ; B 89 -19 732 718 ;
+C 39 ; WX 278 ; N quoteright ; B 167 445 362 718 ;
+C 40 ; WX 333 ; N parenleft ; B 76 -208 470 734 ;
+C 41 ; WX 333 ; N parenright ; B -25 -208 369 734 ;
+C 42 ; WX 389 ; N asterisk ; B 146 387 481 718 ;
+C 43 ; WX 584 ; N plus ; B 82 0 610 506 ;
+C 44 ; WX 278 ; N comma ; B 28 -168 245 146 ;
+C 45 ; WX 333 ; N hyphen ; B 73 215 379 345 ;
+C 46 ; WX 278 ; N period ; B 64 0 245 146 ;
+C 47 ; WX 278 ; N slash ; B -37 -19 468 737 ;
+C 48 ; WX 556 ; N zero ; B 86 -19 617 710 ;
+C 49 ; WX 556 ; N one ; B 173 0 529 710 ;
+C 50 ; WX 556 ; N two ; B 26 0 619 710 ;
+C 51 ; WX 556 ; N three ; B 65 -19 608 710 ;
+C 52 ; WX 556 ; N four ; B 60 0 598 710 ;
+C 53 ; WX 556 ; N five ; B 64 -19 636 698 ;
+C 54 ; WX 556 ; N six ; B 85 -19 619 710 ;
+C 55 ; WX 556 ; N seven ; B 125 0 676 698 ;
+C 56 ; WX 556 ; N eight ; B 69 -19 616 710 ;
+C 57 ; WX 556 ; N nine ; B 78 -19 615 710 ;
+C 58 ; WX 333 ; N colon ; B 92 0 351 512 ;
+C 59 ; WX 333 ; N semicolon ; B 56 -168 351 512 ;
+C 60 ; WX 584 ; N less ; B 82 -8 655 514 ;
+C 61 ; WX 584 ; N equal ; B 58 87 633 419 ;
+C 62 ; WX 584 ; N greater ; B 36 -8 609 514 ;
+C 63 ; WX 611 ; N question ; B 165 0 671 727 ;
+C 64 ; WX 975 ; N at ; B 186 -19 954 737 ;
+C 65 ; WX 722 ; N A ; B 20 0 702 718 ;
+C 66 ; WX 722 ; N B ; B 76 0 764 718 ;
+C 67 ; WX 722 ; N C ; B 107 -19 789 737 ;
+C 68 ; WX 722 ; N D ; B 76 0 777 718 ;
+C 69 ; WX 667 ; N E ; B 76 0 757 718 ;
+C 70 ; WX 611 ; N F ; B 76 0 740 718 ;
+C 71 ; WX 778 ; N G ; B 108 -19 817 737 ;
+C 72 ; WX 722 ; N H ; B 71 0 804 718 ;
+C 73 ; WX 278 ; N I ; B 64 0 367 718 ;
+C 74 ; WX 556 ; N J ; B 60 -18 637 718 ;
+C 75 ; WX 722 ; N K ; B 87 0 858 718 ;
+C 76 ; WX 611 ; N L ; B 76 0 611 718 ;
+C 77 ; WX 833 ; N M ; B 69 0 918 718 ;
+C 78 ; WX 722 ; N N ; B 69 0 807 718 ;
+C 79 ; WX 778 ; N O ; B 107 -19 823 737 ;
+C 80 ; WX 667 ; N P ; B 76 0 738 718 ;
+C 81 ; WX 778 ; N Q ; B 107 -52 823 737 ;
+C 82 ; WX 722 ; N R ; B 76 0 778 718 ;
+C 83 ; WX 667 ; N S ; B 81 -19 718 737 ;
+C 84 ; WX 611 ; N T ; B 140 0 751 718 ;
+C 85 ; WX 722 ; N U ; B 116 -19 804 718 ;
+C 86 ; WX 667 ; N V ; B 172 0 801 718 ;
+C 87 ; WX 944 ; N W ; B 169 0 1082 718 ;
+C 88 ; WX 667 ; N X ; B 14 0 791 718 ;
+C 89 ; WX 667 ; N Y ; B 168 0 806 718 ;
+C 90 ; WX 611 ; N Z ; B 25 0 737 718 ;
+C 91 ; WX 333 ; N bracketleft ; B 21 -196 462 722 ;
+C 92 ; WX 278 ; N backslash ; B 124 -19 307 737 ;
+C 93 ; WX 333 ; N bracketright ; B -18 -196 423 722 ;
+C 94 ; WX 584 ; N asciicircum ; B 131 323 591 698 ;
+C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ;
+C 96 ; WX 278 ; N quoteleft ; B 165 454 361 727 ;
+C 97 ; WX 556 ; N a ; B 55 -14 583 546 ;
+C 98 ; WX 611 ; N b ; B 61 -14 645 718 ;
+C 99 ; WX 556 ; N c ; B 79 -14 599 546 ;
+C 100 ; WX 611 ; N d ; B 82 -14 704 718 ;
+C 101 ; WX 556 ; N e ; B 70 -14 593 546 ;
+C 102 ; WX 333 ; N f ; B 87 0 469 727 ; L i fi ; L l fl ;
+C 103 ; WX 611 ; N g ; B 38 -217 666 546 ;
+C 104 ; WX 611 ; N h ; B 65 0 629 718 ;
+C 105 ; WX 278 ; N i ; B 69 0 363 725 ;
+C 106 ; WX 278 ; N j ; B -42 -214 363 725 ;
+C 107 ; WX 556 ; N k ; B 69 0 670 718 ;
+C 108 ; WX 278 ; N l ; B 69 0 362 718 ;
+C 109 ; WX 889 ; N m ; B 64 0 909 546 ;
+C 110 ; WX 611 ; N n ; B 65 0 629 546 ;
+C 111 ; WX 611 ; N o ; B 82 -14 643 546 ;
+C 112 ; WX 611 ; N p ; B 18 -207 645 546 ;
+C 113 ; WX 611 ; N q ; B 80 -207 665 546 ;
+C 114 ; WX 389 ; N r ; B 64 0 489 546 ;
+C 115 ; WX 556 ; N s ; B 63 -14 584 546 ;
+C 116 ; WX 333 ; N t ; B 100 -6 422 676 ;
+C 117 ; WX 611 ; N u ; B 98 -14 658 532 ;
+C 118 ; WX 556 ; N v ; B 126 0 656 532 ;
+C 119 ; WX 778 ; N w ; B 123 0 882 532 ;
+C 120 ; WX 556 ; N x ; B 15 0 648 532 ;
+C 121 ; WX 556 ; N y ; B 42 -214 652 532 ;
+C 122 ; WX 500 ; N z ; B 20 0 583 532 ;
+C 123 ; WX 389 ; N braceleft ; B 94 -196 518 722 ;
+C 124 ; WX 280 ; N bar ; B 36 -225 361 775 ;
+C 125 ; WX 389 ; N braceright ; B -18 -196 407 722 ;
+C 126 ; WX 584 ; N asciitilde ; B 115 163 577 343 ;
+C 161 ; WX 333 ; N exclamdown ; B 50 -186 353 532 ;
+C 162 ; WX 556 ; N cent ; B 79 -118 599 628 ;
+C 163 ; WX 556 ; N sterling ; B 50 -16 635 718 ;
+C 164 ; WX 167 ; N fraction ; B -174 -19 487 710 ;
+C 165 ; WX 556 ; N yen ; B 60 0 713 698 ;
+C 166 ; WX 556 ; N florin ; B -50 -210 669 737 ;
+C 167 ; WX 556 ; N section ; B 61 -184 598 727 ;
+C 168 ; WX 556 ; N currency ; B 27 76 680 636 ;
+C 169 ; WX 238 ; N quotesingle ; B 165 447 321 718 ;
+C 170 ; WX 500 ; N quotedblleft ; B 160 454 588 727 ;
+C 171 ; WX 556 ; N guillemotleft ; B 135 76 571 484 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 130 76 353 484 ;
+C 173 ; WX 333 ; N guilsinglright ; B 99 76 322 484 ;
+C 174 ; WX 611 ; N fi ; B 87 0 696 727 ;
+C 175 ; WX 611 ; N fl ; B 87 0 695 727 ;
+C 177 ; WX 556 ; N endash ; B 48 227 627 333 ;
+C 178 ; WX 556 ; N dagger ; B 118 -171 626 718 ;
+C 179 ; WX 556 ; N daggerdbl ; B 46 -171 628 718 ;
+C 180 ; WX 278 ; N periodcentered ; B 110 172 276 334 ;
+C 182 ; WX 556 ; N paragraph ; B 98 -191 688 700 ;
+C 183 ; WX 350 ; N bullet ; B 83 194 420 524 ;
+C 184 ; WX 278 ; N quotesinglbase ; B 41 -146 236 127 ;
+C 185 ; WX 500 ; N quotedblbase ; B 36 -146 463 127 ;
+C 186 ; WX 500 ; N quotedblright ; B 162 445 589 718 ;
+C 187 ; WX 556 ; N guillemotright ; B 104 76 540 484 ;
+C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ;
+C 189 ; WX 1000 ; N perthousand ; B 76 -19 1038 710 ;
+C 191 ; WX 611 ; N questiondown ; B 53 -195 559 532 ;
+C 193 ; WX 333 ; N grave ; B 136 604 353 750 ;
+C 194 ; WX 333 ; N acute ; B 236 604 515 750 ;
+C 195 ; WX 333 ; N circumflex ; B 118 604 471 750 ;
+C 196 ; WX 333 ; N tilde ; B 113 610 507 737 ;
+C 197 ; WX 333 ; N macron ; B 122 604 483 678 ;
+C 198 ; WX 333 ; N breve ; B 156 604 494 750 ;
+C 199 ; WX 333 ; N dotaccent ; B 235 614 385 729 ;
+C 200 ; WX 333 ; N dieresis ; B 137 614 482 729 ;
+C 202 ; WX 333 ; N ring ; B 200 568 420 776 ;
+C 203 ; WX 333 ; N cedilla ; B -37 -228 220 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 137 604 645 750 ;
+C 206 ; WX 333 ; N ogonek ; B 41 -228 264 0 ;
+C 207 ; WX 333 ; N caron ; B 149 604 502 750 ;
+C 208 ; WX 1000 ; N emdash ; B 48 227 1071 333 ;
+C 225 ; WX 1000 ; N AE ; B 5 0 1100 718 ;
+C 227 ; WX 370 ; N ordfeminine ; B 125 401 465 737 ;
+C 232 ; WX 611 ; N Lslash ; B 34 0 611 718 ;
+C 233 ; WX 778 ; N Oslash ; B 35 -27 894 745 ;
+C 234 ; WX 1000 ; N OE ; B 99 -19 1114 737 ;
+C 235 ; WX 365 ; N ordmasculine ; B 123 401 485 737 ;
+C 241 ; WX 889 ; N ae ; B 56 -14 923 546 ;
+C 245 ; WX 278 ; N dotlessi ; B 69 0 322 532 ;
+C 248 ; WX 278 ; N lslash ; B 40 0 407 718 ;
+C 249 ; WX 611 ; N oslash ; B 22 -29 701 560 ;
+C 250 ; WX 944 ; N oe ; B 82 -14 977 546 ;
+C 251 ; WX 611 ; N germandbls ; B 69 -14 657 731 ;
+C -1 ; WX 278 ; N Idieresis ; B 64 0 494 915 ;
+C -1 ; WX 556 ; N eacute ; B 70 -14 627 750 ;
+C -1 ; WX 556 ; N abreve ; B 55 -14 606 750 ;
+C -1 ; WX 611 ; N uhungarumlaut ; B 98 -14 784 750 ;
+C -1 ; WX 556 ; N ecaron ; B 70 -14 614 750 ;
+C -1 ; WX 667 ; N Ydieresis ; B 168 0 806 915 ;
+C -1 ; WX 584 ; N divide ; B 82 -42 610 548 ;
+C -1 ; WX 667 ; N Yacute ; B 168 0 806 936 ;
+C -1 ; WX 722 ; N Acircumflex ; B 20 0 706 936 ;
+C -1 ; WX 556 ; N aacute ; B 55 -14 627 750 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 116 -19 804 936 ;
+C -1 ; WX 556 ; N yacute ; B 42 -214 652 750 ;
+C -1 ; WX 556 ; N scommaaccent ; B 63 -228 584 546 ;
+C -1 ; WX 556 ; N ecircumflex ; B 70 -14 593 750 ;
+C -1 ; WX 722 ; N Uring ; B 116 -19 804 962 ;
+C -1 ; WX 722 ; N Udieresis ; B 116 -19 804 915 ;
+C -1 ; WX 556 ; N aogonek ; B 55 -224 583 546 ;
+C -1 ; WX 722 ; N Uacute ; B 116 -19 804 936 ;
+C -1 ; WX 611 ; N uogonek ; B 98 -228 658 532 ;
+C -1 ; WX 667 ; N Edieresis ; B 76 0 757 915 ;
+C -1 ; WX 722 ; N Dcroat ; B 62 0 777 718 ;
+C -1 ; WX 250 ; N commaaccent ; B 16 -228 188 -50 ;
+C -1 ; WX 737 ; N copyright ; B 56 -19 835 737 ;
+C -1 ; WX 667 ; N Emacron ; B 76 0 757 864 ;
+C -1 ; WX 556 ; N ccaron ; B 79 -14 614 750 ;
+C -1 ; WX 556 ; N aring ; B 55 -14 583 776 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 807 718 ;
+C -1 ; WX 278 ; N lacute ; B 69 0 528 936 ;
+C -1 ; WX 556 ; N agrave ; B 55 -14 583 750 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 140 -228 751 718 ;
+C -1 ; WX 722 ; N Cacute ; B 107 -19 789 936 ;
+C -1 ; WX 556 ; N atilde ; B 55 -14 619 737 ;
+C -1 ; WX 667 ; N Edotaccent ; B 76 0 757 915 ;
+C -1 ; WX 556 ; N scaron ; B 63 -14 614 750 ;
+C -1 ; WX 556 ; N scedilla ; B 63 -228 584 546 ;
+C -1 ; WX 278 ; N iacute ; B 69 0 488 750 ;
+C -1 ; WX 494 ; N lozenge ; B 90 0 564 745 ;
+C -1 ; WX 722 ; N Rcaron ; B 76 0 778 936 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 108 -228 817 737 ;
+C -1 ; WX 611 ; N ucircumflex ; B 98 -14 658 750 ;
+C -1 ; WX 556 ; N acircumflex ; B 55 -14 583 750 ;
+C -1 ; WX 722 ; N Amacron ; B 20 0 718 864 ;
+C -1 ; WX 389 ; N rcaron ; B 64 0 530 750 ;
+C -1 ; WX 556 ; N ccedilla ; B 79 -228 599 546 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 25 0 737 915 ;
+C -1 ; WX 667 ; N Thorn ; B 76 0 716 718 ;
+C -1 ; WX 778 ; N Omacron ; B 107 -19 823 864 ;
+C -1 ; WX 722 ; N Racute ; B 76 0 778 936 ;
+C -1 ; WX 667 ; N Sacute ; B 81 -19 722 936 ;
+C -1 ; WX 743 ; N dcaron ; B 82 -14 903 718 ;
+C -1 ; WX 722 ; N Umacron ; B 116 -19 804 864 ;
+C -1 ; WX 611 ; N uring ; B 98 -14 658 776 ;
+C -1 ; WX 333 ; N threesuperior ; B 91 271 441 710 ;
+C -1 ; WX 778 ; N Ograve ; B 107 -19 823 936 ;
+C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ;
+C -1 ; WX 722 ; N Abreve ; B 20 0 729 936 ;
+C -1 ; WX 584 ; N multiply ; B 57 1 635 505 ;
+C -1 ; WX 611 ; N uacute ; B 98 -14 658 750 ;
+C -1 ; WX 611 ; N Tcaron ; B 140 0 751 936 ;
+C -1 ; WX 494 ; N partialdiff ; B 43 -21 585 750 ;
+C -1 ; WX 556 ; N ydieresis ; B 42 -214 652 729 ;
+C -1 ; WX 722 ; N Nacute ; B 69 0 807 936 ;
+C -1 ; WX 278 ; N icircumflex ; B 69 0 444 750 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 76 0 757 936 ;
+C -1 ; WX 556 ; N adieresis ; B 55 -14 594 729 ;
+C -1 ; WX 556 ; N edieresis ; B 70 -14 594 729 ;
+C -1 ; WX 556 ; N cacute ; B 79 -14 627 750 ;
+C -1 ; WX 611 ; N nacute ; B 65 0 654 750 ;
+C -1 ; WX 611 ; N umacron ; B 98 -14 658 678 ;
+C -1 ; WX 722 ; N Ncaron ; B 69 0 807 936 ;
+C -1 ; WX 278 ; N Iacute ; B 64 0 528 936 ;
+C -1 ; WX 584 ; N plusminus ; B 40 0 625 506 ;
+C -1 ; WX 280 ; N brokenbar ; B 52 -150 345 700 ;
+C -1 ; WX 737 ; N registered ; B 55 -19 834 737 ;
+C -1 ; WX 778 ; N Gbreve ; B 108 -19 817 936 ;
+C -1 ; WX 278 ; N Idotaccent ; B 64 0 397 915 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 670 706 ;
+C -1 ; WX 667 ; N Egrave ; B 76 0 757 936 ;
+C -1 ; WX 389 ; N racute ; B 64 0 543 750 ;
+C -1 ; WX 611 ; N omacron ; B 82 -14 643 678 ;
+C -1 ; WX 611 ; N Zacute ; B 25 0 737 936 ;
+C -1 ; WX 611 ; N Zcaron ; B 25 0 737 936 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 629 704 ;
+C -1 ; WX 722 ; N Eth ; B 62 0 777 718 ;
+C -1 ; WX 722 ; N Ccedilla ; B 107 -228 789 737 ;
+C -1 ; WX 278 ; N lcommaaccent ; B 30 -228 362 718 ;
+C -1 ; WX 389 ; N tcaron ; B 100 -6 608 878 ;
+C -1 ; WX 556 ; N eogonek ; B 70 -228 593 546 ;
+C -1 ; WX 722 ; N Uogonek ; B 116 -228 804 718 ;
+C -1 ; WX 722 ; N Aacute ; B 20 0 750 936 ;
+C -1 ; WX 722 ; N Adieresis ; B 20 0 716 915 ;
+C -1 ; WX 556 ; N egrave ; B 70 -14 593 750 ;
+C -1 ; WX 500 ; N zacute ; B 20 0 599 750 ;
+C -1 ; WX 278 ; N iogonek ; B -14 -224 363 725 ;
+C -1 ; WX 778 ; N Oacute ; B 107 -19 823 936 ;
+C -1 ; WX 611 ; N oacute ; B 82 -14 654 750 ;
+C -1 ; WX 556 ; N amacron ; B 55 -14 595 678 ;
+C -1 ; WX 556 ; N sacute ; B 63 -14 627 750 ;
+C -1 ; WX 278 ; N idieresis ; B 69 0 455 729 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 107 -19 823 936 ;
+C -1 ; WX 722 ; N Ugrave ; B 116 -19 804 936 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 611 ; N thorn ; B 18 -208 645 718 ;
+C -1 ; WX 333 ; N twosuperior ; B 69 283 449 710 ;
+C -1 ; WX 778 ; N Odieresis ; B 107 -19 823 915 ;
+C -1 ; WX 611 ; N mu ; B 22 -207 658 532 ;
+C -1 ; WX 278 ; N igrave ; B 69 0 326 750 ;
+C -1 ; WX 611 ; N ohungarumlaut ; B 82 -14 784 750 ;
+C -1 ; WX 667 ; N Eogonek ; B 76 -224 757 718 ;
+C -1 ; WX 611 ; N dcroat ; B 82 -14 789 718 ;
+C -1 ; WX 834 ; N threequarters ; B 99 -19 839 710 ;
+C -1 ; WX 667 ; N Scedilla ; B 81 -228 718 737 ;
+C -1 ; WX 400 ; N lcaron ; B 69 0 561 718 ;
+C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 858 718 ;
+C -1 ; WX 611 ; N Lacute ; B 76 0 611 936 ;
+C -1 ; WX 1000 ; N trademark ; B 179 306 1109 718 ;
+C -1 ; WX 556 ; N edotaccent ; B 70 -14 593 729 ;
+C -1 ; WX 278 ; N Igrave ; B 64 0 367 936 ;
+C -1 ; WX 278 ; N Imacron ; B 64 0 496 864 ;
+C -1 ; WX 611 ; N Lcaron ; B 76 0 643 718 ;
+C -1 ; WX 834 ; N onehalf ; B 132 -19 858 710 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 676 704 ;
+C -1 ; WX 611 ; N ocircumflex ; B 82 -14 643 750 ;
+C -1 ; WX 611 ; N ntilde ; B 65 0 646 737 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 116 -19 880 936 ;
+C -1 ; WX 667 ; N Eacute ; B 76 0 757 936 ;
+C -1 ; WX 556 ; N emacron ; B 70 -14 595 678 ;
+C -1 ; WX 611 ; N gbreve ; B 38 -217 666 750 ;
+C -1 ; WX 834 ; N onequarter ; B 132 -19 806 710 ;
+C -1 ; WX 667 ; N Scaron ; B 81 -19 718 936 ;
+C -1 ; WX 667 ; N Scommaaccent ; B 81 -228 718 737 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 107 -19 908 936 ;
+C -1 ; WX 400 ; N degree ; B 175 426 467 712 ;
+C -1 ; WX 611 ; N ograve ; B 82 -14 643 750 ;
+C -1 ; WX 722 ; N Ccaron ; B 107 -19 789 936 ;
+C -1 ; WX 611 ; N ugrave ; B 98 -14 658 750 ;
+C -1 ; WX 549 ; N radical ; B 112 -46 689 850 ;
+C -1 ; WX 722 ; N Dcaron ; B 76 0 777 936 ;
+C -1 ; WX 389 ; N rcommaaccent ; B 26 -228 489 546 ;
+C -1 ; WX 722 ; N Ntilde ; B 69 0 807 923 ;
+C -1 ; WX 611 ; N otilde ; B 82 -14 646 737 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 778 718 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 611 718 ;
+C -1 ; WX 722 ; N Atilde ; B 20 0 741 923 ;
+C -1 ; WX 722 ; N Aogonek ; B 20 -224 702 718 ;
+C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ;
+C -1 ; WX 778 ; N Otilde ; B 107 -19 823 923 ;
+C -1 ; WX 500 ; N zdotaccent ; B 20 0 583 729 ;
+C -1 ; WX 667 ; N Ecaron ; B 76 0 757 936 ;
+C -1 ; WX 278 ; N Iogonek ; B -41 -228 367 718 ;
+C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 670 718 ;
+C -1 ; WX 584 ; N minus ; B 82 197 610 309 ;
+C -1 ; WX 278 ; N Icircumflex ; B 64 0 484 936 ;
+C -1 ; WX 611 ; N ncaron ; B 65 0 641 750 ;
+C -1 ; WX 333 ; N tcommaaccent ; B 58 -228 422 676 ;
+C -1 ; WX 584 ; N logicalnot ; B 105 108 633 419 ;
+C -1 ; WX 611 ; N odieresis ; B 82 -14 643 729 ;
+C -1 ; WX 611 ; N udieresis ; B 98 -14 658 729 ;
+C -1 ; WX 549 ; N notequal ; B 32 -49 630 570 ;
+C -1 ; WX 611 ; N gcommaaccent ; B 38 -217 666 850 ;
+C -1 ; WX 611 ; N eth ; B 82 -14 670 737 ;
+C -1 ; WX 500 ; N zcaron ; B 20 0 586 750 ;
+C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 629 546 ;
+C -1 ; WX 333 ; N onesuperior ; B 148 283 388 710 ;
+C -1 ; WX 278 ; N imacron ; B 69 0 429 678 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2481
+KPX A C -40
+KPX A Cacute -40
+KPX A Ccaron -40
+KPX A Ccedilla -40
+KPX A G -50
+KPX A Gbreve -50
+KPX A Gcommaaccent -50
+KPX A O -40
+KPX A Oacute -40
+KPX A Ocircumflex -40
+KPX A Odieresis -40
+KPX A Ograve -40
+KPX A Ohungarumlaut -40
+KPX A Omacron -40
+KPX A Oslash -40
+KPX A Otilde -40
+KPX A Q -40
+KPX A T -90
+KPX A Tcaron -90
+KPX A Tcommaaccent -90
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -80
+KPX A W -60
+KPX A Y -110
+KPX A Yacute -110
+KPX A Ydieresis -110
+KPX A u -30
+KPX A uacute -30
+KPX A ucircumflex -30
+KPX A udieresis -30
+KPX A ugrave -30
+KPX A uhungarumlaut -30
+KPX A umacron -30
+KPX A uogonek -30
+KPX A uring -30
+KPX A v -40
+KPX A w -30
+KPX A y -30
+KPX A yacute -30
+KPX A ydieresis -30
+KPX Aacute C -40
+KPX Aacute Cacute -40
+KPX Aacute Ccaron -40
+KPX Aacute Ccedilla -40
+KPX Aacute G -50
+KPX Aacute Gbreve -50
+KPX Aacute Gcommaaccent -50
+KPX Aacute O -40
+KPX Aacute Oacute -40
+KPX Aacute Ocircumflex -40
+KPX Aacute Odieresis -40
+KPX Aacute Ograve -40
+KPX Aacute Ohungarumlaut -40
+KPX Aacute Omacron -40
+KPX Aacute Oslash -40
+KPX Aacute Otilde -40
+KPX Aacute Q -40
+KPX Aacute T -90
+KPX Aacute Tcaron -90
+KPX Aacute Tcommaaccent -90
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -80
+KPX Aacute W -60
+KPX Aacute Y -110
+KPX Aacute Yacute -110
+KPX Aacute Ydieresis -110
+KPX Aacute u -30
+KPX Aacute uacute -30
+KPX Aacute ucircumflex -30
+KPX Aacute udieresis -30
+KPX Aacute ugrave -30
+KPX Aacute uhungarumlaut -30
+KPX Aacute umacron -30
+KPX Aacute uogonek -30
+KPX Aacute uring -30
+KPX Aacute v -40
+KPX Aacute w -30
+KPX Aacute y -30
+KPX Aacute yacute -30
+KPX Aacute ydieresis -30
+KPX Abreve C -40
+KPX Abreve Cacute -40
+KPX Abreve Ccaron -40
+KPX Abreve Ccedilla -40
+KPX Abreve G -50
+KPX Abreve Gbreve -50
+KPX Abreve Gcommaaccent -50
+KPX Abreve O -40
+KPX Abreve Oacute -40
+KPX Abreve Ocircumflex -40
+KPX Abreve Odieresis -40
+KPX Abreve Ograve -40
+KPX Abreve Ohungarumlaut -40
+KPX Abreve Omacron -40
+KPX Abreve Oslash -40
+KPX Abreve Otilde -40
+KPX Abreve Q -40
+KPX Abreve T -90
+KPX Abreve Tcaron -90
+KPX Abreve Tcommaaccent -90
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -80
+KPX Abreve W -60
+KPX Abreve Y -110
+KPX Abreve Yacute -110
+KPX Abreve Ydieresis -110
+KPX Abreve u -30
+KPX Abreve uacute -30
+KPX Abreve ucircumflex -30
+KPX Abreve udieresis -30
+KPX Abreve ugrave -30
+KPX Abreve uhungarumlaut -30
+KPX Abreve umacron -30
+KPX Abreve uogonek -30
+KPX Abreve uring -30
+KPX Abreve v -40
+KPX Abreve w -30
+KPX Abreve y -30
+KPX Abreve yacute -30
+KPX Abreve ydieresis -30
+KPX Acircumflex C -40
+KPX Acircumflex Cacute -40
+KPX Acircumflex Ccaron -40
+KPX Acircumflex Ccedilla -40
+KPX Acircumflex G -50
+KPX Acircumflex Gbreve -50
+KPX Acircumflex Gcommaaccent -50
+KPX Acircumflex O -40
+KPX Acircumflex Oacute -40
+KPX Acircumflex Ocircumflex -40
+KPX Acircumflex Odieresis -40
+KPX Acircumflex Ograve -40
+KPX Acircumflex Ohungarumlaut -40
+KPX Acircumflex Omacron -40
+KPX Acircumflex Oslash -40
+KPX Acircumflex Otilde -40
+KPX Acircumflex Q -40
+KPX Acircumflex T -90
+KPX Acircumflex Tcaron -90
+KPX Acircumflex Tcommaaccent -90
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -80
+KPX Acircumflex W -60
+KPX Acircumflex Y -110
+KPX Acircumflex Yacute -110
+KPX Acircumflex Ydieresis -110
+KPX Acircumflex u -30
+KPX Acircumflex uacute -30
+KPX Acircumflex ucircumflex -30
+KPX Acircumflex udieresis -30
+KPX Acircumflex ugrave -30
+KPX Acircumflex uhungarumlaut -30
+KPX Acircumflex umacron -30
+KPX Acircumflex uogonek -30
+KPX Acircumflex uring -30
+KPX Acircumflex v -40
+KPX Acircumflex w -30
+KPX Acircumflex y -30
+KPX Acircumflex yacute -30
+KPX Acircumflex ydieresis -30
+KPX Adieresis C -40
+KPX Adieresis Cacute -40
+KPX Adieresis Ccaron -40
+KPX Adieresis Ccedilla -40
+KPX Adieresis G -50
+KPX Adieresis Gbreve -50
+KPX Adieresis Gcommaaccent -50
+KPX Adieresis O -40
+KPX Adieresis Oacute -40
+KPX Adieresis Ocircumflex -40
+KPX Adieresis Odieresis -40
+KPX Adieresis Ograve -40
+KPX Adieresis Ohungarumlaut -40
+KPX Adieresis Omacron -40
+KPX Adieresis Oslash -40
+KPX Adieresis Otilde -40
+KPX Adieresis Q -40
+KPX Adieresis T -90
+KPX Adieresis Tcaron -90
+KPX Adieresis Tcommaaccent -90
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -80
+KPX Adieresis W -60
+KPX Adieresis Y -110
+KPX Adieresis Yacute -110
+KPX Adieresis Ydieresis -110
+KPX Adieresis u -30
+KPX Adieresis uacute -30
+KPX Adieresis ucircumflex -30
+KPX Adieresis udieresis -30
+KPX Adieresis ugrave -30
+KPX Adieresis uhungarumlaut -30
+KPX Adieresis umacron -30
+KPX Adieresis uogonek -30
+KPX Adieresis uring -30
+KPX Adieresis v -40
+KPX Adieresis w -30
+KPX Adieresis y -30
+KPX Adieresis yacute -30
+KPX Adieresis ydieresis -30
+KPX Agrave C -40
+KPX Agrave Cacute -40
+KPX Agrave Ccaron -40
+KPX Agrave Ccedilla -40
+KPX Agrave G -50
+KPX Agrave Gbreve -50
+KPX Agrave Gcommaaccent -50
+KPX Agrave O -40
+KPX Agrave Oacute -40
+KPX Agrave Ocircumflex -40
+KPX Agrave Odieresis -40
+KPX Agrave Ograve -40
+KPX Agrave Ohungarumlaut -40
+KPX Agrave Omacron -40
+KPX Agrave Oslash -40
+KPX Agrave Otilde -40
+KPX Agrave Q -40
+KPX Agrave T -90
+KPX Agrave Tcaron -90
+KPX Agrave Tcommaaccent -90
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -80
+KPX Agrave W -60
+KPX Agrave Y -110
+KPX Agrave Yacute -110
+KPX Agrave Ydieresis -110
+KPX Agrave u -30
+KPX Agrave uacute -30
+KPX Agrave ucircumflex -30
+KPX Agrave udieresis -30
+KPX Agrave ugrave -30
+KPX Agrave uhungarumlaut -30
+KPX Agrave umacron -30
+KPX Agrave uogonek -30
+KPX Agrave uring -30
+KPX Agrave v -40
+KPX Agrave w -30
+KPX Agrave y -30
+KPX Agrave yacute -30
+KPX Agrave ydieresis -30
+KPX Amacron C -40
+KPX Amacron Cacute -40
+KPX Amacron Ccaron -40
+KPX Amacron Ccedilla -40
+KPX Amacron G -50
+KPX Amacron Gbreve -50
+KPX Amacron Gcommaaccent -50
+KPX Amacron O -40
+KPX Amacron Oacute -40
+KPX Amacron Ocircumflex -40
+KPX Amacron Odieresis -40
+KPX Amacron Ograve -40
+KPX Amacron Ohungarumlaut -40
+KPX Amacron Omacron -40
+KPX Amacron Oslash -40
+KPX Amacron Otilde -40
+KPX Amacron Q -40
+KPX Amacron T -90
+KPX Amacron Tcaron -90
+KPX Amacron Tcommaaccent -90
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -80
+KPX Amacron W -60
+KPX Amacron Y -110
+KPX Amacron Yacute -110
+KPX Amacron Ydieresis -110
+KPX Amacron u -30
+KPX Amacron uacute -30
+KPX Amacron ucircumflex -30
+KPX Amacron udieresis -30
+KPX Amacron ugrave -30
+KPX Amacron uhungarumlaut -30
+KPX Amacron umacron -30
+KPX Amacron uogonek -30
+KPX Amacron uring -30
+KPX Amacron v -40
+KPX Amacron w -30
+KPX Amacron y -30
+KPX Amacron yacute -30
+KPX Amacron ydieresis -30
+KPX Aogonek C -40
+KPX Aogonek Cacute -40
+KPX Aogonek Ccaron -40
+KPX Aogonek Ccedilla -40
+KPX Aogonek G -50
+KPX Aogonek Gbreve -50
+KPX Aogonek Gcommaaccent -50
+KPX Aogonek O -40
+KPX Aogonek Oacute -40
+KPX Aogonek Ocircumflex -40
+KPX Aogonek Odieresis -40
+KPX Aogonek Ograve -40
+KPX Aogonek Ohungarumlaut -40
+KPX Aogonek Omacron -40
+KPX Aogonek Oslash -40
+KPX Aogonek Otilde -40
+KPX Aogonek Q -40
+KPX Aogonek T -90
+KPX Aogonek Tcaron -90
+KPX Aogonek Tcommaaccent -90
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -80
+KPX Aogonek W -60
+KPX Aogonek Y -110
+KPX Aogonek Yacute -110
+KPX Aogonek Ydieresis -110
+KPX Aogonek u -30
+KPX Aogonek uacute -30
+KPX Aogonek ucircumflex -30
+KPX Aogonek udieresis -30
+KPX Aogonek ugrave -30
+KPX Aogonek uhungarumlaut -30
+KPX Aogonek umacron -30
+KPX Aogonek uogonek -30
+KPX Aogonek uring -30
+KPX Aogonek v -40
+KPX Aogonek w -30
+KPX Aogonek y -30
+KPX Aogonek yacute -30
+KPX Aogonek ydieresis -30
+KPX Aring C -40
+KPX Aring Cacute -40
+KPX Aring Ccaron -40
+KPX Aring Ccedilla -40
+KPX Aring G -50
+KPX Aring Gbreve -50
+KPX Aring Gcommaaccent -50
+KPX Aring O -40
+KPX Aring Oacute -40
+KPX Aring Ocircumflex -40
+KPX Aring Odieresis -40
+KPX Aring Ograve -40
+KPX Aring Ohungarumlaut -40
+KPX Aring Omacron -40
+KPX Aring Oslash -40
+KPX Aring Otilde -40
+KPX Aring Q -40
+KPX Aring T -90
+KPX Aring Tcaron -90
+KPX Aring Tcommaaccent -90
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -80
+KPX Aring W -60
+KPX Aring Y -110
+KPX Aring Yacute -110
+KPX Aring Ydieresis -110
+KPX Aring u -30
+KPX Aring uacute -30
+KPX Aring ucircumflex -30
+KPX Aring udieresis -30
+KPX Aring ugrave -30
+KPX Aring uhungarumlaut -30
+KPX Aring umacron -30
+KPX Aring uogonek -30
+KPX Aring uring -30
+KPX Aring v -40
+KPX Aring w -30
+KPX Aring y -30
+KPX Aring yacute -30
+KPX Aring ydieresis -30
+KPX Atilde C -40
+KPX Atilde Cacute -40
+KPX Atilde Ccaron -40
+KPX Atilde Ccedilla -40
+KPX Atilde G -50
+KPX Atilde Gbreve -50
+KPX Atilde Gcommaaccent -50
+KPX Atilde O -40
+KPX Atilde Oacute -40
+KPX Atilde Ocircumflex -40
+KPX Atilde Odieresis -40
+KPX Atilde Ograve -40
+KPX Atilde Ohungarumlaut -40
+KPX Atilde Omacron -40
+KPX Atilde Oslash -40
+KPX Atilde Otilde -40
+KPX Atilde Q -40
+KPX Atilde T -90
+KPX Atilde Tcaron -90
+KPX Atilde Tcommaaccent -90
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -80
+KPX Atilde W -60
+KPX Atilde Y -110
+KPX Atilde Yacute -110
+KPX Atilde Ydieresis -110
+KPX Atilde u -30
+KPX Atilde uacute -30
+KPX Atilde ucircumflex -30
+KPX Atilde udieresis -30
+KPX Atilde ugrave -30
+KPX Atilde uhungarumlaut -30
+KPX Atilde umacron -30
+KPX Atilde uogonek -30
+KPX Atilde uring -30
+KPX Atilde v -40
+KPX Atilde w -30
+KPX Atilde y -30
+KPX Atilde yacute -30
+KPX Atilde ydieresis -30
+KPX B A -30
+KPX B Aacute -30
+KPX B Abreve -30
+KPX B Acircumflex -30
+KPX B Adieresis -30
+KPX B Agrave -30
+KPX B Amacron -30
+KPX B Aogonek -30
+KPX B Aring -30
+KPX B Atilde -30
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -40
+KPX D Aacute -40
+KPX D Abreve -40
+KPX D Acircumflex -40
+KPX D Adieresis -40
+KPX D Agrave -40
+KPX D Amacron -40
+KPX D Aogonek -40
+KPX D Aring -40
+KPX D Atilde -40
+KPX D V -40
+KPX D W -40
+KPX D Y -70
+KPX D Yacute -70
+KPX D Ydieresis -70
+KPX D comma -30
+KPX D period -30
+KPX Dcaron A -40
+KPX Dcaron Aacute -40
+KPX Dcaron Abreve -40
+KPX Dcaron Acircumflex -40
+KPX Dcaron Adieresis -40
+KPX Dcaron Agrave -40
+KPX Dcaron Amacron -40
+KPX Dcaron Aogonek -40
+KPX Dcaron Aring -40
+KPX Dcaron Atilde -40
+KPX Dcaron V -40
+KPX Dcaron W -40
+KPX Dcaron Y -70
+KPX Dcaron Yacute -70
+KPX Dcaron Ydieresis -70
+KPX Dcaron comma -30
+KPX Dcaron period -30
+KPX Dcroat A -40
+KPX Dcroat Aacute -40
+KPX Dcroat Abreve -40
+KPX Dcroat Acircumflex -40
+KPX Dcroat Adieresis -40
+KPX Dcroat Agrave -40
+KPX Dcroat Amacron -40
+KPX Dcroat Aogonek -40
+KPX Dcroat Aring -40
+KPX Dcroat Atilde -40
+KPX Dcroat V -40
+KPX Dcroat W -40
+KPX Dcroat Y -70
+KPX Dcroat Yacute -70
+KPX Dcroat Ydieresis -70
+KPX Dcroat comma -30
+KPX Dcroat period -30
+KPX F A -80
+KPX F Aacute -80
+KPX F Abreve -80
+KPX F Acircumflex -80
+KPX F Adieresis -80
+KPX F Agrave -80
+KPX F Amacron -80
+KPX F Aogonek -80
+KPX F Aring -80
+KPX F Atilde -80
+KPX F a -20
+KPX F aacute -20
+KPX F abreve -20
+KPX F acircumflex -20
+KPX F adieresis -20
+KPX F agrave -20
+KPX F amacron -20
+KPX F aogonek -20
+KPX F aring -20
+KPX F atilde -20
+KPX F comma -100
+KPX F period -100
+KPX J A -20
+KPX J Aacute -20
+KPX J Abreve -20
+KPX J Acircumflex -20
+KPX J Adieresis -20
+KPX J Agrave -20
+KPX J Amacron -20
+KPX J Aogonek -20
+KPX J Aring -20
+KPX J Atilde -20
+KPX J comma -20
+KPX J period -20
+KPX J u -20
+KPX J uacute -20
+KPX J ucircumflex -20
+KPX J udieresis -20
+KPX J ugrave -20
+KPX J uhungarumlaut -20
+KPX J umacron -20
+KPX J uogonek -20
+KPX J uring -20
+KPX K O -30
+KPX K Oacute -30
+KPX K Ocircumflex -30
+KPX K Odieresis -30
+KPX K Ograve -30
+KPX K Ohungarumlaut -30
+KPX K Omacron -30
+KPX K Oslash -30
+KPX K Otilde -30
+KPX K e -15
+KPX K eacute -15
+KPX K ecaron -15
+KPX K ecircumflex -15
+KPX K edieresis -15
+KPX K edotaccent -15
+KPX K egrave -15
+KPX K emacron -15
+KPX K eogonek -15
+KPX K o -35
+KPX K oacute -35
+KPX K ocircumflex -35
+KPX K odieresis -35
+KPX K ograve -35
+KPX K ohungarumlaut -35
+KPX K omacron -35
+KPX K oslash -35
+KPX K otilde -35
+KPX K u -30
+KPX K uacute -30
+KPX K ucircumflex -30
+KPX K udieresis -30
+KPX K ugrave -30
+KPX K uhungarumlaut -30
+KPX K umacron -30
+KPX K uogonek -30
+KPX K uring -30
+KPX K y -40
+KPX K yacute -40
+KPX K ydieresis -40
+KPX Kcommaaccent O -30
+KPX Kcommaaccent Oacute -30
+KPX Kcommaaccent Ocircumflex -30
+KPX Kcommaaccent Odieresis -30
+KPX Kcommaaccent Ograve -30
+KPX Kcommaaccent Ohungarumlaut -30
+KPX Kcommaaccent Omacron -30
+KPX Kcommaaccent Oslash -30
+KPX Kcommaaccent Otilde -30
+KPX Kcommaaccent e -15
+KPX Kcommaaccent eacute -15
+KPX Kcommaaccent ecaron -15
+KPX Kcommaaccent ecircumflex -15
+KPX Kcommaaccent edieresis -15
+KPX Kcommaaccent edotaccent -15
+KPX Kcommaaccent egrave -15
+KPX Kcommaaccent emacron -15
+KPX Kcommaaccent eogonek -15
+KPX Kcommaaccent o -35
+KPX Kcommaaccent oacute -35
+KPX Kcommaaccent ocircumflex -35
+KPX Kcommaaccent odieresis -35
+KPX Kcommaaccent ograve -35
+KPX Kcommaaccent ohungarumlaut -35
+KPX Kcommaaccent omacron -35
+KPX Kcommaaccent oslash -35
+KPX Kcommaaccent otilde -35
+KPX Kcommaaccent u -30
+KPX Kcommaaccent uacute -30
+KPX Kcommaaccent ucircumflex -30
+KPX Kcommaaccent udieresis -30
+KPX Kcommaaccent ugrave -30
+KPX Kcommaaccent uhungarumlaut -30
+KPX Kcommaaccent umacron -30
+KPX Kcommaaccent uogonek -30
+KPX Kcommaaccent uring -30
+KPX Kcommaaccent y -40
+KPX Kcommaaccent yacute -40
+KPX Kcommaaccent ydieresis -40
+KPX L T -90
+KPX L Tcaron -90
+KPX L Tcommaaccent -90
+KPX L V -110
+KPX L W -80
+KPX L Y -120
+KPX L Yacute -120
+KPX L Ydieresis -120
+KPX L quotedblright -140
+KPX L quoteright -140
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -90
+KPX Lacute Tcaron -90
+KPX Lacute Tcommaaccent -90
+KPX Lacute V -110
+KPX Lacute W -80
+KPX Lacute Y -120
+KPX Lacute Yacute -120
+KPX Lacute Ydieresis -120
+KPX Lacute quotedblright -140
+KPX Lacute quoteright -140
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcommaaccent T -90
+KPX Lcommaaccent Tcaron -90
+KPX Lcommaaccent Tcommaaccent -90
+KPX Lcommaaccent V -110
+KPX Lcommaaccent W -80
+KPX Lcommaaccent Y -120
+KPX Lcommaaccent Yacute -120
+KPX Lcommaaccent Ydieresis -120
+KPX Lcommaaccent quotedblright -140
+KPX Lcommaaccent quoteright -140
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -90
+KPX Lslash Tcaron -90
+KPX Lslash Tcommaaccent -90
+KPX Lslash V -110
+KPX Lslash W -80
+KPX Lslash Y -120
+KPX Lslash Yacute -120
+KPX Lslash Ydieresis -120
+KPX Lslash quotedblright -140
+KPX Lslash quoteright -140
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX O A -50
+KPX O Aacute -50
+KPX O Abreve -50
+KPX O Acircumflex -50
+KPX O Adieresis -50
+KPX O Agrave -50
+KPX O Amacron -50
+KPX O Aogonek -50
+KPX O Aring -50
+KPX O Atilde -50
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -50
+KPX O X -50
+KPX O Y -70
+KPX O Yacute -70
+KPX O Ydieresis -70
+KPX O comma -40
+KPX O period -40
+KPX Oacute A -50
+KPX Oacute Aacute -50
+KPX Oacute Abreve -50
+KPX Oacute Acircumflex -50
+KPX Oacute Adieresis -50
+KPX Oacute Agrave -50
+KPX Oacute Amacron -50
+KPX Oacute Aogonek -50
+KPX Oacute Aring -50
+KPX Oacute Atilde -50
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -50
+KPX Oacute X -50
+KPX Oacute Y -70
+KPX Oacute Yacute -70
+KPX Oacute Ydieresis -70
+KPX Oacute comma -40
+KPX Oacute period -40
+KPX Ocircumflex A -50
+KPX Ocircumflex Aacute -50
+KPX Ocircumflex Abreve -50
+KPX Ocircumflex Acircumflex -50
+KPX Ocircumflex Adieresis -50
+KPX Ocircumflex Agrave -50
+KPX Ocircumflex Amacron -50
+KPX Ocircumflex Aogonek -50
+KPX Ocircumflex Aring -50
+KPX Ocircumflex Atilde -50
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -50
+KPX Ocircumflex X -50
+KPX Ocircumflex Y -70
+KPX Ocircumflex Yacute -70
+KPX Ocircumflex Ydieresis -70
+KPX Ocircumflex comma -40
+KPX Ocircumflex period -40
+KPX Odieresis A -50
+KPX Odieresis Aacute -50
+KPX Odieresis Abreve -50
+KPX Odieresis Acircumflex -50
+KPX Odieresis Adieresis -50
+KPX Odieresis Agrave -50
+KPX Odieresis Amacron -50
+KPX Odieresis Aogonek -50
+KPX Odieresis Aring -50
+KPX Odieresis Atilde -50
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -50
+KPX Odieresis X -50
+KPX Odieresis Y -70
+KPX Odieresis Yacute -70
+KPX Odieresis Ydieresis -70
+KPX Odieresis comma -40
+KPX Odieresis period -40
+KPX Ograve A -50
+KPX Ograve Aacute -50
+KPX Ograve Abreve -50
+KPX Ograve Acircumflex -50
+KPX Ograve Adieresis -50
+KPX Ograve Agrave -50
+KPX Ograve Amacron -50
+KPX Ograve Aogonek -50
+KPX Ograve Aring -50
+KPX Ograve Atilde -50
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -50
+KPX Ograve X -50
+KPX Ograve Y -70
+KPX Ograve Yacute -70
+KPX Ograve Ydieresis -70
+KPX Ograve comma -40
+KPX Ograve period -40
+KPX Ohungarumlaut A -50
+KPX Ohungarumlaut Aacute -50
+KPX Ohungarumlaut Abreve -50
+KPX Ohungarumlaut Acircumflex -50
+KPX Ohungarumlaut Adieresis -50
+KPX Ohungarumlaut Agrave -50
+KPX Ohungarumlaut Amacron -50
+KPX Ohungarumlaut Aogonek -50
+KPX Ohungarumlaut Aring -50
+KPX Ohungarumlaut Atilde -50
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -50
+KPX Ohungarumlaut X -50
+KPX Ohungarumlaut Y -70
+KPX Ohungarumlaut Yacute -70
+KPX Ohungarumlaut Ydieresis -70
+KPX Ohungarumlaut comma -40
+KPX Ohungarumlaut period -40
+KPX Omacron A -50
+KPX Omacron Aacute -50
+KPX Omacron Abreve -50
+KPX Omacron Acircumflex -50
+KPX Omacron Adieresis -50
+KPX Omacron Agrave -50
+KPX Omacron Amacron -50
+KPX Omacron Aogonek -50
+KPX Omacron Aring -50
+KPX Omacron Atilde -50
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -50
+KPX Omacron X -50
+KPX Omacron Y -70
+KPX Omacron Yacute -70
+KPX Omacron Ydieresis -70
+KPX Omacron comma -40
+KPX Omacron period -40
+KPX Oslash A -50
+KPX Oslash Aacute -50
+KPX Oslash Abreve -50
+KPX Oslash Acircumflex -50
+KPX Oslash Adieresis -50
+KPX Oslash Agrave -50
+KPX Oslash Amacron -50
+KPX Oslash Aogonek -50
+KPX Oslash Aring -50
+KPX Oslash Atilde -50
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -50
+KPX Oslash X -50
+KPX Oslash Y -70
+KPX Oslash Yacute -70
+KPX Oslash Ydieresis -70
+KPX Oslash comma -40
+KPX Oslash period -40
+KPX Otilde A -50
+KPX Otilde Aacute -50
+KPX Otilde Abreve -50
+KPX Otilde Acircumflex -50
+KPX Otilde Adieresis -50
+KPX Otilde Agrave -50
+KPX Otilde Amacron -50
+KPX Otilde Aogonek -50
+KPX Otilde Aring -50
+KPX Otilde Atilde -50
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -50
+KPX Otilde X -50
+KPX Otilde Y -70
+KPX Otilde Yacute -70
+KPX Otilde Ydieresis -70
+KPX Otilde comma -40
+KPX Otilde period -40
+KPX P A -100
+KPX P Aacute -100
+KPX P Abreve -100
+KPX P Acircumflex -100
+KPX P Adieresis -100
+KPX P Agrave -100
+KPX P Amacron -100
+KPX P Aogonek -100
+KPX P Aring -100
+KPX P Atilde -100
+KPX P a -30
+KPX P aacute -30
+KPX P abreve -30
+KPX P acircumflex -30
+KPX P adieresis -30
+KPX P agrave -30
+KPX P amacron -30
+KPX P aogonek -30
+KPX P aring -30
+KPX P atilde -30
+KPX P comma -120
+KPX P e -30
+KPX P eacute -30
+KPX P ecaron -30
+KPX P ecircumflex -30
+KPX P edieresis -30
+KPX P edotaccent -30
+KPX P egrave -30
+KPX P emacron -30
+KPX P eogonek -30
+KPX P o -40
+KPX P oacute -40
+KPX P ocircumflex -40
+KPX P odieresis -40
+KPX P ograve -40
+KPX P ohungarumlaut -40
+KPX P omacron -40
+KPX P oslash -40
+KPX P otilde -40
+KPX P period -120
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX Q comma 20
+KPX Q period 20
+KPX R O -20
+KPX R Oacute -20
+KPX R Ocircumflex -20
+KPX R Odieresis -20
+KPX R Ograve -20
+KPX R Ohungarumlaut -20
+KPX R Omacron -20
+KPX R Oslash -20
+KPX R Otilde -20
+KPX R T -20
+KPX R Tcaron -20
+KPX R Tcommaaccent -20
+KPX R U -20
+KPX R Uacute -20
+KPX R Ucircumflex -20
+KPX R Udieresis -20
+KPX R Ugrave -20
+KPX R Uhungarumlaut -20
+KPX R Umacron -20
+KPX R Uogonek -20
+KPX R Uring -20
+KPX R V -50
+KPX R W -40
+KPX R Y -50
+KPX R Yacute -50
+KPX R Ydieresis -50
+KPX Racute O -20
+KPX Racute Oacute -20
+KPX Racute Ocircumflex -20
+KPX Racute Odieresis -20
+KPX Racute Ograve -20
+KPX Racute Ohungarumlaut -20
+KPX Racute Omacron -20
+KPX Racute Oslash -20
+KPX Racute Otilde -20
+KPX Racute T -20
+KPX Racute Tcaron -20
+KPX Racute Tcommaaccent -20
+KPX Racute U -20
+KPX Racute Uacute -20
+KPX Racute Ucircumflex -20
+KPX Racute Udieresis -20
+KPX Racute Ugrave -20
+KPX Racute Uhungarumlaut -20
+KPX Racute Umacron -20
+KPX Racute Uogonek -20
+KPX Racute Uring -20
+KPX Racute V -50
+KPX Racute W -40
+KPX Racute Y -50
+KPX Racute Yacute -50
+KPX Racute Ydieresis -50
+KPX Rcaron O -20
+KPX Rcaron Oacute -20
+KPX Rcaron Ocircumflex -20
+KPX Rcaron Odieresis -20
+KPX Rcaron Ograve -20
+KPX Rcaron Ohungarumlaut -20
+KPX Rcaron Omacron -20
+KPX Rcaron Oslash -20
+KPX Rcaron Otilde -20
+KPX Rcaron T -20
+KPX Rcaron Tcaron -20
+KPX Rcaron Tcommaaccent -20
+KPX Rcaron U -20
+KPX Rcaron Uacute -20
+KPX Rcaron Ucircumflex -20
+KPX Rcaron Udieresis -20
+KPX Rcaron Ugrave -20
+KPX Rcaron Uhungarumlaut -20
+KPX Rcaron Umacron -20
+KPX Rcaron Uogonek -20
+KPX Rcaron Uring -20
+KPX Rcaron V -50
+KPX Rcaron W -40
+KPX Rcaron Y -50
+KPX Rcaron Yacute -50
+KPX Rcaron Ydieresis -50
+KPX Rcommaaccent O -20
+KPX Rcommaaccent Oacute -20
+KPX Rcommaaccent Ocircumflex -20
+KPX Rcommaaccent Odieresis -20
+KPX Rcommaaccent Ograve -20
+KPX Rcommaaccent Ohungarumlaut -20
+KPX Rcommaaccent Omacron -20
+KPX Rcommaaccent Oslash -20
+KPX Rcommaaccent Otilde -20
+KPX Rcommaaccent T -20
+KPX Rcommaaccent Tcaron -20
+KPX Rcommaaccent Tcommaaccent -20
+KPX Rcommaaccent U -20
+KPX Rcommaaccent Uacute -20
+KPX Rcommaaccent Ucircumflex -20
+KPX Rcommaaccent Udieresis -20
+KPX Rcommaaccent Ugrave -20
+KPX Rcommaaccent Uhungarumlaut -20
+KPX Rcommaaccent Umacron -20
+KPX Rcommaaccent Uogonek -20
+KPX Rcommaaccent Uring -20
+KPX Rcommaaccent V -50
+KPX Rcommaaccent W -40
+KPX Rcommaaccent Y -50
+KPX Rcommaaccent Yacute -50
+KPX Rcommaaccent Ydieresis -50
+KPX T A -90
+KPX T Aacute -90
+KPX T Abreve -90
+KPX T Acircumflex -90
+KPX T Adieresis -90
+KPX T Agrave -90
+KPX T Amacron -90
+KPX T Aogonek -90
+KPX T Aring -90
+KPX T Atilde -90
+KPX T O -40
+KPX T Oacute -40
+KPX T Ocircumflex -40
+KPX T Odieresis -40
+KPX T Ograve -40
+KPX T Ohungarumlaut -40
+KPX T Omacron -40
+KPX T Oslash -40
+KPX T Otilde -40
+KPX T a -80
+KPX T aacute -80
+KPX T abreve -80
+KPX T acircumflex -80
+KPX T adieresis -80
+KPX T agrave -80
+KPX T amacron -80
+KPX T aogonek -80
+KPX T aring -80
+KPX T atilde -80
+KPX T colon -40
+KPX T comma -80
+KPX T e -60
+KPX T eacute -60
+KPX T ecaron -60
+KPX T ecircumflex -60
+KPX T edieresis -60
+KPX T edotaccent -60
+KPX T egrave -60
+KPX T emacron -60
+KPX T eogonek -60
+KPX T hyphen -120
+KPX T o -80
+KPX T oacute -80
+KPX T ocircumflex -80
+KPX T odieresis -80
+KPX T ograve -80
+KPX T ohungarumlaut -80
+KPX T omacron -80
+KPX T oslash -80
+KPX T otilde -80
+KPX T period -80
+KPX T r -80
+KPX T racute -80
+KPX T rcommaaccent -80
+KPX T semicolon -40
+KPX T u -90
+KPX T uacute -90
+KPX T ucircumflex -90
+KPX T udieresis -90
+KPX T ugrave -90
+KPX T uhungarumlaut -90
+KPX T umacron -90
+KPX T uogonek -90
+KPX T uring -90
+KPX T w -60
+KPX T y -60
+KPX T yacute -60
+KPX T ydieresis -60
+KPX Tcaron A -90
+KPX Tcaron Aacute -90
+KPX Tcaron Abreve -90
+KPX Tcaron Acircumflex -90
+KPX Tcaron Adieresis -90
+KPX Tcaron Agrave -90
+KPX Tcaron Amacron -90
+KPX Tcaron Aogonek -90
+KPX Tcaron Aring -90
+KPX Tcaron Atilde -90
+KPX Tcaron O -40
+KPX Tcaron Oacute -40
+KPX Tcaron Ocircumflex -40
+KPX Tcaron Odieresis -40
+KPX Tcaron Ograve -40
+KPX Tcaron Ohungarumlaut -40
+KPX Tcaron Omacron -40
+KPX Tcaron Oslash -40
+KPX Tcaron Otilde -40
+KPX Tcaron a -80
+KPX Tcaron aacute -80
+KPX Tcaron abreve -80
+KPX Tcaron acircumflex -80
+KPX Tcaron adieresis -80
+KPX Tcaron agrave -80
+KPX Tcaron amacron -80
+KPX Tcaron aogonek -80
+KPX Tcaron aring -80
+KPX Tcaron atilde -80
+KPX Tcaron colon -40
+KPX Tcaron comma -80
+KPX Tcaron e -60
+KPX Tcaron eacute -60
+KPX Tcaron ecaron -60
+KPX Tcaron ecircumflex -60
+KPX Tcaron edieresis -60
+KPX Tcaron edotaccent -60
+KPX Tcaron egrave -60
+KPX Tcaron emacron -60
+KPX Tcaron eogonek -60
+KPX Tcaron hyphen -120
+KPX Tcaron o -80
+KPX Tcaron oacute -80
+KPX Tcaron ocircumflex -80
+KPX Tcaron odieresis -80
+KPX Tcaron ograve -80
+KPX Tcaron ohungarumlaut -80
+KPX Tcaron omacron -80
+KPX Tcaron oslash -80
+KPX Tcaron otilde -80
+KPX Tcaron period -80
+KPX Tcaron r -80
+KPX Tcaron racute -80
+KPX Tcaron rcommaaccent -80
+KPX Tcaron semicolon -40
+KPX Tcaron u -90
+KPX Tcaron uacute -90
+KPX Tcaron ucircumflex -90
+KPX Tcaron udieresis -90
+KPX Tcaron ugrave -90
+KPX Tcaron uhungarumlaut -90
+KPX Tcaron umacron -90
+KPX Tcaron uogonek -90
+KPX Tcaron uring -90
+KPX Tcaron w -60
+KPX Tcaron y -60
+KPX Tcaron yacute -60
+KPX Tcaron ydieresis -60
+KPX Tcommaaccent A -90
+KPX Tcommaaccent Aacute -90
+KPX Tcommaaccent Abreve -90
+KPX Tcommaaccent Acircumflex -90
+KPX Tcommaaccent Adieresis -90
+KPX Tcommaaccent Agrave -90
+KPX Tcommaaccent Amacron -90
+KPX Tcommaaccent Aogonek -90
+KPX Tcommaaccent Aring -90
+KPX Tcommaaccent Atilde -90
+KPX Tcommaaccent O -40
+KPX Tcommaaccent Oacute -40
+KPX Tcommaaccent Ocircumflex -40
+KPX Tcommaaccent Odieresis -40
+KPX Tcommaaccent Ograve -40
+KPX Tcommaaccent Ohungarumlaut -40
+KPX Tcommaaccent Omacron -40
+KPX Tcommaaccent Oslash -40
+KPX Tcommaaccent Otilde -40
+KPX Tcommaaccent a -80
+KPX Tcommaaccent aacute -80
+KPX Tcommaaccent abreve -80
+KPX Tcommaaccent acircumflex -80
+KPX Tcommaaccent adieresis -80
+KPX Tcommaaccent agrave -80
+KPX Tcommaaccent amacron -80
+KPX Tcommaaccent aogonek -80
+KPX Tcommaaccent aring -80
+KPX Tcommaaccent atilde -80
+KPX Tcommaaccent colon -40
+KPX Tcommaaccent comma -80
+KPX Tcommaaccent e -60
+KPX Tcommaaccent eacute -60
+KPX Tcommaaccent ecaron -60
+KPX Tcommaaccent ecircumflex -60
+KPX Tcommaaccent edieresis -60
+KPX Tcommaaccent edotaccent -60
+KPX Tcommaaccent egrave -60
+KPX Tcommaaccent emacron -60
+KPX Tcommaaccent eogonek -60
+KPX Tcommaaccent hyphen -120
+KPX Tcommaaccent o -80
+KPX Tcommaaccent oacute -80
+KPX Tcommaaccent ocircumflex -80
+KPX Tcommaaccent odieresis -80
+KPX Tcommaaccent ograve -80
+KPX Tcommaaccent ohungarumlaut -80
+KPX Tcommaaccent omacron -80
+KPX Tcommaaccent oslash -80
+KPX Tcommaaccent otilde -80
+KPX Tcommaaccent period -80
+KPX Tcommaaccent r -80
+KPX Tcommaaccent racute -80
+KPX Tcommaaccent rcommaaccent -80
+KPX Tcommaaccent semicolon -40
+KPX Tcommaaccent u -90
+KPX Tcommaaccent uacute -90
+KPX Tcommaaccent ucircumflex -90
+KPX Tcommaaccent udieresis -90
+KPX Tcommaaccent ugrave -90
+KPX Tcommaaccent uhungarumlaut -90
+KPX Tcommaaccent umacron -90
+KPX Tcommaaccent uogonek -90
+KPX Tcommaaccent uring -90
+KPX Tcommaaccent w -60
+KPX Tcommaaccent y -60
+KPX Tcommaaccent yacute -60
+KPX Tcommaaccent ydieresis -60
+KPX U A -50
+KPX U Aacute -50
+KPX U Abreve -50
+KPX U Acircumflex -50
+KPX U Adieresis -50
+KPX U Agrave -50
+KPX U Amacron -50
+KPX U Aogonek -50
+KPX U Aring -50
+KPX U Atilde -50
+KPX U comma -30
+KPX U period -30
+KPX Uacute A -50
+KPX Uacute Aacute -50
+KPX Uacute Abreve -50
+KPX Uacute Acircumflex -50
+KPX Uacute Adieresis -50
+KPX Uacute Agrave -50
+KPX Uacute Amacron -50
+KPX Uacute Aogonek -50
+KPX Uacute Aring -50
+KPX Uacute Atilde -50
+KPX Uacute comma -30
+KPX Uacute period -30
+KPX Ucircumflex A -50
+KPX Ucircumflex Aacute -50
+KPX Ucircumflex Abreve -50
+KPX Ucircumflex Acircumflex -50
+KPX Ucircumflex Adieresis -50
+KPX Ucircumflex Agrave -50
+KPX Ucircumflex Amacron -50
+KPX Ucircumflex Aogonek -50
+KPX Ucircumflex Aring -50
+KPX Ucircumflex Atilde -50
+KPX Ucircumflex comma -30
+KPX Ucircumflex period -30
+KPX Udieresis A -50
+KPX Udieresis Aacute -50
+KPX Udieresis Abreve -50
+KPX Udieresis Acircumflex -50
+KPX Udieresis Adieresis -50
+KPX Udieresis Agrave -50
+KPX Udieresis Amacron -50
+KPX Udieresis Aogonek -50
+KPX Udieresis Aring -50
+KPX Udieresis Atilde -50
+KPX Udieresis comma -30
+KPX Udieresis period -30
+KPX Ugrave A -50
+KPX Ugrave Aacute -50
+KPX Ugrave Abreve -50
+KPX Ugrave Acircumflex -50
+KPX Ugrave Adieresis -50
+KPX Ugrave Agrave -50
+KPX Ugrave Amacron -50
+KPX Ugrave Aogonek -50
+KPX Ugrave Aring -50
+KPX Ugrave Atilde -50
+KPX Ugrave comma -30
+KPX Ugrave period -30
+KPX Uhungarumlaut A -50
+KPX Uhungarumlaut Aacute -50
+KPX Uhungarumlaut Abreve -50
+KPX Uhungarumlaut Acircumflex -50
+KPX Uhungarumlaut Adieresis -50
+KPX Uhungarumlaut Agrave -50
+KPX Uhungarumlaut Amacron -50
+KPX Uhungarumlaut Aogonek -50
+KPX Uhungarumlaut Aring -50
+KPX Uhungarumlaut Atilde -50
+KPX Uhungarumlaut comma -30
+KPX Uhungarumlaut period -30
+KPX Umacron A -50
+KPX Umacron Aacute -50
+KPX Umacron Abreve -50
+KPX Umacron Acircumflex -50
+KPX Umacron Adieresis -50
+KPX Umacron Agrave -50
+KPX Umacron Amacron -50
+KPX Umacron Aogonek -50
+KPX Umacron Aring -50
+KPX Umacron Atilde -50
+KPX Umacron comma -30
+KPX Umacron period -30
+KPX Uogonek A -50
+KPX Uogonek Aacute -50
+KPX Uogonek Abreve -50
+KPX Uogonek Acircumflex -50
+KPX Uogonek Adieresis -50
+KPX Uogonek Agrave -50
+KPX Uogonek Amacron -50
+KPX Uogonek Aogonek -50
+KPX Uogonek Aring -50
+KPX Uogonek Atilde -50
+KPX Uogonek comma -30
+KPX Uogonek period -30
+KPX Uring A -50
+KPX Uring Aacute -50
+KPX Uring Abreve -50
+KPX Uring Acircumflex -50
+KPX Uring Adieresis -50
+KPX Uring Agrave -50
+KPX Uring Amacron -50
+KPX Uring Aogonek -50
+KPX Uring Aring -50
+KPX Uring Atilde -50
+KPX Uring comma -30
+KPX Uring period -30
+KPX V A -80
+KPX V Aacute -80
+KPX V Abreve -80
+KPX V Acircumflex -80
+KPX V Adieresis -80
+KPX V Agrave -80
+KPX V Amacron -80
+KPX V Aogonek -80
+KPX V Aring -80
+KPX V Atilde -80
+KPX V G -50
+KPX V Gbreve -50
+KPX V Gcommaaccent -50
+KPX V O -50
+KPX V Oacute -50
+KPX V Ocircumflex -50
+KPX V Odieresis -50
+KPX V Ograve -50
+KPX V Ohungarumlaut -50
+KPX V Omacron -50
+KPX V Oslash -50
+KPX V Otilde -50
+KPX V a -60
+KPX V aacute -60
+KPX V abreve -60
+KPX V acircumflex -60
+KPX V adieresis -60
+KPX V agrave -60
+KPX V amacron -60
+KPX V aogonek -60
+KPX V aring -60
+KPX V atilde -60
+KPX V colon -40
+KPX V comma -120
+KPX V e -50
+KPX V eacute -50
+KPX V ecaron -50
+KPX V ecircumflex -50
+KPX V edieresis -50
+KPX V edotaccent -50
+KPX V egrave -50
+KPX V emacron -50
+KPX V eogonek -50
+KPX V hyphen -80
+KPX V o -90
+KPX V oacute -90
+KPX V ocircumflex -90
+KPX V odieresis -90
+KPX V ograve -90
+KPX V ohungarumlaut -90
+KPX V omacron -90
+KPX V oslash -90
+KPX V otilde -90
+KPX V period -120
+KPX V semicolon -40
+KPX V u -60
+KPX V uacute -60
+KPX V ucircumflex -60
+KPX V udieresis -60
+KPX V ugrave -60
+KPX V uhungarumlaut -60
+KPX V umacron -60
+KPX V uogonek -60
+KPX V uring -60
+KPX W A -60
+KPX W Aacute -60
+KPX W Abreve -60
+KPX W Acircumflex -60
+KPX W Adieresis -60
+KPX W Agrave -60
+KPX W Amacron -60
+KPX W Aogonek -60
+KPX W Aring -60
+KPX W Atilde -60
+KPX W O -20
+KPX W Oacute -20
+KPX W Ocircumflex -20
+KPX W Odieresis -20
+KPX W Ograve -20
+KPX W Ohungarumlaut -20
+KPX W Omacron -20
+KPX W Oslash -20
+KPX W Otilde -20
+KPX W a -40
+KPX W aacute -40
+KPX W abreve -40
+KPX W acircumflex -40
+KPX W adieresis -40
+KPX W agrave -40
+KPX W amacron -40
+KPX W aogonek -40
+KPX W aring -40
+KPX W atilde -40
+KPX W colon -10
+KPX W comma -80
+KPX W e -35
+KPX W eacute -35
+KPX W ecaron -35
+KPX W ecircumflex -35
+KPX W edieresis -35
+KPX W edotaccent -35
+KPX W egrave -35
+KPX W emacron -35
+KPX W eogonek -35
+KPX W hyphen -40
+KPX W o -60
+KPX W oacute -60
+KPX W ocircumflex -60
+KPX W odieresis -60
+KPX W ograve -60
+KPX W ohungarumlaut -60
+KPX W omacron -60
+KPX W oslash -60
+KPX W otilde -60
+KPX W period -80
+KPX W semicolon -10
+KPX W u -45
+KPX W uacute -45
+KPX W ucircumflex -45
+KPX W udieresis -45
+KPX W ugrave -45
+KPX W uhungarumlaut -45
+KPX W umacron -45
+KPX W uogonek -45
+KPX W uring -45
+KPX W y -20
+KPX W yacute -20
+KPX W ydieresis -20
+KPX Y A -110
+KPX Y Aacute -110
+KPX Y Abreve -110
+KPX Y Acircumflex -110
+KPX Y Adieresis -110
+KPX Y Agrave -110
+KPX Y Amacron -110
+KPX Y Aogonek -110
+KPX Y Aring -110
+KPX Y Atilde -110
+KPX Y O -70
+KPX Y Oacute -70
+KPX Y Ocircumflex -70
+KPX Y Odieresis -70
+KPX Y Ograve -70
+KPX Y Ohungarumlaut -70
+KPX Y Omacron -70
+KPX Y Oslash -70
+KPX Y Otilde -70
+KPX Y a -90
+KPX Y aacute -90
+KPX Y abreve -90
+KPX Y acircumflex -90
+KPX Y adieresis -90
+KPX Y agrave -90
+KPX Y amacron -90
+KPX Y aogonek -90
+KPX Y aring -90
+KPX Y atilde -90
+KPX Y colon -50
+KPX Y comma -100
+KPX Y e -80
+KPX Y eacute -80
+KPX Y ecaron -80
+KPX Y ecircumflex -80
+KPX Y edieresis -80
+KPX Y edotaccent -80
+KPX Y egrave -80
+KPX Y emacron -80
+KPX Y eogonek -80
+KPX Y o -100
+KPX Y oacute -100
+KPX Y ocircumflex -100
+KPX Y odieresis -100
+KPX Y ograve -100
+KPX Y ohungarumlaut -100
+KPX Y omacron -100
+KPX Y oslash -100
+KPX Y otilde -100
+KPX Y period -100
+KPX Y semicolon -50
+KPX Y u -100
+KPX Y uacute -100
+KPX Y ucircumflex -100
+KPX Y udieresis -100
+KPX Y ugrave -100
+KPX Y uhungarumlaut -100
+KPX Y umacron -100
+KPX Y uogonek -100
+KPX Y uring -100
+KPX Yacute A -110
+KPX Yacute Aacute -110
+KPX Yacute Abreve -110
+KPX Yacute Acircumflex -110
+KPX Yacute Adieresis -110
+KPX Yacute Agrave -110
+KPX Yacute Amacron -110
+KPX Yacute Aogonek -110
+KPX Yacute Aring -110
+KPX Yacute Atilde -110
+KPX Yacute O -70
+KPX Yacute Oacute -70
+KPX Yacute Ocircumflex -70
+KPX Yacute Odieresis -70
+KPX Yacute Ograve -70
+KPX Yacute Ohungarumlaut -70
+KPX Yacute Omacron -70
+KPX Yacute Oslash -70
+KPX Yacute Otilde -70
+KPX Yacute a -90
+KPX Yacute aacute -90
+KPX Yacute abreve -90
+KPX Yacute acircumflex -90
+KPX Yacute adieresis -90
+KPX Yacute agrave -90
+KPX Yacute amacron -90
+KPX Yacute aogonek -90
+KPX Yacute aring -90
+KPX Yacute atilde -90
+KPX Yacute colon -50
+KPX Yacute comma -100
+KPX Yacute e -80
+KPX Yacute eacute -80
+KPX Yacute ecaron -80
+KPX Yacute ecircumflex -80
+KPX Yacute edieresis -80
+KPX Yacute edotaccent -80
+KPX Yacute egrave -80
+KPX Yacute emacron -80
+KPX Yacute eogonek -80
+KPX Yacute o -100
+KPX Yacute oacute -100
+KPX Yacute ocircumflex -100
+KPX Yacute odieresis -100
+KPX Yacute ograve -100
+KPX Yacute ohungarumlaut -100
+KPX Yacute omacron -100
+KPX Yacute oslash -100
+KPX Yacute otilde -100
+KPX Yacute period -100
+KPX Yacute semicolon -50
+KPX Yacute u -100
+KPX Yacute uacute -100
+KPX Yacute ucircumflex -100
+KPX Yacute udieresis -100
+KPX Yacute ugrave -100
+KPX Yacute uhungarumlaut -100
+KPX Yacute umacron -100
+KPX Yacute uogonek -100
+KPX Yacute uring -100
+KPX Ydieresis A -110
+KPX Ydieresis Aacute -110
+KPX Ydieresis Abreve -110
+KPX Ydieresis Acircumflex -110
+KPX Ydieresis Adieresis -110
+KPX Ydieresis Agrave -110
+KPX Ydieresis Amacron -110
+KPX Ydieresis Aogonek -110
+KPX Ydieresis Aring -110
+KPX Ydieresis Atilde -110
+KPX Ydieresis O -70
+KPX Ydieresis Oacute -70
+KPX Ydieresis Ocircumflex -70
+KPX Ydieresis Odieresis -70
+KPX Ydieresis Ograve -70
+KPX Ydieresis Ohungarumlaut -70
+KPX Ydieresis Omacron -70
+KPX Ydieresis Oslash -70
+KPX Ydieresis Otilde -70
+KPX Ydieresis a -90
+KPX Ydieresis aacute -90
+KPX Ydieresis abreve -90
+KPX Ydieresis acircumflex -90
+KPX Ydieresis adieresis -90
+KPX Ydieresis agrave -90
+KPX Ydieresis amacron -90
+KPX Ydieresis aogonek -90
+KPX Ydieresis aring -90
+KPX Ydieresis atilde -90
+KPX Ydieresis colon -50
+KPX Ydieresis comma -100
+KPX Ydieresis e -80
+KPX Ydieresis eacute -80
+KPX Ydieresis ecaron -80
+KPX Ydieresis ecircumflex -80
+KPX Ydieresis edieresis -80
+KPX Ydieresis edotaccent -80
+KPX Ydieresis egrave -80
+KPX Ydieresis emacron -80
+KPX Ydieresis eogonek -80
+KPX Ydieresis o -100
+KPX Ydieresis oacute -100
+KPX Ydieresis ocircumflex -100
+KPX Ydieresis odieresis -100
+KPX Ydieresis ograve -100
+KPX Ydieresis ohungarumlaut -100
+KPX Ydieresis omacron -100
+KPX Ydieresis oslash -100
+KPX Ydieresis otilde -100
+KPX Ydieresis period -100
+KPX Ydieresis semicolon -50
+KPX Ydieresis u -100
+KPX Ydieresis uacute -100
+KPX Ydieresis ucircumflex -100
+KPX Ydieresis udieresis -100
+KPX Ydieresis ugrave -100
+KPX Ydieresis uhungarumlaut -100
+KPX Ydieresis umacron -100
+KPX Ydieresis uogonek -100
+KPX Ydieresis uring -100
+KPX a g -10
+KPX a gbreve -10
+KPX a gcommaaccent -10
+KPX a v -15
+KPX a w -15
+KPX a y -20
+KPX a yacute -20
+KPX a ydieresis -20
+KPX aacute g -10
+KPX aacute gbreve -10
+KPX aacute gcommaaccent -10
+KPX aacute v -15
+KPX aacute w -15
+KPX aacute y -20
+KPX aacute yacute -20
+KPX aacute ydieresis -20
+KPX abreve g -10
+KPX abreve gbreve -10
+KPX abreve gcommaaccent -10
+KPX abreve v -15
+KPX abreve w -15
+KPX abreve y -20
+KPX abreve yacute -20
+KPX abreve ydieresis -20
+KPX acircumflex g -10
+KPX acircumflex gbreve -10
+KPX acircumflex gcommaaccent -10
+KPX acircumflex v -15
+KPX acircumflex w -15
+KPX acircumflex y -20
+KPX acircumflex yacute -20
+KPX acircumflex ydieresis -20
+KPX adieresis g -10
+KPX adieresis gbreve -10
+KPX adieresis gcommaaccent -10
+KPX adieresis v -15
+KPX adieresis w -15
+KPX adieresis y -20
+KPX adieresis yacute -20
+KPX adieresis ydieresis -20
+KPX agrave g -10
+KPX agrave gbreve -10
+KPX agrave gcommaaccent -10
+KPX agrave v -15
+KPX agrave w -15
+KPX agrave y -20
+KPX agrave yacute -20
+KPX agrave ydieresis -20
+KPX amacron g -10
+KPX amacron gbreve -10
+KPX amacron gcommaaccent -10
+KPX amacron v -15
+KPX amacron w -15
+KPX amacron y -20
+KPX amacron yacute -20
+KPX amacron ydieresis -20
+KPX aogonek g -10
+KPX aogonek gbreve -10
+KPX aogonek gcommaaccent -10
+KPX aogonek v -15
+KPX aogonek w -15
+KPX aogonek y -20
+KPX aogonek yacute -20
+KPX aogonek ydieresis -20
+KPX aring g -10
+KPX aring gbreve -10
+KPX aring gcommaaccent -10
+KPX aring v -15
+KPX aring w -15
+KPX aring y -20
+KPX aring yacute -20
+KPX aring ydieresis -20
+KPX atilde g -10
+KPX atilde gbreve -10
+KPX atilde gcommaaccent -10
+KPX atilde v -15
+KPX atilde w -15
+KPX atilde y -20
+KPX atilde yacute -20
+KPX atilde ydieresis -20
+KPX b l -10
+KPX b lacute -10
+KPX b lcommaaccent -10
+KPX b lslash -10
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -20
+KPX b y -20
+KPX b yacute -20
+KPX b ydieresis -20
+KPX c h -10
+KPX c k -20
+KPX c kcommaaccent -20
+KPX c l -20
+KPX c lacute -20
+KPX c lcommaaccent -20
+KPX c lslash -20
+KPX c y -10
+KPX c yacute -10
+KPX c ydieresis -10
+KPX cacute h -10
+KPX cacute k -20
+KPX cacute kcommaaccent -20
+KPX cacute l -20
+KPX cacute lacute -20
+KPX cacute lcommaaccent -20
+KPX cacute lslash -20
+KPX cacute y -10
+KPX cacute yacute -10
+KPX cacute ydieresis -10
+KPX ccaron h -10
+KPX ccaron k -20
+KPX ccaron kcommaaccent -20
+KPX ccaron l -20
+KPX ccaron lacute -20
+KPX ccaron lcommaaccent -20
+KPX ccaron lslash -20
+KPX ccaron y -10
+KPX ccaron yacute -10
+KPX ccaron ydieresis -10
+KPX ccedilla h -10
+KPX ccedilla k -20
+KPX ccedilla kcommaaccent -20
+KPX ccedilla l -20
+KPX ccedilla lacute -20
+KPX ccedilla lcommaaccent -20
+KPX ccedilla lslash -20
+KPX ccedilla y -10
+KPX ccedilla yacute -10
+KPX ccedilla ydieresis -10
+KPX colon space -40
+KPX comma quotedblright -120
+KPX comma quoteright -120
+KPX comma space -40
+KPX d d -10
+KPX d dcroat -10
+KPX d v -15
+KPX d w -15
+KPX d y -15
+KPX d yacute -15
+KPX d ydieresis -15
+KPX dcroat d -10
+KPX dcroat dcroat -10
+KPX dcroat v -15
+KPX dcroat w -15
+KPX dcroat y -15
+KPX dcroat yacute -15
+KPX dcroat ydieresis -15
+KPX e comma 10
+KPX e period 20
+KPX e v -15
+KPX e w -15
+KPX e x -15
+KPX e y -15
+KPX e yacute -15
+KPX e ydieresis -15
+KPX eacute comma 10
+KPX eacute period 20
+KPX eacute v -15
+KPX eacute w -15
+KPX eacute x -15
+KPX eacute y -15
+KPX eacute yacute -15
+KPX eacute ydieresis -15
+KPX ecaron comma 10
+KPX ecaron period 20
+KPX ecaron v -15
+KPX ecaron w -15
+KPX ecaron x -15
+KPX ecaron y -15
+KPX ecaron yacute -15
+KPX ecaron ydieresis -15
+KPX ecircumflex comma 10
+KPX ecircumflex period 20
+KPX ecircumflex v -15
+KPX ecircumflex w -15
+KPX ecircumflex x -15
+KPX ecircumflex y -15
+KPX ecircumflex yacute -15
+KPX ecircumflex ydieresis -15
+KPX edieresis comma 10
+KPX edieresis period 20
+KPX edieresis v -15
+KPX edieresis w -15
+KPX edieresis x -15
+KPX edieresis y -15
+KPX edieresis yacute -15
+KPX edieresis ydieresis -15
+KPX edotaccent comma 10
+KPX edotaccent period 20
+KPX edotaccent v -15
+KPX edotaccent w -15
+KPX edotaccent x -15
+KPX edotaccent y -15
+KPX edotaccent yacute -15
+KPX edotaccent ydieresis -15
+KPX egrave comma 10
+KPX egrave period 20
+KPX egrave v -15
+KPX egrave w -15
+KPX egrave x -15
+KPX egrave y -15
+KPX egrave yacute -15
+KPX egrave ydieresis -15
+KPX emacron comma 10
+KPX emacron period 20
+KPX emacron v -15
+KPX emacron w -15
+KPX emacron x -15
+KPX emacron y -15
+KPX emacron yacute -15
+KPX emacron ydieresis -15
+KPX eogonek comma 10
+KPX eogonek period 20
+KPX eogonek v -15
+KPX eogonek w -15
+KPX eogonek x -15
+KPX eogonek y -15
+KPX eogonek yacute -15
+KPX eogonek ydieresis -15
+KPX f comma -10
+KPX f e -10
+KPX f eacute -10
+KPX f ecaron -10
+KPX f ecircumflex -10
+KPX f edieresis -10
+KPX f edotaccent -10
+KPX f egrave -10
+KPX f emacron -10
+KPX f eogonek -10
+KPX f o -20
+KPX f oacute -20
+KPX f ocircumflex -20
+KPX f odieresis -20
+KPX f ograve -20
+KPX f ohungarumlaut -20
+KPX f omacron -20
+KPX f oslash -20
+KPX f otilde -20
+KPX f period -10
+KPX f quotedblright 30
+KPX f quoteright 30
+KPX g e 10
+KPX g eacute 10
+KPX g ecaron 10
+KPX g ecircumflex 10
+KPX g edieresis 10
+KPX g edotaccent 10
+KPX g egrave 10
+KPX g emacron 10
+KPX g eogonek 10
+KPX g g -10
+KPX g gbreve -10
+KPX g gcommaaccent -10
+KPX gbreve e 10
+KPX gbreve eacute 10
+KPX gbreve ecaron 10
+KPX gbreve ecircumflex 10
+KPX gbreve edieresis 10
+KPX gbreve edotaccent 10
+KPX gbreve egrave 10
+KPX gbreve emacron 10
+KPX gbreve eogonek 10
+KPX gbreve g -10
+KPX gbreve gbreve -10
+KPX gbreve gcommaaccent -10
+KPX gcommaaccent e 10
+KPX gcommaaccent eacute 10
+KPX gcommaaccent ecaron 10
+KPX gcommaaccent ecircumflex 10
+KPX gcommaaccent edieresis 10
+KPX gcommaaccent edotaccent 10
+KPX gcommaaccent egrave 10
+KPX gcommaaccent emacron 10
+KPX gcommaaccent eogonek 10
+KPX gcommaaccent g -10
+KPX gcommaaccent gbreve -10
+KPX gcommaaccent gcommaaccent -10
+KPX h y -20
+KPX h yacute -20
+KPX h ydieresis -20
+KPX k o -15
+KPX k oacute -15
+KPX k ocircumflex -15
+KPX k odieresis -15
+KPX k ograve -15
+KPX k ohungarumlaut -15
+KPX k omacron -15
+KPX k oslash -15
+KPX k otilde -15
+KPX kcommaaccent o -15
+KPX kcommaaccent oacute -15
+KPX kcommaaccent ocircumflex -15
+KPX kcommaaccent odieresis -15
+KPX kcommaaccent ograve -15
+KPX kcommaaccent ohungarumlaut -15
+KPX kcommaaccent omacron -15
+KPX kcommaaccent oslash -15
+KPX kcommaaccent otilde -15
+KPX l w -15
+KPX l y -15
+KPX l yacute -15
+KPX l ydieresis -15
+KPX lacute w -15
+KPX lacute y -15
+KPX lacute yacute -15
+KPX lacute ydieresis -15
+KPX lcommaaccent w -15
+KPX lcommaaccent y -15
+KPX lcommaaccent yacute -15
+KPX lcommaaccent ydieresis -15
+KPX lslash w -15
+KPX lslash y -15
+KPX lslash yacute -15
+KPX lslash ydieresis -15
+KPX m u -20
+KPX m uacute -20
+KPX m ucircumflex -20
+KPX m udieresis -20
+KPX m ugrave -20
+KPX m uhungarumlaut -20
+KPX m umacron -20
+KPX m uogonek -20
+KPX m uring -20
+KPX m y -30
+KPX m yacute -30
+KPX m ydieresis -30
+KPX n u -10
+KPX n uacute -10
+KPX n ucircumflex -10
+KPX n udieresis -10
+KPX n ugrave -10
+KPX n uhungarumlaut -10
+KPX n umacron -10
+KPX n uogonek -10
+KPX n uring -10
+KPX n v -40
+KPX n y -20
+KPX n yacute -20
+KPX n ydieresis -20
+KPX nacute u -10
+KPX nacute uacute -10
+KPX nacute ucircumflex -10
+KPX nacute udieresis -10
+KPX nacute ugrave -10
+KPX nacute uhungarumlaut -10
+KPX nacute umacron -10
+KPX nacute uogonek -10
+KPX nacute uring -10
+KPX nacute v -40
+KPX nacute y -20
+KPX nacute yacute -20
+KPX nacute ydieresis -20
+KPX ncaron u -10
+KPX ncaron uacute -10
+KPX ncaron ucircumflex -10
+KPX ncaron udieresis -10
+KPX ncaron ugrave -10
+KPX ncaron uhungarumlaut -10
+KPX ncaron umacron -10
+KPX ncaron uogonek -10
+KPX ncaron uring -10
+KPX ncaron v -40
+KPX ncaron y -20
+KPX ncaron yacute -20
+KPX ncaron ydieresis -20
+KPX ncommaaccent u -10
+KPX ncommaaccent uacute -10
+KPX ncommaaccent ucircumflex -10
+KPX ncommaaccent udieresis -10
+KPX ncommaaccent ugrave -10
+KPX ncommaaccent uhungarumlaut -10
+KPX ncommaaccent umacron -10
+KPX ncommaaccent uogonek -10
+KPX ncommaaccent uring -10
+KPX ncommaaccent v -40
+KPX ncommaaccent y -20
+KPX ncommaaccent yacute -20
+KPX ncommaaccent ydieresis -20
+KPX ntilde u -10
+KPX ntilde uacute -10
+KPX ntilde ucircumflex -10
+KPX ntilde udieresis -10
+KPX ntilde ugrave -10
+KPX ntilde uhungarumlaut -10
+KPX ntilde umacron -10
+KPX ntilde uogonek -10
+KPX ntilde uring -10
+KPX ntilde v -40
+KPX ntilde y -20
+KPX ntilde yacute -20
+KPX ntilde ydieresis -20
+KPX o v -20
+KPX o w -15
+KPX o x -30
+KPX o y -20
+KPX o yacute -20
+KPX o ydieresis -20
+KPX oacute v -20
+KPX oacute w -15
+KPX oacute x -30
+KPX oacute y -20
+KPX oacute yacute -20
+KPX oacute ydieresis -20
+KPX ocircumflex v -20
+KPX ocircumflex w -15
+KPX ocircumflex x -30
+KPX ocircumflex y -20
+KPX ocircumflex yacute -20
+KPX ocircumflex ydieresis -20
+KPX odieresis v -20
+KPX odieresis w -15
+KPX odieresis x -30
+KPX odieresis y -20
+KPX odieresis yacute -20
+KPX odieresis ydieresis -20
+KPX ograve v -20
+KPX ograve w -15
+KPX ograve x -30
+KPX ograve y -20
+KPX ograve yacute -20
+KPX ograve ydieresis -20
+KPX ohungarumlaut v -20
+KPX ohungarumlaut w -15
+KPX ohungarumlaut x -30
+KPX ohungarumlaut y -20
+KPX ohungarumlaut yacute -20
+KPX ohungarumlaut ydieresis -20
+KPX omacron v -20
+KPX omacron w -15
+KPX omacron x -30
+KPX omacron y -20
+KPX omacron yacute -20
+KPX omacron ydieresis -20
+KPX oslash v -20
+KPX oslash w -15
+KPX oslash x -30
+KPX oslash y -20
+KPX oslash yacute -20
+KPX oslash ydieresis -20
+KPX otilde v -20
+KPX otilde w -15
+KPX otilde x -30
+KPX otilde y -20
+KPX otilde yacute -20
+KPX otilde ydieresis -20
+KPX p y -15
+KPX p yacute -15
+KPX p ydieresis -15
+KPX period quotedblright -120
+KPX period quoteright -120
+KPX period space -40
+KPX quotedblright space -80
+KPX quoteleft quoteleft -46
+KPX quoteright d -80
+KPX quoteright dcroat -80
+KPX quoteright l -20
+KPX quoteright lacute -20
+KPX quoteright lcommaaccent -20
+KPX quoteright lslash -20
+KPX quoteright quoteright -46
+KPX quoteright r -40
+KPX quoteright racute -40
+KPX quoteright rcaron -40
+KPX quoteright rcommaaccent -40
+KPX quoteright s -60
+KPX quoteright sacute -60
+KPX quoteright scaron -60
+KPX quoteright scedilla -60
+KPX quoteright scommaaccent -60
+KPX quoteright space -80
+KPX quoteright v -20
+KPX r c -20
+KPX r cacute -20
+KPX r ccaron -20
+KPX r ccedilla -20
+KPX r comma -60
+KPX r d -20
+KPX r dcroat -20
+KPX r g -15
+KPX r gbreve -15
+KPX r gcommaaccent -15
+KPX r hyphen -20
+KPX r o -20
+KPX r oacute -20
+KPX r ocircumflex -20
+KPX r odieresis -20
+KPX r ograve -20
+KPX r ohungarumlaut -20
+KPX r omacron -20
+KPX r oslash -20
+KPX r otilde -20
+KPX r period -60
+KPX r q -20
+KPX r s -15
+KPX r sacute -15
+KPX r scaron -15
+KPX r scedilla -15
+KPX r scommaaccent -15
+KPX r t 20
+KPX r tcommaaccent 20
+KPX r v 10
+KPX r y 10
+KPX r yacute 10
+KPX r ydieresis 10
+KPX racute c -20
+KPX racute cacute -20
+KPX racute ccaron -20
+KPX racute ccedilla -20
+KPX racute comma -60
+KPX racute d -20
+KPX racute dcroat -20
+KPX racute g -15
+KPX racute gbreve -15
+KPX racute gcommaaccent -15
+KPX racute hyphen -20
+KPX racute o -20
+KPX racute oacute -20
+KPX racute ocircumflex -20
+KPX racute odieresis -20
+KPX racute ograve -20
+KPX racute ohungarumlaut -20
+KPX racute omacron -20
+KPX racute oslash -20
+KPX racute otilde -20
+KPX racute period -60
+KPX racute q -20
+KPX racute s -15
+KPX racute sacute -15
+KPX racute scaron -15
+KPX racute scedilla -15
+KPX racute scommaaccent -15
+KPX racute t 20
+KPX racute tcommaaccent 20
+KPX racute v 10
+KPX racute y 10
+KPX racute yacute 10
+KPX racute ydieresis 10
+KPX rcaron c -20
+KPX rcaron cacute -20
+KPX rcaron ccaron -20
+KPX rcaron ccedilla -20
+KPX rcaron comma -60
+KPX rcaron d -20
+KPX rcaron dcroat -20
+KPX rcaron g -15
+KPX rcaron gbreve -15
+KPX rcaron gcommaaccent -15
+KPX rcaron hyphen -20
+KPX rcaron o -20
+KPX rcaron oacute -20
+KPX rcaron ocircumflex -20
+KPX rcaron odieresis -20
+KPX rcaron ograve -20
+KPX rcaron ohungarumlaut -20
+KPX rcaron omacron -20
+KPX rcaron oslash -20
+KPX rcaron otilde -20
+KPX rcaron period -60
+KPX rcaron q -20
+KPX rcaron s -15
+KPX rcaron sacute -15
+KPX rcaron scaron -15
+KPX rcaron scedilla -15
+KPX rcaron scommaaccent -15
+KPX rcaron t 20
+KPX rcaron tcommaaccent 20
+KPX rcaron v 10
+KPX rcaron y 10
+KPX rcaron yacute 10
+KPX rcaron ydieresis 10
+KPX rcommaaccent c -20
+KPX rcommaaccent cacute -20
+KPX rcommaaccent ccaron -20
+KPX rcommaaccent ccedilla -20
+KPX rcommaaccent comma -60
+KPX rcommaaccent d -20
+KPX rcommaaccent dcroat -20
+KPX rcommaaccent g -15
+KPX rcommaaccent gbreve -15
+KPX rcommaaccent gcommaaccent -15
+KPX rcommaaccent hyphen -20
+KPX rcommaaccent o -20
+KPX rcommaaccent oacute -20
+KPX rcommaaccent ocircumflex -20
+KPX rcommaaccent odieresis -20
+KPX rcommaaccent ograve -20
+KPX rcommaaccent ohungarumlaut -20
+KPX rcommaaccent omacron -20
+KPX rcommaaccent oslash -20
+KPX rcommaaccent otilde -20
+KPX rcommaaccent period -60
+KPX rcommaaccent q -20
+KPX rcommaaccent s -15
+KPX rcommaaccent sacute -15
+KPX rcommaaccent scaron -15
+KPX rcommaaccent scedilla -15
+KPX rcommaaccent scommaaccent -15
+KPX rcommaaccent t 20
+KPX rcommaaccent tcommaaccent 20
+KPX rcommaaccent v 10
+KPX rcommaaccent y 10
+KPX rcommaaccent yacute 10
+KPX rcommaaccent ydieresis 10
+KPX s w -15
+KPX sacute w -15
+KPX scaron w -15
+KPX scedilla w -15
+KPX scommaaccent w -15
+KPX semicolon space -40
+KPX space T -100
+KPX space Tcaron -100
+KPX space Tcommaaccent -100
+KPX space V -80
+KPX space W -80
+KPX space Y -120
+KPX space Yacute -120
+KPX space Ydieresis -120
+KPX space quotedblleft -80
+KPX space quoteleft -60
+KPX v a -20
+KPX v aacute -20
+KPX v abreve -20
+KPX v acircumflex -20
+KPX v adieresis -20
+KPX v agrave -20
+KPX v amacron -20
+KPX v aogonek -20
+KPX v aring -20
+KPX v atilde -20
+KPX v comma -80
+KPX v o -30
+KPX v oacute -30
+KPX v ocircumflex -30
+KPX v odieresis -30
+KPX v ograve -30
+KPX v ohungarumlaut -30
+KPX v omacron -30
+KPX v oslash -30
+KPX v otilde -30
+KPX v period -80
+KPX w comma -40
+KPX w o -20
+KPX w oacute -20
+KPX w ocircumflex -20
+KPX w odieresis -20
+KPX w ograve -20
+KPX w ohungarumlaut -20
+KPX w omacron -20
+KPX w oslash -20
+KPX w otilde -20
+KPX w period -40
+KPX x e -10
+KPX x eacute -10
+KPX x ecaron -10
+KPX x ecircumflex -10
+KPX x edieresis -10
+KPX x edotaccent -10
+KPX x egrave -10
+KPX x emacron -10
+KPX x eogonek -10
+KPX y a -30
+KPX y aacute -30
+KPX y abreve -30
+KPX y acircumflex -30
+KPX y adieresis -30
+KPX y agrave -30
+KPX y amacron -30
+KPX y aogonek -30
+KPX y aring -30
+KPX y atilde -30
+KPX y comma -80
+KPX y e -10
+KPX y eacute -10
+KPX y ecaron -10
+KPX y ecircumflex -10
+KPX y edieresis -10
+KPX y edotaccent -10
+KPX y egrave -10
+KPX y emacron -10
+KPX y eogonek -10
+KPX y o -25
+KPX y oacute -25
+KPX y ocircumflex -25
+KPX y odieresis -25
+KPX y ograve -25
+KPX y ohungarumlaut -25
+KPX y omacron -25
+KPX y oslash -25
+KPX y otilde -25
+KPX y period -80
+KPX yacute a -30
+KPX yacute aacute -30
+KPX yacute abreve -30
+KPX yacute acircumflex -30
+KPX yacute adieresis -30
+KPX yacute agrave -30
+KPX yacute amacron -30
+KPX yacute aogonek -30
+KPX yacute aring -30
+KPX yacute atilde -30
+KPX yacute comma -80
+KPX yacute e -10
+KPX yacute eacute -10
+KPX yacute ecaron -10
+KPX yacute ecircumflex -10
+KPX yacute edieresis -10
+KPX yacute edotaccent -10
+KPX yacute egrave -10
+KPX yacute emacron -10
+KPX yacute eogonek -10
+KPX yacute o -25
+KPX yacute oacute -25
+KPX yacute ocircumflex -25
+KPX yacute odieresis -25
+KPX yacute ograve -25
+KPX yacute ohungarumlaut -25
+KPX yacute omacron -25
+KPX yacute oslash -25
+KPX yacute otilde -25
+KPX yacute period -80
+KPX ydieresis a -30
+KPX ydieresis aacute -30
+KPX ydieresis abreve -30
+KPX ydieresis acircumflex -30
+KPX ydieresis adieresis -30
+KPX ydieresis agrave -30
+KPX ydieresis amacron -30
+KPX ydieresis aogonek -30
+KPX ydieresis aring -30
+KPX ydieresis atilde -30
+KPX ydieresis comma -80
+KPX ydieresis e -10
+KPX ydieresis eacute -10
+KPX ydieresis ecaron -10
+KPX ydieresis ecircumflex -10
+KPX ydieresis edieresis -10
+KPX ydieresis edotaccent -10
+KPX ydieresis egrave -10
+KPX ydieresis emacron -10
+KPX ydieresis eogonek -10
+KPX ydieresis o -25
+KPX ydieresis oacute -25
+KPX ydieresis ocircumflex -25
+KPX ydieresis odieresis -25
+KPX ydieresis ograve -25
+KPX ydieresis ohungarumlaut -25
+KPX ydieresis omacron -25
+KPX ydieresis oslash -25
+KPX ydieresis otilde -25
+KPX ydieresis period -80
+KPX z e 10
+KPX z eacute 10
+KPX z ecaron 10
+KPX z ecircumflex 10
+KPX z edieresis 10
+KPX z edotaccent 10
+KPX z egrave 10
+KPX z emacron 10
+KPX z eogonek 10
+KPX zacute e 10
+KPX zacute eacute 10
+KPX zacute ecaron 10
+KPX zacute ecircumflex 10
+KPX zacute edieresis 10
+KPX zacute edotaccent 10
+KPX zacute egrave 10
+KPX zacute emacron 10
+KPX zacute eogonek 10
+KPX zcaron e 10
+KPX zcaron eacute 10
+KPX zcaron ecaron 10
+KPX zcaron ecircumflex 10
+KPX zcaron edieresis 10
+KPX zcaron edotaccent 10
+KPX zcaron egrave 10
+KPX zcaron emacron 10
+KPX zcaron eogonek 10
+KPX zdotaccent e 10
+KPX zdotaccent eacute 10
+KPX zdotaccent ecaron 10
+KPX zdotaccent ecircumflex 10
+KPX zdotaccent edieresis 10
+KPX zdotaccent edotaccent 10
+KPX zdotaccent egrave 10
+KPX zdotaccent emacron 10
+KPX zdotaccent eogonek 10
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Helvetica-Oblique.afm b/test/user-template/user/psprint/fontmetric/Helvetica-Oblique.afm
new file mode 100644
index 000000000000..4d5dbbcd498c
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Helvetica-Oblique.afm
@@ -0,0 +1,3049 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:44:31 1997
+Comment UniqueID 43055
+Comment VMusage 14960 69346
+FontName Helvetica-Oblique
+FullName Helvetica Oblique
+FamilyName Helvetica
+Weight Medium
+ItalicAngle -12
+IsFixedPitch false
+FontBBox -170 -225 1116 931
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 718
+XHeight 523
+Ascender 718
+Descender -207
+StdHW 76
+StdVW 88
+StartCharMetrics 314
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 278 ; N exclam ; B 90 0 340 718 ;
+C 34 ; WX 355 ; N quotedbl ; B 168 463 438 718 ;
+C 35 ; WX 556 ; N numbersign ; B 73 0 631 688 ;
+C 36 ; WX 556 ; N dollar ; B 69 -115 617 775 ;
+C 37 ; WX 889 ; N percent ; B 147 -19 889 703 ;
+C 38 ; WX 667 ; N ampersand ; B 77 -15 647 718 ;
+C 39 ; WX 222 ; N quoteright ; B 151 463 310 718 ;
+C 40 ; WX 333 ; N parenleft ; B 108 -207 454 733 ;
+C 41 ; WX 333 ; N parenright ; B -9 -207 337 733 ;
+C 42 ; WX 389 ; N asterisk ; B 165 431 475 718 ;
+C 43 ; WX 584 ; N plus ; B 85 0 606 505 ;
+C 44 ; WX 278 ; N comma ; B 56 -147 214 106 ;
+C 45 ; WX 333 ; N hyphen ; B 93 232 357 322 ;
+C 46 ; WX 278 ; N period ; B 87 0 214 106 ;
+C 47 ; WX 278 ; N slash ; B -21 -19 452 737 ;
+C 48 ; WX 556 ; N zero ; B 93 -19 608 703 ;
+C 49 ; WX 556 ; N one ; B 207 0 508 703 ;
+C 50 ; WX 556 ; N two ; B 26 0 617 703 ;
+C 51 ; WX 556 ; N three ; B 75 -19 610 703 ;
+C 52 ; WX 556 ; N four ; B 61 0 576 703 ;
+C 53 ; WX 556 ; N five ; B 68 -19 621 688 ;
+C 54 ; WX 556 ; N six ; B 91 -19 615 703 ;
+C 55 ; WX 556 ; N seven ; B 137 0 669 688 ;
+C 56 ; WX 556 ; N eight ; B 74 -19 607 703 ;
+C 57 ; WX 556 ; N nine ; B 82 -19 609 703 ;
+C 58 ; WX 278 ; N colon ; B 87 0 301 516 ;
+C 59 ; WX 278 ; N semicolon ; B 56 -147 301 516 ;
+C 60 ; WX 584 ; N less ; B 94 11 641 495 ;
+C 61 ; WX 584 ; N equal ; B 63 115 628 390 ;
+C 62 ; WX 584 ; N greater ; B 50 11 597 495 ;
+C 63 ; WX 556 ; N question ; B 161 0 610 727 ;
+C 64 ; WX 1015 ; N at ; B 215 -19 965 737 ;
+C 65 ; WX 667 ; N A ; B 14 0 654 718 ;
+C 66 ; WX 667 ; N B ; B 74 0 712 718 ;
+C 67 ; WX 722 ; N C ; B 108 -19 782 737 ;
+C 68 ; WX 722 ; N D ; B 81 0 764 718 ;
+C 69 ; WX 667 ; N E ; B 86 0 762 718 ;
+C 70 ; WX 611 ; N F ; B 86 0 736 718 ;
+C 71 ; WX 778 ; N G ; B 111 -19 799 737 ;
+C 72 ; WX 722 ; N H ; B 77 0 799 718 ;
+C 73 ; WX 278 ; N I ; B 91 0 341 718 ;
+C 74 ; WX 500 ; N J ; B 47 -19 581 718 ;
+C 75 ; WX 667 ; N K ; B 76 0 808 718 ;
+C 76 ; WX 556 ; N L ; B 76 0 555 718 ;
+C 77 ; WX 833 ; N M ; B 73 0 914 718 ;
+C 78 ; WX 722 ; N N ; B 76 0 799 718 ;
+C 79 ; WX 778 ; N O ; B 105 -19 826 737 ;
+C 80 ; WX 667 ; N P ; B 86 0 737 718 ;
+C 81 ; WX 778 ; N Q ; B 105 -56 826 737 ;
+C 82 ; WX 722 ; N R ; B 88 0 773 718 ;
+C 83 ; WX 667 ; N S ; B 90 -19 713 737 ;
+C 84 ; WX 611 ; N T ; B 148 0 750 718 ;
+C 85 ; WX 722 ; N U ; B 123 -19 797 718 ;
+C 86 ; WX 667 ; N V ; B 173 0 800 718 ;
+C 87 ; WX 944 ; N W ; B 169 0 1081 718 ;
+C 88 ; WX 667 ; N X ; B 19 0 790 718 ;
+C 89 ; WX 667 ; N Y ; B 167 0 806 718 ;
+C 90 ; WX 611 ; N Z ; B 23 0 741 718 ;
+C 91 ; WX 278 ; N bracketleft ; B 21 -196 403 722 ;
+C 92 ; WX 278 ; N backslash ; B 140 -19 291 737 ;
+C 93 ; WX 278 ; N bracketright ; B -14 -196 368 722 ;
+C 94 ; WX 469 ; N asciicircum ; B 42 264 539 688 ;
+C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ;
+C 96 ; WX 222 ; N quoteleft ; B 165 470 323 725 ;
+C 97 ; WX 556 ; N a ; B 61 -15 559 538 ;
+C 98 ; WX 556 ; N b ; B 58 -15 584 718 ;
+C 99 ; WX 500 ; N c ; B 74 -15 553 538 ;
+C 100 ; WX 556 ; N d ; B 84 -15 652 718 ;
+C 101 ; WX 556 ; N e ; B 84 -15 578 538 ;
+C 102 ; WX 278 ; N f ; B 86 0 416 728 ; L i fi ; L l fl ;
+C 103 ; WX 556 ; N g ; B 42 -220 610 538 ;
+C 104 ; WX 556 ; N h ; B 65 0 573 718 ;
+C 105 ; WX 222 ; N i ; B 67 0 308 718 ;
+C 106 ; WX 222 ; N j ; B -60 -210 308 718 ;
+C 107 ; WX 500 ; N k ; B 67 0 600 718 ;
+C 108 ; WX 222 ; N l ; B 67 0 308 718 ;
+C 109 ; WX 833 ; N m ; B 65 0 852 538 ;
+C 110 ; WX 556 ; N n ; B 65 0 573 538 ;
+C 111 ; WX 556 ; N o ; B 83 -14 585 538 ;
+C 112 ; WX 556 ; N p ; B 14 -207 584 538 ;
+C 113 ; WX 556 ; N q ; B 84 -207 605 538 ;
+C 114 ; WX 333 ; N r ; B 77 0 446 538 ;
+C 115 ; WX 500 ; N s ; B 63 -15 529 538 ;
+C 116 ; WX 278 ; N t ; B 102 -7 368 669 ;
+C 117 ; WX 556 ; N u ; B 94 -15 600 523 ;
+C 118 ; WX 500 ; N v ; B 119 0 603 523 ;
+C 119 ; WX 722 ; N w ; B 125 0 820 523 ;
+C 120 ; WX 500 ; N x ; B 11 0 594 523 ;
+C 121 ; WX 500 ; N y ; B 15 -214 600 523 ;
+C 122 ; WX 500 ; N z ; B 31 0 571 523 ;
+C 123 ; WX 334 ; N braceleft ; B 92 -196 445 722 ;
+C 124 ; WX 260 ; N bar ; B 46 -225 332 775 ;
+C 125 ; WX 334 ; N braceright ; B 0 -196 354 722 ;
+C 126 ; WX 584 ; N asciitilde ; B 111 180 580 326 ;
+C 161 ; WX 333 ; N exclamdown ; B 77 -195 326 523 ;
+C 162 ; WX 556 ; N cent ; B 95 -115 584 623 ;
+C 163 ; WX 556 ; N sterling ; B 49 -16 634 718 ;
+C 164 ; WX 167 ; N fraction ; B -170 -19 482 703 ;
+C 165 ; WX 556 ; N yen ; B 81 0 699 688 ;
+C 166 ; WX 556 ; N florin ; B -52 -207 654 737 ;
+C 167 ; WX 556 ; N section ; B 76 -191 584 737 ;
+C 168 ; WX 556 ; N currency ; B 60 99 646 603 ;
+C 169 ; WX 191 ; N quotesingle ; B 157 463 285 718 ;
+C 170 ; WX 333 ; N quotedblleft ; B 138 470 461 725 ;
+C 171 ; WX 556 ; N guillemotleft ; B 146 108 554 446 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 137 108 340 446 ;
+C 173 ; WX 333 ; N guilsinglright ; B 111 108 314 446 ;
+C 174 ; WX 500 ; N fi ; B 86 0 587 728 ;
+C 175 ; WX 500 ; N fl ; B 86 0 585 728 ;
+C 177 ; WX 556 ; N endash ; B 51 240 623 313 ;
+C 178 ; WX 556 ; N dagger ; B 135 -159 622 718 ;
+C 179 ; WX 556 ; N daggerdbl ; B 52 -159 623 718 ;
+C 180 ; WX 278 ; N periodcentered ; B 129 190 257 315 ;
+C 182 ; WX 537 ; N paragraph ; B 126 -173 650 718 ;
+C 183 ; WX 350 ; N bullet ; B 91 202 413 517 ;
+C 184 ; WX 222 ; N quotesinglbase ; B 21 -149 180 106 ;
+C 185 ; WX 333 ; N quotedblbase ; B -6 -149 318 106 ;
+C 186 ; WX 333 ; N quotedblright ; B 124 463 448 718 ;
+C 187 ; WX 556 ; N guillemotright ; B 120 108 528 446 ;
+C 188 ; WX 1000 ; N ellipsis ; B 115 0 908 106 ;
+C 189 ; WX 1000 ; N perthousand ; B 88 -19 1029 703 ;
+C 191 ; WX 611 ; N questiondown ; B 85 -201 534 525 ;
+C 193 ; WX 333 ; N grave ; B 170 593 337 734 ;
+C 194 ; WX 333 ; N acute ; B 248 593 475 734 ;
+C 195 ; WX 333 ; N circumflex ; B 147 593 438 734 ;
+C 196 ; WX 333 ; N tilde ; B 125 606 490 722 ;
+C 197 ; WX 333 ; N macron ; B 143 627 468 684 ;
+C 198 ; WX 333 ; N breve ; B 167 595 476 731 ;
+C 199 ; WX 333 ; N dotaccent ; B 249 604 362 706 ;
+C 200 ; WX 333 ; N dieresis ; B 168 604 443 706 ;
+C 202 ; WX 333 ; N ring ; B 214 572 402 756 ;
+C 203 ; WX 333 ; N cedilla ; B 2 -225 232 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 157 593 565 734 ;
+C 206 ; WX 333 ; N ogonek ; B 43 -225 249 0 ;
+C 207 ; WX 333 ; N caron ; B 177 593 468 734 ;
+C 208 ; WX 1000 ; N emdash ; B 51 240 1067 313 ;
+C 225 ; WX 1000 ; N AE ; B 8 0 1097 718 ;
+C 227 ; WX 370 ; N ordfeminine ; B 127 405 449 737 ;
+C 232 ; WX 556 ; N Lslash ; B 41 0 555 718 ;
+C 233 ; WX 778 ; N Oslash ; B 43 -19 890 737 ;
+C 234 ; WX 1000 ; N OE ; B 98 -19 1116 737 ;
+C 235 ; WX 365 ; N ordmasculine ; B 141 405 468 737 ;
+C 241 ; WX 889 ; N ae ; B 61 -15 909 538 ;
+C 245 ; WX 278 ; N dotlessi ; B 95 0 294 523 ;
+C 248 ; WX 222 ; N lslash ; B 41 0 347 718 ;
+C 249 ; WX 611 ; N oslash ; B 29 -22 647 545 ;
+C 250 ; WX 944 ; N oe ; B 83 -15 964 538 ;
+C 251 ; WX 611 ; N germandbls ; B 67 -15 658 728 ;
+C -1 ; WX 278 ; N Idieresis ; B 91 0 458 901 ;
+C -1 ; WX 556 ; N eacute ; B 84 -15 587 734 ;
+C -1 ; WX 556 ; N abreve ; B 61 -15 578 731 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 94 -15 677 734 ;
+C -1 ; WX 556 ; N ecaron ; B 84 -15 580 734 ;
+C -1 ; WX 667 ; N Ydieresis ; B 167 0 806 901 ;
+C -1 ; WX 584 ; N divide ; B 85 -19 606 524 ;
+C -1 ; WX 667 ; N Yacute ; B 167 0 806 929 ;
+C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ;
+C -1 ; WX 556 ; N aacute ; B 61 -15 587 734 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 123 -19 797 929 ;
+C -1 ; WX 500 ; N yacute ; B 15 -214 600 734 ;
+C -1 ; WX 500 ; N scommaaccent ; B 63 -225 529 538 ;
+C -1 ; WX 556 ; N ecircumflex ; B 84 -15 578 734 ;
+C -1 ; WX 722 ; N Uring ; B 123 -19 797 931 ;
+C -1 ; WX 722 ; N Udieresis ; B 123 -19 797 901 ;
+C -1 ; WX 556 ; N aogonek ; B 61 -220 559 538 ;
+C -1 ; WX 722 ; N Uacute ; B 123 -19 797 929 ;
+C -1 ; WX 556 ; N uogonek ; B 94 -225 600 523 ;
+C -1 ; WX 667 ; N Edieresis ; B 86 0 762 901 ;
+C -1 ; WX 722 ; N Dcroat ; B 69 0 764 718 ;
+C -1 ; WX 250 ; N commaaccent ; B 39 -225 172 -40 ;
+C -1 ; WX 737 ; N copyright ; B 54 -19 837 737 ;
+C -1 ; WX 667 ; N Emacron ; B 86 0 762 879 ;
+C -1 ; WX 500 ; N ccaron ; B 74 -15 553 734 ;
+C -1 ; WX 556 ; N aring ; B 61 -15 559 756 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 799 718 ;
+C -1 ; WX 222 ; N lacute ; B 67 0 461 929 ;
+C -1 ; WX 556 ; N agrave ; B 61 -15 559 734 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 148 -225 750 718 ;
+C -1 ; WX 722 ; N Cacute ; B 108 -19 782 929 ;
+C -1 ; WX 556 ; N atilde ; B 61 -15 592 722 ;
+C -1 ; WX 667 ; N Edotaccent ; B 86 0 762 901 ;
+C -1 ; WX 500 ; N scaron ; B 63 -15 552 734 ;
+C -1 ; WX 500 ; N scedilla ; B 63 -225 529 538 ;
+C -1 ; WX 278 ; N iacute ; B 95 0 448 734 ;
+C -1 ; WX 471 ; N lozenge ; B 88 0 540 728 ;
+C -1 ; WX 722 ; N Rcaron ; B 88 0 773 929 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 111 -225 799 737 ;
+C -1 ; WX 556 ; N ucircumflex ; B 94 -15 600 734 ;
+C -1 ; WX 556 ; N acircumflex ; B 61 -15 559 734 ;
+C -1 ; WX 667 ; N Amacron ; B 14 0 677 879 ;
+C -1 ; WX 333 ; N rcaron ; B 77 0 508 734 ;
+C -1 ; WX 500 ; N ccedilla ; B 74 -225 553 538 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 23 0 741 901 ;
+C -1 ; WX 667 ; N Thorn ; B 86 0 712 718 ;
+C -1 ; WX 778 ; N Omacron ; B 105 -19 826 879 ;
+C -1 ; WX 722 ; N Racute ; B 88 0 773 929 ;
+C -1 ; WX 667 ; N Sacute ; B 90 -19 713 929 ;
+C -1 ; WX 643 ; N dcaron ; B 84 -15 808 718 ;
+C -1 ; WX 722 ; N Umacron ; B 123 -19 797 879 ;
+C -1 ; WX 556 ; N uring ; B 94 -15 600 756 ;
+C -1 ; WX 333 ; N threesuperior ; B 90 270 436 703 ;
+C -1 ; WX 778 ; N Ograve ; B 105 -19 826 929 ;
+C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ;
+C -1 ; WX 667 ; N Abreve ; B 14 0 685 926 ;
+C -1 ; WX 584 ; N multiply ; B 50 0 642 506 ;
+C -1 ; WX 556 ; N uacute ; B 94 -15 600 734 ;
+C -1 ; WX 611 ; N Tcaron ; B 148 0 750 929 ;
+C -1 ; WX 476 ; N partialdiff ; B 41 -38 550 714 ;
+C -1 ; WX 500 ; N ydieresis ; B 15 -214 600 706 ;
+C -1 ; WX 722 ; N Nacute ; B 76 0 799 929 ;
+C -1 ; WX 278 ; N icircumflex ; B 95 0 411 734 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 86 0 762 929 ;
+C -1 ; WX 556 ; N adieresis ; B 61 -15 559 706 ;
+C -1 ; WX 556 ; N edieresis ; B 84 -15 578 706 ;
+C -1 ; WX 500 ; N cacute ; B 74 -15 559 734 ;
+C -1 ; WX 556 ; N nacute ; B 65 0 587 734 ;
+C -1 ; WX 556 ; N umacron ; B 94 -15 600 684 ;
+C -1 ; WX 722 ; N Ncaron ; B 76 0 799 929 ;
+C -1 ; WX 278 ; N Iacute ; B 91 0 489 929 ;
+C -1 ; WX 584 ; N plusminus ; B 39 0 618 506 ;
+C -1 ; WX 260 ; N brokenbar ; B 62 -150 316 700 ;
+C -1 ; WX 737 ; N registered ; B 54 -19 837 737 ;
+C -1 ; WX 778 ; N Gbreve ; B 111 -19 799 926 ;
+C -1 ; WX 278 ; N Idotaccent ; B 91 0 377 901 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 671 706 ;
+C -1 ; WX 667 ; N Egrave ; B 86 0 762 929 ;
+C -1 ; WX 333 ; N racute ; B 77 0 475 734 ;
+C -1 ; WX 556 ; N omacron ; B 83 -14 585 684 ;
+C -1 ; WX 611 ; N Zacute ; B 23 0 741 929 ;
+C -1 ; WX 611 ; N Zcaron ; B 23 0 741 929 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 620 674 ;
+C -1 ; WX 722 ; N Eth ; B 69 0 764 718 ;
+C -1 ; WX 722 ; N Ccedilla ; B 108 -225 782 737 ;
+C -1 ; WX 222 ; N lcommaaccent ; B 25 -225 308 718 ;
+C -1 ; WX 317 ; N tcaron ; B 102 -7 501 808 ;
+C -1 ; WX 556 ; N eogonek ; B 84 -225 578 538 ;
+C -1 ; WX 722 ; N Uogonek ; B 123 -225 797 718 ;
+C -1 ; WX 667 ; N Aacute ; B 14 0 683 929 ;
+C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ;
+C -1 ; WX 556 ; N egrave ; B 84 -15 578 734 ;
+C -1 ; WX 500 ; N zacute ; B 31 0 571 734 ;
+C -1 ; WX 222 ; N iogonek ; B -61 -225 308 718 ;
+C -1 ; WX 778 ; N Oacute ; B 105 -19 826 929 ;
+C -1 ; WX 556 ; N oacute ; B 83 -14 587 734 ;
+C -1 ; WX 556 ; N amacron ; B 61 -15 580 684 ;
+C -1 ; WX 500 ; N sacute ; B 63 -15 559 734 ;
+C -1 ; WX 278 ; N idieresis ; B 95 0 416 706 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 105 -19 826 929 ;
+C -1 ; WX 722 ; N Ugrave ; B 123 -19 797 929 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 556 ; N thorn ; B 14 -207 584 718 ;
+C -1 ; WX 333 ; N twosuperior ; B 64 281 449 703 ;
+C -1 ; WX 778 ; N Odieresis ; B 105 -19 826 901 ;
+C -1 ; WX 556 ; N mu ; B 24 -207 600 523 ;
+C -1 ; WX 278 ; N igrave ; B 95 0 310 734 ;
+C -1 ; WX 556 ; N ohungarumlaut ; B 83 -14 677 734 ;
+C -1 ; WX 667 ; N Eogonek ; B 86 -220 762 718 ;
+C -1 ; WX 556 ; N dcroat ; B 84 -15 689 718 ;
+C -1 ; WX 834 ; N threequarters ; B 130 -19 861 703 ;
+C -1 ; WX 667 ; N Scedilla ; B 90 -225 713 737 ;
+C -1 ; WX 299 ; N lcaron ; B 67 0 464 718 ;
+C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 808 718 ;
+C -1 ; WX 556 ; N Lacute ; B 76 0 555 929 ;
+C -1 ; WX 1000 ; N trademark ; B 186 306 1056 718 ;
+C -1 ; WX 556 ; N edotaccent ; B 84 -15 578 706 ;
+C -1 ; WX 278 ; N Igrave ; B 91 0 351 929 ;
+C -1 ; WX 278 ; N Imacron ; B 91 0 483 879 ;
+C -1 ; WX 556 ; N Lcaron ; B 76 0 570 718 ;
+C -1 ; WX 834 ; N onehalf ; B 114 -19 839 703 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 666 674 ;
+C -1 ; WX 556 ; N ocircumflex ; B 83 -14 585 734 ;
+C -1 ; WX 556 ; N ntilde ; B 65 0 592 722 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 123 -19 801 929 ;
+C -1 ; WX 667 ; N Eacute ; B 86 0 762 929 ;
+C -1 ; WX 556 ; N emacron ; B 84 -15 580 684 ;
+C -1 ; WX 556 ; N gbreve ; B 42 -220 610 731 ;
+C -1 ; WX 834 ; N onequarter ; B 150 -19 802 703 ;
+C -1 ; WX 667 ; N Scaron ; B 90 -19 713 929 ;
+C -1 ; WX 667 ; N Scommaaccent ; B 90 -225 713 737 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 105 -19 829 929 ;
+C -1 ; WX 400 ; N degree ; B 169 411 468 703 ;
+C -1 ; WX 556 ; N ograve ; B 83 -14 585 734 ;
+C -1 ; WX 722 ; N Ccaron ; B 108 -19 782 929 ;
+C -1 ; WX 556 ; N ugrave ; B 94 -15 600 734 ;
+C -1 ; WX 453 ; N radical ; B 79 -80 617 762 ;
+C -1 ; WX 722 ; N Dcaron ; B 81 0 764 929 ;
+C -1 ; WX 333 ; N rcommaaccent ; B 30 -225 446 538 ;
+C -1 ; WX 722 ; N Ntilde ; B 76 0 799 917 ;
+C -1 ; WX 556 ; N otilde ; B 83 -14 602 722 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 773 718 ;
+C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 555 718 ;
+C -1 ; WX 667 ; N Atilde ; B 14 0 699 917 ;
+C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ;
+C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ;
+C -1 ; WX 778 ; N Otilde ; B 105 -19 826 917 ;
+C -1 ; WX 500 ; N zdotaccent ; B 31 0 571 706 ;
+C -1 ; WX 667 ; N Ecaron ; B 86 0 762 929 ;
+C -1 ; WX 278 ; N Iogonek ; B -33 -225 341 718 ;
+C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 600 718 ;
+C -1 ; WX 584 ; N minus ; B 85 216 606 289 ;
+C -1 ; WX 278 ; N Icircumflex ; B 91 0 452 929 ;
+C -1 ; WX 556 ; N ncaron ; B 65 0 580 734 ;
+C -1 ; WX 278 ; N tcommaaccent ; B 63 -225 368 669 ;
+C -1 ; WX 584 ; N logicalnot ; B 106 108 628 390 ;
+C -1 ; WX 556 ; N odieresis ; B 83 -14 585 706 ;
+C -1 ; WX 556 ; N udieresis ; B 94 -15 600 706 ;
+C -1 ; WX 549 ; N notequal ; B 34 -35 623 551 ;
+C -1 ; WX 556 ; N gcommaaccent ; B 42 -220 610 822 ;
+C -1 ; WX 556 ; N eth ; B 81 -15 617 737 ;
+C -1 ; WX 500 ; N zcaron ; B 31 0 571 734 ;
+C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 573 538 ;
+C -1 ; WX 333 ; N onesuperior ; B 166 281 371 703 ;
+C -1 ; WX 278 ; N imacron ; B 95 0 417 684 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2705
+KPX A C -30
+KPX A Cacute -30
+KPX A Ccaron -30
+KPX A Ccedilla -30
+KPX A G -30
+KPX A Gbreve -30
+KPX A Gcommaaccent -30
+KPX A O -30
+KPX A Oacute -30
+KPX A Ocircumflex -30
+KPX A Odieresis -30
+KPX A Ograve -30
+KPX A Ohungarumlaut -30
+KPX A Omacron -30
+KPX A Oslash -30
+KPX A Otilde -30
+KPX A Q -30
+KPX A T -120
+KPX A Tcaron -120
+KPX A Tcommaaccent -120
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -70
+KPX A W -50
+KPX A Y -100
+KPX A Yacute -100
+KPX A Ydieresis -100
+KPX A u -30
+KPX A uacute -30
+KPX A ucircumflex -30
+KPX A udieresis -30
+KPX A ugrave -30
+KPX A uhungarumlaut -30
+KPX A umacron -30
+KPX A uogonek -30
+KPX A uring -30
+KPX A v -40
+KPX A w -40
+KPX A y -40
+KPX A yacute -40
+KPX A ydieresis -40
+KPX Aacute C -30
+KPX Aacute Cacute -30
+KPX Aacute Ccaron -30
+KPX Aacute Ccedilla -30
+KPX Aacute G -30
+KPX Aacute Gbreve -30
+KPX Aacute Gcommaaccent -30
+KPX Aacute O -30
+KPX Aacute Oacute -30
+KPX Aacute Ocircumflex -30
+KPX Aacute Odieresis -30
+KPX Aacute Ograve -30
+KPX Aacute Ohungarumlaut -30
+KPX Aacute Omacron -30
+KPX Aacute Oslash -30
+KPX Aacute Otilde -30
+KPX Aacute Q -30
+KPX Aacute T -120
+KPX Aacute Tcaron -120
+KPX Aacute Tcommaaccent -120
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -70
+KPX Aacute W -50
+KPX Aacute Y -100
+KPX Aacute Yacute -100
+KPX Aacute Ydieresis -100
+KPX Aacute u -30
+KPX Aacute uacute -30
+KPX Aacute ucircumflex -30
+KPX Aacute udieresis -30
+KPX Aacute ugrave -30
+KPX Aacute uhungarumlaut -30
+KPX Aacute umacron -30
+KPX Aacute uogonek -30
+KPX Aacute uring -30
+KPX Aacute v -40
+KPX Aacute w -40
+KPX Aacute y -40
+KPX Aacute yacute -40
+KPX Aacute ydieresis -40
+KPX Abreve C -30
+KPX Abreve Cacute -30
+KPX Abreve Ccaron -30
+KPX Abreve Ccedilla -30
+KPX Abreve G -30
+KPX Abreve Gbreve -30
+KPX Abreve Gcommaaccent -30
+KPX Abreve O -30
+KPX Abreve Oacute -30
+KPX Abreve Ocircumflex -30
+KPX Abreve Odieresis -30
+KPX Abreve Ograve -30
+KPX Abreve Ohungarumlaut -30
+KPX Abreve Omacron -30
+KPX Abreve Oslash -30
+KPX Abreve Otilde -30
+KPX Abreve Q -30
+KPX Abreve T -120
+KPX Abreve Tcaron -120
+KPX Abreve Tcommaaccent -120
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -70
+KPX Abreve W -50
+KPX Abreve Y -100
+KPX Abreve Yacute -100
+KPX Abreve Ydieresis -100
+KPX Abreve u -30
+KPX Abreve uacute -30
+KPX Abreve ucircumflex -30
+KPX Abreve udieresis -30
+KPX Abreve ugrave -30
+KPX Abreve uhungarumlaut -30
+KPX Abreve umacron -30
+KPX Abreve uogonek -30
+KPX Abreve uring -30
+KPX Abreve v -40
+KPX Abreve w -40
+KPX Abreve y -40
+KPX Abreve yacute -40
+KPX Abreve ydieresis -40
+KPX Acircumflex C -30
+KPX Acircumflex Cacute -30
+KPX Acircumflex Ccaron -30
+KPX Acircumflex Ccedilla -30
+KPX Acircumflex G -30
+KPX Acircumflex Gbreve -30
+KPX Acircumflex Gcommaaccent -30
+KPX Acircumflex O -30
+KPX Acircumflex Oacute -30
+KPX Acircumflex Ocircumflex -30
+KPX Acircumflex Odieresis -30
+KPX Acircumflex Ograve -30
+KPX Acircumflex Ohungarumlaut -30
+KPX Acircumflex Omacron -30
+KPX Acircumflex Oslash -30
+KPX Acircumflex Otilde -30
+KPX Acircumflex Q -30
+KPX Acircumflex T -120
+KPX Acircumflex Tcaron -120
+KPX Acircumflex Tcommaaccent -120
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -70
+KPX Acircumflex W -50
+KPX Acircumflex Y -100
+KPX Acircumflex Yacute -100
+KPX Acircumflex Ydieresis -100
+KPX Acircumflex u -30
+KPX Acircumflex uacute -30
+KPX Acircumflex ucircumflex -30
+KPX Acircumflex udieresis -30
+KPX Acircumflex ugrave -30
+KPX Acircumflex uhungarumlaut -30
+KPX Acircumflex umacron -30
+KPX Acircumflex uogonek -30
+KPX Acircumflex uring -30
+KPX Acircumflex v -40
+KPX Acircumflex w -40
+KPX Acircumflex y -40
+KPX Acircumflex yacute -40
+KPX Acircumflex ydieresis -40
+KPX Adieresis C -30
+KPX Adieresis Cacute -30
+KPX Adieresis Ccaron -30
+KPX Adieresis Ccedilla -30
+KPX Adieresis G -30
+KPX Adieresis Gbreve -30
+KPX Adieresis Gcommaaccent -30
+KPX Adieresis O -30
+KPX Adieresis Oacute -30
+KPX Adieresis Ocircumflex -30
+KPX Adieresis Odieresis -30
+KPX Adieresis Ograve -30
+KPX Adieresis Ohungarumlaut -30
+KPX Adieresis Omacron -30
+KPX Adieresis Oslash -30
+KPX Adieresis Otilde -30
+KPX Adieresis Q -30
+KPX Adieresis T -120
+KPX Adieresis Tcaron -120
+KPX Adieresis Tcommaaccent -120
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -70
+KPX Adieresis W -50
+KPX Adieresis Y -100
+KPX Adieresis Yacute -100
+KPX Adieresis Ydieresis -100
+KPX Adieresis u -30
+KPX Adieresis uacute -30
+KPX Adieresis ucircumflex -30
+KPX Adieresis udieresis -30
+KPX Adieresis ugrave -30
+KPX Adieresis uhungarumlaut -30
+KPX Adieresis umacron -30
+KPX Adieresis uogonek -30
+KPX Adieresis uring -30
+KPX Adieresis v -40
+KPX Adieresis w -40
+KPX Adieresis y -40
+KPX Adieresis yacute -40
+KPX Adieresis ydieresis -40
+KPX Agrave C -30
+KPX Agrave Cacute -30
+KPX Agrave Ccaron -30
+KPX Agrave Ccedilla -30
+KPX Agrave G -30
+KPX Agrave Gbreve -30
+KPX Agrave Gcommaaccent -30
+KPX Agrave O -30
+KPX Agrave Oacute -30
+KPX Agrave Ocircumflex -30
+KPX Agrave Odieresis -30
+KPX Agrave Ograve -30
+KPX Agrave Ohungarumlaut -30
+KPX Agrave Omacron -30
+KPX Agrave Oslash -30
+KPX Agrave Otilde -30
+KPX Agrave Q -30
+KPX Agrave T -120
+KPX Agrave Tcaron -120
+KPX Agrave Tcommaaccent -120
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -70
+KPX Agrave W -50
+KPX Agrave Y -100
+KPX Agrave Yacute -100
+KPX Agrave Ydieresis -100
+KPX Agrave u -30
+KPX Agrave uacute -30
+KPX Agrave ucircumflex -30
+KPX Agrave udieresis -30
+KPX Agrave ugrave -30
+KPX Agrave uhungarumlaut -30
+KPX Agrave umacron -30
+KPX Agrave uogonek -30
+KPX Agrave uring -30
+KPX Agrave v -40
+KPX Agrave w -40
+KPX Agrave y -40
+KPX Agrave yacute -40
+KPX Agrave ydieresis -40
+KPX Amacron C -30
+KPX Amacron Cacute -30
+KPX Amacron Ccaron -30
+KPX Amacron Ccedilla -30
+KPX Amacron G -30
+KPX Amacron Gbreve -30
+KPX Amacron Gcommaaccent -30
+KPX Amacron O -30
+KPX Amacron Oacute -30
+KPX Amacron Ocircumflex -30
+KPX Amacron Odieresis -30
+KPX Amacron Ograve -30
+KPX Amacron Ohungarumlaut -30
+KPX Amacron Omacron -30
+KPX Amacron Oslash -30
+KPX Amacron Otilde -30
+KPX Amacron Q -30
+KPX Amacron T -120
+KPX Amacron Tcaron -120
+KPX Amacron Tcommaaccent -120
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -70
+KPX Amacron W -50
+KPX Amacron Y -100
+KPX Amacron Yacute -100
+KPX Amacron Ydieresis -100
+KPX Amacron u -30
+KPX Amacron uacute -30
+KPX Amacron ucircumflex -30
+KPX Amacron udieresis -30
+KPX Amacron ugrave -30
+KPX Amacron uhungarumlaut -30
+KPX Amacron umacron -30
+KPX Amacron uogonek -30
+KPX Amacron uring -30
+KPX Amacron v -40
+KPX Amacron w -40
+KPX Amacron y -40
+KPX Amacron yacute -40
+KPX Amacron ydieresis -40
+KPX Aogonek C -30
+KPX Aogonek Cacute -30
+KPX Aogonek Ccaron -30
+KPX Aogonek Ccedilla -30
+KPX Aogonek G -30
+KPX Aogonek Gbreve -30
+KPX Aogonek Gcommaaccent -30
+KPX Aogonek O -30
+KPX Aogonek Oacute -30
+KPX Aogonek Ocircumflex -30
+KPX Aogonek Odieresis -30
+KPX Aogonek Ograve -30
+KPX Aogonek Ohungarumlaut -30
+KPX Aogonek Omacron -30
+KPX Aogonek Oslash -30
+KPX Aogonek Otilde -30
+KPX Aogonek Q -30
+KPX Aogonek T -120
+KPX Aogonek Tcaron -120
+KPX Aogonek Tcommaaccent -120
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -70
+KPX Aogonek W -50
+KPX Aogonek Y -100
+KPX Aogonek Yacute -100
+KPX Aogonek Ydieresis -100
+KPX Aogonek u -30
+KPX Aogonek uacute -30
+KPX Aogonek ucircumflex -30
+KPX Aogonek udieresis -30
+KPX Aogonek ugrave -30
+KPX Aogonek uhungarumlaut -30
+KPX Aogonek umacron -30
+KPX Aogonek uogonek -30
+KPX Aogonek uring -30
+KPX Aogonek v -40
+KPX Aogonek w -40
+KPX Aogonek y -40
+KPX Aogonek yacute -40
+KPX Aogonek ydieresis -40
+KPX Aring C -30
+KPX Aring Cacute -30
+KPX Aring Ccaron -30
+KPX Aring Ccedilla -30
+KPX Aring G -30
+KPX Aring Gbreve -30
+KPX Aring Gcommaaccent -30
+KPX Aring O -30
+KPX Aring Oacute -30
+KPX Aring Ocircumflex -30
+KPX Aring Odieresis -30
+KPX Aring Ograve -30
+KPX Aring Ohungarumlaut -30
+KPX Aring Omacron -30
+KPX Aring Oslash -30
+KPX Aring Otilde -30
+KPX Aring Q -30
+KPX Aring T -120
+KPX Aring Tcaron -120
+KPX Aring Tcommaaccent -120
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -70
+KPX Aring W -50
+KPX Aring Y -100
+KPX Aring Yacute -100
+KPX Aring Ydieresis -100
+KPX Aring u -30
+KPX Aring uacute -30
+KPX Aring ucircumflex -30
+KPX Aring udieresis -30
+KPX Aring ugrave -30
+KPX Aring uhungarumlaut -30
+KPX Aring umacron -30
+KPX Aring uogonek -30
+KPX Aring uring -30
+KPX Aring v -40
+KPX Aring w -40
+KPX Aring y -40
+KPX Aring yacute -40
+KPX Aring ydieresis -40
+KPX Atilde C -30
+KPX Atilde Cacute -30
+KPX Atilde Ccaron -30
+KPX Atilde Ccedilla -30
+KPX Atilde G -30
+KPX Atilde Gbreve -30
+KPX Atilde Gcommaaccent -30
+KPX Atilde O -30
+KPX Atilde Oacute -30
+KPX Atilde Ocircumflex -30
+KPX Atilde Odieresis -30
+KPX Atilde Ograve -30
+KPX Atilde Ohungarumlaut -30
+KPX Atilde Omacron -30
+KPX Atilde Oslash -30
+KPX Atilde Otilde -30
+KPX Atilde Q -30
+KPX Atilde T -120
+KPX Atilde Tcaron -120
+KPX Atilde Tcommaaccent -120
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -70
+KPX Atilde W -50
+KPX Atilde Y -100
+KPX Atilde Yacute -100
+KPX Atilde Ydieresis -100
+KPX Atilde u -30
+KPX Atilde uacute -30
+KPX Atilde ucircumflex -30
+KPX Atilde udieresis -30
+KPX Atilde ugrave -30
+KPX Atilde uhungarumlaut -30
+KPX Atilde umacron -30
+KPX Atilde uogonek -30
+KPX Atilde uring -30
+KPX Atilde v -40
+KPX Atilde w -40
+KPX Atilde y -40
+KPX Atilde yacute -40
+KPX Atilde ydieresis -40
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX B comma -20
+KPX B period -20
+KPX C comma -30
+KPX C period -30
+KPX Cacute comma -30
+KPX Cacute period -30
+KPX Ccaron comma -30
+KPX Ccaron period -30
+KPX Ccedilla comma -30
+KPX Ccedilla period -30
+KPX D A -40
+KPX D Aacute -40
+KPX D Abreve -40
+KPX D Acircumflex -40
+KPX D Adieresis -40
+KPX D Agrave -40
+KPX D Amacron -40
+KPX D Aogonek -40
+KPX D Aring -40
+KPX D Atilde -40
+KPX D V -70
+KPX D W -40
+KPX D Y -90
+KPX D Yacute -90
+KPX D Ydieresis -90
+KPX D comma -70
+KPX D period -70
+KPX Dcaron A -40
+KPX Dcaron Aacute -40
+KPX Dcaron Abreve -40
+KPX Dcaron Acircumflex -40
+KPX Dcaron Adieresis -40
+KPX Dcaron Agrave -40
+KPX Dcaron Amacron -40
+KPX Dcaron Aogonek -40
+KPX Dcaron Aring -40
+KPX Dcaron Atilde -40
+KPX Dcaron V -70
+KPX Dcaron W -40
+KPX Dcaron Y -90
+KPX Dcaron Yacute -90
+KPX Dcaron Ydieresis -90
+KPX Dcaron comma -70
+KPX Dcaron period -70
+KPX Dcroat A -40
+KPX Dcroat Aacute -40
+KPX Dcroat Abreve -40
+KPX Dcroat Acircumflex -40
+KPX Dcroat Adieresis -40
+KPX Dcroat Agrave -40
+KPX Dcroat Amacron -40
+KPX Dcroat Aogonek -40
+KPX Dcroat Aring -40
+KPX Dcroat Atilde -40
+KPX Dcroat V -70
+KPX Dcroat W -40
+KPX Dcroat Y -90
+KPX Dcroat Yacute -90
+KPX Dcroat Ydieresis -90
+KPX Dcroat comma -70
+KPX Dcroat period -70
+KPX F A -80
+KPX F Aacute -80
+KPX F Abreve -80
+KPX F Acircumflex -80
+KPX F Adieresis -80
+KPX F Agrave -80
+KPX F Amacron -80
+KPX F Aogonek -80
+KPX F Aring -80
+KPX F Atilde -80
+KPX F a -50
+KPX F aacute -50
+KPX F abreve -50
+KPX F acircumflex -50
+KPX F adieresis -50
+KPX F agrave -50
+KPX F amacron -50
+KPX F aogonek -50
+KPX F aring -50
+KPX F atilde -50
+KPX F comma -150
+KPX F e -30
+KPX F eacute -30
+KPX F ecaron -30
+KPX F ecircumflex -30
+KPX F edieresis -30
+KPX F edotaccent -30
+KPX F egrave -30
+KPX F emacron -30
+KPX F eogonek -30
+KPX F o -30
+KPX F oacute -30
+KPX F ocircumflex -30
+KPX F odieresis -30
+KPX F ograve -30
+KPX F ohungarumlaut -30
+KPX F omacron -30
+KPX F oslash -30
+KPX F otilde -30
+KPX F period -150
+KPX F r -45
+KPX F racute -45
+KPX F rcaron -45
+KPX F rcommaaccent -45
+KPX J A -20
+KPX J Aacute -20
+KPX J Abreve -20
+KPX J Acircumflex -20
+KPX J Adieresis -20
+KPX J Agrave -20
+KPX J Amacron -20
+KPX J Aogonek -20
+KPX J Aring -20
+KPX J Atilde -20
+KPX J a -20
+KPX J aacute -20
+KPX J abreve -20
+KPX J acircumflex -20
+KPX J adieresis -20
+KPX J agrave -20
+KPX J amacron -20
+KPX J aogonek -20
+KPX J aring -20
+KPX J atilde -20
+KPX J comma -30
+KPX J period -30
+KPX J u -20
+KPX J uacute -20
+KPX J ucircumflex -20
+KPX J udieresis -20
+KPX J ugrave -20
+KPX J uhungarumlaut -20
+KPX J umacron -20
+KPX J uogonek -20
+KPX J uring -20
+KPX K O -50
+KPX K Oacute -50
+KPX K Ocircumflex -50
+KPX K Odieresis -50
+KPX K Ograve -50
+KPX K Ohungarumlaut -50
+KPX K Omacron -50
+KPX K Oslash -50
+KPX K Otilde -50
+KPX K e -40
+KPX K eacute -40
+KPX K ecaron -40
+KPX K ecircumflex -40
+KPX K edieresis -40
+KPX K edotaccent -40
+KPX K egrave -40
+KPX K emacron -40
+KPX K eogonek -40
+KPX K o -40
+KPX K oacute -40
+KPX K ocircumflex -40
+KPX K odieresis -40
+KPX K ograve -40
+KPX K ohungarumlaut -40
+KPX K omacron -40
+KPX K oslash -40
+KPX K otilde -40
+KPX K u -30
+KPX K uacute -30
+KPX K ucircumflex -30
+KPX K udieresis -30
+KPX K ugrave -30
+KPX K uhungarumlaut -30
+KPX K umacron -30
+KPX K uogonek -30
+KPX K uring -30
+KPX K y -50
+KPX K yacute -50
+KPX K ydieresis -50
+KPX Kcommaaccent O -50
+KPX Kcommaaccent Oacute -50
+KPX Kcommaaccent Ocircumflex -50
+KPX Kcommaaccent Odieresis -50
+KPX Kcommaaccent Ograve -50
+KPX Kcommaaccent Ohungarumlaut -50
+KPX Kcommaaccent Omacron -50
+KPX Kcommaaccent Oslash -50
+KPX Kcommaaccent Otilde -50
+KPX Kcommaaccent e -40
+KPX Kcommaaccent eacute -40
+KPX Kcommaaccent ecaron -40
+KPX Kcommaaccent ecircumflex -40
+KPX Kcommaaccent edieresis -40
+KPX Kcommaaccent edotaccent -40
+KPX Kcommaaccent egrave -40
+KPX Kcommaaccent emacron -40
+KPX Kcommaaccent eogonek -40
+KPX Kcommaaccent o -40
+KPX Kcommaaccent oacute -40
+KPX Kcommaaccent ocircumflex -40
+KPX Kcommaaccent odieresis -40
+KPX Kcommaaccent ograve -40
+KPX Kcommaaccent ohungarumlaut -40
+KPX Kcommaaccent omacron -40
+KPX Kcommaaccent oslash -40
+KPX Kcommaaccent otilde -40
+KPX Kcommaaccent u -30
+KPX Kcommaaccent uacute -30
+KPX Kcommaaccent ucircumflex -30
+KPX Kcommaaccent udieresis -30
+KPX Kcommaaccent ugrave -30
+KPX Kcommaaccent uhungarumlaut -30
+KPX Kcommaaccent umacron -30
+KPX Kcommaaccent uogonek -30
+KPX Kcommaaccent uring -30
+KPX Kcommaaccent y -50
+KPX Kcommaaccent yacute -50
+KPX Kcommaaccent ydieresis -50
+KPX L T -110
+KPX L Tcaron -110
+KPX L Tcommaaccent -110
+KPX L V -110
+KPX L W -70
+KPX L Y -140
+KPX L Yacute -140
+KPX L Ydieresis -140
+KPX L quotedblright -140
+KPX L quoteright -160
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -110
+KPX Lacute Tcaron -110
+KPX Lacute Tcommaaccent -110
+KPX Lacute V -110
+KPX Lacute W -70
+KPX Lacute Y -140
+KPX Lacute Yacute -140
+KPX Lacute Ydieresis -140
+KPX Lacute quotedblright -140
+KPX Lacute quoteright -160
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcaron T -110
+KPX Lcaron Tcaron -110
+KPX Lcaron Tcommaaccent -110
+KPX Lcaron V -110
+KPX Lcaron W -70
+KPX Lcaron Y -140
+KPX Lcaron Yacute -140
+KPX Lcaron Ydieresis -140
+KPX Lcaron quotedblright -140
+KPX Lcaron quoteright -160
+KPX Lcaron y -30
+KPX Lcaron yacute -30
+KPX Lcaron ydieresis -30
+KPX Lcommaaccent T -110
+KPX Lcommaaccent Tcaron -110
+KPX Lcommaaccent Tcommaaccent -110
+KPX Lcommaaccent V -110
+KPX Lcommaaccent W -70
+KPX Lcommaaccent Y -140
+KPX Lcommaaccent Yacute -140
+KPX Lcommaaccent Ydieresis -140
+KPX Lcommaaccent quotedblright -140
+KPX Lcommaaccent quoteright -160
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -110
+KPX Lslash Tcaron -110
+KPX Lslash Tcommaaccent -110
+KPX Lslash V -110
+KPX Lslash W -70
+KPX Lslash Y -140
+KPX Lslash Yacute -140
+KPX Lslash Ydieresis -140
+KPX Lslash quotedblright -140
+KPX Lslash quoteright -160
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX O A -20
+KPX O Aacute -20
+KPX O Abreve -20
+KPX O Acircumflex -20
+KPX O Adieresis -20
+KPX O Agrave -20
+KPX O Amacron -20
+KPX O Aogonek -20
+KPX O Aring -20
+KPX O Atilde -20
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -30
+KPX O X -60
+KPX O Y -70
+KPX O Yacute -70
+KPX O Ydieresis -70
+KPX O comma -40
+KPX O period -40
+KPX Oacute A -20
+KPX Oacute Aacute -20
+KPX Oacute Abreve -20
+KPX Oacute Acircumflex -20
+KPX Oacute Adieresis -20
+KPX Oacute Agrave -20
+KPX Oacute Amacron -20
+KPX Oacute Aogonek -20
+KPX Oacute Aring -20
+KPX Oacute Atilde -20
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -30
+KPX Oacute X -60
+KPX Oacute Y -70
+KPX Oacute Yacute -70
+KPX Oacute Ydieresis -70
+KPX Oacute comma -40
+KPX Oacute period -40
+KPX Ocircumflex A -20
+KPX Ocircumflex Aacute -20
+KPX Ocircumflex Abreve -20
+KPX Ocircumflex Acircumflex -20
+KPX Ocircumflex Adieresis -20
+KPX Ocircumflex Agrave -20
+KPX Ocircumflex Amacron -20
+KPX Ocircumflex Aogonek -20
+KPX Ocircumflex Aring -20
+KPX Ocircumflex Atilde -20
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -30
+KPX Ocircumflex X -60
+KPX Ocircumflex Y -70
+KPX Ocircumflex Yacute -70
+KPX Ocircumflex Ydieresis -70
+KPX Ocircumflex comma -40
+KPX Ocircumflex period -40
+KPX Odieresis A -20
+KPX Odieresis Aacute -20
+KPX Odieresis Abreve -20
+KPX Odieresis Acircumflex -20
+KPX Odieresis Adieresis -20
+KPX Odieresis Agrave -20
+KPX Odieresis Amacron -20
+KPX Odieresis Aogonek -20
+KPX Odieresis Aring -20
+KPX Odieresis Atilde -20
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -30
+KPX Odieresis X -60
+KPX Odieresis Y -70
+KPX Odieresis Yacute -70
+KPX Odieresis Ydieresis -70
+KPX Odieresis comma -40
+KPX Odieresis period -40
+KPX Ograve A -20
+KPX Ograve Aacute -20
+KPX Ograve Abreve -20
+KPX Ograve Acircumflex -20
+KPX Ograve Adieresis -20
+KPX Ograve Agrave -20
+KPX Ograve Amacron -20
+KPX Ograve Aogonek -20
+KPX Ograve Aring -20
+KPX Ograve Atilde -20
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -30
+KPX Ograve X -60
+KPX Ograve Y -70
+KPX Ograve Yacute -70
+KPX Ograve Ydieresis -70
+KPX Ograve comma -40
+KPX Ograve period -40
+KPX Ohungarumlaut A -20
+KPX Ohungarumlaut Aacute -20
+KPX Ohungarumlaut Abreve -20
+KPX Ohungarumlaut Acircumflex -20
+KPX Ohungarumlaut Adieresis -20
+KPX Ohungarumlaut Agrave -20
+KPX Ohungarumlaut Amacron -20
+KPX Ohungarumlaut Aogonek -20
+KPX Ohungarumlaut Aring -20
+KPX Ohungarumlaut Atilde -20
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -30
+KPX Ohungarumlaut X -60
+KPX Ohungarumlaut Y -70
+KPX Ohungarumlaut Yacute -70
+KPX Ohungarumlaut Ydieresis -70
+KPX Ohungarumlaut comma -40
+KPX Ohungarumlaut period -40
+KPX Omacron A -20
+KPX Omacron Aacute -20
+KPX Omacron Abreve -20
+KPX Omacron Acircumflex -20
+KPX Omacron Adieresis -20
+KPX Omacron Agrave -20
+KPX Omacron Amacron -20
+KPX Omacron Aogonek -20
+KPX Omacron Aring -20
+KPX Omacron Atilde -20
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -30
+KPX Omacron X -60
+KPX Omacron Y -70
+KPX Omacron Yacute -70
+KPX Omacron Ydieresis -70
+KPX Omacron comma -40
+KPX Omacron period -40
+KPX Oslash A -20
+KPX Oslash Aacute -20
+KPX Oslash Abreve -20
+KPX Oslash Acircumflex -20
+KPX Oslash Adieresis -20
+KPX Oslash Agrave -20
+KPX Oslash Amacron -20
+KPX Oslash Aogonek -20
+KPX Oslash Aring -20
+KPX Oslash Atilde -20
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -30
+KPX Oslash X -60
+KPX Oslash Y -70
+KPX Oslash Yacute -70
+KPX Oslash Ydieresis -70
+KPX Oslash comma -40
+KPX Oslash period -40
+KPX Otilde A -20
+KPX Otilde Aacute -20
+KPX Otilde Abreve -20
+KPX Otilde Acircumflex -20
+KPX Otilde Adieresis -20
+KPX Otilde Agrave -20
+KPX Otilde Amacron -20
+KPX Otilde Aogonek -20
+KPX Otilde Aring -20
+KPX Otilde Atilde -20
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -30
+KPX Otilde X -60
+KPX Otilde Y -70
+KPX Otilde Yacute -70
+KPX Otilde Ydieresis -70
+KPX Otilde comma -40
+KPX Otilde period -40
+KPX P A -120
+KPX P Aacute -120
+KPX P Abreve -120
+KPX P Acircumflex -120
+KPX P Adieresis -120
+KPX P Agrave -120
+KPX P Amacron -120
+KPX P Aogonek -120
+KPX P Aring -120
+KPX P Atilde -120
+KPX P a -40
+KPX P aacute -40
+KPX P abreve -40
+KPX P acircumflex -40
+KPX P adieresis -40
+KPX P agrave -40
+KPX P amacron -40
+KPX P aogonek -40
+KPX P aring -40
+KPX P atilde -40
+KPX P comma -180
+KPX P e -50
+KPX P eacute -50
+KPX P ecaron -50
+KPX P ecircumflex -50
+KPX P edieresis -50
+KPX P edotaccent -50
+KPX P egrave -50
+KPX P emacron -50
+KPX P eogonek -50
+KPX P o -50
+KPX P oacute -50
+KPX P ocircumflex -50
+KPX P odieresis -50
+KPX P ograve -50
+KPX P ohungarumlaut -50
+KPX P omacron -50
+KPX P oslash -50
+KPX P otilde -50
+KPX P period -180
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R O -20
+KPX R Oacute -20
+KPX R Ocircumflex -20
+KPX R Odieresis -20
+KPX R Ograve -20
+KPX R Ohungarumlaut -20
+KPX R Omacron -20
+KPX R Oslash -20
+KPX R Otilde -20
+KPX R T -30
+KPX R Tcaron -30
+KPX R Tcommaaccent -30
+KPX R U -40
+KPX R Uacute -40
+KPX R Ucircumflex -40
+KPX R Udieresis -40
+KPX R Ugrave -40
+KPX R Uhungarumlaut -40
+KPX R Umacron -40
+KPX R Uogonek -40
+KPX R Uring -40
+KPX R V -50
+KPX R W -30
+KPX R Y -50
+KPX R Yacute -50
+KPX R Ydieresis -50
+KPX Racute O -20
+KPX Racute Oacute -20
+KPX Racute Ocircumflex -20
+KPX Racute Odieresis -20
+KPX Racute Ograve -20
+KPX Racute Ohungarumlaut -20
+KPX Racute Omacron -20
+KPX Racute Oslash -20
+KPX Racute Otilde -20
+KPX Racute T -30
+KPX Racute Tcaron -30
+KPX Racute Tcommaaccent -30
+KPX Racute U -40
+KPX Racute Uacute -40
+KPX Racute Ucircumflex -40
+KPX Racute Udieresis -40
+KPX Racute Ugrave -40
+KPX Racute Uhungarumlaut -40
+KPX Racute Umacron -40
+KPX Racute Uogonek -40
+KPX Racute Uring -40
+KPX Racute V -50
+KPX Racute W -30
+KPX Racute Y -50
+KPX Racute Yacute -50
+KPX Racute Ydieresis -50
+KPX Rcaron O -20
+KPX Rcaron Oacute -20
+KPX Rcaron Ocircumflex -20
+KPX Rcaron Odieresis -20
+KPX Rcaron Ograve -20
+KPX Rcaron Ohungarumlaut -20
+KPX Rcaron Omacron -20
+KPX Rcaron Oslash -20
+KPX Rcaron Otilde -20
+KPX Rcaron T -30
+KPX Rcaron Tcaron -30
+KPX Rcaron Tcommaaccent -30
+KPX Rcaron U -40
+KPX Rcaron Uacute -40
+KPX Rcaron Ucircumflex -40
+KPX Rcaron Udieresis -40
+KPX Rcaron Ugrave -40
+KPX Rcaron Uhungarumlaut -40
+KPX Rcaron Umacron -40
+KPX Rcaron Uogonek -40
+KPX Rcaron Uring -40
+KPX Rcaron V -50
+KPX Rcaron W -30
+KPX Rcaron Y -50
+KPX Rcaron Yacute -50
+KPX Rcaron Ydieresis -50
+KPX Rcommaaccent O -20
+KPX Rcommaaccent Oacute -20
+KPX Rcommaaccent Ocircumflex -20
+KPX Rcommaaccent Odieresis -20
+KPX Rcommaaccent Ograve -20
+KPX Rcommaaccent Ohungarumlaut -20
+KPX Rcommaaccent Omacron -20
+KPX Rcommaaccent Oslash -20
+KPX Rcommaaccent Otilde -20
+KPX Rcommaaccent T -30
+KPX Rcommaaccent Tcaron -30
+KPX Rcommaaccent Tcommaaccent -30
+KPX Rcommaaccent U -40
+KPX Rcommaaccent Uacute -40
+KPX Rcommaaccent Ucircumflex -40
+KPX Rcommaaccent Udieresis -40
+KPX Rcommaaccent Ugrave -40
+KPX Rcommaaccent Uhungarumlaut -40
+KPX Rcommaaccent Umacron -40
+KPX Rcommaaccent Uogonek -40
+KPX Rcommaaccent Uring -40
+KPX Rcommaaccent V -50
+KPX Rcommaaccent W -30
+KPX Rcommaaccent Y -50
+KPX Rcommaaccent Yacute -50
+KPX Rcommaaccent Ydieresis -50
+KPX S comma -20
+KPX S period -20
+KPX Sacute comma -20
+KPX Sacute period -20
+KPX Scaron comma -20
+KPX Scaron period -20
+KPX Scedilla comma -20
+KPX Scedilla period -20
+KPX Scommaaccent comma -20
+KPX Scommaaccent period -20
+KPX T A -120
+KPX T Aacute -120
+KPX T Abreve -120
+KPX T Acircumflex -120
+KPX T Adieresis -120
+KPX T Agrave -120
+KPX T Amacron -120
+KPX T Aogonek -120
+KPX T Aring -120
+KPX T Atilde -120
+KPX T O -40
+KPX T Oacute -40
+KPX T Ocircumflex -40
+KPX T Odieresis -40
+KPX T Ograve -40
+KPX T Ohungarumlaut -40
+KPX T Omacron -40
+KPX T Oslash -40
+KPX T Otilde -40
+KPX T a -120
+KPX T aacute -120
+KPX T abreve -60
+KPX T acircumflex -120
+KPX T adieresis -120
+KPX T agrave -120
+KPX T amacron -60
+KPX T aogonek -120
+KPX T aring -120
+KPX T atilde -60
+KPX T colon -20
+KPX T comma -120
+KPX T e -120
+KPX T eacute -120
+KPX T ecaron -120
+KPX T ecircumflex -120
+KPX T edieresis -120
+KPX T edotaccent -120
+KPX T egrave -60
+KPX T emacron -60
+KPX T eogonek -120
+KPX T hyphen -140
+KPX T o -120
+KPX T oacute -120
+KPX T ocircumflex -120
+KPX T odieresis -120
+KPX T ograve -120
+KPX T ohungarumlaut -120
+KPX T omacron -60
+KPX T oslash -120
+KPX T otilde -60
+KPX T period -120
+KPX T r -120
+KPX T racute -120
+KPX T rcaron -120
+KPX T rcommaaccent -120
+KPX T semicolon -20
+KPX T u -120
+KPX T uacute -120
+KPX T ucircumflex -120
+KPX T udieresis -120
+KPX T ugrave -120
+KPX T uhungarumlaut -120
+KPX T umacron -60
+KPX T uogonek -120
+KPX T uring -120
+KPX T w -120
+KPX T y -120
+KPX T yacute -120
+KPX T ydieresis -60
+KPX Tcaron A -120
+KPX Tcaron Aacute -120
+KPX Tcaron Abreve -120
+KPX Tcaron Acircumflex -120
+KPX Tcaron Adieresis -120
+KPX Tcaron Agrave -120
+KPX Tcaron Amacron -120
+KPX Tcaron Aogonek -120
+KPX Tcaron Aring -120
+KPX Tcaron Atilde -120
+KPX Tcaron O -40
+KPX Tcaron Oacute -40
+KPX Tcaron Ocircumflex -40
+KPX Tcaron Odieresis -40
+KPX Tcaron Ograve -40
+KPX Tcaron Ohungarumlaut -40
+KPX Tcaron Omacron -40
+KPX Tcaron Oslash -40
+KPX Tcaron Otilde -40
+KPX Tcaron a -120
+KPX Tcaron aacute -120
+KPX Tcaron abreve -60
+KPX Tcaron acircumflex -120
+KPX Tcaron adieresis -120
+KPX Tcaron agrave -120
+KPX Tcaron amacron -60
+KPX Tcaron aogonek -120
+KPX Tcaron aring -120
+KPX Tcaron atilde -60
+KPX Tcaron colon -20
+KPX Tcaron comma -120
+KPX Tcaron e -120
+KPX Tcaron eacute -120
+KPX Tcaron ecaron -120
+KPX Tcaron ecircumflex -120
+KPX Tcaron edieresis -120
+KPX Tcaron edotaccent -120
+KPX Tcaron egrave -60
+KPX Tcaron emacron -60
+KPX Tcaron eogonek -120
+KPX Tcaron hyphen -140
+KPX Tcaron o -120
+KPX Tcaron oacute -120
+KPX Tcaron ocircumflex -120
+KPX Tcaron odieresis -120
+KPX Tcaron ograve -120
+KPX Tcaron ohungarumlaut -120
+KPX Tcaron omacron -60
+KPX Tcaron oslash -120
+KPX Tcaron otilde -60
+KPX Tcaron period -120
+KPX Tcaron r -120
+KPX Tcaron racute -120
+KPX Tcaron rcaron -120
+KPX Tcaron rcommaaccent -120
+KPX Tcaron semicolon -20
+KPX Tcaron u -120
+KPX Tcaron uacute -120
+KPX Tcaron ucircumflex -120
+KPX Tcaron udieresis -120
+KPX Tcaron ugrave -120
+KPX Tcaron uhungarumlaut -120
+KPX Tcaron umacron -60
+KPX Tcaron uogonek -120
+KPX Tcaron uring -120
+KPX Tcaron w -120
+KPX Tcaron y -120
+KPX Tcaron yacute -120
+KPX Tcaron ydieresis -60
+KPX Tcommaaccent A -120
+KPX Tcommaaccent Aacute -120
+KPX Tcommaaccent Abreve -120
+KPX Tcommaaccent Acircumflex -120
+KPX Tcommaaccent Adieresis -120
+KPX Tcommaaccent Agrave -120
+KPX Tcommaaccent Amacron -120
+KPX Tcommaaccent Aogonek -120
+KPX Tcommaaccent Aring -120
+KPX Tcommaaccent Atilde -120
+KPX Tcommaaccent O -40
+KPX Tcommaaccent Oacute -40
+KPX Tcommaaccent Ocircumflex -40
+KPX Tcommaaccent Odieresis -40
+KPX Tcommaaccent Ograve -40
+KPX Tcommaaccent Ohungarumlaut -40
+KPX Tcommaaccent Omacron -40
+KPX Tcommaaccent Oslash -40
+KPX Tcommaaccent Otilde -40
+KPX Tcommaaccent a -120
+KPX Tcommaaccent aacute -120
+KPX Tcommaaccent abreve -60
+KPX Tcommaaccent acircumflex -120
+KPX Tcommaaccent adieresis -120
+KPX Tcommaaccent agrave -120
+KPX Tcommaaccent amacron -60
+KPX Tcommaaccent aogonek -120
+KPX Tcommaaccent aring -120
+KPX Tcommaaccent atilde -60
+KPX Tcommaaccent colon -20
+KPX Tcommaaccent comma -120
+KPX Tcommaaccent e -120
+KPX Tcommaaccent eacute -120
+KPX Tcommaaccent ecaron -120
+KPX Tcommaaccent ecircumflex -120
+KPX Tcommaaccent edieresis -120
+KPX Tcommaaccent edotaccent -120
+KPX Tcommaaccent egrave -60
+KPX Tcommaaccent emacron -60
+KPX Tcommaaccent eogonek -120
+KPX Tcommaaccent hyphen -140
+KPX Tcommaaccent o -120
+KPX Tcommaaccent oacute -120
+KPX Tcommaaccent ocircumflex -120
+KPX Tcommaaccent odieresis -120
+KPX Tcommaaccent ograve -120
+KPX Tcommaaccent ohungarumlaut -120
+KPX Tcommaaccent omacron -60
+KPX Tcommaaccent oslash -120
+KPX Tcommaaccent otilde -60
+KPX Tcommaaccent period -120
+KPX Tcommaaccent r -120
+KPX Tcommaaccent racute -120
+KPX Tcommaaccent rcaron -120
+KPX Tcommaaccent rcommaaccent -120
+KPX Tcommaaccent semicolon -20
+KPX Tcommaaccent u -120
+KPX Tcommaaccent uacute -120
+KPX Tcommaaccent ucircumflex -120
+KPX Tcommaaccent udieresis -120
+KPX Tcommaaccent ugrave -120
+KPX Tcommaaccent uhungarumlaut -120
+KPX Tcommaaccent umacron -60
+KPX Tcommaaccent uogonek -120
+KPX Tcommaaccent uring -120
+KPX Tcommaaccent w -120
+KPX Tcommaaccent y -120
+KPX Tcommaaccent yacute -120
+KPX Tcommaaccent ydieresis -60
+KPX U A -40
+KPX U Aacute -40
+KPX U Abreve -40
+KPX U Acircumflex -40
+KPX U Adieresis -40
+KPX U Agrave -40
+KPX U Amacron -40
+KPX U Aogonek -40
+KPX U Aring -40
+KPX U Atilde -40
+KPX U comma -40
+KPX U period -40
+KPX Uacute A -40
+KPX Uacute Aacute -40
+KPX Uacute Abreve -40
+KPX Uacute Acircumflex -40
+KPX Uacute Adieresis -40
+KPX Uacute Agrave -40
+KPX Uacute Amacron -40
+KPX Uacute Aogonek -40
+KPX Uacute Aring -40
+KPX Uacute Atilde -40
+KPX Uacute comma -40
+KPX Uacute period -40
+KPX Ucircumflex A -40
+KPX Ucircumflex Aacute -40
+KPX Ucircumflex Abreve -40
+KPX Ucircumflex Acircumflex -40
+KPX Ucircumflex Adieresis -40
+KPX Ucircumflex Agrave -40
+KPX Ucircumflex Amacron -40
+KPX Ucircumflex Aogonek -40
+KPX Ucircumflex Aring -40
+KPX Ucircumflex Atilde -40
+KPX Ucircumflex comma -40
+KPX Ucircumflex period -40
+KPX Udieresis A -40
+KPX Udieresis Aacute -40
+KPX Udieresis Abreve -40
+KPX Udieresis Acircumflex -40
+KPX Udieresis Adieresis -40
+KPX Udieresis Agrave -40
+KPX Udieresis Amacron -40
+KPX Udieresis Aogonek -40
+KPX Udieresis Aring -40
+KPX Udieresis Atilde -40
+KPX Udieresis comma -40
+KPX Udieresis period -40
+KPX Ugrave A -40
+KPX Ugrave Aacute -40
+KPX Ugrave Abreve -40
+KPX Ugrave Acircumflex -40
+KPX Ugrave Adieresis -40
+KPX Ugrave Agrave -40
+KPX Ugrave Amacron -40
+KPX Ugrave Aogonek -40
+KPX Ugrave Aring -40
+KPX Ugrave Atilde -40
+KPX Ugrave comma -40
+KPX Ugrave period -40
+KPX Uhungarumlaut A -40
+KPX Uhungarumlaut Aacute -40
+KPX Uhungarumlaut Abreve -40
+KPX Uhungarumlaut Acircumflex -40
+KPX Uhungarumlaut Adieresis -40
+KPX Uhungarumlaut Agrave -40
+KPX Uhungarumlaut Amacron -40
+KPX Uhungarumlaut Aogonek -40
+KPX Uhungarumlaut Aring -40
+KPX Uhungarumlaut Atilde -40
+KPX Uhungarumlaut comma -40
+KPX Uhungarumlaut period -40
+KPX Umacron A -40
+KPX Umacron Aacute -40
+KPX Umacron Abreve -40
+KPX Umacron Acircumflex -40
+KPX Umacron Adieresis -40
+KPX Umacron Agrave -40
+KPX Umacron Amacron -40
+KPX Umacron Aogonek -40
+KPX Umacron Aring -40
+KPX Umacron Atilde -40
+KPX Umacron comma -40
+KPX Umacron period -40
+KPX Uogonek A -40
+KPX Uogonek Aacute -40
+KPX Uogonek Abreve -40
+KPX Uogonek Acircumflex -40
+KPX Uogonek Adieresis -40
+KPX Uogonek Agrave -40
+KPX Uogonek Amacron -40
+KPX Uogonek Aogonek -40
+KPX Uogonek Aring -40
+KPX Uogonek Atilde -40
+KPX Uogonek comma -40
+KPX Uogonek period -40
+KPX Uring A -40
+KPX Uring Aacute -40
+KPX Uring Abreve -40
+KPX Uring Acircumflex -40
+KPX Uring Adieresis -40
+KPX Uring Agrave -40
+KPX Uring Amacron -40
+KPX Uring Aogonek -40
+KPX Uring Aring -40
+KPX Uring Atilde -40
+KPX Uring comma -40
+KPX Uring period -40
+KPX V A -80
+KPX V Aacute -80
+KPX V Abreve -80
+KPX V Acircumflex -80
+KPX V Adieresis -80
+KPX V Agrave -80
+KPX V Amacron -80
+KPX V Aogonek -80
+KPX V Aring -80
+KPX V Atilde -80
+KPX V G -40
+KPX V Gbreve -40
+KPX V Gcommaaccent -40
+KPX V O -40
+KPX V Oacute -40
+KPX V Ocircumflex -40
+KPX V Odieresis -40
+KPX V Ograve -40
+KPX V Ohungarumlaut -40
+KPX V Omacron -40
+KPX V Oslash -40
+KPX V Otilde -40
+KPX V a -70
+KPX V aacute -70
+KPX V abreve -70
+KPX V acircumflex -70
+KPX V adieresis -70
+KPX V agrave -70
+KPX V amacron -70
+KPX V aogonek -70
+KPX V aring -70
+KPX V atilde -70
+KPX V colon -40
+KPX V comma -125
+KPX V e -80
+KPX V eacute -80
+KPX V ecaron -80
+KPX V ecircumflex -80
+KPX V edieresis -80
+KPX V edotaccent -80
+KPX V egrave -80
+KPX V emacron -80
+KPX V eogonek -80
+KPX V hyphen -80
+KPX V o -80
+KPX V oacute -80
+KPX V ocircumflex -80
+KPX V odieresis -80
+KPX V ograve -80
+KPX V ohungarumlaut -80
+KPX V omacron -80
+KPX V oslash -80
+KPX V otilde -80
+KPX V period -125
+KPX V semicolon -40
+KPX V u -70
+KPX V uacute -70
+KPX V ucircumflex -70
+KPX V udieresis -70
+KPX V ugrave -70
+KPX V uhungarumlaut -70
+KPX V umacron -70
+KPX V uogonek -70
+KPX V uring -70
+KPX W A -50
+KPX W Aacute -50
+KPX W Abreve -50
+KPX W Acircumflex -50
+KPX W Adieresis -50
+KPX W Agrave -50
+KPX W Amacron -50
+KPX W Aogonek -50
+KPX W Aring -50
+KPX W Atilde -50
+KPX W O -20
+KPX W Oacute -20
+KPX W Ocircumflex -20
+KPX W Odieresis -20
+KPX W Ograve -20
+KPX W Ohungarumlaut -20
+KPX W Omacron -20
+KPX W Oslash -20
+KPX W Otilde -20
+KPX W a -40
+KPX W aacute -40
+KPX W abreve -40
+KPX W acircumflex -40
+KPX W adieresis -40
+KPX W agrave -40
+KPX W amacron -40
+KPX W aogonek -40
+KPX W aring -40
+KPX W atilde -40
+KPX W comma -80
+KPX W e -30
+KPX W eacute -30
+KPX W ecaron -30
+KPX W ecircumflex -30
+KPX W edieresis -30
+KPX W edotaccent -30
+KPX W egrave -30
+KPX W emacron -30
+KPX W eogonek -30
+KPX W hyphen -40
+KPX W o -30
+KPX W oacute -30
+KPX W ocircumflex -30
+KPX W odieresis -30
+KPX W ograve -30
+KPX W ohungarumlaut -30
+KPX W omacron -30
+KPX W oslash -30
+KPX W otilde -30
+KPX W period -80
+KPX W u -30
+KPX W uacute -30
+KPX W ucircumflex -30
+KPX W udieresis -30
+KPX W ugrave -30
+KPX W uhungarumlaut -30
+KPX W umacron -30
+KPX W uogonek -30
+KPX W uring -30
+KPX W y -20
+KPX W yacute -20
+KPX W ydieresis -20
+KPX Y A -110
+KPX Y Aacute -110
+KPX Y Abreve -110
+KPX Y Acircumflex -110
+KPX Y Adieresis -110
+KPX Y Agrave -110
+KPX Y Amacron -110
+KPX Y Aogonek -110
+KPX Y Aring -110
+KPX Y Atilde -110
+KPX Y O -85
+KPX Y Oacute -85
+KPX Y Ocircumflex -85
+KPX Y Odieresis -85
+KPX Y Ograve -85
+KPX Y Ohungarumlaut -85
+KPX Y Omacron -85
+KPX Y Oslash -85
+KPX Y Otilde -85
+KPX Y a -140
+KPX Y aacute -140
+KPX Y abreve -70
+KPX Y acircumflex -140
+KPX Y adieresis -140
+KPX Y agrave -140
+KPX Y amacron -70
+KPX Y aogonek -140
+KPX Y aring -140
+KPX Y atilde -140
+KPX Y colon -60
+KPX Y comma -140
+KPX Y e -140
+KPX Y eacute -140
+KPX Y ecaron -140
+KPX Y ecircumflex -140
+KPX Y edieresis -140
+KPX Y edotaccent -140
+KPX Y egrave -140
+KPX Y emacron -70
+KPX Y eogonek -140
+KPX Y hyphen -140
+KPX Y i -20
+KPX Y iacute -20
+KPX Y iogonek -20
+KPX Y o -140
+KPX Y oacute -140
+KPX Y ocircumflex -140
+KPX Y odieresis -140
+KPX Y ograve -140
+KPX Y ohungarumlaut -140
+KPX Y omacron -140
+KPX Y oslash -140
+KPX Y otilde -140
+KPX Y period -140
+KPX Y semicolon -60
+KPX Y u -110
+KPX Y uacute -110
+KPX Y ucircumflex -110
+KPX Y udieresis -110
+KPX Y ugrave -110
+KPX Y uhungarumlaut -110
+KPX Y umacron -110
+KPX Y uogonek -110
+KPX Y uring -110
+KPX Yacute A -110
+KPX Yacute Aacute -110
+KPX Yacute Abreve -110
+KPX Yacute Acircumflex -110
+KPX Yacute Adieresis -110
+KPX Yacute Agrave -110
+KPX Yacute Amacron -110
+KPX Yacute Aogonek -110
+KPX Yacute Aring -110
+KPX Yacute Atilde -110
+KPX Yacute O -85
+KPX Yacute Oacute -85
+KPX Yacute Ocircumflex -85
+KPX Yacute Odieresis -85
+KPX Yacute Ograve -85
+KPX Yacute Ohungarumlaut -85
+KPX Yacute Omacron -85
+KPX Yacute Oslash -85
+KPX Yacute Otilde -85
+KPX Yacute a -140
+KPX Yacute aacute -140
+KPX Yacute abreve -70
+KPX Yacute acircumflex -140
+KPX Yacute adieresis -140
+KPX Yacute agrave -140
+KPX Yacute amacron -70
+KPX Yacute aogonek -140
+KPX Yacute aring -140
+KPX Yacute atilde -70
+KPX Yacute colon -60
+KPX Yacute comma -140
+KPX Yacute e -140
+KPX Yacute eacute -140
+KPX Yacute ecaron -140
+KPX Yacute ecircumflex -140
+KPX Yacute edieresis -140
+KPX Yacute edotaccent -140
+KPX Yacute egrave -140
+KPX Yacute emacron -70
+KPX Yacute eogonek -140
+KPX Yacute hyphen -140
+KPX Yacute i -20
+KPX Yacute iacute -20
+KPX Yacute iogonek -20
+KPX Yacute o -140
+KPX Yacute oacute -140
+KPX Yacute ocircumflex -140
+KPX Yacute odieresis -140
+KPX Yacute ograve -140
+KPX Yacute ohungarumlaut -140
+KPX Yacute omacron -70
+KPX Yacute oslash -140
+KPX Yacute otilde -140
+KPX Yacute period -140
+KPX Yacute semicolon -60
+KPX Yacute u -110
+KPX Yacute uacute -110
+KPX Yacute ucircumflex -110
+KPX Yacute udieresis -110
+KPX Yacute ugrave -110
+KPX Yacute uhungarumlaut -110
+KPX Yacute umacron -110
+KPX Yacute uogonek -110
+KPX Yacute uring -110
+KPX Ydieresis A -110
+KPX Ydieresis Aacute -110
+KPX Ydieresis Abreve -110
+KPX Ydieresis Acircumflex -110
+KPX Ydieresis Adieresis -110
+KPX Ydieresis Agrave -110
+KPX Ydieresis Amacron -110
+KPX Ydieresis Aogonek -110
+KPX Ydieresis Aring -110
+KPX Ydieresis Atilde -110
+KPX Ydieresis O -85
+KPX Ydieresis Oacute -85
+KPX Ydieresis Ocircumflex -85
+KPX Ydieresis Odieresis -85
+KPX Ydieresis Ograve -85
+KPX Ydieresis Ohungarumlaut -85
+KPX Ydieresis Omacron -85
+KPX Ydieresis Oslash -85
+KPX Ydieresis Otilde -85
+KPX Ydieresis a -140
+KPX Ydieresis aacute -140
+KPX Ydieresis abreve -70
+KPX Ydieresis acircumflex -140
+KPX Ydieresis adieresis -140
+KPX Ydieresis agrave -140
+KPX Ydieresis amacron -70
+KPX Ydieresis aogonek -140
+KPX Ydieresis aring -140
+KPX Ydieresis atilde -70
+KPX Ydieresis colon -60
+KPX Ydieresis comma -140
+KPX Ydieresis e -140
+KPX Ydieresis eacute -140
+KPX Ydieresis ecaron -140
+KPX Ydieresis ecircumflex -140
+KPX Ydieresis edieresis -140
+KPX Ydieresis edotaccent -140
+KPX Ydieresis egrave -140
+KPX Ydieresis emacron -70
+KPX Ydieresis eogonek -140
+KPX Ydieresis hyphen -140
+KPX Ydieresis i -20
+KPX Ydieresis iacute -20
+KPX Ydieresis iogonek -20
+KPX Ydieresis o -140
+KPX Ydieresis oacute -140
+KPX Ydieresis ocircumflex -140
+KPX Ydieresis odieresis -140
+KPX Ydieresis ograve -140
+KPX Ydieresis ohungarumlaut -140
+KPX Ydieresis omacron -140
+KPX Ydieresis oslash -140
+KPX Ydieresis otilde -140
+KPX Ydieresis period -140
+KPX Ydieresis semicolon -60
+KPX Ydieresis u -110
+KPX Ydieresis uacute -110
+KPX Ydieresis ucircumflex -110
+KPX Ydieresis udieresis -110
+KPX Ydieresis ugrave -110
+KPX Ydieresis uhungarumlaut -110
+KPX Ydieresis umacron -110
+KPX Ydieresis uogonek -110
+KPX Ydieresis uring -110
+KPX a v -20
+KPX a w -20
+KPX a y -30
+KPX a yacute -30
+KPX a ydieresis -30
+KPX aacute v -20
+KPX aacute w -20
+KPX aacute y -30
+KPX aacute yacute -30
+KPX aacute ydieresis -30
+KPX abreve v -20
+KPX abreve w -20
+KPX abreve y -30
+KPX abreve yacute -30
+KPX abreve ydieresis -30
+KPX acircumflex v -20
+KPX acircumflex w -20
+KPX acircumflex y -30
+KPX acircumflex yacute -30
+KPX acircumflex ydieresis -30
+KPX adieresis v -20
+KPX adieresis w -20
+KPX adieresis y -30
+KPX adieresis yacute -30
+KPX adieresis ydieresis -30
+KPX agrave v -20
+KPX agrave w -20
+KPX agrave y -30
+KPX agrave yacute -30
+KPX agrave ydieresis -30
+KPX amacron v -20
+KPX amacron w -20
+KPX amacron y -30
+KPX amacron yacute -30
+KPX amacron ydieresis -30
+KPX aogonek v -20
+KPX aogonek w -20
+KPX aogonek y -30
+KPX aogonek yacute -30
+KPX aogonek ydieresis -30
+KPX aring v -20
+KPX aring w -20
+KPX aring y -30
+KPX aring yacute -30
+KPX aring ydieresis -30
+KPX atilde v -20
+KPX atilde w -20
+KPX atilde y -30
+KPX atilde yacute -30
+KPX atilde ydieresis -30
+KPX b b -10
+KPX b comma -40
+KPX b l -20
+KPX b lacute -20
+KPX b lcommaaccent -20
+KPX b lslash -20
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -20
+KPX b y -20
+KPX b yacute -20
+KPX b ydieresis -20
+KPX c comma -15
+KPX c k -20
+KPX c kcommaaccent -20
+KPX cacute comma -15
+KPX cacute k -20
+KPX cacute kcommaaccent -20
+KPX ccaron comma -15
+KPX ccaron k -20
+KPX ccaron kcommaaccent -20
+KPX ccedilla comma -15
+KPX ccedilla k -20
+KPX ccedilla kcommaaccent -20
+KPX colon space -50
+KPX comma quotedblright -100
+KPX comma quoteright -100
+KPX e comma -15
+KPX e period -15
+KPX e v -30
+KPX e w -20
+KPX e x -30
+KPX e y -20
+KPX e yacute -20
+KPX e ydieresis -20
+KPX eacute comma -15
+KPX eacute period -15
+KPX eacute v -30
+KPX eacute w -20
+KPX eacute x -30
+KPX eacute y -20
+KPX eacute yacute -20
+KPX eacute ydieresis -20
+KPX ecaron comma -15
+KPX ecaron period -15
+KPX ecaron v -30
+KPX ecaron w -20
+KPX ecaron x -30
+KPX ecaron y -20
+KPX ecaron yacute -20
+KPX ecaron ydieresis -20
+KPX ecircumflex comma -15
+KPX ecircumflex period -15
+KPX ecircumflex v -30
+KPX ecircumflex w -20
+KPX ecircumflex x -30
+KPX ecircumflex y -20
+KPX ecircumflex yacute -20
+KPX ecircumflex ydieresis -20
+KPX edieresis comma -15
+KPX edieresis period -15
+KPX edieresis v -30
+KPX edieresis w -20
+KPX edieresis x -30
+KPX edieresis y -20
+KPX edieresis yacute -20
+KPX edieresis ydieresis -20
+KPX edotaccent comma -15
+KPX edotaccent period -15
+KPX edotaccent v -30
+KPX edotaccent w -20
+KPX edotaccent x -30
+KPX edotaccent y -20
+KPX edotaccent yacute -20
+KPX edotaccent ydieresis -20
+KPX egrave comma -15
+KPX egrave period -15
+KPX egrave v -30
+KPX egrave w -20
+KPX egrave x -30
+KPX egrave y -20
+KPX egrave yacute -20
+KPX egrave ydieresis -20
+KPX emacron comma -15
+KPX emacron period -15
+KPX emacron v -30
+KPX emacron w -20
+KPX emacron x -30
+KPX emacron y -20
+KPX emacron yacute -20
+KPX emacron ydieresis -20
+KPX eogonek comma -15
+KPX eogonek period -15
+KPX eogonek v -30
+KPX eogonek w -20
+KPX eogonek x -30
+KPX eogonek y -20
+KPX eogonek yacute -20
+KPX eogonek ydieresis -20
+KPX f a -30
+KPX f aacute -30
+KPX f abreve -30
+KPX f acircumflex -30
+KPX f adieresis -30
+KPX f agrave -30
+KPX f amacron -30
+KPX f aogonek -30
+KPX f aring -30
+KPX f atilde -30
+KPX f comma -30
+KPX f dotlessi -28
+KPX f e -30
+KPX f eacute -30
+KPX f ecaron -30
+KPX f ecircumflex -30
+KPX f edieresis -30
+KPX f edotaccent -30
+KPX f egrave -30
+KPX f emacron -30
+KPX f eogonek -30
+KPX f o -30
+KPX f oacute -30
+KPX f ocircumflex -30
+KPX f odieresis -30
+KPX f ograve -30
+KPX f ohungarumlaut -30
+KPX f omacron -30
+KPX f oslash -30
+KPX f otilde -30
+KPX f period -30
+KPX f quotedblright 60
+KPX f quoteright 50
+KPX g r -10
+KPX g racute -10
+KPX g rcaron -10
+KPX g rcommaaccent -10
+KPX gbreve r -10
+KPX gbreve racute -10
+KPX gbreve rcaron -10
+KPX gbreve rcommaaccent -10
+KPX gcommaaccent r -10
+KPX gcommaaccent racute -10
+KPX gcommaaccent rcaron -10
+KPX gcommaaccent rcommaaccent -10
+KPX h y -30
+KPX h yacute -30
+KPX h ydieresis -30
+KPX k e -20
+KPX k eacute -20
+KPX k ecaron -20
+KPX k ecircumflex -20
+KPX k edieresis -20
+KPX k edotaccent -20
+KPX k egrave -20
+KPX k emacron -20
+KPX k eogonek -20
+KPX k o -20
+KPX k oacute -20
+KPX k ocircumflex -20
+KPX k odieresis -20
+KPX k ograve -20
+KPX k ohungarumlaut -20
+KPX k omacron -20
+KPX k oslash -20
+KPX k otilde -20
+KPX kcommaaccent e -20
+KPX kcommaaccent eacute -20
+KPX kcommaaccent ecaron -20
+KPX kcommaaccent ecircumflex -20
+KPX kcommaaccent edieresis -20
+KPX kcommaaccent edotaccent -20
+KPX kcommaaccent egrave -20
+KPX kcommaaccent emacron -20
+KPX kcommaaccent eogonek -20
+KPX kcommaaccent o -20
+KPX kcommaaccent oacute -20
+KPX kcommaaccent ocircumflex -20
+KPX kcommaaccent odieresis -20
+KPX kcommaaccent ograve -20
+KPX kcommaaccent ohungarumlaut -20
+KPX kcommaaccent omacron -20
+KPX kcommaaccent oslash -20
+KPX kcommaaccent otilde -20
+KPX m u -10
+KPX m uacute -10
+KPX m ucircumflex -10
+KPX m udieresis -10
+KPX m ugrave -10
+KPX m uhungarumlaut -10
+KPX m umacron -10
+KPX m uogonek -10
+KPX m uring -10
+KPX m y -15
+KPX m yacute -15
+KPX m ydieresis -15
+KPX n u -10
+KPX n uacute -10
+KPX n ucircumflex -10
+KPX n udieresis -10
+KPX n ugrave -10
+KPX n uhungarumlaut -10
+KPX n umacron -10
+KPX n uogonek -10
+KPX n uring -10
+KPX n v -20
+KPX n y -15
+KPX n yacute -15
+KPX n ydieresis -15
+KPX nacute u -10
+KPX nacute uacute -10
+KPX nacute ucircumflex -10
+KPX nacute udieresis -10
+KPX nacute ugrave -10
+KPX nacute uhungarumlaut -10
+KPX nacute umacron -10
+KPX nacute uogonek -10
+KPX nacute uring -10
+KPX nacute v -20
+KPX nacute y -15
+KPX nacute yacute -15
+KPX nacute ydieresis -15
+KPX ncaron u -10
+KPX ncaron uacute -10
+KPX ncaron ucircumflex -10
+KPX ncaron udieresis -10
+KPX ncaron ugrave -10
+KPX ncaron uhungarumlaut -10
+KPX ncaron umacron -10
+KPX ncaron uogonek -10
+KPX ncaron uring -10
+KPX ncaron v -20
+KPX ncaron y -15
+KPX ncaron yacute -15
+KPX ncaron ydieresis -15
+KPX ncommaaccent u -10
+KPX ncommaaccent uacute -10
+KPX ncommaaccent ucircumflex -10
+KPX ncommaaccent udieresis -10
+KPX ncommaaccent ugrave -10
+KPX ncommaaccent uhungarumlaut -10
+KPX ncommaaccent umacron -10
+KPX ncommaaccent uogonek -10
+KPX ncommaaccent uring -10
+KPX ncommaaccent v -20
+KPX ncommaaccent y -15
+KPX ncommaaccent yacute -15
+KPX ncommaaccent ydieresis -15
+KPX ntilde u -10
+KPX ntilde uacute -10
+KPX ntilde ucircumflex -10
+KPX ntilde udieresis -10
+KPX ntilde ugrave -10
+KPX ntilde uhungarumlaut -10
+KPX ntilde umacron -10
+KPX ntilde uogonek -10
+KPX ntilde uring -10
+KPX ntilde v -20
+KPX ntilde y -15
+KPX ntilde yacute -15
+KPX ntilde ydieresis -15
+KPX o comma -40
+KPX o period -40
+KPX o v -15
+KPX o w -15
+KPX o x -30
+KPX o y -30
+KPX o yacute -30
+KPX o ydieresis -30
+KPX oacute comma -40
+KPX oacute period -40
+KPX oacute v -15
+KPX oacute w -15
+KPX oacute x -30
+KPX oacute y -30
+KPX oacute yacute -30
+KPX oacute ydieresis -30
+KPX ocircumflex comma -40
+KPX ocircumflex period -40
+KPX ocircumflex v -15
+KPX ocircumflex w -15
+KPX ocircumflex x -30
+KPX ocircumflex y -30
+KPX ocircumflex yacute -30
+KPX ocircumflex ydieresis -30
+KPX odieresis comma -40
+KPX odieresis period -40
+KPX odieresis v -15
+KPX odieresis w -15
+KPX odieresis x -30
+KPX odieresis y -30
+KPX odieresis yacute -30
+KPX odieresis ydieresis -30
+KPX ograve comma -40
+KPX ograve period -40
+KPX ograve v -15
+KPX ograve w -15
+KPX ograve x -30
+KPX ograve y -30
+KPX ograve yacute -30
+KPX ograve ydieresis -30
+KPX ohungarumlaut comma -40
+KPX ohungarumlaut period -40
+KPX ohungarumlaut v -15
+KPX ohungarumlaut w -15
+KPX ohungarumlaut x -30
+KPX ohungarumlaut y -30
+KPX ohungarumlaut yacute -30
+KPX ohungarumlaut ydieresis -30
+KPX omacron comma -40
+KPX omacron period -40
+KPX omacron v -15
+KPX omacron w -15
+KPX omacron x -30
+KPX omacron y -30
+KPX omacron yacute -30
+KPX omacron ydieresis -30
+KPX oslash a -55
+KPX oslash aacute -55
+KPX oslash abreve -55
+KPX oslash acircumflex -55
+KPX oslash adieresis -55
+KPX oslash agrave -55
+KPX oslash amacron -55
+KPX oslash aogonek -55
+KPX oslash aring -55
+KPX oslash atilde -55
+KPX oslash b -55
+KPX oslash c -55
+KPX oslash cacute -55
+KPX oslash ccaron -55
+KPX oslash ccedilla -55
+KPX oslash comma -95
+KPX oslash d -55
+KPX oslash dcroat -55
+KPX oslash e -55
+KPX oslash eacute -55
+KPX oslash ecaron -55
+KPX oslash ecircumflex -55
+KPX oslash edieresis -55
+KPX oslash edotaccent -55
+KPX oslash egrave -55
+KPX oslash emacron -55
+KPX oslash eogonek -55
+KPX oslash f -55
+KPX oslash g -55
+KPX oslash gbreve -55
+KPX oslash gcommaaccent -55
+KPX oslash h -55
+KPX oslash i -55
+KPX oslash iacute -55
+KPX oslash icircumflex -55
+KPX oslash idieresis -55
+KPX oslash igrave -55
+KPX oslash imacron -55
+KPX oslash iogonek -55
+KPX oslash j -55
+KPX oslash k -55
+KPX oslash kcommaaccent -55
+KPX oslash l -55
+KPX oslash lacute -55
+KPX oslash lcommaaccent -55
+KPX oslash lslash -55
+KPX oslash m -55
+KPX oslash n -55
+KPX oslash nacute -55
+KPX oslash ncaron -55
+KPX oslash ncommaaccent -55
+KPX oslash ntilde -55
+KPX oslash o -55
+KPX oslash oacute -55
+KPX oslash ocircumflex -55
+KPX oslash odieresis -55
+KPX oslash ograve -55
+KPX oslash ohungarumlaut -55
+KPX oslash omacron -55
+KPX oslash oslash -55
+KPX oslash otilde -55
+KPX oslash p -55
+KPX oslash period -95
+KPX oslash q -55
+KPX oslash r -55
+KPX oslash racute -55
+KPX oslash rcaron -55
+KPX oslash rcommaaccent -55
+KPX oslash s -55
+KPX oslash sacute -55
+KPX oslash scaron -55
+KPX oslash scedilla -55
+KPX oslash scommaaccent -55
+KPX oslash t -55
+KPX oslash tcommaaccent -55
+KPX oslash u -55
+KPX oslash uacute -55
+KPX oslash ucircumflex -55
+KPX oslash udieresis -55
+KPX oslash ugrave -55
+KPX oslash uhungarumlaut -55
+KPX oslash umacron -55
+KPX oslash uogonek -55
+KPX oslash uring -55
+KPX oslash v -70
+KPX oslash w -70
+KPX oslash x -85
+KPX oslash y -70
+KPX oslash yacute -70
+KPX oslash ydieresis -70
+KPX oslash z -55
+KPX oslash zacute -55
+KPX oslash zcaron -55
+KPX oslash zdotaccent -55
+KPX otilde comma -40
+KPX otilde period -40
+KPX otilde v -15
+KPX otilde w -15
+KPX otilde x -30
+KPX otilde y -30
+KPX otilde yacute -30
+KPX otilde ydieresis -30
+KPX p comma -35
+KPX p period -35
+KPX p y -30
+KPX p yacute -30
+KPX p ydieresis -30
+KPX period quotedblright -100
+KPX period quoteright -100
+KPX period space -60
+KPX quotedblright space -40
+KPX quoteleft quoteleft -57
+KPX quoteright d -50
+KPX quoteright dcroat -50
+KPX quoteright quoteright -57
+KPX quoteright r -50
+KPX quoteright racute -50
+KPX quoteright rcaron -50
+KPX quoteright rcommaaccent -50
+KPX quoteright s -50
+KPX quoteright sacute -50
+KPX quoteright scaron -50
+KPX quoteright scedilla -50
+KPX quoteright scommaaccent -50
+KPX quoteright space -70
+KPX r a -10
+KPX r aacute -10
+KPX r abreve -10
+KPX r acircumflex -10
+KPX r adieresis -10
+KPX r agrave -10
+KPX r amacron -10
+KPX r aogonek -10
+KPX r aring -10
+KPX r atilde -10
+KPX r colon 30
+KPX r comma -50
+KPX r i 15
+KPX r iacute 15
+KPX r icircumflex 15
+KPX r idieresis 15
+KPX r igrave 15
+KPX r imacron 15
+KPX r iogonek 15
+KPX r k 15
+KPX r kcommaaccent 15
+KPX r l 15
+KPX r lacute 15
+KPX r lcommaaccent 15
+KPX r lslash 15
+KPX r m 25
+KPX r n 25
+KPX r nacute 25
+KPX r ncaron 25
+KPX r ncommaaccent 25
+KPX r ntilde 25
+KPX r p 30
+KPX r period -50
+KPX r semicolon 30
+KPX r t 40
+KPX r tcommaaccent 40
+KPX r u 15
+KPX r uacute 15
+KPX r ucircumflex 15
+KPX r udieresis 15
+KPX r ugrave 15
+KPX r uhungarumlaut 15
+KPX r umacron 15
+KPX r uogonek 15
+KPX r uring 15
+KPX r v 30
+KPX r y 30
+KPX r yacute 30
+KPX r ydieresis 30
+KPX racute a -10
+KPX racute aacute -10
+KPX racute abreve -10
+KPX racute acircumflex -10
+KPX racute adieresis -10
+KPX racute agrave -10
+KPX racute amacron -10
+KPX racute aogonek -10
+KPX racute aring -10
+KPX racute atilde -10
+KPX racute colon 30
+KPX racute comma -50
+KPX racute i 15
+KPX racute iacute 15
+KPX racute icircumflex 15
+KPX racute idieresis 15
+KPX racute igrave 15
+KPX racute imacron 15
+KPX racute iogonek 15
+KPX racute k 15
+KPX racute kcommaaccent 15
+KPX racute l 15
+KPX racute lacute 15
+KPX racute lcommaaccent 15
+KPX racute lslash 15
+KPX racute m 25
+KPX racute n 25
+KPX racute nacute 25
+KPX racute ncaron 25
+KPX racute ncommaaccent 25
+KPX racute ntilde 25
+KPX racute p 30
+KPX racute period -50
+KPX racute semicolon 30
+KPX racute t 40
+KPX racute tcommaaccent 40
+KPX racute u 15
+KPX racute uacute 15
+KPX racute ucircumflex 15
+KPX racute udieresis 15
+KPX racute ugrave 15
+KPX racute uhungarumlaut 15
+KPX racute umacron 15
+KPX racute uogonek 15
+KPX racute uring 15
+KPX racute v 30
+KPX racute y 30
+KPX racute yacute 30
+KPX racute ydieresis 30
+KPX rcaron a -10
+KPX rcaron aacute -10
+KPX rcaron abreve -10
+KPX rcaron acircumflex -10
+KPX rcaron adieresis -10
+KPX rcaron agrave -10
+KPX rcaron amacron -10
+KPX rcaron aogonek -10
+KPX rcaron aring -10
+KPX rcaron atilde -10
+KPX rcaron colon 30
+KPX rcaron comma -50
+KPX rcaron i 15
+KPX rcaron iacute 15
+KPX rcaron icircumflex 15
+KPX rcaron idieresis 15
+KPX rcaron igrave 15
+KPX rcaron imacron 15
+KPX rcaron iogonek 15
+KPX rcaron k 15
+KPX rcaron kcommaaccent 15
+KPX rcaron l 15
+KPX rcaron lacute 15
+KPX rcaron lcommaaccent 15
+KPX rcaron lslash 15
+KPX rcaron m 25
+KPX rcaron n 25
+KPX rcaron nacute 25
+KPX rcaron ncaron 25
+KPX rcaron ncommaaccent 25
+KPX rcaron ntilde 25
+KPX rcaron p 30
+KPX rcaron period -50
+KPX rcaron semicolon 30
+KPX rcaron t 40
+KPX rcaron tcommaaccent 40
+KPX rcaron u 15
+KPX rcaron uacute 15
+KPX rcaron ucircumflex 15
+KPX rcaron udieresis 15
+KPX rcaron ugrave 15
+KPX rcaron uhungarumlaut 15
+KPX rcaron umacron 15
+KPX rcaron uogonek 15
+KPX rcaron uring 15
+KPX rcaron v 30
+KPX rcaron y 30
+KPX rcaron yacute 30
+KPX rcaron ydieresis 30
+KPX rcommaaccent a -10
+KPX rcommaaccent aacute -10
+KPX rcommaaccent abreve -10
+KPX rcommaaccent acircumflex -10
+KPX rcommaaccent adieresis -10
+KPX rcommaaccent agrave -10
+KPX rcommaaccent amacron -10
+KPX rcommaaccent aogonek -10
+KPX rcommaaccent aring -10
+KPX rcommaaccent atilde -10
+KPX rcommaaccent colon 30
+KPX rcommaaccent comma -50
+KPX rcommaaccent i 15
+KPX rcommaaccent iacute 15
+KPX rcommaaccent icircumflex 15
+KPX rcommaaccent idieresis 15
+KPX rcommaaccent igrave 15
+KPX rcommaaccent imacron 15
+KPX rcommaaccent iogonek 15
+KPX rcommaaccent k 15
+KPX rcommaaccent kcommaaccent 15
+KPX rcommaaccent l 15
+KPX rcommaaccent lacute 15
+KPX rcommaaccent lcommaaccent 15
+KPX rcommaaccent lslash 15
+KPX rcommaaccent m 25
+KPX rcommaaccent n 25
+KPX rcommaaccent nacute 25
+KPX rcommaaccent ncaron 25
+KPX rcommaaccent ncommaaccent 25
+KPX rcommaaccent ntilde 25
+KPX rcommaaccent p 30
+KPX rcommaaccent period -50
+KPX rcommaaccent semicolon 30
+KPX rcommaaccent t 40
+KPX rcommaaccent tcommaaccent 40
+KPX rcommaaccent u 15
+KPX rcommaaccent uacute 15
+KPX rcommaaccent ucircumflex 15
+KPX rcommaaccent udieresis 15
+KPX rcommaaccent ugrave 15
+KPX rcommaaccent uhungarumlaut 15
+KPX rcommaaccent umacron 15
+KPX rcommaaccent uogonek 15
+KPX rcommaaccent uring 15
+KPX rcommaaccent v 30
+KPX rcommaaccent y 30
+KPX rcommaaccent yacute 30
+KPX rcommaaccent ydieresis 30
+KPX s comma -15
+KPX s period -15
+KPX s w -30
+KPX sacute comma -15
+KPX sacute period -15
+KPX sacute w -30
+KPX scaron comma -15
+KPX scaron period -15
+KPX scaron w -30
+KPX scedilla comma -15
+KPX scedilla period -15
+KPX scedilla w -30
+KPX scommaaccent comma -15
+KPX scommaaccent period -15
+KPX scommaaccent w -30
+KPX semicolon space -50
+KPX space T -50
+KPX space Tcaron -50
+KPX space Tcommaaccent -50
+KPX space V -50
+KPX space W -40
+KPX space Y -90
+KPX space Yacute -90
+KPX space Ydieresis -90
+KPX space quotedblleft -30
+KPX space quoteleft -60
+KPX v a -25
+KPX v aacute -25
+KPX v abreve -25
+KPX v acircumflex -25
+KPX v adieresis -25
+KPX v agrave -25
+KPX v amacron -25
+KPX v aogonek -25
+KPX v aring -25
+KPX v atilde -25
+KPX v comma -80
+KPX v e -25
+KPX v eacute -25
+KPX v ecaron -25
+KPX v ecircumflex -25
+KPX v edieresis -25
+KPX v edotaccent -25
+KPX v egrave -25
+KPX v emacron -25
+KPX v eogonek -25
+KPX v o -25
+KPX v oacute -25
+KPX v ocircumflex -25
+KPX v odieresis -25
+KPX v ograve -25
+KPX v ohungarumlaut -25
+KPX v omacron -25
+KPX v oslash -25
+KPX v otilde -25
+KPX v period -80
+KPX w a -15
+KPX w aacute -15
+KPX w abreve -15
+KPX w acircumflex -15
+KPX w adieresis -15
+KPX w agrave -15
+KPX w amacron -15
+KPX w aogonek -15
+KPX w aring -15
+KPX w atilde -15
+KPX w comma -60
+KPX w e -10
+KPX w eacute -10
+KPX w ecaron -10
+KPX w ecircumflex -10
+KPX w edieresis -10
+KPX w edotaccent -10
+KPX w egrave -10
+KPX w emacron -10
+KPX w eogonek -10
+KPX w o -10
+KPX w oacute -10
+KPX w ocircumflex -10
+KPX w odieresis -10
+KPX w ograve -10
+KPX w ohungarumlaut -10
+KPX w omacron -10
+KPX w oslash -10
+KPX w otilde -10
+KPX w period -60
+KPX x e -30
+KPX x eacute -30
+KPX x ecaron -30
+KPX x ecircumflex -30
+KPX x edieresis -30
+KPX x edotaccent -30
+KPX x egrave -30
+KPX x emacron -30
+KPX x eogonek -30
+KPX y a -20
+KPX y aacute -20
+KPX y abreve -20
+KPX y acircumflex -20
+KPX y adieresis -20
+KPX y agrave -20
+KPX y amacron -20
+KPX y aogonek -20
+KPX y aring -20
+KPX y atilde -20
+KPX y comma -100
+KPX y e -20
+KPX y eacute -20
+KPX y ecaron -20
+KPX y ecircumflex -20
+KPX y edieresis -20
+KPX y edotaccent -20
+KPX y egrave -20
+KPX y emacron -20
+KPX y eogonek -20
+KPX y o -20
+KPX y oacute -20
+KPX y ocircumflex -20
+KPX y odieresis -20
+KPX y ograve -20
+KPX y ohungarumlaut -20
+KPX y omacron -20
+KPX y oslash -20
+KPX y otilde -20
+KPX y period -100
+KPX yacute a -20
+KPX yacute aacute -20
+KPX yacute abreve -20
+KPX yacute acircumflex -20
+KPX yacute adieresis -20
+KPX yacute agrave -20
+KPX yacute amacron -20
+KPX yacute aogonek -20
+KPX yacute aring -20
+KPX yacute atilde -20
+KPX yacute comma -100
+KPX yacute e -20
+KPX yacute eacute -20
+KPX yacute ecaron -20
+KPX yacute ecircumflex -20
+KPX yacute edieresis -20
+KPX yacute edotaccent -20
+KPX yacute egrave -20
+KPX yacute emacron -20
+KPX yacute eogonek -20
+KPX yacute o -20
+KPX yacute oacute -20
+KPX yacute ocircumflex -20
+KPX yacute odieresis -20
+KPX yacute ograve -20
+KPX yacute ohungarumlaut -20
+KPX yacute omacron -20
+KPX yacute oslash -20
+KPX yacute otilde -20
+KPX yacute period -100
+KPX ydieresis a -20
+KPX ydieresis aacute -20
+KPX ydieresis abreve -20
+KPX ydieresis acircumflex -20
+KPX ydieresis adieresis -20
+KPX ydieresis agrave -20
+KPX ydieresis amacron -20
+KPX ydieresis aogonek -20
+KPX ydieresis aring -20
+KPX ydieresis atilde -20
+KPX ydieresis comma -100
+KPX ydieresis e -20
+KPX ydieresis eacute -20
+KPX ydieresis ecaron -20
+KPX ydieresis ecircumflex -20
+KPX ydieresis edieresis -20
+KPX ydieresis edotaccent -20
+KPX ydieresis egrave -20
+KPX ydieresis emacron -20
+KPX ydieresis eogonek -20
+KPX ydieresis o -20
+KPX ydieresis oacute -20
+KPX ydieresis ocircumflex -20
+KPX ydieresis odieresis -20
+KPX ydieresis ograve -20
+KPX ydieresis ohungarumlaut -20
+KPX ydieresis omacron -20
+KPX ydieresis oslash -20
+KPX ydieresis otilde -20
+KPX ydieresis period -100
+KPX z e -15
+KPX z eacute -15
+KPX z ecaron -15
+KPX z ecircumflex -15
+KPX z edieresis -15
+KPX z edotaccent -15
+KPX z egrave -15
+KPX z emacron -15
+KPX z eogonek -15
+KPX z o -15
+KPX z oacute -15
+KPX z ocircumflex -15
+KPX z odieresis -15
+KPX z ograve -15
+KPX z ohungarumlaut -15
+KPX z omacron -15
+KPX z oslash -15
+KPX z otilde -15
+KPX zacute e -15
+KPX zacute eacute -15
+KPX zacute ecaron -15
+KPX zacute ecircumflex -15
+KPX zacute edieresis -15
+KPX zacute edotaccent -15
+KPX zacute egrave -15
+KPX zacute emacron -15
+KPX zacute eogonek -15
+KPX zacute o -15
+KPX zacute oacute -15
+KPX zacute ocircumflex -15
+KPX zacute odieresis -15
+KPX zacute ograve -15
+KPX zacute ohungarumlaut -15
+KPX zacute omacron -15
+KPX zacute oslash -15
+KPX zacute otilde -15
+KPX zcaron e -15
+KPX zcaron eacute -15
+KPX zcaron ecaron -15
+KPX zcaron ecircumflex -15
+KPX zcaron edieresis -15
+KPX zcaron edotaccent -15
+KPX zcaron egrave -15
+KPX zcaron emacron -15
+KPX zcaron eogonek -15
+KPX zcaron o -15
+KPX zcaron oacute -15
+KPX zcaron ocircumflex -15
+KPX zcaron odieresis -15
+KPX zcaron ograve -15
+KPX zcaron ohungarumlaut -15
+KPX zcaron omacron -15
+KPX zcaron oslash -15
+KPX zcaron otilde -15
+KPX zdotaccent e -15
+KPX zdotaccent eacute -15
+KPX zdotaccent ecaron -15
+KPX zdotaccent ecircumflex -15
+KPX zdotaccent edieresis -15
+KPX zdotaccent edotaccent -15
+KPX zdotaccent egrave -15
+KPX zdotaccent emacron -15
+KPX zdotaccent eogonek -15
+KPX zdotaccent o -15
+KPX zdotaccent oacute -15
+KPX zdotaccent ocircumflex -15
+KPX zdotaccent odieresis -15
+KPX zdotaccent ograve -15
+KPX zdotaccent ohungarumlaut -15
+KPX zdotaccent omacron -15
+KPX zdotaccent oslash -15
+KPX zdotaccent otilde -15
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Helvetica.afm b/test/user-template/user/psprint/fontmetric/Helvetica.afm
new file mode 100644
index 000000000000..0e3acae0b0c1
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Helvetica.afm
@@ -0,0 +1,3049 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:38:23 1997
+Comment UniqueID 43054
+Comment VMusage 37069 48094
+FontName Helvetica
+FullName Helvetica
+FamilyName Helvetica
+Weight Medium
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -166 -225 1000 931
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 718
+XHeight 523
+Ascender 718
+Descender -207
+StdHW 76
+StdVW 88
+StartCharMetrics 314
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 278 ; N exclam ; B 90 0 187 718 ;
+C 34 ; WX 355 ; N quotedbl ; B 70 463 285 718 ;
+C 35 ; WX 556 ; N numbersign ; B 28 0 529 688 ;
+C 36 ; WX 556 ; N dollar ; B 32 -115 520 775 ;
+C 37 ; WX 889 ; N percent ; B 39 -19 850 703 ;
+C 38 ; WX 667 ; N ampersand ; B 44 -15 645 718 ;
+C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ;
+C 40 ; WX 333 ; N parenleft ; B 68 -207 299 733 ;
+C 41 ; WX 333 ; N parenright ; B 34 -207 265 733 ;
+C 42 ; WX 389 ; N asterisk ; B 39 431 349 718 ;
+C 43 ; WX 584 ; N plus ; B 39 0 545 505 ;
+C 44 ; WX 278 ; N comma ; B 87 -147 191 106 ;
+C 45 ; WX 333 ; N hyphen ; B 44 232 289 322 ;
+C 46 ; WX 278 ; N period ; B 87 0 191 106 ;
+C 47 ; WX 278 ; N slash ; B -17 -19 295 737 ;
+C 48 ; WX 556 ; N zero ; B 37 -19 519 703 ;
+C 49 ; WX 556 ; N one ; B 101 0 359 703 ;
+C 50 ; WX 556 ; N two ; B 26 0 507 703 ;
+C 51 ; WX 556 ; N three ; B 34 -19 522 703 ;
+C 52 ; WX 556 ; N four ; B 25 0 523 703 ;
+C 53 ; WX 556 ; N five ; B 32 -19 514 688 ;
+C 54 ; WX 556 ; N six ; B 38 -19 518 703 ;
+C 55 ; WX 556 ; N seven ; B 37 0 523 688 ;
+C 56 ; WX 556 ; N eight ; B 38 -19 517 703 ;
+C 57 ; WX 556 ; N nine ; B 42 -19 514 703 ;
+C 58 ; WX 278 ; N colon ; B 87 0 191 516 ;
+C 59 ; WX 278 ; N semicolon ; B 87 -147 191 516 ;
+C 60 ; WX 584 ; N less ; B 48 11 536 495 ;
+C 61 ; WX 584 ; N equal ; B 39 115 545 390 ;
+C 62 ; WX 584 ; N greater ; B 48 11 536 495 ;
+C 63 ; WX 556 ; N question ; B 56 0 492 727 ;
+C 64 ; WX 1015 ; N at ; B 147 -19 868 737 ;
+C 65 ; WX 667 ; N A ; B 14 0 654 718 ;
+C 66 ; WX 667 ; N B ; B 74 0 627 718 ;
+C 67 ; WX 722 ; N C ; B 44 -19 681 737 ;
+C 68 ; WX 722 ; N D ; B 81 0 674 718 ;
+C 69 ; WX 667 ; N E ; B 86 0 616 718 ;
+C 70 ; WX 611 ; N F ; B 86 0 583 718 ;
+C 71 ; WX 778 ; N G ; B 48 -19 704 737 ;
+C 72 ; WX 722 ; N H ; B 77 0 646 718 ;
+C 73 ; WX 278 ; N I ; B 91 0 188 718 ;
+C 74 ; WX 500 ; N J ; B 17 -19 428 718 ;
+C 75 ; WX 667 ; N K ; B 76 0 663 718 ;
+C 76 ; WX 556 ; N L ; B 76 0 537 718 ;
+C 77 ; WX 833 ; N M ; B 73 0 761 718 ;
+C 78 ; WX 722 ; N N ; B 76 0 646 718 ;
+C 79 ; WX 778 ; N O ; B 39 -19 739 737 ;
+C 80 ; WX 667 ; N P ; B 86 0 622 718 ;
+C 81 ; WX 778 ; N Q ; B 39 -56 739 737 ;
+C 82 ; WX 722 ; N R ; B 88 0 684 718 ;
+C 83 ; WX 667 ; N S ; B 49 -19 620 737 ;
+C 84 ; WX 611 ; N T ; B 14 0 597 718 ;
+C 85 ; WX 722 ; N U ; B 79 -19 644 718 ;
+C 86 ; WX 667 ; N V ; B 20 0 647 718 ;
+C 87 ; WX 944 ; N W ; B 16 0 928 718 ;
+C 88 ; WX 667 ; N X ; B 19 0 648 718 ;
+C 89 ; WX 667 ; N Y ; B 14 0 653 718 ;
+C 90 ; WX 611 ; N Z ; B 23 0 588 718 ;
+C 91 ; WX 278 ; N bracketleft ; B 63 -196 250 722 ;
+C 92 ; WX 278 ; N backslash ; B -17 -19 295 737 ;
+C 93 ; WX 278 ; N bracketright ; B 28 -196 215 722 ;
+C 94 ; WX 469 ; N asciicircum ; B -14 264 483 688 ;
+C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ;
+C 96 ; WX 222 ; N quoteleft ; B 65 470 169 725 ;
+C 97 ; WX 556 ; N a ; B 36 -15 530 538 ;
+C 98 ; WX 556 ; N b ; B 58 -15 517 718 ;
+C 99 ; WX 500 ; N c ; B 30 -15 477 538 ;
+C 100 ; WX 556 ; N d ; B 35 -15 499 718 ;
+C 101 ; WX 556 ; N e ; B 40 -15 516 538 ;
+C 102 ; WX 278 ; N f ; B 14 0 262 728 ; L i fi ; L l fl ;
+C 103 ; WX 556 ; N g ; B 40 -220 499 538 ;
+C 104 ; WX 556 ; N h ; B 65 0 491 718 ;
+C 105 ; WX 222 ; N i ; B 67 0 155 718 ;
+C 106 ; WX 222 ; N j ; B -16 -210 155 718 ;
+C 107 ; WX 500 ; N k ; B 67 0 501 718 ;
+C 108 ; WX 222 ; N l ; B 67 0 155 718 ;
+C 109 ; WX 833 ; N m ; B 65 0 769 538 ;
+C 110 ; WX 556 ; N n ; B 65 0 491 538 ;
+C 111 ; WX 556 ; N o ; B 35 -14 521 538 ;
+C 112 ; WX 556 ; N p ; B 58 -207 517 538 ;
+C 113 ; WX 556 ; N q ; B 35 -207 494 538 ;
+C 114 ; WX 333 ; N r ; B 77 0 332 538 ;
+C 115 ; WX 500 ; N s ; B 32 -15 464 538 ;
+C 116 ; WX 278 ; N t ; B 14 -7 257 669 ;
+C 117 ; WX 556 ; N u ; B 68 -15 489 523 ;
+C 118 ; WX 500 ; N v ; B 8 0 492 523 ;
+C 119 ; WX 722 ; N w ; B 14 0 709 523 ;
+C 120 ; WX 500 ; N x ; B 11 0 490 523 ;
+C 121 ; WX 500 ; N y ; B 11 -214 489 523 ;
+C 122 ; WX 500 ; N z ; B 31 0 469 523 ;
+C 123 ; WX 334 ; N braceleft ; B 42 -196 292 722 ;
+C 124 ; WX 260 ; N bar ; B 94 -225 167 775 ;
+C 125 ; WX 334 ; N braceright ; B 42 -196 292 722 ;
+C 126 ; WX 584 ; N asciitilde ; B 61 180 523 326 ;
+C 161 ; WX 333 ; N exclamdown ; B 118 -195 215 523 ;
+C 162 ; WX 556 ; N cent ; B 51 -115 513 623 ;
+C 163 ; WX 556 ; N sterling ; B 33 -16 539 718 ;
+C 164 ; WX 167 ; N fraction ; B -166 -19 333 703 ;
+C 165 ; WX 556 ; N yen ; B 3 0 553 688 ;
+C 166 ; WX 556 ; N florin ; B -11 -207 501 737 ;
+C 167 ; WX 556 ; N section ; B 43 -191 512 737 ;
+C 168 ; WX 556 ; N currency ; B 28 99 528 603 ;
+C 169 ; WX 191 ; N quotesingle ; B 59 463 132 718 ;
+C 170 ; WX 333 ; N quotedblleft ; B 38 470 307 725 ;
+C 171 ; WX 556 ; N guillemotleft ; B 97 108 459 446 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 88 108 245 446 ;
+C 173 ; WX 333 ; N guilsinglright ; B 88 108 245 446 ;
+C 174 ; WX 500 ; N fi ; B 14 0 434 728 ;
+C 175 ; WX 500 ; N fl ; B 14 0 432 728 ;
+C 177 ; WX 556 ; N endash ; B 0 240 556 313 ;
+C 178 ; WX 556 ; N dagger ; B 43 -159 514 718 ;
+C 179 ; WX 556 ; N daggerdbl ; B 43 -159 514 718 ;
+C 180 ; WX 278 ; N periodcentered ; B 77 190 202 315 ;
+C 182 ; WX 537 ; N paragraph ; B 18 -173 497 718 ;
+C 183 ; WX 350 ; N bullet ; B 18 202 333 517 ;
+C 184 ; WX 222 ; N quotesinglbase ; B 53 -149 157 106 ;
+C 185 ; WX 333 ; N quotedblbase ; B 26 -149 295 106 ;
+C 186 ; WX 333 ; N quotedblright ; B 26 463 295 718 ;
+C 187 ; WX 556 ; N guillemotright ; B 97 108 459 446 ;
+C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 106 ;
+C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 703 ;
+C 191 ; WX 611 ; N questiondown ; B 91 -201 527 525 ;
+C 193 ; WX 333 ; N grave ; B 14 593 211 734 ;
+C 194 ; WX 333 ; N acute ; B 122 593 319 734 ;
+C 195 ; WX 333 ; N circumflex ; B 21 593 312 734 ;
+C 196 ; WX 333 ; N tilde ; B -4 606 337 722 ;
+C 197 ; WX 333 ; N macron ; B 10 627 323 684 ;
+C 198 ; WX 333 ; N breve ; B 13 595 321 731 ;
+C 199 ; WX 333 ; N dotaccent ; B 121 604 212 706 ;
+C 200 ; WX 333 ; N dieresis ; B 40 604 293 706 ;
+C 202 ; WX 333 ; N ring ; B 75 572 259 756 ;
+C 203 ; WX 333 ; N cedilla ; B 45 -225 259 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 31 593 409 734 ;
+C 206 ; WX 333 ; N ogonek ; B 73 -225 287 0 ;
+C 207 ; WX 333 ; N caron ; B 21 593 312 734 ;
+C 208 ; WX 1000 ; N emdash ; B 0 240 1000 313 ;
+C 225 ; WX 1000 ; N AE ; B 8 0 951 718 ;
+C 227 ; WX 370 ; N ordfeminine ; B 24 405 346 737 ;
+C 232 ; WX 556 ; N Lslash ; B -20 0 537 718 ;
+C 233 ; WX 778 ; N Oslash ; B 39 -19 740 737 ;
+C 234 ; WX 1000 ; N OE ; B 36 -19 965 737 ;
+C 235 ; WX 365 ; N ordmasculine ; B 25 405 341 737 ;
+C 241 ; WX 889 ; N ae ; B 36 -15 847 538 ;
+C 245 ; WX 278 ; N dotlessi ; B 95 0 183 523 ;
+C 248 ; WX 222 ; N lslash ; B -20 0 242 718 ;
+C 249 ; WX 611 ; N oslash ; B 28 -22 537 545 ;
+C 250 ; WX 944 ; N oe ; B 35 -15 902 538 ;
+C 251 ; WX 611 ; N germandbls ; B 67 -15 571 728 ;
+C -1 ; WX 278 ; N Idieresis ; B 13 0 266 901 ;
+C -1 ; WX 556 ; N eacute ; B 40 -15 516 734 ;
+C -1 ; WX 556 ; N abreve ; B 36 -15 530 731 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 68 -15 521 734 ;
+C -1 ; WX 556 ; N ecaron ; B 40 -15 516 734 ;
+C -1 ; WX 667 ; N Ydieresis ; B 14 0 653 901 ;
+C -1 ; WX 584 ; N divide ; B 39 -19 545 524 ;
+C -1 ; WX 667 ; N Yacute ; B 14 0 653 929 ;
+C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ;
+C -1 ; WX 556 ; N aacute ; B 36 -15 530 734 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 79 -19 644 929 ;
+C -1 ; WX 500 ; N yacute ; B 11 -214 489 734 ;
+C -1 ; WX 500 ; N scommaaccent ; B 32 -225 464 538 ;
+C -1 ; WX 556 ; N ecircumflex ; B 40 -15 516 734 ;
+C -1 ; WX 722 ; N Uring ; B 79 -19 644 931 ;
+C -1 ; WX 722 ; N Udieresis ; B 79 -19 644 901 ;
+C -1 ; WX 556 ; N aogonek ; B 36 -220 547 538 ;
+C -1 ; WX 722 ; N Uacute ; B 79 -19 644 929 ;
+C -1 ; WX 556 ; N uogonek ; B 68 -225 519 523 ;
+C -1 ; WX 667 ; N Edieresis ; B 86 0 616 901 ;
+C -1 ; WX 722 ; N Dcroat ; B 0 0 674 718 ;
+C -1 ; WX 250 ; N commaaccent ; B 87 -225 181 -40 ;
+C -1 ; WX 737 ; N copyright ; B -14 -19 752 737 ;
+C -1 ; WX 667 ; N Emacron ; B 86 0 616 879 ;
+C -1 ; WX 500 ; N ccaron ; B 30 -15 477 734 ;
+C -1 ; WX 556 ; N aring ; B 36 -15 530 756 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 646 718 ;
+C -1 ; WX 222 ; N lacute ; B 67 0 264 929 ;
+C -1 ; WX 556 ; N agrave ; B 36 -15 530 734 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 14 -225 597 718 ;
+C -1 ; WX 722 ; N Cacute ; B 44 -19 681 929 ;
+C -1 ; WX 556 ; N atilde ; B 36 -15 530 722 ;
+C -1 ; WX 667 ; N Edotaccent ; B 86 0 616 901 ;
+C -1 ; WX 500 ; N scaron ; B 32 -15 464 734 ;
+C -1 ; WX 500 ; N scedilla ; B 32 -225 464 538 ;
+C -1 ; WX 278 ; N iacute ; B 95 0 292 734 ;
+C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ;
+C -1 ; WX 722 ; N Rcaron ; B 88 0 684 929 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 48 -225 704 737 ;
+C -1 ; WX 556 ; N ucircumflex ; B 68 -15 489 734 ;
+C -1 ; WX 556 ; N acircumflex ; B 36 -15 530 734 ;
+C -1 ; WX 667 ; N Amacron ; B 14 0 654 879 ;
+C -1 ; WX 333 ; N rcaron ; B 61 0 352 734 ;
+C -1 ; WX 500 ; N ccedilla ; B 30 -225 477 538 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 23 0 588 901 ;
+C -1 ; WX 667 ; N Thorn ; B 86 0 622 718 ;
+C -1 ; WX 778 ; N Omacron ; B 39 -19 739 879 ;
+C -1 ; WX 722 ; N Racute ; B 88 0 684 929 ;
+C -1 ; WX 667 ; N Sacute ; B 49 -19 620 929 ;
+C -1 ; WX 643 ; N dcaron ; B 35 -15 655 718 ;
+C -1 ; WX 722 ; N Umacron ; B 79 -19 644 879 ;
+C -1 ; WX 556 ; N uring ; B 68 -15 489 756 ;
+C -1 ; WX 333 ; N threesuperior ; B 5 270 325 703 ;
+C -1 ; WX 778 ; N Ograve ; B 39 -19 739 929 ;
+C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ;
+C -1 ; WX 667 ; N Abreve ; B 14 0 654 926 ;
+C -1 ; WX 584 ; N multiply ; B 39 0 545 506 ;
+C -1 ; WX 556 ; N uacute ; B 68 -15 489 734 ;
+C -1 ; WX 611 ; N Tcaron ; B 14 0 597 929 ;
+C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ;
+C -1 ; WX 500 ; N ydieresis ; B 11 -214 489 706 ;
+C -1 ; WX 722 ; N Nacute ; B 76 0 646 929 ;
+C -1 ; WX 278 ; N icircumflex ; B -6 0 285 734 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 86 0 616 929 ;
+C -1 ; WX 556 ; N adieresis ; B 36 -15 530 706 ;
+C -1 ; WX 556 ; N edieresis ; B 40 -15 516 706 ;
+C -1 ; WX 500 ; N cacute ; B 30 -15 477 734 ;
+C -1 ; WX 556 ; N nacute ; B 65 0 491 734 ;
+C -1 ; WX 556 ; N umacron ; B 68 -15 489 684 ;
+C -1 ; WX 722 ; N Ncaron ; B 76 0 646 929 ;
+C -1 ; WX 278 ; N Iacute ; B 91 0 292 929 ;
+C -1 ; WX 584 ; N plusminus ; B 39 0 545 506 ;
+C -1 ; WX 260 ; N brokenbar ; B 94 -150 167 700 ;
+C -1 ; WX 737 ; N registered ; B -14 -19 752 737 ;
+C -1 ; WX 778 ; N Gbreve ; B 48 -19 704 926 ;
+C -1 ; WX 278 ; N Idotaccent ; B 91 0 188 901 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 667 ; N Egrave ; B 86 0 616 929 ;
+C -1 ; WX 333 ; N racute ; B 77 0 332 734 ;
+C -1 ; WX 556 ; N omacron ; B 35 -14 521 684 ;
+C -1 ; WX 611 ; N Zacute ; B 23 0 588 929 ;
+C -1 ; WX 611 ; N Zcaron ; B 23 0 588 929 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ;
+C -1 ; WX 722 ; N Eth ; B 0 0 674 718 ;
+C -1 ; WX 722 ; N Ccedilla ; B 44 -225 681 737 ;
+C -1 ; WX 222 ; N lcommaaccent ; B 67 -225 167 718 ;
+C -1 ; WX 317 ; N tcaron ; B 14 -7 329 808 ;
+C -1 ; WX 556 ; N eogonek ; B 40 -225 516 538 ;
+C -1 ; WX 722 ; N Uogonek ; B 79 -225 644 718 ;
+C -1 ; WX 667 ; N Aacute ; B 14 0 654 929 ;
+C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ;
+C -1 ; WX 556 ; N egrave ; B 40 -15 516 734 ;
+C -1 ; WX 500 ; N zacute ; B 31 0 469 734 ;
+C -1 ; WX 222 ; N iogonek ; B -31 -225 183 718 ;
+C -1 ; WX 778 ; N Oacute ; B 39 -19 739 929 ;
+C -1 ; WX 556 ; N oacute ; B 35 -14 521 734 ;
+C -1 ; WX 556 ; N amacron ; B 36 -15 530 684 ;
+C -1 ; WX 500 ; N sacute ; B 32 -15 464 734 ;
+C -1 ; WX 278 ; N idieresis ; B 13 0 266 706 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 39 -19 739 929 ;
+C -1 ; WX 722 ; N Ugrave ; B 79 -19 644 929 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 556 ; N thorn ; B 58 -207 517 718 ;
+C -1 ; WX 333 ; N twosuperior ; B 4 281 323 703 ;
+C -1 ; WX 778 ; N Odieresis ; B 39 -19 739 901 ;
+C -1 ; WX 556 ; N mu ; B 68 -207 489 523 ;
+C -1 ; WX 278 ; N igrave ; B -13 0 184 734 ;
+C -1 ; WX 556 ; N ohungarumlaut ; B 35 -14 521 734 ;
+C -1 ; WX 667 ; N Eogonek ; B 86 -220 633 718 ;
+C -1 ; WX 556 ; N dcroat ; B 35 -15 550 718 ;
+C -1 ; WX 834 ; N threequarters ; B 45 -19 810 703 ;
+C -1 ; WX 667 ; N Scedilla ; B 49 -225 620 737 ;
+C -1 ; WX 299 ; N lcaron ; B 67 0 311 718 ;
+C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 663 718 ;
+C -1 ; WX 556 ; N Lacute ; B 76 0 537 929 ;
+C -1 ; WX 1000 ; N trademark ; B 46 306 903 718 ;
+C -1 ; WX 556 ; N edotaccent ; B 40 -15 516 706 ;
+C -1 ; WX 278 ; N Igrave ; B -13 0 188 929 ;
+C -1 ; WX 278 ; N Imacron ; B -17 0 296 879 ;
+C -1 ; WX 556 ; N Lcaron ; B 76 0 537 718 ;
+C -1 ; WX 834 ; N onehalf ; B 43 -19 773 703 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ;
+C -1 ; WX 556 ; N ocircumflex ; B 35 -14 521 734 ;
+C -1 ; WX 556 ; N ntilde ; B 65 0 491 722 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 79 -19 644 929 ;
+C -1 ; WX 667 ; N Eacute ; B 86 0 616 929 ;
+C -1 ; WX 556 ; N emacron ; B 40 -15 516 684 ;
+C -1 ; WX 556 ; N gbreve ; B 40 -220 499 731 ;
+C -1 ; WX 834 ; N onequarter ; B 73 -19 756 703 ;
+C -1 ; WX 667 ; N Scaron ; B 49 -19 620 929 ;
+C -1 ; WX 667 ; N Scommaaccent ; B 49 -225 620 737 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 39 -19 739 929 ;
+C -1 ; WX 400 ; N degree ; B 54 411 346 703 ;
+C -1 ; WX 556 ; N ograve ; B 35 -14 521 734 ;
+C -1 ; WX 722 ; N Ccaron ; B 44 -19 681 929 ;
+C -1 ; WX 556 ; N ugrave ; B 68 -15 489 734 ;
+C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ;
+C -1 ; WX 722 ; N Dcaron ; B 81 0 674 929 ;
+C -1 ; WX 333 ; N rcommaaccent ; B 77 -225 332 538 ;
+C -1 ; WX 722 ; N Ntilde ; B 76 0 646 917 ;
+C -1 ; WX 556 ; N otilde ; B 35 -14 521 722 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 684 718 ;
+C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 537 718 ;
+C -1 ; WX 667 ; N Atilde ; B 14 0 654 917 ;
+C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ;
+C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ;
+C -1 ; WX 778 ; N Otilde ; B 39 -19 739 917 ;
+C -1 ; WX 500 ; N zdotaccent ; B 31 0 469 706 ;
+C -1 ; WX 667 ; N Ecaron ; B 86 0 616 929 ;
+C -1 ; WX 278 ; N Iogonek ; B -3 -225 211 718 ;
+C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 501 718 ;
+C -1 ; WX 584 ; N minus ; B 39 216 545 289 ;
+C -1 ; WX 278 ; N Icircumflex ; B -6 0 285 929 ;
+C -1 ; WX 556 ; N ncaron ; B 65 0 491 734 ;
+C -1 ; WX 278 ; N tcommaaccent ; B 14 -225 257 669 ;
+C -1 ; WX 584 ; N logicalnot ; B 39 108 545 390 ;
+C -1 ; WX 556 ; N odieresis ; B 35 -14 521 706 ;
+C -1 ; WX 556 ; N udieresis ; B 68 -15 489 706 ;
+C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ;
+C -1 ; WX 556 ; N gcommaaccent ; B 40 -220 499 822 ;
+C -1 ; WX 556 ; N eth ; B 35 -15 522 737 ;
+C -1 ; WX 500 ; N zcaron ; B 31 0 469 734 ;
+C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 491 538 ;
+C -1 ; WX 333 ; N onesuperior ; B 43 281 222 703 ;
+C -1 ; WX 278 ; N imacron ; B 5 0 272 684 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2705
+KPX A C -30
+KPX A Cacute -30
+KPX A Ccaron -30
+KPX A Ccedilla -30
+KPX A G -30
+KPX A Gbreve -30
+KPX A Gcommaaccent -30
+KPX A O -30
+KPX A Oacute -30
+KPX A Ocircumflex -30
+KPX A Odieresis -30
+KPX A Ograve -30
+KPX A Ohungarumlaut -30
+KPX A Omacron -30
+KPX A Oslash -30
+KPX A Otilde -30
+KPX A Q -30
+KPX A T -120
+KPX A Tcaron -120
+KPX A Tcommaaccent -120
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -70
+KPX A W -50
+KPX A Y -100
+KPX A Yacute -100
+KPX A Ydieresis -100
+KPX A u -30
+KPX A uacute -30
+KPX A ucircumflex -30
+KPX A udieresis -30
+KPX A ugrave -30
+KPX A uhungarumlaut -30
+KPX A umacron -30
+KPX A uogonek -30
+KPX A uring -30
+KPX A v -40
+KPX A w -40
+KPX A y -40
+KPX A yacute -40
+KPX A ydieresis -40
+KPX Aacute C -30
+KPX Aacute Cacute -30
+KPX Aacute Ccaron -30
+KPX Aacute Ccedilla -30
+KPX Aacute G -30
+KPX Aacute Gbreve -30
+KPX Aacute Gcommaaccent -30
+KPX Aacute O -30
+KPX Aacute Oacute -30
+KPX Aacute Ocircumflex -30
+KPX Aacute Odieresis -30
+KPX Aacute Ograve -30
+KPX Aacute Ohungarumlaut -30
+KPX Aacute Omacron -30
+KPX Aacute Oslash -30
+KPX Aacute Otilde -30
+KPX Aacute Q -30
+KPX Aacute T -120
+KPX Aacute Tcaron -120
+KPX Aacute Tcommaaccent -120
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -70
+KPX Aacute W -50
+KPX Aacute Y -100
+KPX Aacute Yacute -100
+KPX Aacute Ydieresis -100
+KPX Aacute u -30
+KPX Aacute uacute -30
+KPX Aacute ucircumflex -30
+KPX Aacute udieresis -30
+KPX Aacute ugrave -30
+KPX Aacute uhungarumlaut -30
+KPX Aacute umacron -30
+KPX Aacute uogonek -30
+KPX Aacute uring -30
+KPX Aacute v -40
+KPX Aacute w -40
+KPX Aacute y -40
+KPX Aacute yacute -40
+KPX Aacute ydieresis -40
+KPX Abreve C -30
+KPX Abreve Cacute -30
+KPX Abreve Ccaron -30
+KPX Abreve Ccedilla -30
+KPX Abreve G -30
+KPX Abreve Gbreve -30
+KPX Abreve Gcommaaccent -30
+KPX Abreve O -30
+KPX Abreve Oacute -30
+KPX Abreve Ocircumflex -30
+KPX Abreve Odieresis -30
+KPX Abreve Ograve -30
+KPX Abreve Ohungarumlaut -30
+KPX Abreve Omacron -30
+KPX Abreve Oslash -30
+KPX Abreve Otilde -30
+KPX Abreve Q -30
+KPX Abreve T -120
+KPX Abreve Tcaron -120
+KPX Abreve Tcommaaccent -120
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -70
+KPX Abreve W -50
+KPX Abreve Y -100
+KPX Abreve Yacute -100
+KPX Abreve Ydieresis -100
+KPX Abreve u -30
+KPX Abreve uacute -30
+KPX Abreve ucircumflex -30
+KPX Abreve udieresis -30
+KPX Abreve ugrave -30
+KPX Abreve uhungarumlaut -30
+KPX Abreve umacron -30
+KPX Abreve uogonek -30
+KPX Abreve uring -30
+KPX Abreve v -40
+KPX Abreve w -40
+KPX Abreve y -40
+KPX Abreve yacute -40
+KPX Abreve ydieresis -40
+KPX Acircumflex C -30
+KPX Acircumflex Cacute -30
+KPX Acircumflex Ccaron -30
+KPX Acircumflex Ccedilla -30
+KPX Acircumflex G -30
+KPX Acircumflex Gbreve -30
+KPX Acircumflex Gcommaaccent -30
+KPX Acircumflex O -30
+KPX Acircumflex Oacute -30
+KPX Acircumflex Ocircumflex -30
+KPX Acircumflex Odieresis -30
+KPX Acircumflex Ograve -30
+KPX Acircumflex Ohungarumlaut -30
+KPX Acircumflex Omacron -30
+KPX Acircumflex Oslash -30
+KPX Acircumflex Otilde -30
+KPX Acircumflex Q -30
+KPX Acircumflex T -120
+KPX Acircumflex Tcaron -120
+KPX Acircumflex Tcommaaccent -120
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -70
+KPX Acircumflex W -50
+KPX Acircumflex Y -100
+KPX Acircumflex Yacute -100
+KPX Acircumflex Ydieresis -100
+KPX Acircumflex u -30
+KPX Acircumflex uacute -30
+KPX Acircumflex ucircumflex -30
+KPX Acircumflex udieresis -30
+KPX Acircumflex ugrave -30
+KPX Acircumflex uhungarumlaut -30
+KPX Acircumflex umacron -30
+KPX Acircumflex uogonek -30
+KPX Acircumflex uring -30
+KPX Acircumflex v -40
+KPX Acircumflex w -40
+KPX Acircumflex y -40
+KPX Acircumflex yacute -40
+KPX Acircumflex ydieresis -40
+KPX Adieresis C -30
+KPX Adieresis Cacute -30
+KPX Adieresis Ccaron -30
+KPX Adieresis Ccedilla -30
+KPX Adieresis G -30
+KPX Adieresis Gbreve -30
+KPX Adieresis Gcommaaccent -30
+KPX Adieresis O -30
+KPX Adieresis Oacute -30
+KPX Adieresis Ocircumflex -30
+KPX Adieresis Odieresis -30
+KPX Adieresis Ograve -30
+KPX Adieresis Ohungarumlaut -30
+KPX Adieresis Omacron -30
+KPX Adieresis Oslash -30
+KPX Adieresis Otilde -30
+KPX Adieresis Q -30
+KPX Adieresis T -120
+KPX Adieresis Tcaron -120
+KPX Adieresis Tcommaaccent -120
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -70
+KPX Adieresis W -50
+KPX Adieresis Y -100
+KPX Adieresis Yacute -100
+KPX Adieresis Ydieresis -100
+KPX Adieresis u -30
+KPX Adieresis uacute -30
+KPX Adieresis ucircumflex -30
+KPX Adieresis udieresis -30
+KPX Adieresis ugrave -30
+KPX Adieresis uhungarumlaut -30
+KPX Adieresis umacron -30
+KPX Adieresis uogonek -30
+KPX Adieresis uring -30
+KPX Adieresis v -40
+KPX Adieresis w -40
+KPX Adieresis y -40
+KPX Adieresis yacute -40
+KPX Adieresis ydieresis -40
+KPX Agrave C -30
+KPX Agrave Cacute -30
+KPX Agrave Ccaron -30
+KPX Agrave Ccedilla -30
+KPX Agrave G -30
+KPX Agrave Gbreve -30
+KPX Agrave Gcommaaccent -30
+KPX Agrave O -30
+KPX Agrave Oacute -30
+KPX Agrave Ocircumflex -30
+KPX Agrave Odieresis -30
+KPX Agrave Ograve -30
+KPX Agrave Ohungarumlaut -30
+KPX Agrave Omacron -30
+KPX Agrave Oslash -30
+KPX Agrave Otilde -30
+KPX Agrave Q -30
+KPX Agrave T -120
+KPX Agrave Tcaron -120
+KPX Agrave Tcommaaccent -120
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -70
+KPX Agrave W -50
+KPX Agrave Y -100
+KPX Agrave Yacute -100
+KPX Agrave Ydieresis -100
+KPX Agrave u -30
+KPX Agrave uacute -30
+KPX Agrave ucircumflex -30
+KPX Agrave udieresis -30
+KPX Agrave ugrave -30
+KPX Agrave uhungarumlaut -30
+KPX Agrave umacron -30
+KPX Agrave uogonek -30
+KPX Agrave uring -30
+KPX Agrave v -40
+KPX Agrave w -40
+KPX Agrave y -40
+KPX Agrave yacute -40
+KPX Agrave ydieresis -40
+KPX Amacron C -30
+KPX Amacron Cacute -30
+KPX Amacron Ccaron -30
+KPX Amacron Ccedilla -30
+KPX Amacron G -30
+KPX Amacron Gbreve -30
+KPX Amacron Gcommaaccent -30
+KPX Amacron O -30
+KPX Amacron Oacute -30
+KPX Amacron Ocircumflex -30
+KPX Amacron Odieresis -30
+KPX Amacron Ograve -30
+KPX Amacron Ohungarumlaut -30
+KPX Amacron Omacron -30
+KPX Amacron Oslash -30
+KPX Amacron Otilde -30
+KPX Amacron Q -30
+KPX Amacron T -120
+KPX Amacron Tcaron -120
+KPX Amacron Tcommaaccent -120
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -70
+KPX Amacron W -50
+KPX Amacron Y -100
+KPX Amacron Yacute -100
+KPX Amacron Ydieresis -100
+KPX Amacron u -30
+KPX Amacron uacute -30
+KPX Amacron ucircumflex -30
+KPX Amacron udieresis -30
+KPX Amacron ugrave -30
+KPX Amacron uhungarumlaut -30
+KPX Amacron umacron -30
+KPX Amacron uogonek -30
+KPX Amacron uring -30
+KPX Amacron v -40
+KPX Amacron w -40
+KPX Amacron y -40
+KPX Amacron yacute -40
+KPX Amacron ydieresis -40
+KPX Aogonek C -30
+KPX Aogonek Cacute -30
+KPX Aogonek Ccaron -30
+KPX Aogonek Ccedilla -30
+KPX Aogonek G -30
+KPX Aogonek Gbreve -30
+KPX Aogonek Gcommaaccent -30
+KPX Aogonek O -30
+KPX Aogonek Oacute -30
+KPX Aogonek Ocircumflex -30
+KPX Aogonek Odieresis -30
+KPX Aogonek Ograve -30
+KPX Aogonek Ohungarumlaut -30
+KPX Aogonek Omacron -30
+KPX Aogonek Oslash -30
+KPX Aogonek Otilde -30
+KPX Aogonek Q -30
+KPX Aogonek T -120
+KPX Aogonek Tcaron -120
+KPX Aogonek Tcommaaccent -120
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -70
+KPX Aogonek W -50
+KPX Aogonek Y -100
+KPX Aogonek Yacute -100
+KPX Aogonek Ydieresis -100
+KPX Aogonek u -30
+KPX Aogonek uacute -30
+KPX Aogonek ucircumflex -30
+KPX Aogonek udieresis -30
+KPX Aogonek ugrave -30
+KPX Aogonek uhungarumlaut -30
+KPX Aogonek umacron -30
+KPX Aogonek uogonek -30
+KPX Aogonek uring -30
+KPX Aogonek v -40
+KPX Aogonek w -40
+KPX Aogonek y -40
+KPX Aogonek yacute -40
+KPX Aogonek ydieresis -40
+KPX Aring C -30
+KPX Aring Cacute -30
+KPX Aring Ccaron -30
+KPX Aring Ccedilla -30
+KPX Aring G -30
+KPX Aring Gbreve -30
+KPX Aring Gcommaaccent -30
+KPX Aring O -30
+KPX Aring Oacute -30
+KPX Aring Ocircumflex -30
+KPX Aring Odieresis -30
+KPX Aring Ograve -30
+KPX Aring Ohungarumlaut -30
+KPX Aring Omacron -30
+KPX Aring Oslash -30
+KPX Aring Otilde -30
+KPX Aring Q -30
+KPX Aring T -120
+KPX Aring Tcaron -120
+KPX Aring Tcommaaccent -120
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -70
+KPX Aring W -50
+KPX Aring Y -100
+KPX Aring Yacute -100
+KPX Aring Ydieresis -100
+KPX Aring u -30
+KPX Aring uacute -30
+KPX Aring ucircumflex -30
+KPX Aring udieresis -30
+KPX Aring ugrave -30
+KPX Aring uhungarumlaut -30
+KPX Aring umacron -30
+KPX Aring uogonek -30
+KPX Aring uring -30
+KPX Aring v -40
+KPX Aring w -40
+KPX Aring y -40
+KPX Aring yacute -40
+KPX Aring ydieresis -40
+KPX Atilde C -30
+KPX Atilde Cacute -30
+KPX Atilde Ccaron -30
+KPX Atilde Ccedilla -30
+KPX Atilde G -30
+KPX Atilde Gbreve -30
+KPX Atilde Gcommaaccent -30
+KPX Atilde O -30
+KPX Atilde Oacute -30
+KPX Atilde Ocircumflex -30
+KPX Atilde Odieresis -30
+KPX Atilde Ograve -30
+KPX Atilde Ohungarumlaut -30
+KPX Atilde Omacron -30
+KPX Atilde Oslash -30
+KPX Atilde Otilde -30
+KPX Atilde Q -30
+KPX Atilde T -120
+KPX Atilde Tcaron -120
+KPX Atilde Tcommaaccent -120
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -70
+KPX Atilde W -50
+KPX Atilde Y -100
+KPX Atilde Yacute -100
+KPX Atilde Ydieresis -100
+KPX Atilde u -30
+KPX Atilde uacute -30
+KPX Atilde ucircumflex -30
+KPX Atilde udieresis -30
+KPX Atilde ugrave -30
+KPX Atilde uhungarumlaut -30
+KPX Atilde umacron -30
+KPX Atilde uogonek -30
+KPX Atilde uring -30
+KPX Atilde v -40
+KPX Atilde w -40
+KPX Atilde y -40
+KPX Atilde yacute -40
+KPX Atilde ydieresis -40
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX B comma -20
+KPX B period -20
+KPX C comma -30
+KPX C period -30
+KPX Cacute comma -30
+KPX Cacute period -30
+KPX Ccaron comma -30
+KPX Ccaron period -30
+KPX Ccedilla comma -30
+KPX Ccedilla period -30
+KPX D A -40
+KPX D Aacute -40
+KPX D Abreve -40
+KPX D Acircumflex -40
+KPX D Adieresis -40
+KPX D Agrave -40
+KPX D Amacron -40
+KPX D Aogonek -40
+KPX D Aring -40
+KPX D Atilde -40
+KPX D V -70
+KPX D W -40
+KPX D Y -90
+KPX D Yacute -90
+KPX D Ydieresis -90
+KPX D comma -70
+KPX D period -70
+KPX Dcaron A -40
+KPX Dcaron Aacute -40
+KPX Dcaron Abreve -40
+KPX Dcaron Acircumflex -40
+KPX Dcaron Adieresis -40
+KPX Dcaron Agrave -40
+KPX Dcaron Amacron -40
+KPX Dcaron Aogonek -40
+KPX Dcaron Aring -40
+KPX Dcaron Atilde -40
+KPX Dcaron V -70
+KPX Dcaron W -40
+KPX Dcaron Y -90
+KPX Dcaron Yacute -90
+KPX Dcaron Ydieresis -90
+KPX Dcaron comma -70
+KPX Dcaron period -70
+KPX Dcroat A -40
+KPX Dcroat Aacute -40
+KPX Dcroat Abreve -40
+KPX Dcroat Acircumflex -40
+KPX Dcroat Adieresis -40
+KPX Dcroat Agrave -40
+KPX Dcroat Amacron -40
+KPX Dcroat Aogonek -40
+KPX Dcroat Aring -40
+KPX Dcroat Atilde -40
+KPX Dcroat V -70
+KPX Dcroat W -40
+KPX Dcroat Y -90
+KPX Dcroat Yacute -90
+KPX Dcroat Ydieresis -90
+KPX Dcroat comma -70
+KPX Dcroat period -70
+KPX F A -80
+KPX F Aacute -80
+KPX F Abreve -80
+KPX F Acircumflex -80
+KPX F Adieresis -80
+KPX F Agrave -80
+KPX F Amacron -80
+KPX F Aogonek -80
+KPX F Aring -80
+KPX F Atilde -80
+KPX F a -50
+KPX F aacute -50
+KPX F abreve -50
+KPX F acircumflex -50
+KPX F adieresis -50
+KPX F agrave -50
+KPX F amacron -50
+KPX F aogonek -50
+KPX F aring -50
+KPX F atilde -50
+KPX F comma -150
+KPX F e -30
+KPX F eacute -30
+KPX F ecaron -30
+KPX F ecircumflex -30
+KPX F edieresis -30
+KPX F edotaccent -30
+KPX F egrave -30
+KPX F emacron -30
+KPX F eogonek -30
+KPX F o -30
+KPX F oacute -30
+KPX F ocircumflex -30
+KPX F odieresis -30
+KPX F ograve -30
+KPX F ohungarumlaut -30
+KPX F omacron -30
+KPX F oslash -30
+KPX F otilde -30
+KPX F period -150
+KPX F r -45
+KPX F racute -45
+KPX F rcaron -45
+KPX F rcommaaccent -45
+KPX J A -20
+KPX J Aacute -20
+KPX J Abreve -20
+KPX J Acircumflex -20
+KPX J Adieresis -20
+KPX J Agrave -20
+KPX J Amacron -20
+KPX J Aogonek -20
+KPX J Aring -20
+KPX J Atilde -20
+KPX J a -20
+KPX J aacute -20
+KPX J abreve -20
+KPX J acircumflex -20
+KPX J adieresis -20
+KPX J agrave -20
+KPX J amacron -20
+KPX J aogonek -20
+KPX J aring -20
+KPX J atilde -20
+KPX J comma -30
+KPX J period -30
+KPX J u -20
+KPX J uacute -20
+KPX J ucircumflex -20
+KPX J udieresis -20
+KPX J ugrave -20
+KPX J uhungarumlaut -20
+KPX J umacron -20
+KPX J uogonek -20
+KPX J uring -20
+KPX K O -50
+KPX K Oacute -50
+KPX K Ocircumflex -50
+KPX K Odieresis -50
+KPX K Ograve -50
+KPX K Ohungarumlaut -50
+KPX K Omacron -50
+KPX K Oslash -50
+KPX K Otilde -50
+KPX K e -40
+KPX K eacute -40
+KPX K ecaron -40
+KPX K ecircumflex -40
+KPX K edieresis -40
+KPX K edotaccent -40
+KPX K egrave -40
+KPX K emacron -40
+KPX K eogonek -40
+KPX K o -40
+KPX K oacute -40
+KPX K ocircumflex -40
+KPX K odieresis -40
+KPX K ograve -40
+KPX K ohungarumlaut -40
+KPX K omacron -40
+KPX K oslash -40
+KPX K otilde -40
+KPX K u -30
+KPX K uacute -30
+KPX K ucircumflex -30
+KPX K udieresis -30
+KPX K ugrave -30
+KPX K uhungarumlaut -30
+KPX K umacron -30
+KPX K uogonek -30
+KPX K uring -30
+KPX K y -50
+KPX K yacute -50
+KPX K ydieresis -50
+KPX Kcommaaccent O -50
+KPX Kcommaaccent Oacute -50
+KPX Kcommaaccent Ocircumflex -50
+KPX Kcommaaccent Odieresis -50
+KPX Kcommaaccent Ograve -50
+KPX Kcommaaccent Ohungarumlaut -50
+KPX Kcommaaccent Omacron -50
+KPX Kcommaaccent Oslash -50
+KPX Kcommaaccent Otilde -50
+KPX Kcommaaccent e -40
+KPX Kcommaaccent eacute -40
+KPX Kcommaaccent ecaron -40
+KPX Kcommaaccent ecircumflex -40
+KPX Kcommaaccent edieresis -40
+KPX Kcommaaccent edotaccent -40
+KPX Kcommaaccent egrave -40
+KPX Kcommaaccent emacron -40
+KPX Kcommaaccent eogonek -40
+KPX Kcommaaccent o -40
+KPX Kcommaaccent oacute -40
+KPX Kcommaaccent ocircumflex -40
+KPX Kcommaaccent odieresis -40
+KPX Kcommaaccent ograve -40
+KPX Kcommaaccent ohungarumlaut -40
+KPX Kcommaaccent omacron -40
+KPX Kcommaaccent oslash -40
+KPX Kcommaaccent otilde -40
+KPX Kcommaaccent u -30
+KPX Kcommaaccent uacute -30
+KPX Kcommaaccent ucircumflex -30
+KPX Kcommaaccent udieresis -30
+KPX Kcommaaccent ugrave -30
+KPX Kcommaaccent uhungarumlaut -30
+KPX Kcommaaccent umacron -30
+KPX Kcommaaccent uogonek -30
+KPX Kcommaaccent uring -30
+KPX Kcommaaccent y -50
+KPX Kcommaaccent yacute -50
+KPX Kcommaaccent ydieresis -50
+KPX L T -110
+KPX L Tcaron -110
+KPX L Tcommaaccent -110
+KPX L V -110
+KPX L W -70
+KPX L Y -140
+KPX L Yacute -140
+KPX L Ydieresis -140
+KPX L quotedblright -140
+KPX L quoteright -160
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -110
+KPX Lacute Tcaron -110
+KPX Lacute Tcommaaccent -110
+KPX Lacute V -110
+KPX Lacute W -70
+KPX Lacute Y -140
+KPX Lacute Yacute -140
+KPX Lacute Ydieresis -140
+KPX Lacute quotedblright -140
+KPX Lacute quoteright -160
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcaron T -110
+KPX Lcaron Tcaron -110
+KPX Lcaron Tcommaaccent -110
+KPX Lcaron V -110
+KPX Lcaron W -70
+KPX Lcaron Y -140
+KPX Lcaron Yacute -140
+KPX Lcaron Ydieresis -140
+KPX Lcaron quotedblright -140
+KPX Lcaron quoteright -160
+KPX Lcaron y -30
+KPX Lcaron yacute -30
+KPX Lcaron ydieresis -30
+KPX Lcommaaccent T -110
+KPX Lcommaaccent Tcaron -110
+KPX Lcommaaccent Tcommaaccent -110
+KPX Lcommaaccent V -110
+KPX Lcommaaccent W -70
+KPX Lcommaaccent Y -140
+KPX Lcommaaccent Yacute -140
+KPX Lcommaaccent Ydieresis -140
+KPX Lcommaaccent quotedblright -140
+KPX Lcommaaccent quoteright -160
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -110
+KPX Lslash Tcaron -110
+KPX Lslash Tcommaaccent -110
+KPX Lslash V -110
+KPX Lslash W -70
+KPX Lslash Y -140
+KPX Lslash Yacute -140
+KPX Lslash Ydieresis -140
+KPX Lslash quotedblright -140
+KPX Lslash quoteright -160
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX O A -20
+KPX O Aacute -20
+KPX O Abreve -20
+KPX O Acircumflex -20
+KPX O Adieresis -20
+KPX O Agrave -20
+KPX O Amacron -20
+KPX O Aogonek -20
+KPX O Aring -20
+KPX O Atilde -20
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -30
+KPX O X -60
+KPX O Y -70
+KPX O Yacute -70
+KPX O Ydieresis -70
+KPX O comma -40
+KPX O period -40
+KPX Oacute A -20
+KPX Oacute Aacute -20
+KPX Oacute Abreve -20
+KPX Oacute Acircumflex -20
+KPX Oacute Adieresis -20
+KPX Oacute Agrave -20
+KPX Oacute Amacron -20
+KPX Oacute Aogonek -20
+KPX Oacute Aring -20
+KPX Oacute Atilde -20
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -30
+KPX Oacute X -60
+KPX Oacute Y -70
+KPX Oacute Yacute -70
+KPX Oacute Ydieresis -70
+KPX Oacute comma -40
+KPX Oacute period -40
+KPX Ocircumflex A -20
+KPX Ocircumflex Aacute -20
+KPX Ocircumflex Abreve -20
+KPX Ocircumflex Acircumflex -20
+KPX Ocircumflex Adieresis -20
+KPX Ocircumflex Agrave -20
+KPX Ocircumflex Amacron -20
+KPX Ocircumflex Aogonek -20
+KPX Ocircumflex Aring -20
+KPX Ocircumflex Atilde -20
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -30
+KPX Ocircumflex X -60
+KPX Ocircumflex Y -70
+KPX Ocircumflex Yacute -70
+KPX Ocircumflex Ydieresis -70
+KPX Ocircumflex comma -40
+KPX Ocircumflex period -40
+KPX Odieresis A -20
+KPX Odieresis Aacute -20
+KPX Odieresis Abreve -20
+KPX Odieresis Acircumflex -20
+KPX Odieresis Adieresis -20
+KPX Odieresis Agrave -20
+KPX Odieresis Amacron -20
+KPX Odieresis Aogonek -20
+KPX Odieresis Aring -20
+KPX Odieresis Atilde -20
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -30
+KPX Odieresis X -60
+KPX Odieresis Y -70
+KPX Odieresis Yacute -70
+KPX Odieresis Ydieresis -70
+KPX Odieresis comma -40
+KPX Odieresis period -40
+KPX Ograve A -20
+KPX Ograve Aacute -20
+KPX Ograve Abreve -20
+KPX Ograve Acircumflex -20
+KPX Ograve Adieresis -20
+KPX Ograve Agrave -20
+KPX Ograve Amacron -20
+KPX Ograve Aogonek -20
+KPX Ograve Aring -20
+KPX Ograve Atilde -20
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -30
+KPX Ograve X -60
+KPX Ograve Y -70
+KPX Ograve Yacute -70
+KPX Ograve Ydieresis -70
+KPX Ograve comma -40
+KPX Ograve period -40
+KPX Ohungarumlaut A -20
+KPX Ohungarumlaut Aacute -20
+KPX Ohungarumlaut Abreve -20
+KPX Ohungarumlaut Acircumflex -20
+KPX Ohungarumlaut Adieresis -20
+KPX Ohungarumlaut Agrave -20
+KPX Ohungarumlaut Amacron -20
+KPX Ohungarumlaut Aogonek -20
+KPX Ohungarumlaut Aring -20
+KPX Ohungarumlaut Atilde -20
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -30
+KPX Ohungarumlaut X -60
+KPX Ohungarumlaut Y -70
+KPX Ohungarumlaut Yacute -70
+KPX Ohungarumlaut Ydieresis -70
+KPX Ohungarumlaut comma -40
+KPX Ohungarumlaut period -40
+KPX Omacron A -20
+KPX Omacron Aacute -20
+KPX Omacron Abreve -20
+KPX Omacron Acircumflex -20
+KPX Omacron Adieresis -20
+KPX Omacron Agrave -20
+KPX Omacron Amacron -20
+KPX Omacron Aogonek -20
+KPX Omacron Aring -20
+KPX Omacron Atilde -20
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -30
+KPX Omacron X -60
+KPX Omacron Y -70
+KPX Omacron Yacute -70
+KPX Omacron Ydieresis -70
+KPX Omacron comma -40
+KPX Omacron period -40
+KPX Oslash A -20
+KPX Oslash Aacute -20
+KPX Oslash Abreve -20
+KPX Oslash Acircumflex -20
+KPX Oslash Adieresis -20
+KPX Oslash Agrave -20
+KPX Oslash Amacron -20
+KPX Oslash Aogonek -20
+KPX Oslash Aring -20
+KPX Oslash Atilde -20
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -30
+KPX Oslash X -60
+KPX Oslash Y -70
+KPX Oslash Yacute -70
+KPX Oslash Ydieresis -70
+KPX Oslash comma -40
+KPX Oslash period -40
+KPX Otilde A -20
+KPX Otilde Aacute -20
+KPX Otilde Abreve -20
+KPX Otilde Acircumflex -20
+KPX Otilde Adieresis -20
+KPX Otilde Agrave -20
+KPX Otilde Amacron -20
+KPX Otilde Aogonek -20
+KPX Otilde Aring -20
+KPX Otilde Atilde -20
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -30
+KPX Otilde X -60
+KPX Otilde Y -70
+KPX Otilde Yacute -70
+KPX Otilde Ydieresis -70
+KPX Otilde comma -40
+KPX Otilde period -40
+KPX P A -120
+KPX P Aacute -120
+KPX P Abreve -120
+KPX P Acircumflex -120
+KPX P Adieresis -120
+KPX P Agrave -120
+KPX P Amacron -120
+KPX P Aogonek -120
+KPX P Aring -120
+KPX P Atilde -120
+KPX P a -40
+KPX P aacute -40
+KPX P abreve -40
+KPX P acircumflex -40
+KPX P adieresis -40
+KPX P agrave -40
+KPX P amacron -40
+KPX P aogonek -40
+KPX P aring -40
+KPX P atilde -40
+KPX P comma -180
+KPX P e -50
+KPX P eacute -50
+KPX P ecaron -50
+KPX P ecircumflex -50
+KPX P edieresis -50
+KPX P edotaccent -50
+KPX P egrave -50
+KPX P emacron -50
+KPX P eogonek -50
+KPX P o -50
+KPX P oacute -50
+KPX P ocircumflex -50
+KPX P odieresis -50
+KPX P ograve -50
+KPX P ohungarumlaut -50
+KPX P omacron -50
+KPX P oslash -50
+KPX P otilde -50
+KPX P period -180
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R O -20
+KPX R Oacute -20
+KPX R Ocircumflex -20
+KPX R Odieresis -20
+KPX R Ograve -20
+KPX R Ohungarumlaut -20
+KPX R Omacron -20
+KPX R Oslash -20
+KPX R Otilde -20
+KPX R T -30
+KPX R Tcaron -30
+KPX R Tcommaaccent -30
+KPX R U -40
+KPX R Uacute -40
+KPX R Ucircumflex -40
+KPX R Udieresis -40
+KPX R Ugrave -40
+KPX R Uhungarumlaut -40
+KPX R Umacron -40
+KPX R Uogonek -40
+KPX R Uring -40
+KPX R V -50
+KPX R W -30
+KPX R Y -50
+KPX R Yacute -50
+KPX R Ydieresis -50
+KPX Racute O -20
+KPX Racute Oacute -20
+KPX Racute Ocircumflex -20
+KPX Racute Odieresis -20
+KPX Racute Ograve -20
+KPX Racute Ohungarumlaut -20
+KPX Racute Omacron -20
+KPX Racute Oslash -20
+KPX Racute Otilde -20
+KPX Racute T -30
+KPX Racute Tcaron -30
+KPX Racute Tcommaaccent -30
+KPX Racute U -40
+KPX Racute Uacute -40
+KPX Racute Ucircumflex -40
+KPX Racute Udieresis -40
+KPX Racute Ugrave -40
+KPX Racute Uhungarumlaut -40
+KPX Racute Umacron -40
+KPX Racute Uogonek -40
+KPX Racute Uring -40
+KPX Racute V -50
+KPX Racute W -30
+KPX Racute Y -50
+KPX Racute Yacute -50
+KPX Racute Ydieresis -50
+KPX Rcaron O -20
+KPX Rcaron Oacute -20
+KPX Rcaron Ocircumflex -20
+KPX Rcaron Odieresis -20
+KPX Rcaron Ograve -20
+KPX Rcaron Ohungarumlaut -20
+KPX Rcaron Omacron -20
+KPX Rcaron Oslash -20
+KPX Rcaron Otilde -20
+KPX Rcaron T -30
+KPX Rcaron Tcaron -30
+KPX Rcaron Tcommaaccent -30
+KPX Rcaron U -40
+KPX Rcaron Uacute -40
+KPX Rcaron Ucircumflex -40
+KPX Rcaron Udieresis -40
+KPX Rcaron Ugrave -40
+KPX Rcaron Uhungarumlaut -40
+KPX Rcaron Umacron -40
+KPX Rcaron Uogonek -40
+KPX Rcaron Uring -40
+KPX Rcaron V -50
+KPX Rcaron W -30
+KPX Rcaron Y -50
+KPX Rcaron Yacute -50
+KPX Rcaron Ydieresis -50
+KPX Rcommaaccent O -20
+KPX Rcommaaccent Oacute -20
+KPX Rcommaaccent Ocircumflex -20
+KPX Rcommaaccent Odieresis -20
+KPX Rcommaaccent Ograve -20
+KPX Rcommaaccent Ohungarumlaut -20
+KPX Rcommaaccent Omacron -20
+KPX Rcommaaccent Oslash -20
+KPX Rcommaaccent Otilde -20
+KPX Rcommaaccent T -30
+KPX Rcommaaccent Tcaron -30
+KPX Rcommaaccent Tcommaaccent -30
+KPX Rcommaaccent U -40
+KPX Rcommaaccent Uacute -40
+KPX Rcommaaccent Ucircumflex -40
+KPX Rcommaaccent Udieresis -40
+KPX Rcommaaccent Ugrave -40
+KPX Rcommaaccent Uhungarumlaut -40
+KPX Rcommaaccent Umacron -40
+KPX Rcommaaccent Uogonek -40
+KPX Rcommaaccent Uring -40
+KPX Rcommaaccent V -50
+KPX Rcommaaccent W -30
+KPX Rcommaaccent Y -50
+KPX Rcommaaccent Yacute -50
+KPX Rcommaaccent Ydieresis -50
+KPX S comma -20
+KPX S period -20
+KPX Sacute comma -20
+KPX Sacute period -20
+KPX Scaron comma -20
+KPX Scaron period -20
+KPX Scedilla comma -20
+KPX Scedilla period -20
+KPX Scommaaccent comma -20
+KPX Scommaaccent period -20
+KPX T A -120
+KPX T Aacute -120
+KPX T Abreve -120
+KPX T Acircumflex -120
+KPX T Adieresis -120
+KPX T Agrave -120
+KPX T Amacron -120
+KPX T Aogonek -120
+KPX T Aring -120
+KPX T Atilde -120
+KPX T O -40
+KPX T Oacute -40
+KPX T Ocircumflex -40
+KPX T Odieresis -40
+KPX T Ograve -40
+KPX T Ohungarumlaut -40
+KPX T Omacron -40
+KPX T Oslash -40
+KPX T Otilde -40
+KPX T a -120
+KPX T aacute -120
+KPX T abreve -60
+KPX T acircumflex -120
+KPX T adieresis -120
+KPX T agrave -120
+KPX T amacron -60
+KPX T aogonek -120
+KPX T aring -120
+KPX T atilde -60
+KPX T colon -20
+KPX T comma -120
+KPX T e -120
+KPX T eacute -120
+KPX T ecaron -120
+KPX T ecircumflex -120
+KPX T edieresis -120
+KPX T edotaccent -120
+KPX T egrave -60
+KPX T emacron -60
+KPX T eogonek -120
+KPX T hyphen -140
+KPX T o -120
+KPX T oacute -120
+KPX T ocircumflex -120
+KPX T odieresis -120
+KPX T ograve -120
+KPX T ohungarumlaut -120
+KPX T omacron -60
+KPX T oslash -120
+KPX T otilde -60
+KPX T period -120
+KPX T r -120
+KPX T racute -120
+KPX T rcaron -120
+KPX T rcommaaccent -120
+KPX T semicolon -20
+KPX T u -120
+KPX T uacute -120
+KPX T ucircumflex -120
+KPX T udieresis -120
+KPX T ugrave -120
+KPX T uhungarumlaut -120
+KPX T umacron -60
+KPX T uogonek -120
+KPX T uring -120
+KPX T w -120
+KPX T y -120
+KPX T yacute -120
+KPX T ydieresis -60
+KPX Tcaron A -120
+KPX Tcaron Aacute -120
+KPX Tcaron Abreve -120
+KPX Tcaron Acircumflex -120
+KPX Tcaron Adieresis -120
+KPX Tcaron Agrave -120
+KPX Tcaron Amacron -120
+KPX Tcaron Aogonek -120
+KPX Tcaron Aring -120
+KPX Tcaron Atilde -120
+KPX Tcaron O -40
+KPX Tcaron Oacute -40
+KPX Tcaron Ocircumflex -40
+KPX Tcaron Odieresis -40
+KPX Tcaron Ograve -40
+KPX Tcaron Ohungarumlaut -40
+KPX Tcaron Omacron -40
+KPX Tcaron Oslash -40
+KPX Tcaron Otilde -40
+KPX Tcaron a -120
+KPX Tcaron aacute -120
+KPX Tcaron abreve -60
+KPX Tcaron acircumflex -120
+KPX Tcaron adieresis -120
+KPX Tcaron agrave -120
+KPX Tcaron amacron -60
+KPX Tcaron aogonek -120
+KPX Tcaron aring -120
+KPX Tcaron atilde -60
+KPX Tcaron colon -20
+KPX Tcaron comma -120
+KPX Tcaron e -120
+KPX Tcaron eacute -120
+KPX Tcaron ecaron -120
+KPX Tcaron ecircumflex -120
+KPX Tcaron edieresis -120
+KPX Tcaron edotaccent -120
+KPX Tcaron egrave -60
+KPX Tcaron emacron -60
+KPX Tcaron eogonek -120
+KPX Tcaron hyphen -140
+KPX Tcaron o -120
+KPX Tcaron oacute -120
+KPX Tcaron ocircumflex -120
+KPX Tcaron odieresis -120
+KPX Tcaron ograve -120
+KPX Tcaron ohungarumlaut -120
+KPX Tcaron omacron -60
+KPX Tcaron oslash -120
+KPX Tcaron otilde -60
+KPX Tcaron period -120
+KPX Tcaron r -120
+KPX Tcaron racute -120
+KPX Tcaron rcaron -120
+KPX Tcaron rcommaaccent -120
+KPX Tcaron semicolon -20
+KPX Tcaron u -120
+KPX Tcaron uacute -120
+KPX Tcaron ucircumflex -120
+KPX Tcaron udieresis -120
+KPX Tcaron ugrave -120
+KPX Tcaron uhungarumlaut -120
+KPX Tcaron umacron -60
+KPX Tcaron uogonek -120
+KPX Tcaron uring -120
+KPX Tcaron w -120
+KPX Tcaron y -120
+KPX Tcaron yacute -120
+KPX Tcaron ydieresis -60
+KPX Tcommaaccent A -120
+KPX Tcommaaccent Aacute -120
+KPX Tcommaaccent Abreve -120
+KPX Tcommaaccent Acircumflex -120
+KPX Tcommaaccent Adieresis -120
+KPX Tcommaaccent Agrave -120
+KPX Tcommaaccent Amacron -120
+KPX Tcommaaccent Aogonek -120
+KPX Tcommaaccent Aring -120
+KPX Tcommaaccent Atilde -120
+KPX Tcommaaccent O -40
+KPX Tcommaaccent Oacute -40
+KPX Tcommaaccent Ocircumflex -40
+KPX Tcommaaccent Odieresis -40
+KPX Tcommaaccent Ograve -40
+KPX Tcommaaccent Ohungarumlaut -40
+KPX Tcommaaccent Omacron -40
+KPX Tcommaaccent Oslash -40
+KPX Tcommaaccent Otilde -40
+KPX Tcommaaccent a -120
+KPX Tcommaaccent aacute -120
+KPX Tcommaaccent abreve -60
+KPX Tcommaaccent acircumflex -120
+KPX Tcommaaccent adieresis -120
+KPX Tcommaaccent agrave -120
+KPX Tcommaaccent amacron -60
+KPX Tcommaaccent aogonek -120
+KPX Tcommaaccent aring -120
+KPX Tcommaaccent atilde -60
+KPX Tcommaaccent colon -20
+KPX Tcommaaccent comma -120
+KPX Tcommaaccent e -120
+KPX Tcommaaccent eacute -120
+KPX Tcommaaccent ecaron -120
+KPX Tcommaaccent ecircumflex -120
+KPX Tcommaaccent edieresis -120
+KPX Tcommaaccent edotaccent -120
+KPX Tcommaaccent egrave -60
+KPX Tcommaaccent emacron -60
+KPX Tcommaaccent eogonek -120
+KPX Tcommaaccent hyphen -140
+KPX Tcommaaccent o -120
+KPX Tcommaaccent oacute -120
+KPX Tcommaaccent ocircumflex -120
+KPX Tcommaaccent odieresis -120
+KPX Tcommaaccent ograve -120
+KPX Tcommaaccent ohungarumlaut -120
+KPX Tcommaaccent omacron -60
+KPX Tcommaaccent oslash -120
+KPX Tcommaaccent otilde -60
+KPX Tcommaaccent period -120
+KPX Tcommaaccent r -120
+KPX Tcommaaccent racute -120
+KPX Tcommaaccent rcaron -120
+KPX Tcommaaccent rcommaaccent -120
+KPX Tcommaaccent semicolon -20
+KPX Tcommaaccent u -120
+KPX Tcommaaccent uacute -120
+KPX Tcommaaccent ucircumflex -120
+KPX Tcommaaccent udieresis -120
+KPX Tcommaaccent ugrave -120
+KPX Tcommaaccent uhungarumlaut -120
+KPX Tcommaaccent umacron -60
+KPX Tcommaaccent uogonek -120
+KPX Tcommaaccent uring -120
+KPX Tcommaaccent w -120
+KPX Tcommaaccent y -120
+KPX Tcommaaccent yacute -120
+KPX Tcommaaccent ydieresis -60
+KPX U A -40
+KPX U Aacute -40
+KPX U Abreve -40
+KPX U Acircumflex -40
+KPX U Adieresis -40
+KPX U Agrave -40
+KPX U Amacron -40
+KPX U Aogonek -40
+KPX U Aring -40
+KPX U Atilde -40
+KPX U comma -40
+KPX U period -40
+KPX Uacute A -40
+KPX Uacute Aacute -40
+KPX Uacute Abreve -40
+KPX Uacute Acircumflex -40
+KPX Uacute Adieresis -40
+KPX Uacute Agrave -40
+KPX Uacute Amacron -40
+KPX Uacute Aogonek -40
+KPX Uacute Aring -40
+KPX Uacute Atilde -40
+KPX Uacute comma -40
+KPX Uacute period -40
+KPX Ucircumflex A -40
+KPX Ucircumflex Aacute -40
+KPX Ucircumflex Abreve -40
+KPX Ucircumflex Acircumflex -40
+KPX Ucircumflex Adieresis -40
+KPX Ucircumflex Agrave -40
+KPX Ucircumflex Amacron -40
+KPX Ucircumflex Aogonek -40
+KPX Ucircumflex Aring -40
+KPX Ucircumflex Atilde -40
+KPX Ucircumflex comma -40
+KPX Ucircumflex period -40
+KPX Udieresis A -40
+KPX Udieresis Aacute -40
+KPX Udieresis Abreve -40
+KPX Udieresis Acircumflex -40
+KPX Udieresis Adieresis -40
+KPX Udieresis Agrave -40
+KPX Udieresis Amacron -40
+KPX Udieresis Aogonek -40
+KPX Udieresis Aring -40
+KPX Udieresis Atilde -40
+KPX Udieresis comma -40
+KPX Udieresis period -40
+KPX Ugrave A -40
+KPX Ugrave Aacute -40
+KPX Ugrave Abreve -40
+KPX Ugrave Acircumflex -40
+KPX Ugrave Adieresis -40
+KPX Ugrave Agrave -40
+KPX Ugrave Amacron -40
+KPX Ugrave Aogonek -40
+KPX Ugrave Aring -40
+KPX Ugrave Atilde -40
+KPX Ugrave comma -40
+KPX Ugrave period -40
+KPX Uhungarumlaut A -40
+KPX Uhungarumlaut Aacute -40
+KPX Uhungarumlaut Abreve -40
+KPX Uhungarumlaut Acircumflex -40
+KPX Uhungarumlaut Adieresis -40
+KPX Uhungarumlaut Agrave -40
+KPX Uhungarumlaut Amacron -40
+KPX Uhungarumlaut Aogonek -40
+KPX Uhungarumlaut Aring -40
+KPX Uhungarumlaut Atilde -40
+KPX Uhungarumlaut comma -40
+KPX Uhungarumlaut period -40
+KPX Umacron A -40
+KPX Umacron Aacute -40
+KPX Umacron Abreve -40
+KPX Umacron Acircumflex -40
+KPX Umacron Adieresis -40
+KPX Umacron Agrave -40
+KPX Umacron Amacron -40
+KPX Umacron Aogonek -40
+KPX Umacron Aring -40
+KPX Umacron Atilde -40
+KPX Umacron comma -40
+KPX Umacron period -40
+KPX Uogonek A -40
+KPX Uogonek Aacute -40
+KPX Uogonek Abreve -40
+KPX Uogonek Acircumflex -40
+KPX Uogonek Adieresis -40
+KPX Uogonek Agrave -40
+KPX Uogonek Amacron -40
+KPX Uogonek Aogonek -40
+KPX Uogonek Aring -40
+KPX Uogonek Atilde -40
+KPX Uogonek comma -40
+KPX Uogonek period -40
+KPX Uring A -40
+KPX Uring Aacute -40
+KPX Uring Abreve -40
+KPX Uring Acircumflex -40
+KPX Uring Adieresis -40
+KPX Uring Agrave -40
+KPX Uring Amacron -40
+KPX Uring Aogonek -40
+KPX Uring Aring -40
+KPX Uring Atilde -40
+KPX Uring comma -40
+KPX Uring period -40
+KPX V A -80
+KPX V Aacute -80
+KPX V Abreve -80
+KPX V Acircumflex -80
+KPX V Adieresis -80
+KPX V Agrave -80
+KPX V Amacron -80
+KPX V Aogonek -80
+KPX V Aring -80
+KPX V Atilde -80
+KPX V G -40
+KPX V Gbreve -40
+KPX V Gcommaaccent -40
+KPX V O -40
+KPX V Oacute -40
+KPX V Ocircumflex -40
+KPX V Odieresis -40
+KPX V Ograve -40
+KPX V Ohungarumlaut -40
+KPX V Omacron -40
+KPX V Oslash -40
+KPX V Otilde -40
+KPX V a -70
+KPX V aacute -70
+KPX V abreve -70
+KPX V acircumflex -70
+KPX V adieresis -70
+KPX V agrave -70
+KPX V amacron -70
+KPX V aogonek -70
+KPX V aring -70
+KPX V atilde -70
+KPX V colon -40
+KPX V comma -125
+KPX V e -80
+KPX V eacute -80
+KPX V ecaron -80
+KPX V ecircumflex -80
+KPX V edieresis -80
+KPX V edotaccent -80
+KPX V egrave -80
+KPX V emacron -80
+KPX V eogonek -80
+KPX V hyphen -80
+KPX V o -80
+KPX V oacute -80
+KPX V ocircumflex -80
+KPX V odieresis -80
+KPX V ograve -80
+KPX V ohungarumlaut -80
+KPX V omacron -80
+KPX V oslash -80
+KPX V otilde -80
+KPX V period -125
+KPX V semicolon -40
+KPX V u -70
+KPX V uacute -70
+KPX V ucircumflex -70
+KPX V udieresis -70
+KPX V ugrave -70
+KPX V uhungarumlaut -70
+KPX V umacron -70
+KPX V uogonek -70
+KPX V uring -70
+KPX W A -50
+KPX W Aacute -50
+KPX W Abreve -50
+KPX W Acircumflex -50
+KPX W Adieresis -50
+KPX W Agrave -50
+KPX W Amacron -50
+KPX W Aogonek -50
+KPX W Aring -50
+KPX W Atilde -50
+KPX W O -20
+KPX W Oacute -20
+KPX W Ocircumflex -20
+KPX W Odieresis -20
+KPX W Ograve -20
+KPX W Ohungarumlaut -20
+KPX W Omacron -20
+KPX W Oslash -20
+KPX W Otilde -20
+KPX W a -40
+KPX W aacute -40
+KPX W abreve -40
+KPX W acircumflex -40
+KPX W adieresis -40
+KPX W agrave -40
+KPX W amacron -40
+KPX W aogonek -40
+KPX W aring -40
+KPX W atilde -40
+KPX W comma -80
+KPX W e -30
+KPX W eacute -30
+KPX W ecaron -30
+KPX W ecircumflex -30
+KPX W edieresis -30
+KPX W edotaccent -30
+KPX W egrave -30
+KPX W emacron -30
+KPX W eogonek -30
+KPX W hyphen -40
+KPX W o -30
+KPX W oacute -30
+KPX W ocircumflex -30
+KPX W odieresis -30
+KPX W ograve -30
+KPX W ohungarumlaut -30
+KPX W omacron -30
+KPX W oslash -30
+KPX W otilde -30
+KPX W period -80
+KPX W u -30
+KPX W uacute -30
+KPX W ucircumflex -30
+KPX W udieresis -30
+KPX W ugrave -30
+KPX W uhungarumlaut -30
+KPX W umacron -30
+KPX W uogonek -30
+KPX W uring -30
+KPX W y -20
+KPX W yacute -20
+KPX W ydieresis -20
+KPX Y A -110
+KPX Y Aacute -110
+KPX Y Abreve -110
+KPX Y Acircumflex -110
+KPX Y Adieresis -110
+KPX Y Agrave -110
+KPX Y Amacron -110
+KPX Y Aogonek -110
+KPX Y Aring -110
+KPX Y Atilde -110
+KPX Y O -85
+KPX Y Oacute -85
+KPX Y Ocircumflex -85
+KPX Y Odieresis -85
+KPX Y Ograve -85
+KPX Y Ohungarumlaut -85
+KPX Y Omacron -85
+KPX Y Oslash -85
+KPX Y Otilde -85
+KPX Y a -140
+KPX Y aacute -140
+KPX Y abreve -70
+KPX Y acircumflex -140
+KPX Y adieresis -140
+KPX Y agrave -140
+KPX Y amacron -70
+KPX Y aogonek -140
+KPX Y aring -140
+KPX Y atilde -140
+KPX Y colon -60
+KPX Y comma -140
+KPX Y e -140
+KPX Y eacute -140
+KPX Y ecaron -140
+KPX Y ecircumflex -140
+KPX Y edieresis -140
+KPX Y edotaccent -140
+KPX Y egrave -140
+KPX Y emacron -70
+KPX Y eogonek -140
+KPX Y hyphen -140
+KPX Y i -20
+KPX Y iacute -20
+KPX Y iogonek -20
+KPX Y o -140
+KPX Y oacute -140
+KPX Y ocircumflex -140
+KPX Y odieresis -140
+KPX Y ograve -140
+KPX Y ohungarumlaut -140
+KPX Y omacron -140
+KPX Y oslash -140
+KPX Y otilde -140
+KPX Y period -140
+KPX Y semicolon -60
+KPX Y u -110
+KPX Y uacute -110
+KPX Y ucircumflex -110
+KPX Y udieresis -110
+KPX Y ugrave -110
+KPX Y uhungarumlaut -110
+KPX Y umacron -110
+KPX Y uogonek -110
+KPX Y uring -110
+KPX Yacute A -110
+KPX Yacute Aacute -110
+KPX Yacute Abreve -110
+KPX Yacute Acircumflex -110
+KPX Yacute Adieresis -110
+KPX Yacute Agrave -110
+KPX Yacute Amacron -110
+KPX Yacute Aogonek -110
+KPX Yacute Aring -110
+KPX Yacute Atilde -110
+KPX Yacute O -85
+KPX Yacute Oacute -85
+KPX Yacute Ocircumflex -85
+KPX Yacute Odieresis -85
+KPX Yacute Ograve -85
+KPX Yacute Ohungarumlaut -85
+KPX Yacute Omacron -85
+KPX Yacute Oslash -85
+KPX Yacute Otilde -85
+KPX Yacute a -140
+KPX Yacute aacute -140
+KPX Yacute abreve -70
+KPX Yacute acircumflex -140
+KPX Yacute adieresis -140
+KPX Yacute agrave -140
+KPX Yacute amacron -70
+KPX Yacute aogonek -140
+KPX Yacute aring -140
+KPX Yacute atilde -70
+KPX Yacute colon -60
+KPX Yacute comma -140
+KPX Yacute e -140
+KPX Yacute eacute -140
+KPX Yacute ecaron -140
+KPX Yacute ecircumflex -140
+KPX Yacute edieresis -140
+KPX Yacute edotaccent -140
+KPX Yacute egrave -140
+KPX Yacute emacron -70
+KPX Yacute eogonek -140
+KPX Yacute hyphen -140
+KPX Yacute i -20
+KPX Yacute iacute -20
+KPX Yacute iogonek -20
+KPX Yacute o -140
+KPX Yacute oacute -140
+KPX Yacute ocircumflex -140
+KPX Yacute odieresis -140
+KPX Yacute ograve -140
+KPX Yacute ohungarumlaut -140
+KPX Yacute omacron -70
+KPX Yacute oslash -140
+KPX Yacute otilde -140
+KPX Yacute period -140
+KPX Yacute semicolon -60
+KPX Yacute u -110
+KPX Yacute uacute -110
+KPX Yacute ucircumflex -110
+KPX Yacute udieresis -110
+KPX Yacute ugrave -110
+KPX Yacute uhungarumlaut -110
+KPX Yacute umacron -110
+KPX Yacute uogonek -110
+KPX Yacute uring -110
+KPX Ydieresis A -110
+KPX Ydieresis Aacute -110
+KPX Ydieresis Abreve -110
+KPX Ydieresis Acircumflex -110
+KPX Ydieresis Adieresis -110
+KPX Ydieresis Agrave -110
+KPX Ydieresis Amacron -110
+KPX Ydieresis Aogonek -110
+KPX Ydieresis Aring -110
+KPX Ydieresis Atilde -110
+KPX Ydieresis O -85
+KPX Ydieresis Oacute -85
+KPX Ydieresis Ocircumflex -85
+KPX Ydieresis Odieresis -85
+KPX Ydieresis Ograve -85
+KPX Ydieresis Ohungarumlaut -85
+KPX Ydieresis Omacron -85
+KPX Ydieresis Oslash -85
+KPX Ydieresis Otilde -85
+KPX Ydieresis a -140
+KPX Ydieresis aacute -140
+KPX Ydieresis abreve -70
+KPX Ydieresis acircumflex -140
+KPX Ydieresis adieresis -140
+KPX Ydieresis agrave -140
+KPX Ydieresis amacron -70
+KPX Ydieresis aogonek -140
+KPX Ydieresis aring -140
+KPX Ydieresis atilde -70
+KPX Ydieresis colon -60
+KPX Ydieresis comma -140
+KPX Ydieresis e -140
+KPX Ydieresis eacute -140
+KPX Ydieresis ecaron -140
+KPX Ydieresis ecircumflex -140
+KPX Ydieresis edieresis -140
+KPX Ydieresis edotaccent -140
+KPX Ydieresis egrave -140
+KPX Ydieresis emacron -70
+KPX Ydieresis eogonek -140
+KPX Ydieresis hyphen -140
+KPX Ydieresis i -20
+KPX Ydieresis iacute -20
+KPX Ydieresis iogonek -20
+KPX Ydieresis o -140
+KPX Ydieresis oacute -140
+KPX Ydieresis ocircumflex -140
+KPX Ydieresis odieresis -140
+KPX Ydieresis ograve -140
+KPX Ydieresis ohungarumlaut -140
+KPX Ydieresis omacron -140
+KPX Ydieresis oslash -140
+KPX Ydieresis otilde -140
+KPX Ydieresis period -140
+KPX Ydieresis semicolon -60
+KPX Ydieresis u -110
+KPX Ydieresis uacute -110
+KPX Ydieresis ucircumflex -110
+KPX Ydieresis udieresis -110
+KPX Ydieresis ugrave -110
+KPX Ydieresis uhungarumlaut -110
+KPX Ydieresis umacron -110
+KPX Ydieresis uogonek -110
+KPX Ydieresis uring -110
+KPX a v -20
+KPX a w -20
+KPX a y -30
+KPX a yacute -30
+KPX a ydieresis -30
+KPX aacute v -20
+KPX aacute w -20
+KPX aacute y -30
+KPX aacute yacute -30
+KPX aacute ydieresis -30
+KPX abreve v -20
+KPX abreve w -20
+KPX abreve y -30
+KPX abreve yacute -30
+KPX abreve ydieresis -30
+KPX acircumflex v -20
+KPX acircumflex w -20
+KPX acircumflex y -30
+KPX acircumflex yacute -30
+KPX acircumflex ydieresis -30
+KPX adieresis v -20
+KPX adieresis w -20
+KPX adieresis y -30
+KPX adieresis yacute -30
+KPX adieresis ydieresis -30
+KPX agrave v -20
+KPX agrave w -20
+KPX agrave y -30
+KPX agrave yacute -30
+KPX agrave ydieresis -30
+KPX amacron v -20
+KPX amacron w -20
+KPX amacron y -30
+KPX amacron yacute -30
+KPX amacron ydieresis -30
+KPX aogonek v -20
+KPX aogonek w -20
+KPX aogonek y -30
+KPX aogonek yacute -30
+KPX aogonek ydieresis -30
+KPX aring v -20
+KPX aring w -20
+KPX aring y -30
+KPX aring yacute -30
+KPX aring ydieresis -30
+KPX atilde v -20
+KPX atilde w -20
+KPX atilde y -30
+KPX atilde yacute -30
+KPX atilde ydieresis -30
+KPX b b -10
+KPX b comma -40
+KPX b l -20
+KPX b lacute -20
+KPX b lcommaaccent -20
+KPX b lslash -20
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -20
+KPX b y -20
+KPX b yacute -20
+KPX b ydieresis -20
+KPX c comma -15
+KPX c k -20
+KPX c kcommaaccent -20
+KPX cacute comma -15
+KPX cacute k -20
+KPX cacute kcommaaccent -20
+KPX ccaron comma -15
+KPX ccaron k -20
+KPX ccaron kcommaaccent -20
+KPX ccedilla comma -15
+KPX ccedilla k -20
+KPX ccedilla kcommaaccent -20
+KPX colon space -50
+KPX comma quotedblright -100
+KPX comma quoteright -100
+KPX e comma -15
+KPX e period -15
+KPX e v -30
+KPX e w -20
+KPX e x -30
+KPX e y -20
+KPX e yacute -20
+KPX e ydieresis -20
+KPX eacute comma -15
+KPX eacute period -15
+KPX eacute v -30
+KPX eacute w -20
+KPX eacute x -30
+KPX eacute y -20
+KPX eacute yacute -20
+KPX eacute ydieresis -20
+KPX ecaron comma -15
+KPX ecaron period -15
+KPX ecaron v -30
+KPX ecaron w -20
+KPX ecaron x -30
+KPX ecaron y -20
+KPX ecaron yacute -20
+KPX ecaron ydieresis -20
+KPX ecircumflex comma -15
+KPX ecircumflex period -15
+KPX ecircumflex v -30
+KPX ecircumflex w -20
+KPX ecircumflex x -30
+KPX ecircumflex y -20
+KPX ecircumflex yacute -20
+KPX ecircumflex ydieresis -20
+KPX edieresis comma -15
+KPX edieresis period -15
+KPX edieresis v -30
+KPX edieresis w -20
+KPX edieresis x -30
+KPX edieresis y -20
+KPX edieresis yacute -20
+KPX edieresis ydieresis -20
+KPX edotaccent comma -15
+KPX edotaccent period -15
+KPX edotaccent v -30
+KPX edotaccent w -20
+KPX edotaccent x -30
+KPX edotaccent y -20
+KPX edotaccent yacute -20
+KPX edotaccent ydieresis -20
+KPX egrave comma -15
+KPX egrave period -15
+KPX egrave v -30
+KPX egrave w -20
+KPX egrave x -30
+KPX egrave y -20
+KPX egrave yacute -20
+KPX egrave ydieresis -20
+KPX emacron comma -15
+KPX emacron period -15
+KPX emacron v -30
+KPX emacron w -20
+KPX emacron x -30
+KPX emacron y -20
+KPX emacron yacute -20
+KPX emacron ydieresis -20
+KPX eogonek comma -15
+KPX eogonek period -15
+KPX eogonek v -30
+KPX eogonek w -20
+KPX eogonek x -30
+KPX eogonek y -20
+KPX eogonek yacute -20
+KPX eogonek ydieresis -20
+KPX f a -30
+KPX f aacute -30
+KPX f abreve -30
+KPX f acircumflex -30
+KPX f adieresis -30
+KPX f agrave -30
+KPX f amacron -30
+KPX f aogonek -30
+KPX f aring -30
+KPX f atilde -30
+KPX f comma -30
+KPX f dotlessi -28
+KPX f e -30
+KPX f eacute -30
+KPX f ecaron -30
+KPX f ecircumflex -30
+KPX f edieresis -30
+KPX f edotaccent -30
+KPX f egrave -30
+KPX f emacron -30
+KPX f eogonek -30
+KPX f o -30
+KPX f oacute -30
+KPX f ocircumflex -30
+KPX f odieresis -30
+KPX f ograve -30
+KPX f ohungarumlaut -30
+KPX f omacron -30
+KPX f oslash -30
+KPX f otilde -30
+KPX f period -30
+KPX f quotedblright 60
+KPX f quoteright 50
+KPX g r -10
+KPX g racute -10
+KPX g rcaron -10
+KPX g rcommaaccent -10
+KPX gbreve r -10
+KPX gbreve racute -10
+KPX gbreve rcaron -10
+KPX gbreve rcommaaccent -10
+KPX gcommaaccent r -10
+KPX gcommaaccent racute -10
+KPX gcommaaccent rcaron -10
+KPX gcommaaccent rcommaaccent -10
+KPX h y -30
+KPX h yacute -30
+KPX h ydieresis -30
+KPX k e -20
+KPX k eacute -20
+KPX k ecaron -20
+KPX k ecircumflex -20
+KPX k edieresis -20
+KPX k edotaccent -20
+KPX k egrave -20
+KPX k emacron -20
+KPX k eogonek -20
+KPX k o -20
+KPX k oacute -20
+KPX k ocircumflex -20
+KPX k odieresis -20
+KPX k ograve -20
+KPX k ohungarumlaut -20
+KPX k omacron -20
+KPX k oslash -20
+KPX k otilde -20
+KPX kcommaaccent e -20
+KPX kcommaaccent eacute -20
+KPX kcommaaccent ecaron -20
+KPX kcommaaccent ecircumflex -20
+KPX kcommaaccent edieresis -20
+KPX kcommaaccent edotaccent -20
+KPX kcommaaccent egrave -20
+KPX kcommaaccent emacron -20
+KPX kcommaaccent eogonek -20
+KPX kcommaaccent o -20
+KPX kcommaaccent oacute -20
+KPX kcommaaccent ocircumflex -20
+KPX kcommaaccent odieresis -20
+KPX kcommaaccent ograve -20
+KPX kcommaaccent ohungarumlaut -20
+KPX kcommaaccent omacron -20
+KPX kcommaaccent oslash -20
+KPX kcommaaccent otilde -20
+KPX m u -10
+KPX m uacute -10
+KPX m ucircumflex -10
+KPX m udieresis -10
+KPX m ugrave -10
+KPX m uhungarumlaut -10
+KPX m umacron -10
+KPX m uogonek -10
+KPX m uring -10
+KPX m y -15
+KPX m yacute -15
+KPX m ydieresis -15
+KPX n u -10
+KPX n uacute -10
+KPX n ucircumflex -10
+KPX n udieresis -10
+KPX n ugrave -10
+KPX n uhungarumlaut -10
+KPX n umacron -10
+KPX n uogonek -10
+KPX n uring -10
+KPX n v -20
+KPX n y -15
+KPX n yacute -15
+KPX n ydieresis -15
+KPX nacute u -10
+KPX nacute uacute -10
+KPX nacute ucircumflex -10
+KPX nacute udieresis -10
+KPX nacute ugrave -10
+KPX nacute uhungarumlaut -10
+KPX nacute umacron -10
+KPX nacute uogonek -10
+KPX nacute uring -10
+KPX nacute v -20
+KPX nacute y -15
+KPX nacute yacute -15
+KPX nacute ydieresis -15
+KPX ncaron u -10
+KPX ncaron uacute -10
+KPX ncaron ucircumflex -10
+KPX ncaron udieresis -10
+KPX ncaron ugrave -10
+KPX ncaron uhungarumlaut -10
+KPX ncaron umacron -10
+KPX ncaron uogonek -10
+KPX ncaron uring -10
+KPX ncaron v -20
+KPX ncaron y -15
+KPX ncaron yacute -15
+KPX ncaron ydieresis -15
+KPX ncommaaccent u -10
+KPX ncommaaccent uacute -10
+KPX ncommaaccent ucircumflex -10
+KPX ncommaaccent udieresis -10
+KPX ncommaaccent ugrave -10
+KPX ncommaaccent uhungarumlaut -10
+KPX ncommaaccent umacron -10
+KPX ncommaaccent uogonek -10
+KPX ncommaaccent uring -10
+KPX ncommaaccent v -20
+KPX ncommaaccent y -15
+KPX ncommaaccent yacute -15
+KPX ncommaaccent ydieresis -15
+KPX ntilde u -10
+KPX ntilde uacute -10
+KPX ntilde ucircumflex -10
+KPX ntilde udieresis -10
+KPX ntilde ugrave -10
+KPX ntilde uhungarumlaut -10
+KPX ntilde umacron -10
+KPX ntilde uogonek -10
+KPX ntilde uring -10
+KPX ntilde v -20
+KPX ntilde y -15
+KPX ntilde yacute -15
+KPX ntilde ydieresis -15
+KPX o comma -40
+KPX o period -40
+KPX o v -15
+KPX o w -15
+KPX o x -30
+KPX o y -30
+KPX o yacute -30
+KPX o ydieresis -30
+KPX oacute comma -40
+KPX oacute period -40
+KPX oacute v -15
+KPX oacute w -15
+KPX oacute x -30
+KPX oacute y -30
+KPX oacute yacute -30
+KPX oacute ydieresis -30
+KPX ocircumflex comma -40
+KPX ocircumflex period -40
+KPX ocircumflex v -15
+KPX ocircumflex w -15
+KPX ocircumflex x -30
+KPX ocircumflex y -30
+KPX ocircumflex yacute -30
+KPX ocircumflex ydieresis -30
+KPX odieresis comma -40
+KPX odieresis period -40
+KPX odieresis v -15
+KPX odieresis w -15
+KPX odieresis x -30
+KPX odieresis y -30
+KPX odieresis yacute -30
+KPX odieresis ydieresis -30
+KPX ograve comma -40
+KPX ograve period -40
+KPX ograve v -15
+KPX ograve w -15
+KPX ograve x -30
+KPX ograve y -30
+KPX ograve yacute -30
+KPX ograve ydieresis -30
+KPX ohungarumlaut comma -40
+KPX ohungarumlaut period -40
+KPX ohungarumlaut v -15
+KPX ohungarumlaut w -15
+KPX ohungarumlaut x -30
+KPX ohungarumlaut y -30
+KPX ohungarumlaut yacute -30
+KPX ohungarumlaut ydieresis -30
+KPX omacron comma -40
+KPX omacron period -40
+KPX omacron v -15
+KPX omacron w -15
+KPX omacron x -30
+KPX omacron y -30
+KPX omacron yacute -30
+KPX omacron ydieresis -30
+KPX oslash a -55
+KPX oslash aacute -55
+KPX oslash abreve -55
+KPX oslash acircumflex -55
+KPX oslash adieresis -55
+KPX oslash agrave -55
+KPX oslash amacron -55
+KPX oslash aogonek -55
+KPX oslash aring -55
+KPX oslash atilde -55
+KPX oslash b -55
+KPX oslash c -55
+KPX oslash cacute -55
+KPX oslash ccaron -55
+KPX oslash ccedilla -55
+KPX oslash comma -95
+KPX oslash d -55
+KPX oslash dcroat -55
+KPX oslash e -55
+KPX oslash eacute -55
+KPX oslash ecaron -55
+KPX oslash ecircumflex -55
+KPX oslash edieresis -55
+KPX oslash edotaccent -55
+KPX oslash egrave -55
+KPX oslash emacron -55
+KPX oslash eogonek -55
+KPX oslash f -55
+KPX oslash g -55
+KPX oslash gbreve -55
+KPX oslash gcommaaccent -55
+KPX oslash h -55
+KPX oslash i -55
+KPX oslash iacute -55
+KPX oslash icircumflex -55
+KPX oslash idieresis -55
+KPX oslash igrave -55
+KPX oslash imacron -55
+KPX oslash iogonek -55
+KPX oslash j -55
+KPX oslash k -55
+KPX oslash kcommaaccent -55
+KPX oslash l -55
+KPX oslash lacute -55
+KPX oslash lcommaaccent -55
+KPX oslash lslash -55
+KPX oslash m -55
+KPX oslash n -55
+KPX oslash nacute -55
+KPX oslash ncaron -55
+KPX oslash ncommaaccent -55
+KPX oslash ntilde -55
+KPX oslash o -55
+KPX oslash oacute -55
+KPX oslash ocircumflex -55
+KPX oslash odieresis -55
+KPX oslash ograve -55
+KPX oslash ohungarumlaut -55
+KPX oslash omacron -55
+KPX oslash oslash -55
+KPX oslash otilde -55
+KPX oslash p -55
+KPX oslash period -95
+KPX oslash q -55
+KPX oslash r -55
+KPX oslash racute -55
+KPX oslash rcaron -55
+KPX oslash rcommaaccent -55
+KPX oslash s -55
+KPX oslash sacute -55
+KPX oslash scaron -55
+KPX oslash scedilla -55
+KPX oslash scommaaccent -55
+KPX oslash t -55
+KPX oslash tcommaaccent -55
+KPX oslash u -55
+KPX oslash uacute -55
+KPX oslash ucircumflex -55
+KPX oslash udieresis -55
+KPX oslash ugrave -55
+KPX oslash uhungarumlaut -55
+KPX oslash umacron -55
+KPX oslash uogonek -55
+KPX oslash uring -55
+KPX oslash v -70
+KPX oslash w -70
+KPX oslash x -85
+KPX oslash y -70
+KPX oslash yacute -70
+KPX oslash ydieresis -70
+KPX oslash z -55
+KPX oslash zacute -55
+KPX oslash zcaron -55
+KPX oslash zdotaccent -55
+KPX otilde comma -40
+KPX otilde period -40
+KPX otilde v -15
+KPX otilde w -15
+KPX otilde x -30
+KPX otilde y -30
+KPX otilde yacute -30
+KPX otilde ydieresis -30
+KPX p comma -35
+KPX p period -35
+KPX p y -30
+KPX p yacute -30
+KPX p ydieresis -30
+KPX period quotedblright -100
+KPX period quoteright -100
+KPX period space -60
+KPX quotedblright space -40
+KPX quoteleft quoteleft -57
+KPX quoteright d -50
+KPX quoteright dcroat -50
+KPX quoteright quoteright -57
+KPX quoteright r -50
+KPX quoteright racute -50
+KPX quoteright rcaron -50
+KPX quoteright rcommaaccent -50
+KPX quoteright s -50
+KPX quoteright sacute -50
+KPX quoteright scaron -50
+KPX quoteright scedilla -50
+KPX quoteright scommaaccent -50
+KPX quoteright space -70
+KPX r a -10
+KPX r aacute -10
+KPX r abreve -10
+KPX r acircumflex -10
+KPX r adieresis -10
+KPX r agrave -10
+KPX r amacron -10
+KPX r aogonek -10
+KPX r aring -10
+KPX r atilde -10
+KPX r colon 30
+KPX r comma -50
+KPX r i 15
+KPX r iacute 15
+KPX r icircumflex 15
+KPX r idieresis 15
+KPX r igrave 15
+KPX r imacron 15
+KPX r iogonek 15
+KPX r k 15
+KPX r kcommaaccent 15
+KPX r l 15
+KPX r lacute 15
+KPX r lcommaaccent 15
+KPX r lslash 15
+KPX r m 25
+KPX r n 25
+KPX r nacute 25
+KPX r ncaron 25
+KPX r ncommaaccent 25
+KPX r ntilde 25
+KPX r p 30
+KPX r period -50
+KPX r semicolon 30
+KPX r t 40
+KPX r tcommaaccent 40
+KPX r u 15
+KPX r uacute 15
+KPX r ucircumflex 15
+KPX r udieresis 15
+KPX r ugrave 15
+KPX r uhungarumlaut 15
+KPX r umacron 15
+KPX r uogonek 15
+KPX r uring 15
+KPX r v 30
+KPX r y 30
+KPX r yacute 30
+KPX r ydieresis 30
+KPX racute a -10
+KPX racute aacute -10
+KPX racute abreve -10
+KPX racute acircumflex -10
+KPX racute adieresis -10
+KPX racute agrave -10
+KPX racute amacron -10
+KPX racute aogonek -10
+KPX racute aring -10
+KPX racute atilde -10
+KPX racute colon 30
+KPX racute comma -50
+KPX racute i 15
+KPX racute iacute 15
+KPX racute icircumflex 15
+KPX racute idieresis 15
+KPX racute igrave 15
+KPX racute imacron 15
+KPX racute iogonek 15
+KPX racute k 15
+KPX racute kcommaaccent 15
+KPX racute l 15
+KPX racute lacute 15
+KPX racute lcommaaccent 15
+KPX racute lslash 15
+KPX racute m 25
+KPX racute n 25
+KPX racute nacute 25
+KPX racute ncaron 25
+KPX racute ncommaaccent 25
+KPX racute ntilde 25
+KPX racute p 30
+KPX racute period -50
+KPX racute semicolon 30
+KPX racute t 40
+KPX racute tcommaaccent 40
+KPX racute u 15
+KPX racute uacute 15
+KPX racute ucircumflex 15
+KPX racute udieresis 15
+KPX racute ugrave 15
+KPX racute uhungarumlaut 15
+KPX racute umacron 15
+KPX racute uogonek 15
+KPX racute uring 15
+KPX racute v 30
+KPX racute y 30
+KPX racute yacute 30
+KPX racute ydieresis 30
+KPX rcaron a -10
+KPX rcaron aacute -10
+KPX rcaron abreve -10
+KPX rcaron acircumflex -10
+KPX rcaron adieresis -10
+KPX rcaron agrave -10
+KPX rcaron amacron -10
+KPX rcaron aogonek -10
+KPX rcaron aring -10
+KPX rcaron atilde -10
+KPX rcaron colon 30
+KPX rcaron comma -50
+KPX rcaron i 15
+KPX rcaron iacute 15
+KPX rcaron icircumflex 15
+KPX rcaron idieresis 15
+KPX rcaron igrave 15
+KPX rcaron imacron 15
+KPX rcaron iogonek 15
+KPX rcaron k 15
+KPX rcaron kcommaaccent 15
+KPX rcaron l 15
+KPX rcaron lacute 15
+KPX rcaron lcommaaccent 15
+KPX rcaron lslash 15
+KPX rcaron m 25
+KPX rcaron n 25
+KPX rcaron nacute 25
+KPX rcaron ncaron 25
+KPX rcaron ncommaaccent 25
+KPX rcaron ntilde 25
+KPX rcaron p 30
+KPX rcaron period -50
+KPX rcaron semicolon 30
+KPX rcaron t 40
+KPX rcaron tcommaaccent 40
+KPX rcaron u 15
+KPX rcaron uacute 15
+KPX rcaron ucircumflex 15
+KPX rcaron udieresis 15
+KPX rcaron ugrave 15
+KPX rcaron uhungarumlaut 15
+KPX rcaron umacron 15
+KPX rcaron uogonek 15
+KPX rcaron uring 15
+KPX rcaron v 30
+KPX rcaron y 30
+KPX rcaron yacute 30
+KPX rcaron ydieresis 30
+KPX rcommaaccent a -10
+KPX rcommaaccent aacute -10
+KPX rcommaaccent abreve -10
+KPX rcommaaccent acircumflex -10
+KPX rcommaaccent adieresis -10
+KPX rcommaaccent agrave -10
+KPX rcommaaccent amacron -10
+KPX rcommaaccent aogonek -10
+KPX rcommaaccent aring -10
+KPX rcommaaccent atilde -10
+KPX rcommaaccent colon 30
+KPX rcommaaccent comma -50
+KPX rcommaaccent i 15
+KPX rcommaaccent iacute 15
+KPX rcommaaccent icircumflex 15
+KPX rcommaaccent idieresis 15
+KPX rcommaaccent igrave 15
+KPX rcommaaccent imacron 15
+KPX rcommaaccent iogonek 15
+KPX rcommaaccent k 15
+KPX rcommaaccent kcommaaccent 15
+KPX rcommaaccent l 15
+KPX rcommaaccent lacute 15
+KPX rcommaaccent lcommaaccent 15
+KPX rcommaaccent lslash 15
+KPX rcommaaccent m 25
+KPX rcommaaccent n 25
+KPX rcommaaccent nacute 25
+KPX rcommaaccent ncaron 25
+KPX rcommaaccent ncommaaccent 25
+KPX rcommaaccent ntilde 25
+KPX rcommaaccent p 30
+KPX rcommaaccent period -50
+KPX rcommaaccent semicolon 30
+KPX rcommaaccent t 40
+KPX rcommaaccent tcommaaccent 40
+KPX rcommaaccent u 15
+KPX rcommaaccent uacute 15
+KPX rcommaaccent ucircumflex 15
+KPX rcommaaccent udieresis 15
+KPX rcommaaccent ugrave 15
+KPX rcommaaccent uhungarumlaut 15
+KPX rcommaaccent umacron 15
+KPX rcommaaccent uogonek 15
+KPX rcommaaccent uring 15
+KPX rcommaaccent v 30
+KPX rcommaaccent y 30
+KPX rcommaaccent yacute 30
+KPX rcommaaccent ydieresis 30
+KPX s comma -15
+KPX s period -15
+KPX s w -30
+KPX sacute comma -15
+KPX sacute period -15
+KPX sacute w -30
+KPX scaron comma -15
+KPX scaron period -15
+KPX scaron w -30
+KPX scedilla comma -15
+KPX scedilla period -15
+KPX scedilla w -30
+KPX scommaaccent comma -15
+KPX scommaaccent period -15
+KPX scommaaccent w -30
+KPX semicolon space -50
+KPX space T -50
+KPX space Tcaron -50
+KPX space Tcommaaccent -50
+KPX space V -50
+KPX space W -40
+KPX space Y -90
+KPX space Yacute -90
+KPX space Ydieresis -90
+KPX space quotedblleft -30
+KPX space quoteleft -60
+KPX v a -25
+KPX v aacute -25
+KPX v abreve -25
+KPX v acircumflex -25
+KPX v adieresis -25
+KPX v agrave -25
+KPX v amacron -25
+KPX v aogonek -25
+KPX v aring -25
+KPX v atilde -25
+KPX v comma -80
+KPX v e -25
+KPX v eacute -25
+KPX v ecaron -25
+KPX v ecircumflex -25
+KPX v edieresis -25
+KPX v edotaccent -25
+KPX v egrave -25
+KPX v emacron -25
+KPX v eogonek -25
+KPX v o -25
+KPX v oacute -25
+KPX v ocircumflex -25
+KPX v odieresis -25
+KPX v ograve -25
+KPX v ohungarumlaut -25
+KPX v omacron -25
+KPX v oslash -25
+KPX v otilde -25
+KPX v period -80
+KPX w a -15
+KPX w aacute -15
+KPX w abreve -15
+KPX w acircumflex -15
+KPX w adieresis -15
+KPX w agrave -15
+KPX w amacron -15
+KPX w aogonek -15
+KPX w aring -15
+KPX w atilde -15
+KPX w comma -60
+KPX w e -10
+KPX w eacute -10
+KPX w ecaron -10
+KPX w ecircumflex -10
+KPX w edieresis -10
+KPX w edotaccent -10
+KPX w egrave -10
+KPX w emacron -10
+KPX w eogonek -10
+KPX w o -10
+KPX w oacute -10
+KPX w ocircumflex -10
+KPX w odieresis -10
+KPX w ograve -10
+KPX w ohungarumlaut -10
+KPX w omacron -10
+KPX w oslash -10
+KPX w otilde -10
+KPX w period -60
+KPX x e -30
+KPX x eacute -30
+KPX x ecaron -30
+KPX x ecircumflex -30
+KPX x edieresis -30
+KPX x edotaccent -30
+KPX x egrave -30
+KPX x emacron -30
+KPX x eogonek -30
+KPX y a -20
+KPX y aacute -20
+KPX y abreve -20
+KPX y acircumflex -20
+KPX y adieresis -20
+KPX y agrave -20
+KPX y amacron -20
+KPX y aogonek -20
+KPX y aring -20
+KPX y atilde -20
+KPX y comma -100
+KPX y e -20
+KPX y eacute -20
+KPX y ecaron -20
+KPX y ecircumflex -20
+KPX y edieresis -20
+KPX y edotaccent -20
+KPX y egrave -20
+KPX y emacron -20
+KPX y eogonek -20
+KPX y o -20
+KPX y oacute -20
+KPX y ocircumflex -20
+KPX y odieresis -20
+KPX y ograve -20
+KPX y ohungarumlaut -20
+KPX y omacron -20
+KPX y oslash -20
+KPX y otilde -20
+KPX y period -100
+KPX yacute a -20
+KPX yacute aacute -20
+KPX yacute abreve -20
+KPX yacute acircumflex -20
+KPX yacute adieresis -20
+KPX yacute agrave -20
+KPX yacute amacron -20
+KPX yacute aogonek -20
+KPX yacute aring -20
+KPX yacute atilde -20
+KPX yacute comma -100
+KPX yacute e -20
+KPX yacute eacute -20
+KPX yacute ecaron -20
+KPX yacute ecircumflex -20
+KPX yacute edieresis -20
+KPX yacute edotaccent -20
+KPX yacute egrave -20
+KPX yacute emacron -20
+KPX yacute eogonek -20
+KPX yacute o -20
+KPX yacute oacute -20
+KPX yacute ocircumflex -20
+KPX yacute odieresis -20
+KPX yacute ograve -20
+KPX yacute ohungarumlaut -20
+KPX yacute omacron -20
+KPX yacute oslash -20
+KPX yacute otilde -20
+KPX yacute period -100
+KPX ydieresis a -20
+KPX ydieresis aacute -20
+KPX ydieresis abreve -20
+KPX ydieresis acircumflex -20
+KPX ydieresis adieresis -20
+KPX ydieresis agrave -20
+KPX ydieresis amacron -20
+KPX ydieresis aogonek -20
+KPX ydieresis aring -20
+KPX ydieresis atilde -20
+KPX ydieresis comma -100
+KPX ydieresis e -20
+KPX ydieresis eacute -20
+KPX ydieresis ecaron -20
+KPX ydieresis ecircumflex -20
+KPX ydieresis edieresis -20
+KPX ydieresis edotaccent -20
+KPX ydieresis egrave -20
+KPX ydieresis emacron -20
+KPX ydieresis eogonek -20
+KPX ydieresis o -20
+KPX ydieresis oacute -20
+KPX ydieresis ocircumflex -20
+KPX ydieresis odieresis -20
+KPX ydieresis ograve -20
+KPX ydieresis ohungarumlaut -20
+KPX ydieresis omacron -20
+KPX ydieresis oslash -20
+KPX ydieresis otilde -20
+KPX ydieresis period -100
+KPX z e -15
+KPX z eacute -15
+KPX z ecaron -15
+KPX z ecircumflex -15
+KPX z edieresis -15
+KPX z edotaccent -15
+KPX z egrave -15
+KPX z emacron -15
+KPX z eogonek -15
+KPX z o -15
+KPX z oacute -15
+KPX z ocircumflex -15
+KPX z odieresis -15
+KPX z ograve -15
+KPX z ohungarumlaut -15
+KPX z omacron -15
+KPX z oslash -15
+KPX z otilde -15
+KPX zacute e -15
+KPX zacute eacute -15
+KPX zacute ecaron -15
+KPX zacute ecircumflex -15
+KPX zacute edieresis -15
+KPX zacute edotaccent -15
+KPX zacute egrave -15
+KPX zacute emacron -15
+KPX zacute eogonek -15
+KPX zacute o -15
+KPX zacute oacute -15
+KPX zacute ocircumflex -15
+KPX zacute odieresis -15
+KPX zacute ograve -15
+KPX zacute ohungarumlaut -15
+KPX zacute omacron -15
+KPX zacute oslash -15
+KPX zacute otilde -15
+KPX zcaron e -15
+KPX zcaron eacute -15
+KPX zcaron ecaron -15
+KPX zcaron ecircumflex -15
+KPX zcaron edieresis -15
+KPX zcaron edotaccent -15
+KPX zcaron egrave -15
+KPX zcaron emacron -15
+KPX zcaron eogonek -15
+KPX zcaron o -15
+KPX zcaron oacute -15
+KPX zcaron ocircumflex -15
+KPX zcaron odieresis -15
+KPX zcaron ograve -15
+KPX zcaron ohungarumlaut -15
+KPX zcaron omacron -15
+KPX zcaron oslash -15
+KPX zcaron otilde -15
+KPX zdotaccent e -15
+KPX zdotaccent eacute -15
+KPX zdotaccent ecaron -15
+KPX zdotaccent ecircumflex -15
+KPX zdotaccent edieresis -15
+KPX zdotaccent edotaccent -15
+KPX zdotaccent egrave -15
+KPX zdotaccent emacron -15
+KPX zdotaccent eogonek -15
+KPX zdotaccent o -15
+KPX zdotaccent oacute -15
+KPX zdotaccent ocircumflex -15
+KPX zdotaccent odieresis -15
+KPX zdotaccent ograve -15
+KPX zdotaccent ohungarumlaut -15
+KPX zdotaccent omacron -15
+KPX zdotaccent oslash -15
+KPX zdotaccent otilde -15
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/ITCAvantGarde-Book.afm b/test/user-template/user/psprint/fontmetric/ITCAvantGarde-Book.afm
new file mode 100644
index 000000000000..38640974bbc9
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/ITCAvantGarde-Book.afm
@@ -0,0 +1,1266 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 14:01:14 1997
+Comment UniqueID 43083
+Comment VMusage 33801 44826
+FontName AvantGarde-Book
+FullName ITC Avant Garde Gothic Book
+FamilyName ITC Avant Garde Gothic
+Weight Book
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -113 -222 1148 955
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation.
+EncodingScheme AdobeStandardEncoding
+CapHeight 740
+XHeight 547
+Ascender 740
+Descender -192
+StdHW 63
+StdVW 70
+StartCharMetrics 314
+C 32 ; WX 277 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 295 ; N exclam ; B 111 0 185 740 ;
+C 34 ; WX 309 ; N quotedbl ; B 36 444 273 740 ;
+C 35 ; WX 554 ; N numbersign ; B 33 0 521 740 ;
+C 36 ; WX 554 ; N dollar ; B 70 -70 485 811 ;
+C 37 ; WX 775 ; N percent ; B 21 -13 753 751 ;
+C 38 ; WX 757 ; N ampersand ; B 56 -12 736 753 ;
+C 39 ; WX 351 ; N quoteright ; B 94 546 256 740 ;
+C 40 ; WX 369 ; N parenleft ; B 47 -205 355 757 ;
+C 41 ; WX 369 ; N parenright ; B 14 -205 322 757 ;
+C 42 ; WX 425 ; N asterisk ; B 58 446 367 740 ;
+C 43 ; WX 606 ; N plus ; B 51 0 555 506 ;
+C 44 ; WX 277 ; N comma ; B 14 -67 176 126 ;
+C 45 ; WX 332 ; N hyphen ; B 30 248 302 315 ;
+C 46 ; WX 277 ; N period ; B 102 0 176 126 ;
+C 47 ; WX 437 ; N slash ; B 44 -100 403 740 ;
+C 48 ; WX 554 ; N zero ; B 29 -13 525 753 ;
+C 49 ; WX 554 ; N one ; B 135 0 336 740 ;
+C 50 ; WX 554 ; N two ; B 40 0 514 753 ;
+C 51 ; WX 554 ; N three ; B 34 -13 506 753 ;
+C 52 ; WX 554 ; N four ; B 14 0 528 740 ;
+C 53 ; WX 554 ; N five ; B 26 -13 530 740 ;
+C 54 ; WX 554 ; N six ; B 24 -13 530 739 ;
+C 55 ; WX 554 ; N seven ; B 63 0 491 740 ;
+C 56 ; WX 554 ; N eight ; B 41 -13 513 753 ;
+C 57 ; WX 554 ; N nine ; B 24 0 530 752 ;
+C 58 ; WX 277 ; N colon ; B 102 0 176 548 ;
+C 59 ; WX 277 ; N semicolon ; B 14 -67 176 548 ;
+C 60 ; WX 606 ; N less ; B 46 -8 554 514 ;
+C 61 ; WX 606 ; N equal ; B 51 118 555 388 ;
+C 62 ; WX 606 ; N greater ; B 52 -8 560 514 ;
+C 63 ; WX 591 ; N question ; B 64 0 526 752 ;
+C 64 ; WX 867 ; N at ; B 65 -13 803 753 ;
+C 65 ; WX 740 ; N A ; B 12 0 729 740 ;
+C 66 ; WX 574 ; N B ; B 74 0 544 740 ;
+C 67 ; WX 813 ; N C ; B 43 -13 771 752 ;
+C 68 ; WX 744 ; N D ; B 74 0 699 740 ;
+C 69 ; WX 536 ; N E ; B 70 0 475 740 ;
+C 70 ; WX 485 ; N F ; B 70 0 444 740 ;
+C 71 ; WX 872 ; N G ; B 40 -13 828 753 ;
+C 72 ; WX 683 ; N H ; B 76 0 607 740 ;
+C 73 ; WX 226 ; N I ; B 76 0 150 740 ;
+C 74 ; WX 482 ; N J ; B 6 -13 402 740 ;
+C 75 ; WX 591 ; N K ; B 81 0 591 740 ;
+C 76 ; WX 462 ; N L ; B 82 0 462 740 ;
+C 77 ; WX 919 ; N M ; B 76 0 843 740 ;
+C 78 ; WX 740 ; N N ; B 75 0 664 740 ;
+C 79 ; WX 869 ; N O ; B 43 -13 826 753 ;
+C 80 ; WX 592 ; N P ; B 75 0 564 740 ;
+C 81 ; WX 871 ; N Q ; B 40 -13 837 753 ;
+C 82 ; WX 607 ; N R ; B 70 0 572 740 ;
+C 83 ; WX 498 ; N S ; B 22 -13 473 753 ;
+C 84 ; WX 426 ; N T ; B 6 0 419 740 ;
+C 85 ; WX 655 ; N U ; B 75 -13 579 740 ;
+C 86 ; WX 702 ; N V ; B 8 0 693 740 ;
+C 87 ; WX 960 ; N W ; B 11 0 950 740 ;
+C 88 ; WX 609 ; N X ; B 8 0 602 740 ;
+C 89 ; WX 592 ; N Y ; B 1 0 592 740 ;
+C 90 ; WX 480 ; N Z ; B 12 0 470 740 ;
+C 91 ; WX 351 ; N bracketleft ; B 133 -179 337 753 ;
+C 92 ; WX 605 ; N backslash ; B 118 -100 477 740 ;
+C 93 ; WX 351 ; N bracketright ; B 14 -179 218 753 ;
+C 94 ; WX 606 ; N asciicircum ; B 53 307 553 740 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 351 ; N quoteleft ; B 95 546 257 740 ;
+C 97 ; WX 683 ; N a ; B 42 -13 621 561 ;
+C 98 ; WX 682 ; N b ; B 68 -13 647 740 ;
+C 99 ; WX 647 ; N c ; B 41 -13 607 561 ;
+C 100 ; WX 685 ; N d ; B 39 -13 618 740 ;
+C 101 ; WX 650 ; N e ; B 38 -13 608 561 ;
+C 102 ; WX 314 ; N f ; B 19 0 314 753 ; L i fi ; L l fl ;
+C 103 ; WX 673 ; N g ; B 37 -215 606 561 ;
+C 104 ; WX 610 ; N h ; B 62 0 543 740 ;
+C 105 ; WX 200 ; N i ; B 65 0 135 740 ;
+C 106 ; WX 203 ; N j ; B -44 -192 137 740 ;
+C 107 ; WX 502 ; N k ; B 70 0 498 740 ;
+C 108 ; WX 200 ; N l ; B 65 0 135 740 ;
+C 109 ; WX 938 ; N m ; B 66 0 872 561 ;
+C 110 ; WX 610 ; N n ; B 65 0 546 561 ;
+C 111 ; WX 655 ; N o ; B 42 -13 614 561 ;
+C 112 ; WX 682 ; N p ; B 64 -192 643 561 ;
+C 113 ; WX 682 ; N q ; B 37 -192 616 561 ;
+C 114 ; WX 301 ; N r ; B 65 0 291 561 ;
+C 115 ; WX 388 ; N s ; B 24 -13 364 561 ;
+C 116 ; WX 339 ; N t ; B 14 0 330 740 ;
+C 117 ; WX 608 ; N u ; B 62 -13 541 547 ;
+C 118 ; WX 554 ; N v ; B 7 0 546 547 ;
+C 119 ; WX 831 ; N w ; B 13 0 820 547 ;
+C 120 ; WX 480 ; N x ; B 12 0 468 547 ;
+C 121 ; WX 536 ; N y ; B 15 -192 523 547 ;
+C 122 ; WX 425 ; N z ; B 10 0 415 547 ;
+C 123 ; WX 351 ; N braceleft ; B 70 -189 331 740 ;
+C 124 ; WX 672 ; N bar ; B 299 -222 373 778 ;
+C 125 ; WX 351 ; N braceright ; B 20 -189 281 740 ;
+C 126 ; WX 606 ; N asciitilde ; B 72 179 534 319 ;
+C 161 ; WX 295 ; N exclamdown ; B 110 -192 184 548 ;
+C 162 ; WX 554 ; N cent ; B 48 62 510 707 ;
+C 163 ; WX 554 ; N sterling ; B 4 0 552 753 ;
+C 164 ; WX 166 ; N fraction ; B -113 0 280 740 ;
+C 165 ; WX 554 ; N yen ; B 4 0 550 740 ;
+C 166 ; WX 554 ; N florin ; B -12 -153 518 818 ;
+C 167 ; WX 615 ; N section ; B 85 -141 529 753 ;
+C 168 ; WX 554 ; N currency ; B 8 42 546 580 ;
+C 169 ; WX 198 ; N quotesingle ; B 59 444 140 740 ;
+C 170 ; WX 502 ; N quotedblleft ; B 97 546 406 740 ;
+C 171 ; WX 425 ; N guillemotleft ; B 40 81 386 481 ;
+C 172 ; WX 251 ; N guilsinglleft ; B 40 81 212 481 ;
+C 173 ; WX 251 ; N guilsinglright ; B 39 81 211 481 ;
+C 174 ; WX 487 ; N fi ; B 19 0 422 753 ;
+C 175 ; WX 485 ; N fl ; B 19 0 420 753 ;
+C 177 ; WX 500 ; N endash ; B 35 248 465 315 ;
+C 178 ; WX 553 ; N dagger ; B 59 -133 493 740 ;
+C 179 ; WX 553 ; N daggerdbl ; B 59 -133 493 740 ;
+C 180 ; WX 277 ; N periodcentered ; B 102 190 176 316 ;
+C 182 ; WX 564 ; N paragraph ; B 22 -110 551 740 ;
+C 183 ; WX 606 ; N bullet ; B 150 222 455 532 ;
+C 184 ; WX 354 ; N quotesinglbase ; B 89 -68 251 126 ;
+C 185 ; WX 502 ; N quotedblbase ; B 89 -68 399 126 ;
+C 186 ; WX 484 ; N quotedblright ; B 96 546 405 740 ;
+C 187 ; WX 425 ; N guillemotright ; B 39 81 385 481 ;
+C 188 ; WX 1000 ; N ellipsis ; B 130 0 870 126 ;
+C 189 ; WX 1174 ; N perthousand ; B 25 -13 1148 751 ;
+C 191 ; WX 591 ; N questiondown ; B 65 -205 527 548 ;
+C 193 ; WX 378 ; N grave ; B 69 619 300 786 ;
+C 194 ; WX 375 ; N acute ; B 78 619 309 786 ;
+C 195 ; WX 502 ; N circumflex ; B 74 639 428 764 ;
+C 196 ; WX 439 ; N tilde ; B 47 651 392 754 ;
+C 197 ; WX 485 ; N macron ; B 73 669 411 736 ;
+C 198 ; WX 453 ; N breve ; B 52 651 401 754 ;
+C 199 ; WX 222 ; N dotaccent ; B 74 639 148 765 ;
+C 200 ; WX 369 ; N dieresis ; B 73 639 295 765 ;
+C 202 ; WX 332 ; N ring ; B 62 600 269 807 ;
+C 203 ; WX 324 ; N cedilla ; B 79 -222 254 3 ;
+C 205 ; WX 552 ; N hungarumlaut ; B 109 605 486 786 ;
+C 206 ; WX 302 ; N ogonek ; B 73 -191 228 0 ;
+C 207 ; WX 502 ; N caron ; B 68 639 423 764 ;
+C 208 ; WX 1000 ; N emdash ; B 35 248 965 315 ;
+C 225 ; WX 992 ; N AE ; B -20 0 907 740 ;
+C 227 ; WX 369 ; N ordfeminine ; B -3 407 356 753 ;
+C 232 ; WX 517 ; N Lslash ; B 59 0 517 740 ;
+C 233 ; WX 868 ; N Oslash ; B 43 -83 826 819 ;
+C 234 ; WX 1194 ; N OE ; B 45 -13 1142 753 ;
+C 235 ; WX 369 ; N ordmasculine ; B 12 407 356 753 ;
+C 241 ; WX 1157 ; N ae ; B 34 -13 1113 561 ;
+C 245 ; WX 200 ; N dotlessi ; B 65 0 135 547 ;
+C 248 ; WX 300 ; N lslash ; B 43 0 259 740 ;
+C 249 ; WX 653 ; N oslash ; B 41 -64 613 614 ;
+C 250 ; WX 1137 ; N oe ; B 34 -13 1104 561 ;
+C 251 ; WX 554 ; N germandbls ; B 61 -13 525 753 ;
+C -1 ; WX 226 ; N Idieresis ; B 2 0 224 928 ;
+C -1 ; WX 650 ; N eacute ; B 38 -13 608 786 ;
+C -1 ; WX 683 ; N abreve ; B 42 -13 621 754 ;
+C -1 ; WX 608 ; N uhungarumlaut ; B 62 -13 541 786 ;
+C -1 ; WX 650 ; N ecaron ; B 38 -13 608 764 ;
+C -1 ; WX 592 ; N Ydieresis ; B 1 0 592 928 ;
+C -1 ; WX 606 ; N divide ; B 51 -13 555 519 ;
+C -1 ; WX 592 ; N Yacute ; B 1 0 592 949 ;
+C -1 ; WX 740 ; N Acircumflex ; B 12 0 729 927 ;
+C -1 ; WX 683 ; N aacute ; B 42 -13 621 786 ;
+C -1 ; WX 655 ; N Ucircumflex ; B 75 -13 579 927 ;
+C -1 ; WX 536 ; N yacute ; B 15 -192 523 786 ;
+C -1 ; WX 388 ; N scommaaccent ; B 24 -222 364 561 ;
+C -1 ; WX 650 ; N ecircumflex ; B 38 -13 608 764 ;
+C -1 ; WX 655 ; N Uring ; B 75 -13 579 955 ;
+C -1 ; WX 655 ; N Udieresis ; B 75 -13 579 928 ;
+C -1 ; WX 683 ; N aogonek ; B 42 -191 634 561 ;
+C -1 ; WX 655 ; N Uacute ; B 75 -13 579 949 ;
+C -1 ; WX 608 ; N uogonek ; B 62 -191 558 547 ;
+C -1 ; WX 536 ; N Edieresis ; B 70 0 475 928 ;
+C -1 ; WX 790 ; N Dcroat ; B 40 0 739 740 ;
+C -1 ; WX 250 ; N commaaccent ; B 23 -222 169 -54 ;
+C -1 ; WX 747 ; N copyright ; B -9 -12 755 752 ;
+C -1 ; WX 536 ; N Emacron ; B 70 0 475 899 ;
+C -1 ; WX 647 ; N ccaron ; B 41 -13 607 764 ;
+C -1 ; WX 683 ; N aring ; B 42 -13 621 807 ;
+C -1 ; WX 740 ; N Ncommaaccent ; B 75 -202 664 740 ;
+C -1 ; WX 200 ; N lacute ; B 20 0 251 949 ;
+C -1 ; WX 683 ; N agrave ; B 42 -13 621 786 ;
+C -1 ; WX 426 ; N Tcommaaccent ; B 6 -222 419 740 ;
+C -1 ; WX 813 ; N Cacute ; B 43 -13 771 949 ;
+C -1 ; WX 683 ; N atilde ; B 42 -13 621 754 ;
+C -1 ; WX 536 ; N Edotaccent ; B 70 0 475 928 ;
+C -1 ; WX 388 ; N scaron ; B 11 -13 366 764 ;
+C -1 ; WX 388 ; N scedilla ; B 24 -222 364 561 ;
+C -1 ; WX 200 ; N iacute ; B 30 0 261 786 ;
+C -1 ; WX 471 ; N lozenge ; B 15 0 457 719 ;
+C -1 ; WX 607 ; N Rcaron ; B 70 0 572 927 ;
+C -1 ; WX 872 ; N Gcommaaccent ; B 40 -222 828 753 ;
+C -1 ; WX 608 ; N ucircumflex ; B 62 -13 541 764 ;
+C -1 ; WX 683 ; N acircumflex ; B 42 -13 621 764 ;
+C -1 ; WX 740 ; N Amacron ; B 12 0 729 899 ;
+C -1 ; WX 301 ; N rcaron ; B -3 0 352 764 ;
+C -1 ; WX 647 ; N ccedilla ; B 41 -222 607 561 ;
+C -1 ; WX 480 ; N Zdotaccent ; B 12 0 470 928 ;
+C -1 ; WX 592 ; N Thorn ; B 60 0 549 740 ;
+C -1 ; WX 869 ; N Omacron ; B 43 -13 826 899 ;
+C -1 ; WX 607 ; N Racute ; B 70 0 572 949 ;
+C -1 ; WX 498 ; N Sacute ; B 22 -13 473 949 ;
+C -1 ; WX 755 ; N dcaron ; B 39 -13 792 740 ;
+C -1 ; WX 655 ; N Umacron ; B 75 -13 579 899 ;
+C -1 ; WX 608 ; N uring ; B 62 -13 541 807 ;
+C -1 ; WX 332 ; N threesuperior ; B 18 289 318 747 ;
+C -1 ; WX 869 ; N Ograve ; B 43 -13 826 949 ;
+C -1 ; WX 740 ; N Agrave ; B 12 0 729 949 ;
+C -1 ; WX 740 ; N Abreve ; B 12 0 729 917 ;
+C -1 ; WX 606 ; N multiply ; B 74 24 533 482 ;
+C -1 ; WX 608 ; N uacute ; B 62 -13 541 786 ;
+C -1 ; WX 426 ; N Tcaron ; B 6 0 419 927 ;
+C -1 ; WX 476 ; N partialdiff ; B 22 -38 454 704 ;
+C -1 ; WX 536 ; N ydieresis ; B 15 -192 523 765 ;
+C -1 ; WX 740 ; N Nacute ; B 75 0 664 949 ;
+C -1 ; WX 200 ; N icircumflex ; B -77 0 277 764 ;
+C -1 ; WX 536 ; N Ecircumflex ; B 70 0 475 927 ;
+C -1 ; WX 683 ; N adieresis ; B 42 -13 621 765 ;
+C -1 ; WX 650 ; N edieresis ; B 38 -13 608 765 ;
+C -1 ; WX 647 ; N cacute ; B 41 -13 607 786 ;
+C -1 ; WX 610 ; N nacute ; B 65 0 546 786 ;
+C -1 ; WX 608 ; N umacron ; B 62 -13 541 736 ;
+C -1 ; WX 740 ; N Ncaron ; B 75 0 664 927 ;
+C -1 ; WX 226 ; N Iacute ; B 43 0 274 949 ;
+C -1 ; WX 606 ; N plusminus ; B 51 -24 555 518 ;
+C -1 ; WX 672 ; N brokenbar ; B 299 -147 373 703 ;
+C -1 ; WX 747 ; N registered ; B -9 -12 755 752 ;
+C -1 ; WX 872 ; N Gbreve ; B 40 -13 828 917 ;
+C -1 ; WX 226 ; N Idotaccent ; B 76 0 150 928 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 536 ; N Egrave ; B 70 0 475 949 ;
+C -1 ; WX 301 ; N racute ; B 65 0 332 786 ;
+C -1 ; WX 655 ; N omacron ; B 42 -13 614 736 ;
+C -1 ; WX 480 ; N Zacute ; B 12 0 470 949 ;
+C -1 ; WX 480 ; N Zcaron ; B 12 0 470 927 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 658 ;
+C -1 ; WX 790 ; N Eth ; B 40 0 739 740 ;
+C -1 ; WX 813 ; N Ccedilla ; B 43 -222 771 752 ;
+C -1 ; WX 200 ; N lcommaaccent ; B -2 -222 144 740 ;
+C -1 ; WX 359 ; N tcaron ; B 14 0 394 780 ;
+C -1 ; WX 650 ; N eogonek ; B 38 -191 608 561 ;
+C -1 ; WX 655 ; N Uogonek ; B 75 -191 579 740 ;
+C -1 ; WX 740 ; N Aacute ; B 12 0 729 949 ;
+C -1 ; WX 740 ; N Adieresis ; B 12 0 729 928 ;
+C -1 ; WX 650 ; N egrave ; B 38 -13 608 786 ;
+C -1 ; WX 425 ; N zacute ; B 10 0 415 786 ;
+C -1 ; WX 200 ; N iogonek ; B 11 -191 166 740 ;
+C -1 ; WX 869 ; N Oacute ; B 43 -13 826 949 ;
+C -1 ; WX 655 ; N oacute ; B 42 -13 614 786 ;
+C -1 ; WX 683 ; N amacron ; B 42 -13 621 736 ;
+C -1 ; WX 388 ; N sacute ; B 24 -13 364 786 ;
+C -1 ; WX 200 ; N idieresis ; B -11 0 211 765 ;
+C -1 ; WX 869 ; N Ocircumflex ; B 43 -13 826 927 ;
+C -1 ; WX 655 ; N Ugrave ; B 75 -13 579 949 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 682 ; N thorn ; B 64 -192 643 740 ;
+C -1 ; WX 332 ; N twosuperior ; B 19 296 318 747 ;
+C -1 ; WX 869 ; N Odieresis ; B 43 -13 826 928 ;
+C -1 ; WX 608 ; N mu ; B 80 -184 527 547 ;
+C -1 ; WX 200 ; N igrave ; B -60 0 171 786 ;
+C -1 ; WX 655 ; N ohungarumlaut ; B 42 -13 614 786 ;
+C -1 ; WX 536 ; N Eogonek ; B 70 -191 475 740 ;
+C -1 ; WX 685 ; N dcroat ; B 39 -13 680 740 ;
+C -1 ; WX 831 ; N threequarters ; B 46 0 784 747 ;
+C -1 ; WX 498 ; N Scedilla ; B 22 -222 473 753 ;
+C -1 ; WX 260 ; N lcaron ; B 65 0 309 740 ;
+C -1 ; WX 591 ; N Kcommaaccent ; B 81 -202 591 740 ;
+C -1 ; WX 462 ; N Lacute ; B 82 0 462 949 ;
+C -1 ; WX 1000 ; N trademark ; B 9 296 816 740 ;
+C -1 ; WX 650 ; N edotaccent ; B 38 -13 608 765 ;
+C -1 ; WX 226 ; N Igrave ; B -47 0 184 949 ;
+C -1 ; WX 226 ; N Imacron ; B -31 0 256 899 ;
+C -1 ; WX 462 ; N Lcaron ; B 82 0 462 740 ;
+C -1 ; WX 831 ; N onehalf ; B 81 0 750 740 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 658 ;
+C -1 ; WX 655 ; N ocircumflex ; B 42 -13 614 764 ;
+C -1 ; WX 610 ; N ntilde ; B 65 0 546 754 ;
+C -1 ; WX 655 ; N Uhungarumlaut ; B 75 -13 579 949 ;
+C -1 ; WX 536 ; N Eacute ; B 70 0 475 949 ;
+C -1 ; WX 650 ; N emacron ; B 38 -13 608 736 ;
+C -1 ; WX 673 ; N gbreve ; B 37 -215 606 754 ;
+C -1 ; WX 831 ; N onequarter ; B 100 0 729 740 ;
+C -1 ; WX 498 ; N Scaron ; B 22 -13 473 927 ;
+C -1 ; WX 498 ; N Scommaaccent ; B 22 -222 473 753 ;
+C -1 ; WX 869 ; N Ohungarumlaut ; B 43 -13 826 949 ;
+C -1 ; WX 400 ; N degree ; B 56 421 344 709 ;
+C -1 ; WX 655 ; N ograve ; B 42 -13 614 786 ;
+C -1 ; WX 813 ; N Ccaron ; B 43 -13 771 927 ;
+C -1 ; WX 608 ; N ugrave ; B 62 -13 541 786 ;
+C -1 ; WX 453 ; N radical ; B 7 -58 447 756 ;
+C -1 ; WX 744 ; N Dcaron ; B 74 0 699 927 ;
+C -1 ; WX 301 ; N rcommaaccent ; B 8 -222 291 561 ;
+C -1 ; WX 740 ; N Ntilde ; B 75 0 664 917 ;
+C -1 ; WX 655 ; N otilde ; B 42 -13 614 754 ;
+C -1 ; WX 607 ; N Rcommaaccent ; B 70 -202 572 740 ;
+C -1 ; WX 462 ; N Lcommaaccent ; B 82 -222 462 740 ;
+C -1 ; WX 740 ; N Atilde ; B 12 0 729 917 ;
+C -1 ; WX 740 ; N Aogonek ; B 12 -191 751 740 ;
+C -1 ; WX 740 ; N Aring ; B 12 0 729 955 ;
+C -1 ; WX 869 ; N Otilde ; B 43 -13 826 917 ;
+C -1 ; WX 425 ; N zdotaccent ; B 10 0 415 765 ;
+C -1 ; WX 536 ; N Ecaron ; B 70 0 475 927 ;
+C -1 ; WX 226 ; N Iogonek ; B 21 -191 176 740 ;
+C -1 ; WX 502 ; N kcommaaccent ; B 70 -202 498 740 ;
+C -1 ; WX 606 ; N minus ; B 51 219 555 287 ;
+C -1 ; WX 226 ; N Icircumflex ; B -64 0 290 927 ;
+C -1 ; WX 610 ; N ncaron ; B 65 0 546 764 ;
+C -1 ; WX 339 ; N tcommaaccent ; B 14 -222 330 740 ;
+C -1 ; WX 606 ; N logicalnot ; B 51 109 555 388 ;
+C -1 ; WX 655 ; N odieresis ; B 42 -13 614 765 ;
+C -1 ; WX 608 ; N udieresis ; B 62 -13 541 765 ;
+C -1 ; WX 549 ; N notequal ; B 12 -29 537 541 ;
+C -1 ; WX 673 ; N gcommaaccent ; B 37 -215 606 786 ;
+C -1 ; WX 655 ; N eth ; B 42 -12 614 753 ;
+C -1 ; WX 425 ; N zcaron ; B 10 0 415 764 ;
+C -1 ; WX 610 ; N ncommaaccent ; B 65 -202 546 561 ;
+C -1 ; WX 332 ; N onesuperior ; B 63 296 198 740 ;
+C -1 ; WX 200 ; N imacron ; B -44 0 243 736 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 922
+KPX A T -81
+KPX A Tcaron -81
+KPX A Tcommaaccent -81
+KPX A V -122
+KPX A W -95
+KPX A Y -122
+KPX A Yacute -122
+KPX A Ydieresis -122
+KPX A v -73
+KPX A w -65
+KPX A y -72
+KPX A yacute -72
+KPX A ydieresis -72
+KPX Aacute T -81
+KPX Aacute Tcaron -81
+KPX Aacute Tcommaaccent -81
+KPX Aacute V -122
+KPX Aacute W -95
+KPX Aacute Y -122
+KPX Aacute Yacute -122
+KPX Aacute Ydieresis -122
+KPX Aacute v -73
+KPX Aacute w -65
+KPX Aacute y -72
+KPX Aacute yacute -72
+KPX Aacute ydieresis -72
+KPX Abreve T -81
+KPX Abreve Tcaron -81
+KPX Abreve Tcommaaccent -81
+KPX Abreve V -122
+KPX Abreve W -95
+KPX Abreve Y -122
+KPX Abreve Yacute -122
+KPX Abreve Ydieresis -122
+KPX Abreve v -73
+KPX Abreve w -65
+KPX Abreve y -72
+KPX Abreve yacute -72
+KPX Abreve ydieresis -72
+KPX Acircumflex T -81
+KPX Acircumflex Tcaron -81
+KPX Acircumflex Tcommaaccent -81
+KPX Acircumflex V -122
+KPX Acircumflex W -95
+KPX Acircumflex Y -122
+KPX Acircumflex Yacute -122
+KPX Acircumflex Ydieresis -122
+KPX Acircumflex v -73
+KPX Acircumflex w -65
+KPX Acircumflex y -72
+KPX Acircumflex yacute -72
+KPX Acircumflex ydieresis -72
+KPX Adieresis T -81
+KPX Adieresis Tcaron -81
+KPX Adieresis Tcommaaccent -81
+KPX Adieresis V -122
+KPX Adieresis W -95
+KPX Adieresis Y -122
+KPX Adieresis Yacute -122
+KPX Adieresis Ydieresis -122
+KPX Adieresis v -73
+KPX Adieresis w -65
+KPX Adieresis y -72
+KPX Adieresis yacute -72
+KPX Adieresis ydieresis -72
+KPX Agrave T -81
+KPX Agrave Tcaron -81
+KPX Agrave Tcommaaccent -81
+KPX Agrave V -122
+KPX Agrave W -95
+KPX Agrave Y -122
+KPX Agrave Yacute -122
+KPX Agrave Ydieresis -122
+KPX Agrave v -73
+KPX Agrave w -65
+KPX Agrave y -72
+KPX Agrave yacute -72
+KPX Agrave ydieresis -72
+KPX Amacron T -81
+KPX Amacron Tcaron -81
+KPX Amacron Tcommaaccent -81
+KPX Amacron V -122
+KPX Amacron W -95
+KPX Amacron Y -122
+KPX Amacron Yacute -122
+KPX Amacron Ydieresis -122
+KPX Amacron v -73
+KPX Amacron w -65
+KPX Amacron y -72
+KPX Amacron yacute -72
+KPX Amacron ydieresis -72
+KPX Aogonek T -81
+KPX Aogonek Tcaron -81
+KPX Aogonek Tcommaaccent -81
+KPX Aogonek V -122
+KPX Aogonek W -95
+KPX Aogonek Y -122
+KPX Aogonek Yacute -122
+KPX Aogonek Ydieresis -122
+KPX Aogonek v -73
+KPX Aogonek w -65
+KPX Aogonek y -72
+KPX Aogonek yacute -72
+KPX Aogonek ydieresis -72
+KPX Aring T -81
+KPX Aring Tcaron -81
+KPX Aring Tcommaaccent -81
+KPX Aring V -122
+KPX Aring W -95
+KPX Aring Y -122
+KPX Aring Yacute -122
+KPX Aring Ydieresis -122
+KPX Aring v -73
+KPX Aring w -65
+KPX Aring y -72
+KPX Aring yacute -72
+KPX Aring ydieresis -72
+KPX Atilde T -81
+KPX Atilde Tcaron -81
+KPX Atilde Tcommaaccent -81
+KPX Atilde V -122
+KPX Atilde W -95
+KPX Atilde Y -122
+KPX Atilde Yacute -122
+KPX Atilde Ydieresis -122
+KPX Atilde v -73
+KPX Atilde w -65
+KPX Atilde y -72
+KPX Atilde yacute -72
+KPX Atilde ydieresis -72
+KPX F A -60
+KPX F Aacute -60
+KPX F Abreve -60
+KPX F Acircumflex -60
+KPX F Adieresis -60
+KPX F Agrave -60
+KPX F Amacron -60
+KPX F Aogonek -60
+KPX F Aring -60
+KPX F Atilde -60
+KPX F comma -122
+KPX F period -79
+KPX L T -46
+KPX L Tcaron -46
+KPX L Tcommaaccent -46
+KPX L V -113
+KPX L W -67
+KPX L Y -91
+KPX L Yacute -91
+KPX L Ydieresis -91
+KPX L y -23
+KPX L yacute -23
+KPX L ydieresis -23
+KPX Lacute T -46
+KPX Lacute Tcaron -46
+KPX Lacute Tcommaaccent -46
+KPX Lacute V -113
+KPX Lacute W -67
+KPX Lacute Y -91
+KPX Lacute Yacute -91
+KPX Lacute Ydieresis -91
+KPX Lacute y -23
+KPX Lacute yacute -23
+KPX Lacute ydieresis -23
+KPX Lcaron y -23
+KPX Lcaron yacute -23
+KPX Lcaron ydieresis -23
+KPX Lcommaaccent T -46
+KPX Lcommaaccent Tcaron -46
+KPX Lcommaaccent Tcommaaccent -46
+KPX Lcommaaccent V -113
+KPX Lcommaaccent W -67
+KPX Lcommaaccent Y -91
+KPX Lcommaaccent Yacute -91
+KPX Lcommaaccent Ydieresis -91
+KPX Lcommaaccent y -23
+KPX Lcommaaccent yacute -23
+KPX Lcommaaccent ydieresis -23
+KPX Lslash T -46
+KPX Lslash Tcaron -46
+KPX Lslash Tcommaaccent -46
+KPX Lslash V -113
+KPX Lslash W -67
+KPX Lslash Y -91
+KPX Lslash Yacute -91
+KPX Lslash Ydieresis -91
+KPX Lslash y -23
+KPX Lslash yacute -23
+KPX Lslash ydieresis -23
+KPX P A -74
+KPX P Aacute -74
+KPX P Abreve -74
+KPX P Acircumflex -74
+KPX P Adieresis -74
+KPX P Agrave -74
+KPX P Amacron -74
+KPX P Aogonek -74
+KPX P Aring -74
+KPX P Atilde -74
+KPX P comma -123
+KPX P period -91
+KPX R T 6
+KPX R Tcaron 6
+KPX R Tcommaaccent 6
+KPX R V -39
+KPX R W 2
+KPX R Y -20
+KPX R Yacute -20
+KPX R Ydieresis -20
+KPX R y 32
+KPX R yacute 32
+KPX R ydieresis 32
+KPX Racute T 6
+KPX Racute Tcaron 6
+KPX Racute Tcommaaccent 6
+KPX Racute V -39
+KPX Racute W 2
+KPX Racute Y -20
+KPX Racute Yacute -20
+KPX Racute Ydieresis -20
+KPX Racute y 32
+KPX Racute yacute 32
+KPX Racute ydieresis 32
+KPX Rcaron T 6
+KPX Rcaron Tcaron 6
+KPX Rcaron Tcommaaccent 6
+KPX Rcaron V -39
+KPX Rcaron W 2
+KPX Rcaron Y -20
+KPX Rcaron Yacute -20
+KPX Rcaron Ydieresis -20
+KPX Rcaron y 32
+KPX Rcaron yacute 32
+KPX Rcaron ydieresis 32
+KPX Rcommaaccent T 6
+KPX Rcommaaccent Tcaron 6
+KPX Rcommaaccent Tcommaaccent 6
+KPX Rcommaaccent V -39
+KPX Rcommaaccent W 2
+KPX Rcommaaccent Y -20
+KPX Rcommaaccent Yacute -20
+KPX Rcommaaccent Ydieresis -20
+KPX Rcommaaccent y 32
+KPX Rcommaaccent yacute 32
+KPX Rcommaaccent ydieresis 32
+KPX T A -81
+KPX T Aacute -81
+KPX T Abreve -81
+KPX T Acircumflex -81
+KPX T Adieresis -81
+KPX T Agrave -81
+KPX T Amacron -81
+KPX T Aogonek -81
+KPX T Aring -81
+KPX T Atilde -81
+KPX T a -52
+KPX T aacute -52
+KPX T abreve -52
+KPX T acircumflex -52
+KPX T adieresis -52
+KPX T agrave -52
+KPX T amacron -52
+KPX T aogonek -52
+KPX T aring -52
+KPX T atilde -52
+KPX T c -51
+KPX T cacute -51
+KPX T ccaron -51
+KPX T ccedilla -51
+KPX T colon 3
+KPX T comma -102
+KPX T e -49
+KPX T eacute -49
+KPX T ecaron -49
+KPX T ecircumflex -49
+KPX T edieresis -49
+KPX T edotaccent -49
+KPX T egrave -49
+KPX T emacron -49
+KPX T eogonek -49
+KPX T i 31
+KPX T iacute 31
+KPX T icircumflex 31
+KPX T idieresis 31
+KPX T igrave 31
+KPX T imacron 31
+KPX T iogonek 31
+KPX T o -49
+KPX T oacute -49
+KPX T ocircumflex -49
+KPX T odieresis -49
+KPX T ograve -49
+KPX T ohungarumlaut -49
+KPX T omacron -49
+KPX T oslash -49
+KPX T otilde -49
+KPX T period -71
+KPX T r -30
+KPX T racute -30
+KPX T rcaron -30
+KPX T rcommaaccent -30
+KPX T s -23
+KPX T sacute -23
+KPX T scedilla -23
+KPX T scommaaccent -23
+KPX T semicolon -29
+KPX T u -46
+KPX T uacute -46
+KPX T ucircumflex -46
+KPX T udieresis -46
+KPX T ugrave -46
+KPX T uhungarumlaut -46
+KPX T umacron -46
+KPX T uogonek -46
+KPX T uring -46
+KPX T w 7
+KPX T y 5
+KPX T yacute 5
+KPX T ydieresis 5
+KPX Tcaron A -81
+KPX Tcaron Aacute -81
+KPX Tcaron Abreve -81
+KPX Tcaron Acircumflex -81
+KPX Tcaron Adieresis -81
+KPX Tcaron Agrave -81
+KPX Tcaron Amacron -81
+KPX Tcaron Aogonek -81
+KPX Tcaron Aring -81
+KPX Tcaron Atilde -81
+KPX Tcaron a -52
+KPX Tcaron aacute -52
+KPX Tcaron abreve -52
+KPX Tcaron acircumflex -52
+KPX Tcaron adieresis -52
+KPX Tcaron agrave -52
+KPX Tcaron amacron -52
+KPX Tcaron aogonek -52
+KPX Tcaron aring -52
+KPX Tcaron atilde -52
+KPX Tcaron c -51
+KPX Tcaron cacute -51
+KPX Tcaron ccaron -51
+KPX Tcaron ccedilla -51
+KPX Tcaron colon 3
+KPX Tcaron comma -102
+KPX Tcaron e -49
+KPX Tcaron eacute -49
+KPX Tcaron ecaron -49
+KPX Tcaron ecircumflex -49
+KPX Tcaron edieresis -49
+KPX Tcaron edotaccent -49
+KPX Tcaron egrave -49
+KPX Tcaron emacron -49
+KPX Tcaron eogonek -49
+KPX Tcaron i 31
+KPX Tcaron iacute 31
+KPX Tcaron iogonek 31
+KPX Tcaron o -49
+KPX Tcaron oacute -49
+KPX Tcaron ocircumflex -49
+KPX Tcaron odieresis -49
+KPX Tcaron ograve -49
+KPX Tcaron ohungarumlaut -49
+KPX Tcaron omacron -49
+KPX Tcaron oslash -49
+KPX Tcaron otilde -49
+KPX Tcaron period -71
+KPX Tcaron r -30
+KPX Tcaron racute -30
+KPX Tcaron rcaron -30
+KPX Tcaron rcommaaccent -30
+KPX Tcaron s -23
+KPX Tcaron sacute -23
+KPX Tcaron scaron -23
+KPX Tcaron scedilla -23
+KPX Tcaron scommaaccent -23
+KPX Tcaron semicolon -29
+KPX Tcaron u -46
+KPX Tcaron uacute -46
+KPX Tcaron ucircumflex -46
+KPX Tcaron udieresis -46
+KPX Tcaron ugrave -46
+KPX Tcaron uhungarumlaut -46
+KPX Tcaron umacron -46
+KPX Tcaron uogonek -46
+KPX Tcaron uring -46
+KPX Tcaron w 7
+KPX Tcaron y 5
+KPX Tcaron yacute 5
+KPX Tcaron ydieresis 5
+KPX Tcommaaccent A -81
+KPX Tcommaaccent Aacute -81
+KPX Tcommaaccent Abreve -81
+KPX Tcommaaccent Acircumflex -81
+KPX Tcommaaccent Adieresis -81
+KPX Tcommaaccent Agrave -81
+KPX Tcommaaccent Amacron -81
+KPX Tcommaaccent Aogonek -81
+KPX Tcommaaccent Aring -81
+KPX Tcommaaccent Atilde -81
+KPX Tcommaaccent a -52
+KPX Tcommaaccent aacute -52
+KPX Tcommaaccent abreve -52
+KPX Tcommaaccent acircumflex -52
+KPX Tcommaaccent adieresis -52
+KPX Tcommaaccent agrave -52
+KPX Tcommaaccent amacron -52
+KPX Tcommaaccent aogonek -52
+KPX Tcommaaccent aring -52
+KPX Tcommaaccent atilde -52
+KPX Tcommaaccent c -51
+KPX Tcommaaccent cacute -51
+KPX Tcommaaccent ccaron -51
+KPX Tcommaaccent ccedilla -51
+KPX Tcommaaccent colon 3
+KPX Tcommaaccent comma -102
+KPX Tcommaaccent e -49
+KPX Tcommaaccent eacute -49
+KPX Tcommaaccent ecaron -49
+KPX Tcommaaccent ecircumflex -49
+KPX Tcommaaccent edieresis -49
+KPX Tcommaaccent edotaccent -49
+KPX Tcommaaccent egrave -49
+KPX Tcommaaccent emacron -49
+KPX Tcommaaccent eogonek -49
+KPX Tcommaaccent i 31
+KPX Tcommaaccent iacute 31
+KPX Tcommaaccent iogonek 31
+KPX Tcommaaccent o -49
+KPX Tcommaaccent oacute -49
+KPX Tcommaaccent ocircumflex -49
+KPX Tcommaaccent odieresis -49
+KPX Tcommaaccent ograve -49
+KPX Tcommaaccent ohungarumlaut -49
+KPX Tcommaaccent omacron -49
+KPX Tcommaaccent oslash -49
+KPX Tcommaaccent otilde -49
+KPX Tcommaaccent period -71
+KPX Tcommaaccent r -30
+KPX Tcommaaccent racute -30
+KPX Tcommaaccent rcaron -30
+KPX Tcommaaccent rcommaaccent -30
+KPX Tcommaaccent s -23
+KPX Tcommaaccent sacute -23
+KPX Tcommaaccent scedilla -23
+KPX Tcommaaccent scommaaccent -23
+KPX Tcommaaccent semicolon -29
+KPX Tcommaaccent u -46
+KPX Tcommaaccent uacute -46
+KPX Tcommaaccent ucircumflex -46
+KPX Tcommaaccent udieresis -46
+KPX Tcommaaccent ugrave -46
+KPX Tcommaaccent uhungarumlaut -46
+KPX Tcommaaccent umacron -46
+KPX Tcommaaccent uogonek -46
+KPX Tcommaaccent uring -46
+KPX Tcommaaccent w 7
+KPX Tcommaaccent y 5
+KPX Tcommaaccent yacute 5
+KPX Tcommaaccent ydieresis 5
+KPX V A -122
+KPX V Aacute -122
+KPX V Abreve -122
+KPX V Acircumflex -122
+KPX V Adieresis -122
+KPX V Agrave -122
+KPX V Amacron -122
+KPX V Aogonek -122
+KPX V Aring -122
+KPX V Atilde -122
+KPX V a -104
+KPX V aacute -104
+KPX V abreve -104
+KPX V acircumflex -104
+KPX V adieresis -104
+KPX V agrave -104
+KPX V amacron -104
+KPX V aogonek -104
+KPX V aring -104
+KPX V atilde -104
+KPX V colon -1
+KPX V comma -106
+KPX V e -101
+KPX V eacute -101
+KPX V ecaron -101
+KPX V ecircumflex -101
+KPX V edieresis -101
+KPX V edotaccent -101
+KPX V egrave -101
+KPX V emacron -101
+KPX V eogonek -101
+KPX V i 5
+KPX V iacute 5
+KPX V iogonek 5
+KPX V o -101
+KPX V oacute -101
+KPX V ocircumflex -101
+KPX V odieresis -101
+KPX V ograve -101
+KPX V ohungarumlaut -101
+KPX V omacron -101
+KPX V oslash -101
+KPX V otilde -101
+KPX V period -75
+KPX V r -40
+KPX V racute -40
+KPX V rcaron -40
+KPX V rcommaaccent -40
+KPX V semicolon -33
+KPX V u -40
+KPX V uacute -40
+KPX V ucircumflex -40
+KPX V udieresis -40
+KPX V ugrave -40
+KPX V uhungarumlaut -40
+KPX V umacron -40
+KPX V uogonek -40
+KPX V uring -40
+KPX V y -25
+KPX V yacute -25
+KPX V ydieresis -25
+KPX W A -73
+KPX W Aacute -73
+KPX W Abreve -73
+KPX W Acircumflex -73
+KPX W Adieresis -73
+KPX W Agrave -73
+KPX W Amacron -73
+KPX W Aogonek -73
+KPX W Aring -73
+KPX W Atilde -73
+KPX W a -50
+KPX W aacute -50
+KPX W abreve -50
+KPX W acircumflex -50
+KPX W adieresis -50
+KPX W agrave -50
+KPX W amacron -50
+KPX W aogonek -50
+KPX W aring -50
+KPX W atilde -50
+KPX W colon -1
+KPX W comma -106
+KPX W e -47
+KPX W eacute -47
+KPX W ecaron -47
+KPX W ecircumflex -47
+KPX W edieresis -47
+KPX W edotaccent -47
+KPX W egrave -47
+KPX W emacron -47
+KPX W eogonek -47
+KPX W i 6
+KPX W iacute 6
+KPX W icircumflex 16
+KPX W idieresis 16
+KPX W igrave 16
+KPX W imacron 16
+KPX W iogonek 6
+KPX W o -46
+KPX W oacute -46
+KPX W ocircumflex -46
+KPX W odieresis -46
+KPX W ograve -46
+KPX W ohungarumlaut -46
+KPX W omacron -46
+KPX W oslash -46
+KPX W otilde -46
+KPX W period -74
+KPX W r -29
+KPX W racute -29
+KPX W rcaron -29
+KPX W rcommaaccent -29
+KPX W semicolon -33
+KPX W u -30
+KPX W uacute -30
+KPX W ucircumflex -30
+KPX W udieresis -30
+KPX W ugrave -30
+KPX W uhungarumlaut -30
+KPX W umacron -30
+KPX W uogonek -30
+KPX W uring -30
+KPX W y -2
+KPX W yacute -2
+KPX W ydieresis -2
+KPX Y A -122
+KPX Y Aacute -122
+KPX Y Abreve -122
+KPX Y Acircumflex -122
+KPX Y Adieresis -122
+KPX Y Agrave -122
+KPX Y Amacron -122
+KPX Y Aogonek -122
+KPX Y Aring -122
+KPX Y Atilde -122
+KPX Y a -93
+KPX Y aacute -93
+KPX Y abreve -93
+KPX Y acircumflex -93
+KPX Y adieresis -93
+KPX Y agrave -93
+KPX Y amacron -93
+KPX Y aogonek -93
+KPX Y aring -93
+KPX Y atilde -93
+KPX Y colon 9
+KPX Y comma -97
+KPX Y e -89
+KPX Y eacute -89
+KPX Y ecaron -89
+KPX Y ecircumflex -89
+KPX Y edieresis -89
+KPX Y edotaccent -89
+KPX Y egrave -89
+KPX Y emacron -89
+KPX Y eogonek -89
+KPX Y i 13
+KPX Y iacute 13
+KPX Y icircumflex 23
+KPX Y idieresis 23
+KPX Y igrave 23
+KPX Y imacron 23
+KPX Y iogonek 13
+KPX Y o -89
+KPX Y oacute -89
+KPX Y ocircumflex -89
+KPX Y odieresis -89
+KPX Y ograve -89
+KPX Y ohungarumlaut -89
+KPX Y omacron -89
+KPX Y oslash -89
+KPX Y otilde -89
+KPX Y p -67
+KPX Y period -65
+KPX Y q -93
+KPX Y semicolon -23
+KPX Y u -69
+KPX Y uacute -69
+KPX Y ucircumflex -69
+KPX Y udieresis -69
+KPX Y ugrave -69
+KPX Y uhungarumlaut -69
+KPX Y umacron -69
+KPX Y uogonek -69
+KPX Y uring -69
+KPX Y v -17
+KPX Yacute A -122
+KPX Yacute Aacute -122
+KPX Yacute Abreve -122
+KPX Yacute Acircumflex -122
+KPX Yacute Adieresis -122
+KPX Yacute Agrave -122
+KPX Yacute Amacron -122
+KPX Yacute Aogonek -122
+KPX Yacute Aring -122
+KPX Yacute Atilde -122
+KPX Yacute a -93
+KPX Yacute aacute -93
+KPX Yacute abreve -93
+KPX Yacute acircumflex -93
+KPX Yacute adieresis -93
+KPX Yacute agrave -93
+KPX Yacute amacron -93
+KPX Yacute aogonek -93
+KPX Yacute aring -93
+KPX Yacute atilde -93
+KPX Yacute colon 9
+KPX Yacute comma -97
+KPX Yacute e -89
+KPX Yacute eacute -89
+KPX Yacute ecaron -89
+KPX Yacute ecircumflex -89
+KPX Yacute edieresis -89
+KPX Yacute edotaccent -89
+KPX Yacute egrave -89
+KPX Yacute emacron -89
+KPX Yacute eogonek -89
+KPX Yacute i 13
+KPX Yacute iacute 13
+KPX Yacute icircumflex 23
+KPX Yacute idieresis 23
+KPX Yacute igrave 23
+KPX Yacute imacron 23
+KPX Yacute iogonek 13
+KPX Yacute o -89
+KPX Yacute oacute -89
+KPX Yacute ocircumflex -89
+KPX Yacute odieresis -89
+KPX Yacute ograve -89
+KPX Yacute ohungarumlaut -89
+KPX Yacute omacron -89
+KPX Yacute oslash -89
+KPX Yacute otilde -89
+KPX Yacute p -67
+KPX Yacute period -65
+KPX Yacute q -93
+KPX Yacute semicolon -23
+KPX Yacute u -69
+KPX Yacute uacute -69
+KPX Yacute ucircumflex -69
+KPX Yacute udieresis -69
+KPX Yacute ugrave -69
+KPX Yacute uhungarumlaut -69
+KPX Yacute umacron -69
+KPX Yacute uogonek -69
+KPX Yacute uring -69
+KPX Yacute v -17
+KPX Ydieresis A -122
+KPX Ydieresis Aacute -122
+KPX Ydieresis Abreve -122
+KPX Ydieresis Acircumflex -122
+KPX Ydieresis Adieresis -122
+KPX Ydieresis Agrave -122
+KPX Ydieresis Amacron -122
+KPX Ydieresis Aogonek -122
+KPX Ydieresis Aring -122
+KPX Ydieresis Atilde -122
+KPX Ydieresis a -93
+KPX Ydieresis aacute -93
+KPX Ydieresis abreve -93
+KPX Ydieresis acircumflex -93
+KPX Ydieresis adieresis -93
+KPX Ydieresis agrave -93
+KPX Ydieresis amacron -93
+KPX Ydieresis aogonek -93
+KPX Ydieresis aring -93
+KPX Ydieresis atilde -93
+KPX Ydieresis colon 9
+KPX Ydieresis comma -97
+KPX Ydieresis e -89
+KPX Ydieresis eacute -89
+KPX Ydieresis ecaron -89
+KPX Ydieresis ecircumflex -89
+KPX Ydieresis edieresis -89
+KPX Ydieresis edotaccent -89
+KPX Ydieresis egrave -89
+KPX Ydieresis emacron -89
+KPX Ydieresis eogonek -89
+KPX Ydieresis i 13
+KPX Ydieresis iacute 13
+KPX Ydieresis icircumflex 23
+KPX Ydieresis idieresis 23
+KPX Ydieresis igrave 23
+KPX Ydieresis imacron 23
+KPX Ydieresis iogonek 13
+KPX Ydieresis o -89
+KPX Ydieresis oacute -89
+KPX Ydieresis ocircumflex -89
+KPX Ydieresis odieresis -89
+KPX Ydieresis ograve -89
+KPX Ydieresis ohungarumlaut -89
+KPX Ydieresis omacron -89
+KPX Ydieresis oslash -89
+KPX Ydieresis otilde -89
+KPX Ydieresis p -67
+KPX Ydieresis period -65
+KPX Ydieresis q -93
+KPX Ydieresis semicolon -23
+KPX Ydieresis u -69
+KPX Ydieresis uacute -69
+KPX Ydieresis ucircumflex -69
+KPX Ydieresis udieresis -69
+KPX Ydieresis ugrave -69
+KPX Ydieresis uhungarumlaut -69
+KPX Ydieresis umacron -69
+KPX Ydieresis uogonek -69
+KPX Ydieresis uring -69
+KPX Ydieresis v -17
+KPX f f 3
+KPX r c -7
+KPX r cacute -7
+KPX r ccaron -7
+KPX r ccedilla -7
+KPX r comma -105
+KPX r d -6
+KPX r dcroat -6
+KPX r e -4
+KPX r eacute -4
+KPX r ecaron -4
+KPX r ecircumflex -4
+KPX r edieresis -4
+KPX r edotaccent -4
+KPX r egrave -4
+KPX r emacron -4
+KPX r eogonek -4
+KPX r f 48
+KPX r g 1
+KPX r gbreve 1
+KPX r gcommaaccent 1
+KPX r h 29
+KPX r m 28
+KPX r n 21
+KPX r nacute 21
+KPX r ncaron 21
+KPX r ncommaaccent 21
+KPX r ntilde 21
+KPX r o -4
+KPX r oacute -4
+KPX r ocircumflex -4
+KPX r odieresis -4
+KPX r ograve -4
+KPX r ohungarumlaut -4
+KPX r omacron -4
+KPX r oslash -4
+KPX r otilde -4
+KPX r period -73
+KPX r q -8
+KPX racute c -7
+KPX racute cacute -7
+KPX racute ccaron -7
+KPX racute ccedilla -7
+KPX racute comma -105
+KPX racute d -6
+KPX racute dcroat -6
+KPX racute e -4
+KPX racute eacute -4
+KPX racute ecaron -4
+KPX racute ecircumflex -4
+KPX racute edieresis -4
+KPX racute edotaccent -4
+KPX racute egrave -4
+KPX racute emacron -4
+KPX racute eogonek -4
+KPX racute f 48
+KPX racute g 1
+KPX racute gbreve 1
+KPX racute gcommaaccent 1
+KPX racute h 29
+KPX racute m 28
+KPX racute n 21
+KPX racute nacute 21
+KPX racute ncaron 21
+KPX racute ncommaaccent 21
+KPX racute ntilde 21
+KPX racute o -4
+KPX racute oacute -4
+KPX racute ocircumflex -4
+KPX racute odieresis -4
+KPX racute ograve -4
+KPX racute ohungarumlaut -4
+KPX racute omacron -4
+KPX racute oslash -4
+KPX racute otilde -4
+KPX racute period -73
+KPX racute q -8
+KPX rcaron c -7
+KPX rcaron cacute -7
+KPX rcaron ccaron -7
+KPX rcaron ccedilla -7
+KPX rcaron comma -105
+KPX rcaron d -6
+KPX rcaron dcroat -6
+KPX rcaron e -4
+KPX rcaron eacute -4
+KPX rcaron ecaron -4
+KPX rcaron ecircumflex -4
+KPX rcaron edieresis -4
+KPX rcaron edotaccent -4
+KPX rcaron egrave -4
+KPX rcaron emacron -4
+KPX rcaron eogonek -4
+KPX rcaron f 48
+KPX rcaron g 1
+KPX rcaron gbreve 1
+KPX rcaron gcommaaccent 1
+KPX rcaron h 29
+KPX rcaron m 28
+KPX rcaron n 21
+KPX rcaron nacute 21
+KPX rcaron ncaron 21
+KPX rcaron ncommaaccent 21
+KPX rcaron ntilde 21
+KPX rcaron o -4
+KPX rcaron oacute -4
+KPX rcaron ocircumflex -4
+KPX rcaron odieresis -4
+KPX rcaron ograve -4
+KPX rcaron ohungarumlaut -4
+KPX rcaron omacron -4
+KPX rcaron oslash -4
+KPX rcaron otilde -4
+KPX rcaron period -73
+KPX rcaron q -8
+KPX rcommaaccent c -7
+KPX rcommaaccent cacute -7
+KPX rcommaaccent ccaron -7
+KPX rcommaaccent ccedilla -7
+KPX rcommaaccent comma -105
+KPX rcommaaccent d -6
+KPX rcommaaccent dcroat -6
+KPX rcommaaccent e -4
+KPX rcommaaccent eacute -4
+KPX rcommaaccent ecaron -4
+KPX rcommaaccent ecircumflex -4
+KPX rcommaaccent edieresis -4
+KPX rcommaaccent edotaccent -4
+KPX rcommaaccent egrave -4
+KPX rcommaaccent emacron -4
+KPX rcommaaccent eogonek -4
+KPX rcommaaccent f 48
+KPX rcommaaccent g 1
+KPX rcommaaccent gbreve 1
+KPX rcommaaccent gcommaaccent 1
+KPX rcommaaccent h 29
+KPX rcommaaccent m 28
+KPX rcommaaccent n 21
+KPX rcommaaccent nacute 21
+KPX rcommaaccent ncaron 21
+KPX rcommaaccent ncommaaccent 21
+KPX rcommaaccent ntilde 21
+KPX rcommaaccent o -4
+KPX rcommaaccent oacute -4
+KPX rcommaaccent ocircumflex -4
+KPX rcommaaccent odieresis -4
+KPX rcommaaccent ograve -4
+KPX rcommaaccent ohungarumlaut -4
+KPX rcommaaccent omacron -4
+KPX rcommaaccent oslash -4
+KPX rcommaaccent otilde -4
+KPX rcommaaccent period -73
+KPX rcommaaccent q -8
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/ITCAvantGarde-BookOblique.afm b/test/user-template/user/psprint/fontmetric/ITCAvantGarde-BookOblique.afm
new file mode 100644
index 000000000000..5d5ef8396409
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/ITCAvantGarde-BookOblique.afm
@@ -0,0 +1,1266 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 14:07:08 1997
+Comment UniqueID 43084
+Comment VMusage 11964 62330
+FontName AvantGarde-BookOblique
+FullName ITC Avant Garde Gothic Book Oblique
+FamilyName ITC Avant Garde Gothic
+Weight Book
+ItalicAngle -10.5
+IsFixedPitch false
+FontBBox -113 -222 1279 955
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation.
+EncodingScheme AdobeStandardEncoding
+CapHeight 740
+XHeight 547
+Ascender 740
+Descender -192
+StdHW 63
+StdVW 70
+StartCharMetrics 314
+C 32 ; WX 277 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 295 ; N exclam ; B 111 0 322 740 ;
+C 34 ; WX 309 ; N quotedbl ; B 130 444 410 740 ;
+C 35 ; WX 554 ; N numbersign ; B 71 0 620 740 ;
+C 36 ; WX 554 ; N dollar ; B 107 -70 581 811 ;
+C 37 ; WX 775 ; N percent ; B 124 -13 787 751 ;
+C 38 ; WX 757 ; N ampersand ; B 92 -12 775 753 ;
+C 39 ; WX 351 ; N quoteright ; B 195 546 393 740 ;
+C 40 ; WX 369 ; N parenleft ; B 89 -205 495 757 ;
+C 41 ; WX 369 ; N parenright ; B -24 -205 382 757 ;
+C 42 ; WX 425 ; N asterisk ; B 170 446 479 740 ;
+C 43 ; WX 606 ; N plus ; B 92 0 608 506 ;
+C 44 ; WX 277 ; N comma ; B 2 -67 199 126 ;
+C 45 ; WX 332 ; N hyphen ; B 76 248 360 315 ;
+C 46 ; WX 277 ; N period ; B 102 0 199 126 ;
+C 47 ; WX 437 ; N slash ; B 25 -100 540 740 ;
+C 48 ; WX 554 ; N zero ; B 71 -13 622 753 ;
+C 49 ; WX 554 ; N one ; B 260 0 473 740 ;
+C 50 ; WX 554 ; N two ; B 40 0 615 753 ;
+C 51 ; WX 554 ; N three ; B 73 -13 565 753 ;
+C 52 ; WX 554 ; N four ; B 39 0 598 740 ;
+C 53 ; WX 554 ; N five ; B 69 -13 605 740 ;
+C 54 ; WX 554 ; N six ; B 65 -13 580 739 ;
+C 55 ; WX 554 ; N seven ; B 110 0 628 740 ;
+C 56 ; WX 554 ; N eight ; B 77 -13 580 753 ;
+C 57 ; WX 554 ; N nine ; B 111 0 626 752 ;
+C 58 ; WX 277 ; N colon ; B 102 0 278 548 ;
+C 59 ; WX 277 ; N semicolon ; B 2 -67 278 548 ;
+C 60 ; WX 606 ; N less ; B 87 -8 649 514 ;
+C 61 ; WX 606 ; N equal ; B 73 118 627 388 ;
+C 62 ; WX 606 ; N greater ; B 51 -8 613 514 ;
+C 63 ; WX 591 ; N question ; B 158 0 628 752 ;
+C 64 ; WX 867 ; N at ; B 126 -13 888 753 ;
+C 65 ; WX 740 ; N A ; B 12 0 729 740 ;
+C 66 ; WX 574 ; N B ; B 74 0 606 740 ;
+C 67 ; WX 813 ; N C ; B 105 -13 870 752 ;
+C 68 ; WX 744 ; N D ; B 74 0 773 740 ;
+C 69 ; WX 536 ; N E ; B 70 0 612 740 ;
+C 70 ; WX 485 ; N F ; B 70 0 581 740 ;
+C 71 ; WX 872 ; N G ; B 103 -13 891 753 ;
+C 72 ; WX 683 ; N H ; B 76 0 744 740 ;
+C 73 ; WX 226 ; N I ; B 76 0 287 740 ;
+C 74 ; WX 482 ; N J ; B 37 -13 539 740 ;
+C 75 ; WX 591 ; N K ; B 81 0 728 740 ;
+C 76 ; WX 462 ; N L ; B 82 0 474 740 ;
+C 77 ; WX 919 ; N M ; B 76 0 980 740 ;
+C 78 ; WX 740 ; N N ; B 75 0 801 740 ;
+C 79 ; WX 869 ; N O ; B 105 -13 901 753 ;
+C 80 ; WX 592 ; N P ; B 75 0 664 740 ;
+C 81 ; WX 871 ; N Q ; B 102 -13 912 753 ;
+C 82 ; WX 607 ; N R ; B 70 0 669 740 ;
+C 83 ; WX 498 ; N S ; B 57 -13 561 753 ;
+C 84 ; WX 426 ; N T ; B 131 0 556 740 ;
+C 85 ; WX 655 ; N U ; B 118 -13 716 740 ;
+C 86 ; WX 702 ; N V ; B 145 0 830 740 ;
+C 87 ; WX 960 ; N W ; B 148 0 1087 740 ;
+C 88 ; WX 609 ; N X ; B 8 0 724 740 ;
+C 89 ; WX 592 ; N Y ; B 138 0 729 740 ;
+C 90 ; WX 480 ; N Z ; B 12 0 596 740 ;
+C 91 ; WX 351 ; N bracketleft ; B 145 -179 477 753 ;
+C 92 ; WX 605 ; N backslash ; B 255 -100 458 740 ;
+C 93 ; WX 351 ; N bracketright ; B -19 -179 312 753 ;
+C 94 ; WX 606 ; N asciicircum ; B 110 307 610 740 ;
+C 95 ; WX 500 ; N underscore ; B -23 -125 486 -75 ;
+C 96 ; WX 351 ; N quoteleft ; B 232 546 358 740 ;
+C 97 ; WX 683 ; N a ; B 88 -13 722 561 ;
+C 98 ; WX 682 ; N b ; B 68 -13 703 740 ;
+C 99 ; WX 647 ; N c ; B 87 -13 678 561 ;
+C 100 ; WX 685 ; N d ; B 85 -13 755 740 ;
+C 101 ; WX 650 ; N e ; B 84 -13 664 561 ;
+C 102 ; WX 314 ; N f ; B 104 0 454 753 ; L i fi ; L l fl ;
+C 103 ; WX 673 ; N g ; B 56 -215 707 561 ;
+C 104 ; WX 610 ; N h ; B 62 0 606 740 ;
+C 105 ; WX 200 ; N i ; B 65 0 272 740 ;
+C 106 ; WX 203 ; N j ; B -80 -192 274 740 ;
+C 107 ; WX 502 ; N k ; B 70 0 588 740 ;
+C 108 ; WX 200 ; N l ; B 65 0 272 740 ;
+C 109 ; WX 938 ; N m ; B 66 0 938 561 ;
+C 110 ; WX 610 ; N n ; B 65 0 609 561 ;
+C 111 ; WX 655 ; N o ; B 88 -13 669 561 ;
+C 112 ; WX 682 ; N p ; B 28 -192 699 561 ;
+C 113 ; WX 682 ; N q ; B 83 -192 717 561 ;
+C 114 ; WX 301 ; N r ; B 65 0 395 561 ;
+C 115 ; WX 388 ; N s ; B 49 -13 424 561 ;
+C 116 ; WX 339 ; N t ; B 104 0 431 740 ;
+C 117 ; WX 608 ; N u ; B 100 -13 642 547 ;
+C 118 ; WX 554 ; N v ; B 108 0 647 547 ;
+C 119 ; WX 831 ; N w ; B 114 0 921 547 ;
+C 120 ; WX 480 ; N x ; B 12 0 569 547 ;
+C 121 ; WX 536 ; N y ; B 97 -192 624 547 ;
+C 122 ; WX 425 ; N z ; B 10 0 498 547 ;
+C 123 ; WX 351 ; N braceleft ; B 115 -189 468 740 ;
+C 124 ; WX 672 ; N bar ; B 258 -222 517 778 ;
+C 125 ; WX 351 ; N braceright ; B -15 -189 338 740 ;
+C 126 ; WX 606 ; N asciitilde ; B 114 179 584 319 ;
+C 161 ; WX 295 ; N exclamdown ; B 74 -192 286 548 ;
+C 162 ; WX 554 ; N cent ; B 115 62 596 707 ;
+C 163 ; WX 554 ; N sterling ; B 29 0 614 753 ;
+C 164 ; WX 166 ; N fraction ; B -113 0 417 740 ;
+C 165 ; WX 554 ; N yen ; B 75 0 687 740 ;
+C 166 ; WX 554 ; N florin ; B -39 -153 669 818 ;
+C 167 ; WX 615 ; N section ; B 118 -141 597 753 ;
+C 168 ; WX 554 ; N currency ; B 24 42 645 580 ;
+C 169 ; WX 198 ; N quotesingle ; B 153 444 277 740 ;
+C 170 ; WX 502 ; N quotedblleft ; B 234 546 507 740 ;
+C 171 ; WX 425 ; N guillemotleft ; B 92 81 469 481 ;
+C 172 ; WX 251 ; N guilsinglleft ; B 92 81 295 481 ;
+C 173 ; WX 251 ; N guilsinglright ; B 60 81 263 481 ;
+C 174 ; WX 487 ; N fi ; B 104 0 559 753 ;
+C 175 ; WX 485 ; N fl ; B 104 0 557 753 ;
+C 177 ; WX 500 ; N endash ; B 81 248 523 315 ;
+C 178 ; WX 553 ; N dagger ; B 146 -133 593 740 ;
+C 179 ; WX 553 ; N daggerdbl ; B 72 -133 593 740 ;
+C 180 ; WX 277 ; N periodcentered ; B 137 190 235 316 ;
+C 182 ; WX 564 ; N paragraph ; B 119 -110 688 740 ;
+C 183 ; WX 606 ; N bullet ; B 217 222 528 532 ;
+C 184 ; WX 354 ; N quotesinglbase ; B 76 -68 274 126 ;
+C 185 ; WX 502 ; N quotedblbase ; B 76 -68 422 126 ;
+C 186 ; WX 484 ; N quotedblright ; B 197 546 542 740 ;
+C 187 ; WX 425 ; N guillemotright ; B 60 81 437 481 ;
+C 188 ; WX 1000 ; N ellipsis ; B 130 0 893 126 ;
+C 189 ; WX 1174 ; N perthousand ; B 128 -13 1182 751 ;
+C 191 ; WX 591 ; N questiondown ; B 64 -205 534 548 ;
+C 193 ; WX 378 ; N grave ; B 204 619 425 786 ;
+C 194 ; WX 375 ; N acute ; B 203 619 444 786 ;
+C 195 ; WX 502 ; N circumflex ; B 192 639 546 764 ;
+C 196 ; WX 439 ; N tilde ; B 179 651 520 754 ;
+C 197 ; WX 485 ; N macron ; B 197 669 547 736 ;
+C 198 ; WX 453 ; N breve ; B 192 651 541 754 ;
+C 199 ; WX 222 ; N dotaccent ; B 192 639 290 765 ;
+C 200 ; WX 369 ; N dieresis ; B 191 639 437 765 ;
+C 202 ; WX 332 ; N ring ; B 191 600 401 807 ;
+C 203 ; WX 324 ; N cedilla ; B 52 -222 231 3 ;
+C 205 ; WX 552 ; N hungarumlaut ; B 230 605 623 786 ;
+C 206 ; WX 302 ; N ogonek ; B 53 -191 202 0 ;
+C 207 ; WX 502 ; N caron ; B 210 639 565 764 ;
+C 208 ; WX 1000 ; N emdash ; B 81 248 1023 315 ;
+C 225 ; WX 992 ; N AE ; B -20 0 1044 740 ;
+C 227 ; WX 369 ; N ordfeminine ; B 102 407 494 753 ;
+C 232 ; WX 517 ; N Lslash ; B 107 0 529 740 ;
+C 233 ; WX 868 ; N Oslash ; B 76 -83 929 819 ;
+C 234 ; WX 1194 ; N OE ; B 107 -13 1279 753 ;
+C 235 ; WX 369 ; N ordmasculine ; B 116 407 466 753 ;
+C 241 ; WX 1157 ; N ae ; B 80 -13 1169 561 ;
+C 245 ; WX 200 ; N dotlessi ; B 65 0 236 547 ;
+C 248 ; WX 300 ; N lslash ; B 95 0 354 740 ;
+C 249 ; WX 653 ; N oslash ; B 51 -64 703 614 ;
+C 250 ; WX 1137 ; N oe ; B 80 -13 1160 561 ;
+C 251 ; WX 554 ; N germandbls ; B 61 -13 578 753 ;
+C -1 ; WX 226 ; N Idieresis ; B 76 0 396 928 ;
+C -1 ; WX 650 ; N eacute ; B 84 -13 664 786 ;
+C -1 ; WX 683 ; N abreve ; B 88 -13 722 754 ;
+C -1 ; WX 608 ; N uhungarumlaut ; B 100 -13 671 786 ;
+C -1 ; WX 650 ; N ecaron ; B 84 -13 664 764 ;
+C -1 ; WX 592 ; N Ydieresis ; B 138 0 729 928 ;
+C -1 ; WX 606 ; N divide ; B 92 -13 608 519 ;
+C -1 ; WX 592 ; N Yacute ; B 138 0 729 949 ;
+C -1 ; WX 740 ; N Acircumflex ; B 12 0 729 927 ;
+C -1 ; WX 683 ; N aacute ; B 88 -13 722 786 ;
+C -1 ; WX 655 ; N Ucircumflex ; B 118 -13 716 927 ;
+C -1 ; WX 536 ; N yacute ; B 97 -192 624 786 ;
+C -1 ; WX 388 ; N scommaaccent ; B 49 -222 424 561 ;
+C -1 ; WX 650 ; N ecircumflex ; B 84 -13 664 764 ;
+C -1 ; WX 655 ; N Uring ; B 118 -13 716 955 ;
+C -1 ; WX 655 ; N Udieresis ; B 118 -13 716 928 ;
+C -1 ; WX 683 ; N aogonek ; B 88 -191 722 561 ;
+C -1 ; WX 655 ; N Uacute ; B 118 -13 716 949 ;
+C -1 ; WX 608 ; N uogonek ; B 100 -191 642 547 ;
+C -1 ; WX 536 ; N Edieresis ; B 70 0 612 928 ;
+C -1 ; WX 790 ; N Dcroat ; B 104 0 813 740 ;
+C -1 ; WX 250 ; N commaaccent ; B -18 -222 159 -54 ;
+C -1 ; WX 747 ; N copyright ; B 53 -12 830 752 ;
+C -1 ; WX 536 ; N Emacron ; B 70 0 612 899 ;
+C -1 ; WX 647 ; N ccaron ; B 87 -13 678 764 ;
+C -1 ; WX 683 ; N aring ; B 88 -13 722 807 ;
+C -1 ; WX 740 ; N Ncommaaccent ; B 75 -202 801 740 ;
+C -1 ; WX 200 ; N lacute ; B 65 0 416 949 ;
+C -1 ; WX 683 ; N agrave ; B 88 -13 722 786 ;
+C -1 ; WX 426 ; N Tcommaaccent ; B 70 -222 556 740 ;
+C -1 ; WX 813 ; N Cacute ; B 105 -13 870 949 ;
+C -1 ; WX 683 ; N atilde ; B 88 -13 722 754 ;
+C -1 ; WX 536 ; N Edotaccent ; B 70 0 612 928 ;
+C -1 ; WX 388 ; N scaron ; B 49 -13 508 764 ;
+C -1 ; WX 388 ; N scedilla ; B 49 -222 424 561 ;
+C -1 ; WX 200 ; N iacute ; B 65 0 396 786 ;
+C -1 ; WX 471 ; N lozenge ; B 82 0 524 719 ;
+C -1 ; WX 607 ; N Rcaron ; B 70 0 669 927 ;
+C -1 ; WX 872 ; N Gcommaaccent ; B 103 -222 891 753 ;
+C -1 ; WX 608 ; N ucircumflex ; B 100 -13 642 764 ;
+C -1 ; WX 683 ; N acircumflex ; B 88 -13 722 764 ;
+C -1 ; WX 740 ; N Amacron ; B 12 0 729 899 ;
+C -1 ; WX 301 ; N rcaron ; B 65 0 494 764 ;
+C -1 ; WX 647 ; N ccedilla ; B 87 -222 678 561 ;
+C -1 ; WX 480 ; N Zdotaccent ; B 12 0 596 928 ;
+C -1 ; WX 592 ; N Thorn ; B 60 0 621 740 ;
+C -1 ; WX 869 ; N Omacron ; B 105 -13 901 899 ;
+C -1 ; WX 607 ; N Racute ; B 70 0 669 949 ;
+C -1 ; WX 498 ; N Sacute ; B 57 -13 561 949 ;
+C -1 ; WX 755 ; N dcaron ; B 85 -13 929 740 ;
+C -1 ; WX 655 ; N Umacron ; B 118 -13 716 899 ;
+C -1 ; WX 608 ; N uring ; B 100 -13 642 807 ;
+C -1 ; WX 332 ; N threesuperior ; B 98 289 408 747 ;
+C -1 ; WX 869 ; N Ograve ; B 105 -13 901 949 ;
+C -1 ; WX 740 ; N Agrave ; B 12 0 729 949 ;
+C -1 ; WX 740 ; N Abreve ; B 12 0 729 917 ;
+C -1 ; WX 606 ; N multiply ; B 87 24 612 482 ;
+C -1 ; WX 608 ; N uacute ; B 100 -13 642 786 ;
+C -1 ; WX 426 ; N Tcaron ; B 131 0 557 927 ;
+C -1 ; WX 476 ; N partialdiff ; B 46 -38 529 704 ;
+C -1 ; WX 536 ; N ydieresis ; B 97 -192 624 765 ;
+C -1 ; WX 740 ; N Nacute ; B 75 0 801 949 ;
+C -1 ; WX 200 ; N icircumflex ; B 41 0 395 764 ;
+C -1 ; WX 536 ; N Ecircumflex ; B 70 0 612 927 ;
+C -1 ; WX 683 ; N adieresis ; B 88 -13 722 765 ;
+C -1 ; WX 650 ; N edieresis ; B 84 -13 664 765 ;
+C -1 ; WX 647 ; N cacute ; B 87 -13 678 786 ;
+C -1 ; WX 610 ; N nacute ; B 65 0 609 786 ;
+C -1 ; WX 608 ; N umacron ; B 100 -13 642 736 ;
+C -1 ; WX 740 ; N Ncaron ; B 75 0 801 927 ;
+C -1 ; WX 226 ; N Iacute ; B 76 0 439 949 ;
+C -1 ; WX 606 ; N plusminus ; B 47 -24 618 518 ;
+C -1 ; WX 672 ; N brokenbar ; B 272 -147 503 703 ;
+C -1 ; WX 747 ; N registered ; B 53 -12 830 752 ;
+C -1 ; WX 872 ; N Gbreve ; B 103 -13 891 917 ;
+C -1 ; WX 226 ; N Idotaccent ; B 76 0 322 928 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 652 706 ;
+C -1 ; WX 536 ; N Egrave ; B 70 0 612 949 ;
+C -1 ; WX 301 ; N racute ; B 65 0 467 786 ;
+C -1 ; WX 655 ; N omacron ; B 88 -13 669 736 ;
+C -1 ; WX 480 ; N Zacute ; B 12 0 596 949 ;
+C -1 ; WX 480 ; N Zcaron ; B 12 0 596 927 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 604 658 ;
+C -1 ; WX 790 ; N Eth ; B 104 0 813 740 ;
+C -1 ; WX 813 ; N Ccedilla ; B 105 -222 870 752 ;
+C -1 ; WX 200 ; N lcommaaccent ; B -43 -222 272 740 ;
+C -1 ; WX 359 ; N tcaron ; B 104 0 539 780 ;
+C -1 ; WX 650 ; N eogonek ; B 84 -191 664 561 ;
+C -1 ; WX 655 ; N Uogonek ; B 118 -191 716 740 ;
+C -1 ; WX 740 ; N Aacute ; B 12 0 729 949 ;
+C -1 ; WX 740 ; N Adieresis ; B 12 0 729 928 ;
+C -1 ; WX 650 ; N egrave ; B 84 -13 664 786 ;
+C -1 ; WX 425 ; N zacute ; B 10 0 498 786 ;
+C -1 ; WX 200 ; N iogonek ; B -8 -191 272 740 ;
+C -1 ; WX 869 ; N Oacute ; B 105 -13 901 949 ;
+C -1 ; WX 655 ; N oacute ; B 88 -13 669 786 ;
+C -1 ; WX 683 ; N amacron ; B 88 -13 722 736 ;
+C -1 ; WX 388 ; N sacute ; B 49 -13 451 786 ;
+C -1 ; WX 200 ; N idieresis ; B 65 0 353 765 ;
+C -1 ; WX 869 ; N Ocircumflex ; B 105 -13 901 927 ;
+C -1 ; WX 655 ; N Ugrave ; B 118 -13 716 949 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 682 ; N thorn ; B 28 -192 699 740 ;
+C -1 ; WX 332 ; N twosuperior ; B 74 296 433 747 ;
+C -1 ; WX 869 ; N Odieresis ; B 105 -13 901 928 ;
+C -1 ; WX 608 ; N mu ; B 46 -184 628 547 ;
+C -1 ; WX 200 ; N igrave ; B 65 0 296 786 ;
+C -1 ; WX 655 ; N ohungarumlaut ; B 88 -13 715 786 ;
+C -1 ; WX 536 ; N Eogonek ; B 70 -191 612 740 ;
+C -1 ; WX 685 ; N dcroat ; B 85 -13 801 740 ;
+C -1 ; WX 831 ; N threequarters ; B 126 0 825 747 ;
+C -1 ; WX 498 ; N Scedilla ; B 57 -222 561 753 ;
+C -1 ; WX 260 ; N lcaron ; B 65 0 446 740 ;
+C -1 ; WX 591 ; N Kcommaaccent ; B 81 -202 728 740 ;
+C -1 ; WX 462 ; N Lacute ; B 82 0 518 949 ;
+C -1 ; WX 1000 ; N trademark ; B 137 296 953 740 ;
+C -1 ; WX 650 ; N edotaccent ; B 84 -13 664 765 ;
+C -1 ; WX 226 ; N Igrave ; B 76 0 340 949 ;
+C -1 ; WX 226 ; N Imacron ; B 76 0 423 899 ;
+C -1 ; WX 462 ; N Lcaron ; B 82 0 592 740 ;
+C -1 ; WX 831 ; N onehalf ; B 164 0 810 740 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 645 658 ;
+C -1 ; WX 655 ; N ocircumflex ; B 88 -13 669 764 ;
+C -1 ; WX 610 ; N ntilde ; B 65 0 609 754 ;
+C -1 ; WX 655 ; N Uhungarumlaut ; B 118 -13 725 949 ;
+C -1 ; WX 536 ; N Eacute ; B 70 0 612 949 ;
+C -1 ; WX 650 ; N emacron ; B 84 -13 664 736 ;
+C -1 ; WX 673 ; N gbreve ; B 56 -215 707 754 ;
+C -1 ; WX 831 ; N onequarter ; B 183 0 770 740 ;
+C -1 ; WX 498 ; N Scaron ; B 57 -13 593 927 ;
+C -1 ; WX 498 ; N Scommaaccent ; B 57 -222 561 753 ;
+C -1 ; WX 869 ; N Ohungarumlaut ; B 105 -13 901 949 ;
+C -1 ; WX 400 ; N degree ; B 158 421 451 709 ;
+C -1 ; WX 655 ; N ograve ; B 88 -13 669 786 ;
+C -1 ; WX 813 ; N Ccaron ; B 105 -13 870 927 ;
+C -1 ; WX 608 ; N ugrave ; B 100 -13 642 786 ;
+C -1 ; WX 453 ; N radical ; B 78 -58 585 756 ;
+C -1 ; WX 744 ; N Dcaron ; B 74 0 773 927 ;
+C -1 ; WX 301 ; N rcommaaccent ; B -33 -222 395 561 ;
+C -1 ; WX 740 ; N Ntilde ; B 75 0 801 917 ;
+C -1 ; WX 655 ; N otilde ; B 88 -13 669 754 ;
+C -1 ; WX 607 ; N Rcommaaccent ; B 70 -202 669 740 ;
+C -1 ; WX 462 ; N Lcommaaccent ; B 82 -222 474 740 ;
+C -1 ; WX 740 ; N Atilde ; B 12 0 729 917 ;
+C -1 ; WX 740 ; N Aogonek ; B 12 -191 729 740 ;
+C -1 ; WX 740 ; N Aring ; B 12 0 729 955 ;
+C -1 ; WX 869 ; N Otilde ; B 105 -13 901 917 ;
+C -1 ; WX 425 ; N zdotaccent ; B 10 0 498 765 ;
+C -1 ; WX 536 ; N Ecaron ; B 70 0 612 927 ;
+C -1 ; WX 226 ; N Iogonek ; B 1 -191 287 740 ;
+C -1 ; WX 502 ; N kcommaaccent ; B 70 -202 588 740 ;
+C -1 ; WX 606 ; N minus ; B 92 219 608 287 ;
+C -1 ; WX 226 ; N Icircumflex ; B 76 0 439 927 ;
+C -1 ; WX 610 ; N ncaron ; B 65 0 619 764 ;
+C -1 ; WX 339 ; N tcommaaccent ; B 27 -222 431 740 ;
+C -1 ; WX 606 ; N logicalnot ; B 110 109 627 388 ;
+C -1 ; WX 655 ; N odieresis ; B 88 -13 669 765 ;
+C -1 ; WX 608 ; N udieresis ; B 100 -13 642 765 ;
+C -1 ; WX 549 ; N notequal ; B 33 -29 610 541 ;
+C -1 ; WX 673 ; N gcommaaccent ; B 56 -215 707 786 ;
+C -1 ; WX 655 ; N eth ; B 88 -12 675 753 ;
+C -1 ; WX 425 ; N zcaron ; B 10 0 527 764 ;
+C -1 ; WX 610 ; N ncommaaccent ; B 65 -202 609 561 ;
+C -1 ; WX 332 ; N onesuperior ; B 190 296 335 740 ;
+C -1 ; WX 200 ; N imacron ; B 65 0 379 736 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 922
+KPX A T -81
+KPX A Tcaron -81
+KPX A Tcommaaccent -81
+KPX A V -122
+KPX A W -95
+KPX A Y -122
+KPX A Yacute -122
+KPX A Ydieresis -122
+KPX A v -73
+KPX A w -65
+KPX A y -72
+KPX A yacute -72
+KPX A ydieresis -72
+KPX Aacute T -81
+KPX Aacute Tcaron -81
+KPX Aacute Tcommaaccent -81
+KPX Aacute V -122
+KPX Aacute W -95
+KPX Aacute Y -122
+KPX Aacute Yacute -122
+KPX Aacute Ydieresis -122
+KPX Aacute v -73
+KPX Aacute w -65
+KPX Aacute y -72
+KPX Aacute yacute -72
+KPX Aacute ydieresis -72
+KPX Abreve T -81
+KPX Abreve Tcaron -81
+KPX Abreve Tcommaaccent -81
+KPX Abreve V -122
+KPX Abreve W -95
+KPX Abreve Y -122
+KPX Abreve Yacute -122
+KPX Abreve Ydieresis -122
+KPX Abreve v -73
+KPX Abreve w -65
+KPX Abreve y -72
+KPX Abreve yacute -72
+KPX Abreve ydieresis -72
+KPX Acircumflex T -81
+KPX Acircumflex Tcaron -81
+KPX Acircumflex Tcommaaccent -81
+KPX Acircumflex V -122
+KPX Acircumflex W -95
+KPX Acircumflex Y -122
+KPX Acircumflex Yacute -122
+KPX Acircumflex Ydieresis -122
+KPX Acircumflex v -73
+KPX Acircumflex w -65
+KPX Acircumflex y -72
+KPX Acircumflex yacute -72
+KPX Acircumflex ydieresis -72
+KPX Adieresis T -81
+KPX Adieresis Tcaron -81
+KPX Adieresis Tcommaaccent -81
+KPX Adieresis V -122
+KPX Adieresis W -95
+KPX Adieresis Y -122
+KPX Adieresis Yacute -122
+KPX Adieresis Ydieresis -122
+KPX Adieresis v -73
+KPX Adieresis w -65
+KPX Adieresis y -72
+KPX Adieresis yacute -72
+KPX Adieresis ydieresis -72
+KPX Agrave T -81
+KPX Agrave Tcaron -81
+KPX Agrave Tcommaaccent -81
+KPX Agrave V -122
+KPX Agrave W -95
+KPX Agrave Y -122
+KPX Agrave Yacute -122
+KPX Agrave Ydieresis -122
+KPX Agrave v -73
+KPX Agrave w -65
+KPX Agrave y -72
+KPX Agrave yacute -72
+KPX Agrave ydieresis -72
+KPX Amacron T -81
+KPX Amacron Tcaron -81
+KPX Amacron Tcommaaccent -81
+KPX Amacron V -122
+KPX Amacron W -95
+KPX Amacron Y -122
+KPX Amacron Yacute -122
+KPX Amacron Ydieresis -122
+KPX Amacron v -73
+KPX Amacron w -65
+KPX Amacron y -72
+KPX Amacron yacute -72
+KPX Amacron ydieresis -72
+KPX Aogonek T -81
+KPX Aogonek Tcaron -81
+KPX Aogonek Tcommaaccent -81
+KPX Aogonek V -122
+KPX Aogonek W -95
+KPX Aogonek Y -122
+KPX Aogonek Yacute -122
+KPX Aogonek Ydieresis -122
+KPX Aogonek v -73
+KPX Aogonek w -65
+KPX Aogonek y -72
+KPX Aogonek yacute -72
+KPX Aogonek ydieresis -72
+KPX Aring T -81
+KPX Aring Tcaron -81
+KPX Aring Tcommaaccent -81
+KPX Aring V -122
+KPX Aring W -95
+KPX Aring Y -122
+KPX Aring Yacute -122
+KPX Aring Ydieresis -122
+KPX Aring v -73
+KPX Aring w -65
+KPX Aring y -72
+KPX Aring yacute -72
+KPX Aring ydieresis -72
+KPX Atilde T -81
+KPX Atilde Tcaron -81
+KPX Atilde Tcommaaccent -81
+KPX Atilde V -122
+KPX Atilde W -95
+KPX Atilde Y -122
+KPX Atilde Yacute -122
+KPX Atilde Ydieresis -122
+KPX Atilde v -73
+KPX Atilde w -65
+KPX Atilde y -72
+KPX Atilde yacute -72
+KPX Atilde ydieresis -72
+KPX F A -60
+KPX F Aacute -60
+KPX F Abreve -60
+KPX F Acircumflex -60
+KPX F Adieresis -60
+KPX F Agrave -60
+KPX F Amacron -60
+KPX F Aogonek -60
+KPX F Aring -60
+KPX F Atilde -60
+KPX F comma -122
+KPX F period -79
+KPX L T -46
+KPX L Tcaron -46
+KPX L Tcommaaccent -46
+KPX L V -113
+KPX L W -67
+KPX L Y -91
+KPX L Yacute -91
+KPX L Ydieresis -91
+KPX L y -23
+KPX L yacute -23
+KPX L ydieresis -23
+KPX Lacute T -46
+KPX Lacute Tcaron -46
+KPX Lacute Tcommaaccent -46
+KPX Lacute V -113
+KPX Lacute W -67
+KPX Lacute Y -91
+KPX Lacute Yacute -91
+KPX Lacute Ydieresis -91
+KPX Lacute y -23
+KPX Lacute yacute -23
+KPX Lacute ydieresis -23
+KPX Lcaron y -23
+KPX Lcaron yacute -23
+KPX Lcaron ydieresis -23
+KPX Lcommaaccent T -46
+KPX Lcommaaccent Tcaron -46
+KPX Lcommaaccent Tcommaaccent -46
+KPX Lcommaaccent V -113
+KPX Lcommaaccent W -67
+KPX Lcommaaccent Y -91
+KPX Lcommaaccent Yacute -91
+KPX Lcommaaccent Ydieresis -91
+KPX Lcommaaccent y -23
+KPX Lcommaaccent yacute -23
+KPX Lcommaaccent ydieresis -23
+KPX Lslash T -46
+KPX Lslash Tcaron -46
+KPX Lslash Tcommaaccent -46
+KPX Lslash V -113
+KPX Lslash W -67
+KPX Lslash Y -91
+KPX Lslash Yacute -91
+KPX Lslash Ydieresis -91
+KPX Lslash y -23
+KPX Lslash yacute -23
+KPX Lslash ydieresis -23
+KPX P A -74
+KPX P Aacute -74
+KPX P Abreve -74
+KPX P Acircumflex -74
+KPX P Adieresis -74
+KPX P Agrave -74
+KPX P Amacron -74
+KPX P Aogonek -74
+KPX P Aring -74
+KPX P Atilde -74
+KPX P comma -123
+KPX P period -91
+KPX R T 6
+KPX R Tcaron 6
+KPX R Tcommaaccent 6
+KPX R V -39
+KPX R W 2
+KPX R Y -20
+KPX R Yacute -20
+KPX R Ydieresis -20
+KPX R y 32
+KPX R yacute 32
+KPX R ydieresis 32
+KPX Racute T 6
+KPX Racute Tcaron 6
+KPX Racute Tcommaaccent 6
+KPX Racute V -39
+KPX Racute W 2
+KPX Racute Y -20
+KPX Racute Yacute -20
+KPX Racute Ydieresis -20
+KPX Racute y 32
+KPX Racute yacute 32
+KPX Racute ydieresis 32
+KPX Rcaron T 6
+KPX Rcaron Tcaron 6
+KPX Rcaron Tcommaaccent 6
+KPX Rcaron V -39
+KPX Rcaron W 2
+KPX Rcaron Y -20
+KPX Rcaron Yacute -20
+KPX Rcaron Ydieresis -20
+KPX Rcaron y 32
+KPX Rcaron yacute 32
+KPX Rcaron ydieresis 32
+KPX Rcommaaccent T 6
+KPX Rcommaaccent Tcaron 6
+KPX Rcommaaccent Tcommaaccent 6
+KPX Rcommaaccent V -39
+KPX Rcommaaccent W 2
+KPX Rcommaaccent Y -20
+KPX Rcommaaccent Yacute -20
+KPX Rcommaaccent Ydieresis -20
+KPX Rcommaaccent y 32
+KPX Rcommaaccent yacute 32
+KPX Rcommaaccent ydieresis 32
+KPX T A -81
+KPX T Aacute -81
+KPX T Abreve -81
+KPX T Acircumflex -81
+KPX T Adieresis -81
+KPX T Agrave -81
+KPX T Amacron -81
+KPX T Aogonek -81
+KPX T Aring -81
+KPX T Atilde -81
+KPX T a -52
+KPX T aacute -52
+KPX T abreve -52
+KPX T acircumflex -52
+KPX T adieresis -52
+KPX T agrave -52
+KPX T amacron -52
+KPX T aogonek -52
+KPX T aring -52
+KPX T atilde -52
+KPX T c -51
+KPX T cacute -51
+KPX T ccaron -51
+KPX T ccedilla -51
+KPX T colon 3
+KPX T comma -102
+KPX T e -49
+KPX T eacute -49
+KPX T ecaron -49
+KPX T ecircumflex -49
+KPX T edieresis -49
+KPX T edotaccent -49
+KPX T egrave -49
+KPX T emacron -49
+KPX T eogonek -49
+KPX T i 31
+KPX T iacute 31
+KPX T icircumflex 31
+KPX T idieresis 31
+KPX T igrave 31
+KPX T imacron 31
+KPX T iogonek 31
+KPX T o -49
+KPX T oacute -49
+KPX T ocircumflex -49
+KPX T odieresis -49
+KPX T ograve -49
+KPX T ohungarumlaut -49
+KPX T omacron -49
+KPX T oslash -49
+KPX T otilde -49
+KPX T period -71
+KPX T r -30
+KPX T racute -30
+KPX T rcaron -30
+KPX T rcommaaccent -30
+KPX T s -23
+KPX T sacute -23
+KPX T scedilla -23
+KPX T scommaaccent -23
+KPX T semicolon -29
+KPX T u -46
+KPX T uacute -46
+KPX T ucircumflex -46
+KPX T udieresis -46
+KPX T ugrave -46
+KPX T uhungarumlaut -46
+KPX T umacron -46
+KPX T uogonek -46
+KPX T uring -46
+KPX T w 7
+KPX T y 5
+KPX T yacute 5
+KPX T ydieresis 5
+KPX Tcaron A -81
+KPX Tcaron Aacute -81
+KPX Tcaron Abreve -81
+KPX Tcaron Acircumflex -81
+KPX Tcaron Adieresis -81
+KPX Tcaron Agrave -81
+KPX Tcaron Amacron -81
+KPX Tcaron Aogonek -81
+KPX Tcaron Aring -81
+KPX Tcaron Atilde -81
+KPX Tcaron a -52
+KPX Tcaron aacute -52
+KPX Tcaron abreve -52
+KPX Tcaron acircumflex -52
+KPX Tcaron adieresis -52
+KPX Tcaron agrave -52
+KPX Tcaron amacron -52
+KPX Tcaron aogonek -52
+KPX Tcaron aring -52
+KPX Tcaron atilde -52
+KPX Tcaron c -51
+KPX Tcaron cacute -51
+KPX Tcaron ccaron -51
+KPX Tcaron ccedilla -51
+KPX Tcaron colon 3
+KPX Tcaron comma -102
+KPX Tcaron e -49
+KPX Tcaron eacute -49
+KPX Tcaron ecaron -49
+KPX Tcaron ecircumflex -49
+KPX Tcaron edieresis -49
+KPX Tcaron edotaccent -49
+KPX Tcaron egrave -49
+KPX Tcaron emacron -49
+KPX Tcaron eogonek -49
+KPX Tcaron i 31
+KPX Tcaron iacute 31
+KPX Tcaron iogonek 31
+KPX Tcaron o -49
+KPX Tcaron oacute -49
+KPX Tcaron ocircumflex -49
+KPX Tcaron odieresis -49
+KPX Tcaron ograve -49
+KPX Tcaron ohungarumlaut -49
+KPX Tcaron omacron -49
+KPX Tcaron oslash -49
+KPX Tcaron otilde -49
+KPX Tcaron period -71
+KPX Tcaron r -30
+KPX Tcaron racute -30
+KPX Tcaron rcaron -30
+KPX Tcaron rcommaaccent -30
+KPX Tcaron s -23
+KPX Tcaron sacute -23
+KPX Tcaron scaron -23
+KPX Tcaron scedilla -23
+KPX Tcaron scommaaccent -23
+KPX Tcaron semicolon -29
+KPX Tcaron u -46
+KPX Tcaron uacute -46
+KPX Tcaron ucircumflex -46
+KPX Tcaron udieresis -46
+KPX Tcaron ugrave -46
+KPX Tcaron uhungarumlaut -46
+KPX Tcaron umacron -46
+KPX Tcaron uogonek -46
+KPX Tcaron uring -46
+KPX Tcaron w 7
+KPX Tcaron y 5
+KPX Tcaron yacute 5
+KPX Tcaron ydieresis 5
+KPX Tcommaaccent A -81
+KPX Tcommaaccent Aacute -81
+KPX Tcommaaccent Abreve -81
+KPX Tcommaaccent Acircumflex -81
+KPX Tcommaaccent Adieresis -81
+KPX Tcommaaccent Agrave -81
+KPX Tcommaaccent Amacron -81
+KPX Tcommaaccent Aogonek -81
+KPX Tcommaaccent Aring -81
+KPX Tcommaaccent Atilde -81
+KPX Tcommaaccent a -52
+KPX Tcommaaccent aacute -52
+KPX Tcommaaccent abreve -52
+KPX Tcommaaccent acircumflex -52
+KPX Tcommaaccent adieresis -52
+KPX Tcommaaccent agrave -52
+KPX Tcommaaccent amacron -52
+KPX Tcommaaccent aogonek -52
+KPX Tcommaaccent aring -52
+KPX Tcommaaccent atilde -52
+KPX Tcommaaccent c -51
+KPX Tcommaaccent cacute -51
+KPX Tcommaaccent ccaron -51
+KPX Tcommaaccent ccedilla -51
+KPX Tcommaaccent colon 3
+KPX Tcommaaccent comma -102
+KPX Tcommaaccent e -49
+KPX Tcommaaccent eacute -49
+KPX Tcommaaccent ecaron -49
+KPX Tcommaaccent ecircumflex -49
+KPX Tcommaaccent edieresis -49
+KPX Tcommaaccent edotaccent -49
+KPX Tcommaaccent egrave -49
+KPX Tcommaaccent emacron -49
+KPX Tcommaaccent eogonek -49
+KPX Tcommaaccent i 31
+KPX Tcommaaccent iacute 31
+KPX Tcommaaccent iogonek 31
+KPX Tcommaaccent o -49
+KPX Tcommaaccent oacute -49
+KPX Tcommaaccent ocircumflex -49
+KPX Tcommaaccent odieresis -49
+KPX Tcommaaccent ograve -49
+KPX Tcommaaccent ohungarumlaut -49
+KPX Tcommaaccent omacron -49
+KPX Tcommaaccent oslash -49
+KPX Tcommaaccent otilde -49
+KPX Tcommaaccent period -71
+KPX Tcommaaccent r -30
+KPX Tcommaaccent racute -30
+KPX Tcommaaccent rcaron -30
+KPX Tcommaaccent rcommaaccent -30
+KPX Tcommaaccent s -23
+KPX Tcommaaccent sacute -23
+KPX Tcommaaccent scedilla -23
+KPX Tcommaaccent scommaaccent -23
+KPX Tcommaaccent semicolon -29
+KPX Tcommaaccent u -46
+KPX Tcommaaccent uacute -46
+KPX Tcommaaccent ucircumflex -46
+KPX Tcommaaccent udieresis -46
+KPX Tcommaaccent ugrave -46
+KPX Tcommaaccent uhungarumlaut -46
+KPX Tcommaaccent umacron -46
+KPX Tcommaaccent uogonek -46
+KPX Tcommaaccent uring -46
+KPX Tcommaaccent w 7
+KPX Tcommaaccent y 5
+KPX Tcommaaccent yacute 5
+KPX Tcommaaccent ydieresis 5
+KPX V A -122
+KPX V Aacute -122
+KPX V Abreve -122
+KPX V Acircumflex -122
+KPX V Adieresis -122
+KPX V Agrave -122
+KPX V Amacron -122
+KPX V Aogonek -122
+KPX V Aring -122
+KPX V Atilde -122
+KPX V a -104
+KPX V aacute -104
+KPX V abreve -104
+KPX V acircumflex -104
+KPX V adieresis -104
+KPX V agrave -104
+KPX V amacron -104
+KPX V aogonek -104
+KPX V aring -104
+KPX V atilde -104
+KPX V colon -1
+KPX V comma -106
+KPX V e -101
+KPX V eacute -101
+KPX V ecaron -101
+KPX V ecircumflex -101
+KPX V edieresis -101
+KPX V edotaccent -101
+KPX V egrave -101
+KPX V emacron -101
+KPX V eogonek -101
+KPX V i 5
+KPX V iacute 5
+KPX V iogonek 5
+KPX V o -101
+KPX V oacute -101
+KPX V ocircumflex -101
+KPX V odieresis -101
+KPX V ograve -101
+KPX V ohungarumlaut -101
+KPX V omacron -101
+KPX V oslash -101
+KPX V otilde -101
+KPX V period -75
+KPX V r -40
+KPX V racute -40
+KPX V rcaron -40
+KPX V rcommaaccent -40
+KPX V semicolon -33
+KPX V u -40
+KPX V uacute -40
+KPX V ucircumflex -40
+KPX V udieresis -40
+KPX V ugrave -40
+KPX V uhungarumlaut -40
+KPX V umacron -40
+KPX V uogonek -40
+KPX V uring -40
+KPX V y -25
+KPX V yacute -25
+KPX V ydieresis -25
+KPX W A -73
+KPX W Aacute -73
+KPX W Abreve -73
+KPX W Acircumflex -73
+KPX W Adieresis -73
+KPX W Agrave -73
+KPX W Amacron -73
+KPX W Aogonek -73
+KPX W Aring -73
+KPX W Atilde -73
+KPX W a -50
+KPX W aacute -50
+KPX W abreve -50
+KPX W acircumflex -50
+KPX W adieresis -50
+KPX W agrave -50
+KPX W amacron -50
+KPX W aogonek -50
+KPX W aring -50
+KPX W atilde -50
+KPX W colon -1
+KPX W comma -106
+KPX W e -47
+KPX W eacute -47
+KPX W ecaron -47
+KPX W ecircumflex -47
+KPX W edieresis -47
+KPX W edotaccent -47
+KPX W egrave -47
+KPX W emacron -47
+KPX W eogonek -47
+KPX W i 6
+KPX W iacute 6
+KPX W icircumflex 16
+KPX W idieresis 16
+KPX W igrave 16
+KPX W imacron 16
+KPX W iogonek 6
+KPX W o -46
+KPX W oacute -46
+KPX W ocircumflex -46
+KPX W odieresis -46
+KPX W ograve -46
+KPX W ohungarumlaut -46
+KPX W omacron -46
+KPX W oslash -46
+KPX W otilde -46
+KPX W period -74
+KPX W r -29
+KPX W racute -29
+KPX W rcaron -29
+KPX W rcommaaccent -29
+KPX W semicolon -33
+KPX W u -30
+KPX W uacute -30
+KPX W ucircumflex -30
+KPX W udieresis -30
+KPX W ugrave -30
+KPX W uhungarumlaut -30
+KPX W umacron -30
+KPX W uogonek -30
+KPX W uring -30
+KPX W y -2
+KPX W yacute -2
+KPX W ydieresis -2
+KPX Y A -122
+KPX Y Aacute -122
+KPX Y Abreve -122
+KPX Y Acircumflex -122
+KPX Y Adieresis -122
+KPX Y Agrave -122
+KPX Y Amacron -122
+KPX Y Aogonek -122
+KPX Y Aring -122
+KPX Y Atilde -122
+KPX Y a -93
+KPX Y aacute -93
+KPX Y abreve -93
+KPX Y acircumflex -93
+KPX Y adieresis -93
+KPX Y agrave -93
+KPX Y amacron -93
+KPX Y aogonek -93
+KPX Y aring -93
+KPX Y atilde -93
+KPX Y colon 9
+KPX Y comma -97
+KPX Y e -89
+KPX Y eacute -89
+KPX Y ecaron -89
+KPX Y ecircumflex -89
+KPX Y edieresis -89
+KPX Y edotaccent -89
+KPX Y egrave -89
+KPX Y emacron -89
+KPX Y eogonek -89
+KPX Y i 13
+KPX Y iacute 13
+KPX Y icircumflex 23
+KPX Y idieresis 23
+KPX Y igrave 23
+KPX Y imacron 23
+KPX Y iogonek 13
+KPX Y o -89
+KPX Y oacute -89
+KPX Y ocircumflex -89
+KPX Y odieresis -89
+KPX Y ograve -89
+KPX Y ohungarumlaut -89
+KPX Y omacron -89
+KPX Y oslash -89
+KPX Y otilde -89
+KPX Y p -67
+KPX Y period -65
+KPX Y q -93
+KPX Y semicolon -23
+KPX Y u -69
+KPX Y uacute -69
+KPX Y ucircumflex -69
+KPX Y udieresis -69
+KPX Y ugrave -69
+KPX Y uhungarumlaut -69
+KPX Y umacron -69
+KPX Y uogonek -69
+KPX Y uring -69
+KPX Y v -17
+KPX Yacute A -122
+KPX Yacute Aacute -122
+KPX Yacute Abreve -122
+KPX Yacute Acircumflex -122
+KPX Yacute Adieresis -122
+KPX Yacute Agrave -122
+KPX Yacute Amacron -122
+KPX Yacute Aogonek -122
+KPX Yacute Aring -122
+KPX Yacute Atilde -122
+KPX Yacute a -93
+KPX Yacute aacute -93
+KPX Yacute abreve -93
+KPX Yacute acircumflex -93
+KPX Yacute adieresis -93
+KPX Yacute agrave -93
+KPX Yacute amacron -93
+KPX Yacute aogonek -93
+KPX Yacute aring -93
+KPX Yacute atilde -93
+KPX Yacute colon 9
+KPX Yacute comma -97
+KPX Yacute e -89
+KPX Yacute eacute -89
+KPX Yacute ecaron -89
+KPX Yacute ecircumflex -89
+KPX Yacute edieresis -89
+KPX Yacute edotaccent -89
+KPX Yacute egrave -89
+KPX Yacute emacron -89
+KPX Yacute eogonek -89
+KPX Yacute i 13
+KPX Yacute iacute 13
+KPX Yacute icircumflex 23
+KPX Yacute idieresis 23
+KPX Yacute igrave 23
+KPX Yacute imacron 23
+KPX Yacute iogonek 13
+KPX Yacute o -89
+KPX Yacute oacute -89
+KPX Yacute ocircumflex -89
+KPX Yacute odieresis -89
+KPX Yacute ograve -89
+KPX Yacute ohungarumlaut -89
+KPX Yacute omacron -89
+KPX Yacute oslash -89
+KPX Yacute otilde -89
+KPX Yacute p -67
+KPX Yacute period -65
+KPX Yacute q -93
+KPX Yacute semicolon -23
+KPX Yacute u -69
+KPX Yacute uacute -69
+KPX Yacute ucircumflex -69
+KPX Yacute udieresis -69
+KPX Yacute ugrave -69
+KPX Yacute uhungarumlaut -69
+KPX Yacute umacron -69
+KPX Yacute uogonek -69
+KPX Yacute uring -69
+KPX Yacute v -17
+KPX Ydieresis A -122
+KPX Ydieresis Aacute -122
+KPX Ydieresis Abreve -122
+KPX Ydieresis Acircumflex -122
+KPX Ydieresis Adieresis -122
+KPX Ydieresis Agrave -122
+KPX Ydieresis Amacron -122
+KPX Ydieresis Aogonek -122
+KPX Ydieresis Aring -122
+KPX Ydieresis Atilde -122
+KPX Ydieresis a -93
+KPX Ydieresis aacute -93
+KPX Ydieresis abreve -93
+KPX Ydieresis acircumflex -93
+KPX Ydieresis adieresis -93
+KPX Ydieresis agrave -93
+KPX Ydieresis amacron -93
+KPX Ydieresis aogonek -93
+KPX Ydieresis aring -93
+KPX Ydieresis atilde -93
+KPX Ydieresis colon 9
+KPX Ydieresis comma -97
+KPX Ydieresis e -89
+KPX Ydieresis eacute -89
+KPX Ydieresis ecaron -89
+KPX Ydieresis ecircumflex -89
+KPX Ydieresis edieresis -89
+KPX Ydieresis edotaccent -89
+KPX Ydieresis egrave -89
+KPX Ydieresis emacron -89
+KPX Ydieresis eogonek -89
+KPX Ydieresis i 13
+KPX Ydieresis iacute 13
+KPX Ydieresis icircumflex 23
+KPX Ydieresis idieresis 23
+KPX Ydieresis igrave 23
+KPX Ydieresis imacron 23
+KPX Ydieresis iogonek 13
+KPX Ydieresis o -89
+KPX Ydieresis oacute -89
+KPX Ydieresis ocircumflex -89
+KPX Ydieresis odieresis -89
+KPX Ydieresis ograve -89
+KPX Ydieresis ohungarumlaut -89
+KPX Ydieresis omacron -89
+KPX Ydieresis oslash -89
+KPX Ydieresis otilde -89
+KPX Ydieresis p -67
+KPX Ydieresis period -65
+KPX Ydieresis q -93
+KPX Ydieresis semicolon -23
+KPX Ydieresis u -69
+KPX Ydieresis uacute -69
+KPX Ydieresis ucircumflex -69
+KPX Ydieresis udieresis -69
+KPX Ydieresis ugrave -69
+KPX Ydieresis uhungarumlaut -69
+KPX Ydieresis umacron -69
+KPX Ydieresis uogonek -69
+KPX Ydieresis uring -69
+KPX Ydieresis v -17
+KPX f f 3
+KPX r c -7
+KPX r cacute -7
+KPX r ccaron -7
+KPX r ccedilla -7
+KPX r comma -105
+KPX r d -6
+KPX r dcroat -6
+KPX r e -4
+KPX r eacute -4
+KPX r ecaron -4
+KPX r ecircumflex -4
+KPX r edieresis -4
+KPX r edotaccent -4
+KPX r egrave -4
+KPX r emacron -4
+KPX r eogonek -4
+KPX r f 48
+KPX r g 1
+KPX r gbreve 1
+KPX r gcommaaccent 1
+KPX r h 29
+KPX r m 28
+KPX r n 21
+KPX r nacute 21
+KPX r ncaron 21
+KPX r ncommaaccent 21
+KPX r ntilde 21
+KPX r o -4
+KPX r oacute -4
+KPX r ocircumflex -4
+KPX r odieresis -4
+KPX r ograve -4
+KPX r ohungarumlaut -4
+KPX r omacron -4
+KPX r oslash -4
+KPX r otilde -4
+KPX r period -73
+KPX r q -8
+KPX racute c -7
+KPX racute cacute -7
+KPX racute ccaron -7
+KPX racute ccedilla -7
+KPX racute comma -105
+KPX racute d -6
+KPX racute dcroat -6
+KPX racute e -4
+KPX racute eacute -4
+KPX racute ecaron -4
+KPX racute ecircumflex -4
+KPX racute edieresis -4
+KPX racute edotaccent -4
+KPX racute egrave -4
+KPX racute emacron -4
+KPX racute eogonek -4
+KPX racute f 48
+KPX racute g 1
+KPX racute gbreve 1
+KPX racute gcommaaccent 1
+KPX racute h 29
+KPX racute m 28
+KPX racute n 21
+KPX racute nacute 21
+KPX racute ncaron 21
+KPX racute ncommaaccent 21
+KPX racute ntilde 21
+KPX racute o -4
+KPX racute oacute -4
+KPX racute ocircumflex -4
+KPX racute odieresis -4
+KPX racute ograve -4
+KPX racute ohungarumlaut -4
+KPX racute omacron -4
+KPX racute oslash -4
+KPX racute otilde -4
+KPX racute period -73
+KPX racute q -8
+KPX rcaron c -7
+KPX rcaron cacute -7
+KPX rcaron ccaron -7
+KPX rcaron ccedilla -7
+KPX rcaron comma -105
+KPX rcaron d -6
+KPX rcaron dcroat -6
+KPX rcaron e -4
+KPX rcaron eacute -4
+KPX rcaron ecaron -4
+KPX rcaron ecircumflex -4
+KPX rcaron edieresis -4
+KPX rcaron edotaccent -4
+KPX rcaron egrave -4
+KPX rcaron emacron -4
+KPX rcaron eogonek -4
+KPX rcaron f 48
+KPX rcaron g 1
+KPX rcaron gbreve 1
+KPX rcaron gcommaaccent 1
+KPX rcaron h 29
+KPX rcaron m 28
+KPX rcaron n 21
+KPX rcaron nacute 21
+KPX rcaron ncaron 21
+KPX rcaron ncommaaccent 21
+KPX rcaron ntilde 21
+KPX rcaron o -4
+KPX rcaron oacute -4
+KPX rcaron ocircumflex -4
+KPX rcaron odieresis -4
+KPX rcaron ograve -4
+KPX rcaron ohungarumlaut -4
+KPX rcaron omacron -4
+KPX rcaron oslash -4
+KPX rcaron otilde -4
+KPX rcaron period -73
+KPX rcaron q -8
+KPX rcommaaccent c -7
+KPX rcommaaccent cacute -7
+KPX rcommaaccent ccaron -7
+KPX rcommaaccent ccedilla -7
+KPX rcommaaccent comma -105
+KPX rcommaaccent d -6
+KPX rcommaaccent dcroat -6
+KPX rcommaaccent e -4
+KPX rcommaaccent eacute -4
+KPX rcommaaccent ecaron -4
+KPX rcommaaccent ecircumflex -4
+KPX rcommaaccent edieresis -4
+KPX rcommaaccent edotaccent -4
+KPX rcommaaccent egrave -4
+KPX rcommaaccent emacron -4
+KPX rcommaaccent eogonek -4
+KPX rcommaaccent f 48
+KPX rcommaaccent g 1
+KPX rcommaaccent gbreve 1
+KPX rcommaaccent gcommaaccent 1
+KPX rcommaaccent h 29
+KPX rcommaaccent m 28
+KPX rcommaaccent n 21
+KPX rcommaaccent nacute 21
+KPX rcommaaccent ncaron 21
+KPX rcommaaccent ncommaaccent 21
+KPX rcommaaccent ntilde 21
+KPX rcommaaccent o -4
+KPX rcommaaccent oacute -4
+KPX rcommaaccent ocircumflex -4
+KPX rcommaaccent odieresis -4
+KPX rcommaaccent ograve -4
+KPX rcommaaccent ohungarumlaut -4
+KPX rcommaaccent omacron -4
+KPX rcommaaccent oslash -4
+KPX rcommaaccent otilde -4
+KPX rcommaaccent period -73
+KPX rcommaaccent q -8
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/ITCAvantGarde-Demi.afm b/test/user-template/user/psprint/fontmetric/ITCAvantGarde-Demi.afm
new file mode 100644
index 000000000000..ed71a3e12a91
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/ITCAvantGarde-Demi.afm
@@ -0,0 +1,1277 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Mon Jun 23 16:39:17 1997
+Comment UniqueID 43085
+Comment VMusage 35038 46063
+FontName AvantGarde-Demi
+FullName ITC Avant Garde Gothic Demi
+FamilyName ITC Avant Garde Gothic
+Weight Demi
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -123 -251 1222 1021
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation.
+EncodingScheme AdobeStandardEncoding
+CapHeight 740
+XHeight 555
+Ascender 740
+Descender -192
+StdHW 122
+StdVW 133
+StartCharMetrics 314
+C 32 ; WX 280 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 280 ; N exclam ; B 73 0 206 740 ;
+C 34 ; WX 360 ; N quotedbl ; B 19 444 341 740 ;
+C 35 ; WX 560 ; N numbersign ; B 29 0 525 700 ;
+C 36 ; WX 560 ; N dollar ; B 58 -86 501 857 ;
+C 37 ; WX 860 ; N percent ; B 36 -15 822 755 ;
+C 38 ; WX 680 ; N ampersand ; B 34 -15 665 755 ;
+C 39 ; WX 280 ; N quoteright ; B 72 466 205 740 ;
+C 40 ; WX 380 ; N parenleft ; B 74 -157 350 754 ;
+C 41 ; WX 380 ; N parenright ; B 37 -157 313 754 ;
+C 42 ; WX 440 ; N asterisk ; B 67 457 374 755 ;
+C 43 ; WX 600 ; N plus ; B 48 0 552 506 ;
+C 44 ; WX 280 ; N comma ; B 73 -141 206 133 ;
+C 45 ; WX 420 ; N hyphen ; B 71 230 349 348 ;
+C 46 ; WX 280 ; N period ; B 73 0 206 133 ;
+C 47 ; WX 460 ; N slash ; B 6 -100 454 740 ;
+C 48 ; WX 560 ; N zero ; B 32 -15 529 755 ;
+C 49 ; WX 560 ; N one ; B 137 0 363 740 ;
+C 50 ; WX 560 ; N two ; B 36 0 523 755 ;
+C 51 ; WX 560 ; N three ; B 28 -15 532 755 ;
+C 52 ; WX 560 ; N four ; B 15 0 545 740 ;
+C 53 ; WX 560 ; N five ; B 25 -15 535 740 ;
+C 54 ; WX 560 ; N six ; B 23 -15 536 739 ;
+C 55 ; WX 560 ; N seven ; B 62 0 498 740 ;
+C 56 ; WX 560 ; N eight ; B 33 -15 527 755 ;
+C 57 ; WX 560 ; N nine ; B 24 0 537 754 ;
+C 58 ; WX 280 ; N colon ; B 73 0 206 555 ;
+C 59 ; WX 280 ; N semicolon ; B 73 -141 206 555 ;
+C 60 ; WX 600 ; N less ; B 46 -8 554 514 ;
+C 61 ; WX 600 ; N equal ; B 48 81 552 425 ;
+C 62 ; WX 600 ; N greater ; B 46 -8 554 514 ;
+C 63 ; WX 560 ; N question ; B 38 0 491 755 ;
+C 64 ; WX 740 ; N at ; B 50 -12 750 712 ;
+C 65 ; WX 740 ; N A ; B 7 0 732 740 ;
+C 66 ; WX 580 ; N B ; B 70 0 551 740 ;
+C 67 ; WX 780 ; N C ; B 34 -15 766 755 ;
+C 68 ; WX 700 ; N D ; B 63 0 657 740 ;
+C 69 ; WX 520 ; N E ; B 61 0 459 740 ;
+C 70 ; WX 480 ; N F ; B 61 0 438 740 ;
+C 71 ; WX 840 ; N G ; B 27 -15 817 755 ;
+C 72 ; WX 680 ; N H ; B 71 0 610 740 ;
+C 73 ; WX 280 ; N I ; B 72 0 209 740 ;
+C 74 ; WX 480 ; N J ; B 2 -15 409 740 ;
+C 75 ; WX 620 ; N K ; B 89 0 620 740 ;
+C 76 ; WX 440 ; N L ; B 72 0 435 740 ;
+C 77 ; WX 900 ; N M ; B 63 0 837 740 ;
+C 78 ; WX 740 ; N N ; B 70 0 671 740 ;
+C 79 ; WX 840 ; N O ; B 33 -15 807 755 ;
+C 80 ; WX 560 ; N P ; B 72 0 545 740 ;
+C 81 ; WX 840 ; N Q ; B 32 -15 824 755 ;
+C 82 ; WX 580 ; N R ; B 64 0 565 740 ;
+C 83 ; WX 520 ; N S ; B 12 -15 493 755 ;
+C 84 ; WX 420 ; N T ; B 6 0 418 740 ;
+C 85 ; WX 640 ; N U ; B 55 -15 585 740 ;
+C 86 ; WX 700 ; N V ; B 8 0 695 740 ;
+C 87 ; WX 900 ; N W ; B 7 0 899 740 ;
+C 88 ; WX 680 ; N X ; B 4 0 676 740 ;
+C 89 ; WX 620 ; N Y ; B -2 0 622 740 ;
+C 90 ; WX 500 ; N Z ; B 19 0 481 740 ;
+C 91 ; WX 320 ; N bracketleft ; B 66 -157 284 754 ;
+C 92 ; WX 640 ; N backslash ; B 96 -100 544 740 ;
+C 93 ; WX 320 ; N bracketright ; B 36 -157 254 754 ;
+C 94 ; WX 600 ; N asciicircum ; B 73 375 527 740 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 280 ; N quoteleft ; B 72 466 205 740 ;
+C 97 ; WX 660 ; N a ; B 27 -18 613 574 ;
+C 98 ; WX 660 ; N b ; B 47 -18 632 740 ;
+C 99 ; WX 640 ; N c ; B 37 -18 610 574 ;
+C 100 ; WX 660 ; N d ; B 34 -18 618 740 ;
+C 101 ; WX 640 ; N e ; B 31 -18 610 574 ;
+C 102 ; WX 280 ; N f ; B 15 0 280 755 ; L i fi ; L l fl ;
+C 103 ; WX 660 ; N g ; B 32 -226 623 574 ;
+C 104 ; WX 600 ; N h ; B 54 0 546 740 ;
+C 105 ; WX 240 ; N i ; B 53 0 186 740 ;
+C 106 ; WX 260 ; N j ; B 16 -185 205 740 ;
+C 107 ; WX 580 ; N k ; B 80 0 571 740 ;
+C 108 ; WX 240 ; N l ; B 54 0 187 740 ;
+C 109 ; WX 940 ; N m ; B 54 0 887 574 ;
+C 110 ; WX 600 ; N n ; B 54 0 547 574 ;
+C 111 ; WX 640 ; N o ; B 25 -18 615 574 ;
+C 112 ; WX 660 ; N p ; B 47 -185 629 574 ;
+C 113 ; WX 660 ; N q ; B 31 -185 613 574 ;
+C 114 ; WX 320 ; N r ; B 63 0 317 574 ;
+C 115 ; WX 440 ; N s ; B 19 -18 421 574 ;
+C 116 ; WX 300 ; N t ; B 21 0 299 740 ;
+C 117 ; WX 600 ; N u ; B 50 -18 544 555 ;
+C 118 ; WX 560 ; N v ; B 3 0 556 555 ;
+C 119 ; WX 800 ; N w ; B 11 0 789 555 ;
+C 120 ; WX 560 ; N x ; B 3 0 556 555 ;
+C 121 ; WX 580 ; N y ; B 8 -185 571 555 ;
+C 122 ; WX 460 ; N z ; B 20 0 442 555 ;
+C 123 ; WX 340 ; N braceleft ; B -3 -191 317 747 ;
+C 124 ; WX 600 ; N bar ; B 233 -250 366 750 ;
+C 125 ; WX 340 ; N braceright ; B 23 -191 343 747 ;
+C 126 ; WX 600 ; N asciitilde ; B 67 160 533 347 ;
+C 161 ; WX 280 ; N exclamdown ; B 74 -185 207 555 ;
+C 162 ; WX 560 ; N cent ; B 43 39 517 715 ;
+C 163 ; WX 560 ; N sterling ; B -2 0 562 755 ;
+C 164 ; WX 160 ; N fraction ; B -123 0 282 740 ;
+C 165 ; WX 560 ; N yen ; B -10 0 570 740 ;
+C 166 ; WX 560 ; N florin ; B 0 -151 512 824 ;
+C 167 ; WX 560 ; N section ; B 28 -158 530 755 ;
+C 168 ; WX 560 ; N currency ; B 27 69 534 577 ;
+C 169 ; WX 220 ; N quotesingle ; B 44 444 177 740 ;
+C 170 ; WX 480 ; N quotedblleft ; B 70 466 410 740 ;
+C 171 ; WX 460 ; N guillemotleft ; B 61 108 400 469 ;
+C 172 ; WX 240 ; N guilsinglleft ; B 50 108 190 469 ;
+C 173 ; WX 240 ; N guilsinglright ; B 50 108 190 469 ;
+C 174 ; WX 520 ; N fi ; B 25 0 461 755 ;
+C 175 ; WX 520 ; N fl ; B 25 0 461 755 ;
+C 177 ; WX 500 ; N endash ; B 35 230 465 348 ;
+C 178 ; WX 560 ; N dagger ; B 51 -142 509 740 ;
+C 179 ; WX 560 ; N daggerdbl ; B 51 -142 509 740 ;
+C 180 ; WX 280 ; N periodcentered ; B 73 187 206 320 ;
+C 182 ; WX 600 ; N paragraph ; B -7 -103 607 740 ;
+C 183 ; WX 600 ; N bullet ; B 148 222 453 532 ;
+C 184 ; WX 280 ; N quotesinglbase ; B 72 -141 205 133 ;
+C 185 ; WX 480 ; N quotedblbase ; B 70 -141 410 133 ;
+C 186 ; WX 480 ; N quotedblright ; B 70 466 410 740 ;
+C 187 ; WX 460 ; N guillemotright ; B 61 108 400 469 ;
+C 188 ; WX 1000 ; N ellipsis ; B 100 0 899 133 ;
+C 189 ; WX 1280 ; N perthousand ; B 36 -15 1222 755 ;
+C 191 ; WX 560 ; N questiondown ; B 68 -200 521 555 ;
+C 193 ; WX 420 ; N grave ; B 50 624 329 851 ;
+C 194 ; WX 420 ; N acute ; B 89 624 368 851 ;
+C 195 ; WX 540 ; N circumflex ; B 71 636 470 774 ;
+C 196 ; WX 480 ; N tilde ; B 44 636 437 767 ;
+C 197 ; WX 420 ; N macron ; B 72 648 349 759 ;
+C 198 ; WX 480 ; N breve ; B 42 633 439 770 ;
+C 199 ; WX 280 ; N dotaccent ; B 74 636 207 769 ;
+C 200 ; WX 500 ; N dieresis ; B 78 636 422 769 ;
+C 202 ; WX 360 ; N ring ; B 73 619 288 834 ;
+C 203 ; WX 340 ; N cedilla ; B 98 -251 298 6 ;
+C 205 ; WX 700 ; N hungarumlaut ; B 120 610 626 849 ;
+C 206 ; WX 340 ; N ogonek ; B 79 -195 262 9 ;
+C 207 ; WX 540 ; N caron ; B 71 636 470 774 ;
+C 208 ; WX 1000 ; N emdash ; B 35 230 965 348 ;
+C 225 ; WX 900 ; N AE ; B -5 0 824 740 ;
+C 227 ; WX 360 ; N ordfeminine ; B 19 438 334 755 ;
+C 232 ; WX 480 ; N Lslash ; B 26 0 460 740 ;
+C 233 ; WX 840 ; N Oslash ; B 33 -71 807 814 ;
+C 234 ; WX 1060 ; N OE ; B 37 -15 1007 755 ;
+C 235 ; WX 360 ; N ordmasculine ; B 23 438 338 755 ;
+C 241 ; WX 1080 ; N ae ; B 29 -18 1049 574 ;
+C 245 ; WX 240 ; N dotlessi ; B 53 0 186 555 ;
+C 248 ; WX 320 ; N lslash ; B 34 0 305 740 ;
+C 249 ; WX 660 ; N oslash ; B 35 -50 625 608 ;
+C 250 ; WX 1080 ; N oe ; B 30 -18 1050 574 ;
+C 251 ; WX 600 ; N germandbls ; B 51 -18 585 755 ;
+C -1 ; WX 280 ; N Idieresis ; B -32 0 312 939 ;
+C -1 ; WX 640 ; N eacute ; B 31 -18 610 851 ;
+C -1 ; WX 660 ; N abreve ; B 27 -18 613 770 ;
+C -1 ; WX 600 ; N uhungarumlaut ; B 50 -18 576 849 ;
+C -1 ; WX 640 ; N ecaron ; B 31 -18 610 774 ;
+C -1 ; WX 620 ; N Ydieresis ; B -2 0 622 939 ;
+C -1 ; WX 600 ; N divide ; B 48 -20 552 526 ;
+C -1 ; WX 620 ; N Yacute ; B -2 0 622 1021 ;
+C -1 ; WX 740 ; N Acircumflex ; B 7 0 732 944 ;
+C -1 ; WX 660 ; N aacute ; B 27 -18 613 851 ;
+C -1 ; WX 640 ; N Ucircumflex ; B 55 -15 585 944 ;
+C -1 ; WX 580 ; N yacute ; B 8 -185 571 851 ;
+C -1 ; WX 440 ; N scommaaccent ; B 19 -229 421 574 ;
+C -1 ; WX 640 ; N ecircumflex ; B 31 -18 610 774 ;
+C -1 ; WX 640 ; N Uring ; B 55 -15 585 969 ;
+C -1 ; WX 640 ; N Udieresis ; B 55 -15 585 939 ;
+C -1 ; WX 660 ; N aogonek ; B 27 -195 613 574 ;
+C -1 ; WX 640 ; N Uacute ; B 55 -15 585 1021 ;
+C -1 ; WX 600 ; N uogonek ; B 50 -195 544 555 ;
+C -1 ; WX 520 ; N Edieresis ; B 61 0 459 939 ;
+C -1 ; WX 742 ; N Dcroat ; B 25 0 691 740 ;
+C -1 ; WX 351 ; N commaaccent ; B 48 -229 223 -54 ;
+C -1 ; WX 740 ; N copyright ; B -12 -12 752 752 ;
+C -1 ; WX 520 ; N Emacron ; B 61 0 459 944 ;
+C -1 ; WX 640 ; N ccaron ; B 37 -18 610 774 ;
+C -1 ; WX 660 ; N aring ; B 27 -18 613 834 ;
+C -1 ; WX 740 ; N Ncommaaccent ; B 70 -209 671 740 ;
+C -1 ; WX 240 ; N lacute ; B -1 0 278 1011 ;
+C -1 ; WX 660 ; N agrave ; B 27 -18 613 851 ;
+C -1 ; WX 420 ; N Tcommaaccent ; B 6 -229 418 740 ;
+C -1 ; WX 780 ; N Cacute ; B 34 -15 766 1021 ;
+C -1 ; WX 660 ; N atilde ; B 27 -18 613 767 ;
+C -1 ; WX 520 ; N Edotaccent ; B 61 0 459 954 ;
+C -1 ; WX 440 ; N scaron ; B 19 -18 421 774 ;
+C -1 ; WX 440 ; N scedilla ; B 19 -251 421 574 ;
+C -1 ; WX 240 ; N iacute ; B 24 0 303 851 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 580 ; N Rcaron ; B 64 0 565 959 ;
+C -1 ; WX 840 ; N Gcommaaccent ; B 27 -229 817 755 ;
+C -1 ; WX 600 ; N ucircumflex ; B 50 -18 544 774 ;
+C -1 ; WX 660 ; N acircumflex ; B 27 -18 613 774 ;
+C -1 ; WX 740 ; N Amacron ; B 7 0 732 944 ;
+C -1 ; WX 320 ; N rcaron ; B -39 0 360 774 ;
+C -1 ; WX 640 ; N ccedilla ; B 37 -251 610 574 ;
+C -1 ; WX 500 ; N Zdotaccent ; B 19 0 481 954 ;
+C -1 ; WX 560 ; N Thorn ; B 72 0 545 740 ;
+C -1 ; WX 840 ; N Omacron ; B 33 -15 807 944 ;
+C -1 ; WX 580 ; N Racute ; B 64 0 565 1021 ;
+C -1 ; WX 520 ; N Sacute ; B 12 -15 493 1021 ;
+C -1 ; WX 800 ; N dcaron ; B 34 -18 828 740 ;
+C -1 ; WX 640 ; N Umacron ; B 55 -15 585 944 ;
+C -1 ; WX 600 ; N uring ; B 50 -18 544 834 ;
+C -1 ; WX 336 ; N threesuperior ; B 8 287 328 749 ;
+C -1 ; WX 840 ; N Ograve ; B 33 -15 807 1021 ;
+C -1 ; WX 740 ; N Agrave ; B 7 0 732 1021 ;
+C -1 ; WX 740 ; N Abreve ; B 7 0 732 955 ;
+C -1 ; WX 600 ; N multiply ; B 59 12 541 494 ;
+C -1 ; WX 600 ; N uacute ; B 50 -18 544 851 ;
+C -1 ; WX 420 ; N Tcaron ; B 6 0 418 959 ;
+C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 580 ; N ydieresis ; B 8 -185 571 769 ;
+C -1 ; WX 740 ; N Nacute ; B 70 0 671 1021 ;
+C -1 ; WX 240 ; N icircumflex ; B -79 0 320 774 ;
+C -1 ; WX 520 ; N Ecircumflex ; B 61 0 460 944 ;
+C -1 ; WX 660 ; N adieresis ; B 27 -18 613 769 ;
+C -1 ; WX 640 ; N edieresis ; B 31 -18 610 769 ;
+C -1 ; WX 640 ; N cacute ; B 37 -18 610 851 ;
+C -1 ; WX 600 ; N nacute ; B 54 0 547 851 ;
+C -1 ; WX 600 ; N umacron ; B 50 -18 544 759 ;
+C -1 ; WX 740 ; N Ncaron ; B 70 0 671 959 ;
+C -1 ; WX 280 ; N Iacute ; B 44 0 323 1021 ;
+C -1 ; WX 600 ; N plusminus ; B 48 -62 552 556 ;
+C -1 ; WX 600 ; N brokenbar ; B 233 -175 366 675 ;
+C -1 ; WX 740 ; N registered ; B -12 -12 752 752 ;
+C -1 ; WX 840 ; N Gbreve ; B 27 -15 817 955 ;
+C -1 ; WX 280 ; N Idotaccent ; B 72 0 209 954 ;
+C -1 ; WX 713 ; N summation ; B 14 -108 695 752 ;
+C -1 ; WX 520 ; N Egrave ; B 61 0 459 1021 ;
+C -1 ; WX 320 ; N racute ; B 63 0 348 851 ;
+C -1 ; WX 640 ; N omacron ; B 25 -18 615 759 ;
+C -1 ; WX 500 ; N Zacute ; B 19 0 481 1021 ;
+C -1 ; WX 500 ; N Zcaron ; B 19 0 481 944 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 742 ; N Eth ; B 25 0 691 740 ;
+C -1 ; WX 780 ; N Ccedilla ; B 34 -251 766 755 ;
+C -1 ; WX 240 ; N lcommaaccent ; B -7 -229 187 740 ;
+C -1 ; WX 400 ; N tcaron ; B 21 0 438 786 ;
+C -1 ; WX 640 ; N eogonek ; B 31 -195 610 574 ;
+C -1 ; WX 640 ; N Uogonek ; B 55 -195 585 740 ;
+C -1 ; WX 740 ; N Aacute ; B 7 0 732 1021 ;
+C -1 ; WX 740 ; N Adieresis ; B 7 0 732 939 ;
+C -1 ; WX 640 ; N egrave ; B 31 -18 610 851 ;
+C -1 ; WX 460 ; N zacute ; B 20 0 442 851 ;
+C -1 ; WX 240 ; N iogonek ; B -14 -195 186 740 ;
+C -1 ; WX 840 ; N Oacute ; B 33 -15 807 1021 ;
+C -1 ; WX 640 ; N oacute ; B 25 -18 615 851 ;
+C -1 ; WX 660 ; N amacron ; B 27 -18 613 759 ;
+C -1 ; WX 440 ; N sacute ; B 19 -18 421 851 ;
+C -1 ; WX 240 ; N idieresis ; B -52 0 292 769 ;
+C -1 ; WX 840 ; N Ocircumflex ; B 33 -15 807 944 ;
+C -1 ; WX 640 ; N Ugrave ; B 55 -15 585 1021 ;
+C -1 ; WX 612 ; N Delta ; B 2 0 612 692 ;
+C -1 ; WX 660 ; N thorn ; B 47 -185 629 740 ;
+C -1 ; WX 336 ; N twosuperior ; B 13 296 322 749 ;
+C -1 ; WX 840 ; N Odieresis ; B 33 -15 807 939 ;
+C -1 ; WX 576 ; N mu ; B 38 -187 539 555 ;
+C -1 ; WX 240 ; N igrave ; B -65 0 214 851 ;
+C -1 ; WX 640 ; N ohungarumlaut ; B 25 -18 615 849 ;
+C -1 ; WX 520 ; N Eogonek ; B 61 -195 459 740 ;
+C -1 ; WX 660 ; N dcroat ; B 34 -18 700 740 ;
+C -1 ; WX 840 ; N threequarters ; B 18 0 803 749 ;
+C -1 ; WX 520 ; N Scedilla ; B 12 -251 493 755 ;
+C -1 ; WX 380 ; N lcaron ; B 54 0 398 740 ;
+C -1 ; WX 620 ; N Kcommaaccent ; B 89 -209 620 740 ;
+C -1 ; WX 440 ; N Lacute ; B 72 0 435 1021 ;
+C -1 ; WX 1000 ; N trademark ; B 9 296 821 740 ;
+C -1 ; WX 640 ; N edotaccent ; B 31 -18 610 769 ;
+C -1 ; WX 280 ; N Igrave ; B -45 0 234 1021 ;
+C -1 ; WX 280 ; N Imacron ; B 2 0 279 944 ;
+C -1 ; WX 440 ; N Lcaron ; B 72 0 488 740 ;
+C -1 ; WX 840 ; N onehalf ; B 62 0 771 740 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 640 ; N ocircumflex ; B 25 -18 615 774 ;
+C -1 ; WX 600 ; N ntilde ; B 54 0 547 767 ;
+C -1 ; WX 640 ; N Uhungarumlaut ; B 55 -15 596 1019 ;
+C -1 ; WX 520 ; N Eacute ; B 61 0 459 1021 ;
+C -1 ; WX 640 ; N emacron ; B 31 -18 610 759 ;
+C -1 ; WX 660 ; N gbreve ; B 32 -226 623 770 ;
+C -1 ; WX 840 ; N onequarter ; B 92 0 746 740 ;
+C -1 ; WX 520 ; N Scaron ; B 12 -15 493 944 ;
+C -1 ; WX 520 ; N Scommaaccent ; B 12 -229 493 755 ;
+C -1 ; WX 840 ; N Ohungarumlaut ; B 33 -15 807 1019 ;
+C -1 ; WX 400 ; N degree ; B 57 426 343 712 ;
+C -1 ; WX 640 ; N ograve ; B 25 -18 615 851 ;
+C -1 ; WX 780 ; N Ccaron ; B 34 -15 766 959 ;
+C -1 ; WX 600 ; N ugrave ; B 50 -18 544 851 ;
+C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 700 ; N Dcaron ; B 63 0 657 959 ;
+C -1 ; WX 320 ; N rcommaaccent ; B -8 -229 317 574 ;
+C -1 ; WX 740 ; N Ntilde ; B 70 0 671 937 ;
+C -1 ; WX 640 ; N otilde ; B 25 -18 615 767 ;
+C -1 ; WX 580 ; N Rcommaaccent ; B 64 -209 565 740 ;
+C -1 ; WX 440 ; N Lcommaaccent ; B 72 -229 435 740 ;
+C -1 ; WX 740 ; N Atilde ; B 7 0 732 937 ;
+C -1 ; WX 740 ; N Aogonek ; B 7 -195 732 740 ;
+C -1 ; WX 740 ; N Aring ; B 7 0 732 969 ;
+C -1 ; WX 840 ; N Otilde ; B 33 -15 807 937 ;
+C -1 ; WX 460 ; N zdotaccent ; B 20 0 442 769 ;
+C -1 ; WX 520 ; N Ecaron ; B 61 0 460 959 ;
+C -1 ; WX 280 ; N Iogonek ; B 11 -195 209 740 ;
+C -1 ; WX 580 ; N kcommaaccent ; B 80 -209 571 740 ;
+C -1 ; WX 600 ; N minus ; B 48 193 552 313 ;
+C -1 ; WX 280 ; N Icircumflex ; B -59 0 340 944 ;
+C -1 ; WX 600 ; N ncaron ; B 54 0 547 774 ;
+C -1 ; WX 300 ; N tcommaaccent ; B 21 -229 299 740 ;
+C -1 ; WX 600 ; N logicalnot ; B 48 108 552 425 ;
+C -1 ; WX 640 ; N odieresis ; B 25 -18 615 769 ;
+C -1 ; WX 600 ; N udieresis ; B 50 -18 544 769 ;
+C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 660 ; N gcommaaccent ; B 32 -226 623 800 ;
+C -1 ; WX 640 ; N eth ; B 27 -18 616 754 ;
+C -1 ; WX 460 ; N zcaron ; B 20 0 455 774 ;
+C -1 ; WX 600 ; N ncommaaccent ; B 54 -209 547 574 ;
+C -1 ; WX 336 ; N onesuperior ; B 72 296 223 740 ;
+C -1 ; WX 240 ; N imacron ; B -18 0 259 759 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 933
+KPX A T -73
+KPX A Tcaron -73
+KPX A Tcommaaccent -73
+KPX A V -127
+KPX A W -96
+KPX A Y -139
+KPX A Yacute -139
+KPX A Ydieresis -139
+KPX A v -50
+KPX A w -50
+KPX A y -50
+KPX A yacute -50
+KPX A ydieresis -50
+KPX Aacute T -73
+KPX Aacute Tcaron -73
+KPX Aacute Tcommaaccent -73
+KPX Aacute V -127
+KPX Aacute W -96
+KPX Aacute Y -139
+KPX Aacute Yacute -139
+KPX Aacute Ydieresis -139
+KPX Aacute v -50
+KPX Aacute w -50
+KPX Aacute y -50
+KPX Aacute yacute -50
+KPX Aacute ydieresis -50
+KPX Abreve T -73
+KPX Abreve Tcaron -73
+KPX Abreve Tcommaaccent -73
+KPX Abreve V -127
+KPX Abreve W -96
+KPX Abreve Y -139
+KPX Abreve Yacute -139
+KPX Abreve Ydieresis -139
+KPX Abreve v -50
+KPX Abreve w -50
+KPX Abreve y -50
+KPX Abreve yacute -50
+KPX Abreve ydieresis -50
+KPX Acircumflex T -73
+KPX Acircumflex Tcaron -73
+KPX Acircumflex Tcommaaccent -73
+KPX Acircumflex V -127
+KPX Acircumflex W -96
+KPX Acircumflex Y -139
+KPX Acircumflex Yacute -139
+KPX Acircumflex Ydieresis -139
+KPX Acircumflex v -50
+KPX Acircumflex w -50
+KPX Acircumflex y -50
+KPX Acircumflex yacute -50
+KPX Acircumflex ydieresis -50
+KPX Adieresis T -73
+KPX Adieresis Tcaron -73
+KPX Adieresis Tcommaaccent -73
+KPX Adieresis V -127
+KPX Adieresis W -96
+KPX Adieresis Y -139
+KPX Adieresis Yacute -139
+KPX Adieresis Ydieresis -139
+KPX Adieresis v -50
+KPX Adieresis w -50
+KPX Adieresis y -50
+KPX Adieresis yacute -50
+KPX Adieresis ydieresis -50
+KPX Agrave T -73
+KPX Agrave Tcaron -73
+KPX Agrave Tcommaaccent -73
+KPX Agrave V -127
+KPX Agrave W -96
+KPX Agrave Y -139
+KPX Agrave Yacute -139
+KPX Agrave Ydieresis -139
+KPX Agrave v -50
+KPX Agrave w -50
+KPX Agrave y -50
+KPX Agrave yacute -50
+KPX Agrave ydieresis -50
+KPX Amacron T -73
+KPX Amacron Tcaron -73
+KPX Amacron Tcommaaccent -73
+KPX Amacron V -127
+KPX Amacron W -96
+KPX Amacron Y -139
+KPX Amacron Yacute -139
+KPX Amacron Ydieresis -139
+KPX Amacron v -50
+KPX Amacron w -50
+KPX Amacron y -50
+KPX Amacron yacute -50
+KPX Amacron ydieresis -50
+KPX Aogonek T -73
+KPX Aogonek Tcaron -73
+KPX Aogonek Tcommaaccent -73
+KPX Aogonek V -127
+KPX Aogonek W -96
+KPX Aogonek Y -139
+KPX Aogonek Yacute -139
+KPX Aogonek Ydieresis -139
+KPX Aogonek v -50
+KPX Aogonek w -50
+KPX Aogonek y -50
+KPX Aogonek yacute -50
+KPX Aogonek ydieresis -50
+KPX Aring T -73
+KPX Aring Tcaron -73
+KPX Aring Tcommaaccent -73
+KPX Aring V -127
+KPX Aring W -96
+KPX Aring Y -139
+KPX Aring Yacute -139
+KPX Aring Ydieresis -139
+KPX Aring v -50
+KPX Aring w -50
+KPX Aring y -50
+KPX Aring yacute -50
+KPX Aring ydieresis -50
+KPX Atilde T -73
+KPX Atilde Tcaron -73
+KPX Atilde Tcommaaccent -73
+KPX Atilde V -127
+KPX Atilde W -96
+KPX Atilde Y -139
+KPX Atilde Yacute -139
+KPX Atilde Ydieresis -139
+KPX Atilde v -50
+KPX Atilde w -50
+KPX Atilde y -50
+KPX Atilde yacute -50
+KPX Atilde ydieresis -50
+KPX F A -95
+KPX F Aacute -95
+KPX F Abreve -95
+KPX F Acircumflex -95
+KPX F Adieresis -95
+KPX F Agrave -95
+KPX F Amacron -95
+KPX F Aogonek -95
+KPX F Aring -95
+KPX F Atilde -95
+KPX F comma -42
+KPX F period -42
+KPX L T -50
+KPX L Tcaron -50
+KPX L Tcommaaccent -50
+KPX L V -90
+KPX L W -90
+KPX L Y -90
+KPX L Yacute -90
+KPX L Ydieresis -90
+KPX L y -75
+KPX L yacute -75
+KPX L ydieresis -75
+KPX Lacute T -50
+KPX Lacute Tcaron -50
+KPX Lacute Tcommaaccent -50
+KPX Lacute V -90
+KPX Lacute W -90
+KPX Lacute Y -90
+KPX Lacute Yacute -90
+KPX Lacute Ydieresis -90
+KPX Lacute y -75
+KPX Lacute yacute -75
+KPX Lacute ydieresis -75
+KPX Lcommaaccent T -50
+KPX Lcommaaccent Tcaron -50
+KPX Lcommaaccent Tcommaaccent -50
+KPX Lcommaaccent V -90
+KPX Lcommaaccent W -90
+KPX Lcommaaccent Y -90
+KPX Lcommaaccent Yacute -90
+KPX Lcommaaccent Ydieresis -90
+KPX Lcommaaccent y -75
+KPX Lcommaaccent yacute -75
+KPX Lcommaaccent ydieresis -75
+KPX Lslash T -50
+KPX Lslash Tcaron -50
+KPX Lslash Tcommaaccent -50
+KPX Lslash V -90
+KPX Lslash W -90
+KPX Lslash Y -90
+KPX Lslash Yacute -90
+KPX Lslash Ydieresis -90
+KPX Lslash y -75
+KPX Lslash yacute -75
+KPX Lslash ydieresis -75
+KPX P A -100
+KPX P Aacute -100
+KPX P Abreve -100
+KPX P Acircumflex -100
+KPX P Adieresis -100
+KPX P Agrave -100
+KPX P Amacron -100
+KPX P Aogonek -100
+KPX P Aring -100
+KPX P Atilde -100
+KPX P comma -16
+KPX P period -16
+KPX R T 16
+KPX R Tcaron 16
+KPX R Tcommaaccent 16
+KPX R V -26
+KPX R W -20
+KPX R Y -20
+KPX R Yacute -20
+KPX R Ydieresis -20
+KPX R y 31
+KPX R yacute 31
+KPX R ydieresis 31
+KPX Racute T 16
+KPX Racute Tcaron 16
+KPX Racute Tcommaaccent 16
+KPX Racute V -26
+KPX Racute W -20
+KPX Racute Y -20
+KPX Racute Yacute -20
+KPX Racute Ydieresis -20
+KPX Racute y 31
+KPX Racute yacute 31
+KPX Racute ydieresis 31
+KPX Rcaron T 16
+KPX Rcaron Tcaron 16
+KPX Rcaron Tcommaaccent 16
+KPX Rcaron V -26
+KPX Rcaron W -20
+KPX Rcaron Y -20
+KPX Rcaron Yacute -20
+KPX Rcaron Ydieresis -20
+KPX Rcaron y 31
+KPX Rcaron yacute 31
+KPX Rcaron ydieresis 31
+KPX Rcommaaccent T 16
+KPX Rcommaaccent Tcaron 16
+KPX Rcommaaccent Tcommaaccent 16
+KPX Rcommaaccent V -26
+KPX Rcommaaccent W -20
+KPX Rcommaaccent Y -20
+KPX Rcommaaccent Yacute -20
+KPX Rcommaaccent Ydieresis -20
+KPX Rcommaaccent y 31
+KPX Rcommaaccent yacute 31
+KPX Rcommaaccent ydieresis 31
+KPX T A -70
+KPX T Aacute -70
+KPX T Abreve -70
+KPX T Acircumflex -70
+KPX T Adieresis -70
+KPX T Agrave -70
+KPX T Amacron -70
+KPX T Aogonek -70
+KPX T Aring -70
+KPX T Atilde -70
+KPX T a -40
+KPX T aacute -40
+KPX T abreve -40
+KPX T acircumflex -40
+KPX T adieresis -40
+KPX T agrave -40
+KPX T amacron -40
+KPX T aogonek -40
+KPX T aring -40
+KPX T atilde -40
+KPX T c -50
+KPX T cacute -50
+KPX T ccaron -50
+KPX T ccedilla -50
+KPX T colon -12
+KPX T comma 4
+KPX T e -50
+KPX T eacute -50
+KPX T ecaron -50
+KPX T ecircumflex -50
+KPX T edieresis -50
+KPX T edotaccent -50
+KPX T egrave -50
+KPX T emacron -50
+KPX T eogonek -50
+KPX T hyphen -10
+KPX T i -5
+KPX T iacute 10
+KPX T icircumflex 10
+KPX T idieresis 10
+KPX T igrave 10
+KPX T imacron 10
+KPX T iogonek -5
+KPX T o -50
+KPX T oacute -50
+KPX T ocircumflex -50
+KPX T odieresis -50
+KPX T ograve -50
+KPX T ohungarumlaut -50
+KPX T omacron -50
+KPX T oslash -50
+KPX T otilde -50
+KPX T period 4
+KPX T r -42
+KPX T rcommaaccent -42
+KPX T s -43
+KPX T sacute -43
+KPX T scedilla -43
+KPX T scommaaccent -43
+KPX T semicolon -12
+KPX T u -56
+KPX T uacute -56
+KPX T ucircumflex -56
+KPX T udieresis -56
+KPX T ugrave -56
+KPX T uhungarumlaut -56
+KPX T umacron -56
+KPX T uogonek -56
+KPX T uring -56
+KPX T w -15
+KPX T y -12
+KPX T yacute -12
+KPX T ydieresis -12
+KPX Tcaron A -70
+KPX Tcaron Aacute -70
+KPX Tcaron Abreve -70
+KPX Tcaron Acircumflex -70
+KPX Tcaron Adieresis -70
+KPX Tcaron Agrave -70
+KPX Tcaron Amacron -70
+KPX Tcaron Aogonek -70
+KPX Tcaron Aring -70
+KPX Tcaron Atilde -70
+KPX Tcaron a -40
+KPX Tcaron aacute -40
+KPX Tcaron abreve -40
+KPX Tcaron acircumflex -40
+KPX Tcaron adieresis -40
+KPX Tcaron agrave -40
+KPX Tcaron amacron -40
+KPX Tcaron aogonek -40
+KPX Tcaron aring -40
+KPX Tcaron atilde -40
+KPX Tcaron c -50
+KPX Tcaron cacute -50
+KPX Tcaron ccaron -50
+KPX Tcaron ccedilla -50
+KPX Tcaron colon -12
+KPX Tcaron comma 4
+KPX Tcaron e -50
+KPX Tcaron eacute -50
+KPX Tcaron ecaron -50
+KPX Tcaron ecircumflex -50
+KPX Tcaron edieresis -50
+KPX Tcaron edotaccent -50
+KPX Tcaron egrave -50
+KPX Tcaron emacron -50
+KPX Tcaron eogonek -50
+KPX Tcaron hyphen -10
+KPX Tcaron i -5
+KPX Tcaron iacute 10
+KPX Tcaron icircumflex 10
+KPX Tcaron idieresis 10
+KPX Tcaron igrave 10
+KPX Tcaron imacron 10
+KPX Tcaron iogonek -5
+KPX Tcaron o -50
+KPX Tcaron oacute -50
+KPX Tcaron ocircumflex -50
+KPX Tcaron odieresis -50
+KPX Tcaron ograve -50
+KPX Tcaron ohungarumlaut -50
+KPX Tcaron omacron -50
+KPX Tcaron oslash -50
+KPX Tcaron otilde -50
+KPX Tcaron period 4
+KPX Tcaron r -42
+KPX Tcaron racute -42
+KPX Tcaron rcaron -42
+KPX Tcaron rcommaaccent -42
+KPX Tcaron s -43
+KPX Tcaron sacute -43
+KPX Tcaron scaron -43
+KPX Tcaron scedilla -43
+KPX Tcaron scommaaccent -43
+KPX Tcaron semicolon -12
+KPX Tcaron u -56
+KPX Tcaron uacute -56
+KPX Tcaron ucircumflex -56
+KPX Tcaron udieresis -56
+KPX Tcaron ugrave -56
+KPX Tcaron uhungarumlaut -56
+KPX Tcaron umacron -56
+KPX Tcaron uogonek -56
+KPX Tcaron uring -56
+KPX Tcaron w -15
+KPX Tcaron y -12
+KPX Tcaron yacute -12
+KPX Tcaron ydieresis -12
+KPX Tcommaaccent A -70
+KPX Tcommaaccent Aacute -70
+KPX Tcommaaccent Abreve -70
+KPX Tcommaaccent Acircumflex -70
+KPX Tcommaaccent Adieresis -70
+KPX Tcommaaccent Agrave -70
+KPX Tcommaaccent Amacron -70
+KPX Tcommaaccent Aogonek -70
+KPX Tcommaaccent Aring -70
+KPX Tcommaaccent Atilde -70
+KPX Tcommaaccent a -40
+KPX Tcommaaccent aacute -40
+KPX Tcommaaccent abreve -40
+KPX Tcommaaccent acircumflex -40
+KPX Tcommaaccent adieresis -40
+KPX Tcommaaccent agrave -40
+KPX Tcommaaccent amacron -40
+KPX Tcommaaccent aogonek -40
+KPX Tcommaaccent aring -40
+KPX Tcommaaccent atilde -40
+KPX Tcommaaccent c -50
+KPX Tcommaaccent cacute -50
+KPX Tcommaaccent ccaron -50
+KPX Tcommaaccent ccedilla -50
+KPX Tcommaaccent colon -12
+KPX Tcommaaccent comma 4
+KPX Tcommaaccent e -50
+KPX Tcommaaccent eacute -50
+KPX Tcommaaccent ecaron -50
+KPX Tcommaaccent ecircumflex -50
+KPX Tcommaaccent edieresis -50
+KPX Tcommaaccent edotaccent -50
+KPX Tcommaaccent egrave -50
+KPX Tcommaaccent emacron -50
+KPX Tcommaaccent eogonek -50
+KPX Tcommaaccent hyphen -10
+KPX Tcommaaccent i -5
+KPX Tcommaaccent iacute 10
+KPX Tcommaaccent icircumflex 10
+KPX Tcommaaccent idieresis 10
+KPX Tcommaaccent igrave 10
+KPX Tcommaaccent imacron 10
+KPX Tcommaaccent iogonek -5
+KPX Tcommaaccent o -50
+KPX Tcommaaccent oacute -50
+KPX Tcommaaccent ocircumflex -50
+KPX Tcommaaccent odieresis -50
+KPX Tcommaaccent ograve -50
+KPX Tcommaaccent ohungarumlaut -50
+KPX Tcommaaccent omacron -50
+KPX Tcommaaccent oslash -50
+KPX Tcommaaccent otilde -50
+KPX Tcommaaccent period 4
+KPX Tcommaaccent r -42
+KPX Tcommaaccent racute -42
+KPX Tcommaaccent rcaron -42
+KPX Tcommaaccent rcommaaccent -42
+KPX Tcommaaccent s -43
+KPX Tcommaaccent sacute -43
+KPX Tcommaaccent scaron -43
+KPX Tcommaaccent scedilla -43
+KPX Tcommaaccent scommaaccent -43
+KPX Tcommaaccent semicolon -12
+KPX Tcommaaccent u -56
+KPX Tcommaaccent uacute -56
+KPX Tcommaaccent ucircumflex -56
+KPX Tcommaaccent udieresis -56
+KPX Tcommaaccent ugrave -56
+KPX Tcommaaccent uhungarumlaut -56
+KPX Tcommaaccent umacron -56
+KPX Tcommaaccent uogonek -56
+KPX Tcommaaccent uring -56
+KPX Tcommaaccent w -15
+KPX Tcommaaccent y -12
+KPX Tcommaaccent yacute -12
+KPX Tcommaaccent ydieresis -12
+KPX V A -125
+KPX V Aacute -125
+KPX V Abreve -125
+KPX V Acircumflex -125
+KPX V Adieresis -125
+KPX V Agrave -125
+KPX V Amacron -125
+KPX V Aogonek -125
+KPX V Aring -125
+KPX V Atilde -125
+KPX V a -80
+KPX V aacute -80
+KPX V abreve -80
+KPX V acircumflex -80
+KPX V adieresis -80
+KPX V agrave -80
+KPX V amacron -80
+KPX V aogonek -80
+KPX V aring -80
+KPX V atilde -80
+KPX V colon -13
+KPX V comma -13
+KPX V e -80
+KPX V eacute -80
+KPX V ecaron -80
+KPX V ecircumflex -80
+KPX V edieresis -80
+KPX V edotaccent -80
+KPX V egrave -80
+KPX V emacron -80
+KPX V eogonek -80
+KPX V hyphen -20
+KPX V i -9
+KPX V iacute -9
+KPX V iogonek -9
+KPX V o -80
+KPX V oacute -80
+KPX V ocircumflex -80
+KPX V odieresis -80
+KPX V ograve -80
+KPX V ohungarumlaut -80
+KPX V omacron -80
+KPX V oslash -80
+KPX V otilde -80
+KPX V period -13
+KPX V r -40
+KPX V racute -40
+KPX V rcaron -40
+KPX V rcommaaccent -40
+KPX V semicolon -13
+KPX V u -68
+KPX V uacute -68
+KPX V ucircumflex -68
+KPX V udieresis -68
+KPX V ugrave -68
+KPX V uhungarumlaut -68
+KPX V umacron -68
+KPX V uogonek -68
+KPX V uring -68
+KPX V y -15
+KPX V yacute -15
+KPX V ydieresis -15
+KPX W A -94
+KPX W Aacute -94
+KPX W Abreve -94
+KPX W Acircumflex -94
+KPX W Adieresis -94
+KPX W Agrave -94
+KPX W Amacron -94
+KPX W Aogonek -94
+KPX W Aring -94
+KPX W Atilde -94
+KPX W a -50
+KPX W aacute -50
+KPX W abreve -50
+KPX W acircumflex -50
+KPX W adieresis -50
+KPX W agrave -50
+KPX W amacron -50
+KPX W aogonek -50
+KPX W aring -50
+KPX W atilde -50
+KPX W colon -12
+KPX W comma -12
+KPX W e -50
+KPX W eacute -50
+KPX W ecaron -50
+KPX W ecircumflex -50
+KPX W edieresis -50
+KPX W edotaccent -50
+KPX W egrave -50
+KPX W emacron -50
+KPX W eogonek -50
+KPX W hyphen -10
+KPX W i -7
+KPX W iacute 10
+KPX W icircumflex 10
+KPX W idieresis 10
+KPX W igrave 10
+KPX W imacron 10
+KPX W iogonek -7
+KPX W o -50
+KPX W oacute -50
+KPX W ocircumflex -50
+KPX W odieresis -50
+KPX W ograve -50
+KPX W ohungarumlaut -50
+KPX W omacron -50
+KPX W oslash -50
+KPX W otilde -50
+KPX W period -12
+KPX W r -39
+KPX W racute -39
+KPX W rcommaaccent -39
+KPX W semicolon -12
+KPX W u -40
+KPX W uacute -40
+KPX W ucircumflex -40
+KPX W udieresis -40
+KPX W ugrave -40
+KPX W uhungarumlaut -40
+KPX W umacron -40
+KPX W uogonek -40
+KPX W uring -40
+KPX W y 1
+KPX W yacute 1
+KPX W ydieresis 1
+KPX Y A -138
+KPX Y Aacute -138
+KPX Y Abreve -138
+KPX Y Acircumflex -138
+KPX Y Adieresis -138
+KPX Y Agrave -138
+KPX Y Amacron -138
+KPX Y Aogonek -138
+KPX Y Aring -138
+KPX Y Atilde -138
+KPX Y a -100
+KPX Y aacute -100
+KPX Y abreve -100
+KPX Y acircumflex -100
+KPX Y adieresis -100
+KPX Y agrave -100
+KPX Y amacron -100
+KPX Y aogonek -100
+KPX Y aring -100
+KPX Y atilde -100
+KPX Y colon -8
+KPX Y comma -8
+KPX Y e -100
+KPX Y eacute -100
+KPX Y ecaron -100
+KPX Y ecircumflex -100
+KPX Y edieresis -100
+KPX Y edotaccent -100
+KPX Y egrave -100
+KPX Y emacron -100
+KPX Y eogonek -100
+KPX Y hyphen -60
+KPX Y i -5
+KPX Y iacute -5
+KPX Y icircumflex 10
+KPX Y idieresis 10
+KPX Y igrave 10
+KPX Y imacron 10
+KPX Y iogonek -5
+KPX Y o -100
+KPX Y oacute -100
+KPX Y ocircumflex -100
+KPX Y odieresis -100
+KPX Y ograve -100
+KPX Y ohungarumlaut -100
+KPX Y omacron -100
+KPX Y oslash -100
+KPX Y otilde -100
+KPX Y p -60
+KPX Y period -8
+KPX Y q -100
+KPX Y semicolon -8
+KPX Y u -82
+KPX Y uacute -82
+KPX Y ucircumflex -82
+KPX Y udieresis -82
+KPX Y ugrave -82
+KPX Y uhungarumlaut -82
+KPX Y umacron -82
+KPX Y uogonek -82
+KPX Y uring -82
+KPX Y v -25
+KPX Yacute A -138
+KPX Yacute Aacute -138
+KPX Yacute Abreve -138
+KPX Yacute Acircumflex -138
+KPX Yacute Adieresis -138
+KPX Yacute Agrave -138
+KPX Yacute Amacron -138
+KPX Yacute Aogonek -138
+KPX Yacute Aring -138
+KPX Yacute Atilde -138
+KPX Yacute a -100
+KPX Yacute aacute -100
+KPX Yacute abreve -100
+KPX Yacute acircumflex -100
+KPX Yacute adieresis -100
+KPX Yacute agrave -100
+KPX Yacute amacron -100
+KPX Yacute aogonek -100
+KPX Yacute aring -100
+KPX Yacute atilde -100
+KPX Yacute colon -8
+KPX Yacute comma -8
+KPX Yacute e -100
+KPX Yacute eacute -100
+KPX Yacute ecaron -100
+KPX Yacute ecircumflex -100
+KPX Yacute edieresis -100
+KPX Yacute edotaccent -100
+KPX Yacute egrave -100
+KPX Yacute emacron -100
+KPX Yacute eogonek -100
+KPX Yacute hyphen -60
+KPX Yacute i -5
+KPX Yacute iacute -5
+KPX Yacute icircumflex 10
+KPX Yacute idieresis 10
+KPX Yacute igrave 10
+KPX Yacute imacron 10
+KPX Yacute iogonek -5
+KPX Yacute o -100
+KPX Yacute oacute -100
+KPX Yacute ocircumflex -100
+KPX Yacute odieresis -100
+KPX Yacute ograve -100
+KPX Yacute ohungarumlaut -100
+KPX Yacute omacron -100
+KPX Yacute oslash -100
+KPX Yacute otilde -100
+KPX Yacute p -60
+KPX Yacute period -8
+KPX Yacute q -100
+KPX Yacute semicolon -8
+KPX Yacute u -82
+KPX Yacute uacute -82
+KPX Yacute ucircumflex -82
+KPX Yacute udieresis -82
+KPX Yacute ugrave -82
+KPX Yacute uhungarumlaut -82
+KPX Yacute umacron -82
+KPX Yacute uogonek -82
+KPX Yacute uring -82
+KPX Yacute v -25
+KPX Ydieresis A -138
+KPX Ydieresis Aacute -138
+KPX Ydieresis Abreve -138
+KPX Ydieresis Acircumflex -138
+KPX Ydieresis Adieresis -138
+KPX Ydieresis Agrave -138
+KPX Ydieresis Amacron -138
+KPX Ydieresis Aogonek -138
+KPX Ydieresis Aring -138
+KPX Ydieresis Atilde -138
+KPX Ydieresis a -100
+KPX Ydieresis aacute -100
+KPX Ydieresis abreve -100
+KPX Ydieresis acircumflex -100
+KPX Ydieresis adieresis -100
+KPX Ydieresis agrave -100
+KPX Ydieresis amacron -100
+KPX Ydieresis aogonek -100
+KPX Ydieresis aring -100
+KPX Ydieresis atilde -100
+KPX Ydieresis colon -8
+KPX Ydieresis comma -8
+KPX Ydieresis e -100
+KPX Ydieresis eacute -100
+KPX Ydieresis ecaron -100
+KPX Ydieresis ecircumflex -100
+KPX Ydieresis edieresis -100
+KPX Ydieresis edotaccent -100
+KPX Ydieresis egrave -100
+KPX Ydieresis emacron -100
+KPX Ydieresis eogonek -100
+KPX Ydieresis hyphen -60
+KPX Ydieresis i -5
+KPX Ydieresis iacute -5
+KPX Ydieresis icircumflex 10
+KPX Ydieresis idieresis 10
+KPX Ydieresis igrave 10
+KPX Ydieresis imacron 10
+KPX Ydieresis iogonek -5
+KPX Ydieresis o -100
+KPX Ydieresis oacute -100
+KPX Ydieresis ocircumflex -100
+KPX Ydieresis odieresis -100
+KPX Ydieresis ograve -100
+KPX Ydieresis ohungarumlaut -100
+KPX Ydieresis omacron -100
+KPX Ydieresis oslash -100
+KPX Ydieresis otilde -100
+KPX Ydieresis p -60
+KPX Ydieresis period -8
+KPX Ydieresis q -100
+KPX Ydieresis semicolon -8
+KPX Ydieresis u -82
+KPX Ydieresis uacute -82
+KPX Ydieresis ucircumflex -82
+KPX Ydieresis udieresis -82
+KPX Ydieresis ugrave -82
+KPX Ydieresis uhungarumlaut -82
+KPX Ydieresis umacron -82
+KPX Ydieresis uogonek -82
+KPX Ydieresis uring -82
+KPX Ydieresis v -25
+KPX f f 38
+KPX r c -27
+KPX r cacute -27
+KPX r ccaron -27
+KPX r ccedilla -27
+KPX r comma 9
+KPX r d -8
+KPX r dcroat -8
+KPX r e -8
+KPX r eacute -8
+KPX r ecaron -8
+KPX r ecircumflex -8
+KPX r edieresis -8
+KPX r edotaccent -8
+KPX r egrave -8
+KPX r emacron -8
+KPX r eogonek -8
+KPX r f 38
+KPX r g -8
+KPX r gbreve -8
+KPX r gcommaaccent -8
+KPX r hyphen -10
+KPX r m 5
+KPX r n 5
+KPX r nacute 5
+KPX r ncaron 5
+KPX r ncommaaccent 5
+KPX r ntilde 5
+KPX r o -18
+KPX r oacute -18
+KPX r ocircumflex -18
+KPX r odieresis -18
+KPX r ograve -18
+KPX r ohungarumlaut -18
+KPX r omacron -18
+KPX r oslash -18
+KPX r otilde -18
+KPX r period 9
+KPX r q -18
+KPX racute c -27
+KPX racute cacute -27
+KPX racute ccaron -27
+KPX racute ccedilla -27
+KPX racute comma 9
+KPX racute d -8
+KPX racute dcroat -8
+KPX racute e -8
+KPX racute eacute -8
+KPX racute ecaron -8
+KPX racute ecircumflex -8
+KPX racute edieresis -8
+KPX racute edotaccent -8
+KPX racute egrave -8
+KPX racute emacron -8
+KPX racute eogonek -8
+KPX racute f 38
+KPX racute g -8
+KPX racute gbreve -8
+KPX racute gcommaaccent -8
+KPX racute hyphen -10
+KPX racute m 5
+KPX racute n 5
+KPX racute nacute 5
+KPX racute ncaron 5
+KPX racute ncommaaccent 5
+KPX racute ntilde 5
+KPX racute o -18
+KPX racute oacute -18
+KPX racute ocircumflex -18
+KPX racute odieresis -18
+KPX racute ograve -18
+KPX racute ohungarumlaut -18
+KPX racute omacron -18
+KPX racute oslash -18
+KPX racute otilde -18
+KPX racute period 9
+KPX racute q -18
+KPX rcaron c -27
+KPX rcaron cacute -27
+KPX rcaron ccaron -27
+KPX rcaron ccedilla -27
+KPX rcaron comma 9
+KPX rcaron d -8
+KPX rcaron dcroat -8
+KPX rcaron e -8
+KPX rcaron eacute -8
+KPX rcaron ecaron -8
+KPX rcaron ecircumflex -8
+KPX rcaron edieresis -8
+KPX rcaron edotaccent -8
+KPX rcaron egrave -8
+KPX rcaron emacron -8
+KPX rcaron eogonek -8
+KPX rcaron f 38
+KPX rcaron g -8
+KPX rcaron gbreve -8
+KPX rcaron gcommaaccent -8
+KPX rcaron hyphen -10
+KPX rcaron m 5
+KPX rcaron n 5
+KPX rcaron nacute 5
+KPX rcaron ncaron 5
+KPX rcaron ncommaaccent 5
+KPX rcaron ntilde 5
+KPX rcaron o -18
+KPX rcaron oacute -18
+KPX rcaron ocircumflex -18
+KPX rcaron odieresis -18
+KPX rcaron ograve -18
+KPX rcaron ohungarumlaut -18
+KPX rcaron omacron -18
+KPX rcaron oslash -18
+KPX rcaron otilde -18
+KPX rcaron period 9
+KPX rcaron q -18
+KPX rcommaaccent c -27
+KPX rcommaaccent cacute -27
+KPX rcommaaccent ccaron -27
+KPX rcommaaccent ccedilla -27
+KPX rcommaaccent comma 9
+KPX rcommaaccent d -8
+KPX rcommaaccent dcroat -8
+KPX rcommaaccent e -8
+KPX rcommaaccent eacute -8
+KPX rcommaaccent ecaron -8
+KPX rcommaaccent ecircumflex -8
+KPX rcommaaccent edieresis -8
+KPX rcommaaccent edotaccent -8
+KPX rcommaaccent egrave -8
+KPX rcommaaccent emacron -8
+KPX rcommaaccent eogonek -8
+KPX rcommaaccent f 38
+KPX rcommaaccent g -8
+KPX rcommaaccent gbreve -8
+KPX rcommaaccent gcommaaccent -8
+KPX rcommaaccent hyphen -10
+KPX rcommaaccent m 5
+KPX rcommaaccent n 5
+KPX rcommaaccent nacute 5
+KPX rcommaaccent ncaron 5
+KPX rcommaaccent ncommaaccent 5
+KPX rcommaaccent ntilde 5
+KPX rcommaaccent o -18
+KPX rcommaaccent oacute -18
+KPX rcommaaccent ocircumflex -18
+KPX rcommaaccent odieresis -18
+KPX rcommaaccent ograve -18
+KPX rcommaaccent ohungarumlaut -18
+KPX rcommaaccent omacron -18
+KPX rcommaaccent oslash -18
+KPX rcommaaccent otilde -18
+KPX rcommaaccent period 9
+KPX rcommaaccent q -18
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/ITCAvantGarde-DemiOblique.afm b/test/user-template/user/psprint/fontmetric/ITCAvantGarde-DemiOblique.afm
new file mode 100644
index 000000000000..f65f4b0c45e1
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/ITCAvantGarde-DemiOblique.afm
@@ -0,0 +1,1277 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Mon Jun 23 16:39:52 1997
+Comment UniqueID 43086
+Comment VMusage 12316 64111
+FontName AvantGarde-DemiOblique
+FullName ITC Avant Garde Gothic Demi Oblique
+FamilyName ITC Avant Garde Gothic
+Weight Demi
+ItalicAngle -10.5
+IsFixedPitch false
+FontBBox -123 -251 1256 1021
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation.
+EncodingScheme AdobeStandardEncoding
+CapHeight 740
+XHeight 555
+Ascender 740
+Descender -192
+StdHW 122
+StdVW 133
+StartCharMetrics 314
+C 32 ; WX 280 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 280 ; N exclam ; B 73 0 344 740 ;
+C 34 ; WX 360 ; N quotedbl ; B 127 444 479 740 ;
+C 35 ; WX 560 ; N numbersign ; B 65 0 619 700 ;
+C 36 ; WX 560 ; N dollar ; B 99 -86 582 857 ;
+C 37 ; WX 860 ; N percent ; B 139 -15 856 755 ;
+C 38 ; WX 680 ; N ampersand ; B 70 -15 742 755 ;
+C 39 ; WX 280 ; N quoteright ; B 159 466 343 740 ;
+C 40 ; WX 380 ; N parenleft ; B 119 -157 490 754 ;
+C 41 ; WX 380 ; N parenright ; B 7 -157 378 754 ;
+C 42 ; WX 440 ; N asterisk ; B 173 457 493 755 ;
+C 43 ; WX 600 ; N plus ; B 83 0 611 506 ;
+C 44 ; WX 280 ; N comma ; B 47 -141 231 133 ;
+C 45 ; WX 420 ; N hyphen ; B 113 230 414 348 ;
+C 46 ; WX 280 ; N period ; B 73 0 231 133 ;
+C 47 ; WX 460 ; N slash ; B -13 -100 592 740 ;
+C 48 ; WX 560 ; N zero ; B 69 -15 628 755 ;
+C 49 ; WX 560 ; N one ; B 230 0 501 740 ;
+C 50 ; WX 560 ; N two ; B 44 0 622 755 ;
+C 51 ; WX 560 ; N three ; B 67 -15 586 755 ;
+C 52 ; WX 560 ; N four ; B 35 0 605 740 ;
+C 53 ; WX 560 ; N five ; B 63 -15 601 740 ;
+C 54 ; WX 560 ; N six ; B 64 -15 588 739 ;
+C 55 ; WX 560 ; N seven ; B 83 0 636 740 ;
+C 56 ; WX 560 ; N eight ; B 70 -15 590 755 ;
+C 57 ; WX 560 ; N nine ; B 109 0 633 754 ;
+C 58 ; WX 280 ; N colon ; B 73 0 309 555 ;
+C 59 ; WX 280 ; N semicolon ; B 47 -141 309 555 ;
+C 60 ; WX 600 ; N less ; B 84 -8 650 514 ;
+C 61 ; WX 600 ; N equal ; B 63 81 631 425 ;
+C 62 ; WX 600 ; N greater ; B 44 -8 610 514 ;
+C 63 ; WX 560 ; N question ; B 135 0 594 755 ;
+C 64 ; WX 740 ; N at ; B 108 -12 832 712 ;
+C 65 ; WX 740 ; N A ; B 7 0 732 740 ;
+C 66 ; WX 580 ; N B ; B 70 0 611 740 ;
+C 67 ; WX 780 ; N C ; B 96 -15 865 755 ;
+C 68 ; WX 700 ; N D ; B 63 0 732 740 ;
+C 69 ; WX 520 ; N E ; B 61 0 597 740 ;
+C 70 ; WX 480 ; N F ; B 61 0 576 740 ;
+C 71 ; WX 840 ; N G ; B 89 -15 887 755 ;
+C 72 ; WX 680 ; N H ; B 71 0 748 740 ;
+C 73 ; WX 280 ; N I ; B 72 0 347 740 ;
+C 74 ; WX 480 ; N J ; B 34 -15 547 740 ;
+C 75 ; WX 620 ; N K ; B 89 0 758 740 ;
+C 76 ; WX 440 ; N L ; B 72 0 459 740 ;
+C 77 ; WX 900 ; N M ; B 63 0 975 740 ;
+C 78 ; WX 740 ; N N ; B 70 0 809 740 ;
+C 79 ; WX 840 ; N O ; B 94 -15 882 755 ;
+C 80 ; WX 560 ; N P ; B 72 0 645 740 ;
+C 81 ; WX 840 ; N Q ; B 93 -15 882 755 ;
+C 82 ; WX 580 ; N R ; B 64 0 657 740 ;
+C 83 ; WX 520 ; N S ; B 48 -15 579 755 ;
+C 84 ; WX 420 ; N T ; B 119 0 556 740 ;
+C 85 ; WX 640 ; N U ; B 96 -15 723 740 ;
+C 86 ; WX 700 ; N V ; B 145 0 833 740 ;
+C 87 ; WX 900 ; N W ; B 144 0 1037 740 ;
+C 88 ; WX 680 ; N X ; B 4 0 814 740 ;
+C 89 ; WX 620 ; N Y ; B 135 0 760 740 ;
+C 90 ; WX 500 ; N Z ; B 19 0 600 740 ;
+C 91 ; WX 320 ; N bracketleft ; B 88 -157 424 754 ;
+C 92 ; WX 640 ; N backslash ; B 233 -100 526 740 ;
+C 93 ; WX 320 ; N bracketright ; B 6 -157 342 754 ;
+C 94 ; WX 600 ; N asciicircum ; B 142 375 597 740 ;
+C 95 ; WX 500 ; N underscore ; B -24 -125 487 -75 ;
+C 96 ; WX 280 ; N quoteleft ; B 158 466 342 740 ;
+C 97 ; WX 660 ; N a ; B 72 -18 716 574 ;
+C 98 ; WX 660 ; N b ; B 47 -18 689 740 ;
+C 99 ; WX 640 ; N c ; B 83 -18 679 574 ;
+C 100 ; WX 660 ; N d ; B 79 -18 756 740 ;
+C 101 ; WX 640 ; N e ; B 76 -18 668 574 ;
+C 102 ; WX 280 ; N f ; B 62 0 420 755 ; L i fi ; L l fl ;
+C 103 ; WX 660 ; N g ; B 33 -226 726 574 ;
+C 104 ; WX 600 ; N h ; B 54 0 614 740 ;
+C 105 ; WX 240 ; N i ; B 53 0 324 740 ;
+C 106 ; WX 260 ; N j ; B -19 -185 343 740 ;
+C 107 ; WX 580 ; N k ; B 80 0 648 740 ;
+C 108 ; WX 240 ; N l ; B 54 0 325 740 ;
+C 109 ; WX 940 ; N m ; B 54 0 955 574 ;
+C 110 ; WX 600 ; N n ; B 54 0 614 574 ;
+C 111 ; WX 640 ; N o ; B 71 -18 672 574 ;
+C 112 ; WX 660 ; N p ; B 12 -185 687 574 ;
+C 113 ; WX 660 ; N q ; B 78 -185 716 574 ;
+C 114 ; WX 320 ; N r ; B 63 0 424 574 ;
+C 115 ; WX 440 ; N s ; B 49 -18 483 574 ;
+C 116 ; WX 300 ; N t ; B 86 0 402 740 ;
+C 117 ; WX 600 ; N u ; B 86 -18 647 555 ;
+C 118 ; WX 560 ; N v ; B 105 0 659 555 ;
+C 119 ; WX 800 ; N w ; B 113 0 892 555 ;
+C 120 ; WX 560 ; N x ; B 3 0 632 555 ;
+C 121 ; WX 580 ; N y ; B 74 -185 674 555 ;
+C 122 ; WX 460 ; N z ; B 20 0 528 555 ;
+C 123 ; WX 340 ; N braceleft ; B 40 -191 456 747 ;
+C 124 ; WX 600 ; N bar ; B 186 -250 505 750 ;
+C 125 ; WX 340 ; N braceright ; B -13 -191 405 747 ;
+C 126 ; WX 600 ; N asciitilde ; B 114 160 580 347 ;
+C 161 ; WX 280 ; N exclamdown ; B 39 -185 310 555 ;
+C 162 ; WX 560 ; N cent ; B 110 39 600 715 ;
+C 163 ; WX 560 ; N sterling ; B 38 0 616 755 ;
+C 164 ; WX 160 ; N fraction ; B -123 0 420 740 ;
+C 165 ; WX 560 ; N yen ; B 83 0 708 740 ;
+C 166 ; WX 560 ; N florin ; B -27 -151 665 824 ;
+C 167 ; WX 560 ; N section ; B 65 -158 602 755 ;
+C 168 ; WX 560 ; N currency ; B 52 69 628 577 ;
+C 169 ; WX 220 ; N quotesingle ; B 152 444 315 740 ;
+C 170 ; WX 480 ; N quotedblleft ; B 156 466 547 740 ;
+C 171 ; WX 460 ; N guillemotleft ; B 105 108 487 469 ;
+C 172 ; WX 240 ; N guilsinglleft ; B 94 108 277 469 ;
+C 173 ; WX 240 ; N guilsinglright ; B 70 108 254 469 ;
+C 174 ; WX 520 ; N fi ; B 72 0 599 755 ;
+C 175 ; WX 520 ; N fl ; B 72 0 599 755 ;
+C 177 ; WX 500 ; N endash ; B 77 230 530 348 ;
+C 178 ; WX 560 ; N dagger ; B 132 -142 612 740 ;
+C 179 ; WX 560 ; N daggerdbl ; B 63 -142 618 740 ;
+C 180 ; WX 280 ; N periodcentered ; B 107 187 266 320 ;
+C 182 ; WX 600 ; N paragraph ; B 89 -103 745 740 ;
+C 183 ; WX 600 ; N bullet ; B 215 222 526 532 ;
+C 184 ; WX 280 ; N quotesinglbase ; B 46 -141 230 133 ;
+C 185 ; WX 480 ; N quotedblbase ; B 44 -141 435 133 ;
+C 186 ; WX 480 ; N quotedblright ; B 157 466 548 740 ;
+C 187 ; WX 460 ; N guillemotright ; B 81 108 464 469 ;
+C 188 ; WX 1000 ; N ellipsis ; B 100 0 924 133 ;
+C 189 ; WX 1280 ; N perthousand ; B 139 -15 1256 755 ;
+C 191 ; WX 560 ; N questiondown ; B 68 -200 527 555 ;
+C 193 ; WX 420 ; N grave ; B 188 624 462 851 ;
+C 194 ; WX 420 ; N acute ; B 221 624 507 851 ;
+C 195 ; WX 540 ; N circumflex ; B 188 636 588 774 ;
+C 196 ; WX 480 ; N tilde ; B 178 636 564 767 ;
+C 197 ; WX 420 ; N macron ; B 192 648 490 759 ;
+C 198 ; WX 480 ; N breve ; B 184 633 582 770 ;
+C 199 ; WX 280 ; N dotaccent ; B 191 636 350 769 ;
+C 200 ; WX 500 ; N dieresis ; B 195 636 565 769 ;
+C 202 ; WX 360 ; N ring ; B 205 619 425 834 ;
+C 203 ; WX 340 ; N cedilla ; B 66 -251 272 6 ;
+C 205 ; WX 700 ; N hungarumlaut ; B 247 610 767 849 ;
+C 206 ; WX 340 ; N ogonek ; B 59 -195 243 9 ;
+C 207 ; WX 540 ; N caron ; B 214 636 614 774 ;
+C 208 ; WX 1000 ; N emdash ; B 77 230 1030 348 ;
+C 225 ; WX 900 ; N AE ; B -5 0 962 740 ;
+C 227 ; WX 360 ; N ordfeminine ; B 126 438 473 755 ;
+C 232 ; WX 480 ; N Lslash ; B 67 0 484 740 ;
+C 233 ; WX 840 ; N Oslash ; B 93 -71 891 814 ;
+C 234 ; WX 1060 ; N OE ; B 98 -15 1145 755 ;
+C 235 ; WX 360 ; N ordmasculine ; B 130 438 452 755 ;
+C 241 ; WX 1080 ; N ae ; B 75 -18 1106 574 ;
+C 245 ; WX 240 ; N dotlessi ; B 53 0 289 555 ;
+C 248 ; WX 320 ; N lslash ; B 74 0 405 740 ;
+C 249 ; WX 660 ; N oslash ; B 81 -50 685 608 ;
+C 250 ; WX 1080 ; N oe ; B 76 -18 1109 574 ;
+C 251 ; WX 600 ; N germandbls ; B 51 -18 629 755 ;
+C -1 ; WX 280 ; N Idieresis ; B 72 0 487 939 ;
+C -1 ; WX 640 ; N eacute ; B 76 -18 668 851 ;
+C -1 ; WX 660 ; N abreve ; B 72 -18 716 770 ;
+C -1 ; WX 600 ; N uhungarumlaut ; B 86 -18 717 849 ;
+C -1 ; WX 640 ; N ecaron ; B 76 -18 674 774 ;
+C -1 ; WX 620 ; N Ydieresis ; B 135 0 760 939 ;
+C -1 ; WX 600 ; N divide ; B 83 -20 611 526 ;
+C -1 ; WX 620 ; N Yacute ; B 135 0 760 1021 ;
+C -1 ; WX 740 ; N Acircumflex ; B 7 0 732 944 ;
+C -1 ; WX 660 ; N aacute ; B 72 -18 716 851 ;
+C -1 ; WX 640 ; N Ucircumflex ; B 96 -15 723 944 ;
+C -1 ; WX 580 ; N yacute ; B 74 -185 674 851 ;
+C -1 ; WX 440 ; N scommaaccent ; B 49 -229 483 574 ;
+C -1 ; WX 640 ; N ecircumflex ; B 76 -18 668 774 ;
+C -1 ; WX 640 ; N Uring ; B 96 -15 723 969 ;
+C -1 ; WX 640 ; N Udieresis ; B 96 -15 723 939 ;
+C -1 ; WX 660 ; N aogonek ; B 72 -195 716 574 ;
+C -1 ; WX 640 ; N Uacute ; B 96 -15 723 1021 ;
+C -1 ; WX 600 ; N uogonek ; B 86 -195 647 555 ;
+C -1 ; WX 520 ; N Edieresis ; B 61 0 607 939 ;
+C -1 ; WX 742 ; N Dcroat ; B 82 0 766 740 ;
+C -1 ; WX 351 ; N commaaccent ; B 5 -229 213 -54 ;
+C -1 ; WX 740 ; N copyright ; B 50 -12 828 752 ;
+C -1 ; WX 520 ; N Emacron ; B 61 0 597 944 ;
+C -1 ; WX 640 ; N ccaron ; B 83 -18 679 774 ;
+C -1 ; WX 660 ; N aring ; B 72 -18 716 834 ;
+C -1 ; WX 740 ; N Ncommaaccent ; B 70 -209 809 740 ;
+C -1 ; WX 240 ; N lacute ; B 54 0 447 1011 ;
+C -1 ; WX 660 ; N agrave ; B 72 -18 716 851 ;
+C -1 ; WX 420 ; N Tcommaaccent ; B 40 -229 556 740 ;
+C -1 ; WX 780 ; N Cacute ; B 96 -15 865 1021 ;
+C -1 ; WX 660 ; N atilde ; B 72 -18 716 767 ;
+C -1 ; WX 520 ; N Edotaccent ; B 61 0 597 954 ;
+C -1 ; WX 440 ; N scaron ; B 49 -18 564 774 ;
+C -1 ; WX 440 ; N scedilla ; B 49 -251 483 574 ;
+C -1 ; WX 240 ; N iacute ; B 53 0 442 851 ;
+C -1 ; WX 494 ; N lozenge ; B 79 0 554 745 ;
+C -1 ; WX 580 ; N Rcaron ; B 64 0 668 959 ;
+C -1 ; WX 840 ; N Gcommaaccent ; B 89 -229 887 755 ;
+C -1 ; WX 600 ; N ucircumflex ; B 86 -18 647 774 ;
+C -1 ; WX 660 ; N acircumflex ; B 72 -18 716 774 ;
+C -1 ; WX 740 ; N Amacron ; B 7 0 732 944 ;
+C -1 ; WX 320 ; N rcaron ; B 63 0 504 774 ;
+C -1 ; WX 640 ; N ccedilla ; B 83 -251 679 574 ;
+C -1 ; WX 500 ; N Zdotaccent ; B 19 0 600 954 ;
+C -1 ; WX 560 ; N Thorn ; B 72 0 619 740 ;
+C -1 ; WX 840 ; N Omacron ; B 94 -15 882 944 ;
+C -1 ; WX 580 ; N Racute ; B 64 0 657 1021 ;
+C -1 ; WX 520 ; N Sacute ; B 48 -15 589 1021 ;
+C -1 ; WX 800 ; N dcaron ; B 79 -18 966 740 ;
+C -1 ; WX 640 ; N Umacron ; B 96 -15 723 944 ;
+C -1 ; WX 600 ; N uring ; B 86 -18 647 834 ;
+C -1 ; WX 336 ; N threesuperior ; B 87 287 414 749 ;
+C -1 ; WX 840 ; N Ograve ; B 94 -15 882 1021 ;
+C -1 ; WX 740 ; N Agrave ; B 7 0 732 1021 ;
+C -1 ; WX 740 ; N Abreve ; B 7 0 746 955 ;
+C -1 ; WX 600 ; N multiply ; B 76 12 618 494 ;
+C -1 ; WX 600 ; N uacute ; B 86 -18 647 851 ;
+C -1 ; WX 420 ; N Tcaron ; B 119 0 588 959 ;
+C -1 ; WX 494 ; N partialdiff ; B 39 -21 573 750 ;
+C -1 ; WX 580 ; N ydieresis ; B 74 -185 674 769 ;
+C -1 ; WX 740 ; N Nacute ; B 70 0 809 1021 ;
+C -1 ; WX 240 ; N icircumflex ; B 38 0 438 774 ;
+C -1 ; WX 520 ; N Ecircumflex ; B 61 0 610 944 ;
+C -1 ; WX 660 ; N adieresis ; B 72 -18 716 769 ;
+C -1 ; WX 640 ; N edieresis ; B 76 -18 668 769 ;
+C -1 ; WX 640 ; N cacute ; B 83 -18 679 851 ;
+C -1 ; WX 600 ; N nacute ; B 54 0 614 851 ;
+C -1 ; WX 600 ; N umacron ; B 86 -18 647 759 ;
+C -1 ; WX 740 ; N Ncaron ; B 70 0 809 959 ;
+C -1 ; WX 280 ; N Iacute ; B 72 0 494 1021 ;
+C -1 ; WX 600 ; N plusminus ; B 36 -62 627 556 ;
+C -1 ; WX 600 ; N brokenbar ; B 200 -175 492 675 ;
+C -1 ; WX 740 ; N registered ; B 50 -12 828 752 ;
+C -1 ; WX 840 ; N Gbreve ; B 89 -15 887 955 ;
+C -1 ; WX 280 ; N Idotaccent ; B 72 0 384 954 ;
+C -1 ; WX 713 ; N summation ; B -5 -108 756 752 ;
+C -1 ; WX 520 ; N Egrave ; B 61 0 597 1021 ;
+C -1 ; WX 320 ; N racute ; B 63 0 487 851 ;
+C -1 ; WX 640 ; N omacron ; B 71 -18 672 759 ;
+C -1 ; WX 500 ; N Zacute ; B 19 0 600 1021 ;
+C -1 ; WX 500 ; N Zcaron ; B 19 0 650 944 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 616 704 ;
+C -1 ; WX 742 ; N Eth ; B 82 0 766 740 ;
+C -1 ; WX 780 ; N Ccedilla ; B 96 -251 865 755 ;
+C -1 ; WX 240 ; N lcommaaccent ; B -50 -229 325 740 ;
+C -1 ; WX 400 ; N tcaron ; B 86 0 584 786 ;
+C -1 ; WX 640 ; N eogonek ; B 76 -195 668 574 ;
+C -1 ; WX 640 ; N Uogonek ; B 96 -195 723 740 ;
+C -1 ; WX 740 ; N Aacute ; B 7 0 732 1021 ;
+C -1 ; WX 740 ; N Adieresis ; B 7 0 732 939 ;
+C -1 ; WX 640 ; N egrave ; B 76 -18 668 851 ;
+C -1 ; WX 460 ; N zacute ; B 20 0 528 851 ;
+C -1 ; WX 240 ; N iogonek ; B -34 -195 324 740 ;
+C -1 ; WX 840 ; N Oacute ; B 94 -15 882 1021 ;
+C -1 ; WX 640 ; N oacute ; B 71 -18 672 851 ;
+C -1 ; WX 660 ; N amacron ; B 72 -18 716 759 ;
+C -1 ; WX 440 ; N sacute ; B 49 -18 517 851 ;
+C -1 ; WX 240 ; N idieresis ; B 53 0 435 769 ;
+C -1 ; WX 840 ; N Ocircumflex ; B 94 -15 882 944 ;
+C -1 ; WX 640 ; N Ugrave ; B 96 -15 723 1021 ;
+C -1 ; WX 612 ; N Delta ; B 2 0 612 692 ;
+C -1 ; WX 660 ; N thorn ; B 12 -185 687 740 ;
+C -1 ; WX 336 ; N twosuperior ; B 72 296 436 749 ;
+C -1 ; WX 840 ; N Odieresis ; B 94 -15 882 939 ;
+C -1 ; WX 576 ; N mu ; B 3 -187 642 555 ;
+C -1 ; WX 240 ; N igrave ; B 53 0 347 851 ;
+C -1 ; WX 640 ; N ohungarumlaut ; B 71 -18 737 849 ;
+C -1 ; WX 520 ; N Eogonek ; B 61 -195 597 740 ;
+C -1 ; WX 660 ; N dcroat ; B 79 -18 829 740 ;
+C -1 ; WX 840 ; N threequarters ; B 97 0 837 749 ;
+C -1 ; WX 520 ; N Scedilla ; B 49 -251 579 755 ;
+C -1 ; WX 380 ; N lcaron ; B 54 0 536 740 ;
+C -1 ; WX 620 ; N Kcommaaccent ; B 89 -209 758 740 ;
+C -1 ; WX 440 ; N Lacute ; B 72 0 549 1021 ;
+C -1 ; WX 1000 ; N trademark ; B 130 296 959 740 ;
+C -1 ; WX 640 ; N edotaccent ; B 76 -18 668 769 ;
+C -1 ; WX 280 ; N Igrave ; B 72 0 399 1021 ;
+C -1 ; WX 280 ; N Imacron ; B 72 0 454 944 ;
+C -1 ; WX 440 ; N Lcaron ; B 72 0 626 740 ;
+C -1 ; WX 840 ; N onehalf ; B 157 0 831 740 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 657 704 ;
+C -1 ; WX 640 ; N ocircumflex ; B 71 -18 672 774 ;
+C -1 ; WX 600 ; N ntilde ; B 54 0 624 767 ;
+C -1 ; WX 640 ; N Uhungarumlaut ; B 96 -15 769 1019 ;
+C -1 ; WX 520 ; N Eacute ; B 61 0 597 1021 ;
+C -1 ; WX 640 ; N emacron ; B 76 -18 668 759 ;
+C -1 ; WX 660 ; N gbreve ; B 33 -226 726 770 ;
+C -1 ; WX 840 ; N onequarter ; B 187 0 780 740 ;
+C -1 ; WX 520 ; N Scaron ; B 48 -15 635 944 ;
+C -1 ; WX 520 ; N Scommaaccent ; B 48 -229 579 755 ;
+C -1 ; WX 840 ; N Ohungarumlaut ; B 94 -15 882 1019 ;
+C -1 ; WX 400 ; N degree ; B 159 426 451 712 ;
+C -1 ; WX 640 ; N ograve ; B 71 -18 672 851 ;
+C -1 ; WX 780 ; N Ccaron ; B 96 -15 865 959 ;
+C -1 ; WX 600 ; N ugrave ; B 86 -18 647 851 ;
+C -1 ; WX 549 ; N radical ; B 99 -46 667 850 ;
+C -1 ; WX 700 ; N Dcaron ; B 63 0 732 959 ;
+C -1 ; WX 320 ; N rcommaaccent ; B -51 -229 424 574 ;
+C -1 ; WX 740 ; N Ntilde ; B 70 0 809 937 ;
+C -1 ; WX 640 ; N otilde ; B 71 -18 672 767 ;
+C -1 ; WX 580 ; N Rcommaaccent ; B 64 -209 657 740 ;
+C -1 ; WX 440 ; N Lcommaaccent ; B 72 -229 459 740 ;
+C -1 ; WX 740 ; N Atilde ; B 7 0 732 937 ;
+C -1 ; WX 740 ; N Aogonek ; B 7 -195 732 740 ;
+C -1 ; WX 740 ; N Aring ; B 7 0 732 969 ;
+C -1 ; WX 840 ; N Otilde ; B 94 -15 882 937 ;
+C -1 ; WX 460 ; N zdotaccent ; B 20 0 528 769 ;
+C -1 ; WX 520 ; N Ecaron ; B 61 0 638 959 ;
+C -1 ; WX 280 ; N Iogonek ; B -9 -195 347 740 ;
+C -1 ; WX 580 ; N kcommaaccent ; B 80 -209 648 740 ;
+C -1 ; WX 600 ; N minus ; B 83 193 611 313 ;
+C -1 ; WX 280 ; N Icircumflex ; B 72 0 490 944 ;
+C -1 ; WX 600 ; N ncaron ; B 54 0 644 774 ;
+C -1 ; WX 300 ; N tcommaaccent ; B -1 -229 402 740 ;
+C -1 ; WX 600 ; N logicalnot ; B 104 108 631 425 ;
+C -1 ; WX 640 ; N odieresis ; B 71 -18 672 769 ;
+C -1 ; WX 600 ; N udieresis ; B 86 -18 647 769 ;
+C -1 ; WX 549 ; N notequal ; B 30 -49 619 570 ;
+C -1 ; WX 660 ; N gcommaaccent ; B 33 -226 726 800 ;
+C -1 ; WX 640 ; N eth ; B 73 -18 699 754 ;
+C -1 ; WX 460 ; N zcaron ; B 20 0 599 774 ;
+C -1 ; WX 600 ; N ncommaaccent ; B 54 -209 614 574 ;
+C -1 ; WX 336 ; N onesuperior ; B 181 296 361 740 ;
+C -1 ; WX 240 ; N imacron ; B 53 0 400 759 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 933
+KPX A T -73
+KPX A Tcaron -73
+KPX A Tcommaaccent -73
+KPX A V -127
+KPX A W -96
+KPX A Y -139
+KPX A Yacute -139
+KPX A Ydieresis -139
+KPX A v -50
+KPX A w -50
+KPX A y -50
+KPX A yacute -50
+KPX A ydieresis -50
+KPX Aacute T -73
+KPX Aacute Tcaron -73
+KPX Aacute Tcommaaccent -73
+KPX Aacute V -127
+KPX Aacute W -96
+KPX Aacute Y -139
+KPX Aacute Yacute -139
+KPX Aacute Ydieresis -139
+KPX Aacute v -50
+KPX Aacute w -50
+KPX Aacute y -50
+KPX Aacute yacute -50
+KPX Aacute ydieresis -50
+KPX Abreve T -73
+KPX Abreve Tcaron -73
+KPX Abreve Tcommaaccent -73
+KPX Abreve V -127
+KPX Abreve W -96
+KPX Abreve Y -139
+KPX Abreve Yacute -139
+KPX Abreve Ydieresis -139
+KPX Abreve v -50
+KPX Abreve w -50
+KPX Abreve y -50
+KPX Abreve yacute -50
+KPX Abreve ydieresis -50
+KPX Acircumflex T -73
+KPX Acircumflex Tcaron -73
+KPX Acircumflex Tcommaaccent -73
+KPX Acircumflex V -127
+KPX Acircumflex W -96
+KPX Acircumflex Y -139
+KPX Acircumflex Yacute -139
+KPX Acircumflex Ydieresis -139
+KPX Acircumflex v -50
+KPX Acircumflex w -50
+KPX Acircumflex y -50
+KPX Acircumflex yacute -50
+KPX Acircumflex ydieresis -50
+KPX Adieresis T -73
+KPX Adieresis Tcaron -73
+KPX Adieresis Tcommaaccent -73
+KPX Adieresis V -127
+KPX Adieresis W -96
+KPX Adieresis Y -139
+KPX Adieresis Yacute -139
+KPX Adieresis Ydieresis -139
+KPX Adieresis v -50
+KPX Adieresis w -50
+KPX Adieresis y -50
+KPX Adieresis yacute -50
+KPX Adieresis ydieresis -50
+KPX Agrave T -73
+KPX Agrave Tcaron -73
+KPX Agrave Tcommaaccent -73
+KPX Agrave V -127
+KPX Agrave W -96
+KPX Agrave Y -139
+KPX Agrave Yacute -139
+KPX Agrave Ydieresis -139
+KPX Agrave v -50
+KPX Agrave w -50
+KPX Agrave y -50
+KPX Agrave yacute -50
+KPX Agrave ydieresis -50
+KPX Amacron T -73
+KPX Amacron Tcaron -73
+KPX Amacron Tcommaaccent -73
+KPX Amacron V -127
+KPX Amacron W -96
+KPX Amacron Y -139
+KPX Amacron Yacute -139
+KPX Amacron Ydieresis -139
+KPX Amacron v -50
+KPX Amacron w -50
+KPX Amacron y -50
+KPX Amacron yacute -50
+KPX Amacron ydieresis -50
+KPX Aogonek T -73
+KPX Aogonek Tcaron -73
+KPX Aogonek Tcommaaccent -73
+KPX Aogonek V -127
+KPX Aogonek W -96
+KPX Aogonek Y -139
+KPX Aogonek Yacute -139
+KPX Aogonek Ydieresis -139
+KPX Aogonek v -50
+KPX Aogonek w -50
+KPX Aogonek y -50
+KPX Aogonek yacute -50
+KPX Aogonek ydieresis -50
+KPX Aring T -73
+KPX Aring Tcaron -73
+KPX Aring Tcommaaccent -73
+KPX Aring V -127
+KPX Aring W -96
+KPX Aring Y -139
+KPX Aring Yacute -139
+KPX Aring Ydieresis -139
+KPX Aring v -50
+KPX Aring w -50
+KPX Aring y -50
+KPX Aring yacute -50
+KPX Aring ydieresis -50
+KPX Atilde T -73
+KPX Atilde Tcaron -73
+KPX Atilde Tcommaaccent -73
+KPX Atilde V -127
+KPX Atilde W -96
+KPX Atilde Y -139
+KPX Atilde Yacute -139
+KPX Atilde Ydieresis -139
+KPX Atilde v -50
+KPX Atilde w -50
+KPX Atilde y -50
+KPX Atilde yacute -50
+KPX Atilde ydieresis -50
+KPX F A -95
+KPX F Aacute -95
+KPX F Abreve -95
+KPX F Acircumflex -95
+KPX F Adieresis -95
+KPX F Agrave -95
+KPX F Amacron -95
+KPX F Aogonek -95
+KPX F Aring -95
+KPX F Atilde -95
+KPX F comma -42
+KPX F period -42
+KPX L T -50
+KPX L Tcaron -50
+KPX L Tcommaaccent -50
+KPX L V -90
+KPX L W -90
+KPX L Y -90
+KPX L Yacute -90
+KPX L Ydieresis -90
+KPX L y -75
+KPX L yacute -75
+KPX L ydieresis -75
+KPX Lacute T -50
+KPX Lacute Tcaron -50
+KPX Lacute Tcommaaccent -50
+KPX Lacute V -90
+KPX Lacute W -90
+KPX Lacute Y -90
+KPX Lacute Yacute -90
+KPX Lacute Ydieresis -90
+KPX Lacute y -75
+KPX Lacute yacute -75
+KPX Lacute ydieresis -75
+KPX Lcommaaccent T -50
+KPX Lcommaaccent Tcaron -50
+KPX Lcommaaccent Tcommaaccent -50
+KPX Lcommaaccent V -90
+KPX Lcommaaccent W -90
+KPX Lcommaaccent Y -90
+KPX Lcommaaccent Yacute -90
+KPX Lcommaaccent Ydieresis -90
+KPX Lcommaaccent y -75
+KPX Lcommaaccent yacute -75
+KPX Lcommaaccent ydieresis -75
+KPX Lslash T -50
+KPX Lslash Tcaron -50
+KPX Lslash Tcommaaccent -50
+KPX Lslash V -90
+KPX Lslash W -90
+KPX Lslash Y -90
+KPX Lslash Yacute -90
+KPX Lslash Ydieresis -90
+KPX Lslash y -75
+KPX Lslash yacute -75
+KPX Lslash ydieresis -75
+KPX P A -100
+KPX P Aacute -100
+KPX P Abreve -100
+KPX P Acircumflex -100
+KPX P Adieresis -100
+KPX P Agrave -100
+KPX P Amacron -100
+KPX P Aogonek -100
+KPX P Aring -100
+KPX P Atilde -100
+KPX P comma -16
+KPX P period -16
+KPX R T 16
+KPX R Tcaron 16
+KPX R Tcommaaccent 16
+KPX R V -26
+KPX R W -20
+KPX R Y -20
+KPX R Yacute -20
+KPX R Ydieresis -20
+KPX R y 31
+KPX R yacute 31
+KPX R ydieresis 31
+KPX Racute T 16
+KPX Racute Tcaron 16
+KPX Racute Tcommaaccent 16
+KPX Racute V -26
+KPX Racute W -20
+KPX Racute Y -20
+KPX Racute Yacute -20
+KPX Racute Ydieresis -20
+KPX Racute y 31
+KPX Racute yacute 31
+KPX Racute ydieresis 31
+KPX Rcaron T 16
+KPX Rcaron Tcaron 16
+KPX Rcaron Tcommaaccent 16
+KPX Rcaron V -26
+KPX Rcaron W -20
+KPX Rcaron Y -20
+KPX Rcaron Yacute -20
+KPX Rcaron Ydieresis -20
+KPX Rcaron y 31
+KPX Rcaron yacute 31
+KPX Rcaron ydieresis 31
+KPX Rcommaaccent T 16
+KPX Rcommaaccent Tcaron 16
+KPX Rcommaaccent Tcommaaccent 16
+KPX Rcommaaccent V -26
+KPX Rcommaaccent W -20
+KPX Rcommaaccent Y -20
+KPX Rcommaaccent Yacute -20
+KPX Rcommaaccent Ydieresis -20
+KPX Rcommaaccent y 31
+KPX Rcommaaccent yacute 31
+KPX Rcommaaccent ydieresis 31
+KPX T A -70
+KPX T Aacute -70
+KPX T Abreve -70
+KPX T Acircumflex -70
+KPX T Adieresis -70
+KPX T Agrave -70
+KPX T Amacron -70
+KPX T Aogonek -70
+KPX T Aring -70
+KPX T Atilde -70
+KPX T a -40
+KPX T aacute -40
+KPX T abreve -40
+KPX T acircumflex -40
+KPX T adieresis -40
+KPX T agrave -40
+KPX T amacron -40
+KPX T aogonek -40
+KPX T aring -40
+KPX T atilde -40
+KPX T c -50
+KPX T cacute -50
+KPX T ccaron -50
+KPX T ccedilla -50
+KPX T colon -12
+KPX T comma 4
+KPX T e -50
+KPX T eacute -50
+KPX T ecaron -50
+KPX T ecircumflex -50
+KPX T edieresis -50
+KPX T edotaccent -50
+KPX T egrave -50
+KPX T emacron -50
+KPX T eogonek -50
+KPX T hyphen -10
+KPX T i -5
+KPX T iacute 10
+KPX T icircumflex 10
+KPX T idieresis 10
+KPX T igrave 10
+KPX T imacron 10
+KPX T iogonek -5
+KPX T o -50
+KPX T oacute -50
+KPX T ocircumflex -50
+KPX T odieresis -50
+KPX T ograve -50
+KPX T ohungarumlaut -50
+KPX T omacron -50
+KPX T oslash -50
+KPX T otilde -50
+KPX T period 4
+KPX T r -42
+KPX T rcommaaccent -42
+KPX T s -43
+KPX T sacute -43
+KPX T scedilla -43
+KPX T scommaaccent -43
+KPX T semicolon -12
+KPX T u -56
+KPX T uacute -56
+KPX T ucircumflex -56
+KPX T udieresis -56
+KPX T ugrave -56
+KPX T uhungarumlaut -56
+KPX T umacron -56
+KPX T uogonek -56
+KPX T uring -56
+KPX T w -15
+KPX T y -12
+KPX T yacute -12
+KPX T ydieresis -12
+KPX Tcaron A -70
+KPX Tcaron Aacute -70
+KPX Tcaron Abreve -70
+KPX Tcaron Acircumflex -70
+KPX Tcaron Adieresis -70
+KPX Tcaron Agrave -70
+KPX Tcaron Amacron -70
+KPX Tcaron Aogonek -70
+KPX Tcaron Aring -70
+KPX Tcaron Atilde -70
+KPX Tcaron a -40
+KPX Tcaron aacute -40
+KPX Tcaron abreve -40
+KPX Tcaron acircumflex -40
+KPX Tcaron adieresis -40
+KPX Tcaron agrave -40
+KPX Tcaron amacron -40
+KPX Tcaron aogonek -40
+KPX Tcaron aring -40
+KPX Tcaron atilde -40
+KPX Tcaron c -50
+KPX Tcaron cacute -50
+KPX Tcaron ccaron -50
+KPX Tcaron ccedilla -50
+KPX Tcaron colon -12
+KPX Tcaron comma 4
+KPX Tcaron e -50
+KPX Tcaron eacute -50
+KPX Tcaron ecaron -50
+KPX Tcaron ecircumflex -50
+KPX Tcaron edieresis -50
+KPX Tcaron edotaccent -50
+KPX Tcaron egrave -50
+KPX Tcaron emacron -50
+KPX Tcaron eogonek -50
+KPX Tcaron hyphen -10
+KPX Tcaron i -5
+KPX Tcaron iacute 10
+KPX Tcaron icircumflex 10
+KPX Tcaron idieresis 10
+KPX Tcaron igrave 10
+KPX Tcaron imacron 10
+KPX Tcaron iogonek -5
+KPX Tcaron o -50
+KPX Tcaron oacute -50
+KPX Tcaron ocircumflex -50
+KPX Tcaron odieresis -50
+KPX Tcaron ograve -50
+KPX Tcaron ohungarumlaut -50
+KPX Tcaron omacron -50
+KPX Tcaron oslash -50
+KPX Tcaron otilde -50
+KPX Tcaron period 4
+KPX Tcaron r -42
+KPX Tcaron racute -42
+KPX Tcaron rcaron -42
+KPX Tcaron rcommaaccent -42
+KPX Tcaron s -43
+KPX Tcaron sacute -43
+KPX Tcaron scaron -43
+KPX Tcaron scedilla -43
+KPX Tcaron scommaaccent -43
+KPX Tcaron semicolon -12
+KPX Tcaron u -56
+KPX Tcaron uacute -56
+KPX Tcaron ucircumflex -56
+KPX Tcaron udieresis -56
+KPX Tcaron ugrave -56
+KPX Tcaron uhungarumlaut -56
+KPX Tcaron umacron -56
+KPX Tcaron uogonek -56
+KPX Tcaron uring -56
+KPX Tcaron w -15
+KPX Tcaron y -12
+KPX Tcaron yacute -12
+KPX Tcaron ydieresis -12
+KPX Tcommaaccent A -70
+KPX Tcommaaccent Aacute -70
+KPX Tcommaaccent Abreve -70
+KPX Tcommaaccent Acircumflex -70
+KPX Tcommaaccent Adieresis -70
+KPX Tcommaaccent Agrave -70
+KPX Tcommaaccent Amacron -70
+KPX Tcommaaccent Aogonek -70
+KPX Tcommaaccent Aring -70
+KPX Tcommaaccent Atilde -70
+KPX Tcommaaccent a -40
+KPX Tcommaaccent aacute -40
+KPX Tcommaaccent abreve -40
+KPX Tcommaaccent acircumflex -40
+KPX Tcommaaccent adieresis -40
+KPX Tcommaaccent agrave -40
+KPX Tcommaaccent amacron -40
+KPX Tcommaaccent aogonek -40
+KPX Tcommaaccent aring -40
+KPX Tcommaaccent atilde -40
+KPX Tcommaaccent c -50
+KPX Tcommaaccent cacute -50
+KPX Tcommaaccent ccaron -50
+KPX Tcommaaccent ccedilla -50
+KPX Tcommaaccent colon -12
+KPX Tcommaaccent comma 4
+KPX Tcommaaccent e -50
+KPX Tcommaaccent eacute -50
+KPX Tcommaaccent ecaron -50
+KPX Tcommaaccent ecircumflex -50
+KPX Tcommaaccent edieresis -50
+KPX Tcommaaccent edotaccent -50
+KPX Tcommaaccent egrave -50
+KPX Tcommaaccent emacron -50
+KPX Tcommaaccent eogonek -50
+KPX Tcommaaccent hyphen -10
+KPX Tcommaaccent i -5
+KPX Tcommaaccent iacute 10
+KPX Tcommaaccent icircumflex 10
+KPX Tcommaaccent idieresis 10
+KPX Tcommaaccent igrave 10
+KPX Tcommaaccent imacron 10
+KPX Tcommaaccent iogonek -5
+KPX Tcommaaccent o -50
+KPX Tcommaaccent oacute -50
+KPX Tcommaaccent ocircumflex -50
+KPX Tcommaaccent odieresis -50
+KPX Tcommaaccent ograve -50
+KPX Tcommaaccent ohungarumlaut -50
+KPX Tcommaaccent omacron -50
+KPX Tcommaaccent oslash -50
+KPX Tcommaaccent otilde -50
+KPX Tcommaaccent period 4
+KPX Tcommaaccent r -42
+KPX Tcommaaccent racute -42
+KPX Tcommaaccent rcaron -42
+KPX Tcommaaccent rcommaaccent -42
+KPX Tcommaaccent s -43
+KPX Tcommaaccent sacute -43
+KPX Tcommaaccent scaron -43
+KPX Tcommaaccent scedilla -43
+KPX Tcommaaccent scommaaccent -43
+KPX Tcommaaccent semicolon -12
+KPX Tcommaaccent u -56
+KPX Tcommaaccent uacute -56
+KPX Tcommaaccent ucircumflex -56
+KPX Tcommaaccent udieresis -56
+KPX Tcommaaccent ugrave -56
+KPX Tcommaaccent uhungarumlaut -56
+KPX Tcommaaccent umacron -56
+KPX Tcommaaccent uogonek -56
+KPX Tcommaaccent uring -56
+KPX Tcommaaccent w -15
+KPX Tcommaaccent y -12
+KPX Tcommaaccent yacute -12
+KPX Tcommaaccent ydieresis -12
+KPX V A -125
+KPX V Aacute -125
+KPX V Abreve -125
+KPX V Acircumflex -125
+KPX V Adieresis -125
+KPX V Agrave -125
+KPX V Amacron -125
+KPX V Aogonek -125
+KPX V Aring -125
+KPX V Atilde -125
+KPX V a -80
+KPX V aacute -80
+KPX V abreve -80
+KPX V acircumflex -80
+KPX V adieresis -80
+KPX V agrave -80
+KPX V amacron -80
+KPX V aogonek -80
+KPX V aring -80
+KPX V atilde -80
+KPX V colon -13
+KPX V comma -13
+KPX V e -80
+KPX V eacute -80
+KPX V ecaron -80
+KPX V ecircumflex -80
+KPX V edieresis -80
+KPX V edotaccent -80
+KPX V egrave -80
+KPX V emacron -80
+KPX V eogonek -80
+KPX V hyphen -20
+KPX V i -9
+KPX V iacute -9
+KPX V iogonek -9
+KPX V o -80
+KPX V oacute -80
+KPX V ocircumflex -80
+KPX V odieresis -80
+KPX V ograve -80
+KPX V ohungarumlaut -80
+KPX V omacron -80
+KPX V oslash -80
+KPX V otilde -80
+KPX V period -13
+KPX V r -40
+KPX V racute -40
+KPX V rcaron -40
+KPX V rcommaaccent -40
+KPX V semicolon -13
+KPX V u -68
+KPX V uacute -68
+KPX V ucircumflex -68
+KPX V udieresis -68
+KPX V ugrave -68
+KPX V uhungarumlaut -68
+KPX V umacron -68
+KPX V uogonek -68
+KPX V uring -68
+KPX V y -15
+KPX V yacute -15
+KPX V ydieresis -15
+KPX W A -94
+KPX W Aacute -94
+KPX W Abreve -94
+KPX W Acircumflex -94
+KPX W Adieresis -94
+KPX W Agrave -94
+KPX W Amacron -94
+KPX W Aogonek -94
+KPX W Aring -94
+KPX W Atilde -94
+KPX W a -50
+KPX W aacute -50
+KPX W abreve -50
+KPX W acircumflex -50
+KPX W adieresis -50
+KPX W agrave -50
+KPX W amacron -50
+KPX W aogonek -50
+KPX W aring -50
+KPX W atilde -50
+KPX W colon -12
+KPX W comma -12
+KPX W e -50
+KPX W eacute -50
+KPX W ecaron -50
+KPX W ecircumflex -50
+KPX W edieresis -50
+KPX W edotaccent -50
+KPX W egrave -50
+KPX W emacron -50
+KPX W eogonek -50
+KPX W hyphen -10
+KPX W i -7
+KPX W iacute 10
+KPX W icircumflex 10
+KPX W idieresis 10
+KPX W igrave 10
+KPX W imacron 10
+KPX W iogonek -7
+KPX W o -50
+KPX W oacute -50
+KPX W ocircumflex -50
+KPX W odieresis -50
+KPX W ograve -50
+KPX W ohungarumlaut -50
+KPX W omacron -50
+KPX W oslash -50
+KPX W otilde -50
+KPX W period -12
+KPX W r -39
+KPX W racute -39
+KPX W rcommaaccent -39
+KPX W semicolon -12
+KPX W u -40
+KPX W uacute -40
+KPX W ucircumflex -40
+KPX W udieresis -40
+KPX W ugrave -40
+KPX W uhungarumlaut -40
+KPX W umacron -40
+KPX W uogonek -40
+KPX W uring -40
+KPX W y 1
+KPX W yacute 1
+KPX W ydieresis 1
+KPX Y A -138
+KPX Y Aacute -138
+KPX Y Abreve -138
+KPX Y Acircumflex -138
+KPX Y Adieresis -138
+KPX Y Agrave -138
+KPX Y Amacron -138
+KPX Y Aogonek -138
+KPX Y Aring -138
+KPX Y Atilde -138
+KPX Y a -100
+KPX Y aacute -100
+KPX Y abreve -100
+KPX Y acircumflex -100
+KPX Y adieresis -100
+KPX Y agrave -100
+KPX Y amacron -100
+KPX Y aogonek -100
+KPX Y aring -100
+KPX Y atilde -100
+KPX Y colon -8
+KPX Y comma -8
+KPX Y e -100
+KPX Y eacute -100
+KPX Y ecaron -100
+KPX Y ecircumflex -100
+KPX Y edieresis -100
+KPX Y edotaccent -100
+KPX Y egrave -100
+KPX Y emacron -100
+KPX Y eogonek -100
+KPX Y hyphen -60
+KPX Y i -5
+KPX Y iacute -5
+KPX Y icircumflex 10
+KPX Y idieresis 10
+KPX Y igrave 10
+KPX Y imacron 10
+KPX Y iogonek -5
+KPX Y o -100
+KPX Y oacute -100
+KPX Y ocircumflex -100
+KPX Y odieresis -100
+KPX Y ograve -100
+KPX Y ohungarumlaut -100
+KPX Y omacron -100
+KPX Y oslash -100
+KPX Y otilde -100
+KPX Y p -60
+KPX Y period -8
+KPX Y q -100
+KPX Y semicolon -8
+KPX Y u -82
+KPX Y uacute -82
+KPX Y ucircumflex -82
+KPX Y udieresis -82
+KPX Y ugrave -82
+KPX Y uhungarumlaut -82
+KPX Y umacron -82
+KPX Y uogonek -82
+KPX Y uring -82
+KPX Y v -25
+KPX Yacute A -138
+KPX Yacute Aacute -138
+KPX Yacute Abreve -138
+KPX Yacute Acircumflex -138
+KPX Yacute Adieresis -138
+KPX Yacute Agrave -138
+KPX Yacute Amacron -138
+KPX Yacute Aogonek -138
+KPX Yacute Aring -138
+KPX Yacute Atilde -138
+KPX Yacute a -100
+KPX Yacute aacute -100
+KPX Yacute abreve -100
+KPX Yacute acircumflex -100
+KPX Yacute adieresis -100
+KPX Yacute agrave -100
+KPX Yacute amacron -100
+KPX Yacute aogonek -100
+KPX Yacute aring -100
+KPX Yacute atilde -100
+KPX Yacute colon -8
+KPX Yacute comma -8
+KPX Yacute e -100
+KPX Yacute eacute -100
+KPX Yacute ecaron -100
+KPX Yacute ecircumflex -100
+KPX Yacute edieresis -100
+KPX Yacute edotaccent -100
+KPX Yacute egrave -100
+KPX Yacute emacron -100
+KPX Yacute eogonek -100
+KPX Yacute hyphen -60
+KPX Yacute i -5
+KPX Yacute iacute -5
+KPX Yacute icircumflex 10
+KPX Yacute idieresis 10
+KPX Yacute igrave 10
+KPX Yacute imacron 10
+KPX Yacute iogonek -5
+KPX Yacute o -100
+KPX Yacute oacute -100
+KPX Yacute ocircumflex -100
+KPX Yacute odieresis -100
+KPX Yacute ograve -100
+KPX Yacute ohungarumlaut -100
+KPX Yacute omacron -100
+KPX Yacute oslash -100
+KPX Yacute otilde -100
+KPX Yacute p -60
+KPX Yacute period -8
+KPX Yacute q -100
+KPX Yacute semicolon -8
+KPX Yacute u -82
+KPX Yacute uacute -82
+KPX Yacute ucircumflex -82
+KPX Yacute udieresis -82
+KPX Yacute ugrave -82
+KPX Yacute uhungarumlaut -82
+KPX Yacute umacron -82
+KPX Yacute uogonek -82
+KPX Yacute uring -82
+KPX Yacute v -25
+KPX Ydieresis A -138
+KPX Ydieresis Aacute -138
+KPX Ydieresis Abreve -138
+KPX Ydieresis Acircumflex -138
+KPX Ydieresis Adieresis -138
+KPX Ydieresis Agrave -138
+KPX Ydieresis Amacron -138
+KPX Ydieresis Aogonek -138
+KPX Ydieresis Aring -138
+KPX Ydieresis Atilde -138
+KPX Ydieresis a -100
+KPX Ydieresis aacute -100
+KPX Ydieresis abreve -100
+KPX Ydieresis acircumflex -100
+KPX Ydieresis adieresis -100
+KPX Ydieresis agrave -100
+KPX Ydieresis amacron -100
+KPX Ydieresis aogonek -100
+KPX Ydieresis aring -100
+KPX Ydieresis atilde -100
+KPX Ydieresis colon -8
+KPX Ydieresis comma -8
+KPX Ydieresis e -100
+KPX Ydieresis eacute -100
+KPX Ydieresis ecaron -100
+KPX Ydieresis ecircumflex -100
+KPX Ydieresis edieresis -100
+KPX Ydieresis edotaccent -100
+KPX Ydieresis egrave -100
+KPX Ydieresis emacron -100
+KPX Ydieresis eogonek -100
+KPX Ydieresis hyphen -60
+KPX Ydieresis i -5
+KPX Ydieresis iacute -5
+KPX Ydieresis icircumflex 10
+KPX Ydieresis idieresis 10
+KPX Ydieresis igrave 10
+KPX Ydieresis imacron 10
+KPX Ydieresis iogonek -5
+KPX Ydieresis o -100
+KPX Ydieresis oacute -100
+KPX Ydieresis ocircumflex -100
+KPX Ydieresis odieresis -100
+KPX Ydieresis ograve -100
+KPX Ydieresis ohungarumlaut -100
+KPX Ydieresis omacron -100
+KPX Ydieresis oslash -100
+KPX Ydieresis otilde -100
+KPX Ydieresis p -60
+KPX Ydieresis period -8
+KPX Ydieresis q -100
+KPX Ydieresis semicolon -8
+KPX Ydieresis u -82
+KPX Ydieresis uacute -82
+KPX Ydieresis ucircumflex -82
+KPX Ydieresis udieresis -82
+KPX Ydieresis ugrave -82
+KPX Ydieresis uhungarumlaut -82
+KPX Ydieresis umacron -82
+KPX Ydieresis uogonek -82
+KPX Ydieresis uring -82
+KPX Ydieresis v -25
+KPX f f 38
+KPX r c -27
+KPX r cacute -27
+KPX r ccaron -27
+KPX r ccedilla -27
+KPX r comma 9
+KPX r d -8
+KPX r dcroat -8
+KPX r e -8
+KPX r eacute -8
+KPX r ecaron -8
+KPX r ecircumflex -8
+KPX r edieresis -8
+KPX r edotaccent -8
+KPX r egrave -8
+KPX r emacron -8
+KPX r eogonek -8
+KPX r f 38
+KPX r g -8
+KPX r gbreve -8
+KPX r gcommaaccent -8
+KPX r hyphen -10
+KPX r m 5
+KPX r n 5
+KPX r nacute 5
+KPX r ncaron 5
+KPX r ncommaaccent 5
+KPX r ntilde 5
+KPX r o -18
+KPX r oacute -18
+KPX r ocircumflex -18
+KPX r odieresis -18
+KPX r ograve -18
+KPX r ohungarumlaut -18
+KPX r omacron -18
+KPX r oslash -18
+KPX r otilde -18
+KPX r period 9
+KPX r q -18
+KPX racute c -27
+KPX racute cacute -27
+KPX racute ccaron -27
+KPX racute ccedilla -27
+KPX racute comma 9
+KPX racute d -8
+KPX racute dcroat -8
+KPX racute e -8
+KPX racute eacute -8
+KPX racute ecaron -8
+KPX racute ecircumflex -8
+KPX racute edieresis -8
+KPX racute edotaccent -8
+KPX racute egrave -8
+KPX racute emacron -8
+KPX racute eogonek -8
+KPX racute f 38
+KPX racute g -8
+KPX racute gbreve -8
+KPX racute gcommaaccent -8
+KPX racute hyphen -10
+KPX racute m 5
+KPX racute n 5
+KPX racute nacute 5
+KPX racute ncaron 5
+KPX racute ncommaaccent 5
+KPX racute ntilde 5
+KPX racute o -18
+KPX racute oacute -18
+KPX racute ocircumflex -18
+KPX racute odieresis -18
+KPX racute ograve -18
+KPX racute ohungarumlaut -18
+KPX racute omacron -18
+KPX racute oslash -18
+KPX racute otilde -18
+KPX racute period 9
+KPX racute q -18
+KPX rcaron c -27
+KPX rcaron cacute -27
+KPX rcaron ccaron -27
+KPX rcaron ccedilla -27
+KPX rcaron comma 9
+KPX rcaron d -8
+KPX rcaron dcroat -8
+KPX rcaron e -8
+KPX rcaron eacute -8
+KPX rcaron ecaron -8
+KPX rcaron ecircumflex -8
+KPX rcaron edieresis -8
+KPX rcaron edotaccent -8
+KPX rcaron egrave -8
+KPX rcaron emacron -8
+KPX rcaron eogonek -8
+KPX rcaron f 38
+KPX rcaron g -8
+KPX rcaron gbreve -8
+KPX rcaron gcommaaccent -8
+KPX rcaron hyphen -10
+KPX rcaron m 5
+KPX rcaron n 5
+KPX rcaron nacute 5
+KPX rcaron ncaron 5
+KPX rcaron ncommaaccent 5
+KPX rcaron ntilde 5
+KPX rcaron o -18
+KPX rcaron oacute -18
+KPX rcaron ocircumflex -18
+KPX rcaron odieresis -18
+KPX rcaron ograve -18
+KPX rcaron ohungarumlaut -18
+KPX rcaron omacron -18
+KPX rcaron oslash -18
+KPX rcaron otilde -18
+KPX rcaron period 9
+KPX rcaron q -18
+KPX rcommaaccent c -27
+KPX rcommaaccent cacute -27
+KPX rcommaaccent ccaron -27
+KPX rcommaaccent ccedilla -27
+KPX rcommaaccent comma 9
+KPX rcommaaccent d -8
+KPX rcommaaccent dcroat -8
+KPX rcommaaccent e -8
+KPX rcommaaccent eacute -8
+KPX rcommaaccent ecaron -8
+KPX rcommaaccent ecircumflex -8
+KPX rcommaaccent edieresis -8
+KPX rcommaaccent edotaccent -8
+KPX rcommaaccent egrave -8
+KPX rcommaaccent emacron -8
+KPX rcommaaccent eogonek -8
+KPX rcommaaccent f 38
+KPX rcommaaccent g -8
+KPX rcommaaccent gbreve -8
+KPX rcommaaccent gcommaaccent -8
+KPX rcommaaccent hyphen -10
+KPX rcommaaccent m 5
+KPX rcommaaccent n 5
+KPX rcommaaccent nacute 5
+KPX rcommaaccent ncaron 5
+KPX rcommaaccent ncommaaccent 5
+KPX rcommaaccent ntilde 5
+KPX rcommaaccent o -18
+KPX rcommaaccent oacute -18
+KPX rcommaaccent ocircumflex -18
+KPX rcommaaccent odieresis -18
+KPX rcommaaccent ograve -18
+KPX rcommaaccent ohungarumlaut -18
+KPX rcommaaccent omacron -18
+KPX rcommaaccent oslash -18
+KPX rcommaaccent otilde -18
+KPX rcommaaccent period 9
+KPX rcommaaccent q -18
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/ITCBookman-Demi.afm b/test/user-template/user/psprint/fontmetric/ITCBookman-Demi.afm
new file mode 100644
index 000000000000..2e8b3ef1cacd
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/ITCBookman-Demi.afm
@@ -0,0 +1,1256 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 13:44:58 1997
+Comment UniqueID 43079
+Comment VMusage 45854 56879
+FontName Bookman-Demi
+FullName ITC Bookman Demi
+FamilyName ITC Bookman
+Weight Demi
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -194 -250 1346 934
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation.
+EncodingScheme AdobeStandardEncoding
+CapHeight 681
+XHeight 502
+Ascender 717
+Descender -228
+StdHW 82
+StdVW 167
+StartCharMetrics 314
+C 32 ; WX 340 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 360 ; N exclam ; B 82 -8 282 698 ;
+C 34 ; WX 420 ; N quotedbl ; B 11 379 369 698 ;
+C 35 ; WX 660 ; N numbersign ; B 84 0 576 681 ;
+C 36 ; WX 660 ; N dollar ; B 48 -119 620 805 ;
+C 37 ; WX 940 ; N percent ; B 12 -8 924 698 ;
+C 38 ; WX 800 ; N ampersand ; B 21 -17 772 698 ;
+C 39 ; WX 320 ; N quoteright ; B 82 440 242 698 ;
+C 40 ; WX 320 ; N parenleft ; B 48 -150 289 749 ;
+C 41 ; WX 320 ; N parenright ; B 20 -150 262 749 ;
+C 42 ; WX 460 ; N asterisk ; B 62 317 405 697 ;
+C 43 ; WX 600 ; N plus ; B 51 9 555 514 ;
+C 44 ; WX 340 ; N comma ; B 78 -124 257 162 ;
+C 45 ; WX 360 ; N hyphen ; B 20 210 340 318 ;
+C 46 ; WX 340 ; N period ; B 76 -8 258 172 ;
+C 47 ; WX 600 ; N slash ; B 50 -149 555 725 ;
+C 48 ; WX 660 ; N zero ; B 30 -17 639 698 ;
+C 49 ; WX 660 ; N one ; B 137 0 568 681 ;
+C 50 ; WX 660 ; N two ; B 41 0 628 698 ;
+C 51 ; WX 660 ; N three ; B 37 -17 631 698 ;
+C 52 ; WX 660 ; N four ; B 19 0 649 681 ;
+C 53 ; WX 660 ; N five ; B 44 -17 623 723 ;
+C 54 ; WX 660 ; N six ; B 34 -17 634 698 ;
+C 55 ; WX 660 ; N seven ; B 36 0 632 681 ;
+C 56 ; WX 660 ; N eight ; B 36 -17 633 698 ;
+C 57 ; WX 660 ; N nine ; B 33 -17 636 698 ;
+C 58 ; WX 340 ; N colon ; B 76 -8 258 515 ;
+C 59 ; WX 340 ; N semicolon ; B 75 -124 259 515 ;
+C 60 ; WX 600 ; N less ; B 49 -9 558 542 ;
+C 61 ; WX 600 ; N equal ; B 51 109 555 421 ;
+C 62 ; WX 600 ; N greater ; B 48 -9 557 542 ;
+C 63 ; WX 660 ; N question ; B 61 -8 608 698 ;
+C 64 ; WX 820 ; N at ; B 60 -17 758 698 ;
+C 65 ; WX 720 ; N A ; B -34 0 763 681 ;
+C 66 ; WX 720 ; N B ; B 20 0 693 681 ;
+C 67 ; WX 740 ; N C ; B 35 -17 724 698 ;
+C 68 ; WX 780 ; N D ; B 20 0 748 681 ;
+C 69 ; WX 720 ; N E ; B 20 0 724 681 ;
+C 70 ; WX 680 ; N F ; B 20 0 686 681 ;
+C 71 ; WX 780 ; N G ; B 35 -17 773 698 ;
+C 72 ; WX 820 ; N H ; B 20 0 800 681 ;
+C 73 ; WX 400 ; N I ; B 20 0 379 681 ;
+C 74 ; WX 640 ; N J ; B -12 -17 622 681 ;
+C 75 ; WX 800 ; N K ; B 20 0 796 681 ;
+C 76 ; WX 640 ; N L ; B 20 0 668 681 ;
+C 77 ; WX 940 ; N M ; B 20 0 924 681 ;
+C 78 ; WX 740 ; N N ; B 20 0 724 681 ;
+C 79 ; WX 800 ; N O ; B 35 -17 769 698 ;
+C 80 ; WX 660 ; N P ; B 20 0 658 681 ;
+C 81 ; WX 800 ; N Q ; B 35 -226 775 698 ;
+C 82 ; WX 780 ; N R ; B 20 0 783 681 ;
+C 83 ; WX 660 ; N S ; B 21 -17 639 698 ;
+C 84 ; WX 700 ; N T ; B -4 0 703 681 ;
+C 85 ; WX 740 ; N U ; B 15 -17 724 681 ;
+C 86 ; WX 720 ; N V ; B -20 0 730 681 ;
+C 87 ; WX 940 ; N W ; B -20 0 963 681 ;
+C 88 ; WX 780 ; N X ; B 1 0 770 681 ;
+C 89 ; WX 700 ; N Y ; B -20 0 718 681 ;
+C 90 ; WX 640 ; N Z ; B 6 0 635 681 ;
+C 91 ; WX 300 ; N bracketleft ; B 75 -138 285 725 ;
+C 92 ; WX 600 ; N backslash ; B 50 0 555 725 ;
+C 93 ; WX 300 ; N bracketright ; B 21 -138 231 725 ;
+C 94 ; WX 600 ; N asciicircum ; B 52 281 554 681 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 320 ; N quoteleft ; B 82 440 242 698 ;
+C 97 ; WX 580 ; N a ; B 28 -8 588 515 ;
+C 98 ; WX 600 ; N b ; B -20 -8 568 725 ;
+C 99 ; WX 580 ; N c ; B 31 -8 550 515 ;
+C 100 ; WX 640 ; N d ; B 31 -8 622 725 ;
+C 101 ; WX 580 ; N e ; B 31 -8 548 515 ;
+C 102 ; WX 380 ; N f ; B 22 0 461 741 ; L i fi ; L l fl ;
+C 103 ; WX 580 ; N g ; B 9 -243 583 595 ;
+C 104 ; WX 680 ; N h ; B 22 0 654 725 ;
+C 105 ; WX 360 ; N i ; B 22 0 335 729 ;
+C 106 ; WX 340 ; N j ; B -94 -221 278 729 ;
+C 107 ; WX 660 ; N k ; B 22 0 643 725 ;
+C 108 ; WX 340 ; N l ; B 9 0 322 725 ;
+C 109 ; WX 1000 ; N m ; B 22 0 980 515 ;
+C 110 ; WX 680 ; N n ; B 22 0 652 515 ;
+C 111 ; WX 620 ; N o ; B 31 -8 585 515 ;
+C 112 ; WX 640 ; N p ; B 22 -212 611 515 ;
+C 113 ; WX 620 ; N q ; B 31 -212 633 515 ;
+C 114 ; WX 460 ; N r ; B 22 0 462 502 ;
+C 115 ; WX 520 ; N s ; B 22 -8 492 515 ;
+C 116 ; WX 460 ; N t ; B 22 -8 445 660 ;
+C 117 ; WX 660 ; N u ; B 22 -8 653 502 ;
+C 118 ; WX 600 ; N v ; B -6 0 593 502 ;
+C 119 ; WX 800 ; N w ; B -6 0 810 502 ;
+C 120 ; WX 600 ; N x ; B 8 0 591 502 ;
+C 121 ; WX 620 ; N y ; B 6 -221 613 502 ;
+C 122 ; WX 560 ; N z ; B 22 0 547 502 ;
+C 123 ; WX 320 ; N braceleft ; B 14 -139 301 726 ;
+C 124 ; WX 600 ; N bar ; B 243 -250 362 750 ;
+C 125 ; WX 320 ; N braceright ; B 15 -140 302 725 ;
+C 126 ; WX 600 ; N asciitilde ; B 51 162 555 368 ;
+C 161 ; WX 360 ; N exclamdown ; B 84 -191 284 515 ;
+C 162 ; WX 660 ; N cent ; B 133 17 535 674 ;
+C 163 ; WX 660 ; N sterling ; B 10 -17 659 698 ;
+C 164 ; WX 120 ; N fraction ; B -194 0 312 681 ;
+C 165 ; WX 660 ; N yen ; B -28 0 696 681 ;
+C 166 ; WX 660 ; N florin ; B -46 -209 674 749 ;
+C 167 ; WX 600 ; N section ; B 36 -153 560 698 ;
+C 168 ; WX 660 ; N currency ; B 77 88 584 593 ;
+C 169 ; WX 240 ; N quotesingle ; B 42 379 178 698 ;
+C 170 ; WX 540 ; N quotedblleft ; B 82 439 449 698 ;
+C 171 ; WX 400 ; N guillemotleft ; B 34 101 360 457 ;
+C 172 ; WX 220 ; N guilsinglleft ; B 34 101 188 457 ;
+C 173 ; WX 220 ; N guilsinglright ; B 34 101 188 457 ;
+C 174 ; WX 740 ; N fi ; B 22 0 710 741 ;
+C 175 ; WX 740 ; N fl ; B 22 0 710 741 ;
+C 177 ; WX 500 ; N endash ; B -25 212 525 318 ;
+C 178 ; WX 440 ; N dagger ; B 33 -156 398 698 ;
+C 179 ; WX 380 ; N daggerdbl ; B 8 -156 380 698 ;
+C 180 ; WX 340 ; N periodcentered ; B 76 175 258 355 ;
+C 182 ; WX 800 ; N paragraph ; B 51 0 698 681 ;
+C 183 ; WX 460 ; N bullet ; B 60 170 404 511 ;
+C 184 ; WX 320 ; N quotesinglbase ; B 82 -114 242 144 ;
+C 185 ; WX 540 ; N quotedblbase ; B 82 -114 450 144 ;
+C 186 ; WX 540 ; N quotedblright ; B 82 440 449 698 ;
+C 187 ; WX 400 ; N guillemotright ; B 34 101 360 457 ;
+C 188 ; WX 1000 ; N ellipsis ; B 76 -8 924 172 ;
+C 189 ; WX 1360 ; N perthousand ; B 12 -8 1346 698 ;
+C 191 ; WX 660 ; N questiondown ; B 62 -191 609 515 ;
+C 193 ; WX 400 ; N grave ; B 68 547 327 730 ;
+C 194 ; WX 400 ; N acute ; B 98 547 357 731 ;
+C 195 ; WX 500 ; N circumflex ; B 68 555 430 731 ;
+C 196 ; WX 480 ; N tilde ; B 69 556 421 691 ;
+C 197 ; WX 460 ; N macron ; B 68 577 383 663 ;
+C 198 ; WX 500 ; N breve ; B 68 553 429 722 ;
+C 199 ; WX 320 ; N dotaccent ; B 68 535 259 729 ;
+C 200 ; WX 500 ; N dieresis ; B 68 535 441 673 ;
+C 202 ; WX 340 ; N ring ; B 68 552 275 755 ;
+C 203 ; WX 360 ; N cedilla ; B 68 -213 284 0 ;
+C 205 ; WX 440 ; N hungarumlaut ; B 68 554 365 741 ;
+C 206 ; WX 320 ; N ogonek ; B 82 -199 314 0 ;
+C 207 ; WX 500 ; N caron ; B 68 541 430 717 ;
+C 208 ; WX 1000 ; N emdash ; B -25 212 1025 318 ;
+C 225 ; WX 1140 ; N AE ; B -34 0 1149 681 ;
+C 227 ; WX 400 ; N ordfeminine ; B 27 383 396 698 ;
+C 232 ; WX 640 ; N Lslash ; B 20 0 668 681 ;
+C 233 ; WX 800 ; N Oslash ; B 35 -110 771 781 ;
+C 234 ; WX 1220 ; N OE ; B 35 -17 1219 698 ;
+C 235 ; WX 400 ; N ordmasculine ; B 17 383 383 698 ;
+C 241 ; WX 880 ; N ae ; B 28 -8 852 515 ;
+C 245 ; WX 360 ; N dotlessi ; B 22 0 335 502 ;
+C 248 ; WX 340 ; N lslash ; B 9 0 322 725 ;
+C 249 ; WX 620 ; N oslash ; B 31 -40 586 551 ;
+C 250 ; WX 940 ; N oe ; B 31 -8 908 515 ;
+C 251 ; WX 660 ; N germandbls ; B -61 -91 644 699 ;
+C -1 ; WX 400 ; N Idieresis ; B 18 0 391 877 ;
+C -1 ; WX 580 ; N eacute ; B 31 -8 548 731 ;
+C -1 ; WX 580 ; N abreve ; B 28 -8 588 722 ;
+C -1 ; WX 660 ; N uhungarumlaut ; B 22 -8 653 741 ;
+C -1 ; WX 580 ; N ecaron ; B 31 -8 548 717 ;
+C -1 ; WX 700 ; N Ydieresis ; B -20 0 718 877 ;
+C -1 ; WX 600 ; N divide ; B 51 9 555 521 ;
+C -1 ; WX 700 ; N Yacute ; B -20 0 718 910 ;
+C -1 ; WX 720 ; N Acircumflex ; B -34 0 763 910 ;
+C -1 ; WX 580 ; N aacute ; B 28 -8 588 731 ;
+C -1 ; WX 740 ; N Ucircumflex ; B 15 -17 724 910 ;
+C -1 ; WX 620 ; N yacute ; B 6 -221 613 731 ;
+C -1 ; WX 520 ; N scommaaccent ; B 22 -249 492 515 ;
+C -1 ; WX 580 ; N ecircumflex ; B 31 -8 548 731 ;
+C -1 ; WX 740 ; N Uring ; B 15 -17 724 934 ;
+C -1 ; WX 740 ; N Udieresis ; B 15 -17 724 877 ;
+C -1 ; WX 580 ; N aogonek ; B 28 -206 594 515 ;
+C -1 ; WX 740 ; N Uacute ; B 15 -17 724 910 ;
+C -1 ; WX 660 ; N uogonek ; B 22 -199 663 502 ;
+C -1 ; WX 720 ; N Edieresis ; B 20 0 724 877 ;
+C -1 ; WX 780 ; N Dcroat ; B 20 0 748 681 ;
+C -1 ; WX 250 ; N commaaccent ; B 53 -249 197 -40 ;
+C -1 ; WX 740 ; N copyright ; B 23 -17 723 698 ;
+C -1 ; WX 720 ; N Emacron ; B 20 0 724 842 ;
+C -1 ; WX 580 ; N ccaron ; B 31 -8 550 717 ;
+C -1 ; WX 580 ; N aring ; B 28 -8 588 755 ;
+C -1 ; WX 740 ; N Ncommaaccent ; B 20 -249 724 681 ;
+C -1 ; WX 340 ; N lacute ; B 9 0 367 930 ;
+C -1 ; WX 580 ; N agrave ; B 28 -8 588 730 ;
+C -1 ; WX 700 ; N Tcommaaccent ; B -4 -249 703 681 ;
+C -1 ; WX 740 ; N Cacute ; B 35 -17 724 910 ;
+C -1 ; WX 580 ; N atilde ; B 28 -8 588 691 ;
+C -1 ; WX 720 ; N Edotaccent ; B 20 0 724 933 ;
+C -1 ; WX 520 ; N scaron ; B 22 -8 492 717 ;
+C -1 ; WX 520 ; N scedilla ; B 22 -213 492 515 ;
+C -1 ; WX 360 ; N iacute ; B 22 0 337 731 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 780 ; N Rcaron ; B 20 0 783 896 ;
+C -1 ; WX 780 ; N Gcommaaccent ; B 35 -249 773 698 ;
+C -1 ; WX 660 ; N ucircumflex ; B 22 -8 653 731 ;
+C -1 ; WX 580 ; N acircumflex ; B 28 -8 588 731 ;
+C -1 ; WX 720 ; N Amacron ; B -34 0 763 842 ;
+C -1 ; WX 460 ; N rcaron ; B 22 0 462 717 ;
+C -1 ; WX 580 ; N ccedilla ; B 31 -213 550 515 ;
+C -1 ; WX 640 ; N Zdotaccent ; B 6 0 635 933 ;
+C -1 ; WX 660 ; N Thorn ; B 20 0 658 681 ;
+C -1 ; WX 800 ; N Omacron ; B 35 -17 769 842 ;
+C -1 ; WX 780 ; N Racute ; B 20 0 783 910 ;
+C -1 ; WX 660 ; N Sacute ; B 21 -17 639 910 ;
+C -1 ; WX 737 ; N dcaron ; B 31 -8 726 731 ;
+C -1 ; WX 740 ; N Umacron ; B 15 -17 724 842 ;
+C -1 ; WX 660 ; N uring ; B 22 -8 653 755 ;
+C -1 ; WX 396 ; N threesuperior ; B 5 269 391 698 ;
+C -1 ; WX 800 ; N Ograve ; B 35 -17 769 909 ;
+C -1 ; WX 720 ; N Agrave ; B -34 0 763 909 ;
+C -1 ; WX 720 ; N Abreve ; B -34 0 763 901 ;
+C -1 ; WX 600 ; N multiply ; B 48 10 552 514 ;
+C -1 ; WX 660 ; N uacute ; B 22 -8 653 731 ;
+C -1 ; WX 700 ; N Tcaron ; B -4 0 703 896 ;
+C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 620 ; N ydieresis ; B 6 -221 613 698 ;
+C -1 ; WX 740 ; N Nacute ; B 20 0 724 910 ;
+C -1 ; WX 360 ; N icircumflex ; B -2 0 360 731 ;
+C -1 ; WX 720 ; N Ecircumflex ; B 20 0 724 910 ;
+C -1 ; WX 580 ; N adieresis ; B 28 -8 588 698 ;
+C -1 ; WX 580 ; N edieresis ; B 31 -8 548 698 ;
+C -1 ; WX 580 ; N cacute ; B 31 -8 550 731 ;
+C -1 ; WX 680 ; N nacute ; B 22 0 652 731 ;
+C -1 ; WX 660 ; N umacron ; B 22 -8 653 663 ;
+C -1 ; WX 740 ; N Ncaron ; B 20 0 724 896 ;
+C -1 ; WX 400 ; N Iacute ; B 20 0 379 910 ;
+C -1 ; WX 600 ; N plusminus ; B 51 0 555 514 ;
+C -1 ; WX 600 ; N brokenbar ; B 243 -175 362 675 ;
+C -1 ; WX 740 ; N registered ; B 23 -17 723 698 ;
+C -1 ; WX 780 ; N Gbreve ; B 35 -17 773 901 ;
+C -1 ; WX 400 ; N Idotaccent ; B 20 0 379 933 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ;
+C -1 ; WX 720 ; N Egrave ; B 20 0 724 909 ;
+C -1 ; WX 460 ; N racute ; B 22 0 462 731 ;
+C -1 ; WX 620 ; N omacron ; B 31 -8 585 663 ;
+C -1 ; WX 640 ; N Zacute ; B 6 0 635 910 ;
+C -1 ; WX 640 ; N Zcaron ; B 6 0 635 896 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 780 ; N Eth ; B 20 0 748 681 ;
+C -1 ; WX 740 ; N Ccedilla ; B 35 -213 724 698 ;
+C -1 ; WX 340 ; N lcommaaccent ; B 9 -249 322 725 ;
+C -1 ; WX 460 ; N tcaron ; B 22 -8 445 794 ;
+C -1 ; WX 580 ; N eogonek ; B 31 -204 548 515 ;
+C -1 ; WX 740 ; N Uogonek ; B 15 -199 724 681 ;
+C -1 ; WX 720 ; N Aacute ; B -34 0 763 910 ;
+C -1 ; WX 720 ; N Adieresis ; B -34 0 763 877 ;
+C -1 ; WX 580 ; N egrave ; B 31 -8 548 730 ;
+C -1 ; WX 560 ; N zacute ; B 22 0 547 731 ;
+C -1 ; WX 360 ; N iogonek ; B 22 -199 335 729 ;
+C -1 ; WX 800 ; N Oacute ; B 35 -17 769 910 ;
+C -1 ; WX 620 ; N oacute ; B 31 -8 585 731 ;
+C -1 ; WX 580 ; N amacron ; B 28 -8 588 663 ;
+C -1 ; WX 520 ; N sacute ; B 22 -8 492 731 ;
+C -1 ; WX 360 ; N idieresis ; B -2 0 371 698 ;
+C -1 ; WX 800 ; N Ocircumflex ; B 35 -17 769 910 ;
+C -1 ; WX 740 ; N Ugrave ; B 15 -17 724 909 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 640 ; N thorn ; B 22 -212 611 725 ;
+C -1 ; WX 396 ; N twosuperior ; B 14 279 396 698 ;
+C -1 ; WX 800 ; N Odieresis ; B 35 -17 769 877 ;
+C -1 ; WX 660 ; N mu ; B 22 -221 653 502 ;
+C -1 ; WX 360 ; N igrave ; B 18 0 335 730 ;
+C -1 ; WX 620 ; N ohungarumlaut ; B 31 -8 585 741 ;
+C -1 ; WX 720 ; N Eogonek ; B 20 -204 724 681 ;
+C -1 ; WX 640 ; N dcroat ; B 31 -8 622 725 ;
+C -1 ; WX 990 ; N threequarters ; B 15 0 967 692 ;
+C -1 ; WX 660 ; N Scedilla ; B 21 -213 639 698 ;
+C -1 ; WX 450 ; N lcaron ; B 9 0 434 731 ;
+C -1 ; WX 800 ; N Kcommaaccent ; B 20 -249 796 681 ;
+C -1 ; WX 640 ; N Lacute ; B 20 0 668 910 ;
+C -1 ; WX 980 ; N trademark ; B 42 277 982 681 ;
+C -1 ; WX 580 ; N edotaccent ; B 31 -8 548 754 ;
+C -1 ; WX 400 ; N Igrave ; B 20 0 379 909 ;
+C -1 ; WX 400 ; N Imacron ; B 20 0 379 842 ;
+C -1 ; WX 640 ; N Lcaron ; B 20 0 668 698 ;
+C -1 ; WX 990 ; N onehalf ; B 65 0 980 681 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 620 ; N ocircumflex ; B 31 -8 585 731 ;
+C -1 ; WX 680 ; N ntilde ; B 22 0 652 691 ;
+C -1 ; WX 740 ; N Uhungarumlaut ; B 15 -17 724 920 ;
+C -1 ; WX 720 ; N Eacute ; B 20 0 724 910 ;
+C -1 ; WX 580 ; N emacron ; B 31 -8 548 663 ;
+C -1 ; WX 580 ; N gbreve ; B 9 -243 583 722 ;
+C -1 ; WX 990 ; N onequarter ; B 65 0 967 681 ;
+C -1 ; WX 660 ; N Scaron ; B 21 -17 639 896 ;
+C -1 ; WX 660 ; N Scommaaccent ; B 21 -249 639 698 ;
+C -1 ; WX 800 ; N Ohungarumlaut ; B 35 -17 769 920 ;
+C -1 ; WX 400 ; N degree ; B 50 398 350 698 ;
+C -1 ; WX 620 ; N ograve ; B 31 -8 585 730 ;
+C -1 ; WX 740 ; N Ccaron ; B 35 -17 724 896 ;
+C -1 ; WX 660 ; N ugrave ; B 22 -8 653 730 ;
+C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 780 ; N Dcaron ; B 20 0 748 896 ;
+C -1 ; WX 460 ; N rcommaaccent ; B 22 -249 462 502 ;
+C -1 ; WX 740 ; N Ntilde ; B 20 0 724 870 ;
+C -1 ; WX 620 ; N otilde ; B 31 -8 585 691 ;
+C -1 ; WX 780 ; N Rcommaaccent ; B 20 -249 783 681 ;
+C -1 ; WX 640 ; N Lcommaaccent ; B 20 -249 668 681 ;
+C -1 ; WX 720 ; N Atilde ; B -34 0 763 870 ;
+C -1 ; WX 720 ; N Aogonek ; B -34 -199 763 681 ;
+C -1 ; WX 720 ; N Aring ; B -34 0 763 934 ;
+C -1 ; WX 800 ; N Otilde ; B 35 -17 769 870 ;
+C -1 ; WX 560 ; N zdotaccent ; B 22 0 547 754 ;
+C -1 ; WX 720 ; N Ecaron ; B 20 0 724 896 ;
+C -1 ; WX 400 ; N Iogonek ; B 20 -204 379 681 ;
+C -1 ; WX 660 ; N kcommaaccent ; B 22 -249 643 725 ;
+C -1 ; WX 600 ; N minus ; B 51 207 555 323 ;
+C -1 ; WX 400 ; N Icircumflex ; B 18 0 380 910 ;
+C -1 ; WX 680 ; N ncaron ; B 22 0 652 717 ;
+C -1 ; WX 460 ; N tcommaaccent ; B 22 -249 445 660 ;
+C -1 ; WX 600 ; N logicalnot ; B 51 129 555 421 ;
+C -1 ; WX 620 ; N odieresis ; B 31 -8 585 698 ;
+C -1 ; WX 660 ; N udieresis ; B 22 -8 653 698 ;
+C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 580 ; N gcommaaccent ; B 9 -243 583 785 ;
+C -1 ; WX 620 ; N eth ; B 31 -8 585 741 ;
+C -1 ; WX 560 ; N zcaron ; B 22 0 547 717 ;
+C -1 ; WX 680 ; N ncommaaccent ; B 22 -249 652 515 ;
+C -1 ; WX 396 ; N onesuperior ; B 65 279 345 687 ;
+C -1 ; WX 360 ; N imacron ; B 18 0 335 663 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 912
+KPX A T -40
+KPX A Tcaron -40
+KPX A Tcommaaccent -40
+KPX A V -68
+KPX A W -20
+KPX A Y -52
+KPX A Yacute -52
+KPX A Ydieresis -52
+KPX A v -8
+KPX A w -9
+KPX A y -1
+KPX A yacute -1
+KPX A ydieresis -1
+KPX Aacute T -40
+KPX Aacute Tcaron -40
+KPX Aacute Tcommaaccent -40
+KPX Aacute V -68
+KPX Aacute W -20
+KPX Aacute Y -52
+KPX Aacute Yacute -52
+KPX Aacute Ydieresis -52
+KPX Aacute v -8
+KPX Aacute w -9
+KPX Aacute y -1
+KPX Aacute yacute -1
+KPX Aacute ydieresis -1
+KPX Abreve T -40
+KPX Abreve Tcaron -40
+KPX Abreve Tcommaaccent -40
+KPX Abreve V -68
+KPX Abreve W -20
+KPX Abreve Y -52
+KPX Abreve Yacute -52
+KPX Abreve Ydieresis -52
+KPX Abreve v -8
+KPX Abreve w -9
+KPX Abreve y -1
+KPX Abreve yacute -1
+KPX Abreve ydieresis -1
+KPX Acircumflex T -40
+KPX Acircumflex Tcaron -40
+KPX Acircumflex Tcommaaccent -40
+KPX Acircumflex V -68
+KPX Acircumflex W -20
+KPX Acircumflex Y -52
+KPX Acircumflex Yacute -52
+KPX Acircumflex Ydieresis -52
+KPX Acircumflex v -8
+KPX Acircumflex w -9
+KPX Acircumflex y -1
+KPX Acircumflex yacute -1
+KPX Acircumflex ydieresis -1
+KPX Adieresis T -40
+KPX Adieresis Tcaron -40
+KPX Adieresis Tcommaaccent -40
+KPX Adieresis V -68
+KPX Adieresis W -20
+KPX Adieresis Y -52
+KPX Adieresis Yacute -52
+KPX Adieresis Ydieresis -52
+KPX Adieresis v -8
+KPX Adieresis w -9
+KPX Adieresis y -1
+KPX Adieresis yacute -1
+KPX Adieresis ydieresis -1
+KPX Agrave T -40
+KPX Agrave Tcaron -40
+KPX Agrave Tcommaaccent -40
+KPX Agrave V -68
+KPX Agrave W -20
+KPX Agrave Y -52
+KPX Agrave Yacute -52
+KPX Agrave Ydieresis -52
+KPX Agrave v -8
+KPX Agrave w -9
+KPX Agrave y -1
+KPX Agrave yacute -1
+KPX Agrave ydieresis -1
+KPX Amacron T -40
+KPX Amacron Tcaron -40
+KPX Amacron Tcommaaccent -40
+KPX Amacron V -68
+KPX Amacron W -20
+KPX Amacron Y -52
+KPX Amacron Yacute -52
+KPX Amacron Ydieresis -52
+KPX Amacron v -8
+KPX Amacron w -9
+KPX Amacron y -1
+KPX Amacron yacute -1
+KPX Amacron ydieresis -1
+KPX Aogonek T -40
+KPX Aogonek Tcaron -40
+KPX Aogonek Tcommaaccent -40
+KPX Aogonek V -68
+KPX Aogonek W -20
+KPX Aogonek Y -52
+KPX Aogonek Yacute -52
+KPX Aogonek Ydieresis -52
+KPX Aogonek v -8
+KPX Aogonek w -9
+KPX Aogonek y -1
+KPX Aogonek yacute -1
+KPX Aogonek ydieresis -1
+KPX Aring T -40
+KPX Aring Tcaron -40
+KPX Aring Tcommaaccent -40
+KPX Aring V -68
+KPX Aring W -20
+KPX Aring Y -52
+KPX Aring Yacute -52
+KPX Aring Ydieresis -52
+KPX Aring v -8
+KPX Aring w -9
+KPX Aring y -1
+KPX Aring yacute -1
+KPX Aring ydieresis -1
+KPX Atilde T -40
+KPX Atilde Tcaron -40
+KPX Atilde Tcommaaccent -40
+KPX Atilde V -68
+KPX Atilde W -20
+KPX Atilde Y -52
+KPX Atilde Yacute -52
+KPX Atilde Ydieresis -52
+KPX Atilde v -8
+KPX Atilde w -9
+KPX Atilde y -1
+KPX Atilde yacute -1
+KPX Atilde ydieresis -1
+KPX F A -59
+KPX F Aacute -59
+KPX F Abreve -59
+KPX F Acircumflex -59
+KPX F Adieresis -59
+KPX F Agrave -59
+KPX F Amacron -59
+KPX F Aogonek -59
+KPX F Aring -59
+KPX F Atilde -59
+KPX F comma -130
+KPX F period -132
+KPX L T -4
+KPX L Tcaron -4
+KPX L Tcommaaccent -4
+KPX L V -50
+KPX L W -41
+KPX L Y -35
+KPX L Yacute -35
+KPX L Ydieresis -35
+KPX L y 19
+KPX L yacute 19
+KPX L ydieresis 19
+KPX Lacute T -4
+KPX Lacute Tcaron -4
+KPX Lacute Tcommaaccent -4
+KPX Lacute V -50
+KPX Lacute W -41
+KPX Lacute Y -35
+KPX Lacute Yacute -35
+KPX Lacute Ydieresis -35
+KPX Lacute y 19
+KPX Lacute yacute 19
+KPX Lacute ydieresis 19
+KPX Lcaron T -4
+KPX Lcaron Tcaron -4
+KPX Lcaron Tcommaaccent -4
+KPX Lcaron y 19
+KPX Lcaron yacute 19
+KPX Lcaron ydieresis 19
+KPX Lcommaaccent T -4
+KPX Lcommaaccent Tcaron -4
+KPX Lcommaaccent Tcommaaccent -4
+KPX Lcommaaccent V -50
+KPX Lcommaaccent W -41
+KPX Lcommaaccent Y -35
+KPX Lcommaaccent Yacute -35
+KPX Lcommaaccent Ydieresis -35
+KPX Lcommaaccent y 19
+KPX Lcommaaccent yacute 19
+KPX Lcommaaccent ydieresis 19
+KPX Lslash T -4
+KPX Lslash Tcaron -4
+KPX Lslash Tcommaaccent -4
+KPX Lslash V -50
+KPX Lslash W -41
+KPX Lslash Y -35
+KPX Lslash Yacute -35
+KPX Lslash Ydieresis -35
+KPX Lslash y 19
+KPX Lslash yacute 19
+KPX Lslash ydieresis 19
+KPX P A -46
+KPX P Aacute -46
+KPX P Abreve -46
+KPX P Acircumflex -46
+KPX P Adieresis -46
+KPX P Agrave -46
+KPX P Amacron -46
+KPX P Aogonek -46
+KPX P Aring -46
+KPX P Atilde -46
+KPX P comma -129
+KPX P period -128
+KPX R T -4
+KPX R Tcaron -4
+KPX R Tcommaaccent -4
+KPX R V -29
+KPX R W -24
+KPX R Y -20
+KPX R Yacute -20
+KPX R Ydieresis -20
+KPX R y -8
+KPX R yacute -8
+KPX R ydieresis -8
+KPX Racute T -4
+KPX Racute Tcaron -4
+KPX Racute Tcommaaccent -4
+KPX Racute V -29
+KPX Racute W -24
+KPX Racute Y -20
+KPX Racute Yacute -20
+KPX Racute Ydieresis -20
+KPX Racute y -8
+KPX Racute yacute -8
+KPX Racute ydieresis -8
+KPX Rcaron T -4
+KPX Rcaron Tcaron -4
+KPX Rcaron Tcommaaccent -4
+KPX Rcaron V -29
+KPX Rcaron W -24
+KPX Rcaron Y -20
+KPX Rcaron Yacute -20
+KPX Rcaron Ydieresis -20
+KPX Rcaron y -8
+KPX Rcaron yacute -8
+KPX Rcaron ydieresis -8
+KPX Rcommaaccent T -4
+KPX Rcommaaccent Tcaron -4
+KPX Rcommaaccent Tcommaaccent -4
+KPX Rcommaaccent V -29
+KPX Rcommaaccent W -24
+KPX Rcommaaccent Y -20
+KPX Rcommaaccent Yacute -20
+KPX Rcommaaccent Ydieresis -20
+KPX Rcommaaccent y -8
+KPX Rcommaaccent yacute -8
+KPX Rcommaaccent ydieresis -8
+KPX T A -42
+KPX T Aacute -42
+KPX T Abreve -42
+KPX T Acircumflex -42
+KPX T Adieresis -42
+KPX T Agrave -42
+KPX T Amacron -42
+KPX T Aogonek -42
+KPX T Aring -42
+KPX T Atilde -42
+KPX T a -24
+KPX T aacute -24
+KPX T abreve -24
+KPX T acircumflex -24
+KPX T adieresis -24
+KPX T agrave -24
+KPX T amacron -24
+KPX T aogonek -24
+KPX T aring -24
+KPX T atilde -24
+KPX T c -29
+KPX T cacute -29
+KPX T ccaron -29
+KPX T ccedilla -29
+KPX T colon 7
+KPX T comma -122
+KPX T e -29
+KPX T eacute -29
+KPX T ecaron -29
+KPX T ecircumflex -29
+KPX T edieresis -29
+KPX T edotaccent -29
+KPX T egrave -29
+KPX T emacron -29
+KPX T eogonek -29
+KPX T hyphen -10
+KPX T i 27
+KPX T iacute 27
+KPX T icircumflex 27
+KPX T idieresis 27
+KPX T igrave 27
+KPX T imacron 27
+KPX T iogonek 27
+KPX T o -28
+KPX T oacute -28
+KPX T ocircumflex -28
+KPX T odieresis -28
+KPX T ograve -28
+KPX T ohungarumlaut -28
+KPX T omacron -28
+KPX T oslash -28
+KPX T otilde -28
+KPX T period -122
+KPX T r 27
+KPX T racute 27
+KPX T rcaron 27
+KPX T rcommaaccent 27
+KPX T s -10
+KPX T sacute -10
+KPX T scaron -10
+KPX T scedilla -10
+KPX T scommaaccent -10
+KPX T semicolon 5
+KPX Tcaron A -42
+KPX Tcaron Aacute -42
+KPX Tcaron Abreve -42
+KPX Tcaron Acircumflex -42
+KPX Tcaron Adieresis -42
+KPX Tcaron Agrave -42
+KPX Tcaron Amacron -42
+KPX Tcaron Aogonek -42
+KPX Tcaron Aring -42
+KPX Tcaron Atilde -42
+KPX Tcaron a -24
+KPX Tcaron aacute -24
+KPX Tcaron abreve -24
+KPX Tcaron acircumflex -24
+KPX Tcaron adieresis -24
+KPX Tcaron agrave -24
+KPX Tcaron amacron -24
+KPX Tcaron aogonek -24
+KPX Tcaron aring -24
+KPX Tcaron atilde -24
+KPX Tcaron c -29
+KPX Tcaron cacute -29
+KPX Tcaron ccaron -29
+KPX Tcaron ccedilla -29
+KPX Tcaron colon 7
+KPX Tcaron comma -122
+KPX Tcaron e -29
+KPX Tcaron eacute -29
+KPX Tcaron ecaron -29
+KPX Tcaron ecircumflex -29
+KPX Tcaron edieresis -29
+KPX Tcaron edotaccent -29
+KPX Tcaron egrave -29
+KPX Tcaron emacron -29
+KPX Tcaron eogonek -29
+KPX Tcaron hyphen -10
+KPX Tcaron i 27
+KPX Tcaron iacute 27
+KPX Tcaron icircumflex 27
+KPX Tcaron idieresis 27
+KPX Tcaron igrave 27
+KPX Tcaron imacron 27
+KPX Tcaron iogonek 27
+KPX Tcaron o -28
+KPX Tcaron oacute -28
+KPX Tcaron ocircumflex -28
+KPX Tcaron odieresis -28
+KPX Tcaron ograve -28
+KPX Tcaron ohungarumlaut -28
+KPX Tcaron omacron -28
+KPX Tcaron oslash -28
+KPX Tcaron otilde -28
+KPX Tcaron period -122
+KPX Tcaron r 27
+KPX Tcaron racute 27
+KPX Tcaron rcaron 27
+KPX Tcaron rcommaaccent 27
+KPX Tcaron s -10
+KPX Tcaron sacute -10
+KPX Tcaron scaron -10
+KPX Tcaron scedilla -10
+KPX Tcaron scommaaccent -10
+KPX Tcaron semicolon 5
+KPX Tcommaaccent A -42
+KPX Tcommaaccent Aacute -42
+KPX Tcommaaccent Abreve -42
+KPX Tcommaaccent Acircumflex -42
+KPX Tcommaaccent Adieresis -42
+KPX Tcommaaccent Agrave -42
+KPX Tcommaaccent Amacron -42
+KPX Tcommaaccent Aogonek -42
+KPX Tcommaaccent Aring -42
+KPX Tcommaaccent Atilde -42
+KPX Tcommaaccent a -24
+KPX Tcommaaccent aacute -24
+KPX Tcommaaccent abreve -24
+KPX Tcommaaccent acircumflex -24
+KPX Tcommaaccent adieresis -24
+KPX Tcommaaccent agrave -24
+KPX Tcommaaccent amacron -24
+KPX Tcommaaccent aogonek -24
+KPX Tcommaaccent aring -24
+KPX Tcommaaccent atilde -24
+KPX Tcommaaccent c -29
+KPX Tcommaaccent cacute -29
+KPX Tcommaaccent ccaron -29
+KPX Tcommaaccent ccedilla -29
+KPX Tcommaaccent colon 7
+KPX Tcommaaccent comma -122
+KPX Tcommaaccent e -29
+KPX Tcommaaccent eacute -29
+KPX Tcommaaccent ecaron -29
+KPX Tcommaaccent ecircumflex -29
+KPX Tcommaaccent edieresis -29
+KPX Tcommaaccent edotaccent -29
+KPX Tcommaaccent egrave -29
+KPX Tcommaaccent emacron -29
+KPX Tcommaaccent eogonek -29
+KPX Tcommaaccent hyphen -10
+KPX Tcommaaccent i 27
+KPX Tcommaaccent iacute 27
+KPX Tcommaaccent icircumflex 27
+KPX Tcommaaccent idieresis 27
+KPX Tcommaaccent igrave 27
+KPX Tcommaaccent imacron 27
+KPX Tcommaaccent iogonek 27
+KPX Tcommaaccent o -28
+KPX Tcommaaccent oacute -28
+KPX Tcommaaccent ocircumflex -28
+KPX Tcommaaccent odieresis -28
+KPX Tcommaaccent ograve -28
+KPX Tcommaaccent ohungarumlaut -28
+KPX Tcommaaccent omacron -28
+KPX Tcommaaccent oslash -28
+KPX Tcommaaccent otilde -28
+KPX Tcommaaccent period -122
+KPX Tcommaaccent r 27
+KPX Tcommaaccent racute 27
+KPX Tcommaaccent rcaron 27
+KPX Tcommaaccent rcommaaccent 27
+KPX Tcommaaccent s -10
+KPX Tcommaaccent sacute -10
+KPX Tcommaaccent scaron -10
+KPX Tcommaaccent scedilla -10
+KPX Tcommaaccent scommaaccent -10
+KPX Tcommaaccent semicolon 5
+KPX V A -88
+KPX V Aacute -88
+KPX V Abreve -88
+KPX V Acircumflex -88
+KPX V Adieresis -88
+KPX V Agrave -88
+KPX V Amacron -88
+KPX V Aogonek -88
+KPX V Aring -88
+KPX V Atilde -88
+KPX V a -74
+KPX V aacute -74
+KPX V abreve -74
+KPX V acircumflex -74
+KPX V adieresis -74
+KPX V agrave -74
+KPX V amacron -74
+KPX V aogonek -74
+KPX V aring -74
+KPX V atilde -74
+KPX V colon -37
+KPX V comma -103
+KPX V e -80
+KPX V eacute -80
+KPX V ecaron -80
+KPX V ecircumflex -80
+KPX V edieresis -80
+KPX V edotaccent -80
+KPX V egrave -80
+KPX V emacron -80
+KPX V eogonek -80
+KPX V hyphen -10
+KPX V i 15
+KPX V iacute 15
+KPX V icircumflex 15
+KPX V idieresis 15
+KPX V igrave 15
+KPX V imacron 15
+KPX V iogonek 15
+KPX V o -79
+KPX V oacute -79
+KPX V ocircumflex -79
+KPX V odieresis -79
+KPX V ograve -79
+KPX V ohungarumlaut -79
+KPX V omacron -79
+KPX V oslash -79
+KPX V otilde -79
+KPX V period -105
+KPX V r -15
+KPX V racute -15
+KPX V rcaron -15
+KPX V rcommaaccent -15
+KPX V semicolon -38
+KPX V u -11
+KPX V uacute -11
+KPX V ucircumflex -11
+KPX V udieresis -11
+KPX V ugrave -11
+KPX V uhungarumlaut -11
+KPX V umacron -11
+KPX V uogonek -11
+KPX V uring -11
+KPX V y 12
+KPX V yacute 12
+KPX V ydieresis 12
+KPX W A -60
+KPX W Aacute -60
+KPX W Abreve -60
+KPX W Acircumflex -60
+KPX W Adieresis -60
+KPX W Agrave -60
+KPX W Amacron -60
+KPX W Aogonek -60
+KPX W Aring -60
+KPX W Atilde -60
+KPX W a -73
+KPX W aacute -73
+KPX W abreve -73
+KPX W acircumflex -73
+KPX W adieresis -73
+KPX W agrave -73
+KPX W amacron -73
+KPX W aogonek -73
+KPX W aring -73
+KPX W atilde -73
+KPX W colon -37
+KPX W comma -103
+KPX W e -79
+KPX W eacute -79
+KPX W ecaron -79
+KPX W ecircumflex -79
+KPX W edieresis -79
+KPX W edotaccent -79
+KPX W egrave -79
+KPX W emacron -79
+KPX W eogonek -79
+KPX W hyphen -10
+KPX W i 15
+KPX W iacute 15
+KPX W icircumflex 15
+KPX W idieresis 15
+KPX W igrave 15
+KPX W imacron 15
+KPX W iogonek 15
+KPX W o -78
+KPX W oacute -78
+KPX W ocircumflex -78
+KPX W odieresis -78
+KPX W ograve -78
+KPX W ohungarumlaut -78
+KPX W omacron -78
+KPX W oslash -78
+KPX W otilde -78
+KPX W period -105
+KPX W r -15
+KPX W racute -15
+KPX W rcaron -15
+KPX W rcommaaccent -15
+KPX W semicolon -38
+KPX W u -11
+KPX W uacute -11
+KPX W ucircumflex -11
+KPX W udieresis -11
+KPX W ugrave -11
+KPX W uhungarumlaut -11
+KPX W umacron -11
+KPX W uogonek -11
+KPX W uring -11
+KPX W y 12
+KPX W yacute 12
+KPX W ydieresis 12
+KPX Y A -56
+KPX Y Aacute -56
+KPX Y Abreve -56
+KPX Y Acircumflex -56
+KPX Y Adieresis -56
+KPX Y Agrave -56
+KPX Y Amacron -56
+KPX Y Aogonek -56
+KPX Y Aring -56
+KPX Y Atilde -56
+KPX Y a -60
+KPX Y aacute -60
+KPX Y abreve -60
+KPX Y acircumflex -60
+KPX Y adieresis -60
+KPX Y agrave -60
+KPX Y amacron -60
+KPX Y aogonek -60
+KPX Y aring -60
+KPX Y atilde -60
+KPX Y colon -32
+KPX Y comma -103
+KPX Y e -67
+KPX Y eacute -67
+KPX Y ecaron -67
+KPX Y ecircumflex -67
+KPX Y edieresis -67
+KPX Y edotaccent -67
+KPX Y egrave -67
+KPX Y emacron -67
+KPX Y eogonek -67
+KPX Y hyphen -10
+KPX Y i 2
+KPX Y iacute 2
+KPX Y icircumflex 12
+KPX Y idieresis 12
+KPX Y igrave 12
+KPX Y imacron 12
+KPX Y iogonek 2
+KPX Y o -66
+KPX Y oacute -66
+KPX Y ocircumflex -66
+KPX Y odieresis -66
+KPX Y ograve -66
+KPX Y ohungarumlaut -66
+KPX Y omacron -66
+KPX Y oslash -66
+KPX Y otilde -66
+KPX Y p -23
+KPX Y period -105
+KPX Y q -66
+KPX Y semicolon -34
+KPX Y u -13
+KPX Y uacute -13
+KPX Y ucircumflex -13
+KPX Y udieresis -13
+KPX Y ugrave -13
+KPX Y uhungarumlaut -13
+KPX Y umacron -13
+KPX Y uogonek -13
+KPX Y uring -13
+KPX Y v 24
+KPX Yacute A -56
+KPX Yacute Aacute -56
+KPX Yacute Abreve -56
+KPX Yacute Acircumflex -56
+KPX Yacute Adieresis -56
+KPX Yacute Agrave -56
+KPX Yacute Amacron -56
+KPX Yacute Aogonek -56
+KPX Yacute Aring -56
+KPX Yacute Atilde -56
+KPX Yacute a -60
+KPX Yacute aacute -60
+KPX Yacute abreve -60
+KPX Yacute acircumflex -60
+KPX Yacute adieresis -60
+KPX Yacute agrave -60
+KPX Yacute amacron -60
+KPX Yacute aogonek -60
+KPX Yacute aring -60
+KPX Yacute atilde -60
+KPX Yacute colon -32
+KPX Yacute comma -103
+KPX Yacute e -67
+KPX Yacute eacute -67
+KPX Yacute ecaron -67
+KPX Yacute ecircumflex -67
+KPX Yacute edieresis -67
+KPX Yacute edotaccent -67
+KPX Yacute egrave -67
+KPX Yacute emacron -67
+KPX Yacute eogonek -67
+KPX Yacute hyphen -10
+KPX Yacute i 2
+KPX Yacute iacute 2
+KPX Yacute icircumflex 12
+KPX Yacute idieresis 12
+KPX Yacute igrave 12
+KPX Yacute imacron 12
+KPX Yacute iogonek 2
+KPX Yacute o -66
+KPX Yacute oacute -66
+KPX Yacute ocircumflex -66
+KPX Yacute odieresis -66
+KPX Yacute ograve -66
+KPX Yacute ohungarumlaut -66
+KPX Yacute omacron -66
+KPX Yacute oslash -66
+KPX Yacute otilde -66
+KPX Yacute p -23
+KPX Yacute period -105
+KPX Yacute q -66
+KPX Yacute semicolon -34
+KPX Yacute u -13
+KPX Yacute uacute -13
+KPX Yacute ucircumflex -13
+KPX Yacute udieresis -13
+KPX Yacute ugrave -13
+KPX Yacute uhungarumlaut -13
+KPX Yacute umacron -13
+KPX Yacute uogonek -13
+KPX Yacute uring -13
+KPX Yacute v 24
+KPX Ydieresis A -56
+KPX Ydieresis Aacute -56
+KPX Ydieresis Abreve -56
+KPX Ydieresis Acircumflex -56
+KPX Ydieresis Adieresis -56
+KPX Ydieresis Agrave -56
+KPX Ydieresis Amacron -56
+KPX Ydieresis Aogonek -56
+KPX Ydieresis Aring -56
+KPX Ydieresis Atilde -56
+KPX Ydieresis a -60
+KPX Ydieresis aacute -60
+KPX Ydieresis abreve -60
+KPX Ydieresis acircumflex -60
+KPX Ydieresis adieresis -60
+KPX Ydieresis agrave -60
+KPX Ydieresis amacron -60
+KPX Ydieresis aogonek -60
+KPX Ydieresis aring -60
+KPX Ydieresis atilde -60
+KPX Ydieresis colon -32
+KPX Ydieresis comma -103
+KPX Ydieresis e -67
+KPX Ydieresis eacute -67
+KPX Ydieresis ecaron -67
+KPX Ydieresis ecircumflex -67
+KPX Ydieresis edieresis -67
+KPX Ydieresis edotaccent -67
+KPX Ydieresis egrave -67
+KPX Ydieresis emacron -67
+KPX Ydieresis eogonek -67
+KPX Ydieresis hyphen -10
+KPX Ydieresis i 2
+KPX Ydieresis iacute 2
+KPX Ydieresis icircumflex 12
+KPX Ydieresis idieresis 12
+KPX Ydieresis igrave 12
+KPX Ydieresis imacron 12
+KPX Ydieresis iogonek 2
+KPX Ydieresis o -66
+KPX Ydieresis oacute -66
+KPX Ydieresis ocircumflex -66
+KPX Ydieresis odieresis -66
+KPX Ydieresis ograve -66
+KPX Ydieresis ohungarumlaut -66
+KPX Ydieresis omacron -66
+KPX Ydieresis oslash -66
+KPX Ydieresis otilde -66
+KPX Ydieresis p -23
+KPX Ydieresis period -105
+KPX Ydieresis q -66
+KPX Ydieresis semicolon -34
+KPX Ydieresis u -13
+KPX Ydieresis uacute -13
+KPX Ydieresis ucircumflex -13
+KPX Ydieresis udieresis -13
+KPX Ydieresis ugrave -13
+KPX Ydieresis uhungarumlaut -13
+KPX Ydieresis umacron -13
+KPX Ydieresis uogonek -13
+KPX Ydieresis uring -13
+KPX Ydieresis v 24
+KPX f f 21
+KPX r c -9
+KPX r cacute -9
+KPX r ccaron -9
+KPX r ccedilla -9
+KPX r comma -101
+KPX r d -10
+KPX r dcroat -10
+KPX r e -10
+KPX r eacute -10
+KPX r ecaron -10
+KPX r ecircumflex -10
+KPX r edieresis -10
+KPX r edotaccent -10
+KPX r egrave -10
+KPX r emacron -10
+KPX r eogonek -10
+KPX r f 20
+KPX r g -9
+KPX r gbreve -9
+KPX r gcommaaccent -9
+KPX r h -23
+KPX r hyphen -10
+KPX r m 20
+KPX r n 20
+KPX r nacute 20
+KPX r ncaron 20
+KPX r ncommaaccent 20
+KPX r ntilde 20
+KPX r o -9
+KPX r oacute -9
+KPX r ocircumflex -9
+KPX r odieresis -9
+KPX r ograve -9
+KPX r ohungarumlaut -9
+KPX r omacron -9
+KPX r oslash -9
+KPX r otilde -9
+KPX r period -102
+KPX r q -9
+KPX racute c -9
+KPX racute cacute -9
+KPX racute ccaron -9
+KPX racute ccedilla -9
+KPX racute comma -101
+KPX racute d -10
+KPX racute dcroat -10
+KPX racute e -10
+KPX racute eacute -10
+KPX racute ecaron -10
+KPX racute ecircumflex -10
+KPX racute edieresis -10
+KPX racute edotaccent -10
+KPX racute egrave -10
+KPX racute emacron -10
+KPX racute eogonek -10
+KPX racute f 20
+KPX racute g -9
+KPX racute gbreve -9
+KPX racute gcommaaccent -9
+KPX racute h -23
+KPX racute hyphen -10
+KPX racute m 20
+KPX racute n 20
+KPX racute nacute 20
+KPX racute ncaron 20
+KPX racute ncommaaccent 20
+KPX racute ntilde 20
+KPX racute o -9
+KPX racute oacute -9
+KPX racute ocircumflex -9
+KPX racute odieresis -9
+KPX racute ograve -9
+KPX racute ohungarumlaut -9
+KPX racute omacron -9
+KPX racute oslash -9
+KPX racute otilde -9
+KPX racute period -102
+KPX racute q -9
+KPX rcaron c -9
+KPX rcaron cacute -9
+KPX rcaron ccaron -9
+KPX rcaron ccedilla -9
+KPX rcaron comma -101
+KPX rcaron d -10
+KPX rcaron dcroat -10
+KPX rcaron e -10
+KPX rcaron eacute -10
+KPX rcaron ecaron -10
+KPX rcaron ecircumflex -10
+KPX rcaron edieresis -10
+KPX rcaron edotaccent -10
+KPX rcaron egrave -10
+KPX rcaron emacron -10
+KPX rcaron eogonek -10
+KPX rcaron f 20
+KPX rcaron g -9
+KPX rcaron gbreve -9
+KPX rcaron gcommaaccent -9
+KPX rcaron h -23
+KPX rcaron hyphen -10
+KPX rcaron m 20
+KPX rcaron n 20
+KPX rcaron nacute 20
+KPX rcaron ncaron 20
+KPX rcaron ncommaaccent 20
+KPX rcaron ntilde 20
+KPX rcaron o -9
+KPX rcaron oacute -9
+KPX rcaron ocircumflex -9
+KPX rcaron odieresis -9
+KPX rcaron ograve -9
+KPX rcaron ohungarumlaut -9
+KPX rcaron omacron -9
+KPX rcaron oslash -9
+KPX rcaron otilde -9
+KPX rcaron period -102
+KPX rcaron q -9
+KPX rcommaaccent c -9
+KPX rcommaaccent cacute -9
+KPX rcommaaccent ccaron -9
+KPX rcommaaccent ccedilla -9
+KPX rcommaaccent comma -101
+KPX rcommaaccent d -10
+KPX rcommaaccent dcroat -10
+KPX rcommaaccent e -10
+KPX rcommaaccent eacute -10
+KPX rcommaaccent ecaron -10
+KPX rcommaaccent ecircumflex -10
+KPX rcommaaccent edieresis -10
+KPX rcommaaccent edotaccent -10
+KPX rcommaaccent egrave -10
+KPX rcommaaccent emacron -10
+KPX rcommaaccent eogonek -10
+KPX rcommaaccent f 20
+KPX rcommaaccent g -9
+KPX rcommaaccent gbreve -9
+KPX rcommaaccent gcommaaccent -9
+KPX rcommaaccent h -23
+KPX rcommaaccent hyphen -10
+KPX rcommaaccent m 20
+KPX rcommaaccent n 20
+KPX rcommaaccent nacute 20
+KPX rcommaaccent ncaron 20
+KPX rcommaaccent ncommaaccent 20
+KPX rcommaaccent ntilde 20
+KPX rcommaaccent o -9
+KPX rcommaaccent oacute -9
+KPX rcommaaccent ocircumflex -9
+KPX rcommaaccent odieresis -9
+KPX rcommaaccent ograve -9
+KPX rcommaaccent ohungarumlaut -9
+KPX rcommaaccent omacron -9
+KPX rcommaaccent oslash -9
+KPX rcommaaccent otilde -9
+KPX rcommaaccent period -102
+KPX rcommaaccent q -9
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/ITCBookman-DemiItalic.afm b/test/user-template/user/psprint/fontmetric/ITCBookman-DemiItalic.afm
new file mode 100644
index 000000000000..56cc40ca3aa1
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/ITCBookman-DemiItalic.afm
@@ -0,0 +1,1275 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 13:56:49 1997
+Comment UniqueID 43080
+Comment VMusage 43194 54219
+FontName Bookman-DemiItalic
+FullName ITC Bookman Demi Italic
+FamilyName ITC Bookman
+Weight Demi
+ItalicAngle -10
+IsFixedPitch false
+FontBBox -231 -250 1333 941
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation.
+EncodingScheme AdobeStandardEncoding
+CapHeight 681
+XHeight 515
+Ascender 717
+Descender -228
+StdHW 82
+StdVW 172
+StartCharMetrics 314
+C 32 ; WX 340 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 320 ; N exclam ; B 86 -8 366 698 ;
+C 34 ; WX 380 ; N quotedbl ; B 140 371 507 697 ;
+C 35 ; WX 680 ; N numbersign ; B 157 0 649 681 ;
+C 36 ; WX 680 ; N dollar ; B 45 -164 697 790 ;
+C 37 ; WX 880 ; N percent ; B 106 -17 899 698 ;
+C 38 ; WX 980 ; N ampersand ; B 48 -17 1016 698 ;
+C 39 ; WX 320 ; N quoteright ; B 171 420 349 698 ;
+C 40 ; WX 260 ; N parenleft ; B 31 -134 388 741 ;
+C 41 ; WX 260 ; N parenright ; B -35 -134 322 741 ;
+C 42 ; WX 460 ; N asterisk ; B 126 346 508 698 ;
+C 43 ; WX 600 ; N plus ; B 91 9 595 514 ;
+C 44 ; WX 340 ; N comma ; B 100 -124 298 185 ;
+C 45 ; WX 280 ; N hyphen ; B 59 218 319 313 ;
+C 46 ; WX 340 ; N period ; B 106 -8 296 177 ;
+C 47 ; WX 360 ; N slash ; B 9 -106 502 742 ;
+C 48 ; WX 680 ; N zero ; B 87 -17 703 698 ;
+C 49 ; WX 680 ; N one ; B 123 0 565 681 ;
+C 50 ; WX 680 ; N two ; B 67 0 674 698 ;
+C 51 ; WX 680 ; N three ; B 72 -17 683 698 ;
+C 52 ; WX 680 ; N four ; B 63 0 708 681 ;
+C 53 ; WX 680 ; N five ; B 78 -17 669 681 ;
+C 54 ; WX 680 ; N six ; B 88 -17 704 698 ;
+C 55 ; WX 680 ; N seven ; B 123 0 739 681 ;
+C 56 ; WX 680 ; N eight ; B 68 -17 686 698 ;
+C 57 ; WX 680 ; N nine ; B 71 -17 712 698 ;
+C 58 ; WX 340 ; N colon ; B 106 -8 356 515 ;
+C 59 ; WX 340 ; N semicolon ; B 100 -124 352 515 ;
+C 60 ; WX 620 ; N less ; B 79 -9 588 540 ;
+C 61 ; WX 600 ; N equal ; B 91 109 595 421 ;
+C 62 ; WX 620 ; N greater ; B 89 -9 598 540 ;
+C 63 ; WX 620 ; N question ; B 145 -8 668 698 ;
+C 64 ; WX 780 ; N at ; B 80 -17 790 698 ;
+C 65 ; WX 720 ; N A ; B -27 0 769 681 ;
+C 66 ; WX 720 ; N B ; B 14 0 762 681 ;
+C 67 ; WX 700 ; N C ; B 78 -17 754 698 ;
+C 68 ; WX 760 ; N D ; B 14 0 805 681 ;
+C 69 ; WX 720 ; N E ; B 14 0 777 681 ;
+C 70 ; WX 660 ; N F ; B 14 0 763 681 ;
+C 71 ; WX 760 ; N G ; B 77 -17 828 698 ;
+C 72 ; WX 800 ; N H ; B 14 0 910 681 ;
+C 73 ; WX 380 ; N I ; B 14 0 485 681 ;
+C 74 ; WX 620 ; N J ; B 8 -17 721 681 ;
+C 75 ; WX 780 ; N K ; B 14 0 879 681 ;
+C 76 ; WX 640 ; N L ; B 14 0 725 681 ;
+C 77 ; WX 860 ; N M ; B 14 0 970 681 ;
+C 78 ; WX 740 ; N N ; B 14 0 845 681 ;
+C 79 ; WX 760 ; N O ; B 78 -17 806 698 ;
+C 80 ; WX 640 ; N P ; B -6 0 724 681 ;
+C 81 ; WX 760 ; N Q ; B 37 -213 805 698 ;
+C 82 ; WX 740 ; N R ; B 14 0 765 681 ;
+C 83 ; WX 700 ; N S ; B 59 -17 731 698 ;
+C 84 ; WX 700 ; N T ; B 70 0 802 681 ;
+C 85 ; WX 740 ; N U ; B 112 -17 855 681 ;
+C 86 ; WX 660 ; N V ; B 72 0 819 681 ;
+C 87 ; WX 1000 ; N W ; B 72 0 1090 681 ;
+C 88 ; WX 740 ; N X ; B -7 0 835 681 ;
+C 89 ; WX 660 ; N Y ; B 72 0 817 681 ;
+C 90 ; WX 680 ; N Z ; B 23 0 740 681 ;
+C 91 ; WX 260 ; N bracketleft ; B 9 -118 374 741 ;
+C 92 ; WX 580 ; N backslash ; B 73 0 575 741 ;
+C 93 ; WX 260 ; N bracketright ; B -18 -118 347 741 ;
+C 94 ; WX 620 ; N asciicircum ; B 92 281 594 681 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 320 ; N quoteleft ; B 155 420 333 698 ;
+C 97 ; WX 680 ; N a ; B 84 -8 735 515 ;
+C 98 ; WX 600 ; N b ; B 57 -8 633 732 ;
+C 99 ; WX 560 ; N c ; B 58 -8 597 515 ;
+C 100 ; WX 680 ; N d ; B 60 -8 714 732 ;
+C 101 ; WX 560 ; N e ; B 59 -8 596 515 ;
+C 102 ; WX 420 ; N f ; B -192 -213 641 741 ; L i fi ; L l fl ;
+C 103 ; WX 620 ; N g ; B 21 -213 669 515 ;
+C 104 ; WX 700 ; N h ; B 93 -8 736 732 ;
+C 105 ; WX 380 ; N i ; B 83 -8 420 755 ;
+C 106 ; WX 320 ; N j ; B -160 -213 392 755 ;
+C 107 ; WX 700 ; N k ; B 97 -8 732 732 ;
+C 108 ; WX 380 ; N l ; B 109 -8 410 732 ;
+C 109 ; WX 960 ; N m ; B 83 -8 996 515 ;
+C 110 ; WX 680 ; N n ; B 83 -8 715 515 ;
+C 111 ; WX 600 ; N o ; B 59 -8 627 515 ;
+C 112 ; WX 660 ; N p ; B -24 -213 682 515 ;
+C 113 ; WX 620 ; N q ; B 60 -213 640 515 ;
+C 114 ; WX 500 ; N r ; B 84 0 582 515 ;
+C 115 ; WX 540 ; N s ; B 32 -8 573 515 ;
+C 116 ; WX 440 ; N t ; B 106 -8 488 658 ;
+C 117 ; WX 680 ; N u ; B 83 -8 720 507 ;
+C 118 ; WX 540 ; N v ; B 56 -8 572 515 ;
+C 119 ; WX 860 ; N w ; B 56 -8 891 515 ;
+C 120 ; WX 620 ; N x ; B 10 -8 654 515 ;
+C 121 ; WX 600 ; N y ; B 25 -213 642 507 ;
+C 122 ; WX 560 ; N z ; B 36 -8 586 515 ;
+C 123 ; WX 300 ; N braceleft ; B 49 -123 413 742 ;
+C 124 ; WX 620 ; N bar ; B 303 -250 422 750 ;
+C 125 ; WX 300 ; N braceright ; B -8 -114 356 751 ;
+C 126 ; WX 620 ; N asciitilde ; B 101 162 605 368 ;
+C 161 ; WX 320 ; N exclamdown ; B 64 -191 344 515 ;
+C 162 ; WX 680 ; N cent ; B 161 25 616 718 ;
+C 163 ; WX 680 ; N sterling ; B 0 -17 787 698 ;
+C 164 ; WX 120 ; N fraction ; B -144 0 382 681 ;
+C 165 ; WX 680 ; N yen ; B 92 0 782 681 ;
+C 166 ; WX 680 ; N florin ; B -28 -199 743 741 ;
+C 167 ; WX 620 ; N section ; B 46 -137 638 698 ;
+C 168 ; WX 680 ; N currency ; B 148 85 637 571 ;
+C 169 ; WX 180 ; N quotesingle ; B 126 370 295 696 ;
+C 170 ; WX 520 ; N quotedblleft ; B 156 420 545 698 ;
+C 171 ; WX 380 ; N guillemotleft ; B 62 84 406 503 ;
+C 172 ; WX 220 ; N guilsinglleft ; B 62 84 249 503 ;
+C 173 ; WX 220 ; N guilsinglright ; B 62 84 249 503 ;
+C 174 ; WX 820 ; N fi ; B -191 -213 850 741 ;
+C 175 ; WX 820 ; N fl ; B -191 -213 850 741 ;
+C 177 ; WX 500 ; N endash ; B 40 219 573 311 ;
+C 178 ; WX 420 ; N dagger ; B 89 -137 466 698 ;
+C 179 ; WX 420 ; N daggerdbl ; B 79 -137 486 698 ;
+C 180 ; WX 340 ; N periodcentered ; B 126 173 316 358 ;
+C 182 ; WX 680 ; N paragraph ; B 137 0 715 681 ;
+C 183 ; WX 360 ; N bullet ; B 60 170 404 511 ;
+C 184 ; WX 300 ; N quotesinglbase ; B 106 -112 284 166 ;
+C 185 ; WX 520 ; N quotedblbase ; B 106 -112 495 166 ;
+C 186 ; WX 520 ; N quotedblright ; B 171 420 560 698 ;
+C 187 ; WX 380 ; N guillemotright ; B 62 84 406 503 ;
+C 188 ; WX 1000 ; N ellipsis ; B 86 -8 942 177 ;
+C 189 ; WX 1360 ; N perthousand ; B 106 -17 1333 698 ;
+C 191 ; WX 620 ; N questiondown ; B 83 -189 606 515 ;
+C 193 ; WX 380 ; N grave ; B 193 566 424 771 ;
+C 194 ; WX 340 ; N acute ; B 176 566 407 771 ;
+C 195 ; WX 480 ; N circumflex ; B 183 582 523 749 ;
+C 196 ; WX 480 ; N tilde ; B 178 587 533 709 ;
+C 197 ; WX 480 ; N macron ; B 177 603 531 691 ;
+C 198 ; WX 460 ; N breve ; B 177 577 516 707 ;
+C 199 ; WX 380 ; N dotaccent ; B 167 563 365 755 ;
+C 200 ; WX 520 ; N dieresis ; B 180 563 569 727 ;
+C 202 ; WX 360 ; N ring ; B 185 558 406 775 ;
+C 203 ; WX 360 ; N cedilla ; B 68 -220 289 -8 ;
+C 205 ; WX 560 ; N hungarumlaut ; B 181 560 616 775 ;
+C 206 ; WX 320 ; N ogonek ; B 58 -199 293 0 ;
+C 207 ; WX 480 ; N caron ; B 183 582 523 749 ;
+C 208 ; WX 1000 ; N emdash ; B 40 219 1073 311 ;
+C 225 ; WX 1140 ; N AE ; B -27 0 1207 681 ;
+C 227 ; WX 440 ; N ordfeminine ; B 118 400 495 685 ;
+C 232 ; WX 640 ; N Lslash ; B 14 0 724 681 ;
+C 233 ; WX 760 ; N Oslash ; B 21 -29 847 725 ;
+C 234 ; WX 1180 ; N OE ; B 94 -17 1245 698 ;
+C 235 ; WX 440 ; N ordmasculine ; B 127 400 455 685 ;
+C 241 ; WX 880 ; N ae ; B 39 -8 913 515 ;
+C 245 ; WX 380 ; N dotlessi ; B 83 -8 420 507 ;
+C 248 ; WX 380 ; N lslash ; B 75 -8 424 732 ;
+C 249 ; WX 600 ; N oslash ; B 17 -54 661 571 ;
+C 250 ; WX 920 ; N oe ; B 48 -8 961 515 ;
+C 251 ; WX 660 ; N germandbls ; B -231 -213 702 741 ;
+C -1 ; WX 380 ; N Idieresis ; B 14 0 499 900 ;
+C -1 ; WX 560 ; N eacute ; B 59 -8 596 771 ;
+C -1 ; WX 680 ; N abreve ; B 84 -8 735 707 ;
+C -1 ; WX 680 ; N uhungarumlaut ; B 83 -8 720 775 ;
+C -1 ; WX 560 ; N ecaron ; B 59 -8 596 749 ;
+C -1 ; WX 660 ; N Ydieresis ; B 72 0 817 900 ;
+C -1 ; WX 600 ; N divide ; B 91 9 595 521 ;
+C -1 ; WX 660 ; N Yacute ; B 72 0 817 937 ;
+C -1 ; WX 720 ; N Acircumflex ; B -27 0 769 915 ;
+C -1 ; WX 680 ; N aacute ; B 84 -8 735 771 ;
+C -1 ; WX 740 ; N Ucircumflex ; B 112 -17 855 915 ;
+C -1 ; WX 600 ; N yacute ; B 25 -213 642 771 ;
+C -1 ; WX 540 ; N scommaaccent ; B 32 -250 573 515 ;
+C -1 ; WX 560 ; N ecircumflex ; B 59 -8 596 749 ;
+C -1 ; WX 740 ; N Uring ; B 112 -17 855 941 ;
+C -1 ; WX 740 ; N Udieresis ; B 112 -17 855 900 ;
+C -1 ; WX 680 ; N aogonek ; B 84 -199 735 515 ;
+C -1 ; WX 740 ; N Uacute ; B 112 -17 855 937 ;
+C -1 ; WX 680 ; N uogonek ; B 83 -199 720 507 ;
+C -1 ; WX 720 ; N Edieresis ; B 14 0 777 900 ;
+C -1 ; WX 760 ; N Dcroat ; B 14 0 805 681 ;
+C -1 ; WX 250 ; N commaaccent ; B 55 -250 199 -50 ;
+C -1 ; WX 780 ; N copyright ; B 83 -17 783 698 ;
+C -1 ; WX 720 ; N Emacron ; B 14 0 777 857 ;
+C -1 ; WX 560 ; N ccaron ; B 58 -8 597 749 ;
+C -1 ; WX 680 ; N aring ; B 84 -8 735 775 ;
+C -1 ; WX 740 ; N Ncommaaccent ; B 14 -250 845 681 ;
+C -1 ; WX 380 ; N lacute ; B 109 -8 466 940 ;
+C -1 ; WX 680 ; N agrave ; B 84 -8 735 771 ;
+C -1 ; WX 700 ; N Tcommaaccent ; B 70 -250 802 681 ;
+C -1 ; WX 700 ; N Cacute ; B 78 -17 754 937 ;
+C -1 ; WX 680 ; N atilde ; B 84 -8 735 709 ;
+C -1 ; WX 720 ; N Edotaccent ; B 14 0 777 928 ;
+C -1 ; WX 540 ; N scaron ; B 32 -8 573 749 ;
+C -1 ; WX 540 ; N scedilla ; B 32 -220 573 515 ;
+C -1 ; WX 380 ; N iacute ; B 83 -8 420 771 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 740 ; N Rcaron ; B 14 0 765 915 ;
+C -1 ; WX 760 ; N Gcommaaccent ; B 77 -250 828 698 ;
+C -1 ; WX 680 ; N ucircumflex ; B 83 -8 720 749 ;
+C -1 ; WX 680 ; N acircumflex ; B 84 -8 735 749 ;
+C -1 ; WX 720 ; N Amacron ; B -27 0 769 857 ;
+C -1 ; WX 500 ; N rcaron ; B 84 0 582 749 ;
+C -1 ; WX 560 ; N ccedilla ; B 58 -220 597 515 ;
+C -1 ; WX 680 ; N Zdotaccent ; B 23 0 740 928 ;
+C -1 ; WX 640 ; N Thorn ; B -6 0 701 681 ;
+C -1 ; WX 760 ; N Omacron ; B 78 -17 806 857 ;
+C -1 ; WX 740 ; N Racute ; B 14 0 765 937 ;
+C -1 ; WX 700 ; N Sacute ; B 59 -17 731 937 ;
+C -1 ; WX 755 ; N dcaron ; B 60 -8 874 738 ;
+C -1 ; WX 740 ; N Umacron ; B 112 -17 855 857 ;
+C -1 ; WX 680 ; N uring ; B 83 -8 720 775 ;
+C -1 ; WX 408 ; N threesuperior ; B 86 269 483 698 ;
+C -1 ; WX 760 ; N Ograve ; B 78 -17 806 937 ;
+C -1 ; WX 720 ; N Agrave ; B -27 0 769 937 ;
+C -1 ; WX 720 ; N Abreve ; B -27 0 769 873 ;
+C -1 ; WX 600 ; N multiply ; B 91 10 595 514 ;
+C -1 ; WX 680 ; N uacute ; B 83 -8 720 771 ;
+C -1 ; WX 700 ; N Tcaron ; B 70 0 802 915 ;
+C -1 ; WX 505 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 600 ; N ydieresis ; B 25 -213 642 734 ;
+C -1 ; WX 740 ; N Nacute ; B 14 0 845 937 ;
+C -1 ; WX 380 ; N icircumflex ; B 83 -8 433 749 ;
+C -1 ; WX 720 ; N Ecircumflex ; B 14 0 777 915 ;
+C -1 ; WX 680 ; N adieresis ; B 84 -8 735 734 ;
+C -1 ; WX 560 ; N edieresis ; B 59 -8 596 734 ;
+C -1 ; WX 560 ; N cacute ; B 58 -8 597 771 ;
+C -1 ; WX 680 ; N nacute ; B 83 -8 715 771 ;
+C -1 ; WX 680 ; N umacron ; B 83 -8 720 691 ;
+C -1 ; WX 740 ; N Ncaron ; B 14 0 845 915 ;
+C -1 ; WX 380 ; N Iacute ; B 14 0 487 937 ;
+C -1 ; WX 600 ; N plusminus ; B 91 0 595 514 ;
+C -1 ; WX 620 ; N brokenbar ; B 303 -175 422 675 ;
+C -1 ; WX 780 ; N registered ; B 83 -17 783 698 ;
+C -1 ; WX 760 ; N Gbreve ; B 77 -17 828 873 ;
+C -1 ; WX 380 ; N Idotaccent ; B 14 0 485 928 ;
+C -1 ; WX 599 ; N summation ; B 14 -10 585 706 ;
+C -1 ; WX 720 ; N Egrave ; B 14 0 777 937 ;
+C -1 ; WX 500 ; N racute ; B 84 0 582 771 ;
+C -1 ; WX 600 ; N omacron ; B 59 -8 627 691 ;
+C -1 ; WX 680 ; N Zacute ; B 23 0 740 937 ;
+C -1 ; WX 680 ; N Zcaron ; B 23 0 740 915 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 760 ; N Eth ; B 14 0 805 681 ;
+C -1 ; WX 700 ; N Ccedilla ; B 78 -220 754 698 ;
+C -1 ; WX 380 ; N lcommaaccent ; B 109 -250 410 732 ;
+C -1 ; WX 450 ; N tcaron ; B 106 -8 571 798 ;
+C -1 ; WX 560 ; N eogonek ; B 59 -199 596 515 ;
+C -1 ; WX 740 ; N Uogonek ; B 112 -199 855 681 ;
+C -1 ; WX 720 ; N Aacute ; B -27 0 769 937 ;
+C -1 ; WX 720 ; N Adieresis ; B -27 0 769 900 ;
+C -1 ; WX 560 ; N egrave ; B 59 -8 596 771 ;
+C -1 ; WX 560 ; N zacute ; B 36 -8 586 771 ;
+C -1 ; WX 380 ; N iogonek ; B 83 -199 420 755 ;
+C -1 ; WX 760 ; N Oacute ; B 78 -17 806 937 ;
+C -1 ; WX 600 ; N oacute ; B 59 -8 627 771 ;
+C -1 ; WX 680 ; N amacron ; B 84 -8 735 691 ;
+C -1 ; WX 540 ; N sacute ; B 32 -8 573 771 ;
+C -1 ; WX 380 ; N idieresis ; B 83 -8 479 734 ;
+C -1 ; WX 760 ; N Ocircumflex ; B 78 -17 806 915 ;
+C -1 ; WX 740 ; N Ugrave ; B 112 -17 855 937 ;
+C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 660 ; N thorn ; B -24 -213 682 732 ;
+C -1 ; WX 408 ; N twosuperior ; B 91 279 485 698 ;
+C -1 ; WX 760 ; N Odieresis ; B 78 -17 806 900 ;
+C -1 ; WX 680 ; N mu ; B 54 -213 720 507 ;
+C -1 ; WX 380 ; N igrave ; B 83 -8 420 771 ;
+C -1 ; WX 600 ; N ohungarumlaut ; B 59 -8 636 775 ;
+C -1 ; WX 720 ; N Eogonek ; B 14 -199 777 681 ;
+C -1 ; WX 680 ; N dcroat ; B 60 -8 748 732 ;
+C -1 ; WX 1020 ; N threequarters ; B 86 0 1054 691 ;
+C -1 ; WX 700 ; N Scedilla ; B 59 -220 731 698 ;
+C -1 ; WX 463 ; N lcaron ; B 109 -8 573 738 ;
+C -1 ; WX 780 ; N Kcommaaccent ; B 14 -250 879 681 ;
+C -1 ; WX 640 ; N Lacute ; B 14 0 725 937 ;
+C -1 ; WX 940 ; N trademark ; B 42 277 982 681 ;
+C -1 ; WX 560 ; N edotaccent ; B 59 -8 596 762 ;
+C -1 ; WX 380 ; N Igrave ; B 14 0 485 937 ;
+C -1 ; WX 380 ; N Imacron ; B 14 0 485 857 ;
+C -1 ; WX 640 ; N Lcaron ; B 14 0 725 698 ;
+C -1 ; WX 1020 ; N onehalf ; B 118 0 1036 681 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 600 ; N ocircumflex ; B 59 -8 627 749 ;
+C -1 ; WX 680 ; N ntilde ; B 83 -8 715 709 ;
+C -1 ; WX 740 ; N Uhungarumlaut ; B 112 -17 855 941 ;
+C -1 ; WX 720 ; N Eacute ; B 14 0 777 937 ;
+C -1 ; WX 560 ; N emacron ; B 59 -8 596 691 ;
+C -1 ; WX 620 ; N gbreve ; B 21 -213 669 707 ;
+C -1 ; WX 1020 ; N onequarter ; B 118 0 1054 681 ;
+C -1 ; WX 700 ; N Scaron ; B 59 -17 731 915 ;
+C -1 ; WX 700 ; N Scommaaccent ; B 59 -250 731 698 ;
+C -1 ; WX 760 ; N Ohungarumlaut ; B 78 -17 806 941 ;
+C -1 ; WX 400 ; N degree ; B 130 398 430 698 ;
+C -1 ; WX 600 ; N ograve ; B 59 -8 627 771 ;
+C -1 ; WX 700 ; N Ccaron ; B 78 -17 754 915 ;
+C -1 ; WX 680 ; N ugrave ; B 83 -8 720 771 ;
+C -1 ; WX 522 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 760 ; N Dcaron ; B 14 0 805 915 ;
+C -1 ; WX 500 ; N rcommaaccent ; B 80 -250 582 515 ;
+C -1 ; WX 740 ; N Ntilde ; B 14 0 845 875 ;
+C -1 ; WX 600 ; N otilde ; B 59 -8 627 709 ;
+C -1 ; WX 740 ; N Rcommaaccent ; B 14 -250 765 681 ;
+C -1 ; WX 640 ; N Lcommaaccent ; B 14 -250 725 681 ;
+C -1 ; WX 720 ; N Atilde ; B -27 0 769 875 ;
+C -1 ; WX 720 ; N Aogonek ; B -27 -199 789 681 ;
+C -1 ; WX 720 ; N Aring ; B -27 0 769 941 ;
+C -1 ; WX 760 ; N Otilde ; B 78 -17 806 875 ;
+C -1 ; WX 560 ; N zdotaccent ; B 36 -8 586 762 ;
+C -1 ; WX 720 ; N Ecaron ; B 14 0 777 915 ;
+C -1 ; WX 380 ; N Iogonek ; B 14 -199 485 681 ;
+C -1 ; WX 700 ; N kcommaaccent ; B 97 -250 732 732 ;
+C -1 ; WX 600 ; N minus ; B 91 207 595 323 ;
+C -1 ; WX 380 ; N Icircumflex ; B 14 0 493 915 ;
+C -1 ; WX 680 ; N ncaron ; B 83 -8 715 749 ;
+C -1 ; WX 440 ; N tcommaaccent ; B 106 -250 488 658 ;
+C -1 ; WX 620 ; N logicalnot ; B 81 129 585 421 ;
+C -1 ; WX 600 ; N odieresis ; B 59 -8 627 734 ;
+C -1 ; WX 680 ; N udieresis ; B 83 -8 720 734 ;
+C -1 ; WX 555 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 620 ; N gcommaaccent ; B 21 -213 669 827 ;
+C -1 ; WX 600 ; N eth ; B 59 -8 662 741 ;
+C -1 ; WX 560 ; N zcaron ; B 36 -8 586 749 ;
+C -1 ; WX 680 ; N ncommaaccent ; B 83 -250 715 515 ;
+C -1 ; WX 408 ; N onesuperior ; B 118 279 406 688 ;
+C -1 ; WX 380 ; N imacron ; B 83 -8 461 691 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 931
+KPX A T -17
+KPX A Tcaron -17
+KPX A Tcommaaccent -17
+KPX A V -40
+KPX A W -35
+KPX A Y -25
+KPX A Yacute -25
+KPX A Ydieresis -25
+KPX A v 20
+KPX A w 20
+KPX A y 20
+KPX A yacute 20
+KPX A ydieresis 20
+KPX Aacute T -17
+KPX Aacute Tcaron -17
+KPX Aacute Tcommaaccent -17
+KPX Aacute V -40
+KPX Aacute W -35
+KPX Aacute Y -25
+KPX Aacute Yacute -25
+KPX Aacute Ydieresis -25
+KPX Aacute v 20
+KPX Aacute w 20
+KPX Aacute y 20
+KPX Aacute yacute 20
+KPX Aacute ydieresis 20
+KPX Abreve T -17
+KPX Abreve Tcaron -17
+KPX Abreve Tcommaaccent -17
+KPX Abreve V -40
+KPX Abreve W -35
+KPX Abreve Y -25
+KPX Abreve Yacute -25
+KPX Abreve Ydieresis -25
+KPX Abreve v 20
+KPX Abreve w 20
+KPX Abreve y 20
+KPX Abreve yacute 20
+KPX Abreve ydieresis 20
+KPX Acircumflex T -17
+KPX Acircumflex Tcaron -17
+KPX Acircumflex Tcommaaccent -17
+KPX Acircumflex V -40
+KPX Acircumflex W -35
+KPX Acircumflex Y -25
+KPX Acircumflex Yacute -25
+KPX Acircumflex Ydieresis -25
+KPX Acircumflex v 20
+KPX Acircumflex w 20
+KPX Acircumflex y 20
+KPX Acircumflex yacute 20
+KPX Acircumflex ydieresis 20
+KPX Adieresis T -17
+KPX Adieresis Tcaron -17
+KPX Adieresis Tcommaaccent -17
+KPX Adieresis V -40
+KPX Adieresis W -35
+KPX Adieresis Y -25
+KPX Adieresis Yacute -25
+KPX Adieresis Ydieresis -25
+KPX Adieresis v 20
+KPX Adieresis w 20
+KPX Adieresis y 20
+KPX Adieresis yacute 20
+KPX Adieresis ydieresis 20
+KPX Agrave T -17
+KPX Agrave Tcaron -17
+KPX Agrave Tcommaaccent -17
+KPX Agrave V -40
+KPX Agrave W -35
+KPX Agrave Y -25
+KPX Agrave Yacute -25
+KPX Agrave Ydieresis -25
+KPX Agrave v 20
+KPX Agrave w 20
+KPX Agrave y 20
+KPX Agrave yacute 20
+KPX Agrave ydieresis 20
+KPX Amacron T -17
+KPX Amacron Tcaron -17
+KPX Amacron Tcommaaccent -17
+KPX Amacron V -40
+KPX Amacron W -35
+KPX Amacron Y -25
+KPX Amacron Yacute -25
+KPX Amacron Ydieresis -25
+KPX Amacron v 20
+KPX Amacron w 20
+KPX Amacron y 20
+KPX Amacron yacute 20
+KPX Amacron ydieresis 20
+KPX Aogonek T -17
+KPX Aogonek Tcaron -17
+KPX Aogonek Tcommaaccent -17
+KPX Aogonek V -40
+KPX Aogonek W -35
+KPX Aogonek Y -25
+KPX Aogonek Yacute -25
+KPX Aogonek Ydieresis -25
+KPX Aogonek v 20
+KPX Aogonek w 20
+KPX Aogonek y 20
+KPX Aogonek yacute 20
+KPX Aogonek ydieresis 20
+KPX Aring T -17
+KPX Aring Tcaron -17
+KPX Aring Tcommaaccent -17
+KPX Aring V -40
+KPX Aring W -35
+KPX Aring Y -25
+KPX Aring Yacute -25
+KPX Aring Ydieresis -25
+KPX Aring v 20
+KPX Aring w 20
+KPX Aring y 20
+KPX Aring yacute 20
+KPX Aring ydieresis 20
+KPX Atilde T -17
+KPX Atilde Tcaron -17
+KPX Atilde Tcommaaccent -17
+KPX Atilde V -40
+KPX Atilde W -35
+KPX Atilde Y -25
+KPX Atilde Yacute -25
+KPX Atilde Ydieresis -25
+KPX Atilde v 20
+KPX Atilde w 20
+KPX Atilde y 20
+KPX Atilde yacute 20
+KPX Atilde ydieresis 20
+KPX F A -35
+KPX F Aacute -35
+KPX F Abreve -35
+KPX F Acircumflex -35
+KPX F Adieresis -35
+KPX F Agrave -35
+KPX F Amacron -35
+KPX F Aogonek -35
+KPX F Aring -35
+KPX F Atilde -35
+KPX F comma -98
+KPX F period -105
+KPX L T -26
+KPX L Tcaron -26
+KPX L Tcommaaccent -26
+KPX L V -19
+KPX L W -15
+KPX L Y -5
+KPX L Yacute -5
+KPX L Ydieresis -5
+KPX L y 62
+KPX L yacute 62
+KPX L ydieresis 62
+KPX Lacute T -26
+KPX Lacute Tcaron -26
+KPX Lacute Tcommaaccent -26
+KPX Lacute V -19
+KPX Lacute W -15
+KPX Lacute Y -5
+KPX Lacute Yacute -5
+KPX Lacute Ydieresis -5
+KPX Lacute y 62
+KPX Lacute yacute 62
+KPX Lacute ydieresis 62
+KPX Lcommaaccent T -26
+KPX Lcommaaccent Tcaron -26
+KPX Lcommaaccent Tcommaaccent -26
+KPX Lcommaaccent V -19
+KPX Lcommaaccent W -15
+KPX Lcommaaccent Y -5
+KPX Lcommaaccent Yacute -5
+KPX Lcommaaccent Ydieresis -5
+KPX Lcommaaccent y 62
+KPX Lcommaaccent yacute 62
+KPX Lcommaaccent ydieresis 62
+KPX Lslash T -26
+KPX Lslash Tcaron -26
+KPX Lslash Tcommaaccent -26
+KPX Lslash V -19
+KPX Lslash W -15
+KPX Lslash Y -5
+KPX Lslash Yacute -5
+KPX Lslash Ydieresis -5
+KPX Lslash y 62
+KPX Lslash yacute 62
+KPX Lslash ydieresis 62
+KPX P A -31
+KPX P Aacute -31
+KPX P Abreve -31
+KPX P Acircumflex -31
+KPX P Adieresis -31
+KPX P Agrave -31
+KPX P Amacron -31
+KPX P Aogonek -31
+KPX P Aring -31
+KPX P Atilde -31
+KPX P comma -98
+KPX P period -105
+KPX R T -3
+KPX R Tcaron -3
+KPX R Tcommaaccent -3
+KPX R V -8
+KPX R W -4
+KPX R Y 4
+KPX R Yacute 4
+KPX R Ydieresis 4
+KPX R y 27
+KPX R yacute 27
+KPX R ydieresis 27
+KPX Racute T -3
+KPX Racute Tcaron -3
+KPX Racute Tcommaaccent -3
+KPX Racute V -8
+KPX Racute W -4
+KPX Racute Y 4
+KPX Racute Yacute 4
+KPX Racute Ydieresis 4
+KPX Racute y 27
+KPX Racute yacute 27
+KPX Racute ydieresis 27
+KPX Rcaron T -3
+KPX Rcaron Tcaron -3
+KPX Rcaron Tcommaaccent -3
+KPX Rcaron V -8
+KPX Rcaron W -4
+KPX Rcaron Y 4
+KPX Rcaron Yacute 4
+KPX Rcaron Ydieresis 4
+KPX Rcaron y 27
+KPX Rcaron yacute 27
+KPX Rcaron ydieresis 27
+KPX Rcommaaccent T -3
+KPX Rcommaaccent Tcaron -3
+KPX Rcommaaccent Tcommaaccent -3
+KPX Rcommaaccent V -8
+KPX Rcommaaccent W -4
+KPX Rcommaaccent Y 4
+KPX Rcommaaccent Yacute 4
+KPX Rcommaaccent Ydieresis 4
+KPX Rcommaaccent y 27
+KPX Rcommaaccent yacute 27
+KPX Rcommaaccent ydieresis 27
+KPX T A -42
+KPX T Aacute -42
+KPX T Abreve -42
+KPX T Acircumflex -42
+KPX T Adieresis -42
+KPX T Agrave -42
+KPX T Amacron -42
+KPX T Aogonek -42
+KPX T Aring -42
+KPX T Atilde -42
+KPX T a -8
+KPX T aacute -8
+KPX T abreve -8
+KPX T acircumflex -8
+KPX T adieresis -8
+KPX T agrave -8
+KPX T amacron -8
+KPX T aogonek -8
+KPX T aring -8
+KPX T atilde -8
+KPX T c -8
+KPX T cacute -8
+KPX T ccaron -8
+KPX T ccedilla -8
+KPX T colon 26
+KPX T comma -100
+KPX T e -10
+KPX T eacute -10
+KPX T ecaron -10
+KPX T ecircumflex -10
+KPX T edieresis -10
+KPX T edotaccent -10
+KPX T egrave -10
+KPX T emacron -10
+KPX T eogonek -10
+KPX T hyphen -20
+KPX T i 42
+KPX T iacute 42
+KPX T icircumflex 42
+KPX T idieresis 42
+KPX T igrave 42
+KPX T imacron 42
+KPX T iogonek 42
+KPX T o -5
+KPX T oacute -5
+KPX T ocircumflex -5
+KPX T odieresis -5
+KPX T ograve -5
+KPX T ohungarumlaut -5
+KPX T omacron -5
+KPX T oslash -5
+KPX T otilde -5
+KPX T period -107
+KPX T r 41
+KPX T racute 41
+KPX T rcaron 41
+KPX T rcommaaccent 41
+KPX T s -1
+KPX T sacute -1
+KPX T scaron -1
+KPX T scedilla -1
+KPX T scommaaccent -1
+KPX T semicolon 31
+KPX T u 42
+KPX T uacute 42
+KPX T ucircumflex 42
+KPX T udieresis 42
+KPX T ugrave 42
+KPX T uhungarumlaut 42
+KPX T umacron 42
+KPX T uogonek 42
+KPX T uring 42
+KPX T w 69
+KPX T y 56
+KPX T yacute 56
+KPX T ydieresis 56
+KPX Tcaron A -42
+KPX Tcaron Aacute -42
+KPX Tcaron Abreve -42
+KPX Tcaron Acircumflex -42
+KPX Tcaron Adieresis -42
+KPX Tcaron Agrave -42
+KPX Tcaron Amacron -42
+KPX Tcaron Aogonek -42
+KPX Tcaron Aring -42
+KPX Tcaron Atilde -42
+KPX Tcaron a -8
+KPX Tcaron aacute -8
+KPX Tcaron abreve -8
+KPX Tcaron acircumflex -8
+KPX Tcaron adieresis -8
+KPX Tcaron agrave -8
+KPX Tcaron amacron -8
+KPX Tcaron aogonek -8
+KPX Tcaron aring -8
+KPX Tcaron atilde -8
+KPX Tcaron c -8
+KPX Tcaron cacute -8
+KPX Tcaron ccaron -8
+KPX Tcaron ccedilla -8
+KPX Tcaron colon 26
+KPX Tcaron comma -100
+KPX Tcaron e -10
+KPX Tcaron eacute -10
+KPX Tcaron ecaron -10
+KPX Tcaron ecircumflex -10
+KPX Tcaron edieresis -10
+KPX Tcaron edotaccent -10
+KPX Tcaron egrave -10
+KPX Tcaron emacron -10
+KPX Tcaron eogonek -10
+KPX Tcaron hyphen -20
+KPX Tcaron i 42
+KPX Tcaron iacute 42
+KPX Tcaron icircumflex 42
+KPX Tcaron idieresis 42
+KPX Tcaron igrave 42
+KPX Tcaron imacron 42
+KPX Tcaron iogonek 42
+KPX Tcaron o -5
+KPX Tcaron oacute -5
+KPX Tcaron ocircumflex -5
+KPX Tcaron odieresis -5
+KPX Tcaron ograve -5
+KPX Tcaron ohungarumlaut -5
+KPX Tcaron omacron -5
+KPX Tcaron oslash -5
+KPX Tcaron otilde -5
+KPX Tcaron period -107
+KPX Tcaron r 41
+KPX Tcaron racute 41
+KPX Tcaron rcaron 41
+KPX Tcaron rcommaaccent 41
+KPX Tcaron s -1
+KPX Tcaron sacute -1
+KPX Tcaron scaron -1
+KPX Tcaron scedilla -1
+KPX Tcaron scommaaccent -1
+KPX Tcaron semicolon 31
+KPX Tcaron u 42
+KPX Tcaron uacute 42
+KPX Tcaron ucircumflex 42
+KPX Tcaron udieresis 42
+KPX Tcaron ugrave 42
+KPX Tcaron uhungarumlaut 42
+KPX Tcaron umacron 42
+KPX Tcaron uogonek 42
+KPX Tcaron uring 42
+KPX Tcaron w 69
+KPX Tcaron y 56
+KPX Tcaron yacute 56
+KPX Tcaron ydieresis 56
+KPX Tcommaaccent A -42
+KPX Tcommaaccent Aacute -42
+KPX Tcommaaccent Abreve -42
+KPX Tcommaaccent Acircumflex -42
+KPX Tcommaaccent Adieresis -42
+KPX Tcommaaccent Agrave -42
+KPX Tcommaaccent Amacron -42
+KPX Tcommaaccent Aogonek -42
+KPX Tcommaaccent Aring -42
+KPX Tcommaaccent Atilde -42
+KPX Tcommaaccent a -8
+KPX Tcommaaccent aacute -8
+KPX Tcommaaccent abreve -8
+KPX Tcommaaccent acircumflex -8
+KPX Tcommaaccent adieresis -8
+KPX Tcommaaccent agrave -8
+KPX Tcommaaccent amacron -8
+KPX Tcommaaccent aogonek -8
+KPX Tcommaaccent aring -8
+KPX Tcommaaccent atilde -8
+KPX Tcommaaccent c -8
+KPX Tcommaaccent cacute -8
+KPX Tcommaaccent ccaron -8
+KPX Tcommaaccent ccedilla -8
+KPX Tcommaaccent colon 26
+KPX Tcommaaccent comma -100
+KPX Tcommaaccent e -10
+KPX Tcommaaccent eacute -10
+KPX Tcommaaccent ecaron -10
+KPX Tcommaaccent ecircumflex -10
+KPX Tcommaaccent edieresis -10
+KPX Tcommaaccent edotaccent -10
+KPX Tcommaaccent egrave -10
+KPX Tcommaaccent emacron -10
+KPX Tcommaaccent eogonek -10
+KPX Tcommaaccent hyphen -20
+KPX Tcommaaccent i 42
+KPX Tcommaaccent iacute 42
+KPX Tcommaaccent icircumflex 42
+KPX Tcommaaccent idieresis 42
+KPX Tcommaaccent igrave 42
+KPX Tcommaaccent imacron 42
+KPX Tcommaaccent iogonek 42
+KPX Tcommaaccent o -5
+KPX Tcommaaccent oacute -5
+KPX Tcommaaccent ocircumflex -5
+KPX Tcommaaccent odieresis -5
+KPX Tcommaaccent ograve -5
+KPX Tcommaaccent ohungarumlaut -5
+KPX Tcommaaccent omacron -5
+KPX Tcommaaccent oslash -5
+KPX Tcommaaccent otilde -5
+KPX Tcommaaccent period -107
+KPX Tcommaaccent r 41
+KPX Tcommaaccent racute 41
+KPX Tcommaaccent rcaron 41
+KPX Tcommaaccent rcommaaccent 41
+KPX Tcommaaccent s -1
+KPX Tcommaaccent sacute -1
+KPX Tcommaaccent scaron -1
+KPX Tcommaaccent scedilla -1
+KPX Tcommaaccent scommaaccent -1
+KPX Tcommaaccent semicolon 31
+KPX Tcommaaccent u 42
+KPX Tcommaaccent uacute 42
+KPX Tcommaaccent ucircumflex 42
+KPX Tcommaaccent udieresis 42
+KPX Tcommaaccent ugrave 42
+KPX Tcommaaccent uhungarumlaut 42
+KPX Tcommaaccent umacron 42
+KPX Tcommaaccent uogonek 42
+KPX Tcommaaccent uring 42
+KPX Tcommaaccent w 69
+KPX Tcommaaccent y 56
+KPX Tcommaaccent yacute 56
+KPX Tcommaaccent ydieresis 56
+KPX V A -50
+KPX V Aacute -50
+KPX V Abreve -50
+KPX V Acircumflex -50
+KPX V Adieresis -50
+KPX V Agrave -50
+KPX V Amacron -50
+KPX V Aogonek -50
+KPX V Aring -50
+KPX V Atilde -50
+KPX V a -50
+KPX V aacute -50
+KPX V abreve -50
+KPX V acircumflex -50
+KPX V adieresis -50
+KPX V agrave -50
+KPX V amacron -50
+KPX V aogonek -50
+KPX V aring -50
+KPX V atilde -50
+KPX V colon -28
+KPX V comma -137
+KPX V e -50
+KPX V eacute -50
+KPX V ecaron -50
+KPX V ecircumflex -50
+KPX V edotaccent -50
+KPX V egrave -50
+KPX V eogonek -50
+KPX V hyphen -20
+KPX V i 32
+KPX V iacute 32
+KPX V icircumflex 48
+KPX V idieresis 48
+KPX V igrave 32
+KPX V imacron 48
+KPX V iogonek 32
+KPX V o -50
+KPX V oacute -50
+KPX V ocircumflex -50
+KPX V odieresis -50
+KPX V ograve -50
+KPX V ohungarumlaut -20
+KPX V omacron -52
+KPX V oslash -50
+KPX V otilde -20
+KPX V period -115
+KPX V r 2
+KPX V racute 2
+KPX V rcaron 2
+KPX V rcommaaccent 2
+KPX V semicolon -22
+KPX V u -1
+KPX V uacute -1
+KPX V ucircumflex -1
+KPX V udieresis -1
+KPX V ugrave -1
+KPX V uhungarumlaut -1
+KPX V umacron -1
+KPX V uogonek -1
+KPX V uring -1
+KPX V y 17
+KPX V yacute 17
+KPX V ydieresis 17
+KPX W A -77
+KPX W Aacute -77
+KPX W Abreve -77
+KPX W Acircumflex -77
+KPX W Adieresis -77
+KPX W Agrave -77
+KPX W Amacron -77
+KPX W Aogonek -77
+KPX W Aring -77
+KPX W Atilde -77
+KPX W a -100
+KPX W aacute -100
+KPX W abreve -100
+KPX W acircumflex -100
+KPX W adieresis -100
+KPX W agrave -100
+KPX W amacron -100
+KPX W aogonek -100
+KPX W aring -100
+KPX W atilde -100
+KPX W colon -86
+KPX W comma -201
+KPX W e -100
+KPX W eacute -100
+KPX W ecaron -100
+KPX W ecircumflex -100
+KPX W edieresis -100
+KPX W edotaccent -100
+KPX W egrave -100
+KPX W emacron -100
+KPX W eogonek -100
+KPX W hyphen -22
+KPX W i -36
+KPX W iacute -36
+KPX W igrave -36
+KPX W iogonek -36
+KPX W o -100
+KPX W oacute -100
+KPX W ocircumflex -100
+KPX W odieresis -100
+KPX W ograve -100
+KPX W ohungarumlaut -100
+KPX W omacron -100
+KPX W oslash -100
+KPX W otilde -100
+KPX W period -183
+KPX W r -66
+KPX W racute -66
+KPX W rcaron -66
+KPX W rcommaaccent -66
+KPX W semicolon -81
+KPX W u -69
+KPX W uacute -69
+KPX W ucircumflex -69
+KPX W udieresis -69
+KPX W ugrave -69
+KPX W uhungarumlaut -69
+KPX W umacron -69
+KPX W uogonek -69
+KPX W uring -69
+KPX W y -51
+KPX W yacute -51
+KPX W ydieresis -51
+KPX Y A -30
+KPX Y Aacute -30
+KPX Y Abreve -30
+KPX Y Acircumflex -30
+KPX Y Adieresis -30
+KPX Y Agrave -30
+KPX Y Amacron -30
+KPX Y Aogonek -30
+KPX Y Aring -30
+KPX Y Atilde -30
+KPX Y a -45
+KPX Y aacute -45
+KPX Y abreve -45
+KPX Y acircumflex -45
+KPX Y adieresis -45
+KPX Y agrave -45
+KPX Y amacron -45
+KPX Y aogonek -45
+KPX Y aring -45
+KPX Y atilde -45
+KPX Y colon -9
+KPX Y comma -106
+KPX Y e -46
+KPX Y eacute -46
+KPX Y ecaron -46
+KPX Y ecircumflex -46
+KPX Y edotaccent -46
+KPX Y egrave -46
+KPX Y eogonek -46
+KPX Y hyphen -20
+KPX Y i 20
+KPX Y iacute 20
+KPX Y icircumflex 40
+KPX Y idieresis 40
+KPX Y igrave 40
+KPX Y imacron 40
+KPX Y iogonek 20
+KPX Y o -41
+KPX Y oacute -41
+KPX Y ocircumflex -41
+KPX Y odieresis -21
+KPX Y ograve -41
+KPX Y ohungarumlaut -21
+KPX Y omacron -41
+KPX Y oslash -41
+KPX Y otilde -41
+KPX Y period -113
+KPX Y q -43
+KPX Y semicolon -4
+KPX Y u -1
+KPX Y uacute -1
+KPX Y ucircumflex -1
+KPX Y udieresis -1
+KPX Y ugrave -1
+KPX Y uhungarumlaut -1
+KPX Y umacron -1
+KPX Y uogonek -1
+KPX Y uring -1
+KPX Y v 26
+KPX Yacute A -30
+KPX Yacute Aacute -30
+KPX Yacute Abreve -30
+KPX Yacute Acircumflex -30
+KPX Yacute Adieresis -30
+KPX Yacute Agrave -30
+KPX Yacute Amacron -30
+KPX Yacute Aogonek -30
+KPX Yacute Aring -30
+KPX Yacute Atilde -30
+KPX Yacute a -45
+KPX Yacute aacute -45
+KPX Yacute abreve -45
+KPX Yacute acircumflex -45
+KPX Yacute adieresis -45
+KPX Yacute agrave -45
+KPX Yacute amacron -45
+KPX Yacute aogonek -45
+KPX Yacute aring -45
+KPX Yacute atilde -45
+KPX Yacute colon -9
+KPX Yacute comma -106
+KPX Yacute e -46
+KPX Yacute eacute -46
+KPX Yacute ecaron -46
+KPX Yacute ecircumflex -46
+KPX Yacute edotaccent -46
+KPX Yacute egrave -46
+KPX Yacute eogonek -46
+KPX Yacute hyphen -20
+KPX Yacute i 20
+KPX Yacute iacute 20
+KPX Yacute icircumflex 40
+KPX Yacute idieresis 40
+KPX Yacute igrave 40
+KPX Yacute imacron 40
+KPX Yacute iogonek 20
+KPX Yacute o -41
+KPX Yacute oacute -41
+KPX Yacute ocircumflex -41
+KPX Yacute odieresis -21
+KPX Yacute ograve -41
+KPX Yacute ohungarumlaut -21
+KPX Yacute omacron -41
+KPX Yacute oslash -41
+KPX Yacute otilde -41
+KPX Yacute period -113
+KPX Yacute q -43
+KPX Yacute semicolon -4
+KPX Yacute u -1
+KPX Yacute uacute -1
+KPX Yacute ucircumflex -1
+KPX Yacute udieresis -1
+KPX Yacute ugrave -1
+KPX Yacute uhungarumlaut -1
+KPX Yacute umacron -1
+KPX Yacute uogonek -1
+KPX Yacute uring -1
+KPX Yacute v 26
+KPX Ydieresis A -30
+KPX Ydieresis Aacute -30
+KPX Ydieresis Abreve -30
+KPX Ydieresis Acircumflex -30
+KPX Ydieresis Adieresis -30
+KPX Ydieresis Agrave -30
+KPX Ydieresis Amacron -30
+KPX Ydieresis Aogonek -30
+KPX Ydieresis Aring -30
+KPX Ydieresis Atilde -30
+KPX Ydieresis a -45
+KPX Ydieresis aacute -45
+KPX Ydieresis abreve -45
+KPX Ydieresis acircumflex -45
+KPX Ydieresis adieresis -45
+KPX Ydieresis agrave -45
+KPX Ydieresis amacron -45
+KPX Ydieresis aogonek -45
+KPX Ydieresis aring -45
+KPX Ydieresis atilde -45
+KPX Ydieresis colon -9
+KPX Ydieresis comma -106
+KPX Ydieresis e -46
+KPX Ydieresis eacute -46
+KPX Ydieresis ecaron -46
+KPX Ydieresis ecircumflex -46
+KPX Ydieresis edotaccent -46
+KPX Ydieresis egrave -46
+KPX Ydieresis eogonek -46
+KPX Ydieresis hyphen -20
+KPX Ydieresis i 20
+KPX Ydieresis iacute 20
+KPX Ydieresis icircumflex 40
+KPX Ydieresis idieresis 40
+KPX Ydieresis igrave 40
+KPX Ydieresis imacron 40
+KPX Ydieresis iogonek 20
+KPX Ydieresis o -41
+KPX Ydieresis oacute -41
+KPX Ydieresis ocircumflex -41
+KPX Ydieresis odieresis -21
+KPX Ydieresis ograve -41
+KPX Ydieresis ohungarumlaut -21
+KPX Ydieresis omacron -41
+KPX Ydieresis oslash -41
+KPX Ydieresis otilde -41
+KPX Ydieresis period -113
+KPX Ydieresis q -43
+KPX Ydieresis semicolon -4
+KPX Ydieresis u -1
+KPX Ydieresis uacute -1
+KPX Ydieresis ucircumflex -1
+KPX Ydieresis udieresis -1
+KPX Ydieresis ugrave -1
+KPX Ydieresis uhungarumlaut -1
+KPX Ydieresis umacron -1
+KPX Ydieresis uogonek -1
+KPX Ydieresis uring -1
+KPX Ydieresis v 26
+KPX f f 10
+KPX r c -5
+KPX r cacute -5
+KPX r ccaron -5
+KPX r ccedilla -5
+KPX r comma -113
+KPX r d -3
+KPX r dcroat -3
+KPX r e -6
+KPX r eacute -6
+KPX r ecaron -6
+KPX r ecircumflex -6
+KPX r edieresis -6
+KPX r edotaccent -6
+KPX r egrave -6
+KPX r emacron -6
+KPX r eogonek -6
+KPX r f 42
+KPX r g -23
+KPX r gbreve -23
+KPX r gcommaaccent -23
+KPX r h -35
+KPX r hyphen -20
+KPX r m 39
+KPX r n 39
+KPX r nacute 39
+KPX r ncaron 39
+KPX r ncommaaccent 39
+KPX r ntilde 39
+KPX r o -1
+KPX r oacute -1
+KPX r ocircumflex -1
+KPX r odieresis -1
+KPX r ograve -1
+KPX r ohungarumlaut -1
+KPX r omacron -1
+KPX r oslash -1
+KPX r otilde -1
+KPX r period -120
+KPX r q -3
+KPX racute c -5
+KPX racute cacute -5
+KPX racute ccaron -5
+KPX racute ccedilla -5
+KPX racute comma -113
+KPX racute d -3
+KPX racute dcroat -3
+KPX racute e -6
+KPX racute eacute -6
+KPX racute ecaron -6
+KPX racute ecircumflex -6
+KPX racute edieresis -6
+KPX racute edotaccent -6
+KPX racute egrave -6
+KPX racute emacron -6
+KPX racute eogonek -6
+KPX racute f 42
+KPX racute g -23
+KPX racute gbreve -23
+KPX racute gcommaaccent -23
+KPX racute h -35
+KPX racute hyphen -20
+KPX racute m 39
+KPX racute n 39
+KPX racute nacute 39
+KPX racute ncaron 39
+KPX racute ncommaaccent 39
+KPX racute ntilde 39
+KPX racute o -1
+KPX racute oacute -1
+KPX racute ocircumflex -1
+KPX racute odieresis -1
+KPX racute ograve -1
+KPX racute ohungarumlaut -1
+KPX racute omacron -1
+KPX racute oslash -1
+KPX racute otilde -1
+KPX racute period -120
+KPX racute q -3
+KPX rcaron c -5
+KPX rcaron cacute -5
+KPX rcaron ccaron -5
+KPX rcaron ccedilla -5
+KPX rcaron comma -113
+KPX rcaron d -3
+KPX rcaron dcroat -3
+KPX rcaron e -6
+KPX rcaron eacute -6
+KPX rcaron ecaron -6
+KPX rcaron ecircumflex -6
+KPX rcaron edieresis -6
+KPX rcaron edotaccent -6
+KPX rcaron egrave -6
+KPX rcaron emacron -6
+KPX rcaron eogonek -6
+KPX rcaron f 42
+KPX rcaron g -23
+KPX rcaron gbreve -23
+KPX rcaron gcommaaccent -23
+KPX rcaron h -35
+KPX rcaron hyphen -20
+KPX rcaron m 39
+KPX rcaron n 39
+KPX rcaron nacute 39
+KPX rcaron ncaron 39
+KPX rcaron ncommaaccent 39
+KPX rcaron ntilde 39
+KPX rcaron o -1
+KPX rcaron oacute -1
+KPX rcaron ocircumflex -1
+KPX rcaron odieresis -1
+KPX rcaron ograve -1
+KPX rcaron ohungarumlaut -1
+KPX rcaron omacron -1
+KPX rcaron oslash -1
+KPX rcaron otilde -1
+KPX rcaron period -120
+KPX rcaron q -3
+KPX rcommaaccent c -5
+KPX rcommaaccent cacute -5
+KPX rcommaaccent ccaron -5
+KPX rcommaaccent ccedilla -5
+KPX rcommaaccent comma -113
+KPX rcommaaccent d -3
+KPX rcommaaccent dcroat -3
+KPX rcommaaccent e -6
+KPX rcommaaccent eacute -6
+KPX rcommaaccent ecaron -6
+KPX rcommaaccent ecircumflex -6
+KPX rcommaaccent edieresis -6
+KPX rcommaaccent edotaccent -6
+KPX rcommaaccent egrave -6
+KPX rcommaaccent emacron -6
+KPX rcommaaccent eogonek -6
+KPX rcommaaccent f 42
+KPX rcommaaccent g -23
+KPX rcommaaccent gbreve -23
+KPX rcommaaccent gcommaaccent -23
+KPX rcommaaccent h -35
+KPX rcommaaccent hyphen -20
+KPX rcommaaccent m 39
+KPX rcommaaccent n 39
+KPX rcommaaccent nacute 39
+KPX rcommaaccent ncaron 39
+KPX rcommaaccent ncommaaccent 39
+KPX rcommaaccent ntilde 39
+KPX rcommaaccent o -1
+KPX rcommaaccent oacute -1
+KPX rcommaaccent ocircumflex -1
+KPX rcommaaccent odieresis -1
+KPX rcommaaccent ograve -1
+KPX rcommaaccent ohungarumlaut -1
+KPX rcommaaccent omacron -1
+KPX rcommaaccent oslash -1
+KPX rcommaaccent otilde -1
+KPX rcommaaccent period -120
+KPX rcommaaccent q -3
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/ITCBookman-Light.afm b/test/user-template/user/psprint/fontmetric/ITCBookman-Light.afm
new file mode 100644
index 000000000000..5baca8f72709
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/ITCBookman-Light.afm
@@ -0,0 +1,1226 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 13:40:29 1997
+Comment UniqueID 43077
+Comment VMusage 44500 55525
+FontName Bookman-Light
+FullName ITC Bookman Light
+FamilyName ITC Bookman
+Weight Light
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -188 -251 1266 908
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation.
+EncodingScheme AdobeStandardEncoding
+CapHeight 681
+XHeight 484
+Ascender 717
+Descender -228
+StdHW 42
+StdVW 96
+StartCharMetrics 314
+C 32 ; WX 320 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 300 ; N exclam ; B 75 -8 219 698 ;
+C 34 ; WX 380 ; N quotedbl ; B 56 458 323 698 ;
+C 35 ; WX 620 ; N numbersign ; B 65 0 556 681 ;
+C 36 ; WX 620 ; N dollar ; B 34 -109 593 791 ;
+C 37 ; WX 900 ; N percent ; B 22 -8 873 698 ;
+C 38 ; WX 800 ; N ampersand ; B 45 -17 787 698 ;
+C 39 ; WX 220 ; N quoteright ; B 46 480 178 698 ;
+C 40 ; WX 300 ; N parenleft ; B 76 -145 278 727 ;
+C 41 ; WX 300 ; N parenright ; B 17 -146 219 727 ;
+C 42 ; WX 440 ; N asterisk ; B 54 325 391 698 ;
+C 43 ; WX 600 ; N plus ; B 51 8 555 513 ;
+C 44 ; WX 320 ; N comma ; B 90 -114 223 114 ;
+C 45 ; WX 400 ; N hyphen ; B 50 232 350 292 ;
+C 46 ; WX 320 ; N period ; B 92 -8 220 123 ;
+C 47 ; WX 600 ; N slash ; B 74 -149 532 717 ;
+C 48 ; WX 620 ; N zero ; B 40 -17 586 698 ;
+C 49 ; WX 620 ; N one ; B 160 0 501 681 ;
+C 50 ; WX 620 ; N two ; B 42 0 576 698 ;
+C 51 ; WX 620 ; N three ; B 40 -17 576 698 ;
+C 52 ; WX 620 ; N four ; B 25 0 600 681 ;
+C 53 ; WX 620 ; N five ; B 60 -17 584 717 ;
+C 54 ; WX 620 ; N six ; B 45 -17 590 698 ;
+C 55 ; WX 620 ; N seven ; B 60 0 586 681 ;
+C 56 ; WX 620 ; N eight ; B 44 -17 583 698 ;
+C 57 ; WX 620 ; N nine ; B 37 -17 576 698 ;
+C 58 ; WX 320 ; N colon ; B 92 -8 220 494 ;
+C 59 ; WX 320 ; N semicolon ; B 90 -114 223 494 ;
+C 60 ; WX 600 ; N less ; B 49 -2 558 526 ;
+C 61 ; WX 600 ; N equal ; B 51 126 555 398 ;
+C 62 ; WX 600 ; N greater ; B 48 -2 557 526 ;
+C 63 ; WX 540 ; N question ; B 27 -8 514 698 ;
+C 64 ; WX 820 ; N at ; B 55 -17 755 698 ;
+C 65 ; WX 680 ; N A ; B -37 0 714 681 ;
+C 66 ; WX 740 ; N B ; B 31 0 702 681 ;
+C 67 ; WX 740 ; N C ; B 44 -17 702 698 ;
+C 68 ; WX 800 ; N D ; B 31 0 752 681 ;
+C 69 ; WX 720 ; N E ; B 31 0 705 681 ;
+C 70 ; WX 640 ; N F ; B 31 0 654 681 ;
+C 71 ; WX 800 ; N G ; B 44 -17 778 698 ;
+C 72 ; WX 800 ; N H ; B 31 0 769 681 ;
+C 73 ; WX 340 ; N I ; B 31 0 301 681 ;
+C 74 ; WX 600 ; N J ; B -23 -17 567 681 ;
+C 75 ; WX 720 ; N K ; B 31 0 750 681 ;
+C 76 ; WX 600 ; N L ; B 31 0 629 681 ;
+C 77 ; WX 920 ; N M ; B 26 0 894 681 ;
+C 78 ; WX 740 ; N N ; B 26 0 722 681 ;
+C 79 ; WX 800 ; N O ; B 44 -17 758 698 ;
+C 80 ; WX 620 ; N P ; B 31 0 613 681 ;
+C 81 ; WX 820 ; N Q ; B 44 -189 769 698 ;
+C 82 ; WX 720 ; N R ; B 31 0 757 681 ;
+C 83 ; WX 660 ; N S ; B 28 -17 634 698 ;
+C 84 ; WX 620 ; N T ; B -37 0 656 681 ;
+C 85 ; WX 780 ; N U ; B 25 -17 754 681 ;
+C 86 ; WX 700 ; N V ; B -30 0 725 681 ;
+C 87 ; WX 960 ; N W ; B -30 0 984 681 ;
+C 88 ; WX 720 ; N X ; B -30 0 755 681 ;
+C 89 ; WX 640 ; N Y ; B -30 0 666 681 ;
+C 90 ; WX 640 ; N Z ; B 10 0 656 681 ;
+C 91 ; WX 300 ; N bracketleft ; B 92 -136 258 717 ;
+C 92 ; WX 600 ; N backslash ; B 74 0 532 717 ;
+C 93 ; WX 300 ; N bracketright ; B 41 -136 207 717 ;
+C 94 ; WX 600 ; N asciicircum ; B 52 276 554 681 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 220 ; N quoteleft ; B 46 479 178 698 ;
+C 97 ; WX 580 ; N a ; B 35 -8 587 494 ;
+C 98 ; WX 620 ; N b ; B -2 -8 582 717 ;
+C 99 ; WX 520 ; N c ; B 37 -8 498 494 ;
+C 100 ; WX 620 ; N d ; B 37 -8 591 717 ;
+C 101 ; WX 520 ; N e ; B 37 -8 491 494 ;
+C 102 ; WX 320 ; N f ; B 20 0 414 734 ; L i fi ; L l fl ;
+C 103 ; WX 540 ; N g ; B 17 -243 542 567 ;
+C 104 ; WX 660 ; N h ; B 20 0 643 717 ;
+C 105 ; WX 300 ; N i ; B 20 0 288 654 ;
+C 106 ; WX 300 ; N j ; B -109 -251 214 654 ;
+C 107 ; WX 620 ; N k ; B 20 0 628 717 ;
+C 108 ; WX 300 ; N l ; B 20 0 286 717 ;
+C 109 ; WX 940 ; N m ; B 17 0 928 494 ;
+C 110 ; WX 660 ; N n ; B 20 0 649 494 ;
+C 111 ; WX 560 ; N o ; B 37 -8 526 494 ;
+C 112 ; WX 620 ; N p ; B 20 -228 583 494 ;
+C 113 ; WX 580 ; N q ; B 37 -228 589 494 ;
+C 114 ; WX 440 ; N r ; B 20 0 447 494 ;
+C 115 ; WX 520 ; N s ; B 40 -8 487 494 ;
+C 116 ; WX 380 ; N t ; B 20 -8 388 667 ;
+C 117 ; WX 680 ; N u ; B 20 -8 653 484 ;
+C 118 ; WX 520 ; N v ; B -23 0 534 484 ;
+C 119 ; WX 780 ; N w ; B -19 0 804 484 ;
+C 120 ; WX 560 ; N x ; B -16 0 576 484 ;
+C 121 ; WX 540 ; N y ; B -23 -236 549 484 ;
+C 122 ; WX 480 ; N z ; B 7 0 476 484 ;
+C 123 ; WX 280 ; N braceleft ; B 21 -136 260 717 ;
+C 124 ; WX 600 ; N bar ; B 264 -250 342 750 ;
+C 125 ; WX 280 ; N braceright ; B 21 -136 260 717 ;
+C 126 ; WX 600 ; N asciitilde ; B 52 173 556 352 ;
+C 161 ; WX 300 ; N exclamdown ; B 75 -214 219 494 ;
+C 162 ; WX 620 ; N cent ; B 116 20 511 651 ;
+C 163 ; WX 620 ; N sterling ; B 8 -17 631 698 ;
+C 164 ; WX 140 ; N fraction ; B -188 0 335 681 ;
+C 165 ; WX 620 ; N yen ; B -22 0 647 681 ;
+C 166 ; WX 620 ; N florin ; B -29 -155 633 749 ;
+C 167 ; WX 520 ; N section ; B 33 -178 486 698 ;
+C 168 ; WX 620 ; N currency ; B 58 89 563 591 ;
+C 169 ; WX 220 ; N quotesingle ; B 67 458 153 698 ;
+C 170 ; WX 400 ; N quotedblleft ; B 46 479 348 698 ;
+C 171 ; WX 360 ; N guillemotleft ; B 51 89 312 437 ;
+C 172 ; WX 240 ; N guilsinglleft ; B 51 89 189 437 ;
+C 173 ; WX 240 ; N guilsinglright ; B 51 89 189 437 ;
+C 174 ; WX 620 ; N fi ; B 20 0 608 734 ;
+C 175 ; WX 620 ; N fl ; B 20 0 606 734 ;
+C 177 ; WX 500 ; N endash ; B -15 232 515 292 ;
+C 178 ; WX 540 ; N dagger ; B 79 -156 455 698 ;
+C 179 ; WX 540 ; N daggerdbl ; B 79 -156 455 698 ;
+C 180 ; WX 320 ; N periodcentered ; B 92 196 220 327 ;
+C 182 ; WX 600 ; N paragraph ; B 14 0 577 681 ;
+C 183 ; WX 460 ; N bullet ; B 60 170 404 511 ;
+C 184 ; WX 220 ; N quotesinglbase ; B 46 -108 178 110 ;
+C 185 ; WX 400 ; N quotedblbase ; B 46 -108 348 110 ;
+C 186 ; WX 400 ; N quotedblright ; B 46 480 348 698 ;
+C 187 ; WX 360 ; N guillemotright ; B 51 89 312 437 ;
+C 188 ; WX 1000 ; N ellipsis ; B 101 -8 898 123 ;
+C 189 ; WX 1280 ; N perthousand ; B 22 -8 1266 698 ;
+C 191 ; WX 540 ; N questiondown ; B 23 -217 510 494 ;
+C 193 ; WX 340 ; N grave ; B 68 571 274 689 ;
+C 194 ; WX 340 ; N acute ; B 68 571 274 689 ;
+C 195 ; WX 420 ; N circumflex ; B 68 567 352 685 ;
+C 196 ; WX 440 ; N tilde ; B 68 572 375 661 ;
+C 197 ; WX 440 ; N macron ; B 68 587 364 635 ;
+C 198 ; WX 460 ; N breve ; B 68 568 396 687 ;
+C 199 ; WX 260 ; N dotaccent ; B 68 564 186 684 ;
+C 200 ; WX 420 ; N dieresis ; B 68 533 349 655 ;
+C 202 ; WX 320 ; N ring ; B 68 546 252 731 ;
+C 203 ; WX 320 ; N cedilla ; B 68 -200 257 0 ;
+C 205 ; WX 380 ; N hungarumlaut ; B 68 538 311 698 ;
+C 206 ; WX 320 ; N ogonek ; B 38 -153 258 0 ;
+C 207 ; WX 420 ; N caron ; B 68 554 352 672 ;
+C 208 ; WX 1000 ; N emdash ; B -15 232 1015 292 ;
+C 225 ; WX 1260 ; N AE ; B -36 0 1250 681 ;
+C 227 ; WX 420 ; N ordfeminine ; B 49 395 393 698 ;
+C 232 ; WX 600 ; N Lslash ; B 31 0 629 681 ;
+C 233 ; WX 800 ; N Oslash ; B 44 -53 758 733 ;
+C 234 ; WX 1240 ; N OE ; B 44 -17 1214 698 ;
+C 235 ; WX 420 ; N ordmasculine ; B 56 394 361 698 ;
+C 241 ; WX 860 ; N ae ; B 35 -8 832 494 ;
+C 245 ; WX 300 ; N dotlessi ; B 20 0 288 484 ;
+C 248 ; WX 320 ; N lslash ; B 20 0 291 717 ;
+C 249 ; WX 560 ; N oslash ; B 37 -40 526 534 ;
+C 250 ; WX 900 ; N oe ; B 37 -8 876 494 ;
+C 251 ; WX 660 ; N germandbls ; B -109 -110 614 698 ;
+C -1 ; WX 340 ; N Idieresis ; B 28 0 309 851 ;
+C -1 ; WX 520 ; N eacute ; B 37 -8 491 689 ;
+C -1 ; WX 580 ; N abreve ; B 35 -8 587 687 ;
+C -1 ; WX 680 ; N uhungarumlaut ; B 20 -8 653 698 ;
+C -1 ; WX 520 ; N ecaron ; B 37 -8 491 672 ;
+C -1 ; WX 640 ; N Ydieresis ; B -30 0 666 851 ;
+C -1 ; WX 600 ; N divide ; B 51 10 555 514 ;
+C -1 ; WX 640 ; N Yacute ; B -30 0 666 866 ;
+C -1 ; WX 680 ; N Acircumflex ; B -37 0 714 862 ;
+C -1 ; WX 580 ; N aacute ; B 35 -8 587 689 ;
+C -1 ; WX 780 ; N Ucircumflex ; B 25 -17 754 862 ;
+C -1 ; WX 540 ; N yacute ; B -23 -236 549 689 ;
+C -1 ; WX 520 ; N scommaaccent ; B 40 -251 487 494 ;
+C -1 ; WX 520 ; N ecircumflex ; B 37 -8 491 685 ;
+C -1 ; WX 780 ; N Uring ; B 25 -17 754 908 ;
+C -1 ; WX 780 ; N Udieresis ; B 25 -17 754 851 ;
+C -1 ; WX 580 ; N aogonek ; B 35 -153 588 494 ;
+C -1 ; WX 780 ; N Uacute ; B 25 -17 754 866 ;
+C -1 ; WX 680 ; N uogonek ; B 20 -153 653 484 ;
+C -1 ; WX 720 ; N Edieresis ; B 31 0 705 851 ;
+C -1 ; WX 800 ; N Dcroat ; B 31 0 752 681 ;
+C -1 ; WX 250 ; N commaaccent ; B 66 -251 185 -50 ;
+C -1 ; WX 740 ; N copyright ; B 24 -17 724 698 ;
+C -1 ; WX 720 ; N Emacron ; B 31 0 705 812 ;
+C -1 ; WX 520 ; N ccaron ; B 37 -8 498 672 ;
+C -1 ; WX 580 ; N aring ; B 35 -8 587 731 ;
+C -1 ; WX 740 ; N Ncommaaccent ; B 26 -251 722 681 ;
+C -1 ; WX 300 ; N lacute ; B 20 0 294 866 ;
+C -1 ; WX 580 ; N agrave ; B 35 -8 587 689 ;
+C -1 ; WX 620 ; N Tcommaaccent ; B -37 -251 656 681 ;
+C -1 ; WX 740 ; N Cacute ; B 44 -17 702 866 ;
+C -1 ; WX 580 ; N atilde ; B 35 -8 587 661 ;
+C -1 ; WX 720 ; N Edotaccent ; B 31 0 705 880 ;
+C -1 ; WX 520 ; N scaron ; B 40 -8 487 672 ;
+C -1 ; WX 520 ; N scedilla ; B 40 -200 487 494 ;
+C -1 ; WX 300 ; N iacute ; B 20 0 294 689 ;
+C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ;
+C -1 ; WX 720 ; N Rcaron ; B 31 0 757 849 ;
+C -1 ; WX 800 ; N Gcommaaccent ; B 44 -251 778 698 ;
+C -1 ; WX 680 ; N ucircumflex ; B 20 -8 653 685 ;
+C -1 ; WX 580 ; N acircumflex ; B 35 -8 587 685 ;
+C -1 ; WX 680 ; N Amacron ; B -37 0 714 812 ;
+C -1 ; WX 440 ; N rcaron ; B 20 0 447 672 ;
+C -1 ; WX 520 ; N ccedilla ; B 37 -200 498 494 ;
+C -1 ; WX 640 ; N Zdotaccent ; B 10 0 656 880 ;
+C -1 ; WX 620 ; N Thorn ; B 31 0 613 681 ;
+C -1 ; WX 800 ; N Omacron ; B 44 -17 758 812 ;
+C -1 ; WX 720 ; N Racute ; B 31 0 757 866 ;
+C -1 ; WX 660 ; N Sacute ; B 28 -17 634 866 ;
+C -1 ; WX 690 ; N dcaron ; B 37 -8 701 732 ;
+C -1 ; WX 780 ; N Umacron ; B 25 -17 754 812 ;
+C -1 ; WX 680 ; N uring ; B 20 -8 653 731 ;
+C -1 ; WX 372 ; N threesuperior ; B 12 269 360 698 ;
+C -1 ; WX 800 ; N Ograve ; B 44 -17 758 866 ;
+C -1 ; WX 680 ; N Agrave ; B -37 0 714 866 ;
+C -1 ; WX 680 ; N Abreve ; B -37 0 714 864 ;
+C -1 ; WX 600 ; N multiply ; B 51 9 555 513 ;
+C -1 ; WX 680 ; N uacute ; B 20 -8 653 689 ;
+C -1 ; WX 620 ; N Tcaron ; B -37 0 656 849 ;
+C -1 ; WX 476 ; N partialdiff ; B 34 -21 442 707 ;
+C -1 ; WX 540 ; N ydieresis ; B -23 -236 549 674 ;
+C -1 ; WX 740 ; N Nacute ; B 26 0 722 866 ;
+C -1 ; WX 300 ; N icircumflex ; B 8 0 292 685 ;
+C -1 ; WX 720 ; N Ecircumflex ; B 31 0 705 862 ;
+C -1 ; WX 580 ; N adieresis ; B 35 -8 587 674 ;
+C -1 ; WX 520 ; N edieresis ; B 37 -8 491 674 ;
+C -1 ; WX 520 ; N cacute ; B 37 -8 498 689 ;
+C -1 ; WX 660 ; N nacute ; B 20 0 649 689 ;
+C -1 ; WX 680 ; N umacron ; B 20 -8 653 635 ;
+C -1 ; WX 740 ; N Ncaron ; B 26 0 722 849 ;
+C -1 ; WX 340 ; N Iacute ; B 31 0 301 866 ;
+C -1 ; WX 600 ; N plusminus ; B 51 0 555 513 ;
+C -1 ; WX 600 ; N brokenbar ; B 264 -175 342 675 ;
+C -1 ; WX 740 ; N registered ; B 23 -17 723 698 ;
+C -1 ; WX 800 ; N Gbreve ; B 44 -17 778 864 ;
+C -1 ; WX 340 ; N Idotaccent ; B 31 0 301 880 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 720 ; N Egrave ; B 31 0 705 866 ;
+C -1 ; WX 440 ; N racute ; B 20 0 447 689 ;
+C -1 ; WX 560 ; N omacron ; B 37 -8 526 635 ;
+C -1 ; WX 640 ; N Zacute ; B 10 0 656 866 ;
+C -1 ; WX 640 ; N Zcaron ; B 10 0 656 849 ;
+C -1 ; WX 549 ; N greaterequal ; B 29 0 526 635 ;
+C -1 ; WX 800 ; N Eth ; B 31 0 752 681 ;
+C -1 ; WX 740 ; N Ccedilla ; B 44 -200 702 698 ;
+C -1 ; WX 300 ; N lcommaaccent ; B 20 -251 286 717 ;
+C -1 ; WX 380 ; N tcaron ; B 20 -8 388 747 ;
+C -1 ; WX 520 ; N eogonek ; B 37 -154 491 494 ;
+C -1 ; WX 780 ; N Uogonek ; B 25 -153 754 681 ;
+C -1 ; WX 680 ; N Aacute ; B -37 0 714 866 ;
+C -1 ; WX 680 ; N Adieresis ; B -37 0 714 851 ;
+C -1 ; WX 520 ; N egrave ; B 37 -8 491 689 ;
+C -1 ; WX 480 ; N zacute ; B 7 0 476 689 ;
+C -1 ; WX 300 ; N iogonek ; B 20 -153 289 654 ;
+C -1 ; WX 800 ; N Oacute ; B 44 -17 758 866 ;
+C -1 ; WX 560 ; N oacute ; B 37 -8 526 689 ;
+C -1 ; WX 580 ; N amacron ; B 35 -8 587 635 ;
+C -1 ; WX 520 ; N sacute ; B 40 -8 487 689 ;
+C -1 ; WX 300 ; N idieresis ; B 8 0 289 674 ;
+C -1 ; WX 800 ; N Ocircumflex ; B 44 -17 758 862 ;
+C -1 ; WX 780 ; N Ugrave ; B 25 -17 754 866 ;
+C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 620 ; N thorn ; B 20 -228 583 717 ;
+C -1 ; WX 372 ; N twosuperior ; B 20 279 367 698 ;
+C -1 ; WX 800 ; N Odieresis ; B 44 -17 758 851 ;
+C -1 ; WX 680 ; N mu ; B 20 -251 653 484 ;
+C -1 ; WX 300 ; N igrave ; B 20 0 288 689 ;
+C -1 ; WX 560 ; N ohungarumlaut ; B 37 -8 526 698 ;
+C -1 ; WX 720 ; N Eogonek ; B 31 -153 705 681 ;
+C -1 ; WX 620 ; N dcroat ; B 37 -8 612 717 ;
+C -1 ; WX 930 ; N threequarters ; B 52 0 889 691 ;
+C -1 ; WX 660 ; N Scedilla ; B 28 -200 634 698 ;
+C -1 ; WX 372 ; N lcaron ; B 20 0 383 732 ;
+C -1 ; WX 720 ; N Kcommaaccent ; B 31 -251 750 681 ;
+C -1 ; WX 600 ; N Lacute ; B 31 0 629 866 ;
+C -1 ; WX 980 ; N trademark ; B 34 277 930 681 ;
+C -1 ; WX 520 ; N edotaccent ; B 37 -8 491 703 ;
+C -1 ; WX 340 ; N Igrave ; B 31 0 301 866 ;
+C -1 ; WX 340 ; N Imacron ; B 18 0 314 812 ;
+C -1 ; WX 600 ; N Lcaron ; B 31 0 629 707 ;
+C -1 ; WX 930 ; N onehalf ; B 80 0 885 681 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 635 ;
+C -1 ; WX 560 ; N ocircumflex ; B 37 -8 526 685 ;
+C -1 ; WX 660 ; N ntilde ; B 20 0 649 661 ;
+C -1 ; WX 780 ; N Uhungarumlaut ; B 25 -17 754 875 ;
+C -1 ; WX 720 ; N Eacute ; B 31 0 705 866 ;
+C -1 ; WX 520 ; N emacron ; B 37 -8 491 635 ;
+C -1 ; WX 540 ; N gbreve ; B 17 -243 542 687 ;
+C -1 ; WX 930 ; N onequarter ; B 80 0 869 681 ;
+C -1 ; WX 660 ; N Scaron ; B 28 -17 634 849 ;
+C -1 ; WX 660 ; N Scommaaccent ; B 28 -251 634 698 ;
+C -1 ; WX 800 ; N Ohungarumlaut ; B 44 -17 758 875 ;
+C -1 ; WX 400 ; N degree ; B 50 398 350 698 ;
+C -1 ; WX 560 ; N ograve ; B 37 -8 526 689 ;
+C -1 ; WX 740 ; N Ccaron ; B 44 -17 702 849 ;
+C -1 ; WX 680 ; N ugrave ; B 20 -8 653 689 ;
+C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ;
+C -1 ; WX 800 ; N Dcaron ; B 31 0 752 849 ;
+C -1 ; WX 440 ; N rcommaaccent ; B 20 -251 447 494 ;
+C -1 ; WX 740 ; N Ntilde ; B 26 0 722 838 ;
+C -1 ; WX 560 ; N otilde ; B 37 -8 526 661 ;
+C -1 ; WX 720 ; N Rcommaaccent ; B 31 -251 757 681 ;
+C -1 ; WX 600 ; N Lcommaaccent ; B 31 -251 629 681 ;
+C -1 ; WX 680 ; N Atilde ; B -37 0 714 838 ;
+C -1 ; WX 680 ; N Aogonek ; B -37 -153 718 681 ;
+C -1 ; WX 680 ; N Aring ; B -37 0 714 908 ;
+C -1 ; WX 800 ; N Otilde ; B 44 -17 758 838 ;
+C -1 ; WX 480 ; N zdotaccent ; B 7 0 476 703 ;
+C -1 ; WX 720 ; N Ecaron ; B 31 0 705 849 ;
+C -1 ; WX 340 ; N Iogonek ; B 31 -153 302 681 ;
+C -1 ; WX 620 ; N kcommaaccent ; B 20 -251 628 717 ;
+C -1 ; WX 600 ; N minus ; B 51 224 555 300 ;
+C -1 ; WX 340 ; N Icircumflex ; B 28 0 312 862 ;
+C -1 ; WX 660 ; N ncaron ; B 20 0 649 672 ;
+C -1 ; WX 380 ; N tcommaaccent ; B 20 -251 388 667 ;
+C -1 ; WX 600 ; N logicalnot ; B 51 128 555 398 ;
+C -1 ; WX 560 ; N odieresis ; B 37 -8 526 674 ;
+C -1 ; WX 680 ; N udieresis ; B 20 -8 653 674 ;
+C -1 ; WX 549 ; N notequal ; B 15 -16 540 529 ;
+C -1 ; WX 540 ; N gcommaaccent ; B 17 -243 542 765 ;
+C -1 ; WX 560 ; N eth ; B 37 -8 526 734 ;
+C -1 ; WX 480 ; N zcaron ; B 7 0 476 672 ;
+C -1 ; WX 660 ; N ncommaaccent ; B 20 -251 649 494 ;
+C -1 ; WX 372 ; N onesuperior ; B 80 279 302 688 ;
+C -1 ; WX 300 ; N imacron ; B -2 0 294 635 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 882
+KPX A T 1
+KPX A Tcaron 1
+KPX A Tcommaaccent 1
+KPX A V -56
+KPX A W -40
+KPX A Y -35
+KPX A Yacute -35
+KPX A Ydieresis -35
+KPX A v 7
+KPX A w 4
+KPX A y 32
+KPX A yacute 32
+KPX A ydieresis 32
+KPX Aacute T 1
+KPX Aacute Tcaron 1
+KPX Aacute Tcommaaccent 1
+KPX Aacute V -56
+KPX Aacute W -40
+KPX Aacute Y -35
+KPX Aacute Yacute -35
+KPX Aacute Ydieresis -35
+KPX Aacute v 7
+KPX Aacute w 4
+KPX Aacute y 32
+KPX Aacute yacute 32
+KPX Aacute ydieresis 32
+KPX Abreve T 1
+KPX Abreve Tcaron 1
+KPX Abreve Tcommaaccent 1
+KPX Abreve V -56
+KPX Abreve W -40
+KPX Abreve Y -35
+KPX Abreve Yacute -35
+KPX Abreve Ydieresis -35
+KPX Abreve v 7
+KPX Abreve w 4
+KPX Abreve y 32
+KPX Abreve yacute 32
+KPX Abreve ydieresis 32
+KPX Acircumflex T 1
+KPX Acircumflex Tcaron 1
+KPX Acircumflex Tcommaaccent 1
+KPX Acircumflex V -56
+KPX Acircumflex W -40
+KPX Acircumflex Y -35
+KPX Acircumflex Yacute -35
+KPX Acircumflex Ydieresis -35
+KPX Acircumflex v 7
+KPX Acircumflex w 4
+KPX Acircumflex y 32
+KPX Acircumflex yacute 32
+KPX Acircumflex ydieresis 32
+KPX Adieresis T 1
+KPX Adieresis Tcaron 1
+KPX Adieresis Tcommaaccent 1
+KPX Adieresis V -56
+KPX Adieresis W -40
+KPX Adieresis Y -35
+KPX Adieresis Yacute -35
+KPX Adieresis Ydieresis -35
+KPX Adieresis v 7
+KPX Adieresis w 4
+KPX Adieresis y 32
+KPX Adieresis yacute 32
+KPX Adieresis ydieresis 32
+KPX Agrave T 1
+KPX Agrave Tcaron 1
+KPX Agrave Tcommaaccent 1
+KPX Agrave V -56
+KPX Agrave W -40
+KPX Agrave Y -35
+KPX Agrave Yacute -35
+KPX Agrave Ydieresis -35
+KPX Agrave v 7
+KPX Agrave w 4
+KPX Agrave y 32
+KPX Agrave yacute 32
+KPX Agrave ydieresis 32
+KPX Amacron T 1
+KPX Amacron Tcaron 1
+KPX Amacron Tcommaaccent 1
+KPX Amacron V -56
+KPX Amacron W -40
+KPX Amacron Y -35
+KPX Amacron Yacute -35
+KPX Amacron Ydieresis -35
+KPX Amacron v 7
+KPX Amacron w 4
+KPX Amacron y 32
+KPX Amacron yacute 32
+KPX Amacron ydieresis 32
+KPX Aogonek T 1
+KPX Aogonek Tcaron 1
+KPX Aogonek Tcommaaccent 1
+KPX Aogonek V -56
+KPX Aogonek W -40
+KPX Aogonek Y -35
+KPX Aogonek Yacute -35
+KPX Aogonek Ydieresis -35
+KPX Aogonek v 7
+KPX Aogonek w 4
+KPX Aogonek y 32
+KPX Aogonek yacute 32
+KPX Aogonek ydieresis 32
+KPX Aring T 1
+KPX Aring Tcaron 1
+KPX Aring Tcommaaccent 1
+KPX Aring V -56
+KPX Aring W -40
+KPX Aring Y -35
+KPX Aring Yacute -35
+KPX Aring Ydieresis -35
+KPX Aring v 7
+KPX Aring w 4
+KPX Aring y 32
+KPX Aring yacute 32
+KPX Aring ydieresis 32
+KPX Atilde T 1
+KPX Atilde Tcaron 1
+KPX Atilde Tcommaaccent 1
+KPX Atilde V -56
+KPX Atilde W -40
+KPX Atilde Y -35
+KPX Atilde Yacute -35
+KPX Atilde Ydieresis -35
+KPX Atilde v 7
+KPX Atilde w 4
+KPX Atilde y 32
+KPX Atilde yacute 32
+KPX Atilde ydieresis 32
+KPX F A -21
+KPX F Aacute -21
+KPX F Abreve -21
+KPX F Acircumflex -21
+KPX F Adieresis -21
+KPX F Agrave -21
+KPX F Amacron -21
+KPX F Aogonek -21
+KPX F Aring -21
+KPX F Atilde -21
+KPX F comma -41
+KPX F period -46
+KPX L T 28
+KPX L Tcaron 28
+KPX L Tcommaaccent 28
+KPX L V -4
+KPX L W 1
+KPX L Y 13
+KPX L Yacute 13
+KPX L Ydieresis 13
+KPX L y 79
+KPX L yacute 79
+KPX L ydieresis 79
+KPX Lacute T 28
+KPX Lacute Tcaron 28
+KPX Lacute Tcommaaccent 28
+KPX Lacute V -4
+KPX Lacute W 1
+KPX Lacute Y 13
+KPX Lacute Yacute 13
+KPX Lacute Ydieresis 13
+KPX Lacute y 79
+KPX Lacute yacute 79
+KPX Lacute ydieresis 79
+KPX Lcaron T 28
+KPX Lcaron Tcaron 28
+KPX Lcaron Tcommaaccent 28
+KPX Lcaron V -4
+KPX Lcaron W 1
+KPX Lcaron Y 13
+KPX Lcaron Yacute 13
+KPX Lcaron Ydieresis 13
+KPX Lcaron y 79
+KPX Lcaron yacute 79
+KPX Lcaron ydieresis 79
+KPX Lcommaaccent T 28
+KPX Lcommaaccent Tcaron 28
+KPX Lcommaaccent Tcommaaccent 28
+KPX Lcommaaccent V -4
+KPX Lcommaaccent W 1
+KPX Lcommaaccent Y 13
+KPX Lcommaaccent Yacute 13
+KPX Lcommaaccent Ydieresis 13
+KPX Lcommaaccent y 79
+KPX Lcommaaccent yacute 79
+KPX Lcommaaccent ydieresis 79
+KPX Lslash T 28
+KPX Lslash Tcaron 28
+KPX Lslash Tcommaaccent 28
+KPX Lslash V -4
+KPX Lslash W 1
+KPX Lslash Y 13
+KPX Lslash Yacute 13
+KPX Lslash Ydieresis 13
+KPX Lslash y 79
+KPX Lslash yacute 79
+KPX Lslash ydieresis 79
+KPX P A -8
+KPX P Aacute -8
+KPX P Abreve -8
+KPX P Acircumflex -8
+KPX P Adieresis -8
+KPX P Agrave -8
+KPX P Amacron -8
+KPX P Aogonek -8
+KPX P Aring -8
+KPX P Atilde -8
+KPX P comma -55
+KPX P period -60
+KPX R T 71
+KPX R Tcaron 71
+KPX R Tcommaaccent 71
+KPX R V 8
+KPX R W 13
+KPX R Y 26
+KPX R Yacute 26
+KPX R Ydieresis 26
+KPX R y 59
+KPX R yacute 59
+KPX R ydieresis 59
+KPX Racute T 71
+KPX Racute Tcaron 71
+KPX Racute Tcommaaccent 71
+KPX Racute V 8
+KPX Racute W 13
+KPX Racute Y 26
+KPX Racute Yacute 26
+KPX Racute Ydieresis 26
+KPX Racute y 59
+KPX Racute yacute 59
+KPX Racute ydieresis 59
+KPX Rcaron T 71
+KPX Rcaron Tcaron 71
+KPX Rcaron Tcommaaccent 71
+KPX Rcaron V 8
+KPX Rcaron W 13
+KPX Rcaron Y 26
+KPX Rcaron Yacute 26
+KPX Rcaron Ydieresis 26
+KPX Rcaron y 59
+KPX Rcaron yacute 59
+KPX Rcaron ydieresis 59
+KPX Rcommaaccent T 71
+KPX Rcommaaccent Tcaron 71
+KPX Rcommaaccent Tcommaaccent 71
+KPX Rcommaaccent V 8
+KPX Rcommaaccent W 13
+KPX Rcommaaccent Y 26
+KPX Rcommaaccent Yacute 26
+KPX Rcommaaccent Ydieresis 26
+KPX Rcommaaccent y 59
+KPX Rcommaaccent yacute 59
+KPX Rcommaaccent ydieresis 59
+KPX T A 1
+KPX T Aacute 1
+KPX T Abreve 1
+KPX T Acircumflex 1
+KPX T Adieresis 1
+KPX T Agrave 1
+KPX T Amacron 1
+KPX T Aogonek 1
+KPX T Aring 1
+KPX T Atilde 1
+KPX T a 17
+KPX T aacute 17
+KPX T abreve 17
+KPX T acircumflex 17
+KPX T adieresis 17
+KPX T agrave 17
+KPX T amacron 17
+KPX T aogonek 17
+KPX T aring 17
+KPX T atilde 17
+KPX T c 14
+KPX T cacute 14
+KPX T ccaron 14
+KPX T ccedilla 14
+KPX T comma -28
+KPX T e 13
+KPX T eacute 13
+KPX T ecaron 13
+KPX T ecircumflex 13
+KPX T edieresis 13
+KPX T edotaccent 13
+KPX T egrave 13
+KPX T emacron 13
+KPX T eogonek 13
+KPX T hyphen 90
+KPX T i 42
+KPX T iacute 42
+KPX T icircumflex 42
+KPX T idieresis 42
+KPX T igrave 42
+KPX T imacron 42
+KPX T iogonek 42
+KPX T o 15
+KPX T oacute 15
+KPX T ocircumflex 15
+KPX T odieresis 15
+KPX T ograve 15
+KPX T ohungarumlaut 15
+KPX T omacron 15
+KPX T oslash 15
+KPX T otilde 15
+KPX T period -33
+KPX T r 38
+KPX T racute 38
+KPX T rcaron 38
+KPX T rcommaaccent 38
+KPX T s 16
+KPX T sacute 16
+KPX T scaron 16
+KPX T scedilla 16
+KPX T scommaaccent 16
+KPX Tcaron A 1
+KPX Tcaron Aacute 1
+KPX Tcaron Abreve 1
+KPX Tcaron Acircumflex 1
+KPX Tcaron Adieresis 1
+KPX Tcaron Agrave 1
+KPX Tcaron Amacron 1
+KPX Tcaron Aogonek 1
+KPX Tcaron Aring 1
+KPX Tcaron Atilde 1
+KPX Tcaron a 17
+KPX Tcaron aacute 17
+KPX Tcaron abreve 17
+KPX Tcaron acircumflex 17
+KPX Tcaron adieresis 17
+KPX Tcaron agrave 17
+KPX Tcaron amacron 17
+KPX Tcaron aogonek 17
+KPX Tcaron aring 17
+KPX Tcaron atilde 17
+KPX Tcaron c 14
+KPX Tcaron cacute 14
+KPX Tcaron ccaron 14
+KPX Tcaron ccedilla 14
+KPX Tcaron comma -28
+KPX Tcaron e 13
+KPX Tcaron eacute 13
+KPX Tcaron ecaron 13
+KPX Tcaron ecircumflex 13
+KPX Tcaron edieresis 13
+KPX Tcaron edotaccent 13
+KPX Tcaron egrave 13
+KPX Tcaron emacron 13
+KPX Tcaron eogonek 13
+KPX Tcaron hyphen 90
+KPX Tcaron i 42
+KPX Tcaron iacute 42
+KPX Tcaron icircumflex 42
+KPX Tcaron idieresis 42
+KPX Tcaron igrave 42
+KPX Tcaron imacron 42
+KPX Tcaron iogonek 42
+KPX Tcaron o 15
+KPX Tcaron oacute 15
+KPX Tcaron ocircumflex 15
+KPX Tcaron odieresis 15
+KPX Tcaron ograve 15
+KPX Tcaron ohungarumlaut 15
+KPX Tcaron omacron 15
+KPX Tcaron oslash 15
+KPX Tcaron otilde 15
+KPX Tcaron period -33
+KPX Tcaron r 38
+KPX Tcaron racute 38
+KPX Tcaron rcaron 38
+KPX Tcaron rcommaaccent 38
+KPX Tcaron s 16
+KPX Tcaron sacute 16
+KPX Tcaron scaron 16
+KPX Tcaron scedilla 16
+KPX Tcaron scommaaccent 16
+KPX Tcommaaccent A 1
+KPX Tcommaaccent Aacute 1
+KPX Tcommaaccent Abreve 1
+KPX Tcommaaccent Acircumflex 1
+KPX Tcommaaccent Adieresis 1
+KPX Tcommaaccent Agrave 1
+KPX Tcommaaccent Amacron 1
+KPX Tcommaaccent Aogonek 1
+KPX Tcommaaccent Aring 1
+KPX Tcommaaccent Atilde 1
+KPX Tcommaaccent a 17
+KPX Tcommaaccent aacute 17
+KPX Tcommaaccent abreve 17
+KPX Tcommaaccent acircumflex 17
+KPX Tcommaaccent adieresis 17
+KPX Tcommaaccent agrave 17
+KPX Tcommaaccent amacron 17
+KPX Tcommaaccent aogonek 17
+KPX Tcommaaccent aring 17
+KPX Tcommaaccent atilde 17
+KPX Tcommaaccent c 14
+KPX Tcommaaccent cacute 14
+KPX Tcommaaccent ccaron 14
+KPX Tcommaaccent ccedilla 14
+KPX Tcommaaccent comma -28
+KPX Tcommaaccent e 13
+KPX Tcommaaccent eacute 13
+KPX Tcommaaccent ecaron 13
+KPX Tcommaaccent ecircumflex 13
+KPX Tcommaaccent edieresis 13
+KPX Tcommaaccent edotaccent 13
+KPX Tcommaaccent egrave 13
+KPX Tcommaaccent emacron 13
+KPX Tcommaaccent eogonek 13
+KPX Tcommaaccent hyphen 90
+KPX Tcommaaccent i 42
+KPX Tcommaaccent iacute 42
+KPX Tcommaaccent icircumflex 42
+KPX Tcommaaccent idieresis 42
+KPX Tcommaaccent igrave 42
+KPX Tcommaaccent imacron 42
+KPX Tcommaaccent iogonek 42
+KPX Tcommaaccent o 15
+KPX Tcommaaccent oacute 15
+KPX Tcommaaccent ocircumflex 15
+KPX Tcommaaccent odieresis 15
+KPX Tcommaaccent ograve 15
+KPX Tcommaaccent ohungarumlaut 15
+KPX Tcommaaccent omacron 15
+KPX Tcommaaccent oslash 15
+KPX Tcommaaccent otilde 15
+KPX Tcommaaccent period -33
+KPX Tcommaaccent r 38
+KPX Tcommaaccent racute 38
+KPX Tcommaaccent rcaron 38
+KPX Tcommaaccent rcommaaccent 38
+KPX Tcommaaccent s 16
+KPX Tcommaaccent sacute 16
+KPX Tcommaaccent scaron 16
+KPX Tcommaaccent scedilla 16
+KPX Tcommaaccent scommaaccent 16
+KPX V A -66
+KPX V Aacute -66
+KPX V Abreve -66
+KPX V Acircumflex -66
+KPX V Adieresis -66
+KPX V Agrave -66
+KPX V Amacron -66
+KPX V Aogonek -66
+KPX V Aring -66
+KPX V Atilde -66
+KPX V a -69
+KPX V aacute -69
+KPX V abreve -69
+KPX V acircumflex -69
+KPX V adieresis -69
+KPX V agrave -69
+KPX V amacron -69
+KPX V aogonek -69
+KPX V aring -69
+KPX V atilde -69
+KPX V comma -34
+KPX V e -72
+KPX V eacute -72
+KPX V ecaron -72
+KPX V ecircumflex -72
+KPX V edieresis -72
+KPX V edotaccent -72
+KPX V egrave -72
+KPX V emacron -72
+KPX V eogonek -72
+KPX V hyphen 11
+KPX V i -20
+KPX V iacute -20
+KPX V iogonek -20
+KPX V o -71
+KPX V oacute -71
+KPX V ocircumflex -71
+KPX V odieresis -71
+KPX V ograve -71
+KPX V ohungarumlaut -71
+KPX V omacron -71
+KPX V oslash -71
+KPX V otilde -71
+KPX V period -40
+KPX V r -41
+KPX V racute -41
+KPX V rcaron -41
+KPX V rcommaaccent -41
+KPX V u -38
+KPX V uacute -38
+KPX V ucircumflex -38
+KPX V udieresis -38
+KPX V ugrave -38
+KPX V uhungarumlaut -38
+KPX V umacron -38
+KPX V uogonek -38
+KPX V uring -38
+KPX V y 15
+KPX V yacute 15
+KPX V ydieresis 15
+KPX W A -64
+KPX W Aacute -64
+KPX W Abreve -64
+KPX W Acircumflex -64
+KPX W Adieresis -64
+KPX W Agrave -64
+KPX W Amacron -64
+KPX W Aogonek -64
+KPX W Aring -64
+KPX W Atilde -64
+KPX W a -66
+KPX W aacute -66
+KPX W abreve -66
+KPX W acircumflex -66
+KPX W adieresis -66
+KPX W agrave -66
+KPX W amacron -66
+KPX W aogonek -66
+KPX W aring -66
+KPX W atilde -66
+KPX W comma -34
+KPX W e -69
+KPX W eacute -69
+KPX W ecaron -69
+KPX W ecircumflex -69
+KPX W edieresis -69
+KPX W edotaccent -69
+KPX W egrave -69
+KPX W emacron -69
+KPX W eogonek -69
+KPX W hyphen 11
+KPX W i -20
+KPX W iacute -20
+KPX W iogonek -20
+KPX W o -68
+KPX W oacute -68
+KPX W ocircumflex -68
+KPX W odieresis -68
+KPX W ograve -68
+KPX W ohungarumlaut -68
+KPX W omacron -68
+KPX W oslash -68
+KPX W otilde -68
+KPX W period -40
+KPX W r -41
+KPX W racute -41
+KPX W rcaron -41
+KPX W rcommaaccent -41
+KPX W u -38
+KPX W uacute -38
+KPX W ucircumflex -38
+KPX W udieresis -38
+KPX W ugrave -38
+KPX W uhungarumlaut -38
+KPX W umacron -38
+KPX W uogonek -38
+KPX W uring -38
+KPX W y 15
+KPX W yacute 15
+KPX W ydieresis 15
+KPX Y A -53
+KPX Y Aacute -53
+KPX Y Abreve -53
+KPX Y Acircumflex -53
+KPX Y Adieresis -53
+KPX Y Agrave -53
+KPX Y Amacron -53
+KPX Y Aogonek -53
+KPX Y Aring -53
+KPX Y Atilde -53
+KPX Y a -54
+KPX Y aacute -54
+KPX Y abreve -54
+KPX Y acircumflex -54
+KPX Y adieresis -54
+KPX Y agrave -54
+KPX Y amacron -54
+KPX Y aogonek -54
+KPX Y aring -54
+KPX Y atilde -54
+KPX Y comma -34
+KPX Y e -58
+KPX Y eacute -58
+KPX Y ecaron -58
+KPX Y ecircumflex -58
+KPX Y edieresis -58
+KPX Y edotaccent -58
+KPX Y egrave -58
+KPX Y emacron -58
+KPX Y eogonek -58
+KPX Y hyphen 11
+KPX Y i -37
+KPX Y iacute -37
+KPX Y icircumflex -37
+KPX Y iogonek -37
+KPX Y o -57
+KPX Y oacute -57
+KPX Y ocircumflex -57
+KPX Y odieresis -57
+KPX Y ograve -57
+KPX Y ohungarumlaut -57
+KPX Y omacron -57
+KPX Y oslash -57
+KPX Y otilde -57
+KPX Y p -31
+KPX Y period -40
+KPX Y q -55
+KPX Y u -38
+KPX Y uacute -38
+KPX Y ucircumflex -38
+KPX Y udieresis -38
+KPX Y ugrave -38
+KPX Y uhungarumlaut -38
+KPX Y umacron -38
+KPX Y uogonek -38
+KPX Y uring -38
+KPX Y v 15
+KPX Yacute A -53
+KPX Yacute Aacute -53
+KPX Yacute Abreve -53
+KPX Yacute Acircumflex -53
+KPX Yacute Adieresis -53
+KPX Yacute Agrave -53
+KPX Yacute Amacron -53
+KPX Yacute Aogonek -53
+KPX Yacute Aring -53
+KPX Yacute Atilde -53
+KPX Yacute a -54
+KPX Yacute aacute -54
+KPX Yacute abreve -54
+KPX Yacute acircumflex -54
+KPX Yacute adieresis -54
+KPX Yacute agrave -54
+KPX Yacute amacron -54
+KPX Yacute aogonek -54
+KPX Yacute aring -54
+KPX Yacute atilde -54
+KPX Yacute comma -34
+KPX Yacute e -58
+KPX Yacute eacute -58
+KPX Yacute ecaron -58
+KPX Yacute ecircumflex -58
+KPX Yacute edieresis -58
+KPX Yacute edotaccent -58
+KPX Yacute egrave -58
+KPX Yacute emacron -58
+KPX Yacute eogonek -58
+KPX Yacute hyphen 11
+KPX Yacute i -37
+KPX Yacute iacute -37
+KPX Yacute iogonek -37
+KPX Yacute o -57
+KPX Yacute oacute -57
+KPX Yacute ocircumflex -57
+KPX Yacute odieresis -57
+KPX Yacute ograve -57
+KPX Yacute ohungarumlaut -57
+KPX Yacute omacron -57
+KPX Yacute oslash -57
+KPX Yacute otilde -57
+KPX Yacute p -31
+KPX Yacute period -40
+KPX Yacute q -55
+KPX Yacute u -38
+KPX Yacute uacute -38
+KPX Yacute ucircumflex -38
+KPX Yacute udieresis -38
+KPX Yacute ugrave -38
+KPX Yacute uhungarumlaut -38
+KPX Yacute umacron -38
+KPX Yacute uogonek -38
+KPX Yacute uring -38
+KPX Yacute v 15
+KPX Ydieresis A -53
+KPX Ydieresis Aacute -53
+KPX Ydieresis Abreve -53
+KPX Ydieresis Acircumflex -53
+KPX Ydieresis Adieresis -53
+KPX Ydieresis Agrave -53
+KPX Ydieresis Amacron -53
+KPX Ydieresis Aogonek -53
+KPX Ydieresis Aring -53
+KPX Ydieresis Atilde -53
+KPX Ydieresis a -54
+KPX Ydieresis aacute -54
+KPX Ydieresis abreve -54
+KPX Ydieresis acircumflex -54
+KPX Ydieresis adieresis -54
+KPX Ydieresis agrave -54
+KPX Ydieresis amacron -54
+KPX Ydieresis aogonek -54
+KPX Ydieresis aring -54
+KPX Ydieresis atilde -54
+KPX Ydieresis comma -34
+KPX Ydieresis e -58
+KPX Ydieresis eacute -58
+KPX Ydieresis ecaron -58
+KPX Ydieresis ecircumflex -58
+KPX Ydieresis edieresis -58
+KPX Ydieresis edotaccent -58
+KPX Ydieresis egrave -58
+KPX Ydieresis emacron -58
+KPX Ydieresis eogonek -58
+KPX Ydieresis hyphen 11
+KPX Ydieresis i -37
+KPX Ydieresis iacute -37
+KPX Ydieresis iogonek -37
+KPX Ydieresis o -57
+KPX Ydieresis oacute -57
+KPX Ydieresis ocircumflex -57
+KPX Ydieresis odieresis -57
+KPX Ydieresis ograve -57
+KPX Ydieresis ohungarumlaut -57
+KPX Ydieresis omacron -57
+KPX Ydieresis oslash -57
+KPX Ydieresis otilde -57
+KPX Ydieresis p -31
+KPX Ydieresis period -40
+KPX Ydieresis q -55
+KPX Ydieresis u -38
+KPX Ydieresis uacute -38
+KPX Ydieresis ucircumflex -38
+KPX Ydieresis udieresis -38
+KPX Ydieresis ugrave -38
+KPX Ydieresis uhungarumlaut -38
+KPX Ydieresis umacron -38
+KPX Ydieresis uogonek -38
+KPX Ydieresis uring -38
+KPX Ydieresis v 15
+KPX f f 29
+KPX r c 7
+KPX r cacute 7
+KPX r ccaron 7
+KPX r ccedilla 7
+KPX r comma -58
+KPX r d 7
+KPX r dcroat 7
+KPX r e 7
+KPX r eacute 7
+KPX r ecaron 7
+KPX r ecircumflex 7
+KPX r edieresis 7
+KPX r edotaccent 7
+KPX r egrave 7
+KPX r emacron 7
+KPX r eogonek 7
+KPX r f 33
+KPX r g -4
+KPX r gbreve -4
+KPX r gcommaaccent -4
+KPX r h -21
+KPX r hyphen 70
+KPX r m 31
+KPX r n 31
+KPX r nacute 31
+KPX r ncaron 31
+KPX r ncommaaccent 31
+KPX r ntilde 31
+KPX r o 8
+KPX r oacute 8
+KPX r ocircumflex 8
+KPX r odieresis 8
+KPX r ograve 8
+KPX r ohungarumlaut 8
+KPX r omacron 8
+KPX r oslash 8
+KPX r otilde 8
+KPX r period -64
+KPX r q 9
+KPX racute c 7
+KPX racute cacute 7
+KPX racute ccaron 7
+KPX racute ccedilla 7
+KPX racute comma -58
+KPX racute d 7
+KPX racute dcroat 7
+KPX racute e 7
+KPX racute eacute 7
+KPX racute ecaron 7
+KPX racute ecircumflex 7
+KPX racute edieresis 7
+KPX racute edotaccent 7
+KPX racute egrave 7
+KPX racute emacron 7
+KPX racute eogonek 7
+KPX racute f 33
+KPX racute g -4
+KPX racute gbreve -4
+KPX racute gcommaaccent -4
+KPX racute h -21
+KPX racute hyphen 70
+KPX racute m 31
+KPX racute n 31
+KPX racute nacute 31
+KPX racute ncaron 31
+KPX racute ncommaaccent 31
+KPX racute ntilde 31
+KPX racute o 8
+KPX racute oacute 8
+KPX racute ocircumflex 8
+KPX racute odieresis 8
+KPX racute ograve 8
+KPX racute ohungarumlaut 8
+KPX racute omacron 8
+KPX racute oslash 8
+KPX racute otilde 8
+KPX racute period -64
+KPX racute q 9
+KPX rcaron c 7
+KPX rcaron cacute 7
+KPX rcaron ccaron 7
+KPX rcaron ccedilla 7
+KPX rcaron comma -58
+KPX rcaron d 7
+KPX rcaron dcroat 7
+KPX rcaron e 7
+KPX rcaron eacute 7
+KPX rcaron ecaron 7
+KPX rcaron ecircumflex 7
+KPX rcaron edieresis 7
+KPX rcaron edotaccent 7
+KPX rcaron egrave 7
+KPX rcaron emacron 7
+KPX rcaron eogonek 7
+KPX rcaron f 33
+KPX rcaron g -4
+KPX rcaron gbreve -4
+KPX rcaron gcommaaccent -4
+KPX rcaron h -21
+KPX rcaron hyphen 70
+KPX rcaron m 31
+KPX rcaron n 31
+KPX rcaron nacute 31
+KPX rcaron ncaron 31
+KPX rcaron ncommaaccent 31
+KPX rcaron ntilde 31
+KPX rcaron o 8
+KPX rcaron oacute 8
+KPX rcaron ocircumflex 8
+KPX rcaron odieresis 8
+KPX rcaron ograve 8
+KPX rcaron ohungarumlaut 8
+KPX rcaron omacron 8
+KPX rcaron oslash 8
+KPX rcaron otilde 8
+KPX rcaron period -64
+KPX rcaron q 9
+KPX rcommaaccent c 7
+KPX rcommaaccent cacute 7
+KPX rcommaaccent ccaron 7
+KPX rcommaaccent ccedilla 7
+KPX rcommaaccent comma -58
+KPX rcommaaccent d 7
+KPX rcommaaccent dcroat 7
+KPX rcommaaccent e 7
+KPX rcommaaccent eacute 7
+KPX rcommaaccent ecaron 7
+KPX rcommaaccent ecircumflex 7
+KPX rcommaaccent edieresis 7
+KPX rcommaaccent edotaccent 7
+KPX rcommaaccent egrave 7
+KPX rcommaaccent emacron 7
+KPX rcommaaccent eogonek 7
+KPX rcommaaccent f 33
+KPX rcommaaccent g -4
+KPX rcommaaccent gbreve -4
+KPX rcommaaccent gcommaaccent -4
+KPX rcommaaccent h -21
+KPX rcommaaccent hyphen 70
+KPX rcommaaccent m 31
+KPX rcommaaccent n 31
+KPX rcommaaccent nacute 31
+KPX rcommaaccent ncaron 31
+KPX rcommaaccent ncommaaccent 31
+KPX rcommaaccent ntilde 31
+KPX rcommaaccent o 8
+KPX rcommaaccent oacute 8
+KPX rcommaaccent ocircumflex 8
+KPX rcommaaccent odieresis 8
+KPX rcommaaccent ograve 8
+KPX rcommaaccent ohungarumlaut 8
+KPX rcommaaccent omacron 8
+KPX rcommaaccent oslash 8
+KPX rcommaaccent otilde 8
+KPX rcommaaccent period -64
+KPX rcommaaccent q 9
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/ITCBookman-LightItalic.afm b/test/user-template/user/psprint/fontmetric/ITCBookman-LightItalic.afm
new file mode 100644
index 000000000000..0d3c3b871a91
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/ITCBookman-LightItalic.afm
@@ -0,0 +1,1172 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Mon Jun 23 16:36:46 1997
+Comment UniqueID 43078
+Comment VMusage 44679 55704
+FontName Bookman-LightItalic
+FullName ITC Bookman Light Italic
+FamilyName ITC Bookman
+Weight Light
+ItalicAngle -10
+IsFixedPitch false
+FontBBox -228 -250 1269 883
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation.
+EncodingScheme AdobeStandardEncoding
+CapHeight 681
+XHeight 494
+Ascender 717
+Descender -228
+StdHW 42
+StdVW 96
+StartCharMetrics 314
+C 32 ; WX 300 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 320 ; N exclam ; B 103 -8 342 698 ;
+C 34 ; WX 360 ; N quotedbl ; B 107 468 402 699 ;
+C 35 ; WX 620 ; N numbersign ; B 107 0 598 681 ;
+C 36 ; WX 620 ; N dollar ; B 78 -85 619 762 ;
+C 37 ; WX 800 ; N percent ; B 56 -8 811 691 ;
+C 38 ; WX 820 ; N ampersand ; B 65 -18 848 698 ;
+C 39 ; WX 280 ; N quoteright ; B 148 470 288 698 ;
+C 40 ; WX 280 ; N parenleft ; B 96 -146 383 727 ;
+C 41 ; WX 280 ; N parenright ; B -8 -146 279 727 ;
+C 42 ; WX 440 ; N asterisk ; B 139 324 505 698 ;
+C 43 ; WX 600 ; N plus ; B 91 43 595 548 ;
+C 44 ; WX 300 ; N comma ; B 88 -115 227 112 ;
+C 45 ; WX 320 ; N hyphen ; B 78 269 336 325 ;
+C 46 ; WX 300 ; N period ; B 96 -8 231 127 ;
+C 47 ; WX 600 ; N slash ; B 104 -149 562 717 ;
+C 48 ; WX 620 ; N zero ; B 86 -17 646 698 ;
+C 49 ; WX 620 ; N one ; B 154 0 500 681 ;
+C 50 ; WX 620 ; N two ; B 66 0 636 698 ;
+C 51 ; WX 620 ; N three ; B 55 -17 622 698 ;
+C 52 ; WX 620 ; N four ; B 69 0 634 681 ;
+C 53 ; WX 620 ; N five ; B 70 -17 614 681 ;
+C 54 ; WX 620 ; N six ; B 89 -17 657 698 ;
+C 55 ; WX 620 ; N seven ; B 143 0 672 681 ;
+C 56 ; WX 620 ; N eight ; B 61 -17 655 698 ;
+C 57 ; WX 620 ; N nine ; B 77 -17 649 698 ;
+C 58 ; WX 300 ; N colon ; B 96 -8 292 494 ;
+C 59 ; WX 300 ; N semicolon ; B 88 -114 292 494 ;
+C 60 ; WX 600 ; N less ; B 79 33 588 561 ;
+C 61 ; WX 600 ; N equal ; B 91 161 595 433 ;
+C 62 ; WX 600 ; N greater ; B 93 33 602 561 ;
+C 63 ; WX 540 ; N question ; B 114 -8 604 698 ;
+C 64 ; WX 780 ; N at ; B 102 -17 802 698 ;
+C 65 ; WX 700 ; N A ; B -25 0 720 681 ;
+C 66 ; WX 720 ; N B ; B 21 0 746 681 ;
+C 67 ; WX 720 ; N C ; B 88 -17 746 698 ;
+C 68 ; WX 740 ; N D ; B 21 0 782 681 ;
+C 69 ; WX 680 ; N E ; B 21 0 736 681 ;
+C 70 ; WX 620 ; N F ; B 21 0 743 681 ;
+C 71 ; WX 760 ; N G ; B 88 -17 813 698 ;
+C 72 ; WX 800 ; N H ; B 21 0 888 681 ;
+C 73 ; WX 320 ; N I ; B 21 0 412 681 ;
+C 74 ; WX 560 ; N J ; B -2 -17 666 681 ;
+C 75 ; WX 720 ; N K ; B 21 0 804 681 ;
+C 76 ; WX 580 ; N L ; B 21 0 656 681 ;
+C 77 ; WX 860 ; N M ; B 18 0 956 681 ;
+C 78 ; WX 720 ; N N ; B 18 0 823 681 ;
+C 79 ; WX 760 ; N O ; B 88 -17 799 698 ;
+C 80 ; WX 600 ; N P ; B 21 0 681 681 ;
+C 81 ; WX 780 ; N Q ; B 61 -191 812 698 ;
+C 82 ; WX 700 ; N R ; B 21 0 736 681 ;
+C 83 ; WX 640 ; N S ; B 61 -17 668 698 ;
+C 84 ; WX 600 ; N T ; B 50 0 725 681 ;
+C 85 ; WX 720 ; N U ; B 118 -17 842 681 ;
+C 86 ; WX 680 ; N V ; B 87 0 815 681 ;
+C 87 ; WX 960 ; N W ; B 87 0 1095 681 ;
+C 88 ; WX 700 ; N X ; B -25 0 815 681 ;
+C 89 ; WX 660 ; N Y ; B 87 0 809 681 ;
+C 90 ; WX 580 ; N Z ; B 8 0 695 681 ;
+C 91 ; WX 260 ; N bracketleft ; B 56 -136 351 717 ;
+C 92 ; WX 600 ; N backslash ; B 84 0 542 717 ;
+C 93 ; WX 260 ; N bracketright ; B 15 -136 309 717 ;
+C 94 ; WX 600 ; N asciicircum ; B 97 276 599 681 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 280 ; N quoteleft ; B 191 470 330 698 ;
+C 97 ; WX 620 ; N a ; B 71 -8 686 494 ;
+C 98 ; WX 600 ; N b ; B 88 -8 621 717 ;
+C 99 ; WX 480 ; N c ; B 65 -8 522 494 ;
+C 100 ; WX 640 ; N d ; B 65 -8 695 717 ;
+C 101 ; WX 540 ; N e ; B 65 -8 575 494 ;
+C 102 ; WX 340 ; N f ; B -160 -218 557 725 ; L i fi ; L l fl ;
+C 103 ; WX 560 ; N g ; B 4 -221 581 494 ;
+C 104 ; WX 620 ; N h ; B 88 -8 689 717 ;
+C 105 ; WX 280 ; N i ; B 88 -8 351 663 ;
+C 106 ; WX 280 ; N j ; B -200 -221 308 663 ;
+C 107 ; WX 600 ; N k ; B 88 -8 657 717 ;
+C 108 ; WX 280 ; N l ; B 100 -8 342 717 ;
+C 109 ; WX 880 ; N m ; B 88 -8 952 494 ;
+C 110 ; WX 620 ; N n ; B 88 -8 673 494 ;
+C 111 ; WX 540 ; N o ; B 65 -8 572 494 ;
+C 112 ; WX 600 ; N p ; B -24 -212 621 494 ;
+C 113 ; WX 560 ; N q ; B 65 -212 584 494 ;
+C 114 ; WX 400 ; N r ; B 88 0 481 494 ;
+C 115 ; WX 540 ; N s ; B 65 -8 547 494 ;
+C 116 ; WX 340 ; N t ; B 88 -8 411 664 ;
+C 117 ; WX 620 ; N u ; B 88 -8 686 484 ;
+C 118 ; WX 540 ; N v ; B 88 -8 562 494 ;
+C 119 ; WX 880 ; N w ; B 88 -8 893 494 ;
+C 120 ; WX 540 ; N x ; B 9 -8 626 494 ;
+C 121 ; WX 600 ; N y ; B 60 -221 609 484 ;
+C 122 ; WX 520 ; N z ; B 38 -8 561 494 ;
+C 123 ; WX 360 ; N braceleft ; B 122 -191 442 718 ;
+C 124 ; WX 600 ; N bar ; B 294 -250 372 750 ;
+C 125 ; WX 380 ; N braceright ; B 13 -192 333 717 ;
+C 126 ; WX 600 ; N asciitilde ; B 91 207 595 386 ;
+C 161 ; WX 320 ; N exclamdown ; B 73 -213 301 494 ;
+C 162 ; WX 620 ; N cent ; B 148 -29 596 715 ;
+C 163 ; WX 620 ; N sterling ; B 4 -17 702 698 ;
+C 164 ; WX 20 ; N fraction ; B -228 0 323 681 ;
+C 165 ; WX 620 ; N yen ; B 71 0 735 681 ;
+C 166 ; WX 620 ; N florin ; B -26 -218 692 725 ;
+C 167 ; WX 620 ; N section ; B 38 -178 638 698 ;
+C 168 ; WX 620 ; N currency ; B 100 89 605 591 ;
+C 169 ; WX 200 ; N quotesingle ; B 99 473 247 698 ;
+C 170 ; WX 440 ; N quotedblleft ; B 191 470 493 698 ;
+C 171 ; WX 300 ; N guillemotleft ; B 70 129 313 434 ;
+C 172 ; WX 180 ; N guilsinglleft ; B 75 129 208 434 ;
+C 173 ; WX 180 ; N guilsinglright ; B 70 129 203 434 ;
+C 174 ; WX 640 ; N fi ; B -159 -222 709 725 ;
+C 175 ; WX 660 ; N fl ; B -159 -218 713 725 ;
+C 177 ; WX 500 ; N endash ; B 33 269 561 325 ;
+C 178 ; WX 620 ; N dagger ; B 192 -130 570 698 ;
+C 179 ; WX 620 ; N daggerdbl ; B 144 -122 566 698 ;
+C 180 ; WX 300 ; N periodcentered ; B 137 229 272 364 ;
+C 182 ; WX 620 ; N paragraph ; B 112 0 718 681 ;
+C 183 ; WX 460 ; N bullet ; B 100 170 444 511 ;
+C 184 ; WX 320 ; N quotesinglbase ; B 87 -114 226 113 ;
+C 185 ; WX 480 ; N quotedblbase ; B 87 -114 390 113 ;
+C 186 ; WX 440 ; N quotedblright ; B 148 470 451 698 ;
+C 187 ; WX 300 ; N guillemotright ; B 60 129 303 434 ;
+C 188 ; WX 1000 ; N ellipsis ; B 99 -8 900 127 ;
+C 189 ; WX 1180 ; N perthousand ; B 56 -8 1199 691 ;
+C 191 ; WX 540 ; N questiondown ; B 18 -212 508 494 ;
+C 193 ; WX 340 ; N grave ; B 182 551 377 706 ;
+C 194 ; WX 320 ; N acute ; B 208 551 403 706 ;
+C 195 ; WX 440 ; N circumflex ; B 176 571 479 685 ;
+C 196 ; WX 440 ; N tilde ; B 180 586 488 671 ;
+C 197 ; WX 440 ; N macron ; B 178 599 484 658 ;
+C 198 ; WX 440 ; N breve ; B 191 577 500 680 ;
+C 199 ; WX 260 ; N dotaccent ; B 189 572 310 693 ;
+C 200 ; WX 420 ; N dieresis ; B 185 542 467 661 ;
+C 202 ; WX 300 ; N ring ; B 178 551 334 706 ;
+C 203 ; WX 320 ; N cedilla ; B 45 -178 240 0 ;
+C 205 ; WX 340 ; N hungarumlaut ; B 188 547 520 694 ;
+C 206 ; WX 260 ; N ogonek ; B 71 -153 282 0 ;
+C 207 ; WX 440 ; N caron ; B 218 571 521 684 ;
+C 208 ; WX 1000 ; N emdash ; B 33 269 1061 325 ;
+C 225 ; WX 1220 ; N AE ; B -45 0 1269 681 ;
+C 227 ; WX 440 ; N ordfeminine ; B 130 396 513 698 ;
+C 232 ; WX 580 ; N Lslash ; B 21 0 656 681 ;
+C 233 ; WX 760 ; N Oslash ; B 88 -95 799 777 ;
+C 234 ; WX 1180 ; N OE ; B 88 -17 1237 698 ;
+C 235 ; WX 400 ; N ordmasculine ; B 139 396 455 698 ;
+C 241 ; WX 880 ; N ae ; B 71 -8 918 494 ;
+C 245 ; WX 280 ; N dotlessi ; B 88 -8 351 484 ;
+C 248 ; WX 340 ; N lslash ; B 33 -8 373 717 ;
+C 249 ; WX 540 ; N oslash ; B 65 -49 571 532 ;
+C 250 ; WX 900 ; N oe ; B 65 -8 948 494 ;
+C 251 ; WX 620 ; N germandbls ; B -121 -111 653 698 ;
+C -1 ; WX 320 ; N Idieresis ; B 21 0 447 865 ;
+C -1 ; WX 540 ; N eacute ; B 65 -8 575 706 ;
+C -1 ; WX 620 ; N abreve ; B 71 -8 686 680 ;
+C -1 ; WX 620 ; N uhungarumlaut ; B 88 -8 686 694 ;
+C -1 ; WX 540 ; N ecaron ; B 65 -8 575 684 ;
+C -1 ; WX 660 ; N Ydieresis ; B 87 0 809 865 ;
+C -1 ; WX 600 ; N divide ; B 91 46 595 548 ;
+C -1 ; WX 660 ; N Yacute ; B 87 0 809 883 ;
+C -1 ; WX 700 ; N Acircumflex ; B -25 0 720 862 ;
+C -1 ; WX 620 ; N aacute ; B 71 -8 686 706 ;
+C -1 ; WX 720 ; N Ucircumflex ; B 118 -17 842 862 ;
+C -1 ; WX 600 ; N yacute ; B 60 -221 609 706 ;
+C -1 ; WX 540 ; N scommaaccent ; B 65 -250 547 494 ;
+C -1 ; WX 540 ; N ecircumflex ; B 65 -8 575 685 ;
+C -1 ; WX 720 ; N Uring ; B 118 -17 842 883 ;
+C -1 ; WX 720 ; N Udieresis ; B 118 -17 842 865 ;
+C -1 ; WX 620 ; N aogonek ; B 71 -153 686 494 ;
+C -1 ; WX 720 ; N Uacute ; B 118 -17 842 883 ;
+C -1 ; WX 620 ; N uogonek ; B 88 -153 686 484 ;
+C -1 ; WX 680 ; N Edieresis ; B 21 0 736 865 ;
+C -1 ; WX 740 ; N Dcroat ; B 21 0 782 681 ;
+C -1 ; WX 250 ; N commaaccent ; B 92 -250 217 -50 ;
+C -1 ; WX 740 ; N copyright ; B 84 -17 784 698 ;
+C -1 ; WX 680 ; N Emacron ; B 21 0 736 835 ;
+C -1 ; WX 480 ; N ccaron ; B 65 -8 561 684 ;
+C -1 ; WX 620 ; N aring ; B 71 -8 686 706 ;
+C -1 ; WX 720 ; N Ncommaaccent ; B 18 -250 823 681 ;
+C -1 ; WX 280 ; N lacute ; B 100 -8 383 883 ;
+C -1 ; WX 620 ; N agrave ; B 71 -8 686 706 ;
+C -1 ; WX 600 ; N Tcommaaccent ; B 50 -250 725 681 ;
+C -1 ; WX 720 ; N Cacute ; B 88 -17 746 883 ;
+C -1 ; WX 620 ; N atilde ; B 71 -8 686 671 ;
+C -1 ; WX 680 ; N Edotaccent ; B 21 0 736 883 ;
+C -1 ; WX 540 ; N scaron ; B 65 -8 551 684 ;
+C -1 ; WX 540 ; N scedilla ; B 65 -178 547 494 ;
+C -1 ; WX 280 ; N iacute ; B 88 -8 363 706 ;
+C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ;
+C -1 ; WX 700 ; N Rcaron ; B 21 0 736 861 ;
+C -1 ; WX 760 ; N Gcommaaccent ; B 88 -250 813 698 ;
+C -1 ; WX 620 ; N ucircumflex ; B 88 -8 686 685 ;
+C -1 ; WX 620 ; N acircumflex ; B 71 -8 686 685 ;
+C -1 ; WX 700 ; N Amacron ; B -25 0 720 835 ;
+C -1 ; WX 400 ; N rcaron ; B 88 0 481 684 ;
+C -1 ; WX 480 ; N ccedilla ; B 65 -178 522 494 ;
+C -1 ; WX 580 ; N Zdotaccent ; B 8 0 695 883 ;
+C -1 ; WX 600 ; N Thorn ; B 21 0 656 681 ;
+C -1 ; WX 760 ; N Omacron ; B 88 -17 799 835 ;
+C -1 ; WX 700 ; N Racute ; B 21 0 736 883 ;
+C -1 ; WX 640 ; N Sacute ; B 61 -17 668 883 ;
+C -1 ; WX 710 ; N dcaron ; B 65 -8 806 723 ;
+C -1 ; WX 720 ; N Umacron ; B 118 -17 842 835 ;
+C -1 ; WX 620 ; N uring ; B 88 -8 686 706 ;
+C -1 ; WX 372 ; N threesuperior ; B 70 269 439 698 ;
+C -1 ; WX 760 ; N Ograve ; B 88 -17 799 883 ;
+C -1 ; WX 700 ; N Agrave ; B -25 0 720 883 ;
+C -1 ; WX 700 ; N Abreve ; B -25 0 720 857 ;
+C -1 ; WX 600 ; N multiply ; B 91 44 595 548 ;
+C -1 ; WX 620 ; N uacute ; B 88 -8 686 706 ;
+C -1 ; WX 600 ; N Tcaron ; B 50 0 725 861 ;
+C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ;
+C -1 ; WX 600 ; N ydieresis ; B 60 -221 609 688 ;
+C -1 ; WX 720 ; N Nacute ; B 18 0 823 883 ;
+C -1 ; WX 280 ; N icircumflex ; B 76 -8 379 685 ;
+C -1 ; WX 680 ; N Ecircumflex ; B 21 0 736 862 ;
+C -1 ; WX 620 ; N adieresis ; B 71 -8 686 688 ;
+C -1 ; WX 540 ; N edieresis ; B 65 -8 575 688 ;
+C -1 ; WX 480 ; N cacute ; B 65 -8 522 706 ;
+C -1 ; WX 620 ; N nacute ; B 88 -8 673 706 ;
+C -1 ; WX 620 ; N umacron ; B 88 -8 686 658 ;
+C -1 ; WX 720 ; N Ncaron ; B 18 0 823 861 ;
+C -1 ; WX 320 ; N Iacute ; B 21 0 433 883 ;
+C -1 ; WX 600 ; N plusminus ; B 91 0 595 548 ;
+C -1 ; WX 600 ; N brokenbar ; B 294 -175 372 675 ;
+C -1 ; WX 740 ; N registered ; B 84 -17 784 698 ;
+C -1 ; WX 760 ; N Gbreve ; B 88 -17 813 857 ;
+C -1 ; WX 320 ; N Idotaccent ; B 21 0 412 883 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 680 ; N Egrave ; B 21 0 736 883 ;
+C -1 ; WX 400 ; N racute ; B 88 0 481 706 ;
+C -1 ; WX 540 ; N omacron ; B 65 -8 572 658 ;
+C -1 ; WX 580 ; N Zacute ; B 8 0 695 883 ;
+C -1 ; WX 580 ; N Zcaron ; B 8 0 695 861 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 666 ;
+C -1 ; WX 740 ; N Eth ; B 21 0 782 681 ;
+C -1 ; WX 720 ; N Ccedilla ; B 88 -178 746 698 ;
+C -1 ; WX 280 ; N lcommaaccent ; B 100 -250 342 717 ;
+C -1 ; WX 370 ; N tcaron ; B 88 -8 476 737 ;
+C -1 ; WX 540 ; N eogonek ; B 65 -160 575 494 ;
+C -1 ; WX 720 ; N Uogonek ; B 118 -168 842 681 ;
+C -1 ; WX 700 ; N Aacute ; B -25 0 720 883 ;
+C -1 ; WX 700 ; N Adieresis ; B -25 0 720 865 ;
+C -1 ; WX 540 ; N egrave ; B 65 -8 575 706 ;
+C -1 ; WX 520 ; N zacute ; B 38 -8 561 706 ;
+C -1 ; WX 280 ; N iogonek ; B 88 -157 351 663 ;
+C -1 ; WX 760 ; N Oacute ; B 88 -17 799 883 ;
+C -1 ; WX 540 ; N oacute ; B 65 -8 572 706 ;
+C -1 ; WX 620 ; N amacron ; B 71 -8 686 658 ;
+C -1 ; WX 540 ; N sacute ; B 65 -8 547 706 ;
+C -1 ; WX 280 ; N idieresis ; B 88 -8 377 688 ;
+C -1 ; WX 760 ; N Ocircumflex ; B 88 -17 799 862 ;
+C -1 ; WX 720 ; N Ugrave ; B 118 -17 842 883 ;
+C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 600 ; N thorn ; B -24 -212 621 717 ;
+C -1 ; WX 372 ; N twosuperior ; B 68 279 439 698 ;
+C -1 ; WX 760 ; N Odieresis ; B 88 -17 799 865 ;
+C -1 ; WX 620 ; N mu ; B 53 -221 686 484 ;
+C -1 ; WX 280 ; N igrave ; B 88 -8 351 706 ;
+C -1 ; WX 540 ; N ohungarumlaut ; B 65 -8 590 694 ;
+C -1 ; WX 680 ; N Eogonek ; B 21 -153 736 681 ;
+C -1 ; WX 640 ; N dcroat ; B 65 -8 725 717 ;
+C -1 ; WX 930 ; N threequarters ; B 99 0 913 691 ;
+C -1 ; WX 640 ; N Scedilla ; B 61 -178 668 698 ;
+C -1 ; WX 350 ; N lcaron ; B 100 -8 446 722 ;
+C -1 ; WX 720 ; N Kcommaaccent ; B 21 -250 804 681 ;
+C -1 ; WX 580 ; N Lacute ; B 21 0 656 883 ;
+C -1 ; WX 980 ; N trademark ; B 69 277 965 681 ;
+C -1 ; WX 540 ; N edotaccent ; B 65 -8 575 720 ;
+C -1 ; WX 320 ; N Igrave ; B 21 0 412 883 ;
+C -1 ; WX 320 ; N Imacron ; B 21 0 454 835 ;
+C -1 ; WX 580 ; N Lcaron ; B 21 0 656 698 ;
+C -1 ; WX 930 ; N onehalf ; B 91 0 925 681 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 666 ;
+C -1 ; WX 540 ; N ocircumflex ; B 65 -8 572 685 ;
+C -1 ; WX 620 ; N ntilde ; B 88 -8 673 671 ;
+C -1 ; WX 720 ; N Uhungarumlaut ; B 118 -17 842 871 ;
+C -1 ; WX 680 ; N Eacute ; B 21 0 736 883 ;
+C -1 ; WX 540 ; N emacron ; B 65 -8 594 658 ;
+C -1 ; WX 560 ; N gbreve ; B 4 -221 581 680 ;
+C -1 ; WX 930 ; N onequarter ; B 91 0 913 681 ;
+C -1 ; WX 640 ; N Scaron ; B 61 -17 668 861 ;
+C -1 ; WX 640 ; N Scommaaccent ; B 61 -250 668 698 ;
+C -1 ; WX 760 ; N Ohungarumlaut ; B 88 -17 799 871 ;
+C -1 ; WX 400 ; N degree ; B 120 398 420 698 ;
+C -1 ; WX 540 ; N ograve ; B 65 -8 572 706 ;
+C -1 ; WX 720 ; N Ccaron ; B 88 -17 746 861 ;
+C -1 ; WX 620 ; N ugrave ; B 88 -8 686 706 ;
+C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ;
+C -1 ; WX 740 ; N Dcaron ; B 21 0 782 861 ;
+C -1 ; WX 400 ; N rcommaaccent ; B 67 -250 481 494 ;
+C -1 ; WX 720 ; N Ntilde ; B 18 0 823 848 ;
+C -1 ; WX 540 ; N otilde ; B 65 -8 572 671 ;
+C -1 ; WX 700 ; N Rcommaaccent ; B 21 -250 736 681 ;
+C -1 ; WX 580 ; N Lcommaaccent ; B 21 -250 656 681 ;
+C -1 ; WX 700 ; N Atilde ; B -25 0 720 848 ;
+C -1 ; WX 700 ; N Aogonek ; B -25 -153 748 681 ;
+C -1 ; WX 700 ; N Aring ; B -25 0 720 883 ;
+C -1 ; WX 760 ; N Otilde ; B 88 -17 799 848 ;
+C -1 ; WX 520 ; N zdotaccent ; B 38 -8 561 720 ;
+C -1 ; WX 680 ; N Ecaron ; B 21 0 736 861 ;
+C -1 ; WX 320 ; N Iogonek ; B 21 -153 412 681 ;
+C -1 ; WX 600 ; N kcommaaccent ; B 88 -250 657 717 ;
+C -1 ; WX 600 ; N minus ; B 91 259 595 335 ;
+C -1 ; WX 320 ; N Icircumflex ; B 21 0 449 862 ;
+C -1 ; WX 620 ; N ncaron ; B 88 -8 673 684 ;
+C -1 ; WX 340 ; N tcommaaccent ; B 88 -250 411 664 ;
+C -1 ; WX 600 ; N logicalnot ; B 91 163 595 433 ;
+C -1 ; WX 540 ; N odieresis ; B 65 -8 572 688 ;
+C -1 ; WX 620 ; N udieresis ; B 88 -8 686 688 ;
+C -1 ; WX 549 ; N notequal ; B 12 -31 537 547 ;
+C -1 ; WX 560 ; N gcommaaccent ; B 4 -221 581 782 ;
+C -1 ; WX 540 ; N eth ; B 65 -8 642 725 ;
+C -1 ; WX 520 ; N zcaron ; B 38 -8 561 684 ;
+C -1 ; WX 620 ; N ncommaaccent ; B 88 -250 673 494 ;
+C -1 ; WX 372 ; N onesuperior ; B 114 279 339 688 ;
+C -1 ; WX 280 ; N imacron ; B 88 -8 404 658 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 828
+KPX A T -5
+KPX A Tcaron -5
+KPX A Tcommaaccent -5
+KPX A V -78
+KPX A W -73
+KPX A Y -62
+KPX A Yacute -62
+KPX A Ydieresis -62
+KPX Aacute T -5
+KPX Aacute Tcaron -5
+KPX Aacute Tcommaaccent -5
+KPX Aacute V -78
+KPX Aacute W -73
+KPX Aacute Y -62
+KPX Aacute Yacute -62
+KPX Aacute Ydieresis -62
+KPX Abreve T -5
+KPX Abreve Tcaron -5
+KPX Abreve Tcommaaccent -5
+KPX Abreve V -78
+KPX Abreve W -73
+KPX Abreve Y -62
+KPX Abreve Yacute -62
+KPX Abreve Ydieresis -62
+KPX Acircumflex T -5
+KPX Acircumflex Tcaron -5
+KPX Acircumflex Tcommaaccent -5
+KPX Acircumflex V -78
+KPX Acircumflex W -73
+KPX Acircumflex Y -62
+KPX Acircumflex Yacute -62
+KPX Acircumflex Ydieresis -62
+KPX Adieresis T -5
+KPX Adieresis Tcaron -5
+KPX Adieresis Tcommaaccent -5
+KPX Adieresis V -78
+KPX Adieresis W -73
+KPX Adieresis Y -62
+KPX Adieresis Yacute -62
+KPX Adieresis Ydieresis -62
+KPX Agrave T -5
+KPX Agrave Tcaron -5
+KPX Agrave Tcommaaccent -5
+KPX Agrave V -78
+KPX Agrave W -73
+KPX Agrave Y -62
+KPX Agrave Yacute -62
+KPX Agrave Ydieresis -62
+KPX Amacron T -5
+KPX Amacron Tcaron -5
+KPX Amacron Tcommaaccent -5
+KPX Amacron V -78
+KPX Amacron W -73
+KPX Amacron Y -62
+KPX Amacron Yacute -62
+KPX Amacron Ydieresis -62
+KPX Aogonek T -5
+KPX Aogonek Tcaron -5
+KPX Aogonek Tcommaaccent -5
+KPX Aogonek V -78
+KPX Aogonek W -73
+KPX Aogonek Y -62
+KPX Aogonek Yacute -62
+KPX Aogonek Ydieresis -62
+KPX Aring T -5
+KPX Aring Tcaron -5
+KPX Aring Tcommaaccent -5
+KPX Aring V -78
+KPX Aring W -73
+KPX Aring Y -62
+KPX Aring Yacute -62
+KPX Aring Ydieresis -62
+KPX Atilde T -5
+KPX Atilde Tcaron -5
+KPX Atilde Tcommaaccent -5
+KPX Atilde V -78
+KPX Atilde W -73
+KPX Atilde Y -62
+KPX Atilde Yacute -62
+KPX Atilde Ydieresis -62
+KPX F A -16
+KPX F Aacute -16
+KPX F Abreve -16
+KPX F Acircumflex -16
+KPX F Adieresis -16
+KPX F Agrave -16
+KPX F Amacron -16
+KPX F Aogonek -16
+KPX F Aring -16
+KPX F Atilde -16
+KPX F comma -98
+KPX F period -97
+KPX L V 4
+KPX L W 9
+KPX L Y 7
+KPX L Yacute 7
+KPX L Ydieresis 7
+KPX L y 20
+KPX L yacute 20
+KPX L ydieresis 20
+KPX Lacute V 4
+KPX Lacute W 9
+KPX Lacute Y 7
+KPX Lacute Yacute 7
+KPX Lacute Ydieresis 7
+KPX Lacute y 20
+KPX Lacute yacute 20
+KPX Lacute ydieresis 20
+KPX Lcaron V 4
+KPX Lcaron W 9
+KPX Lcaron Y 7
+KPX Lcaron Yacute 7
+KPX Lcaron Ydieresis 7
+KPX Lcaron y 20
+KPX Lcaron yacute 20
+KPX Lcaron ydieresis 20
+KPX Lcommaaccent V 4
+KPX Lcommaaccent W 9
+KPX Lcommaaccent Y 7
+KPX Lcommaaccent Yacute 7
+KPX Lcommaaccent Ydieresis 7
+KPX Lcommaaccent y 20
+KPX Lcommaaccent yacute 20
+KPX Lcommaaccent ydieresis 20
+KPX Lslash V 4
+KPX Lslash W 9
+KPX Lslash Y 7
+KPX Lslash Yacute 7
+KPX Lslash Ydieresis 7
+KPX Lslash y 20
+KPX Lslash yacute 20
+KPX Lslash ydieresis 20
+KPX P A -30
+KPX P Aacute -30
+KPX P Abreve -30
+KPX P Acircumflex -30
+KPX P Adieresis -30
+KPX P Agrave -30
+KPX P Amacron -30
+KPX P Aogonek -30
+KPX P Aring -30
+KPX P Atilde -30
+KPX P comma -106
+KPX P period -105
+KPX R T 65
+KPX R Tcaron 65
+KPX R Tcommaaccent 65
+KPX R V 2
+KPX R W 2
+KPX R Y 11
+KPX R Yacute 11
+KPX R Ydieresis 11
+KPX Racute T 65
+KPX Racute Tcaron 65
+KPX Racute Tcommaaccent 65
+KPX Racute V 2
+KPX Racute W 2
+KPX Racute Y 11
+KPX Racute Yacute 11
+KPX Racute Ydieresis 11
+KPX Rcaron T 65
+KPX Rcaron Tcaron 65
+KPX Rcaron Tcommaaccent 65
+KPX Rcaron V 2
+KPX Rcaron W 2
+KPX Rcaron Y 11
+KPX Rcaron Yacute 11
+KPX Rcaron Ydieresis 11
+KPX Rcommaaccent T 65
+KPX Rcommaaccent Tcaron 65
+KPX Rcommaaccent Tcommaaccent 65
+KPX Rcommaaccent V 2
+KPX Rcommaaccent W 2
+KPX Rcommaaccent Y 11
+KPX Rcommaaccent Yacute 11
+KPX Rcommaaccent Ydieresis 11
+KPX T A -14
+KPX T Aacute -14
+KPX T Abreve -14
+KPX T Acircumflex -14
+KPX T Adieresis -14
+KPX T Agrave -14
+KPX T Amacron -14
+KPX T Aogonek -14
+KPX T Aring -14
+KPX T Atilde -14
+KPX T a 9
+KPX T aacute 9
+KPX T abreve 9
+KPX T acircumflex 9
+KPX T adieresis 9
+KPX T agrave 9
+KPX T amacron 9
+KPX T aogonek 9
+KPX T aring 9
+KPX T atilde 9
+KPX T c 16
+KPX T cacute 16
+KPX T ccaron 16
+KPX T ccedilla 16
+KPX T colon 48
+KPX T comma -79
+KPX T e 10
+KPX T eacute 10
+KPX T ecaron 10
+KPX T ecircumflex 10
+KPX T edieresis 10
+KPX T edotaccent 10
+KPX T egrave 10
+KPX T emacron 10
+KPX T eogonek 10
+KPX T hyphen 20
+KPX T i 71
+KPX T iacute 71
+KPX T icircumflex 71
+KPX T idieresis 71
+KPX T igrave 71
+KPX T imacron 71
+KPX T iogonek 71
+KPX T o 14
+KPX T oacute 14
+KPX T ocircumflex 14
+KPX T odieresis 14
+KPX T ograve 14
+KPX T ohungarumlaut 14
+KPX T omacron 14
+KPX T oslash 14
+KPX T otilde 14
+KPX T period -78
+KPX T r 67
+KPX T racute 67
+KPX T rcaron 67
+KPX T rcommaaccent 67
+KPX T s -7
+KPX T sacute -7
+KPX T scaron -7
+KPX T scedilla -7
+KPX T scommaaccent -7
+KPX T semicolon 48
+KPX Tcaron A -14
+KPX Tcaron Aacute -14
+KPX Tcaron Abreve -14
+KPX Tcaron Acircumflex -14
+KPX Tcaron Adieresis -14
+KPX Tcaron Agrave -14
+KPX Tcaron Amacron -14
+KPX Tcaron Aogonek -14
+KPX Tcaron Aring -14
+KPX Tcaron Atilde -14
+KPX Tcaron a 9
+KPX Tcaron aacute 9
+KPX Tcaron abreve 9
+KPX Tcaron acircumflex 9
+KPX Tcaron adieresis 9
+KPX Tcaron agrave 9
+KPX Tcaron amacron 9
+KPX Tcaron aogonek 9
+KPX Tcaron aring 9
+KPX Tcaron atilde 9
+KPX Tcaron c 16
+KPX Tcaron cacute 16
+KPX Tcaron ccaron 16
+KPX Tcaron ccedilla 16
+KPX Tcaron colon 48
+KPX Tcaron comma -79
+KPX Tcaron e 10
+KPX Tcaron eacute 10
+KPX Tcaron ecaron 10
+KPX Tcaron ecircumflex 10
+KPX Tcaron edieresis 10
+KPX Tcaron edotaccent 10
+KPX Tcaron egrave 10
+KPX Tcaron emacron 10
+KPX Tcaron eogonek 10
+KPX Tcaron hyphen 20
+KPX Tcaron i 71
+KPX Tcaron iacute 71
+KPX Tcaron icircumflex 71
+KPX Tcaron idieresis 71
+KPX Tcaron igrave 71
+KPX Tcaron imacron 71
+KPX Tcaron iogonek 71
+KPX Tcaron o 14
+KPX Tcaron oacute 14
+KPX Tcaron ocircumflex 14
+KPX Tcaron odieresis 14
+KPX Tcaron ograve 14
+KPX Tcaron ohungarumlaut 14
+KPX Tcaron omacron 14
+KPX Tcaron oslash 14
+KPX Tcaron otilde 14
+KPX Tcaron period -78
+KPX Tcaron r 67
+KPX Tcaron racute 67
+KPX Tcaron rcaron 67
+KPX Tcaron rcommaaccent 67
+KPX Tcaron s -7
+KPX Tcaron sacute -7
+KPX Tcaron scaron -7
+KPX Tcaron scedilla -7
+KPX Tcaron scommaaccent -7
+KPX Tcaron semicolon 48
+KPX Tcommaaccent A -14
+KPX Tcommaaccent Aacute -14
+KPX Tcommaaccent Abreve -14
+KPX Tcommaaccent Acircumflex -14
+KPX Tcommaaccent Adieresis -14
+KPX Tcommaaccent Agrave -14
+KPX Tcommaaccent Amacron -14
+KPX Tcommaaccent Aogonek -14
+KPX Tcommaaccent Aring -14
+KPX Tcommaaccent Atilde -14
+KPX Tcommaaccent a 9
+KPX Tcommaaccent aacute 9
+KPX Tcommaaccent abreve 9
+KPX Tcommaaccent acircumflex 9
+KPX Tcommaaccent adieresis 9
+KPX Tcommaaccent agrave 9
+KPX Tcommaaccent amacron 9
+KPX Tcommaaccent aogonek 9
+KPX Tcommaaccent aring 9
+KPX Tcommaaccent atilde 9
+KPX Tcommaaccent c 16
+KPX Tcommaaccent cacute 16
+KPX Tcommaaccent ccaron 16
+KPX Tcommaaccent ccedilla 16
+KPX Tcommaaccent colon 48
+KPX Tcommaaccent comma -79
+KPX Tcommaaccent e 10
+KPX Tcommaaccent eacute 10
+KPX Tcommaaccent ecaron 10
+KPX Tcommaaccent ecircumflex 10
+KPX Tcommaaccent edieresis 10
+KPX Tcommaaccent edotaccent 10
+KPX Tcommaaccent egrave 10
+KPX Tcommaaccent emacron 10
+KPX Tcommaaccent eogonek 10
+KPX Tcommaaccent hyphen 20
+KPX Tcommaaccent i 71
+KPX Tcommaaccent iacute 71
+KPX Tcommaaccent icircumflex 71
+KPX Tcommaaccent idieresis 71
+KPX Tcommaaccent igrave 71
+KPX Tcommaaccent imacron 71
+KPX Tcommaaccent iogonek 71
+KPX Tcommaaccent o 14
+KPX Tcommaaccent oacute 14
+KPX Tcommaaccent ocircumflex 14
+KPX Tcommaaccent odieresis 14
+KPX Tcommaaccent ograve 14
+KPX Tcommaaccent ohungarumlaut 14
+KPX Tcommaaccent omacron 14
+KPX Tcommaaccent oslash 14
+KPX Tcommaaccent otilde 14
+KPX Tcommaaccent period -78
+KPX Tcommaaccent r 67
+KPX Tcommaaccent racute 67
+KPX Tcommaaccent rcaron 67
+KPX Tcommaaccent rcommaaccent 67
+KPX Tcommaaccent s -7
+KPX Tcommaaccent sacute -7
+KPX Tcommaaccent scaron -7
+KPX Tcommaaccent scedilla -7
+KPX Tcommaaccent scommaaccent -7
+KPX Tcommaaccent semicolon 48
+KPX V A -70
+KPX V Aacute -70
+KPX V Abreve -70
+KPX V Acircumflex -70
+KPX V Adieresis -70
+KPX V Agrave -70
+KPX V Amacron -70
+KPX V Aogonek -70
+KPX V Aring -70
+KPX V Atilde -70
+KPX V a -70
+KPX V aacute -70
+KPX V abreve -70
+KPX V acircumflex -70
+KPX V adieresis -70
+KPX V agrave -70
+KPX V amacron -70
+KPX V aogonek -70
+KPX V aring -70
+KPX V atilde -70
+KPX V colon -35
+KPX V comma -109
+KPX V e -70
+KPX V eacute -70
+KPX V ecaron -70
+KPX V ecircumflex -70
+KPX V edieresis -70
+KPX V edotaccent -70
+KPX V egrave -70
+KPX V emacron -70
+KPX V eogonek -70
+KPX V hyphen 20
+KPX V i 3
+KPX V iacute 3
+KPX V icircumflex 3
+KPX V idieresis 13
+KPX V igrave 13
+KPX V imacron 13
+KPX V iogonek 3
+KPX V o -70
+KPX V oacute -70
+KPX V ocircumflex -70
+KPX V odieresis -70
+KPX V ograve -70
+KPX V ohungarumlaut -70
+KPX V omacron -70
+KPX V oslash -70
+KPX V otilde -70
+KPX V period -100
+KPX V r -20
+KPX V racute -20
+KPX V rcaron -20
+KPX V rcommaaccent -20
+KPX V semicolon -44
+KPX V u -10
+KPX V uacute -10
+KPX V ucircumflex -10
+KPX V udieresis -10
+KPX V ugrave -10
+KPX V uhungarumlaut -10
+KPX V umacron -10
+KPX V uogonek -10
+KPX V uring -10
+KPX V y -14
+KPX V yacute -14
+KPX V ydieresis -14
+KPX W A -60
+KPX W Aacute -60
+KPX W Abreve -60
+KPX W Acircumflex -60
+KPX W Adieresis -60
+KPX W Agrave -60
+KPX W Amacron -60
+KPX W Aogonek -60
+KPX W Aring -60
+KPX W Atilde -60
+KPX W a -60
+KPX W aacute -60
+KPX W abreve -60
+KPX W acircumflex -60
+KPX W adieresis -60
+KPX W agrave -60
+KPX W amacron -60
+KPX W aogonek -60
+KPX W aring -60
+KPX W atilde -60
+KPX W colon -35
+KPX W comma -109
+KPX W e -60
+KPX W eacute -60
+KPX W ecaron -60
+KPX W ecircumflex -60
+KPX W edieresis -60
+KPX W edotaccent -60
+KPX W egrave -60
+KPX W emacron -60
+KPX W eogonek -60
+KPX W hyphen 20
+KPX W i 3
+KPX W iacute 3
+KPX W icircumflex 13
+KPX W idieresis 13
+KPX W igrave 13
+KPX W imacron 13
+KPX W iogonek 3
+KPX W o -60
+KPX W oacute -60
+KPX W ocircumflex -60
+KPX W odieresis -60
+KPX W ograve -60
+KPX W ohungarumlaut -60
+KPX W omacron -60
+KPX W oslash -60
+KPX W otilde -60
+KPX W period -100
+KPX W r -30
+KPX W racute -30
+KPX W rcaron -30
+KPX W rcommaaccent -30
+KPX W semicolon -42
+KPX W u -20
+KPX W uacute -20
+KPX W ucircumflex -20
+KPX W udieresis -20
+KPX W ugrave -20
+KPX W uhungarumlaut -20
+KPX W umacron -20
+KPX W uogonek -20
+KPX W uring -20
+KPX W y -14
+KPX W yacute -14
+KPX W ydieresis -14
+KPX Y A -82
+KPX Y Aacute -82
+KPX Y Abreve -82
+KPX Y Acircumflex -82
+KPX Y Adieresis -82
+KPX Y Agrave -82
+KPX Y Amacron -82
+KPX Y Aogonek -82
+KPX Y Aring -82
+KPX Y Atilde -82
+KPX Y a -79
+KPX Y aacute -79
+KPX Y abreve -79
+KPX Y acircumflex -79
+KPX Y adieresis -79
+KPX Y agrave -79
+KPX Y amacron -79
+KPX Y aogonek -79
+KPX Y aring -79
+KPX Y atilde -79
+KPX Y colon -35
+KPX Y comma -109
+KPX Y e -78
+KPX Y eacute -78
+KPX Y ecaron -78
+KPX Y ecircumflex -78
+KPX Y edieresis -78
+KPX Y edotaccent -78
+KPX Y egrave -78
+KPX Y emacron -78
+KPX Y eogonek -78
+KPX Y hyphen 20
+KPX Y i -11
+KPX Y iacute -11
+KPX Y iogonek -11
+KPX Y o -75
+KPX Y oacute -75
+KPX Y ocircumflex -75
+KPX Y odieresis -75
+KPX Y ograve -75
+KPX Y ohungarumlaut -75
+KPX Y omacron -75
+KPX Y oslash -75
+KPX Y otilde -75
+KPX Y p -37
+KPX Y period -100
+KPX Y q -72
+KPX Y semicolon -40
+KPX Y u -31
+KPX Y uacute -31
+KPX Y ucircumflex -31
+KPX Y udieresis -31
+KPX Y ugrave -31
+KPX Y uhungarumlaut -31
+KPX Y umacron -31
+KPX Y uogonek -31
+KPX Y uring -31
+KPX Y v -19
+KPX Yacute A -82
+KPX Yacute Aacute -82
+KPX Yacute Abreve -82
+KPX Yacute Acircumflex -82
+KPX Yacute Adieresis -82
+KPX Yacute Agrave -82
+KPX Yacute Amacron -82
+KPX Yacute Aogonek -82
+KPX Yacute Aring -82
+KPX Yacute Atilde -82
+KPX Yacute a -79
+KPX Yacute aacute -79
+KPX Yacute abreve -79
+KPX Yacute acircumflex -79
+KPX Yacute adieresis -79
+KPX Yacute agrave -79
+KPX Yacute amacron -79
+KPX Yacute aogonek -79
+KPX Yacute aring -79
+KPX Yacute atilde -79
+KPX Yacute colon -35
+KPX Yacute comma -109
+KPX Yacute e -78
+KPX Yacute eacute -78
+KPX Yacute ecaron -78
+KPX Yacute ecircumflex -78
+KPX Yacute edieresis -78
+KPX Yacute edotaccent -78
+KPX Yacute egrave -78
+KPX Yacute emacron -78
+KPX Yacute eogonek -78
+KPX Yacute hyphen 20
+KPX Yacute i -11
+KPX Yacute iacute -11
+KPX Yacute iogonek -11
+KPX Yacute o -75
+KPX Yacute oacute -75
+KPX Yacute ocircumflex -75
+KPX Yacute odieresis -75
+KPX Yacute ograve -75
+KPX Yacute ohungarumlaut -75
+KPX Yacute omacron -75
+KPX Yacute oslash -75
+KPX Yacute otilde -75
+KPX Yacute p -37
+KPX Yacute period -100
+KPX Yacute q -72
+KPX Yacute semicolon -40
+KPX Yacute u -31
+KPX Yacute uacute -31
+KPX Yacute ucircumflex -31
+KPX Yacute udieresis -31
+KPX Yacute ugrave -31
+KPX Yacute uhungarumlaut -31
+KPX Yacute umacron -31
+KPX Yacute uogonek -31
+KPX Yacute uring -31
+KPX Yacute v -19
+KPX Ydieresis A -82
+KPX Ydieresis Aacute -82
+KPX Ydieresis Abreve -82
+KPX Ydieresis Acircumflex -82
+KPX Ydieresis Adieresis -82
+KPX Ydieresis Agrave -82
+KPX Ydieresis Amacron -82
+KPX Ydieresis Aogonek -82
+KPX Ydieresis Aring -82
+KPX Ydieresis Atilde -82
+KPX Ydieresis a -79
+KPX Ydieresis aacute -79
+KPX Ydieresis abreve -79
+KPX Ydieresis acircumflex -79
+KPX Ydieresis adieresis -79
+KPX Ydieresis agrave -79
+KPX Ydieresis amacron -79
+KPX Ydieresis aogonek -79
+KPX Ydieresis aring -79
+KPX Ydieresis atilde -79
+KPX Ydieresis colon -35
+KPX Ydieresis comma -109
+KPX Ydieresis e -78
+KPX Ydieresis eacute -78
+KPX Ydieresis ecaron -78
+KPX Ydieresis ecircumflex -78
+KPX Ydieresis edieresis -78
+KPX Ydieresis edotaccent -78
+KPX Ydieresis egrave -78
+KPX Ydieresis emacron -78
+KPX Ydieresis eogonek -78
+KPX Ydieresis hyphen 20
+KPX Ydieresis i -11
+KPX Ydieresis iacute -11
+KPX Ydieresis iogonek -11
+KPX Ydieresis o -75
+KPX Ydieresis oacute -75
+KPX Ydieresis ocircumflex -75
+KPX Ydieresis odieresis -75
+KPX Ydieresis ograve -75
+KPX Ydieresis ohungarumlaut -75
+KPX Ydieresis omacron -75
+KPX Ydieresis oslash -75
+KPX Ydieresis otilde -75
+KPX Ydieresis p -37
+KPX Ydieresis period -100
+KPX Ydieresis q -72
+KPX Ydieresis semicolon -40
+KPX Ydieresis u -31
+KPX Ydieresis uacute -31
+KPX Ydieresis ucircumflex -31
+KPX Ydieresis udieresis -31
+KPX Ydieresis ugrave -31
+KPX Ydieresis uhungarumlaut -31
+KPX Ydieresis umacron -31
+KPX Ydieresis uogonek -31
+KPX Ydieresis uring -31
+KPX Ydieresis v -19
+KPX f f -19
+KPX r c -8
+KPX r cacute -8
+KPX r ccaron -8
+KPX r ccedilla -8
+KPX r comma -143
+KPX r d -9
+KPX r dcroat -9
+KPX r e -15
+KPX r eacute -15
+KPX r ecaron -15
+KPX r ecircumflex -15
+KPX r edieresis -15
+KPX r edotaccent -15
+KPX r egrave -15
+KPX r emacron -15
+KPX r eogonek -15
+KPX r f -9
+KPX r g -3
+KPX r gbreve -3
+KPX r gcommaaccent -3
+KPX r h -20
+KPX r hyphen 20
+KPX r m 37
+KPX r n 38
+KPX r nacute 38
+KPX r ncaron 38
+KPX r ncommaaccent 38
+KPX r ntilde 38
+KPX r o -10
+KPX r oacute -10
+KPX r ocircumflex -10
+KPX r odieresis -10
+KPX r ograve -10
+KPX r ohungarumlaut -10
+KPX r omacron -10
+KPX r oslash -10
+KPX r otilde -10
+KPX r period -134
+KPX r q -14
+KPX racute c -8
+KPX racute cacute -8
+KPX racute ccaron -8
+KPX racute ccedilla -8
+KPX racute comma -143
+KPX racute d -9
+KPX racute dcroat -9
+KPX racute e -15
+KPX racute eacute -15
+KPX racute ecaron -15
+KPX racute ecircumflex -15
+KPX racute edieresis -15
+KPX racute edotaccent -15
+KPX racute egrave -15
+KPX racute emacron -15
+KPX racute eogonek -15
+KPX racute f -9
+KPX racute g -3
+KPX racute gbreve -3
+KPX racute gcommaaccent -3
+KPX racute h -20
+KPX racute hyphen 20
+KPX racute m 37
+KPX racute n 38
+KPX racute nacute 38
+KPX racute ncaron 38
+KPX racute ncommaaccent 38
+KPX racute ntilde 38
+KPX racute o -10
+KPX racute oacute -10
+KPX racute ocircumflex -10
+KPX racute odieresis -10
+KPX racute ograve -10
+KPX racute ohungarumlaut -10
+KPX racute omacron -10
+KPX racute oslash -10
+KPX racute otilde -10
+KPX racute period -134
+KPX racute q -14
+KPX rcaron c -8
+KPX rcaron cacute -8
+KPX rcaron ccaron -8
+KPX rcaron ccedilla -8
+KPX rcaron comma -143
+KPX rcaron d -9
+KPX rcaron dcroat -9
+KPX rcaron e -15
+KPX rcaron eacute -15
+KPX rcaron ecaron -15
+KPX rcaron ecircumflex -15
+KPX rcaron edieresis -15
+KPX rcaron edotaccent -15
+KPX rcaron egrave -15
+KPX rcaron emacron -15
+KPX rcaron eogonek -15
+KPX rcaron f -9
+KPX rcaron g -3
+KPX rcaron gbreve -3
+KPX rcaron gcommaaccent -3
+KPX rcaron h -20
+KPX rcaron hyphen 20
+KPX rcaron m 37
+KPX rcaron n 38
+KPX rcaron nacute 38
+KPX rcaron ncaron 38
+KPX rcaron ncommaaccent 38
+KPX rcaron ntilde 38
+KPX rcaron o -10
+KPX rcaron oacute -10
+KPX rcaron ocircumflex -10
+KPX rcaron odieresis -10
+KPX rcaron ograve -10
+KPX rcaron ohungarumlaut -10
+KPX rcaron omacron -10
+KPX rcaron oslash -10
+KPX rcaron otilde -10
+KPX rcaron period -134
+KPX rcaron q -14
+KPX rcommaaccent c -8
+KPX rcommaaccent cacute -8
+KPX rcommaaccent ccaron -8
+KPX rcommaaccent ccedilla -8
+KPX rcommaaccent comma -143
+KPX rcommaaccent d -9
+KPX rcommaaccent dcroat -9
+KPX rcommaaccent e -15
+KPX rcommaaccent eacute -15
+KPX rcommaaccent ecaron -15
+KPX rcommaaccent ecircumflex -15
+KPX rcommaaccent edieresis -15
+KPX rcommaaccent edotaccent -15
+KPX rcommaaccent egrave -15
+KPX rcommaaccent emacron -15
+KPX rcommaaccent eogonek -15
+KPX rcommaaccent f -9
+KPX rcommaaccent g -3
+KPX rcommaaccent gbreve -3
+KPX rcommaaccent gcommaaccent -3
+KPX rcommaaccent h -20
+KPX rcommaaccent hyphen 20
+KPX rcommaaccent m 37
+KPX rcommaaccent n 38
+KPX rcommaaccent nacute 38
+KPX rcommaaccent ncaron 38
+KPX rcommaaccent ncommaaccent 38
+KPX rcommaaccent ntilde 38
+KPX rcommaaccent o -10
+KPX rcommaaccent oacute -10
+KPX rcommaaccent ocircumflex -10
+KPX rcommaaccent odieresis -10
+KPX rcommaaccent ograve -10
+KPX rcommaaccent ohungarumlaut -10
+KPX rcommaaccent omacron -10
+KPX rcommaaccent oslash -10
+KPX rcommaaccent otilde -10
+KPX rcommaaccent period -134
+KPX rcommaaccent q -14
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/ITCZapfChancery-MediumItalic.afm b/test/user-template/user/psprint/fontmetric/ITCZapfChancery-MediumItalic.afm
new file mode 100644
index 000000000000..90a731a381fe
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/ITCZapfChancery-MediumItalic.afm
@@ -0,0 +1,1551 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 15:04:18 1997
+Comment UniqueID 43081
+Comment VMusage 45650 56675
+FontName ZapfChancery-MediumItalic
+FullName ITC Zapf Chancery Medium Italic
+FamilyName ITC Zapf Chancery
+Weight Medium
+ItalicAngle -14
+IsFixedPitch false
+FontBBox -181 -314 1065 831
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Chancery is a registered trademark of International Typeface Corporation.
+EncodingScheme AdobeStandardEncoding
+CapHeight 708
+XHeight 438
+Ascender 714
+Descender -314
+StdHW 34
+StdVW 70
+StartCharMetrics 314
+C 32 ; WX 220 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 280 ; N exclam ; B 119 -14 353 610 ;
+C 34 ; WX 220 ; N quotedbl ; B 120 343 333 610 ;
+C 35 ; WX 440 ; N numbersign ; B 83 0 521 594 ;
+C 36 ; WX 440 ; N dollar ; B 60 -144 508 709 ;
+C 37 ; WX 680 ; N percent ; B 132 -160 710 700 ;
+C 38 ; WX 780 ; N ampersand ; B 126 -16 915 610 ;
+C 39 ; WX 240 ; N quoteright ; B 168 343 338 610 ;
+C 40 ; WX 260 ; N parenleft ; B 96 -216 411 664 ;
+C 41 ; WX 220 ; N parenright ; B -13 -216 302 664 ;
+C 42 ; WX 420 ; N asterisk ; B 139 263 479 610 ;
+C 43 ; WX 520 ; N plus ; B 117 0 543 426 ;
+C 44 ; WX 220 ; N comma ; B 25 -140 213 148 ;
+C 45 ; WX 280 ; N hyphen ; B 69 190 334 248 ;
+C 46 ; WX 220 ; N period ; B 102 -14 228 128 ;
+C 47 ; WX 340 ; N slash ; B 74 -16 458 610 ;
+C 48 ; WX 440 ; N zero ; B 79 -16 538 610 ;
+C 49 ; WX 440 ; N one ; B 41 0 428 610 ;
+C 50 ; WX 440 ; N two ; B 17 -16 485 610 ;
+C 51 ; WX 440 ; N three ; B 1 -16 485 610 ;
+C 52 ; WX 440 ; N four ; B 77 -35 499 610 ;
+C 53 ; WX 440 ; N five ; B 60 -16 595 679 ;
+C 54 ; WX 440 ; N six ; B 90 -16 556 610 ;
+C 55 ; WX 440 ; N seven ; B 157 -33 561 645 ;
+C 56 ; WX 440 ; N eight ; B 65 -16 529 610 ;
+C 57 ; WX 440 ; N nine ; B 32 -16 517 610 ;
+C 58 ; WX 260 ; N colon ; B 98 -14 296 438 ;
+C 59 ; WX 240 ; N semicolon ; B 29 -140 299 438 ;
+C 60 ; WX 520 ; N less ; B 139 0 527 468 ;
+C 61 ; WX 520 ; N equal ; B 117 86 543 340 ;
+C 62 ; WX 520 ; N greater ; B 139 0 527 468 ;
+C 63 ; WX 380 ; N question ; B 150 -14 455 610 ;
+C 64 ; WX 700 ; N at ; B 127 -16 753 610 ;
+C 65 ; WX 620 ; N A ; B 13 -16 697 632 ;
+C 66 ; WX 600 ; N B ; B 85 -6 674 640 ;
+C 67 ; WX 520 ; N C ; B 93 -16 631 610 ;
+C 68 ; WX 700 ; N D ; B 86 -6 768 640 ;
+C 69 ; WX 620 ; N E ; B 91 -12 709 618 ;
+C 70 ; WX 580 ; N F ; B 120 -118 793 629 ;
+C 71 ; WX 620 ; N G ; B 148 -242 709 610 ;
+C 72 ; WX 680 ; N H ; B 18 -16 878 708 ;
+C 73 ; WX 380 ; N I ; B 99 0 504 594 ;
+C 74 ; WX 400 ; N J ; B -14 -147 538 594 ;
+C 75 ; WX 660 ; N K ; B 53 -153 844 610 ;
+C 76 ; WX 580 ; N L ; B 53 -16 657 610 ;
+C 77 ; WX 840 ; N M ; B 58 -16 1020 722 ;
+C 78 ; WX 700 ; N N ; B 85 -168 915 708 ;
+C 79 ; WX 600 ; N O ; B 94 -16 660 610 ;
+C 80 ; WX 540 ; N P ; B 42 0 658 628 ;
+C 81 ; WX 600 ; N Q ; B 84 -177 775 610 ;
+C 82 ; WX 600 ; N R ; B 58 -168 805 640 ;
+C 83 ; WX 460 ; N S ; B 45 -81 558 610 ;
+C 84 ; WX 500 ; N T ; B 63 0 744 667 ;
+C 85 ; WX 740 ; N U ; B 126 -16 792 617 ;
+C 86 ; WX 640 ; N V ; B 124 -16 810 714 ;
+C 87 ; WX 880 ; N W ; B 94 -16 1046 723 ;
+C 88 ; WX 560 ; N X ; B -30 -16 699 610 ;
+C 89 ; WX 560 ; N Y ; B 41 -168 774 647 ;
+C 90 ; WX 620 ; N Z ; B 42 -19 669 624 ;
+C 91 ; WX 240 ; N bracketleft ; B -13 -207 405 655 ;
+C 92 ; WX 480 ; N backslash ; B 140 -16 524 610 ;
+C 93 ; WX 320 ; N bracketright ; B -27 -207 391 655 ;
+C 94 ; WX 520 ; N asciicircum ; B 132 239 532 594 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 240 ; N quoteleft ; B 169 343 339 610 ;
+C 97 ; WX 420 ; N a ; B 92 -15 485 438 ;
+C 98 ; WX 420 ; N b ; B 82 -23 492 714 ;
+C 99 ; WX 340 ; N c ; B 87 -14 406 438 ;
+C 100 ; WX 440 ; N d ; B 102 -14 651 714 ;
+C 101 ; WX 340 ; N e ; B 87 -14 403 438 ;
+C 102 ; WX 320 ; N f ; B -119 -314 547 714 ; L i fi ; L l fl ;
+C 103 ; WX 400 ; N g ; B -108 -314 503 438 ;
+C 104 ; WX 440 ; N h ; B 55 -14 524 714 ;
+C 105 ; WX 240 ; N i ; B 100 -14 341 635 ;
+C 106 ; WX 220 ; N j ; B -112 -314 332 635 ;
+C 107 ; WX 440 ; N k ; B 87 -184 628 714 ;
+C 108 ; WX 240 ; N l ; B 102 -14 480 714 ;
+C 109 ; WX 620 ; N m ; B 86 -14 704 438 ;
+C 110 ; WX 460 ; N n ; B 101 -14 544 438 ;
+C 111 ; WX 400 ; N o ; B 87 -14 449 438 ;
+C 112 ; WX 440 ; N p ; B -23 -314 484 432 ;
+C 113 ; WX 400 ; N q ; B 87 -300 490 510 ;
+C 114 ; WX 300 ; N r ; B 101 -14 424 438 ;
+C 115 ; WX 320 ; N s ; B 46 -14 403 438 ;
+C 116 ; WX 320 ; N t ; B 106 -14 426 539 ;
+C 117 ; WX 460 ; N u ; B 102 -14 528 438 ;
+C 118 ; WX 440 ; N v ; B 87 -14 533 488 ;
+C 119 ; WX 680 ; N w ; B 87 -14 782 488 ;
+C 120 ; WX 420 ; N x ; B 70 -195 589 438 ;
+C 121 ; WX 400 ; N y ; B -24 -314 483 438 ;
+C 122 ; WX 440 ; N z ; B 26 -14 508 445 ;
+C 123 ; WX 240 ; N braceleft ; B 55 -207 383 655 ;
+C 124 ; WX 520 ; N bar ; B 320 -250 378 750 ;
+C 125 ; WX 240 ; N braceright ; B -10 -207 318 655 ;
+C 126 ; WX 520 ; N asciitilde ; B 123 186 539 320 ;
+C 161 ; WX 280 ; N exclamdown ; B 72 -186 306 438 ;
+C 162 ; WX 440 ; N cent ; B 122 -134 476 543 ;
+C 163 ; WX 440 ; N sterling ; B -16 -52 506 610 ;
+C 164 ; WX 60 ; N fraction ; B -181 -16 320 610 ;
+C 165 ; WX 440 ; N yen ; B -1 -168 613 647 ;
+C 166 ; WX 440 ; N florin ; B -64 -314 582 610 ;
+C 167 ; WX 420 ; N section ; B 53 -215 514 610 ;
+C 168 ; WX 440 ; N currency ; B 50 85 474 509 ;
+C 169 ; WX 160 ; N quotesingle ; B 145 343 215 610 ;
+C 170 ; WX 340 ; N quotedblleft ; B 169 343 464 610 ;
+C 171 ; WX 340 ; N guillemotleft ; B 98 24 356 414 ;
+C 172 ; WX 240 ; N guilsinglleft ; B 98 24 258 414 ;
+C 173 ; WX 260 ; N guilsinglright ; B 106 24 266 414 ;
+C 174 ; WX 520 ; N fi ; B -124 -314 605 714 ;
+C 175 ; WX 520 ; N fl ; B -124 -314 670 714 ;
+C 177 ; WX 500 ; N endash ; B 51 199 565 239 ;
+C 178 ; WX 460 ; N dagger ; B 138 -37 568 610 ;
+C 179 ; WX 480 ; N daggerdbl ; B 138 -59 533 610 ;
+C 180 ; WX 220 ; N periodcentered ; B 139 208 241 310 ;
+C 182 ; WX 500 ; N paragraph ; B 105 -199 638 594 ;
+C 183 ; WX 600 ; N bullet ; B 228 149 524 445 ;
+C 184 ; WX 180 ; N quotesinglbase ; B 21 -121 191 146 ;
+C 185 ; WX 280 ; N quotedblbase ; B -14 -121 281 146 ;
+C 186 ; WX 360 ; N quotedblright ; B 158 343 453 610 ;
+C 187 ; WX 380 ; N guillemotright ; B 117 24 375 414 ;
+C 188 ; WX 1000 ; N ellipsis ; B 124 -14 916 128 ;
+C 189 ; WX 960 ; N perthousand ; B 112 -160 1005 700 ;
+C 191 ; WX 400 ; N questiondown ; B 82 -186 387 438 ;
+C 193 ; WX 220 ; N grave ; B 193 492 339 659 ;
+C 194 ; WX 300 ; N acute ; B 265 492 422 659 ;
+C 195 ; WX 340 ; N circumflex ; B 223 482 443 649 ;
+C 196 ; WX 440 ; N tilde ; B 243 543 522 619 ;
+C 197 ; WX 440 ; N macron ; B 292 544 537 584 ;
+C 198 ; WX 440 ; N breve ; B 253 522 501 631 ;
+C 199 ; WX 220 ; N dotaccent ; B 236 515 342 635 ;
+C 200 ; WX 360 ; N dieresis ; B 233 515 503 635 ;
+C 202 ; WX 300 ; N ring ; B 240 483 416 659 ;
+C 203 ; WX 300 ; N cedilla ; B 12 -191 184 6 ;
+C 205 ; WX 400 ; N hungarumlaut ; B 208 492 495 659 ;
+C 206 ; WX 280 ; N ogonek ; B 114 -191 320 40 ;
+C 207 ; WX 340 ; N caron ; B 254 492 474 659 ;
+C 208 ; WX 1000 ; N emdash ; B 51 199 1065 239 ;
+C 225 ; WX 740 ; N AE ; B -21 -16 799 594 ;
+C 227 ; WX 260 ; N ordfeminine ; B 111 338 386 610 ;
+C 232 ; WX 580 ; N Lslash ; B 49 -16 657 610 ;
+C 233 ; WX 660 ; N Oslash ; B 83 -78 751 672 ;
+C 234 ; WX 820 ; N OE ; B 63 -16 909 610 ;
+C 235 ; WX 260 ; N ordmasculine ; B 128 339 373 610 ;
+C 241 ; WX 540 ; N ae ; B 67 -14 624 468 ;
+C 245 ; WX 240 ; N dotlessi ; B 100 -14 306 438 ;
+C 248 ; WX 300 ; N lslash ; B 74 -14 480 714 ;
+C 249 ; WX 440 ; N oslash ; B 46 -64 540 488 ;
+C 250 ; WX 560 ; N oe ; B 78 -14 628 438 ;
+C 251 ; WX 420 ; N germandbls ; B -127 -314 542 714 ;
+C -1 ; WX 380 ; N Idieresis ; B 99 0 553 762 ;
+C -1 ; WX 340 ; N eacute ; B 87 -14 462 659 ;
+C -1 ; WX 420 ; N abreve ; B 92 -15 501 631 ;
+C -1 ; WX 460 ; N uhungarumlaut ; B 102 -14 565 659 ;
+C -1 ; WX 340 ; N ecaron ; B 87 -14 474 659 ;
+C -1 ; WX 560 ; N Ydieresis ; B 41 -168 774 762 ;
+C -1 ; WX 520 ; N divide ; B 117 -14 543 440 ;
+C -1 ; WX 560 ; N Yacute ; B 41 -168 774 821 ;
+C -1 ; WX 620 ; N Acircumflex ; B 13 -16 697 821 ;
+C -1 ; WX 420 ; N aacute ; B 92 -15 492 659 ;
+C -1 ; WX 740 ; N Ucircumflex ; B 126 -16 792 821 ;
+C -1 ; WX 400 ; N yacute ; B -24 -314 483 659 ;
+C -1 ; WX 320 ; N scommaaccent ; B 42 -304 403 438 ;
+C -1 ; WX 340 ; N ecircumflex ; B 87 -14 433 649 ;
+C -1 ; WX 740 ; N Uring ; B 126 -16 792 831 ;
+C -1 ; WX 740 ; N Udieresis ; B 126 -16 792 762 ;
+C -1 ; WX 420 ; N aogonek ; B 92 -191 485 438 ;
+C -1 ; WX 740 ; N Uacute ; B 126 -16 792 821 ;
+C -1 ; WX 460 ; N uogonek ; B 102 -178 528 438 ;
+C -1 ; WX 620 ; N Edieresis ; B 91 -12 709 762 ;
+C -1 ; WX 700 ; N Dcroat ; B 86 -6 768 640 ;
+C -1 ; WX 180 ; N commaaccent ; B 52 -304 201 -72 ;
+C -1 ; WX 740 ; N copyright ; B 137 -16 763 610 ;
+C -1 ; WX 620 ; N Emacron ; B 91 -12 709 746 ;
+C -1 ; WX 340 ; N ccaron ; B 87 -14 474 659 ;
+C -1 ; WX 420 ; N aring ; B 92 -15 485 659 ;
+C -1 ; WX 700 ; N Ncommaaccent ; B 85 -274 915 708 ;
+C -1 ; WX 240 ; N lacute ; B 102 -14 522 831 ;
+C -1 ; WX 420 ; N agrave ; B 92 -15 485 659 ;
+C -1 ; WX 500 ; N Tcommaaccent ; B 63 -304 744 667 ;
+C -1 ; WX 520 ; N Cacute ; B 93 -16 631 821 ;
+C -1 ; WX 420 ; N atilde ; B 92 -15 522 619 ;
+C -1 ; WX 620 ; N Edotaccent ; B 91 -12 709 762 ;
+C -1 ; WX 320 ; N scaron ; B 46 -14 464 659 ;
+C -1 ; WX 320 ; N scedilla ; B 42 -191 403 438 ;
+C -1 ; WX 240 ; N iacute ; B 100 -14 392 659 ;
+C -1 ; WX 471 ; N lozenge ; B 15 0 457 719 ;
+C -1 ; WX 600 ; N Rcaron ; B 58 -168 805 821 ;
+C -1 ; WX 620 ; N Gcommaaccent ; B 148 -304 709 610 ;
+C -1 ; WX 460 ; N ucircumflex ; B 102 -14 528 649 ;
+C -1 ; WX 420 ; N acircumflex ; B 92 -15 485 649 ;
+C -1 ; WX 620 ; N Amacron ; B 13 -16 717 746 ;
+C -1 ; WX 300 ; N rcaron ; B 101 -14 444 659 ;
+C -1 ; WX 340 ; N ccedilla ; B 62 -191 406 438 ;
+C -1 ; WX 620 ; N Zdotaccent ; B 42 -19 669 762 ;
+C -1 ; WX 540 ; N Thorn ; B 52 0 647 623 ;
+C -1 ; WX 600 ; N Omacron ; B 94 -16 660 746 ;
+C -1 ; WX 600 ; N Racute ; B 58 -168 805 821 ;
+C -1 ; WX 460 ; N Sacute ; B 45 -81 558 821 ;
+C -1 ; WX 490 ; N dcaron ; B 102 -14 651 714 ;
+C -1 ; WX 740 ; N Umacron ; B 126 -16 792 746 ;
+C -1 ; WX 460 ; N uring ; B 102 -14 528 659 ;
+C -1 ; WX 264 ; N threesuperior ; B 59 234 348 610 ;
+C -1 ; WX 600 ; N Ograve ; B 94 -16 660 821 ;
+C -1 ; WX 620 ; N Agrave ; B 13 -16 697 821 ;
+C -1 ; WX 620 ; N Abreve ; B 13 -16 761 793 ;
+C -1 ; WX 520 ; N multiply ; B 133 16 527 410 ;
+C -1 ; WX 460 ; N uacute ; B 102 -14 528 659 ;
+C -1 ; WX 500 ; N Tcaron ; B 63 0 744 821 ;
+C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ;
+C -1 ; WX 400 ; N ydieresis ; B -24 -314 503 610 ;
+C -1 ; WX 700 ; N Nacute ; B 85 -168 915 821 ;
+C -1 ; WX 240 ; N icircumflex ; B 100 -14 363 649 ;
+C -1 ; WX 620 ; N Ecircumflex ; B 91 -12 709 821 ;
+C -1 ; WX 420 ; N adieresis ; B 92 -15 513 610 ;
+C -1 ; WX 340 ; N edieresis ; B 87 -14 483 610 ;
+C -1 ; WX 340 ; N cacute ; B 87 -14 452 659 ;
+C -1 ; WX 460 ; N nacute ; B 101 -14 544 659 ;
+C -1 ; WX 460 ; N umacron ; B 102 -14 528 584 ;
+C -1 ; WX 700 ; N Ncaron ; B 85 -168 915 821 ;
+C -1 ; WX 380 ; N Iacute ; B 99 0 532 821 ;
+C -1 ; WX 520 ; N plusminus ; B 117 0 543 436 ;
+C -1 ; WX 520 ; N brokenbar ; B 320 -175 378 675 ;
+C -1 ; WX 740 ; N registered ; B 137 -16 763 610 ;
+C -1 ; WX 620 ; N Gbreve ; B 148 -242 709 793 ;
+C -1 ; WX 380 ; N Idotaccent ; B 99 0 504 762 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ;
+C -1 ; WX 620 ; N Egrave ; B 91 -12 709 821 ;
+C -1 ; WX 300 ; N racute ; B 101 -14 442 659 ;
+C -1 ; WX 400 ; N omacron ; B 87 -14 507 584 ;
+C -1 ; WX 620 ; N Zacute ; B 42 -19 669 821 ;
+C -1 ; WX 620 ; N Zcaron ; B 42 -19 669 821 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 658 ;
+C -1 ; WX 700 ; N Eth ; B 86 -6 768 640 ;
+C -1 ; WX 520 ; N Ccedilla ; B 93 -191 631 610 ;
+C -1 ; WX 240 ; N lcommaaccent ; B 42 -304 480 714 ;
+C -1 ; WX 320 ; N tcaron ; B 106 -14 501 678 ;
+C -1 ; WX 340 ; N eogonek ; B 87 -191 403 438 ;
+C -1 ; WX 740 ; N Uogonek ; B 126 -191 792 617 ;
+C -1 ; WX 620 ; N Aacute ; B 13 -16 702 821 ;
+C -1 ; WX 620 ; N Adieresis ; B 13 -16 743 762 ;
+C -1 ; WX 340 ; N egrave ; B 87 -14 403 659 ;
+C -1 ; WX 440 ; N zacute ; B 26 -14 512 659 ;
+C -1 ; WX 240 ; N iogonek ; B 94 -191 341 635 ;
+C -1 ; WX 600 ; N Oacute ; B 94 -16 660 821 ;
+C -1 ; WX 400 ; N oacute ; B 87 -14 482 659 ;
+C -1 ; WX 420 ; N amacron ; B 92 -15 507 584 ;
+C -1 ; WX 320 ; N sacute ; B 46 -14 442 659 ;
+C -1 ; WX 240 ; N idieresis ; B 100 -14 403 610 ;
+C -1 ; WX 600 ; N Ocircumflex ; B 94 -16 660 821 ;
+C -1 ; WX 740 ; N Ugrave ; B 126 -16 792 821 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 440 ; N thorn ; B -38 -314 505 714 ;
+C -1 ; WX 264 ; N twosuperior ; B 72 234 354 610 ;
+C -1 ; WX 600 ; N Odieresis ; B 94 -16 660 762 ;
+C -1 ; WX 460 ; N mu ; B 7 -314 523 438 ;
+C -1 ; WX 240 ; N igrave ; B 100 -14 306 659 ;
+C -1 ; WX 400 ; N ohungarumlaut ; B 87 -14 535 659 ;
+C -1 ; WX 620 ; N Eogonek ; B 91 -191 709 618 ;
+C -1 ; WX 440 ; N dcroat ; B 102 -14 651 714 ;
+C -1 ; WX 660 ; N threequarters ; B 39 -16 706 610 ;
+C -1 ; WX 460 ; N Scedilla ; B 45 -251 558 610 ;
+C -1 ; WX 280 ; N lcaron ; B 102 -14 480 714 ;
+C -1 ; WX 660 ; N Kcommaaccent ; B 53 -274 844 610 ;
+C -1 ; WX 580 ; N Lacute ; B 53 -16 657 821 ;
+C -1 ; WX 1000 ; N trademark ; B 127 187 1046 594 ;
+C -1 ; WX 340 ; N edotaccent ; B 87 -14 403 610 ;
+C -1 ; WX 380 ; N Igrave ; B 99 0 504 821 ;
+C -1 ; WX 380 ; N Imacron ; B 99 0 547 746 ;
+C -1 ; WX 580 ; N Lcaron ; B 53 -16 721 610 ;
+C -1 ; WX 660 ; N onehalf ; B 56 -16 702 610 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 658 ;
+C -1 ; WX 400 ; N ocircumflex ; B 87 -14 453 649 ;
+C -1 ; WX 460 ; N ntilde ; B 101 -14 544 619 ;
+C -1 ; WX 740 ; N Uhungarumlaut ; B 126 -16 792 821 ;
+C -1 ; WX 620 ; N Eacute ; B 91 -12 709 821 ;
+C -1 ; WX 340 ; N emacron ; B 87 -14 477 584 ;
+C -1 ; WX 400 ; N gbreve ; B -108 -314 503 631 ;
+C -1 ; WX 660 ; N onequarter ; B 56 -16 702 610 ;
+C -1 ; WX 460 ; N Scaron ; B 45 -81 594 821 ;
+C -1 ; WX 460 ; N Scommaaccent ; B 45 -314 558 610 ;
+C -1 ; WX 600 ; N Ohungarumlaut ; B 94 -16 660 821 ;
+C -1 ; WX 400 ; N degree ; B 171 324 457 610 ;
+C -1 ; WX 400 ; N ograve ; B 87 -14 449 659 ;
+C -1 ; WX 520 ; N Ccaron ; B 93 -16 631 821 ;
+C -1 ; WX 460 ; N ugrave ; B 102 -14 528 659 ;
+C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ;
+C -1 ; WX 700 ; N Dcaron ; B 86 -6 768 821 ;
+C -1 ; WX 300 ; N rcommaaccent ; B 32 -304 424 438 ;
+C -1 ; WX 700 ; N Ntilde ; B 85 -168 915 781 ;
+C -1 ; WX 400 ; N otilde ; B 87 -14 502 619 ;
+C -1 ; WX 600 ; N Rcommaaccent ; B 58 -304 805 640 ;
+C -1 ; WX 580 ; N Lcommaaccent ; B 53 -304 657 610 ;
+C -1 ; WX 620 ; N Atilde ; B 13 -16 702 781 ;
+C -1 ; WX 620 ; N Aogonek ; B 13 -191 697 632 ;
+C -1 ; WX 620 ; N Aring ; B 13 -16 697 831 ;
+C -1 ; WX 600 ; N Otilde ; B 94 -16 660 781 ;
+C -1 ; WX 440 ; N zdotaccent ; B 26 -14 508 610 ;
+C -1 ; WX 620 ; N Ecaron ; B 91 -12 709 821 ;
+C -1 ; WX 380 ; N Iogonek ; B 99 -191 504 594 ;
+C -1 ; WX 440 ; N kcommaaccent ; B 87 -304 628 714 ;
+C -1 ; WX 520 ; N minus ; B 117 184 543 242 ;
+C -1 ; WX 380 ; N Icircumflex ; B 99 0 504 821 ;
+C -1 ; WX 460 ; N ncaron ; B 101 -14 544 659 ;
+C -1 ; WX 320 ; N tcommaaccent ; B 72 -304 426 539 ;
+C -1 ; WX 520 ; N logicalnot ; B 117 86 543 340 ;
+C -1 ; WX 400 ; N odieresis ; B 87 -14 513 610 ;
+C -1 ; WX 460 ; N udieresis ; B 102 -14 528 610 ;
+C -1 ; WX 549 ; N notequal ; B 12 -29 537 541 ;
+C -1 ; WX 400 ; N gcommaaccent ; B -108 -314 506 714 ;
+C -1 ; WX 400 ; N eth ; B 87 -14 522 714 ;
+C -1 ; WX 440 ; N zcaron ; B 26 -14 514 659 ;
+C -1 ; WX 460 ; N ncommaaccent ; B 101 -304 544 438 ;
+C -1 ; WX 264 ; N onesuperior ; B 83 244 311 610 ;
+C -1 ; WX 240 ; N imacron ; B 100 -14 330 584 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 1207
+KPX A C 20
+KPX A Cacute 20
+KPX A Ccaron 20
+KPX A Ccedilla 20
+KPX A G -30
+KPX A Gbreve -30
+KPX A Gcommaaccent -30
+KPX A O 10
+KPX A Oacute 10
+KPX A Ocircumflex 10
+KPX A Odieresis 10
+KPX A Ograve 10
+KPX A Ohungarumlaut 10
+KPX A Omacron 10
+KPX A Oslash 10
+KPX A Otilde 10
+KPX A Q 10
+KPX A T 10
+KPX A Tcaron 10
+KPX A Tcommaaccent 10
+KPX A U -10
+KPX A Uacute -10
+KPX A Ucircumflex -10
+KPX A Udieresis -10
+KPX A Ugrave -10
+KPX A Uhungarumlaut -10
+KPX A Umacron -10
+KPX A Uogonek -10
+KPX A Uring -10
+KPX A quotedblright -40
+KPX A quoteright -40
+KPX Aacute C 20
+KPX Aacute Cacute 20
+KPX Aacute Ccaron 20
+KPX Aacute Ccedilla 20
+KPX Aacute G -30
+KPX Aacute Gbreve -30
+KPX Aacute Gcommaaccent -30
+KPX Aacute O 10
+KPX Aacute Oacute 10
+KPX Aacute Ocircumflex 10
+KPX Aacute Odieresis 10
+KPX Aacute Ograve 10
+KPX Aacute Ohungarumlaut 10
+KPX Aacute Omacron 10
+KPX Aacute Oslash 10
+KPX Aacute Otilde 10
+KPX Aacute Q 10
+KPX Aacute T 10
+KPX Aacute Tcaron 10
+KPX Aacute Tcommaaccent 10
+KPX Aacute U -10
+KPX Aacute Uacute -10
+KPX Aacute Ucircumflex -10
+KPX Aacute Udieresis -10
+KPX Aacute Ugrave -10
+KPX Aacute Uhungarumlaut -10
+KPX Aacute Umacron -10
+KPX Aacute Uogonek -10
+KPX Aacute Uring -10
+KPX Abreve C 20
+KPX Abreve Cacute 20
+KPX Abreve Ccaron 20
+KPX Abreve Ccedilla 20
+KPX Abreve G -30
+KPX Abreve Gbreve -30
+KPX Abreve Gcommaaccent -30
+KPX Abreve O 10
+KPX Abreve Oacute 10
+KPX Abreve Ocircumflex 10
+KPX Abreve Odieresis 10
+KPX Abreve Ograve 10
+KPX Abreve Ohungarumlaut 10
+KPX Abreve Omacron 10
+KPX Abreve Oslash 10
+KPX Abreve Otilde 10
+KPX Abreve Q 10
+KPX Abreve T 10
+KPX Abreve Tcaron 10
+KPX Abreve Tcommaaccent 10
+KPX Abreve U -10
+KPX Abreve Uacute -10
+KPX Abreve Ucircumflex -10
+KPX Abreve Udieresis -10
+KPX Abreve Ugrave -10
+KPX Abreve Uhungarumlaut -10
+KPX Abreve Umacron -10
+KPX Abreve Uogonek -10
+KPX Abreve Uring -10
+KPX Acircumflex C 20
+KPX Acircumflex Cacute 20
+KPX Acircumflex Ccaron 20
+KPX Acircumflex Ccedilla 20
+KPX Acircumflex G -30
+KPX Acircumflex Gbreve -30
+KPX Acircumflex Gcommaaccent -30
+KPX Acircumflex O 10
+KPX Acircumflex Oacute 10
+KPX Acircumflex Ocircumflex 10
+KPX Acircumflex Odieresis 10
+KPX Acircumflex Ograve 10
+KPX Acircumflex Ohungarumlaut 10
+KPX Acircumflex Omacron 10
+KPX Acircumflex Oslash 10
+KPX Acircumflex Otilde 10
+KPX Acircumflex Q 10
+KPX Acircumflex T 10
+KPX Acircumflex Tcaron 10
+KPX Acircumflex Tcommaaccent 10
+KPX Acircumflex U -10
+KPX Acircumflex Uacute -10
+KPX Acircumflex Ucircumflex -10
+KPX Acircumflex Udieresis -10
+KPX Acircumflex Ugrave -10
+KPX Acircumflex Uhungarumlaut -10
+KPX Acircumflex Umacron -10
+KPX Acircumflex Uogonek -10
+KPX Acircumflex Uring -10
+KPX Adieresis C 20
+KPX Adieresis Cacute 20
+KPX Adieresis Ccaron 20
+KPX Adieresis Ccedilla 20
+KPX Adieresis G -30
+KPX Adieresis Gbreve -30
+KPX Adieresis Gcommaaccent -30
+KPX Adieresis O 10
+KPX Adieresis Oacute 10
+KPX Adieresis Ocircumflex 10
+KPX Adieresis Odieresis 10
+KPX Adieresis Ograve 10
+KPX Adieresis Ohungarumlaut 10
+KPX Adieresis Omacron 10
+KPX Adieresis Oslash 10
+KPX Adieresis Otilde 10
+KPX Adieresis Q 10
+KPX Adieresis T 10
+KPX Adieresis Tcaron 10
+KPX Adieresis Tcommaaccent 10
+KPX Adieresis U -10
+KPX Adieresis Uacute -10
+KPX Adieresis Ucircumflex -10
+KPX Adieresis Udieresis -10
+KPX Adieresis Ugrave -10
+KPX Adieresis Uhungarumlaut -10
+KPX Adieresis Umacron -10
+KPX Adieresis Uogonek -10
+KPX Adieresis Uring -10
+KPX Agrave C 20
+KPX Agrave Cacute 20
+KPX Agrave Ccaron 20
+KPX Agrave Ccedilla 20
+KPX Agrave G -30
+KPX Agrave Gbreve -30
+KPX Agrave Gcommaaccent -30
+KPX Agrave O 10
+KPX Agrave Oacute 10
+KPX Agrave Ocircumflex 10
+KPX Agrave Odieresis 10
+KPX Agrave Ograve 10
+KPX Agrave Ohungarumlaut 10
+KPX Agrave Omacron 10
+KPX Agrave Oslash 10
+KPX Agrave Otilde 10
+KPX Agrave Q 10
+KPX Agrave T 10
+KPX Agrave Tcaron 10
+KPX Agrave Tcommaaccent 10
+KPX Agrave U -10
+KPX Agrave Uacute -10
+KPX Agrave Ucircumflex -10
+KPX Agrave Udieresis -10
+KPX Agrave Ugrave -10
+KPX Agrave Uhungarumlaut -10
+KPX Agrave Umacron -10
+KPX Agrave Uogonek -10
+KPX Agrave Uring -10
+KPX Amacron C 20
+KPX Amacron Cacute 20
+KPX Amacron Ccaron 20
+KPX Amacron Ccedilla 20
+KPX Amacron G -30
+KPX Amacron Gbreve -30
+KPX Amacron Gcommaaccent -30
+KPX Amacron O 10
+KPX Amacron Oacute 10
+KPX Amacron Ocircumflex 10
+KPX Amacron Odieresis 10
+KPX Amacron Ograve 10
+KPX Amacron Ohungarumlaut 10
+KPX Amacron Omacron 10
+KPX Amacron Oslash 10
+KPX Amacron Otilde 10
+KPX Amacron Q 10
+KPX Amacron T 10
+KPX Amacron Tcaron 10
+KPX Amacron Tcommaaccent 10
+KPX Amacron U -10
+KPX Amacron Uacute -10
+KPX Amacron Ucircumflex -10
+KPX Amacron Udieresis -10
+KPX Amacron Ugrave -10
+KPX Amacron Uhungarumlaut -10
+KPX Amacron Umacron -10
+KPX Amacron Uogonek -10
+KPX Amacron Uring -10
+KPX Aogonek C 20
+KPX Aogonek Cacute 20
+KPX Aogonek Ccaron 20
+KPX Aogonek Ccedilla 20
+KPX Aogonek G -30
+KPX Aogonek Gbreve -30
+KPX Aogonek Gcommaaccent -30
+KPX Aogonek O 10
+KPX Aogonek Oacute 10
+KPX Aogonek Ocircumflex 10
+KPX Aogonek Odieresis 10
+KPX Aogonek Ograve 10
+KPX Aogonek Ohungarumlaut 10
+KPX Aogonek Omacron 10
+KPX Aogonek Oslash 10
+KPX Aogonek Otilde 10
+KPX Aogonek Q 10
+KPX Aogonek T 10
+KPX Aogonek Tcaron 10
+KPX Aogonek Tcommaaccent 10
+KPX Aogonek U -10
+KPX Aogonek Uacute -10
+KPX Aogonek Ucircumflex -10
+KPX Aogonek Udieresis -10
+KPX Aogonek Ugrave -10
+KPX Aogonek Uhungarumlaut -10
+KPX Aogonek Umacron -10
+KPX Aogonek Uogonek -10
+KPX Aogonek Uring -10
+KPX Aogonek y -10
+KPX Aogonek yacute -10
+KPX Aogonek ydieresis -10
+KPX Aring C 20
+KPX Aring Cacute 20
+KPX Aring Ccaron 20
+KPX Aring Ccedilla 20
+KPX Aring G -30
+KPX Aring Gbreve -30
+KPX Aring Gcommaaccent -30
+KPX Aring O 10
+KPX Aring Oacute 10
+KPX Aring Ocircumflex 10
+KPX Aring Odieresis 10
+KPX Aring Ograve 10
+KPX Aring Ohungarumlaut 10
+KPX Aring Omacron 10
+KPX Aring Oslash 10
+KPX Aring Otilde 10
+KPX Aring Q 10
+KPX Aring T 10
+KPX Aring Tcaron 10
+KPX Aring Tcommaaccent 10
+KPX Aring U -10
+KPX Aring Uacute -10
+KPX Aring Ucircumflex -10
+KPX Aring Udieresis -10
+KPX Aring Ugrave -10
+KPX Aring Uhungarumlaut -10
+KPX Aring Umacron -10
+KPX Aring Uogonek -10
+KPX Aring Uring -10
+KPX Atilde C 20
+KPX Atilde Cacute 20
+KPX Atilde Ccaron 20
+KPX Atilde Ccedilla 20
+KPX Atilde G -30
+KPX Atilde Gbreve -30
+KPX Atilde Gcommaaccent -30
+KPX Atilde O 10
+KPX Atilde Oacute 10
+KPX Atilde Ocircumflex 10
+KPX Atilde Odieresis 10
+KPX Atilde Ograve 10
+KPX Atilde Ohungarumlaut 10
+KPX Atilde Omacron 10
+KPX Atilde Oslash 10
+KPX Atilde Otilde 10
+KPX Atilde Q 10
+KPX Atilde T 10
+KPX Atilde Tcaron 10
+KPX Atilde Tcommaaccent 10
+KPX Atilde U -10
+KPX Atilde Uacute -10
+KPX Atilde Ucircumflex -10
+KPX Atilde Udieresis -10
+KPX Atilde Ugrave -10
+KPX Atilde Uhungarumlaut -10
+KPX Atilde Umacron -10
+KPX Atilde Uogonek -10
+KPX Atilde Uring -10
+KPX D A -10
+KPX D Aacute -10
+KPX D Abreve -10
+KPX D Acircumflex -10
+KPX D Adieresis -10
+KPX D Agrave -10
+KPX D Amacron -10
+KPX D Aogonek -10
+KPX D Aring -10
+KPX D Atilde -10
+KPX D Y 10
+KPX D Yacute 10
+KPX D Ydieresis 10
+KPX D comma -20
+KPX D period -30
+KPX Dcaron A -10
+KPX Dcaron Aacute -10
+KPX Dcaron Abreve -10
+KPX Dcaron Acircumflex -10
+KPX Dcaron Adieresis -10
+KPX Dcaron Agrave -10
+KPX Dcaron Amacron -10
+KPX Dcaron Aogonek -10
+KPX Dcaron Aring -10
+KPX Dcaron Atilde -10
+KPX Dcaron Y 10
+KPX Dcaron Yacute 10
+KPX Dcaron Ydieresis 10
+KPX Dcaron comma -20
+KPX Dcaron period -30
+KPX Dcroat A -10
+KPX Dcroat Aacute -10
+KPX Dcroat Abreve -10
+KPX Dcroat Acircumflex -10
+KPX Dcroat Adieresis -10
+KPX Dcroat Agrave -10
+KPX Dcroat Amacron -10
+KPX Dcroat Aogonek -10
+KPX Dcroat Aring -10
+KPX Dcroat Atilde -10
+KPX Dcroat Y 10
+KPX Dcroat Yacute 10
+KPX Dcroat Ydieresis 10
+KPX Dcroat comma -20
+KPX Dcroat period -30
+KPX F comma -30
+KPX F i 10
+KPX F period -40
+KPX G comma -10
+KPX G period -20
+KPX J comma -10
+KPX J period -20
+KPX K e -20
+KPX K eacute -20
+KPX K ecaron -20
+KPX K ecircumflex -20
+KPX K edieresis -20
+KPX K edotaccent -20
+KPX K egrave -20
+KPX K emacron -20
+KPX K eogonek -20
+KPX K o -20
+KPX K oacute -20
+KPX K ocircumflex -20
+KPX K odieresis -20
+KPX K ograve -20
+KPX K ohungarumlaut -20
+KPX K omacron -20
+KPX K otilde -20
+KPX K u -20
+KPX K uacute -20
+KPX K ucircumflex -20
+KPX K udieresis -20
+KPX K ugrave -20
+KPX K uhungarumlaut -20
+KPX K umacron -20
+KPX K uogonek -20
+KPX K uring -20
+KPX Kcommaaccent e -20
+KPX Kcommaaccent eacute -20
+KPX Kcommaaccent ecaron -20
+KPX Kcommaaccent ecircumflex -20
+KPX Kcommaaccent edieresis -20
+KPX Kcommaaccent edotaccent -20
+KPX Kcommaaccent egrave -20
+KPX Kcommaaccent emacron -20
+KPX Kcommaaccent eogonek -20
+KPX Kcommaaccent o -20
+KPX Kcommaaccent oacute -20
+KPX Kcommaaccent ocircumflex -20
+KPX Kcommaaccent odieresis -20
+KPX Kcommaaccent ograve -20
+KPX Kcommaaccent ohungarumlaut -20
+KPX Kcommaaccent omacron -20
+KPX Kcommaaccent otilde -20
+KPX Kcommaaccent u -20
+KPX Kcommaaccent uacute -20
+KPX Kcommaaccent ucircumflex -20
+KPX Kcommaaccent udieresis -20
+KPX Kcommaaccent ugrave -20
+KPX Kcommaaccent uhungarumlaut -20
+KPX Kcommaaccent umacron -20
+KPX Kcommaaccent uogonek -20
+KPX Kcommaaccent uring -20
+KPX L V -20
+KPX L W -10
+KPX L quotedblright -25
+KPX L quoteright -25
+KPX L y -10
+KPX L yacute -10
+KPX L ydieresis -10
+KPX Lacute V -20
+KPX Lacute W -10
+KPX Lacute quotedblright -25
+KPX Lacute quoteright -25
+KPX Lacute y -10
+KPX Lacute yacute -10
+KPX Lacute ydieresis -10
+KPX Lcommaaccent V -20
+KPX Lcommaaccent W -10
+KPX Lcommaaccent quotedblright -25
+KPX Lcommaaccent quoteright -25
+KPX Lcommaaccent y -10
+KPX Lcommaaccent yacute -10
+KPX Lcommaaccent ydieresis -10
+KPX O A -20
+KPX O Aacute -20
+KPX O Abreve -20
+KPX O Acircumflex -20
+KPX O Adieresis -20
+KPX O Agrave -20
+KPX O Amacron -20
+KPX O Aogonek -20
+KPX O Aring -20
+KPX O Atilde -20
+KPX O T 20
+KPX O Tcaron 20
+KPX O Tcommaaccent 20
+KPX O Y 10
+KPX O Yacute 10
+KPX O Ydieresis 10
+KPX O comma -10
+KPX O period -20
+KPX Oacute A -20
+KPX Oacute Aacute -20
+KPX Oacute Abreve -20
+KPX Oacute Acircumflex -20
+KPX Oacute Adieresis -20
+KPX Oacute Agrave -20
+KPX Oacute Amacron -20
+KPX Oacute Aogonek -20
+KPX Oacute Aring -20
+KPX Oacute Atilde -20
+KPX Oacute T 20
+KPX Oacute Tcaron 20
+KPX Oacute Tcommaaccent 20
+KPX Oacute Y 10
+KPX Oacute Yacute 10
+KPX Oacute Ydieresis 10
+KPX Oacute comma -10
+KPX Oacute period -20
+KPX Ocircumflex A -20
+KPX Ocircumflex Aacute -20
+KPX Ocircumflex Abreve -20
+KPX Ocircumflex Acircumflex -20
+KPX Ocircumflex Adieresis -20
+KPX Ocircumflex Agrave -20
+KPX Ocircumflex Amacron -20
+KPX Ocircumflex Aogonek -20
+KPX Ocircumflex Aring -20
+KPX Ocircumflex Atilde -20
+KPX Ocircumflex T 20
+KPX Ocircumflex Tcaron 20
+KPX Ocircumflex Tcommaaccent 20
+KPX Ocircumflex Y 10
+KPX Ocircumflex Yacute 10
+KPX Ocircumflex Ydieresis 10
+KPX Ocircumflex comma -10
+KPX Ocircumflex period -20
+KPX Odieresis A -20
+KPX Odieresis Aacute -20
+KPX Odieresis Abreve -20
+KPX Odieresis Acircumflex -20
+KPX Odieresis Adieresis -20
+KPX Odieresis Agrave -20
+KPX Odieresis Amacron -20
+KPX Odieresis Aogonek -20
+KPX Odieresis Aring -20
+KPX Odieresis Atilde -20
+KPX Odieresis T 20
+KPX Odieresis Tcaron 20
+KPX Odieresis Tcommaaccent 20
+KPX Odieresis Y 10
+KPX Odieresis Yacute 10
+KPX Odieresis Ydieresis 10
+KPX Odieresis comma -10
+KPX Odieresis period -20
+KPX Ograve A -20
+KPX Ograve Aacute -20
+KPX Ograve Abreve -20
+KPX Ograve Acircumflex -20
+KPX Ograve Adieresis -20
+KPX Ograve Agrave -20
+KPX Ograve Amacron -20
+KPX Ograve Aogonek -20
+KPX Ograve Aring -20
+KPX Ograve Atilde -20
+KPX Ograve T 20
+KPX Ograve Tcaron 20
+KPX Ograve Tcommaaccent 20
+KPX Ograve Y 10
+KPX Ograve Yacute 10
+KPX Ograve Ydieresis 10
+KPX Ograve comma -10
+KPX Ograve period -20
+KPX Ohungarumlaut A -20
+KPX Ohungarumlaut Aacute -20
+KPX Ohungarumlaut Abreve -20
+KPX Ohungarumlaut Acircumflex -20
+KPX Ohungarumlaut Adieresis -20
+KPX Ohungarumlaut Agrave -20
+KPX Ohungarumlaut Amacron -20
+KPX Ohungarumlaut Aogonek -20
+KPX Ohungarumlaut Aring -20
+KPX Ohungarumlaut Atilde -20
+KPX Ohungarumlaut T 20
+KPX Ohungarumlaut Tcaron 20
+KPX Ohungarumlaut Tcommaaccent 20
+KPX Ohungarumlaut Y 10
+KPX Ohungarumlaut Yacute 10
+KPX Ohungarumlaut Ydieresis 10
+KPX Ohungarumlaut comma -10
+KPX Ohungarumlaut period -20
+KPX Omacron A -20
+KPX Omacron Aacute -20
+KPX Omacron Abreve -20
+KPX Omacron Acircumflex -20
+KPX Omacron Adieresis -20
+KPX Omacron Agrave -20
+KPX Omacron Amacron -20
+KPX Omacron Aogonek -20
+KPX Omacron Aring -20
+KPX Omacron Atilde -20
+KPX Omacron T 20
+KPX Omacron Tcaron 20
+KPX Omacron Tcommaaccent 20
+KPX Omacron Y 10
+KPX Omacron Yacute 10
+KPX Omacron Ydieresis 10
+KPX Omacron comma -10
+KPX Omacron period -20
+KPX Oslash A -20
+KPX Oslash Aacute -20
+KPX Oslash Abreve -20
+KPX Oslash Acircumflex -20
+KPX Oslash Adieresis -20
+KPX Oslash Agrave -20
+KPX Oslash Amacron -20
+KPX Oslash Aogonek -20
+KPX Oslash Aring -20
+KPX Oslash Atilde -20
+KPX Oslash T 20
+KPX Oslash Tcaron 20
+KPX Oslash Tcommaaccent 20
+KPX Oslash Y 10
+KPX Oslash Yacute 10
+KPX Oslash Ydieresis 10
+KPX Oslash comma -10
+KPX Oslash period -20
+KPX Otilde A -20
+KPX Otilde Aacute -20
+KPX Otilde Abreve -20
+KPX Otilde Acircumflex -20
+KPX Otilde Adieresis -20
+KPX Otilde Agrave -20
+KPX Otilde Amacron -20
+KPX Otilde Aogonek -20
+KPX Otilde Aring -20
+KPX Otilde Atilde -20
+KPX Otilde T 20
+KPX Otilde Tcaron 20
+KPX Otilde Tcommaaccent 20
+KPX Otilde Y 10
+KPX Otilde Yacute 10
+KPX Otilde Ydieresis 10
+KPX Otilde comma -10
+KPX Otilde period -20
+KPX P A -10
+KPX P Aacute -10
+KPX P Abreve -10
+KPX P Acircumflex -10
+KPX P Adieresis -10
+KPX P Agrave -10
+KPX P Amacron -10
+KPX P Aogonek -10
+KPX P Aring -10
+KPX P Atilde -10
+KPX P a -20
+KPX P aacute -20
+KPX P abreve -20
+KPX P acircumflex -20
+KPX P adieresis -20
+KPX P agrave -20
+KPX P amacron -20
+KPX P aogonek -20
+KPX P aring -20
+KPX P atilde -20
+KPX P comma -40
+KPX P e -10
+KPX P eacute -10
+KPX P ecaron -10
+KPX P ecircumflex -10
+KPX P edieresis -10
+KPX P edotaccent -10
+KPX P egrave -10
+KPX P emacron -10
+KPX P eogonek -10
+KPX P o -10
+KPX P oacute -10
+KPX P ocircumflex -10
+KPX P odieresis -10
+KPX P ograve -10
+KPX P ohungarumlaut -10
+KPX P omacron -10
+KPX P otilde -10
+KPX P period -50
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R T 20
+KPX R Tcaron 20
+KPX R Tcommaaccent 20
+KPX R W 10
+KPX R Y 10
+KPX R Yacute 10
+KPX R Ydieresis 10
+KPX Racute T 20
+KPX Racute Tcaron 20
+KPX Racute Tcommaaccent 20
+KPX Racute W 10
+KPX Racute Y 10
+KPX Racute Yacute 10
+KPX Racute Ydieresis 10
+KPX Rcaron T 20
+KPX Rcaron Tcaron 20
+KPX Rcaron Tcommaaccent 20
+KPX Rcaron W 10
+KPX Rcaron Y 10
+KPX Rcaron Yacute 10
+KPX Rcaron Ydieresis 10
+KPX Rcommaaccent T 20
+KPX Rcommaaccent Tcaron 20
+KPX Rcommaaccent Tcommaaccent 20
+KPX Rcommaaccent W 10
+KPX Rcommaaccent Y 10
+KPX Rcommaaccent Yacute 10
+KPX Rcommaaccent Ydieresis 10
+KPX T A 10
+KPX T Aacute 10
+KPX T Abreve 10
+KPX T Acircumflex 10
+KPX T Adieresis 10
+KPX T Agrave 10
+KPX T Amacron 10
+KPX T Aogonek 10
+KPX T Aring 10
+KPX T Atilde 10
+KPX T O 30
+KPX T Oacute 30
+KPX T Ocircumflex 30
+KPX T Odieresis 30
+KPX T Ograve 30
+KPX T Ohungarumlaut 30
+KPX T Omacron 30
+KPX T Oslash 30
+KPX T Otilde 30
+KPX T a -20
+KPX T aacute -20
+KPX T acircumflex -20
+KPX T agrave -20
+KPX T amacron -20
+KPX T aogonek -20
+KPX T aring -20
+KPX T e -20
+KPX T eacute -20
+KPX T eogonek -20
+KPX T h 20
+KPX T hyphen -20
+KPX T i 20
+KPX T o -20
+KPX T oacute -20
+KPX T ocircumflex -20
+KPX T ohungarumlaut -20
+KPX T omacron -20
+KPX Tcaron A 10
+KPX Tcaron Aacute 10
+KPX Tcaron Abreve 10
+KPX Tcaron Acircumflex 10
+KPX Tcaron Adieresis 10
+KPX Tcaron Agrave 10
+KPX Tcaron Amacron 10
+KPX Tcaron Aogonek 10
+KPX Tcaron Aring 10
+KPX Tcaron Atilde 10
+KPX Tcaron O 30
+KPX Tcaron Oacute 30
+KPX Tcaron Ocircumflex 30
+KPX Tcaron Odieresis 30
+KPX Tcaron Ograve 30
+KPX Tcaron Ohungarumlaut 30
+KPX Tcaron Omacron 30
+KPX Tcaron Oslash 30
+KPX Tcaron Otilde 30
+KPX Tcaron a -20
+KPX Tcaron aacute -20
+KPX Tcaron acircumflex -20
+KPX Tcaron agrave -20
+KPX Tcaron amacron -20
+KPX Tcaron aogonek -20
+KPX Tcaron aring -20
+KPX Tcaron e -20
+KPX Tcaron eacute -20
+KPX Tcaron eogonek -20
+KPX Tcaron hyphen -20
+KPX Tcaron o -20
+KPX Tcaron oacute -20
+KPX Tcaron ocircumflex -20
+KPX Tcaron ohungarumlaut -20
+KPX Tcaron omacron -20
+KPX Tcommaaccent A 10
+KPX Tcommaaccent Aacute 10
+KPX Tcommaaccent Abreve 10
+KPX Tcommaaccent Acircumflex 10
+KPX Tcommaaccent Adieresis 10
+KPX Tcommaaccent Agrave 10
+KPX Tcommaaccent Amacron 10
+KPX Tcommaaccent Aogonek 10
+KPX Tcommaaccent Aring 10
+KPX Tcommaaccent Atilde 10
+KPX Tcommaaccent O 30
+KPX Tcommaaccent Oacute 30
+KPX Tcommaaccent Ocircumflex 30
+KPX Tcommaaccent Odieresis 30
+KPX Tcommaaccent Ograve 30
+KPX Tcommaaccent Ohungarumlaut 30
+KPX Tcommaaccent Omacron 30
+KPX Tcommaaccent Oslash 30
+KPX Tcommaaccent Otilde 30
+KPX Tcommaaccent a -20
+KPX Tcommaaccent aacute -20
+KPX Tcommaaccent acircumflex -20
+KPX Tcommaaccent agrave -20
+KPX Tcommaaccent amacron -20
+KPX Tcommaaccent aogonek -20
+KPX Tcommaaccent aring -20
+KPX Tcommaaccent e -20
+KPX Tcommaaccent eacute -20
+KPX Tcommaaccent eogonek -20
+KPX Tcommaaccent hyphen -20
+KPX Tcommaaccent o -20
+KPX Tcommaaccent oacute -20
+KPX Tcommaaccent ocircumflex -20
+KPX Tcommaaccent ohungarumlaut -20
+KPX Tcommaaccent omacron -20
+KPX V G -20
+KPX V Gbreve -20
+KPX V Gcommaaccent -20
+KPX V O 10
+KPX V Oacute 10
+KPX V Ocircumflex 10
+KPX V Odieresis 10
+KPX V Ograve 10
+KPX V Ohungarumlaut 10
+KPX V Omacron 10
+KPX V Oslash 10
+KPX V Otilde 10
+KPX V a -20
+KPX V aacute -20
+KPX V abreve -20
+KPX V acircumflex -20
+KPX V adieresis -20
+KPX V agrave -20
+KPX V amacron -20
+KPX V aogonek -20
+KPX V aring -20
+KPX V atilde -20
+KPX V comma -90
+KPX V e -20
+KPX V eacute -20
+KPX V ecaron -20
+KPX V ecircumflex -20
+KPX V edieresis -20
+KPX V edotaccent -20
+KPX V egrave -20
+KPX V emacron -20
+KPX V eogonek -20
+KPX V o -20
+KPX V oacute -20
+KPX V ocircumflex -20
+KPX V odieresis -20
+KPX V ograve -20
+KPX V ohungarumlaut -20
+KPX V omacron -20
+KPX V otilde -20
+KPX V period -100
+KPX W O 10
+KPX W Oacute 10
+KPX W Ocircumflex 10
+KPX W Odieresis 10
+KPX W Ograve 10
+KPX W Ohungarumlaut 10
+KPX W Omacron 10
+KPX W Oslash 10
+KPX W Otilde 10
+KPX W a -20
+KPX W aacute -20
+KPX W abreve -20
+KPX W acircumflex -20
+KPX W adieresis -20
+KPX W agrave -20
+KPX W amacron -20
+KPX W aogonek -20
+KPX W aring -20
+KPX W atilde -20
+KPX W comma -40
+KPX W e -20
+KPX W eacute -20
+KPX W ecaron -20
+KPX W ecircumflex -20
+KPX W edieresis -20
+KPX W edotaccent -20
+KPX W egrave -20
+KPX W emacron -20
+KPX W eogonek -20
+KPX W h 10
+KPX W i 10
+KPX W o -20
+KPX W oacute -20
+KPX W ocircumflex -20
+KPX W odieresis -20
+KPX W ograve -20
+KPX W ohungarumlaut -20
+KPX W omacron -20
+KPX W otilde -20
+KPX W period -50
+KPX Y a -60
+KPX Y aacute -60
+KPX Y abreve -60
+KPX Y acircumflex -20
+KPX Y adieresis -20
+KPX Y agrave -20
+KPX Y amacron -20
+KPX Y aogonek -60
+KPX Y aring -60
+KPX Y atilde -20
+KPX Y comma -40
+KPX Y e -40
+KPX Y eacute -40
+KPX Y ecaron -40
+KPX Y edotaccent -40
+KPX Y eogonek -40
+KPX Y i 10
+KPX Y iacute 10
+KPX Y icircumflex 30
+KPX Y idieresis 30
+KPX Y igrave 30
+KPX Y imacron 30
+KPX Y iogonek 10
+KPX Y o -50
+KPX Y oacute -20
+KPX Y ocircumflex -20
+KPX Y odieresis -20
+KPX Y ograve -20
+KPX Y ohungarumlaut -20
+KPX Y omacron -20
+KPX Y otilde -20
+KPX Y period -50
+KPX Y u -20
+KPX Y uacute -20
+KPX Y ucircumflex -20
+KPX Y udieresis -20
+KPX Y ugrave -20
+KPX Y uhungarumlaut -20
+KPX Y umacron -20
+KPX Y uogonek -20
+KPX Y uring -20
+KPX Yacute a -60
+KPX Yacute aacute -60
+KPX Yacute abreve -60
+KPX Yacute acircumflex -60
+KPX Yacute adieresis -20
+KPX Yacute agrave -20
+KPX Yacute amacron -20
+KPX Yacute aogonek -60
+KPX Yacute aring -60
+KPX Yacute atilde -20
+KPX Yacute comma -40
+KPX Yacute e -40
+KPX Yacute eacute -40
+KPX Yacute ecaron -40
+KPX Yacute ecircumflex -40
+KPX Yacute edotaccent -40
+KPX Yacute eogonek -40
+KPX Yacute i 10
+KPX Yacute iacute 10
+KPX Yacute icircumflex 10
+KPX Yacute idieresis 30
+KPX Yacute igrave 30
+KPX Yacute imacron 30
+KPX Yacute iogonek 10
+KPX Yacute o -50
+KPX Yacute oacute -50
+KPX Yacute ocircumflex -20
+KPX Yacute odieresis -20
+KPX Yacute ograve -20
+KPX Yacute ohungarumlaut -50
+KPX Yacute omacron -20
+KPX Yacute otilde -20
+KPX Yacute period -50
+KPX Yacute u -20
+KPX Yacute uacute -20
+KPX Yacute ucircumflex -20
+KPX Yacute udieresis -20
+KPX Yacute ugrave -20
+KPX Yacute uhungarumlaut -20
+KPX Yacute umacron -20
+KPX Yacute uogonek -20
+KPX Yacute uring -20
+KPX Ydieresis a -60
+KPX Ydieresis aacute -60
+KPX Ydieresis abreve -60
+KPX Ydieresis acircumflex -20
+KPX Ydieresis adieresis -20
+KPX Ydieresis agrave -20
+KPX Ydieresis amacron -20
+KPX Ydieresis aogonek -60
+KPX Ydieresis aring -60
+KPX Ydieresis atilde -20
+KPX Ydieresis comma -40
+KPX Ydieresis e -40
+KPX Ydieresis eacute -40
+KPX Ydieresis ecaron -40
+KPX Ydieresis ecircumflex -40
+KPX Ydieresis edotaccent -40
+KPX Ydieresis eogonek -40
+KPX Ydieresis i 10
+KPX Ydieresis iacute 10
+KPX Ydieresis icircumflex 30
+KPX Ydieresis idieresis 30
+KPX Ydieresis igrave 30
+KPX Ydieresis imacron 30
+KPX Ydieresis iogonek 10
+KPX Ydieresis o -50
+KPX Ydieresis oacute -50
+KPX Ydieresis ocircumflex -50
+KPX Ydieresis odieresis -20
+KPX Ydieresis ograve -20
+KPX Ydieresis ohungarumlaut -50
+KPX Ydieresis omacron -20
+KPX Ydieresis otilde -20
+KPX Ydieresis period -50
+KPX Ydieresis u -20
+KPX Ydieresis uacute -20
+KPX Ydieresis ucircumflex -20
+KPX Ydieresis udieresis -20
+KPX Ydieresis ugrave -20
+KPX Ydieresis uhungarumlaut -20
+KPX Ydieresis umacron -20
+KPX Ydieresis uogonek -20
+KPX Ydieresis uring -20
+KPX b b -20
+KPX b comma -20
+KPX b l -20
+KPX b lacute -20
+KPX b lcommaaccent -20
+KPX b period -30
+KPX c k -10
+KPX c kcommaaccent -10
+KPX cacute k -10
+KPX cacute kcommaaccent -10
+KPX ccaron k -10
+KPX ccaron kcommaaccent -10
+KPX ccedilla k -10
+KPX ccedilla kcommaaccent -10
+KPX comma quotedblright -70
+KPX comma quoteright -70
+KPX d d -40
+KPX d v -10
+KPX d w -20
+KPX e y 10
+KPX e yacute 10
+KPX e ydieresis 10
+KPX eacute y 10
+KPX eacute yacute 10
+KPX eacute ydieresis 10
+KPX ecaron y 10
+KPX ecaron yacute 10
+KPX ecaron ydieresis 10
+KPX ecircumflex y 10
+KPX ecircumflex yacute 10
+KPX ecircumflex ydieresis 10
+KPX edieresis y 10
+KPX edieresis yacute 10
+KPX edieresis ydieresis 10
+KPX edotaccent y 10
+KPX edotaccent yacute 10
+KPX edotaccent ydieresis 10
+KPX egrave y 10
+KPX egrave yacute 10
+KPX egrave ydieresis 10
+KPX emacron y 10
+KPX emacron yacute 10
+KPX emacron ydieresis 10
+KPX eogonek y 10
+KPX eogonek yacute 10
+KPX eogonek ydieresis 10
+KPX f a -20
+KPX f aacute -20
+KPX f abreve -20
+KPX f acircumflex -20
+KPX f adieresis -20
+KPX f agrave -20
+KPX f amacron -20
+KPX f aogonek -20
+KPX f aring -20
+KPX f atilde -20
+KPX f comma -40
+KPX f e -10
+KPX f eacute -10
+KPX f ecaron -10
+KPX f ecircumflex -10
+KPX f edieresis -10
+KPX f edotaccent -10
+KPX f egrave -10
+KPX f emacron -10
+KPX f eogonek -10
+KPX f f -50
+KPX f period -50
+KPX f quotedblright 30
+KPX f quoteright 30
+KPX g a 10
+KPX g comma -20
+KPX g e 10
+KPX g i 10
+KPX g period -30
+KPX g y 10
+KPX k e -20
+KPX k eacute -20
+KPX k ecaron -20
+KPX k ecircumflex -20
+KPX k edieresis -20
+KPX k edotaccent -20
+KPX k egrave -20
+KPX k emacron -20
+KPX k eogonek -20
+KPX k o -10
+KPX k oacute -10
+KPX k ocircumflex -10
+KPX k odieresis -10
+KPX k ograve -10
+KPX k ohungarumlaut -10
+KPX k omacron -10
+KPX k otilde -10
+KPX k y 10
+KPX kcommaaccent e -20
+KPX kcommaaccent eacute -20
+KPX kcommaaccent ecaron -20
+KPX kcommaaccent ecircumflex -20
+KPX kcommaaccent edieresis -20
+KPX kcommaaccent edotaccent -20
+KPX kcommaaccent egrave -20
+KPX kcommaaccent emacron -20
+KPX kcommaaccent eogonek -20
+KPX kcommaaccent o -10
+KPX kcommaaccent oacute -10
+KPX kcommaaccent ocircumflex -10
+KPX kcommaaccent odieresis -10
+KPX kcommaaccent ograve -10
+KPX kcommaaccent ohungarumlaut -10
+KPX kcommaaccent omacron -10
+KPX kcommaaccent otilde -10
+KPX m u 10
+KPX m uacute 10
+KPX m ucircumflex 10
+KPX m udieresis 10
+KPX m ugrave 10
+KPX m uhungarumlaut 10
+KPX m umacron 10
+KPX m uogonek 10
+KPX m uring 10
+KPX m y 10
+KPX m yacute 10
+KPX m ydieresis 10
+KPX n y 20
+KPX n yacute 20
+KPX n ydieresis 20
+KPX nacute y 20
+KPX nacute yacute 20
+KPX nacute ydieresis 20
+KPX ncaron y 20
+KPX ncaron yacute 20
+KPX ncaron ydieresis 20
+KPX ncommaaccent y 20
+KPX ncommaaccent yacute 20
+KPX ncommaaccent ydieresis 20
+KPX ntilde y 20
+KPX ntilde yacute 20
+KPX ntilde ydieresis 20
+KPX o comma -20
+KPX o period -30
+KPX oacute comma -20
+KPX oacute period -30
+KPX ocircumflex comma -20
+KPX ocircumflex period -30
+KPX odieresis comma -20
+KPX odieresis period -30
+KPX ograve comma -20
+KPX ograve period -30
+KPX ohungarumlaut comma -20
+KPX ohungarumlaut period -30
+KPX omacron comma -20
+KPX omacron period -30
+KPX otilde comma -20
+KPX otilde period -30
+KPX p comma -20
+KPX p p -10
+KPX p period -30
+KPX period quotedblright -80
+KPX period quoteright -80
+KPX quotedblleft A 10
+KPX quotedblleft quoteleft 20
+KPX quoteleft A 10
+KPX quoteleft quoteleft -115
+KPX quoteright l 20
+KPX quoteright quotedblright 20
+KPX quoteright quoteright -115
+KPX quoteright r 30
+KPX quoteright racute 30
+KPX quoteright rcaron 30
+KPX quoteright rcommaaccent 30
+KPX quoteright s -25
+KPX quoteright sacute -25
+KPX quoteright scaron -25
+KPX quoteright scedilla -25
+KPX quoteright scommaaccent -25
+KPX quoteright t 20
+KPX quoteright v 30
+KPX r comma -40
+KPX r i 10
+KPX r iacute 10
+KPX r icircumflex 10
+KPX r idieresis 10
+KPX r igrave 10
+KPX r imacron 10
+KPX r iogonek 10
+KPX r period -50
+KPX racute comma -40
+KPX racute i 10
+KPX racute iacute 10
+KPX racute icircumflex 10
+KPX racute idieresis 10
+KPX racute igrave 10
+KPX racute imacron 10
+KPX racute iogonek 10
+KPX racute period -50
+KPX rcaron comma -40
+KPX rcaron i 10
+KPX rcaron iacute 10
+KPX rcaron icircumflex 10
+KPX rcaron idieresis 10
+KPX rcaron igrave 10
+KPX rcaron imacron 10
+KPX rcaron iogonek 10
+KPX rcaron period -50
+KPX rcommaaccent comma -40
+KPX rcommaaccent i 10
+KPX rcommaaccent iacute 10
+KPX rcommaaccent icircumflex 10
+KPX rcommaaccent idieresis 10
+KPX rcommaaccent igrave 10
+KPX rcommaaccent imacron 10
+KPX rcommaaccent iogonek 10
+KPX rcommaaccent period -50
+KPX s comma -10
+KPX s period -20
+KPX sacute comma -10
+KPX sacute period -20
+KPX scaron comma -10
+KPX scaron period -20
+KPX scedilla comma -10
+KPX scedilla period -20
+KPX scommaaccent comma -10
+KPX scommaaccent period -20
+KPX v comma -20
+KPX v period -30
+KPX w comma -20
+KPX w h 20
+KPX w o 10
+KPX w oacute 10
+KPX w ocircumflex 10
+KPX w odieresis 10
+KPX w ograve 10
+KPX w ohungarumlaut 10
+KPX w omacron 10
+KPX w otilde 10
+KPX w period -30
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Bold.afm b/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Bold.afm
new file mode 100644
index 000000000000..58e44a9a3188
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Bold.afm
@@ -0,0 +1,1549 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1988, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 14:22:15 1997
+Comment UniqueID 43095
+Comment VMusage 44510 55535
+FontName NewCenturySchlbk-Bold
+FullName New Century Schoolbook Bold
+FamilyName New Century Schoolbook
+Weight Bold
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -165 -250 1000 988
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1988, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 722
+XHeight 475
+Ascender 737
+Descender -205
+StdHW 54
+StdVW 154
+StartCharMetrics 314
+C 32 ; WX 287 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 296 ; N exclam ; B 53 -15 243 737 ;
+C 34 ; WX 333 ; N quotedbl ; B 0 378 333 737 ;
+C 35 ; WX 574 ; N numbersign ; B 36 0 538 690 ;
+C 36 ; WX 574 ; N dollar ; B 25 -141 549 810 ;
+C 37 ; WX 833 ; N percent ; B 14 -15 819 705 ;
+C 38 ; WX 852 ; N ampersand ; B 34 -15 818 737 ;
+C 39 ; WX 241 ; N quoteright ; B 22 378 220 737 ;
+C 40 ; WX 389 ; N parenleft ; B 77 -117 345 745 ;
+C 41 ; WX 389 ; N parenright ; B 44 -117 312 745 ;
+C 42 ; WX 500 ; N asterisk ; B 54 302 446 737 ;
+C 43 ; WX 606 ; N plus ; B 50 0 556 506 ;
+C 44 ; WX 278 ; N comma ; B 40 -184 238 175 ;
+C 45 ; WX 333 ; N hyphen ; B 42 174 291 302 ;
+C 46 ; WX 278 ; N period ; B 44 -15 234 175 ;
+C 47 ; WX 278 ; N slash ; B -42 -15 320 737 ;
+C 48 ; WX 574 ; N zero ; B 27 -15 547 705 ;
+C 49 ; WX 574 ; N one ; B 83 0 491 705 ;
+C 50 ; WX 574 ; N two ; B 19 0 531 705 ;
+C 51 ; WX 574 ; N three ; B 23 -15 531 705 ;
+C 52 ; WX 574 ; N four ; B 19 0 547 705 ;
+C 53 ; WX 574 ; N five ; B 32 -15 534 705 ;
+C 54 ; WX 574 ; N six ; B 27 -15 547 705 ;
+C 55 ; WX 574 ; N seven ; B 45 -15 547 705 ;
+C 56 ; WX 574 ; N eight ; B 27 -15 548 705 ;
+C 57 ; WX 574 ; N nine ; B 27 -15 547 705 ;
+C 58 ; WX 278 ; N colon ; B 44 -15 234 485 ;
+C 59 ; WX 278 ; N semicolon ; B 40 -184 238 485 ;
+C 60 ; WX 606 ; N less ; B 50 -9 556 515 ;
+C 61 ; WX 606 ; N equal ; B 50 103 556 403 ;
+C 62 ; WX 606 ; N greater ; B 50 -9 556 515 ;
+C 63 ; WX 500 ; N question ; B 23 -15 477 737 ;
+C 64 ; WX 747 ; N at ; B -2 -15 750 737 ;
+C 65 ; WX 759 ; N A ; B -19 0 778 737 ;
+C 66 ; WX 778 ; N B ; B 19 0 739 722 ;
+C 67 ; WX 778 ; N C ; B 39 -15 723 737 ;
+C 68 ; WX 833 ; N D ; B 19 0 794 722 ;
+C 69 ; WX 759 ; N E ; B 19 0 708 722 ;
+C 70 ; WX 722 ; N F ; B 19 0 697 722 ;
+C 71 ; WX 833 ; N G ; B 39 -15 818 737 ;
+C 72 ; WX 870 ; N H ; B 19 0 851 722 ;
+C 73 ; WX 444 ; N I ; B 29 0 415 722 ;
+C 74 ; WX 648 ; N J ; B 6 -15 642 722 ;
+C 75 ; WX 815 ; N K ; B 19 0 822 722 ;
+C 76 ; WX 722 ; N L ; B 19 0 703 722 ;
+C 77 ; WX 981 ; N M ; B 10 0 971 722 ;
+C 78 ; WX 833 ; N N ; B 5 -10 828 722 ;
+C 79 ; WX 833 ; N O ; B 39 -15 794 737 ;
+C 80 ; WX 759 ; N P ; B 24 0 735 722 ;
+C 81 ; WX 833 ; N Q ; B 39 -189 808 737 ;
+C 82 ; WX 815 ; N R ; B 19 -15 815 722 ;
+C 83 ; WX 667 ; N S ; B 51 -15 634 737 ;
+C 84 ; WX 722 ; N T ; B 16 0 706 722 ;
+C 85 ; WX 833 ; N U ; B 14 -15 825 722 ;
+C 86 ; WX 759 ; N V ; B -19 -10 778 722 ;
+C 87 ; WX 981 ; N W ; B 7 -10 974 722 ;
+C 88 ; WX 722 ; N X ; B -12 0 734 722 ;
+C 89 ; WX 722 ; N Y ; B -12 0 734 722 ;
+C 90 ; WX 667 ; N Z ; B 28 0 639 722 ;
+C 91 ; WX 389 ; N bracketleft ; B 84 -109 339 737 ;
+C 92 ; WX 606 ; N backslash ; B 122 -15 484 737 ;
+C 93 ; WX 389 ; N bracketright ; B 50 -109 305 737 ;
+C 94 ; WX 606 ; N asciicircum ; B 66 325 540 690 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 241 ; N quoteleft ; B 22 378 220 737 ;
+C 97 ; WX 611 ; N a ; B 40 -15 601 485 ;
+C 98 ; WX 648 ; N b ; B 4 -15 616 737 ;
+C 99 ; WX 556 ; N c ; B 32 -15 524 485 ;
+C 100 ; WX 667 ; N d ; B 32 -15 644 737 ;
+C 101 ; WX 574 ; N e ; B 32 -15 542 485 ;
+C 102 ; WX 389 ; N f ; B 11 0 461 737 ; L i fi ; L l fl ;
+C 103 ; WX 611 ; N g ; B 30 -205 623 535 ;
+C 104 ; WX 685 ; N h ; B 17 0 662 737 ;
+C 105 ; WX 370 ; N i ; B 26 0 338 737 ;
+C 106 ; WX 352 ; N j ; B -86 -205 271 737 ;
+C 107 ; WX 667 ; N k ; B 17 0 662 737 ;
+C 108 ; WX 352 ; N l ; B 17 0 329 737 ;
+C 109 ; WX 963 ; N m ; B 17 0 940 485 ;
+C 110 ; WX 685 ; N n ; B 17 0 662 485 ;
+C 111 ; WX 611 ; N o ; B 32 -15 579 485 ;
+C 112 ; WX 667 ; N p ; B 17 -205 629 485 ;
+C 113 ; WX 648 ; N q ; B 32 -205 638 485 ;
+C 114 ; WX 519 ; N r ; B 17 0 516 485 ;
+C 115 ; WX 500 ; N s ; B 48 -15 476 485 ;
+C 116 ; WX 426 ; N t ; B 21 -15 405 675 ;
+C 117 ; WX 685 ; N u ; B 17 -15 668 475 ;
+C 118 ; WX 611 ; N v ; B 12 -10 599 475 ;
+C 119 ; WX 889 ; N w ; B 16 -10 873 475 ;
+C 120 ; WX 611 ; N x ; B 12 0 599 475 ;
+C 121 ; WX 611 ; N y ; B 12 -205 599 475 ;
+C 122 ; WX 537 ; N z ; B 38 0 499 475 ;
+C 123 ; WX 389 ; N braceleft ; B 36 -109 313 737 ;
+C 124 ; WX 606 ; N bar ; B 249 -250 357 750 ;
+C 125 ; WX 389 ; N braceright ; B 76 -109 353 737 ;
+C 126 ; WX 606 ; N asciitilde ; B 72 160 534 346 ;
+C 161 ; WX 296 ; N exclamdown ; B 53 -205 243 547 ;
+C 162 ; WX 574 ; N cent ; B 32 -102 528 572 ;
+C 163 ; WX 574 ; N sterling ; B 16 -15 558 705 ;
+C 164 ; WX 167 ; N fraction ; B -165 -15 332 705 ;
+C 165 ; WX 574 ; N yen ; B -10 0 584 690 ;
+C 166 ; WX 574 ; N florin ; B 14 -205 548 737 ;
+C 167 ; WX 500 ; N section ; B 62 -86 438 737 ;
+C 168 ; WX 574 ; N currency ; B 27 84 547 605 ;
+C 169 ; WX 241 ; N quotesingle ; B 53 378 189 737 ;
+C 170 ; WX 481 ; N quotedblleft ; B 22 378 459 737 ;
+C 171 ; WX 500 ; N guillemotleft ; B 46 79 454 397 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 62 79 271 397 ;
+C 173 ; WX 333 ; N guilsinglright ; B 62 79 271 397 ;
+C 174 ; WX 685 ; N fi ; B 11 0 666 737 ;
+C 175 ; WX 685 ; N fl ; B 11 0 666 737 ;
+C 177 ; WX 500 ; N endash ; B 0 184 500 292 ;
+C 178 ; WX 500 ; N dagger ; B 39 -101 461 737 ;
+C 179 ; WX 500 ; N daggerdbl ; B 39 -89 461 737 ;
+C 180 ; WX 278 ; N periodcentered ; B 53 200 225 372 ;
+C 182 ; WX 747 ; N paragraph ; B 96 -71 631 722 ;
+C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ;
+C 184 ; WX 241 ; N quotesinglbase ; B 22 -184 220 175 ;
+C 185 ; WX 481 ; N quotedblbase ; B 22 -184 459 175 ;
+C 186 ; WX 481 ; N quotedblright ; B 22 378 459 737 ;
+C 187 ; WX 500 ; N guillemotright ; B 46 79 454 397 ;
+C 188 ; WX 1000 ; N ellipsis ; B 72 -15 928 175 ;
+C 189 ; WX 1000 ; N perthousand ; B 7 -15 993 705 ;
+C 191 ; WX 500 ; N questiondown ; B 23 -205 477 547 ;
+C 193 ; WX 333 ; N grave ; B 2 547 249 737 ;
+C 194 ; WX 333 ; N acute ; B 84 547 331 737 ;
+C 195 ; WX 333 ; N circumflex ; B -10 547 344 725 ;
+C 196 ; WX 333 ; N tilde ; B -24 563 357 705 ;
+C 197 ; WX 333 ; N macron ; B -6 582 339 664 ;
+C 198 ; WX 333 ; N breve ; B 9 547 324 714 ;
+C 199 ; WX 333 ; N dotaccent ; B 95 565 267 737 ;
+C 200 ; WX 333 ; N dieresis ; B -12 565 345 707 ;
+C 202 ; WX 333 ; N ring ; B 58 545 274 761 ;
+C 203 ; WX 333 ; N cedilla ; B 17 -224 248 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B -16 547 431 737 ;
+C 206 ; WX 333 ; N ogonek ; B 72 -220 330 4 ;
+C 207 ; WX 333 ; N caron ; B -10 547 344 725 ;
+C 208 ; WX 1000 ; N emdash ; B 0 184 1000 292 ;
+C 225 ; WX 981 ; N AE ; B -29 0 963 722 ;
+C 227 ; WX 367 ; N ordfeminine ; B 1 407 393 705 ;
+C 232 ; WX 722 ; N Lslash ; B 19 0 703 722 ;
+C 233 ; WX 833 ; N Oslash ; B 39 -53 794 775 ;
+C 234 ; WX 1000 ; N OE ; B 0 0 982 722 ;
+C 235 ; WX 367 ; N ordmasculine ; B 1 407 366 705 ;
+C 241 ; WX 870 ; N ae ; B 32 -15 838 485 ;
+C 245 ; WX 370 ; N dotlessi ; B 26 0 338 475 ;
+C 248 ; WX 352 ; N lslash ; B 17 0 329 737 ;
+C 249 ; WX 611 ; N oslash ; B 32 -103 579 573 ;
+C 250 ; WX 907 ; N oe ; B 32 -15 875 485 ;
+C 251 ; WX 611 ; N germandbls ; B -2 -15 580 737 ;
+C -1 ; WX 444 ; N Idieresis ; B 29 0 415 921 ;
+C -1 ; WX 574 ; N eacute ; B 32 -15 542 737 ;
+C -1 ; WX 611 ; N abreve ; B 40 -15 601 714 ;
+C -1 ; WX 685 ; N uhungarumlaut ; B 17 -15 668 737 ;
+C -1 ; WX 574 ; N ecaron ; B 32 -15 542 725 ;
+C -1 ; WX 722 ; N Ydieresis ; B -12 0 734 921 ;
+C -1 ; WX 606 ; N divide ; B 50 -40 556 546 ;
+C -1 ; WX 722 ; N Yacute ; B -12 0 734 964 ;
+C -1 ; WX 759 ; N Acircumflex ; B -19 0 778 952 ;
+C -1 ; WX 611 ; N aacute ; B 40 -15 601 737 ;
+C -1 ; WX 833 ; N Ucircumflex ; B 14 -15 825 952 ;
+C -1 ; WX 611 ; N yacute ; B 12 -205 599 737 ;
+C -1 ; WX 500 ; N scommaaccent ; B 48 -250 476 485 ;
+C -1 ; WX 574 ; N ecircumflex ; B 32 -15 542 725 ;
+C -1 ; WX 833 ; N Uring ; B 14 -15 825 988 ;
+C -1 ; WX 833 ; N Udieresis ; B 14 -15 825 921 ;
+C -1 ; WX 611 ; N aogonek ; B 40 -231 628 485 ;
+C -1 ; WX 833 ; N Uacute ; B 14 -15 825 964 ;
+C -1 ; WX 685 ; N uogonek ; B 17 -220 670 475 ;
+C -1 ; WX 759 ; N Edieresis ; B 19 0 708 921 ;
+C -1 ; WX 833 ; N Dcroat ; B 19 0 794 722 ;
+C -1 ; WX 250 ; N commaaccent ; B 45 -250 187 -50 ;
+C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ;
+C -1 ; WX 759 ; N Emacron ; B 19 0 708 891 ;
+C -1 ; WX 556 ; N ccaron ; B 32 -15 524 725 ;
+C -1 ; WX 611 ; N aring ; B 40 -15 601 761 ;
+C -1 ; WX 833 ; N Ncommaaccent ; B 5 -230 828 722 ;
+C -1 ; WX 352 ; N lacute ; B 17 0 341 964 ;
+C -1 ; WX 611 ; N agrave ; B 40 -15 601 737 ;
+C -1 ; WX 722 ; N Tcommaaccent ; B 16 -250 706 722 ;
+C -1 ; WX 778 ; N Cacute ; B 39 -15 723 964 ;
+C -1 ; WX 611 ; N atilde ; B 40 -15 601 705 ;
+C -1 ; WX 759 ; N Edotaccent ; B 19 0 708 951 ;
+C -1 ; WX 500 ; N scaron ; B 48 -15 476 725 ;
+C -1 ; WX 500 ; N scedilla ; B 48 -224 476 485 ;
+C -1 ; WX 370 ; N iacute ; B 26 0 350 737 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 815 ; N Rcaron ; B 19 -15 815 952 ;
+C -1 ; WX 833 ; N Gcommaaccent ; B 39 -250 818 737 ;
+C -1 ; WX 685 ; N ucircumflex ; B 17 -15 668 725 ;
+C -1 ; WX 611 ; N acircumflex ; B 40 -15 601 725 ;
+C -1 ; WX 759 ; N Amacron ; B -19 0 778 891 ;
+C -1 ; WX 519 ; N rcaron ; B 17 0 516 725 ;
+C -1 ; WX 556 ; N ccedilla ; B 32 -224 524 485 ;
+C -1 ; WX 667 ; N Zdotaccent ; B 28 0 639 951 ;
+C -1 ; WX 759 ; N Thorn ; B 24 0 735 722 ;
+C -1 ; WX 833 ; N Omacron ; B 39 -15 794 891 ;
+C -1 ; WX 815 ; N Racute ; B 19 -15 815 964 ;
+C -1 ; WX 667 ; N Sacute ; B 51 -15 634 964 ;
+C -1 ; WX 747 ; N dcaron ; B 32 -15 748 737 ;
+C -1 ; WX 833 ; N Umacron ; B 14 -15 825 891 ;
+C -1 ; WX 685 ; N uring ; B 17 -15 668 761 ;
+C -1 ; WX 344 ; N threesuperior ; B -3 273 355 705 ;
+C -1 ; WX 833 ; N Ograve ; B 39 -15 794 964 ;
+C -1 ; WX 759 ; N Agrave ; B -19 0 778 964 ;
+C -1 ; WX 759 ; N Abreve ; B -19 0 778 941 ;
+C -1 ; WX 606 ; N multiply ; B 65 15 541 491 ;
+C -1 ; WX 685 ; N uacute ; B 17 -15 668 737 ;
+C -1 ; WX 722 ; N Tcaron ; B 16 0 706 952 ;
+C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 611 ; N ydieresis ; B 12 -205 599 694 ;
+C -1 ; WX 833 ; N Nacute ; B 5 -10 828 964 ;
+C -1 ; WX 370 ; N icircumflex ; B 9 0 363 725 ;
+C -1 ; WX 759 ; N Ecircumflex ; B 19 0 708 952 ;
+C -1 ; WX 611 ; N adieresis ; B 40 -15 601 694 ;
+C -1 ; WX 574 ; N edieresis ; B 32 -15 542 694 ;
+C -1 ; WX 556 ; N cacute ; B 32 -15 524 737 ;
+C -1 ; WX 685 ; N nacute ; B 17 0 662 737 ;
+C -1 ; WX 685 ; N umacron ; B 17 -15 668 664 ;
+C -1 ; WX 833 ; N Ncaron ; B 5 -10 828 952 ;
+C -1 ; WX 444 ; N Iacute ; B 29 0 415 964 ;
+C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ;
+C -1 ; WX 606 ; N brokenbar ; B 249 -175 357 675 ;
+C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ;
+C -1 ; WX 833 ; N Gbreve ; B 39 -15 818 941 ;
+C -1 ; WX 444 ; N Idotaccent ; B 29 0 415 951 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ;
+C -1 ; WX 759 ; N Egrave ; B 19 0 708 964 ;
+C -1 ; WX 519 ; N racute ; B 17 0 516 737 ;
+C -1 ; WX 611 ; N omacron ; B 32 -15 579 664 ;
+C -1 ; WX 667 ; N Zacute ; B 28 0 639 964 ;
+C -1 ; WX 667 ; N Zcaron ; B 28 0 639 952 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 833 ; N Eth ; B 19 0 794 722 ;
+C -1 ; WX 778 ; N Ccedilla ; B 39 -224 723 737 ;
+C -1 ; WX 352 ; N lcommaaccent ; B 17 -250 329 737 ;
+C -1 ; WX 456 ; N tcaron ; B 21 -15 450 795 ;
+C -1 ; WX 574 ; N eogonek ; B 32 -220 542 485 ;
+C -1 ; WX 833 ; N Uogonek ; B 14 -220 825 722 ;
+C -1 ; WX 759 ; N Aacute ; B -19 0 778 964 ;
+C -1 ; WX 759 ; N Adieresis ; B -19 0 778 921 ;
+C -1 ; WX 574 ; N egrave ; B 32 -15 542 737 ;
+C -1 ; WX 537 ; N zacute ; B 38 0 499 737 ;
+C -1 ; WX 370 ; N iogonek ; B 26 -224 353 737 ;
+C -1 ; WX 833 ; N Oacute ; B 39 -15 794 964 ;
+C -1 ; WX 611 ; N oacute ; B 32 -15 579 737 ;
+C -1 ; WX 611 ; N amacron ; B 40 -15 601 664 ;
+C -1 ; WX 500 ; N sacute ; B 48 -15 476 737 ;
+C -1 ; WX 370 ; N idieresis ; B 7 0 364 694 ;
+C -1 ; WX 833 ; N Ocircumflex ; B 39 -15 794 952 ;
+C -1 ; WX 833 ; N Ugrave ; B 14 -15 825 964 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 667 ; N thorn ; B 17 -205 629 737 ;
+C -1 ; WX 344 ; N twosuperior ; B -3 282 350 705 ;
+C -1 ; WX 833 ; N Odieresis ; B 39 -15 794 921 ;
+C -1 ; WX 685 ; N mu ; B 17 -205 668 475 ;
+C -1 ; WX 370 ; N igrave ; B 21 0 338 737 ;
+C -1 ; WX 611 ; N ohungarumlaut ; B 32 -15 579 737 ;
+C -1 ; WX 759 ; N Eogonek ; B 19 -224 712 722 ;
+C -1 ; WX 667 ; N dcroat ; B 32 -15 644 737 ;
+C -1 ; WX 861 ; N threequarters ; B 15 -15 838 705 ;
+C -1 ; WX 667 ; N Scedilla ; B 51 -224 634 737 ;
+C -1 ; WX 448 ; N lcaron ; B 17 0 439 737 ;
+C -1 ; WX 815 ; N Kcommaaccent ; B 19 -250 822 722 ;
+C -1 ; WX 722 ; N Lacute ; B 19 0 703 964 ;
+C -1 ; WX 1000 ; N trademark ; B 6 317 982 722 ;
+C -1 ; WX 574 ; N edotaccent ; B 32 -15 542 724 ;
+C -1 ; WX 444 ; N Igrave ; B 29 0 415 964 ;
+C -1 ; WX 444 ; N Imacron ; B 29 0 415 891 ;
+C -1 ; WX 722 ; N Lcaron ; B 19 0 703 737 ;
+C -1 ; WX 861 ; N onehalf ; B 31 -15 838 705 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 611 ; N ocircumflex ; B 32 -15 579 725 ;
+C -1 ; WX 685 ; N ntilde ; B 17 0 662 705 ;
+C -1 ; WX 833 ; N Uhungarumlaut ; B 14 -15 825 964 ;
+C -1 ; WX 759 ; N Eacute ; B 19 0 708 964 ;
+C -1 ; WX 574 ; N emacron ; B 32 -15 542 664 ;
+C -1 ; WX 611 ; N gbreve ; B 30 -205 623 734 ;
+C -1 ; WX 861 ; N onequarter ; B 31 -15 838 705 ;
+C -1 ; WX 667 ; N Scaron ; B 51 -15 634 952 ;
+C -1 ; WX 667 ; N Scommaaccent ; B 51 -250 634 737 ;
+C -1 ; WX 833 ; N Ohungarumlaut ; B 39 -15 794 964 ;
+C -1 ; WX 400 ; N degree ; B 57 419 343 705 ;
+C -1 ; WX 611 ; N ograve ; B 32 -15 579 737 ;
+C -1 ; WX 778 ; N Ccaron ; B 39 -15 723 952 ;
+C -1 ; WX 685 ; N ugrave ; B 17 -15 668 737 ;
+C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 833 ; N Dcaron ; B 19 0 794 952 ;
+C -1 ; WX 519 ; N rcommaaccent ; B 17 -250 516 485 ;
+C -1 ; WX 833 ; N Ntilde ; B 5 -10 828 932 ;
+C -1 ; WX 611 ; N otilde ; B 32 -15 579 705 ;
+C -1 ; WX 815 ; N Rcommaaccent ; B 19 -230 815 722 ;
+C -1 ; WX 722 ; N Lcommaaccent ; B 19 -250 703 722 ;
+C -1 ; WX 759 ; N Atilde ; B -19 0 778 932 ;
+C -1 ; WX 759 ; N Aogonek ; B -19 -224 793 737 ;
+C -1 ; WX 759 ; N Aring ; B -19 0 778 988 ;
+C -1 ; WX 833 ; N Otilde ; B 39 -15 794 932 ;
+C -1 ; WX 537 ; N zdotaccent ; B 38 0 499 724 ;
+C -1 ; WX 759 ; N Ecaron ; B 19 0 708 952 ;
+C -1 ; WX 444 ; N Iogonek ; B 29 -220 415 722 ;
+C -1 ; WX 667 ; N kcommaaccent ; B 17 -250 662 737 ;
+C -1 ; WX 606 ; N minus ; B 50 199 556 307 ;
+C -1 ; WX 444 ; N Icircumflex ; B 29 0 415 952 ;
+C -1 ; WX 685 ; N ncaron ; B 17 0 662 725 ;
+C -1 ; WX 426 ; N tcommaaccent ; B 21 -250 405 675 ;
+C -1 ; WX 606 ; N logicalnot ; B 50 103 556 403 ;
+C -1 ; WX 611 ; N odieresis ; B 32 -15 579 694 ;
+C -1 ; WX 685 ; N udieresis ; B 17 -15 668 694 ;
+C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 611 ; N gcommaaccent ; B 30 -205 623 842 ;
+C -1 ; WX 611 ; N eth ; B 32 -15 579 737 ;
+C -1 ; WX 537 ; N zcaron ; B 38 0 499 725 ;
+C -1 ; WX 685 ; N ncommaaccent ; B 17 -250 662 485 ;
+C -1 ; WX 344 ; N onesuperior ; B 31 282 309 705 ;
+C -1 ; WX 370 ; N imacron ; B 26 0 338 664 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 1205
+KPX A T -55
+KPX A Tcaron -55
+KPX A Tcommaaccent -55
+KPX A U -18
+KPX A Uacute -18
+KPX A Ucircumflex -18
+KPX A Udieresis -18
+KPX A Ugrave -18
+KPX A Uhungarumlaut -18
+KPX A Umacron -18
+KPX A Uogonek -18
+KPX A Uring -18
+KPX A V -74
+KPX A W -74
+KPX A Y -91
+KPX A Yacute -91
+KPX A Ydieresis -91
+KPX A quotedblright -74
+KPX A quoteright -74
+KPX A v -18
+KPX A w -18
+KPX A y -18
+KPX A yacute -18
+KPX A ydieresis -18
+KPX Aacute T -55
+KPX Aacute Tcaron -55
+KPX Aacute Tcommaaccent -55
+KPX Aacute U -18
+KPX Aacute Uacute -18
+KPX Aacute Ucircumflex -18
+KPX Aacute Udieresis -18
+KPX Aacute Ugrave -18
+KPX Aacute Uhungarumlaut -18
+KPX Aacute Umacron -18
+KPX Aacute Uogonek -18
+KPX Aacute Uring -18
+KPX Aacute V -74
+KPX Aacute W -74
+KPX Aacute Y -91
+KPX Aacute Yacute -91
+KPX Aacute Ydieresis -91
+KPX Aacute quotedblright -74
+KPX Aacute quoteright -74
+KPX Aacute v -18
+KPX Aacute w -18
+KPX Aacute y -18
+KPX Aacute yacute -18
+KPX Aacute ydieresis -18
+KPX Abreve T -55
+KPX Abreve Tcaron -55
+KPX Abreve Tcommaaccent -55
+KPX Abreve U -18
+KPX Abreve Uacute -18
+KPX Abreve Ucircumflex -18
+KPX Abreve Udieresis -18
+KPX Abreve Ugrave -18
+KPX Abreve Uhungarumlaut -18
+KPX Abreve Umacron -18
+KPX Abreve Uogonek -18
+KPX Abreve Uring -18
+KPX Abreve V -74
+KPX Abreve W -74
+KPX Abreve Y -91
+KPX Abreve Yacute -91
+KPX Abreve Ydieresis -91
+KPX Abreve quotedblright -74
+KPX Abreve quoteright -74
+KPX Abreve v -18
+KPX Abreve w -18
+KPX Abreve y -18
+KPX Abreve yacute -18
+KPX Abreve ydieresis -18
+KPX Acircumflex T -55
+KPX Acircumflex Tcaron -55
+KPX Acircumflex Tcommaaccent -55
+KPX Acircumflex U -18
+KPX Acircumflex Uacute -18
+KPX Acircumflex Ucircumflex -18
+KPX Acircumflex Udieresis -18
+KPX Acircumflex Ugrave -18
+KPX Acircumflex Uhungarumlaut -18
+KPX Acircumflex Umacron -18
+KPX Acircumflex Uogonek -18
+KPX Acircumflex Uring -18
+KPX Acircumflex V -74
+KPX Acircumflex W -74
+KPX Acircumflex Y -91
+KPX Acircumflex Yacute -91
+KPX Acircumflex Ydieresis -91
+KPX Acircumflex quotedblright -74
+KPX Acircumflex quoteright -74
+KPX Acircumflex v -18
+KPX Acircumflex w -18
+KPX Acircumflex y -18
+KPX Acircumflex yacute -18
+KPX Acircumflex ydieresis -18
+KPX Adieresis T -55
+KPX Adieresis Tcaron -55
+KPX Adieresis Tcommaaccent -55
+KPX Adieresis U -18
+KPX Adieresis Uacute -18
+KPX Adieresis Ucircumflex -18
+KPX Adieresis Udieresis -18
+KPX Adieresis Ugrave -18
+KPX Adieresis Uhungarumlaut -18
+KPX Adieresis Umacron -18
+KPX Adieresis Uogonek -18
+KPX Adieresis Uring -18
+KPX Adieresis V -74
+KPX Adieresis W -74
+KPX Adieresis Y -91
+KPX Adieresis Yacute -91
+KPX Adieresis Ydieresis -91
+KPX Adieresis quotedblright -74
+KPX Adieresis quoteright -74
+KPX Adieresis v -18
+KPX Adieresis w -18
+KPX Adieresis y -18
+KPX Adieresis yacute -18
+KPX Adieresis ydieresis -18
+KPX Agrave T -55
+KPX Agrave Tcaron -55
+KPX Agrave Tcommaaccent -55
+KPX Agrave U -18
+KPX Agrave Uacute -18
+KPX Agrave Ucircumflex -18
+KPX Agrave Udieresis -18
+KPX Agrave Ugrave -18
+KPX Agrave Uhungarumlaut -18
+KPX Agrave Umacron -18
+KPX Agrave Uogonek -18
+KPX Agrave Uring -18
+KPX Agrave V -74
+KPX Agrave W -74
+KPX Agrave Y -91
+KPX Agrave Yacute -91
+KPX Agrave Ydieresis -91
+KPX Agrave quotedblright -74
+KPX Agrave quoteright -74
+KPX Agrave v -18
+KPX Agrave w -18
+KPX Agrave y -18
+KPX Agrave yacute -18
+KPX Agrave ydieresis -18
+KPX Amacron T -55
+KPX Amacron Tcaron -55
+KPX Amacron Tcommaaccent -55
+KPX Amacron U -18
+KPX Amacron Uacute -18
+KPX Amacron Ucircumflex -18
+KPX Amacron Udieresis -18
+KPX Amacron Ugrave -18
+KPX Amacron Uhungarumlaut -18
+KPX Amacron Umacron -18
+KPX Amacron Uogonek -18
+KPX Amacron Uring -18
+KPX Amacron V -74
+KPX Amacron W -74
+KPX Amacron Y -91
+KPX Amacron Yacute -91
+KPX Amacron Ydieresis -91
+KPX Amacron quotedblright -74
+KPX Amacron quoteright -74
+KPX Amacron v -18
+KPX Amacron w -18
+KPX Amacron y -18
+KPX Amacron yacute -18
+KPX Amacron ydieresis -18
+KPX Aogonek T -55
+KPX Aogonek Tcaron -55
+KPX Aogonek Tcommaaccent -55
+KPX Aogonek U -18
+KPX Aogonek Uacute -18
+KPX Aogonek Ucircumflex -18
+KPX Aogonek Udieresis -18
+KPX Aogonek Ugrave -18
+KPX Aogonek Uhungarumlaut -18
+KPX Aogonek Umacron -18
+KPX Aogonek Uogonek -18
+KPX Aogonek Uring -18
+KPX Aogonek V -74
+KPX Aogonek W -74
+KPX Aogonek Y -91
+KPX Aogonek Yacute -91
+KPX Aogonek Ydieresis -91
+KPX Aogonek quotedblright -74
+KPX Aogonek quoteright -74
+KPX Aogonek v -18
+KPX Aogonek w -18
+KPX Aring T -55
+KPX Aring Tcaron -55
+KPX Aring Tcommaaccent -55
+KPX Aring U -18
+KPX Aring Uacute -18
+KPX Aring Ucircumflex -18
+KPX Aring Udieresis -18
+KPX Aring Ugrave -18
+KPX Aring Uhungarumlaut -18
+KPX Aring Umacron -18
+KPX Aring Uogonek -18
+KPX Aring Uring -18
+KPX Aring V -74
+KPX Aring W -74
+KPX Aring Y -91
+KPX Aring Yacute -91
+KPX Aring Ydieresis -91
+KPX Aring quotedblright -74
+KPX Aring quoteright -74
+KPX Aring v -18
+KPX Aring w -18
+KPX Aring y -18
+KPX Aring yacute -18
+KPX Aring ydieresis -18
+KPX Atilde T -55
+KPX Atilde Tcaron -55
+KPX Atilde Tcommaaccent -55
+KPX Atilde U -18
+KPX Atilde Uacute -18
+KPX Atilde Ucircumflex -18
+KPX Atilde Udieresis -18
+KPX Atilde Ugrave -18
+KPX Atilde Uhungarumlaut -18
+KPX Atilde Umacron -18
+KPX Atilde Uogonek -18
+KPX Atilde Uring -18
+KPX Atilde V -74
+KPX Atilde W -74
+KPX Atilde Y -91
+KPX Atilde Yacute -91
+KPX Atilde Ydieresis -91
+KPX Atilde quotedblright -74
+KPX Atilde quoteright -74
+KPX Atilde v -18
+KPX Atilde w -18
+KPX Atilde y -18
+KPX Atilde yacute -18
+KPX Atilde ydieresis -18
+KPX C comma -18
+KPX C period -18
+KPX Cacute comma -18
+KPX Cacute period -18
+KPX Ccaron comma -18
+KPX Ccaron period -18
+KPX Ccedilla comma -18
+KPX Ccedilla period -18
+KPX D comma -25
+KPX D period -25
+KPX Dcaron comma -25
+KPX Dcaron period -25
+KPX Dcroat comma -25
+KPX Dcroat period -25
+KPX F a -74
+KPX F aacute -74
+KPX F abreve -74
+KPX F acircumflex -74
+KPX F adieresis -74
+KPX F agrave -74
+KPX F amacron -74
+KPX F aogonek -74
+KPX F aring -74
+KPX F atilde -74
+KPX F comma -125
+KPX F e -55
+KPX F eacute -55
+KPX F ecaron -55
+KPX F ecircumflex -55
+KPX F edieresis -55
+KPX F edotaccent -55
+KPX F egrave -55
+KPX F emacron -55
+KPX F eogonek -55
+KPX F i -18
+KPX F iacute -18
+KPX F icircumflex -18
+KPX F idieresis -18
+KPX F igrave -18
+KPX F imacron -18
+KPX F iogonek -18
+KPX F o -55
+KPX F oacute -55
+KPX F ocircumflex -55
+KPX F odieresis -55
+KPX F ograve -55
+KPX F ohungarumlaut -55
+KPX F omacron -55
+KPX F oslash -55
+KPX F otilde -55
+KPX F period -125
+KPX F r -18
+KPX F racute -18
+KPX F rcaron -18
+KPX F rcommaaccent -18
+KPX J A -18
+KPX J Aacute -18
+KPX J Abreve -18
+KPX J Acircumflex -18
+KPX J Adieresis -18
+KPX J Agrave -18
+KPX J Amacron -18
+KPX J Aogonek -18
+KPX J Aring -18
+KPX J Atilde -18
+KPX J a -18
+KPX J aacute -18
+KPX J abreve -18
+KPX J acircumflex -18
+KPX J adieresis -18
+KPX J agrave -18
+KPX J amacron -18
+KPX J aogonek -18
+KPX J aring -18
+KPX J atilde -18
+KPX J comma -55
+KPX J e -18
+KPX J eacute -18
+KPX J ecaron -18
+KPX J ecircumflex -18
+KPX J edieresis -18
+KPX J edotaccent -18
+KPX J egrave -18
+KPX J emacron -18
+KPX J eogonek -18
+KPX J o -18
+KPX J oacute -18
+KPX J ocircumflex -18
+KPX J odieresis -18
+KPX J ograve -18
+KPX J ohungarumlaut -18
+KPX J omacron -18
+KPX J oslash -18
+KPX J otilde -18
+KPX J period -55
+KPX J u -18
+KPX J uacute -18
+KPX J ucircumflex -18
+KPX J udieresis -18
+KPX J ugrave -18
+KPX J uhungarumlaut -18
+KPX J umacron -18
+KPX J uogonek -18
+KPX J uring -18
+KPX K u -18
+KPX K uacute -18
+KPX K ucircumflex -18
+KPX K udieresis -18
+KPX K ugrave -18
+KPX K uhungarumlaut -18
+KPX K umacron -18
+KPX K uogonek -18
+KPX K uring -18
+KPX K y -25
+KPX K yacute -25
+KPX K ydieresis -25
+KPX Kcommaaccent u -18
+KPX Kcommaaccent uacute -18
+KPX Kcommaaccent ucircumflex -18
+KPX Kcommaaccent udieresis -18
+KPX Kcommaaccent ugrave -18
+KPX Kcommaaccent uhungarumlaut -18
+KPX Kcommaaccent umacron -18
+KPX Kcommaaccent uogonek -18
+KPX Kcommaaccent uring -18
+KPX Kcommaaccent y -25
+KPX Kcommaaccent yacute -25
+KPX Kcommaaccent ydieresis -25
+KPX L T -100
+KPX L Tcaron -100
+KPX L Tcommaaccent -100
+KPX L V -100
+KPX L W -74
+KPX L Y -74
+KPX L Yacute -74
+KPX L Ydieresis -74
+KPX L quotedblright -100
+KPX L quoteright -100
+KPX L y -25
+KPX L yacute -25
+KPX L ydieresis -25
+KPX Lacute T -100
+KPX Lacute Tcaron -100
+KPX Lacute Tcommaaccent -100
+KPX Lacute V -100
+KPX Lacute W -74
+KPX Lacute Y -74
+KPX Lacute Yacute -74
+KPX Lacute Ydieresis -74
+KPX Lacute quotedblright -100
+KPX Lacute quoteright -100
+KPX Lacute y -25
+KPX Lacute yacute -25
+KPX Lacute ydieresis -25
+KPX Lcommaaccent T -100
+KPX Lcommaaccent Tcaron -100
+KPX Lcommaaccent Tcommaaccent -100
+KPX Lcommaaccent V -100
+KPX Lcommaaccent W -74
+KPX Lcommaaccent Y -74
+KPX Lcommaaccent Yacute -74
+KPX Lcommaaccent Ydieresis -74
+KPX Lcommaaccent quotedblright -100
+KPX Lcommaaccent quoteright -100
+KPX Lcommaaccent y -25
+KPX Lcommaaccent yacute -25
+KPX Lcommaaccent ydieresis -25
+KPX Lslash T -100
+KPX Lslash Tcaron -100
+KPX Lslash Tcommaaccent -100
+KPX Lslash V -100
+KPX Lslash W -74
+KPX Lslash Y -74
+KPX Lslash Yacute -74
+KPX Lslash Ydieresis -74
+KPX Lslash quotedblright -100
+KPX Lslash quoteright -100
+KPX Lslash y -25
+KPX Lslash yacute -25
+KPX Lslash ydieresis -25
+KPX N comma -18
+KPX N period -18
+KPX Nacute comma -18
+KPX Nacute period -18
+KPX Ncaron comma -18
+KPX Ncaron period -18
+KPX Ncommaaccent comma -18
+KPX Ncommaaccent period -18
+KPX Ntilde comma -18
+KPX Ntilde period -18
+KPX O T 10
+KPX O Tcaron 10
+KPX O Tcommaaccent 10
+KPX O comma -25
+KPX O period -25
+KPX Oacute T 10
+KPX Oacute Tcaron 10
+KPX Oacute Tcommaaccent 10
+KPX Oacute comma -25
+KPX Oacute period -25
+KPX Ocircumflex T 10
+KPX Ocircumflex Tcaron 10
+KPX Ocircumflex Tcommaaccent 10
+KPX Ocircumflex comma -25
+KPX Ocircumflex period -25
+KPX Odieresis T 10
+KPX Odieresis Tcaron 10
+KPX Odieresis Tcommaaccent 10
+KPX Odieresis comma -25
+KPX Odieresis period -25
+KPX Ograve T 10
+KPX Ograve Tcaron 10
+KPX Ograve Tcommaaccent 10
+KPX Ograve comma -25
+KPX Ograve period -25
+KPX Ohungarumlaut T 10
+KPX Ohungarumlaut Tcaron 10
+KPX Ohungarumlaut Tcommaaccent 10
+KPX Ohungarumlaut comma -25
+KPX Ohungarumlaut period -25
+KPX Omacron T 10
+KPX Omacron Tcaron 10
+KPX Omacron Tcommaaccent 10
+KPX Omacron comma -25
+KPX Omacron period -25
+KPX Oslash T 10
+KPX Oslash Tcaron 10
+KPX Oslash Tcommaaccent 10
+KPX Oslash comma -25
+KPX Oslash period -25
+KPX Otilde T 10
+KPX Otilde Tcaron 10
+KPX Otilde Tcommaaccent 10
+KPX Otilde comma -25
+KPX Otilde period -25
+KPX P A -74
+KPX P Aacute -74
+KPX P Abreve -74
+KPX P Acircumflex -74
+KPX P Adieresis -74
+KPX P Agrave -74
+KPX P Amacron -74
+KPX P Aogonek -74
+KPX P Aring -74
+KPX P Atilde -74
+KPX P a -55
+KPX P aacute -55
+KPX P abreve -55
+KPX P acircumflex -55
+KPX P adieresis -55
+KPX P agrave -55
+KPX P amacron -55
+KPX P aogonek -55
+KPX P aring -55
+KPX P atilde -55
+KPX P comma -150
+KPX P e -55
+KPX P eacute -55
+KPX P ecaron -55
+KPX P ecircumflex -55
+KPX P edieresis -55
+KPX P edotaccent -55
+KPX P egrave -55
+KPX P emacron -55
+KPX P eogonek -55
+KPX P o -55
+KPX P oacute -55
+KPX P ocircumflex -55
+KPX P odieresis -55
+KPX P ograve -55
+KPX P ohungarumlaut -55
+KPX P omacron -55
+KPX P oslash -55
+KPX P otilde -55
+KPX P period -150
+KPX S comma -18
+KPX S period -18
+KPX Sacute comma -18
+KPX Sacute period -18
+KPX Scaron comma -18
+KPX Scaron period -18
+KPX Scedilla comma -18
+KPX Scedilla period -18
+KPX Scommaaccent comma -18
+KPX Scommaaccent period -18
+KPX T A -55
+KPX T Aacute -55
+KPX T Abreve -55
+KPX T Acircumflex -55
+KPX T Adieresis -55
+KPX T Agrave -55
+KPX T Amacron -55
+KPX T Aogonek -55
+KPX T Aring -55
+KPX T Atilde -55
+KPX T O 10
+KPX T Oacute 10
+KPX T Ocircumflex 10
+KPX T Odieresis 10
+KPX T Ograve 10
+KPX T Ohungarumlaut 10
+KPX T Omacron 10
+KPX T Oslash 10
+KPX T Otilde 10
+KPX T a -74
+KPX T aacute -74
+KPX T abreve -74
+KPX T acircumflex -74
+KPX T adieresis -74
+KPX T agrave -74
+KPX T amacron -74
+KPX T aogonek -74
+KPX T aring -74
+KPX T atilde -74
+KPX T comma -100
+KPX T e -74
+KPX T eacute -74
+KPX T ecaron -74
+KPX T ecircumflex -74
+KPX T edieresis -74
+KPX T edotaccent -74
+KPX T egrave -74
+KPX T emacron -74
+KPX T eogonek -74
+KPX T hyphen -125
+KPX T i -18
+KPX T iacute -18
+KPX T icircumflex -18
+KPX T idieresis -18
+KPX T igrave -18
+KPX T imacron -18
+KPX T iogonek -18
+KPX T o -74
+KPX T oacute -74
+KPX T ocircumflex -74
+KPX T odieresis -74
+KPX T ograve -74
+KPX T ohungarumlaut -74
+KPX T omacron -74
+KPX T oslash -74
+KPX T otilde -74
+KPX T period -100
+KPX T r -18
+KPX T racute -18
+KPX T rcaron -18
+KPX T rcommaaccent -18
+KPX T u -18
+KPX T uacute -18
+KPX T ucircumflex -18
+KPX T udieresis -18
+KPX T ugrave -18
+KPX T uhungarumlaut -18
+KPX T umacron -18
+KPX T uogonek -18
+KPX T uring -18
+KPX Tcaron A -55
+KPX Tcaron Aacute -55
+KPX Tcaron Abreve -55
+KPX Tcaron Acircumflex -55
+KPX Tcaron Adieresis -55
+KPX Tcaron Agrave -55
+KPX Tcaron Amacron -55
+KPX Tcaron Aogonek -55
+KPX Tcaron Aring -55
+KPX Tcaron Atilde -55
+KPX Tcaron O 10
+KPX Tcaron Oacute 10
+KPX Tcaron Ocircumflex 10
+KPX Tcaron Odieresis 10
+KPX Tcaron Ograve 10
+KPX Tcaron Ohungarumlaut 10
+KPX Tcaron Omacron 10
+KPX Tcaron Oslash 10
+KPX Tcaron Otilde 10
+KPX Tcaron a -74
+KPX Tcaron aacute -74
+KPX Tcaron abreve -74
+KPX Tcaron acircumflex -74
+KPX Tcaron adieresis -74
+KPX Tcaron agrave -74
+KPX Tcaron amacron -74
+KPX Tcaron aogonek -74
+KPX Tcaron aring -74
+KPX Tcaron atilde -74
+KPX Tcaron comma -100
+KPX Tcaron e -74
+KPX Tcaron eacute -74
+KPX Tcaron ecaron -74
+KPX Tcaron ecircumflex -74
+KPX Tcaron edieresis -74
+KPX Tcaron edotaccent -74
+KPX Tcaron egrave -74
+KPX Tcaron emacron -74
+KPX Tcaron eogonek -74
+KPX Tcaron hyphen -125
+KPX Tcaron i -18
+KPX Tcaron iacute -18
+KPX Tcaron icircumflex -18
+KPX Tcaron idieresis -18
+KPX Tcaron igrave -18
+KPX Tcaron imacron -18
+KPX Tcaron iogonek -18
+KPX Tcaron o -74
+KPX Tcaron oacute -74
+KPX Tcaron ocircumflex -74
+KPX Tcaron odieresis -74
+KPX Tcaron ograve -74
+KPX Tcaron ohungarumlaut -74
+KPX Tcaron omacron -74
+KPX Tcaron oslash -74
+KPX Tcaron otilde -74
+KPX Tcaron period -100
+KPX Tcaron r -18
+KPX Tcaron racute -18
+KPX Tcaron rcaron -18
+KPX Tcaron rcommaaccent -18
+KPX Tcaron u -18
+KPX Tcaron uacute -18
+KPX Tcaron ucircumflex -18
+KPX Tcaron udieresis -18
+KPX Tcaron ugrave -18
+KPX Tcaron uhungarumlaut -18
+KPX Tcaron umacron -18
+KPX Tcaron uogonek -18
+KPX Tcaron uring -18
+KPX Tcommaaccent A -55
+KPX Tcommaaccent Aacute -55
+KPX Tcommaaccent Abreve -55
+KPX Tcommaaccent Acircumflex -55
+KPX Tcommaaccent Adieresis -55
+KPX Tcommaaccent Agrave -55
+KPX Tcommaaccent Amacron -55
+KPX Tcommaaccent Aogonek -55
+KPX Tcommaaccent Aring -55
+KPX Tcommaaccent Atilde -55
+KPX Tcommaaccent O 10
+KPX Tcommaaccent Oacute 10
+KPX Tcommaaccent Ocircumflex 10
+KPX Tcommaaccent Odieresis 10
+KPX Tcommaaccent Ograve 10
+KPX Tcommaaccent Ohungarumlaut 10
+KPX Tcommaaccent Omacron 10
+KPX Tcommaaccent Oslash 10
+KPX Tcommaaccent Otilde 10
+KPX Tcommaaccent a -74
+KPX Tcommaaccent aacute -74
+KPX Tcommaaccent abreve -74
+KPX Tcommaaccent acircumflex -74
+KPX Tcommaaccent adieresis -74
+KPX Tcommaaccent agrave -74
+KPX Tcommaaccent amacron -74
+KPX Tcommaaccent aogonek -74
+KPX Tcommaaccent aring -74
+KPX Tcommaaccent atilde -74
+KPX Tcommaaccent comma -100
+KPX Tcommaaccent e -74
+KPX Tcommaaccent eacute -74
+KPX Tcommaaccent ecaron -74
+KPX Tcommaaccent ecircumflex -74
+KPX Tcommaaccent edieresis -74
+KPX Tcommaaccent edotaccent -74
+KPX Tcommaaccent egrave -74
+KPX Tcommaaccent emacron -74
+KPX Tcommaaccent eogonek -74
+KPX Tcommaaccent hyphen -125
+KPX Tcommaaccent i -18
+KPX Tcommaaccent iacute -18
+KPX Tcommaaccent icircumflex -18
+KPX Tcommaaccent idieresis -18
+KPX Tcommaaccent igrave -18
+KPX Tcommaaccent imacron -18
+KPX Tcommaaccent iogonek -18
+KPX Tcommaaccent o -74
+KPX Tcommaaccent oacute -74
+KPX Tcommaaccent ocircumflex -74
+KPX Tcommaaccent odieresis -74
+KPX Tcommaaccent ograve -74
+KPX Tcommaaccent ohungarumlaut -74
+KPX Tcommaaccent omacron -74
+KPX Tcommaaccent oslash -74
+KPX Tcommaaccent otilde -74
+KPX Tcommaaccent period -100
+KPX Tcommaaccent r -18
+KPX Tcommaaccent racute -18
+KPX Tcommaaccent rcaron -18
+KPX Tcommaaccent rcommaaccent -18
+KPX Tcommaaccent u -18
+KPX Tcommaaccent uacute -18
+KPX Tcommaaccent ucircumflex -18
+KPX Tcommaaccent udieresis -18
+KPX Tcommaaccent ugrave -18
+KPX Tcommaaccent uhungarumlaut -18
+KPX Tcommaaccent umacron -18
+KPX Tcommaaccent uogonek -18
+KPX Tcommaaccent uring -18
+KPX U A -18
+KPX U Aacute -18
+KPX U Abreve -18
+KPX U Acircumflex -18
+KPX U Adieresis -18
+KPX U Agrave -18
+KPX U Amacron -18
+KPX U Aogonek -18
+KPX U Aring -18
+KPX U Atilde -18
+KPX U comma -25
+KPX U period -25
+KPX Uacute A -18
+KPX Uacute Aacute -18
+KPX Uacute Abreve -18
+KPX Uacute Acircumflex -18
+KPX Uacute Adieresis -18
+KPX Uacute Agrave -18
+KPX Uacute Amacron -18
+KPX Uacute Aogonek -18
+KPX Uacute Aring -18
+KPX Uacute Atilde -18
+KPX Uacute comma -25
+KPX Uacute period -25
+KPX Ucircumflex A -18
+KPX Ucircumflex Aacute -18
+KPX Ucircumflex Abreve -18
+KPX Ucircumflex Acircumflex -18
+KPX Ucircumflex Adieresis -18
+KPX Ucircumflex Agrave -18
+KPX Ucircumflex Amacron -18
+KPX Ucircumflex Aogonek -18
+KPX Ucircumflex Aring -18
+KPX Ucircumflex Atilde -18
+KPX Ucircumflex comma -25
+KPX Ucircumflex period -25
+KPX Udieresis A -18
+KPX Udieresis Aacute -18
+KPX Udieresis Abreve -18
+KPX Udieresis Acircumflex -18
+KPX Udieresis Adieresis -18
+KPX Udieresis Agrave -18
+KPX Udieresis Amacron -18
+KPX Udieresis Aogonek -18
+KPX Udieresis Aring -18
+KPX Udieresis Atilde -18
+KPX Udieresis comma -25
+KPX Udieresis period -25
+KPX Ugrave A -18
+KPX Ugrave Aacute -18
+KPX Ugrave Abreve -18
+KPX Ugrave Acircumflex -18
+KPX Ugrave Adieresis -18
+KPX Ugrave Agrave -18
+KPX Ugrave Amacron -18
+KPX Ugrave Aogonek -18
+KPX Ugrave Aring -18
+KPX Ugrave Atilde -18
+KPX Ugrave comma -25
+KPX Ugrave period -25
+KPX Uhungarumlaut A -18
+KPX Uhungarumlaut Aacute -18
+KPX Uhungarumlaut Abreve -18
+KPX Uhungarumlaut Acircumflex -18
+KPX Uhungarumlaut Adieresis -18
+KPX Uhungarumlaut Agrave -18
+KPX Uhungarumlaut Amacron -18
+KPX Uhungarumlaut Aogonek -18
+KPX Uhungarumlaut Aring -18
+KPX Uhungarumlaut Atilde -18
+KPX Uhungarumlaut comma -25
+KPX Uhungarumlaut period -25
+KPX Umacron A -18
+KPX Umacron Aacute -18
+KPX Umacron Abreve -18
+KPX Umacron Acircumflex -18
+KPX Umacron Adieresis -18
+KPX Umacron Agrave -18
+KPX Umacron Amacron -18
+KPX Umacron Aogonek -18
+KPX Umacron Aring -18
+KPX Umacron Atilde -18
+KPX Umacron comma -25
+KPX Umacron period -25
+KPX Uogonek A -18
+KPX Uogonek Aacute -18
+KPX Uogonek Abreve -18
+KPX Uogonek Acircumflex -18
+KPX Uogonek Adieresis -18
+KPX Uogonek Agrave -18
+KPX Uogonek Amacron -18
+KPX Uogonek Aogonek -18
+KPX Uogonek Aring -18
+KPX Uogonek Atilde -18
+KPX Uogonek comma -25
+KPX Uogonek period -25
+KPX Uring A -18
+KPX Uring Aacute -18
+KPX Uring Abreve -18
+KPX Uring Acircumflex -18
+KPX Uring Adieresis -18
+KPX Uring Agrave -18
+KPX Uring Amacron -18
+KPX Uring Aogonek -18
+KPX Uring Aring -18
+KPX Uring Atilde -18
+KPX Uring comma -25
+KPX Uring period -25
+KPX V A -74
+KPX V Aacute -74
+KPX V Abreve -74
+KPX V Acircumflex -74
+KPX V Adieresis -74
+KPX V Agrave -74
+KPX V Amacron -74
+KPX V Aogonek -74
+KPX V Aring -74
+KPX V Atilde -74
+KPX V a -74
+KPX V aacute -74
+KPX V abreve -74
+KPX V acircumflex -74
+KPX V adieresis -74
+KPX V agrave -74
+KPX V amacron -74
+KPX V aogonek -74
+KPX V aring -74
+KPX V atilde -74
+KPX V colon -37
+KPX V comma -125
+KPX V e -74
+KPX V eacute -74
+KPX V ecaron -74
+KPX V ecircumflex -74
+KPX V edieresis -74
+KPX V edotaccent -74
+KPX V egrave -74
+KPX V emacron -74
+KPX V eogonek -74
+KPX V hyphen -100
+KPX V i -18
+KPX V iacute -18
+KPX V icircumflex -18
+KPX V idieresis -18
+KPX V igrave -18
+KPX V imacron -18
+KPX V iogonek -18
+KPX V o -74
+KPX V oacute -74
+KPX V ocircumflex -74
+KPX V odieresis -74
+KPX V ograve -74
+KPX V ohungarumlaut -74
+KPX V omacron -74
+KPX V oslash -74
+KPX V otilde -74
+KPX V period -125
+KPX V semicolon -37
+KPX V u -55
+KPX V uacute -55
+KPX V ucircumflex -55
+KPX V udieresis -55
+KPX V ugrave -55
+KPX V uhungarumlaut -55
+KPX V umacron -55
+KPX V uogonek -55
+KPX V uring -55
+KPX W A -74
+KPX W Aacute -74
+KPX W Abreve -74
+KPX W Acircumflex -74
+KPX W Adieresis -74
+KPX W Agrave -74
+KPX W Amacron -74
+KPX W Aogonek -74
+KPX W Aring -74
+KPX W Atilde -74
+KPX W a -74
+KPX W aacute -74
+KPX W abreve -74
+KPX W acircumflex -74
+KPX W adieresis -74
+KPX W agrave -74
+KPX W amacron -74
+KPX W aogonek -74
+KPX W aring -74
+KPX W atilde -74
+KPX W colon -55
+KPX W comma -100
+KPX W e -74
+KPX W eacute -74
+KPX W ecaron -74
+KPX W ecircumflex -74
+KPX W edieresis -74
+KPX W edotaccent -74
+KPX W egrave -74
+KPX W emacron -74
+KPX W eogonek -74
+KPX W hyphen -100
+KPX W i -18
+KPX W iacute -18
+KPX W icircumflex -18
+KPX W idieresis -18
+KPX W igrave -18
+KPX W imacron -18
+KPX W iogonek -18
+KPX W o -74
+KPX W oacute -74
+KPX W ocircumflex -74
+KPX W odieresis -74
+KPX W ograve -74
+KPX W ohungarumlaut -74
+KPX W omacron -74
+KPX W oslash -74
+KPX W otilde -74
+KPX W period -100
+KPX W semicolon -55
+KPX W u -37
+KPX W uacute -37
+KPX W ucircumflex -37
+KPX W udieresis -37
+KPX W ugrave -37
+KPX W uhungarumlaut -37
+KPX W umacron -37
+KPX W uogonek -37
+KPX W uring -37
+KPX W y -25
+KPX W yacute -25
+KPX W ydieresis -25
+KPX Y A -91
+KPX Y Aacute -91
+KPX Y Abreve -91
+KPX Y Acircumflex -91
+KPX Y Adieresis -91
+KPX Y Agrave -91
+KPX Y Amacron -91
+KPX Y Aogonek -91
+KPX Y Aring -91
+KPX Y Atilde -91
+KPX Y a -100
+KPX Y aacute -100
+KPX Y abreve -100
+KPX Y acircumflex -100
+KPX Y adieresis -100
+KPX Y agrave -100
+KPX Y amacron -100
+KPX Y aogonek -100
+KPX Y aring -100
+KPX Y atilde -100
+KPX Y colon -25
+KPX Y comma -100
+KPX Y e -100
+KPX Y eacute -100
+KPX Y ecaron -40
+KPX Y ecircumflex -100
+KPX Y edieresis -40
+KPX Y edotaccent -100
+KPX Y egrave -40
+KPX Y emacron -40
+KPX Y eogonek -100
+KPX Y hyphen -125
+KPX Y i -18
+KPX Y iacute -18
+KPX Y icircumflex -18
+KPX Y iogonek -18
+KPX Y o -100
+KPX Y oacute -100
+KPX Y ocircumflex -100
+KPX Y odieresis -40
+KPX Y ograve -40
+KPX Y ohungarumlaut -100
+KPX Y omacron -40
+KPX Y oslash -100
+KPX Y otilde -100
+KPX Y period -100
+KPX Y semicolon -25
+KPX Y u -55
+KPX Y uacute -55
+KPX Y ucircumflex -55
+KPX Y udieresis -55
+KPX Y ugrave -55
+KPX Y uhungarumlaut -55
+KPX Y umacron -55
+KPX Y uogonek -55
+KPX Y uring -55
+KPX Yacute A -91
+KPX Yacute Aacute -91
+KPX Yacute Abreve -91
+KPX Yacute Acircumflex -91
+KPX Yacute Adieresis -91
+KPX Yacute Agrave -91
+KPX Yacute Amacron -91
+KPX Yacute Aogonek -91
+KPX Yacute Aring -91
+KPX Yacute Atilde -91
+KPX Yacute a -100
+KPX Yacute aacute -100
+KPX Yacute abreve -100
+KPX Yacute acircumflex -100
+KPX Yacute adieresis -100
+KPX Yacute agrave -100
+KPX Yacute amacron -100
+KPX Yacute aogonek -100
+KPX Yacute aring -100
+KPX Yacute atilde -100
+KPX Yacute colon -25
+KPX Yacute comma -100
+KPX Yacute e -100
+KPX Yacute eacute -100
+KPX Yacute ecaron -40
+KPX Yacute ecircumflex -100
+KPX Yacute edieresis -40
+KPX Yacute edotaccent -100
+KPX Yacute egrave -40
+KPX Yacute emacron -40
+KPX Yacute eogonek -100
+KPX Yacute hyphen -125
+KPX Yacute i -18
+KPX Yacute iacute -18
+KPX Yacute icircumflex -18
+KPX Yacute iogonek -18
+KPX Yacute o -100
+KPX Yacute oacute -100
+KPX Yacute ocircumflex -100
+KPX Yacute odieresis -40
+KPX Yacute ograve -40
+KPX Yacute ohungarumlaut -100
+KPX Yacute omacron -40
+KPX Yacute oslash -100
+KPX Yacute otilde -100
+KPX Yacute period -100
+KPX Yacute semicolon -25
+KPX Yacute u -55
+KPX Yacute uacute -55
+KPX Yacute ucircumflex -55
+KPX Yacute udieresis -55
+KPX Yacute ugrave -55
+KPX Yacute uhungarumlaut -55
+KPX Yacute umacron -55
+KPX Yacute uogonek -55
+KPX Yacute uring -55
+KPX Ydieresis A -91
+KPX Ydieresis Aacute -91
+KPX Ydieresis Abreve -91
+KPX Ydieresis Acircumflex -91
+KPX Ydieresis Adieresis -91
+KPX Ydieresis Agrave -91
+KPX Ydieresis Amacron -91
+KPX Ydieresis Aogonek -91
+KPX Ydieresis Aring -91
+KPX Ydieresis Atilde -91
+KPX Ydieresis a -100
+KPX Ydieresis aacute -100
+KPX Ydieresis abreve -100
+KPX Ydieresis acircumflex -100
+KPX Ydieresis adieresis -100
+KPX Ydieresis agrave -100
+KPX Ydieresis amacron -100
+KPX Ydieresis aogonek -100
+KPX Ydieresis aring -100
+KPX Ydieresis atilde -100
+KPX Ydieresis colon -25
+KPX Ydieresis comma -100
+KPX Ydieresis e -100
+KPX Ydieresis eacute -100
+KPX Ydieresis ecaron -40
+KPX Ydieresis ecircumflex -100
+KPX Ydieresis edieresis -40
+KPX Ydieresis edotaccent -100
+KPX Ydieresis egrave -40
+KPX Ydieresis emacron -40
+KPX Ydieresis eogonek -100
+KPX Ydieresis hyphen -125
+KPX Ydieresis i -18
+KPX Ydieresis iacute -18
+KPX Ydieresis icircumflex -18
+KPX Ydieresis iogonek -18
+KPX Ydieresis o -100
+KPX Ydieresis oacute -100
+KPX Ydieresis ocircumflex -100
+KPX Ydieresis odieresis -40
+KPX Ydieresis ograve -40
+KPX Ydieresis ohungarumlaut -100
+KPX Ydieresis omacron -40
+KPX Ydieresis oslash -100
+KPX Ydieresis otilde -100
+KPX Ydieresis period -100
+KPX Ydieresis semicolon -25
+KPX Ydieresis u -55
+KPX Ydieresis uacute -55
+KPX Ydieresis ucircumflex -55
+KPX Ydieresis udieresis -55
+KPX Ydieresis ugrave -55
+KPX Ydieresis uhungarumlaut -55
+KPX Ydieresis umacron -55
+KPX Ydieresis uogonek -55
+KPX Ydieresis uring -55
+KPX colon space -18
+KPX comma quotedblright -18
+KPX comma quoteright -18
+KPX comma space -18
+KPX f quotedblright 75
+KPX f quoteright 75
+KPX period quotedblright -18
+KPX period quoteright -18
+KPX period space -18
+KPX quotedblleft A -74
+KPX quotedblleft Aacute -74
+KPX quotedblleft Abreve -74
+KPX quotedblleft Acircumflex -74
+KPX quotedblleft Adieresis -74
+KPX quotedblleft Agrave -74
+KPX quotedblleft Amacron -74
+KPX quotedblleft Aogonek -74
+KPX quotedblleft Aring -74
+KPX quotedblleft Atilde -74
+KPX quotedblright space -18
+KPX quoteleft A -74
+KPX quoteleft Aacute -74
+KPX quoteleft Abreve -74
+KPX quoteleft Acircumflex -74
+KPX quoteleft Adieresis -74
+KPX quoteleft Agrave -74
+KPX quoteleft Amacron -74
+KPX quoteleft Aogonek -74
+KPX quoteleft Aring -74
+KPX quoteleft Atilde -74
+KPX quoteright d -25
+KPX quoteright dcroat -25
+KPX quoteright s -25
+KPX quoteright sacute -25
+KPX quoteright scaron -25
+KPX quoteright scedilla -25
+KPX quoteright scommaaccent -25
+KPX r comma -74
+KPX r period -74
+KPX racute comma -74
+KPX racute period -74
+KPX rcaron comma -74
+KPX rcaron period -74
+KPX rcommaaccent comma -74
+KPX rcommaaccent period -74
+KPX semicolon space -18
+KPX space A -18
+KPX space Aacute -18
+KPX space Abreve -18
+KPX space Acircumflex -18
+KPX space Adieresis -18
+KPX space Agrave -18
+KPX space Amacron -18
+KPX space Aogonek -18
+KPX space Aring -18
+KPX space Atilde -18
+KPX space T -18
+KPX space Tcaron -18
+KPX space Tcommaaccent -18
+KPX space V -18
+KPX space W -18
+KPX space Y -18
+KPX space Yacute -18
+KPX space Ydieresis -18
+KPX space quotedblleft -18
+KPX space quoteleft -18
+KPX v comma -100
+KPX v period -100
+KPX w comma -100
+KPX w period -100
+KPX y comma -100
+KPX y period -100
+KPX yacute comma -100
+KPX yacute period -100
+KPX ydieresis comma -100
+KPX ydieresis period -100
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-BoldItalic.afm b/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-BoldItalic.afm
new file mode 100644
index 000000000000..f086dd260a87
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-BoldItalic.afm
@@ -0,0 +1,2997 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 14:34:01 1997
+Comment UniqueID 43097
+Comment VMusage 44127 55152
+FontName NewCenturySchlbk-BoldItalic
+FullName New Century Schoolbook Bold Italic
+FamilyName New Century Schoolbook
+Weight Bold
+ItalicAngle -16
+IsFixedPitch false
+FontBBox -205 -250 1147 991
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 722
+XHeight 477
+Ascender 737
+Descender -205
+StdHW 54
+StdVW 150
+StartCharMetrics 314
+C 32 ; WX 287 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 0 -15 333 737 ;
+C 34 ; WX 400 ; N quotedbl ; B 66 388 428 737 ;
+C 35 ; WX 574 ; N numbersign ; B 30 0 544 690 ;
+C 36 ; WX 574 ; N dollar ; B 9 -120 565 810 ;
+C 37 ; WX 889 ; N percent ; B 54 -28 835 727 ;
+C 38 ; WX 889 ; N ampersand ; B 32 -15 823 737 ;
+C 39 ; WX 259 ; N quoteright ; B 48 388 275 737 ;
+C 40 ; WX 407 ; N parenleft ; B 72 -117 454 745 ;
+C 41 ; WX 407 ; N parenright ; B -70 -117 310 745 ;
+C 42 ; WX 500 ; N asterisk ; B 58 301 498 737 ;
+C 43 ; WX 606 ; N plus ; B 50 0 556 506 ;
+C 44 ; WX 287 ; N comma ; B -57 -192 170 157 ;
+C 45 ; WX 333 ; N hyphen ; B 2 177 263 299 ;
+C 46 ; WX 287 ; N period ; B -20 -15 152 157 ;
+C 47 ; WX 278 ; N slash ; B -41 -15 320 737 ;
+C 48 ; WX 574 ; N zero ; B 21 -15 553 705 ;
+C 49 ; WX 574 ; N one ; B 25 0 489 705 ;
+C 50 ; WX 574 ; N two ; B -38 -3 538 705 ;
+C 51 ; WX 574 ; N three ; B -7 -15 536 705 ;
+C 52 ; WX 574 ; N four ; B -13 0 544 705 ;
+C 53 ; WX 574 ; N five ; B 0 -15 574 705 ;
+C 54 ; WX 574 ; N six ; B 31 -15 574 705 ;
+C 55 ; WX 574 ; N seven ; B 64 -15 593 705 ;
+C 56 ; WX 574 ; N eight ; B 0 -15 552 705 ;
+C 57 ; WX 574 ; N nine ; B 0 -15 543 705 ;
+C 58 ; WX 287 ; N colon ; B -20 -15 237 477 ;
+C 59 ; WX 287 ; N semicolon ; B -57 -192 237 477 ;
+C 60 ; WX 606 ; N less ; B 50 -9 556 515 ;
+C 61 ; WX 606 ; N equal ; B 50 103 556 403 ;
+C 62 ; WX 606 ; N greater ; B 50 -8 556 514 ;
+C 63 ; WX 481 ; N question ; B 79 -15 451 737 ;
+C 64 ; WX 747 ; N at ; B -4 -15 751 737 ;
+C 65 ; WX 741 ; N A ; B -75 0 716 737 ;
+C 66 ; WX 759 ; N B ; B -50 0 721 722 ;
+C 67 ; WX 759 ; N C ; B 37 -15 759 737 ;
+C 68 ; WX 833 ; N D ; B -47 0 796 722 ;
+C 69 ; WX 741 ; N E ; B -41 0 730 722 ;
+C 70 ; WX 704 ; N F ; B -41 0 730 722 ;
+C 71 ; WX 815 ; N G ; B 37 -15 805 737 ;
+C 72 ; WX 870 ; N H ; B -41 0 911 722 ;
+C 73 ; WX 444 ; N I ; B -41 0 485 722 ;
+C 74 ; WX 667 ; N J ; B -20 -15 708 722 ;
+C 75 ; WX 778 ; N K ; B -41 0 832 722 ;
+C 76 ; WX 704 ; N L ; B -41 0 670 722 ;
+C 77 ; WX 944 ; N M ; B -44 0 988 722 ;
+C 78 ; WX 852 ; N N ; B -61 -10 913 722 ;
+C 79 ; WX 833 ; N O ; B 37 -15 796 737 ;
+C 80 ; WX 741 ; N P ; B -41 0 730 722 ;
+C 81 ; WX 833 ; N Q ; B 37 -189 796 737 ;
+C 82 ; WX 796 ; N R ; B -41 -15 749 722 ;
+C 83 ; WX 685 ; N S ; B 1 -15 666 737 ;
+C 84 ; WX 722 ; N T ; B 41 0 759 722 ;
+C 85 ; WX 833 ; N U ; B 88 -15 900 722 ;
+C 86 ; WX 741 ; N V ; B 32 -10 802 722 ;
+C 87 ; WX 944 ; N W ; B 40 -10 1000 722 ;
+C 88 ; WX 741 ; N X ; B -82 0 801 722 ;
+C 89 ; WX 704 ; N Y ; B 13 0 775 722 ;
+C 90 ; WX 704 ; N Z ; B -33 0 711 722 ;
+C 91 ; WX 407 ; N bracketleft ; B 1 -109 464 737 ;
+C 92 ; WX 606 ; N backslash ; B 161 -15 445 737 ;
+C 93 ; WX 407 ; N bracketright ; B -101 -109 362 737 ;
+C 94 ; WX 606 ; N asciicircum ; B 66 325 540 690 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 259 ; N quoteleft ; B 47 388 274 737 ;
+C 97 ; WX 667 ; N a ; B 6 -15 636 477 ;
+C 98 ; WX 611 ; N b ; B 29 -15 557 737 ;
+C 99 ; WX 537 ; N c ; B 0 -15 482 477 ;
+C 100 ; WX 667 ; N d ; B 0 -15 660 737 ;
+C 101 ; WX 519 ; N e ; B 0 -15 479 477 ;
+C 102 ; WX 389 ; N f ; B -48 -205 550 737 ; L i fi ; L l fl ;
+C 103 ; WX 611 ; N g ; B -63 -205 604 528 ;
+C 104 ; WX 685 ; N h ; B 0 -15 639 737 ;
+C 105 ; WX 389 ; N i ; B 32 -15 345 737 ;
+C 106 ; WX 370 ; N j ; B -205 -205 347 737 ;
+C 107 ; WX 648 ; N k ; B -11 -15 578 737 ;
+C 108 ; WX 389 ; N l ; B 32 -15 375 737 ;
+C 109 ; WX 944 ; N m ; B 0 -15 909 477 ;
+C 110 ; WX 685 ; N n ; B 0 -15 639 477 ;
+C 111 ; WX 574 ; N o ; B 0 -15 530 477 ;
+C 112 ; WX 648 ; N p ; B -119 -205 590 477 ;
+C 113 ; WX 630 ; N q ; B 0 -205 587 477 ;
+C 114 ; WX 519 ; N r ; B 0 0 527 486 ;
+C 115 ; WX 481 ; N s ; B 0 -15 435 477 ;
+C 116 ; WX 407 ; N t ; B 24 -15 403 650 ;
+C 117 ; WX 685 ; N u ; B 30 -15 635 477 ;
+C 118 ; WX 556 ; N v ; B 30 -15 496 477 ;
+C 119 ; WX 833 ; N w ; B 30 -15 773 477 ;
+C 120 ; WX 574 ; N x ; B -46 -15 574 477 ;
+C 121 ; WX 519 ; N y ; B -66 -205 493 477 ;
+C 122 ; WX 519 ; N z ; B -19 -15 473 477 ;
+C 123 ; WX 407 ; N braceleft ; B 52 -109 408 737 ;
+C 124 ; WX 606 ; N bar ; B 249 -250 357 750 ;
+C 125 ; WX 407 ; N braceright ; B -25 -109 331 737 ;
+C 126 ; WX 606 ; N asciitilde ; B 72 160 534 346 ;
+C 161 ; WX 333 ; N exclamdown ; B -44 -205 289 547 ;
+C 162 ; WX 574 ; N cent ; B 30 -144 512 578 ;
+C 163 ; WX 574 ; N sterling ; B -18 -15 566 705 ;
+C 164 ; WX 167 ; N fraction ; B -166 -15 333 705 ;
+C 165 ; WX 574 ; N yen ; B 17 0 629 690 ;
+C 166 ; WX 574 ; N florin ; B -43 -205 575 737 ;
+C 167 ; WX 500 ; N section ; B -30 -146 515 737 ;
+C 168 ; WX 574 ; N currency ; B 27 84 547 605 ;
+C 169 ; WX 287 ; N quotesingle ; B 112 388 250 737 ;
+C 170 ; WX 481 ; N quotedblleft ; B 54 388 521 737 ;
+C 171 ; WX 481 ; N guillemotleft ; B -35 69 449 407 ;
+C 172 ; WX 278 ; N guilsinglleft ; B -25 69 244 407 ;
+C 173 ; WX 278 ; N guilsinglright ; B -26 69 243 407 ;
+C 174 ; WX 685 ; N fi ; B -70 -205 641 737 ;
+C 175 ; WX 685 ; N fl ; B -70 -205 671 737 ;
+C 177 ; WX 500 ; N endash ; B -47 189 479 287 ;
+C 178 ; WX 500 ; N dagger ; B 48 -146 508 737 ;
+C 179 ; WX 500 ; N daggerdbl ; B -60 -150 508 737 ;
+C 180 ; WX 287 ; N periodcentered ; B 57 200 229 372 ;
+C 182 ; WX 650 ; N paragraph ; B 25 -131 681 722 ;
+C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ;
+C 184 ; WX 259 ; N quotesinglbase ; B -57 -192 170 157 ;
+C 185 ; WX 481 ; N quotedblbase ; B -57 -192 412 157 ;
+C 186 ; WX 481 ; N quotedblright ; B 43 388 510 737 ;
+C 187 ; WX 481 ; N guillemotright ; B -31 69 453 407 ;
+C 188 ; WX 1000 ; N ellipsis ; B 81 -15 919 157 ;
+C 189 ; WX 1167 ; N perthousand ; B 20 -28 1147 727 ;
+C 191 ; WX 481 ; N questiondown ; B 0 -205 372 547 ;
+C 193 ; WX 333 ; N grave ; B 74 538 294 722 ;
+C 194 ; WX 333 ; N acute ; B 123 538 372 722 ;
+C 195 ; WX 333 ; N circumflex ; B 23 533 365 705 ;
+C 196 ; WX 333 ; N tilde ; B 28 561 398 690 ;
+C 197 ; WX 333 ; N macron ; B 47 573 404 649 ;
+C 198 ; WX 333 ; N breve ; B 67 535 390 698 ;
+C 199 ; WX 333 ; N dotaccent ; B 145 571 311 737 ;
+C 200 ; WX 333 ; N dieresis ; B 33 571 393 715 ;
+C 202 ; WX 333 ; N ring ; B 111 522 335 746 ;
+C 203 ; WX 333 ; N cedilla ; B -21 -220 225 3 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 15 538 480 722 ;
+C 206 ; WX 333 ; N ogonek ; B 36 -220 338 4 ;
+C 207 ; WX 333 ; N caron ; B 60 531 403 705 ;
+C 208 ; WX 1000 ; N emdash ; B -47 189 979 287 ;
+C 225 ; WX 889 ; N AE ; B -86 0 915 722 ;
+C 227 ; WX 412 ; N ordfeminine ; B 47 407 460 705 ;
+C 232 ; WX 704 ; N Lslash ; B -41 0 670 722 ;
+C 233 ; WX 833 ; N Oslash ; B 35 -68 798 790 ;
+C 234 ; WX 963 ; N OE ; B 29 0 989 722 ;
+C 235 ; WX 356 ; N ordmasculine ; B 42 407 394 705 ;
+C 241 ; WX 815 ; N ae ; B -18 -15 775 477 ;
+C 245 ; WX 389 ; N dotlessi ; B 32 -15 345 477 ;
+C 248 ; WX 389 ; N lslash ; B 24 -15 387 737 ;
+C 249 ; WX 574 ; N oslash ; B 0 -121 530 583 ;
+C 250 ; WX 852 ; N oe ; B -6 -15 812 477 ;
+C 251 ; WX 574 ; N germandbls ; B -91 -205 540 737 ;
+C -1 ; WX 444 ; N Idieresis ; B -41 0 509 915 ;
+C -1 ; WX 519 ; N eacute ; B 0 -15 479 722 ;
+C -1 ; WX 667 ; N abreve ; B 6 -15 636 698 ;
+C -1 ; WX 685 ; N uhungarumlaut ; B 30 -15 656 722 ;
+C -1 ; WX 519 ; N ecaron ; B 0 -15 496 705 ;
+C -1 ; WX 704 ; N Ydieresis ; B 13 0 775 915 ;
+C -1 ; WX 606 ; N divide ; B 50 -40 556 546 ;
+C -1 ; WX 704 ; N Yacute ; B 13 0 775 947 ;
+C -1 ; WX 741 ; N Acircumflex ; B -75 0 716 930 ;
+C -1 ; WX 667 ; N aacute ; B 6 -15 636 722 ;
+C -1 ; WX 833 ; N Ucircumflex ; B 88 -15 900 930 ;
+C -1 ; WX 519 ; N yacute ; B -66 -205 493 722 ;
+C -1 ; WX 481 ; N scommaaccent ; B 0 -250 435 477 ;
+C -1 ; WX 519 ; N ecircumflex ; B 0 -15 479 705 ;
+C -1 ; WX 833 ; N Uring ; B 88 -15 900 991 ;
+C -1 ; WX 833 ; N Udieresis ; B 88 -15 900 915 ;
+C -1 ; WX 667 ; N aogonek ; B 6 -230 636 477 ;
+C -1 ; WX 833 ; N Uacute ; B 88 -15 900 947 ;
+C -1 ; WX 685 ; N uogonek ; B 30 -233 635 477 ;
+C -1 ; WX 741 ; N Edieresis ; B -41 0 730 915 ;
+C -1 ; WX 833 ; N Dcroat ; B -47 0 796 722 ;
+C -1 ; WX 250 ; N commaaccent ; B -25 -250 141 -50 ;
+C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ;
+C -1 ; WX 741 ; N Emacron ; B -41 0 730 874 ;
+C -1 ; WX 537 ; N ccaron ; B 0 -15 505 705 ;
+C -1 ; WX 667 ; N aring ; B 6 -15 636 746 ;
+C -1 ; WX 852 ; N Ncommaaccent ; B -61 -230 913 722 ;
+C -1 ; WX 389 ; N lacute ; B 32 -15 500 947 ;
+C -1 ; WX 667 ; N agrave ; B 6 -15 636 722 ;
+C -1 ; WX 722 ; N Tcommaaccent ; B 41 -250 759 722 ;
+C -1 ; WX 759 ; N Cacute ; B 37 -15 759 947 ;
+C -1 ; WX 667 ; N atilde ; B 6 -15 636 690 ;
+C -1 ; WX 741 ; N Edotaccent ; B -41 0 730 937 ;
+C -1 ; WX 481 ; N scaron ; B 0 -15 477 705 ;
+C -1 ; WX 481 ; N scedilla ; B 0 -220 435 477 ;
+C -1 ; WX 389 ; N iacute ; B 32 -15 370 715 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 796 ; N Rcaron ; B -41 -15 749 930 ;
+C -1 ; WX 815 ; N Gcommaaccent ; B 37 -250 805 737 ;
+C -1 ; WX 685 ; N ucircumflex ; B 30 -15 635 705 ;
+C -1 ; WX 667 ; N acircumflex ; B 6 -15 636 705 ;
+C -1 ; WX 741 ; N Amacron ; B -75 0 716 874 ;
+C -1 ; WX 519 ; N rcaron ; B 0 0 527 695 ;
+C -1 ; WX 537 ; N ccedilla ; B 0 -220 482 477 ;
+C -1 ; WX 704 ; N Zdotaccent ; B -33 0 711 937 ;
+C -1 ; WX 741 ; N Thorn ; B -41 0 690 722 ;
+C -1 ; WX 833 ; N Omacron ; B 37 -15 796 874 ;
+C -1 ; WX 796 ; N Racute ; B -41 -15 749 947 ;
+C -1 ; WX 685 ; N Sacute ; B 1 -15 666 947 ;
+C -1 ; WX 747 ; N dcaron ; B 0 -15 826 737 ;
+C -1 ; WX 833 ; N Umacron ; B 88 -15 900 874 ;
+C -1 ; WX 685 ; N uring ; B 30 -15 635 746 ;
+C -1 ; WX 344 ; N threesuperior ; B 3 273 361 705 ;
+C -1 ; WX 833 ; N Ograve ; B 37 -15 796 947 ;
+C -1 ; WX 741 ; N Agrave ; B -75 0 716 947 ;
+C -1 ; WX 741 ; N Abreve ; B -75 0 716 923 ;
+C -1 ; WX 606 ; N multiply ; B 65 15 541 491 ;
+C -1 ; WX 685 ; N uacute ; B 30 -15 635 722 ;
+C -1 ; WX 722 ; N Tcaron ; B 41 0 759 930 ;
+C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 519 ; N ydieresis ; B -66 -205 493 690 ;
+C -1 ; WX 852 ; N Nacute ; B -61 -10 913 947 ;
+C -1 ; WX 389 ; N icircumflex ; B 21 -15 363 698 ;
+C -1 ; WX 741 ; N Ecircumflex ; B -41 0 730 930 ;
+C -1 ; WX 667 ; N adieresis ; B 6 -15 636 690 ;
+C -1 ; WX 519 ; N edieresis ; B 0 -15 486 690 ;
+C -1 ; WX 537 ; N cacute ; B 0 -15 482 722 ;
+C -1 ; WX 685 ; N nacute ; B 0 -15 639 722 ;
+C -1 ; WX 685 ; N umacron ; B 30 -15 635 649 ;
+C -1 ; WX 852 ; N Ncaron ; B -61 -10 913 930 ;
+C -1 ; WX 444 ; N Iacute ; B -41 0 488 947 ;
+C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ;
+C -1 ; WX 606 ; N brokenbar ; B 249 -175 357 675 ;
+C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ;
+C -1 ; WX 815 ; N Gbreve ; B 37 -15 805 923 ;
+C -1 ; WX 444 ; N Idotaccent ; B -41 0 485 937 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ;
+C -1 ; WX 741 ; N Egrave ; B -41 0 730 947 ;
+C -1 ; WX 519 ; N racute ; B 0 0 527 722 ;
+C -1 ; WX 574 ; N omacron ; B 0 -15 530 649 ;
+C -1 ; WX 704 ; N Zacute ; B -33 0 711 947 ;
+C -1 ; WX 704 ; N Zcaron ; B -33 0 711 930 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 833 ; N Eth ; B -47 0 796 722 ;
+C -1 ; WX 759 ; N Ccedilla ; B 37 -220 759 737 ;
+C -1 ; WX 389 ; N lcommaaccent ; B 25 -250 375 737 ;
+C -1 ; WX 447 ; N tcaron ; B 24 -15 544 767 ;
+C -1 ; WX 519 ; N eogonek ; B 0 -229 479 477 ;
+C -1 ; WX 833 ; N Uogonek ; B 88 -230 900 722 ;
+C -1 ; WX 741 ; N Aacute ; B -75 0 716 947 ;
+C -1 ; WX 741 ; N Adieresis ; B -75 0 716 915 ;
+C -1 ; WX 519 ; N egrave ; B 0 -15 479 722 ;
+C -1 ; WX 519 ; N zacute ; B -19 -15 473 722 ;
+C -1 ; WX 389 ; N iogonek ; B -8 -232 345 737 ;
+C -1 ; WX 833 ; N Oacute ; B 37 -15 796 947 ;
+C -1 ; WX 574 ; N oacute ; B 0 -15 530 722 ;
+C -1 ; WX 667 ; N amacron ; B 6 -15 636 649 ;
+C -1 ; WX 481 ; N sacute ; B 0 -15 446 722 ;
+C -1 ; WX 389 ; N idieresis ; B 31 -15 391 690 ;
+C -1 ; WX 833 ; N Ocircumflex ; B 37 -15 796 930 ;
+C -1 ; WX 833 ; N Ugrave ; B 88 -15 900 947 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 648 ; N thorn ; B -119 -205 590 737 ;
+C -1 ; WX 344 ; N twosuperior ; B -17 280 362 705 ;
+C -1 ; WX 833 ; N Odieresis ; B 37 -15 796 915 ;
+C -1 ; WX 685 ; N mu ; B -89 -205 635 477 ;
+C -1 ; WX 389 ; N igrave ; B 32 -15 345 715 ;
+C -1 ; WX 574 ; N ohungarumlaut ; B 0 -15 601 722 ;
+C -1 ; WX 741 ; N Eogonek ; B -41 -224 730 722 ;
+C -1 ; WX 667 ; N dcroat ; B 0 -15 734 737 ;
+C -1 ; WX 861 ; N threequarters ; B 35 -15 789 705 ;
+C -1 ; WX 685 ; N Scedilla ; B 1 -220 666 737 ;
+C -1 ; WX 449 ; N lcaron ; B 32 -15 541 737 ;
+C -1 ; WX 778 ; N Kcommaaccent ; B -41 -250 832 722 ;
+C -1 ; WX 704 ; N Lacute ; B -41 0 670 947 ;
+C -1 ; WX 950 ; N trademark ; B 42 317 1017 722 ;
+C -1 ; WX 519 ; N edotaccent ; B 0 -15 479 712 ;
+C -1 ; WX 444 ; N Igrave ; B -41 0 485 947 ;
+C -1 ; WX 444 ; N Imacron ; B -41 0 520 874 ;
+C -1 ; WX 704 ; N Lcaron ; B -41 0 702 737 ;
+C -1 ; WX 861 ; N onehalf ; B 17 -15 798 705 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 574 ; N ocircumflex ; B 0 -15 530 705 ;
+C -1 ; WX 685 ; N ntilde ; B 0 -15 639 690 ;
+C -1 ; WX 833 ; N Uhungarumlaut ; B 88 -15 900 947 ;
+C -1 ; WX 741 ; N Eacute ; B -41 0 730 947 ;
+C -1 ; WX 519 ; N emacron ; B 0 -15 497 649 ;
+C -1 ; WX 611 ; N gbreve ; B -63 -205 604 698 ;
+C -1 ; WX 861 ; N onequarter ; B 17 -15 789 705 ;
+C -1 ; WX 685 ; N Scaron ; B 1 -15 666 930 ;
+C -1 ; WX 685 ; N Scommaaccent ; B 1 -250 666 737 ;
+C -1 ; WX 833 ; N Ohungarumlaut ; B 37 -15 796 947 ;
+C -1 ; WX 400 ; N degree ; B 86 419 372 705 ;
+C -1 ; WX 574 ; N ograve ; B 0 -15 530 722 ;
+C -1 ; WX 759 ; N Ccaron ; B 37 -15 759 930 ;
+C -1 ; WX 685 ; N ugrave ; B 30 -15 635 722 ;
+C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 833 ; N Dcaron ; B -47 0 796 930 ;
+C -1 ; WX 519 ; N rcommaaccent ; B -31 -250 527 486 ;
+C -1 ; WX 852 ; N Ntilde ; B -61 -10 913 915 ;
+C -1 ; WX 574 ; N otilde ; B 0 -15 530 690 ;
+C -1 ; WX 796 ; N Rcommaaccent ; B -41 -250 749 722 ;
+C -1 ; WX 704 ; N Lcommaaccent ; B -41 -250 670 722 ;
+C -1 ; WX 741 ; N Atilde ; B -75 0 716 915 ;
+C -1 ; WX 741 ; N Aogonek ; B -75 -224 744 737 ;
+C -1 ; WX 741 ; N Aring ; B -75 0 716 991 ;
+C -1 ; WX 833 ; N Otilde ; B 37 -15 796 915 ;
+C -1 ; WX 519 ; N zdotaccent ; B -19 -15 473 712 ;
+C -1 ; WX 741 ; N Ecaron ; B -41 0 730 930 ;
+C -1 ; WX 444 ; N Iogonek ; B -41 -220 485 722 ;
+C -1 ; WX 648 ; N kcommaaccent ; B -11 -250 578 737 ;
+C -1 ; WX 606 ; N minus ; B 50 199 556 307 ;
+C -1 ; WX 444 ; N Icircumflex ; B -41 0 485 930 ;
+C -1 ; WX 685 ; N ncaron ; B 0 -15 639 705 ;
+C -1 ; WX 407 ; N tcommaaccent ; B -6 -250 403 650 ;
+C -1 ; WX 606 ; N logicalnot ; B 50 103 556 403 ;
+C -1 ; WX 574 ; N odieresis ; B 0 -15 530 690 ;
+C -1 ; WX 685 ; N udieresis ; B 30 -15 635 690 ;
+C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 611 ; N gcommaaccent ; B -63 -205 604 822 ;
+C -1 ; WX 574 ; N eth ; B 0 -15 530 752 ;
+C -1 ; WX 519 ; N zcaron ; B -19 -15 473 695 ;
+C -1 ; WX 685 ; N ncommaaccent ; B 0 -250 639 477 ;
+C -1 ; WX 344 ; N onesuperior ; B 19 282 326 705 ;
+C -1 ; WX 389 ; N imacron ; B 32 -15 376 642 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2653
+KPX A C 5
+KPX A Cacute 5
+KPX A Ccaron 5
+KPX A Ccedilla 5
+KPX A G 5
+KPX A Gbreve 5
+KPX A Gcommaaccent 5
+KPX A O 5
+KPX A Oacute 5
+KPX A Ocircumflex 5
+KPX A Odieresis 5
+KPX A Ograve 5
+KPX A Ohungarumlaut 5
+KPX A Omacron 5
+KPX A Oslash 5
+KPX A Otilde 5
+KPX A Q 5
+KPX A T 5
+KPX A Tcaron 5
+KPX A Tcommaaccent 5
+KPX A U -32
+KPX A Uacute -32
+KPX A Ucircumflex -32
+KPX A Udieresis -32
+KPX A Ugrave -32
+KPX A Uhungarumlaut -32
+KPX A Umacron -32
+KPX A Uogonek -32
+KPX A Uring -32
+KPX A V -100
+KPX A W -84
+KPX A Y -70
+KPX A Yacute -70
+KPX A Ydieresis -70
+KPX A quotedblright -95
+KPX A quoteright -95
+KPX A u -15
+KPX A uacute -15
+KPX A ucircumflex -15
+KPX A udieresis -15
+KPX A ugrave -15
+KPX A uhungarumlaut -15
+KPX A umacron -15
+KPX A uogonek -15
+KPX A uring -15
+KPX A v -10
+KPX A w -25
+KPX A y -33
+KPX A yacute -33
+KPX A ydieresis -33
+KPX Aacute C 5
+KPX Aacute Cacute 5
+KPX Aacute Ccaron 5
+KPX Aacute Ccedilla 5
+KPX Aacute G 5
+KPX Aacute Gbreve 5
+KPX Aacute Gcommaaccent 5
+KPX Aacute O 5
+KPX Aacute Oacute 5
+KPX Aacute Ocircumflex 5
+KPX Aacute Odieresis 5
+KPX Aacute Ograve 5
+KPX Aacute Ohungarumlaut 5
+KPX Aacute Omacron 5
+KPX Aacute Oslash 5
+KPX Aacute Otilde 5
+KPX Aacute Q 5
+KPX Aacute T 5
+KPX Aacute Tcaron 5
+KPX Aacute Tcommaaccent 5
+KPX Aacute U -32
+KPX Aacute Uacute -32
+KPX Aacute Ucircumflex -32
+KPX Aacute Udieresis -32
+KPX Aacute Ugrave -32
+KPX Aacute Uhungarumlaut -32
+KPX Aacute Umacron -32
+KPX Aacute Uogonek -32
+KPX Aacute Uring -32
+KPX Aacute V -100
+KPX Aacute W -84
+KPX Aacute Y -70
+KPX Aacute Yacute -70
+KPX Aacute Ydieresis -70
+KPX Aacute quotedblright -95
+KPX Aacute quoteright -95
+KPX Aacute u -15
+KPX Aacute uacute -15
+KPX Aacute ucircumflex -15
+KPX Aacute udieresis -15
+KPX Aacute ugrave -15
+KPX Aacute uhungarumlaut -15
+KPX Aacute umacron -15
+KPX Aacute uogonek -15
+KPX Aacute uring -15
+KPX Aacute v -10
+KPX Aacute w -25
+KPX Aacute y -33
+KPX Aacute yacute -33
+KPX Aacute ydieresis -33
+KPX Abreve C 5
+KPX Abreve Cacute 5
+KPX Abreve Ccaron 5
+KPX Abreve Ccedilla 5
+KPX Abreve G 5
+KPX Abreve Gbreve 5
+KPX Abreve Gcommaaccent 5
+KPX Abreve O 5
+KPX Abreve Oacute 5
+KPX Abreve Ocircumflex 5
+KPX Abreve Odieresis 5
+KPX Abreve Ograve 5
+KPX Abreve Ohungarumlaut 5
+KPX Abreve Omacron 5
+KPX Abreve Oslash 5
+KPX Abreve Otilde 5
+KPX Abreve Q 5
+KPX Abreve T 5
+KPX Abreve Tcaron 5
+KPX Abreve Tcommaaccent 5
+KPX Abreve U -32
+KPX Abreve Uacute -32
+KPX Abreve Ucircumflex -32
+KPX Abreve Udieresis -32
+KPX Abreve Ugrave -32
+KPX Abreve Uhungarumlaut -32
+KPX Abreve Umacron -32
+KPX Abreve Uogonek -32
+KPX Abreve Uring -32
+KPX Abreve V -100
+KPX Abreve W -84
+KPX Abreve Y -70
+KPX Abreve Yacute -70
+KPX Abreve Ydieresis -70
+KPX Abreve quotedblright -95
+KPX Abreve quoteright -95
+KPX Abreve u -15
+KPX Abreve uacute -15
+KPX Abreve ucircumflex -15
+KPX Abreve udieresis -15
+KPX Abreve ugrave -15
+KPX Abreve uhungarumlaut -15
+KPX Abreve umacron -15
+KPX Abreve uogonek -15
+KPX Abreve uring -15
+KPX Abreve v -10
+KPX Abreve w -25
+KPX Abreve y -33
+KPX Abreve yacute -33
+KPX Abreve ydieresis -33
+KPX Acircumflex C 5
+KPX Acircumflex Cacute 5
+KPX Acircumflex Ccaron 5
+KPX Acircumflex Ccedilla 5
+KPX Acircumflex G 5
+KPX Acircumflex Gbreve 5
+KPX Acircumflex Gcommaaccent 5
+KPX Acircumflex O 5
+KPX Acircumflex Oacute 5
+KPX Acircumflex Ocircumflex 5
+KPX Acircumflex Odieresis 5
+KPX Acircumflex Ograve 5
+KPX Acircumflex Ohungarumlaut 5
+KPX Acircumflex Omacron 5
+KPX Acircumflex Oslash 5
+KPX Acircumflex Otilde 5
+KPX Acircumflex Q 5
+KPX Acircumflex T 5
+KPX Acircumflex Tcaron 5
+KPX Acircumflex Tcommaaccent 5
+KPX Acircumflex U -32
+KPX Acircumflex Uacute -32
+KPX Acircumflex Ucircumflex -32
+KPX Acircumflex Udieresis -32
+KPX Acircumflex Ugrave -32
+KPX Acircumflex Uhungarumlaut -32
+KPX Acircumflex Umacron -32
+KPX Acircumflex Uogonek -32
+KPX Acircumflex Uring -32
+KPX Acircumflex V -100
+KPX Acircumflex W -84
+KPX Acircumflex Y -70
+KPX Acircumflex Yacute -70
+KPX Acircumflex Ydieresis -70
+KPX Acircumflex quotedblright -95
+KPX Acircumflex quoteright -95
+KPX Acircumflex u -15
+KPX Acircumflex uacute -15
+KPX Acircumflex ucircumflex -15
+KPX Acircumflex udieresis -15
+KPX Acircumflex ugrave -15
+KPX Acircumflex uhungarumlaut -15
+KPX Acircumflex umacron -15
+KPX Acircumflex uogonek -15
+KPX Acircumflex uring -15
+KPX Acircumflex v -10
+KPX Acircumflex w -25
+KPX Acircumflex y -33
+KPX Acircumflex yacute -33
+KPX Acircumflex ydieresis -33
+KPX Adieresis C 5
+KPX Adieresis Cacute 5
+KPX Adieresis Ccaron 5
+KPX Adieresis Ccedilla 5
+KPX Adieresis G 5
+KPX Adieresis Gbreve 5
+KPX Adieresis Gcommaaccent 5
+KPX Adieresis O 5
+KPX Adieresis Oacute 5
+KPX Adieresis Ocircumflex 5
+KPX Adieresis Odieresis 5
+KPX Adieresis Ograve 5
+KPX Adieresis Ohungarumlaut 5
+KPX Adieresis Omacron 5
+KPX Adieresis Oslash 5
+KPX Adieresis Otilde 5
+KPX Adieresis Q 5
+KPX Adieresis T 5
+KPX Adieresis Tcaron 5
+KPX Adieresis Tcommaaccent 5
+KPX Adieresis U -32
+KPX Adieresis Uacute -32
+KPX Adieresis Ucircumflex -32
+KPX Adieresis Udieresis -32
+KPX Adieresis Ugrave -32
+KPX Adieresis Uhungarumlaut -32
+KPX Adieresis Umacron -32
+KPX Adieresis Uogonek -32
+KPX Adieresis Uring -32
+KPX Adieresis V -100
+KPX Adieresis W -84
+KPX Adieresis Y -70
+KPX Adieresis Yacute -70
+KPX Adieresis Ydieresis -70
+KPX Adieresis quotedblright -95
+KPX Adieresis quoteright -95
+KPX Adieresis u -15
+KPX Adieresis uacute -15
+KPX Adieresis ucircumflex -15
+KPX Adieresis udieresis -15
+KPX Adieresis ugrave -15
+KPX Adieresis uhungarumlaut -15
+KPX Adieresis umacron -15
+KPX Adieresis uogonek -15
+KPX Adieresis uring -15
+KPX Adieresis v -10
+KPX Adieresis w -25
+KPX Adieresis y -33
+KPX Adieresis yacute -33
+KPX Adieresis ydieresis -33
+KPX Agrave C 5
+KPX Agrave Cacute 5
+KPX Agrave Ccaron 5
+KPX Agrave Ccedilla 5
+KPX Agrave G 5
+KPX Agrave Gbreve 5
+KPX Agrave Gcommaaccent 5
+KPX Agrave O 5
+KPX Agrave Oacute 5
+KPX Agrave Ocircumflex 5
+KPX Agrave Odieresis 5
+KPX Agrave Ograve 5
+KPX Agrave Ohungarumlaut 5
+KPX Agrave Omacron 5
+KPX Agrave Oslash 5
+KPX Agrave Otilde 5
+KPX Agrave Q 5
+KPX Agrave T 5
+KPX Agrave Tcaron 5
+KPX Agrave Tcommaaccent 5
+KPX Agrave U -32
+KPX Agrave Uacute -32
+KPX Agrave Ucircumflex -32
+KPX Agrave Udieresis -32
+KPX Agrave Ugrave -32
+KPX Agrave Uhungarumlaut -32
+KPX Agrave Umacron -32
+KPX Agrave Uogonek -32
+KPX Agrave Uring -32
+KPX Agrave V -100
+KPX Agrave W -84
+KPX Agrave Y -70
+KPX Agrave Yacute -70
+KPX Agrave Ydieresis -70
+KPX Agrave quotedblright -95
+KPX Agrave quoteright -95
+KPX Agrave u -15
+KPX Agrave uacute -15
+KPX Agrave ucircumflex -15
+KPX Agrave udieresis -15
+KPX Agrave ugrave -15
+KPX Agrave uhungarumlaut -15
+KPX Agrave umacron -15
+KPX Agrave uogonek -15
+KPX Agrave uring -15
+KPX Agrave v -10
+KPX Agrave w -25
+KPX Agrave y -33
+KPX Agrave yacute -33
+KPX Agrave ydieresis -33
+KPX Amacron C 5
+KPX Amacron Cacute 5
+KPX Amacron Ccaron 5
+KPX Amacron Ccedilla 5
+KPX Amacron G 5
+KPX Amacron Gbreve 5
+KPX Amacron Gcommaaccent 5
+KPX Amacron O 5
+KPX Amacron Oacute 5
+KPX Amacron Ocircumflex 5
+KPX Amacron Odieresis 5
+KPX Amacron Ograve 5
+KPX Amacron Ohungarumlaut 5
+KPX Amacron Omacron 5
+KPX Amacron Oslash 5
+KPX Amacron Otilde 5
+KPX Amacron Q 5
+KPX Amacron T 5
+KPX Amacron Tcaron 5
+KPX Amacron Tcommaaccent 5
+KPX Amacron U -32
+KPX Amacron Uacute -32
+KPX Amacron Ucircumflex -32
+KPX Amacron Udieresis -32
+KPX Amacron Ugrave -32
+KPX Amacron Uhungarumlaut -32
+KPX Amacron Umacron -32
+KPX Amacron Uogonek -32
+KPX Amacron Uring -32
+KPX Amacron V -100
+KPX Amacron W -84
+KPX Amacron Y -70
+KPX Amacron Yacute -70
+KPX Amacron Ydieresis -70
+KPX Amacron quotedblright -95
+KPX Amacron quoteright -95
+KPX Amacron u -15
+KPX Amacron uacute -15
+KPX Amacron ucircumflex -15
+KPX Amacron udieresis -15
+KPX Amacron ugrave -15
+KPX Amacron uhungarumlaut -15
+KPX Amacron umacron -15
+KPX Amacron uogonek -15
+KPX Amacron uring -15
+KPX Amacron v -10
+KPX Amacron w -25
+KPX Amacron y -33
+KPX Amacron yacute -33
+KPX Amacron ydieresis -33
+KPX Aogonek C 5
+KPX Aogonek Cacute 5
+KPX Aogonek Ccaron 5
+KPX Aogonek Ccedilla 5
+KPX Aogonek G 5
+KPX Aogonek Gbreve 5
+KPX Aogonek Gcommaaccent 5
+KPX Aogonek O 5
+KPX Aogonek Oacute 5
+KPX Aogonek Ocircumflex 5
+KPX Aogonek Odieresis 5
+KPX Aogonek Ograve 5
+KPX Aogonek Ohungarumlaut 5
+KPX Aogonek Omacron 5
+KPX Aogonek Oslash 5
+KPX Aogonek Otilde 5
+KPX Aogonek Q 5
+KPX Aogonek T 5
+KPX Aogonek Tcaron 5
+KPX Aogonek Tcommaaccent 5
+KPX Aogonek U -32
+KPX Aogonek Uacute -32
+KPX Aogonek Ucircumflex -32
+KPX Aogonek Udieresis -32
+KPX Aogonek Ugrave -32
+KPX Aogonek Uhungarumlaut -32
+KPX Aogonek Umacron -32
+KPX Aogonek Uogonek -32
+KPX Aogonek Uring -32
+KPX Aogonek V -100
+KPX Aogonek W -84
+KPX Aogonek Y -70
+KPX Aogonek Yacute -70
+KPX Aogonek Ydieresis -70
+KPX Aogonek quotedblright -95
+KPX Aogonek quoteright -95
+KPX Aogonek u -15
+KPX Aogonek uacute -15
+KPX Aogonek ucircumflex -15
+KPX Aogonek udieresis -15
+KPX Aogonek ugrave -15
+KPX Aogonek uhungarumlaut -15
+KPX Aogonek umacron -15
+KPX Aogonek uogonek -15
+KPX Aogonek uring -15
+KPX Aogonek v -10
+KPX Aogonek w -25
+KPX Aring C 5
+KPX Aring Cacute 5
+KPX Aring Ccaron 5
+KPX Aring Ccedilla 5
+KPX Aring G 5
+KPX Aring Gbreve 5
+KPX Aring Gcommaaccent 5
+KPX Aring O 5
+KPX Aring Oacute 5
+KPX Aring Ocircumflex 5
+KPX Aring Odieresis 5
+KPX Aring Ograve 5
+KPX Aring Ohungarumlaut 5
+KPX Aring Omacron 5
+KPX Aring Oslash 5
+KPX Aring Otilde 5
+KPX Aring Q 5
+KPX Aring T 5
+KPX Aring Tcaron 5
+KPX Aring Tcommaaccent 5
+KPX Aring U -32
+KPX Aring Uacute -32
+KPX Aring Ucircumflex -32
+KPX Aring Udieresis -32
+KPX Aring Ugrave -32
+KPX Aring Uhungarumlaut -32
+KPX Aring Umacron -32
+KPX Aring Uogonek -32
+KPX Aring Uring -32
+KPX Aring V -100
+KPX Aring W -84
+KPX Aring Y -70
+KPX Aring Yacute -70
+KPX Aring Ydieresis -70
+KPX Aring quotedblright -95
+KPX Aring quoteright -95
+KPX Aring u -15
+KPX Aring uacute -15
+KPX Aring ucircumflex -15
+KPX Aring udieresis -15
+KPX Aring ugrave -15
+KPX Aring uhungarumlaut -15
+KPX Aring umacron -15
+KPX Aring uogonek -15
+KPX Aring uring -15
+KPX Aring v -10
+KPX Aring w -25
+KPX Aring y -33
+KPX Aring yacute -33
+KPX Aring ydieresis -33
+KPX Atilde C 5
+KPX Atilde Cacute 5
+KPX Atilde Ccaron 5
+KPX Atilde Ccedilla 5
+KPX Atilde G 5
+KPX Atilde Gbreve 5
+KPX Atilde Gcommaaccent 5
+KPX Atilde O 5
+KPX Atilde Oacute 5
+KPX Atilde Ocircumflex 5
+KPX Atilde Odieresis 5
+KPX Atilde Ograve 5
+KPX Atilde Ohungarumlaut 5
+KPX Atilde Omacron 5
+KPX Atilde Oslash 5
+KPX Atilde Otilde 5
+KPX Atilde Q 5
+KPX Atilde T 5
+KPX Atilde Tcaron 5
+KPX Atilde Tcommaaccent 5
+KPX Atilde U -32
+KPX Atilde Uacute -32
+KPX Atilde Ucircumflex -32
+KPX Atilde Udieresis -32
+KPX Atilde Ugrave -32
+KPX Atilde Uhungarumlaut -32
+KPX Atilde Umacron -32
+KPX Atilde Uogonek -32
+KPX Atilde Uring -32
+KPX Atilde V -100
+KPX Atilde W -84
+KPX Atilde Y -70
+KPX Atilde Yacute -70
+KPX Atilde Ydieresis -70
+KPX Atilde quotedblright -95
+KPX Atilde quoteright -95
+KPX Atilde u -15
+KPX Atilde uacute -15
+KPX Atilde ucircumflex -15
+KPX Atilde udieresis -15
+KPX Atilde ugrave -15
+KPX Atilde uhungarumlaut -15
+KPX Atilde umacron -15
+KPX Atilde uogonek -15
+KPX Atilde uring -15
+KPX Atilde v -10
+KPX Atilde w -25
+KPX Atilde y -33
+KPX Atilde yacute -33
+KPX Atilde ydieresis -33
+KPX B A -11
+KPX B Aacute -11
+KPX B Abreve -11
+KPX B Acircumflex -11
+KPX B Adieresis -11
+KPX B Agrave -11
+KPX B Amacron -11
+KPX B Aogonek -11
+KPX B Aring -11
+KPX B Atilde -11
+KPX B U 15
+KPX B Uacute 15
+KPX B Ucircumflex 15
+KPX B Udieresis 15
+KPX B Ugrave 15
+KPX B Uhungarumlaut 15
+KPX B Umacron 15
+KPX B Uogonek 15
+KPX B Uring 15
+KPX B comma 15
+KPX B period 15
+KPX C A -5
+KPX C Aacute -5
+KPX C Abreve -5
+KPX C Acircumflex -5
+KPX C Adieresis -5
+KPX C Agrave -5
+KPX C Amacron -5
+KPX C Aogonek -5
+KPX C Aring -5
+KPX C Atilde -5
+KPX Cacute A -5
+KPX Cacute Aacute -5
+KPX Cacute Abreve -5
+KPX Cacute Acircumflex -5
+KPX Cacute Adieresis -5
+KPX Cacute Agrave -5
+KPX Cacute Amacron -5
+KPX Cacute Aogonek -5
+KPX Cacute Aring -5
+KPX Cacute Atilde -5
+KPX Ccaron A -5
+KPX Ccaron Aacute -5
+KPX Ccaron Abreve -5
+KPX Ccaron Acircumflex -5
+KPX Ccaron Adieresis -5
+KPX Ccaron Agrave -5
+KPX Ccaron Amacron -5
+KPX Ccaron Aogonek -5
+KPX Ccaron Aring -5
+KPX Ccaron Atilde -5
+KPX Ccedilla A -5
+KPX Ccedilla Aacute -5
+KPX Ccedilla Abreve -5
+KPX Ccedilla Acircumflex -5
+KPX Ccedilla Adieresis -5
+KPX Ccedilla Agrave -5
+KPX Ccedilla Amacron -5
+KPX Ccedilla Aogonek -5
+KPX Ccedilla Aring -5
+KPX Ccedilla Atilde -5
+KPX D V -18
+KPX D W -11
+KPX D Y 6
+KPX D Yacute 6
+KPX D Ydieresis 6
+KPX D comma -11
+KPX D period -11
+KPX Dcaron V -18
+KPX Dcaron W -11
+KPX Dcaron Y 6
+KPX Dcaron Yacute 6
+KPX Dcaron Ydieresis 6
+KPX Dcaron comma -11
+KPX Dcaron period -11
+KPX Dcroat V -18
+KPX Dcroat W -11
+KPX Dcroat Y 6
+KPX Dcroat Yacute 6
+KPX Dcroat Ydieresis 6
+KPX Dcroat comma -11
+KPX Dcroat period -11
+KPX F A -79
+KPX F Aacute -79
+KPX F Abreve -79
+KPX F Acircumflex -79
+KPX F Adieresis -79
+KPX F Agrave -79
+KPX F Amacron -79
+KPX F Aogonek -79
+KPX F Aring -79
+KPX F Atilde -79
+KPX F a -47
+KPX F aacute -47
+KPX F abreve -47
+KPX F acircumflex -47
+KPX F adieresis -47
+KPX F agrave -47
+KPX F amacron -47
+KPX F aogonek -47
+KPX F aring -47
+KPX F atilde -47
+KPX F comma -91
+KPX F e -41
+KPX F eacute -41
+KPX F ecaron -41
+KPX F ecircumflex -41
+KPX F edieresis -41
+KPX F edotaccent -41
+KPX F egrave -41
+KPX F emacron -41
+KPX F eogonek -41
+KPX F i -41
+KPX F iacute -41
+KPX F icircumflex -41
+KPX F idieresis -41
+KPX F igrave -41
+KPX F imacron -41
+KPX F iogonek -41
+KPX F o -47
+KPX F oacute -47
+KPX F ocircumflex -47
+KPX F odieresis -47
+KPX F ograve -47
+KPX F ohungarumlaut -47
+KPX F omacron -47
+KPX F oslash -47
+KPX F otilde -47
+KPX F period -91
+KPX F r -27
+KPX F racute -27
+KPX F rcaron -27
+KPX F rcommaaccent -27
+KPX J A -30
+KPX J Aacute -30
+KPX J Abreve -30
+KPX J Acircumflex -30
+KPX J Adieresis -30
+KPX J Agrave -30
+KPX J Amacron -30
+KPX J Aogonek -30
+KPX J Aring -30
+KPX J Atilde -30
+KPX J a -40
+KPX J aacute -40
+KPX J abreve -40
+KPX J acircumflex -40
+KPX J adieresis -40
+KPX J agrave -40
+KPX J amacron -40
+KPX J aogonek -40
+KPX J aring -40
+KPX J atilde -40
+KPX J comma -74
+KPX J e -33
+KPX J eacute -33
+KPX J ecaron -33
+KPX J ecircumflex -33
+KPX J edieresis -33
+KPX J edotaccent -33
+KPX J egrave -33
+KPX J emacron -33
+KPX J eogonek -33
+KPX J o -40
+KPX J oacute -40
+KPX J ocircumflex -40
+KPX J odieresis -40
+KPX J ograve -40
+KPX J ohungarumlaut -40
+KPX J omacron -40
+KPX J oslash -40
+KPX J otilde -40
+KPX J period -74
+KPX J u -39
+KPX J uacute -39
+KPX J ucircumflex -39
+KPX J udieresis -39
+KPX J ugrave -39
+KPX J uhungarumlaut -39
+KPX J umacron -39
+KPX J uogonek -39
+KPX J uring -39
+KPX K e 18
+KPX K eacute 18
+KPX K ecaron 18
+KPX K ecircumflex 18
+KPX K edieresis 18
+KPX K edotaccent 18
+KPX K egrave 18
+KPX K emacron 18
+KPX K eogonek 18
+KPX K o -4
+KPX K oacute -4
+KPX K ocircumflex -4
+KPX K odieresis -4
+KPX K ograve -4
+KPX K ohungarumlaut -4
+KPX K omacron -4
+KPX K oslash -4
+KPX K otilde -4
+KPX K u -4
+KPX K uacute -4
+KPX K ucircumflex -4
+KPX K udieresis -4
+KPX K ugrave -4
+KPX K uhungarumlaut -4
+KPX K umacron -4
+KPX K uogonek -4
+KPX K uring -4
+KPX K y -48
+KPX K yacute -48
+KPX K ydieresis -48
+KPX Kcommaaccent e 18
+KPX Kcommaaccent eacute 18
+KPX Kcommaaccent ecaron 18
+KPX Kcommaaccent ecircumflex 18
+KPX Kcommaaccent edieresis 18
+KPX Kcommaaccent edotaccent 18
+KPX Kcommaaccent egrave 18
+KPX Kcommaaccent emacron 18
+KPX Kcommaaccent eogonek 18
+KPX Kcommaaccent o -4
+KPX Kcommaaccent oacute -4
+KPX Kcommaaccent ocircumflex -4
+KPX Kcommaaccent odieresis -4
+KPX Kcommaaccent ograve -4
+KPX Kcommaaccent ohungarumlaut -4
+KPX Kcommaaccent omacron -4
+KPX Kcommaaccent oslash -4
+KPX Kcommaaccent otilde -4
+KPX Kcommaaccent u -4
+KPX Kcommaaccent uacute -4
+KPX Kcommaaccent ucircumflex -4
+KPX Kcommaaccent udieresis -4
+KPX Kcommaaccent ugrave -4
+KPX Kcommaaccent uhungarumlaut -4
+KPX Kcommaaccent umacron -4
+KPX Kcommaaccent uogonek -4
+KPX Kcommaaccent uring -4
+KPX Kcommaaccent y -48
+KPX Kcommaaccent yacute -48
+KPX Kcommaaccent ydieresis -48
+KPX L T -75
+KPX L Tcaron -75
+KPX L Tcommaaccent -75
+KPX L V -97
+KPX L W -69
+KPX L Y -55
+KPX L Yacute -55
+KPX L Ydieresis -55
+KPX L quotedblright -100
+KPX L quoteright -100
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -75
+KPX Lacute Tcaron -75
+KPX Lacute Tcommaaccent -75
+KPX Lacute V -97
+KPX Lacute W -69
+KPX Lacute Y -55
+KPX Lacute Yacute -55
+KPX Lacute Ydieresis -55
+KPX Lacute quotedblright -100
+KPX Lacute quoteright -100
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcommaaccent T -75
+KPX Lcommaaccent Tcaron -75
+KPX Lcommaaccent Tcommaaccent -75
+KPX Lcommaaccent V -97
+KPX Lcommaaccent W -69
+KPX Lcommaaccent Y -55
+KPX Lcommaaccent Yacute -55
+KPX Lcommaaccent Ydieresis -55
+KPX Lcommaaccent quotedblright -100
+KPX Lcommaaccent quoteright -100
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -75
+KPX Lslash Tcaron -75
+KPX Lslash Tcommaaccent -75
+KPX Lslash V -97
+KPX Lslash W -69
+KPX Lslash Y -55
+KPX Lslash Yacute -55
+KPX Lslash Ydieresis -55
+KPX Lslash quotedblright -100
+KPX Lslash quoteright -100
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX N comma -49
+KPX N period -49
+KPX Nacute comma -49
+KPX Nacute period -49
+KPX Ncaron comma -49
+KPX Ncaron period -49
+KPX Ncommaaccent comma -49
+KPX Ncommaaccent period -49
+KPX Ntilde comma -49
+KPX Ntilde period -49
+KPX O A -5
+KPX O Aacute -5
+KPX O Abreve -5
+KPX O Acircumflex -5
+KPX O Adieresis -5
+KPX O Agrave -5
+KPX O Amacron -5
+KPX O Aogonek -5
+KPX O Aring -5
+KPX O Atilde -5
+KPX O V -24
+KPX O W -15
+KPX O X -18
+KPX O comma -18
+KPX O period -18
+KPX Oacute A -5
+KPX Oacute Aacute -5
+KPX Oacute Abreve -5
+KPX Oacute Acircumflex -5
+KPX Oacute Adieresis -5
+KPX Oacute Agrave -5
+KPX Oacute Amacron -5
+KPX Oacute Aogonek -5
+KPX Oacute Aring -5
+KPX Oacute Atilde -5
+KPX Oacute V -24
+KPX Oacute W -15
+KPX Oacute X -18
+KPX Oacute comma -18
+KPX Oacute period -18
+KPX Ocircumflex A -5
+KPX Ocircumflex Aacute -5
+KPX Ocircumflex Abreve -5
+KPX Ocircumflex Acircumflex -5
+KPX Ocircumflex Adieresis -5
+KPX Ocircumflex Agrave -5
+KPX Ocircumflex Amacron -5
+KPX Ocircumflex Aogonek -5
+KPX Ocircumflex Aring -5
+KPX Ocircumflex Atilde -5
+KPX Ocircumflex V -24
+KPX Ocircumflex W -15
+KPX Ocircumflex X -18
+KPX Ocircumflex comma -18
+KPX Ocircumflex period -18
+KPX Odieresis A -5
+KPX Odieresis Aacute -5
+KPX Odieresis Abreve -5
+KPX Odieresis Acircumflex -5
+KPX Odieresis Adieresis -5
+KPX Odieresis Agrave -5
+KPX Odieresis Amacron -5
+KPX Odieresis Aogonek -5
+KPX Odieresis Aring -5
+KPX Odieresis Atilde -5
+KPX Odieresis V -24
+KPX Odieresis W -15
+KPX Odieresis X -18
+KPX Odieresis comma -18
+KPX Odieresis period -18
+KPX Ograve A -5
+KPX Ograve Aacute -5
+KPX Ograve Abreve -5
+KPX Ograve Acircumflex -5
+KPX Ograve Adieresis -5
+KPX Ograve Agrave -5
+KPX Ograve Amacron -5
+KPX Ograve Aogonek -5
+KPX Ograve Aring -5
+KPX Ograve Atilde -5
+KPX Ograve V -24
+KPX Ograve W -15
+KPX Ograve X -18
+KPX Ograve comma -18
+KPX Ograve period -18
+KPX Ohungarumlaut A -5
+KPX Ohungarumlaut Aacute -5
+KPX Ohungarumlaut Abreve -5
+KPX Ohungarumlaut Acircumflex -5
+KPX Ohungarumlaut Adieresis -5
+KPX Ohungarumlaut Agrave -5
+KPX Ohungarumlaut Amacron -5
+KPX Ohungarumlaut Aogonek -5
+KPX Ohungarumlaut Aring -5
+KPX Ohungarumlaut Atilde -5
+KPX Ohungarumlaut V -24
+KPX Ohungarumlaut W -15
+KPX Ohungarumlaut X -18
+KPX Ohungarumlaut comma -18
+KPX Ohungarumlaut period -18
+KPX Omacron A -5
+KPX Omacron Aacute -5
+KPX Omacron Abreve -5
+KPX Omacron Acircumflex -5
+KPX Omacron Adieresis -5
+KPX Omacron Agrave -5
+KPX Omacron Amacron -5
+KPX Omacron Aogonek -5
+KPX Omacron Aring -5
+KPX Omacron Atilde -5
+KPX Omacron V -24
+KPX Omacron W -15
+KPX Omacron X -18
+KPX Omacron comma -18
+KPX Omacron period -18
+KPX Oslash A -5
+KPX Oslash Aacute -5
+KPX Oslash Abreve -5
+KPX Oslash Acircumflex -5
+KPX Oslash Adieresis -5
+KPX Oslash Agrave -5
+KPX Oslash Amacron -5
+KPX Oslash Aogonek -5
+KPX Oslash Aring -5
+KPX Oslash Atilde -5
+KPX Oslash V -24
+KPX Oslash W -15
+KPX Oslash X -18
+KPX Oslash comma -18
+KPX Oslash period -18
+KPX Otilde A -5
+KPX Otilde Aacute -5
+KPX Otilde Abreve -5
+KPX Otilde Acircumflex -5
+KPX Otilde Adieresis -5
+KPX Otilde Agrave -5
+KPX Otilde Amacron -5
+KPX Otilde Aogonek -5
+KPX Otilde Aring -5
+KPX Otilde Atilde -5
+KPX Otilde V -24
+KPX Otilde W -15
+KPX Otilde X -18
+KPX Otilde comma -18
+KPX Otilde period -18
+KPX P A -80
+KPX P Aacute -80
+KPX P Abreve -80
+KPX P Acircumflex -80
+KPX P Adieresis -80
+KPX P Agrave -80
+KPX P Amacron -80
+KPX P Aogonek -80
+KPX P Aring -80
+KPX P Atilde -80
+KPX P a -40
+KPX P aacute -40
+KPX P abreve -40
+KPX P acircumflex -40
+KPX P adieresis -40
+KPX P agrave -40
+KPX P amacron -40
+KPX P aogonek -40
+KPX P aring -40
+KPX P atilde -40
+KPX P comma -100
+KPX P e -33
+KPX P eacute -33
+KPX P ecaron -33
+KPX P ecircumflex -33
+KPX P edieresis -33
+KPX P edotaccent -33
+KPX P egrave -33
+KPX P emacron -33
+KPX P eogonek -33
+KPX P o -40
+KPX P oacute -40
+KPX P ocircumflex -40
+KPX P odieresis -40
+KPX P ograve -40
+KPX P ohungarumlaut -40
+KPX P omacron -40
+KPX P oslash -40
+KPX P otilde -40
+KPX P period -100
+KPX R V -24
+KPX R W -14
+KPX Racute V -24
+KPX Racute W -14
+KPX Rcaron V -24
+KPX Rcaron W -14
+KPX Rcommaaccent V -24
+KPX Rcommaaccent W -14
+KPX S comma -18
+KPX S period -18
+KPX Sacute comma -18
+KPX Sacute period -18
+KPX Scaron comma -18
+KPX Scaron period -18
+KPX Scedilla comma -18
+KPX Scedilla period -18
+KPX Scommaaccent comma -18
+KPX Scommaaccent period -18
+KPX T A -60
+KPX T Aacute -60
+KPX T Abreve -60
+KPX T Acircumflex -60
+KPX T Adieresis -60
+KPX T Agrave -60
+KPX T Amacron -60
+KPX T Aogonek -60
+KPX T Aring -60
+KPX T Atilde -60
+KPX T O 11
+KPX T Oacute 11
+KPX T Ocircumflex 11
+KPX T Odieresis 11
+KPX T Ograve 11
+KPX T Ohungarumlaut 11
+KPX T Omacron 11
+KPX T Oslash 11
+KPX T Otilde 11
+KPX T a -40
+KPX T aacute -40
+KPX T abreve -40
+KPX T acircumflex -40
+KPX T adieresis -40
+KPX T agrave -40
+KPX T amacron -40
+KPX T aogonek -40
+KPX T aring -40
+KPX T atilde -40
+KPX T comma -55
+KPX T e -33
+KPX T eacute -33
+KPX T ecaron -33
+KPX T ecircumflex -33
+KPX T edieresis -33
+KPX T edotaccent -33
+KPX T egrave -33
+KPX T emacron -33
+KPX T eogonek -33
+KPX T h -9
+KPX T hyphen -75
+KPX T i -22
+KPX T iacute -22
+KPX T icircumflex -22
+KPX T idieresis -22
+KPX T igrave -22
+KPX T imacron -22
+KPX T iogonek -22
+KPX T o -40
+KPX T oacute -40
+KPX T ocircumflex -40
+KPX T odieresis -40
+KPX T ograve -40
+KPX T ohungarumlaut -40
+KPX T omacron -40
+KPX T oslash -40
+KPX T otilde -40
+KPX T period -55
+KPX T r -9
+KPX T racute -9
+KPX T rcaron -9
+KPX T rcommaaccent -9
+KPX T u -22
+KPX T uacute -22
+KPX T ucircumflex -22
+KPX T udieresis -22
+KPX T ugrave -22
+KPX T uhungarumlaut -22
+KPX T umacron -22
+KPX T uogonek -22
+KPX T uring -22
+KPX T w -30
+KPX T y -30
+KPX T yacute -30
+KPX T ydieresis -30
+KPX Tcaron A -60
+KPX Tcaron Aacute -60
+KPX Tcaron Abreve -60
+KPX Tcaron Acircumflex -60
+KPX Tcaron Adieresis -60
+KPX Tcaron Agrave -60
+KPX Tcaron Amacron -60
+KPX Tcaron Aogonek -60
+KPX Tcaron Aring -60
+KPX Tcaron Atilde -60
+KPX Tcaron O 11
+KPX Tcaron Oacute 11
+KPX Tcaron Ocircumflex 11
+KPX Tcaron Odieresis 11
+KPX Tcaron Ograve 11
+KPX Tcaron Ohungarumlaut 11
+KPX Tcaron Omacron 11
+KPX Tcaron Oslash 11
+KPX Tcaron Otilde 11
+KPX Tcaron a -40
+KPX Tcaron aacute -40
+KPX Tcaron abreve -40
+KPX Tcaron acircumflex -40
+KPX Tcaron adieresis -40
+KPX Tcaron agrave -40
+KPX Tcaron amacron -40
+KPX Tcaron aogonek -40
+KPX Tcaron aring -40
+KPX Tcaron atilde -40
+KPX Tcaron comma -55
+KPX Tcaron e -33
+KPX Tcaron eacute -33
+KPX Tcaron ecaron -33
+KPX Tcaron ecircumflex -33
+KPX Tcaron edieresis -33
+KPX Tcaron edotaccent -33
+KPX Tcaron egrave -33
+KPX Tcaron emacron -33
+KPX Tcaron eogonek -33
+KPX Tcaron h -9
+KPX Tcaron hyphen -75
+KPX Tcaron i -22
+KPX Tcaron iacute -22
+KPX Tcaron icircumflex -22
+KPX Tcaron idieresis -22
+KPX Tcaron igrave -22
+KPX Tcaron imacron -22
+KPX Tcaron iogonek -22
+KPX Tcaron o -40
+KPX Tcaron oacute -40
+KPX Tcaron ocircumflex -40
+KPX Tcaron odieresis -40
+KPX Tcaron ograve -40
+KPX Tcaron ohungarumlaut -40
+KPX Tcaron omacron -40
+KPX Tcaron oslash -40
+KPX Tcaron otilde -40
+KPX Tcaron period -55
+KPX Tcaron r -9
+KPX Tcaron racute -9
+KPX Tcaron rcaron -9
+KPX Tcaron rcommaaccent -9
+KPX Tcaron u -22
+KPX Tcaron uacute -22
+KPX Tcaron ucircumflex -22
+KPX Tcaron udieresis -22
+KPX Tcaron ugrave -22
+KPX Tcaron uhungarumlaut -22
+KPX Tcaron umacron -22
+KPX Tcaron uogonek -22
+KPX Tcaron uring -22
+KPX Tcaron w -30
+KPX Tcaron y -30
+KPX Tcaron yacute -30
+KPX Tcaron ydieresis -30
+KPX Tcommaaccent A -60
+KPX Tcommaaccent Aacute -60
+KPX Tcommaaccent Abreve -60
+KPX Tcommaaccent Acircumflex -60
+KPX Tcommaaccent Adieresis -60
+KPX Tcommaaccent Agrave -60
+KPX Tcommaaccent Amacron -60
+KPX Tcommaaccent Aogonek -60
+KPX Tcommaaccent Aring -60
+KPX Tcommaaccent Atilde -60
+KPX Tcommaaccent O 11
+KPX Tcommaaccent Oacute 11
+KPX Tcommaaccent Ocircumflex 11
+KPX Tcommaaccent Odieresis 11
+KPX Tcommaaccent Ograve 11
+KPX Tcommaaccent Ohungarumlaut 11
+KPX Tcommaaccent Omacron 11
+KPX Tcommaaccent Oslash 11
+KPX Tcommaaccent Otilde 11
+KPX Tcommaaccent a -40
+KPX Tcommaaccent aacute -40
+KPX Tcommaaccent abreve -40
+KPX Tcommaaccent acircumflex -40
+KPX Tcommaaccent adieresis -40
+KPX Tcommaaccent agrave -40
+KPX Tcommaaccent amacron -40
+KPX Tcommaaccent aogonek -40
+KPX Tcommaaccent aring -40
+KPX Tcommaaccent atilde -40
+KPX Tcommaaccent comma -55
+KPX Tcommaaccent e -33
+KPX Tcommaaccent eacute -33
+KPX Tcommaaccent ecaron -33
+KPX Tcommaaccent ecircumflex -33
+KPX Tcommaaccent edieresis -33
+KPX Tcommaaccent edotaccent -33
+KPX Tcommaaccent egrave -33
+KPX Tcommaaccent emacron -33
+KPX Tcommaaccent eogonek -33
+KPX Tcommaaccent h -9
+KPX Tcommaaccent hyphen -75
+KPX Tcommaaccent i -22
+KPX Tcommaaccent iacute -22
+KPX Tcommaaccent icircumflex -22
+KPX Tcommaaccent idieresis -22
+KPX Tcommaaccent igrave -22
+KPX Tcommaaccent imacron -22
+KPX Tcommaaccent iogonek -22
+KPX Tcommaaccent o -40
+KPX Tcommaaccent oacute -40
+KPX Tcommaaccent ocircumflex -40
+KPX Tcommaaccent odieresis -40
+KPX Tcommaaccent ograve -40
+KPX Tcommaaccent ohungarumlaut -40
+KPX Tcommaaccent omacron -40
+KPX Tcommaaccent oslash -40
+KPX Tcommaaccent otilde -40
+KPX Tcommaaccent period -55
+KPX Tcommaaccent r -9
+KPX Tcommaaccent racute -9
+KPX Tcommaaccent rcaron -9
+KPX Tcommaaccent rcommaaccent -9
+KPX Tcommaaccent u -22
+KPX Tcommaaccent uacute -22
+KPX Tcommaaccent ucircumflex -22
+KPX Tcommaaccent udieresis -22
+KPX Tcommaaccent ugrave -22
+KPX Tcommaaccent uhungarumlaut -22
+KPX Tcommaaccent umacron -22
+KPX Tcommaaccent uogonek -22
+KPX Tcommaaccent uring -22
+KPX Tcommaaccent w -30
+KPX Tcommaaccent y -30
+KPX Tcommaaccent yacute -30
+KPX Tcommaaccent ydieresis -30
+KPX U A -42
+KPX U Aacute -42
+KPX U Abreve -42
+KPX U Acircumflex -42
+KPX U Adieresis -42
+KPX U Agrave -42
+KPX U Amacron -42
+KPX U Aogonek -42
+KPX U Aring -42
+KPX U Atilde -42
+KPX U comma -25
+KPX U period -25
+KPX Uacute A -42
+KPX Uacute Aacute -42
+KPX Uacute Abreve -42
+KPX Uacute Acircumflex -42
+KPX Uacute Adieresis -42
+KPX Uacute Agrave -42
+KPX Uacute Amacron -42
+KPX Uacute Aogonek -42
+KPX Uacute Aring -42
+KPX Uacute Atilde -42
+KPX Uacute comma -25
+KPX Uacute period -25
+KPX Ucircumflex A -42
+KPX Ucircumflex Aacute -42
+KPX Ucircumflex Abreve -42
+KPX Ucircumflex Acircumflex -42
+KPX Ucircumflex Adieresis -42
+KPX Ucircumflex Agrave -42
+KPX Ucircumflex Amacron -42
+KPX Ucircumflex Aogonek -42
+KPX Ucircumflex Aring -42
+KPX Ucircumflex Atilde -42
+KPX Ucircumflex comma -25
+KPX Ucircumflex period -25
+KPX Udieresis A -42
+KPX Udieresis Aacute -42
+KPX Udieresis Abreve -42
+KPX Udieresis Acircumflex -42
+KPX Udieresis Adieresis -42
+KPX Udieresis Agrave -42
+KPX Udieresis Amacron -42
+KPX Udieresis Aogonek -42
+KPX Udieresis Aring -42
+KPX Udieresis Atilde -42
+KPX Udieresis comma -25
+KPX Udieresis period -25
+KPX Ugrave A -42
+KPX Ugrave Aacute -42
+KPX Ugrave Abreve -42
+KPX Ugrave Acircumflex -42
+KPX Ugrave Adieresis -42
+KPX Ugrave Agrave -42
+KPX Ugrave Amacron -42
+KPX Ugrave Aogonek -42
+KPX Ugrave Aring -42
+KPX Ugrave Atilde -42
+KPX Ugrave comma -25
+KPX Ugrave period -25
+KPX Uhungarumlaut A -42
+KPX Uhungarumlaut Aacute -42
+KPX Uhungarumlaut Abreve -42
+KPX Uhungarumlaut Acircumflex -42
+KPX Uhungarumlaut Adieresis -42
+KPX Uhungarumlaut Agrave -42
+KPX Uhungarumlaut Amacron -42
+KPX Uhungarumlaut Aogonek -42
+KPX Uhungarumlaut Aring -42
+KPX Uhungarumlaut Atilde -42
+KPX Uhungarumlaut comma -25
+KPX Uhungarumlaut period -25
+KPX Umacron A -42
+KPX Umacron Aacute -42
+KPX Umacron Abreve -42
+KPX Umacron Acircumflex -42
+KPX Umacron Adieresis -42
+KPX Umacron Agrave -42
+KPX Umacron Amacron -42
+KPX Umacron Aogonek -42
+KPX Umacron Aring -42
+KPX Umacron Atilde -42
+KPX Umacron comma -25
+KPX Umacron period -25
+KPX Uogonek A -42
+KPX Uogonek Aacute -42
+KPX Uogonek Abreve -42
+KPX Uogonek Acircumflex -42
+KPX Uogonek Adieresis -42
+KPX Uogonek Agrave -42
+KPX Uogonek Amacron -42
+KPX Uogonek Aogonek -42
+KPX Uogonek Aring -42
+KPX Uogonek Atilde -42
+KPX Uogonek comma -25
+KPX Uogonek period -25
+KPX Uring A -42
+KPX Uring Aacute -42
+KPX Uring Abreve -42
+KPX Uring Acircumflex -42
+KPX Uring Adieresis -42
+KPX Uring Agrave -42
+KPX Uring Amacron -42
+KPX Uring Aogonek -42
+KPX Uring Aring -42
+KPX Uring Atilde -42
+KPX Uring comma -25
+KPX Uring period -25
+KPX V A -100
+KPX V Aacute -100
+KPX V Abreve -100
+KPX V Acircumflex -100
+KPX V Adieresis -100
+KPX V Agrave -100
+KPX V Amacron -100
+KPX V Aogonek -100
+KPX V Aring -100
+KPX V Atilde -100
+KPX V G -12
+KPX V Gbreve -12
+KPX V Gcommaaccent -12
+KPX V O -19
+KPX V Oacute -19
+KPX V Ocircumflex -19
+KPX V Odieresis -19
+KPX V Ograve -19
+KPX V Ohungarumlaut -19
+KPX V Omacron -19
+KPX V Oslash -19
+KPX V Otilde -19
+KPX V a -55
+KPX V aacute -55
+KPX V abreve -55
+KPX V acircumflex -55
+KPX V adieresis -55
+KPX V agrave -55
+KPX V amacron -55
+KPX V aogonek -55
+KPX V aring -55
+KPX V atilde -55
+KPX V colon -49
+KPX V comma -94
+KPX V e -66
+KPX V eacute -66
+KPX V ecaron -66
+KPX V ecircumflex -66
+KPX V edieresis -66
+KPX V edotaccent -66
+KPX V egrave -66
+KPX V emacron -66
+KPX V eogonek -66
+KPX V hyphen -94
+KPX V i -35
+KPX V iacute -35
+KPX V iogonek -35
+KPX V o -71
+KPX V oacute -71
+KPX V ocircumflex -71
+KPX V odieresis -71
+KPX V ograve -71
+KPX V ohungarumlaut -71
+KPX V omacron -71
+KPX V oslash -71
+KPX V otilde -71
+KPX V period -94
+KPX V semicolon 6
+KPX V u -70
+KPX V uacute -70
+KPX V ucircumflex -70
+KPX V udieresis -70
+KPX V ugrave -70
+KPX V uhungarumlaut -70
+KPX V umacron -70
+KPX V uogonek -70
+KPX V uring -70
+KPX W A -66
+KPX W Aacute -66
+KPX W Abreve -66
+KPX W Acircumflex -66
+KPX W Adieresis -66
+KPX W Agrave -66
+KPX W Amacron -66
+KPX W Aogonek -66
+KPX W Aring -66
+KPX W Atilde -66
+KPX W O -11
+KPX W Oacute -11
+KPX W Ocircumflex -11
+KPX W Odieresis -11
+KPX W Ograve -11
+KPX W Ohungarumlaut -11
+KPX W Omacron -11
+KPX W Oslash -11
+KPX W Otilde -11
+KPX W a -33
+KPX W aacute -33
+KPX W abreve -33
+KPX W acircumflex -33
+KPX W adieresis -33
+KPX W agrave -33
+KPX W amacron -33
+KPX W aogonek -33
+KPX W aring -33
+KPX W atilde -33
+KPX W colon -22
+KPX W comma -86
+KPX W e -39
+KPX W eacute -39
+KPX W ecaron -39
+KPX W ecircumflex -39
+KPX W edieresis -39
+KPX W edotaccent -39
+KPX W egrave -39
+KPX W emacron -39
+KPX W eogonek -39
+KPX W h 5
+KPX W hyphen -61
+KPX W i -27
+KPX W iacute -27
+KPX W iogonek -27
+KPX W o -33
+KPX W oacute -33
+KPX W ocircumflex -33
+KPX W odieresis -33
+KPX W ograve -33
+KPX W ohungarumlaut -33
+KPX W omacron -33
+KPX W oslash -33
+KPX W otilde -33
+KPX W period -86
+KPX W semicolon -22
+KPX W u -25
+KPX W uacute -25
+KPX W ucircumflex -25
+KPX W udieresis -25
+KPX W ugrave -25
+KPX W uhungarumlaut -25
+KPX W umacron -25
+KPX W uogonek -25
+KPX W uring -25
+KPX W y -41
+KPX W yacute -41
+KPX W ydieresis -41
+KPX Y A -79
+KPX Y Aacute -79
+KPX Y Abreve -79
+KPX Y Acircumflex -79
+KPX Y Adieresis -79
+KPX Y Agrave -79
+KPX Y Amacron -79
+KPX Y Aogonek -79
+KPX Y Aring -79
+KPX Y Atilde -79
+KPX Y a -77
+KPX Y aacute -77
+KPX Y abreve -77
+KPX Y acircumflex -77
+KPX Y adieresis -77
+KPX Y agrave -77
+KPX Y amacron -77
+KPX Y aogonek -77
+KPX Y aring -77
+KPX Y atilde -77
+KPX Y colon -55
+KPX Y comma -91
+KPX Y e -71
+KPX Y eacute -71
+KPX Y ecaron -71
+KPX Y ecircumflex -71
+KPX Y edieresis -31
+KPX Y edotaccent -71
+KPX Y egrave -31
+KPX Y emacron -71
+KPX Y eogonek -71
+KPX Y hyphen -91
+KPX Y i -22
+KPX Y iacute -22
+KPX Y icircumflex -22
+KPX Y iogonek -22
+KPX Y o -77
+KPX Y oacute -77
+KPX Y ocircumflex -77
+KPX Y odieresis -77
+KPX Y ograve -77
+KPX Y ohungarumlaut -77
+KPX Y omacron -77
+KPX Y oslash -77
+KPX Y otilde -77
+KPX Y period -91
+KPX Y semicolon -55
+KPX Y u -58
+KPX Y uacute -58
+KPX Y ucircumflex -58
+KPX Y udieresis -58
+KPX Y ugrave -58
+KPX Y uhungarumlaut -58
+KPX Y umacron -58
+KPX Y uogonek -58
+KPX Y uring -58
+KPX Yacute A -79
+KPX Yacute Aacute -79
+KPX Yacute Abreve -79
+KPX Yacute Acircumflex -79
+KPX Yacute Adieresis -79
+KPX Yacute Agrave -79
+KPX Yacute Amacron -79
+KPX Yacute Aogonek -79
+KPX Yacute Aring -79
+KPX Yacute Atilde -79
+KPX Yacute a -77
+KPX Yacute aacute -77
+KPX Yacute abreve -77
+KPX Yacute acircumflex -77
+KPX Yacute adieresis -77
+KPX Yacute agrave -77
+KPX Yacute amacron -77
+KPX Yacute aogonek -77
+KPX Yacute aring -77
+KPX Yacute atilde -77
+KPX Yacute colon -55
+KPX Yacute comma -91
+KPX Yacute e -71
+KPX Yacute eacute -71
+KPX Yacute ecaron -71
+KPX Yacute ecircumflex -71
+KPX Yacute edieresis -31
+KPX Yacute edotaccent -71
+KPX Yacute egrave -31
+KPX Yacute emacron -71
+KPX Yacute eogonek -71
+KPX Yacute hyphen -91
+KPX Yacute i -22
+KPX Yacute iacute -22
+KPX Yacute icircumflex -22
+KPX Yacute iogonek -22
+KPX Yacute o -77
+KPX Yacute oacute -77
+KPX Yacute ocircumflex -77
+KPX Yacute odieresis -77
+KPX Yacute ograve -77
+KPX Yacute ohungarumlaut -77
+KPX Yacute omacron -77
+KPX Yacute oslash -77
+KPX Yacute otilde -77
+KPX Yacute period -91
+KPX Yacute semicolon -55
+KPX Yacute u -58
+KPX Yacute uacute -58
+KPX Yacute ucircumflex -58
+KPX Yacute udieresis -58
+KPX Yacute ugrave -58
+KPX Yacute uhungarumlaut -58
+KPX Yacute umacron -58
+KPX Yacute uogonek -58
+KPX Yacute uring -58
+KPX Ydieresis A -79
+KPX Ydieresis Aacute -79
+KPX Ydieresis Abreve -79
+KPX Ydieresis Acircumflex -79
+KPX Ydieresis Adieresis -79
+KPX Ydieresis Agrave -79
+KPX Ydieresis Amacron -79
+KPX Ydieresis Aogonek -79
+KPX Ydieresis Aring -79
+KPX Ydieresis Atilde -79
+KPX Ydieresis a -77
+KPX Ydieresis aacute -77
+KPX Ydieresis abreve -77
+KPX Ydieresis acircumflex -77
+KPX Ydieresis adieresis -77
+KPX Ydieresis agrave -77
+KPX Ydieresis amacron -77
+KPX Ydieresis aogonek -77
+KPX Ydieresis aring -77
+KPX Ydieresis atilde -77
+KPX Ydieresis colon -55
+KPX Ydieresis comma -91
+KPX Ydieresis e -71
+KPX Ydieresis eacute -71
+KPX Ydieresis ecaron -71
+KPX Ydieresis ecircumflex -71
+KPX Ydieresis edieresis -31
+KPX Ydieresis edotaccent -71
+KPX Ydieresis egrave -31
+KPX Ydieresis emacron -71
+KPX Ydieresis eogonek -71
+KPX Ydieresis hyphen -91
+KPX Ydieresis i -22
+KPX Ydieresis iacute -22
+KPX Ydieresis icircumflex -22
+KPX Ydieresis iogonek -22
+KPX Ydieresis o -77
+KPX Ydieresis oacute -77
+KPX Ydieresis ocircumflex -77
+KPX Ydieresis odieresis -77
+KPX Ydieresis ograve -77
+KPX Ydieresis ohungarumlaut -77
+KPX Ydieresis omacron -77
+KPX Ydieresis oslash -77
+KPX Ydieresis otilde -77
+KPX Ydieresis period -91
+KPX Ydieresis semicolon -55
+KPX Ydieresis u -58
+KPX Ydieresis uacute -58
+KPX Ydieresis ucircumflex -58
+KPX Ydieresis udieresis -58
+KPX Ydieresis ugrave -58
+KPX Ydieresis uhungarumlaut -58
+KPX Ydieresis umacron -58
+KPX Ydieresis uogonek -58
+KPX Ydieresis uring -58
+KPX a v 6
+KPX a w -8
+KPX a y -8
+KPX a yacute -8
+KPX a ydieresis -8
+KPX aacute v 6
+KPX aacute w -8
+KPX aacute y -8
+KPX aacute yacute -8
+KPX aacute ydieresis -8
+KPX abreve v 6
+KPX abreve w -8
+KPX abreve y -8
+KPX abreve yacute -8
+KPX abreve ydieresis -8
+KPX acircumflex v 6
+KPX acircumflex w -8
+KPX acircumflex y -8
+KPX acircumflex yacute -8
+KPX acircumflex ydieresis -8
+KPX adieresis v 6
+KPX adieresis w -8
+KPX adieresis y -8
+KPX adieresis yacute -8
+KPX adieresis ydieresis -8
+KPX agrave v 6
+KPX agrave w -8
+KPX agrave y -8
+KPX agrave yacute -8
+KPX agrave ydieresis -8
+KPX amacron v 6
+KPX amacron w -8
+KPX amacron y -8
+KPX amacron yacute -8
+KPX amacron ydieresis -8
+KPX aogonek v 6
+KPX aogonek w -8
+KPX aogonek y 18
+KPX aogonek yacute 18
+KPX aogonek ydieresis 18
+KPX aring v 6
+KPX aring w -8
+KPX aring y -8
+KPX aring yacute -8
+KPX aring ydieresis -8
+KPX atilde v 6
+KPX atilde w -8
+KPX atilde y -8
+KPX atilde yacute -8
+KPX atilde ydieresis -8
+KPX b comma 6
+KPX b period 6
+KPX b v 8
+KPX b y -6
+KPX b yacute -6
+KPX b ydieresis -6
+KPX c comma -8
+KPX c h -18
+KPX c k -8
+KPX c kcommaaccent -8
+KPX c l -13
+KPX c lacute -13
+KPX c lcommaaccent -13
+KPX c lslash -13
+KPX c period -8
+KPX c y -20
+KPX c yacute -20
+KPX c ydieresis -20
+KPX cacute comma -8
+KPX cacute h -18
+KPX cacute k -8
+KPX cacute kcommaaccent -8
+KPX cacute l -13
+KPX cacute lacute -13
+KPX cacute lcommaaccent -13
+KPX cacute lslash -13
+KPX cacute period -8
+KPX cacute y -20
+KPX cacute yacute -20
+KPX cacute ydieresis -20
+KPX ccaron comma -8
+KPX ccaron h -18
+KPX ccaron k -8
+KPX ccaron kcommaaccent -8
+KPX ccaron l -13
+KPX ccaron lacute -13
+KPX ccaron lcommaaccent -13
+KPX ccaron lslash -13
+KPX ccaron period -8
+KPX ccaron y -20
+KPX ccaron yacute -20
+KPX ccaron ydieresis -20
+KPX ccedilla comma -8
+KPX ccedilla h -18
+KPX ccedilla k -8
+KPX ccedilla kcommaaccent -8
+KPX ccedilla l -13
+KPX ccedilla lacute -13
+KPX ccedilla lcommaaccent -13
+KPX ccedilla lslash -13
+KPX ccedilla period -8
+KPX ccedilla y -20
+KPX ccedilla yacute -20
+KPX ccedilla ydieresis -20
+KPX colon space -18
+KPX comma quotedblright -18
+KPX comma quoteright -18
+KPX comma space -18
+KPX d w -15
+KPX d y -15
+KPX d yacute -15
+KPX d ydieresis -15
+KPX dcroat w -15
+KPX dcroat y -15
+KPX dcroat yacute -15
+KPX dcroat ydieresis -15
+KPX e b -8
+KPX e g -4
+KPX e gbreve -4
+KPX e gcommaaccent -4
+KPX e p -11
+KPX e w -15
+KPX e x -5
+KPX e y -15
+KPX e yacute -15
+KPX e ydieresis -15
+KPX eacute b -8
+KPX eacute g -4
+KPX eacute gbreve -4
+KPX eacute gcommaaccent -4
+KPX eacute p -11
+KPX eacute w -15
+KPX eacute x -5
+KPX eacute y -15
+KPX eacute yacute -15
+KPX eacute ydieresis -15
+KPX ecaron b -8
+KPX ecaron g -4
+KPX ecaron gbreve -4
+KPX ecaron gcommaaccent -4
+KPX ecaron p -11
+KPX ecaron w -15
+KPX ecaron x -5
+KPX ecaron y -15
+KPX ecaron yacute -15
+KPX ecaron ydieresis -15
+KPX ecircumflex b -8
+KPX ecircumflex g -4
+KPX ecircumflex gbreve -4
+KPX ecircumflex gcommaaccent -4
+KPX ecircumflex p -11
+KPX ecircumflex w -15
+KPX ecircumflex x -5
+KPX ecircumflex y -15
+KPX ecircumflex yacute -15
+KPX ecircumflex ydieresis -15
+KPX edieresis b -8
+KPX edieresis g -4
+KPX edieresis gbreve -4
+KPX edieresis gcommaaccent -4
+KPX edieresis p -11
+KPX edieresis w -15
+KPX edieresis x -5
+KPX edieresis y -15
+KPX edieresis yacute -15
+KPX edieresis ydieresis -15
+KPX edotaccent b -8
+KPX edotaccent g -4
+KPX edotaccent gbreve -4
+KPX edotaccent gcommaaccent -4
+KPX edotaccent p -11
+KPX edotaccent w -15
+KPX edotaccent x -5
+KPX edotaccent y -15
+KPX edotaccent yacute -15
+KPX edotaccent ydieresis -15
+KPX egrave b -8
+KPX egrave g -4
+KPX egrave gbreve -4
+KPX egrave gcommaaccent -4
+KPX egrave p -11
+KPX egrave w -15
+KPX egrave x -5
+KPX egrave y -15
+KPX egrave yacute -15
+KPX egrave ydieresis -15
+KPX emacron b -8
+KPX emacron g -4
+KPX emacron gbreve -4
+KPX emacron gcommaaccent -4
+KPX emacron p -11
+KPX emacron w -15
+KPX emacron x -5
+KPX emacron y -15
+KPX emacron yacute -15
+KPX emacron ydieresis -15
+KPX eogonek b -8
+KPX eogonek g -4
+KPX eogonek gbreve -4
+KPX eogonek gcommaaccent -4
+KPX eogonek p -11
+KPX eogonek w -15
+KPX eogonek x -5
+KPX eogonek y -15
+KPX eogonek yacute -15
+KPX eogonek ydieresis -15
+KPX f a 8
+KPX f aacute 8
+KPX f abreve 8
+KPX f acircumflex 8
+KPX f adieresis 8
+KPX f agrave 8
+KPX f amacron 8
+KPX f aogonek 8
+KPX f aring 8
+KPX f atilde 8
+KPX f comma -28
+KPX f dotlessi 7
+KPX f e 14
+KPX f eacute 14
+KPX f ecaron 34
+KPX f ecircumflex 34
+KPX f edieresis 34
+KPX f edotaccent 14
+KPX f egrave 34
+KPX f emacron 34
+KPX f eogonek 14
+KPX f i 7
+KPX f iacute 27
+KPX f icircumflex 27
+KPX f idieresis 27
+KPX f igrave 27
+KPX f imacron 27
+KPX f iogonek 7
+KPX f l 7
+KPX f lacute 7
+KPX f lcommaaccent 7
+KPX f lslash 7
+KPX f o 7
+KPX f oacute 7
+KPX f ocircumflex 7
+KPX f odieresis 7
+KPX f ograve 7
+KPX f ohungarumlaut 7
+KPX f omacron 7
+KPX f oslash 7
+KPX f otilde 7
+KPX f period -28
+KPX f quotedblright 105
+KPX f quoteright 105
+KPX g comma -5
+KPX g period -5
+KPX g r 11
+KPX g racute 11
+KPX g rcaron 11
+KPX g rcommaaccent 11
+KPX g y -11
+KPX g yacute -11
+KPX g ydieresis -11
+KPX gbreve comma -5
+KPX gbreve period -5
+KPX gbreve r 11
+KPX gbreve racute 11
+KPX gbreve rcaron 11
+KPX gbreve rcommaaccent 11
+KPX gbreve y -11
+KPX gbreve yacute -11
+KPX gbreve ydieresis -11
+KPX gcommaaccent comma -5
+KPX gcommaaccent period -5
+KPX gcommaaccent r 11
+KPX gcommaaccent racute 11
+KPX gcommaaccent rcaron 11
+KPX gcommaaccent rcommaaccent 11
+KPX gcommaaccent y -11
+KPX gcommaaccent yacute -11
+KPX gcommaaccent ydieresis -11
+KPX h y -20
+KPX h yacute -20
+KPX h ydieresis -20
+KPX i v 7
+KPX iacute v 7
+KPX icircumflex v 7
+KPX idieresis v 7
+KPX igrave v 7
+KPX imacron v 7
+KPX iogonek v 7
+KPX k e -16
+KPX k eacute -16
+KPX k ecaron -16
+KPX k ecircumflex -16
+KPX k edieresis -16
+KPX k edotaccent -16
+KPX k egrave -16
+KPX k emacron -16
+KPX k eogonek -16
+KPX k o -22
+KPX k oacute -22
+KPX k ocircumflex -22
+KPX k odieresis -22
+KPX k ograve -22
+KPX k ohungarumlaut -22
+KPX k omacron -22
+KPX k oslash -22
+KPX k otilde -22
+KPX k y -15
+KPX k yacute -15
+KPX k ydieresis -15
+KPX kcommaaccent e -16
+KPX kcommaaccent eacute -16
+KPX kcommaaccent ecaron -16
+KPX kcommaaccent ecircumflex -16
+KPX kcommaaccent edieresis -16
+KPX kcommaaccent edotaccent -16
+KPX kcommaaccent egrave -16
+KPX kcommaaccent emacron -16
+KPX kcommaaccent eogonek -16
+KPX kcommaaccent o -22
+KPX kcommaaccent oacute -22
+KPX kcommaaccent ocircumflex -22
+KPX kcommaaccent odieresis -22
+KPX kcommaaccent ograve -22
+KPX kcommaaccent ohungarumlaut -22
+KPX kcommaaccent omacron -22
+KPX kcommaaccent oslash -22
+KPX kcommaaccent otilde -22
+KPX kcommaaccent y -15
+KPX kcommaaccent yacute -15
+KPX kcommaaccent ydieresis -15
+KPX l w -7
+KPX l y -7
+KPX l yacute -7
+KPX l ydieresis -7
+KPX lacute w -7
+KPX lacute y -7
+KPX lacute yacute -7
+KPX lacute ydieresis -7
+KPX lcommaaccent w -7
+KPX lcommaaccent y -7
+KPX lcommaaccent yacute -7
+KPX lcommaaccent ydieresis -7
+KPX lslash w -7
+KPX lslash y -7
+KPX lslash yacute -7
+KPX lslash ydieresis -7
+KPX m u -11
+KPX m uacute -11
+KPX m ucircumflex -11
+KPX m udieresis -11
+KPX m ugrave -11
+KPX m uhungarumlaut -11
+KPX m umacron -11
+KPX m uogonek -11
+KPX m uring -11
+KPX m y -20
+KPX m yacute -20
+KPX m ydieresis -20
+KPX n u -11
+KPX n uacute -11
+KPX n ucircumflex -11
+KPX n udieresis -11
+KPX n ugrave -11
+KPX n uhungarumlaut -11
+KPX n umacron -11
+KPX n uogonek -11
+KPX n uring -11
+KPX n v -7
+KPX n y -20
+KPX n yacute -20
+KPX n ydieresis -20
+KPX nacute u -11
+KPX nacute uacute -11
+KPX nacute ucircumflex -11
+KPX nacute udieresis -11
+KPX nacute ugrave -11
+KPX nacute uhungarumlaut -11
+KPX nacute umacron -11
+KPX nacute uogonek -11
+KPX nacute uring -11
+KPX nacute v -7
+KPX nacute y -20
+KPX nacute yacute -20
+KPX nacute ydieresis -20
+KPX ncaron u -11
+KPX ncaron uacute -11
+KPX ncaron ucircumflex -11
+KPX ncaron udieresis -11
+KPX ncaron ugrave -11
+KPX ncaron uhungarumlaut -11
+KPX ncaron umacron -11
+KPX ncaron uogonek -11
+KPX ncaron uring -11
+KPX ncaron v -7
+KPX ncaron y -20
+KPX ncaron yacute -20
+KPX ncaron ydieresis -20
+KPX ncommaaccent u -11
+KPX ncommaaccent uacute -11
+KPX ncommaaccent ucircumflex -11
+KPX ncommaaccent udieresis -11
+KPX ncommaaccent ugrave -11
+KPX ncommaaccent uhungarumlaut -11
+KPX ncommaaccent umacron -11
+KPX ncommaaccent uogonek -11
+KPX ncommaaccent uring -11
+KPX ncommaaccent v -7
+KPX ncommaaccent y -20
+KPX ncommaaccent yacute -20
+KPX ncommaaccent ydieresis -20
+KPX ntilde u -11
+KPX ntilde uacute -11
+KPX ntilde ucircumflex -11
+KPX ntilde udieresis -11
+KPX ntilde ugrave -11
+KPX ntilde uhungarumlaut -11
+KPX ntilde umacron -11
+KPX ntilde uogonek -11
+KPX ntilde uring -11
+KPX ntilde v -7
+KPX ntilde y -20
+KPX ntilde yacute -20
+KPX ntilde ydieresis -20
+KPX o v 6
+KPX o w -8
+KPX o y -11
+KPX o yacute -11
+KPX o ydieresis -11
+KPX oacute v 6
+KPX oacute w -8
+KPX oacute y -11
+KPX oacute yacute -11
+KPX oacute ydieresis -11
+KPX ocircumflex v 6
+KPX ocircumflex w -8
+KPX ocircumflex y -11
+KPX ocircumflex yacute -11
+KPX ocircumflex ydieresis -11
+KPX odieresis v 6
+KPX odieresis w -8
+KPX odieresis y -11
+KPX odieresis yacute -11
+KPX odieresis ydieresis -11
+KPX ograve v 6
+KPX ograve w -8
+KPX ograve y -11
+KPX ograve yacute -11
+KPX ograve ydieresis -11
+KPX ohungarumlaut v 6
+KPX ohungarumlaut w -8
+KPX ohungarumlaut y -11
+KPX ohungarumlaut yacute -11
+KPX ohungarumlaut ydieresis -11
+KPX omacron v 6
+KPX omacron w -8
+KPX omacron y -11
+KPX omacron yacute -11
+KPX omacron ydieresis -11
+KPX oslash v 6
+KPX oslash w -8
+KPX oslash y -11
+KPX oslash yacute -11
+KPX oslash ydieresis -11
+KPX otilde v 6
+KPX otilde w -8
+KPX otilde y -11
+KPX otilde yacute -11
+KPX otilde ydieresis -11
+KPX p comma 8
+KPX p period 8
+KPX p y -4
+KPX p yacute -4
+KPX p ydieresis -4
+KPX period quotedblright -18
+KPX period quoteright -18
+KPX period space -18
+KPX quotedblleft A -60
+KPX quotedblleft Aacute -60
+KPX quotedblleft Abreve -60
+KPX quotedblleft Acircumflex -60
+KPX quotedblleft Adieresis -60
+KPX quotedblleft Agrave -60
+KPX quotedblleft Amacron -60
+KPX quotedblleft Aogonek -60
+KPX quotedblleft Aring -60
+KPX quotedblleft Atilde -60
+KPX quotedblleft quoteleft 20
+KPX quotedblright space -18
+KPX quoteleft A -80
+KPX quoteleft Aacute -80
+KPX quoteleft Abreve -80
+KPX quoteleft Acircumflex -80
+KPX quoteleft Adieresis -80
+KPX quoteleft Agrave -80
+KPX quoteleft Amacron -80
+KPX quoteleft Aogonek -80
+KPX quoteleft Aring -80
+KPX quoteleft Atilde -80
+KPX quoteright d -41
+KPX quoteright dcroat -41
+KPX quoteright l -22
+KPX quoteright lacute -22
+KPX quoteright lcommaaccent -22
+KPX quoteright lslash -22
+KPX quoteright r -9
+KPX quoteright racute -9
+KPX quoteright rcaron -9
+KPX quoteright rcommaaccent -9
+KPX quoteright s -46
+KPX quoteright sacute -46
+KPX quoteright scaron -46
+KPX quoteright scedilla -46
+KPX quoteright scommaaccent -46
+KPX quoteright t -22
+KPX quoteright tcommaaccent -22
+KPX quoteright v -16
+KPX r a -11
+KPX r aacute -11
+KPX r abreve -11
+KPX r acircumflex -11
+KPX r adieresis -11
+KPX r agrave -11
+KPX r amacron -11
+KPX r aogonek -11
+KPX r aring -11
+KPX r atilde -11
+KPX r colon 9
+KPX r comma -90
+KPX r d -7
+KPX r dcroat -7
+KPX r e -7
+KPX r eacute -7
+KPX r ecaron -7
+KPX r ecircumflex -7
+KPX r edieresis -7
+KPX r edotaccent -7
+KPX r egrave -7
+KPX r emacron -7
+KPX r eogonek -7
+KPX r g -11
+KPX r gbreve -11
+KPX r gcommaaccent -11
+KPX r hyphen -16
+KPX r i -14
+KPX r iacute -14
+KPX r icircumflex -14
+KPX r idieresis -14
+KPX r igrave -14
+KPX r imacron -14
+KPX r iogonek -14
+KPX r k 9
+KPX r kcommaaccent 9
+KPX r l -14
+KPX r lacute -14
+KPX r lcommaaccent -14
+KPX r lslash -14
+KPX r o -11
+KPX r oacute -11
+KPX r ocircumflex -11
+KPX r odieresis -11
+KPX r ograve -11
+KPX r ohungarumlaut -11
+KPX r omacron -11
+KPX r oslash -11
+KPX r otilde -11
+KPX r p -17
+KPX r period -90
+KPX r quoteright 9
+KPX r s -20
+KPX r sacute -20
+KPX r scaron -20
+KPX r scedilla -20
+KPX r scommaaccent -20
+KPX r semicolon 9
+KPX r t -11
+KPX r tcommaaccent -11
+KPX r u -11
+KPX r uacute -11
+KPX r ucircumflex -11
+KPX r udieresis -11
+KPX r ugrave -11
+KPX r uhungarumlaut -11
+KPX r umacron -11
+KPX r uogonek -11
+KPX r uring -11
+KPX r v -7
+KPX r y -20
+KPX r yacute -20
+KPX r ydieresis -20
+KPX racute a -11
+KPX racute aacute -11
+KPX racute abreve -11
+KPX racute acircumflex -11
+KPX racute adieresis -11
+KPX racute agrave -11
+KPX racute amacron -11
+KPX racute aogonek -11
+KPX racute aring -11
+KPX racute atilde -11
+KPX racute colon 9
+KPX racute comma -90
+KPX racute d -7
+KPX racute dcroat -7
+KPX racute e -7
+KPX racute eacute -7
+KPX racute ecaron -7
+KPX racute ecircumflex -7
+KPX racute edieresis -7
+KPX racute edotaccent -7
+KPX racute egrave -7
+KPX racute emacron -7
+KPX racute eogonek -7
+KPX racute g -11
+KPX racute gbreve -11
+KPX racute gcommaaccent -11
+KPX racute hyphen -16
+KPX racute i -14
+KPX racute iacute -14
+KPX racute icircumflex -14
+KPX racute idieresis -14
+KPX racute igrave -14
+KPX racute imacron -14
+KPX racute iogonek -14
+KPX racute k 9
+KPX racute kcommaaccent 9
+KPX racute l -14
+KPX racute lacute -14
+KPX racute lcommaaccent -14
+KPX racute lslash -14
+KPX racute o -11
+KPX racute oacute -11
+KPX racute ocircumflex -11
+KPX racute odieresis -11
+KPX racute ograve -11
+KPX racute ohungarumlaut -11
+KPX racute omacron -11
+KPX racute oslash -11
+KPX racute otilde -11
+KPX racute p -17
+KPX racute period -90
+KPX racute quoteright 9
+KPX racute s -20
+KPX racute sacute -20
+KPX racute scaron -20
+KPX racute scedilla -20
+KPX racute scommaaccent -20
+KPX racute semicolon 9
+KPX racute t -11
+KPX racute tcommaaccent -11
+KPX racute u -11
+KPX racute uacute -11
+KPX racute ucircumflex -11
+KPX racute udieresis -11
+KPX racute ugrave -11
+KPX racute uhungarumlaut -11
+KPX racute umacron -11
+KPX racute uogonek -11
+KPX racute uring -11
+KPX racute v -7
+KPX racute y -20
+KPX racute yacute -20
+KPX racute ydieresis -20
+KPX rcaron a -11
+KPX rcaron aacute -11
+KPX rcaron abreve -11
+KPX rcaron acircumflex -11
+KPX rcaron adieresis -11
+KPX rcaron agrave -11
+KPX rcaron amacron -11
+KPX rcaron aogonek -11
+KPX rcaron aring -11
+KPX rcaron atilde -11
+KPX rcaron colon 9
+KPX rcaron comma -90
+KPX rcaron d -7
+KPX rcaron dcroat -7
+KPX rcaron e -7
+KPX rcaron eacute -7
+KPX rcaron ecaron -7
+KPX rcaron ecircumflex -7
+KPX rcaron edieresis -7
+KPX rcaron edotaccent -7
+KPX rcaron egrave -7
+KPX rcaron emacron -7
+KPX rcaron eogonek -7
+KPX rcaron g -11
+KPX rcaron gbreve -11
+KPX rcaron gcommaaccent -11
+KPX rcaron hyphen -16
+KPX rcaron i -14
+KPX rcaron iacute -14
+KPX rcaron icircumflex -14
+KPX rcaron idieresis -14
+KPX rcaron igrave -14
+KPX rcaron imacron -14
+KPX rcaron iogonek -14
+KPX rcaron k 9
+KPX rcaron kcommaaccent 9
+KPX rcaron l -14
+KPX rcaron lacute -14
+KPX rcaron lcommaaccent -14
+KPX rcaron lslash -14
+KPX rcaron o -11
+KPX rcaron oacute -11
+KPX rcaron ocircumflex -11
+KPX rcaron odieresis -11
+KPX rcaron ograve -11
+KPX rcaron ohungarumlaut -11
+KPX rcaron omacron -11
+KPX rcaron oslash -11
+KPX rcaron otilde -11
+KPX rcaron p -17
+KPX rcaron period -90
+KPX rcaron quoteright 9
+KPX rcaron s -20
+KPX rcaron sacute -20
+KPX rcaron scaron -20
+KPX rcaron scedilla -20
+KPX rcaron scommaaccent -20
+KPX rcaron semicolon 9
+KPX rcaron t -11
+KPX rcaron tcommaaccent -11
+KPX rcaron u -11
+KPX rcaron uacute -11
+KPX rcaron ucircumflex -11
+KPX rcaron udieresis -11
+KPX rcaron ugrave -11
+KPX rcaron uhungarumlaut -11
+KPX rcaron umacron -11
+KPX rcaron uogonek -11
+KPX rcaron uring -11
+KPX rcaron v -7
+KPX rcaron y -20
+KPX rcaron yacute -20
+KPX rcaron ydieresis -20
+KPX rcommaaccent a -11
+KPX rcommaaccent aacute -11
+KPX rcommaaccent abreve -11
+KPX rcommaaccent acircumflex -11
+KPX rcommaaccent adieresis -11
+KPX rcommaaccent agrave -11
+KPX rcommaaccent amacron -11
+KPX rcommaaccent aogonek -11
+KPX rcommaaccent aring -11
+KPX rcommaaccent atilde -11
+KPX rcommaaccent colon 9
+KPX rcommaaccent comma -90
+KPX rcommaaccent d -7
+KPX rcommaaccent dcroat -7
+KPX rcommaaccent e -7
+KPX rcommaaccent eacute -7
+KPX rcommaaccent ecaron -7
+KPX rcommaaccent ecircumflex -7
+KPX rcommaaccent edieresis -7
+KPX rcommaaccent edotaccent -7
+KPX rcommaaccent egrave -7
+KPX rcommaaccent emacron -7
+KPX rcommaaccent eogonek -7
+KPX rcommaaccent g -11
+KPX rcommaaccent gbreve -11
+KPX rcommaaccent gcommaaccent -11
+KPX rcommaaccent hyphen -16
+KPX rcommaaccent i -14
+KPX rcommaaccent iacute -14
+KPX rcommaaccent icircumflex -14
+KPX rcommaaccent idieresis -14
+KPX rcommaaccent igrave -14
+KPX rcommaaccent imacron -14
+KPX rcommaaccent iogonek -14
+KPX rcommaaccent k 9
+KPX rcommaaccent kcommaaccent 9
+KPX rcommaaccent l -14
+KPX rcommaaccent lacute -14
+KPX rcommaaccent lcommaaccent -14
+KPX rcommaaccent lslash -14
+KPX rcommaaccent o -11
+KPX rcommaaccent oacute -11
+KPX rcommaaccent ocircumflex -11
+KPX rcommaaccent odieresis -11
+KPX rcommaaccent ograve -11
+KPX rcommaaccent ohungarumlaut -11
+KPX rcommaaccent omacron -11
+KPX rcommaaccent oslash -11
+KPX rcommaaccent otilde -11
+KPX rcommaaccent p -17
+KPX rcommaaccent period -90
+KPX rcommaaccent quoteright 9
+KPX rcommaaccent s -20
+KPX rcommaaccent sacute -20
+KPX rcommaaccent scaron -20
+KPX rcommaaccent scedilla -20
+KPX rcommaaccent scommaaccent -20
+KPX rcommaaccent semicolon 9
+KPX rcommaaccent t -11
+KPX rcommaaccent tcommaaccent -11
+KPX rcommaaccent u -11
+KPX rcommaaccent uacute -11
+KPX rcommaaccent ucircumflex -11
+KPX rcommaaccent udieresis -11
+KPX rcommaaccent ugrave -11
+KPX rcommaaccent uhungarumlaut -11
+KPX rcommaaccent umacron -11
+KPX rcommaaccent uogonek -11
+KPX rcommaaccent uring -11
+KPX rcommaaccent v -7
+KPX rcommaaccent y -20
+KPX rcommaaccent yacute -20
+KPX rcommaaccent ydieresis -20
+KPX s comma 11
+KPX s period 11
+KPX sacute comma 11
+KPX sacute period 11
+KPX scaron comma 11
+KPX scaron period 11
+KPX scedilla comma 11
+KPX scedilla period 11
+KPX scommaaccent comma 11
+KPX scommaaccent period 11
+KPX semicolon space -18
+KPX space A -22
+KPX space Aacute -22
+KPX space Abreve -22
+KPX space Acircumflex -22
+KPX space Adieresis -22
+KPX space Agrave -22
+KPX space Amacron -22
+KPX space Aogonek -22
+KPX space Aring -22
+KPX space Atilde -22
+KPX space T -18
+KPX space Tcaron -18
+KPX space Tcommaaccent -18
+KPX space V -24
+KPX space W -33
+KPX space Y -18
+KPX space Yacute -18
+KPX space Ydieresis -18
+KPX space quotedblleft -18
+KPX v a -6
+KPX v aacute -6
+KPX v abreve -6
+KPX v acircumflex -6
+KPX v adieresis -6
+KPX v agrave -6
+KPX v amacron -6
+KPX v aogonek -6
+KPX v aring -6
+KPX v atilde -6
+KPX v comma -11
+KPX v o -6
+KPX v oacute -6
+KPX v ocircumflex -6
+KPX v odieresis -6
+KPX v ograve -6
+KPX v ohungarumlaut -6
+KPX v omacron -6
+KPX v oslash -6
+KPX v otilde -6
+KPX v period -11
+KPX w a -14
+KPX w aacute -14
+KPX w abreve -14
+KPX w acircumflex -14
+KPX w adieresis -14
+KPX w agrave -14
+KPX w amacron -14
+KPX w aogonek -14
+KPX w aring -14
+KPX w atilde -14
+KPX w comma -17
+KPX w e -8
+KPX w eacute -8
+KPX w ecaron -8
+KPX w ecircumflex -8
+KPX w edieresis -8
+KPX w edotaccent -8
+KPX w egrave -8
+KPX w emacron -8
+KPX w eogonek -8
+KPX w o -14
+KPX w oacute -14
+KPX w ocircumflex -14
+KPX w odieresis -14
+KPX w ograve -14
+KPX w ohungarumlaut -14
+KPX w omacron -14
+KPX w oslash -14
+KPX w otilde -14
+KPX w period -17
+KPX x e 5
+KPX x eacute 5
+KPX x ecaron 5
+KPX x ecircumflex 5
+KPX x edieresis 5
+KPX x edotaccent 5
+KPX x egrave 5
+KPX x emacron 5
+KPX x eogonek 5
+KPX y a 8
+KPX y aacute 8
+KPX y abreve 8
+KPX y acircumflex 8
+KPX y adieresis 8
+KPX y agrave 8
+KPX y amacron 8
+KPX y aogonek 8
+KPX y aring 8
+KPX y atilde 8
+KPX y comma -25
+KPX y e 15
+KPX y eacute 15
+KPX y ecaron 15
+KPX y ecircumflex 15
+KPX y edieresis 15
+KPX y edotaccent 15
+KPX y egrave 15
+KPX y emacron 15
+KPX y eogonek 15
+KPX y o 8
+KPX y oacute 8
+KPX y ocircumflex 8
+KPX y odieresis 8
+KPX y ograve 8
+KPX y ohungarumlaut 8
+KPX y omacron 8
+KPX y oslash 8
+KPX y otilde 8
+KPX y period -25
+KPX yacute a 8
+KPX yacute aacute 8
+KPX yacute abreve 8
+KPX yacute acircumflex 8
+KPX yacute adieresis 8
+KPX yacute agrave 8
+KPX yacute amacron 8
+KPX yacute aogonek 8
+KPX yacute aring 8
+KPX yacute atilde 8
+KPX yacute comma -25
+KPX yacute e 15
+KPX yacute eacute 15
+KPX yacute ecaron 15
+KPX yacute ecircumflex 15
+KPX yacute edieresis 15
+KPX yacute edotaccent 15
+KPX yacute egrave 15
+KPX yacute emacron 15
+KPX yacute eogonek 15
+KPX yacute o 8
+KPX yacute oacute 8
+KPX yacute ocircumflex 8
+KPX yacute odieresis 8
+KPX yacute ograve 8
+KPX yacute ohungarumlaut 8
+KPX yacute omacron 8
+KPX yacute oslash 8
+KPX yacute otilde 8
+KPX yacute period -25
+KPX ydieresis a 8
+KPX ydieresis aacute 8
+KPX ydieresis abreve 8
+KPX ydieresis acircumflex 8
+KPX ydieresis adieresis 8
+KPX ydieresis agrave 8
+KPX ydieresis amacron 8
+KPX ydieresis aogonek 8
+KPX ydieresis aring 8
+KPX ydieresis atilde 8
+KPX ydieresis comma -25
+KPX ydieresis e 15
+KPX ydieresis eacute 15
+KPX ydieresis ecaron 15
+KPX ydieresis ecircumflex 15
+KPX ydieresis edieresis 15
+KPX ydieresis edotaccent 15
+KPX ydieresis egrave 15
+KPX ydieresis emacron 15
+KPX ydieresis eogonek 15
+KPX ydieresis o 8
+KPX ydieresis oacute 8
+KPX ydieresis ocircumflex 8
+KPX ydieresis odieresis 8
+KPX ydieresis ograve 8
+KPX ydieresis ohungarumlaut 8
+KPX ydieresis omacron 8
+KPX ydieresis oslash 8
+KPX ydieresis otilde 8
+KPX ydieresis period -25
+KPX z e 4
+KPX z eacute 4
+KPX z ecaron 4
+KPX z ecircumflex 4
+KPX z edieresis 4
+KPX z edotaccent 4
+KPX z egrave 4
+KPX z emacron 4
+KPX z eogonek 4
+KPX zacute e 4
+KPX zacute eacute 4
+KPX zacute ecaron 4
+KPX zacute ecircumflex 4
+KPX zacute edieresis 4
+KPX zacute edotaccent 4
+KPX zacute egrave 4
+KPX zacute emacron 4
+KPX zacute eogonek 4
+KPX zcaron e 4
+KPX zcaron eacute 4
+KPX zcaron ecaron 4
+KPX zcaron ecircumflex 4
+KPX zcaron edieresis 4
+KPX zcaron edotaccent 4
+KPX zcaron egrave 4
+KPX zcaron emacron 4
+KPX zcaron eogonek 4
+KPX zdotaccent e 4
+KPX zdotaccent eacute 4
+KPX zdotaccent ecaron 4
+KPX zdotaccent ecircumflex 4
+KPX zdotaccent edieresis 4
+KPX zdotaccent edotaccent 4
+KPX zdotaccent egrave 4
+KPX zdotaccent emacron 4
+KPX zdotaccent eogonek 4
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Italic.afm b/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Italic.afm
new file mode 100644
index 000000000000..699b02fafe0e
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Italic.afm
@@ -0,0 +1,2040 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Mon Jun 23 16:46:15 1997
+Comment UniqueID 43093
+Comment VMusage 43675 54700
+FontName NewCenturySchlbk-Italic
+FullName New Century Schoolbook Italic
+FamilyName New Century Schoolbook
+Weight Medium
+ItalicAngle -16
+IsFixedPitch false
+FontBBox -166 -250 994 958
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 722
+XHeight 466
+Ascender 737
+Descender -205
+StdHW 45
+StdVW 80
+StartCharMetrics 314
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 17 -15 303 737 ;
+C 34 ; WX 400 ; N quotedbl ; B 127 463 363 737 ;
+C 35 ; WX 556 ; N numbersign ; B 28 0 528 690 ;
+C 36 ; WX 556 ; N dollar ; B 4 -142 536 808 ;
+C 37 ; WX 833 ; N percent ; B 43 -15 790 705 ;
+C 38 ; WX 852 ; N ampersand ; B 24 -15 773 737 ;
+C 39 ; WX 204 ; N quoteright ; B 39 463 229 737 ;
+C 40 ; WX 333 ; N parenleft ; B 53 -117 411 745 ;
+C 41 ; WX 333 ; N parenright ; B -93 -117 265 745 ;
+C 42 ; WX 500 ; N asterisk ; B 80 318 500 737 ;
+C 43 ; WX 606 ; N plus ; B 50 0 556 506 ;
+C 44 ; WX 278 ; N comma ; B -39 -165 151 109 ;
+C 45 ; WX 333 ; N hyphen ; B 32 202 259 274 ;
+C 46 ; WX 278 ; N period ; B 17 -15 141 109 ;
+C 47 ; WX 606 ; N slash ; B 132 -15 474 737 ;
+C 48 ; WX 556 ; N zero ; B 30 -15 526 705 ;
+C 49 ; WX 556 ; N one ; B 50 0 459 705 ;
+C 50 ; WX 556 ; N two ; B -37 0 506 705 ;
+C 51 ; WX 556 ; N three ; B -2 -15 506 705 ;
+C 52 ; WX 556 ; N four ; B -8 0 512 705 ;
+C 53 ; WX 556 ; N five ; B 4 -15 540 705 ;
+C 54 ; WX 556 ; N six ; B 36 -15 548 705 ;
+C 55 ; WX 556 ; N seven ; B 69 -15 561 705 ;
+C 56 ; WX 556 ; N eight ; B 6 -15 526 705 ;
+C 57 ; WX 556 ; N nine ; B 8 -15 520 705 ;
+C 58 ; WX 278 ; N colon ; B 17 -15 229 466 ;
+C 59 ; WX 278 ; N semicolon ; B -39 -165 229 466 ;
+C 60 ; WX 606 ; N less ; B 36 -8 542 514 ;
+C 61 ; WX 606 ; N equal ; B 50 117 556 389 ;
+C 62 ; WX 606 ; N greater ; B 64 -8 570 514 ;
+C 63 ; WX 444 ; N question ; B 102 -15 417 737 ;
+C 64 ; WX 747 ; N at ; B -2 -15 750 737 ;
+C 65 ; WX 704 ; N A ; B -87 0 668 737 ;
+C 66 ; WX 722 ; N B ; B -33 0 670 722 ;
+C 67 ; WX 722 ; N C ; B 40 -15 712 737 ;
+C 68 ; WX 778 ; N D ; B -33 0 738 722 ;
+C 69 ; WX 722 ; N E ; B -33 0 700 722 ;
+C 70 ; WX 667 ; N F ; B -33 0 700 722 ;
+C 71 ; WX 778 ; N G ; B 40 -15 763 737 ;
+C 72 ; WX 833 ; N H ; B -33 0 866 722 ;
+C 73 ; WX 407 ; N I ; B -33 0 435 722 ;
+C 74 ; WX 611 ; N J ; B -14 -15 651 722 ;
+C 75 ; WX 741 ; N K ; B -33 0 816 722 ;
+C 76 ; WX 667 ; N L ; B -33 0 627 722 ;
+C 77 ; WX 944 ; N M ; B -33 0 977 722 ;
+C 78 ; WX 815 ; N N ; B -51 -15 866 722 ;
+C 79 ; WX 778 ; N O ; B 40 -15 738 737 ;
+C 80 ; WX 667 ; N P ; B -33 0 667 722 ;
+C 81 ; WX 778 ; N Q ; B 40 -190 738 737 ;
+C 82 ; WX 741 ; N R ; B -45 -15 692 722 ;
+C 83 ; WX 667 ; N S ; B -6 -15 638 737 ;
+C 84 ; WX 685 ; N T ; B 40 0 725 722 ;
+C 85 ; WX 815 ; N U ; B 93 -15 867 722 ;
+C 86 ; WX 704 ; N V ; B 36 -10 779 722 ;
+C 87 ; WX 926 ; N W ; B 53 -10 978 722 ;
+C 88 ; WX 704 ; N X ; B -75 0 779 722 ;
+C 89 ; WX 685 ; N Y ; B 31 0 760 722 ;
+C 90 ; WX 667 ; N Z ; B -25 0 667 722 ;
+C 91 ; WX 333 ; N bracketleft ; B -55 -109 388 737 ;
+C 92 ; WX 606 ; N backslash ; B 132 -15 474 737 ;
+C 93 ; WX 333 ; N bracketright ; B -77 -109 366 737 ;
+C 94 ; WX 606 ; N asciicircum ; B 89 325 517 690 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 204 ; N quoteleft ; B 39 463 229 737 ;
+C 97 ; WX 574 ; N a ; B 2 -15 524 466 ;
+C 98 ; WX 556 ; N b ; B 32 -15 488 737 ;
+C 99 ; WX 444 ; N c ; B 2 -15 394 466 ;
+C 100 ; WX 611 ; N d ; B 2 -15 585 737 ;
+C 101 ; WX 444 ; N e ; B -6 -15 388 466 ;
+C 102 ; WX 333 ; N f ; B -68 -205 470 737 ; L i fi ; L l fl ;
+C 103 ; WX 537 ; N g ; B -79 -205 523 497 ;
+C 104 ; WX 611 ; N h ; B 14 -15 562 737 ;
+C 105 ; WX 333 ; N i ; B 29 -15 282 715 ;
+C 106 ; WX 315 ; N j ; B -166 -205 318 715 ;
+C 107 ; WX 556 ; N k ; B 0 -15 497 737 ;
+C 108 ; WX 333 ; N l ; B 14 -15 292 737 ;
+C 109 ; WX 889 ; N m ; B 14 -15 840 466 ;
+C 110 ; WX 611 ; N n ; B 14 -15 562 466 ;
+C 111 ; WX 500 ; N o ; B 2 -15 450 466 ;
+C 112 ; WX 574 ; N p ; B -101 -205 506 466 ;
+C 113 ; WX 556 ; N q ; B 2 -205 500 466 ;
+C 114 ; WX 444 ; N r ; B 10 0 434 466 ;
+C 115 ; WX 444 ; N s ; B 2 -15 394 466 ;
+C 116 ; WX 352 ; N t ; B 24 -15 328 619 ;
+C 117 ; WX 611 ; N u ; B 44 -15 556 466 ;
+C 118 ; WX 519 ; N v ; B 31 -15 447 466 ;
+C 119 ; WX 778 ; N w ; B 31 -15 706 466 ;
+C 120 ; WX 500 ; N x ; B -33 -15 471 466 ;
+C 121 ; WX 500 ; N y ; B -83 -205 450 466 ;
+C 122 ; WX 463 ; N z ; B -33 -15 416 466 ;
+C 123 ; WX 333 ; N braceleft ; B 38 -109 394 737 ;
+C 124 ; WX 606 ; N bar ; B 267 -250 339 750 ;
+C 125 ; WX 333 ; N braceright ; B -87 -109 269 737 ;
+C 126 ; WX 606 ; N asciitilde ; B 72 184 534 322 ;
+C 161 ; WX 333 ; N exclamdown ; B -22 -205 264 547 ;
+C 162 ; WX 556 ; N cent ; B 62 -144 486 580 ;
+C 163 ; WX 556 ; N sterling ; B -13 -15 544 705 ;
+C 164 ; WX 167 ; N fraction ; B -134 -15 301 705 ;
+C 165 ; WX 556 ; N yen ; B 40 0 624 690 ;
+C 166 ; WX 556 ; N florin ; B -58 -205 569 737 ;
+C 167 ; WX 500 ; N section ; B -10 -147 480 737 ;
+C 168 ; WX 556 ; N currency ; B 26 93 530 597 ;
+C 169 ; WX 278 ; N quotesingle ; B 151 463 237 737 ;
+C 170 ; WX 389 ; N quotedblleft ; B 39 463 406 737 ;
+C 171 ; WX 426 ; N guillemotleft ; B -15 74 402 402 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 40 74 259 402 ;
+C 173 ; WX 333 ; N guilsinglright ; B 40 74 259 402 ;
+C 174 ; WX 611 ; N fi ; B -68 -205 555 737 ;
+C 175 ; WX 611 ; N fl ; B -68 -205 587 737 ;
+C 177 ; WX 500 ; N endash ; B -27 208 487 268 ;
+C 178 ; WX 500 ; N dagger ; B 51 -147 506 737 ;
+C 179 ; WX 500 ; N daggerdbl ; B -54 -147 506 737 ;
+C 180 ; WX 278 ; N periodcentered ; B 71 238 207 374 ;
+C 182 ; WX 650 ; N paragraph ; B 48 -132 665 722 ;
+C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ;
+C 184 ; WX 204 ; N quotesinglbase ; B -78 -165 112 109 ;
+C 185 ; WX 389 ; N quotedblbase ; B -78 -165 289 109 ;
+C 186 ; WX 389 ; N quotedblright ; B 39 463 406 737 ;
+C 187 ; WX 426 ; N guillemotright ; B -15 74 402 402 ;
+C 188 ; WX 1000 ; N ellipsis ; B 59 -15 849 109 ;
+C 189 ; WX 1000 ; N perthousand ; B 6 -15 994 705 ;
+C 191 ; WX 444 ; N questiondown ; B -3 -205 312 547 ;
+C 193 ; WX 333 ; N grave ; B 71 518 262 690 ;
+C 194 ; WX 333 ; N acute ; B 132 518 355 690 ;
+C 195 ; WX 333 ; N circumflex ; B 37 518 331 690 ;
+C 196 ; WX 333 ; N tilde ; B 52 547 383 649 ;
+C 197 ; WX 333 ; N macron ; B 52 560 363 610 ;
+C 198 ; WX 333 ; N breve ; B 69 518 370 677 ;
+C 199 ; WX 333 ; N dotaccent ; B 146 606 255 715 ;
+C 200 ; WX 333 ; N dieresis ; B 59 606 359 708 ;
+C 202 ; WX 333 ; N ring ; B 114 512 314 712 ;
+C 203 ; WX 333 ; N cedilla ; B 3 -215 215 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 32 518 455 690 ;
+C 206 ; WX 333 ; N ogonek ; B 46 -220 334 4 ;
+C 207 ; WX 333 ; N caron ; B 73 518 378 690 ;
+C 208 ; WX 1000 ; N emdash ; B -27 208 987 268 ;
+C 225 ; WX 870 ; N AE ; B -87 0 888 722 ;
+C 227 ; WX 422 ; N ordfeminine ; B 72 416 420 705 ;
+C 232 ; WX 667 ; N Lslash ; B -33 0 627 722 ;
+C 233 ; WX 778 ; N Oslash ; B 16 -68 748 780 ;
+C 234 ; WX 981 ; N OE ; B 40 0 975 722 ;
+C 235 ; WX 372 ; N ordmasculine ; B 66 416 370 705 ;
+C 241 ; WX 722 ; N ae ; B -18 -15 666 466 ;
+C 245 ; WX 333 ; N dotlessi ; B 29 -15 282 466 ;
+C 248 ; WX 333 ; N lslash ; B -2 -15 294 737 ;
+C 249 ; WX 500 ; N oslash ; B 2 -121 450 549 ;
+C 250 ; WX 778 ; N oe ; B 2 -15 722 466 ;
+C 251 ; WX 556 ; N germandbls ; B -76 -205 525 737 ;
+C -1 ; WX 407 ; N Idieresis ; B -33 0 456 902 ;
+C -1 ; WX 444 ; N eacute ; B -6 -15 411 690 ;
+C -1 ; WX 574 ; N abreve ; B 2 -15 524 677 ;
+C -1 ; WX 611 ; N uhungarumlaut ; B 44 -15 594 690 ;
+C -1 ; WX 444 ; N ecaron ; B -6 -15 434 690 ;
+C -1 ; WX 685 ; N Ydieresis ; B 31 0 760 902 ;
+C -1 ; WX 606 ; N divide ; B 50 -22 556 528 ;
+C -1 ; WX 685 ; N Yacute ; B 31 0 760 946 ;
+C -1 ; WX 704 ; N Acircumflex ; B -87 0 668 946 ;
+C -1 ; WX 574 ; N aacute ; B 2 -15 524 690 ;
+C -1 ; WX 815 ; N Ucircumflex ; B 93 -15 867 946 ;
+C -1 ; WX 500 ; N yacute ; B -83 -205 450 690 ;
+C -1 ; WX 444 ; N scommaaccent ; B 2 -250 394 466 ;
+C -1 ; WX 444 ; N ecircumflex ; B -6 -15 388 690 ;
+C -1 ; WX 815 ; N Uring ; B 93 -15 867 958 ;
+C -1 ; WX 815 ; N Udieresis ; B 93 -15 867 902 ;
+C -1 ; WX 574 ; N aogonek ; B 2 -225 534 466 ;
+C -1 ; WX 815 ; N Uacute ; B 93 -15 867 946 ;
+C -1 ; WX 611 ; N uogonek ; B 44 -225 556 466 ;
+C -1 ; WX 722 ; N Edieresis ; B -33 0 700 902 ;
+C -1 ; WX 778 ; N Dcroat ; B -33 0 738 722 ;
+C -1 ; WX 250 ; N commaaccent ; B -24 -250 147 -50 ;
+C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ;
+C -1 ; WX 722 ; N Emacron ; B -33 0 700 866 ;
+C -1 ; WX 444 ; N ccaron ; B 2 -15 434 690 ;
+C -1 ; WX 574 ; N aring ; B 2 -15 524 712 ;
+C -1 ; WX 815 ; N Ncommaaccent ; B -51 -250 866 722 ;
+C -1 ; WX 333 ; N lacute ; B 14 -15 415 958 ;
+C -1 ; WX 574 ; N agrave ; B 2 -15 524 690 ;
+C -1 ; WX 685 ; N Tcommaaccent ; B 40 -250 725 722 ;
+C -1 ; WX 722 ; N Cacute ; B 40 -15 712 946 ;
+C -1 ; WX 574 ; N atilde ; B 2 -15 524 649 ;
+C -1 ; WX 722 ; N Edotaccent ; B -33 0 700 909 ;
+C -1 ; WX 444 ; N scaron ; B 2 -15 434 690 ;
+C -1 ; WX 444 ; N scedilla ; B 2 -215 394 466 ;
+C -1 ; WX 333 ; N iacute ; B 29 -15 355 690 ;
+C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ;
+C -1 ; WX 741 ; N Rcaron ; B -45 -15 692 946 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 40 -250 763 737 ;
+C -1 ; WX 611 ; N ucircumflex ; B 44 -15 556 690 ;
+C -1 ; WX 574 ; N acircumflex ; B 2 -15 524 690 ;
+C -1 ; WX 704 ; N Amacron ; B -87 0 668 866 ;
+C -1 ; WX 444 ; N rcaron ; B 10 0 434 690 ;
+C -1 ; WX 444 ; N ccedilla ; B 2 -215 394 466 ;
+C -1 ; WX 667 ; N Zdotaccent ; B -25 0 667 909 ;
+C -1 ; WX 667 ; N Thorn ; B -33 0 627 722 ;
+C -1 ; WX 778 ; N Omacron ; B 40 -15 738 866 ;
+C -1 ; WX 741 ; N Racute ; B -45 -15 692 946 ;
+C -1 ; WX 667 ; N Sacute ; B -6 -15 638 946 ;
+C -1 ; WX 651 ; N dcaron ; B 2 -15 729 737 ;
+C -1 ; WX 815 ; N Umacron ; B 93 -15 867 866 ;
+C -1 ; WX 611 ; N uring ; B 44 -15 556 712 ;
+C -1 ; WX 333 ; N threesuperior ; B 22 273 359 705 ;
+C -1 ; WX 778 ; N Ograve ; B 40 -15 738 946 ;
+C -1 ; WX 704 ; N Agrave ; B -87 0 668 946 ;
+C -1 ; WX 704 ; N Abreve ; B -87 0 668 933 ;
+C -1 ; WX 606 ; N multiply ; B 74 24 532 482 ;
+C -1 ; WX 611 ; N uacute ; B 44 -15 556 690 ;
+C -1 ; WX 685 ; N Tcaron ; B 40 0 725 946 ;
+C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ;
+C -1 ; WX 500 ; N ydieresis ; B -83 -205 450 646 ;
+C -1 ; WX 815 ; N Nacute ; B -51 -15 866 946 ;
+C -1 ; WX 333 ; N icircumflex ; B 29 -15 331 690 ;
+C -1 ; WX 722 ; N Ecircumflex ; B -33 0 700 946 ;
+C -1 ; WX 574 ; N adieresis ; B 2 -15 524 646 ;
+C -1 ; WX 444 ; N edieresis ; B -6 -15 415 646 ;
+C -1 ; WX 444 ; N cacute ; B 2 -15 411 690 ;
+C -1 ; WX 611 ; N nacute ; B 14 -15 562 690 ;
+C -1 ; WX 611 ; N umacron ; B 44 -15 556 610 ;
+C -1 ; WX 815 ; N Ncaron ; B -51 -15 866 946 ;
+C -1 ; WX 407 ; N Iacute ; B -33 0 452 946 ;
+C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ;
+C -1 ; WX 606 ; N brokenbar ; B 267 -175 339 675 ;
+C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ;
+C -1 ; WX 778 ; N Gbreve ; B 40 -15 763 933 ;
+C -1 ; WX 407 ; N Idotaccent ; B -33 0 435 909 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 722 ; N Egrave ; B -33 0 700 946 ;
+C -1 ; WX 444 ; N racute ; B 10 0 434 690 ;
+C -1 ; WX 500 ; N omacron ; B 2 -15 450 610 ;
+C -1 ; WX 667 ; N Zacute ; B -25 0 667 946 ;
+C -1 ; WX 667 ; N Zcaron ; B -25 0 667 946 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ;
+C -1 ; WX 778 ; N Eth ; B -33 0 738 722 ;
+C -1 ; WX 722 ; N Ccedilla ; B 40 -215 712 737 ;
+C -1 ; WX 333 ; N lcommaaccent ; B -43 -250 292 737 ;
+C -1 ; WX 382 ; N tcaron ; B 24 -15 460 757 ;
+C -1 ; WX 444 ; N eogonek ; B -6 -225 388 466 ;
+C -1 ; WX 815 ; N Uogonek ; B 93 -225 867 722 ;
+C -1 ; WX 704 ; N Aacute ; B -87 0 668 946 ;
+C -1 ; WX 704 ; N Adieresis ; B -87 0 668 902 ;
+C -1 ; WX 444 ; N egrave ; B -6 -15 388 690 ;
+C -1 ; WX 463 ; N zacute ; B -33 -15 420 690 ;
+C -1 ; WX 333 ; N iogonek ; B -14 -225 282 715 ;
+C -1 ; WX 778 ; N Oacute ; B 40 -15 738 946 ;
+C -1 ; WX 500 ; N oacute ; B 2 -15 450 690 ;
+C -1 ; WX 574 ; N amacron ; B 2 -15 524 610 ;
+C -1 ; WX 444 ; N sacute ; B 2 -15 411 690 ;
+C -1 ; WX 333 ; N idieresis ; B 29 -15 359 646 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 40 -15 738 946 ;
+C -1 ; WX 815 ; N Ugrave ; B 93 -15 867 946 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 574 ; N thorn ; B -101 -205 506 737 ;
+C -1 ; WX 333 ; N twosuperior ; B 0 282 359 705 ;
+C -1 ; WX 778 ; N Odieresis ; B 40 -15 738 902 ;
+C -1 ; WX 611 ; N mu ; B -60 -205 556 466 ;
+C -1 ; WX 333 ; N igrave ; B 29 -15 282 690 ;
+C -1 ; WX 500 ; N ohungarumlaut ; B 2 -15 539 690 ;
+C -1 ; WX 722 ; N Eogonek ; B -33 -220 700 722 ;
+C -1 ; WX 611 ; N dcroat ; B 2 -15 636 737 ;
+C -1 ; WX 834 ; N threequarters ; B 22 -15 782 705 ;
+C -1 ; WX 667 ; N Scedilla ; B -6 -215 638 737 ;
+C -1 ; WX 363 ; N lcaron ; B 14 -15 436 737 ;
+C -1 ; WX 741 ; N Kcommaaccent ; B -33 -250 816 722 ;
+C -1 ; WX 667 ; N Lacute ; B -33 0 627 946 ;
+C -1 ; WX 950 ; N trademark ; B 32 318 968 722 ;
+C -1 ; WX 444 ; N edotaccent ; B -6 -15 388 653 ;
+C -1 ; WX 407 ; N Igrave ; B -33 0 435 946 ;
+C -1 ; WX 407 ; N Imacron ; B -33 0 460 866 ;
+C -1 ; WX 667 ; N Lcaron ; B -33 0 683 737 ;
+C -1 ; WX 834 ; N onehalf ; B 34 -15 776 705 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ;
+C -1 ; WX 500 ; N ocircumflex ; B 2 -15 450 690 ;
+C -1 ; WX 611 ; N ntilde ; B 14 -15 562 649 ;
+C -1 ; WX 815 ; N Uhungarumlaut ; B 93 -15 867 946 ;
+C -1 ; WX 722 ; N Eacute ; B -33 0 700 946 ;
+C -1 ; WX 444 ; N emacron ; B -6 -15 419 610 ;
+C -1 ; WX 537 ; N gbreve ; B -79 -205 523 677 ;
+C -1 ; WX 834 ; N onequarter ; B 34 -15 782 705 ;
+C -1 ; WX 667 ; N Scaron ; B -6 -15 638 946 ;
+C -1 ; WX 667 ; N Scommaaccent ; B -6 -250 638 737 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 40 -15 738 946 ;
+C -1 ; WX 400 ; N degree ; B 86 419 372 705 ;
+C -1 ; WX 500 ; N ograve ; B 2 -15 450 690 ;
+C -1 ; WX 722 ; N Ccaron ; B 40 -15 712 946 ;
+C -1 ; WX 611 ; N ugrave ; B 44 -15 556 690 ;
+C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ;
+C -1 ; WX 778 ; N Dcaron ; B -33 0 738 946 ;
+C -1 ; WX 444 ; N rcommaaccent ; B -67 -250 434 466 ;
+C -1 ; WX 815 ; N Ntilde ; B -51 -15 866 905 ;
+C -1 ; WX 500 ; N otilde ; B 2 -15 467 649 ;
+C -1 ; WX 741 ; N Rcommaaccent ; B -45 -250 692 722 ;
+C -1 ; WX 667 ; N Lcommaaccent ; B -33 -250 627 722 ;
+C -1 ; WX 704 ; N Atilde ; B -87 0 668 905 ;
+C -1 ; WX 704 ; N Aogonek ; B -87 -220 734 737 ;
+C -1 ; WX 704 ; N Aring ; B -87 0 668 958 ;
+C -1 ; WX 778 ; N Otilde ; B 40 -15 738 905 ;
+C -1 ; WX 463 ; N zdotaccent ; B -33 -15 416 653 ;
+C -1 ; WX 722 ; N Ecaron ; B -33 0 700 946 ;
+C -1 ; WX 407 ; N Iogonek ; B -33 -220 435 722 ;
+C -1 ; WX 556 ; N kcommaaccent ; B 0 -250 497 737 ;
+C -1 ; WX 606 ; N minus ; B 50 217 556 289 ;
+C -1 ; WX 407 ; N Icircumflex ; B -33 0 435 946 ;
+C -1 ; WX 611 ; N ncaron ; B 14 -15 562 690 ;
+C -1 ; WX 352 ; N tcommaaccent ; B -33 -250 328 619 ;
+C -1 ; WX 606 ; N logicalnot ; B 50 108 556 389 ;
+C -1 ; WX 500 ; N odieresis ; B 2 -15 450 646 ;
+C -1 ; WX 611 ; N udieresis ; B 44 -15 556 646 ;
+C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ;
+C -1 ; WX 537 ; N gcommaaccent ; B -79 -205 523 805 ;
+C -1 ; WX 500 ; N eth ; B 2 -15 450 737 ;
+C -1 ; WX 463 ; N zcaron ; B -33 -15 443 690 ;
+C -1 ; WX 611 ; N ncommaaccent ; B 14 -250 562 466 ;
+C -1 ; WX 333 ; N onesuperior ; B 34 282 311 705 ;
+C -1 ; WX 333 ; N imacron ; B 29 -15 300 610 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 1696
+KPX A C -18
+KPX A Cacute -18
+KPX A Ccaron -18
+KPX A Ccedilla -18
+KPX A G -18
+KPX A Gbreve -18
+KPX A Gcommaaccent -18
+KPX A O -18
+KPX A Oacute -18
+KPX A Ocircumflex -18
+KPX A Odieresis -18
+KPX A Ograve -18
+KPX A Ohungarumlaut -18
+KPX A Omacron -18
+KPX A Oslash -18
+KPX A Otilde -18
+KPX A Q -18
+KPX A T -30
+KPX A Tcaron -30
+KPX A Tcommaaccent -30
+KPX A U -37
+KPX A Uacute -37
+KPX A Ucircumflex -37
+KPX A Udieresis -37
+KPX A Ugrave -37
+KPX A Uhungarumlaut -37
+KPX A Umacron -37
+KPX A Uogonek -37
+KPX A Uring -37
+KPX A V -74
+KPX A W -74
+KPX A Y -55
+KPX A Yacute -55
+KPX A Ydieresis -55
+KPX A quotedblright -125
+KPX A quoteright -125
+KPX A u -18
+KPX A uacute -18
+KPX A ucircumflex -18
+KPX A udieresis -18
+KPX A ugrave -18
+KPX A uhungarumlaut -18
+KPX A umacron -18
+KPX A uogonek -18
+KPX A uring -18
+KPX A v -18
+KPX A w -18
+KPX A y -55
+KPX A yacute -55
+KPX A ydieresis -55
+KPX Aacute C -18
+KPX Aacute Cacute -18
+KPX Aacute Ccaron -18
+KPX Aacute Ccedilla -18
+KPX Aacute G -18
+KPX Aacute Gbreve -18
+KPX Aacute Gcommaaccent -18
+KPX Aacute O -18
+KPX Aacute Oacute -18
+KPX Aacute Ocircumflex -18
+KPX Aacute Odieresis -18
+KPX Aacute Ograve -18
+KPX Aacute Ohungarumlaut -18
+KPX Aacute Omacron -18
+KPX Aacute Oslash -18
+KPX Aacute Otilde -18
+KPX Aacute Q -18
+KPX Aacute T -30
+KPX Aacute Tcaron -30
+KPX Aacute Tcommaaccent -30
+KPX Aacute U -37
+KPX Aacute Uacute -37
+KPX Aacute Ucircumflex -37
+KPX Aacute Udieresis -37
+KPX Aacute Ugrave -37
+KPX Aacute Uhungarumlaut -37
+KPX Aacute Umacron -37
+KPX Aacute Uogonek -37
+KPX Aacute Uring -37
+KPX Aacute V -74
+KPX Aacute W -74
+KPX Aacute Y -55
+KPX Aacute Yacute -55
+KPX Aacute Ydieresis -55
+KPX Aacute quotedblright -125
+KPX Aacute quoteright -125
+KPX Aacute u -18
+KPX Aacute uacute -18
+KPX Aacute ucircumflex -18
+KPX Aacute udieresis -18
+KPX Aacute ugrave -18
+KPX Aacute uhungarumlaut -18
+KPX Aacute umacron -18
+KPX Aacute uogonek -18
+KPX Aacute uring -18
+KPX Aacute v -18
+KPX Aacute w -18
+KPX Aacute y -55
+KPX Aacute yacute -55
+KPX Aacute ydieresis -55
+KPX Abreve C -18
+KPX Abreve Cacute -18
+KPX Abreve Ccaron -18
+KPX Abreve Ccedilla -18
+KPX Abreve G -18
+KPX Abreve Gbreve -18
+KPX Abreve Gcommaaccent -18
+KPX Abreve O -18
+KPX Abreve Oacute -18
+KPX Abreve Ocircumflex -18
+KPX Abreve Odieresis -18
+KPX Abreve Ograve -18
+KPX Abreve Ohungarumlaut -18
+KPX Abreve Omacron -18
+KPX Abreve Oslash -18
+KPX Abreve Otilde -18
+KPX Abreve Q -18
+KPX Abreve T -30
+KPX Abreve Tcaron -30
+KPX Abreve Tcommaaccent -30
+KPX Abreve U -37
+KPX Abreve Uacute -37
+KPX Abreve Ucircumflex -37
+KPX Abreve Udieresis -37
+KPX Abreve Ugrave -37
+KPX Abreve Uhungarumlaut -37
+KPX Abreve Umacron -37
+KPX Abreve Uogonek -37
+KPX Abreve Uring -37
+KPX Abreve V -74
+KPX Abreve W -74
+KPX Abreve Y -55
+KPX Abreve Yacute -55
+KPX Abreve Ydieresis -55
+KPX Abreve quotedblright -125
+KPX Abreve quoteright -125
+KPX Abreve u -18
+KPX Abreve uacute -18
+KPX Abreve ucircumflex -18
+KPX Abreve udieresis -18
+KPX Abreve ugrave -18
+KPX Abreve uhungarumlaut -18
+KPX Abreve umacron -18
+KPX Abreve uogonek -18
+KPX Abreve uring -18
+KPX Abreve v -18
+KPX Abreve w -18
+KPX Abreve y -55
+KPX Abreve yacute -55
+KPX Abreve ydieresis -55
+KPX Acircumflex C -18
+KPX Acircumflex Cacute -18
+KPX Acircumflex Ccaron -18
+KPX Acircumflex Ccedilla -18
+KPX Acircumflex G -18
+KPX Acircumflex Gbreve -18
+KPX Acircumflex Gcommaaccent -18
+KPX Acircumflex O -18
+KPX Acircumflex Oacute -18
+KPX Acircumflex Ocircumflex -18
+KPX Acircumflex Odieresis -18
+KPX Acircumflex Ograve -18
+KPX Acircumflex Ohungarumlaut -18
+KPX Acircumflex Omacron -18
+KPX Acircumflex Oslash -18
+KPX Acircumflex Otilde -18
+KPX Acircumflex Q -18
+KPX Acircumflex T -30
+KPX Acircumflex Tcaron -30
+KPX Acircumflex Tcommaaccent -30
+KPX Acircumflex U -37
+KPX Acircumflex Uacute -37
+KPX Acircumflex Ucircumflex -37
+KPX Acircumflex Udieresis -37
+KPX Acircumflex Ugrave -37
+KPX Acircumflex Uhungarumlaut -37
+KPX Acircumflex Umacron -37
+KPX Acircumflex Uogonek -37
+KPX Acircumflex Uring -37
+KPX Acircumflex V -74
+KPX Acircumflex W -74
+KPX Acircumflex Y -55
+KPX Acircumflex Yacute -55
+KPX Acircumflex Ydieresis -55
+KPX Acircumflex quotedblright -125
+KPX Acircumflex quoteright -125
+KPX Acircumflex u -18
+KPX Acircumflex uacute -18
+KPX Acircumflex ucircumflex -18
+KPX Acircumflex udieresis -18
+KPX Acircumflex ugrave -18
+KPX Acircumflex uhungarumlaut -18
+KPX Acircumflex umacron -18
+KPX Acircumflex uogonek -18
+KPX Acircumflex uring -18
+KPX Acircumflex v -18
+KPX Acircumflex w -18
+KPX Acircumflex y -55
+KPX Acircumflex yacute -55
+KPX Acircumflex ydieresis -55
+KPX Adieresis C -18
+KPX Adieresis Cacute -18
+KPX Adieresis Ccaron -18
+KPX Adieresis Ccedilla -18
+KPX Adieresis G -18
+KPX Adieresis Gbreve -18
+KPX Adieresis Gcommaaccent -18
+KPX Adieresis O -18
+KPX Adieresis Oacute -18
+KPX Adieresis Ocircumflex -18
+KPX Adieresis Odieresis -18
+KPX Adieresis Ograve -18
+KPX Adieresis Ohungarumlaut -18
+KPX Adieresis Omacron -18
+KPX Adieresis Oslash -18
+KPX Adieresis Otilde -18
+KPX Adieresis Q -18
+KPX Adieresis T -30
+KPX Adieresis Tcaron -30
+KPX Adieresis Tcommaaccent -30
+KPX Adieresis U -37
+KPX Adieresis Uacute -37
+KPX Adieresis Ucircumflex -37
+KPX Adieresis Udieresis -37
+KPX Adieresis Ugrave -37
+KPX Adieresis Uhungarumlaut -37
+KPX Adieresis Umacron -37
+KPX Adieresis Uogonek -37
+KPX Adieresis Uring -37
+KPX Adieresis V -74
+KPX Adieresis W -74
+KPX Adieresis Y -55
+KPX Adieresis Yacute -55
+KPX Adieresis Ydieresis -55
+KPX Adieresis quotedblright -125
+KPX Adieresis quoteright -125
+KPX Adieresis u -18
+KPX Adieresis uacute -18
+KPX Adieresis ucircumflex -18
+KPX Adieresis udieresis -18
+KPX Adieresis ugrave -18
+KPX Adieresis uhungarumlaut -18
+KPX Adieresis umacron -18
+KPX Adieresis uogonek -18
+KPX Adieresis uring -18
+KPX Adieresis v -18
+KPX Adieresis w -18
+KPX Adieresis y -55
+KPX Adieresis yacute -55
+KPX Adieresis ydieresis -55
+KPX Agrave C -18
+KPX Agrave Cacute -18
+KPX Agrave Ccaron -18
+KPX Agrave Ccedilla -18
+KPX Agrave G -18
+KPX Agrave Gbreve -18
+KPX Agrave Gcommaaccent -18
+KPX Agrave O -18
+KPX Agrave Oacute -18
+KPX Agrave Ocircumflex -18
+KPX Agrave Odieresis -18
+KPX Agrave Ograve -18
+KPX Agrave Ohungarumlaut -18
+KPX Agrave Omacron -18
+KPX Agrave Oslash -18
+KPX Agrave Otilde -18
+KPX Agrave Q -18
+KPX Agrave T -30
+KPX Agrave Tcaron -30
+KPX Agrave Tcommaaccent -30
+KPX Agrave U -37
+KPX Agrave Uacute -37
+KPX Agrave Ucircumflex -37
+KPX Agrave Udieresis -37
+KPX Agrave Ugrave -37
+KPX Agrave Uhungarumlaut -37
+KPX Agrave Umacron -37
+KPX Agrave Uogonek -37
+KPX Agrave Uring -37
+KPX Agrave V -74
+KPX Agrave W -74
+KPX Agrave Y -55
+KPX Agrave Yacute -55
+KPX Agrave Ydieresis -55
+KPX Agrave quotedblright -125
+KPX Agrave quoteright -125
+KPX Agrave u -18
+KPX Agrave uacute -18
+KPX Agrave ucircumflex -18
+KPX Agrave udieresis -18
+KPX Agrave ugrave -18
+KPX Agrave uhungarumlaut -18
+KPX Agrave umacron -18
+KPX Agrave uogonek -18
+KPX Agrave uring -18
+KPX Agrave v -18
+KPX Agrave w -18
+KPX Agrave y -55
+KPX Agrave yacute -55
+KPX Agrave ydieresis -55
+KPX Amacron C -18
+KPX Amacron Cacute -18
+KPX Amacron Ccaron -18
+KPX Amacron Ccedilla -18
+KPX Amacron G -18
+KPX Amacron Gbreve -18
+KPX Amacron Gcommaaccent -18
+KPX Amacron O -18
+KPX Amacron Oacute -18
+KPX Amacron Ocircumflex -18
+KPX Amacron Odieresis -18
+KPX Amacron Ograve -18
+KPX Amacron Ohungarumlaut -18
+KPX Amacron Omacron -18
+KPX Amacron Oslash -18
+KPX Amacron Otilde -18
+KPX Amacron Q -18
+KPX Amacron T -30
+KPX Amacron Tcaron -30
+KPX Amacron Tcommaaccent -30
+KPX Amacron U -37
+KPX Amacron Uacute -37
+KPX Amacron Ucircumflex -37
+KPX Amacron Udieresis -37
+KPX Amacron Ugrave -37
+KPX Amacron Uhungarumlaut -37
+KPX Amacron Umacron -37
+KPX Amacron Uogonek -37
+KPX Amacron Uring -37
+KPX Amacron V -74
+KPX Amacron W -74
+KPX Amacron Y -55
+KPX Amacron Yacute -55
+KPX Amacron Ydieresis -55
+KPX Amacron quotedblright -125
+KPX Amacron quoteright -125
+KPX Amacron u -18
+KPX Amacron uacute -18
+KPX Amacron ucircumflex -18
+KPX Amacron udieresis -18
+KPX Amacron ugrave -18
+KPX Amacron uhungarumlaut -18
+KPX Amacron umacron -18
+KPX Amacron uogonek -18
+KPX Amacron uring -18
+KPX Amacron v -18
+KPX Amacron w -18
+KPX Amacron y -55
+KPX Amacron yacute -55
+KPX Amacron ydieresis -55
+KPX Aogonek C -18
+KPX Aogonek Cacute -18
+KPX Aogonek Ccaron -18
+KPX Aogonek Ccedilla -18
+KPX Aogonek G -18
+KPX Aogonek Gbreve -18
+KPX Aogonek Gcommaaccent -18
+KPX Aogonek O -18
+KPX Aogonek Oacute -18
+KPX Aogonek Ocircumflex -18
+KPX Aogonek Odieresis -18
+KPX Aogonek Ograve -18
+KPX Aogonek Ohungarumlaut -18
+KPX Aogonek Omacron -18
+KPX Aogonek Oslash -18
+KPX Aogonek Otilde -18
+KPX Aogonek Q -18
+KPX Aogonek T -30
+KPX Aogonek Tcaron -30
+KPX Aogonek Tcommaaccent -30
+KPX Aogonek U -37
+KPX Aogonek Uacute -37
+KPX Aogonek Ucircumflex -37
+KPX Aogonek Udieresis -37
+KPX Aogonek Ugrave -37
+KPX Aogonek Uhungarumlaut -37
+KPX Aogonek Umacron -37
+KPX Aogonek Uogonek -37
+KPX Aogonek Uring -37
+KPX Aogonek V -74
+KPX Aogonek W -74
+KPX Aogonek Y -55
+KPX Aogonek Yacute -55
+KPX Aogonek Ydieresis -55
+KPX Aogonek quotedblright -125
+KPX Aogonek quoteright -125
+KPX Aogonek u -18
+KPX Aogonek uacute -18
+KPX Aogonek ucircumflex -18
+KPX Aogonek udieresis -18
+KPX Aogonek ugrave -18
+KPX Aogonek uhungarumlaut -18
+KPX Aogonek umacron -18
+KPX Aogonek uogonek -18
+KPX Aogonek uring -18
+KPX Aogonek v -18
+KPX Aogonek w -18
+KPX Aring C -18
+KPX Aring Cacute -18
+KPX Aring Ccaron -18
+KPX Aring Ccedilla -18
+KPX Aring G -18
+KPX Aring Gbreve -18
+KPX Aring Gcommaaccent -18
+KPX Aring O -18
+KPX Aring Oacute -18
+KPX Aring Ocircumflex -18
+KPX Aring Odieresis -18
+KPX Aring Ograve -18
+KPX Aring Ohungarumlaut -18
+KPX Aring Omacron -18
+KPX Aring Oslash -18
+KPX Aring Otilde -18
+KPX Aring Q -18
+KPX Aring T -30
+KPX Aring Tcaron -30
+KPX Aring Tcommaaccent -30
+KPX Aring U -37
+KPX Aring Uacute -37
+KPX Aring Ucircumflex -37
+KPX Aring Udieresis -37
+KPX Aring Ugrave -37
+KPX Aring Uhungarumlaut -37
+KPX Aring Umacron -37
+KPX Aring Uogonek -37
+KPX Aring Uring -37
+KPX Aring V -74
+KPX Aring W -74
+KPX Aring Y -55
+KPX Aring Yacute -55
+KPX Aring Ydieresis -55
+KPX Aring quotedblright -125
+KPX Aring quoteright -125
+KPX Aring u -18
+KPX Aring uacute -18
+KPX Aring ucircumflex -18
+KPX Aring udieresis -18
+KPX Aring ugrave -18
+KPX Aring uhungarumlaut -18
+KPX Aring umacron -18
+KPX Aring uogonek -18
+KPX Aring uring -18
+KPX Aring v -18
+KPX Aring w -18
+KPX Aring y -55
+KPX Aring yacute -55
+KPX Aring ydieresis -55
+KPX Atilde C -18
+KPX Atilde Cacute -18
+KPX Atilde Ccaron -18
+KPX Atilde Ccedilla -18
+KPX Atilde G -18
+KPX Atilde Gbreve -18
+KPX Atilde Gcommaaccent -18
+KPX Atilde O -18
+KPX Atilde Oacute -18
+KPX Atilde Ocircumflex -18
+KPX Atilde Odieresis -18
+KPX Atilde Ograve -18
+KPX Atilde Ohungarumlaut -18
+KPX Atilde Omacron -18
+KPX Atilde Oslash -18
+KPX Atilde Otilde -18
+KPX Atilde Q -18
+KPX Atilde T -30
+KPX Atilde Tcaron -30
+KPX Atilde Tcommaaccent -30
+KPX Atilde U -37
+KPX Atilde Uacute -37
+KPX Atilde Ucircumflex -37
+KPX Atilde Udieresis -37
+KPX Atilde Ugrave -37
+KPX Atilde Uhungarumlaut -37
+KPX Atilde Umacron -37
+KPX Atilde Uogonek -37
+KPX Atilde Uring -37
+KPX Atilde V -74
+KPX Atilde W -74
+KPX Atilde Y -55
+KPX Atilde Yacute -55
+KPX Atilde Ydieresis -55
+KPX Atilde quotedblright -125
+KPX Atilde quoteright -125
+KPX Atilde u -18
+KPX Atilde uacute -18
+KPX Atilde ucircumflex -18
+KPX Atilde udieresis -18
+KPX Atilde ugrave -18
+KPX Atilde uhungarumlaut -18
+KPX Atilde umacron -18
+KPX Atilde uogonek -18
+KPX Atilde uring -18
+KPX Atilde v -18
+KPX Atilde w -18
+KPX Atilde y -55
+KPX Atilde yacute -55
+KPX Atilde ydieresis -55
+KPX B comma -50
+KPX B period -50
+KPX C comma -50
+KPX C period -50
+KPX Cacute comma -50
+KPX Cacute period -50
+KPX Ccaron comma -50
+KPX Ccaron period -50
+KPX Ccedilla comma -50
+KPX Ccedilla period -50
+KPX D V -18
+KPX D W -18
+KPX D Y -18
+KPX D Yacute -18
+KPX D Ydieresis -18
+KPX D comma -50
+KPX D period -50
+KPX Dcaron V -18
+KPX Dcaron W -18
+KPX Dcaron Y -18
+KPX Dcaron Yacute -18
+KPX Dcaron Ydieresis -18
+KPX Dcaron comma -50
+KPX Dcaron period -50
+KPX Dcroat V -18
+KPX Dcroat W -18
+KPX Dcroat Y -18
+KPX Dcroat Yacute -18
+KPX Dcroat Ydieresis -18
+KPX Dcroat comma -50
+KPX Dcroat period -50
+KPX F A -35
+KPX F Aacute -35
+KPX F Abreve -35
+KPX F Acircumflex -35
+KPX F Adieresis -35
+KPX F Agrave -35
+KPX F Amacron -35
+KPX F Aogonek -35
+KPX F Aring -35
+KPX F Atilde -35
+KPX F a -55
+KPX F aacute -55
+KPX F abreve -55
+KPX F acircumflex -55
+KPX F adieresis -55
+KPX F agrave -55
+KPX F amacron -55
+KPX F aogonek -55
+KPX F aring -55
+KPX F atilde -55
+KPX F comma -125
+KPX F e -55
+KPX F eacute -55
+KPX F ecaron -55
+KPX F ecircumflex -55
+KPX F edieresis -55
+KPX F edotaccent -55
+KPX F egrave -55
+KPX F emacron -55
+KPX F eogonek -55
+KPX F i -10
+KPX F iacute -10
+KPX F icircumflex -10
+KPX F idieresis -10
+KPX F igrave -10
+KPX F imacron -10
+KPX F iogonek -10
+KPX F o -55
+KPX F oacute -55
+KPX F ocircumflex -55
+KPX F odieresis -55
+KPX F ograve -55
+KPX F ohungarumlaut -55
+KPX F omacron -55
+KPX F oslash -55
+KPX F otilde -55
+KPX F period -125
+KPX F r -55
+KPX F racute -55
+KPX F rcaron -55
+KPX F rcommaaccent -55
+KPX G comma -50
+KPX G period -50
+KPX Gbreve comma -50
+KPX Gbreve period -50
+KPX Gcommaaccent comma -50
+KPX Gcommaaccent period -50
+KPX J A -18
+KPX J Aacute -18
+KPX J Abreve -18
+KPX J Acircumflex -18
+KPX J Adieresis -18
+KPX J Agrave -18
+KPX J Amacron -18
+KPX J Aogonek -18
+KPX J Aring -18
+KPX J Atilde -18
+KPX J a -37
+KPX J aacute -37
+KPX J abreve -37
+KPX J acircumflex -37
+KPX J adieresis -37
+KPX J agrave -37
+KPX J amacron -37
+KPX J aogonek -37
+KPX J aring -37
+KPX J atilde -37
+KPX J comma -100
+KPX J e -37
+KPX J eacute -37
+KPX J ecaron -37
+KPX J ecircumflex -37
+KPX J edieresis -37
+KPX J edotaccent -37
+KPX J egrave -37
+KPX J emacron -37
+KPX J eogonek -37
+KPX J o -37
+KPX J oacute -37
+KPX J ocircumflex -37
+KPX J odieresis -37
+KPX J ograve -37
+KPX J ohungarumlaut -37
+KPX J omacron -37
+KPX J oslash -37
+KPX J otilde -37
+KPX J period -100
+KPX J u -18
+KPX J uacute -18
+KPX J ucircumflex -18
+KPX J udieresis -18
+KPX J ugrave -18
+KPX J uhungarumlaut -18
+KPX J umacron -18
+KPX J uogonek -18
+KPX J uring -18
+KPX L T -100
+KPX L Tcaron -100
+KPX L Tcommaaccent -100
+KPX L V -100
+KPX L W -100
+KPX L Y -100
+KPX L Yacute -100
+KPX L Ydieresis -100
+KPX L quotedblright -125
+KPX L quoteright -125
+KPX L y -50
+KPX L yacute -50
+KPX L ydieresis -50
+KPX Lacute T -100
+KPX Lacute Tcaron -100
+KPX Lacute Tcommaaccent -100
+KPX Lacute V -100
+KPX Lacute W -100
+KPX Lacute Y -100
+KPX Lacute Yacute -100
+KPX Lacute Ydieresis -100
+KPX Lacute quotedblright -125
+KPX Lacute quoteright -125
+KPX Lacute y -50
+KPX Lacute yacute -50
+KPX Lacute ydieresis -50
+KPX Lcommaaccent T -100
+KPX Lcommaaccent Tcaron -100
+KPX Lcommaaccent Tcommaaccent -100
+KPX Lcommaaccent V -100
+KPX Lcommaaccent W -100
+KPX Lcommaaccent Y -100
+KPX Lcommaaccent Yacute -100
+KPX Lcommaaccent Ydieresis -100
+KPX Lcommaaccent quotedblright -125
+KPX Lcommaaccent quoteright -125
+KPX Lcommaaccent y -50
+KPX Lcommaaccent yacute -50
+KPX Lcommaaccent ydieresis -50
+KPX Lslash T -100
+KPX Lslash Tcaron -100
+KPX Lslash Tcommaaccent -100
+KPX Lslash V -100
+KPX Lslash W -100
+KPX Lslash Y -100
+KPX Lslash Yacute -100
+KPX Lslash Ydieresis -100
+KPX Lslash quotedblright -125
+KPX Lslash quoteright -125
+KPX Lslash y -50
+KPX Lslash yacute -50
+KPX Lslash ydieresis -50
+KPX N comma -60
+KPX N period -60
+KPX Nacute comma -60
+KPX Nacute period -60
+KPX Ncaron comma -60
+KPX Ncaron period -60
+KPX Ncommaaccent comma -60
+KPX Ncommaaccent period -60
+KPX Ntilde comma -60
+KPX Ntilde period -60
+KPX O T 18
+KPX O Tcaron 18
+KPX O Tcommaaccent 18
+KPX O V -18
+KPX O X -18
+KPX O Y -18
+KPX O Yacute -18
+KPX O Ydieresis -18
+KPX O comma -50
+KPX O period -50
+KPX Oacute T 18
+KPX Oacute Tcaron 18
+KPX Oacute Tcommaaccent 18
+KPX Oacute V -18
+KPX Oacute X -18
+KPX Oacute Y -18
+KPX Oacute Yacute -18
+KPX Oacute Ydieresis -18
+KPX Oacute comma -50
+KPX Oacute period -50
+KPX Ocircumflex T 18
+KPX Ocircumflex Tcaron 18
+KPX Ocircumflex Tcommaaccent 18
+KPX Ocircumflex V -18
+KPX Ocircumflex X -18
+KPX Ocircumflex Y -18
+KPX Ocircumflex Yacute -18
+KPX Ocircumflex Ydieresis -18
+KPX Ocircumflex comma -50
+KPX Ocircumflex period -50
+KPX Odieresis T 18
+KPX Odieresis Tcaron 18
+KPX Odieresis Tcommaaccent 18
+KPX Odieresis V -18
+KPX Odieresis X -18
+KPX Odieresis Y -18
+KPX Odieresis Yacute -18
+KPX Odieresis Ydieresis -18
+KPX Odieresis comma -50
+KPX Odieresis period -50
+KPX Ograve T 18
+KPX Ograve Tcaron 18
+KPX Ograve Tcommaaccent 18
+KPX Ograve V -18
+KPX Ograve X -18
+KPX Ograve Y -18
+KPX Ograve Yacute -18
+KPX Ograve Ydieresis -18
+KPX Ograve comma -50
+KPX Ograve period -50
+KPX Ohungarumlaut T 18
+KPX Ohungarumlaut Tcaron 18
+KPX Ohungarumlaut Tcommaaccent 18
+KPX Ohungarumlaut V -18
+KPX Ohungarumlaut X -18
+KPX Ohungarumlaut Y -18
+KPX Ohungarumlaut Yacute -18
+KPX Ohungarumlaut Ydieresis -18
+KPX Ohungarumlaut comma -50
+KPX Ohungarumlaut period -50
+KPX Omacron T 18
+KPX Omacron Tcaron 18
+KPX Omacron Tcommaaccent 18
+KPX Omacron V -18
+KPX Omacron X -18
+KPX Omacron Y -18
+KPX Omacron Yacute -18
+KPX Omacron Ydieresis -18
+KPX Omacron comma -50
+KPX Omacron period -50
+KPX Oslash T 18
+KPX Oslash Tcaron 18
+KPX Oslash Tcommaaccent 18
+KPX Oslash V -18
+KPX Oslash X -18
+KPX Oslash Y -18
+KPX Oslash Yacute -18
+KPX Oslash Ydieresis -18
+KPX Oslash comma -50
+KPX Oslash period -50
+KPX Otilde T 18
+KPX Otilde Tcaron 18
+KPX Otilde Tcommaaccent 18
+KPX Otilde V -18
+KPX Otilde X -18
+KPX Otilde Y -18
+KPX Otilde Yacute -18
+KPX Otilde Ydieresis -18
+KPX Otilde comma -50
+KPX Otilde period -50
+KPX P A -50
+KPX P Aacute -50
+KPX P Abreve -50
+KPX P Acircumflex -50
+KPX P Adieresis -50
+KPX P Agrave -50
+KPX P Amacron -50
+KPX P Aogonek -50
+KPX P Aring -50
+KPX P Atilde -50
+KPX P a -55
+KPX P aacute -55
+KPX P abreve -55
+KPX P acircumflex -55
+KPX P adieresis -55
+KPX P agrave -55
+KPX P amacron -55
+KPX P aogonek -55
+KPX P aring -55
+KPX P atilde -55
+KPX P comma -125
+KPX P e -55
+KPX P eacute -55
+KPX P ecaron -55
+KPX P ecircumflex -55
+KPX P edieresis -55
+KPX P edotaccent -55
+KPX P egrave -55
+KPX P emacron -55
+KPX P eogonek -55
+KPX P o -55
+KPX P oacute -55
+KPX P ocircumflex -55
+KPX P odieresis -55
+KPX P ograve -55
+KPX P ohungarumlaut -55
+KPX P omacron -55
+KPX P oslash -55
+KPX P otilde -55
+KPX P period -125
+KPX Q comma -20
+KPX Q period -20
+KPX R U -18
+KPX R Uacute -18
+KPX R Ucircumflex -18
+KPX R Udieresis -18
+KPX R Ugrave -18
+KPX R Uhungarumlaut -18
+KPX R Umacron -18
+KPX R Uogonek -18
+KPX R Uring -18
+KPX R V -18
+KPX R W -18
+KPX R Y -18
+KPX R Yacute -18
+KPX R Ydieresis -18
+KPX Racute U -18
+KPX Racute Uacute -18
+KPX Racute Ucircumflex -18
+KPX Racute Udieresis -18
+KPX Racute Ugrave -18
+KPX Racute Uhungarumlaut -18
+KPX Racute Umacron -18
+KPX Racute Uogonek -18
+KPX Racute Uring -18
+KPX Racute V -18
+KPX Racute W -18
+KPX Racute Y -18
+KPX Racute Yacute -18
+KPX Racute Ydieresis -18
+KPX Rcaron U -18
+KPX Rcaron Uacute -18
+KPX Rcaron Ucircumflex -18
+KPX Rcaron Udieresis -18
+KPX Rcaron Ugrave -18
+KPX Rcaron Uhungarumlaut -18
+KPX Rcaron Umacron -18
+KPX Rcaron Uogonek -18
+KPX Rcaron Uring -18
+KPX Rcaron V -18
+KPX Rcaron W -18
+KPX Rcaron Y -18
+KPX Rcaron Yacute -18
+KPX Rcaron Ydieresis -18
+KPX Rcommaaccent U -18
+KPX Rcommaaccent Uacute -18
+KPX Rcommaaccent Ucircumflex -18
+KPX Rcommaaccent Udieresis -18
+KPX Rcommaaccent Ugrave -18
+KPX Rcommaaccent Uhungarumlaut -18
+KPX Rcommaaccent Umacron -18
+KPX Rcommaaccent Uogonek -18
+KPX Rcommaaccent Uring -18
+KPX Rcommaaccent V -18
+KPX Rcommaaccent W -18
+KPX Rcommaaccent Y -18
+KPX Rcommaaccent Yacute -18
+KPX Rcommaaccent Ydieresis -18
+KPX S comma -50
+KPX S period -50
+KPX Sacute comma -50
+KPX Sacute period -50
+KPX Scaron comma -50
+KPX Scaron period -50
+KPX Scedilla comma -50
+KPX Scedilla period -50
+KPX Scommaaccent comma -50
+KPX Scommaaccent period -50
+KPX T O 18
+KPX T Oacute 18
+KPX T Ocircumflex 18
+KPX T Odieresis 18
+KPX T Ograve 18
+KPX T Ohungarumlaut 18
+KPX T Omacron 18
+KPX T Oslash 18
+KPX T Otilde 18
+KPX T a -74
+KPX T aacute -74
+KPX T abreve -74
+KPX T acircumflex -74
+KPX T adieresis -74
+KPX T agrave -74
+KPX T amacron -74
+KPX T aogonek -74
+KPX T aring -74
+KPX T atilde -74
+KPX T colon -50
+KPX T comma -100
+KPX T e -74
+KPX T eacute -74
+KPX T ecaron -34
+KPX T ecircumflex -34
+KPX T edieresis -34
+KPX T edotaccent -74
+KPX T egrave -34
+KPX T emacron -34
+KPX T eogonek -74
+KPX T h -25
+KPX T hyphen -100
+KPX T i -18
+KPX T iacute -18
+KPX T icircumflex -18
+KPX T iogonek -18
+KPX T o -74
+KPX T oacute -74
+KPX T ocircumflex -74
+KPX T odieresis -34
+KPX T ograve -34
+KPX T ohungarumlaut -34
+KPX T omacron -34
+KPX T oslash -74
+KPX T otilde -34
+KPX T period -100
+KPX T r -50
+KPX T racute -50
+KPX T rcaron -50
+KPX T rcommaaccent -50
+KPX T semicolon -50
+KPX T u -50
+KPX T uacute -50
+KPX T ucircumflex -50
+KPX T udieresis -50
+KPX T ugrave -50
+KPX T uhungarumlaut -50
+KPX T umacron -50
+KPX T uogonek -50
+KPX T uring -50
+KPX T w -50
+KPX T y -50
+KPX T yacute -50
+KPX T ydieresis -50
+KPX Tcaron O 18
+KPX Tcaron Oacute 18
+KPX Tcaron Ocircumflex 18
+KPX Tcaron Odieresis 18
+KPX Tcaron Ograve 18
+KPX Tcaron Ohungarumlaut 18
+KPX Tcaron Omacron 18
+KPX Tcaron Oslash 18
+KPX Tcaron Otilde 18
+KPX Tcaron a -74
+KPX Tcaron aacute -74
+KPX Tcaron abreve -74
+KPX Tcaron acircumflex -74
+KPX Tcaron adieresis -74
+KPX Tcaron agrave -74
+KPX Tcaron amacron -74
+KPX Tcaron aogonek -74
+KPX Tcaron aring -74
+KPX Tcaron atilde -74
+KPX Tcaron colon -50
+KPX Tcaron comma -100
+KPX Tcaron e -74
+KPX Tcaron eacute -74
+KPX Tcaron ecaron -34
+KPX Tcaron ecircumflex -34
+KPX Tcaron edieresis -34
+KPX Tcaron edotaccent -74
+KPX Tcaron egrave -34
+KPX Tcaron emacron -34
+KPX Tcaron eogonek -74
+KPX Tcaron h -25
+KPX Tcaron hyphen -100
+KPX Tcaron i -18
+KPX Tcaron iacute -18
+KPX Tcaron icircumflex -18
+KPX Tcaron iogonek -18
+KPX Tcaron o -74
+KPX Tcaron oacute -74
+KPX Tcaron ocircumflex -74
+KPX Tcaron odieresis -34
+KPX Tcaron ograve -34
+KPX Tcaron ohungarumlaut -34
+KPX Tcaron omacron -34
+KPX Tcaron oslash -74
+KPX Tcaron otilde -34
+KPX Tcaron period -100
+KPX Tcaron r -50
+KPX Tcaron racute -50
+KPX Tcaron rcaron -50
+KPX Tcaron rcommaaccent -50
+KPX Tcaron semicolon -50
+KPX Tcaron u -50
+KPX Tcaron uacute -50
+KPX Tcaron ucircumflex -50
+KPX Tcaron udieresis -50
+KPX Tcaron ugrave -50
+KPX Tcaron uhungarumlaut -50
+KPX Tcaron umacron -50
+KPX Tcaron uogonek -50
+KPX Tcaron uring -50
+KPX Tcaron w -50
+KPX Tcaron y -50
+KPX Tcaron yacute -50
+KPX Tcaron ydieresis -50
+KPX Tcommaaccent O 18
+KPX Tcommaaccent Oacute 18
+KPX Tcommaaccent Ocircumflex 18
+KPX Tcommaaccent Odieresis 18
+KPX Tcommaaccent Ograve 18
+KPX Tcommaaccent Ohungarumlaut 18
+KPX Tcommaaccent Omacron 18
+KPX Tcommaaccent Oslash 18
+KPX Tcommaaccent Otilde 18
+KPX Tcommaaccent a -74
+KPX Tcommaaccent aacute -74
+KPX Tcommaaccent abreve -74
+KPX Tcommaaccent acircumflex -74
+KPX Tcommaaccent adieresis -74
+KPX Tcommaaccent agrave -74
+KPX Tcommaaccent amacron -74
+KPX Tcommaaccent aogonek -74
+KPX Tcommaaccent aring -74
+KPX Tcommaaccent atilde -74
+KPX Tcommaaccent colon -50
+KPX Tcommaaccent comma -100
+KPX Tcommaaccent e -74
+KPX Tcommaaccent eacute -74
+KPX Tcommaaccent ecaron -34
+KPX Tcommaaccent ecircumflex -34
+KPX Tcommaaccent edieresis -34
+KPX Tcommaaccent edotaccent -74
+KPX Tcommaaccent egrave -34
+KPX Tcommaaccent emacron -34
+KPX Tcommaaccent eogonek -74
+KPX Tcommaaccent h -25
+KPX Tcommaaccent hyphen -100
+KPX Tcommaaccent i -18
+KPX Tcommaaccent iacute -18
+KPX Tcommaaccent icircumflex -18
+KPX Tcommaaccent iogonek -18
+KPX Tcommaaccent o -74
+KPX Tcommaaccent oacute -74
+KPX Tcommaaccent ocircumflex -74
+KPX Tcommaaccent odieresis -34
+KPX Tcommaaccent ograve -34
+KPX Tcommaaccent ohungarumlaut -34
+KPX Tcommaaccent omacron -34
+KPX Tcommaaccent oslash -74
+KPX Tcommaaccent otilde -34
+KPX Tcommaaccent period -100
+KPX Tcommaaccent r -50
+KPX Tcommaaccent racute -50
+KPX Tcommaaccent rcaron -50
+KPX Tcommaaccent rcommaaccent -50
+KPX Tcommaaccent semicolon -50
+KPX Tcommaaccent u -50
+KPX Tcommaaccent uacute -50
+KPX Tcommaaccent ucircumflex -50
+KPX Tcommaaccent udieresis -50
+KPX Tcommaaccent ugrave -50
+KPX Tcommaaccent uhungarumlaut -50
+KPX Tcommaaccent umacron -50
+KPX Tcommaaccent uogonek -50
+KPX Tcommaaccent uring -50
+KPX Tcommaaccent w -50
+KPX Tcommaaccent y -50
+KPX Tcommaaccent yacute -50
+KPX Tcommaaccent ydieresis -50
+KPX U A -18
+KPX U Aacute -18
+KPX U Abreve -18
+KPX U Acircumflex -18
+KPX U Adieresis -18
+KPX U Agrave -18
+KPX U Amacron -18
+KPX U Aogonek -18
+KPX U Aring -18
+KPX U Atilde -18
+KPX U comma -100
+KPX U period -100
+KPX Uacute A -18
+KPX Uacute Aacute -18
+KPX Uacute Abreve -18
+KPX Uacute Acircumflex -18
+KPX Uacute Adieresis -18
+KPX Uacute Agrave -18
+KPX Uacute Amacron -18
+KPX Uacute Aogonek -18
+KPX Uacute Aring -18
+KPX Uacute Atilde -18
+KPX Uacute comma -100
+KPX Uacute period -100
+KPX Ucircumflex A -18
+KPX Ucircumflex Aacute -18
+KPX Ucircumflex Abreve -18
+KPX Ucircumflex Acircumflex -18
+KPX Ucircumflex Adieresis -18
+KPX Ucircumflex Agrave -18
+KPX Ucircumflex Amacron -18
+KPX Ucircumflex Aogonek -18
+KPX Ucircumflex Aring -18
+KPX Ucircumflex Atilde -18
+KPX Ucircumflex comma -100
+KPX Ucircumflex period -100
+KPX Udieresis A -18
+KPX Udieresis Aacute -18
+KPX Udieresis Abreve -18
+KPX Udieresis Acircumflex -18
+KPX Udieresis Adieresis -18
+KPX Udieresis Agrave -18
+KPX Udieresis Amacron -18
+KPX Udieresis Aogonek -18
+KPX Udieresis Aring -18
+KPX Udieresis Atilde -18
+KPX Udieresis comma -100
+KPX Udieresis period -100
+KPX Ugrave A -18
+KPX Ugrave Aacute -18
+KPX Ugrave Abreve -18
+KPX Ugrave Acircumflex -18
+KPX Ugrave Adieresis -18
+KPX Ugrave Agrave -18
+KPX Ugrave Amacron -18
+KPX Ugrave Aogonek -18
+KPX Ugrave Aring -18
+KPX Ugrave Atilde -18
+KPX Ugrave comma -100
+KPX Ugrave period -100
+KPX Uhungarumlaut A -18
+KPX Uhungarumlaut Aacute -18
+KPX Uhungarumlaut Abreve -18
+KPX Uhungarumlaut Acircumflex -18
+KPX Uhungarumlaut Adieresis -18
+KPX Uhungarumlaut Agrave -18
+KPX Uhungarumlaut Amacron -18
+KPX Uhungarumlaut Aogonek -18
+KPX Uhungarumlaut Aring -18
+KPX Uhungarumlaut Atilde -18
+KPX Uhungarumlaut comma -100
+KPX Uhungarumlaut period -100
+KPX Umacron A -18
+KPX Umacron Aacute -18
+KPX Umacron Abreve -18
+KPX Umacron Acircumflex -18
+KPX Umacron Adieresis -18
+KPX Umacron Agrave -18
+KPX Umacron Amacron -18
+KPX Umacron Aogonek -18
+KPX Umacron Aring -18
+KPX Umacron Atilde -18
+KPX Umacron comma -100
+KPX Umacron period -100
+KPX Uogonek A -18
+KPX Uogonek Aacute -18
+KPX Uogonek Abreve -18
+KPX Uogonek Acircumflex -18
+KPX Uogonek Adieresis -18
+KPX Uogonek Agrave -18
+KPX Uogonek Amacron -18
+KPX Uogonek Aogonek -18
+KPX Uogonek Aring -18
+KPX Uogonek Atilde -18
+KPX Uogonek comma -100
+KPX Uogonek period -100
+KPX Uring A -18
+KPX Uring Aacute -18
+KPX Uring Abreve -18
+KPX Uring Acircumflex -18
+KPX Uring Adieresis -18
+KPX Uring Agrave -18
+KPX Uring Amacron -18
+KPX Uring Aogonek -18
+KPX Uring Aring -18
+KPX Uring Atilde -18
+KPX Uring comma -100
+KPX Uring period -100
+KPX V A -37
+KPX V Aacute -37
+KPX V Abreve -37
+KPX V Acircumflex -37
+KPX V Adieresis -37
+KPX V Agrave -37
+KPX V Amacron -37
+KPX V Aogonek -37
+KPX V Aring -37
+KPX V Atilde -37
+KPX V a -75
+KPX V aacute -75
+KPX V abreve -75
+KPX V acircumflex -75
+KPX V adieresis -75
+KPX V agrave -75
+KPX V amacron -75
+KPX V aogonek -75
+KPX V aring -75
+KPX V atilde -75
+KPX V colon -75
+KPX V comma -100
+KPX V e -75
+KPX V eacute -75
+KPX V ecaron -35
+KPX V ecircumflex -35
+KPX V edieresis -35
+KPX V edotaccent -35
+KPX V egrave -35
+KPX V emacron -35
+KPX V eogonek -75
+KPX V hyphen -100
+KPX V i -50
+KPX V iacute -50
+KPX V icircumflex -10
+KPX V idieresis -10
+KPX V igrave -10
+KPX V imacron -10
+KPX V iogonek -50
+KPX V o -75
+KPX V oacute -75
+KPX V ocircumflex -75
+KPX V odieresis -35
+KPX V ograve -35
+KPX V ohungarumlaut -75
+KPX V omacron -35
+KPX V oslash -75
+KPX V otilde -35
+KPX V period -100
+KPX V semicolon -75
+KPX V u -75
+KPX V uacute -75
+KPX V ucircumflex -75
+KPX V udieresis -75
+KPX V ugrave -75
+KPX V uhungarumlaut -75
+KPX V umacron -75
+KPX V uogonek -75
+KPX V uring -75
+KPX W A -55
+KPX W Aacute -55
+KPX W Abreve -55
+KPX W Acircumflex -55
+KPX W Adieresis -55
+KPX W Agrave -55
+KPX W Amacron -55
+KPX W Aogonek -55
+KPX W Aring -55
+KPX W Atilde -55
+KPX W a -55
+KPX W aacute -55
+KPX W abreve -55
+KPX W acircumflex -55
+KPX W adieresis -55
+KPX W agrave -55
+KPX W amacron -55
+KPX W aogonek -55
+KPX W aring -55
+KPX W atilde -55
+KPX W colon -75
+KPX W comma -100
+KPX W e -55
+KPX W eacute -55
+KPX W ecaron -55
+KPX W ecircumflex -55
+KPX W edieresis -35
+KPX W edotaccent -55
+KPX W egrave -35
+KPX W emacron -55
+KPX W eogonek -55
+KPX W h -20
+KPX W hyphen -75
+KPX W i -20
+KPX W iacute -20
+KPX W icircumflex -20
+KPX W iogonek -20
+KPX W o -55
+KPX W oacute -55
+KPX W ocircumflex -55
+KPX W odieresis -55
+KPX W ograve -55
+KPX W ohungarumlaut -55
+KPX W omacron -55
+KPX W oslash -55
+KPX W otilde -55
+KPX W period -100
+KPX W semicolon -75
+KPX W u -55
+KPX W uacute -55
+KPX W ucircumflex -55
+KPX W udieresis -55
+KPX W ugrave -55
+KPX W uhungarumlaut -55
+KPX W umacron -55
+KPX W uogonek -55
+KPX W uring -55
+KPX W y -55
+KPX W yacute -55
+KPX W ydieresis -55
+KPX Y A -55
+KPX Y Aacute -55
+KPX Y Abreve -55
+KPX Y Acircumflex -55
+KPX Y Adieresis -55
+KPX Y Agrave -55
+KPX Y Amacron -55
+KPX Y Aogonek -55
+KPX Y Aring -55
+KPX Y Atilde -55
+KPX Y a -100
+KPX Y aacute -100
+KPX Y abreve -60
+KPX Y acircumflex -100
+KPX Y adieresis -60
+KPX Y agrave -60
+KPX Y amacron -100
+KPX Y aogonek -100
+KPX Y aring -100
+KPX Y atilde -100
+KPX Y colon -75
+KPX Y comma -100
+KPX Y e -100
+KPX Y eacute -100
+KPX Y ecaron -60
+KPX Y ecircumflex -60
+KPX Y edieresis -60
+KPX Y edotaccent -100
+KPX Y egrave -60
+KPX Y emacron -60
+KPX Y eogonek -100
+KPX Y hyphen -100
+KPX Y i -25
+KPX Y iacute -25
+KPX Y iogonek -25
+KPX Y o -100
+KPX Y oacute -100
+KPX Y ocircumflex -100
+KPX Y odieresis -60
+KPX Y ograve -60
+KPX Y ohungarumlaut -100
+KPX Y omacron -60
+KPX Y oslash -100
+KPX Y otilde -60
+KPX Y period -100
+KPX Y semicolon -75
+KPX Y u -100
+KPX Y uacute -100
+KPX Y ucircumflex -100
+KPX Y udieresis -100
+KPX Y ugrave -100
+KPX Y uhungarumlaut -100
+KPX Y umacron -100
+KPX Y uogonek -100
+KPX Y uring -100
+KPX Yacute A -55
+KPX Yacute Aacute -55
+KPX Yacute Abreve -55
+KPX Yacute Acircumflex -55
+KPX Yacute Adieresis -55
+KPX Yacute Agrave -55
+KPX Yacute Amacron -55
+KPX Yacute Aogonek -55
+KPX Yacute Aring -55
+KPX Yacute Atilde -55
+KPX Yacute a -100
+KPX Yacute aacute -100
+KPX Yacute abreve -60
+KPX Yacute acircumflex -100
+KPX Yacute adieresis -60
+KPX Yacute agrave -60
+KPX Yacute amacron -60
+KPX Yacute aogonek -100
+KPX Yacute aring -100
+KPX Yacute atilde -100
+KPX Yacute colon -75
+KPX Yacute comma -100
+KPX Yacute e -100
+KPX Yacute eacute -100
+KPX Yacute ecaron -60
+KPX Yacute ecircumflex -60
+KPX Yacute edieresis -60
+KPX Yacute edotaccent -100
+KPX Yacute egrave -60
+KPX Yacute emacron -60
+KPX Yacute eogonek -100
+KPX Yacute hyphen -100
+KPX Yacute i -25
+KPX Yacute iacute -25
+KPX Yacute iogonek -25
+KPX Yacute o -100
+KPX Yacute oacute -100
+KPX Yacute ocircumflex -60
+KPX Yacute odieresis -60
+KPX Yacute ograve -60
+KPX Yacute ohungarumlaut -100
+KPX Yacute omacron -60
+KPX Yacute oslash -100
+KPX Yacute otilde -60
+KPX Yacute period -100
+KPX Yacute semicolon -75
+KPX Yacute u -100
+KPX Yacute uacute -100
+KPX Yacute ucircumflex -100
+KPX Yacute udieresis -100
+KPX Yacute ugrave -100
+KPX Yacute uhungarumlaut -100
+KPX Yacute umacron -100
+KPX Yacute uogonek -100
+KPX Yacute uring -100
+KPX Ydieresis A -55
+KPX Ydieresis Aacute -55
+KPX Ydieresis Abreve -55
+KPX Ydieresis Acircumflex -55
+KPX Ydieresis Adieresis -55
+KPX Ydieresis Agrave -55
+KPX Ydieresis Amacron -55
+KPX Ydieresis Aogonek -55
+KPX Ydieresis Aring -55
+KPX Ydieresis Atilde -55
+KPX Ydieresis a -100
+KPX Ydieresis aacute -100
+KPX Ydieresis abreve -60
+KPX Ydieresis acircumflex -100
+KPX Ydieresis adieresis -60
+KPX Ydieresis agrave -60
+KPX Ydieresis amacron -100
+KPX Ydieresis aogonek -100
+KPX Ydieresis aring -100
+KPX Ydieresis atilde -100
+KPX Ydieresis colon -75
+KPX Ydieresis comma -100
+KPX Ydieresis e -100
+KPX Ydieresis eacute -100
+KPX Ydieresis ecaron -60
+KPX Ydieresis ecircumflex -60
+KPX Ydieresis edieresis -60
+KPX Ydieresis edotaccent -100
+KPX Ydieresis egrave -60
+KPX Ydieresis emacron -60
+KPX Ydieresis eogonek -100
+KPX Ydieresis hyphen -100
+KPX Ydieresis i -25
+KPX Ydieresis iacute -25
+KPX Ydieresis iogonek -25
+KPX Ydieresis o -100
+KPX Ydieresis oacute -100
+KPX Ydieresis ocircumflex -100
+KPX Ydieresis odieresis -60
+KPX Ydieresis ograve -60
+KPX Ydieresis ohungarumlaut -100
+KPX Ydieresis omacron -60
+KPX Ydieresis oslash -100
+KPX Ydieresis otilde -60
+KPX Ydieresis period -100
+KPX Ydieresis semicolon -75
+KPX Ydieresis u -100
+KPX Ydieresis uacute -100
+KPX Ydieresis ucircumflex -100
+KPX Ydieresis udieresis -100
+KPX Ydieresis ugrave -100
+KPX Ydieresis uhungarumlaut -100
+KPX Ydieresis umacron -100
+KPX Ydieresis uogonek -100
+KPX Ydieresis uring -100
+KPX b b -10
+KPX b comma -50
+KPX b period -50
+KPX c comma -50
+KPX c h -18
+KPX c k -18
+KPX c kcommaaccent -18
+KPX c period -50
+KPX cacute comma -50
+KPX cacute h -18
+KPX cacute k -18
+KPX cacute kcommaaccent -18
+KPX cacute period -50
+KPX ccaron comma -50
+KPX ccaron h -18
+KPX ccaron k -18
+KPX ccaron kcommaaccent -18
+KPX ccaron period -50
+KPX ccedilla comma -50
+KPX ccedilla h -18
+KPX ccedilla k -18
+KPX ccedilla kcommaaccent -18
+KPX ccedilla period -50
+KPX colon space -37
+KPX comma quotedblright -37
+KPX comma quoteright -37
+KPX comma space -37
+KPX e comma -37
+KPX e period -37
+KPX eacute comma -37
+KPX eacute period -37
+KPX ecaron comma -37
+KPX ecaron period -37
+KPX ecircumflex comma -37
+KPX ecircumflex period -37
+KPX edieresis comma -37
+KPX edieresis period -37
+KPX edotaccent comma -37
+KPX edotaccent period -37
+KPX egrave comma -37
+KPX egrave period -37
+KPX emacron comma -37
+KPX emacron period -37
+KPX eogonek comma -37
+KPX eogonek period -37
+KPX f comma -75
+KPX f o -10
+KPX f oacute -10
+KPX f ocircumflex -10
+KPX f odieresis -10
+KPX f ograve -10
+KPX f ohungarumlaut -10
+KPX f omacron -10
+KPX f oslash -10
+KPX f otilde -10
+KPX f period -75
+KPX f quotedblright 75
+KPX f quoteright 75
+KPX g comma -50
+KPX g period -50
+KPX gbreve comma -50
+KPX gbreve period -50
+KPX gcommaaccent comma -50
+KPX gcommaaccent period -50
+KPX l y -10
+KPX l yacute -10
+KPX l ydieresis -10
+KPX lacute y -10
+KPX lacute yacute -10
+KPX lacute ydieresis -10
+KPX lcommaaccent y -10
+KPX lcommaaccent yacute -10
+KPX lcommaaccent ydieresis -10
+KPX lslash y -10
+KPX lslash yacute -10
+KPX lslash ydieresis -10
+KPX o comma -50
+KPX o period -50
+KPX oacute comma -50
+KPX oacute period -50
+KPX ocircumflex comma -50
+KPX ocircumflex period -50
+KPX odieresis comma -50
+KPX odieresis period -50
+KPX ograve comma -50
+KPX ograve period -50
+KPX ohungarumlaut comma -50
+KPX ohungarumlaut period -50
+KPX omacron comma -50
+KPX omacron period -50
+KPX oslash comma -50
+KPX oslash period -50
+KPX otilde comma -50
+KPX otilde period -50
+KPX p comma -50
+KPX p period -50
+KPX period quotedblright -37
+KPX period quoteright -37
+KPX period space -37
+KPX quotedblleft A -75
+KPX quotedblleft Aacute -75
+KPX quotedblleft Abreve -75
+KPX quotedblleft Acircumflex -75
+KPX quotedblleft Adieresis -75
+KPX quotedblleft Agrave -75
+KPX quotedblleft Amacron -75
+KPX quotedblleft Aogonek -75
+KPX quotedblleft Aring -75
+KPX quotedblleft Atilde -75
+KPX quotedblright space -37
+KPX quoteleft A -75
+KPX quoteleft Aacute -75
+KPX quoteleft Abreve -75
+KPX quoteleft Acircumflex -75
+KPX quoteleft Adieresis -75
+KPX quoteleft Agrave -75
+KPX quoteleft Amacron -75
+KPX quoteleft Aogonek -75
+KPX quoteleft Aring -75
+KPX quoteleft Atilde -75
+KPX quoteleft quoteleft -37
+KPX quoteright d -37
+KPX quoteright dcroat -37
+KPX quoteright quoteright -37
+KPX quoteright s -25
+KPX quoteright sacute -25
+KPX quoteright scaron -25
+KPX quoteright scedilla -25
+KPX quoteright scommaaccent -25
+KPX r colon -25
+KPX r comma -125
+KPX r hyphen -75
+KPX r k -18
+KPX r kcommaaccent -18
+KPX r period -125
+KPX r s -10
+KPX r sacute -10
+KPX r scaron -10
+KPX r scedilla -10
+KPX r scommaaccent -10
+KPX r semicolon -25
+KPX racute colon -25
+KPX racute comma -125
+KPX racute hyphen -75
+KPX racute k -18
+KPX racute kcommaaccent -18
+KPX racute period -125
+KPX racute s -10
+KPX racute sacute -10
+KPX racute scaron -10
+KPX racute scedilla -10
+KPX racute scommaaccent -10
+KPX racute semicolon -25
+KPX rcaron colon -25
+KPX rcaron comma -125
+KPX rcaron hyphen -75
+KPX rcaron k -18
+KPX rcaron kcommaaccent -18
+KPX rcaron period -125
+KPX rcaron s -10
+KPX rcaron sacute -10
+KPX rcaron scaron -10
+KPX rcaron scedilla -10
+KPX rcaron scommaaccent -10
+KPX rcaron semicolon -25
+KPX rcommaaccent colon -25
+KPX rcommaaccent comma -125
+KPX rcommaaccent hyphen -75
+KPX rcommaaccent k -18
+KPX rcommaaccent kcommaaccent -18
+KPX rcommaaccent period -125
+KPX rcommaaccent s -10
+KPX rcommaaccent sacute -10
+KPX rcommaaccent scaron -10
+KPX rcommaaccent scedilla -10
+KPX rcommaaccent scommaaccent -10
+KPX rcommaaccent semicolon -25
+KPX s comma -50
+KPX s period -50
+KPX sacute comma -50
+KPX sacute period -50
+KPX scaron comma -50
+KPX scaron period -50
+KPX scedilla comma -50
+KPX scedilla period -50
+KPX scommaaccent comma -50
+KPX scommaaccent period -50
+KPX semicolon space -37
+KPX space A -37
+KPX space Aacute -37
+KPX space Abreve -37
+KPX space Acircumflex -37
+KPX space Adieresis -37
+KPX space Agrave -37
+KPX space Amacron -37
+KPX space Aogonek -37
+KPX space Aring -37
+KPX space Atilde -37
+KPX space T -37
+KPX space Tcaron -37
+KPX space Tcommaaccent -37
+KPX space V -37
+KPX space W -37
+KPX space Y -37
+KPX space Yacute -37
+KPX space Ydieresis -37
+KPX space quotedblleft -37
+KPX space quoteleft -37
+KPX v comma -75
+KPX v period -75
+KPX w comma -75
+KPX w period -75
+KPX y comma -75
+KPX y period -75
+KPX yacute comma -75
+KPX yacute period -75
+KPX ydieresis comma -75
+KPX ydieresis period -75
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Roman.afm b/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Roman.afm
new file mode 100644
index 000000000000..60895eab0cee
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/NewCenturySchlbk-Roman.afm
@@ -0,0 +1,1824 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Mon Jun 23 16:42:59 1997
+Comment UniqueID 43091
+Comment VMusage 42481 53506
+FontName NewCenturySchlbk-Roman
+FullName New Century Schoolbook Roman
+FamilyName New Century Schoolbook
+Weight Medium
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -195 -250 1000 965
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+EncodingScheme AdobeStandardEncoding
+CapHeight 722
+XHeight 464
+Ascender 737
+Descender -205
+StdHW 45
+StdVW 92
+StartCharMetrics 314
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 296 ; N exclam ; B 86 -15 210 737 ;
+C 34 ; WX 389 ; N quotedbl ; B 61 443 328 737 ;
+C 35 ; WX 556 ; N numbersign ; B 28 0 528 690 ;
+C 36 ; WX 556 ; N dollar ; B 45 -138 511 813 ;
+C 37 ; WX 833 ; N percent ; B 43 -15 790 705 ;
+C 38 ; WX 815 ; N ampersand ; B 51 -15 775 737 ;
+C 39 ; WX 204 ; N quoteright ; B 25 443 179 737 ;
+C 40 ; WX 333 ; N parenleft ; B 40 -117 279 745 ;
+C 41 ; WX 333 ; N parenright ; B 54 -117 293 745 ;
+C 42 ; WX 500 ; N asterisk ; B 57 306 443 737 ;
+C 43 ; WX 606 ; N plus ; B 50 0 556 506 ;
+C 44 ; WX 278 ; N comma ; B 62 -185 216 109 ;
+C 45 ; WX 333 ; N hyphen ; B 42 199 291 277 ;
+C 46 ; WX 278 ; N period ; B 77 -15 201 109 ;
+C 47 ; WX 278 ; N slash ; B -32 -15 310 737 ;
+C 48 ; WX 556 ; N zero ; B 42 -15 514 705 ;
+C 49 ; WX 556 ; N one ; B 100 0 496 705 ;
+C 50 ; WX 556 ; N two ; B 35 0 505 705 ;
+C 51 ; WX 556 ; N three ; B 42 -15 498 705 ;
+C 52 ; WX 556 ; N four ; B 28 0 528 705 ;
+C 53 ; WX 556 ; N five ; B 46 -15 502 705 ;
+C 54 ; WX 556 ; N six ; B 41 -15 515 705 ;
+C 55 ; WX 556 ; N seven ; B 59 -15 508 705 ;
+C 56 ; WX 556 ; N eight ; B 42 -15 514 705 ;
+C 57 ; WX 556 ; N nine ; B 41 -15 515 705 ;
+C 58 ; WX 278 ; N colon ; B 77 -15 201 474 ;
+C 59 ; WX 278 ; N semicolon ; B 62 -185 216 474 ;
+C 60 ; WX 606 ; N less ; B 50 -8 556 514 ;
+C 61 ; WX 606 ; N equal ; B 50 117 556 389 ;
+C 62 ; WX 606 ; N greater ; B 50 -8 556 514 ;
+C 63 ; WX 444 ; N question ; B 29 -15 415 737 ;
+C 64 ; WX 737 ; N at ; B -8 -15 744 737 ;
+C 65 ; WX 722 ; N A ; B -8 0 730 737 ;
+C 66 ; WX 722 ; N B ; B 29 0 669 722 ;
+C 67 ; WX 722 ; N C ; B 45 -15 668 737 ;
+C 68 ; WX 778 ; N D ; B 29 0 733 722 ;
+C 69 ; WX 722 ; N E ; B 29 0 663 722 ;
+C 70 ; WX 667 ; N F ; B 29 0 638 722 ;
+C 71 ; WX 778 ; N G ; B 45 -15 775 737 ;
+C 72 ; WX 833 ; N H ; B 29 0 804 722 ;
+C 73 ; WX 407 ; N I ; B 38 0 369 722 ;
+C 74 ; WX 556 ; N J ; B 5 -15 540 722 ;
+C 75 ; WX 778 ; N K ; B 29 0 803 722 ;
+C 76 ; WX 667 ; N L ; B 29 0 644 722 ;
+C 77 ; WX 944 ; N M ; B 29 0 915 722 ;
+C 78 ; WX 815 ; N N ; B 24 -15 791 722 ;
+C 79 ; WX 778 ; N O ; B 45 -15 733 737 ;
+C 80 ; WX 667 ; N P ; B 29 0 650 722 ;
+C 81 ; WX 778 ; N Q ; B 45 -190 748 737 ;
+C 82 ; WX 722 ; N R ; B 29 -15 713 722 ;
+C 83 ; WX 630 ; N S ; B 47 -15 583 737 ;
+C 84 ; WX 667 ; N T ; B 19 0 648 722 ;
+C 85 ; WX 815 ; N U ; B 16 -15 799 722 ;
+C 86 ; WX 722 ; N V ; B -8 -10 730 722 ;
+C 87 ; WX 981 ; N W ; B 5 -10 976 722 ;
+C 88 ; WX 704 ; N X ; B -8 0 712 722 ;
+C 89 ; WX 704 ; N Y ; B -11 0 715 722 ;
+C 90 ; WX 611 ; N Z ; B 24 0 576 722 ;
+C 91 ; WX 333 ; N bracketleft ; B 126 -109 315 737 ;
+C 92 ; WX 606 ; N backslash ; B 132 -15 474 737 ;
+C 93 ; WX 333 ; N bracketright ; B 18 -109 207 737 ;
+C 94 ; WX 606 ; N asciicircum ; B 89 325 517 690 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 204 ; N quoteleft ; B 25 443 179 737 ;
+C 97 ; WX 556 ; N a ; B 44 -15 542 479 ;
+C 98 ; WX 556 ; N b ; B 10 -15 522 737 ;
+C 99 ; WX 444 ; N c ; B 34 -15 426 479 ;
+C 100 ; WX 574 ; N d ; B 34 -15 552 737 ;
+C 101 ; WX 500 ; N e ; B 34 -15 466 479 ;
+C 102 ; WX 333 ; N f ; B 18 0 437 737 ; L i fi ; L l fl ;
+C 103 ; WX 537 ; N g ; B 23 -205 542 494 ;
+C 104 ; WX 611 ; N h ; B 7 0 592 737 ;
+C 105 ; WX 315 ; N i ; B 18 0 286 722 ;
+C 106 ; WX 296 ; N j ; B -86 -205 216 722 ;
+C 107 ; WX 593 ; N k ; B 10 0 589 737 ;
+C 108 ; WX 315 ; N l ; B 18 0 286 737 ;
+C 109 ; WX 889 ; N m ; B 26 0 863 479 ;
+C 110 ; WX 611 ; N n ; B 22 0 589 479 ;
+C 111 ; WX 500 ; N o ; B 34 -15 466 479 ;
+C 112 ; WX 574 ; N p ; B 22 -205 540 479 ;
+C 113 ; WX 556 ; N q ; B 34 -205 552 479 ;
+C 114 ; WX 444 ; N r ; B 18 0 434 479 ;
+C 115 ; WX 463 ; N s ; B 46 -15 417 479 ;
+C 116 ; WX 389 ; N t ; B 18 -15 371 666 ;
+C 117 ; WX 611 ; N u ; B 22 -15 589 464 ;
+C 118 ; WX 537 ; N v ; B -6 -10 515 464 ;
+C 119 ; WX 778 ; N w ; B 1 -10 749 464 ;
+C 120 ; WX 537 ; N x ; B 8 0 529 464 ;
+C 121 ; WX 537 ; N y ; B 4 -205 533 464 ;
+C 122 ; WX 481 ; N z ; B 42 0 439 464 ;
+C 123 ; WX 333 ; N braceleft ; B 54 -109 279 737 ;
+C 124 ; WX 606 ; N bar ; B 267 -250 339 750 ;
+C 125 ; WX 333 ; N braceright ; B 54 -109 279 737 ;
+C 126 ; WX 606 ; N asciitilde ; B 72 184 534 322 ;
+C 161 ; WX 296 ; N exclamdown ; B 86 -205 210 547 ;
+C 162 ; WX 556 ; N cent ; B 74 -141 482 584 ;
+C 163 ; WX 556 ; N sterling ; B 18 -15 538 705 ;
+C 164 ; WX 167 ; N fraction ; B -195 -15 362 705 ;
+C 165 ; WX 556 ; N yen ; B -1 0 557 690 ;
+C 166 ; WX 556 ; N florin ; B 0 -205 538 737 ;
+C 167 ; WX 500 ; N section ; B 55 -147 445 737 ;
+C 168 ; WX 556 ; N currency ; B 26 93 530 597 ;
+C 169 ; WX 204 ; N quotesingle ; B 59 443 145 737 ;
+C 170 ; WX 389 ; N quotedblleft ; B 25 443 364 737 ;
+C 171 ; WX 426 ; N guillemotleft ; B 39 78 387 398 ;
+C 172 ; WX 259 ; N guilsinglleft ; B 39 78 220 398 ;
+C 173 ; WX 259 ; N guilsinglright ; B 39 78 220 398 ;
+C 174 ; WX 611 ; N fi ; B 18 0 582 737 ;
+C 175 ; WX 611 ; N fl ; B 18 0 582 737 ;
+C 177 ; WX 556 ; N endash ; B 0 208 556 268 ;
+C 178 ; WX 500 ; N dagger ; B 42 -147 458 737 ;
+C 179 ; WX 500 ; N daggerdbl ; B 42 -149 458 737 ;
+C 180 ; WX 278 ; N periodcentered ; B 71 238 207 374 ;
+C 182 ; WX 606 ; N paragraph ; B 60 -132 546 722 ;
+C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ;
+C 184 ; WX 204 ; N quotesinglbase ; B 25 -185 179 109 ;
+C 185 ; WX 389 ; N quotedblbase ; B 25 -185 364 109 ;
+C 186 ; WX 389 ; N quotedblright ; B 25 443 364 737 ;
+C 187 ; WX 426 ; N guillemotright ; B 39 78 387 398 ;
+C 188 ; WX 1000 ; N ellipsis ; B 105 -15 895 109 ;
+C 189 ; WX 1000 ; N perthousand ; B 6 -15 994 705 ;
+C 191 ; WX 444 ; N questiondown ; B 29 -205 415 547 ;
+C 193 ; WX 333 ; N grave ; B 17 528 242 699 ;
+C 194 ; WX 333 ; N acute ; B 91 528 316 699 ;
+C 195 ; WX 333 ; N circumflex ; B 10 528 323 695 ;
+C 196 ; WX 333 ; N tilde ; B 1 553 332 655 ;
+C 197 ; WX 333 ; N macron ; B 10 568 323 623 ;
+C 198 ; WX 333 ; N breve ; B 25 528 308 685 ;
+C 199 ; WX 333 ; N dotaccent ; B 116 602 218 704 ;
+C 200 ; WX 333 ; N dieresis ; B 16 602 317 704 ;
+C 202 ; WX 333 ; N ring ; B 66 522 266 722 ;
+C 203 ; WX 333 ; N cedilla ; B 29 -215 237 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B -9 528 416 699 ;
+C 206 ; WX 333 ; N ogonek ; B 81 -220 317 4 ;
+C 207 ; WX 333 ; N caron ; B 10 528 323 695 ;
+C 208 ; WX 1000 ; N emdash ; B 0 208 1000 268 ;
+C 225 ; WX 1000 ; N AE ; B 0 0 962 722 ;
+C 227 ; WX 334 ; N ordfeminine ; B -4 407 338 705 ;
+C 232 ; WX 667 ; N Lslash ; B 29 0 644 722 ;
+C 233 ; WX 778 ; N Oslash ; B 45 -56 733 778 ;
+C 234 ; WX 1000 ; N OE ; B 21 0 979 722 ;
+C 235 ; WX 300 ; N ordmasculine ; B 4 407 296 705 ;
+C 241 ; WX 796 ; N ae ; B 34 -15 762 479 ;
+C 245 ; WX 315 ; N dotlessi ; B 18 0 286 464 ;
+C 248 ; WX 315 ; N lslash ; B 18 0 294 737 ;
+C 249 ; WX 500 ; N oslash ; B 34 -97 466 561 ;
+C 250 ; WX 833 ; N oe ; B 34 -15 799 479 ;
+C 251 ; WX 574 ; N germandbls ; B 30 -15 537 737 ;
+C -1 ; WX 407 ; N Idieresis ; B 38 0 369 883 ;
+C -1 ; WX 500 ; N eacute ; B 34 -15 466 699 ;
+C -1 ; WX 556 ; N abreve ; B 44 -15 542 685 ;
+C -1 ; WX 611 ; N uhungarumlaut ; B 22 -15 595 699 ;
+C -1 ; WX 500 ; N ecaron ; B 34 -15 466 695 ;
+C -1 ; WX 704 ; N Ydieresis ; B -11 0 715 883 ;
+C -1 ; WX 606 ; N divide ; B 50 -22 556 528 ;
+C -1 ; WX 704 ; N Yacute ; B -11 0 715 937 ;
+C -1 ; WX 722 ; N Acircumflex ; B -8 0 730 933 ;
+C -1 ; WX 556 ; N aacute ; B 44 -15 542 699 ;
+C -1 ; WX 815 ; N Ucircumflex ; B 16 -15 799 933 ;
+C -1 ; WX 537 ; N yacute ; B 4 -205 533 699 ;
+C -1 ; WX 463 ; N scommaaccent ; B 46 -250 417 479 ;
+C -1 ; WX 500 ; N ecircumflex ; B 34 -15 466 695 ;
+C -1 ; WX 815 ; N Uring ; B 16 -15 799 965 ;
+C -1 ; WX 815 ; N Udieresis ; B 16 -15 799 883 ;
+C -1 ; WX 556 ; N aogonek ; B 44 -220 565 479 ;
+C -1 ; WX 815 ; N Uacute ; B 16 -15 799 937 ;
+C -1 ; WX 611 ; N uogonek ; B 22 -220 589 464 ;
+C -1 ; WX 722 ; N Edieresis ; B 29 0 663 883 ;
+C -1 ; WX 778 ; N Dcroat ; B 29 0 733 722 ;
+C -1 ; WX 250 ; N commaaccent ; B 66 -250 204 -50 ;
+C -1 ; WX 737 ; N copyright ; B -8 -15 744 737 ;
+C -1 ; WX 722 ; N Emacron ; B 29 0 663 861 ;
+C -1 ; WX 444 ; N ccaron ; B 34 -15 426 695 ;
+C -1 ; WX 556 ; N aring ; B 44 -15 542 732 ;
+C -1 ; WX 815 ; N Ncommaaccent ; B 24 -250 791 722 ;
+C -1 ; WX 315 ; N lacute ; B 18 0 297 957 ;
+C -1 ; WX 556 ; N agrave ; B 44 -15 542 699 ;
+C -1 ; WX 667 ; N Tcommaaccent ; B 19 -250 648 722 ;
+C -1 ; WX 722 ; N Cacute ; B 45 -15 668 937 ;
+C -1 ; WX 556 ; N atilde ; B 44 -15 542 655 ;
+C -1 ; WX 722 ; N Edotaccent ; B 29 0 663 883 ;
+C -1 ; WX 463 ; N scaron ; B 46 -15 417 695 ;
+C -1 ; WX 463 ; N scedilla ; B 46 -215 417 479 ;
+C -1 ; WX 315 ; N iacute ; B 18 0 307 699 ;
+C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ;
+C -1 ; WX 722 ; N Rcaron ; B 29 -15 713 933 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 45 -250 775 737 ;
+C -1 ; WX 611 ; N ucircumflex ; B 22 -15 589 695 ;
+C -1 ; WX 556 ; N acircumflex ; B 44 -15 542 695 ;
+C -1 ; WX 722 ; N Amacron ; B -8 0 730 861 ;
+C -1 ; WX 444 ; N rcaron ; B 18 0 434 695 ;
+C -1 ; WX 444 ; N ccedilla ; B 34 -215 426 479 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 24 0 576 883 ;
+C -1 ; WX 667 ; N Thorn ; B 29 0 650 722 ;
+C -1 ; WX 778 ; N Omacron ; B 45 -15 733 861 ;
+C -1 ; WX 722 ; N Racute ; B 29 -15 713 937 ;
+C -1 ; WX 630 ; N Sacute ; B 47 -15 583 937 ;
+C -1 ; WX 639 ; N dcaron ; B 34 -15 643 737 ;
+C -1 ; WX 815 ; N Umacron ; B 16 -15 799 861 ;
+C -1 ; WX 611 ; N uring ; B 22 -15 589 722 ;
+C -1 ; WX 333 ; N threesuperior ; B 18 273 315 705 ;
+C -1 ; WX 778 ; N Ograve ; B 45 -15 733 937 ;
+C -1 ; WX 722 ; N Agrave ; B -8 0 730 937 ;
+C -1 ; WX 722 ; N Abreve ; B -8 0 730 923 ;
+C -1 ; WX 606 ; N multiply ; B 74 24 532 482 ;
+C -1 ; WX 611 ; N uacute ; B 22 -15 589 699 ;
+C -1 ; WX 667 ; N Tcaron ; B 19 0 648 933 ;
+C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ;
+C -1 ; WX 537 ; N ydieresis ; B 4 -205 533 645 ;
+C -1 ; WX 815 ; N Nacute ; B 24 -15 791 937 ;
+C -1 ; WX 315 ; N icircumflex ; B 1 0 314 695 ;
+C -1 ; WX 722 ; N Ecircumflex ; B 29 0 663 933 ;
+C -1 ; WX 556 ; N adieresis ; B 44 -15 542 645 ;
+C -1 ; WX 500 ; N edieresis ; B 34 -15 466 645 ;
+C -1 ; WX 444 ; N cacute ; B 34 -15 426 699 ;
+C -1 ; WX 611 ; N nacute ; B 22 0 589 699 ;
+C -1 ; WX 611 ; N umacron ; B 22 -15 589 623 ;
+C -1 ; WX 815 ; N Ncaron ; B 24 -15 791 933 ;
+C -1 ; WX 407 ; N Iacute ; B 38 0 369 937 ;
+C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ;
+C -1 ; WX 606 ; N brokenbar ; B 267 -175 339 675 ;
+C -1 ; WX 737 ; N registered ; B -8 -15 744 737 ;
+C -1 ; WX 778 ; N Gbreve ; B 45 -15 775 923 ;
+C -1 ; WX 407 ; N Idotaccent ; B 38 0 369 883 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 722 ; N Egrave ; B 29 0 663 937 ;
+C -1 ; WX 444 ; N racute ; B 18 0 434 699 ;
+C -1 ; WX 500 ; N omacron ; B 34 -15 466 623 ;
+C -1 ; WX 611 ; N Zacute ; B 24 0 576 937 ;
+C -1 ; WX 611 ; N Zcaron ; B 24 0 576 933 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ;
+C -1 ; WX 778 ; N Eth ; B 29 0 733 722 ;
+C -1 ; WX 722 ; N Ccedilla ; B 45 -215 668 737 ;
+C -1 ; WX 315 ; N lcommaaccent ; B 18 -250 286 737 ;
+C -1 ; WX 389 ; N tcaron ; B 18 -15 394 777 ;
+C -1 ; WX 500 ; N eogonek ; B 34 -220 466 479 ;
+C -1 ; WX 815 ; N Uogonek ; B 16 -220 799 722 ;
+C -1 ; WX 722 ; N Aacute ; B -8 0 730 937 ;
+C -1 ; WX 722 ; N Adieresis ; B -8 0 730 883 ;
+C -1 ; WX 500 ; N egrave ; B 34 -15 466 699 ;
+C -1 ; WX 481 ; N zacute ; B 42 0 439 699 ;
+C -1 ; WX 315 ; N iogonek ; B 18 -220 296 722 ;
+C -1 ; WX 778 ; N Oacute ; B 45 -15 733 937 ;
+C -1 ; WX 500 ; N oacute ; B 34 -15 466 699 ;
+C -1 ; WX 556 ; N amacron ; B 44 -15 542 623 ;
+C -1 ; WX 463 ; N sacute ; B 46 -15 417 699 ;
+C -1 ; WX 315 ; N idieresis ; B 7 0 308 645 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 45 -15 733 933 ;
+C -1 ; WX 815 ; N Ugrave ; B 16 -15 799 937 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 574 ; N thorn ; B 22 -205 540 737 ;
+C -1 ; WX 333 ; N twosuperior ; B 14 282 319 705 ;
+C -1 ; WX 778 ; N Odieresis ; B 45 -15 733 883 ;
+C -1 ; WX 611 ; N mu ; B 22 -205 589 464 ;
+C -1 ; WX 315 ; N igrave ; B 8 0 286 699 ;
+C -1 ; WX 500 ; N ohungarumlaut ; B 34 -15 540 699 ;
+C -1 ; WX 722 ; N Eogonek ; B 29 -220 663 722 ;
+C -1 ; WX 574 ; N dcroat ; B 34 -15 552 737 ;
+C -1 ; WX 834 ; N threequarters ; B 28 -15 795 705 ;
+C -1 ; WX 630 ; N Scedilla ; B 47 -215 583 737 ;
+C -1 ; WX 365 ; N lcaron ; B 18 0 377 737 ;
+C -1 ; WX 778 ; N Kcommaaccent ; B 29 -250 803 722 ;
+C -1 ; WX 667 ; N Lacute ; B 29 0 644 937 ;
+C -1 ; WX 1000 ; N trademark ; B 32 318 968 722 ;
+C -1 ; WX 500 ; N edotaccent ; B 34 -15 466 645 ;
+C -1 ; WX 407 ; N Igrave ; B 38 0 369 937 ;
+C -1 ; WX 407 ; N Imacron ; B 38 0 369 861 ;
+C -1 ; WX 667 ; N Lcaron ; B 29 0 644 737 ;
+C -1 ; WX 834 ; N onehalf ; B 39 -15 820 705 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ;
+C -1 ; WX 500 ; N ocircumflex ; B 34 -15 466 695 ;
+C -1 ; WX 611 ; N ntilde ; B 22 0 589 655 ;
+C -1 ; WX 815 ; N Uhungarumlaut ; B 16 -15 799 937 ;
+C -1 ; WX 722 ; N Eacute ; B 29 0 663 937 ;
+C -1 ; WX 500 ; N emacron ; B 34 -15 466 623 ;
+C -1 ; WX 537 ; N gbreve ; B 23 -205 542 685 ;
+C -1 ; WX 834 ; N onequarter ; B 39 -15 795 705 ;
+C -1 ; WX 630 ; N Scaron ; B 47 -15 583 933 ;
+C -1 ; WX 630 ; N Scommaaccent ; B 47 -250 583 737 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 45 -15 733 937 ;
+C -1 ; WX 400 ; N degree ; B 57 419 343 705 ;
+C -1 ; WX 500 ; N ograve ; B 34 -15 466 699 ;
+C -1 ; WX 722 ; N Ccaron ; B 45 -15 668 933 ;
+C -1 ; WX 611 ; N ugrave ; B 22 -15 589 699 ;
+C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ;
+C -1 ; WX 778 ; N Dcaron ; B 29 0 733 933 ;
+C -1 ; WX 444 ; N rcommaaccent ; B 18 -250 434 479 ;
+C -1 ; WX 815 ; N Ntilde ; B 24 -15 791 893 ;
+C -1 ; WX 500 ; N otilde ; B 34 -15 466 655 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 29 -250 713 722 ;
+C -1 ; WX 667 ; N Lcommaaccent ; B 29 -250 644 722 ;
+C -1 ; WX 722 ; N Atilde ; B -8 0 730 893 ;
+C -1 ; WX 722 ; N Aogonek ; B -8 -220 730 737 ;
+C -1 ; WX 722 ; N Aring ; B -8 0 730 965 ;
+C -1 ; WX 778 ; N Otilde ; B 45 -15 733 893 ;
+C -1 ; WX 481 ; N zdotaccent ; B 42 0 439 645 ;
+C -1 ; WX 722 ; N Ecaron ; B 29 0 663 933 ;
+C -1 ; WX 407 ; N Iogonek ; B 38 -220 369 722 ;
+C -1 ; WX 593 ; N kcommaaccent ; B 10 -250 589 737 ;
+C -1 ; WX 606 ; N minus ; B 50 217 556 289 ;
+C -1 ; WX 407 ; N Icircumflex ; B 38 0 369 933 ;
+C -1 ; WX 611 ; N ncaron ; B 22 0 589 695 ;
+C -1 ; WX 389 ; N tcommaaccent ; B 18 -250 371 666 ;
+C -1 ; WX 606 ; N logicalnot ; B 50 108 556 389 ;
+C -1 ; WX 500 ; N odieresis ; B 34 -15 466 645 ;
+C -1 ; WX 611 ; N udieresis ; B 22 -15 589 645 ;
+C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ;
+C -1 ; WX 537 ; N gcommaaccent ; B 23 -205 542 807 ;
+C -1 ; WX 500 ; N eth ; B 34 -15 466 737 ;
+C -1 ; WX 481 ; N zcaron ; B 42 0 439 695 ;
+C -1 ; WX 611 ; N ncommaaccent ; B 22 -250 589 479 ;
+C -1 ; WX 333 ; N onesuperior ; B 39 282 294 705 ;
+C -1 ; WX 315 ; N imacron ; B 18 0 291 623 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 1480
+KPX A T -18
+KPX A Tcaron -18
+KPX A Tcommaaccent -18
+KPX A U -30
+KPX A Uacute -30
+KPX A Ucircumflex -30
+KPX A Udieresis -30
+KPX A Ugrave -30
+KPX A Uhungarumlaut -30
+KPX A Umacron -30
+KPX A Uogonek -30
+KPX A Uring -30
+KPX A V -75
+KPX A W -50
+KPX A Y -75
+KPX A Yacute -75
+KPX A Ydieresis -75
+KPX A quotedblright -74
+KPX A quoteright -74
+KPX A v -37
+KPX A w -25
+KPX A y -37
+KPX A yacute -37
+KPX A ydieresis -37
+KPX Aacute T -18
+KPX Aacute Tcaron -18
+KPX Aacute Tcommaaccent -18
+KPX Aacute U -30
+KPX Aacute Uacute -30
+KPX Aacute Ucircumflex -30
+KPX Aacute Udieresis -30
+KPX Aacute Ugrave -30
+KPX Aacute Uhungarumlaut -30
+KPX Aacute Umacron -30
+KPX Aacute Uogonek -30
+KPX Aacute Uring -30
+KPX Aacute V -75
+KPX Aacute W -50
+KPX Aacute Y -75
+KPX Aacute Yacute -75
+KPX Aacute Ydieresis -75
+KPX Aacute quotedblright -74
+KPX Aacute quoteright -74
+KPX Aacute v -37
+KPX Aacute w -25
+KPX Aacute y -37
+KPX Aacute yacute -37
+KPX Aacute ydieresis -37
+KPX Abreve T -18
+KPX Abreve Tcaron -18
+KPX Abreve Tcommaaccent -18
+KPX Abreve U -30
+KPX Abreve Uacute -30
+KPX Abreve Ucircumflex -30
+KPX Abreve Udieresis -30
+KPX Abreve Ugrave -30
+KPX Abreve Uhungarumlaut -30
+KPX Abreve Umacron -30
+KPX Abreve Uogonek -30
+KPX Abreve Uring -30
+KPX Abreve V -75
+KPX Abreve W -50
+KPX Abreve Y -75
+KPX Abreve Yacute -75
+KPX Abreve Ydieresis -75
+KPX Abreve quotedblright -74
+KPX Abreve quoteright -74
+KPX Abreve v -37
+KPX Abreve w -25
+KPX Abreve y -37
+KPX Abreve yacute -37
+KPX Abreve ydieresis -37
+KPX Acircumflex T -18
+KPX Acircumflex Tcaron -18
+KPX Acircumflex Tcommaaccent -18
+KPX Acircumflex U -30
+KPX Acircumflex Uacute -30
+KPX Acircumflex Ucircumflex -30
+KPX Acircumflex Udieresis -30
+KPX Acircumflex Ugrave -30
+KPX Acircumflex Uhungarumlaut -30
+KPX Acircumflex Umacron -30
+KPX Acircumflex Uogonek -30
+KPX Acircumflex Uring -30
+KPX Acircumflex V -75
+KPX Acircumflex W -50
+KPX Acircumflex Y -75
+KPX Acircumflex Yacute -75
+KPX Acircumflex Ydieresis -75
+KPX Acircumflex quotedblright -74
+KPX Acircumflex quoteright -74
+KPX Acircumflex v -37
+KPX Acircumflex w -25
+KPX Acircumflex y -37
+KPX Acircumflex yacute -37
+KPX Acircumflex ydieresis -37
+KPX Adieresis T -18
+KPX Adieresis Tcaron -18
+KPX Adieresis Tcommaaccent -18
+KPX Adieresis U -30
+KPX Adieresis Uacute -30
+KPX Adieresis Ucircumflex -30
+KPX Adieresis Udieresis -30
+KPX Adieresis Ugrave -30
+KPX Adieresis Uhungarumlaut -30
+KPX Adieresis Umacron -30
+KPX Adieresis Uogonek -30
+KPX Adieresis Uring -30
+KPX Adieresis V -75
+KPX Adieresis W -50
+KPX Adieresis Y -75
+KPX Adieresis Yacute -75
+KPX Adieresis Ydieresis -75
+KPX Adieresis quotedblright -74
+KPX Adieresis quoteright -74
+KPX Adieresis v -37
+KPX Adieresis w -25
+KPX Adieresis y -37
+KPX Adieresis yacute -37
+KPX Adieresis ydieresis -37
+KPX Agrave T -18
+KPX Agrave Tcaron -18
+KPX Agrave Tcommaaccent -18
+KPX Agrave U -30
+KPX Agrave Uacute -30
+KPX Agrave Ucircumflex -30
+KPX Agrave Udieresis -30
+KPX Agrave Ugrave -30
+KPX Agrave Uhungarumlaut -30
+KPX Agrave Umacron -30
+KPX Agrave Uogonek -30
+KPX Agrave Uring -30
+KPX Agrave V -75
+KPX Agrave W -50
+KPX Agrave Y -75
+KPX Agrave Yacute -75
+KPX Agrave Ydieresis -75
+KPX Agrave quotedblright -74
+KPX Agrave quoteright -74
+KPX Agrave v -37
+KPX Agrave w -25
+KPX Agrave y -37
+KPX Agrave yacute -37
+KPX Agrave ydieresis -37
+KPX Amacron T -18
+KPX Amacron Tcaron -18
+KPX Amacron Tcommaaccent -18
+KPX Amacron U -30
+KPX Amacron Uacute -30
+KPX Amacron Ucircumflex -30
+KPX Amacron Udieresis -30
+KPX Amacron Ugrave -30
+KPX Amacron Uhungarumlaut -30
+KPX Amacron Umacron -30
+KPX Amacron Uogonek -30
+KPX Amacron Uring -30
+KPX Amacron V -75
+KPX Amacron W -50
+KPX Amacron Y -75
+KPX Amacron Yacute -75
+KPX Amacron Ydieresis -75
+KPX Amacron quotedblright -74
+KPX Amacron quoteright -74
+KPX Amacron v -37
+KPX Amacron w -25
+KPX Amacron y -37
+KPX Amacron yacute -37
+KPX Amacron ydieresis -37
+KPX Aogonek T -18
+KPX Aogonek Tcaron -18
+KPX Aogonek Tcommaaccent -18
+KPX Aogonek U -30
+KPX Aogonek Uacute -30
+KPX Aogonek Ucircumflex -30
+KPX Aogonek Udieresis -30
+KPX Aogonek Ugrave -30
+KPX Aogonek Uhungarumlaut -30
+KPX Aogonek Umacron -30
+KPX Aogonek Uogonek -30
+KPX Aogonek Uring -30
+KPX Aogonek V -75
+KPX Aogonek W -50
+KPX Aogonek Y -75
+KPX Aogonek Yacute -75
+KPX Aogonek Ydieresis -75
+KPX Aogonek quotedblright -74
+KPX Aogonek quoteright -74
+KPX Aogonek v -37
+KPX Aogonek w -25
+KPX Aogonek y -17
+KPX Aogonek yacute -17
+KPX Aogonek ydieresis -17
+KPX Aring T -18
+KPX Aring Tcaron -18
+KPX Aring Tcommaaccent -18
+KPX Aring U -30
+KPX Aring Uacute -30
+KPX Aring Ucircumflex -30
+KPX Aring Udieresis -30
+KPX Aring Ugrave -30
+KPX Aring Uhungarumlaut -30
+KPX Aring Umacron -30
+KPX Aring Uogonek -30
+KPX Aring Uring -30
+KPX Aring V -75
+KPX Aring W -50
+KPX Aring Y -75
+KPX Aring Yacute -75
+KPX Aring Ydieresis -75
+KPX Aring quotedblright -74
+KPX Aring quoteright -74
+KPX Aring v -37
+KPX Aring w -25
+KPX Aring y -37
+KPX Aring yacute -37
+KPX Aring ydieresis -37
+KPX Atilde T -18
+KPX Atilde Tcaron -18
+KPX Atilde Tcommaaccent -18
+KPX Atilde U -30
+KPX Atilde Uacute -30
+KPX Atilde Ucircumflex -30
+KPX Atilde Udieresis -30
+KPX Atilde Ugrave -30
+KPX Atilde Uhungarumlaut -30
+KPX Atilde Umacron -30
+KPX Atilde Uogonek -30
+KPX Atilde Uring -30
+KPX Atilde V -75
+KPX Atilde W -50
+KPX Atilde Y -75
+KPX Atilde Yacute -75
+KPX Atilde Ydieresis -75
+KPX Atilde quotedblright -74
+KPX Atilde quoteright -74
+KPX Atilde v -37
+KPX Atilde w -25
+KPX Atilde y -37
+KPX Atilde yacute -37
+KPX Atilde ydieresis -37
+KPX B A -18
+KPX B Aacute -18
+KPX B Abreve -18
+KPX B Acircumflex -18
+KPX B Adieresis -18
+KPX B Agrave -18
+KPX B Amacron -18
+KPX B Aogonek -18
+KPX B Aring -18
+KPX B Atilde -18
+KPX B comma -37
+KPX B period -37
+KPX C A -18
+KPX C Aacute -18
+KPX C Abreve -18
+KPX C Acircumflex -18
+KPX C Adieresis -18
+KPX C Agrave -18
+KPX C Amacron -18
+KPX C Aogonek -18
+KPX C Aring -18
+KPX C Atilde -18
+KPX C comma -37
+KPX C period -37
+KPX Cacute A -18
+KPX Cacute Aacute -18
+KPX Cacute Abreve -18
+KPX Cacute Acircumflex -18
+KPX Cacute Adieresis -18
+KPX Cacute Agrave -18
+KPX Cacute Amacron -18
+KPX Cacute Aogonek -18
+KPX Cacute Aring -18
+KPX Cacute Atilde -18
+KPX Cacute comma -37
+KPX Cacute period -37
+KPX Ccaron A -18
+KPX Ccaron Aacute -18
+KPX Ccaron Abreve -18
+KPX Ccaron Acircumflex -18
+KPX Ccaron Adieresis -18
+KPX Ccaron Agrave -18
+KPX Ccaron Amacron -18
+KPX Ccaron Aogonek -18
+KPX Ccaron Aring -18
+KPX Ccaron Atilde -18
+KPX Ccaron comma -37
+KPX Ccaron period -37
+KPX Ccedilla A -18
+KPX Ccedilla Aacute -18
+KPX Ccedilla Abreve -18
+KPX Ccedilla Acircumflex -18
+KPX Ccedilla Adieresis -18
+KPX Ccedilla Agrave -18
+KPX Ccedilla Amacron -18
+KPX Ccedilla Aogonek -18
+KPX Ccedilla Aring -18
+KPX Ccedilla Atilde -18
+KPX Ccedilla comma -37
+KPX Ccedilla period -37
+KPX D V -18
+KPX D Y -18
+KPX D Yacute -18
+KPX D Ydieresis -18
+KPX D comma -37
+KPX D period -37
+KPX Dcaron V -18
+KPX Dcaron Y -18
+KPX Dcaron Yacute -18
+KPX Dcaron Ydieresis -18
+KPX Dcaron comma -37
+KPX Dcaron period -37
+KPX Dcroat V -18
+KPX Dcroat Y -18
+KPX Dcroat Yacute -18
+KPX Dcroat Ydieresis -18
+KPX Dcroat comma -37
+KPX Dcroat period -37
+KPX F A -50
+KPX F Aacute -50
+KPX F Abreve -50
+KPX F Acircumflex -50
+KPX F Adieresis -50
+KPX F Agrave -50
+KPX F Amacron -50
+KPX F Aogonek -50
+KPX F Aring -50
+KPX F Atilde -50
+KPX F a -65
+KPX F aacute -65
+KPX F abreve -65
+KPX F acircumflex -65
+KPX F adieresis -65
+KPX F agrave -65
+KPX F amacron -65
+KPX F aogonek -65
+KPX F aring -65
+KPX F atilde -65
+KPX F comma -125
+KPX F e -55
+KPX F eacute -55
+KPX F ecaron -55
+KPX F ecircumflex -55
+KPX F edieresis -55
+KPX F edotaccent -55
+KPX F egrave -55
+KPX F emacron -55
+KPX F eogonek -55
+KPX F i -10
+KPX F iacute -10
+KPX F icircumflex -10
+KPX F idieresis -10
+KPX F igrave -10
+KPX F imacron -10
+KPX F iogonek -10
+KPX F o -55
+KPX F oacute -55
+KPX F ocircumflex -55
+KPX F odieresis -55
+KPX F ograve -55
+KPX F ohungarumlaut -55
+KPX F omacron -55
+KPX F oslash -55
+KPX F otilde -55
+KPX F period -125
+KPX F r -10
+KPX F racute -10
+KPX F rcaron -10
+KPX F rcommaaccent -10
+KPX G comma -37
+KPX G period -37
+KPX Gbreve comma -37
+KPX Gbreve period -37
+KPX Gcommaaccent comma -37
+KPX Gcommaaccent period -37
+KPX J A -18
+KPX J Aacute -18
+KPX J Abreve -18
+KPX J Acircumflex -18
+KPX J Adieresis -18
+KPX J Agrave -18
+KPX J Amacron -18
+KPX J Aogonek -18
+KPX J Aring -18
+KPX J Atilde -18
+KPX J a -25
+KPX J aacute -25
+KPX J abreve -25
+KPX J acircumflex -25
+KPX J adieresis -25
+KPX J agrave -25
+KPX J amacron -25
+KPX J aogonek -25
+KPX J aring -25
+KPX J atilde -25
+KPX J comma -74
+KPX J e -25
+KPX J eacute -25
+KPX J ecaron -25
+KPX J ecircumflex -25
+KPX J edieresis -25
+KPX J edotaccent -25
+KPX J egrave -25
+KPX J emacron -25
+KPX J eogonek -25
+KPX J o -25
+KPX J oacute -25
+KPX J ocircumflex -25
+KPX J odieresis -25
+KPX J ograve -25
+KPX J ohungarumlaut -25
+KPX J omacron -25
+KPX J oslash -25
+KPX J otilde -25
+KPX J period -74
+KPX J u -25
+KPX J uacute -25
+KPX J ucircumflex -25
+KPX J udieresis -25
+KPX J ugrave -25
+KPX J uhungarumlaut -25
+KPX J umacron -25
+KPX J uogonek -25
+KPX J uring -25
+KPX K e 10
+KPX K eacute 10
+KPX K ecaron 10
+KPX K ecircumflex 10
+KPX K edieresis 10
+KPX K edotaccent 10
+KPX K egrave 10
+KPX K emacron 10
+KPX K eogonek 10
+KPX K o 10
+KPX K oacute 10
+KPX K ocircumflex 10
+KPX K odieresis 10
+KPX K ograve 10
+KPX K ohungarumlaut 10
+KPX K omacron 10
+KPX K oslash 10
+KPX K otilde 10
+KPX K y -25
+KPX K yacute -25
+KPX K ydieresis -25
+KPX Kcommaaccent e 10
+KPX Kcommaaccent eacute 10
+KPX Kcommaaccent ecaron 10
+KPX Kcommaaccent ecircumflex 10
+KPX Kcommaaccent edieresis 10
+KPX Kcommaaccent edotaccent 10
+KPX Kcommaaccent egrave 10
+KPX Kcommaaccent emacron 10
+KPX Kcommaaccent eogonek 10
+KPX Kcommaaccent o 10
+KPX Kcommaaccent oacute 10
+KPX Kcommaaccent ocircumflex 10
+KPX Kcommaaccent odieresis 10
+KPX Kcommaaccent ograve 10
+KPX Kcommaaccent ohungarumlaut 10
+KPX Kcommaaccent omacron 10
+KPX Kcommaaccent oslash 10
+KPX Kcommaaccent otilde 10
+KPX Kcommaaccent y -25
+KPX Kcommaaccent yacute -25
+KPX Kcommaaccent ydieresis -25
+KPX L T -75
+KPX L Tcaron -75
+KPX L Tcommaaccent -75
+KPX L V -91
+KPX L W -74
+KPX L Y -74
+KPX L Yacute -74
+KPX L Ydieresis -74
+KPX L quotedblright -100
+KPX L quoteright -100
+KPX L y -25
+KPX L yacute -25
+KPX L ydieresis -25
+KPX Lacute T -75
+KPX Lacute Tcaron -75
+KPX Lacute Tcommaaccent -75
+KPX Lacute V -91
+KPX Lacute W -74
+KPX Lacute Y -74
+KPX Lacute Yacute -74
+KPX Lacute Ydieresis -74
+KPX Lacute quotedblright -100
+KPX Lacute quoteright -100
+KPX Lacute y -25
+KPX Lacute yacute -25
+KPX Lacute ydieresis -25
+KPX Lcommaaccent T -75
+KPX Lcommaaccent Tcaron -75
+KPX Lcommaaccent Tcommaaccent -75
+KPX Lcommaaccent V -91
+KPX Lcommaaccent W -74
+KPX Lcommaaccent Y -74
+KPX Lcommaaccent Yacute -74
+KPX Lcommaaccent Ydieresis -74
+KPX Lcommaaccent quotedblright -100
+KPX Lcommaaccent quoteright -100
+KPX Lcommaaccent y -25
+KPX Lcommaaccent yacute -25
+KPX Lcommaaccent ydieresis -25
+KPX Lslash T -75
+KPX Lslash Tcaron -75
+KPX Lslash Tcommaaccent -75
+KPX Lslash V -91
+KPX Lslash W -74
+KPX Lslash Y -74
+KPX Lslash Yacute -74
+KPX Lslash Ydieresis -74
+KPX Lslash quotedblright -100
+KPX Lslash quoteright -100
+KPX Lslash y -25
+KPX Lslash yacute -25
+KPX Lslash ydieresis -25
+KPX N comma -55
+KPX N period -55
+KPX Nacute comma -55
+KPX Nacute period -55
+KPX Ncaron comma -55
+KPX Ncaron period -55
+KPX Ncommaaccent comma -55
+KPX Ncommaaccent period -55
+KPX Ntilde comma -55
+KPX Ntilde period -55
+KPX O T 10
+KPX O Tcaron 10
+KPX O Tcommaaccent 10
+KPX O V -18
+KPX O Y -18
+KPX O Yacute -18
+KPX O Ydieresis -18
+KPX O comma -37
+KPX O period -37
+KPX Oacute T 10
+KPX Oacute Tcaron 10
+KPX Oacute Tcommaaccent 10
+KPX Oacute V -18
+KPX Oacute Y -18
+KPX Oacute Yacute -18
+KPX Oacute Ydieresis -18
+KPX Oacute comma -37
+KPX Oacute period -37
+KPX Ocircumflex T 10
+KPX Ocircumflex Tcaron 10
+KPX Ocircumflex Tcommaaccent 10
+KPX Ocircumflex V -18
+KPX Ocircumflex Y -18
+KPX Ocircumflex Yacute -18
+KPX Ocircumflex Ydieresis -18
+KPX Ocircumflex comma -37
+KPX Ocircumflex period -37
+KPX Odieresis T 10
+KPX Odieresis Tcaron 10
+KPX Odieresis Tcommaaccent 10
+KPX Odieresis V -18
+KPX Odieresis Y -18
+KPX Odieresis Yacute -18
+KPX Odieresis Ydieresis -18
+KPX Odieresis comma -37
+KPX Odieresis period -37
+KPX Ograve T 10
+KPX Ograve Tcaron 10
+KPX Ograve Tcommaaccent 10
+KPX Ograve V -18
+KPX Ograve Y -18
+KPX Ograve Yacute -18
+KPX Ograve Ydieresis -18
+KPX Ograve comma -37
+KPX Ograve period -37
+KPX Ohungarumlaut T 10
+KPX Ohungarumlaut Tcaron 10
+KPX Ohungarumlaut Tcommaaccent 10
+KPX Ohungarumlaut V -18
+KPX Ohungarumlaut Y -18
+KPX Ohungarumlaut Yacute -18
+KPX Ohungarumlaut Ydieresis -18
+KPX Ohungarumlaut comma -37
+KPX Ohungarumlaut period -37
+KPX Omacron T 10
+KPX Omacron Tcaron 10
+KPX Omacron Tcommaaccent 10
+KPX Omacron V -18
+KPX Omacron Y -18
+KPX Omacron Yacute -18
+KPX Omacron Ydieresis -18
+KPX Omacron comma -37
+KPX Omacron period -37
+KPX Oslash T 10
+KPX Oslash Tcaron 10
+KPX Oslash Tcommaaccent 10
+KPX Oslash V -18
+KPX Oslash Y -18
+KPX Oslash Yacute -18
+KPX Oslash Ydieresis -18
+KPX Oslash comma -37
+KPX Oslash period -37
+KPX Otilde T 10
+KPX Otilde Tcaron 10
+KPX Otilde Tcommaaccent 10
+KPX Otilde V -18
+KPX Otilde Y -18
+KPX Otilde Yacute -18
+KPX Otilde Ydieresis -18
+KPX Otilde comma -37
+KPX Otilde period -37
+KPX P A -55
+KPX P Aacute -55
+KPX P Abreve -55
+KPX P Acircumflex -55
+KPX P Adieresis -55
+KPX P Agrave -55
+KPX P Amacron -55
+KPX P Aogonek -55
+KPX P Aring -55
+KPX P Atilde -55
+KPX P a -37
+KPX P aacute -37
+KPX P abreve -37
+KPX P acircumflex -37
+KPX P adieresis -37
+KPX P agrave -37
+KPX P amacron -37
+KPX P aogonek -37
+KPX P aring -37
+KPX P atilde -37
+KPX P comma -125
+KPX P e -37
+KPX P eacute -37
+KPX P ecaron -37
+KPX P ecircumflex -37
+KPX P edieresis -37
+KPX P edotaccent -37
+KPX P egrave -37
+KPX P emacron -37
+KPX P eogonek -37
+KPX P o -37
+KPX P oacute -37
+KPX P ocircumflex -37
+KPX P odieresis -37
+KPX P ograve -37
+KPX P ohungarumlaut -37
+KPX P omacron -37
+KPX P oslash -37
+KPX P otilde -37
+KPX P period -125
+KPX Q comma -25
+KPX Q period -25
+KPX S comma -37
+KPX S period -37
+KPX Sacute comma -37
+KPX Sacute period -37
+KPX Scaron comma -37
+KPX Scaron period -37
+KPX Scedilla comma -37
+KPX Scedilla period -37
+KPX Scommaaccent comma -37
+KPX Scommaaccent period -37
+KPX T A -18
+KPX T Aacute -18
+KPX T Abreve -18
+KPX T Acircumflex -18
+KPX T Adieresis -18
+KPX T Agrave -18
+KPX T Amacron -18
+KPX T Aogonek -18
+KPX T Aring -18
+KPX T Atilde -18
+KPX T O 10
+KPX T Oacute 10
+KPX T Ocircumflex 10
+KPX T Odieresis 10
+KPX T Ograve 10
+KPX T Ohungarumlaut 10
+KPX T Omacron 10
+KPX T Oslash 10
+KPX T Otilde 10
+KPX T a -55
+KPX T aacute -55
+KPX T abreve -55
+KPX T acircumflex -55
+KPX T adieresis -55
+KPX T agrave -55
+KPX T amacron -55
+KPX T aogonek -55
+KPX T aring -55
+KPX T atilde -55
+KPX T colon -37
+KPX T comma -125
+KPX T e -55
+KPX T eacute -55
+KPX T ecaron -55
+KPX T ecircumflex -55
+KPX T edieresis -55
+KPX T edotaccent -55
+KPX T egrave -55
+KPX T emacron -55
+KPX T eogonek -55
+KPX T hyphen -100
+KPX T o -55
+KPX T oacute -55
+KPX T ocircumflex -55
+KPX T odieresis -55
+KPX T ograve -55
+KPX T ohungarumlaut -55
+KPX T omacron -55
+KPX T oslash -55
+KPX T otilde -55
+KPX T period -125
+KPX T semicolon -37
+KPX Tcaron A -18
+KPX Tcaron Aacute -18
+KPX Tcaron Abreve -18
+KPX Tcaron Acircumflex -18
+KPX Tcaron Adieresis -18
+KPX Tcaron Agrave -18
+KPX Tcaron Amacron -18
+KPX Tcaron Aogonek -18
+KPX Tcaron Aring -18
+KPX Tcaron Atilde -18
+KPX Tcaron O 10
+KPX Tcaron Oacute 10
+KPX Tcaron Ocircumflex 10
+KPX Tcaron Odieresis 10
+KPX Tcaron Ograve 10
+KPX Tcaron Ohungarumlaut 10
+KPX Tcaron Omacron 10
+KPX Tcaron Oslash 10
+KPX Tcaron Otilde 10
+KPX Tcaron a -55
+KPX Tcaron aacute -55
+KPX Tcaron abreve -55
+KPX Tcaron acircumflex -55
+KPX Tcaron adieresis -55
+KPX Tcaron agrave -55
+KPX Tcaron amacron -55
+KPX Tcaron aogonek -55
+KPX Tcaron aring -55
+KPX Tcaron atilde -55
+KPX Tcaron colon -37
+KPX Tcaron comma -125
+KPX Tcaron e -55
+KPX Tcaron eacute -55
+KPX Tcaron ecaron -55
+KPX Tcaron ecircumflex -55
+KPX Tcaron edieresis -55
+KPX Tcaron edotaccent -55
+KPX Tcaron egrave -55
+KPX Tcaron emacron -55
+KPX Tcaron eogonek -55
+KPX Tcaron hyphen -100
+KPX Tcaron o -55
+KPX Tcaron oacute -55
+KPX Tcaron ocircumflex -55
+KPX Tcaron odieresis -55
+KPX Tcaron ograve -55
+KPX Tcaron ohungarumlaut -55
+KPX Tcaron omacron -55
+KPX Tcaron oslash -55
+KPX Tcaron otilde -55
+KPX Tcaron period -125
+KPX Tcaron semicolon -37
+KPX Tcommaaccent A -18
+KPX Tcommaaccent Aacute -18
+KPX Tcommaaccent Abreve -18
+KPX Tcommaaccent Acircumflex -18
+KPX Tcommaaccent Adieresis -18
+KPX Tcommaaccent Agrave -18
+KPX Tcommaaccent Amacron -18
+KPX Tcommaaccent Aogonek -18
+KPX Tcommaaccent Aring -18
+KPX Tcommaaccent Atilde -18
+KPX Tcommaaccent O 10
+KPX Tcommaaccent Oacute 10
+KPX Tcommaaccent Ocircumflex 10
+KPX Tcommaaccent Odieresis 10
+KPX Tcommaaccent Ograve 10
+KPX Tcommaaccent Ohungarumlaut 10
+KPX Tcommaaccent Omacron 10
+KPX Tcommaaccent Oslash 10
+KPX Tcommaaccent Otilde 10
+KPX Tcommaaccent a -55
+KPX Tcommaaccent aacute -55
+KPX Tcommaaccent abreve -55
+KPX Tcommaaccent acircumflex -55
+KPX Tcommaaccent adieresis -55
+KPX Tcommaaccent agrave -55
+KPX Tcommaaccent amacron -55
+KPX Tcommaaccent aogonek -55
+KPX Tcommaaccent aring -55
+KPX Tcommaaccent atilde -55
+KPX Tcommaaccent colon -37
+KPX Tcommaaccent comma -125
+KPX Tcommaaccent e -55
+KPX Tcommaaccent eacute -55
+KPX Tcommaaccent ecaron -55
+KPX Tcommaaccent ecircumflex -55
+KPX Tcommaaccent edieresis -55
+KPX Tcommaaccent edotaccent -55
+KPX Tcommaaccent egrave -55
+KPX Tcommaaccent emacron -55
+KPX Tcommaaccent eogonek -55
+KPX Tcommaaccent hyphen -100
+KPX Tcommaaccent o -55
+KPX Tcommaaccent oacute -55
+KPX Tcommaaccent ocircumflex -55
+KPX Tcommaaccent odieresis -55
+KPX Tcommaaccent ograve -55
+KPX Tcommaaccent ohungarumlaut -55
+KPX Tcommaaccent omacron -55
+KPX Tcommaaccent oslash -55
+KPX Tcommaaccent otilde -55
+KPX Tcommaaccent period -125
+KPX Tcommaaccent semicolon -37
+KPX U A -30
+KPX U Aacute -30
+KPX U Abreve -30
+KPX U Acircumflex -30
+KPX U Adieresis -30
+KPX U Agrave -30
+KPX U Amacron -30
+KPX U Aogonek -30
+KPX U Aring -30
+KPX U Atilde -30
+KPX U comma -100
+KPX U period -100
+KPX Uacute A -30
+KPX Uacute Aacute -30
+KPX Uacute Abreve -30
+KPX Uacute Acircumflex -30
+KPX Uacute Adieresis -30
+KPX Uacute Agrave -30
+KPX Uacute Amacron -30
+KPX Uacute Aogonek -30
+KPX Uacute Aring -30
+KPX Uacute Atilde -30
+KPX Uacute comma -100
+KPX Uacute period -100
+KPX Ucircumflex A -30
+KPX Ucircumflex Aacute -30
+KPX Ucircumflex Abreve -30
+KPX Ucircumflex Acircumflex -30
+KPX Ucircumflex Adieresis -30
+KPX Ucircumflex Agrave -30
+KPX Ucircumflex Amacron -30
+KPX Ucircumflex Aogonek -30
+KPX Ucircumflex Aring -30
+KPX Ucircumflex Atilde -30
+KPX Ucircumflex comma -100
+KPX Ucircumflex period -100
+KPX Udieresis A -30
+KPX Udieresis Aacute -30
+KPX Udieresis Abreve -30
+KPX Udieresis Acircumflex -30
+KPX Udieresis Adieresis -30
+KPX Udieresis Agrave -30
+KPX Udieresis Amacron -30
+KPX Udieresis Aogonek -30
+KPX Udieresis Aring -30
+KPX Udieresis Atilde -30
+KPX Udieresis comma -100
+KPX Udieresis period -100
+KPX Ugrave A -30
+KPX Ugrave Aacute -30
+KPX Ugrave Abreve -30
+KPX Ugrave Acircumflex -30
+KPX Ugrave Adieresis -30
+KPX Ugrave Agrave -30
+KPX Ugrave Amacron -30
+KPX Ugrave Aogonek -30
+KPX Ugrave Aring -30
+KPX Ugrave Atilde -30
+KPX Ugrave comma -100
+KPX Ugrave period -100
+KPX Uhungarumlaut A -30
+KPX Uhungarumlaut Aacute -30
+KPX Uhungarumlaut Abreve -30
+KPX Uhungarumlaut Acircumflex -30
+KPX Uhungarumlaut Adieresis -30
+KPX Uhungarumlaut Agrave -30
+KPX Uhungarumlaut Amacron -30
+KPX Uhungarumlaut Aogonek -30
+KPX Uhungarumlaut Aring -30
+KPX Uhungarumlaut Atilde -30
+KPX Uhungarumlaut comma -100
+KPX Uhungarumlaut period -100
+KPX Umacron A -30
+KPX Umacron Aacute -30
+KPX Umacron Abreve -30
+KPX Umacron Acircumflex -30
+KPX Umacron Adieresis -30
+KPX Umacron Agrave -30
+KPX Umacron Amacron -30
+KPX Umacron Aogonek -30
+KPX Umacron Aring -30
+KPX Umacron Atilde -30
+KPX Umacron comma -100
+KPX Umacron period -100
+KPX Uogonek A -30
+KPX Uogonek Aacute -30
+KPX Uogonek Abreve -30
+KPX Uogonek Acircumflex -30
+KPX Uogonek Adieresis -30
+KPX Uogonek Agrave -30
+KPX Uogonek Amacron -30
+KPX Uogonek Aogonek -30
+KPX Uogonek Aring -30
+KPX Uogonek Atilde -30
+KPX Uogonek comma -100
+KPX Uogonek period -100
+KPX Uring A -30
+KPX Uring Aacute -30
+KPX Uring Abreve -30
+KPX Uring Acircumflex -30
+KPX Uring Adieresis -30
+KPX Uring Agrave -30
+KPX Uring Amacron -30
+KPX Uring Aogonek -30
+KPX Uring Aring -30
+KPX Uring Atilde -30
+KPX Uring comma -100
+KPX Uring period -100
+KPX V A -74
+KPX V Aacute -74
+KPX V Abreve -74
+KPX V Acircumflex -74
+KPX V Adieresis -74
+KPX V Agrave -74
+KPX V Amacron -74
+KPX V Aogonek -74
+KPX V Aring -74
+KPX V Atilde -74
+KPX V O -18
+KPX V Oacute -18
+KPX V Ocircumflex -18
+KPX V Odieresis -18
+KPX V Ograve -18
+KPX V Ohungarumlaut -18
+KPX V Omacron -18
+KPX V Oslash -18
+KPX V Otilde -18
+KPX V a -85
+KPX V aacute -85
+KPX V abreve -85
+KPX V acircumflex -85
+KPX V adieresis -85
+KPX V agrave -85
+KPX V amacron -85
+KPX V aogonek -85
+KPX V aring -85
+KPX V atilde -85
+KPX V colon -75
+KPX V comma -125
+KPX V e -75
+KPX V eacute -75
+KPX V ecaron -75
+KPX V ecircumflex -75
+KPX V edieresis -75
+KPX V edotaccent -75
+KPX V egrave -75
+KPX V emacron -75
+KPX V eogonek -75
+KPX V hyphen -100
+KPX V i -18
+KPX V iacute -18
+KPX V icircumflex -18
+KPX V iogonek -18
+KPX V o -75
+KPX V oacute -75
+KPX V ocircumflex -75
+KPX V odieresis -75
+KPX V ograve -75
+KPX V ohungarumlaut -75
+KPX V omacron -75
+KPX V oslash -75
+KPX V otilde -75
+KPX V period -125
+KPX V semicolon -75
+KPX V u -75
+KPX V uacute -75
+KPX V ucircumflex -75
+KPX V udieresis -75
+KPX V ugrave -75
+KPX V uhungarumlaut -75
+KPX V umacron -75
+KPX V uogonek -75
+KPX V uring -75
+KPX W A -50
+KPX W Aacute -50
+KPX W Abreve -50
+KPX W Acircumflex -50
+KPX W Adieresis -50
+KPX W Agrave -50
+KPX W Amacron -50
+KPX W Aogonek -50
+KPX W Aring -50
+KPX W Atilde -50
+KPX W a -75
+KPX W aacute -75
+KPX W abreve -75
+KPX W acircumflex -75
+KPX W adieresis -75
+KPX W agrave -75
+KPX W amacron -75
+KPX W aogonek -75
+KPX W aring -75
+KPX W atilde -75
+KPX W colon -100
+KPX W comma -125
+KPX W e -60
+KPX W eacute -60
+KPX W ecaron -60
+KPX W ecircumflex -60
+KPX W edieresis -60
+KPX W edotaccent -60
+KPX W egrave -60
+KPX W emacron -60
+KPX W eogonek -60
+KPX W hyphen -100
+KPX W i -18
+KPX W iacute -18
+KPX W icircumflex -18
+KPX W iogonek -18
+KPX W o -60
+KPX W oacute -60
+KPX W ocircumflex -60
+KPX W odieresis -60
+KPX W ograve -60
+KPX W ohungarumlaut -60
+KPX W omacron -60
+KPX W oslash -60
+KPX W otilde -60
+KPX W period -125
+KPX W semicolon -100
+KPX W u -55
+KPX W uacute -55
+KPX W ucircumflex -55
+KPX W udieresis -55
+KPX W ugrave -55
+KPX W uhungarumlaut -55
+KPX W umacron -55
+KPX W uogonek -55
+KPX W uring -55
+KPX W y -55
+KPX W yacute -55
+KPX W ydieresis -55
+KPX Y A -75
+KPX Y Aacute -75
+KPX Y Abreve -75
+KPX Y Acircumflex -75
+KPX Y Adieresis -75
+KPX Y Agrave -75
+KPX Y Amacron -75
+KPX Y Aogonek -75
+KPX Y Aring -75
+KPX Y Atilde -75
+KPX Y O -18
+KPX Y Oacute -18
+KPX Y Ocircumflex -18
+KPX Y Odieresis -18
+KPX Y Ograve -18
+KPX Y Ohungarumlaut -18
+KPX Y Omacron -18
+KPX Y Oslash -18
+KPX Y Otilde -18
+KPX Y a -100
+KPX Y aacute -100
+KPX Y abreve -60
+KPX Y acircumflex -100
+KPX Y adieresis -100
+KPX Y agrave -60
+KPX Y amacron -100
+KPX Y aogonek -100
+KPX Y aring -100
+KPX Y atilde -100
+KPX Y colon -75
+KPX Y comma -100
+KPX Y e -100
+KPX Y eacute -100
+KPX Y ecaron -60
+KPX Y ecircumflex -100
+KPX Y edieresis -60
+KPX Y edotaccent -100
+KPX Y egrave -60
+KPX Y emacron -100
+KPX Y eogonek -100
+KPX Y hyphen -125
+KPX Y i -18
+KPX Y iacute -18
+KPX Y icircumflex -18
+KPX Y imacron -18
+KPX Y iogonek -18
+KPX Y o -100
+KPX Y oacute -100
+KPX Y ocircumflex -100
+KPX Y odieresis -60
+KPX Y ograve -60
+KPX Y ohungarumlaut -100
+KPX Y omacron -100
+KPX Y oslash -100
+KPX Y otilde -100
+KPX Y period -100
+KPX Y semicolon -75
+KPX Y u -91
+KPX Y uacute -91
+KPX Y ucircumflex -91
+KPX Y udieresis -91
+KPX Y ugrave -91
+KPX Y uhungarumlaut -91
+KPX Y umacron -91
+KPX Y uogonek -91
+KPX Y uring -91
+KPX Yacute A -75
+KPX Yacute Aacute -75
+KPX Yacute Abreve -75
+KPX Yacute Acircumflex -75
+KPX Yacute Adieresis -75
+KPX Yacute Agrave -75
+KPX Yacute Amacron -75
+KPX Yacute Aogonek -75
+KPX Yacute Aring -75
+KPX Yacute Atilde -75
+KPX Yacute O -18
+KPX Yacute Oacute -18
+KPX Yacute Ocircumflex -18
+KPX Yacute Odieresis -18
+KPX Yacute Ograve -18
+KPX Yacute Ohungarumlaut -18
+KPX Yacute Omacron -18
+KPX Yacute Oslash -18
+KPX Yacute Otilde -18
+KPX Yacute a -100
+KPX Yacute aacute -100
+KPX Yacute abreve -60
+KPX Yacute acircumflex -100
+KPX Yacute adieresis -100
+KPX Yacute agrave -60
+KPX Yacute amacron -100
+KPX Yacute aogonek -100
+KPX Yacute aring -100
+KPX Yacute atilde -100
+KPX Yacute colon -75
+KPX Yacute comma -100
+KPX Yacute e -100
+KPX Yacute eacute -100
+KPX Yacute ecaron -60
+KPX Yacute ecircumflex -100
+KPX Yacute edieresis -60
+KPX Yacute edotaccent -100
+KPX Yacute egrave -60
+KPX Yacute emacron -100
+KPX Yacute eogonek -100
+KPX Yacute hyphen -125
+KPX Yacute i -18
+KPX Yacute iacute -18
+KPX Yacute icircumflex -18
+KPX Yacute imacron -18
+KPX Yacute iogonek -18
+KPX Yacute o -100
+KPX Yacute oacute -100
+KPX Yacute ocircumflex -100
+KPX Yacute odieresis -60
+KPX Yacute ograve -60
+KPX Yacute ohungarumlaut -100
+KPX Yacute omacron -100
+KPX Yacute oslash -100
+KPX Yacute otilde -100
+KPX Yacute period -100
+KPX Yacute semicolon -75
+KPX Yacute u -91
+KPX Yacute uacute -91
+KPX Yacute ucircumflex -91
+KPX Yacute udieresis -91
+KPX Yacute ugrave -91
+KPX Yacute uhungarumlaut -91
+KPX Yacute umacron -91
+KPX Yacute uogonek -91
+KPX Yacute uring -91
+KPX Ydieresis A -75
+KPX Ydieresis Aacute -75
+KPX Ydieresis Abreve -75
+KPX Ydieresis Acircumflex -75
+KPX Ydieresis Adieresis -75
+KPX Ydieresis Agrave -75
+KPX Ydieresis Amacron -75
+KPX Ydieresis Aogonek -75
+KPX Ydieresis Aring -75
+KPX Ydieresis Atilde -75
+KPX Ydieresis O -18
+KPX Ydieresis Oacute -18
+KPX Ydieresis Ocircumflex -18
+KPX Ydieresis Odieresis -18
+KPX Ydieresis Ograve -18
+KPX Ydieresis Ohungarumlaut -18
+KPX Ydieresis Omacron -18
+KPX Ydieresis Oslash -18
+KPX Ydieresis Otilde -18
+KPX Ydieresis a -100
+KPX Ydieresis aacute -100
+KPX Ydieresis abreve -60
+KPX Ydieresis acircumflex -100
+KPX Ydieresis adieresis -100
+KPX Ydieresis agrave -60
+KPX Ydieresis amacron -100
+KPX Ydieresis aogonek -100
+KPX Ydieresis aring -100
+KPX Ydieresis atilde -100
+KPX Ydieresis colon -75
+KPX Ydieresis comma -100
+KPX Ydieresis e -100
+KPX Ydieresis eacute -100
+KPX Ydieresis ecaron -60
+KPX Ydieresis ecircumflex -100
+KPX Ydieresis edieresis -60
+KPX Ydieresis edotaccent -100
+KPX Ydieresis egrave -60
+KPX Ydieresis emacron -100
+KPX Ydieresis eogonek -100
+KPX Ydieresis hyphen -125
+KPX Ydieresis i -18
+KPX Ydieresis iacute -18
+KPX Ydieresis icircumflex -18
+KPX Ydieresis imacron -18
+KPX Ydieresis iogonek -18
+KPX Ydieresis o -100
+KPX Ydieresis oacute -100
+KPX Ydieresis ocircumflex -100
+KPX Ydieresis odieresis -60
+KPX Ydieresis ograve -60
+KPX Ydieresis ohungarumlaut -100
+KPX Ydieresis omacron -100
+KPX Ydieresis oslash -100
+KPX Ydieresis otilde -100
+KPX Ydieresis period -100
+KPX Ydieresis semicolon -75
+KPX Ydieresis u -91
+KPX Ydieresis uacute -91
+KPX Ydieresis ucircumflex -91
+KPX Ydieresis udieresis -91
+KPX Ydieresis ugrave -91
+KPX Ydieresis uhungarumlaut -91
+KPX Ydieresis umacron -91
+KPX Ydieresis uogonek -91
+KPX Ydieresis uring -91
+KPX a v -10
+KPX a w -10
+KPX a y -10
+KPX a yacute -10
+KPX a ydieresis -10
+KPX aacute v -10
+KPX aacute w -10
+KPX aacute y -10
+KPX aacute yacute -10
+KPX aacute ydieresis -10
+KPX abreve v -10
+KPX abreve w -10
+KPX abreve y -10
+KPX abreve yacute -10
+KPX abreve ydieresis -10
+KPX acircumflex v -10
+KPX acircumflex w -10
+KPX acircumflex y -10
+KPX acircumflex yacute -10
+KPX acircumflex ydieresis -10
+KPX adieresis v -10
+KPX adieresis w -10
+KPX adieresis y -10
+KPX adieresis yacute -10
+KPX adieresis ydieresis -10
+KPX agrave v -10
+KPX agrave w -10
+KPX agrave y -10
+KPX agrave yacute -10
+KPX agrave ydieresis -10
+KPX amacron v -10
+KPX amacron w -10
+KPX amacron y -10
+KPX amacron yacute -10
+KPX amacron ydieresis -10
+KPX aogonek v -10
+KPX aogonek w -10
+KPX aring v -10
+KPX aring w -10
+KPX aring y -10
+KPX aring yacute -10
+KPX aring ydieresis -10
+KPX atilde v -10
+KPX atilde w -10
+KPX atilde y -10
+KPX atilde yacute -10
+KPX atilde ydieresis -10
+KPX b comma -18
+KPX b period -18
+KPX c comma -18
+KPX c h -7
+KPX c k -7
+KPX c kcommaaccent -7
+KPX c l -7
+KPX c lacute -7
+KPX c lcommaaccent -7
+KPX c lslash -7
+KPX c period -18
+KPX cacute comma -18
+KPX cacute h -7
+KPX cacute k -7
+KPX cacute kcommaaccent -7
+KPX cacute l -7
+KPX cacute lacute -7
+KPX cacute lcommaaccent -7
+KPX cacute lslash -7
+KPX cacute period -18
+KPX ccaron comma -18
+KPX ccaron h -7
+KPX ccaron k -7
+KPX ccaron kcommaaccent -7
+KPX ccaron l -7
+KPX ccaron lacute -7
+KPX ccaron lcommaaccent -7
+KPX ccaron lslash -7
+KPX ccaron period -18
+KPX ccedilla comma -18
+KPX ccedilla h -7
+KPX ccedilla k -7
+KPX ccedilla kcommaaccent -7
+KPX ccedilla l -7
+KPX ccedilla lacute -7
+KPX ccedilla lcommaaccent -7
+KPX ccedilla lslash -7
+KPX ccedilla period -18
+KPX colon space -37
+KPX comma quotedblright -37
+KPX comma quoteright -37
+KPX comma space -37
+KPX e comma -18
+KPX e period -18
+KPX eacute comma -18
+KPX eacute period -18
+KPX ecaron comma -18
+KPX ecaron period -18
+KPX ecircumflex comma -18
+KPX ecircumflex period -18
+KPX edieresis comma -18
+KPX edieresis period -18
+KPX edotaccent comma -18
+KPX edotaccent period -18
+KPX egrave comma -18
+KPX egrave period -18
+KPX emacron comma -18
+KPX emacron period -18
+KPX eogonek comma -18
+KPX eogonek period -18
+KPX f comma -37
+KPX f period -37
+KPX f quotedblright 100
+KPX f quoteright 100
+KPX g comma -25
+KPX g period -25
+KPX gbreve comma -25
+KPX gbreve period -25
+KPX gcommaaccent comma -25
+KPX gcommaaccent period -25
+KPX o comma -18
+KPX o period -18
+KPX oacute comma -18
+KPX oacute period -18
+KPX ocircumflex comma -18
+KPX ocircumflex period -18
+KPX odieresis comma -18
+KPX odieresis period -18
+KPX ograve comma -18
+KPX ograve period -18
+KPX ohungarumlaut comma -18
+KPX ohungarumlaut period -18
+KPX omacron comma -18
+KPX omacron period -18
+KPX oslash comma -18
+KPX oslash period -18
+KPX otilde comma -18
+KPX otilde period -18
+KPX p comma -18
+KPX p period -18
+KPX period quotedblright -37
+KPX period quoteright -37
+KPX period space -37
+KPX quotedblleft A -74
+KPX quotedblleft Aacute -74
+KPX quotedblleft Abreve -74
+KPX quotedblleft Acircumflex -74
+KPX quotedblleft Adieresis -74
+KPX quotedblleft Agrave -74
+KPX quotedblleft Amacron -74
+KPX quotedblleft Aogonek -74
+KPX quotedblleft Aring -74
+KPX quotedblleft Atilde -74
+KPX quotedblright space -37
+KPX quoteleft A -74
+KPX quoteleft Aacute -74
+KPX quoteleft Abreve -74
+KPX quoteleft Acircumflex -74
+KPX quoteleft Adieresis -74
+KPX quoteleft Agrave -74
+KPX quoteleft Amacron -74
+KPX quoteleft Aogonek -74
+KPX quoteleft Aring -74
+KPX quoteleft Atilde -74
+KPX quoteleft quoteleft -25
+KPX quoteright d -37
+KPX quoteright dcroat -37
+KPX quoteright quoteright -25
+KPX quoteright s -25
+KPX quoteright sacute -25
+KPX quoteright scaron -25
+KPX quoteright scedilla -25
+KPX quoteright scommaaccent -25
+KPX r comma -100
+KPX r hyphen -37
+KPX r period -100
+KPX racute comma -100
+KPX racute hyphen -37
+KPX racute period -100
+KPX rcaron comma -100
+KPX rcaron hyphen -37
+KPX rcaron period -100
+KPX rcommaaccent comma -100
+KPX rcommaaccent hyphen -37
+KPX rcommaaccent period -100
+KPX s comma -25
+KPX s period -25
+KPX sacute comma -25
+KPX sacute period -25
+KPX scaron comma -25
+KPX scaron period -25
+KPX scedilla comma -25
+KPX scedilla period -25
+KPX scommaaccent comma -25
+KPX scommaaccent period -25
+KPX semicolon space -37
+KPX space A -37
+KPX space Aacute -37
+KPX space Abreve -37
+KPX space Acircumflex -37
+KPX space Adieresis -37
+KPX space Agrave -37
+KPX space Amacron -37
+KPX space Aogonek -37
+KPX space Aring -37
+KPX space Atilde -37
+KPX space T -37
+KPX space Tcaron -37
+KPX space Tcommaaccent -37
+KPX space V -37
+KPX space W -37
+KPX space Y -37
+KPX space Yacute -37
+KPX space Ydieresis -37
+KPX space quotedblleft -37
+KPX space quoteleft -37
+KPX v comma -125
+KPX v period -125
+KPX w a -18
+KPX w aacute -18
+KPX w abreve -18
+KPX w acircumflex -18
+KPX w adieresis -18
+KPX w agrave -18
+KPX w amacron -18
+KPX w aogonek -18
+KPX w aring -18
+KPX w atilde -18
+KPX w comma -125
+KPX w period -125
+KPX y comma -125
+KPX y period -125
+KPX yacute comma -125
+KPX yacute period -125
+KPX ydieresis comma -125
+KPX ydieresis period -125
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Palatino-Bold.afm b/test/user-template/user/psprint/fontmetric/Palatino-Bold.afm
new file mode 100644
index 000000000000..846373d2c380
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Palatino-Bold.afm
@@ -0,0 +1,1172 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 13:25:14 1997
+Comment UniqueID 43075
+Comment VMusage 51499 66524
+FontName Palatino-Bold
+FullName Palatino Bold
+FamilyName Palatino
+Weight Bold
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -152 -266 1000 924
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 681
+XHeight 471
+Ascender 726
+Descender -281
+StdHW 55
+StdVW 122
+StartCharMetrics 314
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 278 ; N exclam ; B 63 -12 219 688 ;
+C 34 ; WX 402 ; N quotedbl ; B 22 376 380 695 ;
+C 35 ; WX 500 ; N numbersign ; B 4 0 496 673 ;
+C 36 ; WX 500 ; N dollar ; B 28 -114 472 721 ;
+C 37 ; WX 889 ; N percent ; B 61 -9 828 714 ;
+C 38 ; WX 833 ; N ampersand ; B 52 -17 813 684 ;
+C 39 ; WX 278 ; N quoteright ; B 29 405 249 695 ;
+C 40 ; WX 333 ; N parenleft ; B 65 -104 305 723 ;
+C 41 ; WX 333 ; N parenright ; B 28 -104 268 723 ;
+C 42 ; WX 444 ; N asterisk ; B 44 332 399 695 ;
+C 43 ; WX 606 ; N plus ; B 51 0 555 505 ;
+C 44 ; WX 250 ; N comma ; B -6 -166 227 141 ;
+C 45 ; WX 333 ; N hyphen ; B 16 195 317 305 ;
+C 46 ; WX 250 ; N period ; B 47 -12 203 144 ;
+C 47 ; WX 296 ; N slash ; B -9 -17 305 720 ;
+C 48 ; WX 500 ; N zero ; B 33 -17 468 660 ;
+C 49 ; WX 500 ; N one ; B 35 -3 455 670 ;
+C 50 ; WX 500 ; N two ; B 25 -3 472 660 ;
+C 51 ; WX 500 ; N three ; B 22 -17 458 660 ;
+C 52 ; WX 500 ; N four ; B 12 -3 473 672 ;
+C 53 ; WX 500 ; N five ; B 42 -17 472 656 ;
+C 54 ; WX 500 ; N six ; B 37 -17 469 660 ;
+C 55 ; WX 500 ; N seven ; B 46 -3 493 656 ;
+C 56 ; WX 500 ; N eight ; B 34 -17 467 660 ;
+C 57 ; WX 500 ; N nine ; B 31 -17 463 660 ;
+C 58 ; WX 250 ; N colon ; B 47 -12 203 454 ;
+C 59 ; WX 250 ; N semicolon ; B -6 -166 227 454 ;
+C 60 ; WX 606 ; N less ; B 49 -15 558 519 ;
+C 61 ; WX 606 ; N equal ; B 51 114 555 396 ;
+C 62 ; WX 606 ; N greater ; B 49 -15 558 519 ;
+C 63 ; WX 444 ; N question ; B 43 -12 411 687 ;
+C 64 ; WX 747 ; N at ; B 42 -12 704 681 ;
+C 65 ; WX 778 ; N A ; B 24 -3 757 686 ;
+C 66 ; WX 667 ; N B ; B 39 -3 611 681 ;
+C 67 ; WX 722 ; N C ; B 44 -17 695 695 ;
+C 68 ; WX 833 ; N D ; B 35 -3 786 681 ;
+C 69 ; WX 611 ; N E ; B 39 -4 577 681 ;
+C 70 ; WX 556 ; N F ; B 28 -3 539 681 ;
+C 71 ; WX 833 ; N G ; B 47 -17 776 695 ;
+C 72 ; WX 833 ; N H ; B 36 -3 796 681 ;
+C 73 ; WX 389 ; N I ; B 39 -3 350 681 ;
+C 74 ; WX 389 ; N J ; B -11 -213 350 681 ;
+C 75 ; WX 778 ; N K ; B 39 -3 763 681 ;
+C 76 ; WX 611 ; N L ; B 39 -4 577 681 ;
+C 77 ; WX 1000 ; N M ; B 32 -10 968 681 ;
+C 78 ; WX 833 ; N N ; B 35 -16 798 681 ;
+C 79 ; WX 833 ; N O ; B 47 -17 787 695 ;
+C 80 ; WX 611 ; N P ; B 39 -3 594 681 ;
+C 81 ; WX 833 ; N Q ; B 47 -184 787 695 ;
+C 82 ; WX 722 ; N R ; B 39 -3 708 681 ;
+C 83 ; WX 611 ; N S ; B 57 -17 559 695 ;
+C 84 ; WX 667 ; N T ; B 17 -3 650 681 ;
+C 85 ; WX 778 ; N U ; B 26 -17 760 681 ;
+C 86 ; WX 778 ; N V ; B 20 -3 763 681 ;
+C 87 ; WX 1000 ; N W ; B 17 -3 988 686 ;
+C 88 ; WX 667 ; N X ; B 17 -3 650 695 ;
+C 89 ; WX 667 ; N Y ; B 15 -3 660 695 ;
+C 90 ; WX 667 ; N Z ; B 24 -3 627 681 ;
+C 91 ; WX 333 ; N bracketleft ; B 73 -104 291 720 ;
+C 92 ; WX 606 ; N backslash ; B 72 0 534 720 ;
+C 93 ; WX 333 ; N bracketright ; B 42 -104 260 720 ;
+C 94 ; WX 606 ; N asciicircum ; B 52 275 554 678 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 278 ; N quoteleft ; B 29 405 249 695 ;
+C 97 ; WX 500 ; N a ; B 40 -17 478 471 ;
+C 98 ; WX 611 ; N b ; B 10 -17 556 720 ;
+C 99 ; WX 444 ; N c ; B 37 -17 414 471 ;
+C 100 ; WX 611 ; N d ; B 42 -17 577 720 ;
+C 101 ; WX 500 ; N e ; B 42 -17 461 471 ;
+C 102 ; WX 389 ; N f ; B 34 -3 381 720 ; L i fi ; L l fl ;
+C 103 ; WX 556 ; N g ; B 26 -266 535 471 ;
+C 104 ; WX 611 ; N h ; B 24 -3 587 720 ;
+C 105 ; WX 333 ; N i ; B 34 -3 298 706 ;
+C 106 ; WX 333 ; N j ; B 3 -266 241 706 ;
+C 107 ; WX 611 ; N k ; B 21 -3 597 720 ;
+C 108 ; WX 333 ; N l ; B 24 -3 296 720 ;
+C 109 ; WX 889 ; N m ; B 24 -3 864 471 ;
+C 110 ; WX 611 ; N n ; B 24 -3 587 471 ;
+C 111 ; WX 556 ; N o ; B 40 -17 517 471 ;
+C 112 ; WX 611 ; N p ; B 29 -258 567 471 ;
+C 113 ; WX 611 ; N q ; B 52 -258 589 471 ;
+C 114 ; WX 389 ; N r ; B 30 -3 389 471 ;
+C 115 ; WX 444 ; N s ; B 39 -17 405 471 ;
+C 116 ; WX 333 ; N t ; B 22 -17 324 632 ;
+C 117 ; WX 611 ; N u ; B 25 -17 583 471 ;
+C 118 ; WX 556 ; N v ; B 11 -3 545 459 ;
+C 119 ; WX 833 ; N w ; B 13 -3 820 471 ;
+C 120 ; WX 500 ; N x ; B 20 -3 483 471 ;
+C 121 ; WX 556 ; N y ; B 10 -266 546 459 ;
+C 122 ; WX 500 ; N z ; B 16 -3 464 459 ;
+C 123 ; WX 310 ; N braceleft ; B 5 -117 288 725 ;
+C 124 ; WX 606 ; N bar ; B 260 -250 346 750 ;
+C 125 ; WX 310 ; N braceright ; B 22 -117 305 725 ;
+C 126 ; WX 606 ; N asciitilde ; B 51 155 555 342 ;
+C 161 ; WX 278 ; N exclamdown ; B 59 -227 215 471 ;
+C 162 ; WX 500 ; N cent ; B 73 -106 450 554 ;
+C 163 ; WX 500 ; N sterling ; B -2 -19 501 676 ;
+C 164 ; WX 167 ; N fraction ; B -152 0 320 660 ;
+C 165 ; WX 500 ; N yen ; B 17 -3 483 695 ;
+C 166 ; WX 500 ; N florin ; B 11 -242 490 703 ;
+C 167 ; WX 500 ; N section ; B 30 -217 471 695 ;
+C 168 ; WX 500 ; N currency ; B 32 96 468 533 ;
+C 169 ; WX 227 ; N quotesingle ; B 45 376 181 695 ;
+C 170 ; WX 500 ; N quotedblleft ; B 34 405 466 695 ;
+C 171 ; WX 500 ; N guillemotleft ; B 36 44 463 438 ;
+C 172 ; WX 389 ; N guilsinglleft ; B 82 44 307 438 ;
+C 173 ; WX 389 ; N guilsinglright ; B 82 44 307 438 ;
+C 174 ; WX 611 ; N fi ; B 10 -3 595 720 ;
+C 175 ; WX 611 ; N fl ; B 17 -3 593 720 ;
+C 177 ; WX 500 ; N endash ; B 0 208 500 291 ;
+C 178 ; WX 500 ; N dagger ; B 29 -6 472 682 ;
+C 179 ; WX 500 ; N daggerdbl ; B 32 -245 468 682 ;
+C 180 ; WX 250 ; N periodcentered ; B 47 179 203 335 ;
+C 182 ; WX 641 ; N paragraph ; B 19 -161 599 683 ;
+C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ;
+C 184 ; WX 333 ; N quotesinglbase ; B 56 -160 276 130 ;
+C 185 ; WX 500 ; N quotedblbase ; B 34 -160 466 130 ;
+C 186 ; WX 500 ; N quotedblright ; B 34 405 466 695 ;
+C 187 ; WX 500 ; N guillemotright ; B 37 44 464 438 ;
+C 188 ; WX 1000 ; N ellipsis ; B 89 -12 911 144 ;
+C 189 ; WX 1000 ; N perthousand ; B 33 -9 982 724 ;
+C 191 ; WX 444 ; N questiondown ; B 33 -231 401 471 ;
+C 193 ; WX 333 ; N grave ; B 18 506 256 691 ;
+C 194 ; WX 333 ; N acute ; B 78 506 316 691 ;
+C 195 ; WX 333 ; N circumflex ; B -2 506 335 681 ;
+C 196 ; WX 333 ; N tilde ; B -16 535 349 661 ;
+C 197 ; WX 333 ; N macron ; B 1 538 332 609 ;
+C 198 ; WX 333 ; N breve ; B 15 506 318 669 ;
+C 199 ; WX 333 ; N dotaccent ; B 92 556 242 706 ;
+C 200 ; WX 333 ; N dieresis ; B -8 556 341 690 ;
+C 202 ; WX 333 ; N ring ; B 67 500 267 700 ;
+C 203 ; WX 333 ; N cedilla ; B 73 -225 300 -7 ;
+C 205 ; WX 333 ; N hungarumlaut ; B -56 506 390 691 ;
+C 206 ; WX 333 ; N ogonek ; B 49 -225 287 -20 ;
+C 207 ; WX 333 ; N caron ; B -2 510 335 685 ;
+C 208 ; WX 1000 ; N emdash ; B 0 208 1000 291 ;
+C 225 ; WX 1000 ; N AE ; B 12 -4 954 681 ;
+C 227 ; WX 438 ; N ordfeminine ; B 77 367 361 660 ;
+C 232 ; WX 611 ; N Lslash ; B 16 -4 577 681 ;
+C 233 ; WX 833 ; N Oslash ; B 32 -20 808 698 ;
+C 234 ; WX 1000 ; N OE ; B 43 -17 985 695 ;
+C 235 ; WX 488 ; N ordmasculine ; B 89 367 399 660 ;
+C 241 ; WX 778 ; N ae ; B 46 -17 731 471 ;
+C 245 ; WX 333 ; N dotlessi ; B 34 -3 298 471 ;
+C 248 ; WX 333 ; N lslash ; B -4 -3 334 720 ;
+C 249 ; WX 556 ; N oslash ; B 23 -18 534 471 ;
+C 250 ; WX 833 ; N oe ; B 48 -17 799 471 ;
+C 251 ; WX 611 ; N germandbls ; B 30 -17 565 720 ;
+C -1 ; WX 389 ; N Idieresis ; B 20 -3 369 895 ;
+C -1 ; WX 500 ; N eacute ; B 42 -17 461 711 ;
+C -1 ; WX 500 ; N abreve ; B 40 -17 478 689 ;
+C -1 ; WX 611 ; N uhungarumlaut ; B 25 -17 583 711 ;
+C -1 ; WX 500 ; N ecaron ; B 42 -17 461 725 ;
+C -1 ; WX 667 ; N Ydieresis ; B 15 -3 660 895 ;
+C -1 ; WX 606 ; N divide ; B 51 0 555 510 ;
+C -1 ; WX 667 ; N Yacute ; B 15 -3 660 915 ;
+C -1 ; WX 778 ; N Acircumflex ; B 24 -3 757 905 ;
+C -1 ; WX 500 ; N aacute ; B 40 -17 478 711 ;
+C -1 ; WX 778 ; N Ucircumflex ; B 26 -17 760 905 ;
+C -1 ; WX 556 ; N yacute ; B 10 -266 546 711 ;
+C -1 ; WX 444 ; N scommaaccent ; B 39 -266 405 471 ;
+C -1 ; WX 500 ; N ecircumflex ; B 42 -17 461 721 ;
+C -1 ; WX 778 ; N Uring ; B 26 -17 760 924 ;
+C -1 ; WX 778 ; N Udieresis ; B 26 -17 760 895 ;
+C -1 ; WX 500 ; N aogonek ; B 40 -225 478 471 ;
+C -1 ; WX 778 ; N Uacute ; B 26 -17 760 915 ;
+C -1 ; WX 611 ; N uogonek ; B 25 -201 642 471 ;
+C -1 ; WX 611 ; N Edieresis ; B 39 -4 577 895 ;
+C -1 ; WX 833 ; N Dcroat ; B 10 -3 786 681 ;
+C -1 ; WX 250 ; N commaaccent ; B 48 -266 203 -50 ;
+C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ;
+C -1 ; WX 611 ; N Emacron ; B 39 -4 577 833 ;
+C -1 ; WX 444 ; N ccaron ; B 37 -17 421 705 ;
+C -1 ; WX 500 ; N aring ; B 40 -17 478 720 ;
+C -1 ; WX 833 ; N Ncommaaccent ; B 35 -266 798 681 ;
+C -1 ; WX 333 ; N lacute ; B 24 -3 336 924 ;
+C -1 ; WX 500 ; N agrave ; B 40 -17 478 711 ;
+C -1 ; WX 667 ; N Tcommaaccent ; B 17 -266 650 681 ;
+C -1 ; WX 722 ; N Cacute ; B 44 -17 695 915 ;
+C -1 ; WX 500 ; N atilde ; B 40 -17 478 693 ;
+C -1 ; WX 611 ; N Edotaccent ; B 39 -4 577 910 ;
+C -1 ; WX 444 ; N scaron ; B 39 -17 405 705 ;
+C -1 ; WX 444 ; N scedilla ; B 39 -225 405 471 ;
+C -1 ; WX 333 ; N iacute ; B 34 -3 316 711 ;
+C -1 ; WX 471 ; N lozenge ; B 7 0 465 732 ;
+C -1 ; WX 722 ; N Rcaron ; B 39 -3 708 909 ;
+C -1 ; WX 833 ; N Gcommaaccent ; B 47 -266 776 695 ;
+C -1 ; WX 611 ; N ucircumflex ; B 25 -17 583 701 ;
+C -1 ; WX 500 ; N acircumflex ; B 40 -17 478 701 ;
+C -1 ; WX 778 ; N Amacron ; B 24 -3 757 833 ;
+C -1 ; WX 389 ; N rcaron ; B 30 -3 389 705 ;
+C -1 ; WX 444 ; N ccedilla ; B 37 -225 414 471 ;
+C -1 ; WX 667 ; N Zdotaccent ; B 24 -3 627 910 ;
+C -1 ; WX 611 ; N Thorn ; B 39 -3 574 681 ;
+C -1 ; WX 833 ; N Omacron ; B 47 -17 787 833 ;
+C -1 ; WX 722 ; N Racute ; B 39 -3 708 915 ;
+C -1 ; WX 611 ; N Sacute ; B 57 -17 559 915 ;
+C -1 ; WX 675 ; N dcaron ; B 42 -17 698 724 ;
+C -1 ; WX 778 ; N Umacron ; B 26 -17 760 833 ;
+C -1 ; WX 611 ; N uring ; B 25 -17 583 720 ;
+C -1 ; WX 300 ; N threesuperior ; B 9 261 292 667 ;
+C -1 ; WX 833 ; N Ograve ; B 47 -17 787 915 ;
+C -1 ; WX 778 ; N Agrave ; B 24 -3 757 915 ;
+C -1 ; WX 778 ; N Abreve ; B 24 -3 757 893 ;
+C -1 ; WX 606 ; N multiply ; B 72 21 534 483 ;
+C -1 ; WX 611 ; N uacute ; B 25 -17 583 711 ;
+C -1 ; WX 667 ; N Tcaron ; B 17 -3 650 909 ;
+C -1 ; WX 476 ; N partialdiff ; B 9 -38 467 718 ;
+C -1 ; WX 556 ; N ydieresis ; B 10 -266 546 710 ;
+C -1 ; WX 833 ; N Nacute ; B 35 -16 798 915 ;
+C -1 ; WX 333 ; N icircumflex ; B -2 -3 335 701 ;
+C -1 ; WX 611 ; N Ecircumflex ; B 39 -4 577 905 ;
+C -1 ; WX 500 ; N adieresis ; B 40 -17 478 691 ;
+C -1 ; WX 500 ; N edieresis ; B 42 -17 461 691 ;
+C -1 ; WX 444 ; N cacute ; B 37 -17 414 731 ;
+C -1 ; WX 611 ; N nacute ; B 24 -3 587 711 ;
+C -1 ; WX 611 ; N umacron ; B 25 -17 583 609 ;
+C -1 ; WX 833 ; N Ncaron ; B 35 -16 798 909 ;
+C -1 ; WX 389 ; N Iacute ; B 39 -3 350 915 ;
+C -1 ; WX 606 ; N plusminus ; B 51 0 555 505 ;
+C -1 ; WX 606 ; N brokenbar ; B 260 -175 346 675 ;
+C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ;
+C -1 ; WX 833 ; N Gbreve ; B 47 -17 776 893 ;
+C -1 ; WX 389 ; N Idotaccent ; B 39 -3 350 910 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 611 ; N Egrave ; B 39 -4 577 915 ;
+C -1 ; WX 389 ; N racute ; B 30 -3 404 711 ;
+C -1 ; WX 556 ; N omacron ; B 40 -17 517 609 ;
+C -1 ; WX 667 ; N Zacute ; B 24 -3 627 915 ;
+C -1 ; WX 667 ; N Zcaron ; B 24 -3 627 909 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 682 ;
+C -1 ; WX 833 ; N Eth ; B 10 -3 786 681 ;
+C -1 ; WX 722 ; N Ccedilla ; B 44 -225 695 695 ;
+C -1 ; WX 333 ; N lcommaaccent ; B 24 -266 296 720 ;
+C -1 ; WX 403 ; N tcaron ; B 22 -17 430 741 ;
+C -1 ; WX 500 ; N eogonek ; B 42 -215 461 471 ;
+C -1 ; WX 778 ; N Uogonek ; B 26 -225 760 681 ;
+C -1 ; WX 778 ; N Aacute ; B 24 -3 757 915 ;
+C -1 ; WX 778 ; N Adieresis ; B 24 -3 757 895 ;
+C -1 ; WX 500 ; N egrave ; B 42 -17 461 711 ;
+C -1 ; WX 500 ; N zacute ; B 16 -3 464 711 ;
+C -1 ; WX 333 ; N iogonek ; B 34 -225 300 706 ;
+C -1 ; WX 833 ; N Oacute ; B 47 -17 787 915 ;
+C -1 ; WX 556 ; N oacute ; B 40 -17 517 711 ;
+C -1 ; WX 500 ; N amacron ; B 40 -17 478 609 ;
+C -1 ; WX 444 ; N sacute ; B 39 -17 405 711 ;
+C -1 ; WX 333 ; N idieresis ; B -8 -3 341 710 ;
+C -1 ; WX 833 ; N Ocircumflex ; B 47 -17 787 905 ;
+C -1 ; WX 778 ; N Ugrave ; B 26 -17 760 915 ;
+C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 611 ; N thorn ; B 17 -258 563 720 ;
+C -1 ; WX 300 ; N twosuperior ; B 5 261 295 660 ;
+C -1 ; WX 833 ; N Odieresis ; B 47 -17 787 895 ;
+C -1 ; WX 611 ; N mu ; B 25 -225 583 471 ;
+C -1 ; WX 333 ; N igrave ; B 18 -3 298 711 ;
+C -1 ; WX 556 ; N ohungarumlaut ; B 40 -17 562 711 ;
+C -1 ; WX 611 ; N Eogonek ; B 39 -225 581 681 ;
+C -1 ; WX 611 ; N dcroat ; B 42 -17 607 720 ;
+C -1 ; WX 750 ; N threequarters ; B 15 -2 735 667 ;
+C -1 ; WX 611 ; N Scedilla ; B 57 -225 559 695 ;
+C -1 ; WX 393 ; N lcaron ; B 24 -3 415 724 ;
+C -1 ; WX 778 ; N Kcommaaccent ; B 39 -266 763 681 ;
+C -1 ; WX 611 ; N Lacute ; B 39 -4 577 915 ;
+C -1 ; WX 998 ; N trademark ; B 38 274 961 678 ;
+C -1 ; WX 500 ; N edotaccent ; B 42 -17 461 707 ;
+C -1 ; WX 389 ; N Igrave ; B 39 -3 350 915 ;
+C -1 ; WX 389 ; N Imacron ; B 29 -3 360 833 ;
+C -1 ; WX 611 ; N Lcaron ; B 39 -4 577 695 ;
+C -1 ; WX 750 ; N onehalf ; B 9 -2 745 665 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 682 ;
+C -1 ; WX 556 ; N ocircumflex ; B 40 -17 517 701 ;
+C -1 ; WX 611 ; N ntilde ; B 24 -3 587 693 ;
+C -1 ; WX 778 ; N Uhungarumlaut ; B 26 -17 760 915 ;
+C -1 ; WX 611 ; N Eacute ; B 39 -4 577 915 ;
+C -1 ; WX 500 ; N emacron ; B 42 -17 461 629 ;
+C -1 ; WX 556 ; N gbreve ; B 26 -266 535 689 ;
+C -1 ; WX 750 ; N onequarter ; B 19 -2 735 665 ;
+C -1 ; WX 611 ; N Scaron ; B 57 -17 559 909 ;
+C -1 ; WX 611 ; N Scommaaccent ; B 57 -266 559 695 ;
+C -1 ; WX 833 ; N Ohungarumlaut ; B 47 -17 787 915 ;
+C -1 ; WX 400 ; N degree ; B 50 360 350 660 ;
+C -1 ; WX 556 ; N ograve ; B 40 -17 517 711 ;
+C -1 ; WX 722 ; N Ccaron ; B 44 -17 695 909 ;
+C -1 ; WX 611 ; N ugrave ; B 25 -17 583 711 ;
+C -1 ; WX 453 ; N radical ; B -9 -91 463 765 ;
+C -1 ; WX 833 ; N Dcaron ; B 35 -3 786 909 ;
+C -1 ; WX 389 ; N rcommaaccent ; B 30 -266 389 471 ;
+C -1 ; WX 833 ; N Ntilde ; B 35 -16 798 885 ;
+C -1 ; WX 556 ; N otilde ; B 40 -17 517 693 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 39 -266 708 681 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B 39 -266 577 681 ;
+C -1 ; WX 778 ; N Atilde ; B 24 -3 757 885 ;
+C -1 ; WX 778 ; N Aogonek ; B 24 -225 767 686 ;
+C -1 ; WX 778 ; N Aring ; B 24 -3 757 924 ;
+C -1 ; WX 833 ; N Otilde ; B 47 -17 787 885 ;
+C -1 ; WX 500 ; N zdotaccent ; B 16 -3 464 707 ;
+C -1 ; WX 611 ; N Ecaron ; B 39 -4 577 909 ;
+C -1 ; WX 389 ; N Iogonek ; B 39 -225 352 681 ;
+C -1 ; WX 611 ; N kcommaaccent ; B 21 -266 597 720 ;
+C -1 ; WX 606 ; N minus ; B 51 212 555 298 ;
+C -1 ; WX 389 ; N Icircumflex ; B 26 -3 363 905 ;
+C -1 ; WX 611 ; N ncaron ; B 24 -3 587 705 ;
+C -1 ; WX 333 ; N tcommaaccent ; B 22 -266 324 632 ;
+C -1 ; WX 606 ; N logicalnot ; B 51 114 555 396 ;
+C -1 ; WX 556 ; N odieresis ; B 40 -17 517 710 ;
+C -1 ; WX 611 ; N udieresis ; B 25 -17 583 710 ;
+C -1 ; WX 549 ; N notequal ; B 12 -40 537 554 ;
+C -1 ; WX 556 ; N gcommaaccent ; B 26 -266 535 740 ;
+C -1 ; WX 556 ; N eth ; B 40 -17 517 720 ;
+C -1 ; WX 500 ; N zcaron ; B 16 -3 464 705 ;
+C -1 ; WX 611 ; N ncommaaccent ; B 24 -266 587 471 ;
+C -1 ; WX 300 ; N onesuperior ; B 14 261 287 665 ;
+C -1 ; WX 333 ; N imacron ; B 34 -3 298 609 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 828
+KPX A T -92
+KPX A Tcaron -92
+KPX A Tcommaaccent -92
+KPX A V -129
+KPX A W -90
+KPX A Y -111
+KPX A Yacute -111
+KPX A Ydieresis -111
+KPX A quoteright -92
+KPX A space -18
+KPX A v -70
+KPX A w -70
+KPX A y -70
+KPX A yacute -70
+KPX A ydieresis -70
+KPX Aacute T -92
+KPX Aacute Tcaron -92
+KPX Aacute Tcommaaccent -92
+KPX Aacute V -129
+KPX Aacute W -90
+KPX Aacute Y -111
+KPX Aacute Yacute -111
+KPX Aacute Ydieresis -111
+KPX Aacute quoteright -92
+KPX Aacute space -18
+KPX Aacute v -70
+KPX Aacute w -70
+KPX Aacute y -70
+KPX Aacute yacute -70
+KPX Aacute ydieresis -70
+KPX Abreve T -92
+KPX Abreve Tcaron -92
+KPX Abreve Tcommaaccent -92
+KPX Abreve V -129
+KPX Abreve W -90
+KPX Abreve Y -111
+KPX Abreve Yacute -111
+KPX Abreve Ydieresis -111
+KPX Abreve quoteright -92
+KPX Abreve space -18
+KPX Abreve v -70
+KPX Abreve w -70
+KPX Abreve y -70
+KPX Abreve yacute -70
+KPX Abreve ydieresis -70
+KPX Acircumflex T -92
+KPX Acircumflex Tcaron -92
+KPX Acircumflex Tcommaaccent -92
+KPX Acircumflex V -129
+KPX Acircumflex W -90
+KPX Acircumflex Y -111
+KPX Acircumflex Yacute -111
+KPX Acircumflex Ydieresis -111
+KPX Acircumflex quoteright -92
+KPX Acircumflex space -18
+KPX Acircumflex v -70
+KPX Acircumflex w -70
+KPX Acircumflex y -70
+KPX Acircumflex yacute -70
+KPX Acircumflex ydieresis -70
+KPX Adieresis T -92
+KPX Adieresis Tcaron -92
+KPX Adieresis Tcommaaccent -92
+KPX Adieresis V -129
+KPX Adieresis W -90
+KPX Adieresis Y -111
+KPX Adieresis Yacute -111
+KPX Adieresis Ydieresis -111
+KPX Adieresis quoteright -92
+KPX Adieresis space -18
+KPX Adieresis v -70
+KPX Adieresis w -70
+KPX Adieresis y -70
+KPX Adieresis yacute -70
+KPX Adieresis ydieresis -70
+KPX Agrave T -92
+KPX Agrave Tcaron -92
+KPX Agrave Tcommaaccent -92
+KPX Agrave V -129
+KPX Agrave W -90
+KPX Agrave Y -111
+KPX Agrave Yacute -111
+KPX Agrave Ydieresis -111
+KPX Agrave quoteright -92
+KPX Agrave space -18
+KPX Agrave v -70
+KPX Agrave w -70
+KPX Agrave y -70
+KPX Agrave yacute -70
+KPX Agrave ydieresis -70
+KPX Amacron T -92
+KPX Amacron Tcaron -92
+KPX Amacron Tcommaaccent -92
+KPX Amacron V -129
+KPX Amacron W -90
+KPX Amacron Y -111
+KPX Amacron Yacute -111
+KPX Amacron Ydieresis -111
+KPX Amacron quoteright -92
+KPX Amacron space -18
+KPX Amacron v -70
+KPX Amacron w -70
+KPX Amacron y -70
+KPX Amacron yacute -70
+KPX Amacron ydieresis -70
+KPX Aogonek T -92
+KPX Aogonek Tcaron -92
+KPX Aogonek Tcommaaccent -92
+KPX Aogonek V -129
+KPX Aogonek W -90
+KPX Aogonek Y -111
+KPX Aogonek Yacute -111
+KPX Aogonek Ydieresis -111
+KPX Aogonek quoteright -92
+KPX Aogonek space -18
+KPX Aogonek v -70
+KPX Aogonek w -70
+KPX Aogonek y -70
+KPX Aogonek yacute -70
+KPX Aogonek ydieresis -70
+KPX Aring T -92
+KPX Aring Tcaron -92
+KPX Aring Tcommaaccent -92
+KPX Aring V -129
+KPX Aring W -90
+KPX Aring Y -111
+KPX Aring Yacute -111
+KPX Aring Ydieresis -111
+KPX Aring quoteright -92
+KPX Aring space -18
+KPX Aring v -70
+KPX Aring w -70
+KPX Aring y -70
+KPX Aring yacute -70
+KPX Aring ydieresis -70
+KPX Atilde T -92
+KPX Atilde Tcaron -92
+KPX Atilde Tcommaaccent -92
+KPX Atilde V -129
+KPX Atilde W -90
+KPX Atilde Y -111
+KPX Atilde Yacute -111
+KPX Atilde Ydieresis -111
+KPX Atilde quoteright -92
+KPX Atilde space -18
+KPX Atilde v -70
+KPX Atilde w -70
+KPX Atilde y -70
+KPX Atilde yacute -70
+KPX Atilde ydieresis -70
+KPX F A -55
+KPX F Aacute -55
+KPX F Abreve -55
+KPX F Acircumflex -55
+KPX F Adieresis -55
+KPX F Agrave -55
+KPX F Amacron -55
+KPX F Aogonek -55
+KPX F Aring -55
+KPX F Atilde -55
+KPX F comma -111
+KPX F period -111
+KPX L T -74
+KPX L Tcaron -74
+KPX L Tcommaaccent -74
+KPX L V -92
+KPX L W -92
+KPX L Y -92
+KPX L Yacute -92
+KPX L Ydieresis -92
+KPX L quoteright -74
+KPX L space -18
+KPX L y -74
+KPX L yacute -74
+KPX L ydieresis -74
+KPX Lacute T -74
+KPX Lacute Tcaron -74
+KPX Lacute Tcommaaccent -74
+KPX Lacute V -92
+KPX Lacute W -92
+KPX Lacute Y -92
+KPX Lacute Yacute -92
+KPX Lacute Ydieresis -92
+KPX Lacute quoteright -74
+KPX Lacute space -18
+KPX Lacute y -74
+KPX Lacute yacute -74
+KPX Lacute ydieresis -74
+KPX Lcaron quoteright -74
+KPX Lcaron space -18
+KPX Lcaron y -74
+KPX Lcaron yacute -74
+KPX Lcaron ydieresis -74
+KPX Lcommaaccent T -74
+KPX Lcommaaccent Tcaron -74
+KPX Lcommaaccent Tcommaaccent -74
+KPX Lcommaaccent V -92
+KPX Lcommaaccent W -92
+KPX Lcommaaccent Y -92
+KPX Lcommaaccent Yacute -92
+KPX Lcommaaccent Ydieresis -92
+KPX Lcommaaccent quoteright -74
+KPX Lcommaaccent space -18
+KPX Lcommaaccent y -74
+KPX Lcommaaccent yacute -74
+KPX Lcommaaccent ydieresis -74
+KPX Lslash T -74
+KPX Lslash Tcaron -74
+KPX Lslash Tcommaaccent -74
+KPX Lslash V -92
+KPX Lslash W -92
+KPX Lslash Y -92
+KPX Lslash Yacute -92
+KPX Lslash Ydieresis -92
+KPX Lslash quoteright -74
+KPX Lslash space -18
+KPX Lslash y -74
+KPX Lslash yacute -74
+KPX Lslash ydieresis -74
+KPX P A -74
+KPX P Aacute -74
+KPX P Abreve -74
+KPX P Acircumflex -74
+KPX P Adieresis -74
+KPX P Agrave -74
+KPX P Amacron -74
+KPX P Aogonek -74
+KPX P Aring -74
+KPX P Atilde -74
+KPX P comma -129
+KPX P period -129
+KPX R T -55
+KPX R Tcaron -55
+KPX R Tcommaaccent -55
+KPX R V -74
+KPX R W -37
+KPX R Y -55
+KPX R Yacute -55
+KPX R Ydieresis -55
+KPX R y -30
+KPX R yacute -30
+KPX R ydieresis -30
+KPX Racute T -55
+KPX Racute Tcaron -55
+KPX Racute Tcommaaccent -55
+KPX Racute V -74
+KPX Racute W -37
+KPX Racute Y -55
+KPX Racute Yacute -55
+KPX Racute Ydieresis -55
+KPX Racute y -30
+KPX Racute yacute -30
+KPX Racute ydieresis -30
+KPX Rcaron T -55
+KPX Rcaron Tcaron -55
+KPX Rcaron Tcommaaccent -55
+KPX Rcaron V -74
+KPX Rcaron W -37
+KPX Rcaron Y -55
+KPX Rcaron Yacute -55
+KPX Rcaron Ydieresis -55
+KPX Rcaron y -30
+KPX Rcaron yacute -30
+KPX Rcaron ydieresis -30
+KPX Rcommaaccent T -55
+KPX Rcommaaccent Tcaron -55
+KPX Rcommaaccent Tcommaaccent -55
+KPX Rcommaaccent V -74
+KPX Rcommaaccent W -37
+KPX Rcommaaccent Y -55
+KPX Rcommaaccent Yacute -55
+KPX Rcommaaccent Ydieresis -55
+KPX Rcommaaccent y -30
+KPX Rcommaaccent yacute -30
+KPX Rcommaaccent ydieresis -30
+KPX T A -92
+KPX T Aacute -92
+KPX T Abreve -92
+KPX T Acircumflex -92
+KPX T Adieresis -92
+KPX T Agrave -92
+KPX T Amacron -92
+KPX T Aogonek -92
+KPX T Aring -92
+KPX T Atilde -92
+KPX T a -111
+KPX T aacute -111
+KPX T abreve -71
+KPX T acircumflex -71
+KPX T adieresis -71
+KPX T agrave -71
+KPX T amacron -71
+KPX T aogonek -111
+KPX T aring -111
+KPX T atilde -111
+KPX T c -129
+KPX T cacute -129
+KPX T ccaron -129
+KPX T ccedilla -129
+KPX T colon -74
+KPX T comma -92
+KPX T e -111
+KPX T eacute -111
+KPX T ecaron -111
+KPX T ecircumflex -71
+KPX T edieresis -71
+KPX T edotaccent -111
+KPX T egrave -71
+KPX T emacron -71
+KPX T eogonek -111
+KPX T hyphen -92
+KPX T i -55
+KPX T iacute -55
+KPX T iogonek -55
+KPX T o -111
+KPX T oacute -111
+KPX T ocircumflex -111
+KPX T odieresis -111
+KPX T ograve -111
+KPX T ohungarumlaut -111
+KPX T omacron -111
+KPX T oslash -111
+KPX T otilde -111
+KPX T period -92
+KPX T r -111
+KPX T racute -111
+KPX T rcaron -71
+KPX T rcommaaccent -111
+KPX T s -111
+KPX T sacute -111
+KPX T scaron -71
+KPX T scedilla -111
+KPX T scommaaccent -111
+KPX T semicolon -74
+KPX T u -129
+KPX T uacute -129
+KPX T ucircumflex -129
+KPX T udieresis -129
+KPX T ugrave -129
+KPX T uhungarumlaut -129
+KPX T umacron -129
+KPX T uogonek -129
+KPX T uring -129
+KPX T w -90
+KPX T y -90
+KPX T yacute -90
+KPX T ydieresis -90
+KPX Tcaron A -92
+KPX Tcaron Aacute -92
+KPX Tcaron Abreve -92
+KPX Tcaron Acircumflex -92
+KPX Tcaron Adieresis -92
+KPX Tcaron Agrave -92
+KPX Tcaron Amacron -92
+KPX Tcaron Aogonek -92
+KPX Tcaron Aring -92
+KPX Tcaron Atilde -92
+KPX Tcaron a -111
+KPX Tcaron aacute -111
+KPX Tcaron abreve -71
+KPX Tcaron acircumflex -71
+KPX Tcaron adieresis -71
+KPX Tcaron agrave -71
+KPX Tcaron amacron -71
+KPX Tcaron aogonek -111
+KPX Tcaron aring -111
+KPX Tcaron atilde -111
+KPX Tcaron c -129
+KPX Tcaron cacute -129
+KPX Tcaron ccaron -129
+KPX Tcaron ccedilla -129
+KPX Tcaron colon -74
+KPX Tcaron comma -92
+KPX Tcaron e -111
+KPX Tcaron eacute -111
+KPX Tcaron ecaron -111
+KPX Tcaron ecircumflex -71
+KPX Tcaron edieresis -71
+KPX Tcaron edotaccent -111
+KPX Tcaron egrave -71
+KPX Tcaron emacron -71
+KPX Tcaron eogonek -111
+KPX Tcaron hyphen -92
+KPX Tcaron i -55
+KPX Tcaron iacute -55
+KPX Tcaron iogonek -55
+KPX Tcaron o -111
+KPX Tcaron oacute -111
+KPX Tcaron ocircumflex -111
+KPX Tcaron odieresis -111
+KPX Tcaron ograve -111
+KPX Tcaron ohungarumlaut -111
+KPX Tcaron omacron -111
+KPX Tcaron oslash -111
+KPX Tcaron otilde -111
+KPX Tcaron period -92
+KPX Tcaron r -111
+KPX Tcaron racute -111
+KPX Tcaron rcaron -71
+KPX Tcaron rcommaaccent -111
+KPX Tcaron s -111
+KPX Tcaron sacute -111
+KPX Tcaron scaron -71
+KPX Tcaron scedilla -111
+KPX Tcaron scommaaccent -111
+KPX Tcaron semicolon -74
+KPX Tcaron u -129
+KPX Tcaron uacute -129
+KPX Tcaron ucircumflex -129
+KPX Tcaron udieresis -129
+KPX Tcaron ugrave -129
+KPX Tcaron uhungarumlaut -129
+KPX Tcaron umacron -129
+KPX Tcaron uogonek -129
+KPX Tcaron uring -129
+KPX Tcaron w -90
+KPX Tcaron y -90
+KPX Tcaron yacute -90
+KPX Tcaron ydieresis -90
+KPX Tcommaaccent A -92
+KPX Tcommaaccent Aacute -92
+KPX Tcommaaccent Abreve -92
+KPX Tcommaaccent Acircumflex -92
+KPX Tcommaaccent Adieresis -92
+KPX Tcommaaccent Agrave -92
+KPX Tcommaaccent Amacron -92
+KPX Tcommaaccent Aogonek -92
+KPX Tcommaaccent Aring -92
+KPX Tcommaaccent Atilde -92
+KPX Tcommaaccent a -111
+KPX Tcommaaccent aacute -111
+KPX Tcommaaccent abreve -71
+KPX Tcommaaccent acircumflex -71
+KPX Tcommaaccent adieresis -71
+KPX Tcommaaccent agrave -71
+KPX Tcommaaccent amacron -71
+KPX Tcommaaccent aogonek -111
+KPX Tcommaaccent aring -111
+KPX Tcommaaccent atilde -111
+KPX Tcommaaccent c -129
+KPX Tcommaaccent cacute -129
+KPX Tcommaaccent ccaron -129
+KPX Tcommaaccent ccedilla -129
+KPX Tcommaaccent colon -74
+KPX Tcommaaccent comma -92
+KPX Tcommaaccent e -111
+KPX Tcommaaccent eacute -111
+KPX Tcommaaccent ecaron -111
+KPX Tcommaaccent ecircumflex -71
+KPX Tcommaaccent edieresis -71
+KPX Tcommaaccent edotaccent -111
+KPX Tcommaaccent egrave -71
+KPX Tcommaaccent emacron -71
+KPX Tcommaaccent eogonek -111
+KPX Tcommaaccent hyphen -92
+KPX Tcommaaccent i -55
+KPX Tcommaaccent iacute -55
+KPX Tcommaaccent iogonek -55
+KPX Tcommaaccent o -111
+KPX Tcommaaccent oacute -111
+KPX Tcommaaccent ocircumflex -111
+KPX Tcommaaccent odieresis -111
+KPX Tcommaaccent ograve -111
+KPX Tcommaaccent ohungarumlaut -111
+KPX Tcommaaccent omacron -111
+KPX Tcommaaccent oslash -111
+KPX Tcommaaccent otilde -111
+KPX Tcommaaccent period -92
+KPX Tcommaaccent r -111
+KPX Tcommaaccent racute -111
+KPX Tcommaaccent rcaron -71
+KPX Tcommaaccent rcommaaccent -111
+KPX Tcommaaccent s -111
+KPX Tcommaaccent sacute -111
+KPX Tcommaaccent scaron -71
+KPX Tcommaaccent scedilla -111
+KPX Tcommaaccent scommaaccent -111
+KPX Tcommaaccent semicolon -74
+KPX Tcommaaccent u -129
+KPX Tcommaaccent uacute -129
+KPX Tcommaaccent ucircumflex -129
+KPX Tcommaaccent udieresis -129
+KPX Tcommaaccent ugrave -129
+KPX Tcommaaccent uhungarumlaut -129
+KPX Tcommaaccent umacron -129
+KPX Tcommaaccent uogonek -129
+KPX Tcommaaccent uring -129
+KPX Tcommaaccent w -90
+KPX Tcommaaccent y -90
+KPX Tcommaaccent yacute -90
+KPX Tcommaaccent ydieresis -90
+KPX V A -129
+KPX V Aacute -129
+KPX V Abreve -129
+KPX V Acircumflex -129
+KPX V Adieresis -129
+KPX V Agrave -129
+KPX V Amacron -129
+KPX V Aogonek -129
+KPX V Aring -129
+KPX V Atilde -129
+KPX V a -111
+KPX V aacute -111
+KPX V abreve -71
+KPX V acircumflex -111
+KPX V adieresis -111
+KPX V agrave -111
+KPX V amacron -111
+KPX V aogonek -111
+KPX V aring -111
+KPX V atilde -71
+KPX V colon -74
+KPX V comma -129
+KPX V e -111
+KPX V eacute -111
+KPX V ecaron -111
+KPX V ecircumflex -111
+KPX V edieresis -111
+KPX V edotaccent -111
+KPX V egrave -111
+KPX V emacron -111
+KPX V eogonek -111
+KPX V hyphen -92
+KPX V i -55
+KPX V iacute -55
+KPX V iogonek -55
+KPX V o -111
+KPX V oacute -111
+KPX V ocircumflex -111
+KPX V odieresis -111
+KPX V ograve -111
+KPX V ohungarumlaut -111
+KPX V omacron -111
+KPX V oslash -111
+KPX V otilde -111
+KPX V period -129
+KPX V r -111
+KPX V racute -111
+KPX V rcaron -71
+KPX V rcommaaccent -111
+KPX V semicolon -74
+KPX V u -92
+KPX V uacute -92
+KPX V ucircumflex -92
+KPX V udieresis -92
+KPX V ugrave -92
+KPX V uhungarumlaut -92
+KPX V umacron -92
+KPX V uogonek -92
+KPX V uring -92
+KPX V y -90
+KPX V yacute -90
+KPX V ydieresis -90
+KPX W A -90
+KPX W Aacute -90
+KPX W Abreve -90
+KPX W Acircumflex -90
+KPX W Adieresis -90
+KPX W Agrave -90
+KPX W Amacron -90
+KPX W Aogonek -90
+KPX W Aring -90
+KPX W Atilde -90
+KPX W a -74
+KPX W aacute -74
+KPX W abreve -74
+KPX W acircumflex -74
+KPX W adieresis -74
+KPX W agrave -74
+KPX W amacron -74
+KPX W aogonek -74
+KPX W aring -74
+KPX W atilde -74
+KPX W colon -37
+KPX W comma -92
+KPX W e -74
+KPX W eacute -74
+KPX W ecaron -74
+KPX W ecircumflex -74
+KPX W edieresis -74
+KPX W edotaccent -74
+KPX W egrave -74
+KPX W emacron -74
+KPX W eogonek -74
+KPX W hyphen -37
+KPX W i -37
+KPX W iacute -37
+KPX W iogonek -37
+KPX W o -74
+KPX W oacute -74
+KPX W ocircumflex -74
+KPX W odieresis -74
+KPX W ograve -74
+KPX W ohungarumlaut -74
+KPX W omacron -74
+KPX W oslash -74
+KPX W otilde -74
+KPX W period -37
+KPX W r -74
+KPX W racute -74
+KPX W rcaron -74
+KPX W rcommaaccent -74
+KPX W semicolon -37
+KPX W u -74
+KPX W uacute -74
+KPX W ucircumflex -74
+KPX W udieresis -74
+KPX W ugrave -74
+KPX W uhungarumlaut -74
+KPX W umacron -74
+KPX W uogonek -74
+KPX W uring -74
+KPX W y -74
+KPX W yacute -74
+KPX W ydieresis -74
+KPX Y A -55
+KPX Y Aacute -55
+KPX Y Abreve -55
+KPX Y Acircumflex -55
+KPX Y Adieresis -55
+KPX Y Agrave -55
+KPX Y Amacron -55
+KPX Y Aogonek -55
+KPX Y Aring -55
+KPX Y Atilde -55
+KPX Y a -74
+KPX Y aacute -74
+KPX Y abreve -74
+KPX Y acircumflex -74
+KPX Y adieresis -74
+KPX Y agrave -74
+KPX Y amacron -74
+KPX Y aogonek -74
+KPX Y aring -74
+KPX Y atilde -74
+KPX Y colon -55
+KPX Y comma -74
+KPX Y e -74
+KPX Y eacute -74
+KPX Y ecaron -74
+KPX Y ecircumflex -74
+KPX Y edieresis -74
+KPX Y edotaccent -74
+KPX Y egrave -74
+KPX Y emacron -74
+KPX Y eogonek -74
+KPX Y hyphen -74
+KPX Y i -55
+KPX Y iacute -55
+KPX Y iogonek -55
+KPX Y o -74
+KPX Y oacute -74
+KPX Y ocircumflex -74
+KPX Y odieresis -74
+KPX Y ograve -74
+KPX Y ohungarumlaut -74
+KPX Y omacron -74
+KPX Y oslash -74
+KPX Y otilde -74
+KPX Y p -74
+KPX Y period -74
+KPX Y q -92
+KPX Y semicolon -55
+KPX Y u -74
+KPX Y uacute -74
+KPX Y ucircumflex -74
+KPX Y udieresis -74
+KPX Y ugrave -74
+KPX Y uhungarumlaut -74
+KPX Y umacron -74
+KPX Y uogonek -74
+KPX Y uring -74
+KPX Y v -74
+KPX Yacute A -55
+KPX Yacute Aacute -55
+KPX Yacute Abreve -55
+KPX Yacute Acircumflex -55
+KPX Yacute Adieresis -55
+KPX Yacute Agrave -55
+KPX Yacute Amacron -55
+KPX Yacute Aogonek -55
+KPX Yacute Aring -55
+KPX Yacute Atilde -55
+KPX Yacute a -74
+KPX Yacute aacute -74
+KPX Yacute abreve -74
+KPX Yacute acircumflex -74
+KPX Yacute adieresis -74
+KPX Yacute agrave -74
+KPX Yacute amacron -74
+KPX Yacute aogonek -74
+KPX Yacute aring -74
+KPX Yacute atilde -74
+KPX Yacute colon -55
+KPX Yacute comma -74
+KPX Yacute e -74
+KPX Yacute eacute -74
+KPX Yacute ecaron -74
+KPX Yacute ecircumflex -74
+KPX Yacute edieresis -74
+KPX Yacute edotaccent -74
+KPX Yacute egrave -74
+KPX Yacute emacron -74
+KPX Yacute eogonek -74
+KPX Yacute hyphen -74
+KPX Yacute i -55
+KPX Yacute iacute -55
+KPX Yacute iogonek -55
+KPX Yacute o -74
+KPX Yacute oacute -74
+KPX Yacute ocircumflex -74
+KPX Yacute odieresis -74
+KPX Yacute ograve -74
+KPX Yacute ohungarumlaut -74
+KPX Yacute omacron -74
+KPX Yacute oslash -74
+KPX Yacute otilde -74
+KPX Yacute p -74
+KPX Yacute period -74
+KPX Yacute q -92
+KPX Yacute semicolon -55
+KPX Yacute u -74
+KPX Yacute uacute -74
+KPX Yacute ucircumflex -74
+KPX Yacute udieresis -74
+KPX Yacute ugrave -74
+KPX Yacute uhungarumlaut -74
+KPX Yacute umacron -74
+KPX Yacute uogonek -74
+KPX Yacute uring -74
+KPX Yacute v -74
+KPX Ydieresis A -55
+KPX Ydieresis Aacute -55
+KPX Ydieresis Abreve -55
+KPX Ydieresis Acircumflex -55
+KPX Ydieresis Adieresis -55
+KPX Ydieresis Agrave -55
+KPX Ydieresis Amacron -55
+KPX Ydieresis Aogonek -55
+KPX Ydieresis Aring -55
+KPX Ydieresis Atilde -55
+KPX Ydieresis a -74
+KPX Ydieresis aacute -74
+KPX Ydieresis abreve -74
+KPX Ydieresis acircumflex -74
+KPX Ydieresis adieresis -74
+KPX Ydieresis agrave -74
+KPX Ydieresis amacron -74
+KPX Ydieresis aogonek -74
+KPX Ydieresis aring -74
+KPX Ydieresis atilde -74
+KPX Ydieresis colon -55
+KPX Ydieresis comma -74
+KPX Ydieresis e -74
+KPX Ydieresis eacute -74
+KPX Ydieresis ecaron -74
+KPX Ydieresis ecircumflex -74
+KPX Ydieresis edieresis -74
+KPX Ydieresis edotaccent -74
+KPX Ydieresis egrave -74
+KPX Ydieresis emacron -74
+KPX Ydieresis eogonek -74
+KPX Ydieresis hyphen -74
+KPX Ydieresis i -55
+KPX Ydieresis iacute -55
+KPX Ydieresis iogonek -55
+KPX Ydieresis o -74
+KPX Ydieresis oacute -74
+KPX Ydieresis ocircumflex -74
+KPX Ydieresis odieresis -74
+KPX Ydieresis ograve -74
+KPX Ydieresis ohungarumlaut -74
+KPX Ydieresis omacron -74
+KPX Ydieresis oslash -74
+KPX Ydieresis otilde -74
+KPX Ydieresis p -74
+KPX Ydieresis period -74
+KPX Ydieresis q -92
+KPX Ydieresis semicolon -55
+KPX Ydieresis u -74
+KPX Ydieresis uacute -74
+KPX Ydieresis ucircumflex -74
+KPX Ydieresis udieresis -74
+KPX Ydieresis ugrave -74
+KPX Ydieresis uhungarumlaut -74
+KPX Ydieresis umacron -74
+KPX Ydieresis uogonek -74
+KPX Ydieresis uring -74
+KPX Ydieresis v -74
+KPX f f -18
+KPX f quoteright 37
+KPX one one -37
+KPX quoteleft quoteleft -55
+KPX quoteright quoteright -55
+KPX quoteright s -55
+KPX quoteright sacute -55
+KPX quoteright scaron -55
+KPX quoteright scedilla -55
+KPX quoteright scommaaccent -55
+KPX quoteright space -55
+KPX quoteright t -18
+KPX quoteright tcommaaccent -18
+KPX r comma -55
+KPX r hyphen -18
+KPX r period -55
+KPX r quoteright 55
+KPX racute comma -55
+KPX racute hyphen -18
+KPX racute period -55
+KPX racute quoteright 55
+KPX rcaron comma -55
+KPX rcaron hyphen -18
+KPX rcaron period -55
+KPX rcaron quoteright 55
+KPX rcommaaccent comma -55
+KPX rcommaaccent hyphen -18
+KPX rcommaaccent period -55
+KPX rcommaaccent quoteright 55
+KPX v comma -111
+KPX v period -111
+KPX w comma -92
+KPX w period -92
+KPX y comma -92
+KPX y period -92
+KPX yacute comma -92
+KPX yacute period -92
+KPX ydieresis comma -92
+KPX ydieresis period -92
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Palatino-BoldItalic.afm b/test/user-template/user/psprint/fontmetric/Palatino-BoldItalic.afm
new file mode 100644
index 000000000000..b52e44fcec21
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Palatino-BoldItalic.afm
@@ -0,0 +1,1316 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 13:37:00 1997
+Comment UniqueID 43076
+Comment VMusage 51697 66722
+FontName Palatino-BoldItalic
+FullName Palatino Bold Italic
+FamilyName Palatino
+Weight Bold
+ItalicAngle -10
+IsFixedPitch false
+FontBBox -170 -271 1073 926
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 681
+XHeight 469
+Ascender 726
+Descender -281
+StdHW 55
+StdVW 122
+StartCharMetrics 314
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 58 -17 322 695 ;
+C 34 ; WX 500 ; N quotedbl ; B 137 467 493 720 ;
+C 35 ; WX 500 ; N numbersign ; B 4 0 496 673 ;
+C 36 ; WX 500 ; N dollar ; B 20 -108 477 737 ;
+C 37 ; WX 889 ; N percent ; B 56 -17 790 697 ;
+C 38 ; WX 833 ; N ampersand ; B 74 -17 811 695 ;
+C 39 ; WX 278 ; N quoteright ; B 76 431 302 720 ;
+C 40 ; WX 333 ; N parenleft ; B 58 -129 368 723 ;
+C 41 ; WX 333 ; N parenright ; B -12 -129 298 723 ;
+C 42 ; WX 444 ; N asterisk ; B 84 332 439 695 ;
+C 43 ; WX 606 ; N plus ; B 50 -5 556 501 ;
+C 44 ; WX 250 ; N comma ; B -33 -164 208 147 ;
+C 45 ; WX 389 ; N hyphen ; B 37 198 362 300 ;
+C 46 ; WX 250 ; N period ; B 48 -17 187 135 ;
+C 47 ; WX 315 ; N slash ; B 1 -17 315 720 ;
+C 48 ; WX 500 ; N zero ; B 42 -17 490 683 ;
+C 49 ; WX 500 ; N one ; B 41 -3 434 678 ;
+C 50 ; WX 500 ; N two ; B 1 -3 454 683 ;
+C 51 ; WX 500 ; N three ; B 8 -17 450 683 ;
+C 52 ; WX 500 ; N four ; B 3 -3 487 683 ;
+C 53 ; WX 500 ; N five ; B 14 -17 481 675 ;
+C 54 ; WX 500 ; N six ; B 39 -17 488 683 ;
+C 55 ; WX 500 ; N seven ; B 69 -3 544 674 ;
+C 56 ; WX 500 ; N eight ; B 26 -17 484 683 ;
+C 57 ; WX 500 ; N nine ; B 27 -17 491 683 ;
+C 58 ; WX 250 ; N colon ; B 38 -17 236 452 ;
+C 59 ; WX 250 ; N semicolon ; B -33 -164 247 452 ;
+C 60 ; WX 606 ; N less ; B 49 -21 558 517 ;
+C 61 ; WX 606 ; N equal ; B 51 106 555 390 ;
+C 62 ; WX 606 ; N greater ; B 48 -21 557 517 ;
+C 63 ; WX 444 ; N question ; B 91 -17 450 695 ;
+C 64 ; WX 833 ; N at ; B 82 -12 744 681 ;
+C 65 ; WX 722 ; N A ; B -35 -3 685 683 ;
+C 66 ; WX 667 ; N B ; B 8 -3 629 681 ;
+C 67 ; WX 685 ; N C ; B 69 -17 695 695 ;
+C 68 ; WX 778 ; N D ; B 0 -3 747 682 ;
+C 69 ; WX 611 ; N E ; B 11 -3 606 681 ;
+C 70 ; WX 556 ; N F ; B -6 -3 593 681 ;
+C 71 ; WX 778 ; N G ; B 72 -17 750 695 ;
+C 72 ; WX 778 ; N H ; B -12 -3 826 681 ;
+C 73 ; WX 389 ; N I ; B -1 -3 412 681 ;
+C 74 ; WX 389 ; N J ; B -29 -207 417 681 ;
+C 75 ; WX 722 ; N K ; B -10 -3 746 681 ;
+C 76 ; WX 611 ; N L ; B 26 -3 578 681 ;
+C 77 ; WX 944 ; N M ; B -23 -17 985 681 ;
+C 78 ; WX 778 ; N N ; B -2 -3 829 681 ;
+C 79 ; WX 833 ; N O ; B 76 -17 794 695 ;
+C 80 ; WX 667 ; N P ; B 11 -3 673 681 ;
+C 81 ; WX 833 ; N Q ; B 76 -222 794 695 ;
+C 82 ; WX 722 ; N R ; B 4 -3 697 681 ;
+C 83 ; WX 556 ; N S ; B 50 -17 517 695 ;
+C 84 ; WX 611 ; N T ; B 56 -3 674 681 ;
+C 85 ; WX 778 ; N U ; B 83 -17 825 681 ;
+C 86 ; WX 667 ; N V ; B 67 -3 745 681 ;
+C 87 ; WX 1000 ; N W ; B 67 -3 1073 689 ;
+C 88 ; WX 722 ; N X ; B -9 -3 772 681 ;
+C 89 ; WX 611 ; N Y ; B 54 -3 675 695 ;
+C 90 ; WX 667 ; N Z ; B 1 -3 676 681 ;
+C 91 ; WX 333 ; N bracketleft ; B 45 -102 381 723 ;
+C 92 ; WX 606 ; N backslash ; B 72 0 534 720 ;
+C 93 ; WX 333 ; N bracketright ; B -21 -102 315 723 ;
+C 94 ; WX 606 ; N asciicircum ; B 63 275 543 678 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 278 ; N quoteleft ; B 65 431 291 720 ;
+C 97 ; WX 556 ; N a ; B 44 -17 519 470 ;
+C 98 ; WX 537 ; N b ; B 44 -17 494 726 ;
+C 99 ; WX 444 ; N c ; B 32 -17 436 469 ;
+C 100 ; WX 556 ; N d ; B 38 -17 550 726 ;
+C 101 ; WX 444 ; N e ; B 28 -17 418 469 ;
+C 102 ; WX 333 ; N f ; B -130 -271 449 726 ; L i fi ; L l fl ;
+C 103 ; WX 500 ; N g ; B -50 -271 529 469 ;
+C 104 ; WX 556 ; N h ; B 22 -17 522 726 ;
+C 105 ; WX 333 ; N i ; B 26 -17 312 695 ;
+C 106 ; WX 333 ; N j ; B -64 -271 323 695 ;
+C 107 ; WX 556 ; N k ; B 34 -17 528 726 ;
+C 108 ; WX 333 ; N l ; B 64 -17 318 726 ;
+C 109 ; WX 833 ; N m ; B 19 -17 803 469 ;
+C 110 ; WX 556 ; N n ; B 17 -17 521 469 ;
+C 111 ; WX 556 ; N o ; B 48 -17 502 469 ;
+C 112 ; WX 556 ; N p ; B -21 -271 516 469 ;
+C 113 ; WX 537 ; N q ; B 32 -271 513 469 ;
+C 114 ; WX 389 ; N r ; B 20 -17 411 469 ;
+C 115 ; WX 444 ; N s ; B 25 -17 406 469 ;
+C 116 ; WX 389 ; N t ; B 42 -17 409 636 ;
+C 117 ; WX 556 ; N u ; B 22 -17 521 469 ;
+C 118 ; WX 556 ; N v ; B 19 -17 513 469 ;
+C 119 ; WX 833 ; N w ; B 27 -17 802 469 ;
+C 120 ; WX 500 ; N x ; B -8 -17 500 469 ;
+C 121 ; WX 556 ; N y ; B 13 -271 541 469 ;
+C 122 ; WX 500 ; N z ; B 31 -17 470 469 ;
+C 123 ; WX 333 ; N braceleft ; B 18 -105 334 720 ;
+C 124 ; WX 606 ; N bar ; B 259 -250 347 750 ;
+C 125 ; WX 333 ; N braceright ; B -1 -105 315 720 ;
+C 126 ; WX 606 ; N asciitilde ; B 51 151 555 346 ;
+C 161 ; WX 333 ; N exclamdown ; B 2 -225 259 479 ;
+C 162 ; WX 500 ; N cent ; B 52 -105 456 547 ;
+C 163 ; WX 500 ; N sterling ; B 21 -5 501 683 ;
+C 164 ; WX 167 ; N fraction ; B -170 0 338 683 ;
+C 165 ; WX 500 ; N yen ; B 11 -3 538 695 ;
+C 166 ; WX 500 ; N florin ; B 8 -242 479 690 ;
+C 167 ; WX 556 ; N section ; B 47 -151 497 695 ;
+C 168 ; WX 500 ; N currency ; B 32 96 468 533 ;
+C 169 ; WX 250 ; N quotesingle ; B 127 467 293 720 ;
+C 170 ; WX 500 ; N quotedblleft ; B 65 431 511 720 ;
+C 171 ; WX 500 ; N guillemotleft ; B 35 43 458 446 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 60 43 292 446 ;
+C 173 ; WX 333 ; N guilsinglright ; B 35 40 267 443 ;
+C 174 ; WX 611 ; N fi ; B -130 -271 588 726 ;
+C 175 ; WX 611 ; N fl ; B -130 -271 631 726 ;
+C 177 ; WX 500 ; N endash ; B -12 214 512 282 ;
+C 178 ; WX 556 ; N dagger ; B 67 -3 499 685 ;
+C 179 ; WX 556 ; N daggerdbl ; B 33 -153 537 693 ;
+C 180 ; WX 250 ; N periodcentered ; B 67 172 206 324 ;
+C 182 ; WX 556 ; N paragraph ; B 14 -204 629 681 ;
+C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ;
+C 184 ; WX 250 ; N quotesinglbase ; B -3 -144 220 145 ;
+C 185 ; WX 500 ; N quotedblbase ; B -18 -144 424 145 ;
+C 186 ; WX 500 ; N quotedblright ; B 73 431 519 720 ;
+C 187 ; WX 500 ; N guillemotright ; B 35 40 458 443 ;
+C 188 ; WX 1000 ; N ellipsis ; B 91 -17 896 135 ;
+C 189 ; WX 1000 ; N perthousand ; B 65 -17 912 691 ;
+C 191 ; WX 444 ; N questiondown ; B -12 -226 347 479 ;
+C 193 ; WX 333 ; N grave ; B 110 518 322 699 ;
+C 194 ; WX 333 ; N acute ; B 153 518 392 699 ;
+C 195 ; WX 333 ; N circumflex ; B 88 518 415 692 ;
+C 196 ; WX 333 ; N tilde ; B 82 537 441 656 ;
+C 197 ; WX 333 ; N macron ; B 76 538 418 608 ;
+C 198 ; WX 333 ; N breve ; B 96 518 412 680 ;
+C 199 ; WX 333 ; N dotaccent ; B 202 564 325 695 ;
+C 200 ; WX 333 ; N dieresis ; B 90 564 426 695 ;
+C 202 ; WX 556 ; N ring ; B 277 514 477 714 ;
+C 203 ; WX 333 ; N cedilla ; B 12 -218 248 5 ;
+C 205 ; WX 333 ; N hungarumlaut ; B -28 518 409 699 ;
+C 206 ; WX 333 ; N ogonek ; B 76 -226 260 -18 ;
+C 207 ; WX 333 ; N caron ; B 113 518 445 692 ;
+C 208 ; WX 1000 ; N emdash ; B -12 214 1012 282 ;
+C 225 ; WX 944 ; N AE ; B -29 -3 927 681 ;
+C 227 ; WX 333 ; N ordfeminine ; B 47 391 355 684 ;
+C 232 ; WX 611 ; N Lslash ; B 6 -3 578 681 ;
+C 233 ; WX 833 ; N Oslash ; B 57 -54 797 730 ;
+C 234 ; WX 944 ; N OE ; B 39 -17 961 695 ;
+C 235 ; WX 333 ; N ordmasculine ; B 51 391 346 683 ;
+C 241 ; WX 738 ; N ae ; B 44 -17 711 469 ;
+C 245 ; WX 333 ; N dotlessi ; B 26 -17 293 469 ;
+C 248 ; WX 333 ; N lslash ; B 13 -17 365 726 ;
+C 249 ; WX 556 ; N oslash ; B 14 -50 522 506 ;
+C 250 ; WX 778 ; N oe ; B 48 -17 755 469 ;
+C 251 ; WX 556 ; N germandbls ; B -131 -271 549 726 ;
+C -1 ; WX 389 ; N Idieresis ; B -1 -3 454 880 ;
+C -1 ; WX 444 ; N eacute ; B 28 -17 448 719 ;
+C -1 ; WX 556 ; N abreve ; B 44 -17 524 700 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 22 -17 621 719 ;
+C -1 ; WX 444 ; N ecaron ; B 28 -17 501 712 ;
+C -1 ; WX 611 ; N Ydieresis ; B 54 -3 675 880 ;
+C -1 ; WX 606 ; N divide ; B 50 -5 556 501 ;
+C -1 ; WX 611 ; N Yacute ; B 54 -3 675 911 ;
+C -1 ; WX 722 ; N Acircumflex ; B -35 -3 685 904 ;
+C -1 ; WX 556 ; N aacute ; B 44 -17 519 719 ;
+C -1 ; WX 778 ; N Ucircumflex ; B 83 -17 825 904 ;
+C -1 ; WX 556 ; N yacute ; B 13 -271 541 719 ;
+C -1 ; WX 444 ; N scommaaccent ; B 25 -271 406 469 ;
+C -1 ; WX 444 ; N ecircumflex ; B 28 -17 471 712 ;
+C -1 ; WX 778 ; N Uring ; B 83 -17 825 926 ;
+C -1 ; WX 778 ; N Udieresis ; B 83 -17 825 880 ;
+C -1 ; WX 556 ; N aogonek ; B 44 -216 519 470 ;
+C -1 ; WX 778 ; N Uacute ; B 83 -17 825 911 ;
+C -1 ; WX 556 ; N uogonek ; B 22 -210 521 469 ;
+C -1 ; WX 611 ; N Edieresis ; B 11 -3 606 880 ;
+C -1 ; WX 778 ; N Dcroat ; B 0 -3 747 682 ;
+C -1 ; WX 250 ; N commaaccent ; B -52 -271 102 -50 ;
+C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ;
+C -1 ; WX 611 ; N Emacron ; B 11 -3 606 820 ;
+C -1 ; WX 444 ; N ccaron ; B 32 -17 501 712 ;
+C -1 ; WX 556 ; N aring ; B 44 -17 519 734 ;
+C -1 ; WX 778 ; N Ncommaaccent ; B -2 -271 829 681 ;
+C -1 ; WX 333 ; N lacute ; B 64 -17 392 896 ;
+C -1 ; WX 556 ; N agrave ; B 44 -17 519 719 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 56 -271 674 681 ;
+C -1 ; WX 685 ; N Cacute ; B 69 -17 695 911 ;
+C -1 ; WX 556 ; N atilde ; B 44 -17 553 676 ;
+C -1 ; WX 611 ; N Edotaccent ; B 11 -3 606 880 ;
+C -1 ; WX 444 ; N scaron ; B 25 -17 489 712 ;
+C -1 ; WX 444 ; N scedilla ; B 25 -218 406 469 ;
+C -1 ; WX 333 ; N iacute ; B 26 -17 392 719 ;
+C -1 ; WX 471 ; N lozenge ; B 7 0 465 732 ;
+C -1 ; WX 722 ; N Rcaron ; B 4 -3 697 904 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 72 -271 750 695 ;
+C -1 ; WX 556 ; N ucircumflex ; B 22 -17 521 712 ;
+C -1 ; WX 556 ; N acircumflex ; B 44 -17 527 712 ;
+C -1 ; WX 722 ; N Amacron ; B -35 -3 685 820 ;
+C -1 ; WX 389 ; N rcaron ; B 20 -17 473 712 ;
+C -1 ; WX 444 ; N ccedilla ; B 27 -218 436 469 ;
+C -1 ; WX 667 ; N Zdotaccent ; B 1 -3 676 880 ;
+C -1 ; WX 667 ; N Thorn ; B 11 -3 644 681 ;
+C -1 ; WX 833 ; N Omacron ; B 76 -17 794 820 ;
+C -1 ; WX 722 ; N Racute ; B 4 -3 697 911 ;
+C -1 ; WX 556 ; N Sacute ; B 50 -17 517 911 ;
+C -1 ; WX 616 ; N dcaron ; B 38 -17 720 726 ;
+C -1 ; WX 778 ; N Umacron ; B 83 -17 825 820 ;
+C -1 ; WX 556 ; N uring ; B 22 -17 521 734 ;
+C -1 ; WX 300 ; N threesuperior ; B 23 263 310 683 ;
+C -1 ; WX 833 ; N Ograve ; B 76 -17 794 911 ;
+C -1 ; WX 722 ; N Agrave ; B -35 -3 685 911 ;
+C -1 ; WX 722 ; N Abreve ; B -35 -3 685 892 ;
+C -1 ; WX 606 ; N multiply ; B 72 17 534 479 ;
+C -1 ; WX 556 ; N uacute ; B 22 -17 521 719 ;
+C -1 ; WX 611 ; N Tcaron ; B 56 -3 674 904 ;
+C -1 ; WX 476 ; N partialdiff ; B 9 -38 467 718 ;
+C -1 ; WX 556 ; N ydieresis ; B 13 -271 541 668 ;
+C -1 ; WX 778 ; N Nacute ; B -2 -3 829 911 ;
+C -1 ; WX 333 ; N icircumflex ; B 26 -17 403 712 ;
+C -1 ; WX 611 ; N Ecircumflex ; B 11 -3 606 904 ;
+C -1 ; WX 556 ; N adieresis ; B 44 -17 538 688 ;
+C -1 ; WX 444 ; N edieresis ; B 28 -17 482 668 ;
+C -1 ; WX 444 ; N cacute ; B 32 -17 448 719 ;
+C -1 ; WX 556 ; N nacute ; B 17 -17 521 719 ;
+C -1 ; WX 556 ; N umacron ; B 22 -17 530 628 ;
+C -1 ; WX 778 ; N Ncaron ; B -2 -3 829 922 ;
+C -1 ; WX 389 ; N Iacute ; B -1 -3 420 911 ;
+C -1 ; WX 606 ; N plusminus ; B 50 0 556 501 ;
+C -1 ; WX 606 ; N brokenbar ; B 259 -175 347 675 ;
+C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ;
+C -1 ; WX 778 ; N Gbreve ; B 72 -17 750 892 ;
+C -1 ; WX 389 ; N Idotaccent ; B -1 -3 412 880 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 611 ; N Egrave ; B 11 -3 606 911 ;
+C -1 ; WX 389 ; N racute ; B 20 -17 460 719 ;
+C -1 ; WX 556 ; N omacron ; B 48 -17 530 628 ;
+C -1 ; WX 667 ; N Zacute ; B 1 -3 676 911 ;
+C -1 ; WX 667 ; N Zcaron ; B 1 -3 676 904 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 682 ;
+C -1 ; WX 778 ; N Eth ; B 0 -3 747 682 ;
+C -1 ; WX 685 ; N Ccedilla ; B 69 -218 695 695 ;
+C -1 ; WX 333 ; N lcommaaccent ; B 10 -271 318 726 ;
+C -1 ; WX 389 ; N tcaron ; B 42 -17 507 767 ;
+C -1 ; WX 444 ; N eogonek ; B 28 -216 418 469 ;
+C -1 ; WX 778 ; N Uogonek ; B 83 -210 825 681 ;
+C -1 ; WX 722 ; N Aacute ; B -35 -3 685 911 ;
+C -1 ; WX 722 ; N Adieresis ; B -35 -3 685 880 ;
+C -1 ; WX 444 ; N egrave ; B 28 -17 418 719 ;
+C -1 ; WX 500 ; N zacute ; B 31 -17 476 719 ;
+C -1 ; WX 333 ; N iogonek ; B 26 -214 312 695 ;
+C -1 ; WX 833 ; N Oacute ; B 76 -17 794 911 ;
+C -1 ; WX 556 ; N oacute ; B 48 -17 504 719 ;
+C -1 ; WX 556 ; N amacron ; B 44 -17 530 628 ;
+C -1 ; WX 444 ; N sacute ; B 25 -17 448 719 ;
+C -1 ; WX 333 ; N idieresis ; B 26 -17 426 668 ;
+C -1 ; WX 833 ; N Ocircumflex ; B 76 -17 794 904 ;
+C -1 ; WX 778 ; N Ugrave ; B 83 -17 825 911 ;
+C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 556 ; N thorn ; B -21 -271 516 726 ;
+C -1 ; WX 300 ; N twosuperior ; B 26 271 321 683 ;
+C -1 ; WX 833 ; N Odieresis ; B 76 -17 794 880 ;
+C -1 ; WX 556 ; N mu ; B -15 -232 521 469 ;
+C -1 ; WX 333 ; N igrave ; B 26 -17 322 719 ;
+C -1 ; WX 556 ; N ohungarumlaut ; B 48 -17 631 719 ;
+C -1 ; WX 611 ; N Eogonek ; B 11 -207 606 681 ;
+C -1 ; WX 556 ; N dcroat ; B 38 -17 604 726 ;
+C -1 ; WX 750 ; N threequarters ; B 18 -2 732 683 ;
+C -1 ; WX 556 ; N Scedilla ; B 50 -218 517 695 ;
+C -1 ; WX 383 ; N lcaron ; B 64 -17 488 726 ;
+C -1 ; WX 722 ; N Kcommaaccent ; B -10 -271 746 681 ;
+C -1 ; WX 611 ; N Lacute ; B 26 -3 578 911 ;
+C -1 ; WX 1000 ; N trademark ; B 38 274 961 678 ;
+C -1 ; WX 444 ; N edotaccent ; B 28 -17 418 668 ;
+C -1 ; WX 389 ; N Igrave ; B -1 -3 412 911 ;
+C -1 ; WX 389 ; N Imacron ; B -1 -3 446 820 ;
+C -1 ; WX 611 ; N Lcaron ; B 26 -3 623 695 ;
+C -1 ; WX 750 ; N onehalf ; B 14 -2 736 683 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 682 ;
+C -1 ; WX 556 ; N ocircumflex ; B 48 -17 527 712 ;
+C -1 ; WX 556 ; N ntilde ; B 17 -17 553 676 ;
+C -1 ; WX 778 ; N Uhungarumlaut ; B 83 -17 825 911 ;
+C -1 ; WX 611 ; N Eacute ; B 11 -3 606 911 ;
+C -1 ; WX 444 ; N emacron ; B 28 -17 474 628 ;
+C -1 ; WX 500 ; N gbreve ; B -50 -271 529 700 ;
+C -1 ; WX 750 ; N onequarter ; B 18 -2 732 683 ;
+C -1 ; WX 556 ; N Scaron ; B 50 -17 557 904 ;
+C -1 ; WX 556 ; N Scommaaccent ; B 50 -271 517 695 ;
+C -1 ; WX 833 ; N Ohungarumlaut ; B 76 -17 794 911 ;
+C -1 ; WX 400 ; N degree ; B 50 383 350 683 ;
+C -1 ; WX 556 ; N ograve ; B 48 -17 502 719 ;
+C -1 ; WX 685 ; N Ccaron ; B 69 -17 695 904 ;
+C -1 ; WX 556 ; N ugrave ; B 22 -17 521 719 ;
+C -1 ; WX 453 ; N radical ; B -9 -91 463 765 ;
+C -1 ; WX 778 ; N Dcaron ; B 0 -3 747 904 ;
+C -1 ; WX 389 ; N rcommaaccent ; B -22 -271 411 469 ;
+C -1 ; WX 778 ; N Ntilde ; B -2 -3 829 868 ;
+C -1 ; WX 556 ; N otilde ; B 48 -17 553 676 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 4 -271 697 681 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B 26 -271 578 681 ;
+C -1 ; WX 722 ; N Atilde ; B -35 -3 685 868 ;
+C -1 ; WX 722 ; N Aogonek ; B -35 -210 696 683 ;
+C -1 ; WX 722 ; N Aring ; B -35 -3 685 926 ;
+C -1 ; WX 833 ; N Otilde ; B 76 -17 794 868 ;
+C -1 ; WX 500 ; N zdotaccent ; B 31 -17 470 668 ;
+C -1 ; WX 611 ; N Ecaron ; B 11 -3 606 904 ;
+C -1 ; WX 389 ; N Iogonek ; B -1 -210 412 681 ;
+C -1 ; WX 556 ; N kcommaaccent ; B 34 -271 528 726 ;
+C -1 ; WX 606 ; N minus ; B 51 204 555 292 ;
+C -1 ; WX 389 ; N Icircumflex ; B -1 -3 443 904 ;
+C -1 ; WX 556 ; N ncaron ; B 17 -17 557 712 ;
+C -1 ; WX 389 ; N tcommaaccent ; B 18 -271 409 636 ;
+C -1 ; WX 606 ; N logicalnot ; B 51 107 555 390 ;
+C -1 ; WX 556 ; N odieresis ; B 48 -17 538 668 ;
+C -1 ; WX 556 ; N udieresis ; B 22 -17 538 668 ;
+C -1 ; WX 549 ; N notequal ; B 12 -40 537 554 ;
+C -1 ; WX 500 ; N gcommaaccent ; B -50 -271 529 719 ;
+C -1 ; WX 556 ; N eth ; B 48 -17 546 726 ;
+C -1 ; WX 500 ; N zcaron ; B 31 -17 517 712 ;
+C -1 ; WX 556 ; N ncommaaccent ; B 17 -271 521 469 ;
+C -1 ; WX 300 ; N onesuperior ; B 41 271 298 680 ;
+C -1 ; WX 333 ; N imacron ; B 26 -17 375 608 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 972
+KPX A T -55
+KPX A Tcaron -55
+KPX A Tcommaaccent -55
+KPX A V -74
+KPX A W -74
+KPX A Y -74
+KPX A Yacute -74
+KPX A Ydieresis -74
+KPX A quoteright -55
+KPX A space -55
+KPX A v -55
+KPX A w -37
+KPX A y -55
+KPX A yacute -55
+KPX A ydieresis -55
+KPX Aacute T -55
+KPX Aacute Tcaron -55
+KPX Aacute Tcommaaccent -55
+KPX Aacute V -74
+KPX Aacute W -74
+KPX Aacute Y -74
+KPX Aacute Yacute -74
+KPX Aacute Ydieresis -74
+KPX Aacute quoteright -55
+KPX Aacute space -55
+KPX Aacute v -55
+KPX Aacute w -37
+KPX Aacute y -55
+KPX Aacute yacute -55
+KPX Aacute ydieresis -55
+KPX Abreve T -55
+KPX Abreve Tcaron -55
+KPX Abreve Tcommaaccent -55
+KPX Abreve V -74
+KPX Abreve W -74
+KPX Abreve Y -74
+KPX Abreve Yacute -74
+KPX Abreve Ydieresis -74
+KPX Abreve quoteright -55
+KPX Abreve space -55
+KPX Abreve v -55
+KPX Abreve w -37
+KPX Abreve y -55
+KPX Abreve yacute -55
+KPX Abreve ydieresis -55
+KPX Acircumflex T -55
+KPX Acircumflex Tcaron -55
+KPX Acircumflex Tcommaaccent -55
+KPX Acircumflex V -74
+KPX Acircumflex W -74
+KPX Acircumflex Y -74
+KPX Acircumflex Yacute -74
+KPX Acircumflex Ydieresis -74
+KPX Acircumflex quoteright -55
+KPX Acircumflex space -55
+KPX Acircumflex v -55
+KPX Acircumflex w -37
+KPX Acircumflex y -55
+KPX Acircumflex yacute -55
+KPX Acircumflex ydieresis -55
+KPX Adieresis T -55
+KPX Adieresis Tcaron -55
+KPX Adieresis Tcommaaccent -55
+KPX Adieresis V -74
+KPX Adieresis W -74
+KPX Adieresis Y -74
+KPX Adieresis Yacute -74
+KPX Adieresis Ydieresis -74
+KPX Adieresis quoteright -55
+KPX Adieresis space -55
+KPX Adieresis v -55
+KPX Adieresis w -37
+KPX Adieresis y -55
+KPX Adieresis yacute -55
+KPX Adieresis ydieresis -55
+KPX Agrave T -55
+KPX Agrave Tcaron -55
+KPX Agrave Tcommaaccent -55
+KPX Agrave V -74
+KPX Agrave W -74
+KPX Agrave Y -74
+KPX Agrave Yacute -74
+KPX Agrave Ydieresis -74
+KPX Agrave quoteright -55
+KPX Agrave space -55
+KPX Agrave v -55
+KPX Agrave w -37
+KPX Agrave y -55
+KPX Agrave yacute -55
+KPX Agrave ydieresis -55
+KPX Amacron T -55
+KPX Amacron Tcaron -55
+KPX Amacron Tcommaaccent -55
+KPX Amacron V -74
+KPX Amacron W -74
+KPX Amacron Y -74
+KPX Amacron Yacute -74
+KPX Amacron Ydieresis -74
+KPX Amacron quoteright -55
+KPX Amacron space -55
+KPX Amacron v -55
+KPX Amacron w -37
+KPX Amacron y -55
+KPX Amacron yacute -55
+KPX Amacron ydieresis -55
+KPX Aogonek T -55
+KPX Aogonek Tcaron -55
+KPX Aogonek Tcommaaccent -55
+KPX Aogonek V -74
+KPX Aogonek W -74
+KPX Aogonek Y -74
+KPX Aogonek Yacute -74
+KPX Aogonek Ydieresis -74
+KPX Aogonek quoteright -55
+KPX Aogonek space -55
+KPX Aogonek v -55
+KPX Aogonek w -37
+KPX Aogonek y -55
+KPX Aogonek yacute -55
+KPX Aogonek ydieresis -55
+KPX Aring T -55
+KPX Aring Tcaron -55
+KPX Aring Tcommaaccent -55
+KPX Aring V -74
+KPX Aring W -74
+KPX Aring Y -74
+KPX Aring Yacute -74
+KPX Aring Ydieresis -74
+KPX Aring quoteright -55
+KPX Aring space -55
+KPX Aring v -55
+KPX Aring w -37
+KPX Aring y -55
+KPX Aring yacute -55
+KPX Aring ydieresis -55
+KPX Atilde T -55
+KPX Atilde Tcaron -55
+KPX Atilde Tcommaaccent -55
+KPX Atilde V -74
+KPX Atilde W -74
+KPX Atilde Y -74
+KPX Atilde Yacute -74
+KPX Atilde Ydieresis -74
+KPX Atilde quoteright -55
+KPX Atilde space -55
+KPX Atilde v -55
+KPX Atilde w -37
+KPX Atilde y -55
+KPX Atilde yacute -55
+KPX Atilde ydieresis -55
+KPX F A -74
+KPX F Aacute -74
+KPX F Abreve -74
+KPX F Acircumflex -74
+KPX F Adieresis -74
+KPX F Agrave -74
+KPX F Amacron -74
+KPX F Aogonek -74
+KPX F Aring -74
+KPX F Atilde -74
+KPX F comma -111
+KPX F period -111
+KPX F space -18
+KPX L T -74
+KPX L Tcaron -74
+KPX L Tcommaaccent -74
+KPX L V -74
+KPX L W -74
+KPX L Y -74
+KPX L Yacute -74
+KPX L Ydieresis -74
+KPX L quoteright -55
+KPX L space -18
+KPX L y -37
+KPX L yacute -37
+KPX L ydieresis -37
+KPX Lacute T -74
+KPX Lacute Tcaron -74
+KPX Lacute Tcommaaccent -74
+KPX Lacute V -74
+KPX Lacute W -74
+KPX Lacute Y -74
+KPX Lacute Yacute -74
+KPX Lacute Ydieresis -74
+KPX Lacute quoteright -55
+KPX Lacute space -18
+KPX Lacute y -37
+KPX Lacute yacute -37
+KPX Lacute ydieresis -37
+KPX Lcaron quoteright -55
+KPX Lcaron space -18
+KPX Lcaron y -37
+KPX Lcaron yacute -37
+KPX Lcaron ydieresis -37
+KPX Lcommaaccent T -74
+KPX Lcommaaccent Tcaron -74
+KPX Lcommaaccent Tcommaaccent -74
+KPX Lcommaaccent V -74
+KPX Lcommaaccent W -74
+KPX Lcommaaccent Y -74
+KPX Lcommaaccent Yacute -74
+KPX Lcommaaccent Ydieresis -74
+KPX Lcommaaccent quoteright -55
+KPX Lcommaaccent space -18
+KPX Lcommaaccent y -37
+KPX Lcommaaccent yacute -37
+KPX Lcommaaccent ydieresis -37
+KPX Lslash T -74
+KPX Lslash Tcaron -74
+KPX Lslash Tcommaaccent -74
+KPX Lslash V -74
+KPX Lslash W -74
+KPX Lslash Y -74
+KPX Lslash Yacute -74
+KPX Lslash Ydieresis -74
+KPX Lslash quoteright -55
+KPX Lslash space -18
+KPX Lslash y -37
+KPX Lslash yacute -37
+KPX Lslash ydieresis -37
+KPX P A -92
+KPX P Aacute -92
+KPX P Abreve -92
+KPX P Acircumflex -92
+KPX P Adieresis -92
+KPX P Agrave -92
+KPX P Amacron -92
+KPX P Aogonek -92
+KPX P Aring -92
+KPX P Atilde -92
+KPX P comma -129
+KPX P period -129
+KPX P space -55
+KPX R T -37
+KPX R Tcaron -37
+KPX R Tcommaaccent -37
+KPX R V -55
+KPX R W -55
+KPX R Y -37
+KPX R Yacute -37
+KPX R Ydieresis -37
+KPX R y -20
+KPX R yacute -20
+KPX R ydieresis -20
+KPX Racute T -37
+KPX Racute Tcaron -37
+KPX Racute Tcommaaccent -37
+KPX Racute V -55
+KPX Racute W -55
+KPX Racute Y -37
+KPX Racute Yacute -37
+KPX Racute Ydieresis -37
+KPX Racute y -20
+KPX Racute yacute -20
+KPX Racute ydieresis -20
+KPX Rcaron T -37
+KPX Rcaron Tcaron -37
+KPX Rcaron Tcommaaccent -37
+KPX Rcaron V -55
+KPX Rcaron W -55
+KPX Rcaron Y -37
+KPX Rcaron Yacute -37
+KPX Rcaron Ydieresis -37
+KPX Rcaron y -20
+KPX Rcaron yacute -20
+KPX Rcaron ydieresis -20
+KPX Rcommaaccent T -37
+KPX Rcommaaccent Tcaron -37
+KPX Rcommaaccent Tcommaaccent -37
+KPX Rcommaaccent V -55
+KPX Rcommaaccent W -55
+KPX Rcommaaccent Y -37
+KPX Rcommaaccent Yacute -37
+KPX Rcommaaccent Ydieresis -37
+KPX Rcommaaccent y -20
+KPX Rcommaaccent yacute -20
+KPX Rcommaaccent ydieresis -20
+KPX T A -55
+KPX T Aacute -55
+KPX T Abreve -55
+KPX T Acircumflex -55
+KPX T Adieresis -55
+KPX T Agrave -55
+KPX T Amacron -55
+KPX T Aogonek -55
+KPX T Aring -55
+KPX T Atilde -55
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -111
+KPX T aacute -111
+KPX T abreve -111
+KPX T acircumflex -111
+KPX T adieresis -111
+KPX T agrave -111
+KPX T amacron -111
+KPX T aogonek -111
+KPX T aring -111
+KPX T atilde -111
+KPX T c -92
+KPX T cacute -92
+KPX T ccaron -92
+KPX T ccedilla -92
+KPX T colon -55
+KPX T comma -55
+KPX T e -111
+KPX T eacute -111
+KPX T ecaron -111
+KPX T ecircumflex -71
+KPX T edieresis -71
+KPX T edotaccent -111
+KPX T egrave -71
+KPX T emacron -71
+KPX T eogonek -111
+KPX T hyphen -92
+KPX T i -74
+KPX T iacute -74
+KPX T icircumflex -34
+KPX T idieresis -34
+KPX T igrave -34
+KPX T imacron -34
+KPX T iogonek -74
+KPX T o -111
+KPX T oacute -111
+KPX T ocircumflex -111
+KPX T odieresis -111
+KPX T ograve -111
+KPX T ohungarumlaut -111
+KPX T omacron -111
+KPX T oslash -111
+KPX T otilde -111
+KPX T period -55
+KPX T r -92
+KPX T racute -92
+KPX T rcaron -92
+KPX T rcommaaccent -92
+KPX T s -92
+KPX T sacute -92
+KPX T scaron -92
+KPX T scedilla -92
+KPX T scommaaccent -92
+KPX T semicolon -55
+KPX T u -92
+KPX T uacute -92
+KPX T ucircumflex -92
+KPX T udieresis -92
+KPX T ugrave -92
+KPX T uhungarumlaut -92
+KPX T umacron -92
+KPX T uogonek -92
+KPX T uring -92
+KPX T w -50
+KPX T y -80
+KPX T yacute -80
+KPX T ydieresis -80
+KPX Tcaron A -55
+KPX Tcaron Aacute -55
+KPX Tcaron Abreve -55
+KPX Tcaron Acircumflex -55
+KPX Tcaron Adieresis -55
+KPX Tcaron Agrave -55
+KPX Tcaron Amacron -55
+KPX Tcaron Aogonek -55
+KPX Tcaron Aring -55
+KPX Tcaron Atilde -55
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -111
+KPX Tcaron aacute -111
+KPX Tcaron abreve -111
+KPX Tcaron acircumflex -111
+KPX Tcaron adieresis -111
+KPX Tcaron agrave -111
+KPX Tcaron amacron -111
+KPX Tcaron aogonek -111
+KPX Tcaron aring -111
+KPX Tcaron atilde -111
+KPX Tcaron c -92
+KPX Tcaron cacute -92
+KPX Tcaron ccaron -92
+KPX Tcaron ccedilla -92
+KPX Tcaron colon -55
+KPX Tcaron comma -55
+KPX Tcaron e -111
+KPX Tcaron eacute -111
+KPX Tcaron ecaron -111
+KPX Tcaron ecircumflex -71
+KPX Tcaron edieresis -71
+KPX Tcaron edotaccent -111
+KPX Tcaron egrave -71
+KPX Tcaron emacron -71
+KPX Tcaron eogonek -111
+KPX Tcaron hyphen -92
+KPX Tcaron i -74
+KPX Tcaron iacute -74
+KPX Tcaron icircumflex -34
+KPX Tcaron idieresis -34
+KPX Tcaron igrave -34
+KPX Tcaron imacron -34
+KPX Tcaron iogonek -74
+KPX Tcaron o -111
+KPX Tcaron oacute -111
+KPX Tcaron ocircumflex -111
+KPX Tcaron odieresis -111
+KPX Tcaron ograve -111
+KPX Tcaron ohungarumlaut -111
+KPX Tcaron omacron -111
+KPX Tcaron oslash -111
+KPX Tcaron otilde -111
+KPX Tcaron period -55
+KPX Tcaron r -92
+KPX Tcaron racute -92
+KPX Tcaron rcaron -92
+KPX Tcaron rcommaaccent -92
+KPX Tcaron s -92
+KPX Tcaron sacute -92
+KPX Tcaron scaron -92
+KPX Tcaron scedilla -92
+KPX Tcaron scommaaccent -92
+KPX Tcaron semicolon -55
+KPX Tcaron u -92
+KPX Tcaron uacute -92
+KPX Tcaron ucircumflex -92
+KPX Tcaron udieresis -92
+KPX Tcaron ugrave -92
+KPX Tcaron uhungarumlaut -92
+KPX Tcaron umacron -92
+KPX Tcaron uogonek -92
+KPX Tcaron uring -92
+KPX Tcaron w -50
+KPX Tcaron y -80
+KPX Tcaron yacute -80
+KPX Tcaron ydieresis -80
+KPX Tcommaaccent A -55
+KPX Tcommaaccent Aacute -55
+KPX Tcommaaccent Abreve -55
+KPX Tcommaaccent Acircumflex -55
+KPX Tcommaaccent Adieresis -55
+KPX Tcommaaccent Agrave -55
+KPX Tcommaaccent Amacron -55
+KPX Tcommaaccent Aogonek -55
+KPX Tcommaaccent Aring -55
+KPX Tcommaaccent Atilde -55
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -111
+KPX Tcommaaccent aacute -111
+KPX Tcommaaccent abreve -111
+KPX Tcommaaccent acircumflex -111
+KPX Tcommaaccent adieresis -111
+KPX Tcommaaccent agrave -111
+KPX Tcommaaccent amacron -111
+KPX Tcommaaccent aogonek -111
+KPX Tcommaaccent aring -111
+KPX Tcommaaccent atilde -111
+KPX Tcommaaccent c -92
+KPX Tcommaaccent cacute -92
+KPX Tcommaaccent ccaron -92
+KPX Tcommaaccent ccedilla -92
+KPX Tcommaaccent colon -55
+KPX Tcommaaccent comma -55
+KPX Tcommaaccent e -111
+KPX Tcommaaccent eacute -111
+KPX Tcommaaccent ecaron -111
+KPX Tcommaaccent ecircumflex -71
+KPX Tcommaaccent edieresis -71
+KPX Tcommaaccent edotaccent -111
+KPX Tcommaaccent egrave -71
+KPX Tcommaaccent emacron -71
+KPX Tcommaaccent eogonek -111
+KPX Tcommaaccent hyphen -92
+KPX Tcommaaccent i -74
+KPX Tcommaaccent iacute -74
+KPX Tcommaaccent icircumflex -34
+KPX Tcommaaccent idieresis -34
+KPX Tcommaaccent igrave -34
+KPX Tcommaaccent imacron -34
+KPX Tcommaaccent iogonek -74
+KPX Tcommaaccent o -111
+KPX Tcommaaccent oacute -111
+KPX Tcommaaccent ocircumflex -111
+KPX Tcommaaccent odieresis -111
+KPX Tcommaaccent ograve -111
+KPX Tcommaaccent ohungarumlaut -111
+KPX Tcommaaccent omacron -111
+KPX Tcommaaccent oslash -111
+KPX Tcommaaccent otilde -111
+KPX Tcommaaccent period -55
+KPX Tcommaaccent r -92
+KPX Tcommaaccent racute -92
+KPX Tcommaaccent rcaron -92
+KPX Tcommaaccent rcommaaccent -92
+KPX Tcommaaccent s -92
+KPX Tcommaaccent sacute -92
+KPX Tcommaaccent scaron -92
+KPX Tcommaaccent scedilla -92
+KPX Tcommaaccent scommaaccent -92
+KPX Tcommaaccent semicolon -55
+KPX Tcommaaccent u -92
+KPX Tcommaaccent uacute -92
+KPX Tcommaaccent ucircumflex -92
+KPX Tcommaaccent udieresis -92
+KPX Tcommaaccent ugrave -92
+KPX Tcommaaccent uhungarumlaut -92
+KPX Tcommaaccent umacron -92
+KPX Tcommaaccent uogonek -92
+KPX Tcommaaccent uring -92
+KPX Tcommaaccent w -50
+KPX Tcommaaccent y -80
+KPX Tcommaaccent yacute -80
+KPX Tcommaaccent ydieresis -80
+KPX V A -74
+KPX V Aacute -74
+KPX V Abreve -74
+KPX V Acircumflex -74
+KPX V Adieresis -74
+KPX V Agrave -74
+KPX V Amacron -74
+KPX V Aogonek -74
+KPX V Aring -74
+KPX V Atilde -74
+KPX V a -92
+KPX V aacute -92
+KPX V abreve -92
+KPX V acircumflex -92
+KPX V adieresis -92
+KPX V agrave -92
+KPX V amacron -92
+KPX V aogonek -92
+KPX V aring -92
+KPX V atilde -92
+KPX V colon -37
+KPX V comma -111
+KPX V e -74
+KPX V eacute -74
+KPX V ecaron -74
+KPX V ecircumflex -74
+KPX V edieresis -74
+KPX V edotaccent -74
+KPX V egrave -34
+KPX V emacron -34
+KPX V eogonek -74
+KPX V hyphen -37
+KPX V i -50
+KPX V iacute -50
+KPX V iogonek -50
+KPX V o -74
+KPX V oacute -74
+KPX V ocircumflex -74
+KPX V odieresis -74
+KPX V ograve -74
+KPX V ohungarumlaut -74
+KPX V omacron -74
+KPX V oslash -74
+KPX V otilde -74
+KPX V period -111
+KPX V r -74
+KPX V racute -74
+KPX V rcaron -74
+KPX V rcommaaccent -74
+KPX V semicolon -37
+KPX V u -50
+KPX V uacute -50
+KPX V ucircumflex -50
+KPX V udieresis -50
+KPX V ugrave -50
+KPX V uhungarumlaut -50
+KPX V umacron -50
+KPX V uogonek -50
+KPX V uring -50
+KPX V y -50
+KPX V yacute -50
+KPX V ydieresis -50
+KPX W A -74
+KPX W Aacute -74
+KPX W Abreve -74
+KPX W Acircumflex -74
+KPX W Adieresis -74
+KPX W Agrave -74
+KPX W Amacron -74
+KPX W Aogonek -74
+KPX W Aring -74
+KPX W Atilde -74
+KPX W a -74
+KPX W aacute -74
+KPX W abreve -74
+KPX W acircumflex -74
+KPX W adieresis -74
+KPX W agrave -74
+KPX W amacron -74
+KPX W aogonek -74
+KPX W aring -74
+KPX W atilde -74
+KPX W colon -28
+KPX W comma -55
+KPX W e -55
+KPX W eacute -55
+KPX W ecaron -55
+KPX W ecircumflex -55
+KPX W edieresis -55
+KPX W edotaccent -55
+KPX W egrave -55
+KPX W emacron -55
+KPX W eogonek -55
+KPX W i -30
+KPX W iacute -30
+KPX W iogonek -30
+KPX W o -55
+KPX W oacute -55
+KPX W ocircumflex -55
+KPX W odieresis -55
+KPX W ograve -55
+KPX W ohungarumlaut -55
+KPX W omacron -55
+KPX W oslash -55
+KPX W otilde -55
+KPX W period -55
+KPX W r -30
+KPX W racute -30
+KPX W rcaron -30
+KPX W rcommaaccent -30
+KPX W semicolon -18
+KPX W u -30
+KPX W uacute -30
+KPX W ucircumflex -30
+KPX W udieresis -30
+KPX W ugrave -30
+KPX W uhungarumlaut -30
+KPX W umacron -30
+KPX W uogonek -30
+KPX W uring -30
+KPX W y -30
+KPX W yacute -30
+KPX W ydieresis -30
+KPX Y A -55
+KPX Y Aacute -55
+KPX Y Abreve -55
+KPX Y Acircumflex -55
+KPX Y Adieresis -55
+KPX Y Agrave -55
+KPX Y Amacron -55
+KPX Y Aogonek -55
+KPX Y Aring -55
+KPX Y Atilde -55
+KPX Y a -111
+KPX Y aacute -111
+KPX Y abreve -111
+KPX Y acircumflex -111
+KPX Y adieresis -111
+KPX Y agrave -111
+KPX Y amacron -111
+KPX Y aogonek -111
+KPX Y aring -111
+KPX Y atilde -111
+KPX Y colon -55
+KPX Y comma -55
+KPX Y e -92
+KPX Y eacute -92
+KPX Y ecaron -92
+KPX Y ecircumflex -92
+KPX Y edieresis -92
+KPX Y edotaccent -92
+KPX Y egrave -92
+KPX Y emacron -92
+KPX Y eogonek -92
+KPX Y hyphen -55
+KPX Y i -54
+KPX Y iacute -54
+KPX Y iogonek -54
+KPX Y o -111
+KPX Y oacute -111
+KPX Y ocircumflex -111
+KPX Y odieresis -111
+KPX Y ograve -111
+KPX Y ohungarumlaut -111
+KPX Y omacron -111
+KPX Y oslash -111
+KPX Y otilde -111
+KPX Y p -74
+KPX Y period -55
+KPX Y q -92
+KPX Y semicolon -55
+KPX Y u -50
+KPX Y uacute -50
+KPX Y ucircumflex -50
+KPX Y udieresis -50
+KPX Y ugrave -50
+KPX Y uhungarumlaut -50
+KPX Y umacron -50
+KPX Y uogonek -50
+KPX Y uring -50
+KPX Y v -30
+KPX Yacute A -55
+KPX Yacute Aacute -55
+KPX Yacute Abreve -55
+KPX Yacute Acircumflex -55
+KPX Yacute Adieresis -55
+KPX Yacute Agrave -55
+KPX Yacute Amacron -55
+KPX Yacute Aogonek -55
+KPX Yacute Aring -55
+KPX Yacute Atilde -55
+KPX Yacute a -111
+KPX Yacute aacute -111
+KPX Yacute abreve -111
+KPX Yacute acircumflex -111
+KPX Yacute adieresis -111
+KPX Yacute agrave -111
+KPX Yacute amacron -111
+KPX Yacute aogonek -111
+KPX Yacute aring -111
+KPX Yacute atilde -111
+KPX Yacute colon -55
+KPX Yacute comma -55
+KPX Yacute e -92
+KPX Yacute eacute -92
+KPX Yacute ecaron -92
+KPX Yacute ecircumflex -92
+KPX Yacute edieresis -92
+KPX Yacute edotaccent -92
+KPX Yacute egrave -92
+KPX Yacute emacron -92
+KPX Yacute eogonek -92
+KPX Yacute hyphen -55
+KPX Yacute i -54
+KPX Yacute iacute -54
+KPX Yacute iogonek -54
+KPX Yacute o -111
+KPX Yacute oacute -111
+KPX Yacute ocircumflex -111
+KPX Yacute odieresis -111
+KPX Yacute ograve -111
+KPX Yacute ohungarumlaut -111
+KPX Yacute omacron -111
+KPX Yacute oslash -111
+KPX Yacute otilde -111
+KPX Yacute p -74
+KPX Yacute period -55
+KPX Yacute q -92
+KPX Yacute semicolon -55
+KPX Yacute u -50
+KPX Yacute uacute -50
+KPX Yacute ucircumflex -50
+KPX Yacute udieresis -50
+KPX Yacute ugrave -50
+KPX Yacute uhungarumlaut -50
+KPX Yacute umacron -50
+KPX Yacute uogonek -50
+KPX Yacute uring -50
+KPX Yacute v -30
+KPX Ydieresis A -55
+KPX Ydieresis Aacute -55
+KPX Ydieresis Abreve -55
+KPX Ydieresis Acircumflex -55
+KPX Ydieresis Adieresis -55
+KPX Ydieresis Agrave -55
+KPX Ydieresis Amacron -55
+KPX Ydieresis Aogonek -55
+KPX Ydieresis Aring -55
+KPX Ydieresis Atilde -55
+KPX Ydieresis a -111
+KPX Ydieresis aacute -111
+KPX Ydieresis abreve -111
+KPX Ydieresis acircumflex -111
+KPX Ydieresis adieresis -111
+KPX Ydieresis agrave -111
+KPX Ydieresis amacron -111
+KPX Ydieresis aogonek -111
+KPX Ydieresis aring -111
+KPX Ydieresis atilde -111
+KPX Ydieresis colon -55
+KPX Ydieresis comma -55
+KPX Ydieresis e -92
+KPX Ydieresis eacute -92
+KPX Ydieresis ecaron -92
+KPX Ydieresis ecircumflex -92
+KPX Ydieresis edieresis -92
+KPX Ydieresis edotaccent -92
+KPX Ydieresis egrave -92
+KPX Ydieresis emacron -92
+KPX Ydieresis eogonek -92
+KPX Ydieresis hyphen -55
+KPX Ydieresis i -54
+KPX Ydieresis iacute -54
+KPX Ydieresis iogonek -54
+KPX Ydieresis o -111
+KPX Ydieresis oacute -111
+KPX Ydieresis ocircumflex -111
+KPX Ydieresis odieresis -111
+KPX Ydieresis ograve -111
+KPX Ydieresis ohungarumlaut -111
+KPX Ydieresis omacron -111
+KPX Ydieresis oslash -111
+KPX Ydieresis otilde -111
+KPX Ydieresis p -74
+KPX Ydieresis period -55
+KPX Ydieresis q -92
+KPX Ydieresis semicolon -55
+KPX Ydieresis u -50
+KPX Ydieresis uacute -50
+KPX Ydieresis ucircumflex -50
+KPX Ydieresis udieresis -50
+KPX Ydieresis ugrave -50
+KPX Ydieresis uhungarumlaut -50
+KPX Ydieresis umacron -50
+KPX Ydieresis uogonek -50
+KPX Ydieresis uring -50
+KPX Ydieresis v -30
+KPX f f -37
+KPX f quoteright 37
+KPX one one -55
+KPX quoteleft quoteleft -55
+KPX quoteright quoteright -55
+KPX quoteright s -37
+KPX quoteright sacute -37
+KPX quoteright scaron -37
+KPX quoteright scedilla -37
+KPX quoteright scommaaccent -37
+KPX quoteright space -37
+KPX quoteright t -18
+KPX quoteright tcommaaccent -18
+KPX r c -18
+KPX r cacute -18
+KPX r ccaron -18
+KPX r ccedilla -18
+KPX r comma -55
+KPX r e -18
+KPX r eacute -18
+KPX r ecaron -18
+KPX r ecircumflex -18
+KPX r edieresis -18
+KPX r edotaccent -18
+KPX r egrave -18
+KPX r emacron -18
+KPX r eogonek -18
+KPX r g -18
+KPX r gbreve -18
+KPX r gcommaaccent -18
+KPX r h -18
+KPX r o -18
+KPX r oacute -18
+KPX r ocircumflex -18
+KPX r odieresis -18
+KPX r ograve -18
+KPX r ohungarumlaut -18
+KPX r omacron -18
+KPX r oslash -18
+KPX r otilde -18
+KPX r period -55
+KPX r q -18
+KPX r quoteright 55
+KPX racute c -18
+KPX racute cacute -18
+KPX racute ccaron -18
+KPX racute ccedilla -18
+KPX racute comma -55
+KPX racute e -18
+KPX racute eacute -18
+KPX racute ecaron -18
+KPX racute ecircumflex -18
+KPX racute edieresis -18
+KPX racute edotaccent -18
+KPX racute egrave -18
+KPX racute emacron -18
+KPX racute eogonek -18
+KPX racute g -18
+KPX racute gbreve -18
+KPX racute gcommaaccent -18
+KPX racute h -18
+KPX racute o -18
+KPX racute oacute -18
+KPX racute ocircumflex -18
+KPX racute odieresis -18
+KPX racute ograve -18
+KPX racute ohungarumlaut -18
+KPX racute omacron -18
+KPX racute oslash -18
+KPX racute otilde -18
+KPX racute period -55
+KPX racute q -18
+KPX racute quoteright 55
+KPX rcaron c -18
+KPX rcaron cacute -18
+KPX rcaron ccaron -18
+KPX rcaron ccedilla -18
+KPX rcaron comma -55
+KPX rcaron e -18
+KPX rcaron eacute -18
+KPX rcaron ecaron -18
+KPX rcaron ecircumflex -18
+KPX rcaron edieresis -18
+KPX rcaron edotaccent -18
+KPX rcaron egrave -18
+KPX rcaron emacron -18
+KPX rcaron eogonek -18
+KPX rcaron g -18
+KPX rcaron gbreve -18
+KPX rcaron gcommaaccent -18
+KPX rcaron h -18
+KPX rcaron o -18
+KPX rcaron oacute -18
+KPX rcaron ocircumflex -18
+KPX rcaron odieresis -18
+KPX rcaron ograve -18
+KPX rcaron ohungarumlaut -18
+KPX rcaron omacron -18
+KPX rcaron oslash -18
+KPX rcaron otilde -18
+KPX rcaron period -55
+KPX rcaron q -18
+KPX rcaron quoteright 55
+KPX rcommaaccent c -18
+KPX rcommaaccent cacute -18
+KPX rcommaaccent ccaron -18
+KPX rcommaaccent ccedilla -18
+KPX rcommaaccent comma -55
+KPX rcommaaccent e -18
+KPX rcommaaccent eacute -18
+KPX rcommaaccent ecaron -18
+KPX rcommaaccent ecircumflex -18
+KPX rcommaaccent edieresis -18
+KPX rcommaaccent edotaccent -18
+KPX rcommaaccent egrave -18
+KPX rcommaaccent emacron -18
+KPX rcommaaccent eogonek -18
+KPX rcommaaccent g -18
+KPX rcommaaccent gbreve -18
+KPX rcommaaccent gcommaaccent -18
+KPX rcommaaccent h -18
+KPX rcommaaccent o -18
+KPX rcommaaccent oacute -18
+KPX rcommaaccent ocircumflex -18
+KPX rcommaaccent odieresis -18
+KPX rcommaaccent ograve -18
+KPX rcommaaccent ohungarumlaut -18
+KPX rcommaaccent omacron -18
+KPX rcommaaccent oslash -18
+KPX rcommaaccent otilde -18
+KPX rcommaaccent period -55
+KPX rcommaaccent q -18
+KPX rcommaaccent quoteright 55
+KPX v comma -55
+KPX v period -55
+KPX w comma -55
+KPX w period -55
+KPX y comma -37
+KPX y period -37
+KPX yacute comma -37
+KPX yacute period -37
+KPX ydieresis comma -37
+KPX ydieresis period -37
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Palatino-Italic.afm b/test/user-template/user/psprint/fontmetric/Palatino-Italic.afm
new file mode 100644
index 000000000000..68e3c2f3fc0b
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Palatino-Italic.afm
@@ -0,0 +1,1306 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 13:32:34 1997
+Comment UniqueID 43074
+Comment VMusage 54574 69599
+FontName Palatino-Italic
+FullName Palatino Italic
+FamilyName Palatino
+Weight Medium
+ItalicAngle -10
+IsFixedPitch false
+FontBBox -170 -276 1010 918
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 692
+XHeight 482
+Ascender 726
+Descender -281
+StdHW 42
+StdVW 84
+StartCharMetrics 314
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 76 -8 292 733 ;
+C 34 ; WX 500 ; N quotedbl ; B 140 508 455 733 ;
+C 35 ; WX 500 ; N numbersign ; B 4 0 495 692 ;
+C 36 ; WX 500 ; N dollar ; B 15 -113 452 733 ;
+C 37 ; WX 889 ; N percent ; B 74 -7 809 710 ;
+C 38 ; WX 778 ; N ampersand ; B 47 -18 766 692 ;
+C 39 ; WX 278 ; N quoteright ; B 78 488 258 733 ;
+C 40 ; WX 333 ; N parenleft ; B 54 -106 331 733 ;
+C 41 ; WX 333 ; N parenright ; B 2 -106 279 733 ;
+C 42 ; WX 389 ; N asterisk ; B 76 368 400 706 ;
+C 43 ; WX 606 ; N plus ; B 51 0 555 504 ;
+C 44 ; WX 250 ; N comma ; B 8 -143 203 123 ;
+C 45 ; WX 333 ; N hyphen ; B 19 223 304 281 ;
+C 46 ; WX 250 ; N period ; B 53 -5 158 112 ;
+C 47 ; WX 296 ; N slash ; B -40 -119 392 733 ;
+C 48 ; WX 500 ; N zero ; B 36 -11 480 699 ;
+C 49 ; WX 500 ; N one ; B 54 -3 398 699 ;
+C 50 ; WX 500 ; N two ; B 12 -3 437 699 ;
+C 51 ; WX 500 ; N three ; B 22 -11 447 699 ;
+C 52 ; WX 500 ; N four ; B 15 -3 478 699 ;
+C 53 ; WX 500 ; N five ; B 14 -11 491 693 ;
+C 54 ; WX 500 ; N six ; B 49 -11 469 699 ;
+C 55 ; WX 500 ; N seven ; B 53 -3 502 692 ;
+C 56 ; WX 500 ; N eight ; B 36 -11 469 699 ;
+C 57 ; WX 500 ; N nine ; B 32 -11 468 699 ;
+C 58 ; WX 250 ; N colon ; B 44 -5 207 458 ;
+C 59 ; WX 250 ; N semicolon ; B -9 -146 219 456 ;
+C 60 ; WX 606 ; N less ; B 53 -6 554 516 ;
+C 61 ; WX 606 ; N equal ; B 51 126 555 378 ;
+C 62 ; WX 606 ; N greater ; B 53 -6 554 516 ;
+C 63 ; WX 500 ; N question ; B 114 -8 427 706 ;
+C 64 ; WX 747 ; N at ; B 27 -18 718 706 ;
+C 65 ; WX 722 ; N A ; B -19 -3 677 705 ;
+C 66 ; WX 611 ; N B ; B 26 -6 559 692 ;
+C 67 ; WX 667 ; N C ; B 45 -18 651 706 ;
+C 68 ; WX 778 ; N D ; B 28 -3 741 692 ;
+C 69 ; WX 611 ; N E ; B 30 -3 570 692 ;
+C 70 ; WX 556 ; N F ; B 0 -3 548 692 ;
+C 71 ; WX 722 ; N G ; B 50 -18 694 706 ;
+C 72 ; WX 778 ; N H ; B -3 -3 800 692 ;
+C 73 ; WX 333 ; N I ; B 7 -3 354 692 ;
+C 74 ; WX 333 ; N J ; B -35 -206 358 692 ;
+C 75 ; WX 667 ; N K ; B 13 -3 683 692 ;
+C 76 ; WX 556 ; N L ; B 16 -3 523 692 ;
+C 77 ; WX 944 ; N M ; B -19 -18 940 692 ;
+C 78 ; WX 778 ; N N ; B 2 -11 804 692 ;
+C 79 ; WX 778 ; N O ; B 53 -18 748 706 ;
+C 80 ; WX 611 ; N P ; B 9 -3 594 692 ;
+C 81 ; WX 778 ; N Q ; B 53 -201 748 706 ;
+C 82 ; WX 667 ; N R ; B 9 -3 639 692 ;
+C 83 ; WX 556 ; N S ; B 42 -18 506 706 ;
+C 84 ; WX 611 ; N T ; B 53 -3 635 692 ;
+C 85 ; WX 778 ; N U ; B 88 -18 798 692 ;
+C 86 ; WX 722 ; N V ; B 75 -8 754 692 ;
+C 87 ; WX 944 ; N W ; B 71 -8 980 700 ;
+C 88 ; WX 722 ; N X ; B 20 -3 734 692 ;
+C 89 ; WX 667 ; N Y ; B 52 -3 675 705 ;
+C 90 ; WX 667 ; N Z ; B 20 -3 637 692 ;
+C 91 ; WX 333 ; N bracketleft ; B 18 -100 326 733 ;
+C 92 ; WX 606 ; N backslash ; B 81 0 513 733 ;
+C 93 ; WX 333 ; N bracketright ; B 7 -100 315 733 ;
+C 94 ; WX 606 ; N asciicircum ; B 51 283 554 689 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 278 ; N quoteleft ; B 78 488 258 733 ;
+C 97 ; WX 444 ; N a ; B 4 -11 406 482 ;
+C 98 ; WX 463 ; N b ; B 37 -11 433 733 ;
+C 99 ; WX 407 ; N c ; B 25 -11 389 482 ;
+C 100 ; WX 500 ; N d ; B 17 -11 483 733 ;
+C 101 ; WX 389 ; N e ; B 15 -11 374 482 ;
+C 102 ; WX 278 ; N f ; B -162 -276 413 733 ; L i fi ; L l fl ;
+C 103 ; WX 500 ; N g ; B -37 -276 498 482 ;
+C 104 ; WX 500 ; N h ; B 10 -9 471 733 ;
+C 105 ; WX 278 ; N i ; B 34 -9 264 712 ;
+C 106 ; WX 278 ; N j ; B -70 -276 265 712 ;
+C 107 ; WX 444 ; N k ; B 8 -9 449 733 ;
+C 108 ; WX 278 ; N l ; B 36 -9 251 733 ;
+C 109 ; WX 778 ; N m ; B 24 -9 740 482 ;
+C 110 ; WX 556 ; N n ; B 24 -9 514 482 ;
+C 111 ; WX 444 ; N o ; B 17 -11 411 482 ;
+C 112 ; WX 500 ; N p ; B -7 -276 465 482 ;
+C 113 ; WX 463 ; N q ; B 24 -276 432 482 ;
+C 114 ; WX 389 ; N r ; B 26 -9 384 482 ;
+C 115 ; WX 389 ; N s ; B 9 -11 345 482 ;
+C 116 ; WX 333 ; N t ; B 41 -9 310 646 ;
+C 117 ; WX 556 ; N u ; B 32 -11 512 482 ;
+C 118 ; WX 500 ; N v ; B 21 -11 477 482 ;
+C 119 ; WX 722 ; N w ; B 21 -11 699 482 ;
+C 120 ; WX 500 ; N x ; B 9 -11 484 482 ;
+C 121 ; WX 500 ; N y ; B -8 -276 490 482 ;
+C 122 ; WX 444 ; N z ; B -1 -11 416 482 ;
+C 123 ; WX 333 ; N braceleft ; B 15 -100 319 733 ;
+C 124 ; WX 606 ; N bar ; B 275 -250 331 750 ;
+C 125 ; WX 333 ; N braceright ; B 14 -100 318 733 ;
+C 126 ; WX 606 ; N asciitilde ; B 51 168 555 339 ;
+C 161 ; WX 333 ; N exclamdown ; B 15 -276 233 467 ;
+C 162 ; WX 500 ; N cent ; B 56 -96 418 551 ;
+C 163 ; WX 500 ; N sterling ; B 2 -18 479 708 ;
+C 164 ; WX 167 ; N fraction ; B -170 0 337 699 ;
+C 165 ; WX 500 ; N yen ; B 35 -3 512 699 ;
+C 166 ; WX 500 ; N florin ; B 5 -276 470 708 ;
+C 167 ; WX 500 ; N section ; B 14 -220 463 706 ;
+C 168 ; WX 500 ; N currency ; B 14 115 486 577 ;
+C 169 ; WX 333 ; N quotesingle ; B 140 508 288 733 ;
+C 170 ; WX 500 ; N quotedblleft ; B 98 488 475 733 ;
+C 171 ; WX 500 ; N guillemotleft ; B 57 70 437 440 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 57 70 270 440 ;
+C 173 ; WX 333 ; N guilsinglright ; B 63 70 276 440 ;
+C 174 ; WX 528 ; N fi ; B -162 -276 502 733 ;
+C 175 ; WX 545 ; N fl ; B -162 -276 520 733 ;
+C 177 ; WX 500 ; N endash ; B -10 228 510 278 ;
+C 178 ; WX 500 ; N dagger ; B 48 0 469 692 ;
+C 179 ; WX 500 ; N daggerdbl ; B 10 -162 494 692 ;
+C 180 ; WX 250 ; N periodcentered ; B 53 195 158 312 ;
+C 182 ; WX 500 ; N paragraph ; B 33 -224 611 692 ;
+C 183 ; WX 500 ; N bullet ; B 86 182 430 526 ;
+C 184 ; WX 278 ; N quotesinglbase ; B 27 -122 211 120 ;
+C 185 ; WX 500 ; N quotedblbase ; B 43 -122 424 120 ;
+C 186 ; WX 500 ; N quotedblright ; B 98 488 475 733 ;
+C 187 ; WX 500 ; N guillemotright ; B 63 70 443 440 ;
+C 188 ; WX 1000 ; N ellipsis ; B 102 -5 873 112 ;
+C 189 ; WX 1000 ; N perthousand ; B 72 -6 929 717 ;
+C 191 ; WX 500 ; N questiondown ; B 57 -246 370 467 ;
+C 193 ; WX 333 ; N grave ; B 86 518 310 687 ;
+C 194 ; WX 333 ; N acute ; B 122 518 346 687 ;
+C 195 ; WX 333 ; N circumflex ; B 56 510 350 679 ;
+C 196 ; WX 333 ; N tilde ; B 63 535 390 638 ;
+C 197 ; WX 333 ; N macron ; B 74 538 386 589 ;
+C 198 ; WX 333 ; N breve ; B 92 518 393 677 ;
+C 199 ; WX 333 ; N dotaccent ; B 189 604 283 712 ;
+C 200 ; WX 333 ; N dieresis ; B 88 604 382 712 ;
+C 202 ; WX 333 ; N ring ; B 159 508 359 708 ;
+C 203 ; WX 333 ; N cedilla ; B -9 -216 202 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 16 518 407 687 ;
+C 206 ; WX 333 ; N ogonek ; B 31 -226 213 -18 ;
+C 207 ; WX 333 ; N caron ; B 104 510 409 679 ;
+C 208 ; WX 1000 ; N emdash ; B -10 228 1010 278 ;
+C 225 ; WX 941 ; N AE ; B -4 -3 902 692 ;
+C 227 ; WX 333 ; N ordfeminine ; B 60 404 321 699 ;
+C 232 ; WX 556 ; N Lslash ; B -16 -3 523 692 ;
+C 233 ; WX 778 ; N Oslash ; B 32 -39 762 721 ;
+C 234 ; WX 1028 ; N OE ; B 56 -18 989 706 ;
+C 235 ; WX 333 ; N ordmasculine ; B 66 404 322 699 ;
+C 241 ; WX 638 ; N ae ; B 1 -11 623 482 ;
+C 245 ; WX 278 ; N dotlessi ; B 34 -9 241 482 ;
+C 248 ; WX 278 ; N lslash ; B -10 -9 302 733 ;
+C 249 ; WX 444 ; N oslash ; B -18 -24 460 510 ;
+C 250 ; WX 669 ; N oe ; B 17 -11 654 482 ;
+C 251 ; WX 500 ; N germandbls ; B -160 -276 488 733 ;
+C -1 ; WX 333 ; N Idieresis ; B 7 -3 422 847 ;
+C -1 ; WX 389 ; N eacute ; B 15 -11 394 707 ;
+C -1 ; WX 444 ; N abreve ; B 4 -11 461 697 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 32 -11 599 707 ;
+C -1 ; WX 389 ; N ecaron ; B 15 -11 437 699 ;
+C -1 ; WX 667 ; N Ydieresis ; B 52 -3 675 847 ;
+C -1 ; WX 606 ; N divide ; B 51 0 555 504 ;
+C -1 ; WX 667 ; N Yacute ; B 52 -3 675 897 ;
+C -1 ; WX 722 ; N Acircumflex ; B -19 -3 677 889 ;
+C -1 ; WX 444 ; N aacute ; B 4 -11 414 707 ;
+C -1 ; WX 778 ; N Ucircumflex ; B 88 -18 798 889 ;
+C -1 ; WX 500 ; N yacute ; B -8 -276 492 707 ;
+C -1 ; WX 389 ; N scommaaccent ; B 9 -276 345 482 ;
+C -1 ; WX 389 ; N ecircumflex ; B 15 -11 398 699 ;
+C -1 ; WX 778 ; N Uring ; B 88 -18 798 918 ;
+C -1 ; WX 778 ; N Udieresis ; B 88 -18 798 847 ;
+C -1 ; WX 444 ; N aogonek ; B 4 -226 406 482 ;
+C -1 ; WX 778 ; N Uacute ; B 88 -18 798 897 ;
+C -1 ; WX 556 ; N uogonek ; B 32 -212 512 482 ;
+C -1 ; WX 611 ; N Edieresis ; B 30 -3 570 847 ;
+C -1 ; WX 778 ; N Dcroat ; B 19 -3 741 692 ;
+C -1 ; WX 250 ; N commaaccent ; B 43 -276 188 -50 ;
+C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ;
+C -1 ; WX 611 ; N Emacron ; B 30 -3 570 799 ;
+C -1 ; WX 407 ; N ccaron ; B 25 -11 446 699 ;
+C -1 ; WX 444 ; N aring ; B 4 -11 406 728 ;
+C -1 ; WX 778 ; N Ncommaaccent ; B 2 -276 804 692 ;
+C -1 ; WX 278 ; N lacute ; B 36 -9 391 917 ;
+C -1 ; WX 444 ; N agrave ; B 4 -11 406 707 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 53 -276 635 692 ;
+C -1 ; WX 667 ; N Cacute ; B 45 -18 651 897 ;
+C -1 ; WX 444 ; N atilde ; B 4 -11 446 658 ;
+C -1 ; WX 611 ; N Edotaccent ; B 30 -3 570 847 ;
+C -1 ; WX 389 ; N scaron ; B 9 -11 389 699 ;
+C -1 ; WX 389 ; N scedilla ; B -4 -216 345 482 ;
+C -1 ; WX 278 ; N iacute ; B 34 -9 330 707 ;
+C -1 ; WX 471 ; N lozenge ; B 21 0 451 710 ;
+C -1 ; WX 667 ; N Rcaron ; B 9 -3 639 889 ;
+C -1 ; WX 722 ; N Gcommaaccent ; B 50 -276 694 706 ;
+C -1 ; WX 556 ; N ucircumflex ; B 32 -11 512 699 ;
+C -1 ; WX 444 ; N acircumflex ; B 4 -11 406 699 ;
+C -1 ; WX 722 ; N Amacron ; B -19 -3 677 799 ;
+C -1 ; WX 389 ; N rcaron ; B 26 -9 437 699 ;
+C -1 ; WX 407 ; N ccedilla ; B 19 -216 389 482 ;
+C -1 ; WX 667 ; N Zdotaccent ; B 20 -3 637 847 ;
+C -1 ; WX 611 ; N Thorn ; B 9 -3 570 692 ;
+C -1 ; WX 778 ; N Omacron ; B 53 -18 748 799 ;
+C -1 ; WX 667 ; N Racute ; B 9 -3 639 897 ;
+C -1 ; WX 556 ; N Sacute ; B 42 -18 556 897 ;
+C -1 ; WX 580 ; N dcaron ; B 17 -11 634 733 ;
+C -1 ; WX 778 ; N Umacron ; B 88 -18 798 799 ;
+C -1 ; WX 556 ; N uring ; B 32 -11 512 728 ;
+C -1 ; WX 300 ; N threesuperior ; B 28 273 304 699 ;
+C -1 ; WX 778 ; N Ograve ; B 53 -18 748 897 ;
+C -1 ; WX 722 ; N Agrave ; B -19 -3 677 897 ;
+C -1 ; WX 722 ; N Abreve ; B -19 -3 677 887 ;
+C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ;
+C -1 ; WX 556 ; N uacute ; B 32 -11 520 707 ;
+C -1 ; WX 611 ; N Tcaron ; B 53 -3 635 889 ;
+C -1 ; WX 476 ; N partialdiff ; B 34 -21 450 711 ;
+C -1 ; WX 500 ; N ydieresis ; B -8 -276 490 657 ;
+C -1 ; WX 778 ; N Nacute ; B 2 -11 804 897 ;
+C -1 ; WX 278 ; N icircumflex ; B 29 -9 323 699 ;
+C -1 ; WX 611 ; N Ecircumflex ; B 30 -3 570 889 ;
+C -1 ; WX 444 ; N adieresis ; B 4 -11 438 657 ;
+C -1 ; WX 389 ; N edieresis ; B 15 -11 410 657 ;
+C -1 ; WX 407 ; N cacute ; B 25 -11 403 707 ;
+C -1 ; WX 556 ; N nacute ; B 24 -9 514 707 ;
+C -1 ; WX 556 ; N umacron ; B 32 -11 512 609 ;
+C -1 ; WX 778 ; N Ncaron ; B 2 -11 804 889 ;
+C -1 ; WX 333 ; N Iacute ; B 7 -3 406 897 ;
+C -1 ; WX 606 ; N plusminus ; B 51 0 555 504 ;
+C -1 ; WX 606 ; N brokenbar ; B 275 -175 331 675 ;
+C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ;
+C -1 ; WX 722 ; N Gbreve ; B 50 -18 694 887 ;
+C -1 ; WX 333 ; N Idotaccent ; B 7 -3 354 847 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 611 ; N Egrave ; B 30 -3 570 897 ;
+C -1 ; WX 389 ; N racute ; B 26 -9 386 707 ;
+C -1 ; WX 444 ; N omacron ; B 17 -11 442 609 ;
+C -1 ; WX 667 ; N Zacute ; B 20 -3 637 897 ;
+C -1 ; WX 667 ; N Zcaron ; B 20 -3 637 889 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 643 ;
+C -1 ; WX 778 ; N Eth ; B 19 -3 741 692 ;
+C -1 ; WX 667 ; N Ccedilla ; B 45 -216 651 706 ;
+C -1 ; WX 278 ; N lcommaaccent ; B -43 -276 251 733 ;
+C -1 ; WX 353 ; N tcaron ; B 41 -9 420 752 ;
+C -1 ; WX 389 ; N eogonek ; B 15 -226 374 482 ;
+C -1 ; WX 778 ; N Uogonek ; B 88 -226 798 692 ;
+C -1 ; WX 722 ; N Aacute ; B -19 -3 677 897 ;
+C -1 ; WX 722 ; N Adieresis ; B -19 -3 677 847 ;
+C -1 ; WX 389 ; N egrave ; B 15 -11 374 707 ;
+C -1 ; WX 444 ; N zacute ; B -1 -11 416 707 ;
+C -1 ; WX 278 ; N iogonek ; B 16 -212 264 712 ;
+C -1 ; WX 778 ; N Oacute ; B 53 -18 748 897 ;
+C -1 ; WX 444 ; N oacute ; B 17 -11 414 707 ;
+C -1 ; WX 444 ; N amacron ; B 4 -11 442 609 ;
+C -1 ; WX 389 ; N sacute ; B 9 -11 374 707 ;
+C -1 ; WX 278 ; N idieresis ; B 34 -9 355 657 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 53 -18 748 889 ;
+C -1 ; WX 778 ; N Ugrave ; B 88 -18 798 897 ;
+C -1 ; WX 600 ; N Delta ; B 66 0 668 688 ;
+C -1 ; WX 500 ; N thorn ; B -39 -276 433 733 ;
+C -1 ; WX 300 ; N twosuperior ; B 13 278 290 699 ;
+C -1 ; WX 778 ; N Odieresis ; B 53 -18 748 847 ;
+C -1 ; WX 556 ; N mu ; B 15 -226 512 482 ;
+C -1 ; WX 278 ; N igrave ; B 34 -9 270 707 ;
+C -1 ; WX 444 ; N ohungarumlaut ; B 17 -11 523 707 ;
+C -1 ; WX 611 ; N Eogonek ; B 30 -207 570 692 ;
+C -1 ; WX 500 ; N dcroat ; B 17 -11 526 733 ;
+C -1 ; WX 750 ; N threequarters ; B 35 -2 715 699 ;
+C -1 ; WX 556 ; N Scedilla ; B 42 -216 506 706 ;
+C -1 ; WX 348 ; N lcaron ; B 36 -9 402 733 ;
+C -1 ; WX 667 ; N Kcommaaccent ; B 13 -276 683 692 ;
+C -1 ; WX 556 ; N Lacute ; B 16 -3 523 897 ;
+C -1 ; WX 1000 ; N trademark ; B 52 285 951 689 ;
+C -1 ; WX 389 ; N edotaccent ; B 15 -11 374 657 ;
+C -1 ; WX 333 ; N Igrave ; B 7 -3 354 897 ;
+C -1 ; WX 333 ; N Imacron ; B 7 -3 426 799 ;
+C -1 ; WX 556 ; N Lcaron ; B 16 -3 541 712 ;
+C -1 ; WX 750 ; N onehalf ; B 31 -2 721 699 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 642 ;
+C -1 ; WX 444 ; N ocircumflex ; B 17 -11 411 699 ;
+C -1 ; WX 556 ; N ntilde ; B 24 -9 514 658 ;
+C -1 ; WX 778 ; N Uhungarumlaut ; B 88 -18 798 897 ;
+C -1 ; WX 611 ; N Eacute ; B 30 -3 570 897 ;
+C -1 ; WX 389 ; N emacron ; B 15 -11 434 609 ;
+C -1 ; WX 500 ; N gbreve ; B -37 -276 498 697 ;
+C -1 ; WX 750 ; N onequarter ; B 31 -2 715 699 ;
+C -1 ; WX 556 ; N Scaron ; B 42 -18 539 889 ;
+C -1 ; WX 556 ; N Scommaaccent ; B 42 -276 506 706 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 53 -18 748 897 ;
+C -1 ; WX 400 ; N degree ; B 90 389 390 689 ;
+C -1 ; WX 444 ; N ograve ; B 17 -11 411 707 ;
+C -1 ; WX 667 ; N Ccaron ; B 45 -18 651 889 ;
+C -1 ; WX 556 ; N ugrave ; B 32 -11 512 707 ;
+C -1 ; WX 453 ; N radical ; B 12 -55 442 747 ;
+C -1 ; WX 778 ; N Dcaron ; B 28 -3 741 889 ;
+C -1 ; WX 389 ; N rcommaaccent ; B -28 -276 384 482 ;
+C -1 ; WX 778 ; N Ntilde ; B 2 -11 804 848 ;
+C -1 ; WX 444 ; N otilde ; B 17 -11 446 658 ;
+C -1 ; WX 667 ; N Rcommaaccent ; B 9 -276 639 692 ;
+C -1 ; WX 556 ; N Lcommaaccent ; B 16 -276 523 692 ;
+C -1 ; WX 722 ; N Atilde ; B -19 -3 677 848 ;
+C -1 ; WX 722 ; N Aogonek ; B -19 -210 695 705 ;
+C -1 ; WX 722 ; N Aring ; B -19 -3 677 918 ;
+C -1 ; WX 778 ; N Otilde ; B 53 -18 748 848 ;
+C -1 ; WX 444 ; N zdotaccent ; B -1 -11 416 657 ;
+C -1 ; WX 611 ; N Ecaron ; B 30 -3 588 889 ;
+C -1 ; WX 333 ; N Iogonek ; B 7 -210 354 692 ;
+C -1 ; WX 444 ; N kcommaaccent ; B 8 -276 449 733 ;
+C -1 ; WX 606 ; N minus ; B 51 224 555 280 ;
+C -1 ; WX 333 ; N Icircumflex ; B 7 -3 390 889 ;
+C -1 ; WX 556 ; N ncaron ; B 24 -9 533 699 ;
+C -1 ; WX 333 ; N tcommaaccent ; B -16 -276 310 646 ;
+C -1 ; WX 606 ; N logicalnot ; B 51 118 555 378 ;
+C -1 ; WX 444 ; N odieresis ; B 17 -11 438 657 ;
+C -1 ; WX 556 ; N udieresis ; B 32 -11 512 657 ;
+C -1 ; WX 549 ; N notequal ; B 12 -16 537 538 ;
+C -1 ; WX 500 ; N gcommaaccent ; B -37 -276 498 761 ;
+C -1 ; WX 444 ; N eth ; B 17 -11 478 733 ;
+C -1 ; WX 444 ; N zcaron ; B -1 -11 447 699 ;
+C -1 ; WX 556 ; N ncommaaccent ; B 24 -276 514 482 ;
+C -1 ; WX 300 ; N onesuperior ; B 61 278 285 699 ;
+C -1 ; WX 278 ; N imacron ; B 34 -9 324 579 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 962
+KPX A T -55
+KPX A Tcaron -55
+KPX A Tcommaaccent -55
+KPX A V -74
+KPX A W -55
+KPX A Y -55
+KPX A Yacute -55
+KPX A Ydieresis -55
+KPX A quoteright -55
+KPX A space -37
+KPX A v -37
+KPX A w -37
+KPX A y -55
+KPX A yacute -55
+KPX A ydieresis -55
+KPX Aacute T -55
+KPX Aacute Tcaron -55
+KPX Aacute Tcommaaccent -55
+KPX Aacute V -74
+KPX Aacute W -55
+KPX Aacute Y -55
+KPX Aacute Yacute -55
+KPX Aacute Ydieresis -55
+KPX Aacute quoteright -55
+KPX Aacute space -37
+KPX Aacute v -37
+KPX Aacute w -37
+KPX Aacute y -55
+KPX Aacute yacute -55
+KPX Aacute ydieresis -55
+KPX Abreve T -55
+KPX Abreve Tcaron -55
+KPX Abreve Tcommaaccent -55
+KPX Abreve V -74
+KPX Abreve W -55
+KPX Abreve Y -55
+KPX Abreve Yacute -55
+KPX Abreve Ydieresis -55
+KPX Abreve quoteright -55
+KPX Abreve space -37
+KPX Abreve v -37
+KPX Abreve w -37
+KPX Abreve y -55
+KPX Abreve yacute -55
+KPX Abreve ydieresis -55
+KPX Acircumflex T -55
+KPX Acircumflex Tcaron -55
+KPX Acircumflex Tcommaaccent -55
+KPX Acircumflex V -74
+KPX Acircumflex W -55
+KPX Acircumflex Y -55
+KPX Acircumflex Yacute -55
+KPX Acircumflex Ydieresis -55
+KPX Acircumflex quoteright -55
+KPX Acircumflex space -37
+KPX Acircumflex v -37
+KPX Acircumflex w -37
+KPX Acircumflex y -55
+KPX Acircumflex yacute -55
+KPX Acircumflex ydieresis -55
+KPX Adieresis T -55
+KPX Adieresis Tcaron -55
+KPX Adieresis Tcommaaccent -55
+KPX Adieresis V -74
+KPX Adieresis W -55
+KPX Adieresis Y -55
+KPX Adieresis Yacute -55
+KPX Adieresis Ydieresis -55
+KPX Adieresis quoteright -55
+KPX Adieresis space -37
+KPX Adieresis v -37
+KPX Adieresis w -37
+KPX Adieresis y -55
+KPX Adieresis yacute -55
+KPX Adieresis ydieresis -55
+KPX Agrave T -55
+KPX Agrave Tcaron -55
+KPX Agrave Tcommaaccent -55
+KPX Agrave V -74
+KPX Agrave W -55
+KPX Agrave Y -55
+KPX Agrave Yacute -55
+KPX Agrave Ydieresis -55
+KPX Agrave quoteright -55
+KPX Agrave space -37
+KPX Agrave v -37
+KPX Agrave w -37
+KPX Agrave y -55
+KPX Agrave yacute -55
+KPX Agrave ydieresis -55
+KPX Amacron T -55
+KPX Amacron Tcaron -55
+KPX Amacron Tcommaaccent -55
+KPX Amacron V -74
+KPX Amacron W -55
+KPX Amacron Y -55
+KPX Amacron Yacute -55
+KPX Amacron Ydieresis -55
+KPX Amacron quoteright -55
+KPX Amacron space -37
+KPX Amacron v -37
+KPX Amacron w -37
+KPX Amacron y -55
+KPX Amacron yacute -55
+KPX Amacron ydieresis -55
+KPX Aogonek T -55
+KPX Aogonek Tcaron -55
+KPX Aogonek Tcommaaccent -55
+KPX Aogonek V -74
+KPX Aogonek W -55
+KPX Aogonek Y -55
+KPX Aogonek Yacute -55
+KPX Aogonek Ydieresis -55
+KPX Aogonek quoteright -55
+KPX Aogonek space -37
+KPX Aogonek v -37
+KPX Aogonek w -37
+KPX Aogonek y -55
+KPX Aogonek yacute -55
+KPX Aogonek ydieresis -55
+KPX Aring T -55
+KPX Aring Tcaron -55
+KPX Aring Tcommaaccent -55
+KPX Aring V -74
+KPX Aring W -55
+KPX Aring Y -55
+KPX Aring Yacute -55
+KPX Aring Ydieresis -55
+KPX Aring quoteright -55
+KPX Aring space -37
+KPX Aring v -37
+KPX Aring w -37
+KPX Aring y -55
+KPX Aring yacute -55
+KPX Aring ydieresis -55
+KPX Atilde T -55
+KPX Atilde Tcaron -55
+KPX Atilde Tcommaaccent -55
+KPX Atilde V -74
+KPX Atilde W -55
+KPX Atilde Y -55
+KPX Atilde Yacute -55
+KPX Atilde Ydieresis -55
+KPX Atilde quoteright -55
+KPX Atilde space -37
+KPX Atilde v -37
+KPX Atilde w -37
+KPX Atilde y -55
+KPX Atilde yacute -55
+KPX Atilde ydieresis -55
+KPX F A -111
+KPX F Aacute -111
+KPX F Abreve -111
+KPX F Acircumflex -111
+KPX F Adieresis -111
+KPX F Agrave -111
+KPX F Amacron -111
+KPX F Aogonek -111
+KPX F Aring -111
+KPX F Atilde -111
+KPX F comma -111
+KPX F period -111
+KPX L T -74
+KPX L Tcaron -74
+KPX L Tcommaaccent -74
+KPX L V -74
+KPX L W -74
+KPX L Y -74
+KPX L Yacute -74
+KPX L Ydieresis -74
+KPX L quoteright -37
+KPX L space -18
+KPX L y -37
+KPX L yacute -37
+KPX L ydieresis -37
+KPX Lacute T -74
+KPX Lacute Tcaron -74
+KPX Lacute Tcommaaccent -74
+KPX Lacute V -74
+KPX Lacute W -74
+KPX Lacute Y -74
+KPX Lacute Yacute -74
+KPX Lacute Ydieresis -74
+KPX Lacute quoteright -37
+KPX Lacute space -18
+KPX Lacute y -37
+KPX Lacute yacute -37
+KPX Lacute ydieresis -37
+KPX Lcaron quoteright -37
+KPX Lcaron space -18
+KPX Lcaron y -37
+KPX Lcaron yacute -37
+KPX Lcaron ydieresis -37
+KPX Lcommaaccent T -74
+KPX Lcommaaccent Tcaron -74
+KPX Lcommaaccent Tcommaaccent -74
+KPX Lcommaaccent V -74
+KPX Lcommaaccent W -74
+KPX Lcommaaccent Y -74
+KPX Lcommaaccent Yacute -74
+KPX Lcommaaccent Ydieresis -74
+KPX Lcommaaccent quoteright -37
+KPX Lcommaaccent space -18
+KPX Lcommaaccent y -37
+KPX Lcommaaccent yacute -37
+KPX Lcommaaccent ydieresis -37
+KPX Lslash T -74
+KPX Lslash Tcaron -74
+KPX Lslash Tcommaaccent -74
+KPX Lslash V -74
+KPX Lslash W -74
+KPX Lslash Y -74
+KPX Lslash Yacute -74
+KPX Lslash Ydieresis -74
+KPX Lslash quoteright -37
+KPX Lslash space -18
+KPX Lslash y -37
+KPX Lslash yacute -37
+KPX Lslash ydieresis -37
+KPX P A -129
+KPX P Aacute -129
+KPX P Abreve -129
+KPX P Acircumflex -129
+KPX P Adieresis -129
+KPX P Agrave -129
+KPX P Amacron -129
+KPX P Aogonek -129
+KPX P Aring -129
+KPX P Atilde -129
+KPX P comma -129
+KPX P period -129
+KPX R T -55
+KPX R Tcaron -55
+KPX R Tcommaaccent -55
+KPX R V -74
+KPX R W -55
+KPX R Y -55
+KPX R Yacute -55
+KPX R Ydieresis -55
+KPX R y -37
+KPX R yacute -37
+KPX R ydieresis -37
+KPX Racute T -55
+KPX Racute Tcaron -55
+KPX Racute Tcommaaccent -55
+KPX Racute V -74
+KPX Racute W -55
+KPX Racute Y -55
+KPX Racute Yacute -55
+KPX Racute Ydieresis -55
+KPX Racute y -37
+KPX Racute yacute -37
+KPX Racute ydieresis -37
+KPX Rcaron T -55
+KPX Rcaron Tcaron -55
+KPX Rcaron Tcommaaccent -55
+KPX Rcaron V -74
+KPX Rcaron W -55
+KPX Rcaron Y -55
+KPX Rcaron Yacute -55
+KPX Rcaron Ydieresis -55
+KPX Rcaron y -37
+KPX Rcaron yacute -37
+KPX Rcaron ydieresis -37
+KPX Rcommaaccent T -55
+KPX Rcommaaccent Tcaron -55
+KPX Rcommaaccent Tcommaaccent -55
+KPX Rcommaaccent V -74
+KPX Rcommaaccent W -55
+KPX Rcommaaccent Y -55
+KPX Rcommaaccent Yacute -55
+KPX Rcommaaccent Ydieresis -55
+KPX Rcommaaccent y -37
+KPX Rcommaaccent yacute -37
+KPX Rcommaaccent ydieresis -37
+KPX T A -92
+KPX T Aacute -92
+KPX T Abreve -92
+KPX T Acircumflex -92
+KPX T Adieresis -92
+KPX T Agrave -92
+KPX T Amacron -92
+KPX T Aogonek -92
+KPX T Aring -92
+KPX T Atilde -92
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -111
+KPX T aacute -111
+KPX T abreve -71
+KPX T acircumflex -71
+KPX T adieresis -71
+KPX T agrave -71
+KPX T amacron -71
+KPX T aogonek -111
+KPX T aring -71
+KPX T atilde -71
+KPX T c -111
+KPX T cacute -111
+KPX T ccaron -111
+KPX T ccedilla -111
+KPX T colon -74
+KPX T comma -74
+KPX T e -111
+KPX T eacute -111
+KPX T ecaron -111
+KPX T ecircumflex -71
+KPX T edieresis -71
+KPX T edotaccent -111
+KPX T egrave -71
+KPX T emacron -71
+KPX T eogonek -111
+KPX T hyphen -55
+KPX T i -55
+KPX T iacute -55
+KPX T iogonek -55
+KPX T o -111
+KPX T oacute -111
+KPX T ocircumflex -71
+KPX T odieresis -71
+KPX T ograve -71
+KPX T ohungarumlaut -111
+KPX T omacron -71
+KPX T oslash -111
+KPX T otilde -71
+KPX T period -74
+KPX T r -111
+KPX T racute -111
+KPX T rcaron -111
+KPX T rcommaaccent -111
+KPX T s -111
+KPX T sacute -111
+KPX T scaron -71
+KPX T scedilla -111
+KPX T scommaaccent -111
+KPX T semicolon -74
+KPX T u -111
+KPX T uacute -111
+KPX T ucircumflex -111
+KPX T udieresis -111
+KPX T ugrave -111
+KPX T uhungarumlaut -111
+KPX T umacron -111
+KPX T uogonek -111
+KPX T uring -111
+KPX T w -92
+KPX T y -92
+KPX T yacute -92
+KPX T ydieresis -92
+KPX Tcaron A -92
+KPX Tcaron Aacute -92
+KPX Tcaron Abreve -92
+KPX Tcaron Acircumflex -92
+KPX Tcaron Adieresis -92
+KPX Tcaron Agrave -92
+KPX Tcaron Amacron -92
+KPX Tcaron Aogonek -92
+KPX Tcaron Aring -92
+KPX Tcaron Atilde -92
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -111
+KPX Tcaron aacute -111
+KPX Tcaron abreve -71
+KPX Tcaron acircumflex -71
+KPX Tcaron adieresis -71
+KPX Tcaron agrave -71
+KPX Tcaron amacron -71
+KPX Tcaron aogonek -111
+KPX Tcaron aring -71
+KPX Tcaron atilde -71
+KPX Tcaron c -111
+KPX Tcaron cacute -111
+KPX Tcaron ccaron -111
+KPX Tcaron ccedilla -111
+KPX Tcaron colon -74
+KPX Tcaron comma -74
+KPX Tcaron e -111
+KPX Tcaron eacute -111
+KPX Tcaron ecaron -111
+KPX Tcaron ecircumflex -71
+KPX Tcaron edieresis -71
+KPX Tcaron edotaccent -111
+KPX Tcaron egrave -71
+KPX Tcaron emacron -71
+KPX Tcaron eogonek -111
+KPX Tcaron hyphen -55
+KPX Tcaron i -55
+KPX Tcaron iacute -55
+KPX Tcaron iogonek -55
+KPX Tcaron o -111
+KPX Tcaron oacute -111
+KPX Tcaron ocircumflex -71
+KPX Tcaron odieresis -71
+KPX Tcaron ograve -71
+KPX Tcaron ohungarumlaut -111
+KPX Tcaron omacron -71
+KPX Tcaron oslash -111
+KPX Tcaron otilde -71
+KPX Tcaron period -74
+KPX Tcaron r -111
+KPX Tcaron racute -111
+KPX Tcaron rcaron -111
+KPX Tcaron rcommaaccent -111
+KPX Tcaron s -111
+KPX Tcaron sacute -111
+KPX Tcaron scaron -71
+KPX Tcaron scedilla -111
+KPX Tcaron scommaaccent -111
+KPX Tcaron semicolon -74
+KPX Tcaron u -111
+KPX Tcaron uacute -111
+KPX Tcaron ucircumflex -111
+KPX Tcaron udieresis -111
+KPX Tcaron ugrave -111
+KPX Tcaron uhungarumlaut -111
+KPX Tcaron umacron -111
+KPX Tcaron uogonek -111
+KPX Tcaron uring -111
+KPX Tcaron w -92
+KPX Tcaron y -92
+KPX Tcaron yacute -92
+KPX Tcaron ydieresis -92
+KPX Tcommaaccent A -92
+KPX Tcommaaccent Aacute -92
+KPX Tcommaaccent Abreve -92
+KPX Tcommaaccent Acircumflex -92
+KPX Tcommaaccent Adieresis -92
+KPX Tcommaaccent Agrave -92
+KPX Tcommaaccent Amacron -92
+KPX Tcommaaccent Aogonek -92
+KPX Tcommaaccent Aring -92
+KPX Tcommaaccent Atilde -92
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -111
+KPX Tcommaaccent aacute -111
+KPX Tcommaaccent abreve -71
+KPX Tcommaaccent acircumflex -71
+KPX Tcommaaccent adieresis -71
+KPX Tcommaaccent agrave -71
+KPX Tcommaaccent amacron -71
+KPX Tcommaaccent aogonek -111
+KPX Tcommaaccent aring -71
+KPX Tcommaaccent atilde -71
+KPX Tcommaaccent c -111
+KPX Tcommaaccent cacute -111
+KPX Tcommaaccent ccaron -111
+KPX Tcommaaccent ccedilla -111
+KPX Tcommaaccent colon -74
+KPX Tcommaaccent comma -74
+KPX Tcommaaccent e -111
+KPX Tcommaaccent eacute -111
+KPX Tcommaaccent ecaron -111
+KPX Tcommaaccent ecircumflex -71
+KPX Tcommaaccent edieresis -71
+KPX Tcommaaccent edotaccent -111
+KPX Tcommaaccent egrave -71
+KPX Tcommaaccent emacron -71
+KPX Tcommaaccent eogonek -111
+KPX Tcommaaccent hyphen -55
+KPX Tcommaaccent i -55
+KPX Tcommaaccent iacute -55
+KPX Tcommaaccent iogonek -55
+KPX Tcommaaccent o -111
+KPX Tcommaaccent oacute -111
+KPX Tcommaaccent ocircumflex -111
+KPX Tcommaaccent odieresis -111
+KPX Tcommaaccent ograve -111
+KPX Tcommaaccent ohungarumlaut -111
+KPX Tcommaaccent omacron -111
+KPX Tcommaaccent oslash -111
+KPX Tcommaaccent otilde -111
+KPX Tcommaaccent period -74
+KPX Tcommaaccent r -111
+KPX Tcommaaccent racute -111
+KPX Tcommaaccent rcaron -111
+KPX Tcommaaccent rcommaaccent -111
+KPX Tcommaaccent s -111
+KPX Tcommaaccent sacute -111
+KPX Tcommaaccent scaron -71
+KPX Tcommaaccent scedilla -111
+KPX Tcommaaccent scommaaccent -111
+KPX Tcommaaccent semicolon -74
+KPX Tcommaaccent u -111
+KPX Tcommaaccent uacute -111
+KPX Tcommaaccent ucircumflex -111
+KPX Tcommaaccent udieresis -111
+KPX Tcommaaccent ugrave -111
+KPX Tcommaaccent uhungarumlaut -111
+KPX Tcommaaccent umacron -111
+KPX Tcommaaccent uogonek -111
+KPX Tcommaaccent uring -111
+KPX Tcommaaccent w -92
+KPX Tcommaaccent y -92
+KPX Tcommaaccent yacute -92
+KPX Tcommaaccent ydieresis -92
+KPX V A -210
+KPX V Aacute -210
+KPX V Abreve -210
+KPX V Acircumflex -210
+KPX V Adieresis -210
+KPX V Agrave -210
+KPX V Amacron -210
+KPX V Aogonek -210
+KPX V Aring -210
+KPX V Atilde -210
+KPX V a -74
+KPX V aacute -74
+KPX V abreve -74
+KPX V acircumflex -74
+KPX V adieresis -74
+KPX V agrave -74
+KPX V amacron -74
+KPX V aogonek -74
+KPX V aring -74
+KPX V atilde -74
+KPX V colon -37
+KPX V comma -129
+KPX V e -92
+KPX V eacute -92
+KPX V ecaron -92
+KPX V ecircumflex -52
+KPX V edieresis -52
+KPX V edotaccent -92
+KPX V egrave -52
+KPX V emacron -52
+KPX V eogonek -92
+KPX V hyphen -55
+KPX V i -74
+KPX V iacute -74
+KPX V icircumflex -34
+KPX V idieresis -34
+KPX V igrave -34
+KPX V imacron -34
+KPX V iogonek -74
+KPX V o -74
+KPX V oacute -74
+KPX V ocircumflex -74
+KPX V odieresis -74
+KPX V ograve -74
+KPX V ohungarumlaut -74
+KPX V omacron -74
+KPX V oslash -74
+KPX V otilde -74
+KPX V period -129
+KPX V r -92
+KPX V racute -92
+KPX V rcaron -92
+KPX V rcommaaccent -92
+KPX V semicolon -37
+KPX V u -74
+KPX V uacute -74
+KPX V ucircumflex -74
+KPX V udieresis -74
+KPX V ugrave -74
+KPX V uhungarumlaut -74
+KPX V umacron -74
+KPX V uogonek -74
+KPX V uring -74
+KPX V y -74
+KPX V yacute -74
+KPX V ydieresis -74
+KPX W A -92
+KPX W Aacute -92
+KPX W Abreve -92
+KPX W Acircumflex -92
+KPX W Adieresis -92
+KPX W Agrave -92
+KPX W Amacron -92
+KPX W Aogonek -92
+KPX W Aring -92
+KPX W Atilde -92
+KPX W a -20
+KPX W aacute -20
+KPX W abreve -20
+KPX W acircumflex -20
+KPX W adieresis -20
+KPX W agrave -20
+KPX W amacron -20
+KPX W aogonek -20
+KPX W aring -20
+KPX W atilde -20
+KPX W colon -18
+KPX W comma -55
+KPX W e -20
+KPX W eacute -20
+KPX W ecaron -20
+KPX W ecircumflex -20
+KPX W edieresis -20
+KPX W edotaccent -20
+KPX W egrave -20
+KPX W emacron -20
+KPX W eogonek -20
+KPX W hyphen -18
+KPX W i -20
+KPX W iacute -20
+KPX W iogonek -20
+KPX W o -20
+KPX W oacute -20
+KPX W ocircumflex -20
+KPX W odieresis -20
+KPX W ograve -20
+KPX W ohungarumlaut -20
+KPX W omacron -20
+KPX W oslash -20
+KPX W otilde -20
+KPX W period -55
+KPX W r -20
+KPX W racute -20
+KPX W rcaron -20
+KPX W rcommaaccent -20
+KPX W semicolon -18
+KPX W u -20
+KPX W uacute -20
+KPX W ucircumflex -20
+KPX W udieresis -20
+KPX W ugrave -20
+KPX W uhungarumlaut -20
+KPX W umacron -20
+KPX W uogonek -20
+KPX W uring -20
+KPX W y -20
+KPX W yacute -20
+KPX W ydieresis -20
+KPX Y A -92
+KPX Y Aacute -92
+KPX Y Abreve -92
+KPX Y Acircumflex -92
+KPX Y Adieresis -92
+KPX Y Agrave -92
+KPX Y Amacron -92
+KPX Y Aogonek -92
+KPX Y Aring -92
+KPX Y Atilde -92
+KPX Y a -92
+KPX Y aacute -92
+KPX Y abreve -92
+KPX Y acircumflex -92
+KPX Y adieresis -92
+KPX Y agrave -92
+KPX Y amacron -92
+KPX Y aogonek -92
+KPX Y aring -92
+KPX Y atilde -92
+KPX Y colon -74
+KPX Y comma -92
+KPX Y e -111
+KPX Y eacute -111
+KPX Y ecaron -111
+KPX Y ecircumflex -71
+KPX Y edieresis -71
+KPX Y edotaccent -111
+KPX Y egrave -71
+KPX Y emacron -71
+KPX Y eogonek -111
+KPX Y hyphen -74
+KPX Y i -55
+KPX Y iacute -55
+KPX Y iogonek -55
+KPX Y o -111
+KPX Y oacute -111
+KPX Y ocircumflex -111
+KPX Y odieresis -111
+KPX Y ograve -111
+KPX Y ohungarumlaut -111
+KPX Y omacron -111
+KPX Y oslash -111
+KPX Y otilde -111
+KPX Y p -74
+KPX Y period -92
+KPX Y q -92
+KPX Y semicolon -74
+KPX Y u -92
+KPX Y uacute -92
+KPX Y ucircumflex -92
+KPX Y udieresis -92
+KPX Y ugrave -92
+KPX Y uhungarumlaut -92
+KPX Y umacron -92
+KPX Y uogonek -92
+KPX Y uring -92
+KPX Y v -74
+KPX Yacute A -92
+KPX Yacute Aacute -92
+KPX Yacute Abreve -92
+KPX Yacute Acircumflex -92
+KPX Yacute Adieresis -92
+KPX Yacute Agrave -92
+KPX Yacute Amacron -92
+KPX Yacute Aogonek -92
+KPX Yacute Aring -92
+KPX Yacute Atilde -92
+KPX Yacute a -92
+KPX Yacute aacute -92
+KPX Yacute abreve -92
+KPX Yacute acircumflex -92
+KPX Yacute adieresis -92
+KPX Yacute agrave -92
+KPX Yacute amacron -92
+KPX Yacute aogonek -92
+KPX Yacute aring -92
+KPX Yacute atilde -92
+KPX Yacute colon -74
+KPX Yacute comma -92
+KPX Yacute e -111
+KPX Yacute eacute -111
+KPX Yacute ecaron -111
+KPX Yacute ecircumflex -71
+KPX Yacute edieresis -71
+KPX Yacute edotaccent -111
+KPX Yacute egrave -71
+KPX Yacute emacron -71
+KPX Yacute eogonek -111
+KPX Yacute hyphen -74
+KPX Yacute i -55
+KPX Yacute iacute -55
+KPX Yacute iogonek -55
+KPX Yacute o -111
+KPX Yacute oacute -111
+KPX Yacute ocircumflex -111
+KPX Yacute odieresis -111
+KPX Yacute ograve -111
+KPX Yacute ohungarumlaut -111
+KPX Yacute omacron -111
+KPX Yacute oslash -111
+KPX Yacute otilde -111
+KPX Yacute p -74
+KPX Yacute period -92
+KPX Yacute q -92
+KPX Yacute semicolon -74
+KPX Yacute u -92
+KPX Yacute uacute -92
+KPX Yacute ucircumflex -92
+KPX Yacute udieresis -92
+KPX Yacute ugrave -92
+KPX Yacute uhungarumlaut -92
+KPX Yacute umacron -92
+KPX Yacute uogonek -92
+KPX Yacute uring -92
+KPX Yacute v -74
+KPX Ydieresis A -92
+KPX Ydieresis Aacute -92
+KPX Ydieresis Abreve -92
+KPX Ydieresis Acircumflex -92
+KPX Ydieresis Adieresis -92
+KPX Ydieresis Agrave -92
+KPX Ydieresis Amacron -92
+KPX Ydieresis Aogonek -92
+KPX Ydieresis Aring -92
+KPX Ydieresis Atilde -92
+KPX Ydieresis a -92
+KPX Ydieresis aacute -92
+KPX Ydieresis abreve -92
+KPX Ydieresis acircumflex -92
+KPX Ydieresis adieresis -92
+KPX Ydieresis agrave -92
+KPX Ydieresis amacron -92
+KPX Ydieresis aogonek -92
+KPX Ydieresis aring -92
+KPX Ydieresis atilde -92
+KPX Ydieresis colon -74
+KPX Ydieresis comma -92
+KPX Ydieresis e -111
+KPX Ydieresis eacute -111
+KPX Ydieresis ecaron -111
+KPX Ydieresis ecircumflex -71
+KPX Ydieresis edieresis -71
+KPX Ydieresis edotaccent -111
+KPX Ydieresis egrave -71
+KPX Ydieresis emacron -71
+KPX Ydieresis eogonek -111
+KPX Ydieresis hyphen -74
+KPX Ydieresis i -55
+KPX Ydieresis iacute -55
+KPX Ydieresis iogonek -55
+KPX Ydieresis o -111
+KPX Ydieresis oacute -111
+KPX Ydieresis ocircumflex -111
+KPX Ydieresis odieresis -111
+KPX Ydieresis ograve -111
+KPX Ydieresis ohungarumlaut -111
+KPX Ydieresis omacron -111
+KPX Ydieresis oslash -111
+KPX Ydieresis otilde -111
+KPX Ydieresis p -74
+KPX Ydieresis period -92
+KPX Ydieresis q -92
+KPX Ydieresis semicolon -74
+KPX Ydieresis u -92
+KPX Ydieresis uacute -92
+KPX Ydieresis ucircumflex -92
+KPX Ydieresis udieresis -92
+KPX Ydieresis ugrave -92
+KPX Ydieresis uhungarumlaut -92
+KPX Ydieresis umacron -92
+KPX Ydieresis uogonek -92
+KPX Ydieresis uring -92
+KPX Ydieresis v -74
+KPX f quoteright 55
+KPX one one -55
+KPX quoteleft quoteleft -74
+KPX quoteright quoteright -74
+KPX quoteright s -55
+KPX quoteright sacute -55
+KPX quoteright scaron -55
+KPX quoteright scedilla -55
+KPX quoteright scommaaccent -55
+KPX quoteright space -55
+KPX quoteright t -37
+KPX quoteright tcommaaccent -37
+KPX r c -18
+KPX r cacute -18
+KPX r ccaron -18
+KPX r ccedilla -18
+KPX r comma -74
+KPX r e -18
+KPX r eacute -18
+KPX r ecaron -18
+KPX r ecircumflex -18
+KPX r edieresis -18
+KPX r edotaccent -18
+KPX r egrave -18
+KPX r emacron -18
+KPX r eogonek -18
+KPX r g -18
+KPX r gbreve -18
+KPX r gcommaaccent -18
+KPX r h -18
+KPX r o -18
+KPX r oacute -18
+KPX r ocircumflex -18
+KPX r odieresis -18
+KPX r ograve -18
+KPX r ohungarumlaut -18
+KPX r omacron -18
+KPX r oslash -18
+KPX r otilde -18
+KPX r period -74
+KPX r q -18
+KPX r quoteright 37
+KPX racute c -18
+KPX racute cacute -18
+KPX racute ccaron -18
+KPX racute ccedilla -18
+KPX racute comma -74
+KPX racute e -18
+KPX racute eacute -18
+KPX racute ecaron -18
+KPX racute ecircumflex -18
+KPX racute edieresis -18
+KPX racute edotaccent -18
+KPX racute egrave -18
+KPX racute emacron -18
+KPX racute eogonek -18
+KPX racute g -18
+KPX racute gbreve -18
+KPX racute gcommaaccent -18
+KPX racute h -18
+KPX racute o -18
+KPX racute oacute -18
+KPX racute ocircumflex -18
+KPX racute odieresis -18
+KPX racute ograve -18
+KPX racute ohungarumlaut -18
+KPX racute omacron -18
+KPX racute oslash -18
+KPX racute otilde -18
+KPX racute period -74
+KPX racute q -18
+KPX racute quoteright 37
+KPX rcaron c -18
+KPX rcaron cacute -18
+KPX rcaron ccaron -18
+KPX rcaron ccedilla -18
+KPX rcaron comma -74
+KPX rcaron e -18
+KPX rcaron eacute -18
+KPX rcaron ecaron -18
+KPX rcaron ecircumflex -18
+KPX rcaron edieresis -18
+KPX rcaron edotaccent -18
+KPX rcaron egrave -18
+KPX rcaron emacron -18
+KPX rcaron eogonek -18
+KPX rcaron g -18
+KPX rcaron gbreve -18
+KPX rcaron gcommaaccent -18
+KPX rcaron h -18
+KPX rcaron o -18
+KPX rcaron oacute -18
+KPX rcaron ocircumflex -18
+KPX rcaron odieresis -18
+KPX rcaron ograve -18
+KPX rcaron ohungarumlaut -18
+KPX rcaron omacron -18
+KPX rcaron oslash -18
+KPX rcaron otilde -18
+KPX rcaron period -74
+KPX rcaron q -18
+KPX rcaron quoteright 37
+KPX rcommaaccent c -18
+KPX rcommaaccent cacute -18
+KPX rcommaaccent ccaron -18
+KPX rcommaaccent ccedilla -18
+KPX rcommaaccent comma -74
+KPX rcommaaccent e -18
+KPX rcommaaccent eacute -18
+KPX rcommaaccent ecaron -18
+KPX rcommaaccent ecircumflex -18
+KPX rcommaaccent edieresis -18
+KPX rcommaaccent edotaccent -18
+KPX rcommaaccent egrave -18
+KPX rcommaaccent emacron -18
+KPX rcommaaccent eogonek -18
+KPX rcommaaccent g -18
+KPX rcommaaccent gbreve -18
+KPX rcommaaccent gcommaaccent -18
+KPX rcommaaccent h -18
+KPX rcommaaccent o -18
+KPX rcommaaccent oacute -18
+KPX rcommaaccent ocircumflex -18
+KPX rcommaaccent odieresis -18
+KPX rcommaaccent ograve -18
+KPX rcommaaccent ohungarumlaut -18
+KPX rcommaaccent omacron -18
+KPX rcommaaccent oslash -18
+KPX rcommaaccent otilde -18
+KPX rcommaaccent period -74
+KPX rcommaaccent q -18
+KPX rcommaaccent quoteright 37
+KPX v comma -55
+KPX v period -55
+KPX w comma -55
+KPX w period -55
+KPX y comma -37
+KPX y period -37
+KPX yacute comma -37
+KPX yacute period -37
+KPX ydieresis comma -37
+KPX ydieresis period -37
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Palatino-Roman.afm b/test/user-template/user/psprint/fontmetric/Palatino-Roman.afm
new file mode 100644
index 000000000000..4c5ec0a68213
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Palatino-Roman.afm
@@ -0,0 +1,1375 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Mon Jun 23 16:33:55 1997
+Comment UniqueID 43073
+Comment VMusage 50775 65800
+FontName Palatino-Roman
+FullName Palatino Roman
+FamilyName Palatino
+Weight Medium
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -166 -283 1021 927
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 692
+XHeight 469
+Ascender 726
+Descender -281
+StdHW 51
+StdVW 84
+StartCharMetrics 314
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 278 ; N exclam ; B 81 -5 197 694 ;
+C 34 ; WX 371 ; N quotedbl ; B 51 469 320 709 ;
+C 35 ; WX 500 ; N numbersign ; B 4 0 495 684 ;
+C 36 ; WX 500 ; N dollar ; B 30 -116 471 731 ;
+C 37 ; WX 840 ; N percent ; B 39 -20 802 709 ;
+C 38 ; WX 778 ; N ampersand ; B 43 -20 753 689 ;
+C 39 ; WX 278 ; N quoteright ; B 45 446 233 709 ;
+C 40 ; WX 333 ; N parenleft ; B 60 -215 301 726 ;
+C 41 ; WX 333 ; N parenright ; B 32 -215 273 726 ;
+C 42 ; WX 389 ; N asterisk ; B 32 342 359 689 ;
+C 43 ; WX 606 ; N plus ; B 51 7 555 512 ;
+C 44 ; WX 250 ; N comma ; B 16 -155 218 123 ;
+C 45 ; WX 333 ; N hyphen ; B 17 215 312 287 ;
+C 46 ; WX 250 ; N period ; B 67 -5 183 111 ;
+C 47 ; WX 606 ; N slash ; B 87 -119 519 726 ;
+C 48 ; WX 500 ; N zero ; B 29 -20 465 689 ;
+C 49 ; WX 500 ; N one ; B 60 -3 418 694 ;
+C 50 ; WX 500 ; N two ; B 16 -3 468 689 ;
+C 51 ; WX 500 ; N three ; B 15 -20 462 689 ;
+C 52 ; WX 500 ; N four ; B 2 -3 472 694 ;
+C 53 ; WX 500 ; N five ; B 13 -20 459 689 ;
+C 54 ; WX 500 ; N six ; B 32 -20 468 689 ;
+C 55 ; WX 500 ; N seven ; B 44 -3 497 689 ;
+C 56 ; WX 500 ; N eight ; B 30 -20 464 689 ;
+C 57 ; WX 500 ; N nine ; B 20 -20 457 689 ;
+C 58 ; WX 250 ; N colon ; B 66 -5 182 456 ;
+C 59 ; WX 250 ; N semicolon ; B 16 -153 218 456 ;
+C 60 ; WX 606 ; N less ; B 57 0 558 522 ;
+C 61 ; WX 606 ; N equal ; B 51 136 555 386 ;
+C 62 ; WX 606 ; N greater ; B 48 0 549 522 ;
+C 63 ; WX 444 ; N question ; B 43 -5 395 694 ;
+C 64 ; WX 747 ; N at ; B 24 -20 724 694 ;
+C 65 ; WX 778 ; N A ; B 15 -3 756 700 ;
+C 66 ; WX 611 ; N B ; B 26 -3 576 692 ;
+C 67 ; WX 709 ; N C ; B 22 -20 670 709 ;
+C 68 ; WX 774 ; N D ; B 22 -4 751 692 ;
+C 69 ; WX 611 ; N E ; B 22 -4 572 692 ;
+C 70 ; WX 556 ; N F ; B 22 -3 536 692 ;
+C 71 ; WX 763 ; N G ; B 22 -20 728 709 ;
+C 72 ; WX 832 ; N H ; B 22 -3 810 692 ;
+C 73 ; WX 337 ; N I ; B 22 -3 315 692 ;
+C 74 ; WX 333 ; N J ; B -15 -194 311 692 ;
+C 75 ; WX 726 ; N K ; B 22 -3 719 692 ;
+C 76 ; WX 611 ; N L ; B 22 -4 586 692 ;
+C 77 ; WX 946 ; N M ; B 16 -13 926 692 ;
+C 78 ; WX 831 ; N N ; B 17 -20 813 692 ;
+C 79 ; WX 786 ; N O ; B 22 -20 764 709 ;
+C 80 ; WX 604 ; N P ; B 22 -3 580 692 ;
+C 81 ; WX 786 ; N Q ; B 22 -176 764 709 ;
+C 82 ; WX 668 ; N R ; B 22 -3 669 692 ;
+C 83 ; WX 525 ; N S ; B 24 -20 503 709 ;
+C 84 ; WX 613 ; N T ; B 18 -3 595 692 ;
+C 85 ; WX 778 ; N U ; B 12 -20 759 692 ;
+C 86 ; WX 722 ; N V ; B 8 -9 706 692 ;
+C 87 ; WX 1000 ; N W ; B 8 -9 984 700 ;
+C 88 ; WX 667 ; N X ; B 14 -3 648 700 ;
+C 89 ; WX 667 ; N Y ; B 9 -3 654 705 ;
+C 90 ; WX 667 ; N Z ; B 15 -3 638 692 ;
+C 91 ; WX 333 ; N bracketleft ; B 79 -184 288 726 ;
+C 92 ; WX 606 ; N backslash ; B 81 0 512 726 ;
+C 93 ; WX 333 ; N bracketright ; B 45 -184 254 726 ;
+C 94 ; WX 606 ; N asciicircum ; B 51 283 554 689 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 278 ; N quoteleft ; B 45 446 233 709 ;
+C 97 ; WX 500 ; N a ; B 32 -12 471 469 ;
+C 98 ; WX 553 ; N b ; B -15 -12 508 726 ;
+C 99 ; WX 444 ; N c ; B 26 -20 413 469 ;
+C 100 ; WX 611 ; N d ; B 35 -12 579 726 ;
+C 101 ; WX 479 ; N e ; B 26 -20 448 469 ;
+C 102 ; WX 333 ; N f ; B 23 -3 341 728 ; L i fi ; L l fl ;
+C 103 ; WX 556 ; N g ; B 32 -283 544 469 ;
+C 104 ; WX 582 ; N h ; B 6 -3 572 726 ;
+C 105 ; WX 291 ; N i ; B 21 -3 271 687 ;
+C 106 ; WX 234 ; N j ; B -40 -283 167 688 ;
+C 107 ; WX 556 ; N k ; B 21 -12 549 726 ;
+C 108 ; WX 291 ; N l ; B 21 -3 271 726 ;
+C 109 ; WX 883 ; N m ; B 16 -3 869 469 ;
+C 110 ; WX 582 ; N n ; B 6 -3 572 469 ;
+C 111 ; WX 546 ; N o ; B 32 -20 514 469 ;
+C 112 ; WX 601 ; N p ; B 8 -281 554 469 ;
+C 113 ; WX 560 ; N q ; B 35 -281 560 469 ;
+C 114 ; WX 395 ; N r ; B 21 -3 374 469 ;
+C 115 ; WX 424 ; N s ; B 30 -20 391 469 ;
+C 116 ; WX 326 ; N t ; B 22 -12 319 621 ;
+C 117 ; WX 603 ; N u ; B 18 -12 581 469 ;
+C 118 ; WX 565 ; N v ; B 6 -7 539 459 ;
+C 119 ; WX 834 ; N w ; B 6 -7 808 469 ;
+C 120 ; WX 516 ; N x ; B 20 -3 496 469 ;
+C 121 ; WX 556 ; N y ; B 12 -283 544 459 ;
+C 122 ; WX 500 ; N z ; B 16 -3 466 462 ;
+C 123 ; WX 333 ; N braceleft ; B 58 -175 289 726 ;
+C 124 ; WX 606 ; N bar ; B 275 -250 331 750 ;
+C 125 ; WX 333 ; N braceright ; B 44 -175 275 726 ;
+C 126 ; WX 606 ; N asciitilde ; B 51 176 555 347 ;
+C 161 ; WX 278 ; N exclamdown ; B 81 -225 197 469 ;
+C 162 ; WX 500 ; N cent ; B 61 -101 448 562 ;
+C 163 ; WX 500 ; N sterling ; B 12 -13 478 694 ;
+C 164 ; WX 167 ; N fraction ; B -166 0 337 689 ;
+C 165 ; WX 500 ; N yen ; B 5 -3 496 702 ;
+C 166 ; WX 500 ; N florin ; B 0 -262 473 706 ;
+C 167 ; WX 500 ; N section ; B 26 -219 465 709 ;
+C 168 ; WX 500 ; N currency ; B 30 96 470 531 ;
+C 169 ; WX 208 ; N quotesingle ; B 60 469 148 709 ;
+C 170 ; WX 500 ; N quotedblleft ; B 51 446 449 709 ;
+C 171 ; WX 500 ; N guillemotleft ; B 50 71 450 428 ;
+C 172 ; WX 331 ; N guilsinglleft ; B 66 71 265 428 ;
+C 173 ; WX 331 ; N guilsinglright ; B 66 71 265 428 ;
+C 174 ; WX 605 ; N fi ; B 23 -3 587 728 ;
+C 175 ; WX 608 ; N fl ; B 23 -3 590 728 ;
+C 177 ; WX 500 ; N endash ; B 0 219 500 277 ;
+C 178 ; WX 500 ; N dagger ; B 34 -5 466 694 ;
+C 179 ; WX 500 ; N daggerdbl ; B 34 -249 466 694 ;
+C 180 ; WX 250 ; N periodcentered ; B 67 203 183 319 ;
+C 182 ; WX 628 ; N paragraph ; B 39 -150 589 695 ;
+C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ;
+C 184 ; WX 278 ; N quotesinglbase ; B 22 -153 210 110 ;
+C 185 ; WX 500 ; N quotedblbase ; B 51 -153 449 110 ;
+C 186 ; WX 500 ; N quotedblright ; B 51 446 449 709 ;
+C 187 ; WX 500 ; N guillemotright ; B 50 71 450 428 ;
+C 188 ; WX 1000 ; N ellipsis ; B 109 -5 891 111 ;
+C 189 ; WX 1144 ; N perthousand ; B 123 -20 1021 709 ;
+C 191 ; WX 444 ; N questiondown ; B 43 -231 395 469 ;
+C 193 ; WX 333 ; N grave ; B 31 506 255 677 ;
+C 194 ; WX 333 ; N acute ; B 78 506 302 677 ;
+C 195 ; WX 333 ; N circumflex ; B 11 510 323 677 ;
+C 196 ; WX 333 ; N tilde ; B 2 535 332 640 ;
+C 197 ; WX 333 ; N macron ; B 11 538 323 591 ;
+C 198 ; WX 333 ; N breve ; B 26 506 308 664 ;
+C 199 ; WX 250 ; N dotaccent ; B 70 576 181 687 ;
+C 200 ; WX 333 ; N dieresis ; B 12 576 322 687 ;
+C 202 ; WX 333 ; N ring ; B 67 496 267 696 ;
+C 203 ; WX 333 ; N cedilla ; B 96 -225 304 -10 ;
+C 205 ; WX 380 ; N hungarumlaut ; B 3 506 377 687 ;
+C 206 ; WX 313 ; N ogonek ; B 50 -225 288 -20 ;
+C 207 ; WX 333 ; N caron ; B 11 510 323 677 ;
+C 208 ; WX 1000 ; N emdash ; B 0 219 1000 277 ;
+C 225 ; WX 944 ; N AE ; B -10 -4 908 692 ;
+C 227 ; WX 333 ; N ordfeminine ; B 24 422 310 709 ;
+C 232 ; WX 611 ; N Lslash ; B 6 -4 586 692 ;
+C 233 ; WX 833 ; N Oslash ; B 30 -20 797 709 ;
+C 234 ; WX 998 ; N OE ; B 22 -20 962 709 ;
+C 235 ; WX 333 ; N ordmasculine ; B 10 416 323 709 ;
+C 241 ; WX 758 ; N ae ; B 30 -20 732 469 ;
+C 245 ; WX 287 ; N dotlessi ; B 21 -3 271 469 ;
+C 248 ; WX 291 ; N lslash ; B -14 -3 306 726 ;
+C 249 ; WX 556 ; N oslash ; B 16 -23 530 474 ;
+C 250 ; WX 827 ; N oe ; B 32 -20 800 469 ;
+C 251 ; WX 556 ; N germandbls ; B 23 -9 519 731 ;
+C -1 ; WX 337 ; N Idieresis ; B 14 -3 324 868 ;
+C -1 ; WX 479 ; N eacute ; B 26 -20 448 697 ;
+C -1 ; WX 500 ; N abreve ; B 32 -12 471 684 ;
+C -1 ; WX 603 ; N uhungarumlaut ; B 18 -12 581 707 ;
+C -1 ; WX 479 ; N ecaron ; B 26 -20 448 697 ;
+C -1 ; WX 667 ; N Ydieresis ; B 9 -3 654 868 ;
+C -1 ; WX 606 ; N divide ; B 51 10 555 512 ;
+C -1 ; WX 667 ; N Yacute ; B 9 -3 654 908 ;
+C -1 ; WX 778 ; N Acircumflex ; B 15 -3 756 908 ;
+C -1 ; WX 500 ; N aacute ; B 32 -12 471 697 ;
+C -1 ; WX 778 ; N Ucircumflex ; B 12 -20 759 908 ;
+C -1 ; WX 556 ; N yacute ; B 12 -283 544 697 ;
+C -1 ; WX 424 ; N scommaaccent ; B 30 -263 391 469 ;
+C -1 ; WX 479 ; N ecircumflex ; B 26 -20 448 697 ;
+C -1 ; WX 778 ; N Uring ; B 12 -20 759 927 ;
+C -1 ; WX 778 ; N Udieresis ; B 12 -20 759 868 ;
+C -1 ; WX 500 ; N aogonek ; B 32 -225 488 469 ;
+C -1 ; WX 778 ; N Uacute ; B 12 -20 759 908 ;
+C -1 ; WX 603 ; N uogonek ; B 18 -225 628 469 ;
+C -1 ; WX 611 ; N Edieresis ; B 22 -4 572 868 ;
+C -1 ; WX 774 ; N Dcroat ; B 14 -3 751 692 ;
+C -1 ; WX 250 ; N commaaccent ; B 53 -283 213 -50 ;
+C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ;
+C -1 ; WX 611 ; N Emacron ; B 22 -4 572 822 ;
+C -1 ; WX 444 ; N ccaron ; B 26 -20 413 697 ;
+C -1 ; WX 500 ; N aring ; B 32 -12 471 716 ;
+C -1 ; WX 831 ; N Ncommaaccent ; B 17 -283 813 692 ;
+C -1 ; WX 291 ; N lacute ; B 21 -3 321 927 ;
+C -1 ; WX 500 ; N agrave ; B 32 -12 471 697 ;
+C -1 ; WX 613 ; N Tcommaaccent ; B 18 -283 595 692 ;
+C -1 ; WX 709 ; N Cacute ; B 22 -20 670 908 ;
+C -1 ; WX 500 ; N atilde ; B 32 -12 471 672 ;
+C -1 ; WX 611 ; N Edotaccent ; B 22 -4 572 868 ;
+C -1 ; WX 424 ; N scaron ; B 30 -20 391 697 ;
+C -1 ; WX 424 ; N scedilla ; B 30 -225 391 469 ;
+C -1 ; WX 287 ; N iacute ; B 21 -3 279 697 ;
+C -1 ; WX 471 ; N lozenge ; B 21 0 451 710 ;
+C -1 ; WX 668 ; N Rcaron ; B 22 -3 669 908 ;
+C -1 ; WX 763 ; N Gcommaaccent ; B 22 -283 728 709 ;
+C -1 ; WX 603 ; N ucircumflex ; B 18 -12 581 697 ;
+C -1 ; WX 500 ; N acircumflex ; B 32 -12 471 697 ;
+C -1 ; WX 778 ; N Amacron ; B 15 -3 756 822 ;
+C -1 ; WX 395 ; N rcaron ; B 21 -3 374 697 ;
+C -1 ; WX 444 ; N ccedilla ; B 26 -225 413 469 ;
+C -1 ; WX 667 ; N Zdotaccent ; B 15 -3 638 868 ;
+C -1 ; WX 604 ; N Thorn ; B 32 -3 574 692 ;
+C -1 ; WX 786 ; N Omacron ; B 22 -20 764 822 ;
+C -1 ; WX 668 ; N Racute ; B 22 -3 669 908 ;
+C -1 ; WX 525 ; N Sacute ; B 24 -20 503 908 ;
+C -1 ; WX 671 ; N dcaron ; B 35 -12 684 736 ;
+C -1 ; WX 778 ; N Umacron ; B 12 -20 759 822 ;
+C -1 ; WX 603 ; N uring ; B 18 -12 581 716 ;
+C -1 ; WX 300 ; N threesuperior ; B 1 266 299 689 ;
+C -1 ; WX 786 ; N Ograve ; B 22 -20 764 908 ;
+C -1 ; WX 778 ; N Agrave ; B 15 -3 756 908 ;
+C -1 ; WX 778 ; N Abreve ; B 15 -3 756 915 ;
+C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ;
+C -1 ; WX 603 ; N uacute ; B 18 -12 581 697 ;
+C -1 ; WX 613 ; N Tcaron ; B 18 -3 595 908 ;
+C -1 ; WX 476 ; N partialdiff ; B 34 -21 450 711 ;
+C -1 ; WX 556 ; N ydieresis ; B 12 -283 544 657 ;
+C -1 ; WX 831 ; N Nacute ; B 17 -20 813 908 ;
+C -1 ; WX 287 ; N icircumflex ; B -12 -3 300 697 ;
+C -1 ; WX 611 ; N Ecircumflex ; B 22 -4 572 908 ;
+C -1 ; WX 500 ; N adieresis ; B 32 -12 471 657 ;
+C -1 ; WX 479 ; N edieresis ; B 26 -20 448 657 ;
+C -1 ; WX 444 ; N cacute ; B 26 -20 413 697 ;
+C -1 ; WX 582 ; N nacute ; B 6 -3 572 697 ;
+C -1 ; WX 603 ; N umacron ; B 18 -12 581 611 ;
+C -1 ; WX 831 ; N Ncaron ; B 17 -20 813 908 ;
+C -1 ; WX 337 ; N Iacute ; B 22 -3 315 908 ;
+C -1 ; WX 606 ; N plusminus ; B 51 0 555 512 ;
+C -1 ; WX 606 ; N brokenbar ; B 275 -175 331 675 ;
+C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ;
+C -1 ; WX 763 ; N Gbreve ; B 22 -20 728 915 ;
+C -1 ; WX 337 ; N Idotaccent ; B 22 -3 315 868 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ;
+C -1 ; WX 611 ; N Egrave ; B 22 -4 572 908 ;
+C -1 ; WX 395 ; N racute ; B 21 -3 374 697 ;
+C -1 ; WX 546 ; N omacron ; B 32 -20 514 611 ;
+C -1 ; WX 667 ; N Zacute ; B 15 -3 638 908 ;
+C -1 ; WX 667 ; N Zcaron ; B 15 -3 638 908 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 643 ;
+C -1 ; WX 774 ; N Eth ; B 14 -3 751 692 ;
+C -1 ; WX 709 ; N Ccedilla ; B 22 -225 670 709 ;
+C -1 ; WX 291 ; N lcommaaccent ; B 21 -263 271 726 ;
+C -1 ; WX 386 ; N tcaron ; B 22 -12 401 746 ;
+C -1 ; WX 479 ; N eogonek ; B 26 -225 448 469 ;
+C -1 ; WX 778 ; N Uogonek ; B 12 -225 759 692 ;
+C -1 ; WX 778 ; N Aacute ; B 15 -3 756 908 ;
+C -1 ; WX 778 ; N Adieresis ; B 15 -3 756 868 ;
+C -1 ; WX 479 ; N egrave ; B 26 -20 448 697 ;
+C -1 ; WX 500 ; N zacute ; B 16 -3 466 697 ;
+C -1 ; WX 291 ; N iogonek ; B 21 -225 318 687 ;
+C -1 ; WX 786 ; N Oacute ; B 22 -20 764 908 ;
+C -1 ; WX 546 ; N oacute ; B 32 -20 514 697 ;
+C -1 ; WX 500 ; N amacron ; B 32 -12 471 611 ;
+C -1 ; WX 424 ; N sacute ; B 30 -20 391 697 ;
+C -1 ; WX 287 ; N idieresis ; B -11 -3 299 657 ;
+C -1 ; WX 786 ; N Ocircumflex ; B 22 -20 764 908 ;
+C -1 ; WX 778 ; N Ugrave ; B 12 -20 759 908 ;
+C -1 ; WX 600 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 601 ; N thorn ; B -2 -281 544 726 ;
+C -1 ; WX 300 ; N twosuperior ; B 0 273 301 689 ;
+C -1 ; WX 786 ; N Odieresis ; B 22 -20 764 868 ;
+C -1 ; WX 603 ; N mu ; B 18 -236 581 469 ;
+C -1 ; WX 287 ; N igrave ; B 8 -3 271 697 ;
+C -1 ; WX 546 ; N ohungarumlaut ; B 32 -20 514 707 ;
+C -1 ; WX 611 ; N Eogonek ; B 22 -225 572 692 ;
+C -1 ; WX 611 ; N dcroat ; B 35 -12 579 726 ;
+C -1 ; WX 750 ; N threequarters ; B 15 -3 735 689 ;
+C -1 ; WX 525 ; N Scedilla ; B 24 -225 503 709 ;
+C -1 ; WX 371 ; N lcaron ; B 21 -3 376 726 ;
+C -1 ; WX 726 ; N Kcommaaccent ; B 22 -283 719 692 ;
+C -1 ; WX 611 ; N Lacute ; B 22 -4 586 908 ;
+C -1 ; WX 979 ; N trademark ; B 40 285 939 689 ;
+C -1 ; WX 479 ; N edotaccent ; B 26 -20 448 657 ;
+C -1 ; WX 337 ; N Igrave ; B 22 -3 315 908 ;
+C -1 ; WX 337 ; N Imacron ; B 13 -3 325 822 ;
+C -1 ; WX 611 ; N Lcaron ; B 22 -4 586 716 ;
+C -1 ; WX 750 ; N onehalf ; B 15 -3 735 692 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 642 ;
+C -1 ; WX 546 ; N ocircumflex ; B 32 -20 514 697 ;
+C -1 ; WX 582 ; N ntilde ; B 6 -3 572 672 ;
+C -1 ; WX 778 ; N Uhungarumlaut ; B 12 -20 759 918 ;
+C -1 ; WX 611 ; N Eacute ; B 22 -4 572 908 ;
+C -1 ; WX 479 ; N emacron ; B 26 -20 448 611 ;
+C -1 ; WX 556 ; N gbreve ; B 32 -283 544 724 ;
+C -1 ; WX 750 ; N onequarter ; B 30 -3 727 692 ;
+C -1 ; WX 525 ; N Scaron ; B 24 -20 503 908 ;
+C -1 ; WX 525 ; N Scommaaccent ; B 24 -283 503 709 ;
+C -1 ; WX 786 ; N Ohungarumlaut ; B 22 -20 764 918 ;
+C -1 ; WX 400 ; N degree ; B 50 389 350 689 ;
+C -1 ; WX 546 ; N ograve ; B 32 -20 514 697 ;
+C -1 ; WX 709 ; N Ccaron ; B 22 -20 670 908 ;
+C -1 ; WX 603 ; N ugrave ; B 18 -12 581 697 ;
+C -1 ; WX 453 ; N radical ; B 12 -55 442 747 ;
+C -1 ; WX 774 ; N Dcaron ; B 22 -4 751 908 ;
+C -1 ; WX 395 ; N rcommaaccent ; B 21 -263 374 469 ;
+C -1 ; WX 831 ; N Ntilde ; B 17 -20 813 871 ;
+C -1 ; WX 546 ; N otilde ; B 32 -20 514 672 ;
+C -1 ; WX 668 ; N Rcommaaccent ; B 22 -283 669 692 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B 22 -283 586 692 ;
+C -1 ; WX 778 ; N Atilde ; B 15 -3 756 871 ;
+C -1 ; WX 778 ; N Aogonek ; B 15 -225 768 700 ;
+C -1 ; WX 778 ; N Aring ; B 15 -3 756 927 ;
+C -1 ; WX 786 ; N Otilde ; B 22 -20 764 883 ;
+C -1 ; WX 500 ; N zdotaccent ; B 16 -3 466 657 ;
+C -1 ; WX 611 ; N Ecaron ; B 22 -4 572 908 ;
+C -1 ; WX 337 ; N Iogonek ; B 22 -225 328 692 ;
+C -1 ; WX 556 ; N kcommaaccent ; B 21 -263 549 726 ;
+C -1 ; WX 606 ; N minus ; B 51 233 555 289 ;
+C -1 ; WX 337 ; N Icircumflex ; B 13 -3 325 908 ;
+C -1 ; WX 582 ; N ncaron ; B 6 -3 572 697 ;
+C -1 ; WX 326 ; N tcommaaccent ; B 22 -263 319 621 ;
+C -1 ; WX 606 ; N logicalnot ; B 51 120 551 386 ;
+C -1 ; WX 546 ; N odieresis ; B 32 -20 514 657 ;
+C -1 ; WX 603 ; N udieresis ; B 18 -12 581 657 ;
+C -1 ; WX 549 ; N notequal ; B 12 -16 537 538 ;
+C -1 ; WX 556 ; N gcommaaccent ; B 32 -283 544 773 ;
+C -1 ; WX 546 ; N eth ; B 32 -20 504 728 ;
+C -1 ; WX 500 ; N zcaron ; B 16 -3 466 697 ;
+C -1 ; WX 582 ; N ncommaaccent ; B 6 -263 572 469 ;
+C -1 ; WX 300 ; N onesuperior ; B 31 273 269 692 ;
+C -1 ; WX 291 ; N imacron ; B 21 -3 271 591 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 1031
+KPX A T -74
+KPX A Tcaron -74
+KPX A Tcommaaccent -74
+KPX A V -111
+KPX A W -74
+KPX A Y -111
+KPX A Yacute -111
+KPX A Ydieresis -111
+KPX A quoteright -74
+KPX A space -55
+KPX A v -92
+KPX A w -74
+KPX A y -74
+KPX A yacute -74
+KPX A ydieresis -74
+KPX Aacute T -74
+KPX Aacute Tcaron -74
+KPX Aacute Tcommaaccent -74
+KPX Aacute V -111
+KPX Aacute W -74
+KPX Aacute Y -111
+KPX Aacute Yacute -111
+KPX Aacute Ydieresis -111
+KPX Aacute quoteright -74
+KPX Aacute space -55
+KPX Aacute v -92
+KPX Aacute w -74
+KPX Aacute y -74
+KPX Aacute yacute -74
+KPX Aacute ydieresis -74
+KPX Abreve T -74
+KPX Abreve Tcaron -74
+KPX Abreve Tcommaaccent -74
+KPX Abreve V -111
+KPX Abreve W -74
+KPX Abreve Y -111
+KPX Abreve Yacute -111
+KPX Abreve Ydieresis -111
+KPX Abreve quoteright -74
+KPX Abreve space -55
+KPX Abreve v -92
+KPX Abreve w -74
+KPX Abreve y -74
+KPX Abreve yacute -74
+KPX Abreve ydieresis -74
+KPX Acircumflex T -74
+KPX Acircumflex Tcaron -74
+KPX Acircumflex Tcommaaccent -74
+KPX Acircumflex V -111
+KPX Acircumflex W -74
+KPX Acircumflex Y -111
+KPX Acircumflex Yacute -111
+KPX Acircumflex Ydieresis -111
+KPX Acircumflex quoteright -74
+KPX Acircumflex space -55
+KPX Acircumflex v -92
+KPX Acircumflex w -74
+KPX Acircumflex y -74
+KPX Acircumflex yacute -74
+KPX Acircumflex ydieresis -74
+KPX Adieresis T -74
+KPX Adieresis Tcaron -74
+KPX Adieresis Tcommaaccent -74
+KPX Adieresis V -111
+KPX Adieresis W -74
+KPX Adieresis Y -111
+KPX Adieresis Yacute -111
+KPX Adieresis Ydieresis -111
+KPX Adieresis quoteright -74
+KPX Adieresis space -55
+KPX Adieresis v -92
+KPX Adieresis w -74
+KPX Adieresis y -74
+KPX Adieresis yacute -74
+KPX Adieresis ydieresis -74
+KPX Agrave T -74
+KPX Agrave Tcaron -74
+KPX Agrave Tcommaaccent -74
+KPX Agrave V -111
+KPX Agrave W -74
+KPX Agrave Y -111
+KPX Agrave Yacute -111
+KPX Agrave Ydieresis -111
+KPX Agrave quoteright -74
+KPX Agrave space -55
+KPX Agrave v -92
+KPX Agrave w -74
+KPX Agrave y -74
+KPX Agrave yacute -74
+KPX Agrave ydieresis -74
+KPX Amacron T -74
+KPX Amacron Tcaron -74
+KPX Amacron Tcommaaccent -74
+KPX Amacron V -111
+KPX Amacron W -74
+KPX Amacron Y -111
+KPX Amacron Yacute -111
+KPX Amacron Ydieresis -111
+KPX Amacron quoteright -74
+KPX Amacron space -55
+KPX Amacron v -92
+KPX Amacron w -74
+KPX Amacron y -74
+KPX Amacron yacute -74
+KPX Amacron ydieresis -74
+KPX Aogonek T -74
+KPX Aogonek Tcaron -74
+KPX Aogonek Tcommaaccent -74
+KPX Aogonek V -111
+KPX Aogonek W -74
+KPX Aogonek Y -111
+KPX Aogonek Yacute -111
+KPX Aogonek Ydieresis -111
+KPX Aogonek quoteright -74
+KPX Aogonek space -55
+KPX Aogonek v -92
+KPX Aogonek w -74
+KPX Aogonek y -74
+KPX Aogonek yacute -74
+KPX Aogonek ydieresis -74
+KPX Aring T -74
+KPX Aring Tcaron -74
+KPX Aring Tcommaaccent -74
+KPX Aring V -111
+KPX Aring W -74
+KPX Aring Y -111
+KPX Aring Yacute -111
+KPX Aring Ydieresis -111
+KPX Aring quoteright -74
+KPX Aring space -55
+KPX Aring v -92
+KPX Aring w -74
+KPX Aring y -74
+KPX Aring yacute -74
+KPX Aring ydieresis -74
+KPX Atilde T -74
+KPX Atilde Tcaron -74
+KPX Atilde Tcommaaccent -74
+KPX Atilde V -111
+KPX Atilde W -74
+KPX Atilde Y -111
+KPX Atilde Yacute -111
+KPX Atilde Ydieresis -111
+KPX Atilde quoteright -74
+KPX Atilde space -55
+KPX Atilde v -92
+KPX Atilde w -74
+KPX Atilde y -74
+KPX Atilde yacute -74
+KPX Atilde ydieresis -74
+KPX F A -74
+KPX F Aacute -74
+KPX F Abreve -74
+KPX F Acircumflex -74
+KPX F Adieresis -74
+KPX F Agrave -74
+KPX F Amacron -74
+KPX F Aogonek -74
+KPX F Aring -74
+KPX F Atilde -74
+KPX F comma -92
+KPX F period -92
+KPX L T -74
+KPX L Tcaron -74
+KPX L Tcommaaccent -74
+KPX L V -92
+KPX L W -74
+KPX L Y -92
+KPX L Yacute -92
+KPX L Ydieresis -92
+KPX L quoteright -74
+KPX L space -37
+KPX L y -55
+KPX L yacute -55
+KPX L ydieresis -55
+KPX Lacute T -74
+KPX Lacute Tcaron -74
+KPX Lacute Tcommaaccent -74
+KPX Lacute V -92
+KPX Lacute W -74
+KPX Lacute Y -92
+KPX Lacute Yacute -92
+KPX Lacute Ydieresis -92
+KPX Lacute quoteright -74
+KPX Lacute space -37
+KPX Lacute y -55
+KPX Lacute yacute -55
+KPX Lacute ydieresis -55
+KPX Lcaron T -74
+KPX Lcaron Tcaron -74
+KPX Lcaron Tcommaaccent -74
+KPX Lcaron V -92
+KPX Lcaron W -74
+KPX Lcaron Y -92
+KPX Lcaron Yacute -92
+KPX Lcaron Ydieresis -92
+KPX Lcaron quoteright -74
+KPX Lcaron space -37
+KPX Lcaron y -55
+KPX Lcaron yacute -55
+KPX Lcaron ydieresis -55
+KPX Lcommaaccent T -74
+KPX Lcommaaccent Tcaron -74
+KPX Lcommaaccent Tcommaaccent -74
+KPX Lcommaaccent V -92
+KPX Lcommaaccent W -74
+KPX Lcommaaccent Y -92
+KPX Lcommaaccent Yacute -92
+KPX Lcommaaccent Ydieresis -92
+KPX Lcommaaccent quoteright -74
+KPX Lcommaaccent space -37
+KPX Lcommaaccent y -55
+KPX Lcommaaccent yacute -55
+KPX Lcommaaccent ydieresis -55
+KPX Lslash T -74
+KPX Lslash Tcaron -74
+KPX Lslash Tcommaaccent -74
+KPX Lslash V -92
+KPX Lslash W -74
+KPX Lslash Y -92
+KPX Lslash Yacute -92
+KPX Lslash Ydieresis -92
+KPX Lslash quoteright -74
+KPX Lslash space -37
+KPX Lslash y -55
+KPX Lslash yacute -55
+KPX Lslash ydieresis -55
+KPX P A -92
+KPX P Aacute -92
+KPX P Abreve -92
+KPX P Acircumflex -92
+KPX P Adieresis -92
+KPX P Agrave -92
+KPX P Amacron -92
+KPX P Aogonek -92
+KPX P Aring -92
+KPX P Atilde -92
+KPX P comma -129
+KPX P period -129
+KPX P space -18
+KPX R T -37
+KPX R Tcaron -37
+KPX R Tcommaaccent -37
+KPX R V -55
+KPX R W -37
+KPX R Y -37
+KPX R Yacute -37
+KPX R Ydieresis -37
+KPX R y -37
+KPX R yacute -37
+KPX R ydieresis -37
+KPX Racute T -37
+KPX Racute Tcaron -37
+KPX Racute Tcommaaccent -37
+KPX Racute V -55
+KPX Racute W -37
+KPX Racute Y -37
+KPX Racute Yacute -37
+KPX Racute Ydieresis -37
+KPX Racute y -37
+KPX Racute yacute -37
+KPX Racute ydieresis -37
+KPX Rcaron T -37
+KPX Rcaron Tcaron -37
+KPX Rcaron Tcommaaccent -37
+KPX Rcaron V -55
+KPX Rcaron W -37
+KPX Rcaron Y -37
+KPX Rcaron Yacute -37
+KPX Rcaron Ydieresis -37
+KPX Rcaron y -37
+KPX Rcaron yacute -37
+KPX Rcaron ydieresis -37
+KPX Rcommaaccent T -37
+KPX Rcommaaccent Tcaron -37
+KPX Rcommaaccent Tcommaaccent -37
+KPX Rcommaaccent V -55
+KPX Rcommaaccent W -37
+KPX Rcommaaccent Y -37
+KPX Rcommaaccent Yacute -37
+KPX Rcommaaccent Ydieresis -37
+KPX Rcommaaccent y -37
+KPX Rcommaaccent yacute -37
+KPX Rcommaaccent ydieresis -37
+KPX T A -74
+KPX T Aacute -74
+KPX T Abreve -74
+KPX T Acircumflex -74
+KPX T Adieresis -74
+KPX T Agrave -74
+KPX T Amacron -74
+KPX T Aogonek -74
+KPX T Aring -74
+KPX T Atilde -74
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -92
+KPX T aacute -92
+KPX T abreve -92
+KPX T acircumflex -92
+KPX T adieresis -52
+KPX T agrave -52
+KPX T amacron -52
+KPX T aogonek -92
+KPX T aring -92
+KPX T atilde -52
+KPX T c -111
+KPX T cacute -111
+KPX T ccaron -71
+KPX T ccedilla -111
+KPX T colon -55
+KPX T comma -74
+KPX T e -92
+KPX T eacute -92
+KPX T ecaron -92
+KPX T ecircumflex -92
+KPX T edieresis -52
+KPX T edotaccent -92
+KPX T egrave -92
+KPX T emacron -92
+KPX T eogonek -92
+KPX T hyphen -55
+KPX T i -55
+KPX T iacute -55
+KPX T iogonek -55
+KPX T o -92
+KPX T oacute -92
+KPX T ocircumflex -92
+KPX T odieresis -92
+KPX T ograve -92
+KPX T ohungarumlaut -92
+KPX T omacron -92
+KPX T oslash -92
+KPX T otilde -92
+KPX T period -74
+KPX T r -90
+KPX T racute -90
+KPX T rcaron -50
+KPX T rcommaaccent -90
+KPX T s -90
+KPX T sacute -90
+KPX T scaron -50
+KPX T scedilla -90
+KPX T scommaaccent -90
+KPX T semicolon -55
+KPX T u -90
+KPX T uacute -90
+KPX T ucircumflex -90
+KPX T udieresis -90
+KPX T ugrave -90
+KPX T uhungarumlaut -90
+KPX T umacron -90
+KPX T uogonek -90
+KPX T uring -90
+KPX T w -90
+KPX T y -90
+KPX T yacute -90
+KPX T ydieresis -90
+KPX Tcaron A -74
+KPX Tcaron Aacute -74
+KPX Tcaron Abreve -74
+KPX Tcaron Acircumflex -74
+KPX Tcaron Adieresis -74
+KPX Tcaron Agrave -74
+KPX Tcaron Amacron -74
+KPX Tcaron Aogonek -74
+KPX Tcaron Aring -74
+KPX Tcaron Atilde -74
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -92
+KPX Tcaron aacute -92
+KPX Tcaron abreve -92
+KPX Tcaron acircumflex -92
+KPX Tcaron adieresis -52
+KPX Tcaron agrave -52
+KPX Tcaron amacron -52
+KPX Tcaron aogonek -92
+KPX Tcaron aring -92
+KPX Tcaron atilde -52
+KPX Tcaron c -111
+KPX Tcaron cacute -111
+KPX Tcaron ccaron -71
+KPX Tcaron ccedilla -111
+KPX Tcaron colon -55
+KPX Tcaron comma -74
+KPX Tcaron e -92
+KPX Tcaron eacute -92
+KPX Tcaron ecaron -92
+KPX Tcaron ecircumflex -92
+KPX Tcaron edieresis -52
+KPX Tcaron edotaccent -92
+KPX Tcaron egrave -92
+KPX Tcaron emacron -92
+KPX Tcaron eogonek -92
+KPX Tcaron hyphen -55
+KPX Tcaron i -55
+KPX Tcaron iacute -55
+KPX Tcaron iogonek -55
+KPX Tcaron o -92
+KPX Tcaron oacute -92
+KPX Tcaron ocircumflex -92
+KPX Tcaron odieresis -92
+KPX Tcaron ograve -92
+KPX Tcaron ohungarumlaut -92
+KPX Tcaron omacron -92
+KPX Tcaron oslash -92
+KPX Tcaron otilde -92
+KPX Tcaron period -74
+KPX Tcaron r -90
+KPX Tcaron racute -90
+KPX Tcaron rcaron -50
+KPX Tcaron rcommaaccent -90
+KPX Tcaron s -90
+KPX Tcaron sacute -90
+KPX Tcaron scaron -50
+KPX Tcaron scedilla -90
+KPX Tcaron scommaaccent -90
+KPX Tcaron semicolon -55
+KPX Tcaron u -90
+KPX Tcaron uacute -90
+KPX Tcaron ucircumflex -90
+KPX Tcaron udieresis -90
+KPX Tcaron ugrave -90
+KPX Tcaron uhungarumlaut -90
+KPX Tcaron umacron -90
+KPX Tcaron uogonek -90
+KPX Tcaron uring -90
+KPX Tcaron w -90
+KPX Tcaron y -90
+KPX Tcaron yacute -90
+KPX Tcaron ydieresis -90
+KPX Tcommaaccent A -74
+KPX Tcommaaccent Aacute -74
+KPX Tcommaaccent Abreve -74
+KPX Tcommaaccent Acircumflex -74
+KPX Tcommaaccent Adieresis -74
+KPX Tcommaaccent Agrave -74
+KPX Tcommaaccent Amacron -74
+KPX Tcommaaccent Aogonek -74
+KPX Tcommaaccent Aring -74
+KPX Tcommaaccent Atilde -74
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -92
+KPX Tcommaaccent aacute -92
+KPX Tcommaaccent abreve -92
+KPX Tcommaaccent acircumflex -92
+KPX Tcommaaccent adieresis -52
+KPX Tcommaaccent agrave -52
+KPX Tcommaaccent amacron -52
+KPX Tcommaaccent aogonek -92
+KPX Tcommaaccent aring -92
+KPX Tcommaaccent atilde -52
+KPX Tcommaaccent c -111
+KPX Tcommaaccent cacute -111
+KPX Tcommaaccent ccaron -71
+KPX Tcommaaccent ccedilla -111
+KPX Tcommaaccent colon -55
+KPX Tcommaaccent comma -74
+KPX Tcommaaccent e -92
+KPX Tcommaaccent eacute -92
+KPX Tcommaaccent ecaron -92
+KPX Tcommaaccent ecircumflex -92
+KPX Tcommaaccent edieresis -52
+KPX Tcommaaccent edotaccent -92
+KPX Tcommaaccent egrave -92
+KPX Tcommaaccent emacron -92
+KPX Tcommaaccent eogonek -92
+KPX Tcommaaccent hyphen -55
+KPX Tcommaaccent i -55
+KPX Tcommaaccent iacute -55
+KPX Tcommaaccent iogonek -55
+KPX Tcommaaccent o -92
+KPX Tcommaaccent oacute -92
+KPX Tcommaaccent ocircumflex -92
+KPX Tcommaaccent odieresis -92
+KPX Tcommaaccent ograve -92
+KPX Tcommaaccent ohungarumlaut -92
+KPX Tcommaaccent omacron -92
+KPX Tcommaaccent oslash -92
+KPX Tcommaaccent otilde -92
+KPX Tcommaaccent period -74
+KPX Tcommaaccent r -90
+KPX Tcommaaccent racute -90
+KPX Tcommaaccent rcaron -50
+KPX Tcommaaccent rcommaaccent -90
+KPX Tcommaaccent s -90
+KPX Tcommaaccent sacute -90
+KPX Tcommaaccent scaron -50
+KPX Tcommaaccent scedilla -90
+KPX Tcommaaccent scommaaccent -90
+KPX Tcommaaccent semicolon -55
+KPX Tcommaaccent u -90
+KPX Tcommaaccent uacute -90
+KPX Tcommaaccent ucircumflex -90
+KPX Tcommaaccent udieresis -90
+KPX Tcommaaccent ugrave -90
+KPX Tcommaaccent uhungarumlaut -90
+KPX Tcommaaccent umacron -90
+KPX Tcommaaccent uogonek -90
+KPX Tcommaaccent uring -90
+KPX Tcommaaccent w -90
+KPX Tcommaaccent y -90
+KPX Tcommaaccent yacute -90
+KPX Tcommaaccent ydieresis -90
+KPX V A -111
+KPX V Aacute -111
+KPX V Abreve -111
+KPX V Acircumflex -111
+KPX V Adieresis -111
+KPX V Agrave -111
+KPX V Amacron -111
+KPX V Aogonek -111
+KPX V Aring -111
+KPX V Atilde -111
+KPX V a -92
+KPX V aacute -92
+KPX V abreve -92
+KPX V acircumflex -92
+KPX V adieresis -92
+KPX V agrave -92
+KPX V amacron -92
+KPX V aogonek -92
+KPX V aring -92
+KPX V atilde -92
+KPX V colon -55
+KPX V comma -129
+KPX V e -111
+KPX V eacute -111
+KPX V ecaron -111
+KPX V ecircumflex -111
+KPX V edieresis -71
+KPX V edotaccent -111
+KPX V egrave -71
+KPX V emacron -111
+KPX V eogonek -111
+KPX V hyphen -74
+KPX V i -55
+KPX V iacute -55
+KPX V iogonek -55
+KPX V o -111
+KPX V oacute -111
+KPX V ocircumflex -111
+KPX V odieresis -111
+KPX V ograve -71
+KPX V ohungarumlaut -111
+KPX V omacron -111
+KPX V oslash -111
+KPX V otilde -111
+KPX V period -129
+KPX V r -92
+KPX V racute -92
+KPX V rcaron -92
+KPX V rcommaaccent -92
+KPX V semicolon -55
+KPX V u -92
+KPX V uacute -92
+KPX V ucircumflex -92
+KPX V udieresis -92
+KPX V ugrave -92
+KPX V uhungarumlaut -92
+KPX V umacron -92
+KPX V uogonek -92
+KPX V uring -92
+KPX V y -92
+KPX V yacute -92
+KPX V ydieresis -92
+KPX W A -92
+KPX W Aacute -92
+KPX W Abreve -92
+KPX W Acircumflex -92
+KPX W Adieresis -92
+KPX W Agrave -92
+KPX W Amacron -92
+KPX W Aogonek -92
+KPX W Aring -92
+KPX W Atilde -92
+KPX W a -92
+KPX W aacute -92
+KPX W abreve -92
+KPX W acircumflex -92
+KPX W adieresis -92
+KPX W agrave -92
+KPX W amacron -92
+KPX W aogonek -92
+KPX W aring -92
+KPX W atilde -92
+KPX W colon -18
+KPX W comma -92
+KPX W e -92
+KPX W eacute -92
+KPX W ecaron -92
+KPX W ecircumflex -92
+KPX W edieresis -92
+KPX W edotaccent -92
+KPX W egrave -92
+KPX W emacron -92
+KPX W eogonek -92
+KPX W hyphen -55
+KPX W i -55
+KPX W iacute -55
+KPX W icircumflex -55
+KPX W idieresis -55
+KPX W igrave -55
+KPX W imacron -55
+KPX W iogonek -55
+KPX W o -92
+KPX W oacute -92
+KPX W ocircumflex -92
+KPX W odieresis -92
+KPX W ograve -92
+KPX W ohungarumlaut -92
+KPX W omacron -92
+KPX W oslash -92
+KPX W otilde -92
+KPX W period -92
+KPX W r -74
+KPX W racute -74
+KPX W rcaron -74
+KPX W rcommaaccent -74
+KPX W semicolon -18
+KPX W u -50
+KPX W uacute -50
+KPX W ucircumflex -50
+KPX W udieresis -50
+KPX W ugrave -50
+KPX W uhungarumlaut -50
+KPX W umacron -50
+KPX W uogonek -50
+KPX W uring -50
+KPX W y -50
+KPX W yacute -50
+KPX W ydieresis -50
+KPX Y A -92
+KPX Y Aacute -92
+KPX Y Abreve -92
+KPX Y Acircumflex -92
+KPX Y Adieresis -92
+KPX Y Agrave -92
+KPX Y Amacron -92
+KPX Y Aogonek -92
+KPX Y Aring -92
+KPX Y Atilde -92
+KPX Y a -92
+KPX Y aacute -92
+KPX Y abreve -92
+KPX Y acircumflex -92
+KPX Y adieresis -92
+KPX Y agrave -92
+KPX Y amacron -92
+KPX Y aogonek -92
+KPX Y aring -92
+KPX Y atilde -92
+KPX Y colon -74
+KPX Y comma -111
+KPX Y e -92
+KPX Y eacute -92
+KPX Y ecaron -92
+KPX Y ecircumflex -92
+KPX Y edieresis -92
+KPX Y edotaccent -92
+KPX Y egrave -92
+KPX Y emacron -92
+KPX Y eogonek -92
+KPX Y hyphen -92
+KPX Y i -55
+KPX Y iacute -55
+KPX Y imacron -55
+KPX Y iogonek -55
+KPX Y o -92
+KPX Y oacute -92
+KPX Y ocircumflex -92
+KPX Y odieresis -92
+KPX Y ograve -92
+KPX Y ohungarumlaut -92
+KPX Y omacron -92
+KPX Y oslash -92
+KPX Y otilde -92
+KPX Y p -111
+KPX Y period -111
+KPX Y q -90
+KPX Y semicolon -74
+KPX Y space -18
+KPX Y u -90
+KPX Y uacute -90
+KPX Y ucircumflex -90
+KPX Y udieresis -90
+KPX Y ugrave -90
+KPX Y uhungarumlaut -90
+KPX Y umacron -90
+KPX Y uogonek -90
+KPX Y uring -90
+KPX Y v -90
+KPX Yacute A -92
+KPX Yacute Aacute -92
+KPX Yacute Abreve -92
+KPX Yacute Acircumflex -92
+KPX Yacute Adieresis -92
+KPX Yacute Agrave -92
+KPX Yacute Amacron -92
+KPX Yacute Aogonek -92
+KPX Yacute Aring -92
+KPX Yacute Atilde -92
+KPX Yacute a -92
+KPX Yacute aacute -92
+KPX Yacute abreve -92
+KPX Yacute acircumflex -92
+KPX Yacute adieresis -92
+KPX Yacute agrave -92
+KPX Yacute amacron -92
+KPX Yacute aogonek -92
+KPX Yacute aring -92
+KPX Yacute atilde -92
+KPX Yacute colon -74
+KPX Yacute comma -111
+KPX Yacute e -92
+KPX Yacute eacute -92
+KPX Yacute ecaron -92
+KPX Yacute ecircumflex -92
+KPX Yacute edieresis -92
+KPX Yacute edotaccent -92
+KPX Yacute egrave -92
+KPX Yacute emacron -92
+KPX Yacute eogonek -92
+KPX Yacute hyphen -92
+KPX Yacute i -55
+KPX Yacute iacute -55
+KPX Yacute imacron -55
+KPX Yacute iogonek -55
+KPX Yacute o -92
+KPX Yacute oacute -92
+KPX Yacute ocircumflex -92
+KPX Yacute odieresis -92
+KPX Yacute ograve -92
+KPX Yacute ohungarumlaut -92
+KPX Yacute omacron -92
+KPX Yacute oslash -92
+KPX Yacute otilde -92
+KPX Yacute p -111
+KPX Yacute period -111
+KPX Yacute q -90
+KPX Yacute semicolon -74
+KPX Yacute space -18
+KPX Yacute u -90
+KPX Yacute uacute -90
+KPX Yacute ucircumflex -90
+KPX Yacute udieresis -90
+KPX Yacute ugrave -90
+KPX Yacute uhungarumlaut -90
+KPX Yacute umacron -90
+KPX Yacute uogonek -90
+KPX Yacute uring -90
+KPX Yacute v -90
+KPX Ydieresis A -92
+KPX Ydieresis Aacute -92
+KPX Ydieresis Abreve -92
+KPX Ydieresis Acircumflex -92
+KPX Ydieresis Adieresis -92
+KPX Ydieresis Agrave -92
+KPX Ydieresis Amacron -92
+KPX Ydieresis Aogonek -92
+KPX Ydieresis Aring -92
+KPX Ydieresis Atilde -92
+KPX Ydieresis a -92
+KPX Ydieresis aacute -92
+KPX Ydieresis abreve -92
+KPX Ydieresis acircumflex -92
+KPX Ydieresis adieresis -92
+KPX Ydieresis agrave -92
+KPX Ydieresis amacron -92
+KPX Ydieresis aogonek -92
+KPX Ydieresis aring -92
+KPX Ydieresis atilde -92
+KPX Ydieresis colon -74
+KPX Ydieresis comma -111
+KPX Ydieresis e -92
+KPX Ydieresis eacute -92
+KPX Ydieresis ecaron -92
+KPX Ydieresis ecircumflex -92
+KPX Ydieresis edieresis -92
+KPX Ydieresis edotaccent -92
+KPX Ydieresis egrave -92
+KPX Ydieresis emacron -92
+KPX Ydieresis eogonek -92
+KPX Ydieresis hyphen -92
+KPX Ydieresis i -55
+KPX Ydieresis iacute -55
+KPX Ydieresis imacron -55
+KPX Ydieresis iogonek -55
+KPX Ydieresis o -92
+KPX Ydieresis oacute -92
+KPX Ydieresis ocircumflex -92
+KPX Ydieresis odieresis -92
+KPX Ydieresis ograve -92
+KPX Ydieresis ohungarumlaut -92
+KPX Ydieresis omacron -92
+KPX Ydieresis oslash -92
+KPX Ydieresis otilde -92
+KPX Ydieresis p -111
+KPX Ydieresis period -111
+KPX Ydieresis q -90
+KPX Ydieresis semicolon -74
+KPX Ydieresis space -18
+KPX Ydieresis u -90
+KPX Ydieresis uacute -90
+KPX Ydieresis ucircumflex -90
+KPX Ydieresis udieresis -90
+KPX Ydieresis ugrave -90
+KPX Ydieresis uhungarumlaut -90
+KPX Ydieresis umacron -90
+KPX Ydieresis uogonek -90
+KPX Ydieresis uring -90
+KPX Ydieresis v -90
+KPX f f -18
+KPX f quoteright 55
+KPX one one -55
+KPX quoteleft quoteleft -37
+KPX quoteright quoteright -37
+KPX r c -18
+KPX r cacute -18
+KPX r ccaron -18
+KPX r ccedilla -18
+KPX r comma -74
+KPX r d -18
+KPX r dcroat -18
+KPX r e -18
+KPX r eacute -18
+KPX r ecaron -18
+KPX r ecircumflex -18
+KPX r edieresis -18
+KPX r edotaccent -18
+KPX r egrave -18
+KPX r emacron -18
+KPX r eogonek -18
+KPX r g -18
+KPX r gbreve -18
+KPX r gcommaaccent -18
+KPX r h -18
+KPX r hyphen -18
+KPX r o -18
+KPX r oacute -18
+KPX r ocircumflex -18
+KPX r odieresis -18
+KPX r ograve -18
+KPX r ohungarumlaut -18
+KPX r omacron -18
+KPX r oslash -18
+KPX r otilde -18
+KPX r period -74
+KPX r q -18
+KPX r quoteright 74
+KPX r u -8
+KPX r uacute -8
+KPX r ucircumflex -8
+KPX r udieresis -8
+KPX r ugrave -8
+KPX r uhungarumlaut -8
+KPX r umacron -8
+KPX r uogonek -8
+KPX r uring -8
+KPX racute c -18
+KPX racute cacute -18
+KPX racute ccaron -18
+KPX racute ccedilla -18
+KPX racute comma -74
+KPX racute d -18
+KPX racute dcroat -18
+KPX racute e -18
+KPX racute eacute -18
+KPX racute ecaron -18
+KPX racute ecircumflex -18
+KPX racute edieresis -18
+KPX racute edotaccent -18
+KPX racute egrave -18
+KPX racute emacron -18
+KPX racute eogonek -18
+KPX racute g -18
+KPX racute gbreve -18
+KPX racute gcommaaccent -18
+KPX racute h -18
+KPX racute hyphen -18
+KPX racute o -18
+KPX racute oacute -18
+KPX racute ocircumflex -18
+KPX racute odieresis -18
+KPX racute ograve -18
+KPX racute ohungarumlaut -18
+KPX racute omacron -18
+KPX racute oslash -18
+KPX racute otilde -18
+KPX racute period -74
+KPX racute q -18
+KPX racute quoteright 74
+KPX racute u -8
+KPX racute uacute -8
+KPX racute ucircumflex -8
+KPX racute udieresis -8
+KPX racute ugrave -8
+KPX racute uhungarumlaut -8
+KPX racute umacron -8
+KPX racute uogonek -8
+KPX racute uring -8
+KPX rcaron c -18
+KPX rcaron cacute -18
+KPX rcaron ccaron -18
+KPX rcaron ccedilla -18
+KPX rcaron comma -74
+KPX rcaron d -18
+KPX rcaron dcroat -18
+KPX rcaron e -18
+KPX rcaron eacute -18
+KPX rcaron ecaron -18
+KPX rcaron ecircumflex -18
+KPX rcaron edieresis -18
+KPX rcaron edotaccent -18
+KPX rcaron egrave -18
+KPX rcaron emacron -18
+KPX rcaron eogonek -18
+KPX rcaron g -18
+KPX rcaron gbreve -18
+KPX rcaron gcommaaccent -18
+KPX rcaron h -18
+KPX rcaron hyphen -18
+KPX rcaron o -18
+KPX rcaron oacute -18
+KPX rcaron ocircumflex -18
+KPX rcaron odieresis -18
+KPX rcaron ograve -18
+KPX rcaron ohungarumlaut -18
+KPX rcaron omacron -18
+KPX rcaron oslash -18
+KPX rcaron otilde -18
+KPX rcaron period -74
+KPX rcaron q -18
+KPX rcaron quoteright 74
+KPX rcaron u -8
+KPX rcaron uacute -8
+KPX rcaron ucircumflex -8
+KPX rcaron udieresis -8
+KPX rcaron ugrave -8
+KPX rcaron uhungarumlaut -8
+KPX rcaron umacron -8
+KPX rcaron uogonek -8
+KPX rcaron uring -8
+KPX rcommaaccent c -18
+KPX rcommaaccent cacute -18
+KPX rcommaaccent ccaron -18
+KPX rcommaaccent ccedilla -18
+KPX rcommaaccent comma -74
+KPX rcommaaccent d -18
+KPX rcommaaccent dcroat -18
+KPX rcommaaccent e -18
+KPX rcommaaccent eacute -18
+KPX rcommaaccent ecaron -18
+KPX rcommaaccent ecircumflex -18
+KPX rcommaaccent edieresis -18
+KPX rcommaaccent edotaccent -18
+KPX rcommaaccent egrave -18
+KPX rcommaaccent emacron -18
+KPX rcommaaccent eogonek -18
+KPX rcommaaccent g -18
+KPX rcommaaccent gbreve -18
+KPX rcommaaccent gcommaaccent -18
+KPX rcommaaccent h -18
+KPX rcommaaccent hyphen -18
+KPX rcommaaccent o -18
+KPX rcommaaccent oacute -18
+KPX rcommaaccent ocircumflex -18
+KPX rcommaaccent odieresis -18
+KPX rcommaaccent ograve -18
+KPX rcommaaccent ohungarumlaut -18
+KPX rcommaaccent omacron -18
+KPX rcommaaccent oslash -18
+KPX rcommaaccent otilde -18
+KPX rcommaaccent period -74
+KPX rcommaaccent q -18
+KPX rcommaaccent quoteright 74
+KPX rcommaaccent u -8
+KPX rcommaaccent uacute -8
+KPX rcommaaccent ucircumflex -8
+KPX rcommaaccent udieresis -8
+KPX rcommaaccent ugrave -8
+KPX rcommaaccent uhungarumlaut -8
+KPX rcommaaccent umacron -8
+KPX rcommaaccent uogonek -8
+KPX rcommaaccent uring -8
+KPX space A -37
+KPX space Aacute -37
+KPX space Abreve -37
+KPX space Acircumflex -37
+KPX space Adieresis -37
+KPX space Agrave -37
+KPX space Amacron -37
+KPX space Aogonek -37
+KPX space Aring -37
+KPX space Atilde -37
+KPX space Y -18
+KPX space Yacute -18
+KPX space Ydieresis -18
+KPX v comma -111
+KPX v period -111
+KPX w comma -92
+KPX w period -92
+KPX y comma -111
+KPX y period -111
+KPX yacute comma -111
+KPX yacute period -111
+KPX ydieresis comma -111
+KPX ydieresis period -111
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Symbol.afm b/test/user-template/user/psprint/fontmetric/Symbol.afm
new file mode 100644
index 000000000000..dd95148a5b00
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Symbol.afm
@@ -0,0 +1,212 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved.
+Comment Creation Date: Thu May 1 15:12:25 1997
+Comment UniqueID 43064
+Comment VMusage 30820 39997
+FontName Symbol
+FullName Symbol
+FamilyName Symbol
+Weight Medium
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -180 -293 1090 1010
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.008
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved.
+EncodingScheme FontSpecific
+StdHW 92
+StdVW 85
+StartCharMetrics 190
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 128 -17 240 672 ;
+C 34 ; WX 713 ; N universal ; B 31 0 681 705 ;
+C 35 ; WX 500 ; N numbersign ; B 20 -16 481 673 ;
+C 36 ; WX 549 ; N existential ; B 25 0 478 707 ;
+C 37 ; WX 833 ; N percent ; B 63 -36 771 655 ;
+C 38 ; WX 778 ; N ampersand ; B 41 -18 750 661 ;
+C 39 ; WX 439 ; N suchthat ; B 48 -17 414 500 ;
+C 40 ; WX 333 ; N parenleft ; B 53 -191 300 673 ;
+C 41 ; WX 333 ; N parenright ; B 30 -191 277 673 ;
+C 42 ; WX 500 ; N asteriskmath ; B 65 134 427 551 ;
+C 43 ; WX 549 ; N plus ; B 10 0 539 533 ;
+C 44 ; WX 250 ; N comma ; B 56 -152 194 104 ;
+C 45 ; WX 549 ; N minus ; B 11 233 535 288 ;
+C 46 ; WX 250 ; N period ; B 69 -17 181 95 ;
+C 47 ; WX 278 ; N slash ; B 0 -18 254 646 ;
+C 48 ; WX 500 ; N zero ; B 24 -14 476 685 ;
+C 49 ; WX 500 ; N one ; B 117 0 390 673 ;
+C 50 ; WX 500 ; N two ; B 25 0 475 685 ;
+C 51 ; WX 500 ; N three ; B 43 -14 435 685 ;
+C 52 ; WX 500 ; N four ; B 15 0 469 685 ;
+C 53 ; WX 500 ; N five ; B 32 -14 445 690 ;
+C 54 ; WX 500 ; N six ; B 34 -14 468 685 ;
+C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ;
+C 56 ; WX 500 ; N eight ; B 56 -14 445 685 ;
+C 57 ; WX 500 ; N nine ; B 30 -18 459 685 ;
+C 58 ; WX 278 ; N colon ; B 81 -17 193 460 ;
+C 59 ; WX 278 ; N semicolon ; B 83 -152 221 460 ;
+C 60 ; WX 549 ; N less ; B 26 0 523 522 ;
+C 61 ; WX 549 ; N equal ; B 11 141 537 390 ;
+C 62 ; WX 549 ; N greater ; B 26 0 523 522 ;
+C 63 ; WX 444 ; N question ; B 70 -17 412 686 ;
+C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ;
+C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ;
+C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ;
+C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ;
+C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ;
+C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ;
+C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ;
+C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ;
+C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ;
+C 74 ; WX 631 ; N theta1 ; B 18 -18 623 689 ;
+C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ;
+C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ;
+C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ;
+C 78 ; WX 722 ; N Nu ; B 29 -8 720 673 ;
+C 79 ; WX 722 ; N Omicron ; B 41 -17 715 685 ;
+C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ;
+C 81 ; WX 741 ; N Theta ; B 41 -17 715 685 ;
+C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ;
+C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ;
+C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ;
+C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ;
+C 86 ; WX 439 ; N sigma1 ; B 40 -233 436 500 ;
+C 87 ; WX 768 ; N Omega ; B 34 0 736 688 ;
+C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ;
+C 89 ; WX 795 ; N Psi ; B 15 0 781 684 ;
+C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ;
+C 91 ; WX 333 ; N bracketleft ; B 86 -155 299 674 ;
+C 92 ; WX 863 ; N therefore ; B 163 0 701 487 ;
+C 93 ; WX 333 ; N bracketright ; B 33 -155 246 674 ;
+C 94 ; WX 658 ; N perpendicular ; B 15 0 652 674 ;
+C 95 ; WX 500 ; N underscore ; B -2 -125 502 -75 ;
+C 96 ; WX 500 ; N radicalex ; B 480 881 1090 917 ;
+C 97 ; WX 631 ; N alpha ; B 41 -18 622 500 ;
+C 98 ; WX 549 ; N beta ; B 61 -223 515 741 ;
+C 99 ; WX 549 ; N chi ; B 12 -231 522 499 ;
+C 100 ; WX 494 ; N delta ; B 40 -19 481 740 ;
+C 101 ; WX 439 ; N epsilon ; B 22 -19 427 502 ;
+C 102 ; WX 521 ; N phi ; B 28 -224 492 673 ;
+C 103 ; WX 411 ; N gamma ; B 5 -225 484 499 ;
+C 104 ; WX 603 ; N eta ; B 0 -202 527 514 ;
+C 105 ; WX 329 ; N iota ; B 0 -17 301 503 ;
+C 106 ; WX 603 ; N phi1 ; B 36 -224 587 499 ;
+C 107 ; WX 549 ; N kappa ; B 33 0 558 501 ;
+C 108 ; WX 549 ; N lambda ; B 24 -17 548 739 ;
+C 109 ; WX 576 ; N mu ; B 33 -223 567 500 ;
+C 110 ; WX 521 ; N nu ; B -9 -16 475 507 ;
+C 111 ; WX 549 ; N omicron ; B 35 -19 501 499 ;
+C 112 ; WX 549 ; N pi ; B 10 -19 530 487 ;
+C 113 ; WX 521 ; N theta ; B 43 -17 485 690 ;
+C 114 ; WX 549 ; N rho ; B 50 -230 490 499 ;
+C 115 ; WX 603 ; N sigma ; B 30 -21 588 500 ;
+C 116 ; WX 439 ; N tau ; B 10 -19 418 500 ;
+C 117 ; WX 576 ; N upsilon ; B 7 -18 535 507 ;
+C 118 ; WX 713 ; N omega1 ; B 12 -18 671 583 ;
+C 119 ; WX 686 ; N omega ; B 42 -17 684 500 ;
+C 120 ; WX 493 ; N xi ; B 27 -224 469 766 ;
+C 121 ; WX 686 ; N psi ; B 12 -228 701 500 ;
+C 122 ; WX 494 ; N zeta ; B 60 -225 467 756 ;
+C 123 ; WX 480 ; N braceleft ; B 58 -183 397 673 ;
+C 124 ; WX 200 ; N bar ; B 65 -293 135 707 ;
+C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ;
+C 126 ; WX 549 ; N similar ; B 17 203 529 307 ;
+C 160 ; WX 750 ; N Euro ; B 20 -12 714 685 ;
+C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 685 ;
+C 162 ; WX 247 ; N minute ; B 27 459 228 735 ;
+C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ;
+C 164 ; WX 167 ; N fraction ; B -180 -12 340 677 ;
+C 165 ; WX 713 ; N infinity ; B 26 124 688 404 ;
+C 166 ; WX 500 ; N florin ; B 2 -193 494 686 ;
+C 167 ; WX 753 ; N club ; B 86 -26 660 533 ;
+C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ;
+C 169 ; WX 753 ; N heart ; B 117 -33 631 532 ;
+C 170 ; WX 753 ; N spade ; B 113 -36 629 548 ;
+C 171 ; WX 1042 ; N arrowboth ; B 24 -15 1024 511 ;
+C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ;
+C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ;
+C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ;
+C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ;
+C 176 ; WX 400 ; N degree ; B 50 385 350 685 ;
+C 177 ; WX 549 ; N plusminus ; B 10 0 539 645 ;
+C 178 ; WX 411 ; N second ; B 20 459 413 737 ;
+C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ;
+C 180 ; WX 549 ; N multiply ; B 17 8 533 524 ;
+C 181 ; WX 713 ; N proportional ; B 27 123 639 404 ;
+C 182 ; WX 494 ; N partialdiff ; B 26 -20 462 746 ;
+C 183 ; WX 460 ; N bullet ; B 50 113 410 473 ;
+C 184 ; WX 549 ; N divide ; B 10 71 536 456 ;
+C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ;
+C 186 ; WX 549 ; N equivalence ; B 14 82 538 443 ;
+C 187 ; WX 549 ; N approxequal ; B 14 135 527 394 ;
+C 188 ; WX 1000 ; N ellipsis ; B 111 -17 889 95 ;
+C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ;
+C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ;
+C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ;
+C 192 ; WX 823 ; N aleph ; B 175 -18 661 658 ;
+C 193 ; WX 686 ; N Ifraktur ; B 10 -53 578 740 ;
+C 194 ; WX 795 ; N Rfraktur ; B 26 -15 759 734 ;
+C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 573 ;
+C 196 ; WX 768 ; N circlemultiply ; B 43 -17 733 673 ;
+C 197 ; WX 768 ; N circleplus ; B 43 -15 733 675 ;
+C 198 ; WX 823 ; N emptyset ; B 39 -24 781 719 ;
+C 199 ; WX 768 ; N intersection ; B 40 0 732 509 ;
+C 200 ; WX 768 ; N union ; B 40 -17 732 492 ;
+C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ;
+C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ;
+C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ;
+C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ;
+C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ;
+C 206 ; WX 713 ; N element ; B 45 0 505 468 ;
+C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ;
+C 208 ; WX 768 ; N angle ; B 26 0 738 673 ;
+C 209 ; WX 713 ; N gradient ; B 36 -19 681 718 ;
+C 210 ; WX 790 ; N registerserif ; B 50 -17 740 673 ;
+C 211 ; WX 790 ; N copyrightserif ; B 51 -15 741 675 ;
+C 212 ; WX 890 ; N trademarkserif ; B 18 293 855 673 ;
+C 213 ; WX 823 ; N product ; B 25 -101 803 751 ;
+C 214 ; WX 549 ; N radical ; B 10 -38 515 917 ;
+C 215 ; WX 250 ; N dotmath ; B 69 210 169 310 ;
+C 216 ; WX 713 ; N logicalnot ; B 15 0 680 288 ;
+C 217 ; WX 603 ; N logicaland ; B 23 0 583 454 ;
+C 218 ; WX 603 ; N logicalor ; B 30 0 578 477 ;
+C 219 ; WX 1042 ; N arrowdblboth ; B 27 -20 1023 510 ;
+C 220 ; WX 987 ; N arrowdblleft ; B 30 -15 939 513 ;
+C 221 ; WX 603 ; N arrowdblup ; B 39 2 567 911 ;
+C 222 ; WX 987 ; N arrowdblright ; B 45 -20 954 508 ;
+C 223 ; WX 603 ; N arrowdbldown ; B 44 -19 572 890 ;
+C 224 ; WX 494 ; N lozenge ; B 18 0 466 745 ;
+C 225 ; WX 329 ; N angleleft ; B 25 -198 306 746 ;
+C 226 ; WX 790 ; N registersans ; B 50 -20 740 670 ;
+C 227 ; WX 790 ; N copyrightsans ; B 49 -15 739 675 ;
+C 228 ; WX 786 ; N trademarksans ; B 5 293 725 673 ;
+C 229 ; WX 713 ; N summation ; B 14 -108 695 752 ;
+C 230 ; WX 384 ; N parenlefttp ; B 24 -293 436 926 ;
+C 231 ; WX 384 ; N parenleftex ; B 24 -85 108 925 ;
+C 232 ; WX 384 ; N parenleftbt ; B 24 -293 436 926 ;
+C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 349 926 ;
+C 234 ; WX 384 ; N bracketleftex ; B 0 -79 77 925 ;
+C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 349 926 ;
+C 236 ; WX 494 ; N bracelefttp ; B 209 -85 445 925 ;
+C 237 ; WX 494 ; N braceleftmid ; B 20 -85 284 935 ;
+C 238 ; WX 494 ; N braceleftbt ; B 209 -75 445 935 ;
+C 239 ; WX 494 ; N braceex ; B 209 -85 284 935 ;
+C 241 ; WX 329 ; N angleright ; B 21 -198 302 746 ;
+C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ;
+C 243 ; WX 686 ; N integraltp ; B 308 -88 675 920 ;
+C 244 ; WX 686 ; N integralex ; B 308 -88 378 975 ;
+C 245 ; WX 686 ; N integralbt ; B 11 -87 378 921 ;
+C 246 ; WX 384 ; N parenrighttp ; B 54 -293 466 926 ;
+C 247 ; WX 384 ; N parenrightex ; B 382 -85 466 925 ;
+C 248 ; WX 384 ; N parenrightbt ; B 54 -293 466 926 ;
+C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 371 926 ;
+C 250 ; WX 384 ; N bracketrightex ; B 294 -79 371 925 ;
+C 251 ; WX 384 ; N bracketrightbt ; B 22 -80 371 926 ;
+C 252 ; WX 494 ; N bracerighttp ; B 48 -85 284 925 ;
+C 253 ; WX 494 ; N bracerightmid ; B 209 -85 473 935 ;
+C 254 ; WX 494 ; N bracerightbt ; B 48 -75 284 935 ;
+C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Times-Bold.afm b/test/user-template/user/psprint/fontmetric/Times-Bold.afm
new file mode 100644
index 000000000000..e67efe857c2d
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Times-Bold.afm
@@ -0,0 +1,2586 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:52:56 1997
+Comment UniqueID 43065
+Comment VMusage 41636 52661
+FontName Times-Bold
+FullName Times Bold
+FamilyName Times
+Weight Bold
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -168 -218 1000 935
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 676
+XHeight 461
+Ascender 683
+Descender -217
+StdHW 44
+StdVW 139
+StartCharMetrics 314
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ;
+C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ;
+C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ;
+C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ;
+C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ;
+C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ;
+C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ;
+C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ;
+C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ;
+C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ;
+C 43 ; WX 570 ; N plus ; B 33 0 537 506 ;
+C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ;
+C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ;
+C 46 ; WX 250 ; N period ; B 41 -13 210 156 ;
+C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ;
+C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ;
+C 49 ; WX 500 ; N one ; B 65 0 442 688 ;
+C 50 ; WX 500 ; N two ; B 17 0 478 688 ;
+C 51 ; WX 500 ; N three ; B 16 -14 468 688 ;
+C 52 ; WX 500 ; N four ; B 19 0 475 688 ;
+C 53 ; WX 500 ; N five ; B 22 -8 470 676 ;
+C 54 ; WX 500 ; N six ; B 28 -13 475 688 ;
+C 55 ; WX 500 ; N seven ; B 17 0 477 676 ;
+C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ;
+C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ;
+C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ;
+C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ;
+C 60 ; WX 570 ; N less ; B 31 -8 539 514 ;
+C 61 ; WX 570 ; N equal ; B 33 107 537 399 ;
+C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ;
+C 63 ; WX 500 ; N question ; B 57 -13 445 689 ;
+C 64 ; WX 930 ; N at ; B 108 -19 822 691 ;
+C 65 ; WX 722 ; N A ; B 9 0 689 690 ;
+C 66 ; WX 667 ; N B ; B 16 0 619 676 ;
+C 67 ; WX 722 ; N C ; B 49 -19 687 691 ;
+C 68 ; WX 722 ; N D ; B 14 0 690 676 ;
+C 69 ; WX 667 ; N E ; B 16 0 641 676 ;
+C 70 ; WX 611 ; N F ; B 16 0 583 676 ;
+C 71 ; WX 778 ; N G ; B 37 -19 755 691 ;
+C 72 ; WX 778 ; N H ; B 21 0 759 676 ;
+C 73 ; WX 389 ; N I ; B 20 0 370 676 ;
+C 74 ; WX 500 ; N J ; B 3 -96 479 676 ;
+C 75 ; WX 778 ; N K ; B 30 0 769 676 ;
+C 76 ; WX 667 ; N L ; B 19 0 638 676 ;
+C 77 ; WX 944 ; N M ; B 14 0 921 676 ;
+C 78 ; WX 722 ; N N ; B 16 -18 701 676 ;
+C 79 ; WX 778 ; N O ; B 35 -19 743 691 ;
+C 80 ; WX 611 ; N P ; B 16 0 600 676 ;
+C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ;
+C 82 ; WX 722 ; N R ; B 26 0 715 676 ;
+C 83 ; WX 556 ; N S ; B 35 -19 513 692 ;
+C 84 ; WX 667 ; N T ; B 31 0 636 676 ;
+C 85 ; WX 722 ; N U ; B 16 -19 701 676 ;
+C 86 ; WX 722 ; N V ; B 16 -18 701 676 ;
+C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ;
+C 88 ; WX 722 ; N X ; B 16 0 699 676 ;
+C 89 ; WX 722 ; N Y ; B 15 0 699 676 ;
+C 90 ; WX 667 ; N Z ; B 28 0 634 676 ;
+C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ;
+C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ;
+C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ;
+C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ;
+C 97 ; WX 500 ; N a ; B 25 -14 488 473 ;
+C 98 ; WX 556 ; N b ; B 17 -14 521 676 ;
+C 99 ; WX 444 ; N c ; B 25 -14 430 473 ;
+C 100 ; WX 556 ; N d ; B 25 -14 534 676 ;
+C 101 ; WX 444 ; N e ; B 25 -14 426 473 ;
+C 102 ; WX 333 ; N f ; B 14 0 389 691 ; L i fi ; L l fl ;
+C 103 ; WX 500 ; N g ; B 28 -206 483 473 ;
+C 104 ; WX 556 ; N h ; B 16 0 534 676 ;
+C 105 ; WX 278 ; N i ; B 16 0 255 691 ;
+C 106 ; WX 333 ; N j ; B -57 -203 263 691 ;
+C 107 ; WX 556 ; N k ; B 22 0 543 676 ;
+C 108 ; WX 278 ; N l ; B 16 0 255 676 ;
+C 109 ; WX 833 ; N m ; B 16 0 814 473 ;
+C 110 ; WX 556 ; N n ; B 21 0 539 473 ;
+C 111 ; WX 500 ; N o ; B 25 -14 476 473 ;
+C 112 ; WX 556 ; N p ; B 19 -205 524 473 ;
+C 113 ; WX 556 ; N q ; B 34 -205 536 473 ;
+C 114 ; WX 444 ; N r ; B 29 0 434 473 ;
+C 115 ; WX 389 ; N s ; B 25 -14 361 473 ;
+C 116 ; WX 333 ; N t ; B 20 -12 332 630 ;
+C 117 ; WX 556 ; N u ; B 16 -14 537 461 ;
+C 118 ; WX 500 ; N v ; B 21 -14 485 461 ;
+C 119 ; WX 722 ; N w ; B 23 -14 707 461 ;
+C 120 ; WX 500 ; N x ; B 12 0 484 461 ;
+C 121 ; WX 500 ; N y ; B 16 -205 480 461 ;
+C 122 ; WX 444 ; N z ; B 21 0 420 461 ;
+C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ;
+C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ;
+C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ;
+C 126 ; WX 520 ; N asciitilde ; B 29 173 491 333 ;
+C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ;
+C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ;
+C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ;
+C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ;
+C 165 ; WX 500 ; N yen ; B -64 0 547 676 ;
+C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ;
+C 167 ; WX 500 ; N section ; B 57 -132 443 691 ;
+C 168 ; WX 500 ; N currency ; B -26 61 526 613 ;
+C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ;
+C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ;
+C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ;
+C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ;
+C 174 ; WX 556 ; N fi ; B 14 0 536 691 ;
+C 175 ; WX 556 ; N fl ; B 14 0 536 691 ;
+C 177 ; WX 500 ; N endash ; B 0 181 500 271 ;
+C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ;
+C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ;
+C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ;
+C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ;
+C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ;
+C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ;
+C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ;
+C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ;
+C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ;
+C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ;
+C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ;
+C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ;
+C 193 ; WX 333 ; N grave ; B 8 528 246 713 ;
+C 194 ; WX 333 ; N acute ; B 86 528 324 713 ;
+C 195 ; WX 333 ; N circumflex ; B -2 528 335 704 ;
+C 196 ; WX 333 ; N tilde ; B -16 547 349 674 ;
+C 197 ; WX 333 ; N macron ; B 1 565 331 637 ;
+C 198 ; WX 333 ; N breve ; B 15 528 318 691 ;
+C 199 ; WX 333 ; N dotaccent ; B 103 536 258 691 ;
+C 200 ; WX 333 ; N dieresis ; B -2 537 335 667 ;
+C 202 ; WX 333 ; N ring ; B 60 527 273 740 ;
+C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ;
+C 206 ; WX 333 ; N ogonek ; B 90 -193 319 24 ;
+C 207 ; WX 333 ; N caron ; B -2 528 335 704 ;
+C 208 ; WX 1000 ; N emdash ; B 0 181 1000 271 ;
+C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ;
+C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ;
+C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ;
+C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ;
+C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ;
+C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ;
+C 241 ; WX 722 ; N ae ; B 33 -14 693 473 ;
+C 245 ; WX 278 ; N dotlessi ; B 16 0 255 461 ;
+C 248 ; WX 278 ; N lslash ; B -22 0 303 676 ;
+C 249 ; WX 500 ; N oslash ; B 25 -92 476 549 ;
+C 250 ; WX 722 ; N oe ; B 22 -14 696 473 ;
+C 251 ; WX 556 ; N germandbls ; B 19 -12 517 691 ;
+C -1 ; WX 389 ; N Idieresis ; B 20 0 370 877 ;
+C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ;
+C -1 ; WX 500 ; N abreve ; B 25 -14 488 691 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 16 -14 557 713 ;
+C -1 ; WX 444 ; N ecaron ; B 25 -14 426 704 ;
+C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 877 ;
+C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ;
+C -1 ; WX 722 ; N Yacute ; B 15 0 699 923 ;
+C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ;
+C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ;
+C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ;
+C -1 ; WX 389 ; N scommaaccent ; B 25 -218 361 473 ;
+C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ;
+C -1 ; WX 722 ; N Uring ; B 16 -19 701 935 ;
+C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 877 ;
+C -1 ; WX 500 ; N aogonek ; B 25 -193 504 473 ;
+C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ;
+C -1 ; WX 556 ; N uogonek ; B 16 -193 539 461 ;
+C -1 ; WX 667 ; N Edieresis ; B 16 0 641 877 ;
+C -1 ; WX 722 ; N Dcroat ; B 6 0 690 676 ;
+C -1 ; WX 250 ; N commaaccent ; B 47 -218 203 -50 ;
+C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ;
+C -1 ; WX 667 ; N Emacron ; B 16 0 641 847 ;
+C -1 ; WX 444 ; N ccaron ; B 25 -14 430 704 ;
+C -1 ; WX 500 ; N aring ; B 25 -14 488 740 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 16 -188 701 676 ;
+C -1 ; WX 278 ; N lacute ; B 16 0 297 923 ;
+C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ;
+C -1 ; WX 667 ; N Tcommaaccent ; B 31 -218 636 676 ;
+C -1 ; WX 722 ; N Cacute ; B 49 -19 687 923 ;
+C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ;
+C -1 ; WX 667 ; N Edotaccent ; B 16 0 641 901 ;
+C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ;
+C -1 ; WX 389 ; N scedilla ; B 25 -218 361 473 ;
+C -1 ; WX 278 ; N iacute ; B 16 0 289 713 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ;
+C -1 ; WX 778 ; N Gcommaaccent ; B 37 -218 755 691 ;
+C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ;
+C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ;
+C -1 ; WX 722 ; N Amacron ; B 9 0 689 847 ;
+C -1 ; WX 444 ; N rcaron ; B 29 0 434 704 ;
+C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ;
+C -1 ; WX 667 ; N Zdotaccent ; B 28 0 634 901 ;
+C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ;
+C -1 ; WX 778 ; N Omacron ; B 35 -19 743 847 ;
+C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ;
+C -1 ; WX 556 ; N Sacute ; B 35 -19 513 923 ;
+C -1 ; WX 672 ; N dcaron ; B 25 -14 681 682 ;
+C -1 ; WX 722 ; N Umacron ; B 16 -19 701 847 ;
+C -1 ; WX 556 ; N uring ; B 16 -14 537 740 ;
+C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ;
+C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ;
+C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ;
+C -1 ; WX 722 ; N Abreve ; B 9 0 689 901 ;
+C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ;
+C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ;
+C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ;
+C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 667 ;
+C -1 ; WX 722 ; N Nacute ; B 16 -18 701 923 ;
+C -1 ; WX 278 ; N icircumflex ; B -37 0 300 704 ;
+C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ;
+C -1 ; WX 500 ; N adieresis ; B 25 -14 488 667 ;
+C -1 ; WX 444 ; N edieresis ; B 25 -14 426 667 ;
+C -1 ; WX 444 ; N cacute ; B 25 -14 430 713 ;
+C -1 ; WX 556 ; N nacute ; B 21 0 539 713 ;
+C -1 ; WX 556 ; N umacron ; B 16 -14 537 637 ;
+C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ;
+C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ;
+C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ;
+C -1 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ;
+C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ;
+C -1 ; WX 778 ; N Gbreve ; B 37 -19 755 901 ;
+C -1 ; WX 389 ; N Idotaccent ; B 20 0 370 901 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ;
+C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ;
+C -1 ; WX 444 ; N racute ; B 29 0 434 713 ;
+C -1 ; WX 500 ; N omacron ; B 25 -14 476 637 ;
+C -1 ; WX 667 ; N Zacute ; B 28 0 634 923 ;
+C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ;
+C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ;
+C -1 ; WX 278 ; N lcommaaccent ; B 16 -218 255 676 ;
+C -1 ; WX 416 ; N tcaron ; B 20 -12 425 815 ;
+C -1 ; WX 444 ; N eogonek ; B 25 -193 426 473 ;
+C -1 ; WX 722 ; N Uogonek ; B 16 -193 701 676 ;
+C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ;
+C -1 ; WX 722 ; N Adieresis ; B 9 0 689 877 ;
+C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ;
+C -1 ; WX 444 ; N zacute ; B 21 0 420 713 ;
+C -1 ; WX 278 ; N iogonek ; B 16 -193 274 691 ;
+C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ;
+C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ;
+C -1 ; WX 500 ; N amacron ; B 25 -14 488 637 ;
+C -1 ; WX 389 ; N sacute ; B 25 -14 361 713 ;
+C -1 ; WX 278 ; N idieresis ; B -37 0 300 667 ;
+C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ;
+C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ;
+C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ;
+C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 877 ;
+C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ;
+C -1 ; WX 278 ; N igrave ; B -27 0 255 713 ;
+C -1 ; WX 500 ; N ohungarumlaut ; B 25 -14 529 713 ;
+C -1 ; WX 667 ; N Eogonek ; B 16 -193 644 676 ;
+C -1 ; WX 556 ; N dcroat ; B 25 -14 534 676 ;
+C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ;
+C -1 ; WX 556 ; N Scedilla ; B 35 -218 513 692 ;
+C -1 ; WX 394 ; N lcaron ; B 16 0 412 682 ;
+C -1 ; WX 778 ; N Kcommaaccent ; B 30 -218 769 676 ;
+C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ;
+C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ;
+C -1 ; WX 444 ; N edotaccent ; B 25 -14 426 691 ;
+C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ;
+C -1 ; WX 389 ; N Imacron ; B 20 0 370 847 ;
+C -1 ; WX 667 ; N Lcaron ; B 19 0 652 682 ;
+C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ;
+C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 16 -19 701 923 ;
+C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ;
+C -1 ; WX 444 ; N emacron ; B 25 -14 426 637 ;
+C -1 ; WX 500 ; N gbreve ; B 28 -206 483 691 ;
+C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ;
+C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ;
+C -1 ; WX 556 ; N Scommaaccent ; B 35 -218 513 692 ;
+C -1 ; WX 778 ; N Ohungarumlaut ; B 35 -19 743 923 ;
+C -1 ; WX 400 ; N degree ; B 57 402 343 688 ;
+C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ;
+C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ;
+C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ;
+C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ;
+C -1 ; WX 444 ; N rcommaaccent ; B 29 -218 434 473 ;
+C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ;
+C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ;
+C -1 ; WX 722 ; N Rcommaaccent ; B 26 -218 715 676 ;
+C -1 ; WX 667 ; N Lcommaaccent ; B 19 -218 638 676 ;
+C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ;
+C -1 ; WX 722 ; N Aogonek ; B 9 -193 699 690 ;
+C -1 ; WX 722 ; N Aring ; B 9 0 689 935 ;
+C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ;
+C -1 ; WX 444 ; N zdotaccent ; B 21 0 420 691 ;
+C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ;
+C -1 ; WX 389 ; N Iogonek ; B 20 -193 370 676 ;
+C -1 ; WX 556 ; N kcommaaccent ; B 22 -218 543 676 ;
+C -1 ; WX 570 ; N minus ; B 33 209 537 297 ;
+C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ;
+C -1 ; WX 556 ; N ncaron ; B 21 0 539 704 ;
+C -1 ; WX 333 ; N tcommaaccent ; B 20 -218 332 630 ;
+C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ;
+C -1 ; WX 500 ; N odieresis ; B 25 -14 476 667 ;
+C -1 ; WX 556 ; N udieresis ; B 16 -14 537 667 ;
+C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 500 ; N gcommaaccent ; B 28 -206 483 829 ;
+C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ;
+C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ;
+C -1 ; WX 556 ; N ncommaaccent ; B 21 -218 539 473 ;
+C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ;
+C -1 ; WX 278 ; N imacron ; B -8 0 272 637 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2242
+KPX A C -55
+KPX A Cacute -55
+KPX A Ccaron -55
+KPX A Ccedilla -55
+KPX A G -55
+KPX A Gbreve -55
+KPX A Gcommaaccent -55
+KPX A O -45
+KPX A Oacute -45
+KPX A Ocircumflex -45
+KPX A Odieresis -45
+KPX A Ograve -45
+KPX A Ohungarumlaut -45
+KPX A Omacron -45
+KPX A Oslash -45
+KPX A Otilde -45
+KPX A Q -45
+KPX A T -95
+KPX A Tcaron -95
+KPX A Tcommaaccent -95
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -145
+KPX A W -130
+KPX A Y -100
+KPX A Yacute -100
+KPX A Ydieresis -100
+KPX A p -25
+KPX A quoteright -74
+KPX A u -50
+KPX A uacute -50
+KPX A ucircumflex -50
+KPX A udieresis -50
+KPX A ugrave -50
+KPX A uhungarumlaut -50
+KPX A umacron -50
+KPX A uogonek -50
+KPX A uring -50
+KPX A v -100
+KPX A w -90
+KPX A y -74
+KPX A yacute -74
+KPX A ydieresis -74
+KPX Aacute C -55
+KPX Aacute Cacute -55
+KPX Aacute Ccaron -55
+KPX Aacute Ccedilla -55
+KPX Aacute G -55
+KPX Aacute Gbreve -55
+KPX Aacute Gcommaaccent -55
+KPX Aacute O -45
+KPX Aacute Oacute -45
+KPX Aacute Ocircumflex -45
+KPX Aacute Odieresis -45
+KPX Aacute Ograve -45
+KPX Aacute Ohungarumlaut -45
+KPX Aacute Omacron -45
+KPX Aacute Oslash -45
+KPX Aacute Otilde -45
+KPX Aacute Q -45
+KPX Aacute T -95
+KPX Aacute Tcaron -95
+KPX Aacute Tcommaaccent -95
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -145
+KPX Aacute W -130
+KPX Aacute Y -100
+KPX Aacute Yacute -100
+KPX Aacute Ydieresis -100
+KPX Aacute p -25
+KPX Aacute quoteright -74
+KPX Aacute u -50
+KPX Aacute uacute -50
+KPX Aacute ucircumflex -50
+KPX Aacute udieresis -50
+KPX Aacute ugrave -50
+KPX Aacute uhungarumlaut -50
+KPX Aacute umacron -50
+KPX Aacute uogonek -50
+KPX Aacute uring -50
+KPX Aacute v -100
+KPX Aacute w -90
+KPX Aacute y -74
+KPX Aacute yacute -74
+KPX Aacute ydieresis -74
+KPX Abreve C -55
+KPX Abreve Cacute -55
+KPX Abreve Ccaron -55
+KPX Abreve Ccedilla -55
+KPX Abreve G -55
+KPX Abreve Gbreve -55
+KPX Abreve Gcommaaccent -55
+KPX Abreve O -45
+KPX Abreve Oacute -45
+KPX Abreve Ocircumflex -45
+KPX Abreve Odieresis -45
+KPX Abreve Ograve -45
+KPX Abreve Ohungarumlaut -45
+KPX Abreve Omacron -45
+KPX Abreve Oslash -45
+KPX Abreve Otilde -45
+KPX Abreve Q -45
+KPX Abreve T -95
+KPX Abreve Tcaron -95
+KPX Abreve Tcommaaccent -95
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -145
+KPX Abreve W -130
+KPX Abreve Y -100
+KPX Abreve Yacute -100
+KPX Abreve Ydieresis -100
+KPX Abreve p -25
+KPX Abreve quoteright -74
+KPX Abreve u -50
+KPX Abreve uacute -50
+KPX Abreve ucircumflex -50
+KPX Abreve udieresis -50
+KPX Abreve ugrave -50
+KPX Abreve uhungarumlaut -50
+KPX Abreve umacron -50
+KPX Abreve uogonek -50
+KPX Abreve uring -50
+KPX Abreve v -100
+KPX Abreve w -90
+KPX Abreve y -74
+KPX Abreve yacute -74
+KPX Abreve ydieresis -74
+KPX Acircumflex C -55
+KPX Acircumflex Cacute -55
+KPX Acircumflex Ccaron -55
+KPX Acircumflex Ccedilla -55
+KPX Acircumflex G -55
+KPX Acircumflex Gbreve -55
+KPX Acircumflex Gcommaaccent -55
+KPX Acircumflex O -45
+KPX Acircumflex Oacute -45
+KPX Acircumflex Ocircumflex -45
+KPX Acircumflex Odieresis -45
+KPX Acircumflex Ograve -45
+KPX Acircumflex Ohungarumlaut -45
+KPX Acircumflex Omacron -45
+KPX Acircumflex Oslash -45
+KPX Acircumflex Otilde -45
+KPX Acircumflex Q -45
+KPX Acircumflex T -95
+KPX Acircumflex Tcaron -95
+KPX Acircumflex Tcommaaccent -95
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -145
+KPX Acircumflex W -130
+KPX Acircumflex Y -100
+KPX Acircumflex Yacute -100
+KPX Acircumflex Ydieresis -100
+KPX Acircumflex p -25
+KPX Acircumflex quoteright -74
+KPX Acircumflex u -50
+KPX Acircumflex uacute -50
+KPX Acircumflex ucircumflex -50
+KPX Acircumflex udieresis -50
+KPX Acircumflex ugrave -50
+KPX Acircumflex uhungarumlaut -50
+KPX Acircumflex umacron -50
+KPX Acircumflex uogonek -50
+KPX Acircumflex uring -50
+KPX Acircumflex v -100
+KPX Acircumflex w -90
+KPX Acircumflex y -74
+KPX Acircumflex yacute -74
+KPX Acircumflex ydieresis -74
+KPX Adieresis C -55
+KPX Adieresis Cacute -55
+KPX Adieresis Ccaron -55
+KPX Adieresis Ccedilla -55
+KPX Adieresis G -55
+KPX Adieresis Gbreve -55
+KPX Adieresis Gcommaaccent -55
+KPX Adieresis O -45
+KPX Adieresis Oacute -45
+KPX Adieresis Ocircumflex -45
+KPX Adieresis Odieresis -45
+KPX Adieresis Ograve -45
+KPX Adieresis Ohungarumlaut -45
+KPX Adieresis Omacron -45
+KPX Adieresis Oslash -45
+KPX Adieresis Otilde -45
+KPX Adieresis Q -45
+KPX Adieresis T -95
+KPX Adieresis Tcaron -95
+KPX Adieresis Tcommaaccent -95
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -145
+KPX Adieresis W -130
+KPX Adieresis Y -100
+KPX Adieresis Yacute -100
+KPX Adieresis Ydieresis -100
+KPX Adieresis p -25
+KPX Adieresis quoteright -74
+KPX Adieresis u -50
+KPX Adieresis uacute -50
+KPX Adieresis ucircumflex -50
+KPX Adieresis udieresis -50
+KPX Adieresis ugrave -50
+KPX Adieresis uhungarumlaut -50
+KPX Adieresis umacron -50
+KPX Adieresis uogonek -50
+KPX Adieresis uring -50
+KPX Adieresis v -100
+KPX Adieresis w -90
+KPX Adieresis y -74
+KPX Adieresis yacute -74
+KPX Adieresis ydieresis -74
+KPX Agrave C -55
+KPX Agrave Cacute -55
+KPX Agrave Ccaron -55
+KPX Agrave Ccedilla -55
+KPX Agrave G -55
+KPX Agrave Gbreve -55
+KPX Agrave Gcommaaccent -55
+KPX Agrave O -45
+KPX Agrave Oacute -45
+KPX Agrave Ocircumflex -45
+KPX Agrave Odieresis -45
+KPX Agrave Ograve -45
+KPX Agrave Ohungarumlaut -45
+KPX Agrave Omacron -45
+KPX Agrave Oslash -45
+KPX Agrave Otilde -45
+KPX Agrave Q -45
+KPX Agrave T -95
+KPX Agrave Tcaron -95
+KPX Agrave Tcommaaccent -95
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -145
+KPX Agrave W -130
+KPX Agrave Y -100
+KPX Agrave Yacute -100
+KPX Agrave Ydieresis -100
+KPX Agrave p -25
+KPX Agrave quoteright -74
+KPX Agrave u -50
+KPX Agrave uacute -50
+KPX Agrave ucircumflex -50
+KPX Agrave udieresis -50
+KPX Agrave ugrave -50
+KPX Agrave uhungarumlaut -50
+KPX Agrave umacron -50
+KPX Agrave uogonek -50
+KPX Agrave uring -50
+KPX Agrave v -100
+KPX Agrave w -90
+KPX Agrave y -74
+KPX Agrave yacute -74
+KPX Agrave ydieresis -74
+KPX Amacron C -55
+KPX Amacron Cacute -55
+KPX Amacron Ccaron -55
+KPX Amacron Ccedilla -55
+KPX Amacron G -55
+KPX Amacron Gbreve -55
+KPX Amacron Gcommaaccent -55
+KPX Amacron O -45
+KPX Amacron Oacute -45
+KPX Amacron Ocircumflex -45
+KPX Amacron Odieresis -45
+KPX Amacron Ograve -45
+KPX Amacron Ohungarumlaut -45
+KPX Amacron Omacron -45
+KPX Amacron Oslash -45
+KPX Amacron Otilde -45
+KPX Amacron Q -45
+KPX Amacron T -95
+KPX Amacron Tcaron -95
+KPX Amacron Tcommaaccent -95
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -145
+KPX Amacron W -130
+KPX Amacron Y -100
+KPX Amacron Yacute -100
+KPX Amacron Ydieresis -100
+KPX Amacron p -25
+KPX Amacron quoteright -74
+KPX Amacron u -50
+KPX Amacron uacute -50
+KPX Amacron ucircumflex -50
+KPX Amacron udieresis -50
+KPX Amacron ugrave -50
+KPX Amacron uhungarumlaut -50
+KPX Amacron umacron -50
+KPX Amacron uogonek -50
+KPX Amacron uring -50
+KPX Amacron v -100
+KPX Amacron w -90
+KPX Amacron y -74
+KPX Amacron yacute -74
+KPX Amacron ydieresis -74
+KPX Aogonek C -55
+KPX Aogonek Cacute -55
+KPX Aogonek Ccaron -55
+KPX Aogonek Ccedilla -55
+KPX Aogonek G -55
+KPX Aogonek Gbreve -55
+KPX Aogonek Gcommaaccent -55
+KPX Aogonek O -45
+KPX Aogonek Oacute -45
+KPX Aogonek Ocircumflex -45
+KPX Aogonek Odieresis -45
+KPX Aogonek Ograve -45
+KPX Aogonek Ohungarumlaut -45
+KPX Aogonek Omacron -45
+KPX Aogonek Oslash -45
+KPX Aogonek Otilde -45
+KPX Aogonek Q -45
+KPX Aogonek T -95
+KPX Aogonek Tcaron -95
+KPX Aogonek Tcommaaccent -95
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -145
+KPX Aogonek W -130
+KPX Aogonek Y -100
+KPX Aogonek Yacute -100
+KPX Aogonek Ydieresis -100
+KPX Aogonek p -25
+KPX Aogonek quoteright -74
+KPX Aogonek u -50
+KPX Aogonek uacute -50
+KPX Aogonek ucircumflex -50
+KPX Aogonek udieresis -50
+KPX Aogonek ugrave -50
+KPX Aogonek uhungarumlaut -50
+KPX Aogonek umacron -50
+KPX Aogonek uogonek -50
+KPX Aogonek uring -50
+KPX Aogonek v -100
+KPX Aogonek w -90
+KPX Aogonek y -34
+KPX Aogonek yacute -34
+KPX Aogonek ydieresis -34
+KPX Aring C -55
+KPX Aring Cacute -55
+KPX Aring Ccaron -55
+KPX Aring Ccedilla -55
+KPX Aring G -55
+KPX Aring Gbreve -55
+KPX Aring Gcommaaccent -55
+KPX Aring O -45
+KPX Aring Oacute -45
+KPX Aring Ocircumflex -45
+KPX Aring Odieresis -45
+KPX Aring Ograve -45
+KPX Aring Ohungarumlaut -45
+KPX Aring Omacron -45
+KPX Aring Oslash -45
+KPX Aring Otilde -45
+KPX Aring Q -45
+KPX Aring T -95
+KPX Aring Tcaron -95
+KPX Aring Tcommaaccent -95
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -145
+KPX Aring W -130
+KPX Aring Y -100
+KPX Aring Yacute -100
+KPX Aring Ydieresis -100
+KPX Aring p -25
+KPX Aring quoteright -74
+KPX Aring u -50
+KPX Aring uacute -50
+KPX Aring ucircumflex -50
+KPX Aring udieresis -50
+KPX Aring ugrave -50
+KPX Aring uhungarumlaut -50
+KPX Aring umacron -50
+KPX Aring uogonek -50
+KPX Aring uring -50
+KPX Aring v -100
+KPX Aring w -90
+KPX Aring y -74
+KPX Aring yacute -74
+KPX Aring ydieresis -74
+KPX Atilde C -55
+KPX Atilde Cacute -55
+KPX Atilde Ccaron -55
+KPX Atilde Ccedilla -55
+KPX Atilde G -55
+KPX Atilde Gbreve -55
+KPX Atilde Gcommaaccent -55
+KPX Atilde O -45
+KPX Atilde Oacute -45
+KPX Atilde Ocircumflex -45
+KPX Atilde Odieresis -45
+KPX Atilde Ograve -45
+KPX Atilde Ohungarumlaut -45
+KPX Atilde Omacron -45
+KPX Atilde Oslash -45
+KPX Atilde Otilde -45
+KPX Atilde Q -45
+KPX Atilde T -95
+KPX Atilde Tcaron -95
+KPX Atilde Tcommaaccent -95
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -145
+KPX Atilde W -130
+KPX Atilde Y -100
+KPX Atilde Yacute -100
+KPX Atilde Ydieresis -100
+KPX Atilde p -25
+KPX Atilde quoteright -74
+KPX Atilde u -50
+KPX Atilde uacute -50
+KPX Atilde ucircumflex -50
+KPX Atilde udieresis -50
+KPX Atilde ugrave -50
+KPX Atilde uhungarumlaut -50
+KPX Atilde umacron -50
+KPX Atilde uogonek -50
+KPX Atilde uring -50
+KPX Atilde v -100
+KPX Atilde w -90
+KPX Atilde y -74
+KPX Atilde yacute -74
+KPX Atilde ydieresis -74
+KPX B A -30
+KPX B Aacute -30
+KPX B Abreve -30
+KPX B Acircumflex -30
+KPX B Adieresis -30
+KPX B Agrave -30
+KPX B Amacron -30
+KPX B Aogonek -30
+KPX B Aring -30
+KPX B Atilde -30
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -35
+KPX D Aacute -35
+KPX D Abreve -35
+KPX D Acircumflex -35
+KPX D Adieresis -35
+KPX D Agrave -35
+KPX D Amacron -35
+KPX D Aogonek -35
+KPX D Aring -35
+KPX D Atilde -35
+KPX D V -40
+KPX D W -40
+KPX D Y -40
+KPX D Yacute -40
+KPX D Ydieresis -40
+KPX D period -20
+KPX Dcaron A -35
+KPX Dcaron Aacute -35
+KPX Dcaron Abreve -35
+KPX Dcaron Acircumflex -35
+KPX Dcaron Adieresis -35
+KPX Dcaron Agrave -35
+KPX Dcaron Amacron -35
+KPX Dcaron Aogonek -35
+KPX Dcaron Aring -35
+KPX Dcaron Atilde -35
+KPX Dcaron V -40
+KPX Dcaron W -40
+KPX Dcaron Y -40
+KPX Dcaron Yacute -40
+KPX Dcaron Ydieresis -40
+KPX Dcaron period -20
+KPX Dcroat A -35
+KPX Dcroat Aacute -35
+KPX Dcroat Abreve -35
+KPX Dcroat Acircumflex -35
+KPX Dcroat Adieresis -35
+KPX Dcroat Agrave -35
+KPX Dcroat Amacron -35
+KPX Dcroat Aogonek -35
+KPX Dcroat Aring -35
+KPX Dcroat Atilde -35
+KPX Dcroat V -40
+KPX Dcroat W -40
+KPX Dcroat Y -40
+KPX Dcroat Yacute -40
+KPX Dcroat Ydieresis -40
+KPX Dcroat period -20
+KPX F A -90
+KPX F Aacute -90
+KPX F Abreve -90
+KPX F Acircumflex -90
+KPX F Adieresis -90
+KPX F Agrave -90
+KPX F Amacron -90
+KPX F Aogonek -90
+KPX F Aring -90
+KPX F Atilde -90
+KPX F a -25
+KPX F aacute -25
+KPX F abreve -25
+KPX F acircumflex -25
+KPX F adieresis -25
+KPX F agrave -25
+KPX F amacron -25
+KPX F aogonek -25
+KPX F aring -25
+KPX F atilde -25
+KPX F comma -92
+KPX F e -25
+KPX F eacute -25
+KPX F ecaron -25
+KPX F ecircumflex -25
+KPX F edieresis -25
+KPX F edotaccent -25
+KPX F egrave -25
+KPX F emacron -25
+KPX F eogonek -25
+KPX F o -25
+KPX F oacute -25
+KPX F ocircumflex -25
+KPX F odieresis -25
+KPX F ograve -25
+KPX F ohungarumlaut -25
+KPX F omacron -25
+KPX F oslash -25
+KPX F otilde -25
+KPX F period -110
+KPX J A -30
+KPX J Aacute -30
+KPX J Abreve -30
+KPX J Acircumflex -30
+KPX J Adieresis -30
+KPX J Agrave -30
+KPX J Amacron -30
+KPX J Aogonek -30
+KPX J Aring -30
+KPX J Atilde -30
+KPX J a -15
+KPX J aacute -15
+KPX J abreve -15
+KPX J acircumflex -15
+KPX J adieresis -15
+KPX J agrave -15
+KPX J amacron -15
+KPX J aogonek -15
+KPX J aring -15
+KPX J atilde -15
+KPX J e -15
+KPX J eacute -15
+KPX J ecaron -15
+KPX J ecircumflex -15
+KPX J edieresis -15
+KPX J edotaccent -15
+KPX J egrave -15
+KPX J emacron -15
+KPX J eogonek -15
+KPX J o -15
+KPX J oacute -15
+KPX J ocircumflex -15
+KPX J odieresis -15
+KPX J ograve -15
+KPX J ohungarumlaut -15
+KPX J omacron -15
+KPX J oslash -15
+KPX J otilde -15
+KPX J period -20
+KPX J u -15
+KPX J uacute -15
+KPX J ucircumflex -15
+KPX J udieresis -15
+KPX J ugrave -15
+KPX J uhungarumlaut -15
+KPX J umacron -15
+KPX J uogonek -15
+KPX J uring -15
+KPX K O -30
+KPX K Oacute -30
+KPX K Ocircumflex -30
+KPX K Odieresis -30
+KPX K Ograve -30
+KPX K Ohungarumlaut -30
+KPX K Omacron -30
+KPX K Oslash -30
+KPX K Otilde -30
+KPX K e -25
+KPX K eacute -25
+KPX K ecaron -25
+KPX K ecircumflex -25
+KPX K edieresis -25
+KPX K edotaccent -25
+KPX K egrave -25
+KPX K emacron -25
+KPX K eogonek -25
+KPX K o -25
+KPX K oacute -25
+KPX K ocircumflex -25
+KPX K odieresis -25
+KPX K ograve -25
+KPX K ohungarumlaut -25
+KPX K omacron -25
+KPX K oslash -25
+KPX K otilde -25
+KPX K u -15
+KPX K uacute -15
+KPX K ucircumflex -15
+KPX K udieresis -15
+KPX K ugrave -15
+KPX K uhungarumlaut -15
+KPX K umacron -15
+KPX K uogonek -15
+KPX K uring -15
+KPX K y -45
+KPX K yacute -45
+KPX K ydieresis -45
+KPX Kcommaaccent O -30
+KPX Kcommaaccent Oacute -30
+KPX Kcommaaccent Ocircumflex -30
+KPX Kcommaaccent Odieresis -30
+KPX Kcommaaccent Ograve -30
+KPX Kcommaaccent Ohungarumlaut -30
+KPX Kcommaaccent Omacron -30
+KPX Kcommaaccent Oslash -30
+KPX Kcommaaccent Otilde -30
+KPX Kcommaaccent e -25
+KPX Kcommaaccent eacute -25
+KPX Kcommaaccent ecaron -25
+KPX Kcommaaccent ecircumflex -25
+KPX Kcommaaccent edieresis -25
+KPX Kcommaaccent edotaccent -25
+KPX Kcommaaccent egrave -25
+KPX Kcommaaccent emacron -25
+KPX Kcommaaccent eogonek -25
+KPX Kcommaaccent o -25
+KPX Kcommaaccent oacute -25
+KPX Kcommaaccent ocircumflex -25
+KPX Kcommaaccent odieresis -25
+KPX Kcommaaccent ograve -25
+KPX Kcommaaccent ohungarumlaut -25
+KPX Kcommaaccent omacron -25
+KPX Kcommaaccent oslash -25
+KPX Kcommaaccent otilde -25
+KPX Kcommaaccent u -15
+KPX Kcommaaccent uacute -15
+KPX Kcommaaccent ucircumflex -15
+KPX Kcommaaccent udieresis -15
+KPX Kcommaaccent ugrave -15
+KPX Kcommaaccent uhungarumlaut -15
+KPX Kcommaaccent umacron -15
+KPX Kcommaaccent uogonek -15
+KPX Kcommaaccent uring -15
+KPX Kcommaaccent y -45
+KPX Kcommaaccent yacute -45
+KPX Kcommaaccent ydieresis -45
+KPX L T -92
+KPX L Tcaron -92
+KPX L Tcommaaccent -92
+KPX L V -92
+KPX L W -92
+KPX L Y -92
+KPX L Yacute -92
+KPX L Ydieresis -92
+KPX L quotedblright -20
+KPX L quoteright -110
+KPX L y -55
+KPX L yacute -55
+KPX L ydieresis -55
+KPX Lacute T -92
+KPX Lacute Tcaron -92
+KPX Lacute Tcommaaccent -92
+KPX Lacute V -92
+KPX Lacute W -92
+KPX Lacute Y -92
+KPX Lacute Yacute -92
+KPX Lacute Ydieresis -92
+KPX Lacute quotedblright -20
+KPX Lacute quoteright -110
+KPX Lacute y -55
+KPX Lacute yacute -55
+KPX Lacute ydieresis -55
+KPX Lcommaaccent T -92
+KPX Lcommaaccent Tcaron -92
+KPX Lcommaaccent Tcommaaccent -92
+KPX Lcommaaccent V -92
+KPX Lcommaaccent W -92
+KPX Lcommaaccent Y -92
+KPX Lcommaaccent Yacute -92
+KPX Lcommaaccent Ydieresis -92
+KPX Lcommaaccent quotedblright -20
+KPX Lcommaaccent quoteright -110
+KPX Lcommaaccent y -55
+KPX Lcommaaccent yacute -55
+KPX Lcommaaccent ydieresis -55
+KPX Lslash T -92
+KPX Lslash Tcaron -92
+KPX Lslash Tcommaaccent -92
+KPX Lslash V -92
+KPX Lslash W -92
+KPX Lslash Y -92
+KPX Lslash Yacute -92
+KPX Lslash Ydieresis -92
+KPX Lslash quotedblright -20
+KPX Lslash quoteright -110
+KPX Lslash y -55
+KPX Lslash yacute -55
+KPX Lslash ydieresis -55
+KPX N A -20
+KPX N Aacute -20
+KPX N Abreve -20
+KPX N Acircumflex -20
+KPX N Adieresis -20
+KPX N Agrave -20
+KPX N Amacron -20
+KPX N Aogonek -20
+KPX N Aring -20
+KPX N Atilde -20
+KPX Nacute A -20
+KPX Nacute Aacute -20
+KPX Nacute Abreve -20
+KPX Nacute Acircumflex -20
+KPX Nacute Adieresis -20
+KPX Nacute Agrave -20
+KPX Nacute Amacron -20
+KPX Nacute Aogonek -20
+KPX Nacute Aring -20
+KPX Nacute Atilde -20
+KPX Ncaron A -20
+KPX Ncaron Aacute -20
+KPX Ncaron Abreve -20
+KPX Ncaron Acircumflex -20
+KPX Ncaron Adieresis -20
+KPX Ncaron Agrave -20
+KPX Ncaron Amacron -20
+KPX Ncaron Aogonek -20
+KPX Ncaron Aring -20
+KPX Ncaron Atilde -20
+KPX Ncommaaccent A -20
+KPX Ncommaaccent Aacute -20
+KPX Ncommaaccent Abreve -20
+KPX Ncommaaccent Acircumflex -20
+KPX Ncommaaccent Adieresis -20
+KPX Ncommaaccent Agrave -20
+KPX Ncommaaccent Amacron -20
+KPX Ncommaaccent Aogonek -20
+KPX Ncommaaccent Aring -20
+KPX Ncommaaccent Atilde -20
+KPX Ntilde A -20
+KPX Ntilde Aacute -20
+KPX Ntilde Abreve -20
+KPX Ntilde Acircumflex -20
+KPX Ntilde Adieresis -20
+KPX Ntilde Agrave -20
+KPX Ntilde Amacron -20
+KPX Ntilde Aogonek -20
+KPX Ntilde Aring -20
+KPX Ntilde Atilde -20
+KPX O A -40
+KPX O Aacute -40
+KPX O Abreve -40
+KPX O Acircumflex -40
+KPX O Adieresis -40
+KPX O Agrave -40
+KPX O Amacron -40
+KPX O Aogonek -40
+KPX O Aring -40
+KPX O Atilde -40
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -50
+KPX O X -40
+KPX O Y -50
+KPX O Yacute -50
+KPX O Ydieresis -50
+KPX Oacute A -40
+KPX Oacute Aacute -40
+KPX Oacute Abreve -40
+KPX Oacute Acircumflex -40
+KPX Oacute Adieresis -40
+KPX Oacute Agrave -40
+KPX Oacute Amacron -40
+KPX Oacute Aogonek -40
+KPX Oacute Aring -40
+KPX Oacute Atilde -40
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -50
+KPX Oacute X -40
+KPX Oacute Y -50
+KPX Oacute Yacute -50
+KPX Oacute Ydieresis -50
+KPX Ocircumflex A -40
+KPX Ocircumflex Aacute -40
+KPX Ocircumflex Abreve -40
+KPX Ocircumflex Acircumflex -40
+KPX Ocircumflex Adieresis -40
+KPX Ocircumflex Agrave -40
+KPX Ocircumflex Amacron -40
+KPX Ocircumflex Aogonek -40
+KPX Ocircumflex Aring -40
+KPX Ocircumflex Atilde -40
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -50
+KPX Ocircumflex X -40
+KPX Ocircumflex Y -50
+KPX Ocircumflex Yacute -50
+KPX Ocircumflex Ydieresis -50
+KPX Odieresis A -40
+KPX Odieresis Aacute -40
+KPX Odieresis Abreve -40
+KPX Odieresis Acircumflex -40
+KPX Odieresis Adieresis -40
+KPX Odieresis Agrave -40
+KPX Odieresis Amacron -40
+KPX Odieresis Aogonek -40
+KPX Odieresis Aring -40
+KPX Odieresis Atilde -40
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -50
+KPX Odieresis X -40
+KPX Odieresis Y -50
+KPX Odieresis Yacute -50
+KPX Odieresis Ydieresis -50
+KPX Ograve A -40
+KPX Ograve Aacute -40
+KPX Ograve Abreve -40
+KPX Ograve Acircumflex -40
+KPX Ograve Adieresis -40
+KPX Ograve Agrave -40
+KPX Ograve Amacron -40
+KPX Ograve Aogonek -40
+KPX Ograve Aring -40
+KPX Ograve Atilde -40
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -50
+KPX Ograve X -40
+KPX Ograve Y -50
+KPX Ograve Yacute -50
+KPX Ograve Ydieresis -50
+KPX Ohungarumlaut A -40
+KPX Ohungarumlaut Aacute -40
+KPX Ohungarumlaut Abreve -40
+KPX Ohungarumlaut Acircumflex -40
+KPX Ohungarumlaut Adieresis -40
+KPX Ohungarumlaut Agrave -40
+KPX Ohungarumlaut Amacron -40
+KPX Ohungarumlaut Aogonek -40
+KPX Ohungarumlaut Aring -40
+KPX Ohungarumlaut Atilde -40
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -50
+KPX Ohungarumlaut X -40
+KPX Ohungarumlaut Y -50
+KPX Ohungarumlaut Yacute -50
+KPX Ohungarumlaut Ydieresis -50
+KPX Omacron A -40
+KPX Omacron Aacute -40
+KPX Omacron Abreve -40
+KPX Omacron Acircumflex -40
+KPX Omacron Adieresis -40
+KPX Omacron Agrave -40
+KPX Omacron Amacron -40
+KPX Omacron Aogonek -40
+KPX Omacron Aring -40
+KPX Omacron Atilde -40
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -50
+KPX Omacron X -40
+KPX Omacron Y -50
+KPX Omacron Yacute -50
+KPX Omacron Ydieresis -50
+KPX Oslash A -40
+KPX Oslash Aacute -40
+KPX Oslash Abreve -40
+KPX Oslash Acircumflex -40
+KPX Oslash Adieresis -40
+KPX Oslash Agrave -40
+KPX Oslash Amacron -40
+KPX Oslash Aogonek -40
+KPX Oslash Aring -40
+KPX Oslash Atilde -40
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -50
+KPX Oslash X -40
+KPX Oslash Y -50
+KPX Oslash Yacute -50
+KPX Oslash Ydieresis -50
+KPX Otilde A -40
+KPX Otilde Aacute -40
+KPX Otilde Abreve -40
+KPX Otilde Acircumflex -40
+KPX Otilde Adieresis -40
+KPX Otilde Agrave -40
+KPX Otilde Amacron -40
+KPX Otilde Aogonek -40
+KPX Otilde Aring -40
+KPX Otilde Atilde -40
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -50
+KPX Otilde X -40
+KPX Otilde Y -50
+KPX Otilde Yacute -50
+KPX Otilde Ydieresis -50
+KPX P A -74
+KPX P Aacute -74
+KPX P Abreve -74
+KPX P Acircumflex -74
+KPX P Adieresis -74
+KPX P Agrave -74
+KPX P Amacron -74
+KPX P Aogonek -74
+KPX P Aring -74
+KPX P Atilde -74
+KPX P a -10
+KPX P aacute -10
+KPX P abreve -10
+KPX P acircumflex -10
+KPX P adieresis -10
+KPX P agrave -10
+KPX P amacron -10
+KPX P aogonek -10
+KPX P aring -10
+KPX P atilde -10
+KPX P comma -92
+KPX P e -20
+KPX P eacute -20
+KPX P ecaron -20
+KPX P ecircumflex -20
+KPX P edieresis -20
+KPX P edotaccent -20
+KPX P egrave -20
+KPX P emacron -20
+KPX P eogonek -20
+KPX P o -20
+KPX P oacute -20
+KPX P ocircumflex -20
+KPX P odieresis -20
+KPX P ograve -20
+KPX P ohungarumlaut -20
+KPX P omacron -20
+KPX P oslash -20
+KPX P otilde -20
+KPX P period -110
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX Q period -20
+KPX R O -30
+KPX R Oacute -30
+KPX R Ocircumflex -30
+KPX R Odieresis -30
+KPX R Ograve -30
+KPX R Ohungarumlaut -30
+KPX R Omacron -30
+KPX R Oslash -30
+KPX R Otilde -30
+KPX R T -40
+KPX R Tcaron -40
+KPX R Tcommaaccent -40
+KPX R U -30
+KPX R Uacute -30
+KPX R Ucircumflex -30
+KPX R Udieresis -30
+KPX R Ugrave -30
+KPX R Uhungarumlaut -30
+KPX R Umacron -30
+KPX R Uogonek -30
+KPX R Uring -30
+KPX R V -55
+KPX R W -35
+KPX R Y -35
+KPX R Yacute -35
+KPX R Ydieresis -35
+KPX Racute O -30
+KPX Racute Oacute -30
+KPX Racute Ocircumflex -30
+KPX Racute Odieresis -30
+KPX Racute Ograve -30
+KPX Racute Ohungarumlaut -30
+KPX Racute Omacron -30
+KPX Racute Oslash -30
+KPX Racute Otilde -30
+KPX Racute T -40
+KPX Racute Tcaron -40
+KPX Racute Tcommaaccent -40
+KPX Racute U -30
+KPX Racute Uacute -30
+KPX Racute Ucircumflex -30
+KPX Racute Udieresis -30
+KPX Racute Ugrave -30
+KPX Racute Uhungarumlaut -30
+KPX Racute Umacron -30
+KPX Racute Uogonek -30
+KPX Racute Uring -30
+KPX Racute V -55
+KPX Racute W -35
+KPX Racute Y -35
+KPX Racute Yacute -35
+KPX Racute Ydieresis -35
+KPX Rcaron O -30
+KPX Rcaron Oacute -30
+KPX Rcaron Ocircumflex -30
+KPX Rcaron Odieresis -30
+KPX Rcaron Ograve -30
+KPX Rcaron Ohungarumlaut -30
+KPX Rcaron Omacron -30
+KPX Rcaron Oslash -30
+KPX Rcaron Otilde -30
+KPX Rcaron T -40
+KPX Rcaron Tcaron -40
+KPX Rcaron Tcommaaccent -40
+KPX Rcaron U -30
+KPX Rcaron Uacute -30
+KPX Rcaron Ucircumflex -30
+KPX Rcaron Udieresis -30
+KPX Rcaron Ugrave -30
+KPX Rcaron Uhungarumlaut -30
+KPX Rcaron Umacron -30
+KPX Rcaron Uogonek -30
+KPX Rcaron Uring -30
+KPX Rcaron V -55
+KPX Rcaron W -35
+KPX Rcaron Y -35
+KPX Rcaron Yacute -35
+KPX Rcaron Ydieresis -35
+KPX Rcommaaccent O -30
+KPX Rcommaaccent Oacute -30
+KPX Rcommaaccent Ocircumflex -30
+KPX Rcommaaccent Odieresis -30
+KPX Rcommaaccent Ograve -30
+KPX Rcommaaccent Ohungarumlaut -30
+KPX Rcommaaccent Omacron -30
+KPX Rcommaaccent Oslash -30
+KPX Rcommaaccent Otilde -30
+KPX Rcommaaccent T -40
+KPX Rcommaaccent Tcaron -40
+KPX Rcommaaccent Tcommaaccent -40
+KPX Rcommaaccent U -30
+KPX Rcommaaccent Uacute -30
+KPX Rcommaaccent Ucircumflex -30
+KPX Rcommaaccent Udieresis -30
+KPX Rcommaaccent Ugrave -30
+KPX Rcommaaccent Uhungarumlaut -30
+KPX Rcommaaccent Umacron -30
+KPX Rcommaaccent Uogonek -30
+KPX Rcommaaccent Uring -30
+KPX Rcommaaccent V -55
+KPX Rcommaaccent W -35
+KPX Rcommaaccent Y -35
+KPX Rcommaaccent Yacute -35
+KPX Rcommaaccent Ydieresis -35
+KPX T A -90
+KPX T Aacute -90
+KPX T Abreve -90
+KPX T Acircumflex -90
+KPX T Adieresis -90
+KPX T Agrave -90
+KPX T Amacron -90
+KPX T Aogonek -90
+KPX T Aring -90
+KPX T Atilde -90
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -92
+KPX T aacute -92
+KPX T abreve -52
+KPX T acircumflex -52
+KPX T adieresis -52
+KPX T agrave -52
+KPX T amacron -52
+KPX T aogonek -92
+KPX T aring -92
+KPX T atilde -52
+KPX T colon -74
+KPX T comma -74
+KPX T e -92
+KPX T eacute -92
+KPX T ecaron -92
+KPX T ecircumflex -92
+KPX T edieresis -52
+KPX T edotaccent -92
+KPX T egrave -52
+KPX T emacron -52
+KPX T eogonek -92
+KPX T hyphen -92
+KPX T i -18
+KPX T iacute -18
+KPX T iogonek -18
+KPX T o -92
+KPX T oacute -92
+KPX T ocircumflex -92
+KPX T odieresis -92
+KPX T ograve -92
+KPX T ohungarumlaut -92
+KPX T omacron -92
+KPX T oslash -92
+KPX T otilde -92
+KPX T period -90
+KPX T r -74
+KPX T racute -74
+KPX T rcaron -74
+KPX T rcommaaccent -74
+KPX T semicolon -74
+KPX T u -92
+KPX T uacute -92
+KPX T ucircumflex -92
+KPX T udieresis -92
+KPX T ugrave -92
+KPX T uhungarumlaut -92
+KPX T umacron -92
+KPX T uogonek -92
+KPX T uring -92
+KPX T w -74
+KPX T y -34
+KPX T yacute -34
+KPX T ydieresis -34
+KPX Tcaron A -90
+KPX Tcaron Aacute -90
+KPX Tcaron Abreve -90
+KPX Tcaron Acircumflex -90
+KPX Tcaron Adieresis -90
+KPX Tcaron Agrave -90
+KPX Tcaron Amacron -90
+KPX Tcaron Aogonek -90
+KPX Tcaron Aring -90
+KPX Tcaron Atilde -90
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -92
+KPX Tcaron aacute -92
+KPX Tcaron abreve -52
+KPX Tcaron acircumflex -52
+KPX Tcaron adieresis -52
+KPX Tcaron agrave -52
+KPX Tcaron amacron -52
+KPX Tcaron aogonek -92
+KPX Tcaron aring -92
+KPX Tcaron atilde -52
+KPX Tcaron colon -74
+KPX Tcaron comma -74
+KPX Tcaron e -92
+KPX Tcaron eacute -92
+KPX Tcaron ecaron -92
+KPX Tcaron ecircumflex -92
+KPX Tcaron edieresis -52
+KPX Tcaron edotaccent -92
+KPX Tcaron egrave -52
+KPX Tcaron emacron -52
+KPX Tcaron eogonek -92
+KPX Tcaron hyphen -92
+KPX Tcaron i -18
+KPX Tcaron iacute -18
+KPX Tcaron iogonek -18
+KPX Tcaron o -92
+KPX Tcaron oacute -92
+KPX Tcaron ocircumflex -92
+KPX Tcaron odieresis -92
+KPX Tcaron ograve -92
+KPX Tcaron ohungarumlaut -92
+KPX Tcaron omacron -92
+KPX Tcaron oslash -92
+KPX Tcaron otilde -92
+KPX Tcaron period -90
+KPX Tcaron r -74
+KPX Tcaron racute -74
+KPX Tcaron rcaron -74
+KPX Tcaron rcommaaccent -74
+KPX Tcaron semicolon -74
+KPX Tcaron u -92
+KPX Tcaron uacute -92
+KPX Tcaron ucircumflex -92
+KPX Tcaron udieresis -92
+KPX Tcaron ugrave -92
+KPX Tcaron uhungarumlaut -92
+KPX Tcaron umacron -92
+KPX Tcaron uogonek -92
+KPX Tcaron uring -92
+KPX Tcaron w -74
+KPX Tcaron y -34
+KPX Tcaron yacute -34
+KPX Tcaron ydieresis -34
+KPX Tcommaaccent A -90
+KPX Tcommaaccent Aacute -90
+KPX Tcommaaccent Abreve -90
+KPX Tcommaaccent Acircumflex -90
+KPX Tcommaaccent Adieresis -90
+KPX Tcommaaccent Agrave -90
+KPX Tcommaaccent Amacron -90
+KPX Tcommaaccent Aogonek -90
+KPX Tcommaaccent Aring -90
+KPX Tcommaaccent Atilde -90
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -92
+KPX Tcommaaccent aacute -92
+KPX Tcommaaccent abreve -52
+KPX Tcommaaccent acircumflex -52
+KPX Tcommaaccent adieresis -52
+KPX Tcommaaccent agrave -52
+KPX Tcommaaccent amacron -52
+KPX Tcommaaccent aogonek -92
+KPX Tcommaaccent aring -92
+KPX Tcommaaccent atilde -52
+KPX Tcommaaccent colon -74
+KPX Tcommaaccent comma -74
+KPX Tcommaaccent e -92
+KPX Tcommaaccent eacute -92
+KPX Tcommaaccent ecaron -92
+KPX Tcommaaccent ecircumflex -92
+KPX Tcommaaccent edieresis -52
+KPX Tcommaaccent edotaccent -92
+KPX Tcommaaccent egrave -52
+KPX Tcommaaccent emacron -52
+KPX Tcommaaccent eogonek -92
+KPX Tcommaaccent hyphen -92
+KPX Tcommaaccent i -18
+KPX Tcommaaccent iacute -18
+KPX Tcommaaccent iogonek -18
+KPX Tcommaaccent o -92
+KPX Tcommaaccent oacute -92
+KPX Tcommaaccent ocircumflex -92
+KPX Tcommaaccent odieresis -92
+KPX Tcommaaccent ograve -92
+KPX Tcommaaccent ohungarumlaut -92
+KPX Tcommaaccent omacron -92
+KPX Tcommaaccent oslash -92
+KPX Tcommaaccent otilde -92
+KPX Tcommaaccent period -90
+KPX Tcommaaccent r -74
+KPX Tcommaaccent racute -74
+KPX Tcommaaccent rcaron -74
+KPX Tcommaaccent rcommaaccent -74
+KPX Tcommaaccent semicolon -74
+KPX Tcommaaccent u -92
+KPX Tcommaaccent uacute -92
+KPX Tcommaaccent ucircumflex -92
+KPX Tcommaaccent udieresis -92
+KPX Tcommaaccent ugrave -92
+KPX Tcommaaccent uhungarumlaut -92
+KPX Tcommaaccent umacron -92
+KPX Tcommaaccent uogonek -92
+KPX Tcommaaccent uring -92
+KPX Tcommaaccent w -74
+KPX Tcommaaccent y -34
+KPX Tcommaaccent yacute -34
+KPX Tcommaaccent ydieresis -34
+KPX U A -60
+KPX U Aacute -60
+KPX U Abreve -60
+KPX U Acircumflex -60
+KPX U Adieresis -60
+KPX U Agrave -60
+KPX U Amacron -60
+KPX U Aogonek -60
+KPX U Aring -60
+KPX U Atilde -60
+KPX U comma -50
+KPX U period -50
+KPX Uacute A -60
+KPX Uacute Aacute -60
+KPX Uacute Abreve -60
+KPX Uacute Acircumflex -60
+KPX Uacute Adieresis -60
+KPX Uacute Agrave -60
+KPX Uacute Amacron -60
+KPX Uacute Aogonek -60
+KPX Uacute Aring -60
+KPX Uacute Atilde -60
+KPX Uacute comma -50
+KPX Uacute period -50
+KPX Ucircumflex A -60
+KPX Ucircumflex Aacute -60
+KPX Ucircumflex Abreve -60
+KPX Ucircumflex Acircumflex -60
+KPX Ucircumflex Adieresis -60
+KPX Ucircumflex Agrave -60
+KPX Ucircumflex Amacron -60
+KPX Ucircumflex Aogonek -60
+KPX Ucircumflex Aring -60
+KPX Ucircumflex Atilde -60
+KPX Ucircumflex comma -50
+KPX Ucircumflex period -50
+KPX Udieresis A -60
+KPX Udieresis Aacute -60
+KPX Udieresis Abreve -60
+KPX Udieresis Acircumflex -60
+KPX Udieresis Adieresis -60
+KPX Udieresis Agrave -60
+KPX Udieresis Amacron -60
+KPX Udieresis Aogonek -60
+KPX Udieresis Aring -60
+KPX Udieresis Atilde -60
+KPX Udieresis comma -50
+KPX Udieresis period -50
+KPX Ugrave A -60
+KPX Ugrave Aacute -60
+KPX Ugrave Abreve -60
+KPX Ugrave Acircumflex -60
+KPX Ugrave Adieresis -60
+KPX Ugrave Agrave -60
+KPX Ugrave Amacron -60
+KPX Ugrave Aogonek -60
+KPX Ugrave Aring -60
+KPX Ugrave Atilde -60
+KPX Ugrave comma -50
+KPX Ugrave period -50
+KPX Uhungarumlaut A -60
+KPX Uhungarumlaut Aacute -60
+KPX Uhungarumlaut Abreve -60
+KPX Uhungarumlaut Acircumflex -60
+KPX Uhungarumlaut Adieresis -60
+KPX Uhungarumlaut Agrave -60
+KPX Uhungarumlaut Amacron -60
+KPX Uhungarumlaut Aogonek -60
+KPX Uhungarumlaut Aring -60
+KPX Uhungarumlaut Atilde -60
+KPX Uhungarumlaut comma -50
+KPX Uhungarumlaut period -50
+KPX Umacron A -60
+KPX Umacron Aacute -60
+KPX Umacron Abreve -60
+KPX Umacron Acircumflex -60
+KPX Umacron Adieresis -60
+KPX Umacron Agrave -60
+KPX Umacron Amacron -60
+KPX Umacron Aogonek -60
+KPX Umacron Aring -60
+KPX Umacron Atilde -60
+KPX Umacron comma -50
+KPX Umacron period -50
+KPX Uogonek A -60
+KPX Uogonek Aacute -60
+KPX Uogonek Abreve -60
+KPX Uogonek Acircumflex -60
+KPX Uogonek Adieresis -60
+KPX Uogonek Agrave -60
+KPX Uogonek Amacron -60
+KPX Uogonek Aogonek -60
+KPX Uogonek Aring -60
+KPX Uogonek Atilde -60
+KPX Uogonek comma -50
+KPX Uogonek period -50
+KPX Uring A -60
+KPX Uring Aacute -60
+KPX Uring Abreve -60
+KPX Uring Acircumflex -60
+KPX Uring Adieresis -60
+KPX Uring Agrave -60
+KPX Uring Amacron -60
+KPX Uring Aogonek -60
+KPX Uring Aring -60
+KPX Uring Atilde -60
+KPX Uring comma -50
+KPX Uring period -50
+KPX V A -135
+KPX V Aacute -135
+KPX V Abreve -135
+KPX V Acircumflex -135
+KPX V Adieresis -135
+KPX V Agrave -135
+KPX V Amacron -135
+KPX V Aogonek -135
+KPX V Aring -135
+KPX V Atilde -135
+KPX V G -30
+KPX V Gbreve -30
+KPX V Gcommaaccent -30
+KPX V O -45
+KPX V Oacute -45
+KPX V Ocircumflex -45
+KPX V Odieresis -45
+KPX V Ograve -45
+KPX V Ohungarumlaut -45
+KPX V Omacron -45
+KPX V Oslash -45
+KPX V Otilde -45
+KPX V a -92
+KPX V aacute -92
+KPX V abreve -92
+KPX V acircumflex -92
+KPX V adieresis -92
+KPX V agrave -92
+KPX V amacron -92
+KPX V aogonek -92
+KPX V aring -92
+KPX V atilde -92
+KPX V colon -92
+KPX V comma -129
+KPX V e -100
+KPX V eacute -100
+KPX V ecaron -100
+KPX V ecircumflex -100
+KPX V edieresis -100
+KPX V edotaccent -100
+KPX V egrave -100
+KPX V emacron -100
+KPX V eogonek -100
+KPX V hyphen -74
+KPX V i -37
+KPX V iacute -37
+KPX V icircumflex -37
+KPX V idieresis -37
+KPX V igrave -37
+KPX V imacron -37
+KPX V iogonek -37
+KPX V o -100
+KPX V oacute -100
+KPX V ocircumflex -100
+KPX V odieresis -100
+KPX V ograve -100
+KPX V ohungarumlaut -100
+KPX V omacron -100
+KPX V oslash -100
+KPX V otilde -100
+KPX V period -145
+KPX V semicolon -92
+KPX V u -92
+KPX V uacute -92
+KPX V ucircumflex -92
+KPX V udieresis -92
+KPX V ugrave -92
+KPX V uhungarumlaut -92
+KPX V umacron -92
+KPX V uogonek -92
+KPX V uring -92
+KPX W A -120
+KPX W Aacute -120
+KPX W Abreve -120
+KPX W Acircumflex -120
+KPX W Adieresis -120
+KPX W Agrave -120
+KPX W Amacron -120
+KPX W Aogonek -120
+KPX W Aring -120
+KPX W Atilde -120
+KPX W O -10
+KPX W Oacute -10
+KPX W Ocircumflex -10
+KPX W Odieresis -10
+KPX W Ograve -10
+KPX W Ohungarumlaut -10
+KPX W Omacron -10
+KPX W Oslash -10
+KPX W Otilde -10
+KPX W a -65
+KPX W aacute -65
+KPX W abreve -65
+KPX W acircumflex -65
+KPX W adieresis -65
+KPX W agrave -65
+KPX W amacron -65
+KPX W aogonek -65
+KPX W aring -65
+KPX W atilde -65
+KPX W colon -55
+KPX W comma -92
+KPX W e -65
+KPX W eacute -65
+KPX W ecaron -65
+KPX W ecircumflex -65
+KPX W edieresis -65
+KPX W edotaccent -65
+KPX W egrave -65
+KPX W emacron -65
+KPX W eogonek -65
+KPX W hyphen -37
+KPX W i -18
+KPX W iacute -18
+KPX W iogonek -18
+KPX W o -75
+KPX W oacute -75
+KPX W ocircumflex -75
+KPX W odieresis -75
+KPX W ograve -75
+KPX W ohungarumlaut -75
+KPX W omacron -75
+KPX W oslash -75
+KPX W otilde -75
+KPX W period -92
+KPX W semicolon -55
+KPX W u -50
+KPX W uacute -50
+KPX W ucircumflex -50
+KPX W udieresis -50
+KPX W ugrave -50
+KPX W uhungarumlaut -50
+KPX W umacron -50
+KPX W uogonek -50
+KPX W uring -50
+KPX W y -60
+KPX W yacute -60
+KPX W ydieresis -60
+KPX Y A -110
+KPX Y Aacute -110
+KPX Y Abreve -110
+KPX Y Acircumflex -110
+KPX Y Adieresis -110
+KPX Y Agrave -110
+KPX Y Amacron -110
+KPX Y Aogonek -110
+KPX Y Aring -110
+KPX Y Atilde -110
+KPX Y O -35
+KPX Y Oacute -35
+KPX Y Ocircumflex -35
+KPX Y Odieresis -35
+KPX Y Ograve -35
+KPX Y Ohungarumlaut -35
+KPX Y Omacron -35
+KPX Y Oslash -35
+KPX Y Otilde -35
+KPX Y a -85
+KPX Y aacute -85
+KPX Y abreve -85
+KPX Y acircumflex -85
+KPX Y adieresis -85
+KPX Y agrave -85
+KPX Y amacron -85
+KPX Y aogonek -85
+KPX Y aring -85
+KPX Y atilde -85
+KPX Y colon -92
+KPX Y comma -92
+KPX Y e -111
+KPX Y eacute -111
+KPX Y ecaron -111
+KPX Y ecircumflex -111
+KPX Y edieresis -71
+KPX Y edotaccent -111
+KPX Y egrave -71
+KPX Y emacron -71
+KPX Y eogonek -111
+KPX Y hyphen -92
+KPX Y i -37
+KPX Y iacute -37
+KPX Y iogonek -37
+KPX Y o -111
+KPX Y oacute -111
+KPX Y ocircumflex -111
+KPX Y odieresis -111
+KPX Y ograve -111
+KPX Y ohungarumlaut -111
+KPX Y omacron -111
+KPX Y oslash -111
+KPX Y otilde -111
+KPX Y period -92
+KPX Y semicolon -92
+KPX Y u -92
+KPX Y uacute -92
+KPX Y ucircumflex -92
+KPX Y udieresis -92
+KPX Y ugrave -92
+KPX Y uhungarumlaut -92
+KPX Y umacron -92
+KPX Y uogonek -92
+KPX Y uring -92
+KPX Yacute A -110
+KPX Yacute Aacute -110
+KPX Yacute Abreve -110
+KPX Yacute Acircumflex -110
+KPX Yacute Adieresis -110
+KPX Yacute Agrave -110
+KPX Yacute Amacron -110
+KPX Yacute Aogonek -110
+KPX Yacute Aring -110
+KPX Yacute Atilde -110
+KPX Yacute O -35
+KPX Yacute Oacute -35
+KPX Yacute Ocircumflex -35
+KPX Yacute Odieresis -35
+KPX Yacute Ograve -35
+KPX Yacute Ohungarumlaut -35
+KPX Yacute Omacron -35
+KPX Yacute Oslash -35
+KPX Yacute Otilde -35
+KPX Yacute a -85
+KPX Yacute aacute -85
+KPX Yacute abreve -85
+KPX Yacute acircumflex -85
+KPX Yacute adieresis -85
+KPX Yacute agrave -85
+KPX Yacute amacron -85
+KPX Yacute aogonek -85
+KPX Yacute aring -85
+KPX Yacute atilde -85
+KPX Yacute colon -92
+KPX Yacute comma -92
+KPX Yacute e -111
+KPX Yacute eacute -111
+KPX Yacute ecaron -111
+KPX Yacute ecircumflex -111
+KPX Yacute edieresis -71
+KPX Yacute edotaccent -111
+KPX Yacute egrave -71
+KPX Yacute emacron -71
+KPX Yacute eogonek -111
+KPX Yacute hyphen -92
+KPX Yacute i -37
+KPX Yacute iacute -37
+KPX Yacute iogonek -37
+KPX Yacute o -111
+KPX Yacute oacute -111
+KPX Yacute ocircumflex -111
+KPX Yacute odieresis -111
+KPX Yacute ograve -111
+KPX Yacute ohungarumlaut -111
+KPX Yacute omacron -111
+KPX Yacute oslash -111
+KPX Yacute otilde -111
+KPX Yacute period -92
+KPX Yacute semicolon -92
+KPX Yacute u -92
+KPX Yacute uacute -92
+KPX Yacute ucircumflex -92
+KPX Yacute udieresis -92
+KPX Yacute ugrave -92
+KPX Yacute uhungarumlaut -92
+KPX Yacute umacron -92
+KPX Yacute uogonek -92
+KPX Yacute uring -92
+KPX Ydieresis A -110
+KPX Ydieresis Aacute -110
+KPX Ydieresis Abreve -110
+KPX Ydieresis Acircumflex -110
+KPX Ydieresis Adieresis -110
+KPX Ydieresis Agrave -110
+KPX Ydieresis Amacron -110
+KPX Ydieresis Aogonek -110
+KPX Ydieresis Aring -110
+KPX Ydieresis Atilde -110
+KPX Ydieresis O -35
+KPX Ydieresis Oacute -35
+KPX Ydieresis Ocircumflex -35
+KPX Ydieresis Odieresis -35
+KPX Ydieresis Ograve -35
+KPX Ydieresis Ohungarumlaut -35
+KPX Ydieresis Omacron -35
+KPX Ydieresis Oslash -35
+KPX Ydieresis Otilde -35
+KPX Ydieresis a -85
+KPX Ydieresis aacute -85
+KPX Ydieresis abreve -85
+KPX Ydieresis acircumflex -85
+KPX Ydieresis adieresis -85
+KPX Ydieresis agrave -85
+KPX Ydieresis amacron -85
+KPX Ydieresis aogonek -85
+KPX Ydieresis aring -85
+KPX Ydieresis atilde -85
+KPX Ydieresis colon -92
+KPX Ydieresis comma -92
+KPX Ydieresis e -111
+KPX Ydieresis eacute -111
+KPX Ydieresis ecaron -111
+KPX Ydieresis ecircumflex -111
+KPX Ydieresis edieresis -71
+KPX Ydieresis edotaccent -111
+KPX Ydieresis egrave -71
+KPX Ydieresis emacron -71
+KPX Ydieresis eogonek -111
+KPX Ydieresis hyphen -92
+KPX Ydieresis i -37
+KPX Ydieresis iacute -37
+KPX Ydieresis iogonek -37
+KPX Ydieresis o -111
+KPX Ydieresis oacute -111
+KPX Ydieresis ocircumflex -111
+KPX Ydieresis odieresis -111
+KPX Ydieresis ograve -111
+KPX Ydieresis ohungarumlaut -111
+KPX Ydieresis omacron -111
+KPX Ydieresis oslash -111
+KPX Ydieresis otilde -111
+KPX Ydieresis period -92
+KPX Ydieresis semicolon -92
+KPX Ydieresis u -92
+KPX Ydieresis uacute -92
+KPX Ydieresis ucircumflex -92
+KPX Ydieresis udieresis -92
+KPX Ydieresis ugrave -92
+KPX Ydieresis uhungarumlaut -92
+KPX Ydieresis umacron -92
+KPX Ydieresis uogonek -92
+KPX Ydieresis uring -92
+KPX a v -25
+KPX aacute v -25
+KPX abreve v -25
+KPX acircumflex v -25
+KPX adieresis v -25
+KPX agrave v -25
+KPX amacron v -25
+KPX aogonek v -25
+KPX aring v -25
+KPX atilde v -25
+KPX b b -10
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -15
+KPX comma quotedblright -45
+KPX comma quoteright -55
+KPX d w -15
+KPX dcroat w -15
+KPX e v -15
+KPX eacute v -15
+KPX ecaron v -15
+KPX ecircumflex v -15
+KPX edieresis v -15
+KPX edotaccent v -15
+KPX egrave v -15
+KPX emacron v -15
+KPX eogonek v -15
+KPX f comma -15
+KPX f dotlessi -35
+KPX f i -25
+KPX f o -25
+KPX f oacute -25
+KPX f ocircumflex -25
+KPX f odieresis -25
+KPX f ograve -25
+KPX f ohungarumlaut -25
+KPX f omacron -25
+KPX f oslash -25
+KPX f otilde -25
+KPX f period -15
+KPX f quotedblright 50
+KPX f quoteright 55
+KPX g period -15
+KPX gbreve period -15
+KPX gcommaaccent period -15
+KPX h y -15
+KPX h yacute -15
+KPX h ydieresis -15
+KPX i v -10
+KPX iacute v -10
+KPX icircumflex v -10
+KPX idieresis v -10
+KPX igrave v -10
+KPX imacron v -10
+KPX iogonek v -10
+KPX k e -10
+KPX k eacute -10
+KPX k ecaron -10
+KPX k ecircumflex -10
+KPX k edieresis -10
+KPX k edotaccent -10
+KPX k egrave -10
+KPX k emacron -10
+KPX k eogonek -10
+KPX k o -15
+KPX k oacute -15
+KPX k ocircumflex -15
+KPX k odieresis -15
+KPX k ograve -15
+KPX k ohungarumlaut -15
+KPX k omacron -15
+KPX k oslash -15
+KPX k otilde -15
+KPX k y -15
+KPX k yacute -15
+KPX k ydieresis -15
+KPX kcommaaccent e -10
+KPX kcommaaccent eacute -10
+KPX kcommaaccent ecaron -10
+KPX kcommaaccent ecircumflex -10
+KPX kcommaaccent edieresis -10
+KPX kcommaaccent edotaccent -10
+KPX kcommaaccent egrave -10
+KPX kcommaaccent emacron -10
+KPX kcommaaccent eogonek -10
+KPX kcommaaccent o -15
+KPX kcommaaccent oacute -15
+KPX kcommaaccent ocircumflex -15
+KPX kcommaaccent odieresis -15
+KPX kcommaaccent ograve -15
+KPX kcommaaccent ohungarumlaut -15
+KPX kcommaaccent omacron -15
+KPX kcommaaccent oslash -15
+KPX kcommaaccent otilde -15
+KPX kcommaaccent y -15
+KPX kcommaaccent yacute -15
+KPX kcommaaccent ydieresis -15
+KPX n v -40
+KPX nacute v -40
+KPX ncaron v -40
+KPX ncommaaccent v -40
+KPX ntilde v -40
+KPX o v -10
+KPX o w -10
+KPX oacute v -10
+KPX oacute w -10
+KPX ocircumflex v -10
+KPX ocircumflex w -10
+KPX odieresis v -10
+KPX odieresis w -10
+KPX ograve v -10
+KPX ograve w -10
+KPX ohungarumlaut v -10
+KPX ohungarumlaut w -10
+KPX omacron v -10
+KPX omacron w -10
+KPX oslash v -10
+KPX oslash w -10
+KPX otilde v -10
+KPX otilde w -10
+KPX period quotedblright -55
+KPX period quoteright -55
+KPX quotedblleft A -10
+KPX quotedblleft Aacute -10
+KPX quotedblleft Abreve -10
+KPX quotedblleft Acircumflex -10
+KPX quotedblleft Adieresis -10
+KPX quotedblleft Agrave -10
+KPX quotedblleft Amacron -10
+KPX quotedblleft Aogonek -10
+KPX quotedblleft Aring -10
+KPX quotedblleft Atilde -10
+KPX quoteleft A -10
+KPX quoteleft Aacute -10
+KPX quoteleft Abreve -10
+KPX quoteleft Acircumflex -10
+KPX quoteleft Adieresis -10
+KPX quoteleft Agrave -10
+KPX quoteleft Amacron -10
+KPX quoteleft Aogonek -10
+KPX quoteleft Aring -10
+KPX quoteleft Atilde -10
+KPX quoteleft quoteleft -63
+KPX quoteright d -20
+KPX quoteright dcroat -20
+KPX quoteright quoteright -63
+KPX quoteright r -20
+KPX quoteright racute -20
+KPX quoteright rcaron -20
+KPX quoteright rcommaaccent -20
+KPX quoteright s -37
+KPX quoteright sacute -37
+KPX quoteright scaron -37
+KPX quoteright scedilla -37
+KPX quoteright scommaaccent -37
+KPX quoteright space -74
+KPX quoteright v -20
+KPX r c -18
+KPX r cacute -18
+KPX r ccaron -18
+KPX r ccedilla -18
+KPX r comma -92
+KPX r e -18
+KPX r eacute -18
+KPX r ecaron -18
+KPX r ecircumflex -18
+KPX r edieresis -18
+KPX r edotaccent -18
+KPX r egrave -18
+KPX r emacron -18
+KPX r eogonek -18
+KPX r g -10
+KPX r gbreve -10
+KPX r gcommaaccent -10
+KPX r hyphen -37
+KPX r n -15
+KPX r nacute -15
+KPX r ncaron -15
+KPX r ncommaaccent -15
+KPX r ntilde -15
+KPX r o -18
+KPX r oacute -18
+KPX r ocircumflex -18
+KPX r odieresis -18
+KPX r ograve -18
+KPX r ohungarumlaut -18
+KPX r omacron -18
+KPX r oslash -18
+KPX r otilde -18
+KPX r p -10
+KPX r period -100
+KPX r q -18
+KPX r v -10
+KPX racute c -18
+KPX racute cacute -18
+KPX racute ccaron -18
+KPX racute ccedilla -18
+KPX racute comma -92
+KPX racute e -18
+KPX racute eacute -18
+KPX racute ecaron -18
+KPX racute ecircumflex -18
+KPX racute edieresis -18
+KPX racute edotaccent -18
+KPX racute egrave -18
+KPX racute emacron -18
+KPX racute eogonek -18
+KPX racute g -10
+KPX racute gbreve -10
+KPX racute gcommaaccent -10
+KPX racute hyphen -37
+KPX racute n -15
+KPX racute nacute -15
+KPX racute ncaron -15
+KPX racute ncommaaccent -15
+KPX racute ntilde -15
+KPX racute o -18
+KPX racute oacute -18
+KPX racute ocircumflex -18
+KPX racute odieresis -18
+KPX racute ograve -18
+KPX racute ohungarumlaut -18
+KPX racute omacron -18
+KPX racute oslash -18
+KPX racute otilde -18
+KPX racute p -10
+KPX racute period -100
+KPX racute q -18
+KPX racute v -10
+KPX rcaron c -18
+KPX rcaron cacute -18
+KPX rcaron ccaron -18
+KPX rcaron ccedilla -18
+KPX rcaron comma -92
+KPX rcaron e -18
+KPX rcaron eacute -18
+KPX rcaron ecaron -18
+KPX rcaron ecircumflex -18
+KPX rcaron edieresis -18
+KPX rcaron edotaccent -18
+KPX rcaron egrave -18
+KPX rcaron emacron -18
+KPX rcaron eogonek -18
+KPX rcaron g -10
+KPX rcaron gbreve -10
+KPX rcaron gcommaaccent -10
+KPX rcaron hyphen -37
+KPX rcaron n -15
+KPX rcaron nacute -15
+KPX rcaron ncaron -15
+KPX rcaron ncommaaccent -15
+KPX rcaron ntilde -15
+KPX rcaron o -18
+KPX rcaron oacute -18
+KPX rcaron ocircumflex -18
+KPX rcaron odieresis -18
+KPX rcaron ograve -18
+KPX rcaron ohungarumlaut -18
+KPX rcaron omacron -18
+KPX rcaron oslash -18
+KPX rcaron otilde -18
+KPX rcaron p -10
+KPX rcaron period -100
+KPX rcaron q -18
+KPX rcaron v -10
+KPX rcommaaccent c -18
+KPX rcommaaccent cacute -18
+KPX rcommaaccent ccaron -18
+KPX rcommaaccent ccedilla -18
+KPX rcommaaccent comma -92
+KPX rcommaaccent e -18
+KPX rcommaaccent eacute -18
+KPX rcommaaccent ecaron -18
+KPX rcommaaccent ecircumflex -18
+KPX rcommaaccent edieresis -18
+KPX rcommaaccent edotaccent -18
+KPX rcommaaccent egrave -18
+KPX rcommaaccent emacron -18
+KPX rcommaaccent eogonek -18
+KPX rcommaaccent g -10
+KPX rcommaaccent gbreve -10
+KPX rcommaaccent gcommaaccent -10
+KPX rcommaaccent hyphen -37
+KPX rcommaaccent n -15
+KPX rcommaaccent nacute -15
+KPX rcommaaccent ncaron -15
+KPX rcommaaccent ncommaaccent -15
+KPX rcommaaccent ntilde -15
+KPX rcommaaccent o -18
+KPX rcommaaccent oacute -18
+KPX rcommaaccent ocircumflex -18
+KPX rcommaaccent odieresis -18
+KPX rcommaaccent ograve -18
+KPX rcommaaccent ohungarumlaut -18
+KPX rcommaaccent omacron -18
+KPX rcommaaccent oslash -18
+KPX rcommaaccent otilde -18
+KPX rcommaaccent p -10
+KPX rcommaaccent period -100
+KPX rcommaaccent q -18
+KPX rcommaaccent v -10
+KPX space A -55
+KPX space Aacute -55
+KPX space Abreve -55
+KPX space Acircumflex -55
+KPX space Adieresis -55
+KPX space Agrave -55
+KPX space Amacron -55
+KPX space Aogonek -55
+KPX space Aring -55
+KPX space Atilde -55
+KPX space T -30
+KPX space Tcaron -30
+KPX space Tcommaaccent -30
+KPX space V -45
+KPX space W -30
+KPX space Y -55
+KPX space Yacute -55
+KPX space Ydieresis -55
+KPX v a -10
+KPX v aacute -10
+KPX v abreve -10
+KPX v acircumflex -10
+KPX v adieresis -10
+KPX v agrave -10
+KPX v amacron -10
+KPX v aogonek -10
+KPX v aring -10
+KPX v atilde -10
+KPX v comma -55
+KPX v e -10
+KPX v eacute -10
+KPX v ecaron -10
+KPX v ecircumflex -10
+KPX v edieresis -10
+KPX v edotaccent -10
+KPX v egrave -10
+KPX v emacron -10
+KPX v eogonek -10
+KPX v o -10
+KPX v oacute -10
+KPX v ocircumflex -10
+KPX v odieresis -10
+KPX v ograve -10
+KPX v ohungarumlaut -10
+KPX v omacron -10
+KPX v oslash -10
+KPX v otilde -10
+KPX v period -70
+KPX w comma -55
+KPX w o -10
+KPX w oacute -10
+KPX w ocircumflex -10
+KPX w odieresis -10
+KPX w ograve -10
+KPX w ohungarumlaut -10
+KPX w omacron -10
+KPX w oslash -10
+KPX w otilde -10
+KPX w period -70
+KPX y comma -55
+KPX y e -10
+KPX y eacute -10
+KPX y ecaron -10
+KPX y ecircumflex -10
+KPX y edieresis -10
+KPX y edotaccent -10
+KPX y egrave -10
+KPX y emacron -10
+KPX y eogonek -10
+KPX y o -25
+KPX y oacute -25
+KPX y ocircumflex -25
+KPX y odieresis -25
+KPX y ograve -25
+KPX y ohungarumlaut -25
+KPX y omacron -25
+KPX y oslash -25
+KPX y otilde -25
+KPX y period -70
+KPX yacute comma -55
+KPX yacute e -10
+KPX yacute eacute -10
+KPX yacute ecaron -10
+KPX yacute ecircumflex -10
+KPX yacute edieresis -10
+KPX yacute edotaccent -10
+KPX yacute egrave -10
+KPX yacute emacron -10
+KPX yacute eogonek -10
+KPX yacute o -25
+KPX yacute oacute -25
+KPX yacute ocircumflex -25
+KPX yacute odieresis -25
+KPX yacute ograve -25
+KPX yacute ohungarumlaut -25
+KPX yacute omacron -25
+KPX yacute oslash -25
+KPX yacute otilde -25
+KPX yacute period -70
+KPX ydieresis comma -55
+KPX ydieresis e -10
+KPX ydieresis eacute -10
+KPX ydieresis ecaron -10
+KPX ydieresis ecircumflex -10
+KPX ydieresis edieresis -10
+KPX ydieresis edotaccent -10
+KPX ydieresis egrave -10
+KPX ydieresis emacron -10
+KPX ydieresis eogonek -10
+KPX ydieresis o -25
+KPX ydieresis oacute -25
+KPX ydieresis ocircumflex -25
+KPX ydieresis odieresis -25
+KPX ydieresis ograve -25
+KPX ydieresis ohungarumlaut -25
+KPX ydieresis omacron -25
+KPX ydieresis oslash -25
+KPX ydieresis otilde -25
+KPX ydieresis period -70
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Times-BoldItalic.afm b/test/user-template/user/psprint/fontmetric/Times-BoldItalic.afm
new file mode 100644
index 000000000000..01b7539025b0
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Times-BoldItalic.afm
@@ -0,0 +1,2382 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 13:04:06 1997
+Comment UniqueID 43066
+Comment VMusage 45874 56899
+FontName Times-BoldItalic
+FullName Times Bold Italic
+FamilyName Times
+Weight Bold
+ItalicAngle -15
+IsFixedPitch false
+FontBBox -200 -218 996 921
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 669
+XHeight 462
+Ascender 683
+Descender -217
+StdHW 42
+StdVW 121
+StartCharMetrics 314
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 389 ; N exclam ; B 67 -13 370 684 ;
+C 34 ; WX 555 ; N quotedbl ; B 136 398 536 685 ;
+C 35 ; WX 500 ; N numbersign ; B -33 0 533 700 ;
+C 36 ; WX 500 ; N dollar ; B -20 -100 497 733 ;
+C 37 ; WX 833 ; N percent ; B 39 -10 793 692 ;
+C 38 ; WX 778 ; N ampersand ; B 5 -19 699 682 ;
+C 39 ; WX 333 ; N quoteright ; B 98 369 302 685 ;
+C 40 ; WX 333 ; N parenleft ; B 28 -179 344 685 ;
+C 41 ; WX 333 ; N parenright ; B -44 -179 271 685 ;
+C 42 ; WX 500 ; N asterisk ; B 65 249 456 685 ;
+C 43 ; WX 570 ; N plus ; B 33 0 537 506 ;
+C 44 ; WX 250 ; N comma ; B -60 -182 144 134 ;
+C 45 ; WX 333 ; N hyphen ; B 2 166 271 282 ;
+C 46 ; WX 250 ; N period ; B -9 -13 139 135 ;
+C 47 ; WX 278 ; N slash ; B -64 -18 342 685 ;
+C 48 ; WX 500 ; N zero ; B 17 -14 477 683 ;
+C 49 ; WX 500 ; N one ; B 5 0 419 683 ;
+C 50 ; WX 500 ; N two ; B -27 0 446 683 ;
+C 51 ; WX 500 ; N three ; B -15 -13 450 683 ;
+C 52 ; WX 500 ; N four ; B -15 0 503 683 ;
+C 53 ; WX 500 ; N five ; B -11 -13 487 669 ;
+C 54 ; WX 500 ; N six ; B 23 -15 509 679 ;
+C 55 ; WX 500 ; N seven ; B 52 0 525 669 ;
+C 56 ; WX 500 ; N eight ; B 3 -13 476 683 ;
+C 57 ; WX 500 ; N nine ; B -12 -10 475 683 ;
+C 58 ; WX 333 ; N colon ; B 23 -13 264 459 ;
+C 59 ; WX 333 ; N semicolon ; B -25 -183 264 459 ;
+C 60 ; WX 570 ; N less ; B 31 -8 539 514 ;
+C 61 ; WX 570 ; N equal ; B 33 107 537 399 ;
+C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ;
+C 63 ; WX 500 ; N question ; B 79 -13 470 684 ;
+C 64 ; WX 832 ; N at ; B 63 -18 770 685 ;
+C 65 ; WX 667 ; N A ; B -67 0 593 683 ;
+C 66 ; WX 667 ; N B ; B -24 0 624 669 ;
+C 67 ; WX 667 ; N C ; B 32 -18 677 685 ;
+C 68 ; WX 722 ; N D ; B -46 0 685 669 ;
+C 69 ; WX 667 ; N E ; B -27 0 653 669 ;
+C 70 ; WX 667 ; N F ; B -13 0 660 669 ;
+C 71 ; WX 722 ; N G ; B 21 -18 706 685 ;
+C 72 ; WX 778 ; N H ; B -24 0 799 669 ;
+C 73 ; WX 389 ; N I ; B -32 0 406 669 ;
+C 74 ; WX 500 ; N J ; B -46 -99 524 669 ;
+C 75 ; WX 667 ; N K ; B -21 0 702 669 ;
+C 76 ; WX 611 ; N L ; B -22 0 590 669 ;
+C 77 ; WX 889 ; N M ; B -29 -12 917 669 ;
+C 78 ; WX 722 ; N N ; B -27 -15 748 669 ;
+C 79 ; WX 722 ; N O ; B 27 -18 691 685 ;
+C 80 ; WX 611 ; N P ; B -27 0 613 669 ;
+C 81 ; WX 722 ; N Q ; B 27 -208 691 685 ;
+C 82 ; WX 667 ; N R ; B -29 0 623 669 ;
+C 83 ; WX 556 ; N S ; B 2 -18 526 685 ;
+C 84 ; WX 611 ; N T ; B 50 0 650 669 ;
+C 85 ; WX 722 ; N U ; B 67 -18 744 669 ;
+C 86 ; WX 667 ; N V ; B 65 -18 715 669 ;
+C 87 ; WX 889 ; N W ; B 65 -18 940 669 ;
+C 88 ; WX 667 ; N X ; B -24 0 694 669 ;
+C 89 ; WX 611 ; N Y ; B 73 0 659 669 ;
+C 90 ; WX 611 ; N Z ; B -11 0 590 669 ;
+C 91 ; WX 333 ; N bracketleft ; B -37 -159 362 674 ;
+C 92 ; WX 278 ; N backslash ; B -1 -18 279 685 ;
+C 93 ; WX 333 ; N bracketright ; B -56 -157 343 674 ;
+C 94 ; WX 570 ; N asciicircum ; B 67 304 503 669 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 333 ; N quoteleft ; B 128 369 332 685 ;
+C 97 ; WX 500 ; N a ; B -21 -14 455 462 ;
+C 98 ; WX 500 ; N b ; B -14 -13 444 699 ;
+C 99 ; WX 444 ; N c ; B -5 -13 392 462 ;
+C 100 ; WX 500 ; N d ; B -21 -13 517 699 ;
+C 101 ; WX 444 ; N e ; B 5 -13 398 462 ;
+C 102 ; WX 333 ; N f ; B -169 -205 446 698 ; L i fi ; L l fl ;
+C 103 ; WX 500 ; N g ; B -52 -203 478 462 ;
+C 104 ; WX 556 ; N h ; B -13 -9 498 699 ;
+C 105 ; WX 278 ; N i ; B 2 -9 263 684 ;
+C 106 ; WX 278 ; N j ; B -189 -207 279 684 ;
+C 107 ; WX 500 ; N k ; B -23 -8 483 699 ;
+C 108 ; WX 278 ; N l ; B 2 -9 290 699 ;
+C 109 ; WX 778 ; N m ; B -14 -9 722 462 ;
+C 110 ; WX 556 ; N n ; B -6 -9 493 462 ;
+C 111 ; WX 500 ; N o ; B -3 -13 441 462 ;
+C 112 ; WX 500 ; N p ; B -120 -205 446 462 ;
+C 113 ; WX 500 ; N q ; B 1 -205 471 462 ;
+C 114 ; WX 389 ; N r ; B -21 0 389 462 ;
+C 115 ; WX 389 ; N s ; B -19 -13 333 462 ;
+C 116 ; WX 278 ; N t ; B -11 -9 281 594 ;
+C 117 ; WX 556 ; N u ; B 15 -9 492 462 ;
+C 118 ; WX 444 ; N v ; B 16 -13 401 462 ;
+C 119 ; WX 667 ; N w ; B 16 -13 614 462 ;
+C 120 ; WX 500 ; N x ; B -46 -13 469 462 ;
+C 121 ; WX 444 ; N y ; B -94 -205 392 462 ;
+C 122 ; WX 389 ; N z ; B -43 -78 368 449 ;
+C 123 ; WX 348 ; N braceleft ; B 5 -187 436 686 ;
+C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ;
+C 125 ; WX 348 ; N braceright ; B -129 -187 302 686 ;
+C 126 ; WX 570 ; N asciitilde ; B 54 173 516 333 ;
+C 161 ; WX 389 ; N exclamdown ; B 19 -205 322 492 ;
+C 162 ; WX 500 ; N cent ; B 42 -143 439 576 ;
+C 163 ; WX 500 ; N sterling ; B -32 -12 510 683 ;
+C 164 ; WX 167 ; N fraction ; B -169 -14 324 683 ;
+C 165 ; WX 500 ; N yen ; B 33 0 628 669 ;
+C 166 ; WX 500 ; N florin ; B -87 -156 537 707 ;
+C 167 ; WX 500 ; N section ; B 36 -143 459 685 ;
+C 168 ; WX 500 ; N currency ; B -26 34 526 586 ;
+C 169 ; WX 278 ; N quotesingle ; B 128 398 268 685 ;
+C 170 ; WX 500 ; N quotedblleft ; B 53 369 513 685 ;
+C 171 ; WX 500 ; N guillemotleft ; B 12 32 468 415 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 32 32 303 415 ;
+C 173 ; WX 333 ; N guilsinglright ; B 10 32 281 415 ;
+C 174 ; WX 556 ; N fi ; B -188 -205 514 703 ;
+C 175 ; WX 556 ; N fl ; B -186 -205 553 704 ;
+C 177 ; WX 500 ; N endash ; B -40 178 477 269 ;
+C 178 ; WX 500 ; N dagger ; B 91 -145 494 685 ;
+C 179 ; WX 500 ; N daggerdbl ; B 10 -139 493 685 ;
+C 180 ; WX 250 ; N periodcentered ; B 51 257 199 405 ;
+C 182 ; WX 500 ; N paragraph ; B -57 -193 562 669 ;
+C 183 ; WX 350 ; N bullet ; B 0 175 350 525 ;
+C 184 ; WX 333 ; N quotesinglbase ; B -5 -182 199 134 ;
+C 185 ; WX 500 ; N quotedblbase ; B -57 -182 403 134 ;
+C 186 ; WX 500 ; N quotedblright ; B 53 369 513 685 ;
+C 187 ; WX 500 ; N guillemotright ; B 12 32 468 415 ;
+C 188 ; WX 1000 ; N ellipsis ; B 40 -13 852 135 ;
+C 189 ; WX 1000 ; N perthousand ; B 7 -29 996 706 ;
+C 191 ; WX 500 ; N questiondown ; B 30 -205 421 492 ;
+C 193 ; WX 333 ; N grave ; B 85 516 297 697 ;
+C 194 ; WX 333 ; N acute ; B 139 516 379 697 ;
+C 195 ; WX 333 ; N circumflex ; B 40 516 367 690 ;
+C 196 ; WX 333 ; N tilde ; B 48 536 407 655 ;
+C 197 ; WX 333 ; N macron ; B 51 553 393 623 ;
+C 198 ; WX 333 ; N breve ; B 71 516 387 678 ;
+C 199 ; WX 333 ; N dotaccent ; B 163 550 298 684 ;
+C 200 ; WX 333 ; N dieresis ; B 55 550 402 684 ;
+C 202 ; WX 333 ; N ring ; B 127 516 340 729 ;
+C 203 ; WX 333 ; N cedilla ; B -80 -218 156 5 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 69 516 498 697 ;
+C 206 ; WX 333 ; N ogonek ; B 15 -183 244 34 ;
+C 207 ; WX 333 ; N caron ; B 79 516 411 690 ;
+C 208 ; WX 1000 ; N emdash ; B -40 178 977 269 ;
+C 225 ; WX 944 ; N AE ; B -64 0 918 669 ;
+C 227 ; WX 266 ; N ordfeminine ; B 16 399 330 685 ;
+C 232 ; WX 611 ; N Lslash ; B -22 0 590 669 ;
+C 233 ; WX 722 ; N Oslash ; B 27 -125 691 764 ;
+C 234 ; WX 944 ; N OE ; B 23 -8 946 677 ;
+C 235 ; WX 300 ; N ordmasculine ; B 56 400 347 685 ;
+C 241 ; WX 722 ; N ae ; B -5 -13 673 462 ;
+C 245 ; WX 278 ; N dotlessi ; B 2 -9 238 462 ;
+C 248 ; WX 278 ; N lslash ; B -7 -9 307 699 ;
+C 249 ; WX 500 ; N oslash ; B -3 -119 441 560 ;
+C 250 ; WX 722 ; N oe ; B 6 -13 674 462 ;
+C 251 ; WX 500 ; N germandbls ; B -200 -200 473 705 ;
+C -1 ; WX 389 ; N Idieresis ; B -32 0 450 862 ;
+C -1 ; WX 444 ; N eacute ; B 5 -13 435 697 ;
+C -1 ; WX 500 ; N abreve ; B -21 -14 471 678 ;
+C -1 ; WX 556 ; N uhungarumlaut ; B 15 -9 610 697 ;
+C -1 ; WX 444 ; N ecaron ; B 5 -13 467 690 ;
+C -1 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ;
+C -1 ; WX 570 ; N divide ; B 33 -29 537 535 ;
+C -1 ; WX 611 ; N Yacute ; B 73 0 659 904 ;
+C -1 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ;
+C -1 ; WX 500 ; N aacute ; B -21 -14 463 697 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ;
+C -1 ; WX 444 ; N yacute ; B -94 -205 435 697 ;
+C -1 ; WX 389 ; N scommaaccent ; B -19 -218 333 462 ;
+C -1 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ;
+C -1 ; WX 722 ; N Uring ; B 67 -18 744 921 ;
+C -1 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ;
+C -1 ; WX 500 ; N aogonek ; B -21 -183 455 462 ;
+C -1 ; WX 722 ; N Uacute ; B 67 -18 744 904 ;
+C -1 ; WX 556 ; N uogonek ; B 15 -183 492 462 ;
+C -1 ; WX 667 ; N Edieresis ; B -27 0 653 862 ;
+C -1 ; WX 722 ; N Dcroat ; B -31 0 700 669 ;
+C -1 ; WX 250 ; N commaaccent ; B -36 -218 131 -50 ;
+C -1 ; WX 747 ; N copyright ; B 30 -18 718 685 ;
+C -1 ; WX 667 ; N Emacron ; B -27 0 653 830 ;
+C -1 ; WX 444 ; N ccaron ; B -5 -13 467 690 ;
+C -1 ; WX 500 ; N aring ; B -21 -14 455 729 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B -27 -218 748 669 ;
+C -1 ; WX 278 ; N lacute ; B 2 -9 392 904 ;
+C -1 ; WX 500 ; N agrave ; B -21 -14 455 697 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 50 -218 650 669 ;
+C -1 ; WX 667 ; N Cacute ; B 32 -18 677 904 ;
+C -1 ; WX 500 ; N atilde ; B -21 -14 491 655 ;
+C -1 ; WX 667 ; N Edotaccent ; B -27 0 653 862 ;
+C -1 ; WX 389 ; N scaron ; B -19 -13 424 690 ;
+C -1 ; WX 389 ; N scedilla ; B -19 -218 333 462 ;
+C -1 ; WX 278 ; N iacute ; B 2 -9 352 697 ;
+C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ;
+C -1 ; WX 667 ; N Rcaron ; B -29 0 623 897 ;
+C -1 ; WX 722 ; N Gcommaaccent ; B 21 -218 706 685 ;
+C -1 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ;
+C -1 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ;
+C -1 ; WX 667 ; N Amacron ; B -67 0 593 830 ;
+C -1 ; WX 389 ; N rcaron ; B -21 0 424 690 ;
+C -1 ; WX 444 ; N ccedilla ; B -5 -218 392 462 ;
+C -1 ; WX 611 ; N Zdotaccent ; B -11 0 590 862 ;
+C -1 ; WX 611 ; N Thorn ; B -27 0 573 669 ;
+C -1 ; WX 722 ; N Omacron ; B 27 -18 691 830 ;
+C -1 ; WX 667 ; N Racute ; B -29 0 623 904 ;
+C -1 ; WX 556 ; N Sacute ; B 2 -18 531 904 ;
+C -1 ; WX 608 ; N dcaron ; B -21 -13 675 708 ;
+C -1 ; WX 722 ; N Umacron ; B 67 -18 744 830 ;
+C -1 ; WX 556 ; N uring ; B 15 -9 492 729 ;
+C -1 ; WX 300 ; N threesuperior ; B 17 265 321 683 ;
+C -1 ; WX 722 ; N Ograve ; B 27 -18 691 904 ;
+C -1 ; WX 667 ; N Agrave ; B -67 0 593 904 ;
+C -1 ; WX 667 ; N Abreve ; B -67 0 593 885 ;
+C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ;
+C -1 ; WX 556 ; N uacute ; B 15 -9 492 697 ;
+C -1 ; WX 611 ; N Tcaron ; B 50 0 650 897 ;
+C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ;
+C -1 ; WX 444 ; N ydieresis ; B -94 -205 443 655 ;
+C -1 ; WX 722 ; N Nacute ; B -27 -15 748 904 ;
+C -1 ; WX 278 ; N icircumflex ; B -3 -9 324 690 ;
+C -1 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ;
+C -1 ; WX 500 ; N adieresis ; B -21 -14 476 655 ;
+C -1 ; WX 444 ; N edieresis ; B 5 -13 448 655 ;
+C -1 ; WX 444 ; N cacute ; B -5 -13 435 697 ;
+C -1 ; WX 556 ; N nacute ; B -6 -9 493 697 ;
+C -1 ; WX 556 ; N umacron ; B 15 -9 492 623 ;
+C -1 ; WX 722 ; N Ncaron ; B -27 -15 748 897 ;
+C -1 ; WX 389 ; N Iacute ; B -32 0 432 904 ;
+C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ;
+C -1 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ;
+C -1 ; WX 747 ; N registered ; B 30 -18 718 685 ;
+C -1 ; WX 722 ; N Gbreve ; B 21 -18 706 885 ;
+C -1 ; WX 389 ; N Idotaccent ; B -32 0 406 862 ;
+C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ;
+C -1 ; WX 667 ; N Egrave ; B -27 0 653 904 ;
+C -1 ; WX 389 ; N racute ; B -21 0 407 697 ;
+C -1 ; WX 500 ; N omacron ; B -3 -13 462 623 ;
+C -1 ; WX 611 ; N Zacute ; B -11 0 590 904 ;
+C -1 ; WX 611 ; N Zcaron ; B -11 0 590 897 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ;
+C -1 ; WX 722 ; N Eth ; B -31 0 700 669 ;
+C -1 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ;
+C -1 ; WX 278 ; N lcommaaccent ; B -42 -218 290 699 ;
+C -1 ; WX 366 ; N tcaron ; B -11 -9 434 754 ;
+C -1 ; WX 444 ; N eogonek ; B 5 -183 398 462 ;
+C -1 ; WX 722 ; N Uogonek ; B 67 -183 744 669 ;
+C -1 ; WX 667 ; N Aacute ; B -67 0 593 904 ;
+C -1 ; WX 667 ; N Adieresis ; B -67 0 593 862 ;
+C -1 ; WX 444 ; N egrave ; B 5 -13 398 697 ;
+C -1 ; WX 389 ; N zacute ; B -43 -78 407 697 ;
+C -1 ; WX 278 ; N iogonek ; B -20 -183 263 684 ;
+C -1 ; WX 722 ; N Oacute ; B 27 -18 691 904 ;
+C -1 ; WX 500 ; N oacute ; B -3 -13 463 697 ;
+C -1 ; WX 500 ; N amacron ; B -21 -14 467 623 ;
+C -1 ; WX 389 ; N sacute ; B -19 -13 407 697 ;
+C -1 ; WX 278 ; N idieresis ; B 2 -9 364 655 ;
+C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ;
+C -1 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 500 ; N thorn ; B -120 -205 446 699 ;
+C -1 ; WX 300 ; N twosuperior ; B 2 274 313 683 ;
+C -1 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ;
+C -1 ; WX 576 ; N mu ; B -60 -207 516 449 ;
+C -1 ; WX 278 ; N igrave ; B 2 -9 259 697 ;
+C -1 ; WX 500 ; N ohungarumlaut ; B -3 -13 582 697 ;
+C -1 ; WX 667 ; N Eogonek ; B -27 -183 653 669 ;
+C -1 ; WX 500 ; N dcroat ; B -21 -13 552 699 ;
+C -1 ; WX 750 ; N threequarters ; B 7 -14 726 683 ;
+C -1 ; WX 556 ; N Scedilla ; B 2 -218 526 685 ;
+C -1 ; WX 382 ; N lcaron ; B 2 -9 448 708 ;
+C -1 ; WX 667 ; N Kcommaaccent ; B -21 -218 702 669 ;
+C -1 ; WX 611 ; N Lacute ; B -22 0 590 904 ;
+C -1 ; WX 1000 ; N trademark ; B 32 263 968 669 ;
+C -1 ; WX 444 ; N edotaccent ; B 5 -13 398 655 ;
+C -1 ; WX 389 ; N Igrave ; B -32 0 406 904 ;
+C -1 ; WX 389 ; N Imacron ; B -32 0 461 830 ;
+C -1 ; WX 611 ; N Lcaron ; B -22 0 671 718 ;
+C -1 ; WX 750 ; N onehalf ; B -9 -14 723 683 ;
+C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ;
+C -1 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ;
+C -1 ; WX 556 ; N ntilde ; B -6 -9 504 655 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 67 -18 744 904 ;
+C -1 ; WX 667 ; N Eacute ; B -27 0 653 904 ;
+C -1 ; WX 444 ; N emacron ; B 5 -13 439 623 ;
+C -1 ; WX 500 ; N gbreve ; B -52 -203 478 678 ;
+C -1 ; WX 750 ; N onequarter ; B 7 -14 721 683 ;
+C -1 ; WX 556 ; N Scaron ; B 2 -18 553 897 ;
+C -1 ; WX 556 ; N Scommaaccent ; B 2 -218 526 685 ;
+C -1 ; WX 722 ; N Ohungarumlaut ; B 27 -18 723 904 ;
+C -1 ; WX 400 ; N degree ; B 83 397 369 683 ;
+C -1 ; WX 500 ; N ograve ; B -3 -13 441 697 ;
+C -1 ; WX 667 ; N Ccaron ; B 32 -18 677 897 ;
+C -1 ; WX 556 ; N ugrave ; B 15 -9 492 697 ;
+C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ;
+C -1 ; WX 722 ; N Dcaron ; B -46 0 685 897 ;
+C -1 ; WX 389 ; N rcommaaccent ; B -67 -218 389 462 ;
+C -1 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ;
+C -1 ; WX 500 ; N otilde ; B -3 -13 491 655 ;
+C -1 ; WX 667 ; N Rcommaaccent ; B -29 -218 623 669 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B -22 -218 590 669 ;
+C -1 ; WX 667 ; N Atilde ; B -67 0 593 862 ;
+C -1 ; WX 667 ; N Aogonek ; B -67 -183 604 683 ;
+C -1 ; WX 667 ; N Aring ; B -67 0 593 921 ;
+C -1 ; WX 722 ; N Otilde ; B 27 -18 691 862 ;
+C -1 ; WX 389 ; N zdotaccent ; B -43 -78 368 655 ;
+C -1 ; WX 667 ; N Ecaron ; B -27 0 653 897 ;
+C -1 ; WX 389 ; N Iogonek ; B -32 -183 406 669 ;
+C -1 ; WX 500 ; N kcommaaccent ; B -23 -218 483 699 ;
+C -1 ; WX 606 ; N minus ; B 51 209 555 297 ;
+C -1 ; WX 389 ; N Icircumflex ; B -32 0 450 897 ;
+C -1 ; WX 556 ; N ncaron ; B -6 -9 523 690 ;
+C -1 ; WX 278 ; N tcommaaccent ; B -62 -218 281 594 ;
+C -1 ; WX 606 ; N logicalnot ; B 51 108 555 399 ;
+C -1 ; WX 500 ; N odieresis ; B -3 -13 471 655 ;
+C -1 ; WX 556 ; N udieresis ; B 15 -9 499 655 ;
+C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ;
+C -1 ; WX 500 ; N gcommaaccent ; B -52 -203 478 767 ;
+C -1 ; WX 500 ; N eth ; B -3 -13 454 699 ;
+C -1 ; WX 389 ; N zcaron ; B -43 -78 424 690 ;
+C -1 ; WX 556 ; N ncommaaccent ; B -6 -218 493 462 ;
+C -1 ; WX 300 ; N onesuperior ; B 30 274 301 683 ;
+C -1 ; WX 278 ; N imacron ; B 2 -9 294 623 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2038
+KPX A C -65
+KPX A Cacute -65
+KPX A Ccaron -65
+KPX A Ccedilla -65
+KPX A G -60
+KPX A Gbreve -60
+KPX A Gcommaaccent -60
+KPX A O -50
+KPX A Oacute -50
+KPX A Ocircumflex -50
+KPX A Odieresis -50
+KPX A Ograve -50
+KPX A Ohungarumlaut -50
+KPX A Omacron -50
+KPX A Oslash -50
+KPX A Otilde -50
+KPX A Q -55
+KPX A T -55
+KPX A Tcaron -55
+KPX A Tcommaaccent -55
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -95
+KPX A W -100
+KPX A Y -70
+KPX A Yacute -70
+KPX A Ydieresis -70
+KPX A quoteright -74
+KPX A u -30
+KPX A uacute -30
+KPX A ucircumflex -30
+KPX A udieresis -30
+KPX A ugrave -30
+KPX A uhungarumlaut -30
+KPX A umacron -30
+KPX A uogonek -30
+KPX A uring -30
+KPX A v -74
+KPX A w -74
+KPX A y -74
+KPX A yacute -74
+KPX A ydieresis -74
+KPX Aacute C -65
+KPX Aacute Cacute -65
+KPX Aacute Ccaron -65
+KPX Aacute Ccedilla -65
+KPX Aacute G -60
+KPX Aacute Gbreve -60
+KPX Aacute Gcommaaccent -60
+KPX Aacute O -50
+KPX Aacute Oacute -50
+KPX Aacute Ocircumflex -50
+KPX Aacute Odieresis -50
+KPX Aacute Ograve -50
+KPX Aacute Ohungarumlaut -50
+KPX Aacute Omacron -50
+KPX Aacute Oslash -50
+KPX Aacute Otilde -50
+KPX Aacute Q -55
+KPX Aacute T -55
+KPX Aacute Tcaron -55
+KPX Aacute Tcommaaccent -55
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -95
+KPX Aacute W -100
+KPX Aacute Y -70
+KPX Aacute Yacute -70
+KPX Aacute Ydieresis -70
+KPX Aacute quoteright -74
+KPX Aacute u -30
+KPX Aacute uacute -30
+KPX Aacute ucircumflex -30
+KPX Aacute udieresis -30
+KPX Aacute ugrave -30
+KPX Aacute uhungarumlaut -30
+KPX Aacute umacron -30
+KPX Aacute uogonek -30
+KPX Aacute uring -30
+KPX Aacute v -74
+KPX Aacute w -74
+KPX Aacute y -74
+KPX Aacute yacute -74
+KPX Aacute ydieresis -74
+KPX Abreve C -65
+KPX Abreve Cacute -65
+KPX Abreve Ccaron -65
+KPX Abreve Ccedilla -65
+KPX Abreve G -60
+KPX Abreve Gbreve -60
+KPX Abreve Gcommaaccent -60
+KPX Abreve O -50
+KPX Abreve Oacute -50
+KPX Abreve Ocircumflex -50
+KPX Abreve Odieresis -50
+KPX Abreve Ograve -50
+KPX Abreve Ohungarumlaut -50
+KPX Abreve Omacron -50
+KPX Abreve Oslash -50
+KPX Abreve Otilde -50
+KPX Abreve Q -55
+KPX Abreve T -55
+KPX Abreve Tcaron -55
+KPX Abreve Tcommaaccent -55
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -95
+KPX Abreve W -100
+KPX Abreve Y -70
+KPX Abreve Yacute -70
+KPX Abreve Ydieresis -70
+KPX Abreve quoteright -74
+KPX Abreve u -30
+KPX Abreve uacute -30
+KPX Abreve ucircumflex -30
+KPX Abreve udieresis -30
+KPX Abreve ugrave -30
+KPX Abreve uhungarumlaut -30
+KPX Abreve umacron -30
+KPX Abreve uogonek -30
+KPX Abreve uring -30
+KPX Abreve v -74
+KPX Abreve w -74
+KPX Abreve y -74
+KPX Abreve yacute -74
+KPX Abreve ydieresis -74
+KPX Acircumflex C -65
+KPX Acircumflex Cacute -65
+KPX Acircumflex Ccaron -65
+KPX Acircumflex Ccedilla -65
+KPX Acircumflex G -60
+KPX Acircumflex Gbreve -60
+KPX Acircumflex Gcommaaccent -60
+KPX Acircumflex O -50
+KPX Acircumflex Oacute -50
+KPX Acircumflex Ocircumflex -50
+KPX Acircumflex Odieresis -50
+KPX Acircumflex Ograve -50
+KPX Acircumflex Ohungarumlaut -50
+KPX Acircumflex Omacron -50
+KPX Acircumflex Oslash -50
+KPX Acircumflex Otilde -50
+KPX Acircumflex Q -55
+KPX Acircumflex T -55
+KPX Acircumflex Tcaron -55
+KPX Acircumflex Tcommaaccent -55
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -95
+KPX Acircumflex W -100
+KPX Acircumflex Y -70
+KPX Acircumflex Yacute -70
+KPX Acircumflex Ydieresis -70
+KPX Acircumflex quoteright -74
+KPX Acircumflex u -30
+KPX Acircumflex uacute -30
+KPX Acircumflex ucircumflex -30
+KPX Acircumflex udieresis -30
+KPX Acircumflex ugrave -30
+KPX Acircumflex uhungarumlaut -30
+KPX Acircumflex umacron -30
+KPX Acircumflex uogonek -30
+KPX Acircumflex uring -30
+KPX Acircumflex v -74
+KPX Acircumflex w -74
+KPX Acircumflex y -74
+KPX Acircumflex yacute -74
+KPX Acircumflex ydieresis -74
+KPX Adieresis C -65
+KPX Adieresis Cacute -65
+KPX Adieresis Ccaron -65
+KPX Adieresis Ccedilla -65
+KPX Adieresis G -60
+KPX Adieresis Gbreve -60
+KPX Adieresis Gcommaaccent -60
+KPX Adieresis O -50
+KPX Adieresis Oacute -50
+KPX Adieresis Ocircumflex -50
+KPX Adieresis Odieresis -50
+KPX Adieresis Ograve -50
+KPX Adieresis Ohungarumlaut -50
+KPX Adieresis Omacron -50
+KPX Adieresis Oslash -50
+KPX Adieresis Otilde -50
+KPX Adieresis Q -55
+KPX Adieresis T -55
+KPX Adieresis Tcaron -55
+KPX Adieresis Tcommaaccent -55
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -95
+KPX Adieresis W -100
+KPX Adieresis Y -70
+KPX Adieresis Yacute -70
+KPX Adieresis Ydieresis -70
+KPX Adieresis quoteright -74
+KPX Adieresis u -30
+KPX Adieresis uacute -30
+KPX Adieresis ucircumflex -30
+KPX Adieresis udieresis -30
+KPX Adieresis ugrave -30
+KPX Adieresis uhungarumlaut -30
+KPX Adieresis umacron -30
+KPX Adieresis uogonek -30
+KPX Adieresis uring -30
+KPX Adieresis v -74
+KPX Adieresis w -74
+KPX Adieresis y -74
+KPX Adieresis yacute -74
+KPX Adieresis ydieresis -74
+KPX Agrave C -65
+KPX Agrave Cacute -65
+KPX Agrave Ccaron -65
+KPX Agrave Ccedilla -65
+KPX Agrave G -60
+KPX Agrave Gbreve -60
+KPX Agrave Gcommaaccent -60
+KPX Agrave O -50
+KPX Agrave Oacute -50
+KPX Agrave Ocircumflex -50
+KPX Agrave Odieresis -50
+KPX Agrave Ograve -50
+KPX Agrave Ohungarumlaut -50
+KPX Agrave Omacron -50
+KPX Agrave Oslash -50
+KPX Agrave Otilde -50
+KPX Agrave Q -55
+KPX Agrave T -55
+KPX Agrave Tcaron -55
+KPX Agrave Tcommaaccent -55
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -95
+KPX Agrave W -100
+KPX Agrave Y -70
+KPX Agrave Yacute -70
+KPX Agrave Ydieresis -70
+KPX Agrave quoteright -74
+KPX Agrave u -30
+KPX Agrave uacute -30
+KPX Agrave ucircumflex -30
+KPX Agrave udieresis -30
+KPX Agrave ugrave -30
+KPX Agrave uhungarumlaut -30
+KPX Agrave umacron -30
+KPX Agrave uogonek -30
+KPX Agrave uring -30
+KPX Agrave v -74
+KPX Agrave w -74
+KPX Agrave y -74
+KPX Agrave yacute -74
+KPX Agrave ydieresis -74
+KPX Amacron C -65
+KPX Amacron Cacute -65
+KPX Amacron Ccaron -65
+KPX Amacron Ccedilla -65
+KPX Amacron G -60
+KPX Amacron Gbreve -60
+KPX Amacron Gcommaaccent -60
+KPX Amacron O -50
+KPX Amacron Oacute -50
+KPX Amacron Ocircumflex -50
+KPX Amacron Odieresis -50
+KPX Amacron Ograve -50
+KPX Amacron Ohungarumlaut -50
+KPX Amacron Omacron -50
+KPX Amacron Oslash -50
+KPX Amacron Otilde -50
+KPX Amacron Q -55
+KPX Amacron T -55
+KPX Amacron Tcaron -55
+KPX Amacron Tcommaaccent -55
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -95
+KPX Amacron W -100
+KPX Amacron Y -70
+KPX Amacron Yacute -70
+KPX Amacron Ydieresis -70
+KPX Amacron quoteright -74
+KPX Amacron u -30
+KPX Amacron uacute -30
+KPX Amacron ucircumflex -30
+KPX Amacron udieresis -30
+KPX Amacron ugrave -30
+KPX Amacron uhungarumlaut -30
+KPX Amacron umacron -30
+KPX Amacron uogonek -30
+KPX Amacron uring -30
+KPX Amacron v -74
+KPX Amacron w -74
+KPX Amacron y -74
+KPX Amacron yacute -74
+KPX Amacron ydieresis -74
+KPX Aogonek C -65
+KPX Aogonek Cacute -65
+KPX Aogonek Ccaron -65
+KPX Aogonek Ccedilla -65
+KPX Aogonek G -60
+KPX Aogonek Gbreve -60
+KPX Aogonek Gcommaaccent -60
+KPX Aogonek O -50
+KPX Aogonek Oacute -50
+KPX Aogonek Ocircumflex -50
+KPX Aogonek Odieresis -50
+KPX Aogonek Ograve -50
+KPX Aogonek Ohungarumlaut -50
+KPX Aogonek Omacron -50
+KPX Aogonek Oslash -50
+KPX Aogonek Otilde -50
+KPX Aogonek Q -55
+KPX Aogonek T -55
+KPX Aogonek Tcaron -55
+KPX Aogonek Tcommaaccent -55
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -95
+KPX Aogonek W -100
+KPX Aogonek Y -70
+KPX Aogonek Yacute -70
+KPX Aogonek Ydieresis -70
+KPX Aogonek quoteright -74
+KPX Aogonek u -30
+KPX Aogonek uacute -30
+KPX Aogonek ucircumflex -30
+KPX Aogonek udieresis -30
+KPX Aogonek ugrave -30
+KPX Aogonek uhungarumlaut -30
+KPX Aogonek umacron -30
+KPX Aogonek uogonek -30
+KPX Aogonek uring -30
+KPX Aogonek v -74
+KPX Aogonek w -74
+KPX Aogonek y -34
+KPX Aogonek yacute -34
+KPX Aogonek ydieresis -34
+KPX Aring C -65
+KPX Aring Cacute -65
+KPX Aring Ccaron -65
+KPX Aring Ccedilla -65
+KPX Aring G -60
+KPX Aring Gbreve -60
+KPX Aring Gcommaaccent -60
+KPX Aring O -50
+KPX Aring Oacute -50
+KPX Aring Ocircumflex -50
+KPX Aring Odieresis -50
+KPX Aring Ograve -50
+KPX Aring Ohungarumlaut -50
+KPX Aring Omacron -50
+KPX Aring Oslash -50
+KPX Aring Otilde -50
+KPX Aring Q -55
+KPX Aring T -55
+KPX Aring Tcaron -55
+KPX Aring Tcommaaccent -55
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -95
+KPX Aring W -100
+KPX Aring Y -70
+KPX Aring Yacute -70
+KPX Aring Ydieresis -70
+KPX Aring quoteright -74
+KPX Aring u -30
+KPX Aring uacute -30
+KPX Aring ucircumflex -30
+KPX Aring udieresis -30
+KPX Aring ugrave -30
+KPX Aring uhungarumlaut -30
+KPX Aring umacron -30
+KPX Aring uogonek -30
+KPX Aring uring -30
+KPX Aring v -74
+KPX Aring w -74
+KPX Aring y -74
+KPX Aring yacute -74
+KPX Aring ydieresis -74
+KPX Atilde C -65
+KPX Atilde Cacute -65
+KPX Atilde Ccaron -65
+KPX Atilde Ccedilla -65
+KPX Atilde G -60
+KPX Atilde Gbreve -60
+KPX Atilde Gcommaaccent -60
+KPX Atilde O -50
+KPX Atilde Oacute -50
+KPX Atilde Ocircumflex -50
+KPX Atilde Odieresis -50
+KPX Atilde Ograve -50
+KPX Atilde Ohungarumlaut -50
+KPX Atilde Omacron -50
+KPX Atilde Oslash -50
+KPX Atilde Otilde -50
+KPX Atilde Q -55
+KPX Atilde T -55
+KPX Atilde Tcaron -55
+KPX Atilde Tcommaaccent -55
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -95
+KPX Atilde W -100
+KPX Atilde Y -70
+KPX Atilde Yacute -70
+KPX Atilde Ydieresis -70
+KPX Atilde quoteright -74
+KPX Atilde u -30
+KPX Atilde uacute -30
+KPX Atilde ucircumflex -30
+KPX Atilde udieresis -30
+KPX Atilde ugrave -30
+KPX Atilde uhungarumlaut -30
+KPX Atilde umacron -30
+KPX Atilde uogonek -30
+KPX Atilde uring -30
+KPX Atilde v -74
+KPX Atilde w -74
+KPX Atilde y -74
+KPX Atilde yacute -74
+KPX Atilde ydieresis -74
+KPX B A -25
+KPX B Aacute -25
+KPX B Abreve -25
+KPX B Acircumflex -25
+KPX B Adieresis -25
+KPX B Agrave -25
+KPX B Amacron -25
+KPX B Aogonek -25
+KPX B Aring -25
+KPX B Atilde -25
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -25
+KPX D Aacute -25
+KPX D Abreve -25
+KPX D Acircumflex -25
+KPX D Adieresis -25
+KPX D Agrave -25
+KPX D Amacron -25
+KPX D Aogonek -25
+KPX D Aring -25
+KPX D Atilde -25
+KPX D V -50
+KPX D W -40
+KPX D Y -50
+KPX D Yacute -50
+KPX D Ydieresis -50
+KPX Dcaron A -25
+KPX Dcaron Aacute -25
+KPX Dcaron Abreve -25
+KPX Dcaron Acircumflex -25
+KPX Dcaron Adieresis -25
+KPX Dcaron Agrave -25
+KPX Dcaron Amacron -25
+KPX Dcaron Aogonek -25
+KPX Dcaron Aring -25
+KPX Dcaron Atilde -25
+KPX Dcaron V -50
+KPX Dcaron W -40
+KPX Dcaron Y -50
+KPX Dcaron Yacute -50
+KPX Dcaron Ydieresis -50
+KPX Dcroat A -25
+KPX Dcroat Aacute -25
+KPX Dcroat Abreve -25
+KPX Dcroat Acircumflex -25
+KPX Dcroat Adieresis -25
+KPX Dcroat Agrave -25
+KPX Dcroat Amacron -25
+KPX Dcroat Aogonek -25
+KPX Dcroat Aring -25
+KPX Dcroat Atilde -25
+KPX Dcroat V -50
+KPX Dcroat W -40
+KPX Dcroat Y -50
+KPX Dcroat Yacute -50
+KPX Dcroat Ydieresis -50
+KPX F A -100
+KPX F Aacute -100
+KPX F Abreve -100
+KPX F Acircumflex -100
+KPX F Adieresis -100
+KPX F Agrave -100
+KPX F Amacron -100
+KPX F Aogonek -100
+KPX F Aring -100
+KPX F Atilde -100
+KPX F a -95
+KPX F aacute -95
+KPX F abreve -95
+KPX F acircumflex -95
+KPX F adieresis -95
+KPX F agrave -95
+KPX F amacron -95
+KPX F aogonek -95
+KPX F aring -95
+KPX F atilde -95
+KPX F comma -129
+KPX F e -100
+KPX F eacute -100
+KPX F ecaron -100
+KPX F ecircumflex -100
+KPX F edieresis -100
+KPX F edotaccent -100
+KPX F egrave -100
+KPX F emacron -100
+KPX F eogonek -100
+KPX F i -40
+KPX F iacute -40
+KPX F icircumflex -40
+KPX F idieresis -40
+KPX F igrave -40
+KPX F imacron -40
+KPX F iogonek -40
+KPX F o -70
+KPX F oacute -70
+KPX F ocircumflex -70
+KPX F odieresis -70
+KPX F ograve -70
+KPX F ohungarumlaut -70
+KPX F omacron -70
+KPX F oslash -70
+KPX F otilde -70
+KPX F period -129
+KPX F r -50
+KPX F racute -50
+KPX F rcaron -50
+KPX F rcommaaccent -50
+KPX J A -25
+KPX J Aacute -25
+KPX J Abreve -25
+KPX J Acircumflex -25
+KPX J Adieresis -25
+KPX J Agrave -25
+KPX J Amacron -25
+KPX J Aogonek -25
+KPX J Aring -25
+KPX J Atilde -25
+KPX J a -40
+KPX J aacute -40
+KPX J abreve -40
+KPX J acircumflex -40
+KPX J adieresis -40
+KPX J agrave -40
+KPX J amacron -40
+KPX J aogonek -40
+KPX J aring -40
+KPX J atilde -40
+KPX J comma -10
+KPX J e -40
+KPX J eacute -40
+KPX J ecaron -40
+KPX J ecircumflex -40
+KPX J edieresis -40
+KPX J edotaccent -40
+KPX J egrave -40
+KPX J emacron -40
+KPX J eogonek -40
+KPX J o -40
+KPX J oacute -40
+KPX J ocircumflex -40
+KPX J odieresis -40
+KPX J ograve -40
+KPX J ohungarumlaut -40
+KPX J omacron -40
+KPX J oslash -40
+KPX J otilde -40
+KPX J period -10
+KPX J u -40
+KPX J uacute -40
+KPX J ucircumflex -40
+KPX J udieresis -40
+KPX J ugrave -40
+KPX J uhungarumlaut -40
+KPX J umacron -40
+KPX J uogonek -40
+KPX J uring -40
+KPX K O -30
+KPX K Oacute -30
+KPX K Ocircumflex -30
+KPX K Odieresis -30
+KPX K Ograve -30
+KPX K Ohungarumlaut -30
+KPX K Omacron -30
+KPX K Oslash -30
+KPX K Otilde -30
+KPX K e -25
+KPX K eacute -25
+KPX K ecaron -25
+KPX K ecircumflex -25
+KPX K edieresis -25
+KPX K edotaccent -25
+KPX K egrave -25
+KPX K emacron -25
+KPX K eogonek -25
+KPX K o -25
+KPX K oacute -25
+KPX K ocircumflex -25
+KPX K odieresis -25
+KPX K ograve -25
+KPX K ohungarumlaut -25
+KPX K omacron -25
+KPX K oslash -25
+KPX K otilde -25
+KPX K u -20
+KPX K uacute -20
+KPX K ucircumflex -20
+KPX K udieresis -20
+KPX K ugrave -20
+KPX K uhungarumlaut -20
+KPX K umacron -20
+KPX K uogonek -20
+KPX K uring -20
+KPX K y -20
+KPX K yacute -20
+KPX K ydieresis -20
+KPX Kcommaaccent O -30
+KPX Kcommaaccent Oacute -30
+KPX Kcommaaccent Ocircumflex -30
+KPX Kcommaaccent Odieresis -30
+KPX Kcommaaccent Ograve -30
+KPX Kcommaaccent Ohungarumlaut -30
+KPX Kcommaaccent Omacron -30
+KPX Kcommaaccent Oslash -30
+KPX Kcommaaccent Otilde -30
+KPX Kcommaaccent e -25
+KPX Kcommaaccent eacute -25
+KPX Kcommaaccent ecaron -25
+KPX Kcommaaccent ecircumflex -25
+KPX Kcommaaccent edieresis -25
+KPX Kcommaaccent edotaccent -25
+KPX Kcommaaccent egrave -25
+KPX Kcommaaccent emacron -25
+KPX Kcommaaccent eogonek -25
+KPX Kcommaaccent o -25
+KPX Kcommaaccent oacute -25
+KPX Kcommaaccent ocircumflex -25
+KPX Kcommaaccent odieresis -25
+KPX Kcommaaccent ograve -25
+KPX Kcommaaccent ohungarumlaut -25
+KPX Kcommaaccent omacron -25
+KPX Kcommaaccent oslash -25
+KPX Kcommaaccent otilde -25
+KPX Kcommaaccent u -20
+KPX Kcommaaccent uacute -20
+KPX Kcommaaccent ucircumflex -20
+KPX Kcommaaccent udieresis -20
+KPX Kcommaaccent ugrave -20
+KPX Kcommaaccent uhungarumlaut -20
+KPX Kcommaaccent umacron -20
+KPX Kcommaaccent uogonek -20
+KPX Kcommaaccent uring -20
+KPX Kcommaaccent y -20
+KPX Kcommaaccent yacute -20
+KPX Kcommaaccent ydieresis -20
+KPX L T -18
+KPX L Tcaron -18
+KPX L Tcommaaccent -18
+KPX L V -37
+KPX L W -37
+KPX L Y -37
+KPX L Yacute -37
+KPX L Ydieresis -37
+KPX L quoteright -55
+KPX L y -37
+KPX L yacute -37
+KPX L ydieresis -37
+KPX Lacute T -18
+KPX Lacute Tcaron -18
+KPX Lacute Tcommaaccent -18
+KPX Lacute V -37
+KPX Lacute W -37
+KPX Lacute Y -37
+KPX Lacute Yacute -37
+KPX Lacute Ydieresis -37
+KPX Lacute quoteright -55
+KPX Lacute y -37
+KPX Lacute yacute -37
+KPX Lacute ydieresis -37
+KPX Lcommaaccent T -18
+KPX Lcommaaccent Tcaron -18
+KPX Lcommaaccent Tcommaaccent -18
+KPX Lcommaaccent V -37
+KPX Lcommaaccent W -37
+KPX Lcommaaccent Y -37
+KPX Lcommaaccent Yacute -37
+KPX Lcommaaccent Ydieresis -37
+KPX Lcommaaccent quoteright -55
+KPX Lcommaaccent y -37
+KPX Lcommaaccent yacute -37
+KPX Lcommaaccent ydieresis -37
+KPX Lslash T -18
+KPX Lslash Tcaron -18
+KPX Lslash Tcommaaccent -18
+KPX Lslash V -37
+KPX Lslash W -37
+KPX Lslash Y -37
+KPX Lslash Yacute -37
+KPX Lslash Ydieresis -37
+KPX Lslash quoteright -55
+KPX Lslash y -37
+KPX Lslash yacute -37
+KPX Lslash ydieresis -37
+KPX N A -30
+KPX N Aacute -30
+KPX N Abreve -30
+KPX N Acircumflex -30
+KPX N Adieresis -30
+KPX N Agrave -30
+KPX N Amacron -30
+KPX N Aogonek -30
+KPX N Aring -30
+KPX N Atilde -30
+KPX Nacute A -30
+KPX Nacute Aacute -30
+KPX Nacute Abreve -30
+KPX Nacute Acircumflex -30
+KPX Nacute Adieresis -30
+KPX Nacute Agrave -30
+KPX Nacute Amacron -30
+KPX Nacute Aogonek -30
+KPX Nacute Aring -30
+KPX Nacute Atilde -30
+KPX Ncaron A -30
+KPX Ncaron Aacute -30
+KPX Ncaron Abreve -30
+KPX Ncaron Acircumflex -30
+KPX Ncaron Adieresis -30
+KPX Ncaron Agrave -30
+KPX Ncaron Amacron -30
+KPX Ncaron Aogonek -30
+KPX Ncaron Aring -30
+KPX Ncaron Atilde -30
+KPX Ncommaaccent A -30
+KPX Ncommaaccent Aacute -30
+KPX Ncommaaccent Abreve -30
+KPX Ncommaaccent Acircumflex -30
+KPX Ncommaaccent Adieresis -30
+KPX Ncommaaccent Agrave -30
+KPX Ncommaaccent Amacron -30
+KPX Ncommaaccent Aogonek -30
+KPX Ncommaaccent Aring -30
+KPX Ncommaaccent Atilde -30
+KPX Ntilde A -30
+KPX Ntilde Aacute -30
+KPX Ntilde Abreve -30
+KPX Ntilde Acircumflex -30
+KPX Ntilde Adieresis -30
+KPX Ntilde Agrave -30
+KPX Ntilde Amacron -30
+KPX Ntilde Aogonek -30
+KPX Ntilde Aring -30
+KPX Ntilde Atilde -30
+KPX O A -40
+KPX O Aacute -40
+KPX O Abreve -40
+KPX O Acircumflex -40
+KPX O Adieresis -40
+KPX O Agrave -40
+KPX O Amacron -40
+KPX O Aogonek -40
+KPX O Aring -40
+KPX O Atilde -40
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -50
+KPX O X -40
+KPX O Y -50
+KPX O Yacute -50
+KPX O Ydieresis -50
+KPX Oacute A -40
+KPX Oacute Aacute -40
+KPX Oacute Abreve -40
+KPX Oacute Acircumflex -40
+KPX Oacute Adieresis -40
+KPX Oacute Agrave -40
+KPX Oacute Amacron -40
+KPX Oacute Aogonek -40
+KPX Oacute Aring -40
+KPX Oacute Atilde -40
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -50
+KPX Oacute X -40
+KPX Oacute Y -50
+KPX Oacute Yacute -50
+KPX Oacute Ydieresis -50
+KPX Ocircumflex A -40
+KPX Ocircumflex Aacute -40
+KPX Ocircumflex Abreve -40
+KPX Ocircumflex Acircumflex -40
+KPX Ocircumflex Adieresis -40
+KPX Ocircumflex Agrave -40
+KPX Ocircumflex Amacron -40
+KPX Ocircumflex Aogonek -40
+KPX Ocircumflex Aring -40
+KPX Ocircumflex Atilde -40
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -50
+KPX Ocircumflex X -40
+KPX Ocircumflex Y -50
+KPX Ocircumflex Yacute -50
+KPX Ocircumflex Ydieresis -50
+KPX Odieresis A -40
+KPX Odieresis Aacute -40
+KPX Odieresis Abreve -40
+KPX Odieresis Acircumflex -40
+KPX Odieresis Adieresis -40
+KPX Odieresis Agrave -40
+KPX Odieresis Amacron -40
+KPX Odieresis Aogonek -40
+KPX Odieresis Aring -40
+KPX Odieresis Atilde -40
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -50
+KPX Odieresis X -40
+KPX Odieresis Y -50
+KPX Odieresis Yacute -50
+KPX Odieresis Ydieresis -50
+KPX Ograve A -40
+KPX Ograve Aacute -40
+KPX Ograve Abreve -40
+KPX Ograve Acircumflex -40
+KPX Ograve Adieresis -40
+KPX Ograve Agrave -40
+KPX Ograve Amacron -40
+KPX Ograve Aogonek -40
+KPX Ograve Aring -40
+KPX Ograve Atilde -40
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -50
+KPX Ograve X -40
+KPX Ograve Y -50
+KPX Ograve Yacute -50
+KPX Ograve Ydieresis -50
+KPX Ohungarumlaut A -40
+KPX Ohungarumlaut Aacute -40
+KPX Ohungarumlaut Abreve -40
+KPX Ohungarumlaut Acircumflex -40
+KPX Ohungarumlaut Adieresis -40
+KPX Ohungarumlaut Agrave -40
+KPX Ohungarumlaut Amacron -40
+KPX Ohungarumlaut Aogonek -40
+KPX Ohungarumlaut Aring -40
+KPX Ohungarumlaut Atilde -40
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -50
+KPX Ohungarumlaut X -40
+KPX Ohungarumlaut Y -50
+KPX Ohungarumlaut Yacute -50
+KPX Ohungarumlaut Ydieresis -50
+KPX Omacron A -40
+KPX Omacron Aacute -40
+KPX Omacron Abreve -40
+KPX Omacron Acircumflex -40
+KPX Omacron Adieresis -40
+KPX Omacron Agrave -40
+KPX Omacron Amacron -40
+KPX Omacron Aogonek -40
+KPX Omacron Aring -40
+KPX Omacron Atilde -40
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -50
+KPX Omacron X -40
+KPX Omacron Y -50
+KPX Omacron Yacute -50
+KPX Omacron Ydieresis -50
+KPX Oslash A -40
+KPX Oslash Aacute -40
+KPX Oslash Abreve -40
+KPX Oslash Acircumflex -40
+KPX Oslash Adieresis -40
+KPX Oslash Agrave -40
+KPX Oslash Amacron -40
+KPX Oslash Aogonek -40
+KPX Oslash Aring -40
+KPX Oslash Atilde -40
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -50
+KPX Oslash X -40
+KPX Oslash Y -50
+KPX Oslash Yacute -50
+KPX Oslash Ydieresis -50
+KPX Otilde A -40
+KPX Otilde Aacute -40
+KPX Otilde Abreve -40
+KPX Otilde Acircumflex -40
+KPX Otilde Adieresis -40
+KPX Otilde Agrave -40
+KPX Otilde Amacron -40
+KPX Otilde Aogonek -40
+KPX Otilde Aring -40
+KPX Otilde Atilde -40
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -50
+KPX Otilde X -40
+KPX Otilde Y -50
+KPX Otilde Yacute -50
+KPX Otilde Ydieresis -50
+KPX P A -85
+KPX P Aacute -85
+KPX P Abreve -85
+KPX P Acircumflex -85
+KPX P Adieresis -85
+KPX P Agrave -85
+KPX P Amacron -85
+KPX P Aogonek -85
+KPX P Aring -85
+KPX P Atilde -85
+KPX P a -40
+KPX P aacute -40
+KPX P abreve -40
+KPX P acircumflex -40
+KPX P adieresis -40
+KPX P agrave -40
+KPX P amacron -40
+KPX P aogonek -40
+KPX P aring -40
+KPX P atilde -40
+KPX P comma -129
+KPX P e -50
+KPX P eacute -50
+KPX P ecaron -50
+KPX P ecircumflex -50
+KPX P edieresis -50
+KPX P edotaccent -50
+KPX P egrave -50
+KPX P emacron -50
+KPX P eogonek -50
+KPX P o -55
+KPX P oacute -55
+KPX P ocircumflex -55
+KPX P odieresis -55
+KPX P ograve -55
+KPX P ohungarumlaut -55
+KPX P omacron -55
+KPX P oslash -55
+KPX P otilde -55
+KPX P period -129
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R O -40
+KPX R Oacute -40
+KPX R Ocircumflex -40
+KPX R Odieresis -40
+KPX R Ograve -40
+KPX R Ohungarumlaut -40
+KPX R Omacron -40
+KPX R Oslash -40
+KPX R Otilde -40
+KPX R T -30
+KPX R Tcaron -30
+KPX R Tcommaaccent -30
+KPX R U -40
+KPX R Uacute -40
+KPX R Ucircumflex -40
+KPX R Udieresis -40
+KPX R Ugrave -40
+KPX R Uhungarumlaut -40
+KPX R Umacron -40
+KPX R Uogonek -40
+KPX R Uring -40
+KPX R V -18
+KPX R W -18
+KPX R Y -18
+KPX R Yacute -18
+KPX R Ydieresis -18
+KPX Racute O -40
+KPX Racute Oacute -40
+KPX Racute Ocircumflex -40
+KPX Racute Odieresis -40
+KPX Racute Ograve -40
+KPX Racute Ohungarumlaut -40
+KPX Racute Omacron -40
+KPX Racute Oslash -40
+KPX Racute Otilde -40
+KPX Racute T -30
+KPX Racute Tcaron -30
+KPX Racute Tcommaaccent -30
+KPX Racute U -40
+KPX Racute Uacute -40
+KPX Racute Ucircumflex -40
+KPX Racute Udieresis -40
+KPX Racute Ugrave -40
+KPX Racute Uhungarumlaut -40
+KPX Racute Umacron -40
+KPX Racute Uogonek -40
+KPX Racute Uring -40
+KPX Racute V -18
+KPX Racute W -18
+KPX Racute Y -18
+KPX Racute Yacute -18
+KPX Racute Ydieresis -18
+KPX Rcaron O -40
+KPX Rcaron Oacute -40
+KPX Rcaron Ocircumflex -40
+KPX Rcaron Odieresis -40
+KPX Rcaron Ograve -40
+KPX Rcaron Ohungarumlaut -40
+KPX Rcaron Omacron -40
+KPX Rcaron Oslash -40
+KPX Rcaron Otilde -40
+KPX Rcaron T -30
+KPX Rcaron Tcaron -30
+KPX Rcaron Tcommaaccent -30
+KPX Rcaron U -40
+KPX Rcaron Uacute -40
+KPX Rcaron Ucircumflex -40
+KPX Rcaron Udieresis -40
+KPX Rcaron Ugrave -40
+KPX Rcaron Uhungarumlaut -40
+KPX Rcaron Umacron -40
+KPX Rcaron Uogonek -40
+KPX Rcaron Uring -40
+KPX Rcaron V -18
+KPX Rcaron W -18
+KPX Rcaron Y -18
+KPX Rcaron Yacute -18
+KPX Rcaron Ydieresis -18
+KPX Rcommaaccent O -40
+KPX Rcommaaccent Oacute -40
+KPX Rcommaaccent Ocircumflex -40
+KPX Rcommaaccent Odieresis -40
+KPX Rcommaaccent Ograve -40
+KPX Rcommaaccent Ohungarumlaut -40
+KPX Rcommaaccent Omacron -40
+KPX Rcommaaccent Oslash -40
+KPX Rcommaaccent Otilde -40
+KPX Rcommaaccent T -30
+KPX Rcommaaccent Tcaron -30
+KPX Rcommaaccent Tcommaaccent -30
+KPX Rcommaaccent U -40
+KPX Rcommaaccent Uacute -40
+KPX Rcommaaccent Ucircumflex -40
+KPX Rcommaaccent Udieresis -40
+KPX Rcommaaccent Ugrave -40
+KPX Rcommaaccent Uhungarumlaut -40
+KPX Rcommaaccent Umacron -40
+KPX Rcommaaccent Uogonek -40
+KPX Rcommaaccent Uring -40
+KPX Rcommaaccent V -18
+KPX Rcommaaccent W -18
+KPX Rcommaaccent Y -18
+KPX Rcommaaccent Yacute -18
+KPX Rcommaaccent Ydieresis -18
+KPX T A -55
+KPX T Aacute -55
+KPX T Abreve -55
+KPX T Acircumflex -55
+KPX T Adieresis -55
+KPX T Agrave -55
+KPX T Amacron -55
+KPX T Aogonek -55
+KPX T Aring -55
+KPX T Atilde -55
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -92
+KPX T aacute -92
+KPX T abreve -92
+KPX T acircumflex -92
+KPX T adieresis -92
+KPX T agrave -92
+KPX T amacron -92
+KPX T aogonek -92
+KPX T aring -92
+KPX T atilde -92
+KPX T colon -74
+KPX T comma -92
+KPX T e -92
+KPX T eacute -92
+KPX T ecaron -92
+KPX T ecircumflex -92
+KPX T edieresis -52
+KPX T edotaccent -92
+KPX T egrave -52
+KPX T emacron -52
+KPX T eogonek -92
+KPX T hyphen -92
+KPX T i -37
+KPX T iacute -37
+KPX T iogonek -37
+KPX T o -95
+KPX T oacute -95
+KPX T ocircumflex -95
+KPX T odieresis -95
+KPX T ograve -95
+KPX T ohungarumlaut -95
+KPX T omacron -95
+KPX T oslash -95
+KPX T otilde -95
+KPX T period -92
+KPX T r -37
+KPX T racute -37
+KPX T rcaron -37
+KPX T rcommaaccent -37
+KPX T semicolon -74
+KPX T u -37
+KPX T uacute -37
+KPX T ucircumflex -37
+KPX T udieresis -37
+KPX T ugrave -37
+KPX T uhungarumlaut -37
+KPX T umacron -37
+KPX T uogonek -37
+KPX T uring -37
+KPX T w -37
+KPX T y -37
+KPX T yacute -37
+KPX T ydieresis -37
+KPX Tcaron A -55
+KPX Tcaron Aacute -55
+KPX Tcaron Abreve -55
+KPX Tcaron Acircumflex -55
+KPX Tcaron Adieresis -55
+KPX Tcaron Agrave -55
+KPX Tcaron Amacron -55
+KPX Tcaron Aogonek -55
+KPX Tcaron Aring -55
+KPX Tcaron Atilde -55
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -92
+KPX Tcaron aacute -92
+KPX Tcaron abreve -92
+KPX Tcaron acircumflex -92
+KPX Tcaron adieresis -92
+KPX Tcaron agrave -92
+KPX Tcaron amacron -92
+KPX Tcaron aogonek -92
+KPX Tcaron aring -92
+KPX Tcaron atilde -92
+KPX Tcaron colon -74
+KPX Tcaron comma -92
+KPX Tcaron e -92
+KPX Tcaron eacute -92
+KPX Tcaron ecaron -92
+KPX Tcaron ecircumflex -92
+KPX Tcaron edieresis -52
+KPX Tcaron edotaccent -92
+KPX Tcaron egrave -52
+KPX Tcaron emacron -52
+KPX Tcaron eogonek -92
+KPX Tcaron hyphen -92
+KPX Tcaron i -37
+KPX Tcaron iacute -37
+KPX Tcaron iogonek -37
+KPX Tcaron o -95
+KPX Tcaron oacute -95
+KPX Tcaron ocircumflex -95
+KPX Tcaron odieresis -95
+KPX Tcaron ograve -95
+KPX Tcaron ohungarumlaut -95
+KPX Tcaron omacron -95
+KPX Tcaron oslash -95
+KPX Tcaron otilde -95
+KPX Tcaron period -92
+KPX Tcaron r -37
+KPX Tcaron racute -37
+KPX Tcaron rcaron -37
+KPX Tcaron rcommaaccent -37
+KPX Tcaron semicolon -74
+KPX Tcaron u -37
+KPX Tcaron uacute -37
+KPX Tcaron ucircumflex -37
+KPX Tcaron udieresis -37
+KPX Tcaron ugrave -37
+KPX Tcaron uhungarumlaut -37
+KPX Tcaron umacron -37
+KPX Tcaron uogonek -37
+KPX Tcaron uring -37
+KPX Tcaron w -37
+KPX Tcaron y -37
+KPX Tcaron yacute -37
+KPX Tcaron ydieresis -37
+KPX Tcommaaccent A -55
+KPX Tcommaaccent Aacute -55
+KPX Tcommaaccent Abreve -55
+KPX Tcommaaccent Acircumflex -55
+KPX Tcommaaccent Adieresis -55
+KPX Tcommaaccent Agrave -55
+KPX Tcommaaccent Amacron -55
+KPX Tcommaaccent Aogonek -55
+KPX Tcommaaccent Aring -55
+KPX Tcommaaccent Atilde -55
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -92
+KPX Tcommaaccent aacute -92
+KPX Tcommaaccent abreve -92
+KPX Tcommaaccent acircumflex -92
+KPX Tcommaaccent adieresis -92
+KPX Tcommaaccent agrave -92
+KPX Tcommaaccent amacron -92
+KPX Tcommaaccent aogonek -92
+KPX Tcommaaccent aring -92
+KPX Tcommaaccent atilde -92
+KPX Tcommaaccent colon -74
+KPX Tcommaaccent comma -92
+KPX Tcommaaccent e -92
+KPX Tcommaaccent eacute -92
+KPX Tcommaaccent ecaron -92
+KPX Tcommaaccent ecircumflex -92
+KPX Tcommaaccent edieresis -52
+KPX Tcommaaccent edotaccent -92
+KPX Tcommaaccent egrave -52
+KPX Tcommaaccent emacron -52
+KPX Tcommaaccent eogonek -92
+KPX Tcommaaccent hyphen -92
+KPX Tcommaaccent i -37
+KPX Tcommaaccent iacute -37
+KPX Tcommaaccent iogonek -37
+KPX Tcommaaccent o -95
+KPX Tcommaaccent oacute -95
+KPX Tcommaaccent ocircumflex -95
+KPX Tcommaaccent odieresis -95
+KPX Tcommaaccent ograve -95
+KPX Tcommaaccent ohungarumlaut -95
+KPX Tcommaaccent omacron -95
+KPX Tcommaaccent oslash -95
+KPX Tcommaaccent otilde -95
+KPX Tcommaaccent period -92
+KPX Tcommaaccent r -37
+KPX Tcommaaccent racute -37
+KPX Tcommaaccent rcaron -37
+KPX Tcommaaccent rcommaaccent -37
+KPX Tcommaaccent semicolon -74
+KPX Tcommaaccent u -37
+KPX Tcommaaccent uacute -37
+KPX Tcommaaccent ucircumflex -37
+KPX Tcommaaccent udieresis -37
+KPX Tcommaaccent ugrave -37
+KPX Tcommaaccent uhungarumlaut -37
+KPX Tcommaaccent umacron -37
+KPX Tcommaaccent uogonek -37
+KPX Tcommaaccent uring -37
+KPX Tcommaaccent w -37
+KPX Tcommaaccent y -37
+KPX Tcommaaccent yacute -37
+KPX Tcommaaccent ydieresis -37
+KPX U A -45
+KPX U Aacute -45
+KPX U Abreve -45
+KPX U Acircumflex -45
+KPX U Adieresis -45
+KPX U Agrave -45
+KPX U Amacron -45
+KPX U Aogonek -45
+KPX U Aring -45
+KPX U Atilde -45
+KPX Uacute A -45
+KPX Uacute Aacute -45
+KPX Uacute Abreve -45
+KPX Uacute Acircumflex -45
+KPX Uacute Adieresis -45
+KPX Uacute Agrave -45
+KPX Uacute Amacron -45
+KPX Uacute Aogonek -45
+KPX Uacute Aring -45
+KPX Uacute Atilde -45
+KPX Ucircumflex A -45
+KPX Ucircumflex Aacute -45
+KPX Ucircumflex Abreve -45
+KPX Ucircumflex Acircumflex -45
+KPX Ucircumflex Adieresis -45
+KPX Ucircumflex Agrave -45
+KPX Ucircumflex Amacron -45
+KPX Ucircumflex Aogonek -45
+KPX Ucircumflex Aring -45
+KPX Ucircumflex Atilde -45
+KPX Udieresis A -45
+KPX Udieresis Aacute -45
+KPX Udieresis Abreve -45
+KPX Udieresis Acircumflex -45
+KPX Udieresis Adieresis -45
+KPX Udieresis Agrave -45
+KPX Udieresis Amacron -45
+KPX Udieresis Aogonek -45
+KPX Udieresis Aring -45
+KPX Udieresis Atilde -45
+KPX Ugrave A -45
+KPX Ugrave Aacute -45
+KPX Ugrave Abreve -45
+KPX Ugrave Acircumflex -45
+KPX Ugrave Adieresis -45
+KPX Ugrave Agrave -45
+KPX Ugrave Amacron -45
+KPX Ugrave Aogonek -45
+KPX Ugrave Aring -45
+KPX Ugrave Atilde -45
+KPX Uhungarumlaut A -45
+KPX Uhungarumlaut Aacute -45
+KPX Uhungarumlaut Abreve -45
+KPX Uhungarumlaut Acircumflex -45
+KPX Uhungarumlaut Adieresis -45
+KPX Uhungarumlaut Agrave -45
+KPX Uhungarumlaut Amacron -45
+KPX Uhungarumlaut Aogonek -45
+KPX Uhungarumlaut Aring -45
+KPX Uhungarumlaut Atilde -45
+KPX Umacron A -45
+KPX Umacron Aacute -45
+KPX Umacron Abreve -45
+KPX Umacron Acircumflex -45
+KPX Umacron Adieresis -45
+KPX Umacron Agrave -45
+KPX Umacron Amacron -45
+KPX Umacron Aogonek -45
+KPX Umacron Aring -45
+KPX Umacron Atilde -45
+KPX Uogonek A -45
+KPX Uogonek Aacute -45
+KPX Uogonek Abreve -45
+KPX Uogonek Acircumflex -45
+KPX Uogonek Adieresis -45
+KPX Uogonek Agrave -45
+KPX Uogonek Amacron -45
+KPX Uogonek Aogonek -45
+KPX Uogonek Aring -45
+KPX Uogonek Atilde -45
+KPX Uring A -45
+KPX Uring Aacute -45
+KPX Uring Abreve -45
+KPX Uring Acircumflex -45
+KPX Uring Adieresis -45
+KPX Uring Agrave -45
+KPX Uring Amacron -45
+KPX Uring Aogonek -45
+KPX Uring Aring -45
+KPX Uring Atilde -45
+KPX V A -85
+KPX V Aacute -85
+KPX V Abreve -85
+KPX V Acircumflex -85
+KPX V Adieresis -85
+KPX V Agrave -85
+KPX V Amacron -85
+KPX V Aogonek -85
+KPX V Aring -85
+KPX V Atilde -85
+KPX V G -10
+KPX V Gbreve -10
+KPX V Gcommaaccent -10
+KPX V O -30
+KPX V Oacute -30
+KPX V Ocircumflex -30
+KPX V Odieresis -30
+KPX V Ograve -30
+KPX V Ohungarumlaut -30
+KPX V Omacron -30
+KPX V Oslash -30
+KPX V Otilde -30
+KPX V a -111
+KPX V aacute -111
+KPX V abreve -111
+KPX V acircumflex -111
+KPX V adieresis -111
+KPX V agrave -111
+KPX V amacron -111
+KPX V aogonek -111
+KPX V aring -111
+KPX V atilde -111
+KPX V colon -74
+KPX V comma -129
+KPX V e -111
+KPX V eacute -111
+KPX V ecaron -111
+KPX V ecircumflex -111
+KPX V edieresis -71
+KPX V edotaccent -111
+KPX V egrave -71
+KPX V emacron -71
+KPX V eogonek -111
+KPX V hyphen -70
+KPX V i -55
+KPX V iacute -55
+KPX V iogonek -55
+KPX V o -111
+KPX V oacute -111
+KPX V ocircumflex -111
+KPX V odieresis -111
+KPX V ograve -111
+KPX V ohungarumlaut -111
+KPX V omacron -111
+KPX V oslash -111
+KPX V otilde -111
+KPX V period -129
+KPX V semicolon -74
+KPX V u -55
+KPX V uacute -55
+KPX V ucircumflex -55
+KPX V udieresis -55
+KPX V ugrave -55
+KPX V uhungarumlaut -55
+KPX V umacron -55
+KPX V uogonek -55
+KPX V uring -55
+KPX W A -74
+KPX W Aacute -74
+KPX W Abreve -74
+KPX W Acircumflex -74
+KPX W Adieresis -74
+KPX W Agrave -74
+KPX W Amacron -74
+KPX W Aogonek -74
+KPX W Aring -74
+KPX W Atilde -74
+KPX W O -15
+KPX W Oacute -15
+KPX W Ocircumflex -15
+KPX W Odieresis -15
+KPX W Ograve -15
+KPX W Ohungarumlaut -15
+KPX W Omacron -15
+KPX W Oslash -15
+KPX W Otilde -15
+KPX W a -85
+KPX W aacute -85
+KPX W abreve -85
+KPX W acircumflex -85
+KPX W adieresis -85
+KPX W agrave -85
+KPX W amacron -85
+KPX W aogonek -85
+KPX W aring -85
+KPX W atilde -85
+KPX W colon -55
+KPX W comma -74
+KPX W e -90
+KPX W eacute -90
+KPX W ecaron -90
+KPX W ecircumflex -90
+KPX W edieresis -50
+KPX W edotaccent -90
+KPX W egrave -50
+KPX W emacron -50
+KPX W eogonek -90
+KPX W hyphen -50
+KPX W i -37
+KPX W iacute -37
+KPX W iogonek -37
+KPX W o -80
+KPX W oacute -80
+KPX W ocircumflex -80
+KPX W odieresis -80
+KPX W ograve -80
+KPX W ohungarumlaut -80
+KPX W omacron -80
+KPX W oslash -80
+KPX W otilde -80
+KPX W period -74
+KPX W semicolon -55
+KPX W u -55
+KPX W uacute -55
+KPX W ucircumflex -55
+KPX W udieresis -55
+KPX W ugrave -55
+KPX W uhungarumlaut -55
+KPX W umacron -55
+KPX W uogonek -55
+KPX W uring -55
+KPX W y -55
+KPX W yacute -55
+KPX W ydieresis -55
+KPX Y A -74
+KPX Y Aacute -74
+KPX Y Abreve -74
+KPX Y Acircumflex -74
+KPX Y Adieresis -74
+KPX Y Agrave -74
+KPX Y Amacron -74
+KPX Y Aogonek -74
+KPX Y Aring -74
+KPX Y Atilde -74
+KPX Y O -25
+KPX Y Oacute -25
+KPX Y Ocircumflex -25
+KPX Y Odieresis -25
+KPX Y Ograve -25
+KPX Y Ohungarumlaut -25
+KPX Y Omacron -25
+KPX Y Oslash -25
+KPX Y Otilde -25
+KPX Y a -92
+KPX Y aacute -92
+KPX Y abreve -92
+KPX Y acircumflex -92
+KPX Y adieresis -92
+KPX Y agrave -92
+KPX Y amacron -92
+KPX Y aogonek -92
+KPX Y aring -92
+KPX Y atilde -92
+KPX Y colon -92
+KPX Y comma -92
+KPX Y e -111
+KPX Y eacute -111
+KPX Y ecaron -111
+KPX Y ecircumflex -71
+KPX Y edieresis -71
+KPX Y edotaccent -111
+KPX Y egrave -71
+KPX Y emacron -71
+KPX Y eogonek -111
+KPX Y hyphen -92
+KPX Y i -55
+KPX Y iacute -55
+KPX Y iogonek -55
+KPX Y o -111
+KPX Y oacute -111
+KPX Y ocircumflex -111
+KPX Y odieresis -111
+KPX Y ograve -111
+KPX Y ohungarumlaut -111
+KPX Y omacron -111
+KPX Y oslash -111
+KPX Y otilde -111
+KPX Y period -74
+KPX Y semicolon -92
+KPX Y u -92
+KPX Y uacute -92
+KPX Y ucircumflex -92
+KPX Y udieresis -92
+KPX Y ugrave -92
+KPX Y uhungarumlaut -92
+KPX Y umacron -92
+KPX Y uogonek -92
+KPX Y uring -92
+KPX Yacute A -74
+KPX Yacute Aacute -74
+KPX Yacute Abreve -74
+KPX Yacute Acircumflex -74
+KPX Yacute Adieresis -74
+KPX Yacute Agrave -74
+KPX Yacute Amacron -74
+KPX Yacute Aogonek -74
+KPX Yacute Aring -74
+KPX Yacute Atilde -74
+KPX Yacute O -25
+KPX Yacute Oacute -25
+KPX Yacute Ocircumflex -25
+KPX Yacute Odieresis -25
+KPX Yacute Ograve -25
+KPX Yacute Ohungarumlaut -25
+KPX Yacute Omacron -25
+KPX Yacute Oslash -25
+KPX Yacute Otilde -25
+KPX Yacute a -92
+KPX Yacute aacute -92
+KPX Yacute abreve -92
+KPX Yacute acircumflex -92
+KPX Yacute adieresis -92
+KPX Yacute agrave -92
+KPX Yacute amacron -92
+KPX Yacute aogonek -92
+KPX Yacute aring -92
+KPX Yacute atilde -92
+KPX Yacute colon -92
+KPX Yacute comma -92
+KPX Yacute e -111
+KPX Yacute eacute -111
+KPX Yacute ecaron -111
+KPX Yacute ecircumflex -71
+KPX Yacute edieresis -71
+KPX Yacute edotaccent -111
+KPX Yacute egrave -71
+KPX Yacute emacron -71
+KPX Yacute eogonek -111
+KPX Yacute hyphen -92
+KPX Yacute i -55
+KPX Yacute iacute -55
+KPX Yacute iogonek -55
+KPX Yacute o -111
+KPX Yacute oacute -111
+KPX Yacute ocircumflex -111
+KPX Yacute odieresis -111
+KPX Yacute ograve -111
+KPX Yacute ohungarumlaut -111
+KPX Yacute omacron -111
+KPX Yacute oslash -111
+KPX Yacute otilde -111
+KPX Yacute period -74
+KPX Yacute semicolon -92
+KPX Yacute u -92
+KPX Yacute uacute -92
+KPX Yacute ucircumflex -92
+KPX Yacute udieresis -92
+KPX Yacute ugrave -92
+KPX Yacute uhungarumlaut -92
+KPX Yacute umacron -92
+KPX Yacute uogonek -92
+KPX Yacute uring -92
+KPX Ydieresis A -74
+KPX Ydieresis Aacute -74
+KPX Ydieresis Abreve -74
+KPX Ydieresis Acircumflex -74
+KPX Ydieresis Adieresis -74
+KPX Ydieresis Agrave -74
+KPX Ydieresis Amacron -74
+KPX Ydieresis Aogonek -74
+KPX Ydieresis Aring -74
+KPX Ydieresis Atilde -74
+KPX Ydieresis O -25
+KPX Ydieresis Oacute -25
+KPX Ydieresis Ocircumflex -25
+KPX Ydieresis Odieresis -25
+KPX Ydieresis Ograve -25
+KPX Ydieresis Ohungarumlaut -25
+KPX Ydieresis Omacron -25
+KPX Ydieresis Oslash -25
+KPX Ydieresis Otilde -25
+KPX Ydieresis a -92
+KPX Ydieresis aacute -92
+KPX Ydieresis abreve -92
+KPX Ydieresis acircumflex -92
+KPX Ydieresis adieresis -92
+KPX Ydieresis agrave -92
+KPX Ydieresis amacron -92
+KPX Ydieresis aogonek -92
+KPX Ydieresis aring -92
+KPX Ydieresis atilde -92
+KPX Ydieresis colon -92
+KPX Ydieresis comma -92
+KPX Ydieresis e -111
+KPX Ydieresis eacute -111
+KPX Ydieresis ecaron -111
+KPX Ydieresis ecircumflex -71
+KPX Ydieresis edieresis -71
+KPX Ydieresis edotaccent -111
+KPX Ydieresis egrave -71
+KPX Ydieresis emacron -71
+KPX Ydieresis eogonek -111
+KPX Ydieresis hyphen -92
+KPX Ydieresis i -55
+KPX Ydieresis iacute -55
+KPX Ydieresis iogonek -55
+KPX Ydieresis o -111
+KPX Ydieresis oacute -111
+KPX Ydieresis ocircumflex -111
+KPX Ydieresis odieresis -111
+KPX Ydieresis ograve -111
+KPX Ydieresis ohungarumlaut -111
+KPX Ydieresis omacron -111
+KPX Ydieresis oslash -111
+KPX Ydieresis otilde -111
+KPX Ydieresis period -74
+KPX Ydieresis semicolon -92
+KPX Ydieresis u -92
+KPX Ydieresis uacute -92
+KPX Ydieresis ucircumflex -92
+KPX Ydieresis udieresis -92
+KPX Ydieresis ugrave -92
+KPX Ydieresis uhungarumlaut -92
+KPX Ydieresis umacron -92
+KPX Ydieresis uogonek -92
+KPX Ydieresis uring -92
+KPX b b -10
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX c h -10
+KPX c k -10
+KPX c kcommaaccent -10
+KPX cacute h -10
+KPX cacute k -10
+KPX cacute kcommaaccent -10
+KPX ccaron h -10
+KPX ccaron k -10
+KPX ccaron kcommaaccent -10
+KPX ccedilla h -10
+KPX ccedilla k -10
+KPX ccedilla kcommaaccent -10
+KPX comma quotedblright -95
+KPX comma quoteright -95
+KPX e b -10
+KPX eacute b -10
+KPX ecaron b -10
+KPX ecircumflex b -10
+KPX edieresis b -10
+KPX edotaccent b -10
+KPX egrave b -10
+KPX emacron b -10
+KPX eogonek b -10
+KPX f comma -10
+KPX f dotlessi -30
+KPX f e -10
+KPX f eacute -10
+KPX f edotaccent -10
+KPX f eogonek -10
+KPX f f -18
+KPX f o -10
+KPX f oacute -10
+KPX f ocircumflex -10
+KPX f ograve -10
+KPX f ohungarumlaut -10
+KPX f oslash -10
+KPX f otilde -10
+KPX f period -10
+KPX f quoteright 55
+KPX k e -30
+KPX k eacute -30
+KPX k ecaron -30
+KPX k ecircumflex -30
+KPX k edieresis -30
+KPX k edotaccent -30
+KPX k egrave -30
+KPX k emacron -30
+KPX k eogonek -30
+KPX k o -10
+KPX k oacute -10
+KPX k ocircumflex -10
+KPX k odieresis -10
+KPX k ograve -10
+KPX k ohungarumlaut -10
+KPX k omacron -10
+KPX k oslash -10
+KPX k otilde -10
+KPX kcommaaccent e -30
+KPX kcommaaccent eacute -30
+KPX kcommaaccent ecaron -30
+KPX kcommaaccent ecircumflex -30
+KPX kcommaaccent edieresis -30
+KPX kcommaaccent edotaccent -30
+KPX kcommaaccent egrave -30
+KPX kcommaaccent emacron -30
+KPX kcommaaccent eogonek -30
+KPX kcommaaccent o -10
+KPX kcommaaccent oacute -10
+KPX kcommaaccent ocircumflex -10
+KPX kcommaaccent odieresis -10
+KPX kcommaaccent ograve -10
+KPX kcommaaccent ohungarumlaut -10
+KPX kcommaaccent omacron -10
+KPX kcommaaccent oslash -10
+KPX kcommaaccent otilde -10
+KPX n v -40
+KPX nacute v -40
+KPX ncaron v -40
+KPX ncommaaccent v -40
+KPX ntilde v -40
+KPX o v -15
+KPX o w -25
+KPX o x -10
+KPX o y -10
+KPX o yacute -10
+KPX o ydieresis -10
+KPX oacute v -15
+KPX oacute w -25
+KPX oacute x -10
+KPX oacute y -10
+KPX oacute yacute -10
+KPX oacute ydieresis -10
+KPX ocircumflex v -15
+KPX ocircumflex w -25
+KPX ocircumflex x -10
+KPX ocircumflex y -10
+KPX ocircumflex yacute -10
+KPX ocircumflex ydieresis -10
+KPX odieresis v -15
+KPX odieresis w -25
+KPX odieresis x -10
+KPX odieresis y -10
+KPX odieresis yacute -10
+KPX odieresis ydieresis -10
+KPX ograve v -15
+KPX ograve w -25
+KPX ograve x -10
+KPX ograve y -10
+KPX ograve yacute -10
+KPX ograve ydieresis -10
+KPX ohungarumlaut v -15
+KPX ohungarumlaut w -25
+KPX ohungarumlaut x -10
+KPX ohungarumlaut y -10
+KPX ohungarumlaut yacute -10
+KPX ohungarumlaut ydieresis -10
+KPX omacron v -15
+KPX omacron w -25
+KPX omacron x -10
+KPX omacron y -10
+KPX omacron yacute -10
+KPX omacron ydieresis -10
+KPX oslash v -15
+KPX oslash w -25
+KPX oslash x -10
+KPX oslash y -10
+KPX oslash yacute -10
+KPX oslash ydieresis -10
+KPX otilde v -15
+KPX otilde w -25
+KPX otilde x -10
+KPX otilde y -10
+KPX otilde yacute -10
+KPX otilde ydieresis -10
+KPX period quotedblright -95
+KPX period quoteright -95
+KPX quoteleft quoteleft -74
+KPX quoteright d -15
+KPX quoteright dcroat -15
+KPX quoteright quoteright -74
+KPX quoteright r -15
+KPX quoteright racute -15
+KPX quoteright rcaron -15
+KPX quoteright rcommaaccent -15
+KPX quoteright s -74
+KPX quoteright sacute -74
+KPX quoteright scaron -74
+KPX quoteright scedilla -74
+KPX quoteright scommaaccent -74
+KPX quoteright space -74
+KPX quoteright t -37
+KPX quoteright tcommaaccent -37
+KPX quoteright v -15
+KPX r comma -65
+KPX r period -65
+KPX racute comma -65
+KPX racute period -65
+KPX rcaron comma -65
+KPX rcaron period -65
+KPX rcommaaccent comma -65
+KPX rcommaaccent period -65
+KPX space A -37
+KPX space Aacute -37
+KPX space Abreve -37
+KPX space Acircumflex -37
+KPX space Adieresis -37
+KPX space Agrave -37
+KPX space Amacron -37
+KPX space Aogonek -37
+KPX space Aring -37
+KPX space Atilde -37
+KPX space V -70
+KPX space W -70
+KPX space Y -70
+KPX space Yacute -70
+KPX space Ydieresis -70
+KPX v comma -37
+KPX v e -15
+KPX v eacute -15
+KPX v ecaron -15
+KPX v ecircumflex -15
+KPX v edieresis -15
+KPX v edotaccent -15
+KPX v egrave -15
+KPX v emacron -15
+KPX v eogonek -15
+KPX v o -15
+KPX v oacute -15
+KPX v ocircumflex -15
+KPX v odieresis -15
+KPX v ograve -15
+KPX v ohungarumlaut -15
+KPX v omacron -15
+KPX v oslash -15
+KPX v otilde -15
+KPX v period -37
+KPX w a -10
+KPX w aacute -10
+KPX w abreve -10
+KPX w acircumflex -10
+KPX w adieresis -10
+KPX w agrave -10
+KPX w amacron -10
+KPX w aogonek -10
+KPX w aring -10
+KPX w atilde -10
+KPX w comma -37
+KPX w e -10
+KPX w eacute -10
+KPX w ecaron -10
+KPX w ecircumflex -10
+KPX w edieresis -10
+KPX w edotaccent -10
+KPX w egrave -10
+KPX w emacron -10
+KPX w eogonek -10
+KPX w o -15
+KPX w oacute -15
+KPX w ocircumflex -15
+KPX w odieresis -15
+KPX w ograve -15
+KPX w ohungarumlaut -15
+KPX w omacron -15
+KPX w oslash -15
+KPX w otilde -15
+KPX w period -37
+KPX x e -10
+KPX x eacute -10
+KPX x ecaron -10
+KPX x ecircumflex -10
+KPX x edieresis -10
+KPX x edotaccent -10
+KPX x egrave -10
+KPX x emacron -10
+KPX x eogonek -10
+KPX y comma -37
+KPX y period -37
+KPX yacute comma -37
+KPX yacute period -37
+KPX ydieresis comma -37
+KPX ydieresis period -37
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Times-Italic.afm b/test/user-template/user/psprint/fontmetric/Times-Italic.afm
new file mode 100644
index 000000000000..8560884d267b
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Times-Italic.afm
@@ -0,0 +1,2665 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:56:55 1997
+Comment UniqueID 43067
+Comment VMusage 47727 58752
+FontName Times-Italic
+FullName Times Italic
+FamilyName Times
+Weight Medium
+ItalicAngle -15.5
+IsFixedPitch false
+FontBBox -169 -217 1010 883
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 653
+XHeight 441
+Ascender 683
+Descender -217
+StdHW 32
+StdVW 76
+StartCharMetrics 314
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ;
+C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ;
+C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ;
+C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ;
+C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ;
+C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ;
+C 39 ; WX 333 ; N quoteright ; B 151 436 290 666 ;
+C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ;
+C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ;
+C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ;
+C 43 ; WX 675 ; N plus ; B 86 0 590 506 ;
+C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ;
+C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ;
+C 46 ; WX 250 ; N period ; B 27 -11 138 100 ;
+C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ;
+C 48 ; WX 500 ; N zero ; B 32 -7 497 676 ;
+C 49 ; WX 500 ; N one ; B 49 0 409 676 ;
+C 50 ; WX 500 ; N two ; B 12 0 452 676 ;
+C 51 ; WX 500 ; N three ; B 15 -7 465 676 ;
+C 52 ; WX 500 ; N four ; B 1 0 479 676 ;
+C 53 ; WX 500 ; N five ; B 15 -7 491 666 ;
+C 54 ; WX 500 ; N six ; B 30 -7 521 686 ;
+C 55 ; WX 500 ; N seven ; B 75 -8 537 666 ;
+C 56 ; WX 500 ; N eight ; B 30 -7 493 676 ;
+C 57 ; WX 500 ; N nine ; B 23 -17 492 676 ;
+C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ;
+C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ;
+C 60 ; WX 675 ; N less ; B 84 -8 592 514 ;
+C 61 ; WX 675 ; N equal ; B 86 120 590 386 ;
+C 62 ; WX 675 ; N greater ; B 84 -8 592 514 ;
+C 63 ; WX 500 ; N question ; B 132 -12 472 664 ;
+C 64 ; WX 920 ; N at ; B 118 -18 806 666 ;
+C 65 ; WX 611 ; N A ; B -51 0 564 668 ;
+C 66 ; WX 611 ; N B ; B -8 0 588 653 ;
+C 67 ; WX 667 ; N C ; B 66 -18 689 666 ;
+C 68 ; WX 722 ; N D ; B -8 0 700 653 ;
+C 69 ; WX 611 ; N E ; B -1 0 634 653 ;
+C 70 ; WX 611 ; N F ; B 8 0 645 653 ;
+C 71 ; WX 722 ; N G ; B 52 -18 722 666 ;
+C 72 ; WX 722 ; N H ; B -8 0 767 653 ;
+C 73 ; WX 333 ; N I ; B -8 0 384 653 ;
+C 74 ; WX 444 ; N J ; B -6 -18 491 653 ;
+C 75 ; WX 667 ; N K ; B 7 0 722 653 ;
+C 76 ; WX 556 ; N L ; B -8 0 559 653 ;
+C 77 ; WX 833 ; N M ; B -18 0 873 653 ;
+C 78 ; WX 667 ; N N ; B -20 -15 727 653 ;
+C 79 ; WX 722 ; N O ; B 60 -18 699 666 ;
+C 80 ; WX 611 ; N P ; B 0 0 605 653 ;
+C 81 ; WX 722 ; N Q ; B 59 -182 699 666 ;
+C 82 ; WX 611 ; N R ; B -13 0 588 653 ;
+C 83 ; WX 500 ; N S ; B 17 -18 508 667 ;
+C 84 ; WX 556 ; N T ; B 59 0 633 653 ;
+C 85 ; WX 722 ; N U ; B 102 -18 765 653 ;
+C 86 ; WX 611 ; N V ; B 76 -18 688 653 ;
+C 87 ; WX 833 ; N W ; B 71 -18 906 653 ;
+C 88 ; WX 611 ; N X ; B -29 0 655 653 ;
+C 89 ; WX 556 ; N Y ; B 78 0 633 653 ;
+C 90 ; WX 556 ; N Z ; B -6 0 606 653 ;
+C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ;
+C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ;
+C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ;
+C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 333 ; N quoteleft ; B 171 436 310 666 ;
+C 97 ; WX 500 ; N a ; B 17 -11 476 441 ;
+C 98 ; WX 500 ; N b ; B 23 -11 473 683 ;
+C 99 ; WX 444 ; N c ; B 30 -11 425 441 ;
+C 100 ; WX 500 ; N d ; B 15 -13 527 683 ;
+C 101 ; WX 444 ; N e ; B 31 -11 412 441 ;
+C 102 ; WX 278 ; N f ; B -147 -207 424 678 ; L i fi ; L l fl ;
+C 103 ; WX 500 ; N g ; B 8 -206 472 441 ;
+C 104 ; WX 500 ; N h ; B 19 -9 478 683 ;
+C 105 ; WX 278 ; N i ; B 49 -11 264 654 ;
+C 106 ; WX 278 ; N j ; B -124 -207 276 654 ;
+C 107 ; WX 444 ; N k ; B 14 -11 461 683 ;
+C 108 ; WX 278 ; N l ; B 41 -11 279 683 ;
+C 109 ; WX 722 ; N m ; B 12 -9 704 441 ;
+C 110 ; WX 500 ; N n ; B 14 -9 474 441 ;
+C 111 ; WX 500 ; N o ; B 27 -11 468 441 ;
+C 112 ; WX 500 ; N p ; B -75 -205 469 441 ;
+C 113 ; WX 500 ; N q ; B 25 -209 483 441 ;
+C 114 ; WX 389 ; N r ; B 45 0 412 441 ;
+C 115 ; WX 389 ; N s ; B 16 -13 366 442 ;
+C 116 ; WX 278 ; N t ; B 37 -11 296 546 ;
+C 117 ; WX 500 ; N u ; B 42 -11 475 441 ;
+C 118 ; WX 444 ; N v ; B 21 -18 426 441 ;
+C 119 ; WX 667 ; N w ; B 16 -18 648 441 ;
+C 120 ; WX 444 ; N x ; B -27 -11 447 441 ;
+C 121 ; WX 444 ; N y ; B -24 -206 426 441 ;
+C 122 ; WX 389 ; N z ; B -2 -81 380 428 ;
+C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ;
+C 124 ; WX 275 ; N bar ; B 105 -217 171 783 ;
+C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ;
+C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ;
+C 161 ; WX 389 ; N exclamdown ; B 59 -205 322 473 ;
+C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ;
+C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ;
+C 164 ; WX 167 ; N fraction ; B -169 -10 337 676 ;
+C 165 ; WX 500 ; N yen ; B 27 0 603 653 ;
+C 166 ; WX 500 ; N florin ; B 25 -182 507 682 ;
+C 167 ; WX 500 ; N section ; B 53 -162 461 666 ;
+C 168 ; WX 500 ; N currency ; B -22 53 522 597 ;
+C 169 ; WX 214 ; N quotesingle ; B 132 421 241 666 ;
+C 170 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ;
+C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ;
+C 173 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ;
+C 174 ; WX 500 ; N fi ; B -141 -207 481 681 ;
+C 175 ; WX 500 ; N fl ; B -141 -204 518 682 ;
+C 177 ; WX 500 ; N endash ; B -6 197 505 243 ;
+C 178 ; WX 500 ; N dagger ; B 101 -159 488 666 ;
+C 179 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ;
+C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ;
+C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ;
+C 183 ; WX 350 ; N bullet ; B 40 191 310 461 ;
+C 184 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ;
+C 185 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ;
+C 186 ; WX 556 ; N quotedblright ; B 151 436 499 666 ;
+C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ;
+C 188 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ;
+C 189 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ;
+C 191 ; WX 500 ; N questiondown ; B 28 -205 368 471 ;
+C 193 ; WX 333 ; N grave ; B 121 492 311 664 ;
+C 194 ; WX 333 ; N acute ; B 180 494 403 664 ;
+C 195 ; WX 333 ; N circumflex ; B 91 492 385 661 ;
+C 196 ; WX 333 ; N tilde ; B 100 517 427 624 ;
+C 197 ; WX 333 ; N macron ; B 99 532 411 583 ;
+C 198 ; WX 333 ; N breve ; B 117 492 418 650 ;
+C 199 ; WX 333 ; N dotaccent ; B 207 548 305 646 ;
+C 200 ; WX 333 ; N dieresis ; B 107 548 405 646 ;
+C 202 ; WX 333 ; N ring ; B 155 492 355 691 ;
+C 203 ; WX 333 ; N cedilla ; B -30 -217 182 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ;
+C 206 ; WX 333 ; N ogonek ; B 20 -169 203 40 ;
+C 207 ; WX 333 ; N caron ; B 121 492 426 661 ;
+C 208 ; WX 889 ; N emdash ; B -6 197 894 243 ;
+C 225 ; WX 889 ; N AE ; B -27 0 911 653 ;
+C 227 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ;
+C 232 ; WX 556 ; N Lslash ; B -8 0 559 653 ;
+C 233 ; WX 722 ; N Oslash ; B 60 -105 699 722 ;
+C 234 ; WX 944 ; N OE ; B 49 -8 964 666 ;
+C 235 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ;
+C 241 ; WX 667 ; N ae ; B 23 -11 640 441 ;
+C 245 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ;
+C 248 ; WX 278 ; N lslash ; B 41 -11 312 683 ;
+C 249 ; WX 500 ; N oslash ; B 28 -135 469 554 ;
+C 250 ; WX 667 ; N oe ; B 20 -12 646 441 ;
+C 251 ; WX 500 ; N germandbls ; B -168 -207 493 679 ;
+C -1 ; WX 333 ; N Idieresis ; B -8 0 435 818 ;
+C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ;
+C -1 ; WX 500 ; N abreve ; B 17 -11 502 650 ;
+C -1 ; WX 500 ; N uhungarumlaut ; B 42 -11 580 664 ;
+C -1 ; WX 444 ; N ecaron ; B 31 -11 482 661 ;
+C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ;
+C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ;
+C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ;
+C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ;
+C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ;
+C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ;
+C -1 ; WX 389 ; N scommaaccent ; B 16 -217 366 442 ;
+C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ;
+C -1 ; WX 722 ; N Uring ; B 102 -18 765 883 ;
+C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ;
+C -1 ; WX 500 ; N aogonek ; B 17 -169 476 441 ;
+C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ;
+C -1 ; WX 500 ; N uogonek ; B 42 -169 477 441 ;
+C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ;
+C -1 ; WX 722 ; N Dcroat ; B -8 0 700 653 ;
+C -1 ; WX 250 ; N commaaccent ; B 8 -217 133 -50 ;
+C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ;
+C -1 ; WX 611 ; N Emacron ; B -1 0 634 795 ;
+C -1 ; WX 444 ; N ccaron ; B 30 -11 482 661 ;
+C -1 ; WX 500 ; N aring ; B 17 -11 476 691 ;
+C -1 ; WX 667 ; N Ncommaaccent ; B -20 -187 727 653 ;
+C -1 ; WX 278 ; N lacute ; B 41 -11 395 876 ;
+C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ;
+C -1 ; WX 556 ; N Tcommaaccent ; B 59 -217 633 653 ;
+C -1 ; WX 667 ; N Cacute ; B 66 -18 690 876 ;
+C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ;
+C -1 ; WX 611 ; N Edotaccent ; B -1 0 634 818 ;
+C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ;
+C -1 ; WX 389 ; N scedilla ; B 16 -217 366 442 ;
+C -1 ; WX 278 ; N iacute ; B 49 -11 355 664 ;
+C -1 ; WX 471 ; N lozenge ; B 13 0 459 724 ;
+C -1 ; WX 611 ; N Rcaron ; B -13 0 588 873 ;
+C -1 ; WX 722 ; N Gcommaaccent ; B 52 -217 722 666 ;
+C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ;
+C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ;
+C -1 ; WX 611 ; N Amacron ; B -51 0 564 795 ;
+C -1 ; WX 389 ; N rcaron ; B 45 0 434 661 ;
+C -1 ; WX 444 ; N ccedilla ; B 30 -217 425 441 ;
+C -1 ; WX 556 ; N Zdotaccent ; B -6 0 606 818 ;
+C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ;
+C -1 ; WX 722 ; N Omacron ; B 60 -18 699 795 ;
+C -1 ; WX 611 ; N Racute ; B -13 0 588 876 ;
+C -1 ; WX 500 ; N Sacute ; B 17 -18 508 876 ;
+C -1 ; WX 544 ; N dcaron ; B 15 -13 658 683 ;
+C -1 ; WX 722 ; N Umacron ; B 102 -18 765 795 ;
+C -1 ; WX 500 ; N uring ; B 42 -11 475 691 ;
+C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ;
+C -1 ; WX 722 ; N Ograve ; B 60 -18 699 876 ;
+C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ;
+C -1 ; WX 611 ; N Abreve ; B -51 0 564 862 ;
+C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ;
+C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ;
+C -1 ; WX 556 ; N Tcaron ; B 59 0 633 873 ;
+C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ;
+C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ;
+C -1 ; WX 667 ; N Nacute ; B -20 -15 727 876 ;
+C -1 ; WX 278 ; N icircumflex ; B 33 -11 327 661 ;
+C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ;
+C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ;
+C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ;
+C -1 ; WX 444 ; N cacute ; B 30 -11 459 664 ;
+C -1 ; WX 500 ; N nacute ; B 14 -9 477 664 ;
+C -1 ; WX 500 ; N umacron ; B 42 -11 485 583 ;
+C -1 ; WX 667 ; N Ncaron ; B -20 -15 727 873 ;
+C -1 ; WX 333 ; N Iacute ; B -8 0 433 876 ;
+C -1 ; WX 675 ; N plusminus ; B 86 0 590 506 ;
+C -1 ; WX 275 ; N brokenbar ; B 105 -142 171 708 ;
+C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ;
+C -1 ; WX 722 ; N Gbreve ; B 52 -18 722 862 ;
+C -1 ; WX 333 ; N Idotaccent ; B -8 0 384 818 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ;
+C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ;
+C -1 ; WX 389 ; N racute ; B 45 0 431 664 ;
+C -1 ; WX 500 ; N omacron ; B 27 -11 495 583 ;
+C -1 ; WX 556 ; N Zacute ; B -6 0 606 876 ;
+C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 658 ;
+C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ;
+C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ;
+C -1 ; WX 278 ; N lcommaaccent ; B 22 -217 279 683 ;
+C -1 ; WX 300 ; N tcaron ; B 37 -11 407 681 ;
+C -1 ; WX 444 ; N eogonek ; B 31 -169 412 441 ;
+C -1 ; WX 722 ; N Uogonek ; B 102 -184 765 653 ;
+C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ;
+C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ;
+C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ;
+C -1 ; WX 389 ; N zacute ; B -2 -81 431 664 ;
+C -1 ; WX 278 ; N iogonek ; B 49 -169 264 654 ;
+C -1 ; WX 722 ; N Oacute ; B 60 -18 699 876 ;
+C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ;
+C -1 ; WX 500 ; N amacron ; B 17 -11 495 583 ;
+C -1 ; WX 389 ; N sacute ; B 16 -13 431 664 ;
+C -1 ; WX 278 ; N idieresis ; B 49 -11 352 606 ;
+C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 699 873 ;
+C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ;
+C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ;
+C -1 ; WX 722 ; N Odieresis ; B 60 -18 699 818 ;
+C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ;
+C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ;
+C -1 ; WX 500 ; N ohungarumlaut ; B 27 -11 590 664 ;
+C -1 ; WX 611 ; N Eogonek ; B -1 -169 634 653 ;
+C -1 ; WX 500 ; N dcroat ; B 15 -13 572 683 ;
+C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ;
+C -1 ; WX 500 ; N Scedilla ; B 17 -217 508 667 ;
+C -1 ; WX 300 ; N lcaron ; B 41 -11 407 683 ;
+C -1 ; WX 667 ; N Kcommaaccent ; B 7 -217 722 653 ;
+C -1 ; WX 556 ; N Lacute ; B -8 0 559 876 ;
+C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ;
+C -1 ; WX 444 ; N edotaccent ; B 31 -11 412 606 ;
+C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ;
+C -1 ; WX 333 ; N Imacron ; B -8 0 441 795 ;
+C -1 ; WX 611 ; N Lcaron ; B -8 0 586 653 ;
+C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 658 ;
+C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ;
+C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 102 -18 765 876 ;
+C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ;
+C -1 ; WX 444 ; N emacron ; B 31 -11 457 583 ;
+C -1 ; WX 500 ; N gbreve ; B 8 -206 487 650 ;
+C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ;
+C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ;
+C -1 ; WX 500 ; N Scommaaccent ; B 17 -217 508 667 ;
+C -1 ; WX 722 ; N Ohungarumlaut ; B 60 -18 699 876 ;
+C -1 ; WX 400 ; N degree ; B 101 390 387 676 ;
+C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ;
+C -1 ; WX 667 ; N Ccaron ; B 66 -18 689 873 ;
+C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ;
+C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ;
+C -1 ; WX 722 ; N Dcaron ; B -8 0 700 873 ;
+C -1 ; WX 389 ; N rcommaaccent ; B -3 -217 412 441 ;
+C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ;
+C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ;
+C -1 ; WX 611 ; N Rcommaaccent ; B -13 -187 588 653 ;
+C -1 ; WX 556 ; N Lcommaaccent ; B -8 -217 559 653 ;
+C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ;
+C -1 ; WX 611 ; N Aogonek ; B -51 -169 566 668 ;
+C -1 ; WX 611 ; N Aring ; B -51 0 564 883 ;
+C -1 ; WX 722 ; N Otilde ; B 60 -18 699 836 ;
+C -1 ; WX 389 ; N zdotaccent ; B -2 -81 380 606 ;
+C -1 ; WX 611 ; N Ecaron ; B -1 0 634 873 ;
+C -1 ; WX 333 ; N Iogonek ; B -8 -169 384 653 ;
+C -1 ; WX 444 ; N kcommaaccent ; B 14 -187 461 683 ;
+C -1 ; WX 675 ; N minus ; B 86 220 590 286 ;
+C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ;
+C -1 ; WX 500 ; N ncaron ; B 14 -9 510 661 ;
+C -1 ; WX 278 ; N tcommaaccent ; B 2 -217 296 546 ;
+C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ;
+C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ;
+C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ;
+C -1 ; WX 549 ; N notequal ; B 12 -29 537 541 ;
+C -1 ; WX 500 ; N gcommaaccent ; B 8 -206 472 706 ;
+C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ;
+C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ;
+C -1 ; WX 500 ; N ncommaaccent ; B 14 -187 474 441 ;
+C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ;
+C -1 ; WX 278 ; N imacron ; B 46 -11 311 583 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2321
+KPX A C -30
+KPX A Cacute -30
+KPX A Ccaron -30
+KPX A Ccedilla -30
+KPX A G -35
+KPX A Gbreve -35
+KPX A Gcommaaccent -35
+KPX A O -40
+KPX A Oacute -40
+KPX A Ocircumflex -40
+KPX A Odieresis -40
+KPX A Ograve -40
+KPX A Ohungarumlaut -40
+KPX A Omacron -40
+KPX A Oslash -40
+KPX A Otilde -40
+KPX A Q -40
+KPX A T -37
+KPX A Tcaron -37
+KPX A Tcommaaccent -37
+KPX A U -50
+KPX A Uacute -50
+KPX A Ucircumflex -50
+KPX A Udieresis -50
+KPX A Ugrave -50
+KPX A Uhungarumlaut -50
+KPX A Umacron -50
+KPX A Uogonek -50
+KPX A Uring -50
+KPX A V -105
+KPX A W -95
+KPX A Y -55
+KPX A Yacute -55
+KPX A Ydieresis -55
+KPX A quoteright -37
+KPX A u -20
+KPX A uacute -20
+KPX A ucircumflex -20
+KPX A udieresis -20
+KPX A ugrave -20
+KPX A uhungarumlaut -20
+KPX A umacron -20
+KPX A uogonek -20
+KPX A uring -20
+KPX A v -55
+KPX A w -55
+KPX A y -55
+KPX A yacute -55
+KPX A ydieresis -55
+KPX Aacute C -30
+KPX Aacute Cacute -30
+KPX Aacute Ccaron -30
+KPX Aacute Ccedilla -30
+KPX Aacute G -35
+KPX Aacute Gbreve -35
+KPX Aacute Gcommaaccent -35
+KPX Aacute O -40
+KPX Aacute Oacute -40
+KPX Aacute Ocircumflex -40
+KPX Aacute Odieresis -40
+KPX Aacute Ograve -40
+KPX Aacute Ohungarumlaut -40
+KPX Aacute Omacron -40
+KPX Aacute Oslash -40
+KPX Aacute Otilde -40
+KPX Aacute Q -40
+KPX Aacute T -37
+KPX Aacute Tcaron -37
+KPX Aacute Tcommaaccent -37
+KPX Aacute U -50
+KPX Aacute Uacute -50
+KPX Aacute Ucircumflex -50
+KPX Aacute Udieresis -50
+KPX Aacute Ugrave -50
+KPX Aacute Uhungarumlaut -50
+KPX Aacute Umacron -50
+KPX Aacute Uogonek -50
+KPX Aacute Uring -50
+KPX Aacute V -105
+KPX Aacute W -95
+KPX Aacute Y -55
+KPX Aacute Yacute -55
+KPX Aacute Ydieresis -55
+KPX Aacute quoteright -37
+KPX Aacute u -20
+KPX Aacute uacute -20
+KPX Aacute ucircumflex -20
+KPX Aacute udieresis -20
+KPX Aacute ugrave -20
+KPX Aacute uhungarumlaut -20
+KPX Aacute umacron -20
+KPX Aacute uogonek -20
+KPX Aacute uring -20
+KPX Aacute v -55
+KPX Aacute w -55
+KPX Aacute y -55
+KPX Aacute yacute -55
+KPX Aacute ydieresis -55
+KPX Abreve C -30
+KPX Abreve Cacute -30
+KPX Abreve Ccaron -30
+KPX Abreve Ccedilla -30
+KPX Abreve G -35
+KPX Abreve Gbreve -35
+KPX Abreve Gcommaaccent -35
+KPX Abreve O -40
+KPX Abreve Oacute -40
+KPX Abreve Ocircumflex -40
+KPX Abreve Odieresis -40
+KPX Abreve Ograve -40
+KPX Abreve Ohungarumlaut -40
+KPX Abreve Omacron -40
+KPX Abreve Oslash -40
+KPX Abreve Otilde -40
+KPX Abreve Q -40
+KPX Abreve T -37
+KPX Abreve Tcaron -37
+KPX Abreve Tcommaaccent -37
+KPX Abreve U -50
+KPX Abreve Uacute -50
+KPX Abreve Ucircumflex -50
+KPX Abreve Udieresis -50
+KPX Abreve Ugrave -50
+KPX Abreve Uhungarumlaut -50
+KPX Abreve Umacron -50
+KPX Abreve Uogonek -50
+KPX Abreve Uring -50
+KPX Abreve V -105
+KPX Abreve W -95
+KPX Abreve Y -55
+KPX Abreve Yacute -55
+KPX Abreve Ydieresis -55
+KPX Abreve quoteright -37
+KPX Abreve u -20
+KPX Abreve uacute -20
+KPX Abreve ucircumflex -20
+KPX Abreve udieresis -20
+KPX Abreve ugrave -20
+KPX Abreve uhungarumlaut -20
+KPX Abreve umacron -20
+KPX Abreve uogonek -20
+KPX Abreve uring -20
+KPX Abreve v -55
+KPX Abreve w -55
+KPX Abreve y -55
+KPX Abreve yacute -55
+KPX Abreve ydieresis -55
+KPX Acircumflex C -30
+KPX Acircumflex Cacute -30
+KPX Acircumflex Ccaron -30
+KPX Acircumflex Ccedilla -30
+KPX Acircumflex G -35
+KPX Acircumflex Gbreve -35
+KPX Acircumflex Gcommaaccent -35
+KPX Acircumflex O -40
+KPX Acircumflex Oacute -40
+KPX Acircumflex Ocircumflex -40
+KPX Acircumflex Odieresis -40
+KPX Acircumflex Ograve -40
+KPX Acircumflex Ohungarumlaut -40
+KPX Acircumflex Omacron -40
+KPX Acircumflex Oslash -40
+KPX Acircumflex Otilde -40
+KPX Acircumflex Q -40
+KPX Acircumflex T -37
+KPX Acircumflex Tcaron -37
+KPX Acircumflex Tcommaaccent -37
+KPX Acircumflex U -50
+KPX Acircumflex Uacute -50
+KPX Acircumflex Ucircumflex -50
+KPX Acircumflex Udieresis -50
+KPX Acircumflex Ugrave -50
+KPX Acircumflex Uhungarumlaut -50
+KPX Acircumflex Umacron -50
+KPX Acircumflex Uogonek -50
+KPX Acircumflex Uring -50
+KPX Acircumflex V -105
+KPX Acircumflex W -95
+KPX Acircumflex Y -55
+KPX Acircumflex Yacute -55
+KPX Acircumflex Ydieresis -55
+KPX Acircumflex quoteright -37
+KPX Acircumflex u -20
+KPX Acircumflex uacute -20
+KPX Acircumflex ucircumflex -20
+KPX Acircumflex udieresis -20
+KPX Acircumflex ugrave -20
+KPX Acircumflex uhungarumlaut -20
+KPX Acircumflex umacron -20
+KPX Acircumflex uogonek -20
+KPX Acircumflex uring -20
+KPX Acircumflex v -55
+KPX Acircumflex w -55
+KPX Acircumflex y -55
+KPX Acircumflex yacute -55
+KPX Acircumflex ydieresis -55
+KPX Adieresis C -30
+KPX Adieresis Cacute -30
+KPX Adieresis Ccaron -30
+KPX Adieresis Ccedilla -30
+KPX Adieresis G -35
+KPX Adieresis Gbreve -35
+KPX Adieresis Gcommaaccent -35
+KPX Adieresis O -40
+KPX Adieresis Oacute -40
+KPX Adieresis Ocircumflex -40
+KPX Adieresis Odieresis -40
+KPX Adieresis Ograve -40
+KPX Adieresis Ohungarumlaut -40
+KPX Adieresis Omacron -40
+KPX Adieresis Oslash -40
+KPX Adieresis Otilde -40
+KPX Adieresis Q -40
+KPX Adieresis T -37
+KPX Adieresis Tcaron -37
+KPX Adieresis Tcommaaccent -37
+KPX Adieresis U -50
+KPX Adieresis Uacute -50
+KPX Adieresis Ucircumflex -50
+KPX Adieresis Udieresis -50
+KPX Adieresis Ugrave -50
+KPX Adieresis Uhungarumlaut -50
+KPX Adieresis Umacron -50
+KPX Adieresis Uogonek -50
+KPX Adieresis Uring -50
+KPX Adieresis V -105
+KPX Adieresis W -95
+KPX Adieresis Y -55
+KPX Adieresis Yacute -55
+KPX Adieresis Ydieresis -55
+KPX Adieresis quoteright -37
+KPX Adieresis u -20
+KPX Adieresis uacute -20
+KPX Adieresis ucircumflex -20
+KPX Adieresis udieresis -20
+KPX Adieresis ugrave -20
+KPX Adieresis uhungarumlaut -20
+KPX Adieresis umacron -20
+KPX Adieresis uogonek -20
+KPX Adieresis uring -20
+KPX Adieresis v -55
+KPX Adieresis w -55
+KPX Adieresis y -55
+KPX Adieresis yacute -55
+KPX Adieresis ydieresis -55
+KPX Agrave C -30
+KPX Agrave Cacute -30
+KPX Agrave Ccaron -30
+KPX Agrave Ccedilla -30
+KPX Agrave G -35
+KPX Agrave Gbreve -35
+KPX Agrave Gcommaaccent -35
+KPX Agrave O -40
+KPX Agrave Oacute -40
+KPX Agrave Ocircumflex -40
+KPX Agrave Odieresis -40
+KPX Agrave Ograve -40
+KPX Agrave Ohungarumlaut -40
+KPX Agrave Omacron -40
+KPX Agrave Oslash -40
+KPX Agrave Otilde -40
+KPX Agrave Q -40
+KPX Agrave T -37
+KPX Agrave Tcaron -37
+KPX Agrave Tcommaaccent -37
+KPX Agrave U -50
+KPX Agrave Uacute -50
+KPX Agrave Ucircumflex -50
+KPX Agrave Udieresis -50
+KPX Agrave Ugrave -50
+KPX Agrave Uhungarumlaut -50
+KPX Agrave Umacron -50
+KPX Agrave Uogonek -50
+KPX Agrave Uring -50
+KPX Agrave V -105
+KPX Agrave W -95
+KPX Agrave Y -55
+KPX Agrave Yacute -55
+KPX Agrave Ydieresis -55
+KPX Agrave quoteright -37
+KPX Agrave u -20
+KPX Agrave uacute -20
+KPX Agrave ucircumflex -20
+KPX Agrave udieresis -20
+KPX Agrave ugrave -20
+KPX Agrave uhungarumlaut -20
+KPX Agrave umacron -20
+KPX Agrave uogonek -20
+KPX Agrave uring -20
+KPX Agrave v -55
+KPX Agrave w -55
+KPX Agrave y -55
+KPX Agrave yacute -55
+KPX Agrave ydieresis -55
+KPX Amacron C -30
+KPX Amacron Cacute -30
+KPX Amacron Ccaron -30
+KPX Amacron Ccedilla -30
+KPX Amacron G -35
+KPX Amacron Gbreve -35
+KPX Amacron Gcommaaccent -35
+KPX Amacron O -40
+KPX Amacron Oacute -40
+KPX Amacron Ocircumflex -40
+KPX Amacron Odieresis -40
+KPX Amacron Ograve -40
+KPX Amacron Ohungarumlaut -40
+KPX Amacron Omacron -40
+KPX Amacron Oslash -40
+KPX Amacron Otilde -40
+KPX Amacron Q -40
+KPX Amacron T -37
+KPX Amacron Tcaron -37
+KPX Amacron Tcommaaccent -37
+KPX Amacron U -50
+KPX Amacron Uacute -50
+KPX Amacron Ucircumflex -50
+KPX Amacron Udieresis -50
+KPX Amacron Ugrave -50
+KPX Amacron Uhungarumlaut -50
+KPX Amacron Umacron -50
+KPX Amacron Uogonek -50
+KPX Amacron Uring -50
+KPX Amacron V -105
+KPX Amacron W -95
+KPX Amacron Y -55
+KPX Amacron Yacute -55
+KPX Amacron Ydieresis -55
+KPX Amacron quoteright -37
+KPX Amacron u -20
+KPX Amacron uacute -20
+KPX Amacron ucircumflex -20
+KPX Amacron udieresis -20
+KPX Amacron ugrave -20
+KPX Amacron uhungarumlaut -20
+KPX Amacron umacron -20
+KPX Amacron uogonek -20
+KPX Amacron uring -20
+KPX Amacron v -55
+KPX Amacron w -55
+KPX Amacron y -55
+KPX Amacron yacute -55
+KPX Amacron ydieresis -55
+KPX Aogonek C -30
+KPX Aogonek Cacute -30
+KPX Aogonek Ccaron -30
+KPX Aogonek Ccedilla -30
+KPX Aogonek G -35
+KPX Aogonek Gbreve -35
+KPX Aogonek Gcommaaccent -35
+KPX Aogonek O -40
+KPX Aogonek Oacute -40
+KPX Aogonek Ocircumflex -40
+KPX Aogonek Odieresis -40
+KPX Aogonek Ograve -40
+KPX Aogonek Ohungarumlaut -40
+KPX Aogonek Omacron -40
+KPX Aogonek Oslash -40
+KPX Aogonek Otilde -40
+KPX Aogonek Q -40
+KPX Aogonek T -37
+KPX Aogonek Tcaron -37
+KPX Aogonek Tcommaaccent -37
+KPX Aogonek U -50
+KPX Aogonek Uacute -50
+KPX Aogonek Ucircumflex -50
+KPX Aogonek Udieresis -50
+KPX Aogonek Ugrave -50
+KPX Aogonek Uhungarumlaut -50
+KPX Aogonek Umacron -50
+KPX Aogonek Uogonek -50
+KPX Aogonek Uring -50
+KPX Aogonek V -105
+KPX Aogonek W -95
+KPX Aogonek Y -55
+KPX Aogonek Yacute -55
+KPX Aogonek Ydieresis -55
+KPX Aogonek quoteright -37
+KPX Aogonek u -20
+KPX Aogonek uacute -20
+KPX Aogonek ucircumflex -20
+KPX Aogonek udieresis -20
+KPX Aogonek ugrave -20
+KPX Aogonek uhungarumlaut -20
+KPX Aogonek umacron -20
+KPX Aogonek uogonek -20
+KPX Aogonek uring -20
+KPX Aogonek v -55
+KPX Aogonek w -55
+KPX Aogonek y -55
+KPX Aogonek yacute -55
+KPX Aogonek ydieresis -55
+KPX Aring C -30
+KPX Aring Cacute -30
+KPX Aring Ccaron -30
+KPX Aring Ccedilla -30
+KPX Aring G -35
+KPX Aring Gbreve -35
+KPX Aring Gcommaaccent -35
+KPX Aring O -40
+KPX Aring Oacute -40
+KPX Aring Ocircumflex -40
+KPX Aring Odieresis -40
+KPX Aring Ograve -40
+KPX Aring Ohungarumlaut -40
+KPX Aring Omacron -40
+KPX Aring Oslash -40
+KPX Aring Otilde -40
+KPX Aring Q -40
+KPX Aring T -37
+KPX Aring Tcaron -37
+KPX Aring Tcommaaccent -37
+KPX Aring U -50
+KPX Aring Uacute -50
+KPX Aring Ucircumflex -50
+KPX Aring Udieresis -50
+KPX Aring Ugrave -50
+KPX Aring Uhungarumlaut -50
+KPX Aring Umacron -50
+KPX Aring Uogonek -50
+KPX Aring Uring -50
+KPX Aring V -105
+KPX Aring W -95
+KPX Aring Y -55
+KPX Aring Yacute -55
+KPX Aring Ydieresis -55
+KPX Aring quoteright -37
+KPX Aring u -20
+KPX Aring uacute -20
+KPX Aring ucircumflex -20
+KPX Aring udieresis -20
+KPX Aring ugrave -20
+KPX Aring uhungarumlaut -20
+KPX Aring umacron -20
+KPX Aring uogonek -20
+KPX Aring uring -20
+KPX Aring v -55
+KPX Aring w -55
+KPX Aring y -55
+KPX Aring yacute -55
+KPX Aring ydieresis -55
+KPX Atilde C -30
+KPX Atilde Cacute -30
+KPX Atilde Ccaron -30
+KPX Atilde Ccedilla -30
+KPX Atilde G -35
+KPX Atilde Gbreve -35
+KPX Atilde Gcommaaccent -35
+KPX Atilde O -40
+KPX Atilde Oacute -40
+KPX Atilde Ocircumflex -40
+KPX Atilde Odieresis -40
+KPX Atilde Ograve -40
+KPX Atilde Ohungarumlaut -40
+KPX Atilde Omacron -40
+KPX Atilde Oslash -40
+KPX Atilde Otilde -40
+KPX Atilde Q -40
+KPX Atilde T -37
+KPX Atilde Tcaron -37
+KPX Atilde Tcommaaccent -37
+KPX Atilde U -50
+KPX Atilde Uacute -50
+KPX Atilde Ucircumflex -50
+KPX Atilde Udieresis -50
+KPX Atilde Ugrave -50
+KPX Atilde Uhungarumlaut -50
+KPX Atilde Umacron -50
+KPX Atilde Uogonek -50
+KPX Atilde Uring -50
+KPX Atilde V -105
+KPX Atilde W -95
+KPX Atilde Y -55
+KPX Atilde Yacute -55
+KPX Atilde Ydieresis -55
+KPX Atilde quoteright -37
+KPX Atilde u -20
+KPX Atilde uacute -20
+KPX Atilde ucircumflex -20
+KPX Atilde udieresis -20
+KPX Atilde ugrave -20
+KPX Atilde uhungarumlaut -20
+KPX Atilde umacron -20
+KPX Atilde uogonek -20
+KPX Atilde uring -20
+KPX Atilde v -55
+KPX Atilde w -55
+KPX Atilde y -55
+KPX Atilde yacute -55
+KPX Atilde ydieresis -55
+KPX B A -25
+KPX B Aacute -25
+KPX B Abreve -25
+KPX B Acircumflex -25
+KPX B Adieresis -25
+KPX B Agrave -25
+KPX B Amacron -25
+KPX B Aogonek -25
+KPX B Aring -25
+KPX B Atilde -25
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -35
+KPX D Aacute -35
+KPX D Abreve -35
+KPX D Acircumflex -35
+KPX D Adieresis -35
+KPX D Agrave -35
+KPX D Amacron -35
+KPX D Aogonek -35
+KPX D Aring -35
+KPX D Atilde -35
+KPX D V -40
+KPX D W -40
+KPX D Y -40
+KPX D Yacute -40
+KPX D Ydieresis -40
+KPX Dcaron A -35
+KPX Dcaron Aacute -35
+KPX Dcaron Abreve -35
+KPX Dcaron Acircumflex -35
+KPX Dcaron Adieresis -35
+KPX Dcaron Agrave -35
+KPX Dcaron Amacron -35
+KPX Dcaron Aogonek -35
+KPX Dcaron Aring -35
+KPX Dcaron Atilde -35
+KPX Dcaron V -40
+KPX Dcaron W -40
+KPX Dcaron Y -40
+KPX Dcaron Yacute -40
+KPX Dcaron Ydieresis -40
+KPX Dcroat A -35
+KPX Dcroat Aacute -35
+KPX Dcroat Abreve -35
+KPX Dcroat Acircumflex -35
+KPX Dcroat Adieresis -35
+KPX Dcroat Agrave -35
+KPX Dcroat Amacron -35
+KPX Dcroat Aogonek -35
+KPX Dcroat Aring -35
+KPX Dcroat Atilde -35
+KPX Dcroat V -40
+KPX Dcroat W -40
+KPX Dcroat Y -40
+KPX Dcroat Yacute -40
+KPX Dcroat Ydieresis -40
+KPX F A -115
+KPX F Aacute -115
+KPX F Abreve -115
+KPX F Acircumflex -115
+KPX F Adieresis -115
+KPX F Agrave -115
+KPX F Amacron -115
+KPX F Aogonek -115
+KPX F Aring -115
+KPX F Atilde -115
+KPX F a -75
+KPX F aacute -75
+KPX F abreve -75
+KPX F acircumflex -75
+KPX F adieresis -75
+KPX F agrave -75
+KPX F amacron -75
+KPX F aogonek -75
+KPX F aring -75
+KPX F atilde -75
+KPX F comma -135
+KPX F e -75
+KPX F eacute -75
+KPX F ecaron -75
+KPX F ecircumflex -75
+KPX F edieresis -75
+KPX F edotaccent -75
+KPX F egrave -75
+KPX F emacron -75
+KPX F eogonek -75
+KPX F i -45
+KPX F iacute -45
+KPX F icircumflex -45
+KPX F idieresis -45
+KPX F igrave -45
+KPX F imacron -45
+KPX F iogonek -45
+KPX F o -105
+KPX F oacute -105
+KPX F ocircumflex -105
+KPX F odieresis -105
+KPX F ograve -105
+KPX F ohungarumlaut -105
+KPX F omacron -105
+KPX F oslash -105
+KPX F otilde -105
+KPX F period -135
+KPX F r -55
+KPX F racute -55
+KPX F rcaron -55
+KPX F rcommaaccent -55
+KPX J A -40
+KPX J Aacute -40
+KPX J Abreve -40
+KPX J Acircumflex -40
+KPX J Adieresis -40
+KPX J Agrave -40
+KPX J Amacron -40
+KPX J Aogonek -40
+KPX J Aring -40
+KPX J Atilde -40
+KPX J a -35
+KPX J aacute -35
+KPX J abreve -35
+KPX J acircumflex -35
+KPX J adieresis -35
+KPX J agrave -35
+KPX J amacron -35
+KPX J aogonek -35
+KPX J aring -35
+KPX J atilde -35
+KPX J comma -25
+KPX J e -25
+KPX J eacute -25
+KPX J ecaron -25
+KPX J ecircumflex -25
+KPX J edieresis -25
+KPX J edotaccent -25
+KPX J egrave -25
+KPX J emacron -25
+KPX J eogonek -25
+KPX J o -25
+KPX J oacute -25
+KPX J ocircumflex -25
+KPX J odieresis -25
+KPX J ograve -25
+KPX J ohungarumlaut -25
+KPX J omacron -25
+KPX J oslash -25
+KPX J otilde -25
+KPX J period -25
+KPX J u -35
+KPX J uacute -35
+KPX J ucircumflex -35
+KPX J udieresis -35
+KPX J ugrave -35
+KPX J uhungarumlaut -35
+KPX J umacron -35
+KPX J uogonek -35
+KPX J uring -35
+KPX K O -50
+KPX K Oacute -50
+KPX K Ocircumflex -50
+KPX K Odieresis -50
+KPX K Ograve -50
+KPX K Ohungarumlaut -50
+KPX K Omacron -50
+KPX K Oslash -50
+KPX K Otilde -50
+KPX K e -35
+KPX K eacute -35
+KPX K ecaron -35
+KPX K ecircumflex -35
+KPX K edieresis -35
+KPX K edotaccent -35
+KPX K egrave -35
+KPX K emacron -35
+KPX K eogonek -35
+KPX K o -40
+KPX K oacute -40
+KPX K ocircumflex -40
+KPX K odieresis -40
+KPX K ograve -40
+KPX K ohungarumlaut -40
+KPX K omacron -40
+KPX K oslash -40
+KPX K otilde -40
+KPX K u -40
+KPX K uacute -40
+KPX K ucircumflex -40
+KPX K udieresis -40
+KPX K ugrave -40
+KPX K uhungarumlaut -40
+KPX K umacron -40
+KPX K uogonek -40
+KPX K uring -40
+KPX K y -40
+KPX K yacute -40
+KPX K ydieresis -40
+KPX Kcommaaccent O -50
+KPX Kcommaaccent Oacute -50
+KPX Kcommaaccent Ocircumflex -50
+KPX Kcommaaccent Odieresis -50
+KPX Kcommaaccent Ograve -50
+KPX Kcommaaccent Ohungarumlaut -50
+KPX Kcommaaccent Omacron -50
+KPX Kcommaaccent Oslash -50
+KPX Kcommaaccent Otilde -50
+KPX Kcommaaccent e -35
+KPX Kcommaaccent eacute -35
+KPX Kcommaaccent ecaron -35
+KPX Kcommaaccent ecircumflex -35
+KPX Kcommaaccent edieresis -35
+KPX Kcommaaccent edotaccent -35
+KPX Kcommaaccent egrave -35
+KPX Kcommaaccent emacron -35
+KPX Kcommaaccent eogonek -35
+KPX Kcommaaccent o -40
+KPX Kcommaaccent oacute -40
+KPX Kcommaaccent ocircumflex -40
+KPX Kcommaaccent odieresis -40
+KPX Kcommaaccent ograve -40
+KPX Kcommaaccent ohungarumlaut -40
+KPX Kcommaaccent omacron -40
+KPX Kcommaaccent oslash -40
+KPX Kcommaaccent otilde -40
+KPX Kcommaaccent u -40
+KPX Kcommaaccent uacute -40
+KPX Kcommaaccent ucircumflex -40
+KPX Kcommaaccent udieresis -40
+KPX Kcommaaccent ugrave -40
+KPX Kcommaaccent uhungarumlaut -40
+KPX Kcommaaccent umacron -40
+KPX Kcommaaccent uogonek -40
+KPX Kcommaaccent uring -40
+KPX Kcommaaccent y -40
+KPX Kcommaaccent yacute -40
+KPX Kcommaaccent ydieresis -40
+KPX L T -20
+KPX L Tcaron -20
+KPX L Tcommaaccent -20
+KPX L V -55
+KPX L W -55
+KPX L Y -20
+KPX L Yacute -20
+KPX L Ydieresis -20
+KPX L quoteright -37
+KPX L y -30
+KPX L yacute -30
+KPX L ydieresis -30
+KPX Lacute T -20
+KPX Lacute Tcaron -20
+KPX Lacute Tcommaaccent -20
+KPX Lacute V -55
+KPX Lacute W -55
+KPX Lacute Y -20
+KPX Lacute Yacute -20
+KPX Lacute Ydieresis -20
+KPX Lacute quoteright -37
+KPX Lacute y -30
+KPX Lacute yacute -30
+KPX Lacute ydieresis -30
+KPX Lcommaaccent T -20
+KPX Lcommaaccent Tcaron -20
+KPX Lcommaaccent Tcommaaccent -20
+KPX Lcommaaccent V -55
+KPX Lcommaaccent W -55
+KPX Lcommaaccent Y -20
+KPX Lcommaaccent Yacute -20
+KPX Lcommaaccent Ydieresis -20
+KPX Lcommaaccent quoteright -37
+KPX Lcommaaccent y -30
+KPX Lcommaaccent yacute -30
+KPX Lcommaaccent ydieresis -30
+KPX Lslash T -20
+KPX Lslash Tcaron -20
+KPX Lslash Tcommaaccent -20
+KPX Lslash V -55
+KPX Lslash W -55
+KPX Lslash Y -20
+KPX Lslash Yacute -20
+KPX Lslash Ydieresis -20
+KPX Lslash quoteright -37
+KPX Lslash y -30
+KPX Lslash yacute -30
+KPX Lslash ydieresis -30
+KPX N A -27
+KPX N Aacute -27
+KPX N Abreve -27
+KPX N Acircumflex -27
+KPX N Adieresis -27
+KPX N Agrave -27
+KPX N Amacron -27
+KPX N Aogonek -27
+KPX N Aring -27
+KPX N Atilde -27
+KPX Nacute A -27
+KPX Nacute Aacute -27
+KPX Nacute Abreve -27
+KPX Nacute Acircumflex -27
+KPX Nacute Adieresis -27
+KPX Nacute Agrave -27
+KPX Nacute Amacron -27
+KPX Nacute Aogonek -27
+KPX Nacute Aring -27
+KPX Nacute Atilde -27
+KPX Ncaron A -27
+KPX Ncaron Aacute -27
+KPX Ncaron Abreve -27
+KPX Ncaron Acircumflex -27
+KPX Ncaron Adieresis -27
+KPX Ncaron Agrave -27
+KPX Ncaron Amacron -27
+KPX Ncaron Aogonek -27
+KPX Ncaron Aring -27
+KPX Ncaron Atilde -27
+KPX Ncommaaccent A -27
+KPX Ncommaaccent Aacute -27
+KPX Ncommaaccent Abreve -27
+KPX Ncommaaccent Acircumflex -27
+KPX Ncommaaccent Adieresis -27
+KPX Ncommaaccent Agrave -27
+KPX Ncommaaccent Amacron -27
+KPX Ncommaaccent Aogonek -27
+KPX Ncommaaccent Aring -27
+KPX Ncommaaccent Atilde -27
+KPX Ntilde A -27
+KPX Ntilde Aacute -27
+KPX Ntilde Abreve -27
+KPX Ntilde Acircumflex -27
+KPX Ntilde Adieresis -27
+KPX Ntilde Agrave -27
+KPX Ntilde Amacron -27
+KPX Ntilde Aogonek -27
+KPX Ntilde Aring -27
+KPX Ntilde Atilde -27
+KPX O A -55
+KPX O Aacute -55
+KPX O Abreve -55
+KPX O Acircumflex -55
+KPX O Adieresis -55
+KPX O Agrave -55
+KPX O Amacron -55
+KPX O Aogonek -55
+KPX O Aring -55
+KPX O Atilde -55
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -50
+KPX O X -40
+KPX O Y -50
+KPX O Yacute -50
+KPX O Ydieresis -50
+KPX Oacute A -55
+KPX Oacute Aacute -55
+KPX Oacute Abreve -55
+KPX Oacute Acircumflex -55
+KPX Oacute Adieresis -55
+KPX Oacute Agrave -55
+KPX Oacute Amacron -55
+KPX Oacute Aogonek -55
+KPX Oacute Aring -55
+KPX Oacute Atilde -55
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -50
+KPX Oacute X -40
+KPX Oacute Y -50
+KPX Oacute Yacute -50
+KPX Oacute Ydieresis -50
+KPX Ocircumflex A -55
+KPX Ocircumflex Aacute -55
+KPX Ocircumflex Abreve -55
+KPX Ocircumflex Acircumflex -55
+KPX Ocircumflex Adieresis -55
+KPX Ocircumflex Agrave -55
+KPX Ocircumflex Amacron -55
+KPX Ocircumflex Aogonek -55
+KPX Ocircumflex Aring -55
+KPX Ocircumflex Atilde -55
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -50
+KPX Ocircumflex X -40
+KPX Ocircumflex Y -50
+KPX Ocircumflex Yacute -50
+KPX Ocircumflex Ydieresis -50
+KPX Odieresis A -55
+KPX Odieresis Aacute -55
+KPX Odieresis Abreve -55
+KPX Odieresis Acircumflex -55
+KPX Odieresis Adieresis -55
+KPX Odieresis Agrave -55
+KPX Odieresis Amacron -55
+KPX Odieresis Aogonek -55
+KPX Odieresis Aring -55
+KPX Odieresis Atilde -55
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -50
+KPX Odieresis X -40
+KPX Odieresis Y -50
+KPX Odieresis Yacute -50
+KPX Odieresis Ydieresis -50
+KPX Ograve A -55
+KPX Ograve Aacute -55
+KPX Ograve Abreve -55
+KPX Ograve Acircumflex -55
+KPX Ograve Adieresis -55
+KPX Ograve Agrave -55
+KPX Ograve Amacron -55
+KPX Ograve Aogonek -55
+KPX Ograve Aring -55
+KPX Ograve Atilde -55
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -50
+KPX Ograve X -40
+KPX Ograve Y -50
+KPX Ograve Yacute -50
+KPX Ograve Ydieresis -50
+KPX Ohungarumlaut A -55
+KPX Ohungarumlaut Aacute -55
+KPX Ohungarumlaut Abreve -55
+KPX Ohungarumlaut Acircumflex -55
+KPX Ohungarumlaut Adieresis -55
+KPX Ohungarumlaut Agrave -55
+KPX Ohungarumlaut Amacron -55
+KPX Ohungarumlaut Aogonek -55
+KPX Ohungarumlaut Aring -55
+KPX Ohungarumlaut Atilde -55
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -50
+KPX Ohungarumlaut X -40
+KPX Ohungarumlaut Y -50
+KPX Ohungarumlaut Yacute -50
+KPX Ohungarumlaut Ydieresis -50
+KPX Omacron A -55
+KPX Omacron Aacute -55
+KPX Omacron Abreve -55
+KPX Omacron Acircumflex -55
+KPX Omacron Adieresis -55
+KPX Omacron Agrave -55
+KPX Omacron Amacron -55
+KPX Omacron Aogonek -55
+KPX Omacron Aring -55
+KPX Omacron Atilde -55
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -50
+KPX Omacron X -40
+KPX Omacron Y -50
+KPX Omacron Yacute -50
+KPX Omacron Ydieresis -50
+KPX Oslash A -55
+KPX Oslash Aacute -55
+KPX Oslash Abreve -55
+KPX Oslash Acircumflex -55
+KPX Oslash Adieresis -55
+KPX Oslash Agrave -55
+KPX Oslash Amacron -55
+KPX Oslash Aogonek -55
+KPX Oslash Aring -55
+KPX Oslash Atilde -55
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -50
+KPX Oslash X -40
+KPX Oslash Y -50
+KPX Oslash Yacute -50
+KPX Oslash Ydieresis -50
+KPX Otilde A -55
+KPX Otilde Aacute -55
+KPX Otilde Abreve -55
+KPX Otilde Acircumflex -55
+KPX Otilde Adieresis -55
+KPX Otilde Agrave -55
+KPX Otilde Amacron -55
+KPX Otilde Aogonek -55
+KPX Otilde Aring -55
+KPX Otilde Atilde -55
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -50
+KPX Otilde X -40
+KPX Otilde Y -50
+KPX Otilde Yacute -50
+KPX Otilde Ydieresis -50
+KPX P A -90
+KPX P Aacute -90
+KPX P Abreve -90
+KPX P Acircumflex -90
+KPX P Adieresis -90
+KPX P Agrave -90
+KPX P Amacron -90
+KPX P Aogonek -90
+KPX P Aring -90
+KPX P Atilde -90
+KPX P a -80
+KPX P aacute -80
+KPX P abreve -80
+KPX P acircumflex -80
+KPX P adieresis -80
+KPX P agrave -80
+KPX P amacron -80
+KPX P aogonek -80
+KPX P aring -80
+KPX P atilde -80
+KPX P comma -135
+KPX P e -80
+KPX P eacute -80
+KPX P ecaron -80
+KPX P ecircumflex -80
+KPX P edieresis -80
+KPX P edotaccent -80
+KPX P egrave -80
+KPX P emacron -80
+KPX P eogonek -80
+KPX P o -80
+KPX P oacute -80
+KPX P ocircumflex -80
+KPX P odieresis -80
+KPX P ograve -80
+KPX P ohungarumlaut -80
+KPX P omacron -80
+KPX P oslash -80
+KPX P otilde -80
+KPX P period -135
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R O -40
+KPX R Oacute -40
+KPX R Ocircumflex -40
+KPX R Odieresis -40
+KPX R Ograve -40
+KPX R Ohungarumlaut -40
+KPX R Omacron -40
+KPX R Oslash -40
+KPX R Otilde -40
+KPX R U -40
+KPX R Uacute -40
+KPX R Ucircumflex -40
+KPX R Udieresis -40
+KPX R Ugrave -40
+KPX R Uhungarumlaut -40
+KPX R Umacron -40
+KPX R Uogonek -40
+KPX R Uring -40
+KPX R V -18
+KPX R W -18
+KPX R Y -18
+KPX R Yacute -18
+KPX R Ydieresis -18
+KPX Racute O -40
+KPX Racute Oacute -40
+KPX Racute Ocircumflex -40
+KPX Racute Odieresis -40
+KPX Racute Ograve -40
+KPX Racute Ohungarumlaut -40
+KPX Racute Omacron -40
+KPX Racute Oslash -40
+KPX Racute Otilde -40
+KPX Racute U -40
+KPX Racute Uacute -40
+KPX Racute Ucircumflex -40
+KPX Racute Udieresis -40
+KPX Racute Ugrave -40
+KPX Racute Uhungarumlaut -40
+KPX Racute Umacron -40
+KPX Racute Uogonek -40
+KPX Racute Uring -40
+KPX Racute V -18
+KPX Racute W -18
+KPX Racute Y -18
+KPX Racute Yacute -18
+KPX Racute Ydieresis -18
+KPX Rcaron O -40
+KPX Rcaron Oacute -40
+KPX Rcaron Ocircumflex -40
+KPX Rcaron Odieresis -40
+KPX Rcaron Ograve -40
+KPX Rcaron Ohungarumlaut -40
+KPX Rcaron Omacron -40
+KPX Rcaron Oslash -40
+KPX Rcaron Otilde -40
+KPX Rcaron U -40
+KPX Rcaron Uacute -40
+KPX Rcaron Ucircumflex -40
+KPX Rcaron Udieresis -40
+KPX Rcaron Ugrave -40
+KPX Rcaron Uhungarumlaut -40
+KPX Rcaron Umacron -40
+KPX Rcaron Uogonek -40
+KPX Rcaron Uring -40
+KPX Rcaron V -18
+KPX Rcaron W -18
+KPX Rcaron Y -18
+KPX Rcaron Yacute -18
+KPX Rcaron Ydieresis -18
+KPX Rcommaaccent O -40
+KPX Rcommaaccent Oacute -40
+KPX Rcommaaccent Ocircumflex -40
+KPX Rcommaaccent Odieresis -40
+KPX Rcommaaccent Ograve -40
+KPX Rcommaaccent Ohungarumlaut -40
+KPX Rcommaaccent Omacron -40
+KPX Rcommaaccent Oslash -40
+KPX Rcommaaccent Otilde -40
+KPX Rcommaaccent U -40
+KPX Rcommaaccent Uacute -40
+KPX Rcommaaccent Ucircumflex -40
+KPX Rcommaaccent Udieresis -40
+KPX Rcommaaccent Ugrave -40
+KPX Rcommaaccent Uhungarumlaut -40
+KPX Rcommaaccent Umacron -40
+KPX Rcommaaccent Uogonek -40
+KPX Rcommaaccent Uring -40
+KPX Rcommaaccent V -18
+KPX Rcommaaccent W -18
+KPX Rcommaaccent Y -18
+KPX Rcommaaccent Yacute -18
+KPX Rcommaaccent Ydieresis -18
+KPX T A -50
+KPX T Aacute -50
+KPX T Abreve -50
+KPX T Acircumflex -50
+KPX T Adieresis -50
+KPX T Agrave -50
+KPX T Amacron -50
+KPX T Aogonek -50
+KPX T Aring -50
+KPX T Atilde -50
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -92
+KPX T aacute -92
+KPX T abreve -92
+KPX T acircumflex -92
+KPX T adieresis -92
+KPX T agrave -92
+KPX T amacron -92
+KPX T aogonek -92
+KPX T aring -92
+KPX T atilde -92
+KPX T colon -55
+KPX T comma -74
+KPX T e -92
+KPX T eacute -92
+KPX T ecaron -92
+KPX T ecircumflex -52
+KPX T edieresis -52
+KPX T edotaccent -92
+KPX T egrave -52
+KPX T emacron -52
+KPX T eogonek -92
+KPX T hyphen -74
+KPX T i -55
+KPX T iacute -55
+KPX T iogonek -55
+KPX T o -92
+KPX T oacute -92
+KPX T ocircumflex -92
+KPX T odieresis -92
+KPX T ograve -92
+KPX T ohungarumlaut -92
+KPX T omacron -92
+KPX T oslash -92
+KPX T otilde -92
+KPX T period -74
+KPX T r -55
+KPX T racute -55
+KPX T rcaron -55
+KPX T rcommaaccent -55
+KPX T semicolon -65
+KPX T u -55
+KPX T uacute -55
+KPX T ucircumflex -55
+KPX T udieresis -55
+KPX T ugrave -55
+KPX T uhungarumlaut -55
+KPX T umacron -55
+KPX T uogonek -55
+KPX T uring -55
+KPX T w -74
+KPX T y -74
+KPX T yacute -74
+KPX T ydieresis -34
+KPX Tcaron A -50
+KPX Tcaron Aacute -50
+KPX Tcaron Abreve -50
+KPX Tcaron Acircumflex -50
+KPX Tcaron Adieresis -50
+KPX Tcaron Agrave -50
+KPX Tcaron Amacron -50
+KPX Tcaron Aogonek -50
+KPX Tcaron Aring -50
+KPX Tcaron Atilde -50
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -92
+KPX Tcaron aacute -92
+KPX Tcaron abreve -92
+KPX Tcaron acircumflex -92
+KPX Tcaron adieresis -92
+KPX Tcaron agrave -92
+KPX Tcaron amacron -92
+KPX Tcaron aogonek -92
+KPX Tcaron aring -92
+KPX Tcaron atilde -92
+KPX Tcaron colon -55
+KPX Tcaron comma -74
+KPX Tcaron e -92
+KPX Tcaron eacute -92
+KPX Tcaron ecaron -92
+KPX Tcaron ecircumflex -52
+KPX Tcaron edieresis -52
+KPX Tcaron edotaccent -92
+KPX Tcaron egrave -52
+KPX Tcaron emacron -52
+KPX Tcaron eogonek -92
+KPX Tcaron hyphen -74
+KPX Tcaron i -55
+KPX Tcaron iacute -55
+KPX Tcaron iogonek -55
+KPX Tcaron o -92
+KPX Tcaron oacute -92
+KPX Tcaron ocircumflex -92
+KPX Tcaron odieresis -92
+KPX Tcaron ograve -92
+KPX Tcaron ohungarumlaut -92
+KPX Tcaron omacron -92
+KPX Tcaron oslash -92
+KPX Tcaron otilde -92
+KPX Tcaron period -74
+KPX Tcaron r -55
+KPX Tcaron racute -55
+KPX Tcaron rcaron -55
+KPX Tcaron rcommaaccent -55
+KPX Tcaron semicolon -65
+KPX Tcaron u -55
+KPX Tcaron uacute -55
+KPX Tcaron ucircumflex -55
+KPX Tcaron udieresis -55
+KPX Tcaron ugrave -55
+KPX Tcaron uhungarumlaut -55
+KPX Tcaron umacron -55
+KPX Tcaron uogonek -55
+KPX Tcaron uring -55
+KPX Tcaron w -74
+KPX Tcaron y -74
+KPX Tcaron yacute -74
+KPX Tcaron ydieresis -34
+KPX Tcommaaccent A -50
+KPX Tcommaaccent Aacute -50
+KPX Tcommaaccent Abreve -50
+KPX Tcommaaccent Acircumflex -50
+KPX Tcommaaccent Adieresis -50
+KPX Tcommaaccent Agrave -50
+KPX Tcommaaccent Amacron -50
+KPX Tcommaaccent Aogonek -50
+KPX Tcommaaccent Aring -50
+KPX Tcommaaccent Atilde -50
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -92
+KPX Tcommaaccent aacute -92
+KPX Tcommaaccent abreve -92
+KPX Tcommaaccent acircumflex -92
+KPX Tcommaaccent adieresis -92
+KPX Tcommaaccent agrave -92
+KPX Tcommaaccent amacron -92
+KPX Tcommaaccent aogonek -92
+KPX Tcommaaccent aring -92
+KPX Tcommaaccent atilde -92
+KPX Tcommaaccent colon -55
+KPX Tcommaaccent comma -74
+KPX Tcommaaccent e -92
+KPX Tcommaaccent eacute -92
+KPX Tcommaaccent ecaron -92
+KPX Tcommaaccent ecircumflex -52
+KPX Tcommaaccent edieresis -52
+KPX Tcommaaccent edotaccent -92
+KPX Tcommaaccent egrave -52
+KPX Tcommaaccent emacron -52
+KPX Tcommaaccent eogonek -92
+KPX Tcommaaccent hyphen -74
+KPX Tcommaaccent i -55
+KPX Tcommaaccent iacute -55
+KPX Tcommaaccent iogonek -55
+KPX Tcommaaccent o -92
+KPX Tcommaaccent oacute -92
+KPX Tcommaaccent ocircumflex -92
+KPX Tcommaaccent odieresis -92
+KPX Tcommaaccent ograve -92
+KPX Tcommaaccent ohungarumlaut -92
+KPX Tcommaaccent omacron -92
+KPX Tcommaaccent oslash -92
+KPX Tcommaaccent otilde -92
+KPX Tcommaaccent period -74
+KPX Tcommaaccent r -55
+KPX Tcommaaccent racute -55
+KPX Tcommaaccent rcaron -55
+KPX Tcommaaccent rcommaaccent -55
+KPX Tcommaaccent semicolon -65
+KPX Tcommaaccent u -55
+KPX Tcommaaccent uacute -55
+KPX Tcommaaccent ucircumflex -55
+KPX Tcommaaccent udieresis -55
+KPX Tcommaaccent ugrave -55
+KPX Tcommaaccent uhungarumlaut -55
+KPX Tcommaaccent umacron -55
+KPX Tcommaaccent uogonek -55
+KPX Tcommaaccent uring -55
+KPX Tcommaaccent w -74
+KPX Tcommaaccent y -74
+KPX Tcommaaccent yacute -74
+KPX Tcommaaccent ydieresis -34
+KPX U A -40
+KPX U Aacute -40
+KPX U Abreve -40
+KPX U Acircumflex -40
+KPX U Adieresis -40
+KPX U Agrave -40
+KPX U Amacron -40
+KPX U Aogonek -40
+KPX U Aring -40
+KPX U Atilde -40
+KPX U comma -25
+KPX U period -25
+KPX Uacute A -40
+KPX Uacute Aacute -40
+KPX Uacute Abreve -40
+KPX Uacute Acircumflex -40
+KPX Uacute Adieresis -40
+KPX Uacute Agrave -40
+KPX Uacute Amacron -40
+KPX Uacute Aogonek -40
+KPX Uacute Aring -40
+KPX Uacute Atilde -40
+KPX Uacute comma -25
+KPX Uacute period -25
+KPX Ucircumflex A -40
+KPX Ucircumflex Aacute -40
+KPX Ucircumflex Abreve -40
+KPX Ucircumflex Acircumflex -40
+KPX Ucircumflex Adieresis -40
+KPX Ucircumflex Agrave -40
+KPX Ucircumflex Amacron -40
+KPX Ucircumflex Aogonek -40
+KPX Ucircumflex Aring -40
+KPX Ucircumflex Atilde -40
+KPX Ucircumflex comma -25
+KPX Ucircumflex period -25
+KPX Udieresis A -40
+KPX Udieresis Aacute -40
+KPX Udieresis Abreve -40
+KPX Udieresis Acircumflex -40
+KPX Udieresis Adieresis -40
+KPX Udieresis Agrave -40
+KPX Udieresis Amacron -40
+KPX Udieresis Aogonek -40
+KPX Udieresis Aring -40
+KPX Udieresis Atilde -40
+KPX Udieresis comma -25
+KPX Udieresis period -25
+KPX Ugrave A -40
+KPX Ugrave Aacute -40
+KPX Ugrave Abreve -40
+KPX Ugrave Acircumflex -40
+KPX Ugrave Adieresis -40
+KPX Ugrave Agrave -40
+KPX Ugrave Amacron -40
+KPX Ugrave Aogonek -40
+KPX Ugrave Aring -40
+KPX Ugrave Atilde -40
+KPX Ugrave comma -25
+KPX Ugrave period -25
+KPX Uhungarumlaut A -40
+KPX Uhungarumlaut Aacute -40
+KPX Uhungarumlaut Abreve -40
+KPX Uhungarumlaut Acircumflex -40
+KPX Uhungarumlaut Adieresis -40
+KPX Uhungarumlaut Agrave -40
+KPX Uhungarumlaut Amacron -40
+KPX Uhungarumlaut Aogonek -40
+KPX Uhungarumlaut Aring -40
+KPX Uhungarumlaut Atilde -40
+KPX Uhungarumlaut comma -25
+KPX Uhungarumlaut period -25
+KPX Umacron A -40
+KPX Umacron Aacute -40
+KPX Umacron Abreve -40
+KPX Umacron Acircumflex -40
+KPX Umacron Adieresis -40
+KPX Umacron Agrave -40
+KPX Umacron Amacron -40
+KPX Umacron Aogonek -40
+KPX Umacron Aring -40
+KPX Umacron Atilde -40
+KPX Umacron comma -25
+KPX Umacron period -25
+KPX Uogonek A -40
+KPX Uogonek Aacute -40
+KPX Uogonek Abreve -40
+KPX Uogonek Acircumflex -40
+KPX Uogonek Adieresis -40
+KPX Uogonek Agrave -40
+KPX Uogonek Amacron -40
+KPX Uogonek Aogonek -40
+KPX Uogonek Aring -40
+KPX Uogonek Atilde -40
+KPX Uogonek comma -25
+KPX Uogonek period -25
+KPX Uring A -40
+KPX Uring Aacute -40
+KPX Uring Abreve -40
+KPX Uring Acircumflex -40
+KPX Uring Adieresis -40
+KPX Uring Agrave -40
+KPX Uring Amacron -40
+KPX Uring Aogonek -40
+KPX Uring Aring -40
+KPX Uring Atilde -40
+KPX Uring comma -25
+KPX Uring period -25
+KPX V A -60
+KPX V Aacute -60
+KPX V Abreve -60
+KPX V Acircumflex -60
+KPX V Adieresis -60
+KPX V Agrave -60
+KPX V Amacron -60
+KPX V Aogonek -60
+KPX V Aring -60
+KPX V Atilde -60
+KPX V O -30
+KPX V Oacute -30
+KPX V Ocircumflex -30
+KPX V Odieresis -30
+KPX V Ograve -30
+KPX V Ohungarumlaut -30
+KPX V Omacron -30
+KPX V Oslash -30
+KPX V Otilde -30
+KPX V a -111
+KPX V aacute -111
+KPX V abreve -111
+KPX V acircumflex -111
+KPX V adieresis -111
+KPX V agrave -111
+KPX V amacron -111
+KPX V aogonek -111
+KPX V aring -111
+KPX V atilde -111
+KPX V colon -65
+KPX V comma -129
+KPX V e -111
+KPX V eacute -111
+KPX V ecaron -111
+KPX V ecircumflex -111
+KPX V edieresis -71
+KPX V edotaccent -111
+KPX V egrave -71
+KPX V emacron -71
+KPX V eogonek -111
+KPX V hyphen -55
+KPX V i -74
+KPX V iacute -74
+KPX V icircumflex -34
+KPX V idieresis -34
+KPX V igrave -34
+KPX V imacron -34
+KPX V iogonek -74
+KPX V o -111
+KPX V oacute -111
+KPX V ocircumflex -111
+KPX V odieresis -111
+KPX V ograve -111
+KPX V ohungarumlaut -111
+KPX V omacron -111
+KPX V oslash -111
+KPX V otilde -111
+KPX V period -129
+KPX V semicolon -74
+KPX V u -74
+KPX V uacute -74
+KPX V ucircumflex -74
+KPX V udieresis -74
+KPX V ugrave -74
+KPX V uhungarumlaut -74
+KPX V umacron -74
+KPX V uogonek -74
+KPX V uring -74
+KPX W A -60
+KPX W Aacute -60
+KPX W Abreve -60
+KPX W Acircumflex -60
+KPX W Adieresis -60
+KPX W Agrave -60
+KPX W Amacron -60
+KPX W Aogonek -60
+KPX W Aring -60
+KPX W Atilde -60
+KPX W O -25
+KPX W Oacute -25
+KPX W Ocircumflex -25
+KPX W Odieresis -25
+KPX W Ograve -25
+KPX W Ohungarumlaut -25
+KPX W Omacron -25
+KPX W Oslash -25
+KPX W Otilde -25
+KPX W a -92
+KPX W aacute -92
+KPX W abreve -92
+KPX W acircumflex -92
+KPX W adieresis -92
+KPX W agrave -92
+KPX W amacron -92
+KPX W aogonek -92
+KPX W aring -92
+KPX W atilde -92
+KPX W colon -65
+KPX W comma -92
+KPX W e -92
+KPX W eacute -92
+KPX W ecaron -92
+KPX W ecircumflex -92
+KPX W edieresis -52
+KPX W edotaccent -92
+KPX W egrave -52
+KPX W emacron -52
+KPX W eogonek -92
+KPX W hyphen -37
+KPX W i -55
+KPX W iacute -55
+KPX W iogonek -55
+KPX W o -92
+KPX W oacute -92
+KPX W ocircumflex -92
+KPX W odieresis -92
+KPX W ograve -92
+KPX W ohungarumlaut -92
+KPX W omacron -92
+KPX W oslash -92
+KPX W otilde -92
+KPX W period -92
+KPX W semicolon -65
+KPX W u -55
+KPX W uacute -55
+KPX W ucircumflex -55
+KPX W udieresis -55
+KPX W ugrave -55
+KPX W uhungarumlaut -55
+KPX W umacron -55
+KPX W uogonek -55
+KPX W uring -55
+KPX W y -70
+KPX W yacute -70
+KPX W ydieresis -70
+KPX Y A -50
+KPX Y Aacute -50
+KPX Y Abreve -50
+KPX Y Acircumflex -50
+KPX Y Adieresis -50
+KPX Y Agrave -50
+KPX Y Amacron -50
+KPX Y Aogonek -50
+KPX Y Aring -50
+KPX Y Atilde -50
+KPX Y O -15
+KPX Y Oacute -15
+KPX Y Ocircumflex -15
+KPX Y Odieresis -15
+KPX Y Ograve -15
+KPX Y Ohungarumlaut -15
+KPX Y Omacron -15
+KPX Y Oslash -15
+KPX Y Otilde -15
+KPX Y a -92
+KPX Y aacute -92
+KPX Y abreve -92
+KPX Y acircumflex -92
+KPX Y adieresis -92
+KPX Y agrave -92
+KPX Y amacron -92
+KPX Y aogonek -92
+KPX Y aring -92
+KPX Y atilde -92
+KPX Y colon -65
+KPX Y comma -92
+KPX Y e -92
+KPX Y eacute -92
+KPX Y ecaron -92
+KPX Y ecircumflex -92
+KPX Y edieresis -52
+KPX Y edotaccent -92
+KPX Y egrave -52
+KPX Y emacron -52
+KPX Y eogonek -92
+KPX Y hyphen -74
+KPX Y i -74
+KPX Y iacute -74
+KPX Y icircumflex -34
+KPX Y idieresis -34
+KPX Y igrave -34
+KPX Y imacron -34
+KPX Y iogonek -74
+KPX Y o -92
+KPX Y oacute -92
+KPX Y ocircumflex -92
+KPX Y odieresis -92
+KPX Y ograve -92
+KPX Y ohungarumlaut -92
+KPX Y omacron -92
+KPX Y oslash -92
+KPX Y otilde -92
+KPX Y period -92
+KPX Y semicolon -65
+KPX Y u -92
+KPX Y uacute -92
+KPX Y ucircumflex -92
+KPX Y udieresis -92
+KPX Y ugrave -92
+KPX Y uhungarumlaut -92
+KPX Y umacron -92
+KPX Y uogonek -92
+KPX Y uring -92
+KPX Yacute A -50
+KPX Yacute Aacute -50
+KPX Yacute Abreve -50
+KPX Yacute Acircumflex -50
+KPX Yacute Adieresis -50
+KPX Yacute Agrave -50
+KPX Yacute Amacron -50
+KPX Yacute Aogonek -50
+KPX Yacute Aring -50
+KPX Yacute Atilde -50
+KPX Yacute O -15
+KPX Yacute Oacute -15
+KPX Yacute Ocircumflex -15
+KPX Yacute Odieresis -15
+KPX Yacute Ograve -15
+KPX Yacute Ohungarumlaut -15
+KPX Yacute Omacron -15
+KPX Yacute Oslash -15
+KPX Yacute Otilde -15
+KPX Yacute a -92
+KPX Yacute aacute -92
+KPX Yacute abreve -92
+KPX Yacute acircumflex -92
+KPX Yacute adieresis -92
+KPX Yacute agrave -92
+KPX Yacute amacron -92
+KPX Yacute aogonek -92
+KPX Yacute aring -92
+KPX Yacute atilde -92
+KPX Yacute colon -65
+KPX Yacute comma -92
+KPX Yacute e -92
+KPX Yacute eacute -92
+KPX Yacute ecaron -92
+KPX Yacute ecircumflex -92
+KPX Yacute edieresis -52
+KPX Yacute edotaccent -92
+KPX Yacute egrave -52
+KPX Yacute emacron -52
+KPX Yacute eogonek -92
+KPX Yacute hyphen -74
+KPX Yacute i -74
+KPX Yacute iacute -74
+KPX Yacute icircumflex -34
+KPX Yacute idieresis -34
+KPX Yacute igrave -34
+KPX Yacute imacron -34
+KPX Yacute iogonek -74
+KPX Yacute o -92
+KPX Yacute oacute -92
+KPX Yacute ocircumflex -92
+KPX Yacute odieresis -92
+KPX Yacute ograve -92
+KPX Yacute ohungarumlaut -92
+KPX Yacute omacron -92
+KPX Yacute oslash -92
+KPX Yacute otilde -92
+KPX Yacute period -92
+KPX Yacute semicolon -65
+KPX Yacute u -92
+KPX Yacute uacute -92
+KPX Yacute ucircumflex -92
+KPX Yacute udieresis -92
+KPX Yacute ugrave -92
+KPX Yacute uhungarumlaut -92
+KPX Yacute umacron -92
+KPX Yacute uogonek -92
+KPX Yacute uring -92
+KPX Ydieresis A -50
+KPX Ydieresis Aacute -50
+KPX Ydieresis Abreve -50
+KPX Ydieresis Acircumflex -50
+KPX Ydieresis Adieresis -50
+KPX Ydieresis Agrave -50
+KPX Ydieresis Amacron -50
+KPX Ydieresis Aogonek -50
+KPX Ydieresis Aring -50
+KPX Ydieresis Atilde -50
+KPX Ydieresis O -15
+KPX Ydieresis Oacute -15
+KPX Ydieresis Ocircumflex -15
+KPX Ydieresis Odieresis -15
+KPX Ydieresis Ograve -15
+KPX Ydieresis Ohungarumlaut -15
+KPX Ydieresis Omacron -15
+KPX Ydieresis Oslash -15
+KPX Ydieresis Otilde -15
+KPX Ydieresis a -92
+KPX Ydieresis aacute -92
+KPX Ydieresis abreve -92
+KPX Ydieresis acircumflex -92
+KPX Ydieresis adieresis -92
+KPX Ydieresis agrave -92
+KPX Ydieresis amacron -92
+KPX Ydieresis aogonek -92
+KPX Ydieresis aring -92
+KPX Ydieresis atilde -92
+KPX Ydieresis colon -65
+KPX Ydieresis comma -92
+KPX Ydieresis e -92
+KPX Ydieresis eacute -92
+KPX Ydieresis ecaron -92
+KPX Ydieresis ecircumflex -92
+KPX Ydieresis edieresis -52
+KPX Ydieresis edotaccent -92
+KPX Ydieresis egrave -52
+KPX Ydieresis emacron -52
+KPX Ydieresis eogonek -92
+KPX Ydieresis hyphen -74
+KPX Ydieresis i -74
+KPX Ydieresis iacute -74
+KPX Ydieresis icircumflex -34
+KPX Ydieresis idieresis -34
+KPX Ydieresis igrave -34
+KPX Ydieresis imacron -34
+KPX Ydieresis iogonek -74
+KPX Ydieresis o -92
+KPX Ydieresis oacute -92
+KPX Ydieresis ocircumflex -92
+KPX Ydieresis odieresis -92
+KPX Ydieresis ograve -92
+KPX Ydieresis ohungarumlaut -92
+KPX Ydieresis omacron -92
+KPX Ydieresis oslash -92
+KPX Ydieresis otilde -92
+KPX Ydieresis period -92
+KPX Ydieresis semicolon -65
+KPX Ydieresis u -92
+KPX Ydieresis uacute -92
+KPX Ydieresis ucircumflex -92
+KPX Ydieresis udieresis -92
+KPX Ydieresis ugrave -92
+KPX Ydieresis uhungarumlaut -92
+KPX Ydieresis umacron -92
+KPX Ydieresis uogonek -92
+KPX Ydieresis uring -92
+KPX a g -10
+KPX a gbreve -10
+KPX a gcommaaccent -10
+KPX aacute g -10
+KPX aacute gbreve -10
+KPX aacute gcommaaccent -10
+KPX abreve g -10
+KPX abreve gbreve -10
+KPX abreve gcommaaccent -10
+KPX acircumflex g -10
+KPX acircumflex gbreve -10
+KPX acircumflex gcommaaccent -10
+KPX adieresis g -10
+KPX adieresis gbreve -10
+KPX adieresis gcommaaccent -10
+KPX agrave g -10
+KPX agrave gbreve -10
+KPX agrave gcommaaccent -10
+KPX amacron g -10
+KPX amacron gbreve -10
+KPX amacron gcommaaccent -10
+KPX aogonek g -10
+KPX aogonek gbreve -10
+KPX aogonek gcommaaccent -10
+KPX aring g -10
+KPX aring gbreve -10
+KPX aring gcommaaccent -10
+KPX atilde g -10
+KPX atilde gbreve -10
+KPX atilde gcommaaccent -10
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX c h -15
+KPX c k -20
+KPX c kcommaaccent -20
+KPX cacute h -15
+KPX cacute k -20
+KPX cacute kcommaaccent -20
+KPX ccaron h -15
+KPX ccaron k -20
+KPX ccaron kcommaaccent -20
+KPX ccedilla h -15
+KPX ccedilla k -20
+KPX ccedilla kcommaaccent -20
+KPX comma quotedblright -140
+KPX comma quoteright -140
+KPX e comma -10
+KPX e g -40
+KPX e gbreve -40
+KPX e gcommaaccent -40
+KPX e period -15
+KPX e v -15
+KPX e w -15
+KPX e x -20
+KPX e y -30
+KPX e yacute -30
+KPX e ydieresis -30
+KPX eacute comma -10
+KPX eacute g -40
+KPX eacute gbreve -40
+KPX eacute gcommaaccent -40
+KPX eacute period -15
+KPX eacute v -15
+KPX eacute w -15
+KPX eacute x -20
+KPX eacute y -30
+KPX eacute yacute -30
+KPX eacute ydieresis -30
+KPX ecaron comma -10
+KPX ecaron g -40
+KPX ecaron gbreve -40
+KPX ecaron gcommaaccent -40
+KPX ecaron period -15
+KPX ecaron v -15
+KPX ecaron w -15
+KPX ecaron x -20
+KPX ecaron y -30
+KPX ecaron yacute -30
+KPX ecaron ydieresis -30
+KPX ecircumflex comma -10
+KPX ecircumflex g -40
+KPX ecircumflex gbreve -40
+KPX ecircumflex gcommaaccent -40
+KPX ecircumflex period -15
+KPX ecircumflex v -15
+KPX ecircumflex w -15
+KPX ecircumflex x -20
+KPX ecircumflex y -30
+KPX ecircumflex yacute -30
+KPX ecircumflex ydieresis -30
+KPX edieresis comma -10
+KPX edieresis g -40
+KPX edieresis gbreve -40
+KPX edieresis gcommaaccent -40
+KPX edieresis period -15
+KPX edieresis v -15
+KPX edieresis w -15
+KPX edieresis x -20
+KPX edieresis y -30
+KPX edieresis yacute -30
+KPX edieresis ydieresis -30
+KPX edotaccent comma -10
+KPX edotaccent g -40
+KPX edotaccent gbreve -40
+KPX edotaccent gcommaaccent -40
+KPX edotaccent period -15
+KPX edotaccent v -15
+KPX edotaccent w -15
+KPX edotaccent x -20
+KPX edotaccent y -30
+KPX edotaccent yacute -30
+KPX edotaccent ydieresis -30
+KPX egrave comma -10
+KPX egrave g -40
+KPX egrave gbreve -40
+KPX egrave gcommaaccent -40
+KPX egrave period -15
+KPX egrave v -15
+KPX egrave w -15
+KPX egrave x -20
+KPX egrave y -30
+KPX egrave yacute -30
+KPX egrave ydieresis -30
+KPX emacron comma -10
+KPX emacron g -40
+KPX emacron gbreve -40
+KPX emacron gcommaaccent -40
+KPX emacron period -15
+KPX emacron v -15
+KPX emacron w -15
+KPX emacron x -20
+KPX emacron y -30
+KPX emacron yacute -30
+KPX emacron ydieresis -30
+KPX eogonek comma -10
+KPX eogonek g -40
+KPX eogonek gbreve -40
+KPX eogonek gcommaaccent -40
+KPX eogonek period -15
+KPX eogonek v -15
+KPX eogonek w -15
+KPX eogonek x -20
+KPX eogonek y -30
+KPX eogonek yacute -30
+KPX eogonek ydieresis -30
+KPX f comma -10
+KPX f dotlessi -60
+KPX f f -18
+KPX f i -20
+KPX f iogonek -20
+KPX f period -15
+KPX f quoteright 92
+KPX g comma -10
+KPX g e -10
+KPX g eacute -10
+KPX g ecaron -10
+KPX g ecircumflex -10
+KPX g edieresis -10
+KPX g edotaccent -10
+KPX g egrave -10
+KPX g emacron -10
+KPX g eogonek -10
+KPX g g -10
+KPX g gbreve -10
+KPX g gcommaaccent -10
+KPX g period -15
+KPX gbreve comma -10
+KPX gbreve e -10
+KPX gbreve eacute -10
+KPX gbreve ecaron -10
+KPX gbreve ecircumflex -10
+KPX gbreve edieresis -10
+KPX gbreve edotaccent -10
+KPX gbreve egrave -10
+KPX gbreve emacron -10
+KPX gbreve eogonek -10
+KPX gbreve g -10
+KPX gbreve gbreve -10
+KPX gbreve gcommaaccent -10
+KPX gbreve period -15
+KPX gcommaaccent comma -10
+KPX gcommaaccent e -10
+KPX gcommaaccent eacute -10
+KPX gcommaaccent ecaron -10
+KPX gcommaaccent ecircumflex -10
+KPX gcommaaccent edieresis -10
+KPX gcommaaccent edotaccent -10
+KPX gcommaaccent egrave -10
+KPX gcommaaccent emacron -10
+KPX gcommaaccent eogonek -10
+KPX gcommaaccent g -10
+KPX gcommaaccent gbreve -10
+KPX gcommaaccent gcommaaccent -10
+KPX gcommaaccent period -15
+KPX k e -10
+KPX k eacute -10
+KPX k ecaron -10
+KPX k ecircumflex -10
+KPX k edieresis -10
+KPX k edotaccent -10
+KPX k egrave -10
+KPX k emacron -10
+KPX k eogonek -10
+KPX k o -10
+KPX k oacute -10
+KPX k ocircumflex -10
+KPX k odieresis -10
+KPX k ograve -10
+KPX k ohungarumlaut -10
+KPX k omacron -10
+KPX k oslash -10
+KPX k otilde -10
+KPX k y -10
+KPX k yacute -10
+KPX k ydieresis -10
+KPX kcommaaccent e -10
+KPX kcommaaccent eacute -10
+KPX kcommaaccent ecaron -10
+KPX kcommaaccent ecircumflex -10
+KPX kcommaaccent edieresis -10
+KPX kcommaaccent edotaccent -10
+KPX kcommaaccent egrave -10
+KPX kcommaaccent emacron -10
+KPX kcommaaccent eogonek -10
+KPX kcommaaccent o -10
+KPX kcommaaccent oacute -10
+KPX kcommaaccent ocircumflex -10
+KPX kcommaaccent odieresis -10
+KPX kcommaaccent ograve -10
+KPX kcommaaccent ohungarumlaut -10
+KPX kcommaaccent omacron -10
+KPX kcommaaccent oslash -10
+KPX kcommaaccent otilde -10
+KPX kcommaaccent y -10
+KPX kcommaaccent yacute -10
+KPX kcommaaccent ydieresis -10
+KPX n v -40
+KPX nacute v -40
+KPX ncaron v -40
+KPX ncommaaccent v -40
+KPX ntilde v -40
+KPX o g -10
+KPX o gbreve -10
+KPX o gcommaaccent -10
+KPX o v -10
+KPX oacute g -10
+KPX oacute gbreve -10
+KPX oacute gcommaaccent -10
+KPX oacute v -10
+KPX ocircumflex g -10
+KPX ocircumflex gbreve -10
+KPX ocircumflex gcommaaccent -10
+KPX ocircumflex v -10
+KPX odieresis g -10
+KPX odieresis gbreve -10
+KPX odieresis gcommaaccent -10
+KPX odieresis v -10
+KPX ograve g -10
+KPX ograve gbreve -10
+KPX ograve gcommaaccent -10
+KPX ograve v -10
+KPX ohungarumlaut g -10
+KPX ohungarumlaut gbreve -10
+KPX ohungarumlaut gcommaaccent -10
+KPX ohungarumlaut v -10
+KPX omacron g -10
+KPX omacron gbreve -10
+KPX omacron gcommaaccent -10
+KPX omacron v -10
+KPX oslash g -10
+KPX oslash gbreve -10
+KPX oslash gcommaaccent -10
+KPX oslash v -10
+KPX otilde g -10
+KPX otilde gbreve -10
+KPX otilde gcommaaccent -10
+KPX otilde v -10
+KPX period quotedblright -140
+KPX period quoteright -140
+KPX quoteleft quoteleft -111
+KPX quoteright d -25
+KPX quoteright dcroat -25
+KPX quoteright quoteright -111
+KPX quoteright r -25
+KPX quoteright racute -25
+KPX quoteright rcaron -25
+KPX quoteright rcommaaccent -25
+KPX quoteright s -40
+KPX quoteright sacute -40
+KPX quoteright scaron -40
+KPX quoteright scedilla -40
+KPX quoteright scommaaccent -40
+KPX quoteright space -111
+KPX quoteright t -30
+KPX quoteright tcommaaccent -30
+KPX quoteright v -10
+KPX r a -15
+KPX r aacute -15
+KPX r abreve -15
+KPX r acircumflex -15
+KPX r adieresis -15
+KPX r agrave -15
+KPX r amacron -15
+KPX r aogonek -15
+KPX r aring -15
+KPX r atilde -15
+KPX r c -37
+KPX r cacute -37
+KPX r ccaron -37
+KPX r ccedilla -37
+KPX r comma -111
+KPX r d -37
+KPX r dcroat -37
+KPX r e -37
+KPX r eacute -37
+KPX r ecaron -37
+KPX r ecircumflex -37
+KPX r edieresis -37
+KPX r edotaccent -37
+KPX r egrave -37
+KPX r emacron -37
+KPX r eogonek -37
+KPX r g -37
+KPX r gbreve -37
+KPX r gcommaaccent -37
+KPX r hyphen -20
+KPX r o -45
+KPX r oacute -45
+KPX r ocircumflex -45
+KPX r odieresis -45
+KPX r ograve -45
+KPX r ohungarumlaut -45
+KPX r omacron -45
+KPX r oslash -45
+KPX r otilde -45
+KPX r period -111
+KPX r q -37
+KPX r s -10
+KPX r sacute -10
+KPX r scaron -10
+KPX r scedilla -10
+KPX r scommaaccent -10
+KPX racute a -15
+KPX racute aacute -15
+KPX racute abreve -15
+KPX racute acircumflex -15
+KPX racute adieresis -15
+KPX racute agrave -15
+KPX racute amacron -15
+KPX racute aogonek -15
+KPX racute aring -15
+KPX racute atilde -15
+KPX racute c -37
+KPX racute cacute -37
+KPX racute ccaron -37
+KPX racute ccedilla -37
+KPX racute comma -111
+KPX racute d -37
+KPX racute dcroat -37
+KPX racute e -37
+KPX racute eacute -37
+KPX racute ecaron -37
+KPX racute ecircumflex -37
+KPX racute edieresis -37
+KPX racute edotaccent -37
+KPX racute egrave -37
+KPX racute emacron -37
+KPX racute eogonek -37
+KPX racute g -37
+KPX racute gbreve -37
+KPX racute gcommaaccent -37
+KPX racute hyphen -20
+KPX racute o -45
+KPX racute oacute -45
+KPX racute ocircumflex -45
+KPX racute odieresis -45
+KPX racute ograve -45
+KPX racute ohungarumlaut -45
+KPX racute omacron -45
+KPX racute oslash -45
+KPX racute otilde -45
+KPX racute period -111
+KPX racute q -37
+KPX racute s -10
+KPX racute sacute -10
+KPX racute scaron -10
+KPX racute scedilla -10
+KPX racute scommaaccent -10
+KPX rcaron a -15
+KPX rcaron aacute -15
+KPX rcaron abreve -15
+KPX rcaron acircumflex -15
+KPX rcaron adieresis -15
+KPX rcaron agrave -15
+KPX rcaron amacron -15
+KPX rcaron aogonek -15
+KPX rcaron aring -15
+KPX rcaron atilde -15
+KPX rcaron c -37
+KPX rcaron cacute -37
+KPX rcaron ccaron -37
+KPX rcaron ccedilla -37
+KPX rcaron comma -111
+KPX rcaron d -37
+KPX rcaron dcroat -37
+KPX rcaron e -37
+KPX rcaron eacute -37
+KPX rcaron ecaron -37
+KPX rcaron ecircumflex -37
+KPX rcaron edieresis -37
+KPX rcaron edotaccent -37
+KPX rcaron egrave -37
+KPX rcaron emacron -37
+KPX rcaron eogonek -37
+KPX rcaron g -37
+KPX rcaron gbreve -37
+KPX rcaron gcommaaccent -37
+KPX rcaron hyphen -20
+KPX rcaron o -45
+KPX rcaron oacute -45
+KPX rcaron ocircumflex -45
+KPX rcaron odieresis -45
+KPX rcaron ograve -45
+KPX rcaron ohungarumlaut -45
+KPX rcaron omacron -45
+KPX rcaron oslash -45
+KPX rcaron otilde -45
+KPX rcaron period -111
+KPX rcaron q -37
+KPX rcaron s -10
+KPX rcaron sacute -10
+KPX rcaron scaron -10
+KPX rcaron scedilla -10
+KPX rcaron scommaaccent -10
+KPX rcommaaccent a -15
+KPX rcommaaccent aacute -15
+KPX rcommaaccent abreve -15
+KPX rcommaaccent acircumflex -15
+KPX rcommaaccent adieresis -15
+KPX rcommaaccent agrave -15
+KPX rcommaaccent amacron -15
+KPX rcommaaccent aogonek -15
+KPX rcommaaccent aring -15
+KPX rcommaaccent atilde -15
+KPX rcommaaccent c -37
+KPX rcommaaccent cacute -37
+KPX rcommaaccent ccaron -37
+KPX rcommaaccent ccedilla -37
+KPX rcommaaccent comma -111
+KPX rcommaaccent d -37
+KPX rcommaaccent dcroat -37
+KPX rcommaaccent e -37
+KPX rcommaaccent eacute -37
+KPX rcommaaccent ecaron -37
+KPX rcommaaccent ecircumflex -37
+KPX rcommaaccent edieresis -37
+KPX rcommaaccent edotaccent -37
+KPX rcommaaccent egrave -37
+KPX rcommaaccent emacron -37
+KPX rcommaaccent eogonek -37
+KPX rcommaaccent g -37
+KPX rcommaaccent gbreve -37
+KPX rcommaaccent gcommaaccent -37
+KPX rcommaaccent hyphen -20
+KPX rcommaaccent o -45
+KPX rcommaaccent oacute -45
+KPX rcommaaccent ocircumflex -45
+KPX rcommaaccent odieresis -45
+KPX rcommaaccent ograve -45
+KPX rcommaaccent ohungarumlaut -45
+KPX rcommaaccent omacron -45
+KPX rcommaaccent oslash -45
+KPX rcommaaccent otilde -45
+KPX rcommaaccent period -111
+KPX rcommaaccent q -37
+KPX rcommaaccent s -10
+KPX rcommaaccent sacute -10
+KPX rcommaaccent scaron -10
+KPX rcommaaccent scedilla -10
+KPX rcommaaccent scommaaccent -10
+KPX space A -18
+KPX space Aacute -18
+KPX space Abreve -18
+KPX space Acircumflex -18
+KPX space Adieresis -18
+KPX space Agrave -18
+KPX space Amacron -18
+KPX space Aogonek -18
+KPX space Aring -18
+KPX space Atilde -18
+KPX space T -18
+KPX space Tcaron -18
+KPX space Tcommaaccent -18
+KPX space V -35
+KPX space W -40
+KPX space Y -75
+KPX space Yacute -75
+KPX space Ydieresis -75
+KPX v comma -74
+KPX v period -74
+KPX w comma -74
+KPX w period -74
+KPX y comma -55
+KPX y period -55
+KPX yacute comma -55
+KPX yacute period -55
+KPX ydieresis comma -55
+KPX ydieresis period -55
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/Times-Roman.afm b/test/user-template/user/psprint/fontmetric/Times-Roman.afm
new file mode 100644
index 000000000000..2ad7f7d4ed16
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/Times-Roman.afm
@@ -0,0 +1,2417 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 12:49:17 1997
+Comment UniqueID 43068
+Comment VMusage 43909 54934
+FontName Times-Roman
+FullName Times Roman
+FamilyName Times
+Weight Roman
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -168 -218 1000 898
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries.
+EncodingScheme AdobeStandardEncoding
+CapHeight 662
+XHeight 450
+Ascender 683
+Descender -217
+StdHW 28
+StdVW 84
+StartCharMetrics 314
+C 32 ; WX 250 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 333 ; N exclam ; B 130 -9 238 676 ;
+C 34 ; WX 408 ; N quotedbl ; B 77 431 331 676 ;
+C 35 ; WX 500 ; N numbersign ; B 5 0 496 662 ;
+C 36 ; WX 500 ; N dollar ; B 44 -87 457 727 ;
+C 37 ; WX 833 ; N percent ; B 61 -13 772 676 ;
+C 38 ; WX 778 ; N ampersand ; B 42 -13 750 676 ;
+C 39 ; WX 333 ; N quoteright ; B 79 433 218 676 ;
+C 40 ; WX 333 ; N parenleft ; B 48 -177 304 676 ;
+C 41 ; WX 333 ; N parenright ; B 29 -177 285 676 ;
+C 42 ; WX 500 ; N asterisk ; B 69 265 432 676 ;
+C 43 ; WX 564 ; N plus ; B 30 0 534 506 ;
+C 44 ; WX 250 ; N comma ; B 56 -141 195 102 ;
+C 45 ; WX 333 ; N hyphen ; B 39 194 285 257 ;
+C 46 ; WX 250 ; N period ; B 70 -11 181 100 ;
+C 47 ; WX 278 ; N slash ; B -9 -14 287 676 ;
+C 48 ; WX 500 ; N zero ; B 24 -14 476 676 ;
+C 49 ; WX 500 ; N one ; B 111 0 394 676 ;
+C 50 ; WX 500 ; N two ; B 30 0 475 676 ;
+C 51 ; WX 500 ; N three ; B 43 -14 431 676 ;
+C 52 ; WX 500 ; N four ; B 12 0 472 676 ;
+C 53 ; WX 500 ; N five ; B 32 -14 438 688 ;
+C 54 ; WX 500 ; N six ; B 34 -14 468 684 ;
+C 55 ; WX 500 ; N seven ; B 20 -8 449 662 ;
+C 56 ; WX 500 ; N eight ; B 56 -14 445 676 ;
+C 57 ; WX 500 ; N nine ; B 30 -22 459 676 ;
+C 58 ; WX 278 ; N colon ; B 81 -11 192 459 ;
+C 59 ; WX 278 ; N semicolon ; B 80 -141 219 459 ;
+C 60 ; WX 564 ; N less ; B 28 -8 536 514 ;
+C 61 ; WX 564 ; N equal ; B 30 120 534 386 ;
+C 62 ; WX 564 ; N greater ; B 28 -8 536 514 ;
+C 63 ; WX 444 ; N question ; B 68 -8 414 676 ;
+C 64 ; WX 921 ; N at ; B 116 -14 809 676 ;
+C 65 ; WX 722 ; N A ; B 15 0 706 674 ;
+C 66 ; WX 667 ; N B ; B 17 0 593 662 ;
+C 67 ; WX 667 ; N C ; B 28 -14 633 676 ;
+C 68 ; WX 722 ; N D ; B 16 0 685 662 ;
+C 69 ; WX 611 ; N E ; B 12 0 597 662 ;
+C 70 ; WX 556 ; N F ; B 12 0 546 662 ;
+C 71 ; WX 722 ; N G ; B 32 -14 709 676 ;
+C 72 ; WX 722 ; N H ; B 19 0 702 662 ;
+C 73 ; WX 333 ; N I ; B 18 0 315 662 ;
+C 74 ; WX 389 ; N J ; B 10 -14 370 662 ;
+C 75 ; WX 722 ; N K ; B 34 0 723 662 ;
+C 76 ; WX 611 ; N L ; B 12 0 598 662 ;
+C 77 ; WX 889 ; N M ; B 12 0 863 662 ;
+C 78 ; WX 722 ; N N ; B 12 -11 707 662 ;
+C 79 ; WX 722 ; N O ; B 34 -14 688 676 ;
+C 80 ; WX 556 ; N P ; B 16 0 542 662 ;
+C 81 ; WX 722 ; N Q ; B 34 -178 701 676 ;
+C 82 ; WX 667 ; N R ; B 17 0 659 662 ;
+C 83 ; WX 556 ; N S ; B 42 -14 491 676 ;
+C 84 ; WX 611 ; N T ; B 17 0 593 662 ;
+C 85 ; WX 722 ; N U ; B 14 -14 705 662 ;
+C 86 ; WX 722 ; N V ; B 16 -11 697 662 ;
+C 87 ; WX 944 ; N W ; B 5 -11 932 662 ;
+C 88 ; WX 722 ; N X ; B 10 0 704 662 ;
+C 89 ; WX 722 ; N Y ; B 22 0 703 662 ;
+C 90 ; WX 611 ; N Z ; B 9 0 597 662 ;
+C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ;
+C 92 ; WX 278 ; N backslash ; B -9 -14 287 676 ;
+C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ;
+C 94 ; WX 469 ; N asciicircum ; B 24 297 446 662 ;
+C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ;
+C 96 ; WX 333 ; N quoteleft ; B 115 433 254 676 ;
+C 97 ; WX 444 ; N a ; B 37 -10 442 460 ;
+C 98 ; WX 500 ; N b ; B 3 -10 468 683 ;
+C 99 ; WX 444 ; N c ; B 25 -10 412 460 ;
+C 100 ; WX 500 ; N d ; B 27 -10 491 683 ;
+C 101 ; WX 444 ; N e ; B 25 -10 424 460 ;
+C 102 ; WX 333 ; N f ; B 20 0 383 683 ; L i fi ; L l fl ;
+C 103 ; WX 500 ; N g ; B 28 -218 470 460 ;
+C 104 ; WX 500 ; N h ; B 9 0 487 683 ;
+C 105 ; WX 278 ; N i ; B 16 0 253 683 ;
+C 106 ; WX 278 ; N j ; B -70 -218 194 683 ;
+C 107 ; WX 500 ; N k ; B 7 0 505 683 ;
+C 108 ; WX 278 ; N l ; B 19 0 257 683 ;
+C 109 ; WX 778 ; N m ; B 16 0 775 460 ;
+C 110 ; WX 500 ; N n ; B 16 0 485 460 ;
+C 111 ; WX 500 ; N o ; B 29 -10 470 460 ;
+C 112 ; WX 500 ; N p ; B 5 -217 470 460 ;
+C 113 ; WX 500 ; N q ; B 24 -217 488 460 ;
+C 114 ; WX 333 ; N r ; B 5 0 335 460 ;
+C 115 ; WX 389 ; N s ; B 51 -10 348 460 ;
+C 116 ; WX 278 ; N t ; B 13 -10 279 579 ;
+C 117 ; WX 500 ; N u ; B 9 -10 479 450 ;
+C 118 ; WX 500 ; N v ; B 19 -14 477 450 ;
+C 119 ; WX 722 ; N w ; B 21 -14 694 450 ;
+C 120 ; WX 500 ; N x ; B 17 0 479 450 ;
+C 121 ; WX 500 ; N y ; B 14 -218 475 450 ;
+C 122 ; WX 444 ; N z ; B 27 0 418 450 ;
+C 123 ; WX 480 ; N braceleft ; B 100 -181 350 680 ;
+C 124 ; WX 200 ; N bar ; B 67 -218 133 782 ;
+C 125 ; WX 480 ; N braceright ; B 130 -181 380 680 ;
+C 126 ; WX 541 ; N asciitilde ; B 40 183 502 323 ;
+C 161 ; WX 333 ; N exclamdown ; B 97 -218 205 467 ;
+C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ;
+C 163 ; WX 500 ; N sterling ; B 12 -8 490 676 ;
+C 164 ; WX 167 ; N fraction ; B -168 -14 331 676 ;
+C 165 ; WX 500 ; N yen ; B -53 0 512 662 ;
+C 166 ; WX 500 ; N florin ; B 7 -189 490 676 ;
+C 167 ; WX 500 ; N section ; B 70 -148 426 676 ;
+C 168 ; WX 500 ; N currency ; B -22 58 522 602 ;
+C 169 ; WX 180 ; N quotesingle ; B 48 431 133 676 ;
+C 170 ; WX 444 ; N quotedblleft ; B 43 433 414 676 ;
+C 171 ; WX 500 ; N guillemotleft ; B 42 33 456 416 ;
+C 172 ; WX 333 ; N guilsinglleft ; B 63 33 285 416 ;
+C 173 ; WX 333 ; N guilsinglright ; B 48 33 270 416 ;
+C 174 ; WX 556 ; N fi ; B 31 0 521 683 ;
+C 175 ; WX 556 ; N fl ; B 32 0 521 683 ;
+C 177 ; WX 500 ; N endash ; B 0 201 500 250 ;
+C 178 ; WX 500 ; N dagger ; B 59 -149 442 676 ;
+C 179 ; WX 500 ; N daggerdbl ; B 58 -153 442 676 ;
+C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ;
+C 182 ; WX 453 ; N paragraph ; B -22 -154 450 662 ;
+C 183 ; WX 350 ; N bullet ; B 40 196 310 466 ;
+C 184 ; WX 333 ; N quotesinglbase ; B 79 -141 218 102 ;
+C 185 ; WX 444 ; N quotedblbase ; B 45 -141 416 102 ;
+C 186 ; WX 444 ; N quotedblright ; B 30 433 401 676 ;
+C 187 ; WX 500 ; N guillemotright ; B 44 33 458 416 ;
+C 188 ; WX 1000 ; N ellipsis ; B 111 -11 888 100 ;
+C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 706 ;
+C 191 ; WX 444 ; N questiondown ; B 30 -218 376 466 ;
+C 193 ; WX 333 ; N grave ; B 19 507 242 678 ;
+C 194 ; WX 333 ; N acute ; B 93 507 317 678 ;
+C 195 ; WX 333 ; N circumflex ; B 11 507 322 674 ;
+C 196 ; WX 333 ; N tilde ; B 1 532 331 638 ;
+C 197 ; WX 333 ; N macron ; B 11 547 322 601 ;
+C 198 ; WX 333 ; N breve ; B 26 507 307 664 ;
+C 199 ; WX 333 ; N dotaccent ; B 118 581 216 681 ;
+C 200 ; WX 333 ; N dieresis ; B 18 581 315 681 ;
+C 202 ; WX 333 ; N ring ; B 67 512 266 711 ;
+C 203 ; WX 333 ; N cedilla ; B 52 -215 261 0 ;
+C 205 ; WX 333 ; N hungarumlaut ; B -3 507 377 678 ;
+C 206 ; WX 333 ; N ogonek ; B 62 -165 243 0 ;
+C 207 ; WX 333 ; N caron ; B 11 507 322 674 ;
+C 208 ; WX 1000 ; N emdash ; B 0 201 1000 250 ;
+C 225 ; WX 889 ; N AE ; B 0 0 863 662 ;
+C 227 ; WX 276 ; N ordfeminine ; B 4 394 270 676 ;
+C 232 ; WX 611 ; N Lslash ; B 12 0 598 662 ;
+C 233 ; WX 722 ; N Oslash ; B 34 -80 688 734 ;
+C 234 ; WX 889 ; N OE ; B 30 -6 885 668 ;
+C 235 ; WX 310 ; N ordmasculine ; B 6 394 304 676 ;
+C 241 ; WX 667 ; N ae ; B 38 -10 632 460 ;
+C 245 ; WX 278 ; N dotlessi ; B 16 0 253 460 ;
+C 248 ; WX 278 ; N lslash ; B 19 0 259 683 ;
+C 249 ; WX 500 ; N oslash ; B 29 -112 470 551 ;
+C 250 ; WX 722 ; N oe ; B 30 -10 690 460 ;
+C 251 ; WX 500 ; N germandbls ; B 12 -9 468 683 ;
+C -1 ; WX 333 ; N Idieresis ; B 18 0 315 835 ;
+C -1 ; WX 444 ; N eacute ; B 25 -10 424 678 ;
+C -1 ; WX 444 ; N abreve ; B 37 -10 442 664 ;
+C -1 ; WX 500 ; N uhungarumlaut ; B 9 -10 501 678 ;
+C -1 ; WX 444 ; N ecaron ; B 25 -10 424 674 ;
+C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 835 ;
+C -1 ; WX 564 ; N divide ; B 30 -10 534 516 ;
+C -1 ; WX 722 ; N Yacute ; B 22 0 703 890 ;
+C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ;
+C -1 ; WX 444 ; N aacute ; B 37 -10 442 678 ;
+C -1 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ;
+C -1 ; WX 500 ; N yacute ; B 14 -218 475 678 ;
+C -1 ; WX 389 ; N scommaaccent ; B 51 -218 348 460 ;
+C -1 ; WX 444 ; N ecircumflex ; B 25 -10 424 674 ;
+C -1 ; WX 722 ; N Uring ; B 14 -14 705 898 ;
+C -1 ; WX 722 ; N Udieresis ; B 14 -14 705 835 ;
+C -1 ; WX 444 ; N aogonek ; B 37 -165 469 460 ;
+C -1 ; WX 722 ; N Uacute ; B 14 -14 705 890 ;
+C -1 ; WX 500 ; N uogonek ; B 9 -155 487 450 ;
+C -1 ; WX 611 ; N Edieresis ; B 12 0 597 835 ;
+C -1 ; WX 722 ; N Dcroat ; B 16 0 685 662 ;
+C -1 ; WX 250 ; N commaaccent ; B 59 -218 184 -50 ;
+C -1 ; WX 760 ; N copyright ; B 38 -14 722 676 ;
+C -1 ; WX 611 ; N Emacron ; B 12 0 597 813 ;
+C -1 ; WX 444 ; N ccaron ; B 25 -10 412 674 ;
+C -1 ; WX 444 ; N aring ; B 37 -10 442 711 ;
+C -1 ; WX 722 ; N Ncommaaccent ; B 12 -198 707 662 ;
+C -1 ; WX 278 ; N lacute ; B 19 0 290 890 ;
+C -1 ; WX 444 ; N agrave ; B 37 -10 442 678 ;
+C -1 ; WX 611 ; N Tcommaaccent ; B 17 -218 593 662 ;
+C -1 ; WX 667 ; N Cacute ; B 28 -14 633 890 ;
+C -1 ; WX 444 ; N atilde ; B 37 -10 442 638 ;
+C -1 ; WX 611 ; N Edotaccent ; B 12 0 597 835 ;
+C -1 ; WX 389 ; N scaron ; B 39 -10 350 674 ;
+C -1 ; WX 389 ; N scedilla ; B 51 -215 348 460 ;
+C -1 ; WX 278 ; N iacute ; B 16 0 290 678 ;
+C -1 ; WX 471 ; N lozenge ; B 13 0 459 724 ;
+C -1 ; WX 667 ; N Rcaron ; B 17 0 659 886 ;
+C -1 ; WX 722 ; N Gcommaaccent ; B 32 -218 709 676 ;
+C -1 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ;
+C -1 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ;
+C -1 ; WX 722 ; N Amacron ; B 15 0 706 813 ;
+C -1 ; WX 333 ; N rcaron ; B 5 0 335 674 ;
+C -1 ; WX 444 ; N ccedilla ; B 25 -215 412 460 ;
+C -1 ; WX 611 ; N Zdotaccent ; B 9 0 597 835 ;
+C -1 ; WX 556 ; N Thorn ; B 16 0 542 662 ;
+C -1 ; WX 722 ; N Omacron ; B 34 -14 688 813 ;
+C -1 ; WX 667 ; N Racute ; B 17 0 659 890 ;
+C -1 ; WX 556 ; N Sacute ; B 42 -14 491 890 ;
+C -1 ; WX 588 ; N dcaron ; B 27 -10 589 695 ;
+C -1 ; WX 722 ; N Umacron ; B 14 -14 705 813 ;
+C -1 ; WX 500 ; N uring ; B 9 -10 479 711 ;
+C -1 ; WX 300 ; N threesuperior ; B 15 262 291 676 ;
+C -1 ; WX 722 ; N Ograve ; B 34 -14 688 890 ;
+C -1 ; WX 722 ; N Agrave ; B 15 0 706 890 ;
+C -1 ; WX 722 ; N Abreve ; B 15 0 706 876 ;
+C -1 ; WX 564 ; N multiply ; B 38 8 527 497 ;
+C -1 ; WX 500 ; N uacute ; B 9 -10 479 678 ;
+C -1 ; WX 611 ; N Tcaron ; B 17 0 593 886 ;
+C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ;
+C -1 ; WX 500 ; N ydieresis ; B 14 -218 475 623 ;
+C -1 ; WX 722 ; N Nacute ; B 12 -11 707 890 ;
+C -1 ; WX 278 ; N icircumflex ; B -16 0 295 674 ;
+C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ;
+C -1 ; WX 444 ; N adieresis ; B 37 -10 442 623 ;
+C -1 ; WX 444 ; N edieresis ; B 25 -10 424 623 ;
+C -1 ; WX 444 ; N cacute ; B 25 -10 413 678 ;
+C -1 ; WX 500 ; N nacute ; B 16 0 485 678 ;
+C -1 ; WX 500 ; N umacron ; B 9 -10 479 601 ;
+C -1 ; WX 722 ; N Ncaron ; B 12 -11 707 886 ;
+C -1 ; WX 333 ; N Iacute ; B 18 0 317 890 ;
+C -1 ; WX 564 ; N plusminus ; B 30 0 534 506 ;
+C -1 ; WX 200 ; N brokenbar ; B 67 -143 133 707 ;
+C -1 ; WX 760 ; N registered ; B 38 -14 722 676 ;
+C -1 ; WX 722 ; N Gbreve ; B 32 -14 709 876 ;
+C -1 ; WX 333 ; N Idotaccent ; B 18 0 315 835 ;
+C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ;
+C -1 ; WX 611 ; N Egrave ; B 12 0 597 890 ;
+C -1 ; WX 333 ; N racute ; B 5 0 335 678 ;
+C -1 ; WX 500 ; N omacron ; B 29 -10 470 601 ;
+C -1 ; WX 611 ; N Zacute ; B 9 0 597 890 ;
+C -1 ; WX 611 ; N Zcaron ; B 9 0 597 886 ;
+C -1 ; WX 549 ; N greaterequal ; B 26 0 523 666 ;
+C -1 ; WX 722 ; N Eth ; B 16 0 685 662 ;
+C -1 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ;
+C -1 ; WX 278 ; N lcommaaccent ; B 19 -218 257 683 ;
+C -1 ; WX 326 ; N tcaron ; B 13 -10 318 722 ;
+C -1 ; WX 444 ; N eogonek ; B 25 -165 424 460 ;
+C -1 ; WX 722 ; N Uogonek ; B 14 -165 705 662 ;
+C -1 ; WX 722 ; N Aacute ; B 15 0 706 890 ;
+C -1 ; WX 722 ; N Adieresis ; B 15 0 706 835 ;
+C -1 ; WX 444 ; N egrave ; B 25 -10 424 678 ;
+C -1 ; WX 444 ; N zacute ; B 27 0 418 678 ;
+C -1 ; WX 278 ; N iogonek ; B 16 -165 265 683 ;
+C -1 ; WX 722 ; N Oacute ; B 34 -14 688 890 ;
+C -1 ; WX 500 ; N oacute ; B 29 -10 470 678 ;
+C -1 ; WX 444 ; N amacron ; B 37 -10 442 601 ;
+C -1 ; WX 389 ; N sacute ; B 51 -10 348 678 ;
+C -1 ; WX 278 ; N idieresis ; B -9 0 288 623 ;
+C -1 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ;
+C -1 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ;
+C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ;
+C -1 ; WX 500 ; N thorn ; B 5 -217 470 683 ;
+C -1 ; WX 300 ; N twosuperior ; B 1 270 296 676 ;
+C -1 ; WX 722 ; N Odieresis ; B 34 -14 688 835 ;
+C -1 ; WX 500 ; N mu ; B 36 -218 512 450 ;
+C -1 ; WX 278 ; N igrave ; B -8 0 253 678 ;
+C -1 ; WX 500 ; N ohungarumlaut ; B 29 -10 491 678 ;
+C -1 ; WX 611 ; N Eogonek ; B 12 -165 597 662 ;
+C -1 ; WX 500 ; N dcroat ; B 27 -10 500 683 ;
+C -1 ; WX 750 ; N threequarters ; B 15 -14 718 676 ;
+C -1 ; WX 556 ; N Scedilla ; B 42 -215 491 676 ;
+C -1 ; WX 344 ; N lcaron ; B 19 0 347 695 ;
+C -1 ; WX 722 ; N Kcommaaccent ; B 34 -198 723 662 ;
+C -1 ; WX 611 ; N Lacute ; B 12 0 598 890 ;
+C -1 ; WX 980 ; N trademark ; B 30 256 957 662 ;
+C -1 ; WX 444 ; N edotaccent ; B 25 -10 424 623 ;
+C -1 ; WX 333 ; N Igrave ; B 18 0 315 890 ;
+C -1 ; WX 333 ; N Imacron ; B 11 0 322 813 ;
+C -1 ; WX 611 ; N Lcaron ; B 12 0 598 676 ;
+C -1 ; WX 750 ; N onehalf ; B 31 -14 746 676 ;
+C -1 ; WX 549 ; N lessequal ; B 26 0 523 666 ;
+C -1 ; WX 500 ; N ocircumflex ; B 29 -10 470 674 ;
+C -1 ; WX 500 ; N ntilde ; B 16 0 485 638 ;
+C -1 ; WX 722 ; N Uhungarumlaut ; B 14 -14 705 890 ;
+C -1 ; WX 611 ; N Eacute ; B 12 0 597 890 ;
+C -1 ; WX 444 ; N emacron ; B 25 -10 424 601 ;
+C -1 ; WX 500 ; N gbreve ; B 28 -218 470 664 ;
+C -1 ; WX 750 ; N onequarter ; B 37 -14 718 676 ;
+C -1 ; WX 556 ; N Scaron ; B 42 -14 491 886 ;
+C -1 ; WX 556 ; N Scommaaccent ; B 42 -218 491 676 ;
+C -1 ; WX 722 ; N Ohungarumlaut ; B 34 -14 688 890 ;
+C -1 ; WX 400 ; N degree ; B 57 390 343 676 ;
+C -1 ; WX 500 ; N ograve ; B 29 -10 470 678 ;
+C -1 ; WX 667 ; N Ccaron ; B 28 -14 633 886 ;
+C -1 ; WX 500 ; N ugrave ; B 9 -10 479 678 ;
+C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ;
+C -1 ; WX 722 ; N Dcaron ; B 16 0 685 886 ;
+C -1 ; WX 333 ; N rcommaaccent ; B 5 -218 335 460 ;
+C -1 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ;
+C -1 ; WX 500 ; N otilde ; B 29 -10 470 638 ;
+C -1 ; WX 667 ; N Rcommaaccent ; B 17 -198 659 662 ;
+C -1 ; WX 611 ; N Lcommaaccent ; B 12 -218 598 662 ;
+C -1 ; WX 722 ; N Atilde ; B 15 0 706 850 ;
+C -1 ; WX 722 ; N Aogonek ; B 15 -165 738 674 ;
+C -1 ; WX 722 ; N Aring ; B 15 0 706 898 ;
+C -1 ; WX 722 ; N Otilde ; B 34 -14 688 850 ;
+C -1 ; WX 444 ; N zdotaccent ; B 27 0 418 623 ;
+C -1 ; WX 611 ; N Ecaron ; B 12 0 597 886 ;
+C -1 ; WX 333 ; N Iogonek ; B 18 -165 315 662 ;
+C -1 ; WX 500 ; N kcommaaccent ; B 7 -218 505 683 ;
+C -1 ; WX 564 ; N minus ; B 30 220 534 286 ;
+C -1 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ;
+C -1 ; WX 500 ; N ncaron ; B 16 0 485 674 ;
+C -1 ; WX 278 ; N tcommaaccent ; B 13 -218 279 579 ;
+C -1 ; WX 564 ; N logicalnot ; B 30 108 534 386 ;
+C -1 ; WX 500 ; N odieresis ; B 29 -10 470 623 ;
+C -1 ; WX 500 ; N udieresis ; B 9 -10 479 623 ;
+C -1 ; WX 549 ; N notequal ; B 12 -31 537 547 ;
+C -1 ; WX 500 ; N gcommaaccent ; B 28 -218 470 749 ;
+C -1 ; WX 500 ; N eth ; B 29 -10 471 686 ;
+C -1 ; WX 444 ; N zcaron ; B 27 0 418 674 ;
+C -1 ; WX 500 ; N ncommaaccent ; B 16 -218 485 460 ;
+C -1 ; WX 300 ; N onesuperior ; B 57 270 248 676 ;
+C -1 ; WX 278 ; N imacron ; B 6 0 271 601 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 2073
+KPX A C -40
+KPX A Cacute -40
+KPX A Ccaron -40
+KPX A Ccedilla -40
+KPX A G -40
+KPX A Gbreve -40
+KPX A Gcommaaccent -40
+KPX A O -55
+KPX A Oacute -55
+KPX A Ocircumflex -55
+KPX A Odieresis -55
+KPX A Ograve -55
+KPX A Ohungarumlaut -55
+KPX A Omacron -55
+KPX A Oslash -55
+KPX A Otilde -55
+KPX A Q -55
+KPX A T -111
+KPX A Tcaron -111
+KPX A Tcommaaccent -111
+KPX A U -55
+KPX A Uacute -55
+KPX A Ucircumflex -55
+KPX A Udieresis -55
+KPX A Ugrave -55
+KPX A Uhungarumlaut -55
+KPX A Umacron -55
+KPX A Uogonek -55
+KPX A Uring -55
+KPX A V -135
+KPX A W -90
+KPX A Y -105
+KPX A Yacute -105
+KPX A Ydieresis -105
+KPX A quoteright -111
+KPX A v -74
+KPX A w -92
+KPX A y -92
+KPX A yacute -92
+KPX A ydieresis -92
+KPX Aacute C -40
+KPX Aacute Cacute -40
+KPX Aacute Ccaron -40
+KPX Aacute Ccedilla -40
+KPX Aacute G -40
+KPX Aacute Gbreve -40
+KPX Aacute Gcommaaccent -40
+KPX Aacute O -55
+KPX Aacute Oacute -55
+KPX Aacute Ocircumflex -55
+KPX Aacute Odieresis -55
+KPX Aacute Ograve -55
+KPX Aacute Ohungarumlaut -55
+KPX Aacute Omacron -55
+KPX Aacute Oslash -55
+KPX Aacute Otilde -55
+KPX Aacute Q -55
+KPX Aacute T -111
+KPX Aacute Tcaron -111
+KPX Aacute Tcommaaccent -111
+KPX Aacute U -55
+KPX Aacute Uacute -55
+KPX Aacute Ucircumflex -55
+KPX Aacute Udieresis -55
+KPX Aacute Ugrave -55
+KPX Aacute Uhungarumlaut -55
+KPX Aacute Umacron -55
+KPX Aacute Uogonek -55
+KPX Aacute Uring -55
+KPX Aacute V -135
+KPX Aacute W -90
+KPX Aacute Y -105
+KPX Aacute Yacute -105
+KPX Aacute Ydieresis -105
+KPX Aacute quoteright -111
+KPX Aacute v -74
+KPX Aacute w -92
+KPX Aacute y -92
+KPX Aacute yacute -92
+KPX Aacute ydieresis -92
+KPX Abreve C -40
+KPX Abreve Cacute -40
+KPX Abreve Ccaron -40
+KPX Abreve Ccedilla -40
+KPX Abreve G -40
+KPX Abreve Gbreve -40
+KPX Abreve Gcommaaccent -40
+KPX Abreve O -55
+KPX Abreve Oacute -55
+KPX Abreve Ocircumflex -55
+KPX Abreve Odieresis -55
+KPX Abreve Ograve -55
+KPX Abreve Ohungarumlaut -55
+KPX Abreve Omacron -55
+KPX Abreve Oslash -55
+KPX Abreve Otilde -55
+KPX Abreve Q -55
+KPX Abreve T -111
+KPX Abreve Tcaron -111
+KPX Abreve Tcommaaccent -111
+KPX Abreve U -55
+KPX Abreve Uacute -55
+KPX Abreve Ucircumflex -55
+KPX Abreve Udieresis -55
+KPX Abreve Ugrave -55
+KPX Abreve Uhungarumlaut -55
+KPX Abreve Umacron -55
+KPX Abreve Uogonek -55
+KPX Abreve Uring -55
+KPX Abreve V -135
+KPX Abreve W -90
+KPX Abreve Y -105
+KPX Abreve Yacute -105
+KPX Abreve Ydieresis -105
+KPX Abreve quoteright -111
+KPX Abreve v -74
+KPX Abreve w -92
+KPX Abreve y -92
+KPX Abreve yacute -92
+KPX Abreve ydieresis -92
+KPX Acircumflex C -40
+KPX Acircumflex Cacute -40
+KPX Acircumflex Ccaron -40
+KPX Acircumflex Ccedilla -40
+KPX Acircumflex G -40
+KPX Acircumflex Gbreve -40
+KPX Acircumflex Gcommaaccent -40
+KPX Acircumflex O -55
+KPX Acircumflex Oacute -55
+KPX Acircumflex Ocircumflex -55
+KPX Acircumflex Odieresis -55
+KPX Acircumflex Ograve -55
+KPX Acircumflex Ohungarumlaut -55
+KPX Acircumflex Omacron -55
+KPX Acircumflex Oslash -55
+KPX Acircumflex Otilde -55
+KPX Acircumflex Q -55
+KPX Acircumflex T -111
+KPX Acircumflex Tcaron -111
+KPX Acircumflex Tcommaaccent -111
+KPX Acircumflex U -55
+KPX Acircumflex Uacute -55
+KPX Acircumflex Ucircumflex -55
+KPX Acircumflex Udieresis -55
+KPX Acircumflex Ugrave -55
+KPX Acircumflex Uhungarumlaut -55
+KPX Acircumflex Umacron -55
+KPX Acircumflex Uogonek -55
+KPX Acircumflex Uring -55
+KPX Acircumflex V -135
+KPX Acircumflex W -90
+KPX Acircumflex Y -105
+KPX Acircumflex Yacute -105
+KPX Acircumflex Ydieresis -105
+KPX Acircumflex quoteright -111
+KPX Acircumflex v -74
+KPX Acircumflex w -92
+KPX Acircumflex y -92
+KPX Acircumflex yacute -92
+KPX Acircumflex ydieresis -92
+KPX Adieresis C -40
+KPX Adieresis Cacute -40
+KPX Adieresis Ccaron -40
+KPX Adieresis Ccedilla -40
+KPX Adieresis G -40
+KPX Adieresis Gbreve -40
+KPX Adieresis Gcommaaccent -40
+KPX Adieresis O -55
+KPX Adieresis Oacute -55
+KPX Adieresis Ocircumflex -55
+KPX Adieresis Odieresis -55
+KPX Adieresis Ograve -55
+KPX Adieresis Ohungarumlaut -55
+KPX Adieresis Omacron -55
+KPX Adieresis Oslash -55
+KPX Adieresis Otilde -55
+KPX Adieresis Q -55
+KPX Adieresis T -111
+KPX Adieresis Tcaron -111
+KPX Adieresis Tcommaaccent -111
+KPX Adieresis U -55
+KPX Adieresis Uacute -55
+KPX Adieresis Ucircumflex -55
+KPX Adieresis Udieresis -55
+KPX Adieresis Ugrave -55
+KPX Adieresis Uhungarumlaut -55
+KPX Adieresis Umacron -55
+KPX Adieresis Uogonek -55
+KPX Adieresis Uring -55
+KPX Adieresis V -135
+KPX Adieresis W -90
+KPX Adieresis Y -105
+KPX Adieresis Yacute -105
+KPX Adieresis Ydieresis -105
+KPX Adieresis quoteright -111
+KPX Adieresis v -74
+KPX Adieresis w -92
+KPX Adieresis y -92
+KPX Adieresis yacute -92
+KPX Adieresis ydieresis -92
+KPX Agrave C -40
+KPX Agrave Cacute -40
+KPX Agrave Ccaron -40
+KPX Agrave Ccedilla -40
+KPX Agrave G -40
+KPX Agrave Gbreve -40
+KPX Agrave Gcommaaccent -40
+KPX Agrave O -55
+KPX Agrave Oacute -55
+KPX Agrave Ocircumflex -55
+KPX Agrave Odieresis -55
+KPX Agrave Ograve -55
+KPX Agrave Ohungarumlaut -55
+KPX Agrave Omacron -55
+KPX Agrave Oslash -55
+KPX Agrave Otilde -55
+KPX Agrave Q -55
+KPX Agrave T -111
+KPX Agrave Tcaron -111
+KPX Agrave Tcommaaccent -111
+KPX Agrave U -55
+KPX Agrave Uacute -55
+KPX Agrave Ucircumflex -55
+KPX Agrave Udieresis -55
+KPX Agrave Ugrave -55
+KPX Agrave Uhungarumlaut -55
+KPX Agrave Umacron -55
+KPX Agrave Uogonek -55
+KPX Agrave Uring -55
+KPX Agrave V -135
+KPX Agrave W -90
+KPX Agrave Y -105
+KPX Agrave Yacute -105
+KPX Agrave Ydieresis -105
+KPX Agrave quoteright -111
+KPX Agrave v -74
+KPX Agrave w -92
+KPX Agrave y -92
+KPX Agrave yacute -92
+KPX Agrave ydieresis -92
+KPX Amacron C -40
+KPX Amacron Cacute -40
+KPX Amacron Ccaron -40
+KPX Amacron Ccedilla -40
+KPX Amacron G -40
+KPX Amacron Gbreve -40
+KPX Amacron Gcommaaccent -40
+KPX Amacron O -55
+KPX Amacron Oacute -55
+KPX Amacron Ocircumflex -55
+KPX Amacron Odieresis -55
+KPX Amacron Ograve -55
+KPX Amacron Ohungarumlaut -55
+KPX Amacron Omacron -55
+KPX Amacron Oslash -55
+KPX Amacron Otilde -55
+KPX Amacron Q -55
+KPX Amacron T -111
+KPX Amacron Tcaron -111
+KPX Amacron Tcommaaccent -111
+KPX Amacron U -55
+KPX Amacron Uacute -55
+KPX Amacron Ucircumflex -55
+KPX Amacron Udieresis -55
+KPX Amacron Ugrave -55
+KPX Amacron Uhungarumlaut -55
+KPX Amacron Umacron -55
+KPX Amacron Uogonek -55
+KPX Amacron Uring -55
+KPX Amacron V -135
+KPX Amacron W -90
+KPX Amacron Y -105
+KPX Amacron Yacute -105
+KPX Amacron Ydieresis -105
+KPX Amacron quoteright -111
+KPX Amacron v -74
+KPX Amacron w -92
+KPX Amacron y -92
+KPX Amacron yacute -92
+KPX Amacron ydieresis -92
+KPX Aogonek C -40
+KPX Aogonek Cacute -40
+KPX Aogonek Ccaron -40
+KPX Aogonek Ccedilla -40
+KPX Aogonek G -40
+KPX Aogonek Gbreve -40
+KPX Aogonek Gcommaaccent -40
+KPX Aogonek O -55
+KPX Aogonek Oacute -55
+KPX Aogonek Ocircumflex -55
+KPX Aogonek Odieresis -55
+KPX Aogonek Ograve -55
+KPX Aogonek Ohungarumlaut -55
+KPX Aogonek Omacron -55
+KPX Aogonek Oslash -55
+KPX Aogonek Otilde -55
+KPX Aogonek Q -55
+KPX Aogonek T -111
+KPX Aogonek Tcaron -111
+KPX Aogonek Tcommaaccent -111
+KPX Aogonek U -55
+KPX Aogonek Uacute -55
+KPX Aogonek Ucircumflex -55
+KPX Aogonek Udieresis -55
+KPX Aogonek Ugrave -55
+KPX Aogonek Uhungarumlaut -55
+KPX Aogonek Umacron -55
+KPX Aogonek Uogonek -55
+KPX Aogonek Uring -55
+KPX Aogonek V -135
+KPX Aogonek W -90
+KPX Aogonek Y -105
+KPX Aogonek Yacute -105
+KPX Aogonek Ydieresis -105
+KPX Aogonek quoteright -111
+KPX Aogonek v -74
+KPX Aogonek w -52
+KPX Aogonek y -52
+KPX Aogonek yacute -52
+KPX Aogonek ydieresis -52
+KPX Aring C -40
+KPX Aring Cacute -40
+KPX Aring Ccaron -40
+KPX Aring Ccedilla -40
+KPX Aring G -40
+KPX Aring Gbreve -40
+KPX Aring Gcommaaccent -40
+KPX Aring O -55
+KPX Aring Oacute -55
+KPX Aring Ocircumflex -55
+KPX Aring Odieresis -55
+KPX Aring Ograve -55
+KPX Aring Ohungarumlaut -55
+KPX Aring Omacron -55
+KPX Aring Oslash -55
+KPX Aring Otilde -55
+KPX Aring Q -55
+KPX Aring T -111
+KPX Aring Tcaron -111
+KPX Aring Tcommaaccent -111
+KPX Aring U -55
+KPX Aring Uacute -55
+KPX Aring Ucircumflex -55
+KPX Aring Udieresis -55
+KPX Aring Ugrave -55
+KPX Aring Uhungarumlaut -55
+KPX Aring Umacron -55
+KPX Aring Uogonek -55
+KPX Aring Uring -55
+KPX Aring V -135
+KPX Aring W -90
+KPX Aring Y -105
+KPX Aring Yacute -105
+KPX Aring Ydieresis -105
+KPX Aring quoteright -111
+KPX Aring v -74
+KPX Aring w -92
+KPX Aring y -92
+KPX Aring yacute -92
+KPX Aring ydieresis -92
+KPX Atilde C -40
+KPX Atilde Cacute -40
+KPX Atilde Ccaron -40
+KPX Atilde Ccedilla -40
+KPX Atilde G -40
+KPX Atilde Gbreve -40
+KPX Atilde Gcommaaccent -40
+KPX Atilde O -55
+KPX Atilde Oacute -55
+KPX Atilde Ocircumflex -55
+KPX Atilde Odieresis -55
+KPX Atilde Ograve -55
+KPX Atilde Ohungarumlaut -55
+KPX Atilde Omacron -55
+KPX Atilde Oslash -55
+KPX Atilde Otilde -55
+KPX Atilde Q -55
+KPX Atilde T -111
+KPX Atilde Tcaron -111
+KPX Atilde Tcommaaccent -111
+KPX Atilde U -55
+KPX Atilde Uacute -55
+KPX Atilde Ucircumflex -55
+KPX Atilde Udieresis -55
+KPX Atilde Ugrave -55
+KPX Atilde Uhungarumlaut -55
+KPX Atilde Umacron -55
+KPX Atilde Uogonek -55
+KPX Atilde Uring -55
+KPX Atilde V -135
+KPX Atilde W -90
+KPX Atilde Y -105
+KPX Atilde Yacute -105
+KPX Atilde Ydieresis -105
+KPX Atilde quoteright -111
+KPX Atilde v -74
+KPX Atilde w -92
+KPX Atilde y -92
+KPX Atilde yacute -92
+KPX Atilde ydieresis -92
+KPX B A -35
+KPX B Aacute -35
+KPX B Abreve -35
+KPX B Acircumflex -35
+KPX B Adieresis -35
+KPX B Agrave -35
+KPX B Amacron -35
+KPX B Aogonek -35
+KPX B Aring -35
+KPX B Atilde -35
+KPX B U -10
+KPX B Uacute -10
+KPX B Ucircumflex -10
+KPX B Udieresis -10
+KPX B Ugrave -10
+KPX B Uhungarumlaut -10
+KPX B Umacron -10
+KPX B Uogonek -10
+KPX B Uring -10
+KPX D A -40
+KPX D Aacute -40
+KPX D Abreve -40
+KPX D Acircumflex -40
+KPX D Adieresis -40
+KPX D Agrave -40
+KPX D Amacron -40
+KPX D Aogonek -40
+KPX D Aring -40
+KPX D Atilde -40
+KPX D V -40
+KPX D W -30
+KPX D Y -55
+KPX D Yacute -55
+KPX D Ydieresis -55
+KPX Dcaron A -40
+KPX Dcaron Aacute -40
+KPX Dcaron Abreve -40
+KPX Dcaron Acircumflex -40
+KPX Dcaron Adieresis -40
+KPX Dcaron Agrave -40
+KPX Dcaron Amacron -40
+KPX Dcaron Aogonek -40
+KPX Dcaron Aring -40
+KPX Dcaron Atilde -40
+KPX Dcaron V -40
+KPX Dcaron W -30
+KPX Dcaron Y -55
+KPX Dcaron Yacute -55
+KPX Dcaron Ydieresis -55
+KPX Dcroat A -40
+KPX Dcroat Aacute -40
+KPX Dcroat Abreve -40
+KPX Dcroat Acircumflex -40
+KPX Dcroat Adieresis -40
+KPX Dcroat Agrave -40
+KPX Dcroat Amacron -40
+KPX Dcroat Aogonek -40
+KPX Dcroat Aring -40
+KPX Dcroat Atilde -40
+KPX Dcroat V -40
+KPX Dcroat W -30
+KPX Dcroat Y -55
+KPX Dcroat Yacute -55
+KPX Dcroat Ydieresis -55
+KPX F A -74
+KPX F Aacute -74
+KPX F Abreve -74
+KPX F Acircumflex -74
+KPX F Adieresis -74
+KPX F Agrave -74
+KPX F Amacron -74
+KPX F Aogonek -74
+KPX F Aring -74
+KPX F Atilde -74
+KPX F a -15
+KPX F aacute -15
+KPX F abreve -15
+KPX F acircumflex -15
+KPX F adieresis -15
+KPX F agrave -15
+KPX F amacron -15
+KPX F aogonek -15
+KPX F aring -15
+KPX F atilde -15
+KPX F comma -80
+KPX F o -15
+KPX F oacute -15
+KPX F ocircumflex -15
+KPX F odieresis -15
+KPX F ograve -15
+KPX F ohungarumlaut -15
+KPX F omacron -15
+KPX F oslash -15
+KPX F otilde -15
+KPX F period -80
+KPX J A -60
+KPX J Aacute -60
+KPX J Abreve -60
+KPX J Acircumflex -60
+KPX J Adieresis -60
+KPX J Agrave -60
+KPX J Amacron -60
+KPX J Aogonek -60
+KPX J Aring -60
+KPX J Atilde -60
+KPX K O -30
+KPX K Oacute -30
+KPX K Ocircumflex -30
+KPX K Odieresis -30
+KPX K Ograve -30
+KPX K Ohungarumlaut -30
+KPX K Omacron -30
+KPX K Oslash -30
+KPX K Otilde -30
+KPX K e -25
+KPX K eacute -25
+KPX K ecaron -25
+KPX K ecircumflex -25
+KPX K edieresis -25
+KPX K edotaccent -25
+KPX K egrave -25
+KPX K emacron -25
+KPX K eogonek -25
+KPX K o -35
+KPX K oacute -35
+KPX K ocircumflex -35
+KPX K odieresis -35
+KPX K ograve -35
+KPX K ohungarumlaut -35
+KPX K omacron -35
+KPX K oslash -35
+KPX K otilde -35
+KPX K u -15
+KPX K uacute -15
+KPX K ucircumflex -15
+KPX K udieresis -15
+KPX K ugrave -15
+KPX K uhungarumlaut -15
+KPX K umacron -15
+KPX K uogonek -15
+KPX K uring -15
+KPX K y -25
+KPX K yacute -25
+KPX K ydieresis -25
+KPX Kcommaaccent O -30
+KPX Kcommaaccent Oacute -30
+KPX Kcommaaccent Ocircumflex -30
+KPX Kcommaaccent Odieresis -30
+KPX Kcommaaccent Ograve -30
+KPX Kcommaaccent Ohungarumlaut -30
+KPX Kcommaaccent Omacron -30
+KPX Kcommaaccent Oslash -30
+KPX Kcommaaccent Otilde -30
+KPX Kcommaaccent e -25
+KPX Kcommaaccent eacute -25
+KPX Kcommaaccent ecaron -25
+KPX Kcommaaccent ecircumflex -25
+KPX Kcommaaccent edieresis -25
+KPX Kcommaaccent edotaccent -25
+KPX Kcommaaccent egrave -25
+KPX Kcommaaccent emacron -25
+KPX Kcommaaccent eogonek -25
+KPX Kcommaaccent o -35
+KPX Kcommaaccent oacute -35
+KPX Kcommaaccent ocircumflex -35
+KPX Kcommaaccent odieresis -35
+KPX Kcommaaccent ograve -35
+KPX Kcommaaccent ohungarumlaut -35
+KPX Kcommaaccent omacron -35
+KPX Kcommaaccent oslash -35
+KPX Kcommaaccent otilde -35
+KPX Kcommaaccent u -15
+KPX Kcommaaccent uacute -15
+KPX Kcommaaccent ucircumflex -15
+KPX Kcommaaccent udieresis -15
+KPX Kcommaaccent ugrave -15
+KPX Kcommaaccent uhungarumlaut -15
+KPX Kcommaaccent umacron -15
+KPX Kcommaaccent uogonek -15
+KPX Kcommaaccent uring -15
+KPX Kcommaaccent y -25
+KPX Kcommaaccent yacute -25
+KPX Kcommaaccent ydieresis -25
+KPX L T -92
+KPX L Tcaron -92
+KPX L Tcommaaccent -92
+KPX L V -100
+KPX L W -74
+KPX L Y -100
+KPX L Yacute -100
+KPX L Ydieresis -100
+KPX L quoteright -92
+KPX L y -55
+KPX L yacute -55
+KPX L ydieresis -55
+KPX Lacute T -92
+KPX Lacute Tcaron -92
+KPX Lacute Tcommaaccent -92
+KPX Lacute V -100
+KPX Lacute W -74
+KPX Lacute Y -100
+KPX Lacute Yacute -100
+KPX Lacute Ydieresis -100
+KPX Lacute quoteright -92
+KPX Lacute y -55
+KPX Lacute yacute -55
+KPX Lacute ydieresis -55
+KPX Lcaron quoteright -92
+KPX Lcaron y -55
+KPX Lcaron yacute -55
+KPX Lcaron ydieresis -55
+KPX Lcommaaccent T -92
+KPX Lcommaaccent Tcaron -92
+KPX Lcommaaccent Tcommaaccent -92
+KPX Lcommaaccent V -100
+KPX Lcommaaccent W -74
+KPX Lcommaaccent Y -100
+KPX Lcommaaccent Yacute -100
+KPX Lcommaaccent Ydieresis -100
+KPX Lcommaaccent quoteright -92
+KPX Lcommaaccent y -55
+KPX Lcommaaccent yacute -55
+KPX Lcommaaccent ydieresis -55
+KPX Lslash T -92
+KPX Lslash Tcaron -92
+KPX Lslash Tcommaaccent -92
+KPX Lslash V -100
+KPX Lslash W -74
+KPX Lslash Y -100
+KPX Lslash Yacute -100
+KPX Lslash Ydieresis -100
+KPX Lslash quoteright -92
+KPX Lslash y -55
+KPX Lslash yacute -55
+KPX Lslash ydieresis -55
+KPX N A -35
+KPX N Aacute -35
+KPX N Abreve -35
+KPX N Acircumflex -35
+KPX N Adieresis -35
+KPX N Agrave -35
+KPX N Amacron -35
+KPX N Aogonek -35
+KPX N Aring -35
+KPX N Atilde -35
+KPX Nacute A -35
+KPX Nacute Aacute -35
+KPX Nacute Abreve -35
+KPX Nacute Acircumflex -35
+KPX Nacute Adieresis -35
+KPX Nacute Agrave -35
+KPX Nacute Amacron -35
+KPX Nacute Aogonek -35
+KPX Nacute Aring -35
+KPX Nacute Atilde -35
+KPX Ncaron A -35
+KPX Ncaron Aacute -35
+KPX Ncaron Abreve -35
+KPX Ncaron Acircumflex -35
+KPX Ncaron Adieresis -35
+KPX Ncaron Agrave -35
+KPX Ncaron Amacron -35
+KPX Ncaron Aogonek -35
+KPX Ncaron Aring -35
+KPX Ncaron Atilde -35
+KPX Ncommaaccent A -35
+KPX Ncommaaccent Aacute -35
+KPX Ncommaaccent Abreve -35
+KPX Ncommaaccent Acircumflex -35
+KPX Ncommaaccent Adieresis -35
+KPX Ncommaaccent Agrave -35
+KPX Ncommaaccent Amacron -35
+KPX Ncommaaccent Aogonek -35
+KPX Ncommaaccent Aring -35
+KPX Ncommaaccent Atilde -35
+KPX Ntilde A -35
+KPX Ntilde Aacute -35
+KPX Ntilde Abreve -35
+KPX Ntilde Acircumflex -35
+KPX Ntilde Adieresis -35
+KPX Ntilde Agrave -35
+KPX Ntilde Amacron -35
+KPX Ntilde Aogonek -35
+KPX Ntilde Aring -35
+KPX Ntilde Atilde -35
+KPX O A -35
+KPX O Aacute -35
+KPX O Abreve -35
+KPX O Acircumflex -35
+KPX O Adieresis -35
+KPX O Agrave -35
+KPX O Amacron -35
+KPX O Aogonek -35
+KPX O Aring -35
+KPX O Atilde -35
+KPX O T -40
+KPX O Tcaron -40
+KPX O Tcommaaccent -40
+KPX O V -50
+KPX O W -35
+KPX O X -40
+KPX O Y -50
+KPX O Yacute -50
+KPX O Ydieresis -50
+KPX Oacute A -35
+KPX Oacute Aacute -35
+KPX Oacute Abreve -35
+KPX Oacute Acircumflex -35
+KPX Oacute Adieresis -35
+KPX Oacute Agrave -35
+KPX Oacute Amacron -35
+KPX Oacute Aogonek -35
+KPX Oacute Aring -35
+KPX Oacute Atilde -35
+KPX Oacute T -40
+KPX Oacute Tcaron -40
+KPX Oacute Tcommaaccent -40
+KPX Oacute V -50
+KPX Oacute W -35
+KPX Oacute X -40
+KPX Oacute Y -50
+KPX Oacute Yacute -50
+KPX Oacute Ydieresis -50
+KPX Ocircumflex A -35
+KPX Ocircumflex Aacute -35
+KPX Ocircumflex Abreve -35
+KPX Ocircumflex Acircumflex -35
+KPX Ocircumflex Adieresis -35
+KPX Ocircumflex Agrave -35
+KPX Ocircumflex Amacron -35
+KPX Ocircumflex Aogonek -35
+KPX Ocircumflex Aring -35
+KPX Ocircumflex Atilde -35
+KPX Ocircumflex T -40
+KPX Ocircumflex Tcaron -40
+KPX Ocircumflex Tcommaaccent -40
+KPX Ocircumflex V -50
+KPX Ocircumflex W -35
+KPX Ocircumflex X -40
+KPX Ocircumflex Y -50
+KPX Ocircumflex Yacute -50
+KPX Ocircumflex Ydieresis -50
+KPX Odieresis A -35
+KPX Odieresis Aacute -35
+KPX Odieresis Abreve -35
+KPX Odieresis Acircumflex -35
+KPX Odieresis Adieresis -35
+KPX Odieresis Agrave -35
+KPX Odieresis Amacron -35
+KPX Odieresis Aogonek -35
+KPX Odieresis Aring -35
+KPX Odieresis Atilde -35
+KPX Odieresis T -40
+KPX Odieresis Tcaron -40
+KPX Odieresis Tcommaaccent -40
+KPX Odieresis V -50
+KPX Odieresis W -35
+KPX Odieresis X -40
+KPX Odieresis Y -50
+KPX Odieresis Yacute -50
+KPX Odieresis Ydieresis -50
+KPX Ograve A -35
+KPX Ograve Aacute -35
+KPX Ograve Abreve -35
+KPX Ograve Acircumflex -35
+KPX Ograve Adieresis -35
+KPX Ograve Agrave -35
+KPX Ograve Amacron -35
+KPX Ograve Aogonek -35
+KPX Ograve Aring -35
+KPX Ograve Atilde -35
+KPX Ograve T -40
+KPX Ograve Tcaron -40
+KPX Ograve Tcommaaccent -40
+KPX Ograve V -50
+KPX Ograve W -35
+KPX Ograve X -40
+KPX Ograve Y -50
+KPX Ograve Yacute -50
+KPX Ograve Ydieresis -50
+KPX Ohungarumlaut A -35
+KPX Ohungarumlaut Aacute -35
+KPX Ohungarumlaut Abreve -35
+KPX Ohungarumlaut Acircumflex -35
+KPX Ohungarumlaut Adieresis -35
+KPX Ohungarumlaut Agrave -35
+KPX Ohungarumlaut Amacron -35
+KPX Ohungarumlaut Aogonek -35
+KPX Ohungarumlaut Aring -35
+KPX Ohungarumlaut Atilde -35
+KPX Ohungarumlaut T -40
+KPX Ohungarumlaut Tcaron -40
+KPX Ohungarumlaut Tcommaaccent -40
+KPX Ohungarumlaut V -50
+KPX Ohungarumlaut W -35
+KPX Ohungarumlaut X -40
+KPX Ohungarumlaut Y -50
+KPX Ohungarumlaut Yacute -50
+KPX Ohungarumlaut Ydieresis -50
+KPX Omacron A -35
+KPX Omacron Aacute -35
+KPX Omacron Abreve -35
+KPX Omacron Acircumflex -35
+KPX Omacron Adieresis -35
+KPX Omacron Agrave -35
+KPX Omacron Amacron -35
+KPX Omacron Aogonek -35
+KPX Omacron Aring -35
+KPX Omacron Atilde -35
+KPX Omacron T -40
+KPX Omacron Tcaron -40
+KPX Omacron Tcommaaccent -40
+KPX Omacron V -50
+KPX Omacron W -35
+KPX Omacron X -40
+KPX Omacron Y -50
+KPX Omacron Yacute -50
+KPX Omacron Ydieresis -50
+KPX Oslash A -35
+KPX Oslash Aacute -35
+KPX Oslash Abreve -35
+KPX Oslash Acircumflex -35
+KPX Oslash Adieresis -35
+KPX Oslash Agrave -35
+KPX Oslash Amacron -35
+KPX Oslash Aogonek -35
+KPX Oslash Aring -35
+KPX Oslash Atilde -35
+KPX Oslash T -40
+KPX Oslash Tcaron -40
+KPX Oslash Tcommaaccent -40
+KPX Oslash V -50
+KPX Oslash W -35
+KPX Oslash X -40
+KPX Oslash Y -50
+KPX Oslash Yacute -50
+KPX Oslash Ydieresis -50
+KPX Otilde A -35
+KPX Otilde Aacute -35
+KPX Otilde Abreve -35
+KPX Otilde Acircumflex -35
+KPX Otilde Adieresis -35
+KPX Otilde Agrave -35
+KPX Otilde Amacron -35
+KPX Otilde Aogonek -35
+KPX Otilde Aring -35
+KPX Otilde Atilde -35
+KPX Otilde T -40
+KPX Otilde Tcaron -40
+KPX Otilde Tcommaaccent -40
+KPX Otilde V -50
+KPX Otilde W -35
+KPX Otilde X -40
+KPX Otilde Y -50
+KPX Otilde Yacute -50
+KPX Otilde Ydieresis -50
+KPX P A -92
+KPX P Aacute -92
+KPX P Abreve -92
+KPX P Acircumflex -92
+KPX P Adieresis -92
+KPX P Agrave -92
+KPX P Amacron -92
+KPX P Aogonek -92
+KPX P Aring -92
+KPX P Atilde -92
+KPX P a -15
+KPX P aacute -15
+KPX P abreve -15
+KPX P acircumflex -15
+KPX P adieresis -15
+KPX P agrave -15
+KPX P amacron -15
+KPX P aogonek -15
+KPX P aring -15
+KPX P atilde -15
+KPX P comma -111
+KPX P period -111
+KPX Q U -10
+KPX Q Uacute -10
+KPX Q Ucircumflex -10
+KPX Q Udieresis -10
+KPX Q Ugrave -10
+KPX Q Uhungarumlaut -10
+KPX Q Umacron -10
+KPX Q Uogonek -10
+KPX Q Uring -10
+KPX R O -40
+KPX R Oacute -40
+KPX R Ocircumflex -40
+KPX R Odieresis -40
+KPX R Ograve -40
+KPX R Ohungarumlaut -40
+KPX R Omacron -40
+KPX R Oslash -40
+KPX R Otilde -40
+KPX R T -60
+KPX R Tcaron -60
+KPX R Tcommaaccent -60
+KPX R U -40
+KPX R Uacute -40
+KPX R Ucircumflex -40
+KPX R Udieresis -40
+KPX R Ugrave -40
+KPX R Uhungarumlaut -40
+KPX R Umacron -40
+KPX R Uogonek -40
+KPX R Uring -40
+KPX R V -80
+KPX R W -55
+KPX R Y -65
+KPX R Yacute -65
+KPX R Ydieresis -65
+KPX Racute O -40
+KPX Racute Oacute -40
+KPX Racute Ocircumflex -40
+KPX Racute Odieresis -40
+KPX Racute Ograve -40
+KPX Racute Ohungarumlaut -40
+KPX Racute Omacron -40
+KPX Racute Oslash -40
+KPX Racute Otilde -40
+KPX Racute T -60
+KPX Racute Tcaron -60
+KPX Racute Tcommaaccent -60
+KPX Racute U -40
+KPX Racute Uacute -40
+KPX Racute Ucircumflex -40
+KPX Racute Udieresis -40
+KPX Racute Ugrave -40
+KPX Racute Uhungarumlaut -40
+KPX Racute Umacron -40
+KPX Racute Uogonek -40
+KPX Racute Uring -40
+KPX Racute V -80
+KPX Racute W -55
+KPX Racute Y -65
+KPX Racute Yacute -65
+KPX Racute Ydieresis -65
+KPX Rcaron O -40
+KPX Rcaron Oacute -40
+KPX Rcaron Ocircumflex -40
+KPX Rcaron Odieresis -40
+KPX Rcaron Ograve -40
+KPX Rcaron Ohungarumlaut -40
+KPX Rcaron Omacron -40
+KPX Rcaron Oslash -40
+KPX Rcaron Otilde -40
+KPX Rcaron T -60
+KPX Rcaron Tcaron -60
+KPX Rcaron Tcommaaccent -60
+KPX Rcaron U -40
+KPX Rcaron Uacute -40
+KPX Rcaron Ucircumflex -40
+KPX Rcaron Udieresis -40
+KPX Rcaron Ugrave -40
+KPX Rcaron Uhungarumlaut -40
+KPX Rcaron Umacron -40
+KPX Rcaron Uogonek -40
+KPX Rcaron Uring -40
+KPX Rcaron V -80
+KPX Rcaron W -55
+KPX Rcaron Y -65
+KPX Rcaron Yacute -65
+KPX Rcaron Ydieresis -65
+KPX Rcommaaccent O -40
+KPX Rcommaaccent Oacute -40
+KPX Rcommaaccent Ocircumflex -40
+KPX Rcommaaccent Odieresis -40
+KPX Rcommaaccent Ograve -40
+KPX Rcommaaccent Ohungarumlaut -40
+KPX Rcommaaccent Omacron -40
+KPX Rcommaaccent Oslash -40
+KPX Rcommaaccent Otilde -40
+KPX Rcommaaccent T -60
+KPX Rcommaaccent Tcaron -60
+KPX Rcommaaccent Tcommaaccent -60
+KPX Rcommaaccent U -40
+KPX Rcommaaccent Uacute -40
+KPX Rcommaaccent Ucircumflex -40
+KPX Rcommaaccent Udieresis -40
+KPX Rcommaaccent Ugrave -40
+KPX Rcommaaccent Uhungarumlaut -40
+KPX Rcommaaccent Umacron -40
+KPX Rcommaaccent Uogonek -40
+KPX Rcommaaccent Uring -40
+KPX Rcommaaccent V -80
+KPX Rcommaaccent W -55
+KPX Rcommaaccent Y -65
+KPX Rcommaaccent Yacute -65
+KPX Rcommaaccent Ydieresis -65
+KPX T A -93
+KPX T Aacute -93
+KPX T Abreve -93
+KPX T Acircumflex -93
+KPX T Adieresis -93
+KPX T Agrave -93
+KPX T Amacron -93
+KPX T Aogonek -93
+KPX T Aring -93
+KPX T Atilde -93
+KPX T O -18
+KPX T Oacute -18
+KPX T Ocircumflex -18
+KPX T Odieresis -18
+KPX T Ograve -18
+KPX T Ohungarumlaut -18
+KPX T Omacron -18
+KPX T Oslash -18
+KPX T Otilde -18
+KPX T a -80
+KPX T aacute -80
+KPX T abreve -80
+KPX T acircumflex -80
+KPX T adieresis -40
+KPX T agrave -40
+KPX T amacron -40
+KPX T aogonek -80
+KPX T aring -80
+KPX T atilde -40
+KPX T colon -50
+KPX T comma -74
+KPX T e -70
+KPX T eacute -70
+KPX T ecaron -70
+KPX T ecircumflex -70
+KPX T edieresis -30
+KPX T edotaccent -70
+KPX T egrave -70
+KPX T emacron -30
+KPX T eogonek -70
+KPX T hyphen -92
+KPX T i -35
+KPX T iacute -35
+KPX T iogonek -35
+KPX T o -80
+KPX T oacute -80
+KPX T ocircumflex -80
+KPX T odieresis -80
+KPX T ograve -80
+KPX T ohungarumlaut -80
+KPX T omacron -80
+KPX T oslash -80
+KPX T otilde -80
+KPX T period -74
+KPX T r -35
+KPX T racute -35
+KPX T rcaron -35
+KPX T rcommaaccent -35
+KPX T semicolon -55
+KPX T u -45
+KPX T uacute -45
+KPX T ucircumflex -45
+KPX T udieresis -45
+KPX T ugrave -45
+KPX T uhungarumlaut -45
+KPX T umacron -45
+KPX T uogonek -45
+KPX T uring -45
+KPX T w -80
+KPX T y -80
+KPX T yacute -80
+KPX T ydieresis -80
+KPX Tcaron A -93
+KPX Tcaron Aacute -93
+KPX Tcaron Abreve -93
+KPX Tcaron Acircumflex -93
+KPX Tcaron Adieresis -93
+KPX Tcaron Agrave -93
+KPX Tcaron Amacron -93
+KPX Tcaron Aogonek -93
+KPX Tcaron Aring -93
+KPX Tcaron Atilde -93
+KPX Tcaron O -18
+KPX Tcaron Oacute -18
+KPX Tcaron Ocircumflex -18
+KPX Tcaron Odieresis -18
+KPX Tcaron Ograve -18
+KPX Tcaron Ohungarumlaut -18
+KPX Tcaron Omacron -18
+KPX Tcaron Oslash -18
+KPX Tcaron Otilde -18
+KPX Tcaron a -80
+KPX Tcaron aacute -80
+KPX Tcaron abreve -80
+KPX Tcaron acircumflex -80
+KPX Tcaron adieresis -40
+KPX Tcaron agrave -40
+KPX Tcaron amacron -40
+KPX Tcaron aogonek -80
+KPX Tcaron aring -80
+KPX Tcaron atilde -40
+KPX Tcaron colon -50
+KPX Tcaron comma -74
+KPX Tcaron e -70
+KPX Tcaron eacute -70
+KPX Tcaron ecaron -70
+KPX Tcaron ecircumflex -30
+KPX Tcaron edieresis -30
+KPX Tcaron edotaccent -70
+KPX Tcaron egrave -70
+KPX Tcaron emacron -30
+KPX Tcaron eogonek -70
+KPX Tcaron hyphen -92
+KPX Tcaron i -35
+KPX Tcaron iacute -35
+KPX Tcaron iogonek -35
+KPX Tcaron o -80
+KPX Tcaron oacute -80
+KPX Tcaron ocircumflex -80
+KPX Tcaron odieresis -80
+KPX Tcaron ograve -80
+KPX Tcaron ohungarumlaut -80
+KPX Tcaron omacron -80
+KPX Tcaron oslash -80
+KPX Tcaron otilde -80
+KPX Tcaron period -74
+KPX Tcaron r -35
+KPX Tcaron racute -35
+KPX Tcaron rcaron -35
+KPX Tcaron rcommaaccent -35
+KPX Tcaron semicolon -55
+KPX Tcaron u -45
+KPX Tcaron uacute -45
+KPX Tcaron ucircumflex -45
+KPX Tcaron udieresis -45
+KPX Tcaron ugrave -45
+KPX Tcaron uhungarumlaut -45
+KPX Tcaron umacron -45
+KPX Tcaron uogonek -45
+KPX Tcaron uring -45
+KPX Tcaron w -80
+KPX Tcaron y -80
+KPX Tcaron yacute -80
+KPX Tcaron ydieresis -80
+KPX Tcommaaccent A -93
+KPX Tcommaaccent Aacute -93
+KPX Tcommaaccent Abreve -93
+KPX Tcommaaccent Acircumflex -93
+KPX Tcommaaccent Adieresis -93
+KPX Tcommaaccent Agrave -93
+KPX Tcommaaccent Amacron -93
+KPX Tcommaaccent Aogonek -93
+KPX Tcommaaccent Aring -93
+KPX Tcommaaccent Atilde -93
+KPX Tcommaaccent O -18
+KPX Tcommaaccent Oacute -18
+KPX Tcommaaccent Ocircumflex -18
+KPX Tcommaaccent Odieresis -18
+KPX Tcommaaccent Ograve -18
+KPX Tcommaaccent Ohungarumlaut -18
+KPX Tcommaaccent Omacron -18
+KPX Tcommaaccent Oslash -18
+KPX Tcommaaccent Otilde -18
+KPX Tcommaaccent a -80
+KPX Tcommaaccent aacute -80
+KPX Tcommaaccent abreve -80
+KPX Tcommaaccent acircumflex -80
+KPX Tcommaaccent adieresis -40
+KPX Tcommaaccent agrave -40
+KPX Tcommaaccent amacron -40
+KPX Tcommaaccent aogonek -80
+KPX Tcommaaccent aring -80
+KPX Tcommaaccent atilde -40
+KPX Tcommaaccent colon -50
+KPX Tcommaaccent comma -74
+KPX Tcommaaccent e -70
+KPX Tcommaaccent eacute -70
+KPX Tcommaaccent ecaron -70
+KPX Tcommaaccent ecircumflex -30
+KPX Tcommaaccent edieresis -30
+KPX Tcommaaccent edotaccent -70
+KPX Tcommaaccent egrave -30
+KPX Tcommaaccent emacron -70
+KPX Tcommaaccent eogonek -70
+KPX Tcommaaccent hyphen -92
+KPX Tcommaaccent i -35
+KPX Tcommaaccent iacute -35
+KPX Tcommaaccent iogonek -35
+KPX Tcommaaccent o -80
+KPX Tcommaaccent oacute -80
+KPX Tcommaaccent ocircumflex -80
+KPX Tcommaaccent odieresis -80
+KPX Tcommaaccent ograve -80
+KPX Tcommaaccent ohungarumlaut -80
+KPX Tcommaaccent omacron -80
+KPX Tcommaaccent oslash -80
+KPX Tcommaaccent otilde -80
+KPX Tcommaaccent period -74
+KPX Tcommaaccent r -35
+KPX Tcommaaccent racute -35
+KPX Tcommaaccent rcaron -35
+KPX Tcommaaccent rcommaaccent -35
+KPX Tcommaaccent semicolon -55
+KPX Tcommaaccent u -45
+KPX Tcommaaccent uacute -45
+KPX Tcommaaccent ucircumflex -45
+KPX Tcommaaccent udieresis -45
+KPX Tcommaaccent ugrave -45
+KPX Tcommaaccent uhungarumlaut -45
+KPX Tcommaaccent umacron -45
+KPX Tcommaaccent uogonek -45
+KPX Tcommaaccent uring -45
+KPX Tcommaaccent w -80
+KPX Tcommaaccent y -80
+KPX Tcommaaccent yacute -80
+KPX Tcommaaccent ydieresis -80
+KPX U A -40
+KPX U Aacute -40
+KPX U Abreve -40
+KPX U Acircumflex -40
+KPX U Adieresis -40
+KPX U Agrave -40
+KPX U Amacron -40
+KPX U Aogonek -40
+KPX U Aring -40
+KPX U Atilde -40
+KPX Uacute A -40
+KPX Uacute Aacute -40
+KPX Uacute Abreve -40
+KPX Uacute Acircumflex -40
+KPX Uacute Adieresis -40
+KPX Uacute Agrave -40
+KPX Uacute Amacron -40
+KPX Uacute Aogonek -40
+KPX Uacute Aring -40
+KPX Uacute Atilde -40
+KPX Ucircumflex A -40
+KPX Ucircumflex Aacute -40
+KPX Ucircumflex Abreve -40
+KPX Ucircumflex Acircumflex -40
+KPX Ucircumflex Adieresis -40
+KPX Ucircumflex Agrave -40
+KPX Ucircumflex Amacron -40
+KPX Ucircumflex Aogonek -40
+KPX Ucircumflex Aring -40
+KPX Ucircumflex Atilde -40
+KPX Udieresis A -40
+KPX Udieresis Aacute -40
+KPX Udieresis Abreve -40
+KPX Udieresis Acircumflex -40
+KPX Udieresis Adieresis -40
+KPX Udieresis Agrave -40
+KPX Udieresis Amacron -40
+KPX Udieresis Aogonek -40
+KPX Udieresis Aring -40
+KPX Udieresis Atilde -40
+KPX Ugrave A -40
+KPX Ugrave Aacute -40
+KPX Ugrave Abreve -40
+KPX Ugrave Acircumflex -40
+KPX Ugrave Adieresis -40
+KPX Ugrave Agrave -40
+KPX Ugrave Amacron -40
+KPX Ugrave Aogonek -40
+KPX Ugrave Aring -40
+KPX Ugrave Atilde -40
+KPX Uhungarumlaut A -40
+KPX Uhungarumlaut Aacute -40
+KPX Uhungarumlaut Abreve -40
+KPX Uhungarumlaut Acircumflex -40
+KPX Uhungarumlaut Adieresis -40
+KPX Uhungarumlaut Agrave -40
+KPX Uhungarumlaut Amacron -40
+KPX Uhungarumlaut Aogonek -40
+KPX Uhungarumlaut Aring -40
+KPX Uhungarumlaut Atilde -40
+KPX Umacron A -40
+KPX Umacron Aacute -40
+KPX Umacron Abreve -40
+KPX Umacron Acircumflex -40
+KPX Umacron Adieresis -40
+KPX Umacron Agrave -40
+KPX Umacron Amacron -40
+KPX Umacron Aogonek -40
+KPX Umacron Aring -40
+KPX Umacron Atilde -40
+KPX Uogonek A -40
+KPX Uogonek Aacute -40
+KPX Uogonek Abreve -40
+KPX Uogonek Acircumflex -40
+KPX Uogonek Adieresis -40
+KPX Uogonek Agrave -40
+KPX Uogonek Amacron -40
+KPX Uogonek Aogonek -40
+KPX Uogonek Aring -40
+KPX Uogonek Atilde -40
+KPX Uring A -40
+KPX Uring Aacute -40
+KPX Uring Abreve -40
+KPX Uring Acircumflex -40
+KPX Uring Adieresis -40
+KPX Uring Agrave -40
+KPX Uring Amacron -40
+KPX Uring Aogonek -40
+KPX Uring Aring -40
+KPX Uring Atilde -40
+KPX V A -135
+KPX V Aacute -135
+KPX V Abreve -135
+KPX V Acircumflex -135
+KPX V Adieresis -135
+KPX V Agrave -135
+KPX V Amacron -135
+KPX V Aogonek -135
+KPX V Aring -135
+KPX V Atilde -135
+KPX V G -15
+KPX V Gbreve -15
+KPX V Gcommaaccent -15
+KPX V O -40
+KPX V Oacute -40
+KPX V Ocircumflex -40
+KPX V Odieresis -40
+KPX V Ograve -40
+KPX V Ohungarumlaut -40
+KPX V Omacron -40
+KPX V Oslash -40
+KPX V Otilde -40
+KPX V a -111
+KPX V aacute -111
+KPX V abreve -111
+KPX V acircumflex -71
+KPX V adieresis -71
+KPX V agrave -71
+KPX V amacron -71
+KPX V aogonek -111
+KPX V aring -111
+KPX V atilde -71
+KPX V colon -74
+KPX V comma -129
+KPX V e -111
+KPX V eacute -111
+KPX V ecaron -71
+KPX V ecircumflex -71
+KPX V edieresis -71
+KPX V edotaccent -111
+KPX V egrave -71
+KPX V emacron -71
+KPX V eogonek -111
+KPX V hyphen -100
+KPX V i -60
+KPX V iacute -60
+KPX V icircumflex -20
+KPX V idieresis -20
+KPX V igrave -20
+KPX V imacron -20
+KPX V iogonek -60
+KPX V o -129
+KPX V oacute -129
+KPX V ocircumflex -129
+KPX V odieresis -89
+KPX V ograve -89
+KPX V ohungarumlaut -129
+KPX V omacron -89
+KPX V oslash -129
+KPX V otilde -89
+KPX V period -129
+KPX V semicolon -74
+KPX V u -75
+KPX V uacute -75
+KPX V ucircumflex -75
+KPX V udieresis -75
+KPX V ugrave -75
+KPX V uhungarumlaut -75
+KPX V umacron -75
+KPX V uogonek -75
+KPX V uring -75
+KPX W A -120
+KPX W Aacute -120
+KPX W Abreve -120
+KPX W Acircumflex -120
+KPX W Adieresis -120
+KPX W Agrave -120
+KPX W Amacron -120
+KPX W Aogonek -120
+KPX W Aring -120
+KPX W Atilde -120
+KPX W O -10
+KPX W Oacute -10
+KPX W Ocircumflex -10
+KPX W Odieresis -10
+KPX W Ograve -10
+KPX W Ohungarumlaut -10
+KPX W Omacron -10
+KPX W Oslash -10
+KPX W Otilde -10
+KPX W a -80
+KPX W aacute -80
+KPX W abreve -80
+KPX W acircumflex -80
+KPX W adieresis -80
+KPX W agrave -80
+KPX W amacron -80
+KPX W aogonek -80
+KPX W aring -80
+KPX W atilde -80
+KPX W colon -37
+KPX W comma -92
+KPX W e -80
+KPX W eacute -80
+KPX W ecaron -80
+KPX W ecircumflex -80
+KPX W edieresis -40
+KPX W edotaccent -80
+KPX W egrave -40
+KPX W emacron -40
+KPX W eogonek -80
+KPX W hyphen -65
+KPX W i -40
+KPX W iacute -40
+KPX W iogonek -40
+KPX W o -80
+KPX W oacute -80
+KPX W ocircumflex -80
+KPX W odieresis -80
+KPX W ograve -80
+KPX W ohungarumlaut -80
+KPX W omacron -80
+KPX W oslash -80
+KPX W otilde -80
+KPX W period -92
+KPX W semicolon -37
+KPX W u -50
+KPX W uacute -50
+KPX W ucircumflex -50
+KPX W udieresis -50
+KPX W ugrave -50
+KPX W uhungarumlaut -50
+KPX W umacron -50
+KPX W uogonek -50
+KPX W uring -50
+KPX W y -73
+KPX W yacute -73
+KPX W ydieresis -73
+KPX Y A -120
+KPX Y Aacute -120
+KPX Y Abreve -120
+KPX Y Acircumflex -120
+KPX Y Adieresis -120
+KPX Y Agrave -120
+KPX Y Amacron -120
+KPX Y Aogonek -120
+KPX Y Aring -120
+KPX Y Atilde -120
+KPX Y O -30
+KPX Y Oacute -30
+KPX Y Ocircumflex -30
+KPX Y Odieresis -30
+KPX Y Ograve -30
+KPX Y Ohungarumlaut -30
+KPX Y Omacron -30
+KPX Y Oslash -30
+KPX Y Otilde -30
+KPX Y a -100
+KPX Y aacute -100
+KPX Y abreve -100
+KPX Y acircumflex -100
+KPX Y adieresis -60
+KPX Y agrave -60
+KPX Y amacron -60
+KPX Y aogonek -100
+KPX Y aring -100
+KPX Y atilde -60
+KPX Y colon -92
+KPX Y comma -129
+KPX Y e -100
+KPX Y eacute -100
+KPX Y ecaron -100
+KPX Y ecircumflex -100
+KPX Y edieresis -60
+KPX Y edotaccent -100
+KPX Y egrave -60
+KPX Y emacron -60
+KPX Y eogonek -100
+KPX Y hyphen -111
+KPX Y i -55
+KPX Y iacute -55
+KPX Y iogonek -55
+KPX Y o -110
+KPX Y oacute -110
+KPX Y ocircumflex -110
+KPX Y odieresis -70
+KPX Y ograve -70
+KPX Y ohungarumlaut -110
+KPX Y omacron -70
+KPX Y oslash -110
+KPX Y otilde -70
+KPX Y period -129
+KPX Y semicolon -92
+KPX Y u -111
+KPX Y uacute -111
+KPX Y ucircumflex -111
+KPX Y udieresis -71
+KPX Y ugrave -71
+KPX Y uhungarumlaut -111
+KPX Y umacron -71
+KPX Y uogonek -111
+KPX Y uring -111
+KPX Yacute A -120
+KPX Yacute Aacute -120
+KPX Yacute Abreve -120
+KPX Yacute Acircumflex -120
+KPX Yacute Adieresis -120
+KPX Yacute Agrave -120
+KPX Yacute Amacron -120
+KPX Yacute Aogonek -120
+KPX Yacute Aring -120
+KPX Yacute Atilde -120
+KPX Yacute O -30
+KPX Yacute Oacute -30
+KPX Yacute Ocircumflex -30
+KPX Yacute Odieresis -30
+KPX Yacute Ograve -30
+KPX Yacute Ohungarumlaut -30
+KPX Yacute Omacron -30
+KPX Yacute Oslash -30
+KPX Yacute Otilde -30
+KPX Yacute a -100
+KPX Yacute aacute -100
+KPX Yacute abreve -100
+KPX Yacute acircumflex -100
+KPX Yacute adieresis -60
+KPX Yacute agrave -60
+KPX Yacute amacron -60
+KPX Yacute aogonek -100
+KPX Yacute aring -100
+KPX Yacute atilde -60
+KPX Yacute colon -92
+KPX Yacute comma -129
+KPX Yacute e -100
+KPX Yacute eacute -100
+KPX Yacute ecaron -100
+KPX Yacute ecircumflex -100
+KPX Yacute edieresis -60
+KPX Yacute edotaccent -100
+KPX Yacute egrave -60
+KPX Yacute emacron -60
+KPX Yacute eogonek -100
+KPX Yacute hyphen -111
+KPX Yacute i -55
+KPX Yacute iacute -55
+KPX Yacute iogonek -55
+KPX Yacute o -110
+KPX Yacute oacute -110
+KPX Yacute ocircumflex -110
+KPX Yacute odieresis -70
+KPX Yacute ograve -70
+KPX Yacute ohungarumlaut -110
+KPX Yacute omacron -70
+KPX Yacute oslash -110
+KPX Yacute otilde -70
+KPX Yacute period -129
+KPX Yacute semicolon -92
+KPX Yacute u -111
+KPX Yacute uacute -111
+KPX Yacute ucircumflex -111
+KPX Yacute udieresis -71
+KPX Yacute ugrave -71
+KPX Yacute uhungarumlaut -111
+KPX Yacute umacron -71
+KPX Yacute uogonek -111
+KPX Yacute uring -111
+KPX Ydieresis A -120
+KPX Ydieresis Aacute -120
+KPX Ydieresis Abreve -120
+KPX Ydieresis Acircumflex -120
+KPX Ydieresis Adieresis -120
+KPX Ydieresis Agrave -120
+KPX Ydieresis Amacron -120
+KPX Ydieresis Aogonek -120
+KPX Ydieresis Aring -120
+KPX Ydieresis Atilde -120
+KPX Ydieresis O -30
+KPX Ydieresis Oacute -30
+KPX Ydieresis Ocircumflex -30
+KPX Ydieresis Odieresis -30
+KPX Ydieresis Ograve -30
+KPX Ydieresis Ohungarumlaut -30
+KPX Ydieresis Omacron -30
+KPX Ydieresis Oslash -30
+KPX Ydieresis Otilde -30
+KPX Ydieresis a -100
+KPX Ydieresis aacute -100
+KPX Ydieresis abreve -100
+KPX Ydieresis acircumflex -100
+KPX Ydieresis adieresis -60
+KPX Ydieresis agrave -60
+KPX Ydieresis amacron -60
+KPX Ydieresis aogonek -100
+KPX Ydieresis aring -100
+KPX Ydieresis atilde -100
+KPX Ydieresis colon -92
+KPX Ydieresis comma -129
+KPX Ydieresis e -100
+KPX Ydieresis eacute -100
+KPX Ydieresis ecaron -100
+KPX Ydieresis ecircumflex -100
+KPX Ydieresis edieresis -60
+KPX Ydieresis edotaccent -100
+KPX Ydieresis egrave -60
+KPX Ydieresis emacron -60
+KPX Ydieresis eogonek -100
+KPX Ydieresis hyphen -111
+KPX Ydieresis i -55
+KPX Ydieresis iacute -55
+KPX Ydieresis iogonek -55
+KPX Ydieresis o -110
+KPX Ydieresis oacute -110
+KPX Ydieresis ocircumflex -110
+KPX Ydieresis odieresis -70
+KPX Ydieresis ograve -70
+KPX Ydieresis ohungarumlaut -110
+KPX Ydieresis omacron -70
+KPX Ydieresis oslash -110
+KPX Ydieresis otilde -70
+KPX Ydieresis period -129
+KPX Ydieresis semicolon -92
+KPX Ydieresis u -111
+KPX Ydieresis uacute -111
+KPX Ydieresis ucircumflex -111
+KPX Ydieresis udieresis -71
+KPX Ydieresis ugrave -71
+KPX Ydieresis uhungarumlaut -111
+KPX Ydieresis umacron -71
+KPX Ydieresis uogonek -111
+KPX Ydieresis uring -111
+KPX a v -20
+KPX a w -15
+KPX aacute v -20
+KPX aacute w -15
+KPX abreve v -20
+KPX abreve w -15
+KPX acircumflex v -20
+KPX acircumflex w -15
+KPX adieresis v -20
+KPX adieresis w -15
+KPX agrave v -20
+KPX agrave w -15
+KPX amacron v -20
+KPX amacron w -15
+KPX aogonek v -20
+KPX aogonek w -15
+KPX aring v -20
+KPX aring w -15
+KPX atilde v -20
+KPX atilde w -15
+KPX b period -40
+KPX b u -20
+KPX b uacute -20
+KPX b ucircumflex -20
+KPX b udieresis -20
+KPX b ugrave -20
+KPX b uhungarumlaut -20
+KPX b umacron -20
+KPX b uogonek -20
+KPX b uring -20
+KPX b v -15
+KPX c y -15
+KPX c yacute -15
+KPX c ydieresis -15
+KPX cacute y -15
+KPX cacute yacute -15
+KPX cacute ydieresis -15
+KPX ccaron y -15
+KPX ccaron yacute -15
+KPX ccaron ydieresis -15
+KPX ccedilla y -15
+KPX ccedilla yacute -15
+KPX ccedilla ydieresis -15
+KPX comma quotedblright -70
+KPX comma quoteright -70
+KPX e g -15
+KPX e gbreve -15
+KPX e gcommaaccent -15
+KPX e v -25
+KPX e w -25
+KPX e x -15
+KPX e y -15
+KPX e yacute -15
+KPX e ydieresis -15
+KPX eacute g -15
+KPX eacute gbreve -15
+KPX eacute gcommaaccent -15
+KPX eacute v -25
+KPX eacute w -25
+KPX eacute x -15
+KPX eacute y -15
+KPX eacute yacute -15
+KPX eacute ydieresis -15
+KPX ecaron g -15
+KPX ecaron gbreve -15
+KPX ecaron gcommaaccent -15
+KPX ecaron v -25
+KPX ecaron w -25
+KPX ecaron x -15
+KPX ecaron y -15
+KPX ecaron yacute -15
+KPX ecaron ydieresis -15
+KPX ecircumflex g -15
+KPX ecircumflex gbreve -15
+KPX ecircumflex gcommaaccent -15
+KPX ecircumflex v -25
+KPX ecircumflex w -25
+KPX ecircumflex x -15
+KPX ecircumflex y -15
+KPX ecircumflex yacute -15
+KPX ecircumflex ydieresis -15
+KPX edieresis g -15
+KPX edieresis gbreve -15
+KPX edieresis gcommaaccent -15
+KPX edieresis v -25
+KPX edieresis w -25
+KPX edieresis x -15
+KPX edieresis y -15
+KPX edieresis yacute -15
+KPX edieresis ydieresis -15
+KPX edotaccent g -15
+KPX edotaccent gbreve -15
+KPX edotaccent gcommaaccent -15
+KPX edotaccent v -25
+KPX edotaccent w -25
+KPX edotaccent x -15
+KPX edotaccent y -15
+KPX edotaccent yacute -15
+KPX edotaccent ydieresis -15
+KPX egrave g -15
+KPX egrave gbreve -15
+KPX egrave gcommaaccent -15
+KPX egrave v -25
+KPX egrave w -25
+KPX egrave x -15
+KPX egrave y -15
+KPX egrave yacute -15
+KPX egrave ydieresis -15
+KPX emacron g -15
+KPX emacron gbreve -15
+KPX emacron gcommaaccent -15
+KPX emacron v -25
+KPX emacron w -25
+KPX emacron x -15
+KPX emacron y -15
+KPX emacron yacute -15
+KPX emacron ydieresis -15
+KPX eogonek g -15
+KPX eogonek gbreve -15
+KPX eogonek gcommaaccent -15
+KPX eogonek v -25
+KPX eogonek w -25
+KPX eogonek x -15
+KPX eogonek y -15
+KPX eogonek yacute -15
+KPX eogonek ydieresis -15
+KPX f a -10
+KPX f aacute -10
+KPX f abreve -10
+KPX f acircumflex -10
+KPX f adieresis -10
+KPX f agrave -10
+KPX f amacron -10
+KPX f aogonek -10
+KPX f aring -10
+KPX f atilde -10
+KPX f dotlessi -50
+KPX f f -25
+KPX f i -20
+KPX f iacute -20
+KPX f quoteright 55
+KPX g a -5
+KPX g aacute -5
+KPX g abreve -5
+KPX g acircumflex -5
+KPX g adieresis -5
+KPX g agrave -5
+KPX g amacron -5
+KPX g aogonek -5
+KPX g aring -5
+KPX g atilde -5
+KPX gbreve a -5
+KPX gbreve aacute -5
+KPX gbreve abreve -5
+KPX gbreve acircumflex -5
+KPX gbreve adieresis -5
+KPX gbreve agrave -5
+KPX gbreve amacron -5
+KPX gbreve aogonek -5
+KPX gbreve aring -5
+KPX gbreve atilde -5
+KPX gcommaaccent a -5
+KPX gcommaaccent aacute -5
+KPX gcommaaccent abreve -5
+KPX gcommaaccent acircumflex -5
+KPX gcommaaccent adieresis -5
+KPX gcommaaccent agrave -5
+KPX gcommaaccent amacron -5
+KPX gcommaaccent aogonek -5
+KPX gcommaaccent aring -5
+KPX gcommaaccent atilde -5
+KPX h y -5
+KPX h yacute -5
+KPX h ydieresis -5
+KPX i v -25
+KPX iacute v -25
+KPX icircumflex v -25
+KPX idieresis v -25
+KPX igrave v -25
+KPX imacron v -25
+KPX iogonek v -25
+KPX k e -10
+KPX k eacute -10
+KPX k ecaron -10
+KPX k ecircumflex -10
+KPX k edieresis -10
+KPX k edotaccent -10
+KPX k egrave -10
+KPX k emacron -10
+KPX k eogonek -10
+KPX k o -10
+KPX k oacute -10
+KPX k ocircumflex -10
+KPX k odieresis -10
+KPX k ograve -10
+KPX k ohungarumlaut -10
+KPX k omacron -10
+KPX k oslash -10
+KPX k otilde -10
+KPX k y -15
+KPX k yacute -15
+KPX k ydieresis -15
+KPX kcommaaccent e -10
+KPX kcommaaccent eacute -10
+KPX kcommaaccent ecaron -10
+KPX kcommaaccent ecircumflex -10
+KPX kcommaaccent edieresis -10
+KPX kcommaaccent edotaccent -10
+KPX kcommaaccent egrave -10
+KPX kcommaaccent emacron -10
+KPX kcommaaccent eogonek -10
+KPX kcommaaccent o -10
+KPX kcommaaccent oacute -10
+KPX kcommaaccent ocircumflex -10
+KPX kcommaaccent odieresis -10
+KPX kcommaaccent ograve -10
+KPX kcommaaccent ohungarumlaut -10
+KPX kcommaaccent omacron -10
+KPX kcommaaccent oslash -10
+KPX kcommaaccent otilde -10
+KPX kcommaaccent y -15
+KPX kcommaaccent yacute -15
+KPX kcommaaccent ydieresis -15
+KPX l w -10
+KPX lacute w -10
+KPX lcommaaccent w -10
+KPX lslash w -10
+KPX n v -40
+KPX n y -15
+KPX n yacute -15
+KPX n ydieresis -15
+KPX nacute v -40
+KPX nacute y -15
+KPX nacute yacute -15
+KPX nacute ydieresis -15
+KPX ncaron v -40
+KPX ncaron y -15
+KPX ncaron yacute -15
+KPX ncaron ydieresis -15
+KPX ncommaaccent v -40
+KPX ncommaaccent y -15
+KPX ncommaaccent yacute -15
+KPX ncommaaccent ydieresis -15
+KPX ntilde v -40
+KPX ntilde y -15
+KPX ntilde yacute -15
+KPX ntilde ydieresis -15
+KPX o v -15
+KPX o w -25
+KPX o y -10
+KPX o yacute -10
+KPX o ydieresis -10
+KPX oacute v -15
+KPX oacute w -25
+KPX oacute y -10
+KPX oacute yacute -10
+KPX oacute ydieresis -10
+KPX ocircumflex v -15
+KPX ocircumflex w -25
+KPX ocircumflex y -10
+KPX ocircumflex yacute -10
+KPX ocircumflex ydieresis -10
+KPX odieresis v -15
+KPX odieresis w -25
+KPX odieresis y -10
+KPX odieresis yacute -10
+KPX odieresis ydieresis -10
+KPX ograve v -15
+KPX ograve w -25
+KPX ograve y -10
+KPX ograve yacute -10
+KPX ograve ydieresis -10
+KPX ohungarumlaut v -15
+KPX ohungarumlaut w -25
+KPX ohungarumlaut y -10
+KPX ohungarumlaut yacute -10
+KPX ohungarumlaut ydieresis -10
+KPX omacron v -15
+KPX omacron w -25
+KPX omacron y -10
+KPX omacron yacute -10
+KPX omacron ydieresis -10
+KPX oslash v -15
+KPX oslash w -25
+KPX oslash y -10
+KPX oslash yacute -10
+KPX oslash ydieresis -10
+KPX otilde v -15
+KPX otilde w -25
+KPX otilde y -10
+KPX otilde yacute -10
+KPX otilde ydieresis -10
+KPX p y -10
+KPX p yacute -10
+KPX p ydieresis -10
+KPX period quotedblright -70
+KPX period quoteright -70
+KPX quotedblleft A -80
+KPX quotedblleft Aacute -80
+KPX quotedblleft Abreve -80
+KPX quotedblleft Acircumflex -80
+KPX quotedblleft Adieresis -80
+KPX quotedblleft Agrave -80
+KPX quotedblleft Amacron -80
+KPX quotedblleft Aogonek -80
+KPX quotedblleft Aring -80
+KPX quotedblleft Atilde -80
+KPX quoteleft A -80
+KPX quoteleft Aacute -80
+KPX quoteleft Abreve -80
+KPX quoteleft Acircumflex -80
+KPX quoteleft Adieresis -80
+KPX quoteleft Agrave -80
+KPX quoteleft Amacron -80
+KPX quoteleft Aogonek -80
+KPX quoteleft Aring -80
+KPX quoteleft Atilde -80
+KPX quoteleft quoteleft -74
+KPX quoteright d -50
+KPX quoteright dcroat -50
+KPX quoteright l -10
+KPX quoteright lacute -10
+KPX quoteright lcommaaccent -10
+KPX quoteright lslash -10
+KPX quoteright quoteright -74
+KPX quoteright r -50
+KPX quoteright racute -50
+KPX quoteright rcaron -50
+KPX quoteright rcommaaccent -50
+KPX quoteright s -55
+KPX quoteright sacute -55
+KPX quoteright scaron -55
+KPX quoteright scedilla -55
+KPX quoteright scommaaccent -55
+KPX quoteright space -74
+KPX quoteright t -18
+KPX quoteright tcommaaccent -18
+KPX quoteright v -50
+KPX r comma -40
+KPX r g -18
+KPX r gbreve -18
+KPX r gcommaaccent -18
+KPX r hyphen -20
+KPX r period -55
+KPX racute comma -40
+KPX racute g -18
+KPX racute gbreve -18
+KPX racute gcommaaccent -18
+KPX racute hyphen -20
+KPX racute period -55
+KPX rcaron comma -40
+KPX rcaron g -18
+KPX rcaron gbreve -18
+KPX rcaron gcommaaccent -18
+KPX rcaron hyphen -20
+KPX rcaron period -55
+KPX rcommaaccent comma -40
+KPX rcommaaccent g -18
+KPX rcommaaccent gbreve -18
+KPX rcommaaccent gcommaaccent -18
+KPX rcommaaccent hyphen -20
+KPX rcommaaccent period -55
+KPX space A -55
+KPX space Aacute -55
+KPX space Abreve -55
+KPX space Acircumflex -55
+KPX space Adieresis -55
+KPX space Agrave -55
+KPX space Amacron -55
+KPX space Aogonek -55
+KPX space Aring -55
+KPX space Atilde -55
+KPX space T -18
+KPX space Tcaron -18
+KPX space Tcommaaccent -18
+KPX space V -50
+KPX space W -30
+KPX space Y -90
+KPX space Yacute -90
+KPX space Ydieresis -90
+KPX v a -25
+KPX v aacute -25
+KPX v abreve -25
+KPX v acircumflex -25
+KPX v adieresis -25
+KPX v agrave -25
+KPX v amacron -25
+KPX v aogonek -25
+KPX v aring -25
+KPX v atilde -25
+KPX v comma -65
+KPX v e -15
+KPX v eacute -15
+KPX v ecaron -15
+KPX v ecircumflex -15
+KPX v edieresis -15
+KPX v edotaccent -15
+KPX v egrave -15
+KPX v emacron -15
+KPX v eogonek -15
+KPX v o -20
+KPX v oacute -20
+KPX v ocircumflex -20
+KPX v odieresis -20
+KPX v ograve -20
+KPX v ohungarumlaut -20
+KPX v omacron -20
+KPX v oslash -20
+KPX v otilde -20
+KPX v period -65
+KPX w a -10
+KPX w aacute -10
+KPX w abreve -10
+KPX w acircumflex -10
+KPX w adieresis -10
+KPX w agrave -10
+KPX w amacron -10
+KPX w aogonek -10
+KPX w aring -10
+KPX w atilde -10
+KPX w comma -65
+KPX w o -10
+KPX w oacute -10
+KPX w ocircumflex -10
+KPX w odieresis -10
+KPX w ograve -10
+KPX w ohungarumlaut -10
+KPX w omacron -10
+KPX w oslash -10
+KPX w otilde -10
+KPX w period -65
+KPX x e -15
+KPX x eacute -15
+KPX x ecaron -15
+KPX x ecircumflex -15
+KPX x edieresis -15
+KPX x edotaccent -15
+KPX x egrave -15
+KPX x emacron -15
+KPX x eogonek -15
+KPX y comma -65
+KPX y period -65
+KPX yacute comma -65
+KPX yacute period -65
+KPX ydieresis comma -65
+KPX ydieresis period -65
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/test/user-template/user/psprint/fontmetric/ZapfDingbats.afm b/test/user-template/user/psprint/fontmetric/ZapfDingbats.afm
new file mode 100644
index 000000000000..7695ff0e87ba
--- /dev/null
+++ b/test/user-template/user/psprint/fontmetric/ZapfDingbats.afm
@@ -0,0 +1,224 @@
+StartFontMetrics 4.1
+Comment Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.
+Comment Creation Date: Thu May 1 15:14:13 1997
+Comment UniqueID 43082
+Comment VMusage 45775 55535
+FontName ZapfDingbats
+FullName ITC Zapf Dingbats
+FamilyName ITC Zapf Dingbats
+Weight Medium
+ItalicAngle 0
+IsFixedPitch false
+FontBBox -1 -143 981 820
+UnderlinePosition -100
+UnderlineThickness 50
+Version 002.000
+Notice Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation.
+EncodingScheme FontSpecific
+StdHW 28
+StdVW 90
+StartCharMetrics 202
+C 32 ; WX 278 ; N space ; B 0 0 0 0 ;
+C 33 ; WX 974 ; N a1 ; B 35 72 939 621 ;
+C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ;
+C 35 ; WX 974 ; N a202 ; B 35 72 939 621 ;
+C 36 ; WX 980 ; N a3 ; B 35 0 945 692 ;
+C 37 ; WX 719 ; N a4 ; B 34 139 685 566 ;
+C 38 ; WX 789 ; N a5 ; B 35 -14 755 705 ;
+C 39 ; WX 790 ; N a119 ; B 35 -14 755 705 ;
+C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ;
+C 41 ; WX 690 ; N a117 ; B 34 138 655 553 ;
+C 42 ; WX 960 ; N a11 ; B 35 123 925 568 ;
+C 43 ; WX 939 ; N a12 ; B 35 134 904 559 ;
+C 44 ; WX 549 ; N a13 ; B 29 -11 516 705 ;
+C 45 ; WX 855 ; N a14 ; B 34 59 820 632 ;
+C 46 ; WX 911 ; N a15 ; B 35 50 876 642 ;
+C 47 ; WX 933 ; N a16 ; B 35 139 899 550 ;
+C 48 ; WX 911 ; N a105 ; B 35 50 876 642 ;
+C 49 ; WX 945 ; N a17 ; B 35 139 909 553 ;
+C 50 ; WX 974 ; N a18 ; B 35 104 938 587 ;
+C 51 ; WX 755 ; N a19 ; B 34 -13 721 705 ;
+C 52 ; WX 846 ; N a20 ; B 36 -14 811 705 ;
+C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ;
+C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ;
+C 55 ; WX 571 ; N a23 ; B -1 -68 571 661 ;
+C 56 ; WX 677 ; N a24 ; B 36 -13 642 705 ;
+C 57 ; WX 763 ; N a25 ; B 35 0 728 692 ;
+C 58 ; WX 760 ; N a26 ; B 35 0 726 692 ;
+C 59 ; WX 759 ; N a27 ; B 35 0 725 692 ;
+C 60 ; WX 754 ; N a28 ; B 35 0 720 692 ;
+C 61 ; WX 494 ; N a6 ; B 35 0 460 692 ;
+C 62 ; WX 552 ; N a7 ; B 35 0 517 692 ;
+C 63 ; WX 537 ; N a8 ; B 35 0 503 692 ;
+C 64 ; WX 577 ; N a9 ; B 35 96 542 596 ;
+C 65 ; WX 692 ; N a10 ; B 35 -14 657 705 ;
+C 66 ; WX 786 ; N a29 ; B 35 -14 751 705 ;
+C 67 ; WX 788 ; N a30 ; B 35 -14 752 705 ;
+C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ;
+C 69 ; WX 790 ; N a32 ; B 35 -14 756 705 ;
+C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ;
+C 71 ; WX 794 ; N a34 ; B 35 -13 759 705 ;
+C 72 ; WX 816 ; N a35 ; B 35 -14 782 705 ;
+C 73 ; WX 823 ; N a36 ; B 35 -14 787 705 ;
+C 74 ; WX 789 ; N a37 ; B 35 -14 754 705 ;
+C 75 ; WX 841 ; N a38 ; B 35 -14 807 705 ;
+C 76 ; WX 823 ; N a39 ; B 35 -14 789 705 ;
+C 77 ; WX 833 ; N a40 ; B 35 -14 798 705 ;
+C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ;
+C 79 ; WX 831 ; N a42 ; B 35 -14 796 705 ;
+C 80 ; WX 923 ; N a43 ; B 35 -14 888 705 ;
+C 81 ; WX 744 ; N a44 ; B 35 0 710 692 ;
+C 82 ; WX 723 ; N a45 ; B 35 0 688 692 ;
+C 83 ; WX 749 ; N a46 ; B 35 0 714 692 ;
+C 84 ; WX 790 ; N a47 ; B 34 -14 756 705 ;
+C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ;
+C 86 ; WX 695 ; N a49 ; B 35 -14 661 706 ;
+C 87 ; WX 776 ; N a50 ; B 35 -6 741 699 ;
+C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ;
+C 89 ; WX 792 ; N a52 ; B 35 -14 757 705 ;
+C 90 ; WX 759 ; N a53 ; B 35 0 725 692 ;
+C 91 ; WX 707 ; N a54 ; B 35 -13 672 704 ;
+C 92 ; WX 708 ; N a55 ; B 35 -14 672 705 ;
+C 93 ; WX 682 ; N a56 ; B 35 -14 647 705 ;
+C 94 ; WX 701 ; N a57 ; B 35 -14 666 705 ;
+C 95 ; WX 826 ; N a58 ; B 35 -14 791 705 ;
+C 96 ; WX 815 ; N a59 ; B 35 -14 780 705 ;
+C 97 ; WX 789 ; N a60 ; B 35 -14 754 705 ;
+C 98 ; WX 789 ; N a61 ; B 35 -14 754 705 ;
+C 99 ; WX 707 ; N a62 ; B 34 -14 673 705 ;
+C 100 ; WX 687 ; N a63 ; B 36 0 651 692 ;
+C 101 ; WX 696 ; N a64 ; B 35 0 661 691 ;
+C 102 ; WX 689 ; N a65 ; B 35 0 655 692 ;
+C 103 ; WX 786 ; N a66 ; B 34 -14 751 705 ;
+C 104 ; WX 787 ; N a67 ; B 35 -14 752 705 ;
+C 105 ; WX 713 ; N a68 ; B 35 -14 678 705 ;
+C 106 ; WX 791 ; N a69 ; B 35 -14 756 705 ;
+C 107 ; WX 785 ; N a70 ; B 36 -14 751 705 ;
+C 108 ; WX 791 ; N a71 ; B 35 -14 757 705 ;
+C 109 ; WX 873 ; N a72 ; B 35 -14 838 705 ;
+C 110 ; WX 761 ; N a73 ; B 35 0 726 692 ;
+C 111 ; WX 762 ; N a74 ; B 35 0 727 692 ;
+C 112 ; WX 762 ; N a203 ; B 35 0 727 692 ;
+C 113 ; WX 759 ; N a75 ; B 35 0 725 692 ;
+C 114 ; WX 759 ; N a204 ; B 35 0 725 692 ;
+C 115 ; WX 892 ; N a76 ; B 35 0 858 705 ;
+C 116 ; WX 892 ; N a77 ; B 35 -14 858 692 ;
+C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ;
+C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ;
+C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ;
+C 120 ; WX 138 ; N a82 ; B 35 0 104 692 ;
+C 121 ; WX 277 ; N a83 ; B 35 0 242 692 ;
+C 122 ; WX 415 ; N a84 ; B 35 0 380 692 ;
+C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ;
+C 124 ; WX 392 ; N a98 ; B 34 263 357 705 ;
+C 125 ; WX 668 ; N a99 ; B 35 263 633 705 ;
+C 126 ; WX 668 ; N a100 ; B 36 263 634 705 ;
+C 128 ; WX 390 ; N a89 ; B 35 -14 356 705 ;
+C 129 ; WX 390 ; N a90 ; B 35 -14 355 705 ;
+C 130 ; WX 317 ; N a93 ; B 35 0 283 692 ;
+C 131 ; WX 317 ; N a94 ; B 35 0 283 692 ;
+C 132 ; WX 276 ; N a91 ; B 35 0 242 692 ;
+C 133 ; WX 276 ; N a92 ; B 35 0 242 692 ;
+C 134 ; WX 509 ; N a205 ; B 35 0 475 692 ;
+C 135 ; WX 509 ; N a85 ; B 35 0 475 692 ;
+C 136 ; WX 410 ; N a206 ; B 35 0 375 692 ;
+C 137 ; WX 410 ; N a86 ; B 35 0 375 692 ;
+C 138 ; WX 234 ; N a87 ; B 35 -14 199 705 ;
+C 139 ; WX 234 ; N a88 ; B 35 -14 199 705 ;
+C 140 ; WX 334 ; N a95 ; B 35 0 299 692 ;
+C 141 ; WX 334 ; N a96 ; B 35 0 299 692 ;
+C 161 ; WX 732 ; N a101 ; B 35 -143 697 806 ;
+C 162 ; WX 544 ; N a102 ; B 56 -14 488 706 ;
+C 163 ; WX 544 ; N a103 ; B 34 -14 508 705 ;
+C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ;
+C 165 ; WX 667 ; N a106 ; B 35 -14 633 705 ;
+C 166 ; WX 760 ; N a107 ; B 35 -14 726 705 ;
+C 167 ; WX 760 ; N a108 ; B 0 121 758 569 ;
+C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ;
+C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ;
+C 170 ; WX 694 ; N a110 ; B 35 -14 659 705 ;
+C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ;
+C 172 ; WX 788 ; N a120 ; B 35 -14 754 705 ;
+C 173 ; WX 788 ; N a121 ; B 35 -14 754 705 ;
+C 174 ; WX 788 ; N a122 ; B 35 -14 754 705 ;
+C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ;
+C 176 ; WX 788 ; N a124 ; B 35 -14 754 705 ;
+C 177 ; WX 788 ; N a125 ; B 35 -14 754 705 ;
+C 178 ; WX 788 ; N a126 ; B 35 -14 754 705 ;
+C 179 ; WX 788 ; N a127 ; B 35 -14 754 705 ;
+C 180 ; WX 788 ; N a128 ; B 35 -14 754 705 ;
+C 181 ; WX 788 ; N a129 ; B 35 -14 754 705 ;
+C 182 ; WX 788 ; N a130 ; B 35 -14 754 705 ;
+C 183 ; WX 788 ; N a131 ; B 35 -14 754 705 ;
+C 184 ; WX 788 ; N a132 ; B 35 -14 754 705 ;
+C 185 ; WX 788 ; N a133 ; B 35 -14 754 705 ;
+C 186 ; WX 788 ; N a134 ; B 35 -14 754 705 ;
+C 187 ; WX 788 ; N a135 ; B 35 -14 754 705 ;
+C 188 ; WX 788 ; N a136 ; B 35 -14 754 705 ;
+C 189 ; WX 788 ; N a137 ; B 35 -14 754 705 ;
+C 190 ; WX 788 ; N a138 ; B 35 -14 754 705 ;
+C 191 ; WX 788 ; N a139 ; B 35 -14 754 705 ;
+C 192 ; WX 788 ; N a140 ; B 35 -14 754 705 ;
+C 193 ; WX 788 ; N a141 ; B 35 -14 754 705 ;
+C 194 ; WX 788 ; N a142 ; B 35 -14 754 705 ;
+C 195 ; WX 788 ; N a143 ; B 35 -14 754 705 ;
+C 196 ; WX 788 ; N a144 ; B 35 -14 754 705 ;
+C 197 ; WX 788 ; N a145 ; B 35 -14 754 705 ;
+C 198 ; WX 788 ; N a146 ; B 35 -14 754 705 ;
+C 199 ; WX 788 ; N a147 ; B 35 -14 754 705 ;
+C 200 ; WX 788 ; N a148 ; B 35 -14 754 705 ;
+C 201 ; WX 788 ; N a149 ; B 35 -14 754 705 ;
+C 202 ; WX 788 ; N a150 ; B 35 -14 754 705 ;
+C 203 ; WX 788 ; N a151 ; B 35 -14 754 705 ;
+C 204 ; WX 788 ; N a152 ; B 35 -14 754 705 ;
+C 205 ; WX 788 ; N a153 ; B 35 -14 754 705 ;
+C 206 ; WX 788 ; N a154 ; B 35 -14 754 705 ;
+C 207 ; WX 788 ; N a155 ; B 35 -14 754 705 ;
+C 208 ; WX 788 ; N a156 ; B 35 -14 754 705 ;
+C 209 ; WX 788 ; N a157 ; B 35 -14 754 705 ;
+C 210 ; WX 788 ; N a158 ; B 35 -14 754 705 ;
+C 211 ; WX 788 ; N a159 ; B 35 -14 754 705 ;
+C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ;
+C 213 ; WX 838 ; N a161 ; B 35 152 803 540 ;
+C 214 ; WX 1016 ; N a163 ; B 34 152 981 540 ;
+C 215 ; WX 458 ; N a164 ; B 35 -127 422 820 ;
+C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ;
+C 217 ; WX 924 ; N a165 ; B 35 140 890 552 ;
+C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ;
+C 219 ; WX 918 ; N a166 ; B 35 166 884 526 ;
+C 220 ; WX 927 ; N a167 ; B 35 32 892 660 ;
+C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ;
+C 222 ; WX 928 ; N a169 ; B 35 128 893 563 ;
+C 223 ; WX 834 ; N a170 ; B 35 155 799 537 ;
+C 224 ; WX 873 ; N a171 ; B 35 93 838 599 ;
+C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ;
+C 226 ; WX 924 ; N a173 ; B 35 98 889 594 ;
+C 227 ; WX 924 ; N a162 ; B 35 98 889 594 ;
+C 228 ; WX 917 ; N a174 ; B 35 0 882 692 ;
+C 229 ; WX 930 ; N a175 ; B 35 84 896 608 ;
+C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ;
+C 231 ; WX 463 ; N a177 ; B 35 -99 429 791 ;
+C 232 ; WX 883 ; N a178 ; B 35 71 848 623 ;
+C 233 ; WX 836 ; N a179 ; B 35 44 802 648 ;
+C 234 ; WX 836 ; N a193 ; B 35 44 802 648 ;
+C 235 ; WX 867 ; N a180 ; B 35 101 832 591 ;
+C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ;
+C 237 ; WX 696 ; N a181 ; B 35 44 661 648 ;
+C 238 ; WX 696 ; N a200 ; B 35 44 661 648 ;
+C 239 ; WX 874 ; N a182 ; B 35 77 840 619 ;
+C 241 ; WX 874 ; N a201 ; B 35 73 840 615 ;
+C 242 ; WX 760 ; N a183 ; B 35 0 725 692 ;
+C 243 ; WX 946 ; N a184 ; B 35 160 911 533 ;
+C 244 ; WX 771 ; N a197 ; B 34 37 736 655 ;
+C 245 ; WX 865 ; N a185 ; B 35 207 830 481 ;
+C 246 ; WX 771 ; N a194 ; B 34 37 736 655 ;
+C 247 ; WX 888 ; N a198 ; B 34 -19 853 712 ;
+C 248 ; WX 967 ; N a186 ; B 35 124 932 568 ;
+C 249 ; WX 888 ; N a195 ; B 34 -19 853 712 ;
+C 250 ; WX 831 ; N a187 ; B 35 113 796 579 ;
+C 251 ; WX 873 ; N a188 ; B 36 118 838 578 ;
+C 252 ; WX 927 ; N a189 ; B 35 150 891 542 ;
+C 253 ; WX 970 ; N a190 ; B 35 76 931 616 ;
+C 254 ; WX 918 ; N a191 ; B 34 99 884 593 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/test/user-template/user/psprint/pspfontcache b/test/user-template/user/psprint/pspfontcache
new file mode 100644
index 000000000000..aadf16e80f64
--- /dev/null
+++ b/test/user-template/user/psprint/pspfontcache
@@ -0,0 +1,1198 @@
+PspFontCacheFile format 4
+EmptyFontCacheDirectory:1317234604:/devel/libo/libo1/test/user-template/user/fonts
+FontCacheDirectory:1310697283:/usr/share/fonts/URW
+File:b018012l.pfb
+1;1
+URW Bookman L
+-1;URWBookmanL-Ligh;0;6;0;2;91;942;268;210;0;1266;681;1266;681;0;0;0;b018012l.afm;Light
+
+File:n022004l.pfb
+1;1
+Nimbus Mono L
+-1;NimbusMonL-Bold;0;8;0;1;91;1029;278;307;0;888;583;888;583;0;0;0;n022004l.afm;Bold
+
+File:p052003l.pfb
+1;1
+URW Palladio L
+-1;URWPalladioL-Roma;0;6;0;2;91;993;283;276;0;1079;692;1079;692;0;0;0;p052003l.afm;Roman
+
+File:s050000l.pfb
+1;1
+Standard Symbols L
+-1;StandardSymL;0;5;0;2;10;1010;293;303;0;1090;673;1090;673;0;0;0;s050000l.afm;Regular
+
+File:bchr.pfa
+1;1
+Bitstream Charter
+-1;CharterBT-Roman;0;5;0;2;91;963;237;200;0;1194;672;1194;672;0;0;0;bchr.afm;Regular
+
+File:z003034l.pfb
+1;1
+URW Chancery L
+-1;URWChanceryL-MediItal;2;6;0;2;91;829;242;71;0;915;477;915;477;0;0;0;z003034l.afm;Medium Italic
+
+File:n019043l.pfb
+1;1
+Nimbus Sans L
+-1;NimbusSanL-ReguCond;0;5;0;2;91;959;282;241;0;893;718;893;718;0;0;0;n019043l.afm;Regular
+
+File:n021024l.pfb
+1;1
+Nimbus Roman No9 L
+-1;NimbusRomNo9L-MediItal;2;8;0;2;91;964;324;288;0;1230;669;1230;669;0;0;0;n021024l.afm;Medium Italic
+
+File:c059016l.pfb
+1;1
+Century Schoolbook L
+-1;CenturySchL-Bold;0;8;0;2;91;1011;372;383;0;1230;722;1230;722;0;0;0;c059016l.afm;Bold
+
+File:n022023l.pfb
+1;1
+Nimbus Mono L
+-1;NimbusMonL-ReguObli;1;5;0;1;91;970;240;210;0;902;563;902;563;0;0;0;n022023l.afm;Regular Oblique
+
+File:c059033l.pfb
+1;1
+Century Schoolbook L
+-1;CenturySchL-Ital;2;5;0;2;91;994;329;323;0;1289;722;1289;722;0;0;0;c059033l.afm;Italic
+
+File:n019003l.pfb
+1;1
+Nimbus Sans L
+-1;NimbusSanL-Regu;0;5;0;2;91;953;285;238;0;1028;729;1028;729;0;0;0;n019003l.afm;Regular
+
+File:a010013l.pfb
+1;1
+URW Gothic L
+-1;URWGothicL-Book;0;4;0;2;91;1009;240;249;0;1151;739;1151;739;0;0;0;a010013l.afm;Book
+
+File:p052024l.pfb
+1;1
+URW Palladio L
+-1;URWPalladioL-BoldItal;2;8;0;2;91;1000;300;300;0;1127;681;1127;681;0;0;0;p052024l.afm;Bold Italic
+
+File:b018035l.pfb
+1;1
+URW Bookman L
+-1;URWBookmanL-DemiBoldItal;2;8;0;2;91;1002;332;334;0;1333;681;1333;681;0;0;0;b018035l.afm;Demi Bold Italic
+
+File:a010015l.pfb
+1;1
+URW Gothic L
+-1;URWGothicL-Demi;0;7;0;2;91;1051;251;302;0;1248;739;1248;739;0;0;0;a010015l.afm;Demi
+
+File:n019064l.pfb
+1;1
+Nimbus Sans L
+-1;NimbusSanL-BoldCondItal;2;8;0;2;91;989;298;287;0;1001;718;1001;718;0;0;0;n019064l.afm;Bold Italic
+
+File:d050000l.pfb
+1;1
+Dingbats
+-1;Dingbats;0;5;0;2;10;819;143;-38;0;981;691;981;691;0;0;0;d050000l.afm;Regular
+
+File:a010033l.pfb
+1;1
+URW Gothic L
+-1;URWGothicL-BookObli;1;4;0;2;91;1007;232;239;0;1275;739;1275;739;0;0;0;a010033l.afm;Book Oblique
+
+File:n021004l.pfb
+1;1
+Nimbus Roman No9 L
+-1;NimbusRomNo9L-Medi;0;8;0;2;91;960;341;301;0;1093;676;1093;676;0;0;0;n021004l.afm;Medium
+
+File:n022003l.pfb
+1;1
+Nimbus Mono L
+-1;NimbusMonL-Regu;0;5;0;1;91;820;273;93;0;650;563;650;563;0;0;0;n022003l.afm;Regular
+
+File:n019024l.pfb
+1;1
+Nimbus Sans L
+-1;NimbusSanL-BoldItal;2;8;0;2;91;979;309;288;0;1199;729;1199;729;0;0;0;n019024l.afm;Bold Italic
+
+File:c059013l.pfb
+1;1
+Century Schoolbook L
+-1;CenturySchL-Roma;0;6;0;2;91;993;302;295;0;1188;722;1188;722;0;0;0;c059013l.afm;Roman
+
+File:a010035l.pfb
+1;1
+URW Gothic L
+-1;URWGothicL-DemiObli;1;7;0;2;91;1054;251;305;0;1281;739;1281;739;0;0;0;a010035l.afm;Demi Oblique
+
+File:bchbi.pfa
+1;1
+Bitstream Charter
+-1;CharterBT-BoldItalic;2;8;0;2;91;972;237;209;0;1243;672;1243;672;0;0;0;bchbi.afm;Bold Italic
+
+File:n021023l.pfb
+1;1
+Nimbus Roman No9 L
+-1;NimbusRomNo9L-ReguItal;2;5;0;2;91;924;270;194;0;1112;653;1112;653;0;0;0;n021023l.afm;Regular Italic
+
+File:p052004l.pfb
+1;1
+URW Palladio L
+-1;URWPalladioL-Bold;0;8;0;2;91;995;301;296;0;1177;681;1177;681;0;0;0;p052004l.afm;Bold
+
+File:b018015l.pfb
+1;1
+URW Bookman L
+-1;URWBookmanL-DemiBold;0;8;0;2;91;1000;306;306;0;1346;681;1346;681;0;0;0;b018015l.afm;Demi Bold
+
+File:n019044l.pfb
+1;1
+Nimbus Sans L
+-1;NimbusSanL-BoldCond;0;8;0;2;91;975;307;282;0;878;718;878;718;0;0;0;n019044l.afm;Bold
+
+File:b018032l.pfb
+1;1
+URW Bookman L
+-1;URWBookmanL-LighItal;2;5;0;2;91;962;281;243;0;1269;681;1269;681;0;0;0;b018032l.afm;Light Italic
+
+File:n022024l.pfb
+1;1
+Nimbus Mono L
+-1;NimbusMonL-BoldObli;1;8;0;1;91;1029;278;307;0;914;583;914;583;0;0;0;n022024l.afm;Bold Oblique
+
+File:p052023l.pfb
+1;1
+URW Palladio L
+-1;URWPalladioL-Ital;2;5;0;2;91;1005;305;310;0;1072;692;1072;692;0;0;0;p052023l.afm;Italic
+
+File:n019004l.pfb
+1;1
+Nimbus Sans L
+-1;NimbusSanL-Bold;0;8;0;2;91;979;307;286;0;1097;729;1097;729;0;0;0;n019004l.afm;Bold
+
+File:n019063l.pfb
+1;1
+Nimbus Sans L
+-1;NimbusSanL-ReguCondItal;2;5;0;2;91;959;286;245;0;1021;718;1021;718;0;0;0;n019063l.afm;Regular Italic
+
+File:bchri.pfa
+1;1
+Bitstream Charter
+-1;CharterBT-Italic;2;5;0;2;91;980;237;217;0;1175;672;1175;672;0;0;0;bchri.afm;Italic
+
+File:c059036l.pfb
+1;1
+Century Schoolbook L
+-1;CenturySchL-BoldItal;2;8;0;2;91;1006;371;377;0;1346;722;1346;722;0;0;0;c059036l.afm;Bold Italic
+
+File:n021003l.pfb
+1;1
+Nimbus Roman No9 L
+-1;NimbusRomNo9L-Regu;0;5;0;2;91;924;281;205;0;1031;662;1031;662;0;0;0;n021003l.afm;Regular
+
+File:n019023l.pfb
+1;1
+Nimbus Sans L
+-1;NimbusSanL-ReguItal;2;5;0;2;91;979;284;263;0;1130;729;1130;729;0;0;0;n019023l.afm;Regular Italic
+
+FontCacheDirectory:1308076632:/usr/share/fonts/Type1
+File:l048016t.pfa
+1;1
+Luxi Sans
+-1;LuxiSans-Bold;0;8;0;2;65535;1012;211;223;0;989;723;989;723;0;0;0;l048016t.afm;Bold
+
+File:c0632bt_.pfb
+1;1
+Bitstream Charter
+-1;CharterBT-Bold;0;8;0;2;91;963;237;200;0;1263;672;1263;672;0;0;0;c0632bt_.afm;Bold
+
+File:c0419bt_.pfb
+1;1
+Courier 10 Pitch
+-1;Courier10PitchBT-Roman;0;5;0;1;91;858;299;157;0;664;579;664;579;0;0;0;c0419bt_.afm;Regular
+
+File:l047013t.pfa
+1;1
+Luxi Mono
+-1;LuxiMono;0;5;0;1;65535;993;211;204;0;600;723;600;723;0;0;0;l047013t.afm;Regular
+
+File:c0611bt_.pfb
+1;1
+Courier 10 Pitch
+-1;Courier10PitchBT-BoldItalic;2;8;0;1;91;875;310;185;0;665;579;665;579;0;0;0;c0611bt_.afm;Bold Italic
+
+File:l048013t.pfa
+1;1
+Luxi Sans
+-1;LuxiSans;0;5;0;2;65535;993;211;204;0;988;723;988;723;0;0;0;l048013t.afm;Regular
+
+File:couri.pfa
+1;1
+Courier
+-1;Courier-Italic;2;5;0;1;91;841;288;129;0;800;563;800;563;0;0;0;couri.afm;Italic
+
+File:l047036t.pfa
+1;1
+Luxi Mono
+-1;LuxiMono-BoldOblique;1;8;0;1;65535;1012;211;223;0;755;723;755;723;0;0;0;l047036t.afm;Bold Oblique
+
+File:UTBI____.pfa
+1;1
+Utopia
+-1;Utopia-BoldItalic;2;8;0;2;91;916;250;166;0;1297;692;1297;692;0;0;0;UTBI____.afm;Bold Italic
+
+File:UTI_____.pfa
+1;1
+Utopia
+-1;Utopia-Italic;2;5;0;2;91;890;250;140;0;1205;692;1205;692;0;0;0;UTI_____.afm;Italic
+
+File:c0583bt_.pfb
+1;1
+Courier 10 Pitch
+-1;Courier10PitchBT-Bold;0;8;0;1;91;875;310;185;0;665;579;665;579;0;0;0;c0583bt_.afm;Bold
+
+File:l049016t.pfa
+1;1
+Luxi Serif
+-1;LuxiSerif-Bold;0;8;0;2;65535;1012;211;223;0;994;723;994;723;0;0;0;l049016t.afm;Bold
+
+File:c0648bt_.pfb
+1;1
+Bitstream Charter
+-1;CharterBT-Roman;0;5;0;2;91;963;237;200;0;1194;672;1194;672;0;0;0;c0648bt_.afm;Regular
+
+File:l047033t.pfa
+1;1
+Luxi Mono
+-1;LuxiMono-Oblique;1;5;0;1;65535;993;211;204;0;757;723;757;723;0;0;0;l047033t.afm;Oblique
+
+File:UTRG____.pfa
+1;1
+Utopia
+-1;Utopia-Regular;0;5;0;2;91;890;250;140;0;1158;692;1158;692;0;0;0;UTRG____.afm;Regular
+
+File:courbi.pfa
+1;1
+Courier
+-1;Courier-BoldItalic;2;8;0;1;91;839;288;127;0;860;583;860;583;0;0;0;courbi.afm;Bold Italic
+
+File:courb.pfa
+1;1
+Courier
+-1;Courier-Bold;0;8;0;1;91;847;288;135;0;746;583;746;583;0;0;0;courb.afm;Bold
+
+File:l049013t.pfa
+1;1
+Luxi Serif
+-1;LuxiSerif;0;5;0;2;65535;993;211;204;0;984;723;984;723;0;0;0;l049013t.afm;Regular
+
+File:c0582bt_.pfb
+1;1
+Courier 10 Pitch
+-1;Courier10PitchBT-Italic;2;5;0;1;91;858;299;157;0;664;579;664;579;0;0;0;c0582bt_.afm;Italic
+
+File:l048036t.pfa
+1;1
+Luxi Sans
+-1;LuxiSans-BoldOblique;1;8;0;2;65535;1012;211;223;0;1098;723;1098;723;0;0;0;l048036t.afm;Bold Oblique
+
+File:l049036t.pfa
+1;1
+Luxi Serif
+-1;LuxiSerif-BoldOblique;1;8;0;2;65535;1012;211;223;0;1139;723;1139;723;0;0;0;l049036t.afm;Bold Oblique
+
+File:cour.pfa
+1;1
+Courier
+-1;Courier;0;5;0;1;91;841;288;129;0;684;563;684;563;0;0;0;cour.afm;Regular
+
+File:UTB_____.pfa
+1;1
+Utopia
+-1;Utopia-Bold;0;8;0;2;91;916;250;166;0;1249;692;1249;692;0;0;0;UTB_____.afm;Bold
+
+File:l048033t.pfa
+1;1
+Luxi Sans
+-1;LuxiSans-Oblique;1;5;0;2;65535;993;211;204;0;1100;723;1100;723;0;0;0;l048033t.afm;Oblique
+
+File:c0649bt_.pfb
+1;1
+Bitstream Charter
+-1;CharterBT-Italic;2;5;0;2;91;980;237;217;0;1175;672;1175;672;0;0;0;c0649bt_.afm;Italic
+
+File:l047016t.pfa
+1;1
+Luxi Mono
+-1;LuxiMono-Bold;0;8;0;1;65535;1012;211;223;0;714;723;714;723;0;0;0;l047016t.afm;Bold
+
+File:l049033t.pfa
+1;1
+Luxi Serif
+-1;LuxiSerif-Oblique;1;5;0;2;65535;993;211;204;0;1089;723;1089;723;0;0;0;l049033t.afm;Oblique
+
+FontCacheDirectory:1317234604:/devel/libo/libo1/test/user-template/user/fonts/truetype
+File:LinLibertineG_Bd.ttf
+2;1
+Linux Libertine G
+-1;LinuxLibertineGB;0;8;5;2;65535;894;246;140;0;6615;1140;6615;1140;0;0;0;0;Bold
+
+File:LiberationSansNarrow-Italic.ttf
+2;1
+Liberation Sans Narrow
+-1;LiberationSansNarrow-Italic;2;5;3;2;65535;921;210;131;0;1223;1131;1223;1131;0;0;0;8;Italic
+
+File:DejaVuSansMono-Bold.ttf
+2;1
+DejaVu Sans Mono
+-1;DejaVuSansMono-Bold;0;8;5;1;65535;928;235;163;0;1176;1163;1176;1163;0;0;0;0;Bold
+
+File:DejaVuSans-Bold.ttf
+2;1
+DejaVu Sans
+-1;DejaVuSans-Bold;0;8;5;2;65535;928;235;163;1;3044;1163;3044;1163;0;0;0;0;Bold
+
+File:GenBasI.ttf
+2;1
+Gentium Basic
+-1;GentiumBasic-Italic;2;5;5;2;65535;874;283;157;0;1292;1157;1292;1157;0;0;0;0;Italic
+
+File:GenBasBI.ttf
+2;1
+Gentium Basic
+-1;GentiumBasic-BoldItalic;2;8;5;2;65535;874;283;157;0;1407;1157;1407;1157;0;0;0;0;Bold Italic
+
+File:LiberationSans-Regular.ttf
+2;1
+Liberation Sans
+-1;LiberationSans;0;5;5;2;65535;905;211;116;0;1253;1116;1253;1116;0;0;0;8;Regular
+
+File:DejaVuSans-ExtraLight.ttf
+2;1
+DejaVu Sans Light
+-1;DejaVuSans-ExtraLight;0;2;5;2;65535;928;235;163;0;2391;1163;2391;1163;0;0;0;0;ExtraLight
+
+File:GenBkBasB.ttf
+2;1
+Gentium Book Basic
+-1;GentiumBookBasic-Bold;0;8;5;2;65535;874;283;157;0;1579;1157;1579;1157;0;0;0;0;Bold
+
+File:LiberationSerif-Italic.ttf
+2;1
+Liberation Serif
+-1;LiberationSerif-Italic;2;5;5;2;65535;891;216;107;0;1263;1107;1263;1107;0;0;0;8;Italic
+
+File:LiberationSans-Italic.ttf
+2;1
+Liberation Sans
+-1;LiberationSans-Italic;2;5;5;2;65535;905;211;116;0;1333;1116;1333;1116;0;0;0;8;Italic
+
+File:DejaVuSansCondensed-Bold.ttf
+2;1
+DejaVu Sans Condensed
+-1;DejaVuSansCondensed-Bold;0;8;4;2;65535;928;235;163;1;2739;1163;2739;1163;0;0;0;0;Condensed Bold
+
+File:LiberationSerif-BoldItalic.ttf
+2;1
+Liberation Serif
+-1;LiberationSerif-BoldItalic;2;8;5;2;65535;891;216;107;0;1328;1107;1328;1107;0;0;0;8;Bold Italic
+
+File:DejaVuSansMono-Oblique.ttf
+2;1
+DejaVu Sans Mono
+-1;DejaVuSansMono-Oblique;1;5;5;1;65535;928;235;163;0;1148;1163;1148;1163;0;0;0;0;Oblique
+
+File:DejaVuSansCondensed-BoldOblique.ttf
+2;1
+DejaVu Sans Condensed
+-1;DejaVuSansCondensed-BoldOblique;1;8;4;2;65535;928;235;163;0;2758;1163;2758;1163;0;0;0;0;Condensed Bold Oblique
+
+File:DejaVuSans-Oblique.ttf
+2;1
+DejaVu Sans
+-1;DejaVuSans-Oblique;1;5;5;2;65535;928;235;163;0;2674;1163;2674;1163;0;0;0;0;Oblique
+
+File:LinBiolinumG_Bd.ttf
+2;1
+Linux Biolinum G
+-1;LinuxBiolinumGB;0;8;5;2;65535;894;246;140;0;7252;1140;7252;1140;0;0;0;0;Bold
+
+File:DejaVuSans.ttf
+2;1
+DejaVu Sans
+-1;DejaVuSans;0;5;5;2;65535;928;235;163;0;2700;1163;2700;1163;0;0;0;0;Book
+
+File:DejaVuSerif-Italic.ttf
+2;1
+DejaVu Serif
+-1;DejaVuSerif-Italic;2;5;5;2;65535;928;235;163;0;2483;1163;2483;1163;0;0;0;0;Italic
+
+File:DejaVuSerifCondensed.ttf
+2;1
+DejaVu Serif Condensed
+-1;DejaVuSerifCondensed;0;5;4;2;65535;928;235;163;0;2203;1163;2203;1163;0;0;0;0;Condensed
+
+File:LinLibertineG_It.ttf
+2;1
+Linux Libertine G
+-1;LinuxLibertineGI;2;5;5;2;65535;894;246;140;0;6804;1140;6804;1140;0;0;0;0;Italic
+
+File:DejaVuSansCondensed.ttf
+2;1
+DejaVu Sans Condensed
+-1;DejaVuSansCondensed;0;5;4;2;65535;928;235;163;0;2430;1163;2430;1163;0;0;0;0;Condensed
+
+File:DejaVuSansMono-BoldOblique.ttf
+2;1
+DejaVu Sans Mono
+-1;DejaVuSansMono-BoldOblique;1;8;5;1;65535;928;235;163;0;1232;1163;1232;1163;0;0;0;0;Bold Oblique
+
+File:DejaVuSerifCondensed-Bold.ttf
+2;1
+DejaVu Serif Condensed
+-1;DejaVuSerifCondensed-Bold;0;8;4;2;65535;938;235;173;0;2368;1173;2368;1173;0;0;0;0;Condensed Bold
+
+File:LiberationSansNarrow-BoldItalic.ttf
+2;1
+Liberation Sans Narrow
+-1;LiberationSansNarrow-BoldItalic;2;8;3;2;65535;921;210;131;0;1171;1131;1171;1131;0;0;0;8;Bold Italic
+
+File:DejaVuSerif-Bold.ttf
+2;1
+DejaVu Serif
+-1;DejaVuSerif-Bold;0;8;5;2;65535;938;235;173;0;2630;1173;2630;1173;0;0;0;0;Bold
+
+File:GenBasB.ttf
+2;1
+Gentium Basic
+-1;GentiumBasic-Bold;0;8;5;2;65535;874;283;157;0;1549;1157;1549;1157;0;0;0;0;Bold
+
+File:DejaVuSerif-BoldItalic.ttf
+2;1
+DejaVu Serif
+-1;DejaVuSerif-BoldItalic;2;8;5;2;65535;938;235;173;0;2658;1173;2658;1173;0;0;0;0;Bold Italic
+
+File:DejaVuSansMono.ttf
+2;1
+DejaVu Sans Mono
+-1;DejaVuSansMono;0;5;5;1;65535;928;235;163;0;1274;1163;1274;1163;0;0;0;0;Book
+
+File:LiberationSans-Bold.ttf
+2;1
+Liberation Sans
+-1;LiberationSans-Bold;0;8;5;2;65535;905;211;116;0;1246;1116;1246;1116;0;0;0;8;Bold
+
+File:DejaVuSansCondensed-Oblique.ttf
+2;1
+DejaVu Sans Condensed
+-1;DejaVuSansCondensed-Oblique;1;5;4;2;65535;928;235;163;0;2407;1163;2407;1163;0;0;0;0;Condensed Oblique
+
+File:DejaVuSans-BoldOblique.ttf
+2;1
+DejaVu Sans
+-1;DejaVuSans-BoldOblique;1;8;5;2;65535;928;235;163;0;3064;1163;3064;1163;0;0;0;0;Bold Oblique
+
+File:DejaVuSerifCondensed-Italic.ttf
+2;1
+DejaVu Serif Condensed
+-1;DejaVuSerifCondensed-Italic;2;5;4;2;65535;928;235;163;0;2235;1163;2235;1163;0;0;0;0;Condensed Italic
+
+File:LinBiolinumG_It.ttf
+2;1
+Linux Biolinum G
+-1;LinuxBiolinumGI;2;5;5;2;65535;894;246;140;0;7329;1140;7329;1140;0;0;0;0;Italic
+
+File:LinBiolinumG_Re.ttf
+2;1
+Linux Biolinum G
+-1;LinuxBiolinumG;0;5;5;2;65535;894;246;140;0;7252;1140;7252;1140;0;0;0;0;Regular
+
+File:LiberationSansNarrow-Bold.ttf
+2;1
+Liberation Sans Narrow
+-1;LiberationSansNarrow-Bold;0;8;3;2;65535;921;210;131;0;1151;1131;1151;1131;0;0;0;8;Bold
+
+File:GenBkBasR.ttf
+2;1
+Gentium Book Basic
+-1;GentiumBookBasic;0;5;5;2;65535;874;283;157;0;1501;1157;1501;1157;0;0;0;0;Regular
+
+File:DejaVuSerifCondensed-BoldItalic.ttf
+2;1
+DejaVu Serif Condensed
+-1;DejaVuSerifCondensed-BoldItalic;2;8;4;2;65535;938;235;173;0;2393;1173;2393;1173;0;0;0;0;Condensed Bold Italic
+
+File:opens___.ttf
+2;1
+OpenSymbol
+-1;OpenSymbol;0;5;5;2;65535;799;200;-1;0;1262;999;1262;999;0;0;0;8;Regular
+
+File:LinLibertineG_BI.ttf
+2;1
+Linux Libertine G
+-1;LinuxLibertineGBI;2;8;5;2;65535;894;246;140;0;6618;1140;6618;1140;0;0;0;0;Bold Italic
+
+File:LiberationSans-BoldItalic.ttf
+2;1
+Liberation Sans
+-1;LiberationSans-BoldItalic;2;8;5;2;65535;905;211;116;0;1336;1116;1336;1116;0;0;0;8;Bold Italic
+
+File:LinLibertineG_Re.ttf
+2;1
+Linux Libertine G
+-1;LinuxLibertineG;0;5;5;2;65535;894;246;140;0;7252;1140;7252;1140;0;0;0;0;Regular
+
+File:LiberationMono-Bold.ttf
+2;1
+Liberation Mono
+-1;LiberationMono-Bold;0;8;5;1;65535;832;300;132;0;640;1132;640;1132;0;0;0;8;Bold
+
+File:GenBasR.ttf
+2;1
+Gentium Basic
+-1;GentiumBasic;0;5;5;2;65535;874;283;157;0;1477;1157;1477;1157;0;0;0;0;Regular
+
+File:GenBkBasI.ttf
+2;1
+Gentium Book Basic
+-1;GentiumBookBasic-Italic;2;5;5;2;65535;874;283;157;0;1330;1157;1330;1157;0;0;0;0;Italic
+
+File:GenBkBasBI.ttf
+2;1
+Gentium Book Basic
+-1;GentiumBookBasic-BoldItalic;2;8;5;2;65535;874;283;157;0;1445;1157;1445;1157;0;0;0;0;Bold Italic
+
+File:DejaVuSerif.ttf
+2;1
+DejaVu Serif
+-1;DejaVuSerif;0;5;5;2;65535;928;235;163;0;2448;1163;2448;1163;0;0;0;0;Book
+
+File:LiberationMono-BoldItalic.ttf
+2;1
+Liberation Mono
+-1;LiberationMono-BoldItalic;2;8;5;1;65535;832;300;132;0;791;1132;791;1132;0;0;0;8;Bold Italic
+
+File:LiberationSerif-Bold.ttf
+2;1
+Liberation Serif
+-1;LiberationSerif-Bold;0;8;5;2;65535;891;216;107;0;1266;1107;1266;1107;0;0;0;8;Bold
+
+File:LiberationMono-Italic.ttf
+2;1
+Liberation Mono
+-1;LiberationMono-Italic;2;5;5;1;65535;832;300;132;0;798;1132;798;1132;0;0;0;8;Italic
+
+File:LiberationMono-Regular.ttf
+2;1
+Liberation Mono
+-1;LiberationMono;0;5;5;1;65535;832;300;132;0;632;1132;632;1132;0;0;0;8;Regular
+
+FontCacheDirectory:1308076632:/usr/share/fonts/truetype
+File:luximbi.ttf
+2;1
+Luxi Mono
+-1;LuxiMono-BoldOblique;1;8;5;1;65535;952;210;162;0;791;1162;791;1162;0;0;0;0;Bold Oblique
+
+File:SyrCOMNisibinOutline.otf
+2;1
+Estrangelo Nisibin Outline
+-1;EstrangeloNisibinOutline;0;5;5;2;65535;781;316;97;0;1010;1097;1010;1097;0;0;0;12;Regular
+
+File:luximr.ttf
+2;1
+Luxi Mono
+-1;LuxiMono;0;5;5;1;65535;944;210;154;0;600;1154;600;1154;0;0;0;0;Regular
+
+File:GohaTibebZemen.otf
+2;1
+Goha-Tibeb Zemen
+-1;GohaTibebZemen;0;6;5;2;65535;802;189;-9;0;1212;991;1212;991;0;0;0;65536;Regular
+
+File:SyrCOMJerusalemItalic.otf
+2;1
+Serto Jerusalem
+-1;SertoJerusalemItalic;2;5;5;2;65535;761;316;77;0;1353;1077;1353;1077;0;0;0;12;Italic
+
+File:LiberationSans-Regular.ttf
+2;1
+Liberation Sans
+-1;LiberationSans;0;5;5;2;65535;905;211;116;0;1253;1116;1253;1116;0;0;0;8;Regular
+
+File:SyrCOMQenNeshrin.otf
+2;1
+Estrangelo Quenneshrin
+-1;EstrangeloQuenneshrin;0;5;5;2;65535;761;349;110;0;1000;1110;1000;1110;0;0;0;12;Regular
+
+File:SyrCOMMidyat.otf
+2;1
+Estrangelo Midyat
+-1;EstrangeloMidyat;0;5;5;2;65535;761;316;77;0;1231;1077;1231;1077;0;0;0;12;Regular
+
+File:DejaVuSansCondensed-Oblique.ttf
+2;1
+DejaVu Sans Condensed
+-1;DejaVuSansCondensed-Oblique;1;5;4;2;65535;928;235;163;0;2407;1163;2407;1163;0;0;0;0;Condensed Oblique
+
+File:luxisr.ttf
+2;1
+Luxi Sans
+-1;LuxiSans;0;5;5;2;65535;944;210;154;0;1203;1154;1203;1154;0;0;0;0;Regular
+
+File:DejaVuSerif.ttf
+2;1
+DejaVu Serif
+-1;DejaVuSerif;0;5;5;2;65535;928;235;163;0;2448;1163;2448;1163;0;0;0;0;Book
+
+File:SyrCOMKharput.otf
+2;1
+Serto Kharput
+-1;SertoKharput;0;5;5;2;65535;761;328;89;0;1132;1089;1132;1089;0;0;0;12;Regular
+
+File:DroidSans.ttf
+2;1
+Droid Sans
+-1;DroidSans;0;5;5;2;65535;928;235;163;0;1726;1163;1726;1163;0;0;0;8;Regular
+
+File:luxirri.ttf
+2;1
+Luxi Serif
+-1;LuxiSerif-Oblique;1;5;5;2;65535;944;210;154;0;1295;1154;1295;1154;0;0;0;8;Oblique
+
+File:DejaVuSans-Oblique.ttf
+2;1
+DejaVu Sans
+-1;DejaVuSans-Oblique;1;5;5;2;65535;928;235;163;0;2674;1163;2674;1163;0;0;0;0;Oblique
+
+File:DroidSerif-BoldItalic.ttf
+2;1
+Droid Serif
+-1;DroidSerif-BoldItalic;2;8;5;2;65535;928;235;163;0;1829;1163;1829;1163;0;0;0;8;Bold Italic
+
+File:SyrCOMUrhoy.otf
+2;1
+Serto Urhoy
+-1;SertoUrhoy;0;5;5;2;65535;761;360;121;0;1158;1121;1158;1121;0;0;0;12;Regular
+
+File:LiberationSerif-Bold.ttf
+2;1
+Liberation Serif
+-1;LiberationSerif-Bold;0;8;5;2;65535;891;216;107;0;1266;1107;1266;1107;0;0;0;8;Bold
+
+File:luxirbi.ttf
+2;1
+Luxi Serif
+-1;LuxiSerif-BoldOblique;1;8;5;2;65535;958;210;168;0;1358;1168;1358;1168;0;0;0;0;Bold Oblique
+
+File:DroidSerif-Italic.ttf
+2;1
+Droid Serif
+-1;DroidSerif-Italic;2;5;5;2;65535;928;235;163;0;1736;1163;1736;1163;0;0;0;8;Italic
+
+File:LiberationMono-BoldItalic.ttf
+2;1
+Liberation Mono
+-1;LiberationMono-BoldItalic;2;8;5;1;65535;832;300;132;0;791;1132;791;1132;0;0;0;8;Bold Italic
+
+File:DejaVuSerif-BoldItalic.ttf
+2;1
+DejaVu Serif
+-1;DejaVuSerif-BoldItalic;2;8;5;2;65535;938;235;173;0;2658;1173;2658;1173;0;0;0;0;Bold Italic
+
+File:FifthLeg-Bold.otf
+2;1
+FifthLeg
+-1;FifthLeg-Bold;0;8;5;2;65535;1009;356;365;0;997;1365;997;1365;0;0;0;65536;Bold
+
+File:DejaVuSansMono-BoldOblique.ttf
+2;1
+DejaVu Sans Mono
+-1;DejaVuSansMono-BoldOblique;1;8;5;1;65535;928;235;163;0;1232;1163;1232;1163;0;0;0;0;Bold Oblique
+
+File:DejaVuSansCondensed-Bold.ttf
+2;1
+DejaVu Sans Condensed
+-1;DejaVuSansCondensed-Bold;0;8;4;2;65535;928;235;163;1;2739;1163;2739;1163;0;0;0;0;Condensed Bold
+
+File:DejaVuSans-Bold.ttf
+2;1
+DejaVu Sans
+-1;DejaVuSans-Bold;0;8;5;2;65535;928;235;163;1;3044;1163;3044;1163;0;0;0;0;Bold
+
+File:SyrCOMAntioch.otf
+2;1
+Estrangelo Antioch
+-1;EstrangeloAntioch;0;5;5;2;65535;761;316;77;0;1374;1077;1374;1077;0;0;0;12;Regular
+
+File:SyrCOMBatnanBold.otf
+2;1
+Serto Batnan
+-1;SertoBatnanBold;0;8;5;2;65535;761;316;77;0;1243;1077;1243;1077;0;0;0;12;Bold
+
+File:DejaVuSerifCondensed-BoldItalic.ttf
+2;1
+DejaVu Serif Condensed
+-1;DejaVuSerifCondensed-BoldItalic;2;8;4;2;65535;938;235;173;0;2393;1173;2393;1173;0;0;0;0;Condensed Bold Italic
+
+File:SyrCOMTalada.otf
+2;1
+Estrangelo Talada
+-1;EstrangeloTalada;0;5;5;2;65535;761;316;77;0;1795;1077;1795;1077;0;0;0;12;Regular
+
+File:DejaVuSerifCondensed-Italic.ttf
+2;1
+DejaVu Serif Condensed
+-1;DejaVuSerifCondensed-Italic;2;5;4;2;65535;928;235;163;0;2235;1163;2235;1163;0;0;0;0;Condensed Italic
+
+File:LiberationSansNarrow-Italic.ttf
+2;1
+Liberation Sans Narrow
+-1;LiberationSansNarrow-Italic;2;5;3;2;65535;921;210;131;0;1223;1131;1223;1131;0;0;0;8;Italic
+
+File:DejaVuSansCondensed-BoldOblique.ttf
+2;1
+DejaVu Sans Condensed
+-1;DejaVuSansCondensed-BoldOblique;1;8;4;2;65535;928;235;163;0;2758;1163;2758;1163;0;0;0;0;Condensed Bold Oblique
+
+File:DejaVuSerifCondensed.ttf
+2;1
+DejaVu Serif Condensed
+-1;DejaVuSerifCondensed;0;5;4;2;65535;928;235;163;0;2203;1163;2203;1163;0;0;0;0;Condensed
+
+File:SyrCOMAdiabene.otf
+2;1
+East Syriac Adiabene
+-1;EastSyriacAdiabene;0;5;5;2;65535;761;349;110;0;1000;1110;1000;1110;0;0;0;12;Regular
+
+File:DejaVuSansMono.ttf
+2;1
+DejaVu Sans Mono
+-1;DejaVuSansMono;0;5;5;1;65535;928;235;163;0;1274;1163;1274;1163;0;0;0;0;Book
+
+File:LiberationMono-Regular.ttf
+2;1
+Liberation Mono
+-1;LiberationMono;0;5;5;1;65535;832;300;132;0;632;1132;632;1132;0;0;0;8;Regular
+
+File:LiberationSansNarrow-Regular.ttf
+2;1
+Liberation Sans Narrow
+-1;LiberationSansNarrow;0;5;3;2;65535;921;210;131;0;1166;1131;1166;1131;0;0;0;8;Regular
+
+File:DejaVuSansMono-Oblique.ttf
+2;1
+DejaVu Sans Mono
+-1;DejaVuSansMono-Oblique;1;5;5;1;65535;928;235;163;0;1148;1163;1148;1163;0;0;0;0;Oblique
+
+File:FifthLeg.otf
+2;1
+FifthLeg
+-1;FifthLeg;0;5;5;2;65535;1021;375;396;0;987;1396;987;1396;0;0;0;65536;Regular
+
+File:luxisri.ttf
+2;1
+Luxi Sans
+-1;LuxiSans-Oblique;1;5;5;2;65535;944;210;154;0;1318;1154;1318;1154;0;0;0;0;Oblique
+
+File:DroidSans-Bold.ttf
+2;1
+Droid Sans
+-1;DroidSans-Bold;0;8;5;2;65535;928;235;163;0;1877;1163;1877;1163;0;0;0;8;Bold
+
+File:DejaVuSerifCondensed-Bold.ttf
+2;1
+DejaVu Serif Condensed
+-1;DejaVuSerifCondensed-Bold;0;8;4;2;65535;938;235;173;0;2368;1173;2368;1173;0;0;0;0;Condensed Bold
+
+File:SyrCOMMardin.otf
+2;1
+Serto Mardin
+-1;SertoMardin;0;5;5;2;65535;761;316;77;0;1146;1077;1146;1077;0;0;0;12;Regular
+
+File:SyrCOMJerusalem.otf
+2;1
+Serto Jerusalem
+-1;SertoJerusalem;0;5;5;2;65535;761;316;77;0;1180;1077;1180;1077;0;0;0;12;Regular
+
+File:SyrCOMNisibin.otf
+2;1
+Estrangelo Nisibin
+-1;EstrangeloNisibin;0;5;5;2;65535;761;316;77;0;1000;1077;1000;1077;0;0;0;12;Regular
+
+File:SyrCOMTurAbdin.otf
+2;1
+Estrangelo TurAbdin
+-1;EstrangeloTurAbdin;0;5;5;2;65535;761;316;77;0;1020;1077;1020;1077;0;0;0;12;Regular
+
+File:DroidSansFallback.ttf
+2;1
+Droid Sans Fallback
+-1;DroidSansFallback;0;5;5;2;65535;1042;265;307;0;1210;1307;1210;1307;0;0;0;8;Regular
+
+File:luxisbi.ttf
+2;1
+Luxi Sans
+-1;LuxiSans-BoldOblique;1;8;5;2;65535;952;210;162;0;1324;1162;1324;1162;0;0;0;0;Bold Oblique
+
+File:DroidSerif-Regular.ttf
+2;1
+Droid Serif
+-1;DroidSerif;0;5;5;2;65535;928;235;163;0;1804;1163;1804;1163;0;0;0;8;Regular
+
+File:SyrCOMJerusalemOutline.otf
+2;1
+Serto Jerusalem Outline
+-1;SertoJerusalemOutline;0;5;5;2;65535;781;316;97;0;1275;1097;1275;1097;0;0;0;12;Regular
+
+File:SyrCOMEdessa.otf
+2;1
+Estrangelo Edessa
+-1;EstrangeloEdessa;0;5;5;2;65535;700;299;-1;0;1321;999;1321;999;0;0;0;0;Regular
+
+File:LiberationSans-Italic.ttf
+2;1
+Liberation Sans
+-1;LiberationSans-Italic;2;5;5;2;65535;905;211;116;0;1333;1116;1333;1116;0;0;0;8;Italic
+
+File:LiberationSans-Bold.ttf
+2;1
+Liberation Sans
+-1;LiberationSans-Bold;0;8;5;2;65535;905;211;116;0;1246;1116;1246;1116;0;0;0;8;Bold
+
+File:LiberationSans-BoldItalic.ttf
+2;1
+Liberation Sans
+-1;LiberationSans-BoldItalic;2;8;5;2;65535;905;211;116;0;1336;1116;1336;1116;0;0;0;8;Bold Italic
+
+File:SyrCOMCtesiphon.otf
+2;1
+East Syriac Ctesiphon
+-1;EastSyriacCtesiphon;0;5;5;2;65535;761;323;84;0;1000;1084;1000;1084;0;0;0;12;Regular
+
+File:LiberationSansNarrow-BoldItalic.ttf
+2;1
+Liberation Sans Narrow
+-1;LiberationSansNarrow-BoldItalic;2;8;3;2;65535;921;210;131;0;1171;1131;1171;1131;0;0;0;8;Bold Italic
+
+File:SyrCOMMardinBold.otf
+2;1
+Serto Mardin
+-1;SertoMardinBold;0;8;5;2;65535;761;316;77;0;1168;1077;1168;1077;0;0;0;12;Bold
+
+File:LiberationMono-Bold.ttf
+2;1
+Liberation Mono
+-1;LiberationMono-Bold;0;8;5;1;65535;832;300;132;0;640;1132;640;1132;0;0;0;8;Bold
+
+File:DejaVuSans-ExtraLight.ttf
+2;1
+DejaVu Sans Light
+-1;DejaVuSans-ExtraLight;0;2;5;2;65535;928;235;163;0;2391;1163;2391;1163;0;0;0;0;ExtraLight
+
+File:luxirb.ttf
+2;1
+Luxi Serif
+-1;LuxiSerif-Bold;0;8;5;2;65535;958;210;168;0;1211;1168;1211;1168;0;0;0;0;Bold
+
+File:DejaVuSansCondensed.ttf
+2;1
+DejaVu Sans Condensed
+-1;DejaVuSansCondensed;0;5;4;2;65535;928;235;163;0;2430;1163;2430;1163;0;0;0;0;Condensed
+
+File:yudit.ttf
+2;1
+Yudit
+-1;Yudit;0;5;5;2;65535;1685;528;1213;0;2225;2213;2225;2213;0;0;0;0;LR
+
+File:DejaVuSansMono-Bold.ttf
+2;1
+DejaVu Sans Mono
+-1;DejaVuSansMono-Bold;0;8;5;1;65535;928;235;163;0;1176;1163;1176;1163;0;0;0;0;Bold
+
+File:SyrCOMJerusalemBold.otf
+2;1
+Serto Jerusalem
+-1;SertoJerusalemBold;0;8;5;2;65535;761;316;77;0;1255;1077;1255;1077;0;0;0;12;Bold
+
+File:DejaVuSerif-Italic.ttf
+2;1
+DejaVu Serif
+-1;DejaVuSerif-Italic;2;5;5;2;65535;928;235;163;0;2483;1163;2483;1163;0;0;0;0;Italic
+
+File:DejaVuSans.ttf
+2;1
+DejaVu Sans
+-1;DejaVuSans;0;5;5;2;65535;928;235;163;0;2700;1163;2700;1163;0;0;0;0;Book
+
+File:DejaVuSerif-Bold.ttf
+2;1
+DejaVu Serif
+-1;DejaVuSerif-Bold;0;8;5;2;65535;938;235;173;0;2630;1173;2630;1173;0;0;0;0;Bold
+
+File:luximb.ttf
+2;1
+Luxi Mono
+-1;LuxiMono-Bold;0;8;5;1;65535;952;210;162;0;713;1162;713;1162;0;0;0;0;Bold
+
+File:LiberationMono-Italic.ttf
+2;1
+Liberation Mono
+-1;LiberationMono-Italic;2;5;5;1;65535;832;300;132;0;798;1132;798;1132;0;0;0;8;Italic
+
+File:LiberationSerif-BoldItalic.ttf
+2;1
+Liberation Serif
+-1;LiberationSerif-BoldItalic;2;8;5;2;65535;891;216;107;0;1328;1107;1328;1107;0;0;0;8;Bold Italic
+
+File:DroidSansMono.ttf
+2;1
+Droid Sans Mono
+-1;DroidSansMono;0;5;5;1;65535;928;235;163;0;794;1163;794;1163;0;0;0;8;Regular
+
+File:SyrCOMBatnan.otf
+2;1
+Serto Batnan
+-1;SertoBatnan;0;5;5;2;65535;761;316;77;0;1141;1077;1141;1077;0;0;0;12;Regular
+
+File:luximri.ttf
+2;1
+Luxi Mono
+-1;LuxiMono-Oblique;1;5;5;1;65535;944;210;154;0;771;1154;771;1154;0;0;0;0;Oblique
+
+File:luxirr.ttf
+2;1
+Luxi Serif
+-1;LuxiSerif;0;5;5;2;65535;944;210;154;0;1186;1154;1186;1154;0;0;0;0;Regular
+
+File:LiberationSerif-Regular.ttf
+2;1
+Liberation Serif
+-1;LiberationSerif;0;5;5;2;65535;891;216;107;0;1182;1107;1182;1107;0;0;0;8;Regular
+
+File:LiberationSerif-Italic.ttf
+2;1
+Liberation Serif
+-1;LiberationSerif-Italic;2;5;5;2;65535;891;216;107;0;1263;1107;1263;1107;0;0;0;8;Italic
+
+File:DejaVuSans-BoldOblique.ttf
+2;1
+DejaVu Sans
+-1;DejaVuSans-BoldOblique;1;8;5;2;65535;928;235;163;0;3064;1163;3064;1163;0;0;0;0;Bold Oblique
+
+File:SyrCOMUrhoyBold.otf
+2;1
+Serto Urhoy
+-1;SertoUrhoyBold;0;8;5;2;65535;761;360;121;0;1170;1121;1170;1121;0;0;0;12;Bold
+
+File:luxisb.ttf
+2;1
+Luxi Sans
+-1;LuxiSans-Bold;0;8;5;2;65535;952;210;162;0;1212;1162;1212;1162;0;0;0;0;Bold
+
+File:LiberationSansNarrow-Bold.ttf
+2;1
+Liberation Sans Narrow
+-1;LiberationSansNarrow-Bold;0;8;3;2;65535;921;210;131;0;1151;1131;1151;1131;0;0;0;8;Bold
+
+File:DroidSerif-Bold.ttf
+2;1
+Droid Serif
+-1;DroidSerif-Bold;0;8;5;2;65535;928;235;163;0;1865;1163;1865;1163;0;0;0;8;Bold
+
+File:SyrCOMMalankara.otf
+2;1
+Serto Malankara
+-1;SertoMalankara;0;5;5;2;65535;761;355;116;0;1009;1116;1009;1116;0;0;0;12;Regular
+
+FontCacheDirectory:1313147507:/usr/lib64/jvm/java-1.6.0-sun-1.6.0/jre/lib/fonts
+File:LucidaTypewriterBold.ttf
+2;1
+Lucida Sans Typewriter
+-1;LucidaSans-TypewriterBold;0;8;5;1;65535;945;210;155;0;1163;1155;1163;1155;0;0;0;4;Bold
+
+File:LucidaBrightDemiItalic.ttf
+2;1
+Lucida Bright
+-1;LucidaBright-DemiItalic;2;8;5;2;65535;950;213;163;0;1581;1163;1581;1163;0;0;0;2;Demibold Italic
+
+File:LucidaBrightItalic.ttf
+2;1
+Lucida Bright
+-1;LucidaBright-Italic;2;5;5;2;65535;950;213;163;0;1208;1163;1208;1163;0;0;0;2;Italic
+
+File:LucidaSansRegular.ttf
+2;1
+Lucida Sans
+-1;LucidaSans;0;5;5;2;65535;950;213;163;0;2263;1163;2263;1163;0;0;0;2;Regular
+
+File:LucidaBrightRegular.ttf
+2;1
+Lucida Bright
+-1;LucidaBright;0;5;5;2;65535;950;213;163;0;1886;1163;1886;1163;0;0;0;2;Regular
+
+File:LucidaTypewriterRegular.ttf
+2;1
+Lucida Sans Typewriter
+-1;LucidaSans-Typewriter;0;5;5;1;65535;950;213;163;0;1367;1163;1367;1163;0;0;0;4;Regular
+
+File:LucidaSansDemiBold.ttf
+2;1
+Lucida Sans
+-1;LucidaSans-Demi;0;8;5;2;65535;952;210;162;0;2443;1162;2443;1162;0;0;0;2;Demibold
+
+File:LucidaBrightDemiBold.ttf
+2;1
+Lucida Bright
+-1;LucidaBright-Demi;0;8;5;2;65535;950;213;163;0;1404;1163;1404;1163;0;0;0;2;Demibold
+
+FontCacheDirectory:1317234604:/devel/libo/libo1/test/user-template/user/psprint/fontmetric
+File:Times-Roman.afm
+3;1
+Times
+-1;Times-Roman;0;6;0;2;91;898;218;116;0;1000;662;1000;662;0;0;0;Roman
+
+File:Courier-BoldOblique.afm
+3;1
+Courier
+-1;Courier-BoldOblique;2;8;0;1;91;801;250;51;0;869;562;869;562;0;0;0;Bold Oblique
+
+File:ITCAvantGarde-Book.afm
+3;1
+ITC Avant Garde Gothic
+-1;AvantGarde-Book;0;3;0;2;91;955;222;177;0;1148;740;1148;740;0;0;0;Book
+
+File:Times-Italic.afm
+3;1
+Times
+-1;Times-Italic;2;6;0;2;91;883;217;100;0;1010;653;1010;653;0;0;0;Italic
+
+File:ITCBookman-Light.afm
+3;1
+ITC Bookman
+-1;Bookman-Light;0;3;0;2;91;908;251;159;0;1266;681;1266;681;0;0;0;Light
+
+File:Courier.afm
+3;1
+Courier
+-1;Courier;0;6;0;1;91;805;250;55;0;715;562;715;562;0;0;0
+
+File:Helvetica.afm
+3;1
+Helvetica
+-1;Helvetica;0;6;0;2;91;931;225;156;0;1000;718;1000;718;0;0;0
+
+File:Palatino-Bold.afm
+3;1
+Palatino
+-1;Palatino-Bold;0;8;0;2;91;924;266;190;0;1000;681;1000;681;0;0;0;Bold
+
+File:ITCAvantGarde-DemiOblique.afm
+3;1
+ITC Avant Garde Gothic
+-1;AvantGarde-DemiOblique;2;7;0;2;91;1021;251;272;0;1256;740;1256;740;0;0;0;Demi Oblique
+
+File:NewCenturySchlbk-Bold.afm
+3;1
+New Century Schoolbook
+-1;NewCenturySchlbk-Bold;0;8;0;2;91;988;250;238;0;1000;722;1000;722;0;0;0;Bold
+
+File:Symbol.afm
+3;1
+Symbol
+-1;Symbol;0;6;0;2;10;1010;293;303;0;1090;1010;1090;1010;0;0;0
+
+File:ITCZapfChancery-MediumItalic.afm
+3;1
+ITC Zapf Chancery
+-1;ZapfChancery-MediumItalic;2;6;0;2;91;831;314;145;0;1065;708;1065;708;0;0;0;Medium Italic
+
+File:Times-BoldItalic.afm
+3;1
+Times
+-1;Times-BoldItalic;2;8;0;2;91;921;218;139;0;996;669;996;669;0;0;0;Bold Italic
+
+File:ITCAvantGarde-Demi.afm
+3;1
+ITC Avant Garde Gothic
+-1;AvantGarde-Demi;0;7;0;2;91;1021;251;272;0;1222;740;1222;740;0;0;0;Demi
+
+File:Palatino-Italic.afm
+3;1
+Palatino
+-1;Palatino-Italic;2;6;0;2;91;918;276;194;0;1010;692;1010;692;0;0;0;Italic
+
+File:Palatino-BoldItalic.afm
+3;1
+Palatino
+-1;Palatino-BoldItalic;2;8;0;2;91;926;271;197;0;1073;681;1073;681;0;0;0;Bold Italic
+
+File:Palatino-Roman.afm
+3;1
+Palatino
+-1;Palatino-Roman;0;6;0;2;91;927;283;210;0;1021;692;1021;692;0;0;0;Roman
+
+File:ITCBookman-Demi.afm
+3;1
+ITC Bookman
+-1;Bookman-Demi;0;7;0;2;91;934;250;184;0;1346;681;1346;681;0;0;0;Demi
+
+File:Courier-Bold.afm
+3;1
+Courier
+-1;Courier-Bold;0;8;0;1;91;801;250;51;0;749;562;749;562;0;0;0;Bold
+
+File:ITCBookman-DemiItalic.afm
+3;1
+ITC Bookman
+-1;Bookman-DemiItalic;2;7;0;2;91;941;250;191;0;1333;681;1333;681;0;0;0;Demi Italic
+
+File:Helvetica-Bold.afm
+3;1
+Helvetica
+-1;Helvetica-Bold;0;8;0;2;91;962;228;190;0;1003;718;1003;718;0;0;0;Bold
+
+File:Courier-Oblique.afm
+3;1
+Courier
+-1;Courier-Oblique;2;6;0;1;91;805;250;55;0;849;562;849;562;0;0;0;Oblique
+
+File:ZapfDingbats.afm
+3;1
+ITC Zapf Dingbats
+-1;ZapfDingbats;0;6;0;2;10;820;143;-37;0;981;820;981;820;0;0;0
+
+File:ITCBookman-LightItalic.afm
+3;1
+ITC Bookman
+-1;Bookman-LightItalic;2;3;0;2;91;883;250;133;0;1269;681;1269;681;0;0;0;Light Italic
+
+File:Helvetica-Oblique.afm
+3;1
+Helvetica
+-1;Helvetica-Oblique;2;6;0;2;91;931;225;156;0;1116;718;1116;718;0;0;0;Oblique
+
+File:NewCenturySchlbk-Roman.afm
+3;1
+New Century Schoolbook
+-1;NewCenturySchlbk-Roman;0;6;0;2;91;965;250;215;0;1000;722;1000;722;0;0;0;Roman
+
+File:Helvetica-BoldOblique.afm
+3;1
+Helvetica
+-1;Helvetica-BoldOblique;2;8;0;2;91;962;228;190;0;1114;718;1114;718;0;0;0;Bold Oblique
+
+File:ITCAvantGarde-BookOblique.afm
+3;1
+ITC Avant Garde Gothic
+-1;AvantGarde-BookOblique;2;3;0;2;91;955;222;177;0;1279;740;1279;740;0;0;0;Book Oblique
+
+File:NewCenturySchlbk-BoldItalic.afm
+3;1
+New Century Schoolbook
+-1;NewCenturySchlbk-BoldItalic;2;8;0;2;91;991;250;241;0;1147;722;1147;722;0;0;0;Bold Italic
+
+File:Times-Bold.afm
+3;1
+Times
+-1;Times-Bold;0;8;0;2;91;935;218;153;0;1000;676;1000;676;0;0;0;Bold
+
+File:NewCenturySchlbk-Italic.afm
+3;1
+New Century Schoolbook
+-1;NewCenturySchlbk-Italic;2;6;0;2;91;958;250;208;0;994;722;994;722;0;0;0;Italic
+
diff --git a/test/user-template/user/psprint/psprint.conf b/test/user-template/user/psprint/psprint.conf
new file mode 100644
index 000000000000..0906a85ae0eb
--- /dev/null
+++ b/test/user-template/user/psprint/psprint.conf
@@ -0,0 +1,114 @@
+[__Global_Printer_Defaults__]
+; Copies: the default number of copies produced
+; if key is absent the default is 1
+; Copies=1
+
+; Orientation: the default orientation of pages
+; possible Values: Portrait, Landscape
+; if key is absent the default is Portrait
+; Orientation=Portrait
+
+; Scale: the default scaling of output in percent
+; if key is absent the default is 100
+; Scale=100
+
+; MarginAdjust: the default adjustment to driver margins in 1/100 mm
+; MarginAdjust contains corrections for the driver defined margins
+; the values are comma separated
+; the order is: left,right,top,bottom
+; if key is absent the default is 0,0,0,0
+; MarginAdjust=0,0,0,0
+
+; ColorDepth: the default colordepth of the device in bits
+; possible values: 1, 8, 24
+; if key is absent the default is 24
+; ColorDepth=24
+
+; ColorDevice: the default setting wether the device is color capable
+; possible values: 0: driver setting, -1: grey scale, 1: color
+; if key is absent the default is 0
+; ColorDepth=0
+
+; PSLevel: the default setting of the PostScript level of the output
+; possible values: 0: driver setting, 1: level 1, 2: level2
+; if key is absent the default is 0
+; PSLevel=0
+
+; PPD_PageSize: the default page size to use. If a specific printer does
+; not support this page size its default is used instead.
+; possible values: A0, A1, A2, A3, A4, A5, A6, B4, B5, B6,
+; Legal, Letter, Executive, Statement, Tabloid,
+; Ledger, AnsiC, AnsiD, ARCHA, ARCHB, ARCHC,
+; ARCHD, ARCHE, EnvMonarch, EnvC4, EnvC5, EnvC6,
+; Env10, EnvC65, Folio
+; if key is absent the default value is driver specific
+; PPD_PageSize=A4
+
+; Note: the following two key types are in the global section to provide
+; defaults for newly added printers.
+; PerformFontSubstitution: wether to replace downloadable fonts
+; with resident fonts or not
+PerformFontSubstitution=false
+
+; SubstFont_<downloadable font>: the resident font to replace
+; <downloadable font> if PerformFontSubstitution is true
+SubstFont_Helmet=Helvetica
+SubstFont_Albany=Helvetica
+SubstFont_Courier New=Courier
+SubstFont_Arial=Helvetica
+SubstFont_Times New Roman=Times
+SubstFont_Thorndale=Times
+SubstFont_Timmons=Times
+SubstFont_Cumberland=Courier
+
+
+[Generic Printer]
+; for every printer a group with at least the keys
+; "Printer" and "Command" is required
+
+; Printer: contains the base name of the PPD and the Printer name separated by /
+Printer=SGENPRT/Generic Printer
+
+; DefaultPrinter: marks the default printer
+DefaultPrinter=1
+
+; Location: a user readable string that will be shown in the print dialog
+Location=
+
+; Comment: a user readable string that will be shown in the print dialog
+Comment=
+
+; Command: a command line that accepts PostScript as standard input (pipe)
+; note: a shell will be started for the command
+Command=
+
+; QuickCommand: a command line that accepts PostScript as standard input (pipe)
+; this command line will be used instead of the command line given in the
+; "Command" key, if the user presses the direct print button. In this case
+; no print dialog should be shown, neither form the printing applcation nor
+; from the command line (example "kprinter --nodialog --stdin")
+; note: a shell will be started for the command
+;QuickCommand=
+
+; Features: a string containing additional comma separated properties of a printer
+; currently valid properties:
+; fax for a Fax printer queue
+; pdf=<dir> for a PDF printer where <dir> is the base directory for output files
+; external_dialog to notify that the print command of a printer will show a dialog
+; and therefore the application should not show its own dialog.
+;Features=
+
+; PerformFontSubstitution: wether to replace downloadable fonts
+; with resident fonts or not
+PerformFontSubstitution=false
+
+; SubstFont_<downloadable font>: the resident font to replace
+; <downloadable font> if PerformFontSubstitution is true
+SubstFont_Helmet=Helvetica
+SubstFont_Albany=Helvetica
+SubstFont_Courier New=Courier
+SubstFont_Arial=Helvetica
+SubstFont_Times New Roman=Times
+SubstFont_Thorndale=Times
+SubstFont_Timmons=Times
+SubstFont_Cumberland=Courier
diff --git a/test/user-template/user/registry/Langpack-en-US.xcd b/test/user-template/user/registry/Langpack-en-US.xcd
new file mode 100644
index 000000000000..3a474809d4dd
--- /dev/null
+++ b/test/user-template/user/registry/Langpack-en-US.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data oor:name="Setup" oor:package="org.openoffice"><node oor:name="Office"><node oor:name="InstalledLocales"><node oor:name="en-US" oor:op="replace"><prop oor:name="Origin"><value>OpenOffice.org</value></prop></node></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/base.xcd b/test/user-template/user/registry/base.xcd
new file mode 100644
index 000000000000..c2627215f199
--- /dev/null
+++ b/test/user-template/user/registry/base.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="StarOffice XML (Base)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT OWN DEFAULT 3RDPARTYFILTER ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"/><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>StarBase</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sdb.OfficeDatabaseDocument</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Misc"><node oor:name="FrameLoaders"><node oor:name="org.openoffice.comp.dbflt.DBContentLoader2" oor:op="replace"><prop oor:name="Types"><value>StarBase</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="StarBase" oor:op="replace"><prop oor:name="DetectService"><value>org.openoffice.comp.dbflt.DBTypeDetection</value></prop><prop oor:name="URLPattern"><value>private:factory/sdatabase*</value></prop><prop oor:name="Extensions"><value>odb</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.base</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>StarOffice XML (Base)</value></prop><prop oor:name="UIName"><value xml:lang="en-US">OpenDocument Database</value></prop><prop oor:name="ClipboardFormat"><value>StarBase 6.0</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"><node oor:name="Menus"><node oor:name="New"><node oor:name="m4" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/sdatabase?Interactive</value></prop><prop oor:name="Title"><value xml:lang="en-US">Database</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3245</value></prop></node></node><node oor:name="Wizard"><node oor:name="m14" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>slot:10934</value></prop><prop oor:name="Title"><value xml:lang="en-US">Address Data Source...</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3216</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice"><node oor:name="Office"><node oor:name="Factories"><node oor:name="com.sun.star.sdb.RelationDesign" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/><prop oor:name="ooSetupFactoryCommandConfigRef"><value>DbuCommands</value></prop><prop oor:name="ooSetupFactoryShortName"><value>dbrelation</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>DbRelationWindowState</value></prop><prop oor:name="ooSetupFactoryIcon"><value>14</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Base: Relation Design</value></prop></node><node oor:name="com.sun.star.sdb.QueryDesign" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/><prop oor:name="ooSetupFactoryCommandConfigRef"><value>DbuCommands</value></prop><prop oor:name="ooSetupFactoryShortName"><value>dbquery</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>DbQueryWindowState</value></prop><prop oor:name="ooSetupFactoryIcon"><value>14</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Base: Query Design</value></prop></node><node oor:name="com.sun.star.sdb.ViewDesign" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/><prop oor:name="ooSetupFactoryCommandConfigRef"><value>DbuCommands</value></prop><prop oor:name="ooSetupFactoryShortName"><value>dbquery</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>DbQueryWindowState</value></prop><prop oor:name="ooSetupFactoryIcon"><value>14</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Base: View Design</value></prop></node><node oor:name="com.sun.star.sdb.TableDesign" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/><prop oor:name="ooSetupFactoryCommandConfigRef"><value>DbuCommands</value></prop><prop oor:name="ooSetupFactoryShortName"><value>dbtable</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>DbTableWindowState</value></prop><prop oor:name="ooSetupFactoryIcon"><value>14</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Base: Table Design</value></prop></node><node oor:name="com.sun.star.sdb.DataSourceBrowser" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/><prop oor:name="ooSetupFactoryCommandConfigRef"><value>DbuCommands</value></prop><prop oor:name="ooSetupFactoryShortName"><value>dbbrowser</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>DbBrowserWindowState</value></prop><prop oor:name="ooSetupFactoryIcon"><value>14</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Base: Data View</value></prop></node><node oor:name="com.sun.star.sdb.TableDataView" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/><prop oor:name="ooSetupFactoryCommandConfigRef"><value>DbuCommands</value></prop><prop oor:name="ooSetupFactoryShortName"><value>dbtdata</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>DbTableDataWindowState</value></prop><prop oor:name="ooSetupFactoryIcon"><value>14</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Base: Table Data View</value></prop></node><node oor:name="com.sun.star.sdb.OfficeDatabaseDocument" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.sdb.OfficeDatabaseDocument</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>DbuCommands</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>StarOffice XML (Base)</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter"><value>StarOffice XML (Base)</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/sdatabase</value></prop><prop oor:name="ooSetupFactoryWindowAttributes"><value/></prop><prop oor:name="ooSetupFactoryIcon"><value>14</value></prop><prop oor:name="ooSetupFactoryTemplateFile"><value/></prop><prop oor:name="ooSetupFactorySystemDefaultTemplateChanged"><value>false</value></prop><prop oor:name="ooSetupFactoryShortName"><value>dbapp</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>BaseWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Base</value></prop></node></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/calc.xcd b/test/user-template/user/registry/calc.xcd
new file mode 100644
index 000000000000..24d1ae0de540
--- /dev/null
+++ b/test/user-template/user/registry/calc.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-schema oor:name="CalcCommands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UserInterface"><set oor:name="Commands" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/><set oor:name="Popups" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/></group></component></oor:component-schema><oor:component-schema oor:name="CalcWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="CalcCommands" oor:package="org.openoffice.Office.UI"><node oor:name="UserInterface"><node oor:name="Commands"><node oor:name=".uno:InsertObjectStarMath" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Formula...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ObjectMirrorVertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flip Vertically</value></prop></node><node oor:name=".uno:ObjectMirrorHorizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flip Object Horizontally</value></prop></node><node oor:name=".uno:ShowPrecedents" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Trace ~Precedents</value></prop></node><node oor:name=".uno:ResetAttributes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Clear ~Direct Formatting</value></prop></node><node oor:name=".uno:ClearArrowPrecedents" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Remove Precedents</value></prop></node><node oor:name=".uno:ShowDependents" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Trace Dependents</value></prop></node><node oor:name=".uno:SplitWindow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Split Window</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Split</value></prop></node><node oor:name=".uno:ClearArrowDependents" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Remove ~Dependents</value></prop></node><node oor:name=".uno:FreezePanes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Freeze Window</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Freeze</value></prop></node><node oor:name=".uno:ShowErrors" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Trace ~Error</value></prop></node><node oor:name=".uno:DrawChart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Chart</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ClearArrows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Remove ~All Traces</value></prop></node><node oor:name=".uno:AuditingFillMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Fill Mode</value></prop></node><node oor:name=".uno:ShowInvalid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Mark Invalid Data</value></prop></node><node oor:name=".uno:RefreshArrows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Refresh Tra~ces</value></prop></node><node oor:name=".uno:AutoRefreshArrows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">A~utoRefresh Traces</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">A~utoRefresh</value></prop></node><node oor:name=".uno:ChooseDesign" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Choose Themes</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EuroConverter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Euro Converter</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ProtectTraceChangeMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Protect Records...</value></prop></node><node oor:name=".uno:InsertExternalDataSource" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Link to E~xternal Data...</value></prop></node><node oor:name=".uno:Hyphenate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hyphenation...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ObjectTitleDescription" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Description...</value></prop></node><node oor:name=".uno:RenameObject" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Name...</value></prop></node><node oor:name=".uno:FocusInputLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Input Line</value></prop></node><node oor:name=".uno:SelectTables" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Select Sheets...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Select...</value></prop></node><node oor:name=".uno:TableEvents" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sheet ~Events...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Events...</value></prop></node><node oor:name=".uno:DataPilotFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pivot Table Filter</value></prop></node><node oor:name=".uno:NextPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Next Page</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PreviousPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Previous Page</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FirstPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">First Page</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LastPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Last Page</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomIn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom In</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomOut" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom Out</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Margins" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Margins</value></prop></node><node oor:name=".uno:ScalingFactor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Scaling Factor</value></prop></node><node oor:name=".uno:ClosePreview" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Close Preview</value></prop></node><node oor:name=".uno:StatusDocPos" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Position in Document</value></prop></node><node oor:name=".uno:StatusPageStyle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Format</value></prop></node><node oor:name=".uno:StatusSelectionMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Selection Mode</value></prop></node><node oor:name=".uno:SimpleReferenz" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Enter References</value></prop></node><node oor:name=".uno:StatusSelectionModeExp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Status Expanded Selection</value></prop></node><node oor:name=".uno:StatusSelectionModeExt" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Status Extended Selection</value></prop></node><node oor:name=".uno:GoLeftBlock" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Left</value></prop></node><node oor:name=".uno:GoRightBlock" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Right</value></prop></node><node oor:name=".uno:GoRightBlockSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Page Right</value></prop></node><node oor:name=".uno:GoUpToStartOfData" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Upper Block Margin</value></prop></node><node oor:name=".uno:GoDownToEndOfData" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Lower Block Margin</value></prop></node><node oor:name=".uno:GoLeftToStartOfData" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Left Block Margin</value></prop></node><node oor:name=".uno:GoRightToEndOfData" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Right Block Margin</value></prop></node><node oor:name=".uno:GoUpToStartOfDataSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Upper Block Margin</value></prop></node><node oor:name=".uno:TextToColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Te~xt to Columns...</value></prop></node><node oor:name=".uno:DataConsolidate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Consolidate...</value></prop></node><node oor:name=".uno:GoDownToEndOfDataSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Lower Block Margin</value></prop></node><node oor:name=".uno:DataDataPilotRun" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Create Pivot Table...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Create...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoLeftToStartOfDataSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Left Block Margin</value></prop></node><node oor:name=".uno:FunctionDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Function...</value></prop></node><node oor:name=".uno:GoRightToEndOfDataSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Right Block Margin</value></prop></node><node oor:name=".uno:GoalSeekDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Goal Seek...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SolverDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sol~ver...</value></prop></node><node oor:name=".uno:JumpToNextTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Sheet</value></prop></node><node oor:name=".uno:TableOperationDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Multiple Operations...</value></prop></node><node oor:name=".uno:JumpToPrevTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Sheet</value></prop></node><node oor:name=".uno:InsertObjectChart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ch~art...</value></prop></node><node oor:name=".uno:StarChartDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ch~art...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:JumpToNextUnprotected" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Unprotected Cell</value></prop></node><node oor:name=".uno:JumpToPreviousUnprotected" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Unprotected Cell</value></prop></node><node oor:name=".uno:SelectColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Column</value></prop></node><node oor:name=".uno:StarChartDataDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Modify Chart Data Area</value></prop></node><node oor:name=".uno:SelectRow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Row</value></prop></node><node oor:name=".uno:ConditionalFormatDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">C~onditional Formatting...</value></prop></node><node oor:name=".uno:Deselect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Undo Selection</value></prop></node><node oor:name=".uno:GoToCurrentCell" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Current Cell</value></prop></node><node oor:name=".uno:SelectData" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Data Area</value></prop></node><node oor:name=".uno:SetInputMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Toggle Edit Mode</value></prop></node><node oor:name=".uno:ClearContents" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Clear Contents</value></prop></node><node oor:name=".uno:AutoFill" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoFill Data Series: automatic</value></prop></node><node oor:name=".uno:Cancel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cancel</value></prop></node><node oor:name=".uno:SelectArrayFormula" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Array Formula</value></prop></node><node oor:name=".uno:JumpToNextTableSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Next Sheet</value></prop></node><node oor:name=".uno:JumpToPrevTableSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Previous Sheet</value></prop></node><node oor:name=".uno:WrapText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Automatic Row Break</value></prop></node><node oor:name=".uno:DefinePrintArea" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Define Print Area</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Define</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeletePrintArea" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Remove Print Area</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Remove</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EditPrintArea" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Edit Print Area...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Edit...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToggleRelative" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Relative/Absolute References</value></prop></node><node oor:name=".uno:PasteSpecial" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Paste ~Special...</value></prop></node><node oor:name=".uno:DataSelect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Selection List</value></prop></node><node oor:name=".uno:DeleteCell" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete C~ells...</value></prop></node><node oor:name=".uno:RepeatSearch" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Repeat Search</value></prop></node><node oor:name=".uno:Remove" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Delete...</value></prop></node><node oor:name=".uno:FillDown" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fill ~Down</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Down</value></prop></node><node oor:name=".uno:FillRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fill ~Right</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Right</value></prop></node><node oor:name=".uno:FillUp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fill ~Up</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Up</value></prop></node><node oor:name=".uno:FillLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fill ~Left</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Left</value></prop></node><node oor:name=".uno:FillTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fill ~Sheets...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Sheets...</value></prop></node><node oor:name=".uno:FillSeries" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fill S~eries...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">S~eries...</value></prop></node><node oor:name=".uno:EditHeaderAndFooter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Headers &amp; Footers...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Validation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Validity...</value></prop></node><node oor:name=".uno:DeleteRows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Rows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertCtrl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeleteColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Columns</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsCellsCtrl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Cells</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TraceChangeMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Record Changes</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Record</value></prop></node><node oor:name=".uno:InsObjCtrl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Object</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ShowChanges" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sho~w Changes...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">Sho~w...</value></prop></node><node oor:name=".uno:DefineLabelRange" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Define ~Labels...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Labels...</value></prop></node><node oor:name=".uno:NoteVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Show Comment</value></prop></node><node oor:name=".uno:InsertAnnotation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Comm~ent</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeleteNote" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Comment</value></prop></node><node oor:name=".uno:InputLineVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Formula Bar</value></prop></node><node oor:name=".uno:ViewRowColumnHeaders" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">C~olumn &amp; Row Headers</value></prop></node><node oor:name=".uno:Scale" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Scale Screen Display</value></prop></node><node oor:name=".uno:ViewValueHighlighting" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Value ~Highlighting</value></prop></node><node oor:name=".uno:NormalViewMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Normal View</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Normal</value></prop></node><node oor:name=".uno:PagebreakMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Page Break Preview</value></prop></node><node oor:name=".uno:FunctionBox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">F~unction List</value></prop></node><node oor:name=".uno:DataAreaRefresh" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">R~efresh Range</value></prop></node><node oor:name=".uno:FocusCellAddress" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sheet Area Input Field</value></prop></node><node oor:name=".uno:UnderlineNone" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Underline: Off</value></prop></node><node oor:name=".uno:UnderlineSingle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Underline: Single</value></prop></node><node oor:name=".uno:AcceptChanges" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Accept or Reject Changes...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Accept or Reject...</value></prop></node><node oor:name=".uno:UnderlineDouble" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Underline: Double</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CommentChange" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Comments...</value></prop></node><node oor:name=".uno:UnderlineDotted" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Underline: Dotted</value></prop></node><node oor:name=".uno:DeleteAllBreaks" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Page Breaks</value></prop></node><node oor:name=".uno:InsertRowBreak" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert ~Row Break</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Row Break</value></prop></node><node oor:name=".uno:AddPrintArea" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Add Print Area</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Add</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertColumnBreak" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert ~Column Break</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Column Break</value></prop></node><node oor:name=".uno:AdjustPrintZoom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Adjust Scale</value></prop></node><node oor:name=".uno:DeleteRowbreak" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Remove ~Row Break</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Row Break</value></prop></node><node oor:name=".uno:ResetPrintZoom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reset Scale</value></prop></node><node oor:name=".uno:DeleteColumnbreak" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Remove ~Column Break</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Column Break</value></prop></node><node oor:name=".uno:InsertContents" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Paste Special</value></prop></node><node oor:name=".uno:InsertCell" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert ~Cells...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Cells...</value></prop></node><node oor:name=".uno:InsertRows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert ~Rows</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Rows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Co~lumns</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">Co~lumns</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Insert" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert ~Sheet...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Sheet...</value></prop></node><node oor:name=".uno:InsertSheetFromFile" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Shee~t From File...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">Shee~t From File...</value></prop></node><node oor:name=".uno:DefineName" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Define Name...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Define...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertName" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Insert Name...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Insert...</value></prop></node><node oor:name=".uno:CreateNames" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Create Names...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Create...</value></prop></node><node oor:name=".uno:ApplyNames" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Assign Names</value></prop></node><node oor:name=".uno:InsertCellsDown" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Cells Down</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertCellsRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Cells Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FormatCellDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format ~Cells...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">Ce~lls...</value></prop></node><node oor:name=".uno:RowHeight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Row ~Height...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Height...</value></prop></node><node oor:name=".uno:SetOptimalRowHeight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Optimal Row Height...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Optimal Height...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HideRow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">H~ide Rows</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">H~ide</value></prop></node><node oor:name=".uno:ShowRow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Show Rows</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Show</value></prop></node><node oor:name=".uno:ColumnWidth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Column ~Width...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Width...</value></prop></node><node oor:name=".uno:SetOptimalColumnWidth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Optimal Column Width...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Optimal Width...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HideColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hide Columns</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Hide</value></prop></node><node oor:name=".uno:ShowColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Show Columns</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Show</value></prop></node><node oor:name=".uno:Hide" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hide Sheets</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Hide</value></prop></node><node oor:name=".uno:Show" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Show Sheets...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Show...</value></prop></node><node oor:name=".uno:MergeCells" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Merge Cells</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SplitCell" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Cells</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToggleMergeCells" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">M~erge and Center Cells</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PageFormatDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format ~Page...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Page...</value></prop></node><node oor:name=".uno:StandardTextAttributes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Standard Text Attributes</value></prop></node><node oor:name=".uno:TextAttributes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Define Text Attributes</value></prop></node><node oor:name=".uno:SetOptimalColumnWidthDirect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Optimal Column Width, direct</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AutomaticCalculation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Auto~Calculate</value></prop></node><node oor:name=".uno:Calculate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Recalculate</value></prop></node><node oor:name=".uno:Protect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Protect ~Sheet...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Sheet...</value></prop></node><node oor:name=".uno:ToolProtectionDocument" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Protect ~Document...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Document...</value></prop></node><node oor:name=".uno:ToolsOptions" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spreadsheet Options</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ScenarioManager" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sc~enarios...</value></prop></node><node oor:name=".uno:RecalcPivotTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Refresh Pivot Table</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Refresh</value></prop></node><node oor:name=".uno:DeletePivotTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Delete Pivot Table</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Delete</value></prop></node><node oor:name=".uno:CalculateHard" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Recalculate Hard</value></prop></node><node oor:name=".uno:AutoComplete" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~AutoInput</value></prop></node><node oor:name=".uno:DefineDBName" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Define Data Range...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Define Range...</value></prop></node><node oor:name=".uno:SelectDB" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Data ~Range...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">Select ~Range...</value></prop></node><node oor:name=".uno:DataSort" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Sort...</value></prop></node><node oor:name=".uno:DataFilterStandardFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Standard Filter...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DataFilterSpecialFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Advanced Filter...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DataFilterAutoFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Auto~Filter</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DataFilterRemoveFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Remove Filter</value></prop></node><node oor:name=".uno:DataForm" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">F~orm...</value></prop></node><node oor:name=".uno:DataSubTotals" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sub~totals...</value></prop></node><node oor:name=".uno:AutoOutline" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~AutoOutline</value></prop></node><node oor:name=".uno:DataImport" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Import Data</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DataReImport" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Refresh Data Import</value></prop></node><node oor:name=".uno:DataFilterHideAutoFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hide AutoFilter</value></prop></node><node oor:name=".uno:SortDescending" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sort Descending</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SortAscending" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sort Ascending</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RenameTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Rename Sheet...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Rename...</value></prop></node><node oor:name=".uno:Name" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rename Sheet</value></prop></node><node oor:name=".uno:SetTabBgColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Tab Color...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Tab Color...</value></prop></node><node oor:name=".uno:TabBgColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Tab Color</value></prop></node><node oor:name=".uno:Move" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Move/Copy Sheet...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Move/Copy...</value></prop></node><node oor:name=".uno:TableSelectAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select All Sheets</value></prop></node><node oor:name=".uno:TableDeselectAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Deselect All Sheets</value></prop></node><node oor:name=".uno:Add" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Append Sheet</value></prop></node><node oor:name=".uno:AlignLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignHorizontalCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Center Horizontally</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignBlock" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Justified</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignTop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Top</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignBottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Bottom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignVCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Center Vertically</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SelectScenario" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Scenario</value></prop></node><node oor:name=".uno:UpdateChart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Redraw Chart</value></prop></node><node oor:name=".uno:ToggleAnchorType" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Change Anchor</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NumberFormatCurrency" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Currency</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NumberFormatPercent" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Percent</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NumberFormatStandard" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Standard</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NumberFormatDate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format : Date</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NumberFormatDecimal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Decimal</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NumberFormatScientific" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Exponential</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NumberFormatTime" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Time</value></prop></node><node oor:name=".uno:NumberFormatIncDecimals" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Add Decimal Place</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NumberFormatDecDecimals" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Delete Decimal Place</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EditLinks" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit Lin~ks...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">Lin~ks...</value></prop></node><node oor:name=".uno:InsertObjectStarImage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert From Image Editor</value></prop></node><node oor:name=".uno:SheetRightToLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sheet R~ight-To-Left</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">R~ight-To-Left</value></prop></node><node oor:name=".uno:SetAnchorToPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Anchor: To P~age</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">To P~age</value></prop></node><node oor:name=".uno:SetAnchorToCell" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Anchor: To ~Cell</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">To ~Cell</value></prop></node><node oor:name=".uno:SendMailDocAsMS" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E-mail as ~Microsoft Excel...</value></prop></node><node oor:name=".uno:SendMailDocAsOOo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E-mail as ~OpenDocument Spreadsheet...</value></prop></node><node oor:name=".uno:ShareDocument" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">S~hare Document...</value></prop></node><node oor:name=".uno:ToggleSheetGrid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Toggle Grid Lines for Current Sheet</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node></node><node oor:name="Popups"><node oor:name=".uno:AuditMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Detective</value></prop></node><node oor:name=".uno:InsertBreakMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page ~Break</value></prop></node><node oor:name=".uno:DataMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Data</value></prop></node><node oor:name=".uno:DelBreakMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Page ~Break</value></prop></node><node oor:name=".uno:FillCellsMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fill</value></prop></node><node oor:name=".uno:CellContentsMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cell Co~ntents</value></prop></node><node oor:name=".uno:NamesMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Names</value></prop></node><node oor:name=".uno:DataPilotMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Pivot Table</value></prop></node><node oor:name=".uno:EditSheetMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Sheet</value></prop></node><node oor:name=".uno:FilterMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Filter</value></prop></node><node oor:name=".uno:SendTo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sen~d</value></prop></node><node oor:name=".uno:ProtectMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Protect Document</value></prop></node><node oor:name=".uno:GroupOutlineMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Group and Outline</value></prop></node><node oor:name=".uno:RowMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Row</value></prop></node><node oor:name=".uno:ColumnMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Colu~mn</value></prop></node><node oor:name=".uno:SheetMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Sheet</value></prop></node><node oor:name=".uno:MergeCellsMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">M~erge Cells</value></prop></node><node oor:name=".uno:PrintRangesMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pri~nt Ranges</value></prop></node><node oor:name=".uno:DrawGraphicMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Graph~ic</value></prop></node><node oor:name=".uno:ToggleFormula" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Show Formula</value></prop></node><node oor:name=".uno:AssignMacro" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Assign Macro...</value></prop></node><node oor:name=".uno:MarkPrecedents" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Mark Precedents</value></prop></node><node oor:name=".uno:MarkDependents" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Mark Dependents</value></prop></node><node oor:name=".uno:InsertCurrentDate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Current Date</value></prop></node><node oor:name=".uno:InsertCurrentTime" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Current Time</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="CalcWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/graffilterbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Graphic Filter</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graphicobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,2</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Picture</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing Object Properties</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/previewbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Page Preview</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/extrusionobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">3D-Settings</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formtextobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Box Formatting</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsfilterbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Filter</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsnavigationbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Navigation</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/moreformcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">More Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formdesign" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Design</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/formatobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,2</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Formatting</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/insertbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop></node><node oor:name="private:resource/toolbar/insertcellsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert Cell</value></prop></node><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/findbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Find</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/textobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Formatting</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Tools</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/viewerbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard (Viewing Mode)</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing</value></prop></node><node oor:name="private:resource/toolbar/mediaobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Media Playback</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/colorbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Color</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/alignmentbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Align</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/basicshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/arrowshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/flowchartshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Flowchart</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/starshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Stars and Banners</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/symbolshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/calloutshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkshapetype" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork Shape</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess"><node oor:name="Installed"><node oor:name="sdbc:calc:*" oor:op="replace"><prop oor:name="Driver"><value>com.sun.star.comp.sdbc.calc.ODriver</value></prop><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"><value xml:lang="en-US">Spreadsheet</value></prop><node oor:name="Features"><node oor:name="EscapeDateTime" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="MetaData"><node oor:name="SupportsBrowsing" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="FileSystemBased" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="MediaType" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>application/vnd.oasis.opendocument.spreadsheet</value></prop></node></node></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="DIF" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN USESOPTIONS</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">Data Interchange Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_DIF</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="HTML (StarCalc)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN USEOPTIONS</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_web_HTML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="Lotus" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS PREFERRED</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">Lotus 1-2-3</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_Lotus</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="Quattro Pro 6.0" oor:op="replace" oor:finalized="true" oor:mandatory="true"><prop oor:name="Flags"><value>IMPORT ALIEN PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"/><prop oor:name="UIName"><value xml:lang="x-default">Quattro Pro 6.0</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_QPro</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="MS Excel 4.0" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"/><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Excel 4.0</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_40</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="MS Excel 4.0 Vorlage/Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN TEMPLATE TEMPLATEPATH</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"/><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_40_VorlageTemplate</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="MS Excel 5.0/95" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"/><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Excel 5.0</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_5095</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="MS Excel 5.0/95 Vorlage/Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN TEMPLATE TEMPLATEPATH</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"/><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_5095_VorlageTemplate</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="MS Excel 95" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"/><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Excel 95</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_95</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="MS Excel 95 Vorlage/Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN TEMPLATE TEMPLATEPATH</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"/><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_95_VorlageTemplate</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="MS Excel 97" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"/><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Excel 97/2000/XP/2003</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_97</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="MS Excel 97 Vorlage/Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN TEMPLATE TEMPLATEPATH ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"/><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_97_VorlageTemplate</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="Rich Text Format (StarCalc)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">Rich Text Format (%productname% Calc)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_Rich_Text_Format</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="SYLK" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">SYLK</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_SYLK</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="StarOffice XML (Calc)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>calc_StarOffice_XML_Calc</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="Text - txt - csv (StarCalc)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN USESOPTIONS</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_Text_txt_csv_StarCalc</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="calc_HTML_WebQuery" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN USEOPTIONS PREFERRED</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_web_HTML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="calc_StarOffice_XML_Calc_Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ALIEN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>calc_StarOffice_XML_Calc_Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="calc_pdf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PDF - Portable Document Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="dBase" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN USESOPTIONS</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">dBASE</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_dBase</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="calc8" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>calc8</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="calc8_template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>calc8_template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="MS Excel 2003 XML" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,../share/xslt/import/spreadsheetml/spreadsheetml2ooo.xsl,../share/xslt/export/spreadsheetml/ooo2spreadsheetml.xsl</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_2003_XML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="Calc MS Excel 2007 XML" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.xls.ExcelFilter</value></prop><prop oor:name="UserData"/><prop oor:name="FileFormatVersion"/><prop oor:name="Type"><value>MS Excel 2007 XML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="Calc MS Excel 2007 XML Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.xls.ExcelFilter</value></prop><prop oor:name="UserData"/><prop oor:name="FileFormatVersion"/><prop oor:name="Type"><value>MS Excel 2007 XML Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="Calc MS Excel 2007 Binary" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.xls.ExcelFilter</value></prop><prop oor:name="UserData"/><prop oor:name="FileFormatVersion"/><prop oor:name="Type"><value>MS Excel 2007 Binary</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="Calc Office Open XML" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.xls.ExcelFilter</value></prop><prop oor:name="UserData"><value>OOXML</value></prop><prop oor:name="FileFormatVersion"><value>1</value></prop><prop oor:name="Type"><value>Office Open XML Spreadsheet</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node><node oor:name="Calc Office Open XML Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.ExcelFilter</value></prop><prop oor:name="UserData"><value>OOXML</value></prop><prop oor:name="FileFormatVersion"><value>1</value></prop><prop oor:name="Type"><value>Office Open XML Spreadsheet Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="calc_DIF" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>dif</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>DIF</value></prop><prop oor:name="UIName"><value>Data Interchange Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_web_HTML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"><value>private:factory/swriter/web*</value></prop><prop oor:name="Extensions"><value>html htm</value></prop><prop oor:name="MediaType"><value>text/html</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>HTML</value></prop><prop oor:name="UIName"><value>HTML Document</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_Lotus" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wk1 wks 123</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Lotus</value></prop><prop oor:name="UIName"><value>Lotus</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_QPro" oor:op="replace" oor:finalized="true" oor:mandatory="true"><prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wb2</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Quattro Pro 6.0</value></prop><prop oor:name="UIName"><value>Quattro Pro 6.0</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_MS_Excel_40" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xls xlw xlc xlm</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 4.0</value></prop><prop oor:name="UIName"><value>Microsoft Excel 4.0</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_MS_Excel_40_VorlageTemplate" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xlt</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 4.0 Vorlage/Template</value></prop><prop oor:name="UIName"><value>MS Excel 4.0 Template</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_MS_Excel_5095" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xls xlc xlm xlw</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 5.0/95</value></prop><prop oor:name="UIName"><value>Microsoft Excel 5.0</value></prop><prop oor:name="ClipboardFormat"><value>Biff5</value></prop></node><node oor:name="calc_MS_Excel_5095_VorlageTemplate" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xlt</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 5.0/95 Vorlage/Template</value></prop><prop oor:name="UIName"><value>MS Excel 5.0 Template</value></prop><prop oor:name="ClipboardFormat"><value>Biff5</value></prop></node><node oor:name="calc_MS_Excel_95" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xls xlc xlm xlw</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 95</value></prop><prop oor:name="UIName"><value>Microsoft Excel 95</value></prop><prop oor:name="ClipboardFormat"><value>Biff5</value></prop></node><node oor:name="calc_MS_Excel_95_VorlageTemplate" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xlt</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 95 Vorlage/Template</value></prop><prop oor:name="UIName"><value>MS Excel 95 Template</value></prop><prop oor:name="ClipboardFormat"><value>Biff5</value></prop></node><node oor:name="calc_MS_Excel_97" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xls xlc xlm xlw xlk</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 97</value></prop><prop oor:name="UIName"><value>Microsoft Excel 97/2000/XP/2003</value></prop><prop oor:name="ClipboardFormat"><value>Biff8</value></prop></node><node oor:name="calc_MS_Excel_97_VorlageTemplate" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xlt</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 97 Vorlage/Template</value></prop><prop oor:name="UIName"><value>MS Excel 97/2000 Template</value></prop><prop oor:name="ClipboardFormat"><value>Biff8</value></prop></node><node oor:name="writer_Rich_Text_Format" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>rtf</value></prop><prop oor:name="MediaType"><value>application/rtf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Rich Text Format</value></prop><prop oor:name="UIName"><value>Rich Text Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_SYLK" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>slk sylk</value></prop><prop oor:name="MediaType"><value>text/spreadsheet</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>SYLK</value></prop><prop oor:name="UIName"><value>SYLK</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_StarOffice_XML_Calc" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sxc</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.calc</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>StarOffice XML (Calc)</value></prop><prop oor:name="UIName"><value>Calc 6.0</value></prop><prop oor:name="ClipboardFormat"><value>Calc 6.0</value></prop></node><node oor:name="calc_Text_txt_csv_StarCalc" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>csv txt</value></prop><prop oor:name="MediaType"><value>text/plain</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Text - txt - csv (StarCalc)</value></prop><prop oor:name="UIName"><value>Text - txt - csv (StarOffice Calc)</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_StarOffice_XML_Calc_Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>stc</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>calc_StarOffice_XML_Calc_Template</value></prop><prop oor:name="UIName"><value>Calc 6.0 Template</value></prop><prop oor:name="ClipboardFormat"><value>Calc 6.0</value></prop></node><node oor:name="pdf_Portable_Document_Format" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pdf</value></prop><prop oor:name="MediaType"><value>application/pdf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>PDF - Portable Document Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_dBase" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>dbf</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>dBase</value></prop><prop oor:name="UIName"><value>dBASE</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc8" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop><prop oor:name="URLPattern"><value>private:factory/scalc*</value></prop><prop oor:name="Extensions"><value>ods</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.spreadsheet</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>calc8</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Calc 8</value></prop><prop oor:name="ClipboardFormat"><value>Calc 8</value></prop></node><node oor:name="calc8_template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ots</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.spreadsheet-template</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>calc8_template</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Calc 8 Template</value></prop><prop oor:name="ClipboardFormat"><value>Calc 8 Template</value></prop></node><node oor:name="calc_MS_Excel_2003_XML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xml xls</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 2003 XML</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 2003 XML</value></prop><prop oor:name="ClipboardFormat"><value>doctype:Workbook</value></prop></node><node oor:name="MS Excel 2007 XML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xlsx xlsm</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Calc MS Excel 2007 XML</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 2007/2010 XML</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="MS Excel 2007 XML Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xltm xltx</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Calc MS Excel 2007 XML Template</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 2007/2010 XML Template</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="MS Excel 2007 Binary" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xlsb</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Calc MS Excel 2007 Binary</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 2007 Binary</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="Office Open XML Spreadsheet" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xlsx xlsm</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Calc Office Open XML</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Spreadsheet</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="Office Open XML Spreadsheet Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xltx xltm</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Calc Office Open XML Template</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Spreadsheet Template</value></prop><prop oor:name="ClipboardFormat"/></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"><node oor:name="Menus"><node oor:name="New"><node oor:name="m1" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/scalc</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Spreadsheet</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:package="org.openoffice.Office" oor:name="Embedding"><node oor:name="Objects"><node oor:name="47BBB4CB-CE4C-4E80-A591-42D9AE74950F" oor:op="replace"><prop oor:name="ObjectFactory"><value>com.sun.star.embed.OOoEmbeddedObjectFactory</value></prop><prop oor:name="ObjectDocumentServiceName"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop><prop oor:name="ObjectMiscStatus"/><prop oor:name="ObjectVerbs"><value>PRIMARY SHOW OPEN HIDE UIACTIVATE IPACTIVATE SAVECOPYAS</value></prop></node></node><node oor:name="ObjectNames"><node oor:name="Calc" oor:op="replace"><prop oor:name="ObjectUIName"><value xml:lang="en-US">%PRODUCTNAME %PRODUCTVERSION Spreadsheet</value></prop><prop oor:name="ClassID"><value>47BBB4CB-CE4C-4E80-A591-42D9AE74950F</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice"><node oor:name="Office"><node oor:name="Factories"><node oor:name="com.sun.star.sheet.SpreadsheetDocument" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>CalcCommands</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>calc8</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"><value>calc8_template</value></prop><prop oor:name="ooSetupFactoryDefaultFilter"><value>calc8</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/scalc</value></prop><prop oor:name="ooSetupFactoryWindowAttributes"><value>,,,;4;</value></prop><prop oor:name="ooSetupFactoryIcon"><value>4</value></prop><prop oor:name="ooSetupFactoryTemplateFile"><value/></prop><prop oor:name="ooSetupFactorySystemDefaultTemplateChanged"><value>false</value></prop><prop oor:name="ooSetupFactoryShortName"><value>scalc</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Calc</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>CalcWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/draw.xcd b/test/user-template/user/registry/draw.xcd
new file mode 100644
index 000000000000..185adcbcea57
--- /dev/null
+++ b/test/user-template/user/registry/draw.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-schema oor:name="DrawWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="DrawWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/extrusionobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">3D-Settings</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graphicobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Picture</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/optionsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Options</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/findbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Find</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/drawingobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Line and Filling</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/3dobjectsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">3D-Objects</value></prop></node><node oor:name="private:resource/toolbar/alignmentbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Align</value></prop></node><node oor:name="private:resource/toolbar/arrowsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Arrows</value></prop></node><node oor:name="private:resource/toolbar/bezierobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Edit Points</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/choosemodebar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Mode</value></prop></node><node oor:name="private:resource/toolbar/connectorsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Connectors</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/ellipsesbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Circles and Ovals</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkshapetype" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork Shape</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formtextobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Box Formatting</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsfilterbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Filter</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsnavigationbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Navigation</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/moreformcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">More Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formdesign" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Design</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/gluepointsobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Gluepoints</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graffilterbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Graphic Filter</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/insertbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop></node><node oor:name="private:resource/toolbar/linesbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Lines</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/positionbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Position</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/rectanglesbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Rectangles</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/textbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/textobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Formatting</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/tableobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/zoombar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Zoom</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/basicshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/arrowshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/flowchartshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Flowchart</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/symbolshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/calloutshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/starshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Stars and Banners</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/viewerbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard (Viewing Mode)</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/mediaobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Media Playback</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/colorbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Color</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/commentsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Comments</value></prop></node><node oor:name="private:resource/toolbar/masterviewtoolbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Locked" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Pos" oor:type="xs:string"><value>500,90</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Master View</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/optimizetablebar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Optimize</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="StarOffice XML (Draw)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN PREFERRED ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>XML</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>draw_StarOffice_XML_Draw</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_StarOffice_XML_Draw_Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ALIEN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXMLV</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>draw_StarOffice_XML_Draw_Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_pdf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PDF - Portable Document Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw8" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>XML</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>draw8</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw8_template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXMLV</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>draw8_template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="WordPerfect Graphics" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Draw.WPGImportFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">WordPerfect Graphics</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>draw_WordPerfect_Graphics</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="Visio Document" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Draw.VisioImportFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Visio 2000/XP/2003</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>draw_Visio_Document</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="draw_StarOffice_XML_Draw" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sxd</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.draw</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>StarOffice XML (Draw)</value></prop><prop oor:name="UIName"><value>%productname% %formatversion% Zeichnung</value></prop><prop oor:name="ClipboardFormat"><value>Draw 6.0</value></prop></node><node oor:name="draw_StarOffice_XML_Draw_Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>std</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>draw_StarOffice_XML_Draw_Template</value></prop><prop oor:name="UIName"><value>Draw 6.0 Template</value></prop><prop oor:name="ClipboardFormat"><value>Draw 6.0</value></prop></node><node oor:name="pdf_Portable_Document_Format" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pdf</value></prop><prop oor:name="MediaType"><value>application/pdf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>PDF - Portable Document Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="draw8" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"><value>private:factory/sdraw*</value></prop><prop oor:name="Extensions"><value>odg</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.graphics</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>draw8</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Draw 8</value></prop><prop oor:name="ClipboardFormat"><value>Draw 8</value></prop></node><node oor:name="draw8_template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>otg</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.graphics-template</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>draw8_template</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Draw 8 Template</value></prop><prop oor:name="ClipboardFormat"><value>Draw 8 Template</value></prop></node><node oor:name="draw_WordPerfect_Graphics" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.Draw.WPGImportFilter</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wpg</value></prop><prop oor:name="MediaType"><value>image/x-wpg</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>WordPerfect Graphics</value></prop><prop oor:name="UIName"><value>WordPerfect Graphics</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="draw_Visio_Document" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.Draw.VisioImportFilter</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>vsd</value></prop><prop oor:name="MediaType"><value>image/x-vsd</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Visio Document</value></prop><prop oor:name="UIName"><value>Microsoft Visio 2000/XP/2003</value></prop><prop oor:name="ClipboardFormat"/></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"><node oor:name="Menus"><node oor:name="New"><node oor:name="m3" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/sdraw</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Drawing</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:package="org.openoffice.Office" oor:name="Embedding"><node oor:name="Objects"><node oor:name="4BAB8970-8A3B-45B3-991C-CBEEAC6BD5E3" oor:op="replace"><prop oor:name="ObjectFactory"><value>com.sun.star.embed.OOoEmbeddedObjectFactory</value></prop><prop oor:name="ObjectDocumentServiceName"><value>com.sun.star.drawing.DrawingDocument</value></prop><prop oor:name="ObjectMiscStatus"/><prop oor:name="ObjectVerbs"><value>PRIMARY SHOW OPEN HIDE UIACTIVATE IPACTIVATE SAVECOPYAS</value></prop></node></node><node oor:name="ObjectNames"><node oor:name="Draw" oor:op="replace"><prop oor:name="ObjectUIName"><value xml:lang="en-US">%PRODUCTNAME %PRODUCTVERSION Drawing</value></prop><prop oor:name="ClassID"><value>4BAB8970-8A3B-45B3-991C-CBEEAC6BD5E3</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice"><node oor:name="Office"><node oor:name="Factories"><node oor:name="com.sun.star.drawing.DrawingDocument" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.drawing.DrawingDocument</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>DrawImpressCommands</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>draw8</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"><value>draw8_template</value></prop><prop oor:name="ooSetupFactoryDefaultFilter"><value>draw8</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/sdraw</value></prop><prop oor:name="ooSetupFactoryWindowAttributes"><value>,,,;4;</value></prop><prop oor:name="ooSetupFactoryIcon"><value>6</value></prop><prop oor:name="ooSetupFactoryTemplateFile"><value/></prop><prop oor:name="ooSetupFactorySystemDefaultTemplateChanged"><value>false</value></prop><prop oor:name="ooSetupFactoryShortName"><value>sdraw</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Draw</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>DrawWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/gnome.xcd b/test/user-template/user/registry/gnome.xcd
new file mode 100644
index 000000000000..4a1e52bb7cd4
--- /dev/null
+++ b/test/user-template/user/registry/gnome.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"><node oor:name="View"><node oor:name="FontAntiAliasing"><prop oor:name="Enabled"><value oor:external="com.sun.star.configuration.backend.GconfBackend FontAntiAliasingEnabled"/></prop><prop oor:name="MinPixelHeight"><value oor:external="com.sun.star.configuration.backend.GconfBackend FontAntiAliasingMinPixelHeight"/></prop></node><node oor:name="Menu"><prop oor:name="DontHideDisabledEntry"><value oor:external="com.sun.star.configuration.backend.GconfBackend DontHideDisabledEntry"/></prop><prop oor:name="ShowIconsInMenues"><value oor:external="com.sun.star.configuration.backend.GconfBackend ShowIconsInMenues"/></prop></node></node><node oor:name="Misc"><prop oor:name="UseSystemFileDialog"><value oor:external="com.sun.star.configuration.backend.GconfBackend UseSystemFileDialog"/></prop><prop oor:name="SymbolSet"><value oor:external="com.sun.star.configuration.backend.GconfBackend SymbolSet"/></prop></node><node oor:name="Save"><node oor:name="Document"><prop oor:name="CreateBackup"><value oor:external="com.sun.star.configuration.backend.GconfBackend CreateBackup"/></prop><prop oor:name="WarnAlienFormat"><value oor:external="com.sun.star.configuration.backend.GconfBackend WarnAlienFormat"/></prop></node></node><node oor:name="Security"><node oor:name="Scripting"><prop oor:name="MacroSecurityLevel"><value oor:external="com.sun.star.configuration.backend.GconfBackend MacroSecurityLevel"/></prop><prop oor:name="RecommendPasswordProtection"><value oor:external="com.sun.star.configuration.backend.GconfBackend RecommendPasswordProtection"/></prop><prop oor:name="RemovePersonalInfoOnSaving"><value oor:external="com.sun.star.configuration.backend.GconfBackend RemovePersonalInfoOnSaving"/></prop><prop oor:name="WarnCreatePDF"><value oor:external="com.sun.star.configuration.backend.GconfBackend WarnCreatePDF"/></prop><prop oor:name="WarnPrintDoc"><value oor:external="com.sun.star.configuration.backend.GconfBackend WarnPrintDoc"/></prop><prop oor:name="WarnSaveOrSendDoc"><value oor:external="com.sun.star.configuration.backend.GconfBackend WarnSaveOrSendDoc"/></prop><prop oor:name="WarnSignDoc"><value oor:external="com.sun.star.configuration.backend.GconfBackend WarnSignDoc"/></prop></node></node><node oor:name="Font"><node oor:name="View"><prop oor:name="History"><value oor:external="com.sun.star.configuration.backend.GconfBackend FontViewHistory"/></prop><prop oor:name="ShowFontBoxWYSIWYG"><value oor:external="com.sun.star.configuration.backend.GconfBackend ShowFontBoxWYSIWYG"/></prop></node></node><node oor:name="Accessibility"><prop oor:name="IsSystemFont"><value oor:external="com.sun.star.configuration.backend.GconfBackend AccessibilityIsSystemFont"/></prop></node><node oor:name="Print"><prop oor:name="PrintingModifiesDocument"><value oor:external="com.sun.star.configuration.backend.GconfBackend PrintingModifiesDocument"/></prop></node><node oor:name="Undo"><prop oor:name="Steps"><value oor:external="com.sun.star.configuration.backend.GconfBackend UndoSteps"/></prop></node><node oor:name="_3D_Engine"><prop oor:name="OpenGL"><value oor:external="com.sun.star.configuration.backend.GconfBackend OpenGL"/></prop><prop oor:name="OpenGL_Faster"><value oor:external="com.sun.star.configuration.backend.GconfBackend OpenGL_Faster"/></prop></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:package="org.openoffice.Office" oor:name="Recovery"><node oor:name="AutoSave"><prop oor:name="Enabled"><value oor:external="com.sun.star.configuration.backend.GconfBackend AutoSaveEnabled"/></prop><prop oor:name="TimeIntervall"><value oor:external="com.sun.star.configuration.backend.GconfBackend AutoSaveTimeIntervall"/></prop></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="UserProfile" oor:package="org.openoffice"><node oor:name="Data"><prop oor:name="givenname"><value oor:external="com.sun.star.configuration.backend.GconfBackend givenname"/></prop><prop oor:name="sn"><value oor:external="com.sun.star.configuration.backend.GconfBackend sn"/></prop></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="VCL" oor:package="org.openoffice"><node oor:name="Settings"><node oor:name="DesktopManagement"><prop oor:name="DisablePrinting" oor:type="xs:string"><value oor:external="com.sun.star.configuration.backend.GconfBackend DisablePrinting"/></prop></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/graphicfilter.xcd b/test/user-template/user/registry/graphicfilter.xcd
new file mode 100644
index 000000000000..066851f89eac
--- /dev/null
+++ b/test/user-template/user/registry/graphicfilter.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="BMP - MS Windows" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">BMP - Windows Bitmap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>bmp_MS_Windows</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="DXF - AutoCAD Interchange" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">DXF - AutoCAD Interchange Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>dxf_AutoCAD_Interchange</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="EMF - MS Windows Metafile" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">EMF - Enhanced Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>emf_MS_Windows_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="EPS - Encapsulated PostScript" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">EPS - Encapsulated PostScript</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>eps_Encapsulated_PostScript</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="GIF - Graphics Interchange" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">GIF - Graphics Interchange Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>gif_Graphics_Interchange</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="JPG - JPEG" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">JPEG - Joint Photographic Experts Group</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>jpg_JPEG</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="MET - OS/2 Metafile" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">MET - OS/2 Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>met_OS2_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="PBM - Portable Bitmap" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PBM - Portable Bitmap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pbm_Portable_Bitmap</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="PCT - Mac Pict" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PCT - Mac Pict</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pct_Mac_Pict</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="PCX - Zsoft Paintbrush" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PCX - Zsoft Paintbrush</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pcx_Zsoft_Paintbrush</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="PGM - Portable Graymap" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PGM - Portable Graymap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pgm_Portable_Graymap</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="PNG - Portable Network Graphic" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PNG - Portable Network Graphic</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>png_Portable_Network_Graphic</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="PPM - Portable Pixelmap" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PPM - Portable Pixelmap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>ppm_Portable_Pixelmap</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="PSD - Adobe Photoshop" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PSD - Adobe Photoshop</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>psd_Adobe_Photoshop</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="RAS - Sun Rasterfile" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">RAS - Sun Raster Image</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>ras_Sun_Rasterfile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="SGF - StarOffice Writer SGF" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">SGF - StarWriter Graphics Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>sgf_StarOffice_Writer_SGF</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="SGV - StarDraw 2.0" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">SGV - StarDraw 2.0</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>sgv_StarDraw_20</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="SVG - Scalable Vector Graphics" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">SVG - Scalable Vector Graphics</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="SVM - StarView Metafile" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">SVM - StarView Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>svm_StarView_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="SVG - Scalable Vector Graphics" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">SVG - Scalable Vector Graphics</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="TGA - Truevision TARGA" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">TGA - Truevision Targa</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>tga_Truevision_TARGA</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="TIF - Tag Image File" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">TIFF - Tagged Image File Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>tif_Tag_Image_File</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="WMF - MS Windows Metafile" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">WMF - Windows Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>wmf_MS_Windows_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="XBM - X-Consortium" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">XBM - X Bitmap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>xbm_X_Consortium</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="XPM" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">XPM - X PixMap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>xpm_XPM</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_PCD_Photo_CD_Base" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PCD - Kodak Photo CD (768x512)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pcd_Photo_CD_Base</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_PCD_Photo_CD_Base16" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PCD - Kodak Photo CD (192x128)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pcd_Photo_CD_Base16</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_PCD_Photo_CD_Base4" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PCD - Kodak Photo CD (384x256)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pcd_Photo_CD_Base4</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_bmp_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">BMP - Windows Bitmap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>bmp_MS_Windows</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_emf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">EMF - Enhanced Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>emf_MS_Windows_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_eps_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">EPS - Encapsulated PostScript</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>eps_Encapsulated_PostScript</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_flash_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Impress.FlashExportFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">Macromedia Flash (SWF)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>graphic_SWF</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_gif_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">GIF - Graphics Interchange Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>gif_Graphics_Interchange</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_html_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.draw.SdHtmlOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>graphic_HTML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_jpg_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">JPEG - Joint Photographic Experts Group</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>jpg_JPEG</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_met_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">MET - OS/2 Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>met_OS2_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_pbm_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PBM - Portable Bitmap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pbm_Portable_Bitmap</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_pct_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PCT - Mac Pict</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pct_Mac_Pict</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_pgm_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PGM - Portable Graymap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pgm_Portable_Graymap</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_png_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PNG - Portable Network Graphic</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>png_Portable_Network_Graphic</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_ppm_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PPM - Portable Pixelmap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>ppm_Portable_Pixelmap</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_ras_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">RAS - Sun Raster Image</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>ras_Sun_Rasterfile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_svg_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">SVG - Scalable Vector Graphics</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_svm_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">SVM - StarView Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>svm_StarView_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_tif_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">TIFF - Tagged Image File Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>tif_Tag_Image_File</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_wmf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">WMF - Windows Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>wmf_MS_Windows_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node><node oor:name="draw_xpm_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">XPM - X PixMap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>xpm_XPM</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="bmp_MS_Windows" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>bmp</value></prop><prop oor:name="MediaType"><value>image/x-MS-bmp</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>BMP - MS Windows</value></prop><prop oor:name="UIName"><value>BMP - Windows Bitmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="dxf_AutoCAD_Interchange" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>dxf</value></prop><prop oor:name="MediaType"><value>image/vnd.dxf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>DXF - AutoCAD Interchange</value></prop><prop oor:name="UIName"><value>DXF - AutoCAD Interchange Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="emf_MS_Windows_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>emf</value></prop><prop oor:name="MediaType"><value>image/x-emf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>EMF - MS Windows Metafile</value></prop><prop oor:name="UIName"><value>EMF - Enhanced Meta File</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="eps_Encapsulated_PostScript" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>eps</value></prop><prop oor:name="MediaType"><value>image/x-eps</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>EPS - Encapsulated PostScript</value></prop><prop oor:name="UIName"><value>EPS - Encapsulated PostScript</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="gif_Graphics_Interchange" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>gif</value></prop><prop oor:name="MediaType"><value>image/gif</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>GIF - Graphics Interchange</value></prop><prop oor:name="UIName"><value>GIF - Graphics Interchange</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="graphic_HTML" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>html htm</value></prop><prop oor:name="MediaType"><value>text/html</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>HTML</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="graphic_SWF" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>swf</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>Macromedia Flash (SWF)</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="jpg_JPEG" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>jpg jpeg jfif jif jpe</value></prop><prop oor:name="MediaType"><value>image/jpeg</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>JPG - JPEG</value></prop><prop oor:name="UIName"><value>JPEG - Joint Photographic Experts Group</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="met_OS2_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>met</value></prop><prop oor:name="MediaType"><value>image/x-met</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MET - OS/2 Metafile</value></prop><prop oor:name="UIName"><value>MET - OS/2 Metafile</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pbm_Portable_Bitmap" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pbm</value></prop><prop oor:name="MediaType"><value>image/x-portable-bitmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PBM - Portable Bitmap</value></prop><prop oor:name="UIName"><value>PBM - Portable Bitmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pcd_Photo_CD_Base" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pcd</value></prop><prop oor:name="MediaType"><value>image/x-photo-cd</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>draw_PCD_Photo_CD_Base</value></prop><prop oor:name="UIName"><value>PCD - Photo CD Base</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pcd_Photo_CD_Base16" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pcd</value></prop><prop oor:name="MediaType"><value>image/x-photo-cd</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>draw_PCD_Photo_CD_Base16</value></prop><prop oor:name="UIName"><value>PCD - Photo CD Base16</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pcd_Photo_CD_Base4" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pcd</value></prop><prop oor:name="MediaType"><value>image/x-photo-cd</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>draw_PCD_Photo_CD_Base4</value></prop><prop oor:name="UIName"><value>PCD - Photo CD Base4</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pct_Mac_Pict" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pct pict</value></prop><prop oor:name="MediaType"><value>image/x-pict</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PCT - Mac Pict</value></prop><prop oor:name="UIName"><value>PCT - Mac Pict</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pcx_Zsoft_Paintbrush" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pcx</value></prop><prop oor:name="MediaType"><value>image/x-pcx</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PCX - Zsoft Paintbrush</value></prop><prop oor:name="UIName"><value>PCX - Zsoft Paintbrush</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pgm_Portable_Graymap" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pgm</value></prop><prop oor:name="MediaType"><value>image/x-portable-graymap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PGM - Portable Graymap</value></prop><prop oor:name="UIName"><value>PGM - Portable Graymap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="png_Portable_Network_Graphic" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>png</value></prop><prop oor:name="MediaType"><value>image/png</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PNG - Portable Network Graphic</value></prop><prop oor:name="UIName"><value>PNG - Portable Network Graphic</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="ppm_Portable_Pixelmap" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ppm</value></prop><prop oor:name="MediaType"><value>image/x-portable-pixmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PPM - Portable Pixelmap</value></prop><prop oor:name="UIName"><value>PPM - Portable Pixelmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="psd_Adobe_Photoshop" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>psd</value></prop><prop oor:name="MediaType"><value>image/vnd.adobe.photoshop</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PSD - Adobe Photoshop</value></prop><prop oor:name="UIName"><value>PSD - Adobe Photoshop</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="ras_Sun_Rasterfile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ras</value></prop><prop oor:name="MediaType"><value>image/x-cmu-raster</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>RAS - Sun Rasterfile</value></prop><prop oor:name="UIName"><value>RAS - Sun Raster Image</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="sgf_StarOffice_Writer_SGF" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sgf</value></prop><prop oor:name="MediaType"><value>image/x-sgf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>SGF - StarOffice Writer SGF</value></prop><prop oor:name="UIName"><value>SGF - StarWriter SGF</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="sgv_StarDraw_20" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sgv</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>SGV - StarDraw 2.0</value></prop><prop oor:name="UIName"><value>SGV - StarDraw 2.0</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="svg_Scalable_Vector_Graphics" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>svg</value></prop><prop oor:name="MediaType"><value>image/svg+xml</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>SVG - Scalable Vector Graphics</value></prop><prop oor:name="UIName"><value>SVG - Scalable Vector Graphics</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="svm_StarView_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>svm</value></prop><prop oor:name="MediaType"><value>image/x-svm</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>SVM - StarView Metafile</value></prop><prop oor:name="UIName"><value>SVM - StarView Meta File</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="tga_Truevision_TARGA" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>tga</value></prop><prop oor:name="MediaType"><value>image/x-targa</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>TGA - Truevision TARGA</value></prop><prop oor:name="UIName"><value>TGA - Truevision Targa</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="tif_Tag_Image_File" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>tif tiff</value></prop><prop oor:name="MediaType"><value>image/tiff</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>TIF - Tag Image File</value></prop><prop oor:name="UIName"><value>TIFF - Tagged Image File Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="wmf_MS_Windows_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wmf</value></prop><prop oor:name="MediaType"><value>image/x-wmf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>WMF - MS Windows Metafile</value></prop><prop oor:name="UIName"><value>WMF - Windows Metafile</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="xbm_X_Consortium" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xbm</value></prop><prop oor:name="MediaType"><value>image/x-xbitmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>XBM - X-Consortium</value></prop><prop oor:name="UIName"><value>XBM - X Bitmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="xpm_XPM" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xpm</value></prop><prop oor:name="MediaType"><value>image/x-xpixmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>XPM</value></prop><prop oor:name="UIName"><value>XPM - X PixMap</value></prop><prop oor:name="ClipboardFormat"/></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="CGM - Computer Graphics Metafile" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>icg</value></prop><prop oor:name="UIName"><value xml:lang="x-default">CGM - Computer Graphics Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>impress_CGM_Computer_Graphics_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_bmp_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">BMP - Windows Bitmap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>bmp_MS_Windows</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_emf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">EMF - Enhanced Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>emf_MS_Windows_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_eps_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">EPS - Encapsulated PostScript</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>eps_Encapsulated_PostScript</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_flash_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Impress.FlashExportFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">Macromedia Flash (SWF)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>graphic_SWF</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_gif_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">GIF - Graphics Interchange Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>gif_Graphics_Interchange</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_html_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.draw.SdHtmlOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>graphic_HTML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_jpg_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">JPEG - Joint Photographic Experts Group</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>jpg_JPEG</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_met_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">MET - OS/2 Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>met_OS2_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_pbm_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PBM - Portable Bitmap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pbm_Portable_Bitmap</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_pct_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PCT - Mac Pict</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pct_Mac_Pict</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_pgm_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PGM - Portable Graymap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pgm_Portable_Graymap</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_png_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PNG - Portable Network Graphic</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>png_Portable_Network_Graphic</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_ppm_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PPM - Portable Pixelmap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>ppm_Portable_Pixelmap</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_ras_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">RAS - Sun Raster Image</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>ras_Sun_Rasterfile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_svg_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">SVG - Scalable Vector Graphics</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_svm_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">SVM - StarView Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>svm_StarView_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_tif_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">TIFF - Tagged Image File Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>tif_Tag_Image_File</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_wmf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">WMF - Windows Metafile</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>wmf_MS_Windows_Metafile</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_xpm_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">XPM - X PixMap</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>xpm_XPM</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="bmp_MS_Windows" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>bmp</value></prop><prop oor:name="MediaType"><value>image/x-MS-bmp</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>BMP - MS Windows</value></prop><prop oor:name="UIName"><value>BMP - Windows Bitmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="emf_MS_Windows_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>emf</value></prop><prop oor:name="MediaType"><value>image/x-emf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>EMF - MS Windows Metafile</value></prop><prop oor:name="UIName"><value>EMF - Enhanced Meta File</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="eps_Encapsulated_PostScript" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>eps</value></prop><prop oor:name="MediaType"><value>image/x-eps</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>EPS - Encapsulated PostScript</value></prop><prop oor:name="UIName"><value>EPS - Encapsulated PostScript</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="gif_Graphics_Interchange" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>gif</value></prop><prop oor:name="MediaType"><value>image/gif</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>GIF - Graphics Interchange</value></prop><prop oor:name="UIName"><value>GIF - Graphics Interchange</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="graphic_HTML" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>html htm</value></prop><prop oor:name="MediaType"><value>text/html</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>HTML</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="graphic_SWF" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>swf</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>Macromedia Flash (SWF)</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="impress_CGM_Computer_Graphics_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>cgm</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>CGM - Computer Graphics Metafile</value></prop><prop oor:name="UIName"><value>CGM - Computer Graphics Metafile</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="jpg_JPEG" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>jpg jpeg jfif jif jpe</value></prop><prop oor:name="MediaType"><value>image/jpeg</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>JPG - JPEG</value></prop><prop oor:name="UIName"><value>JPEG - Joint Photographic Experts Group</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="met_OS2_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>met</value></prop><prop oor:name="MediaType"><value>image/x-met</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MET - OS/2 Metafile</value></prop><prop oor:name="UIName"><value>MET - OS/2 Metafile</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pbm_Portable_Bitmap" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pbm</value></prop><prop oor:name="MediaType"><value>image/x-portable-bitmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PBM - Portable Bitmap</value></prop><prop oor:name="UIName"><value>PBM - Portable Bitmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pct_Mac_Pict" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pct pict</value></prop><prop oor:name="MediaType"><value>image/x-pict</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PCT - Mac Pict</value></prop><prop oor:name="UIName"><value>PCT - Mac Pict</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pgm_Portable_Graymap" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pgm</value></prop><prop oor:name="MediaType"><value>image/x-portable-graymap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PGM - Portable Graymap</value></prop><prop oor:name="UIName"><value>PGM - Portable Graymap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="png_Portable_Network_Graphic" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>png</value></prop><prop oor:name="MediaType"><value>image/png</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PNG - Portable Network Graphic</value></prop><prop oor:name="UIName"><value>PNG - Portable Network Graphic</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="ppm_Portable_Pixelmap" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ppm</value></prop><prop oor:name="MediaType"><value>image/x-portable-pixmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PPM - Portable Pixelmap</value></prop><prop oor:name="UIName"><value>PPM - Portable Pixelmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="ras_Sun_Rasterfile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ras</value></prop><prop oor:name="MediaType"><value>image/x-cmu-raster</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>RAS - Sun Rasterfile</value></prop><prop oor:name="UIName"><value>RAS - Sun Raster Image</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="svg_Scalable_Vector_Graphics" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>svg</value></prop><prop oor:name="MediaType"><value>image/svg+xml</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>SVG - Scalable Vector Graphics</value></prop><prop oor:name="UIName"><value>SVG - Scalable Vector Graphics</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="svm_StarView_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>svm</value></prop><prop oor:name="MediaType"><value>image/x-svm</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>SVM - StarView Metafile</value></prop><prop oor:name="UIName"><value>SVM - StarView Meta File</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="tif_Tag_Image_File" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>tif tiff</value></prop><prop oor:name="MediaType"><value>image/tiff</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>TIF - Tag Image File</value></prop><prop oor:name="UIName"><value>TIFF - Tagged Image File Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="wmf_MS_Windows_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wmf</value></prop><prop oor:name="MediaType"><value>image/x-wmf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>WMF - MS Windows Metafile</value></prop><prop oor:name="UIName"><value>WMF - Windows Metafile</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="xpm_XPM" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xpm</value></prop><prop oor:name="MediaType"><value>image/x-xpixmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>XPM</value></prop><prop oor:name="UIName"><value>XPM - X PixMap</value></prop><prop oor:name="ClipboardFormat"/></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/impress.xcd b/test/user-template/user/registry/impress.xcd
new file mode 100644
index 000000000000..a7bb1c469634
--- /dev/null
+++ b/test/user-template/user/registry/impress.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-schema oor:name="Effects" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates><group oor:name="LabelType"><prop oor:name="Label" oor:type="xs:string" oor:localized="true"/></group><group oor:name="PresetCategory"><prop oor:name="Label" oor:type="xs:string" oor:localized="true"/><prop oor:name="Effects" oor:type="oor:string-list" oor:localized="false"/></group></templates><component><group oor:name="UserInterface"><set oor:name="Effects" oor:node-type="LabelType"/><set oor:name="Transitions" oor:node-type="LabelType"/><set oor:name="Properties" oor:node-type="LabelType"/></group><group oor:name="Presets"><set oor:name="Entrance" oor:node-type="PresetCategory"/><set oor:name="Emphasis" oor:node-type="PresetCategory"/><set oor:name="Exit" oor:node-type="PresetCategory"/><set oor:name="MotionPaths" oor:node-type="PresetCategory"/><set oor:name="Misc" oor:node-type="PresetCategory"/></group></component></oor:component-schema><oor:component-schema oor:name="ImpressWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Effects" oor:package="org.openoffice.Office.UI"><node oor:name="UserInterface"><node oor:name="Effects"><node oor:name="ooo-entrance-appear" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Appear</value></prop></node><node oor:name="ooo-entrance-fly-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fly In</value></prop></node><node oor:name="ooo-entrance-venetian-blinds" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Venetian Blinds</value></prop></node><node oor:name="ooo-entrance-box" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Box</value></prop></node><node oor:name="ooo-entrance-checkerboard" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Checkerboard</value></prop></node><node oor:name="ooo-entrance-circle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle</value></prop></node><node oor:name="ooo-entrance-fly-in-slow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fly in Slow</value></prop></node><node oor:name="ooo-entrance-diamond" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diamond</value></prop></node><node oor:name="ooo-entrance-dissolve-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Dissolve In</value></prop></node><node oor:name="ooo-entrance-fade-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade In</value></prop></node><node oor:name="ooo-entrance-flash-once" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flash Once</value></prop></node><node oor:name="ooo-entrance-peek-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Peek In</value></prop></node><node oor:name="ooo-entrance-plus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Plus</value></prop></node><node oor:name="ooo-entrance-random-bars" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Random Bars</value></prop></node><node oor:name="ooo-entrance-spiral-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spiral In</value></prop></node><node oor:name="ooo-entrance-split" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split</value></prop></node><node oor:name="ooo-entrance-stretchy" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Stretchy</value></prop></node><node oor:name="ooo-entrance-diagonal-squares" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diagonal Squares</value></prop></node><node oor:name="ooo-entrance-swivel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Swivel</value></prop></node><node oor:name="ooo-entrance-wedge" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wedge</value></prop></node><node oor:name="ooo-entrance-wheel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wheel</value></prop></node><node oor:name="ooo-entrance-wipe" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wipe</value></prop></node><node oor:name="ooo-entrance-zoom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom</value></prop></node><node oor:name="ooo-entrance-random" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Random Effects</value></prop></node><node oor:name="ooo-entrance-boomerang" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Boomerang</value></prop></node><node oor:name="ooo-entrance-bounce" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bounce</value></prop></node><node oor:name="ooo-entrance-colored-lettering" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Colored Lettering</value></prop></node><node oor:name="ooo-entrance-movie-credits" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Movie Credits</value></prop></node><node oor:name="ooo-entrance-ease-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ease In</value></prop></node><node oor:name="ooo-entrance-float" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Float</value></prop></node><node oor:name="ooo-entrance-turn-and-grow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Turn and Grow</value></prop></node><node oor:name="ooo-entrance-breaks" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Put on the Brakes</value></prop></node><node oor:name="ooo-entrance-pinwheel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pinwheel</value></prop></node><node oor:name="ooo-entrance-rise-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rise Up</value></prop></node><node oor:name="ooo-entrance-falling-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Falling In</value></prop></node><node oor:name="ooo-entrance-thread" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Thread</value></prop></node><node oor:name="ooo-entrance-unfold" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Unfold</value></prop></node><node oor:name="ooo-entrance-whip" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Whip</value></prop></node><node oor:name="ooo-entrance-ascend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ascend</value></prop></node><node oor:name="ooo-entrance-center-revolve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Center Revolve</value></prop></node><node oor:name="ooo-entrance-fade-in-and-swivel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade in and Swivel</value></prop></node><node oor:name="ooo-entrance-descend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Descend</value></prop></node><node oor:name="ooo-entrance-sling" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sling</value></prop></node><node oor:name="ooo-entrance-spin-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spin In</value></prop></node><node oor:name="ooo-entrance-compress" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Compress</value></prop></node><node oor:name="ooo-entrance-magnify" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Magnify</value></prop></node><node oor:name="ooo-entrance-curve-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curve Up</value></prop></node><node oor:name="ooo-entrance-fade-in-and-zoom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade in and Zoom</value></prop></node><node oor:name="ooo-entrance-glide" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Glide</value></prop></node><node oor:name="ooo-entrance-expand" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Expand</value></prop></node><node oor:name="ooo-entrance-flip" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flip</value></prop></node><node oor:name="ooo-entrance-fold" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fold</value></prop></node><node oor:name="ooo-emphasis-fill-color" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Change Fill Color</value></prop></node><node oor:name="ooo-emphasis-font" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Change Font</value></prop></node><node oor:name="ooo-emphasis-font-color" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Change Font Color</value></prop></node><node oor:name="ooo-emphasis-font-size" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Change Font Size</value></prop></node><node oor:name="ooo-emphasis-font-style" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Change Font Style</value></prop></node><node oor:name="ooo-emphasis-grow-and-shrink" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Grow and Shrink</value></prop></node><node oor:name="ooo-emphasis-line-color" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Change Line Color</value></prop></node><node oor:name="ooo-emphasis-spin" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spin</value></prop></node><node oor:name="ooo-emphasis-transparency" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Transparency</value></prop></node><node oor:name="ooo-emphasis-bold-flash" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bold Flash</value></prop></node><node oor:name="ooo-emphasis-color-over-by-word" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Color Over by Word</value></prop></node><node oor:name="ooo-emphasis-reveal-underline" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reveal Underline</value></prop></node><node oor:name="ooo-emphasis-color-blend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Color Blend</value></prop></node><node oor:name="ooo-emphasis-color-over-by-letter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Color Over by Letter</value></prop></node><node oor:name="ooo-emphasis-complementary-color" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Complementary Color</value></prop></node><node oor:name="ooo-emphasis-complementary-color-2" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Complementary Color 2</value></prop></node><node oor:name="ooo-emphasis-contrasting-color" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Contrasting Color</value></prop></node><node oor:name="ooo-emphasis-darken" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Darken</value></prop></node><node oor:name="ooo-emphasis-desaturate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Desaturate</value></prop></node><node oor:name="ooo-emphasis-flash-bulb" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flash Bulb</value></prop></node><node oor:name="ooo-emphasis-lighten" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Lighten</value></prop></node><node oor:name="ooo-emphasis-vertical-highlight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical Highlight</value></prop></node><node oor:name="ooo-emphasis-flicker" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flicker</value></prop></node><node oor:name="ooo-emphasis-grow-with-color" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Grow With Color</value></prop></node><node oor:name="ooo-emphasis-shimmer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Shimmer</value></prop></node><node oor:name="ooo-emphasis-teeter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Teeter</value></prop></node><node oor:name="ooo-emphasis-blast" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Blast</value></prop></node><node oor:name="ooo-emphasis-blink" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Blink</value></prop></node><node oor:name="ooo-emphasis-style-emphasis" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Style Emphasis</value></prop></node><node oor:name="ooo-emphasis-bold-reveal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bold Reveal</value></prop></node><node oor:name="ooo-emphasis-wave" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wave</value></prop></node><node oor:name="ooo-exit-venetian-blinds" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Venetian Blinds</value></prop></node><node oor:name="ooo-exit-box" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Box</value></prop></node><node oor:name="ooo-exit-checkerboard" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Checkerboard</value></prop></node><node oor:name="ooo-exit-circle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle</value></prop></node><node oor:name="ooo-exit-crawl-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Crawl Out</value></prop></node><node oor:name="ooo-exit-diamond" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diamond</value></prop></node><node oor:name="ooo-exit-disappear" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Disappear</value></prop></node><node oor:name="ooo-exit-dissolve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Dissolve</value></prop></node><node oor:name="ooo-exit-flash-once" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flash Once</value></prop></node><node oor:name="ooo-exit-fly-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fly Out</value></prop></node><node oor:name="ooo-exit-peek-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Peek Out</value></prop></node><node oor:name="ooo-exit-plus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Plus</value></prop></node><node oor:name="ooo-exit-random-bars" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Random Bars</value></prop></node><node oor:name="ooo-exit-random" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Random Effects</value></prop></node><node oor:name="ooo-exit-split" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split</value></prop></node><node oor:name="ooo-exit-diagonal-squares" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diagonal Squares</value></prop></node><node oor:name="ooo-exit-wedge" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wedge</value></prop></node><node oor:name="ooo-exit-wheel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wheel</value></prop></node><node oor:name="ooo-exit-wipe" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wipe</value></prop></node><node oor:name="ooo-exit-contract" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Contract</value></prop></node><node oor:name="ooo-exit-fade-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade Out</value></prop></node><node oor:name="ooo-exit-fade-out-and-swivel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade out and Swivel</value></prop></node><node oor:name="ooo-exit-fade-out-and-zoom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade out and Zoom</value></prop></node><node oor:name="ooo-exit-ascend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ascend</value></prop></node><node oor:name="ooo-exit-center-revolve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Center Revolve</value></prop></node><node oor:name="ooo-exit-collapse" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Collapse</value></prop></node><node oor:name="ooo-exit-colored-lettering" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Colored Lettering</value></prop></node><node oor:name="ooo-exit-descend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Descend</value></prop></node><node oor:name="ooo-exit-ease-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ease Out</value></prop></node><node oor:name="ooo-exit-turn-and-grow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Turn and Grow</value></prop></node><node oor:name="ooo-exit-sink-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sink Down</value></prop></node><node oor:name="ooo-exit-spin-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spin Out</value></prop></node><node oor:name="ooo-exit-stretchy" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Stretchy</value></prop></node><node oor:name="ooo-exit-unfold" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Unfold</value></prop></node><node oor:name="ooo-exit-zoom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom</value></prop></node><node oor:name="ooo-exit-boomerang" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Boomerang</value></prop></node><node oor:name="ooo-exit-bounce" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bounce</value></prop></node><node oor:name="ooo-exit-movie-credits" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Movie Credits</value></prop></node><node oor:name="ooo-exit-curve-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curve Down</value></prop></node><node oor:name="ooo-exit-flip" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flip</value></prop></node><node oor:name="ooo-exit-float" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Float</value></prop></node><node oor:name="ooo-exit-fold" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fold</value></prop></node><node oor:name="ooo-exit-glide" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Glide</value></prop></node><node oor:name="ooo-exit-breaks" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Put on the Brakes</value></prop></node><node oor:name="ooo-exit-magnify" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Magnify</value></prop></node><node oor:name="ooo-exit-pinwheel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pinwheel</value></prop></node><node oor:name="ooo-exit-sling" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sling</value></prop></node><node oor:name="ooo-exit-spiral-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spiral Out</value></prop></node><node oor:name="ooo-exit-swish" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Swish</value></prop></node><node oor:name="ooo-exit-swivel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Swivel</value></prop></node><node oor:name="ooo-exit-thread" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Thread</value></prop></node><node oor:name="ooo-exit-whip" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Whip</value></prop></node><node oor:name="ooo-motionpath-4-point-star" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">4 Point Star</value></prop></node><node oor:name="ooo-motionpath-5-point-star" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">5 Point Star</value></prop></node><node oor:name="ooo-motionpath-6-point-star" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">6 Point Star</value></prop></node><node oor:name="ooo-motionpath-8-point-star" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">8 Point Star</value></prop></node><node oor:name="ooo-motionpath-circle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle</value></prop></node><node oor:name="ooo-motionpath-crescent-moon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Crescent Moon</value></prop></node><node oor:name="ooo-motionpath-diamond" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diamond</value></prop></node><node oor:name="ooo-motionpath-equal-triangle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Equal Triangle</value></prop></node><node oor:name="ooo-motionpath-oval" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Oval</value></prop></node><node oor:name="ooo-motionpath-heart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Heart</value></prop></node><node oor:name="ooo-motionpath-hexagon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Hexagon</value></prop></node><node oor:name="ooo-motionpath-octagon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Octagon</value></prop></node><node oor:name="ooo-motionpath-parallelogram" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Parallelogram</value></prop></node><node oor:name="ooo-motionpath-pentagon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pentagon</value></prop></node><node oor:name="ooo-motionpath-right-triangle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right Triangle</value></prop></node><node oor:name="ooo-motionpath-square" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Square</value></prop></node><node oor:name="ooo-motionpath-teardrop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Teardrop</value></prop></node><node oor:name="ooo-motionpath-trapezoid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Trapezoid</value></prop></node><node oor:name="ooo-motionpath-arc-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arc Down</value></prop></node><node oor:name="ooo-motionpath-arc-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arc Left</value></prop></node><node oor:name="ooo-motionpath-arc-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arc Right</value></prop></node><node oor:name="ooo-motionpath-arc-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arc Up</value></prop></node><node oor:name="ooo-motionpath-bounce-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bounce Left</value></prop></node><node oor:name="ooo-motionpath-bounce-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bounce Right</value></prop></node><node oor:name="ooo-motionpath-curvy-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curvy Left</value></prop></node><node oor:name="ooo-motionpath-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left</value></prop></node><node oor:name="ooo-motionpath-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right</value></prop></node><node oor:name="ooo-motionpath-spiral-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spiral Left</value></prop></node><node oor:name="ooo-motionpath-spiral-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spiral Right</value></prop></node><node oor:name="ooo-motionpath-sine-wave" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sine Wave</value></prop></node><node oor:name="ooo-motionpath-s-curve-1" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">S Curve 1</value></prop></node><node oor:name="ooo-motionpath-s-curve-2" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">S Curve 2</value></prop></node><node oor:name="ooo-motionpath-heartbeat" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Heartbeat</value></prop></node><node oor:name="ooo-motionpath-curvy-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curvy Right</value></prop></node><node oor:name="ooo-motionpath-decaying-wave" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Decaying Wave</value></prop></node><node oor:name="ooo-motionpath-diagonal-down-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diagonal Down Right</value></prop></node><node oor:name="ooo-motionpath-diagonal-up-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diagonal Up Right</value></prop></node><node oor:name="ooo-motionpath-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Down</value></prop></node><node oor:name="ooo-motionpath-funnel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Funnel</value></prop></node><node oor:name="ooo-motionpath-spring" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spring</value></prop></node><node oor:name="ooo-motionpath-stairs-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Stairs Down</value></prop></node><node oor:name="ooo-motionpath-turn-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Turn Down</value></prop></node><node oor:name="ooo-motionpath-turn-down-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Turn Down Right</value></prop></node><node oor:name="ooo-motionpath-turn-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Turn Up</value></prop></node><node oor:name="ooo-motionpath-turn-up-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Turn Up Right</value></prop></node><node oor:name="ooo-motionpath-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Up</value></prop></node><node oor:name="ooo-motionpath-wave" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wave</value></prop></node><node oor:name="ooo-motionpath-zigzag" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zigzag</value></prop></node><node oor:name="ooo-motionpath-bean" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bean</value></prop></node><node oor:name="ooo-motionpath-buzz-saw" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Buzz Saw</value></prop></node><node oor:name="ooo-motionpath-curved-square" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curved Square</value></prop></node><node oor:name="ooo-motionpath-curved-x" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curved X</value></prop></node><node oor:name="ooo-motionpath-curvy-star" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curvy Star</value></prop></node><node oor:name="ooo-motionpath-figure-8-four" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Figure 8 Four</value></prop></node><node oor:name="ooo-motionpath-horizontal-figure-8" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Horizontal Figure 8</value></prop></node><node oor:name="ooo-motionpath-inverted-square" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Inverted Square</value></prop></node><node oor:name="ooo-motionpath-inverted-triangle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Inverted Triangle</value></prop></node><node oor:name="ooo-motionpath-loop-de-loop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Loop de Loop</value></prop></node><node oor:name="ooo-motionpath-neutron" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Neutron</value></prop></node><node oor:name="ooo-motionpath-peanut" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Peanut</value></prop></node><node oor:name="ooo-motionpath-clover" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Clover</value></prop></node><node oor:name="ooo-motionpath-pointy-star" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pointy Star</value></prop></node><node oor:name="ooo-motionpath-swoosh" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Swoosh</value></prop></node><node oor:name="ooo-motionpath-vertical-figure-8" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical Figure 8</value></prop></node><node oor:name="ooo-media-start" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Start media</value></prop></node><node oor:name="ooo-media-stop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">End media</value></prop></node><node oor:name="ooo-media-toggle-pause" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Toggle pause</value></prop></node></node><node oor:name="Properties"><node oor:name="basic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Basic</value></prop></node><node oor:name="special" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Special</value></prop></node><node oor:name="moderate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Moderate</value></prop></node><node oor:name="exciting" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exciting</value></prop></node><node oor:name="subtle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Subtle</value></prop></node><node oor:name="linesandcurves" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Lines and Curves</value></prop></node><node oor:name="vertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical</value></prop></node><node oor:name="horizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Horizontal</value></prop></node><node oor:name="in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">In</value></prop></node><node oor:name="across" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Across</value></prop></node><node oor:name="down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Down</value></prop></node><node oor:name="up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Up</value></prop></node><node oor:name="from-bottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From bottom</value></prop></node><node oor:name="from-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From left</value></prop></node><node oor:name="from-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From right</value></prop></node><node oor:name="from-top" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From top</value></prop></node><node oor:name="from-bottom-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From bottom left</value></prop></node><node oor:name="from-bottom-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From bottom right</value></prop></node><node oor:name="from-top-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From top left</value></prop></node><node oor:name="from-top-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From top right</value></prop></node><node oor:name="horizontal-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Horizontal in</value></prop></node><node oor:name="horizontal-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Horizontal out</value></prop></node><node oor:name="vertical-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical in</value></prop></node><node oor:name="vertical-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical out</value></prop></node><node oor:name="out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Out</value></prop></node><node oor:name="out-from-screen-center" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Out from screen center</value></prop></node><node oor:name="in-from-screen-center" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">In from screen center</value></prop></node><node oor:name="in-slightly" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">In slightly</value></prop></node><node oor:name="out-slightly" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Out slightly</value></prop></node><node oor:name="left-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left down</value></prop></node><node oor:name="left-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left up</value></prop></node><node oor:name="right-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right up</value></prop></node><node oor:name="right-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right down</value></prop></node><node oor:name="to-bottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To bottom</value></prop></node><node oor:name="to-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To left</value></prop></node><node oor:name="to-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To right</value></prop></node><node oor:name="to-top" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To top</value></prop></node><node oor:name="to-bottom-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To bottom-left</value></prop></node><node oor:name="to-bottom-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To bottom-right</value></prop></node><node oor:name="to-top-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To top-left</value></prop></node><node oor:name="to-top-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To top-right</value></prop></node><node oor:name="clockwise" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Clockwise</value></prop></node><node oor:name="counter-clockwise" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Counter-clockwise</value></prop></node><node oor:name="downward" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Downward</value></prop></node><node oor:name="from-bottom-right-horizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From bottom-right horizontal</value></prop></node><node oor:name="from-bottom-right-vertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From bottom-right vertical</value></prop></node><node oor:name="from-center-clockwise" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From center clockwise</value></prop></node><node oor:name="from-center-counter-clockwise" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From center counter-clockwise</value></prop></node><node oor:name="from-top-left-clockwise" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From top-left clockwise</value></prop></node><node oor:name="from-top-left-horizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From top-left horizontal</value></prop></node><node oor:name="from-top-left-vertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From top-left vertical</value></prop></node><node oor:name="from-top-right-counter-clockwise" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From top-right counter-clockwise</value></prop></node><node oor:name="left-to-bottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From left to bottom</value></prop></node><node oor:name="left-to-top" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From left to top</value></prop></node><node oor:name="right-to-bottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From right to bottom</value></prop></node><node oor:name="right-to-top" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">From right to top</value></prop></node></node><node oor:name="Transitions"><node oor:name="venetian-blinds-horizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Venetian Blinds Horizontal</value></prop></node><node oor:name="venetian-blinds-vertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Venetian Blinds Vertical</value></prop></node><node oor:name="box-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Box In</value></prop></node><node oor:name="box-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Box Out</value></prop></node><node oor:name="checkerboard-across" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Checkerboard Across</value></prop></node><node oor:name="checkerboard-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Checkerboard Down</value></prop></node><node oor:name="comb-horizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Comb Horizontal</value></prop></node><node oor:name="comb-vertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Comb Vertical</value></prop></node><node oor:name="cover-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cover Down</value></prop></node><node oor:name="cover-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cover Left</value></prop></node><node oor:name="cover-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cover Right</value></prop></node><node oor:name="cover-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cover Up</value></prop></node><node oor:name="cover-left-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cover Left-Down</value></prop></node><node oor:name="cover-left-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cover Left-Up</value></prop></node><node oor:name="cover-right-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cover Right-Down</value></prop></node><node oor:name="cover-right-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cover Right-Up</value></prop></node><node oor:name="cut" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cut</value></prop></node><node oor:name="cut-through-black" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cut Through Black</value></prop></node><node oor:name="dissolve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Dissolve</value></prop></node><node oor:name="fade-smoothly" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade Smoothly</value></prop></node><node oor:name="fade-through-black" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade Through Black</value></prop></node><node oor:name="zoom-rotate-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Newsflash</value></prop></node><node oor:name="push-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Push Down</value></prop></node><node oor:name="push-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Push Left</value></prop></node><node oor:name="push-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Push Right</value></prop></node><node oor:name="push-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Push Up</value></prop></node><node oor:name="random-bars-horizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Random Bars Horizontal</value></prop></node><node oor:name="random-bars-vertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Random Bars Vertical</value></prop></node><node oor:name="shape-circle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Shape Circle</value></prop></node><node oor:name="shape-diamond" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Shape Diamond</value></prop></node><node oor:name="shape-plus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Shape Plus</value></prop></node><node oor:name="split-horizontal-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Horizontal In</value></prop></node><node oor:name="split-horizontal-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Horizontal Out</value></prop></node><node oor:name="split-vertical-in" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Vertical In</value></prop></node><node oor:name="split-vertical-out" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Vertical Out</value></prop></node><node oor:name="diagonal-squares-left-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diagonal Squares Left-Down</value></prop></node><node oor:name="diagonal-squares-left-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diagonal Squares Left-Up</value></prop></node><node oor:name="diagonal-squares-right-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diagonal Squares Right-Down</value></prop></node><node oor:name="diagonal-squares-right-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diagonal Squares Right-Up</value></prop></node><node oor:name="uncover-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Uncover Down</value></prop></node><node oor:name="uncover-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Uncover Left</value></prop></node><node oor:name="uncover-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Uncover Right</value></prop></node><node oor:name="uncover-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Uncover Up</value></prop></node><node oor:name="uncover-left-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Uncover Left-Down</value></prop></node><node oor:name="uncover-left-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Uncover Left-Up</value></prop></node><node oor:name="uncover-right-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Uncover Right-Down</value></prop></node><node oor:name="uncover-right-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Uncover Right-Up</value></prop></node><node oor:name="wedge" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wedge</value></prop></node><node oor:name="wheel-clockwise-1-spoke" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wheel Clockwise, 1 Spoke</value></prop></node><node oor:name="wheel-clockwise-2-spokes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wheel Clockwise, 2 Spokes</value></prop></node><node oor:name="wheel-clockwise-3-spokes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wheel Clockwise, 3 Spokes</value></prop></node><node oor:name="wheel-clockwise-4-spokes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wheel Clockwise, 4 Spokes</value></prop></node><node oor:name="wheel-clockwise-8-spokes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wheel Clockwise, 8 Spokes</value></prop></node><node oor:name="wipe-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wipe Down</value></prop></node><node oor:name="wipe-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wipe Left</value></prop></node><node oor:name="wipe-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wipe Right</value></prop></node><node oor:name="wipe-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wipe Up</value></prop></node><node oor:name="random-transition" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Random Transition</value></prop></node><node oor:name="tile-flip" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flipping tiles</value></prop></node><node oor:name="outside-cube" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Outside turning cube</value></prop></node><node oor:name="revolving-circles" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Revolving circles</value></prop></node><node oor:name="turning-helix" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Turning helix</value></prop></node><node oor:name="inside-cube" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Inside turning cube</value></prop></node><node oor:name="fall" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fall</value></prop></node><node oor:name="turn-around" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Turn around</value></prop></node><node oor:name="iris" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Iris</value></prop></node><node oor:name="turn-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Turn down</value></prop></node><node oor:name="rochade" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rochade</value></prop></node><node oor:name="venetian3dv" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Venetian Blinds 3D Vertical</value></prop></node><node oor:name="venetian3dh" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Venetian Blinds 3D Horizontal</value></prop></node><node oor:name="static" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Static</value></prop></node><node oor:name="finedissolve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fine Dissolve</value></prop></node></node></node><node oor:name="Presets"><node oor:name="Entrance"><node oor:name="basic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Basic</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-entrance-appear;ooo-entrance-fly-in;ooo-entrance-venetian-blinds;ooo-entrance-box;ooo-entrance-checkerboard;ooo-entrance-circle;ooo-entrance-fly-in-slow;ooo-entrance-diamond;ooo-entrance-dissolve-in;ooo-entrance-flash-once;ooo-entrance-peek-in;ooo-entrance-plus;ooo-entrance-random-bars;ooo-entrance-split;ooo-entrance-diagonal-squares;ooo-entrance-wedge;ooo-entrance-wheel;ooo-entrance-wipe;ooo-entrance-random</value></prop></node><node oor:name="special" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Special</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-entrance-fade-in;ooo-entrance-fade-in-and-swivel;ooo-entrance-fade-in-and-zoom;ooo-entrance-expand</value></prop></node><node oor:name="moderate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Moderate</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-entrance-stretchy;ooo-entrance-zoom;ooo-entrance-colored-lettering;ooo-entrance-ease-in;ooo-entrance-turn-and-grow;ooo-entrance-rise-up;ooo-entrance-unfold;ooo-entrance-ascend;ooo-entrance-center-revolve;ooo-entrance-descend;ooo-entrance-spin-in;ooo-entrance-compress</value></prop></node><node oor:name="exciting" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exciting</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-entrance-spiral-in;ooo-entrance-swivel;ooo-entrance-boomerang;ooo-entrance-bounce;ooo-entrance-movie-credits;ooo-entrance-float;ooo-entrance-breaks;ooo-entrance-pinwheel;ooo-entrance-falling-in;ooo-entrance-thread;ooo-entrance-whip;ooo-entrance-sling;ooo-entrance-magnify;ooo-entrance-curve-up;ooo-entrance-glide;ooo-entrance-flip;ooo-entrance-fold</value></prop></node></node><node oor:name="Emphasis"><node oor:name="basic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Basic</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-emphasis-fill-color;ooo-emphasis-font;ooo-emphasis-font-color;ooo-emphasis-font-size;ooo-emphasis-font-style;ooo-emphasis-line-color;ooo-emphasis-spin;ooo-emphasis-transparency</value></prop></node><node oor:name="special" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Special</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-emphasis-bold-flash;ooo-emphasis-color-over-by-word;ooo-emphasis-reveal-underline;ooo-emphasis-color-blend;ooo-emphasis-color-over-by-letter;ooo-emphasis-complementary-color;ooo-emphasis-complementary-color-2;ooo-emphasis-contrasting-color;ooo-emphasis-darken;ooo-emphasis-desaturate;ooo-emphasis-flash-bulb;ooo-emphasis-lighten</value></prop></node><node oor:name="moderate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Moderate</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-emphasis-flicker;ooo-emphasis-grow-with-color;ooo-emphasis-teeter;ooo-emphasis-shimmer</value></prop></node><node oor:name="exciting" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exciting</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-emphasis-blast;ooo-emphasis-bold-reveal;ooo-emphasis-style-emphasis;ooo-emphasis-wave;ooo-emphasis-blink</value></prop></node></node><node oor:name="Exit"><node oor:name="basic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Basic</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-exit-disappear;ooo-exit-fly-out;ooo-exit-venetian-blinds;ooo-exit-box;ooo-exit-checkerboard;ooo-exit-circle;ooo-exit-crawl-out;ooo-exit-diamond;ooo-exit-dissolve;ooo-exit-flash-once;ooo-exit-peek-out;ooo-exit-plus;ooo-exit-random-bars;ooo-exit-diagonal-squares;ooo-exit-split;ooo-exit-wedge;ooo-exit-wheel;ooo-exit-wipe;ooo-exit-random</value></prop></node><node oor:name="special" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Special</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-exit-fade-out;ooo-exit-fade-out-and-swivel;ooo-exit-fade-out-and-zoom;ooo-exit-contract</value></prop></node><node oor:name="moderate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Moderate</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-exit-collapse;ooo-exit-zoom;ooo-exit-colored-lettering;ooo-exit-ease-out;ooo-exit-turn-and-grow;ooo-exit-sink-down;ooo-exit-unfold;ooo-exit-descend;ooo-exit-center-revolve;ooo-exit-ascend;ooo-exit-spin-out;ooo-exit-stretchy</value></prop></node><node oor:name="exciting" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exciting</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-exit-swivel;ooo-exit-boomerang;ooo-exit-bounce;ooo-exit-movie-credits;ooo-exit-float;ooo-exit-breaks;ooo-exit-pinwheel;ooo-exit-swish;ooo-exit-thread;ooo-exit-whip;ooo-exit-sling;ooo-exit-magnify;ooo-exit-curve-down;ooo-exit-glide;ooo-exit-flip;ooo-exit-fold</value></prop></node></node><node oor:name="MotionPaths"><node oor:name="basic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Basic</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-motionpath-4-point-star;ooo-motionpath-5-point-star;ooo-motionpath-6-point-star;ooo-motionpath-8-point-star;ooo-motionpath-circle;ooo-motionpath-crescent-moon;ooo-motionpath-diamond;ooo-motionpath-equal-triangle;ooo-motionpath-oval;ooo-motionpath-heart;ooo-motionpath-left;ooo-motionpath-right;ooo-motionpath-hexagon;ooo-motionpath-octagon;ooo-motionpath-parallelogram;ooo-motionpath-pentagon;ooo-motionpath-right-triangle;ooo-motionpath-square;ooo-motionpath-teardrop;ooo-motionpath-trapezoid</value></prop></node><node oor:name="linesandcurves" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Lines and Curves</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-motionpath-arc-down;ooo-motionpath-arc-left;ooo-motionpath-arc-right;ooo-motionpath-arc-up;ooo-motionpath-bounce-left;ooo-motionpath-bounce-right;ooo-motionpath-curvy-left;ooo-motionpath-curvy-right;ooo-motionpath-decaying-wave;ooo-motionpath-diagonal-down-right;ooo-motionpath-diagonal-up-right;ooo-motionpath-down;ooo-motionpath-funnel;ooo-motionpath-heartbeat;ooo-motionpath-left;ooo-motionpath-right;ooo-motionpath-s-curve-1;ooo-motionpath-s-curve-2;ooo-motionpath-sine-wave;ooo-motionpath-spiral-left;ooo-motionpath-spiral-right;ooo-motionpath-spring;ooo-motionpath-stairs-down;ooo-motionpath-turn-down;ooo-motionpath-turn-down-right;ooo-motionpath-turn-up;ooo-motionpath-turn-up-right;ooo-motionpath-up;ooo-motionpath-wave;ooo-motionpath-zigzag</value></prop></node><node oor:name="special" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Special</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-motionpath-bean;ooo-motionpath-buzz-saw;ooo-motionpath-clover;ooo-motionpath-curved-square;ooo-motionpath-curvy-star;ooo-motionpath-figure-8-four;ooo-motionpath-horizontal-figure-8;ooo-motionpath-inverted-square;ooo-motionpath-inverted-triangle;ooo-motionpath-loop-de-loop;ooo-motionpath-neutron;ooo-motionpath-peanut;ooo-motionpath-pointy-star;ooo-motionpath-swoosh;ooo-motionpath-vertical-figure-8</value></prop></node></node><node oor:name="Misc"><node oor:name="media" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Media</value></prop><prop oor:name="Effects" oor:type="oor:string-list"><value oor:separator=";">ooo-media-start;ooo-media-toggle-pause;ooo-media-stop</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="ImpressWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/extrusionobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">3D-Settings</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawingobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Line and Filling</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/3dobjectsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">3D-Objects</value></prop></node><node oor:name="private:resource/toolbar/alignmentbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Align</value></prop></node><node oor:name="private:resource/toolbar/arrowsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Arrows</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/choosemodebar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Mode</value></prop></node><node oor:name="private:resource/toolbar/commontaskbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Presentation</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/connectorsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Connectors</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/ellipsesbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Circles and Ovals</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/formtextobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Box Formatting</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsfilterbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Filter</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsnavigationbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Navigation</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/moreformcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">More Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formdesign" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Design</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/fontworkobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkshapetype" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork Shape</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graphicobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Picture</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graffilterbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Graphic Filter</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/outlinetoolbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Outline</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/insertbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop></node><node oor:name="private:resource/toolbar/linesbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Lines</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/basicshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/symbolshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/arrowshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/flowchartshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Flowchart</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/calloutshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/starshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Stars and Banners</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/optionsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Options</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/rectanglesbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Rectangles</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/positionbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Position</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/slideviewtoolbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Slide Sorter</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/slideviewobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Slide View</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/textbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/textobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Formatting</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/tableobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/zoombar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Zoom</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/gluepointsobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Gluepoints</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/bezierobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Edit Points</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/viewerbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard (Viewing Mode)</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/mediaobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Media Playback</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/colorbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Color</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/commentsbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Comments</value></prop></node><node oor:name="private:resource/toolbar/masterviewtoolbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Locked" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Pos" oor:type="xs:string"><value>500,100</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Master View</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolpanel/DrawingFramework/MasterPages" oor:op="replace"><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Master Pages</value></prop><prop oor:name="ImageURL" oor:type="xs:string"><value>private:commandimage/PresentationLayout</value></prop></node><node oor:name="private:resource/toolpanel/DrawingFramework/Layouts" oor:op="replace"><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Layouts</value></prop><prop oor:name="ImageURL" oor:type="xs:string"><value>private:commandimage/ModifyPage</value></prop></node><node oor:name="private:resource/toolpanel/DrawingFramework/TableDesign" oor:op="replace"><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table Design</value></prop><prop oor:name="ImageURL" oor:type="xs:string"><value>private:commandimage/InsertTable</value></prop></node><node oor:name="private:resource/toolpanel/DrawingFramework/CustomAnimations" oor:op="replace"><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Custom Animation</value></prop><prop oor:name="ImageURL" oor:type="xs:string"><value>private:commandimage/CustomAnimation</value></prop></node><node oor:name="private:resource/toolpanel/DrawingFramework/SlideTransitions" oor:op="replace"><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Slide Transition</value></prop><prop oor:name="ImageURL" oor:type="xs:string"><value>private:commandimage/RehearseTimings</value></prop></node><node oor:name="private:resource/toolbar/optimizetablebar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Optimize</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/findbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Find</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="MS PowerPoint 97" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>sdfilt</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft PowerPoint 97/2000/XP/2003</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>impress_MS_PowerPoint_97</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="MS PowerPoint 97 AutoPlay" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN STARTPRESENTATION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>sdfilt</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft PowerPoint 97/2000/XP/2003 AutoPlay</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>impress_MS_PowerPoint_97_AutoPlay</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="MS PowerPoint 97 Vorlage" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>sdfilt</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>impress_MS_PowerPoint_97_Vorlage</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_StarOffice_XML_Draw" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>XML</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>draw_StarOffice_XML_Draw</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="StarOffice XML (Impress)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN PREFERRED ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>XML</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>impress_StarOffice_XML_Impress</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_StarOffice_XML_Impress_Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ALIEN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXMLV</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>impress_StarOffice_XML_Impress_Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress_pdf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PDF - Portable Document Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="placeware_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Impress.PlaceWareExportFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PWP - PlaceWare</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pwp_PlaceWare</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress8" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>XML</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>impress8</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress8_template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXMLV</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>impress8_template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="impress8_draw" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>XML</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>draw8</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="Impress MS PowerPoint 2007 XML" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.ppt.PowerPointImport</value></prop><prop oor:name="UserData"/><prop oor:name="FileFormatVersion"/><prop oor:name="Type"><value>MS PowerPoint 2007 XML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="Impress MS PowerPoint 2007 XML AutoPlay" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED STARTPRESENTATION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.ppt.PowerPointImport</value></prop><prop oor:name="UserData"/><prop oor:name="UIName"><value xml:lang="en-US">Microsoft PowerPoint 2007/2010 XML AutoPlay</value></prop><prop oor:name="FileFormatVersion"/><prop oor:name="Type"><value>MS PowerPoint 2007 XML AutoPlay</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="Impress MS PowerPoint 2007 XML Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.ppt.PowerPointImport</value></prop><prop oor:name="UserData"/><prop oor:name="UIName"><value xml:lang="en-US">Microsoft PowerPoint 2007/2010 XML Template</value></prop><prop oor:name="FileFormatVersion"/><prop oor:name="Type"><value>MS PowerPoint 2007 XML Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="Impress Office Open XML" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.ppt.PowerPointImport</value></prop><prop oor:name="UserData"><value>OOXML</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Presentation</value></prop><prop oor:name="FileFormatVersion"><value>1</value></prop><prop oor:name="Type"><value>Office Open XML Presentation</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="Impress Office Open XML Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.ppt.PowerPointImport</value></prop><prop oor:name="UserData"><value>OOXML</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Presentation Template</value></prop><prop oor:name="FileFormatVersion"><value>1</value></prop><prop oor:name="Type"><value>Office Open XML Presentation Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node><node oor:name="Impress Office Open XML AutoPlay" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED STARTPRESENTATION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.oox.ppt.PowerPointImport</value></prop><prop oor:name="UserData"/><prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Presentation AutoPlay</value></prop><prop oor:name="FileFormatVersion"/><prop oor:name="Type"><value>Office Open XML Presentation AutoPlay</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="draw_StarOffice_XML_Draw" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sxd</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.draw</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>StarOffice XML (Draw)</value></prop><prop oor:name="UIName"><value>%productname% %formatversion% Zeichnung</value></prop><prop oor:name="ClipboardFormat"><value>Draw 6.0</value></prop></node><node oor:name="impress_MS_PowerPoint_97" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ppt</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-powerpoint</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS PowerPoint 97</value></prop><prop oor:name="UIName"><value>Microsoft PowerPoint 97/2000/XP/2003</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="impress_MS_PowerPoint_97_AutoPlay" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pps</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-powerpoint</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS PowerPoint 97 AutoPlay</value></prop><prop oor:name="UIName"><value>Microsoft PowerPoint 97/2000/XP/2003</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="impress_MS_PowerPoint_97_Vorlage" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pot</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-powerpoint</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS PowerPoint 97 Vorlage</value></prop><prop oor:name="UIName"><value>MS PowerPoint 97/2000 Template</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="impress_StarOffice_XML_Impress" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sxi</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.impress</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>StarOffice XML (Impress)</value></prop><prop oor:name="UIName"><value>%productname% %formatversion% Präsentation</value></prop><prop oor:name="ClipboardFormat"><value>Impress 6.0</value></prop></node><node oor:name="impress_StarOffice_XML_Impress_Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sti</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>impress_StarOffice_XML_Impress_Template</value></prop><prop oor:name="UIName"><value>Impress 6.0 Template</value></prop><prop oor:name="ClipboardFormat"><value>Impress 6.0</value></prop></node><node oor:name="pdf_Portable_Document_Format" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pdf</value></prop><prop oor:name="MediaType"><value>application/pdf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>PDF - Portable Document Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pwp_PlaceWare" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pwp</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>PWP - PlaceWare</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="impress8" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"><value>private:factory/simpress*</value></prop><prop oor:name="Extensions"><value>odp</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.presentation</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>impress8</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Impress 8</value></prop><prop oor:name="ClipboardFormat"><value>Impress 8</value></prop></node><node oor:name="impress8_template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>otp</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.presentation-template</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>impress8_template</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Impress 8 Template</value></prop><prop oor:name="ClipboardFormat"><value>Impress 8 Template</value></prop></node><node oor:name="draw8" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"><value>private:factory/sdraw*</value></prop><prop oor:name="Extensions"><value>odg</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.graphics</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>draw8</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Draw 8</value></prop><prop oor:name="ClipboardFormat"><value>Draw 8</value></prop></node><node oor:name="MS PowerPoint 2007 XML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pptx pptm</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Impress MS PowerPoint 2007 XML</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft PowerPoint 2007/2010 XML</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="MS PowerPoint 2007 XML AutoPlay" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ppsx</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Impress MS PowerPoint 2007 XML AutoPlay</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft PowerPoint 2007/2010 XML</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="MS PowerPoint 2007 XML Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>potm potx</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Impress MS PowerPoint 2007 XML Template</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft PowerPoint 2007/2010 XML Template</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="Office Open XML Presentation" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pptx pptm</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Impress Office Open XML</value></prop><prop oor:name="UIName"><value>Office Open XML Presentation</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="Office Open XML Presentation Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>potm potx</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Impress Office Open XML Template</value></prop><prop oor:name="UIName"><value>Office Open XML Presentation Template</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="Office Open XML Presentation AutoPlay" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ppsx</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Impress Office Open XML AutoPlay</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Presentation AutoPlay</value></prop><prop oor:name="ClipboardFormat"/></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"><node oor:name="Menus"><node oor:name="New"><node oor:name="m2" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/simpress?slot=6686</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Presentation</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node></node><node oor:name="Wizard"><node oor:name="m5" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>slot:10425</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Presentation...</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3216</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:package="org.openoffice.Office" oor:name="Embedding"><node oor:name="Objects"><node oor:name="9176E48A-637A-4D1F-803B-99D9BFAC1047" oor:op="replace"><prop oor:name="ObjectFactory"><value>com.sun.star.embed.OOoEmbeddedObjectFactory</value></prop><prop oor:name="ObjectDocumentServiceName"><value>com.sun.star.presentation.PresentationDocument</value></prop><prop oor:name="ObjectMiscStatus"/><prop oor:name="ObjectVerbs"><value>PRIMARY SHOW OPEN HIDE UIACTIVATE IPACTIVATE SAVECOPYAS</value></prop></node></node><node oor:name="ObjectNames"><node oor:name="Impress" oor:op="replace"><prop oor:name="ObjectUIName"><value xml:lang="en-US">%PRODUCTNAME %PRODUCTVERSION Presentation</value></prop><prop oor:name="ClassID"><value>9176E48A-637A-4D1F-803B-99D9BFAC1047</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice"><node oor:name="Office"><node oor:name="Factories"><node oor:name="com.sun.star.presentation.PresentationDocument" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.presentation.PresentationDocument</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>DrawImpressCommands</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>impress8</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"><value>impress8_template</value></prop><prop oor:name="ooSetupFactoryDefaultFilter"><value>impress8</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/simpress</value></prop><prop oor:name="ooSetupFactoryWindowAttributes"><value>,,,;4;</value></prop><prop oor:name="ooSetupFactoryIcon"><value>8</value></prop><prop oor:name="ooSetupFactoryTemplateFile"><value/></prop><prop oor:name="ooSetupFactorySystemDefaultTemplateChanged"><value>false</value></prop><prop oor:name="ooSetupFactoryShortName"><value>simpress</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Impress</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>ImpressWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/lingucomponent.xcd b/test/user-template/user/registry/lingucomponent.xcd
new file mode 100644
index 000000000000..b90a83feb003
--- /dev/null
+++ b/test/user-template/user/registry/lingucomponent.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Linguistic" oor:package="org.openoffice.Office"><node oor:name="ServiceManager"><node oor:name="Hyphenators"><node oor:name="org.openoffice.lingu.LibHnjHyphenator" oor:op="fuse"><prop oor:name="SupportedDictionaryFormats" oor:type="oor:string-list"><value>DICT_HYPH</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Linguistic" oor:package="org.openoffice.Office"><node oor:name="ServiceManager"><node oor:name="SpellCheckers"><node oor:name="org.openoffice.lingu.MySpellSpellChecker" oor:op="fuse"><prop oor:name="SupportedDictionaryFormats" oor:type="oor:string-list"><value>DICT_SPELL</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Linguistic" oor:package="org.openoffice.Office"><node oor:name="ServiceManager"><node oor:name="Thesauri"><node oor:name="org.openoffice.lingu.new.Thesaurus" oor:op="fuse"><prop oor:name="SupportedDictionaryFormats" oor:type="oor:string-list"><value>DICT_THES</value></prop></node></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/main.xcd b/test/user-template/user/registry/main.xcd
new file mode 100644
index 000000000000..4d5d7593f04e
--- /dev/null
+++ b/test/user-template/user/registry/main.xcd
@@ -0,0 +1,42 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><oor:component-schema oor:name="FirstStartWizard" oor:package="org.openoffice" xml:lang="en-US"><templates><group oor:name="Option"><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></group></templates><component><group oor:name="TabPages"><group oor:name="Registration"><set oor:name="RegistrationOptions" oor:node-type="Option"/></group></group></component></oor:component-schema><oor:component-schema oor:name="Inet" oor:package="org.openoffice" xml:lang="en-US"><component><group oor:name="Settings"><prop oor:name="ooInetDNSServer" oor:type="xs:string"><value/></prop><prop oor:name="ooInetNoProxy" oor:type="xs:string"><value/></prop><prop oor:name="ooInetProxyType" oor:type="xs:int"/><prop oor:name="ooInetFTPProxyName" oor:type="xs:string"><value/></prop><prop oor:name="ooInetFTPProxyPort" oor:type="xs:int"/><prop oor:name="ooInetHTTPProxyName" oor:type="xs:string"><value/></prop><prop oor:name="ooInetHTTPProxyPort" oor:type="xs:int"/><prop oor:name="ooInetHTTPSProxyName" oor:type="xs:string"><value/></prop><prop oor:name="ooInetHTTPSProxyPort" oor:type="xs:int"/><prop oor:name="ooInetSOCKSProxyName" oor:type="xs:string"><value/></prop><prop oor:name="ooInetSOCKSProxyPort" oor:type="xs:int"/></group></component></oor:component-schema><oor:component-schema oor:name="Interaction" oor:package="org.openoffice" xml:lang="en-US"><templates><group oor:name="RequestTypeResponsibility"><prop oor:name="Propagation" oor:type="xs:string"/></group><group oor:name="InteractionHandlerImplementation"><set oor:name="HandledRequestTypes" oor:node-type="RequestTypeResponsibility"/><prop oor:name="ServiceName" oor:type="xs:string"/></group></templates><component><set oor:name="InteractionHandlers" oor:node-type="InteractionHandlerImplementation"/></component></oor:component-schema><oor:component-schema oor:name="LDAP" oor:package="org.openoffice" xml:lang="en-US"><templates><group oor:name="ServerDefinition"><prop oor:name="Server" oor:type="xs:string"/><prop oor:name="Port" oor:type="xs:int"><value>389</value></prop><prop oor:name="BaseDN" oor:type="xs:string"/></group></templates><component><group oor:name="UserDirectory"><prop oor:name="SearchUser" oor:type="xs:string"/><prop oor:name="SearchPassword" oor:type="xs:string"/><prop oor:name="UserObjectClass" oor:type="xs:string"/><prop oor:name="UserUniqueAttribute" oor:type="xs:string"/><prop oor:name="Mapping" oor:type="xs:string"/><node-ref oor:name="ServerDefinition" oor:node-type="ServerDefinition"/></group></component></oor:component-schema><oor:component-schema oor:name="Accelerators" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="Key"><prop oor:name="Command" oor:type="xs:string" oor:localized="true"/></group><set oor:name="Module" oor:node-type="Key"/></templates><component><group oor:name="PrimaryKeys"><set oor:name="Global" oor:node-type="Key"/><set oor:name="Modules" oor:node-type="Module"/></group><group oor:name="SecondaryKeys"><set oor:name="Global" oor:node-type="Key"/><set oor:name="Modules" oor:node-type="Module"/></group></component></oor:component-schema><oor:component-schema oor:name="Addons" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="MenuItem"><prop oor:name="URL" oor:type="xs:string"/><prop oor:name="Title" oor:type="xs:string" oor:localized="true"/><prop oor:name="ImageIdentifier" oor:type="xs:string"/><prop oor:name="Target" oor:type="xs:string"/><prop oor:name="Context" oor:type="xs:string"/><set oor:name="Submenu" oor:node-type="MenuItem"/></group><group oor:name="PopupMenu"><prop oor:name="Title" oor:type="xs:string" oor:localized="true"/><prop oor:name="Context" oor:type="xs:string"/><set oor:name="Submenu" oor:node-type="MenuItem"/></group><group oor:name="MergeMenuInstruction"><prop oor:name="MergePoint" oor:type="xs:string"/><prop oor:name="MergeCommand" oor:type="xs:string"/><prop oor:name="MergeCommandParameter" oor:type="xs:string"/><prop oor:name="MergeFallback" oor:type="xs:string"/><prop oor:name="MergeContext" oor:type="xs:string"/><set oor:name="MenuItems" oor:node-type="MenuItem"/></group><group oor:name="MergeToolBarInstruction"><prop oor:name="MergeToolBar" oor:type="xs:string"/><prop oor:name="MergePoint" oor:type="xs:string"/><prop oor:name="MergeCommand" oor:type="xs:string"/><prop oor:name="MergeCommandParameter" oor:type="xs:string"/><prop oor:name="MergeFallback" oor:type="xs:string"/><prop oor:name="MergeContext" oor:type="xs:string"/><set oor:name="ToolBarItems" oor:node-type="ToolBarItem"/></group><group oor:name="ToolBarItem"><prop oor:name="URL" oor:type="xs:string"/><prop oor:name="Title" oor:type="xs:string" oor:localized="true"/><prop oor:name="ImageIdentifier" oor:type="xs:string"/><prop oor:name="Target" oor:type="xs:string"/><prop oor:name="Context" oor:type="xs:string"/><prop oor:name="ControlType" oor:type="xs:string"/><prop oor:name="Width" oor:type="xs:long"/></group><group oor:name="UserDefinedImages"><prop oor:name="ImageSmall" oor:type="xs:hexBinary"/><prop oor:name="ImageBig" oor:type="xs:hexBinary"/><prop oor:name="ImageSmallHC" oor:type="xs:hexBinary"/><prop oor:name="ImageBigHC" oor:type="xs:hexBinary"/><prop oor:name="ImageSmallURL" oor:type="xs:string"/><prop oor:name="ImageBigURL" oor:type="xs:string"/><prop oor:name="ImageSmallHCURL" oor:type="xs:string"/><prop oor:name="ImageBigHCURL" oor:type="xs:string"/></group><group oor:name="Images"><prop oor:name="URL" oor:type="xs:string"/><node-ref oor:name="UserDefinedImages" oor:node-type="UserDefinedImages"/></group><set oor:name="ToolBarItems" oor:node-type="ToolBarItem"/><set oor:name="MergeMenuItems" oor:node-type="MergeMenuInstruction"/><set oor:name="MergeToolBarItems" oor:node-type="MergeToolBarInstruction"/></templates><component><group oor:name="AddonUI"><set oor:name="AddonMenu" oor:node-type="MenuItem"/><set oor:name="Images" oor:node-type="Images"/><set oor:name="OfficeMenuBar" oor:node-type="PopupMenu"/><set oor:name="OfficeMenuBarMerging" oor:node-type="MergeMenuItems"/><set oor:name="OfficeToolBar" oor:node-type="ToolBarItems"/><set oor:name="OfficeToolbarMerging" oor:node-type="MergeToolBarItems"/><set oor:name="OfficeHelp" oor:node-type="MenuItem"/></group></component></oor:component-schema><oor:component-schema oor:name="Calc" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="ConversionRule"><prop oor:name="FromUnit" oor:type="xs:string"/><prop oor:name="ToUnit" oor:type="xs:string"/><prop oor:name="Factor" oor:type="xs:double"/></group><group oor:name="Date"><prop oor:name="YY" oor:type="xs:int"/><prop oor:name="MM" oor:type="xs:int"/><prop oor:name="DD" oor:type="xs:int"/></group></templates><component><set oor:name="UnitConversion" oor:node-type="ConversionRule"/><group oor:name="Content"><group oor:name="Display"><prop oor:name="Formula" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ZeroValue" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoteTag" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ValueHighlighting" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Anchor" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="TextOverflow" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ObjectGraphic" oor:type="xs:int"><value>0</value></prop><prop oor:name="Chart" oor:type="xs:int"><value>0</value></prop><prop oor:name="DrawingObject" oor:type="xs:int"><value>0</value></prop></group><group oor:name="Update"><prop oor:name="Link" oor:type="xs:int"><value>2</value></prop></group></group><group oor:name="Layout"><group oor:name="Line"><prop oor:name="GridLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="GridOnColoredCells" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="GridLineColor" oor:type="xs:int"><value>12632256</value></prop><prop oor:name="PageBreak" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Guide" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SimpleControlPoint" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="LargeControlPoint" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Window"><prop oor:name="ColumnRowHeader" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HorizontalScroll" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="VerticalScroll" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SheetTab" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="OutlineSymbol" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Other"><prop oor:name="StatusbarFunction" oor:type="xs:int"><value>9</value></prop><group oor:name="TabStop"><prop oor:name="Metric" oor:type="xs:int"><value>1250</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group><group oor:name="MeasureUnit"><prop oor:name="Metric" oor:type="xs:int"><value>2</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>8</value></prop></group></group><group oor:name="Zoom"><prop oor:name="Type" oor:type="xs:int"><value>0</value></prop><prop oor:name="Value" oor:type="xs:int"><value>100</value></prop><prop oor:name="Synchronize" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Input"><prop oor:name="MoveSelection" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="MoveSelectionDirection" oor:type="xs:int"><value>0</value></prop><prop oor:name="SwitchToEditMode" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ExpandFormatting" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ShowReference" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ExpandReference" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HighlightSelection" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UseTabCol" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UsePrinterMetrics" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ReplaceCellsWarning" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="LastFunctions" oor:type="oor:int-list"><value>224 226 222 223 6</value></prop><prop oor:name="AutoInput" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="DetectiveAuto" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Grid"><group oor:name="Option"><prop oor:name="SnapToGrid" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SizeToGrid" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="VisibleGrid" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Synchronize" oor:type="xs:boolean"><value>true</value></prop><group oor:name="XAxis"><prop oor:name="Metric" oor:type="xs:int"><value>1000</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group><group oor:name="YAxis"><prop oor:name="Metric" oor:type="xs:int"><value>1000</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group></group><group oor:name="Resolution"><group oor:name="XAxis"><prop oor:name="Metric" oor:type="xs:int"><value>1000</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group><group oor:name="YAxis"><prop oor:name="Metric" oor:type="xs:int"><value>1000</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group></group><group oor:name="Subdivision"><prop oor:name="XAxis" oor:type="xs:int"><value>1</value></prop><prop oor:name="YAxis" oor:type="xs:int"><value>1</value></prop></group></group><group oor:name="SortList"><prop oor:name="List" oor:type="oor:string-list"><value>NULL</value></prop></group><group oor:name="Dialogs"><group oor:name="CSVImport"><prop oor:name="MergeDelimiters" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="QuotedFieldAsText" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DetectSpecialNumbers" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Language" oor:type="xs:int"><value>0</value></prop><prop oor:name="Separators" oor:type="xs:string"><value>; </value></prop><prop oor:name="TextSeparators" oor:type="xs:string"><value>"</value></prop><prop oor:name="FixedWidth" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="FromRow" oor:type="xs:int"><value>1</value></prop><prop oor:name="CharSet" oor:type="xs:int"><value>-1</value></prop><prop oor:name="FixedWidthList" oor:type="xs:string"><value/></prop></group></group><group oor:name="Calculate"><group oor:name="IterativeReference"><prop oor:name="Iteration" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Steps" oor:type="xs:int"><value>100</value></prop><prop oor:name="MinimumChange" oor:type="xs:double"><value>0.001</value></prop></group><group oor:name="Other"><prop oor:name="CaseSensitive" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Precision" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SearchCriteria" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="FindLabel" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="DecimalPlaces" oor:type="xs:int"><value>-1</value></prop><prop oor:name="RegularExpressions" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="FormulaSyntax" oor:type="xs:int"/><node-ref oor:name="Date" oor:node-type="Date"/></group></group><group oor:name="Formula"><group oor:name="Syntax"><prop oor:name="Grammar" oor:type="xs:int"/><prop oor:name="EnglishFunctionName" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SeparatorArg" oor:type="xs:string"><value/></prop><prop oor:name="SeparatorArrayRow" oor:type="xs:string"><value/></prop><prop oor:name="SeparatorArrayCol" oor:type="xs:string"><value/></prop></group></group><group oor:name="Revision"><group oor:name="Color"><prop oor:name="Change" oor:type="xs:int"><value>-1</value></prop><prop oor:name="Deletion" oor:type="xs:int"><value>-1</value></prop><prop oor:name="Insertion" oor:type="xs:int"><value>-1</value></prop><prop oor:name="MovedEntry" oor:type="xs:int"><value>-1</value></prop></group></group><group oor:name="Filter"><group oor:name="Import"><group oor:name="VBA"><prop oor:name="Load" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Executable" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Save" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Lotus123"><prop oor:name="WK3" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="MS_Excel"><prop oor:name="ColScale" oor:type="xs:double"><value>1.0</value></prop><prop oor:name="RowScale" oor:type="xs:double"><value>1.0</value></prop></group></group></group><group oor:name="Print"><group oor:name="Page"><prop oor:name="EmptyPages" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Other"><prop oor:name="AllSheets" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="Misc"><group oor:name="DefaultObjectSize"><prop oor:name="Width" oor:type="xs:int"><value>8000</value></prop><prop oor:name="Height" oor:type="xs:int"><value>5000</value></prop></group><group oor:name="SharedDocument"><prop oor:name="ShowWarning" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Compatibility"><group oor:name="KeyBindings"><prop oor:name="BaseGroup" oor:type="xs:int"/></group></group><group oor:name="Defaults"><group oor:name="Other"><prop oor:name="TabCount" oor:type="xs:int"><value>3</value></prop></group></group></component></oor:component-schema><oor:component-schema oor:name="CalcAddIns" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="AddInParameter"><prop oor:name="DisplayName" oor:type="xs:string" oor:localized="true"/><prop oor:name="Description" oor:type="xs:string" oor:localized="true"/></group><group oor:name="AddInFunction"><prop oor:name="DisplayName" oor:type="xs:string" oor:localized="true"/><prop oor:name="Description" oor:type="xs:string" oor:localized="true"/><prop oor:name="Category" oor:type="xs:string"/><prop oor:name="CategoryDisplayName" oor:type="xs:string" oor:localized="true"/><prop oor:name="CompatibilityName" oor:type="xs:string" oor:localized="true"/><set oor:name="Parameters" oor:node-type="AddInParameter"/></group><group oor:name="AddIn"><set oor:name="AddInFunctions" oor:node-type="AddInFunction"/></group></templates><component><set oor:name="AddInInfo" oor:node-type="AddIn"/></component></oor:component-schema><oor:component-schema oor:name="Canvas" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="CanvasService"><prop oor:name="PreferredImplementations" oor:type="oor:string-list"/><prop oor:name="AcceleratedImplementations" oor:type="oor:string-list"/><prop oor:name="AntialiasingImplementations" oor:type="oor:string-list"/></group></templates><component><group oor:name="DXCanvas"><prop oor:name="DeviceBlacklist" oor:type="oor:int-list"><value>0</value></prop><prop oor:name="BlacklistCurrentDevice" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="MaxTextureSize" oor:type="xs:int"><value>2048</value></prop></group><set oor:name="CanvasServiceList" oor:node-type="CanvasService"/><prop oor:name="ForceSafeServiceImpl" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UseAcceleratedCanvas" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UseAntialiasingCanvas" oor:type="xs:boolean"><value>true</value></prop></component></oor:component-schema><oor:component-schema oor:name="Chart" oor:package="org.openoffice.Office" xml:lang="en-US"><component><group oor:name="DefaultColor"><prop oor:name="Series" oor:type="oor:long-list"><value>17798 16728590 16765728 5741852 8257569 8637183 3227652 11456256 4923247 16749838 12910603 34001</value></prop></group></component></oor:component-schema><oor:component-schema oor:name="Commands" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="CommandType"><prop oor:name="Command" oor:type="xs:string"/></group></templates><component><group oor:name="Execute"><set oor:name="Disabled" oor:node-type="CommandType"/></group></component></oor:component-schema><oor:component-schema oor:name="Common" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="Passwordstorage"><prop oor:name="Password" oor:type="xs:string" oor:localized="false"/></group><group oor:name="HistoryType"><prop oor:name="URL" oor:type="xs:string"/><prop oor:name="Filter" oor:type="xs:string"/><prop oor:name="Title" oor:type="xs:string"/><prop oor:name="Password" oor:type="xs:string"/></group><group oor:name="MenuType"><prop oor:name="URL" oor:type="xs:string"/><prop oor:name="Title" oor:type="xs:string" oor:localized="true"/><prop oor:name="ImageIdentifier" oor:type="xs:string"/><prop oor:name="TargetName" oor:type="xs:string"/></group><group oor:name="DialogSize"><prop oor:name="Height" oor:type="xs:int"/><prop oor:name="Width" oor:type="xs:int"/></group><group oor:name="Font"><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="Height" oor:type="xs:short"/><prop oor:name="Width" oor:type="xs:short"/><prop oor:name="StyleName" oor:type="xs:string"/><prop oor:name="Family" oor:type="xs:short"/><prop oor:name="CharSet" oor:type="xs:short"/><prop oor:name="Pitch" oor:type="xs:short"/><prop oor:name="CharacterWidth" oor:type="xs:double"/><prop oor:name="Weight" oor:type="xs:double"/><prop oor:name="Slant" oor:type="xs:short"/><prop oor:name="UnderLine" oor:type="xs:short"/><prop oor:name="Strikeout" oor:type="xs:short"/><prop oor:name="Orientation" oor:type="xs:double"/><prop oor:name="Kerning" oor:type="xs:boolean"/><prop oor:name="WordLineMode" oor:type="xs:boolean"/><prop oor:name="Type" oor:type="xs:short"/></group><group oor:name="FontReplacement"><prop oor:name="ReplaceFont" oor:type="xs:string"/><prop oor:name="SubstituteFont" oor:type="xs:string"/><prop oor:name="OnScreenOnly" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Always" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="GraphicSize"><prop oor:name="Width" oor:type="xs:int"><value>10000</value></prop><prop oor:name="Height" oor:type="xs:int"><value>10000</value></prop></group><group oor:name="LogicalGraphicSize"><prop oor:name="LogicalWidth" oor:type="xs:int"><value>10000</value></prop><prop oor:name="LogicalHeight" oor:type="xs:int"><value>10000</value></prop></group><group oor:name="ObjectNames"><prop oor:name="Name" oor:type="xs:string" oor:localized="true"/><prop oor:name="Key" oor:type="xs:string"/></group><group oor:name="RecoveryEntry"><prop oor:name="URL" oor:type="xs:string"/><prop oor:name="Filter" oor:type="xs:string"/><prop oor:name="TempName" oor:type="xs:string"/></group><group oor:name="StartEndCharacters"><prop oor:name="StartCharacters" oor:type="xs:string"/><prop oor:name="EndCharacters" oor:type="xs:string"/></group><group oor:name="NameCounter"><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="Counter" oor:type="xs:int"/></group><group oor:name="MailCommandLineProfile"><group oor:name="FormatStrings"><prop oor:name="base" oor:type="xs:string"/><prop oor:name="from" oor:type="xs:string"/><prop oor:name="to" oor:type="xs:string"/><prop oor:name="cc" oor:type="xs:string"/><prop oor:name="bcc" oor:type="xs:string"/><prop oor:name="subject" oor:type="xs:string"/><prop oor:name="attachment" oor:type="xs:string"/><prop oor:name="body" oor:type="xs:string"/></group><group oor:name="EnumDelimiters"><prop oor:name="base" oor:type="xs:string"/><prop oor:name="cc" oor:type="xs:string"/><prop oor:name="bcc" oor:type="xs:string"/><prop oor:name="attachment" oor:type="xs:string"/></group></group><group oor:name="JobDescription"><prop oor:name="ServiceName" oor:type="xs:string"/><prop oor:name="UserInteraction" oor:type="xs:boolean"/><prop oor:name="AllowAsync" oor:type="xs:boolean"/><group oor:name="ExecutionArguments" oor:extensible="true"/></group><group oor:name="TrustedAuthor"><prop oor:name="SubjectName" oor:type="xs:string"/><prop oor:name="SerialNumber" oor:type="xs:string"/><prop oor:name="RawData" oor:type="xs:string"/></group><group oor:name="ApplicationControlLayout"><prop oor:name="VisualEffect" oor:type="xs:string" oor:nillable="true"/><prop oor:name="DynamicBorderColors" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UseDocumentTextMetrics" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="ProductVersionID"><prop oor:name="InstanceUUID" oor:type="xs:string"><value/></prop></group></templates><component><group oor:name="InternalMSExport"><prop oor:name="UseOldExport" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Passwords"><prop oor:name="UseStorage" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HasMaster" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Master" oor:type="xs:string"><value/></prop><set oor:name="Store" oor:node-type="Passwordstorage"/><prop oor:name="AuthenticateUsingSystemCredentials" oor:type="oor:string-list"/></group><group oor:name="_3D_Engine"><prop oor:name="Dithering" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="OpenGL" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="OpenGL_Faster" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ShowFull" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Dictionaries"><prop oor:name="RepositoryURL" oor:type="xs:string"><value/></prop></group><group oor:name="Drawinglayer"><prop oor:name="OverlayBuffer" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="OverlayBuffer_Calc" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="OverlayBuffer_Writer" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="OverlayBuffer_DrawImpress" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PaintBuffer" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PaintBuffer_Calc" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PaintBuffer_Writer" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PaintBuffer_DrawImpress" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="StripeColorA" oor:type="xs:int"><value>0</value></prop><prop oor:name="StripeColorB" oor:type="xs:int"><value>16777215</value></prop><prop oor:name="StripeLength" oor:type="xs:short"><value>4</value></prop><prop oor:name="MaximumPaperWidth" oor:type="xs:int"><value>300</value></prop><prop oor:name="MaximumPaperHeight" oor:type="xs:int"><value>300</value></prop><prop oor:name="MaximumPaperLeftMargin" oor:type="xs:int"><value>9999</value></prop><prop oor:name="MaximumPaperRightMargin" oor:type="xs:int"><value>9999</value></prop><prop oor:name="MaximumPaperTopMargin" oor:type="xs:int"><value>9999</value></prop><prop oor:name="MaximumPaperBottomMargin" oor:type="xs:int"><value>9999</value></prop><prop oor:name="AntiAliasing" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SnapHorVerLinesToDiscrete" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="RenderDecoratedTextDirect" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="RenderSimpleTextDirect" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SolidDragCreate" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Quadratic3DRenderLimit" oor:type="xs:int"><value>1000000</value></prop><prop oor:name="QuadraticFormControlRenderLimit" oor:type="xs:int"><value>45000</value></prop><prop oor:name="TransparentSelection" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="TransparentSelectionPercent" oor:type="xs:short"><value>75</value></prop><prop oor:name="SelectionMaximumLuminancePercent" oor:type="xs:short"><value>70</value></prop></group><group oor:name="AutoCorrect"><prop oor:name="UseReplacementTable" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="TwoCapitalsAtStart" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="CapitalAtStartSentence" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ChangeUnderlineWeight" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SetInetAttribute" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ChangeOrdinalNumber" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ChangeDash" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="AddNonBreakingSpace" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="RemoveDoubleSpaces" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="CorrectAccidentalCapsLock" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ReplaceSingleQuote" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SingleQuoteAtStart" oor:type="xs:int"/><prop oor:name="SingleQuoteAtEnd" oor:type="xs:int"/><prop oor:name="ReplaceDoubleQuote" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="DoubleQuoteAtStart" oor:type="xs:int"/><prop oor:name="DoubleQuoteAtEnd" oor:type="xs:int"/><group oor:name="Exceptions"><prop oor:name="TwoCapitalsAtStart" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="CapitalAtStartSentence" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Cache"><group oor:name="DrawingEngine"><prop oor:name="OLE_Objects" oor:type="xs:int"><value>20</value></prop></group><group oor:name="Writer"><prop oor:name="OLE_Objects" oor:type="xs:int"><value>20</value></prop></group><group oor:name="GraphicManager"><prop oor:name="TotalCacheSize" oor:type="xs:int"><value>22000000</value></prop><prop oor:name="ObjectCacheSize" oor:type="xs:int"><value>5500000</value></prop><prop oor:name="ObjectReleaseTime" oor:type="xs:int"><value>600</value></prop></group></group><group oor:name="Path"><group oor:name="Info"><prop oor:name="WorkPathChanged" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Current"><prop oor:name="OfficeInstall" oor:type="xs:string"><value/></prop><prop oor:name="OfficeInstallURL" oor:type="xs:string"><value/></prop><prop oor:name="Addin" oor:type="xs:string"><value>$(progpath)/addin</value></prop><prop oor:name="AutoCorrect" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/autocorr:$(userurl)/autocorr</value></prop><prop oor:name="AutoText" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/autotext/$(vlang):$(userurl)/autotext</value></prop><prop oor:name="Backup" oor:type="xs:string"><value>$(userurl)/backup</value></prop><prop oor:name="Basic" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/basic:$(userurl)/basic</value></prop><prop oor:name="Bitmap" oor:type="xs:string"><value>$(insturl)/share/config/symbol</value></prop><prop oor:name="Config" oor:type="xs:string"><value>$(insturl)/share/config</value></prop><prop oor:name="Dictionary" oor:type="xs:string"><value>$(insturl)/share/wordbook</value></prop><prop oor:name="Favorite" oor:type="xs:string"><value>$(userurl)/config/folders</value></prop><prop oor:name="Filter" oor:type="xs:string"><value>$(progpath)/filter</value></prop><prop oor:name="Gallery" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/gallery:$(userurl)/gallery</value></prop><prop oor:name="Graphic" oor:type="xs:string"><value>$(userurl)/gallery</value></prop><prop oor:name="Help" oor:type="xs:string"><value>$(instpath)/help</value></prop><prop oor:name="Linguistic" oor:type="xs:string"><value>$(insturl)/share/dict</value></prop><prop oor:name="Module" oor:type="xs:string"><value>$(progpath)</value></prop><prop oor:name="Palette" oor:type="xs:string"><value>$(userurl)/config</value></prop><prop oor:name="Plugin" oor:type="oor:string-list"><value oor:separator=":">$(progpath)/plugin</value></prop><prop oor:name="Storage" oor:type="xs:string"><value>$(userpath)/store</value></prop><prop oor:name="Temp" oor:type="xs:string"><value/></prop><prop oor:name="Template" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/template/$(vlang):$(insturl)/share/template/common:$(userurl)/template</value></prop><prop oor:name="UIConfig" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/config</value></prop><prop oor:name="UserConfig" oor:type="xs:string"><value>$(userurl)/config</value></prop><prop oor:name="UserDictionary" oor:type="xs:string"><value>$(userurl)/wordbook</value></prop><prop oor:name="Work" oor:type="xs:string"><value>$(work)</value></prop></group><group oor:name="Default"><prop oor:name="Addin" oor:type="xs:string"><value>$(progpath)/addin</value></prop><prop oor:name="AutoCorrect" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/autocorr:$(userurl)/autocorr</value></prop><prop oor:name="AutoText" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/autotext/$(vlang):$(userurl)/autotext</value></prop><prop oor:name="Backup" oor:type="xs:string"><value>$(userurl)/backup</value></prop><prop oor:name="Basic" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/basic:$(userurl)/basic</value></prop><prop oor:name="Bitmap" oor:type="xs:string"><value>$(insturl)/share/config/symbol</value></prop><prop oor:name="Config" oor:type="xs:string"><value>$(insturl)/share/config</value></prop><prop oor:name="Dictionary" oor:type="xs:string"><value>$(insturl)/share/wordbook/$(vlang)</value></prop><prop oor:name="Favorite" oor:type="xs:string"><value>$(userurl)/config/folders</value></prop><prop oor:name="Filter" oor:type="xs:string"><value>$(progpath)/filter</value></prop><prop oor:name="Gallery" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/gallery:$(userurl)/gallery</value></prop><prop oor:name="Graphic" oor:type="xs:string"><value>$(userurl)/gallery</value></prop><prop oor:name="Help" oor:type="xs:string"><value>$(instpath)/help</value></prop><prop oor:name="Linguistic" oor:type="xs:string"><value>$(insturl)/share/dict</value></prop><prop oor:name="Module" oor:type="xs:string"><value>$(progpath)</value></prop><prop oor:name="Palette" oor:type="xs:string"><value>$(userurl)/config</value></prop><prop oor:name="Plugin" oor:type="oor:string-list"><value oor:separator=":">$(progpath)/plugin</value></prop><prop oor:name="Temp" oor:type="xs:string"><value>$(temp)</value></prop><prop oor:name="Template" oor:type="oor:string-list"><value oor:separator=":">$(insturl)/share/template/$(vlang):$(insturl)/share/template/common:$(userurl)/template</value></prop><prop oor:name="UIConfig" oor:type="oor:string-list"><value oor:separator=":"/></prop><prop oor:name="UserConfig" oor:type="xs:string"><value>$(userurl)/config</value></prop><prop oor:name="UserDictionary" oor:type="xs:string"><value>$(userurl)/wordbook</value></prop><prop oor:name="Work" oor:type="xs:string"><value>$(work)</value></prop></group></group><group oor:name="Font"><group oor:name="Substitution"><prop oor:name="Replacement" oor:type="xs:boolean"><value>false</value></prop><set oor:name="FontPairs" oor:node-type="FontReplacement"/></group><group oor:name="View"><prop oor:name="History" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ShowFontBoxWYSIWYG" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="SourceViewFont"><prop oor:name="FontName" oor:type="xs:string"/><prop oor:name="FontHeight" oor:type="xs:short"><value>10</value></prop><prop oor:name="NonProportionalFontsOnly" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Gallery"><prop oor:name="ID_Dialog" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Menus"><set oor:name="New" oor:node-type="MenuType"/><set oor:name="Wizard" oor:node-type="MenuType"/><set oor:name="HelpBookmarks" oor:node-type="MenuType"/></group><group oor:name="History"><prop oor:name="HelpBookmarkSize" oor:type="xs:int"><value>10000</value></prop><prop oor:name="Size" oor:type="xs:int"><value>100</value></prop><prop oor:name="PickListSize" oor:type="xs:int"><value>10</value></prop><set oor:name="HelpBookmarks" oor:node-type="HistoryType"/><set oor:name="List" oor:node-type="HistoryType"/><set oor:name="PickList" oor:node-type="HistoryType"/></group><group oor:name="Internal"><prop oor:name="SendCrashMail" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UseMailUI" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Slot" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DevelopmentChart" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="CurrentTempURL" oor:type="xs:string"><value/></prop><set oor:name="RecoveryList" oor:node-type="RecoveryEntry"/></group><group oor:name="Save"><prop oor:name="WorkingSet" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Document"><prop oor:name="Unpacked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UseUserData" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="AutoSave" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="CreateBackup" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="EditProperty" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="AutoSavePrompt" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="AutoSaveTimeIntervall" oor:type="xs:int"><value>15</value></prop><prop oor:name="ViewInfo" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrettyPrinting" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="WarnAlienFormat" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="AlwaysSaveAs" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SaveBackwardCompatibleODF" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="LoadPrinter" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Graphic"><prop oor:name="Format" oor:type="xs:int"><value>1</value></prop></group><group oor:name="URL"><prop oor:name="FileSystem" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Internet" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="ODF"><prop oor:name="DefaultVersion" oor:type="xs:short"><value>3</value></prop><prop oor:name="UseSHA1InODF12" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UseBlowfishInODF12" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="Load"><prop oor:name="UserDefinedSettings" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ShowOfficeUpdateDialog" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Security"><group oor:name="Scripting"><prop oor:name="SecureURL" oor:type="oor:string-list"><value/></prop><prop oor:name="OfficeBasic" oor:type="xs:int"><value>1</value></prop><prop oor:name="ExecutePlugins" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Warning" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Confirmation" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="WarnSaveOrSendDoc" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="WarnSignDoc" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="WarnPrintDoc" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="WarnCreatePDF" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="RemovePersonalInfoOnSaving" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="RecommendPasswordProtection" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HyperlinksWithCtrlClick" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="MacroSecurityLevel" oor:type="xs:int"><value>2</value></prop><prop oor:name="DisableMacrosExecution" oor:type="xs:boolean"><value>false</value></prop><set oor:name="TrustedAuthors" oor:node-type="TrustedAuthor"/></group></group><group oor:name="View"><prop oor:name="FontScaling" oor:type="xs:short"><value>100</value></prop><group oor:name="NewDocumentHandling"><prop oor:name="ForceFocusAndToFront" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="AppWindow"><prop oor:name="FullScreen" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Preference" oor:type="xs:int"><value>0</value></prop></group><group oor:name="Dialog"><prop oor:name="ButtonLarge" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ButtonFlat" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="MousePositioning" oor:type="xs:short"><value>2</value></prop><prop oor:name="MiddleMouseButton" oor:type="xs:short"><value>1</value></prop></group><group oor:name="Localisation"><prop oor:name="AutoMnemonic" oor:type="xs:boolean" oor:localized="true"/><prop oor:name="DialogScale" oor:type="xs:int" oor:localized="true"/></group><group oor:name="Menu"><prop oor:name="DontHideDisabledEntry" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsSystemIconsInMenus" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ShowIconsInMenues" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="FollowMouse" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Window"><prop oor:name="Drag" oor:type="xs:short"><value>2</value></prop><prop oor:name="Key" oor:type="xs:int"/><prop oor:name="Version" oor:type="xs:string"><value/></prop><prop oor:name="State" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Flag" oor:type="xs:int"/><prop oor:name="UserData" oor:type="xs:string"><value/></prop></group><group oor:name="SplitWindow"><prop oor:name="Key" oor:type="xs:string"><value/></prop><prop oor:name="Version" oor:type="xs:int"/><prop oor:name="State" oor:type="xs:int"/><prop oor:name="Count" oor:type="xs:int"/><prop oor:name="Sequence" oor:type="xs:int"/></group><group oor:name="FontAntiAliasing"><prop oor:name="Enabled" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="MinPixelHeight" oor:type="xs:short"><value>8</value></prop></group></group><group oor:name="Undo"><prop oor:name="Steps" oor:type="xs:int"><value>100</value></prop></group><group oor:name="Setup"><group oor:name="Language"><prop oor:name="Locales" oor:type="oor:string-list"/></group></group><group oor:name="Print"><prop oor:name="PrintingModifiesDocument" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Warning"><prop oor:name="PaperSize" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PaperOrientation" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="NotFound" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Transparency" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Option"><group oor:name="Printer"><prop oor:name="ReduceTransparency" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ReducedTransparencyMode" oor:type="xs:short"><value>0</value></prop><prop oor:name="ReduceGradients" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ReducedGradientMode" oor:type="xs:short"><value>0</value></prop><prop oor:name="ReducedGradientStepCount" oor:type="xs:short"><value>64</value></prop><prop oor:name="ReduceBitmaps" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ReducedBitmapMode" oor:type="xs:short"><value>1</value></prop><prop oor:name="ReducedBitmapResolution" oor:type="xs:short"><value>3</value></prop><prop oor:name="ReducedBitmapIncludesTransparency" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ConvertToGreyscales" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="File"><prop oor:name="ReduceTransparency" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ReducedTransparencyMode" oor:type="xs:short"><value>0</value></prop><prop oor:name="ReduceGradients" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ReducedGradientMode" oor:type="xs:short"><value>0</value></prop><prop oor:name="ReducedGradientStepCount" oor:type="xs:short"><value>64</value></prop><prop oor:name="ReduceBitmaps" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ReducedBitmapMode" oor:type="xs:short"><value>1</value></prop><prop oor:name="ReducedBitmapResolution" oor:type="xs:short"><value>3</value></prop><prop oor:name="ReducedBitmapIncludesTransparency" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ConvertToGreyscales" oor:type="xs:boolean"><value>false</value></prop></group></group></group><group oor:name="WorkingSet"><prop oor:name="WindowList" oor:type="oor:string-list"/></group><group oor:name="AddXMLToStorage"><prop oor:name="Writer" oor:type="xs:boolean"/><prop oor:name="Calc" oor:type="xs:boolean"/><prop oor:name="Impress" oor:type="xs:boolean"/><prop oor:name="Draw" oor:type="xs:boolean"/></group><group oor:name="Help"><prop oor:name="ShowBasic" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Locale" oor:type="xs:string"><value/></prop><prop oor:name="System" oor:type="xs:string"><value/></prop><prop oor:name="Tip" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ExtendedTip" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HelpStyleSheet" oor:type="xs:string"><value>Default</value></prop><group oor:name="HelpAgent"><prop oor:name="Enabled" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Timeout" oor:type="xs:int"><value>30</value></prop><prop oor:name="RetryLimit" oor:type="xs:int"><value>3</value></prop><set oor:name="IgnoreList" oor:node-type="NameCounter"/></group><group oor:name="StartCenter"><prop oor:name="AddFeatureURL" oor:type="xs:string"><value/></prop><prop oor:name="InfoURL" oor:type="xs:string"><value/></prop><prop oor:name="TemplateRepositoryURL" oor:type="xs:string"><value/></prop><prop oor:name="StartCenterLayoutStyle" oor:type="xs:int"><value>0</value></prop></group><group oor:name="Registration"><prop oor:name="TemplateURL" oor:type="xs:string"><value/></prop><prop oor:name="URL" oor:type="xs:string"><value/></prop><prop oor:name="ReminderDate" oor:type="xs:string"><value/></prop><prop oor:name="RequestDialog" oor:type="xs:int"><value>1</value></prop><prop oor:name="ShowMenuItem" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ProductVersionID" oor:type="xs:string"/><set oor:name="ProductVersions" oor:node-type="ProductVersionID"/></group></group><group oor:name="Java"><group oor:name="Applet"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="Vectorize"><prop oor:name="ColorCount" oor:type="xs:short"><value>8</value></prop><prop oor:name="PointReduce" oor:type="xs:short"><value>0</value></prop><prop oor:name="FillHole" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="TileExtent" oor:type="xs:short"><value>32</value></prop></group><group oor:name="Image"><group oor:name="Color"><prop oor:name="Grayscale" oor:type="xs:short"><value>256</value></prop><prop oor:name="PosterColor" oor:type="xs:short"><value>16</value></prop><prop oor:name="Brightness" oor:type="xs:int"><value>10</value></prop><prop oor:name="Contrast" oor:type="xs:int"><value>10</value></prop><prop oor:name="RotationAngle" oor:type="xs:int"><value>4500</value></prop><prop oor:name="LeftRight" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="BlackWhiteThreshold" oor:type="xs:int"><value>50</value></prop><group oor:name="RGB"><prop oor:name="Red" oor:type="xs:int"><value>10</value></prop><prop oor:name="Green" oor:type="xs:int"><value>10</value></prop><prop oor:name="Blue" oor:type="xs:int"><value>10</value></prop></group></group><group oor:name="Effect"><prop oor:name="MosaicX_Tile" oor:type="xs:short"><value>4</value></prop><prop oor:name="MosaicY_Tile" oor:type="xs:short"><value>4</value></prop><prop oor:name="Definition" oor:type="xs:short"><value>2</value></prop><prop oor:name="SolarizationThreshold" oor:type="xs:int"><value>10</value></prop><prop oor:name="Invert" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="TileX_Tile" oor:type="xs:short"><value>4</value></prop><prop oor:name="TileY_Tile" oor:type="xs:short"><value>4</value></prop><prop oor:name="Degree" oor:type="xs:short"><value>2</value></prop><prop oor:name="Intensity" oor:type="xs:int"><value>10</value></prop></group></group><group oor:name="DateFormat"><prop oor:name="TwoDigitYear" oor:type="xs:int"><value>1930</value></prop></group><group oor:name="Filter"><group oor:name="Microsoft"><group oor:name="Import"><prop oor:name="MathTypeToMath" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="WinWordToWriter" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ExcelToCalc" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PowerPointToImpress" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ImportWWFieldsAsEnhancedFields" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Export"><prop oor:name="MathToMathType" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="WriterToWinWord" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="CalcToExcel" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ImpressToPowerPoint" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="EnablePowerPointPreview" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="EnableExcelPreview" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="EnableWordPreview" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="Graphic"><group oor:name="Import"><group oor:name="PCD"><prop oor:name="Resolution" oor:type="xs:int"><value>2</value></prop></group></group><group oor:name="Export"><prop oor:name="PixelExportUnit" oor:type="xs:int"><value>-1</value></prop><prop oor:name="PixelExportResolutionUnit" oor:type="xs:int"><value>0</value></prop><prop oor:name="PixelExportResolution" oor:type="xs:int"><value>96</value></prop><prop oor:name="MaxFilesizeForRealtimePreview" oor:type="xs:int"><value>4000000</value></prop><prop oor:name="VectorExportUnit" oor:type="xs:int"><value>-1</value></prop><group oor:name="BMP"><prop oor:name="Color" oor:type="xs:int"><value>0</value></prop><prop oor:name="RLE_Coding" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="EPS"><prop oor:name="Preview" oor:type="xs:int"><value>0</value></prop><prop oor:name="Version" oor:type="xs:int"><value>2</value></prop><prop oor:name="ColorFormat" oor:type="xs:int"><value>2</value></prop><prop oor:name="CompressionMode" oor:type="xs:int"><value>2</value></prop><prop oor:name="TextMode" oor:type="xs:int"><value>0</value></prop></group><group oor:name="GIF"><prop oor:name="Interlaced" oor:type="xs:int"><value>1</value></prop><prop oor:name="Translucent" oor:type="xs:int"><value>1</value></prop></group><group oor:name="JPG"><prop oor:name="Quality" oor:type="xs:int"><value>75</value></prop><prop oor:name="ColorMode" oor:type="xs:int"><value>0</value></prop></group><group oor:name="PBM"><prop oor:name="FileFormat" oor:type="xs:int"><value>1</value></prop></group><group oor:name="PGM"><prop oor:name="FileFormat" oor:type="xs:int"><value>1</value></prop></group><group oor:name="PPM"><prop oor:name="FileFormat" oor:type="xs:int"><value>1</value></prop></group><group oor:name="PNG"><prop oor:name="Compression" oor:type="xs:int"><value>6</value></prop><prop oor:name="Interlaced" oor:type="xs:int"><value>1</value></prop></group><group oor:name="SVG"><prop oor:name="TinyMode" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="EmbedFonts" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UseNativeTextDecoration" oor:type="xs:boolean"><value>true</value></prop></group></group></group><group oor:name="HTML"><group oor:name="Import"><prop oor:name="NumbersEnglishUS" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UnknownTag" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="FontSetting" oor:type="xs:boolean"><value>false</value></prop><group oor:name="FontSize"><prop oor:name="Size_1" oor:type="xs:int"><value>7</value></prop><prop oor:name="Size_2" oor:type="xs:int"><value>10</value></prop><prop oor:name="Size_3" oor:type="xs:int"><value>12</value></prop><prop oor:name="Size_4" oor:type="xs:int"><value>14</value></prop><prop oor:name="Size_5" oor:type="xs:int"><value>18</value></prop><prop oor:name="Size_6" oor:type="xs:int"><value>24</value></prop><prop oor:name="Size_7" oor:type="xs:int"><value>36</value></prop></group></group><group oor:name="Export"><prop oor:name="Browser" oor:type="xs:int"><value>4</value></prop><prop oor:name="Basic" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PrintLayout" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="LocalGraphic" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Warning" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Encoding" oor:type="xs:int"/></group></group><group oor:name="PDF"><group oor:name="Export"><prop oor:name="CompressMode" oor:type="xs:int"><value>1</value></prop><prop oor:name="UseLosslessCompression" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Quality" oor:type="xs:int"><value>90</value></prop><prop oor:name="ReduceImageResolution" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="MaxImageResolution" oor:type="xs:int"><value>300</value></prop><prop oor:name="UseTaggedPDF" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ExportNotes" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ExportBookmarks" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="OpenBookmarkLevels" oor:type="xs:int"><value>-1</value></prop><prop oor:name="ExportNotesPages" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UseTransitionEffects" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ExportFormFields" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="EmbedStandardFonts" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="FormsType" oor:type="xs:int"><value>0</value></prop><prop oor:name="AllowDuplicateFieldNames" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsSkipEmptyPages" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsAddStream" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideViewerMenubar" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideViewerToolbar" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideViewerWindowControls" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ResizeWindowToInitialPage" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="CenterWindow" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="OpenInFullScreenMode" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DisplayPDFDocumentTitle" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="InitialView" oor:type="xs:int"><value>0</value></prop><prop oor:name="Magnification" oor:type="xs:int"><value>0</value></prop><prop oor:name="Zoom" oor:type="xs:int"><value>100</value></prop><prop oor:name="InitialPage" oor:type="xs:int"><value>1</value></prop><prop oor:name="PageLayout" oor:type="xs:int"><value>0</value></prop><prop oor:name="FirstPageOnLeft" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Printing" oor:type="xs:int"><value>2</value></prop><prop oor:name="Changes" oor:type="xs:int"><value>4</value></prop><prop oor:name="EnableCopyingOfContent" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="EnableTextAccessForAccessibilityTools" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SelectPdfVersion" oor:type="xs:int"><value>0</value></prop><prop oor:name="ExportLinksRelativeFsys" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PDFViewSelection" oor:type="xs:int"><value>0</value></prop><prop oor:name="ConvertOOoTargetToPDFTarget" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ExportBookmarksToPDFDestination" oor:type="xs:boolean"><value>false</value></prop></group></group></group><group oor:name="Misc"><prop oor:name="MaxOpenDocuments" oor:type="xs:int"/><prop oor:name="PluginsEnabled" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UseSystemFileDialog" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UseDocumentSystemFileLocking" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UseDocumentOOoLockFile" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ShowLinkWarningDialog" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UseSystemPrintDialog" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="TryODMADialog" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DisableUICustomization" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="AlwaysAllowSave" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ExperimentalMode" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SymbolSet" oor:type="xs:short"><value>2</value></prop><prop oor:name="SymbolStyle" oor:type="xs:string"><value>auto</value></prop><prop oor:name="ToolboxStyle" oor:type="xs:short"><value>1</value></prop><prop oor:name="FormControlPilotsEnabled" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="FirstRun" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Forms"><group oor:name="ControlLayout"><node-ref oor:name="com.sun.star.text.TextDocument" oor:node-type="ApplicationControlLayout"/><node-ref oor:name="com.sun.star.text.WebDocument" oor:node-type="ApplicationControlLayout"/><node-ref oor:name="com.sun.star.sheet.SpreadsheetDocument" oor:node-type="ApplicationControlLayout"/><node-ref oor:name="com.sun.star.drawing.DrawingDocument" oor:node-type="ApplicationControlLayout"/><node-ref oor:name="com.sun.star.presentation.PresentationDocument" oor:node-type="ApplicationControlLayout"/><node-ref oor:name="com.sun.star.xforms.XMLFormDocument" oor:node-type="ApplicationControlLayout"/><node-ref oor:name="com.sun.star.sdb.FormDesign" oor:node-type="ApplicationControlLayout"/><node-ref oor:name="com.sun.star.sdb.TextReportDesign" oor:node-type="ApplicationControlLayout"/></group><group oor:name="PropertyBrowser"><prop oor:name="ExperimentalProperties" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DirectHelp" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="AsianLayout"><prop oor:name="IsKerningWesternTextOnly" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="CompressCharacterDistance" oor:type="xs:short"><value>0</value></prop><set oor:name="StartEndCharacters" oor:node-type="StartEndCharacters"/></group><group oor:name="SearchOptions"><prop oor:name="IsWholeWordsOnly" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsBackwards" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsUseRegularExpression" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsSearchForStyles" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsSimilaritySearch" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsMatchCase" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsUseAsianOptions" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ComponentSearchGroupLabel" oor:type="xs:string" oor:localized="true"/><prop oor:name="ComponentSearchCommandLabel1" oor:type="xs:string" oor:localized="true"/><prop oor:name="ComponentSearchCommandLabel2" oor:type="xs:string" oor:localized="true"/><prop oor:name="IsNotes" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Japanese"><prop oor:name="IsMatchFullHalfWidthForms" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchHiraganaKatakana" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchContractions" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchMinusDashCho-on" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchRepeatCharMarks" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchVariantFormKanji" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchOldKanaForms" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_DiZi_DuZu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_BaVa_HaFa" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_TsiThiChi_DhiZi" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_HyuIyu_ByuVyu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_SeShe_ZeJe" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_IaIya" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_KiKu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsIgnorePunctuation" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsIgnoreWhitespace" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsIgnoreProlongedSoundMark" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsIgnoreMiddleDot" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Accessibility"><prop oor:name="AutoDetectSystemHC" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsForPagePreviews" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsHelpTipsDisappear" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HelpTipSeconds" oor:type="xs:short"><value>4</value></prop><prop oor:name="IsAllowAnimatedGraphics" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsAllowAnimatedText" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsAutomaticFontColor" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsSystemFont" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsSelectionInReadonly" oor:type="xs:boolean"><value>false</value></prop></group><set oor:name="OfficeObjects" oor:node-type="ObjectNames"/><group oor:name="ExternalApps" oor:extensible="true"/><group oor:name="ExternalMailer"><prop oor:name="UseDefaultMailer" oor:type="xs:boolean"/><prop oor:name="Program" oor:type="xs:string"><value/></prop><prop oor:name="CommandProfile" oor:type="xs:string"><value>Mozilla 1.0 - 1.2</value></prop><set oor:name="Profiles" oor:node-type="MailCommandLineProfile"/></group><group oor:name="I18N"><group oor:name="InputMethod"><prop oor:name="ShowStatusWindow" oor:type="xs:boolean"/></group><group oor:name="CJK"><prop oor:name="CJKFont" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="VerticalText" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="AsianTypography" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="JapaneseFind" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Ruby" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ChangeCaseMap" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DoubleLines" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="EmphasisMarks" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="VerticalCallOut" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="CTL"><prop oor:name="CTLFont" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="CTLSequenceChecking" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="CTLSequenceCheckingRestricted" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="CTLSequenceCheckingTypeAndReplace" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="CTLCursorMovement" oor:type="xs:int"><value>0</value></prop><prop oor:name="CTLTextNumerals" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIMirroring" oor:type="xs:boolean"/></group></group><group oor:name="Startup"><set oor:name="Run" oor:node-type="JobDescription"/><set oor:name="RunOnce" oor:node-type="JobDescription"/></group><group oor:name="SmartTags"><group oor:name="Writer"><prop oor:name="RecognizeSmartTags" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ExcludedSmartTagTypes" oor:type="oor:string-list"/></group></group></component></oor:component-schema><oor:component-schema oor:name="Compatibility" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="FormattingOptions"><prop oor:name="Module" oor:type="xs:string"/><prop oor:name="UsePrinterMetrics" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="AddSpacing" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="AddSpacingAtPages" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UseOurTabStopFormat" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="NoExternalLeading" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UseLineSpacing" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="AddTableSpacing" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UseObjectPositioning" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UseOurTextWrapping" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ConsiderWrappingStyle" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ExpandWordSpace" oor:type="xs:boolean"><value>true</value></prop></group></templates><component><set oor:name="AllFileFormats" oor:node-type="FormattingOptions"/><group oor:name="WriterCompatibilityVersion"><prop oor:name="OOo11" oor:type="xs:string"><value/></prop></group></component></oor:component-schema><oor:component-schema oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess" xml:lang="en-US"><templates><group oor:name="Property"><prop oor:name="Value" oor:type="oor:any" oor:localized="true"/></group><group oor:name="Feature"><prop oor:name="Value" oor:type="xs:boolean" oor:localized="true"/></group><group oor:name="URLPattern"><prop oor:name="ParentURLPattern" oor:type="xs:string"/><prop oor:name="Driver" oor:type="xs:string"/><prop oor:name="DriverTypeDisplayName" oor:type="xs:string" oor:localized="true"/><set oor:name="Properties" oor:node-type="Property"/><set oor:name="Features" oor:node-type="Feature"/><set oor:name="MetaData" oor:node-type="Property"/></group></templates><component><set oor:name="Installed" oor:node-type="URLPattern"/></component></oor:component-schema><oor:component-schema oor:name="DataAccess" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="DatabaseDocumentRegistration"><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="Location" oor:type="xs:string"/></group><group oor:name="EmbeddedDatabaseSetting"><prop oor:name="Value" oor:type="oor:any"/></group><group oor:name="ReportEngineName"><prop oor:name="ServiceName" oor:type="xs:string"/><prop oor:name="UIName" oor:type="xs:string"/></group><group oor:name="EmbeddedDatabaseName"><prop oor:name="URL" oor:type="xs:string"/><prop oor:name="UIName" oor:type="xs:string" oor:localized="true"/><set oor:name="EmbeddedDatabaseSettings" oor:node-type="EmbeddedDatabaseSetting"/></group><group oor:name="DataSource"><prop oor:name="DataSourceName" oor:type="xs:string"/><prop oor:name="Command" oor:type="xs:string"/><prop oor:name="CommandType" oor:type="xs:short"/><set oor:name="Fields" oor:node-type="FieldAssignment"/></group><group oor:name="FieldAssignment"><prop oor:name="ProgrammaticFieldName" oor:type="xs:string"/><prop oor:name="AssignedFieldName" oor:type="xs:string"/></group><group oor:name="DriverPooling"><prop oor:name="DriverName" oor:type="xs:string"/><prop oor:name="Enable" oor:type="xs:boolean"/><prop oor:name="Timeout" oor:type="xs:int"/></group><group oor:name="DriverClassPath"><prop oor:name="Path" oor:type="xs:string"/></group><group oor:name="UserDefinedDriver"><prop oor:name="DriverPageDisplayName" oor:type="xs:string"/><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"/><prop oor:name="DriverDsnPrefix" oor:type="xs:string"/><prop oor:name="Extension" oor:type="xs:string"><value/></prop></group></templates><component><group oor:name="Policies"><group oor:name="Features"><group oor:name="Base"><prop oor:name="CreateLocalDatabase" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Writer"><prop oor:name="DatabaseFields" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Common"><prop oor:name="EditDatabaseFromDataSourceView" oor:type="xs:boolean"><value>true</value></prop></group></group></group><group oor:name="ReportEngines"><prop oor:name="DefaultReportEngine" oor:type="xs:string"/><set oor:name="ReportEngineNames" oor:node-type="ReportEngineName"/></group><group oor:name="EmbeddedDatabases"><prop oor:name="DefaultEmbeddedDatabase" oor:type="xs:string"/><set oor:name="EmbeddedDatabaseNames" oor:node-type="EmbeddedDatabaseName"/></group><group oor:name="DriverManager"><prop oor:name="DriverPrecedence" oor:type="oor:string-list"><value oor:separator=";">com.sun.star.comp.sdbc.ODBCDriver;com.sun.star.comp.sdbc.JDBCDriver</value></prop></group><group oor:name="ConnectionPool"><prop oor:name="EnablePooling" oor:type="xs:boolean"><value>false</value></prop><set oor:name="DriverSettings" oor:node-type="DriverPooling"/></group><group oor:name="JDBC"><set oor:name="DriverClassPaths" oor:node-type="DriverClassPath"/></group><set oor:name="RegisteredNames" oor:node-type="DatabaseDocumentRegistration"/><set oor:name="UserDefinedDriverSettings" oor:node-type="UserDefinedDriver"/><group oor:name="AddressBook"><prop oor:name="DataSourceName" oor:type="xs:string"><value/></prop><prop oor:name="Command" oor:type="xs:string"><value/></prop><prop oor:name="CommandType" oor:type="xs:short"/><prop oor:name="AutoPilotCompleted" oor:type="xs:boolean"><value>false</value></prop><set oor:name="Fields" oor:node-type="FieldAssignment"/></group><group oor:name="Bibliography"><prop oor:name="BeamerHeight" oor:type="xs:int"/><prop oor:name="ViewHeight" oor:type="xs:int"/><prop oor:name="QueryText" oor:type="xs:string"><value/></prop><prop oor:name="QueryField" oor:type="xs:string"><value/></prop><prop oor:name="ShowColumnAssignmentWarning" oor:type="xs:boolean"><value>true</value></prop><node-ref oor:name="CurrentDataSource" oor:node-type="DataSource"/><set oor:name="DataSourceHistory" oor:node-type="DataSource"/></group><group oor:name="DriverSettings"><group oor:name="com.sun.star.comp.sdbc.MozabDriver"><group oor:name="MozillaPreferences"><prop oor:name="ProfileName" oor:type="xs:string"><value/></prop><prop oor:name="PabDescription" oor:type="xs:string" oor:localized="true"><value/></prop><prop oor:name="HisDescription" oor:type="xs:string" oor:localized="true"><value/></prop></group><group oor:name="ColumnAliases"><prop oor:name="FirstName" oor:type="xs:string" oor:localized="true"/><prop oor:name="LastName" oor:type="xs:string" oor:localized="true"/><prop oor:name="DisplayName" oor:type="xs:string" oor:localized="true"/><prop oor:name="NickName" oor:type="xs:string" oor:localized="true"/><prop oor:name="PrimaryEmail" oor:type="xs:string" oor:localized="true"/><prop oor:name="SecondEmail" oor:type="xs:string" oor:localized="true"/><prop oor:name="PreferMailFormat" oor:type="xs:string" oor:localized="true"/><prop oor:name="WorkPhone" oor:type="xs:string" oor:localized="true"/><prop oor:name="HomePhone" oor:type="xs:string" oor:localized="true"/><prop oor:name="FaxNumber" oor:type="xs:string" oor:localized="true"/><prop oor:name="PagerNumber" oor:type="xs:string" oor:localized="true"/><prop oor:name="CellularNumber" oor:type="xs:string" oor:localized="true"/><prop oor:name="HomeAddress" oor:type="xs:string" oor:localized="true"/><prop oor:name="HomeAddress2" oor:type="xs:string" oor:localized="true"/><prop oor:name="HomeCity" oor:type="xs:string" oor:localized="true"/><prop oor:name="HomeState" oor:type="xs:string" oor:localized="true"/><prop oor:name="HomeZipCode" oor:type="xs:string" oor:localized="true"/><prop oor:name="HomeCountry" oor:type="xs:string" oor:localized="true"/><prop oor:name="WorkAddress" oor:type="xs:string" oor:localized="true"/><prop oor:name="WorkAddress2" oor:type="xs:string" oor:localized="true"/><prop oor:name="WorkCity" oor:type="xs:string" oor:localized="true"/><prop oor:name="WorkState" oor:type="xs:string" oor:localized="true"/><prop oor:name="WorkZipCode" oor:type="xs:string" oor:localized="true"/><prop oor:name="WorkCountry" oor:type="xs:string" oor:localized="true"/><prop oor:name="JobTitle" oor:type="xs:string" oor:localized="true"/><prop oor:name="Department" oor:type="xs:string" oor:localized="true"/><prop oor:name="Company" oor:type="xs:string" oor:localized="true"/><prop oor:name="WebPage1" oor:type="xs:string" oor:localized="true"/><prop oor:name="WebPage2" oor:type="xs:string" oor:localized="true"/><prop oor:name="BirthYear" oor:type="xs:string" oor:localized="true"/><prop oor:name="BirthMonth" oor:type="xs:string" oor:localized="true"/><prop oor:name="BirthDay" oor:type="xs:string" oor:localized="true"/><prop oor:name="Custom1" oor:type="xs:string" oor:localized="true"/><prop oor:name="Custom2" oor:type="xs:string" oor:localized="true"/><prop oor:name="Custom3" oor:type="xs:string" oor:localized="true"/><prop oor:name="Custom4" oor:type="xs:string" oor:localized="true"/><prop oor:name="Notes" oor:type="xs:string" oor:localized="true"/></group></group><group oor:name="com.sun.star.comp.sdbc.evoab.OEvoabDriver"><group oor:name="EvolutionPreferences"><prop oor:name="FullPathExportingCommand" oor:type="xs:string"><value/></prop></group><group oor:name="ColumnAliases"><prop oor:name="FirstName" oor:type="xs:string"/><prop oor:name="LastName" oor:type="xs:string"/><prop oor:name="DisplayName" oor:type="xs:string"/><prop oor:name="NickName" oor:type="xs:string"/><prop oor:name="PrimaryEmail" oor:type="xs:string"/><prop oor:name="SecondEmail" oor:type="xs:string"/><prop oor:name="PreferMailFormat" oor:type="xs:string"/><prop oor:name="WorkPhone" oor:type="xs:string"/><prop oor:name="HomePhone" oor:type="xs:string"/><prop oor:name="FaxNumber" oor:type="xs:string"/><prop oor:name="PagerNumber" oor:type="xs:string"/><prop oor:name="CellularNumber" oor:type="xs:string"/><prop oor:name="HomeAddress" oor:type="xs:string"/><prop oor:name="HomeAddress2" oor:type="xs:string"/><prop oor:name="HomeCity" oor:type="xs:string"/><prop oor:name="HomeState" oor:type="xs:string"/><prop oor:name="HomeZipCode" oor:type="xs:string"/><prop oor:name="HomeCountry" oor:type="xs:string"/><prop oor:name="WorkAddress" oor:type="xs:string"/><prop oor:name="WorkAddress2" oor:type="xs:string"/><prop oor:name="WorkCity" oor:type="xs:string"/><prop oor:name="WorkState" oor:type="xs:string"/><prop oor:name="WorkZipCode" oor:type="xs:string"/><prop oor:name="WorkCountry" oor:type="xs:string"/><prop oor:name="JobTitle" oor:type="xs:string"/><prop oor:name="Department" oor:type="xs:string"/><prop oor:name="Company" oor:type="xs:string"/><prop oor:name="WebPage1" oor:type="xs:string"/><prop oor:name="WebPage2" oor:type="xs:string"/><prop oor:name="BirthYear" oor:type="xs:string"/><prop oor:name="BirthMonth" oor:type="xs:string"/><prop oor:name="BirthDay" oor:type="xs:string"/><prop oor:name="Notes" oor:type="xs:string"/></group></group><group oor:name="com.sun.star.comp.sdbc.kab.Driver"><prop oor:name="DisableKDEMaximumVersionCheck" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="com.sun.star.sdbcx.comp.hsqldb.Driver"><group oor:name="PermittedJavaMethods" oor:extensible="true"/></group></group><group oor:name="FormSearchOptions"><prop oor:name="SearchType" oor:type="xs:string"><value>text</value></prop><prop oor:name="SearchPosition" oor:type="xs:string"><value>anywhere-in-field</value></prop><prop oor:name="SearchHistory" oor:type="oor:string-list"/><prop oor:name="IsSearchAllFields" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsUseFormatter" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsBackwards" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsWildcardSearch" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsUseRegularExpression" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsSimilaritySearch" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsLevenshteinRelaxed" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="LevenshteinOther" oor:type="xs:short"><value>2</value></prop><prop oor:name="LevenshteinShorter" oor:type="xs:short"><value>2</value></prop><prop oor:name="LevenshteinLonger" oor:type="xs:short"><value>2</value></prop><prop oor:name="IsMatchCase" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsUseAsianOptions" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Japanese"><prop oor:name="IsMatchFullHalfWidthForms" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchHiraganaKatakana" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchContractions" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchMinusDashCho-on" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchRepeatCharMarks" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchVariantFormKanji" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatchOldKanaForms" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_DiZi_DuZu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_BaVa_HaFa" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_TsiThiChi_DhiZi" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_HyuIyu_ByuVyu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_SeShe_ZeJe" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_IaIya" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsMatch_KiKu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsIgnorePunctuation" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsIgnoreWhitespace" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsIgnoreProlongedSoundMark" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsIgnoreMiddleDot" oor:type="xs:boolean"><value>true</value></prop></group></group></component></oor:component-schema><oor:component-schema oor:name="Draw" oor:package="org.openoffice.Office" xml:lang="en-US"><component><group oor:name="Layout"><group oor:name="Display"><prop oor:name="Ruler" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Helpline" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Guide" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Bezier" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Contour" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Other"><group oor:name="TabStop"><prop oor:name="Metric" oor:type="xs:int"><value>1250</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group><group oor:name="MeasureUnit"><prop oor:name="Metric" oor:type="xs:int"><value>2</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>8</value></prop></group></group></group><group oor:name="Content"><group oor:name="Display"><prop oor:name="PicturePlaceholder" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ContourMode" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="TextPlaceholder" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="LineContour" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="Misc"><prop oor:name="BackgroundCache" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="CopyWhileMoving" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ObjectMoveable" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoDistort" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DclickTextedit" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="RotateClick" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Preview" oor:type="xs:double"><value>0</value></prop><prop oor:name="ShowComments" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SimpleHandles" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="BigHandles" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ModifyWithAttributes" oor:type="xs:boolean"><value>true</value></prop><group oor:name="TextObject"><prop oor:name="QuickEditing" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Selectable" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="CrossFading"><prop oor:name="Steps" oor:type="xs:short"><value>16</value></prop><prop oor:name="Orientation" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Attributes" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="DefaultObjectSize"><prop oor:name="Width" oor:type="xs:int"><value>8000</value></prop><prop oor:name="Height" oor:type="xs:int"><value>5000</value></prop></group><group oor:name="Compatibility"><prop oor:name="PrinterIndependentLayout" oor:type="xs:short"><value>2</value></prop></group></group><group oor:name="Snap"><group oor:name="Object"><prop oor:name="Grid" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SnapLine" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PageMargin" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ObjectFrame" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ObjectPoint" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Range" oor:type="xs:int"><value>5</value></prop></group><group oor:name="Position"><prop oor:name="CreatingMoving" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ExtendEdges" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Rotating" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="RotatingValue" oor:type="xs:int"><value>1500</value></prop><prop oor:name="PointReduction" oor:type="xs:int"><value>1500</value></prop></group></group><group oor:name="Zoom"><prop oor:name="ScaleX" oor:type="xs:int"><value>1</value></prop><prop oor:name="ScaleY" oor:type="xs:int"><value>1</value></prop></group><group oor:name="Grid"><group oor:name="Option"><prop oor:name="SnapToGrid" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="VisibleGrid" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Synchronize" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Resolution"><group oor:name="XAxis"><prop oor:name="Metric" oor:type="xs:int"><value>1000</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group><group oor:name="YAxis"><prop oor:name="Metric" oor:type="xs:int"><value>1000</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group></group><group oor:name="Subdivision"><prop oor:name="XAxis" oor:type="xs:double"><value>9</value></prop><prop oor:name="YAxis" oor:type="xs:double"><value>9</value></prop></group><group oor:name="SnapGrid"><prop oor:name="Size" oor:type="xs:boolean"><value>true</value></prop><group oor:name="XAxis"><prop oor:name="Metric" oor:type="xs:int"><value>1000</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group><group oor:name="YAxis"><prop oor:name="Metric" oor:type="xs:int"><value>1000</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group></group></group><group oor:name="Print"><group oor:name="Content"><prop oor:name="Drawing" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Page"><prop oor:name="PageSize" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PageTile" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Booklet" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="BookletFront" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="BookletBack" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Other"><prop oor:name="PageName" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Date" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Time" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HiddenPage" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Quality" oor:type="xs:int"><value>0</value></prop><prop oor:name="FromPrinterSetup" oor:type="xs:boolean"><value>false</value></prop></group></group></component></oor:component-schema><oor:component-schema oor:name="Embedding" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="Object"><prop oor:name="ObjectFactory" oor:type="xs:string"/><prop oor:name="ObjectDocumentServiceName" oor:type="xs:string"/><prop oor:name="ObjectMiscStatus" oor:type="xs:long"/><prop oor:name="ObjectVerbs" oor:type="oor:string-list"/><prop oor:name="ObjectDocumentFilterName" oor:type="xs:string"/></group><group oor:name="Verb"><prop oor:name="VerbUIName" oor:localized="true" oor:type="xs:string"/><prop oor:name="VerbID" oor:type="xs:int"/><prop oor:name="VerbFlags" oor:type="xs:int"/><prop oor:name="VerbAttributes" oor:type="xs:int"/></group><group oor:name="ObjectName"><prop oor:name="ObjectUIName" oor:localized="true" oor:type="xs:string"/><prop oor:name="ClassID" oor:type="xs:string"/></group></templates><component><set oor:name="Objects" oor:node-type="Object"/><set oor:name="Verbs" oor:node-type="Verb"/><group oor:name="MimeTypeClassIDRelations" oor:extensible="true"/><group oor:name="UserFactories" oor:extensible="true"/><set oor:name="ObjectNames" oor:node-type="ObjectName"/></component></oor:component-schema><oor:component-schema oor:name="Events" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="BindingType"><prop oor:name="BindingURL" oor:type="xs:string"/></group></templates><component><group oor:name="ApplicationEvents"><set oor:name="Bindings" oor:node-type="BindingType"/></group></component></oor:component-schema><oor:component-schema oor:name="ExtendedColorScheme" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="ColorEntry"><prop oor:name="Color" oor:type="xs:int"/><prop oor:name="DefaultColor" oor:type="xs:int"/></group><group oor:name="Component"><set oor:name="Entries" oor:node-type="ColorEntry"/></group><group oor:name="EntryName"><prop oor:name="DisplayName" oor:type="xs:string" oor:localized="true"/></group><group oor:name="ComponentName"><prop oor:name="DisplayName" oor:type="xs:string" oor:localized="true"/><set oor:name="Entries" oor:node-type="EntryName"/></group><set oor:name="ExtendedColorScheme" oor:node-type="Component"/></templates><component><group oor:name="ExtendedColorScheme"><prop oor:name="CurrentColorScheme" oor:type="xs:string"/><set oor:name="ColorSchemes" oor:node-type="ExtendedColorScheme"/></group><set oor:name="EntryNames" oor:node-type="ComponentName"/></component></oor:component-schema><oor:component-schema oor:name="ExtensionManager" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="UpdateInfo"><prop oor:name="Version" oor:type="xs:string" oor:localized="false"/></group></templates><component><group oor:name="ExtensionRepositories"><prop oor:name="WebsiteLink" oor:type="xs:string"><value/></prop></group><group oor:name="ExtensionUpdateData"><set oor:name="AvailableUpdates" oor:node-type="UpdateInfo"/><set oor:name="IgnoredUpdates" oor:node-type="UpdateInfo"/></group></component></oor:component-schema><oor:component-schema oor:name="FormWizard" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="FWizStyle"><prop oor:name="Index" oor:type="xs:int"/><prop oor:localized="true" oor:name="Name" oor:type="xs:string"/><prop oor:name="CssHref" oor:type="xs:string"/></group></templates><component><group oor:name="FormWizard"><set oor:name="Styles" oor:node-type="FWizStyle"/></group></component></oor:component-schema><oor:component-schema oor:package="org.openoffice.Office" oor:name="Histories" xml:lang="en-US"><templates><group oor:name="HistoryItem"><prop oor:name="Filter" oor:type="xs:string"/><prop oor:name="Title" oor:type="xs:string"/><prop oor:name="Password" oor:type="xs:string"/></group><group oor:name="HistoryOrder"><prop oor:name="HistoryItemRef" oor:type="xs:string"/></group><group oor:name="HistoryInfo"><set oor:name="ItemList" oor:node-type="HistoryItem"/><set oor:name="OrderList" oor:node-type="HistoryOrder"/></group></templates><component><set oor:name="Histories" oor:node-type="HistoryInfo"/></component></oor:component-schema><oor:component-schema oor:name="Impress" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="MasterPageDescriptor"><prop oor:name="URL" oor:type="xs:string"/><prop oor:name="Name" oor:type="xs:string"/></group><group oor:name="Resource"><prop oor:name="URL" oor:type="xs:string"/></group><group oor:name="ResourceFactory"><prop oor:name="ServiceName" oor:type="xs:string"/><set oor:name="ResourceList" oor:node-type="Resource"/></group><group oor:name="StartupService"><prop oor:name="ServiceName" oor:type="xs:string"/></group></templates><component><group oor:name="Layout"><group oor:name="Display"><prop oor:name="Ruler" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Helpline" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Guide" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Bezier" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Contour" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Other"><group oor:name="TabStop"><prop oor:name="Metric" oor:type="xs:int"><value>1250</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group><group oor:name="MeasureUnit"><prop oor:name="Metric" oor:type="xs:int"><value>2</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>8</value></prop></group></group></group><group oor:name="Content"><group oor:name="Display"><prop oor:name="PicturePlaceholder" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ContourMode" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="TextPlaceholder" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="LineContour" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="Misc"><prop oor:name="BackgroundCache" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="CopyWhileMoving" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ObjectMoveable" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoDistort" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DclickTextedit" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="RotateClick" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Preview" oor:type="xs:double"><value>0</value></prop><prop oor:name="ShowComments" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SimpleHandles" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="BigHandles" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ModifyWithAttributes" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ShowUndoDeleteWarning" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SlideshowRespectZOrder" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="TransitionFiles" oor:type="oor:string-list"><value oor:separator=";">vnd.sun.star.expand:$OOO_BASE_DIR/share/config/soffice.cfg/simpress/transitions.xml;vnd.sun.star.expand:$OOO_BASE_DIR/share/config/soffice.cfg/simpress/transitions-ogl.xml</value></prop><prop oor:name="EffectFiles" oor:type="oor:string-list"><value oor:separator=";">vnd.sun.star.expand:$OOO_BASE_DIR/share/config/soffice.cfg/simpress/effects.xml</value></prop><prop oor:name="PreviewNewEffects" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PreviewChangedEffects" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PreviewTransitions" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Display" oor:type="xs:int"><value>0</value></prop><prop oor:name="PenColor" oor:type="xs:int"><value>16711680</value></prop><prop oor:name="PenWidth" oor:type="xs:double"><value>150</value></prop><group oor:name="TextObject"><prop oor:name="QuickEditing" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Selectable" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="NewDoc"><prop oor:name="AutoPilot" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Layout" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Start"><prop oor:name="CurrentPage" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Compatibility"><prop oor:name="AddBetween" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PrinterIndependentLayout" oor:type="xs:short"><value>2</value></prop></group><group oor:name="DefaultObjectSize"><prop oor:name="Width" oor:type="xs:int"><value>8000</value></prop><prop oor:name="Height" oor:type="xs:int"><value>5000</value></prop></group></group><group oor:name="Snap"><group oor:name="Object"><prop oor:name="Grid" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SnapLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PageMargin" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ObjectFrame" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ObjectPoint" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Range" oor:type="xs:int"><value>5</value></prop></group><group oor:name="Position"><prop oor:name="CreatingMoving" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ExtendEdges" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Rotating" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="RotatingValue" oor:type="xs:int"><value>1500</value></prop><prop oor:name="PointReduction" oor:type="xs:int"><value>1500</value></prop></group></group><group oor:name="Grid"><group oor:name="Option"><prop oor:name="SnapToGrid" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="VisibleGrid" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Synchronize" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Resolution"><group oor:name="XAxis"><prop oor:name="Metric" oor:type="xs:int"><value>2000</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>2540</value></prop></group><group oor:name="YAxis"><prop oor:name="Metric" oor:type="xs:int"><value>2000</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>2540</value></prop></group></group><group oor:name="Subdivision"><prop oor:name="XAxis" oor:type="xs:double"><value>9</value></prop><prop oor:name="YAxis" oor:type="xs:double"><value>9</value></prop></group><group oor:name="SnapGrid"><prop oor:name="Size" oor:type="xs:boolean"><value>true</value></prop><group oor:name="XAxis"><prop oor:name="Metric" oor:type="xs:int"><value>100</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group><group oor:name="YAxis"><prop oor:name="Metric" oor:type="xs:int"><value>100</value></prop><prop oor:name="NonMetric" oor:type="xs:int"><value>1270</value></prop></group></group></group><group oor:name="Print"><group oor:name="Content"><prop oor:name="Presentation" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Note" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Handout" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Outline" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Page"><prop oor:name="PageSize" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PageTile" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Booklet" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="BookletFront" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="BookletBack" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Other"><prop oor:name="PageName" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Date" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Time" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HiddenPage" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Quality" oor:type="xs:int"><value>0</value></prop><prop oor:name="FromPrinterSetup" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HandoutHorizontal" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PagesPerHandout" oor:type="xs:int"><value>0</value></prop></group></group><group oor:name="Filter"><group oor:name="Import"><group oor:name="VBA"><prop oor:name="Load" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Save" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Export"><prop oor:name="LastUsed" oor:type="xs:string"/></group></group><group oor:name="MultiPaneGUI"><group oor:name="ToolPanel"><set oor:name="RecentlyUsedMasterPages" oor:node-type="MasterPageDescriptor"/></group><group oor:name="Framework"><set oor:name="ResourceFactories" oor:node-type="ResourceFactory"/><set oor:name="StartupServices" oor:node-type="StartupService"/></group><group oor:name="SlideSorter"><group oor:name="PreviewCache"><prop oor:name="CacheSize" oor:type="xs:int"><value>4194304</value></prop><prop oor:name="CompactionPolicy" oor:type="xs:string"><value>Compress</value></prop><prop oor:name="CompressionPolicy" oor:type="xs:string"><value>ResolutionReduction</value></prop><prop oor:name="TimeBetweenHighPriorityRequests" oor:type="xs:int"><value>10</value></prop><prop oor:name="TimeBetweenLowPriorityRequests" oor:type="xs:int"><value>100</value></prop><prop oor:name="TimeBetweenRequestsDuringShow" oor:type="xs:int"><value>1000</value></prop></group></group></group></component></oor:component-schema><oor:component-schema oor:name="Java" oor:package="org.openoffice.Office" xml:lang="en-US"><component><group oor:name="VirtualMachine"><prop oor:name="Home" oor:type="xs:string"><value>NULL</value></prop><prop oor:name="Version" oor:type="xs:string"><value>NULL</value></prop><prop oor:name="RunTimeLib" oor:type="xs:string"><value/></prop><prop oor:name="SystemClassPath" oor:type="xs:string"><value/></prop><prop oor:name="Enable" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Security" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NetAccess" oor:type="xs:int"/><prop oor:name="UserClassPath" oor:type="xs:string"><value/></prop><prop oor:name="Debug" oor:type="xs:boolean"/><prop oor:name="DebugPort" oor:type="xs:int"/><prop oor:name="EnableVerboseGC" oor:type="xs:boolean"/><prop oor:name="Verbose" oor:type="xs:boolean"/><prop oor:name="NativeStackSize" oor:type="xs:int"/><prop oor:name="JavaStackSize" oor:type="xs:int"/><prop oor:name="VerifyMode" oor:type="xs:int"/><prop oor:name="MinHeapSize" oor:type="xs:int"/><prop oor:name="MaxHeapSize" oor:type="xs:int"/><prop oor:name="DisableAsyncGC" oor:type="xs:boolean"/><prop oor:name="EnableClassGC" oor:type="xs:boolean"/><prop oor:name="VMType" oor:type="xs:string"/><prop oor:name="EnvironmentType" oor:type="xs:string"/><prop oor:name="JavaLibPath" oor:type="xs:string"><value/></prop><prop oor:name="Properties" oor:type="oor:string-list"/></group><group oor:name="Install"><prop oor:name="PackageInstallationDirectory" oor:type="xs:string"><value/></prop><prop oor:name="VerifiedVersion" oor:type="xs:string"><value/></prop><prop oor:name="Version" oor:type="xs:string"><value/></prop><prop oor:name="Vendor" oor:type="xs:string"><value/></prop><prop oor:name="RequiredVersion" oor:type="xs:string"><value/></prop><prop oor:name="InstallationPackage" oor:type="xs:string"><value/></prop><prop oor:name="ExcludeVersion" oor:type="xs:string"><value/></prop><prop oor:name="AdditionalSearchPath" oor:type="xs:string"><value/></prop><prop oor:name="AdditionalClasspath" oor:type="xs:string"><value/></prop></group></component></oor:component-schema><oor:component-schema oor:name="Jobs" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="Job"><prop oor:name="Service" oor:type="xs:string"/><prop oor:name="Context" oor:type="xs:string"/><group oor:name="Arguments" oor:extensible="true"/></group><group oor:name="TimeStamp"><prop oor:name="AdminTime" oor:type="xs:string"><value>2003-01-01T00:00:00+00:00</value></prop><prop oor:name="UserTime" oor:type="xs:string"><value>2003-01-01T00:00:00+00:00</value></prop></group><group oor:name="Event"><set oor:name="JobList" oor:node-type="TimeStamp"/></group></templates><component><set oor:name="Jobs" oor:node-type="Job"/><set oor:name="Events" oor:node-type="Event"/></component></oor:component-schema><oor:component-schema oor:name="Labels" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="LabelType"><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="Measure" oor:type="xs:string"/></group><set oor:name="Labels" oor:node-type="LabelType"/></templates><component><set oor:name="Manufacturer" oor:node-type="Labels"/></component></oor:component-schema><oor:component-schema oor:name="Linguistic" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="Dictionary"><prop oor:name="Locations" oor:type="oor:string-list"/><prop oor:name="Format" oor:type="xs:string"/><prop oor:name="Locales" oor:type="oor:string-list"/></group><group oor:name="DictionaryUsingService"><prop oor:name="SupportedDictionaryFormats" oor:type="oor:string-list"/></group><group oor:name="ServiceNameEntry"><prop oor:name="VendorImagesNode" oor:type="xs:string"/></group><group oor:name="VendorImagesEntry"><prop oor:name="SpellAndGrammarDialogImage" oor:type="xs:string"/><prop oor:name="SpellAndGrammarContextMenuSuggestionImage" oor:type="xs:string"/><prop oor:name="SpellAndGrammarContextMenuDictionaryImage" oor:type="xs:string"/><prop oor:name="ThesaurusDialogImage" oor:type="xs:string"/><prop oor:name="SynonymsContextMenuImage" oor:type="xs:string"/></group><group oor:name="GrammarCheckerEntry"><prop oor:name="Locales" oor:type="oor:string-list"/></group></templates><component><group oor:name="Images"><set oor:name="ServiceNameEntries" oor:node-type="ServiceNameEntry"/><set oor:name="VendorImages" oor:node-type="VendorImagesEntry"/></group><group oor:name="General"><prop oor:name="UILocale" oor:type="xs:string"><value/></prop><prop oor:name="IsIgnoreControlCharacters" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="DefaultLocale" oor:type="xs:string"><value/></prop><prop oor:name="DefaultLocale_CJK" oor:type="xs:string"><value/></prop><prop oor:name="DefaultLocale_CTL" oor:type="xs:string"><value/></prop><group oor:name="DictionaryList"><prop oor:name="ActiveDictionaries" oor:type="oor:string-list"><value oor:separator=";">IgnoreAllList;en-US.dic;en-GB.dic;sl.dic;technical.dic</value></prop><prop oor:name="IsUseDictionaryList" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="TextConversion"><prop oor:name="ActiveConversionDictionaries" oor:type="oor:string-list"><value/></prop><prop oor:name="IsIgnorePostPositionalWord" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsAutoCloseDialog" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsShowEntriesRecentlyUsedFirst" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsAutoReplaceUniqueEntries" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsDirectionToSimplified" oor:type="xs:boolean"/><prop oor:name="IsUseCharacterVariants" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsTranslateCommonTerms" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsReverseMapping" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="SpellChecking"><prop oor:name="IsSpellUpperCase" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsSpellWithDigits" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsSpellCapitalization" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsSpellAuto" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsSpellSpecial" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsReverseDirection" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="GrammarChecking"><prop oor:name="IsAutoCheck" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsInteractiveCheck" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Hyphenation"><prop oor:name="MinLeading" oor:type="xs:short"><value>2</value></prop><prop oor:name="MinTrailing" oor:type="xs:short"><value>2</value></prop><prop oor:name="MinWordLength" oor:type="xs:short"><value>5</value></prop><prop oor:name="IsHyphSpecial" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsHyphAuto" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="ServiceManager"><set oor:name="Dictionaries" oor:node-type="Dictionary"/><set oor:name="SpellCheckers" oor:node-type="DictionaryUsingService"/><set oor:name="Hyphenators" oor:node-type="DictionaryUsingService"/><set oor:name="Thesauri" oor:node-type="DictionaryUsingService"/><prop oor:name="DisabledDictionaries" oor:type="oor:string-list"/><set oor:name="GrammarCheckers" oor:node-type="GrammarCheckerEntry"/><prop oor:name="DataFilesChangedCheckValue" oor:type="xs:int"><value>-1</value></prop><group oor:name="SpellCheckerList" oor:extensible="true"/><group oor:name="ThesaurusList" oor:extensible="true"/><group oor:name="HyphenatorList" oor:extensible="true"/><group oor:name="GrammarCheckerList" oor:extensible="true"/><group oor:name="LastFoundSpellCheckers" oor:extensible="true"/><group oor:name="LastFoundThesauri" oor:extensible="true"/><group oor:name="LastFoundHyphenators" oor:extensible="true"/><group oor:name="LastFoundGrammarCheckers" oor:extensible="true"/></group></component></oor:component-schema><oor:component-schema oor:name="Logging" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="LoggerSettings"><prop oor:name="LogLevel" oor:type="xs:int" oor:nillable="false"><value>2147483647</value></prop><prop oor:name="DefaultHandler" oor:type="xs:string" oor:nillable="true"><value>com.sun.star.logging.FileHandler</value></prop><group oor:name="HandlerSettings" oor:extensible="true"><prop oor:name="FileURL" oor:type="xs:string"><value>$(userurl)/$(loggername).log</value></prop></group><prop oor:name="DefaultFormatter" oor:type="xs:string" oor:nillable="true"><value>com.sun.star.logging.PlainTextFormatter</value></prop><group oor:name="FormatterSettings" oor:extensible="true"/></group></templates><component><group oor:name="OOoImprovement"><prop oor:name="EnablingAllowed" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="LogPath" oor:type="xs:string"><value>$(user)/temp/Feedback</value></prop><prop oor:name="IdleTimeout" oor:type="xs:int"><value>180</value></prop></group><set oor:name="Settings" oor:node-type="LoggerSettings"/></component></oor:component-schema><oor:component-schema oor:name="Math" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="FontFormat"><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="CharSet" oor:type="xs:short"/><prop oor:name="Family" oor:type="xs:short"/><prop oor:name="Pitch" oor:type="xs:short"/><prop oor:name="Weight" oor:type="xs:short"/><prop oor:name="Italic" oor:type="xs:short"/></group><group oor:name="Symbol"><prop oor:name="Char" oor:type="xs:int"/><prop oor:name="Set" oor:type="xs:string"/><prop oor:name="Predefined" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="FontFormatId" oor:type="xs:string"/></group></templates><component><group oor:name="Print"><prop oor:name="Title" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="FormulaText" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Frame" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Size" oor:type="xs:short"><value>0</value></prop><prop oor:name="ZoomFactor" oor:type="xs:short"><value>100</value></prop></group><group oor:name="LoadSave"><prop oor:name="IsSaveOnlyUsedSymbols" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Misc"><prop oor:name="NoSymbolsWarning" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IgnoreSpacesRight" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="View"><prop oor:name="ToolboxVisible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="AutoRedraw" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="FormulaCursor" oor:type="xs:boolean"><value>true</value></prop></group><set oor:name="FontFormatList" oor:node-type="FontFormat"/><group oor:name="StandardFormat"><prop oor:name="Textmode" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="GreekCharStyle" oor:type="xs:short"><value>0</value></prop><prop oor:name="ScaleNormalBracket" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HorizontalAlignment" oor:type="xs:short"><value>1</value></prop><prop oor:name="BaseSize" oor:type="xs:short"><value>12</value></prop><prop oor:name="TextSize" oor:type="xs:short"><value>100</value></prop><prop oor:name="IndexSize" oor:type="xs:short"><value>60</value></prop><prop oor:name="FunctionSize" oor:type="xs:short"><value>100</value></prop><prop oor:name="OperatorSize" oor:type="xs:short"><value>100</value></prop><prop oor:name="LimitsSize" oor:type="xs:short"><value>60</value></prop><prop oor:name="VariableFont" oor:type="xs:string"><value/></prop><prop oor:name="FunctionFont" oor:type="xs:string"><value/></prop><prop oor:name="NumberFont" oor:type="xs:string"><value/></prop><prop oor:name="TextFont" oor:type="xs:string"><value/></prop><prop oor:name="SansFont" oor:type="xs:string"><value/></prop><prop oor:name="SerifFont" oor:type="xs:string"><value/></prop><prop oor:name="FixedFont" oor:type="xs:string"><value/></prop><group oor:name="Distance"><prop oor:name="Horizontal" oor:type="xs:short"><value>10</value></prop><prop oor:name="Vertical" oor:type="xs:short"><value>5</value></prop><prop oor:name="Root" oor:type="xs:short"><value>0</value></prop><prop oor:name="SubScript" oor:type="xs:short"><value>20</value></prop><prop oor:name="SuperScript" oor:type="xs:short"><value>20</value></prop><prop oor:name="LowerLimit" oor:type="xs:short"><value>0</value></prop><prop oor:name="UpperLimit" oor:type="xs:short"><value>0</value></prop><prop oor:name="OperatorSize" oor:type="xs:short"><value>50</value></prop><prop oor:name="OperatorSpace" oor:type="xs:short"><value>20</value></prop><prop oor:name="Numerator" oor:type="xs:short"><value>0</value></prop><prop oor:name="Denominator" oor:type="xs:short"><value>0</value></prop><prop oor:name="Fraction" oor:type="xs:short"><value>10</value></prop><prop oor:name="StrokeWidth" oor:type="xs:short"><value>5</value></prop><prop oor:name="BracketSize" oor:type="xs:short"><value>5</value></prop><prop oor:name="BracketSpace" oor:type="xs:short"><value>5</value></prop><prop oor:name="NormalBracketSize" oor:type="xs:short"><value>0</value></prop><prop oor:name="MatrixRow" oor:type="xs:short"><value>3</value></prop><prop oor:name="MatrixColumn" oor:type="xs:short"><value>30</value></prop><prop oor:name="OrnamentSize" oor:type="xs:short"><value>0</value></prop><prop oor:name="OrnamentSpace" oor:type="xs:short"><value>0</value></prop><prop oor:name="LeftSpace" oor:type="xs:short"><value>100</value></prop><prop oor:name="RightSpace" oor:type="xs:short"><value>100</value></prop><prop oor:name="TopSpace" oor:type="xs:short"><value>0</value></prop><prop oor:name="BottomSpace" oor:type="xs:short"><value>0</value></prop></group></group><set oor:name="SymbolList" oor:node-type="Symbol"/></component></oor:component-schema><oor:component-schema oor:name="Settings" oor:package="org.openoffice.Office.OOoImprovement" xml:lang="en-US"><templates/><component><group oor:name="Participation"><prop oor:name="OfficeStartCounterdown" oor:type="xs:int"><value>1</value></prop><prop oor:name="InvitationAccepted" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ShowedInvitation" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DeliveredPrebundled" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HelpUrl" oor:type="xs:string"><value>http://wiki.documentfoundation.org/UX/LibreOffice_User_Feedback_Program</value></prop></group><group oor:name="Counters"><prop oor:name="UploadedReports" oor:type="xs:int"><value>0</value></prop><prop oor:name="LoggedEvents" oor:type="xs:int"><value>0</value></prop><prop oor:name="FailedAttempts" oor:type="xs:int"><value>0</value></prop></group><group oor:name="Upload"><prop oor:name="SoapUrl" oor:type="xs:string"><value>http://report.libreoffice.org:80/soap/servlet/rpcrouter</value></prop><prop oor:name="SoapIdAdditions" oor:type="xs:string"><value/></prop><prop oor:name="ReporterEmail" oor:type="xs:string"><value/></prop></group></component></oor:component-schema><oor:component-schema oor:name="OptionsDialog" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="SingleOption"><prop oor:name="Hide" oor:type="xs:boolean"/></group><group oor:name="OptionsPage"><prop oor:name="Hide" oor:type="xs:boolean"/><set oor:name="Options" oor:node-type="SingleOption"/></group><group oor:name="OptionsGroup"><prop oor:name="Hide" oor:type="xs:boolean"/><set oor:name="Pages" oor:node-type="OptionsPage"/></group><group oor:name="Module"><set oor:name="Nodes" oor:node-type="OrderedNode"/></group><group oor:name="Node"><prop oor:name="Label" oor:type="xs:string" oor:localized="true" oor:nillable="false"/><prop oor:name="OptionsPage" oor:type="xs:string"/><prop oor:name="AllModules" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="GroupId" oor:type="xs:string"><value/></prop><prop oor:name="GroupIndex" oor:type="xs:int"><value>-1</value></prop><set oor:name="Leaves" oor:node-type="Leaf"/></group><group oor:name="Leaf"><prop oor:name="Id" oor:type="xs:string"/><prop oor:name="Label" oor:type="xs:string" oor:localized="true" oor:nillable="false"/><prop oor:name="OptionsPage" oor:type="xs:string" oor:nillable="false"/><prop oor:name="EventHandlerService" oor:type="xs:string" oor:nillable="false"/><prop oor:name="GroupId" oor:type="xs:string"><value/></prop><prop oor:name="GroupIndex" oor:type="xs:int"><value>-1</value></prop></group><group oor:name="OrderedNode"><prop oor:name="Index" oor:type="xs:int"><value>-1</value></prop></group></templates><component><set oor:name="OptionsDialogGroups" oor:node-type="OptionsGroup"/><set oor:name="Modules" oor:node-type="Module"/><set oor:name="Nodes" oor:node-type="Node"/></component></oor:component-schema><oor:component-schema oor:name="Paths" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="MultiPath"><prop oor:name="Unused" oor:type="xs:string"/></group><group oor:name="NamedPath"><prop oor:name="IsSinglePath" oor:type="xs:boolean"><value>false</value></prop><set oor:name="InternalPaths" oor:node-type="MultiPath"/><prop oor:name="UserPaths" oor:type="oor:string-list"/><prop oor:name="WritePath" oor:type="xs:string"/></group></templates><component><set oor:name="Paths" oor:node-type="NamedPath"/><group oor:name="Variables"><prop oor:name="Work" oor:type="xs:string"/></group></component></oor:component-schema><oor:component-schema oor:name="ProtocolHandler" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="Handler"><prop oor:name="Protocols" oor:type="oor:string-list"/></group></templates><component><set oor:name="HandlerSet" oor:node-type="Handler"/></component></oor:component-schema><oor:component-schema oor:name="Recovery" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="RecoveryEntry"><prop oor:name="TempURL" oor:type="xs:string"/><prop oor:name="OriginalURL" oor:type="xs:string"/><prop oor:name="TemplateURL" oor:type="xs:string"/><prop oor:name="Module" oor:type="xs:string"/><prop oor:name="DocumentState" oor:type="xs:int"/><prop oor:name="Filter" oor:type="xs:string"/><prop oor:name="Title" oor:type="xs:string"/><prop oor:name="ViewNames" oor:type="oor:string-list"/></group></templates><component><set oor:name="RecoveryList" oor:node-type="RecoveryEntry"/><group oor:name="SessionShutdown"><prop oor:name="DocumentStoreUIEnabled" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="RecoveryInfo"><prop oor:name="Enabled" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Crashed" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SessionData" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="CrashReporter"><prop oor:name="Enabled" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="AutoSave"><prop oor:name="Enabled" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="TimeIntervall" oor:type="xs:int"><value>15</value></prop><prop oor:name="MinSpaceDocSave" oor:type="xs:int"><value>5</value></prop><prop oor:name="MinSpaceConfigSave" oor:type="xs:int"><value>1</value></prop></group></component></oor:component-schema><oor:component-schema oor:name="SFX" oor:package="org.openoffice.Office" xml:lang="en-US"><component><group oor:name="Help"><prop oor:name="HelpAgentStarterList" oor:type="xs:string" oor:localized="true"><value/></prop></group></component></oor:component-schema><oor:component-schema oor:name="Scripting" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="RuntimeNode"><prop oor:name="SupportedFileExtensions" oor:type="oor:string-list"/></group></templates><component><set oor:name="ScriptRuntimes" oor:node-type="RuntimeNode"/></component></oor:component-schema><oor:component-schema oor:name="Security" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="SecureExtension"><prop oor:name="Extension" oor:type="xs:string"/></group></templates><component><set oor:name="SecureExtensions" oor:node-type="SecureExtension"/><group oor:name="Hyperlinks"><prop oor:name="Open" oor:type="xs:int"/></group></component></oor:component-schema><oor:component-schema oor:name="Substitution" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="SharePointMapping"><prop oor:name="Directory" oor:type="xs:string" oor:nillable="false"/><group oor:name="Environment"><prop oor:name="OS" oor:type="xs:string"/><prop oor:name="Host" oor:type="xs:string"/><prop oor:name="DNSDomain" oor:type="xs:string"/><prop oor:name="YPDomain" oor:type="xs:string"/><prop oor:name="NTDomain" oor:type="xs:string"/></group></group><set oor:name="SharePoint" oor:node-type="SharePointMapping"/></templates><component><set oor:name="SharePoints" oor:node-type="SharePoint"/></component></oor:component-schema><oor:component-schema oor:package="org.openoffice.Office" oor:name="TabBrowse" xml:lang="en-US"><templates/><component><group oor:name="TaskCreatorService"><prop oor:name="ImplementationName" oor:type="xs:string"/></group></component></oor:component-schema><oor:component-schema oor:name="TableWizard" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="TWizField"><prop oor:name="Index" oor:type="xs:int"/><prop oor:localized="true" oor:name="Name" oor:type="xs:string"/><prop oor:localized="true" oor:name="ShortName" oor:type="xs:string"/><prop oor:name="Type" oor:type="xs:int"/><prop oor:name="PrimaryKey" oor:type="xs:boolean"/><prop oor:name="DefaultValue" oor:type="xs:boolean"/><prop oor:name="Precision" oor:type="xs:int"/><prop oor:name="Scale" oor:type="xs:int"/></group><group oor:name="TWizTable"><prop oor:name="Index" oor:type="xs:int"/><prop oor:localized="true" oor:name="Name" oor:type="xs:string"/><set oor:name="Fields" oor:node-type="TWizField"/></group><group oor:name="TWizCategory"><prop oor:name="Index" oor:type="xs:int"/><prop oor:localized="true" oor:name="Name" oor:type="xs:string"/><set oor:name="Tables" oor:node-type="TWizTable"/></group></templates><component><set oor:name="TableWizard" oor:node-type="TWizCategory"/></component></oor:component-schema><oor:component-schema oor:name="TypeDetection" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="Type"><prop oor:name="UIName" oor:type="xs:string" oor:localized="true"/><prop oor:name="Data" oor:type="xs:string"><value>false</value></prop></group><group oor:name="Filter"><prop oor:name="Installed" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string" oor:localized="true"/><prop oor:name="Data" oor:type="xs:string"/></group><group oor:name="DetectService"><prop oor:name="Types" oor:type="oor:string-list"/></group><group oor:name="ContentHandler"><prop oor:name="Types" oor:type="oor:string-list"/></group><group oor:name="FrameLoader"><prop oor:name="UIName" oor:type="xs:string" oor:localized="true"/><prop oor:name="Types" oor:type="oor:string-list"/></group></templates><component><set oor:name="Types" oor:node-type="Type"/><set oor:name="Filters" oor:node-type="Filter"/><set oor:name="DetectServices" oor:node-type="DetectService"/><set oor:name="ContentHandlers" oor:node-type="ContentHandler"/><set oor:name="FrameLoaders" oor:node-type="FrameLoader"/><group oor:name="Defaults"><prop oor:name="FrameLoader" oor:type="xs:string"><value>com.sun.star.comp.office.FrameLoader</value></prop><prop oor:name="ShowAlienFilterWarning" oor:type="xs:boolean"><value>true</value></prop></group></component></oor:component-schema><oor:component-schema oor:name="BaseWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="BasicIDECommands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UserInterface"><set oor:name="Commands" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/><set oor:name="Popups" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/></group></component></oor:component-schema><oor:component-schema oor:name="BasicIDEWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="BibliographyCommands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UserInterface"><set oor:name="Commands" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/><set oor:name="Popups" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/></group></component></oor:component-schema><oor:component-schema oor:name="BibliographyWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="Category" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates><group oor:name="CategoryType"><prop oor:name="Name" oor:type="xs:string" oor:localized="true"/></group></templates><component/></oor:component-schema><oor:component-schema oor:name="ChartCommands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UserInterface"><set oor:name="Commands" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/><set oor:name="Popups" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/></group></component></oor:component-schema><oor:component-schema oor:name="ChartWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="Commands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates><group oor:name="LabelType"><prop oor:name="Label" oor:type="xs:string" oor:localized="true"/><prop oor:name="ContextLabel" oor:type="xs:string" oor:localized="true"/><prop oor:name="Properties" oor:type="xs:int"><value>0</value></prop></group></templates><component/></oor:component-schema><oor:component-schema oor:name="Controller" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates><group oor:name="ControllerType"><prop oor:name="Command" oor:type="xs:string"/><prop oor:name="Module" oor:type="xs:string"/><prop oor:name="Controller" oor:type="xs:string"/><prop oor:name="Value" oor:type="xs:string"><value/></prop></group></templates><component><group oor:name="Registered"><set oor:name="PopupMenu" oor:node-type="ControllerType"/><set oor:name="ToolBar" oor:node-type="ControllerType"/><set oor:name="StatusBar" oor:node-type="ControllerType"/></group></component></oor:component-schema><oor:component-schema oor:name="DbBrowserWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="DbQueryWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="DbRelationWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="DbTableDataWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="DbTableWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="DbuCommands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UserInterface"><set oor:name="Commands" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/><set oor:name="Popups" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/></group></component></oor:component-schema><oor:component-schema oor:name="DrawImpressCommands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UserInterface"><set oor:name="Commands" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/><set oor:name="Popups" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/></group></component></oor:component-schema><oor:component-schema oor:name="Factories" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates><group oor:name="FactoryType"><prop oor:name="Type" oor:type="xs:string"/><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="Module" oor:type="xs:string"/><prop oor:name="FactoryImplementation" oor:type="xs:string"/></group></templates><component><group oor:name="Registered"><set oor:name="UIElementFactories" oor:node-type="FactoryType"/></group></component></oor:component-schema><oor:component-schema oor:name="GenericCategories" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="Commands"><set oor:name="Categories" oor:node-type="CategoryType" oor:component="org.openoffice.Office.UI.Category"/></group></component></oor:component-schema><oor:component-schema oor:name="GenericCommands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UserInterface"><set oor:name="Commands" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/><set oor:name="Popups" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/></group></component></oor:component-schema><oor:component-schema oor:name="GlobalSettings" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates><group oor:name="GlobalWindowState"><prop oor:name="Locked" oor:type="xs:boolean"/><prop oor:name="Docked" oor:type="xs:boolean"/></group></templates><component><group oor:name="Toolbars"><prop oor:name="StatesEnabled" oor:type="xs:boolean"/><node-ref oor:name="States" oor:node-type="GlobalWindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="StartModuleCommands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UserInterface"><set oor:name="Commands" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/><set oor:name="Popups" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/></group></component></oor:component-schema><oor:component-schema oor:name="StartModuleWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="WindowContentFactories" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates><group oor:name="FactoryType"><prop oor:name="Type" oor:type="xs:string"/><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="Module" oor:type="xs:string"/><prop oor:name="FactoryImplementation" oor:type="xs:string"/></group></templates><component><group oor:name="Registered"><set oor:name="ContentFactories" oor:node-type="FactoryType"/></group></component></oor:component-schema><oor:component-schema oor:name="WindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates><group oor:name="WindowStateType"><prop oor:name="Locked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Visible" oor:type="xs:boolean"/><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DockingArea" oor:type="xs:int"/><prop oor:name="DockPos" oor:type="xs:string"/><prop oor:name="DockSize" oor:type="xs:string"/><prop oor:name="Pos" oor:type="xs:string"/><prop oor:name="Size" oor:type="xs:string"/><prop oor:name="UIName" oor:type="xs:string" oor:localized="true"/><prop oor:name="ImageURL" oor:type="xs:string"><value/></prop><prop oor:name="HelpURL" oor:type="xs:string"><value/></prop><prop oor:name="InternalState" oor:type="xs:int"/><prop oor:name="Style" oor:type="xs:int"><value>0</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SoftClose" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ContextActive" oor:type="xs:boolean"><value>true</value></prop></group></templates><component/></oor:component-schema><oor:component-schema oor:name="UI" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="FilterClass"><prop oor:name="DisplayName" oor:type="xs:string" oor:localized="true" oor:nillable="false"/><prop oor:name="Filters" oor:type="oor:string-list"/></group><group oor:name="ColorScheme"><group oor:name="DocColor"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="DocBoundaries"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="AppBackground"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="ObjectBoundaries"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="TableBoundaries"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="FontColor"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="Links"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="LinksVisited"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="Spell"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="SmartTags"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="Shadow"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="WriterTextGrid"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="WriterFieldShadings"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="WriterIdxShadings"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="WriterDirectCursor"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="WriterScriptIndicator"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="WriterSectionBoundaries"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="WriterHeaderFooterMark"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="WriterPageBreaks"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="HTMLSGML"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="HTMLComment"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="HTMLKeyword"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="HTMLUnknown"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="CalcGrid"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="CalcPageBreak"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="CalcPageBreakManual"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="CalcPageBreakAutomatic"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="CalcDetective"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="CalcDetectiveError"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="CalcReference"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="CalcNotesBackground"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="DrawGrid"><prop oor:name="IsVisible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="BASICIdentifier"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="BASICComment"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="BASICNumber"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="BASICString"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="BASICOperator"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="BASICKeyword"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="BASICError"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="SQLIdentifier"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="SQLNumber"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="SQLString"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="SQLOperator"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="SQLKeyword"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="SQLParameter"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="SQLComment"><prop oor:name="Color" oor:type="xs:int"/></group></group></templates><component><group oor:name="FilterClassification"><group oor:name="GlobalFilters"><prop oor:name="Order" oor:type="oor:string-list"><value oor:separator=";">com.sun.star.text.TextDocument;com.sun.star.sheet.SpreadsheetDocument;com.sun.star.presentation.PresentationDocument;com.sun.star.drawing.DrawingDocument;com.sun.star.text.WebDocument;com.sun.star.text.GlobalDocument;com.sun.star.formula.FormularProperties;com.sun.star.sdb.OfficeDatabaseDocument</value></prop><set oor:name="Classes" oor:node-type="FilterClass"/></group><group oor:name="LocalFilters"><set oor:name="Classes" oor:node-type="FilterClass"/></group></group><group oor:name="ColorScheme"><prop oor:name="CurrentColorScheme" oor:type="xs:string"/><set oor:name="ColorSchemes" oor:node-type="ColorScheme"/></group><group oor:name="FilePicker"><prop oor:name="FillAsynchronously" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Timeout"><prop oor:name="Min" oor:type="xs:int"><value>1000</value></prop><prop oor:name="Max" oor:type="xs:int"><value>30000</value></prop></group></group></component></oor:component-schema><oor:component-schema oor:name="Views" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="DialogType"><prop oor:name="WindowState" oor:type="xs:string"/><group oor:name="UserData" oor:extensible="true"/></group><group oor:name="TabDialogType"><prop oor:name="WindowState" oor:type="xs:string"/><prop oor:name="PageID" oor:type="xs:int"/><group oor:name="UserData" oor:extensible="true"/></group><group oor:name="TabPageType"><prop oor:name="WindowState" oor:type="xs:string"/><group oor:name="UserData" oor:extensible="true"/></group><group oor:name="WindowType"><prop oor:name="WindowState" oor:type="xs:string"/><prop oor:name="Visible" oor:type="xs:boolean"/><group oor:name="UserData" oor:extensible="true"/></group></templates><component><set oor:name="Dialogs" oor:node-type="DialogType"/><set oor:name="TabDialogs" oor:node-type="TabDialogType"/><set oor:name="TabPages" oor:node-type="TabPageType"/><set oor:name="Windows" oor:node-type="WindowType"/></component></oor:component-schema><oor:component-schema oor:name="WebWizard" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="WWizLayout"><prop oor:name="Index" oor:type="xs:int"/><prop oor:localized="true" oor:name="Name" oor:type="xs:string"/><prop oor:name="FSName" oor:type="xs:string"/></group><group oor:name="WWizExporter"><prop oor:localized="true" oor:name="Name" oor:type="xs:string"/><prop oor:name="Index" oor:type="xs:int"/><prop oor:name="ExporterClass" oor:type="xs:string"/><prop oor:name="OwnDirectory" oor:type="xs:boolean"/><prop oor:name="SupportsFilename" oor:type="xs:boolean"/><prop oor:name="DefaultFilename" oor:type="xs:string"/><prop oor:name="Extension" oor:type="xs:string"/><prop oor:name="SupportedMimeTypes" oor:type="xs:string"/><prop oor:name="Icon" oor:type="xs:string"/><prop oor:name="TargetType" oor:type="xs:string"/><prop oor:name="PageType" oor:type="xs:int"/><prop oor:name="Binary" oor:type="xs:boolean"/><set oor:name="Arguments" oor:node-type="WWizArgument"/></group><group oor:name="WWizArgument"><prop oor:name="Value" oor:type="xs:string"/></group><group oor:name="WWizStyle"><prop oor:name="Index" oor:type="xs:int"/><prop oor:localized="true" oor:name="Name" oor:type="xs:string"/><prop oor:name="CssHref" oor:type="xs:string"/><prop oor:name="BackgroundImage" oor:type="xs:string"/><prop oor:name="IconSet" oor:type="xs:string"/></group><group oor:name="WWizImage"><prop oor:name="Href" oor:type="xs:string"/></group><group oor:name="WWizIconSet"><prop oor:name="Index" oor:type="xs:int"/><prop oor:localized="true" oor:name="Name" oor:type="xs:string"/><prop oor:name="FNPrefix" oor:type="xs:string"/><prop oor:name="FNPostfix" oor:type="xs:string"/></group><group oor:name="WWizDocument"><prop oor:name="Index" oor:type="xs:int"/><prop oor:name="Title" oor:type="xs:string"/><prop oor:name="Description" oor:type="xs:string"/><prop oor:name="URL" oor:type="xs:string"/><prop oor:name="Author" oor:type="xs:string"/><prop oor:name="Exporter" oor:type="xs:string"/><prop oor:name="ApplyWebStyle" oor:type="xs:boolean"/></group><group oor:name="WWizContent"><prop oor:name="Index" oor:type="xs:int"/><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="Description" oor:type="xs:string"/><set oor:name="Contents" oor:node-type="WWizContent"/><set oor:name="Documents" oor:node-type="WWizDocument"/></group><group oor:name="WWizSession"><prop oor:name="Index" oor:type="xs:int"/><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="InDirectory" oor:type="xs:string"/><prop oor:name="OutDirectory" oor:type="xs:string"/><node-ref oor:name="Content" oor:node-type="WWizContent"/><group oor:name="Design"><prop oor:name="Layout" oor:type="xs:string"/><prop oor:name="Style" oor:type="xs:string"/><prop oor:name="BackgroundImage" oor:type="xs:string"/><prop oor:name="IconSet" oor:type="xs:string"/><prop oor:name="OptimizeDisplaySize" oor:type="xs:int"/><prop oor:name="DisplayTitle" oor:type="xs:boolean"/><prop oor:name="DisplayDescription" oor:type="xs:boolean"/><prop oor:name="DisplayAuthor" oor:type="xs:boolean"/><prop oor:name="DisplayCreateDate" oor:type="xs:boolean"/><prop oor:name="DisplayUpdateDate" oor:type="xs:boolean"/><prop oor:name="DisplayFilename" oor:type="xs:boolean"/><prop oor:name="DisplayFileFormat" oor:type="xs:boolean"/><prop oor:name="DisplayFormatIcon" oor:type="xs:boolean"/><prop oor:name="DisplayPages" oor:type="xs:boolean"/><prop oor:name="DisplaySize" oor:type="xs:boolean"/></group><group oor:name="GeneralInfo"><prop oor:name="Title" oor:type="xs:string"/><prop oor:name="Description" oor:type="xs:string"/><prop oor:name="Icon" oor:type="xs:string"/><prop oor:name="Author" oor:type="xs:string"/><prop oor:name="Keywords" oor:type="xs:string"/><prop oor:name="CreationDate" oor:type="xs:int"/><prop oor:name="UpdateDate" oor:type="xs:int"/><prop oor:name="RevisitAfter" oor:type="xs:int"/><prop oor:name="Email" oor:type="xs:string"/><prop oor:name="Copyright" oor:type="xs:string"/></group><set oor:name="Publishing" oor:node-type="WWizPublish"/></group><group oor:name="WWizPublish"><prop oor:name="Publish" oor:type="xs:boolean"/><prop oor:name="URL" oor:type="xs:string"/><prop oor:name="Username" oor:type="xs:string"/></group><group oor:name="WWizFilter"><prop oor:name="Index" oor:type="xs:int"/><prop oor:localized="true" oor:name="Name" oor:type="xs:string"/><prop oor:name="Filter" oor:type="xs:string"/></group></templates><component><group oor:name="WebWizard"><prop oor:name="WorkDir" oor:type="xs:string"/><prop oor:name="LastSavedSession" oor:type="xs:string"/><set oor:name="Exporters" oor:node-type="WWizExporter"/><set oor:name="Layouts" oor:node-type="WWizLayout"/><set oor:name="Styles" oor:node-type="WWizStyle"/><set oor:name="BackgroundImages" oor:node-type="WWizImage"/><set oor:name="IconSets" oor:node-type="WWizIconSet"/><set oor:name="SavedSessions" oor:node-type="WWizSession"/><set oor:name="Filters" oor:node-type="WWizFilter"/><node-ref oor:name="DefaultSession" oor:node-type="WWizSession"/></group></component></oor:component-schema><oor:component-schema oor:name="Writer" oor:package="org.openoffice.Office" xml:lang="en-US"><templates><group oor:name="AgendaType"><prop oor:name="Author" oor:type="xs:string"/><prop oor:name="Topic" oor:type="xs:string"/><prop oor:name="Duration" oor:type="xs:int"/></group><group oor:name="StyleType"><prop oor:name="PreferredStyle" oor:type="xs:int"/></group><group oor:name="SizeType"><prop oor:name="Width" oor:type="xs:int"/><prop oor:name="Height" oor:type="xs:int"/></group><group oor:name="PositionType"><prop oor:name="Left" oor:type="xs:int"/><prop oor:name="Right" oor:type="xs:int"/><prop oor:name="Top" oor:type="xs:int"/><prop oor:name="Bottom" oor:type="xs:int"/></group><group oor:name="AlignmentType"><prop oor:name="Position" oor:type="xs:int"/></group><group oor:name="TextElementType"><prop oor:name="Visible" oor:type="xs:boolean"/><prop oor:name="Content" oor:type="xs:string" oor:localized="true"/></group><group oor:name="IntElementType"><prop oor:name="Visible" oor:type="xs:boolean"/><prop oor:name="Content" oor:type="xs:int"/></group><group oor:name="FileType"><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="Filter" oor:type="xs:string"/><prop oor:name="AsLink" oor:type="xs:boolean"/></group><group oor:name="PositionXYType"><prop oor:name="X" oor:type="xs:int"/><prop oor:name="Y" oor:type="xs:int"/></group><group oor:name="DataSetType"><prop oor:name="DataSource" oor:type="xs:string"/><prop oor:name="Command" oor:type="xs:string"/><prop oor:name="CommandType" oor:type="xs:short"/><prop oor:name="ColumnsToText" oor:type="xs:string"/><prop oor:name="ColumnsToTable" oor:type="xs:string"/><prop oor:name="ParaStyle" oor:type="xs:string"/><prop oor:name="TableAutoFormat" oor:type="xs:string"/><prop oor:name="IsTable" oor:type="xs:boolean"/><prop oor:name="IsField" oor:type="xs:boolean"/><prop oor:name="IsHeadlineOn" oor:type="xs:boolean"/><prop oor:name="IsEmptyHeadline" oor:type="xs:boolean"/><set oor:name="ColumnSet" oor:node-type="ColumnSetType"/></group><group oor:name="ColumnSetType"><prop oor:name="ColumnName" oor:type="xs:string"/><prop oor:name="ColumnIndex" oor:type="xs:int"/><prop oor:name="IsNumberFormat" oor:type="xs:boolean"/><prop oor:name="IsNumberFormatFromDataBase" oor:type="xs:boolean"/><prop oor:name="NumberFormat" oor:type="xs:string"/><prop oor:name="NumberFormatLocale" oor:type="xs:string"/></group><group oor:name="_DataSource"><prop oor:name="DataSourceName" oor:type="xs:string"/><prop oor:name="DataTableName" oor:type="xs:string"/><prop oor:name="DataCommandType" oor:type="xs:short"><value>0</value></prop></group><group oor:name="AddressDataAssignment"><prop oor:name="DBColumnAssignments" oor:type="oor:string-list"/><node-ref oor:name="DataSource" oor:node-type="_DataSource"/></group><group oor:name="BusinessLetterElementLocation"><prop oor:type="xs:boolean" oor:name="Display"/><prop oor:type="xs:double" oor:name="Width"/><prop oor:type="xs:double" oor:name="Height"/><prop oor:type="xs:double" oor:name="X"/><prop oor:type="xs:double" oor:name="Y"/></group><group oor:name="LetterControls"><prop oor:type="xs:int" oor:name="Style"/><prop oor:type="xs:boolean" oor:name="BusinessPaper"/><prop oor:type="xs:boolean" oor:name="PaperCompanyAddressReceiverField"/><prop oor:type="xs:boolean" oor:name="PaperFooter"/><prop oor:type="xs:double" oor:name="PaperFooterHeight"/><prop oor:type="xs:int" oor:name="Norm"/><prop oor:type="xs:boolean" oor:name="PrintCompanyLogo"/><prop oor:type="xs:boolean" oor:name="PrintCompanyAddressReceiverField"/><prop oor:type="xs:boolean" oor:name="PrintLetterSigns"/><prop oor:type="xs:boolean" oor:name="PrintSubjectLine"/><prop oor:type="xs:boolean" oor:name="PrintSalutation"/><prop oor:type="xs:boolean" oor:name="PrintBendMarks"/><prop oor:type="xs:boolean" oor:name="PrintGreeting"/><prop oor:type="xs:boolean" oor:name="PrintFooter"/><prop oor:type="xs:string" oor:name="Salutation"/><prop oor:type="xs:string" oor:name="Greeting"/><prop oor:type="xs:int" oor:name="SenderAddressType"/><prop oor:type="xs:string" oor:name="SenderCompanyName"/><prop oor:type="xs:string" oor:name="SenderStreet"/><prop oor:type="xs:string" oor:name="SenderPostCode"/><prop oor:type="xs:string" oor:name="SenderState"/><prop oor:type="xs:string" oor:name="SenderCity"/><prop oor:type="xs:int" oor:name="ReceiverAddressType"/><prop oor:type="xs:string" oor:name="Footer"/><prop oor:type="xs:boolean" oor:name="FooterOnlySecondPage"/><prop oor:type="xs:boolean" oor:name="FooterPageNumbers"/><prop oor:type="xs:int" oor:name="CreationType"/><prop oor:type="xs:string" oor:name="TemplateName"/><prop oor:type="xs:string" oor:name="TemplatePath"/><node-ref oor:node-type="BusinessLetterElementLocation" oor:name="CompanyLogo"/><node-ref oor:node-type="BusinessLetterElementLocation" oor:name="CompanyAddress"/></group><group oor:name="FaxControls"><prop oor:type="xs:int" oor:name="Style"/><prop oor:type="xs:boolean" oor:name="PrintCompanyLogo"/><prop oor:type="xs:boolean" oor:name="PrintDate"/><prop oor:type="xs:boolean" oor:name="PrintCommunicationType"/><prop oor:type="xs:boolean" oor:name="PrintSubjectLine"/><prop oor:type="xs:boolean" oor:name="PrintSalutation"/><prop oor:type="xs:boolean" oor:name="PrintGreeting"/><prop oor:type="xs:boolean" oor:name="PrintFooter"/><prop oor:type="xs:string" oor:name="CommunicationType"/><prop oor:type="xs:string" oor:name="Salutation"/><prop oor:type="xs:string" oor:name="Greeting"/><prop oor:type="xs:int" oor:name="SenderAddressType"/><prop oor:type="xs:string" oor:name="SenderCompanyName"/><prop oor:type="xs:string" oor:name="SenderStreet"/><prop oor:type="xs:string" oor:name="SenderPostCode"/><prop oor:type="xs:string" oor:name="SenderState"/><prop oor:type="xs:string" oor:name="SenderCity"/><prop oor:type="xs:string" oor:name="SenderFax"/><prop oor:type="xs:int" oor:name="ReceiverAddressType"/><prop oor:type="xs:string" oor:name="Footer"/><prop oor:type="xs:boolean" oor:name="FooterOnlySecondPage"/><prop oor:type="xs:boolean" oor:name="FooterPageNumbers"/><prop oor:type="xs:int" oor:name="CreationType"/><prop oor:type="xs:string" oor:name="TemplateName"/><prop oor:type="xs:string" oor:name="TemplatePath"/></group><group oor:name="AgendaWizardTopic"><prop oor:name="Index" oor:type="xs:int"/><prop oor:name="Topic" oor:type="xs:string"/><prop oor:name="Responsible" oor:type="xs:string"/><prop oor:name="Time" oor:type="xs:string"/></group></templates><component><group oor:name="GlobalTemplateList"><prop oor:name="Paths" oor:type="oor:string-list"><value oor:separator=";"/></prop></group><group oor:name="MailMergeWizard"><prop oor:name="OutputToLetter" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IncludeCountry" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ExcludeCountry" oor:type="xs:string"><value/></prop><prop oor:name="SavedDocuments" oor:type="oor:string-list"/><prop oor:name="AddressBlockSettings" oor:type="oor:string-list"><value oor:separator=";">&lt;0&gt;\n&lt;1&gt; &lt;2&gt;\n&lt;4&gt;\n&lt;8&gt; &lt;6&gt;;&lt;0&gt;\n&lt;1&gt; &lt;2&gt;\n&lt;4&gt;\n&lt;8&gt; &lt;6&gt;\n&lt;9&gt;;&lt;3&gt;\n&lt;1&gt; &lt;2&gt;\n&lt;4&gt;\n&lt;8&gt; &lt;6&gt;;&lt;3&gt;\n&lt;1&gt; &lt;2&gt;\n&lt;4&gt;\n&lt;8&gt; &lt;6&gt;\n&lt;9&gt;</value></prop><prop oor:name="IsAddressBlock" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="CurrentAddressBlock" oor:type="xs:int"><value>0</value></prop><prop oor:name="IsHideEmptyParagraphs" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="IsGreetingLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsEMailGreetingLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsIndividualGreetingLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsEMailIndividualGreetingLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="FemaleGreetingLines" oor:type="oor:string-list" oor:localized="true"/><prop oor:name="MaleGreetingLines" oor:type="oor:string-list" oor:localized="true"/><prop oor:name="NeutralGreetingLines" oor:type="oor:string-list" oor:localized="true"/><prop oor:name="CurrentFemaleGreeting" oor:type="xs:int"/><prop oor:name="CurrentMaleGreeting" oor:type="xs:int"/><prop oor:name="CurrentNeutralGreeting" oor:type="xs:int"/><prop oor:name="FemaleGenderValue" oor:type="xs:string"/><prop oor:name="MailDisplayName" oor:type="xs:string"/><prop oor:name="MailAddress" oor:type="xs:string"/><prop oor:name="IsMailReplyTo" oor:type="xs:boolean"/><prop oor:name="MailReplyTo" oor:type="xs:string"/><prop oor:name="MailServer" oor:type="xs:string"/><prop oor:name="MailPort" oor:type="xs:short"/><prop oor:name="IsSecureConnection" oor:type="xs:boolean"/><prop oor:name="IsAuthentication" oor:type="xs:boolean"/><prop oor:name="MailUserName" oor:type="xs:string"/><prop oor:name="MailPassword" oor:type="xs:string"/><prop oor:name="IsSMPTAfterPOP" oor:type="xs:boolean"/><prop oor:name="InServerName" oor:type="xs:string"/><prop oor:name="InServerPort" oor:type="xs:short"/><prop oor:name="InServerIsPOP" oor:type="xs:boolean"/><prop oor:name="InServerUserName" oor:type="xs:string"/><prop oor:name="InServerPassword" oor:type="xs:string"/><prop oor:name="Filter" oor:type="xs:string"/><prop oor:name="EMailSupported" oor:type="xs:boolean"/><set oor:name="AddressDataAssignments" oor:node-type="AddressDataAssignment"/><node-ref oor:name="DataSource" oor:node-type="_DataSource"/></group><group oor:name="Content"><group oor:name="Display"><prop oor:name="GraphicObject" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Table" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="DrawingControl" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="FieldCode" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Note" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PreventTips" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="NonprintingCharacter"><prop oor:name="MetaCharacters" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ParagraphEnd" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="OptionalHyphen" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Space" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ProtectedSpace" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Tab" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Break" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HiddenText" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HiddenParagraph" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HiddenCharacter" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Update"><prop oor:name="Link" oor:type="xs:int"><value>1</value></prop><prop oor:name="Field" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Chart" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Layout"><group oor:name="Line"><prop oor:name="Guide" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SimpleControlPoint" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="LargeControlPoint" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Window"><prop oor:name="HorizontalScroll" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="VerticalScroll" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ShowRulers" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HorizontalRuler" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HorizontalRulerUnit" oor:type="xs:int"/><prop oor:name="VerticalRuler" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="IsVerticalRulerRight" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="VerticalRulerUnit" oor:type="xs:int"/><prop oor:name="SmoothScroll" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Other"><prop oor:name="IsAlignMathObjectsToBaseline" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="MeasureUnit" oor:type="xs:int"/><prop oor:name="TabStop" oor:type="xs:int"><value>1250</value></prop><prop oor:name="IsSquaredPageMode" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ApplyCharUnit" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Zoom"><prop oor:name="Type" oor:type="xs:int"><value>0</value></prop><prop oor:name="Value" oor:type="xs:int"><value>100</value></prop></group><group oor:name="ViewLayout"><prop oor:name="Columns" oor:type="xs:int"><value>0</value></prop><prop oor:name="BookMode" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="Grid"><group oor:name="Option"><prop oor:name="SnapToGrid" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="VisibleGrid" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Synchronize" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Resolution"><prop oor:name="XAxis" oor:type="xs:int"><value>1000</value></prop><prop oor:name="YAxis" oor:type="xs:int"><value>1000</value></prop></group><group oor:name="Subdivision"><prop oor:name="XAxis" oor:type="xs:int"><value>1</value></prop><prop oor:name="YAxis" oor:type="xs:int"><value>1</value></prop></group></group><group oor:name="DefaultFont"><prop oor:name="Standard" oor:type="xs:string"/><prop oor:name="StandardHeight" oor:type="xs:int"/><prop oor:name="Heading" oor:type="xs:string"/><prop oor:name="HeadingHeight" oor:type="xs:int"/><prop oor:name="List" oor:type="xs:string"/><prop oor:name="ListHeight" oor:type="xs:int"/><prop oor:name="Caption" oor:type="xs:string"/><prop oor:name="CaptionHeight" oor:type="xs:int"/><prop oor:name="Index" oor:type="xs:string"/><prop oor:name="IndexHeight" oor:type="xs:int"/><prop oor:name="Document" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="DefaultFontCJK"><prop oor:name="Standard" oor:type="xs:string"/><prop oor:name="StandardHeight" oor:type="xs:int"/><prop oor:name="Heading" oor:type="xs:string"/><prop oor:name="HeadingHeight" oor:type="xs:int"/><prop oor:name="List" oor:type="xs:string"/><prop oor:name="ListHeight" oor:type="xs:int"/><prop oor:name="Caption" oor:type="xs:string"/><prop oor:name="CaptionHeight" oor:type="xs:int"/><prop oor:name="Index" oor:type="xs:string"/><prop oor:name="IndexHeight" oor:type="xs:int"/><prop oor:name="Document" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="DefaultFontCTL"><prop oor:name="Standard" oor:type="xs:string"/><prop oor:name="StandardHeight" oor:type="xs:int"/><prop oor:name="Heading" oor:type="xs:string"/><prop oor:name="HeadingHeight" oor:type="xs:int"/><prop oor:name="List" oor:type="xs:string"/><prop oor:name="ListHeight" oor:type="xs:int"/><prop oor:name="Caption" oor:type="xs:string"/><prop oor:name="CaptionHeight" oor:type="xs:int"/><prop oor:name="Index" oor:type="xs:string"/><prop oor:name="IndexHeight" oor:type="xs:int"/><prop oor:name="Document" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Print"><group oor:name="Content"><prop oor:name="Graphic" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Table" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Drawing" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Control" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Background" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintBlack" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PrintHiddenText" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PrintPlaceholders" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Note" oor:type="xs:int"><value>0</value></prop></group><group oor:name="Page"><prop oor:name="LeftPage" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="RightPage" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Reversed" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Brochure" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="BrochureRightToLeft" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Output"><prop oor:name="SinglePrintJob" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Fax" oor:type="xs:string"><value/></prop></group><group oor:name="Papertray"><prop oor:name="FromPrinterSetup" oor:type="xs:boolean"><value>false</value></prop></group><prop oor:name="EmptyPages" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Table"><group oor:name="Shift"><prop oor:name="Row" oor:type="xs:int"><value>500</value></prop><prop oor:name="Column" oor:type="xs:int"><value>500</value></prop></group><group oor:name="Insert"><prop oor:name="Row" oor:type="xs:int"><value>500</value></prop><prop oor:name="Column" oor:type="xs:int"><value>2500</value></prop></group><group oor:name="Change"><prop oor:name="Effect" oor:type="xs:int"><value>2</value></prop></group><group oor:name="Input"><prop oor:name="NumberRecognition" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="NumberFormatRecognition" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Alignment" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="Cursor"><group oor:name="DirectCursor"><prop oor:name="UseDirectCursor" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Insert" oor:type="xs:int"><value>2</value></prop></group><group oor:name="Option"><prop oor:name="ProtectedArea" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Revision"><group oor:name="TextDisplay"><group oor:name="Insert"><prop oor:name="Attribute" oor:type="xs:int"><value>3</value></prop><prop oor:name="Color" oor:type="xs:int"><value>-1</value></prop></group><group oor:name="Delete"><prop oor:name="Attribute" oor:type="xs:int"><value>3</value></prop><prop oor:name="Color" oor:type="xs:int"><value>-1</value></prop></group><group oor:name="ChangedAttribute"><prop oor:name="Attribute" oor:type="xs:int"><value>1</value></prop><prop oor:name="Color" oor:type="xs:int"><value>-1</value></prop></group></group><group oor:name="LinesChanged"><prop oor:name="Mark" oor:type="xs:int"><value>3</value></prop><prop oor:name="Color" oor:type="xs:int"><value>0</value></prop></group></group><group oor:name="Insert"><group oor:name="Caption"><prop oor:name="CaptionOrderNumberingFirst" oor:type="xs:boolean"/><prop oor:name="Automatic" oor:type="xs:boolean"><value>false</value></prop><group oor:name="WriterObject"><group oor:name="Table"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Settings"><prop oor:name="Category" oor:type="xs:string" oor:localized="true"/><prop oor:name="Numbering" oor:type="xs:int"><value>4</value></prop><prop oor:name="NumberingSeparator" oor:type="xs:string" oor:localized="true"><value>. </value></prop><prop oor:name="CaptionText" oor:type="xs:string" oor:localized="true"/><prop oor:name="Position" oor:type="xs:int"><value>1</value></prop><prop oor:name="Level" oor:type="xs:int"><value>0</value></prop><prop oor:name="Delimiter" oor:type="xs:string"><value>.</value></prop><prop oor:name="CharacterStyle" oor:type="xs:string"/></group></group><group oor:name="Frame"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Settings"><prop oor:name="Category" oor:type="xs:string" oor:localized="true"/><prop oor:name="Numbering" oor:type="xs:int"><value>4</value></prop><prop oor:name="NumberingSeparator" oor:type="xs:string" oor:localized="true"><value>. </value></prop><prop oor:name="CaptionText" oor:type="xs:string" oor:localized="true"/><prop oor:name="Position" oor:type="xs:int"><value>1</value></prop><prop oor:name="Level" oor:type="xs:int"><value>0</value></prop><prop oor:name="Delimiter" oor:type="xs:string"><value>.</value></prop><prop oor:name="CharacterStyle" oor:type="xs:string"/></group></group><group oor:name="Graphic"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Settings"><prop oor:name="Category" oor:type="xs:string" oor:localized="true"/><prop oor:name="Numbering" oor:type="xs:int"><value>4</value></prop><prop oor:name="NumberingSeparator" oor:type="xs:string" oor:localized="true"><value>. </value></prop><prop oor:name="CaptionText" oor:type="xs:string" oor:localized="true"/><prop oor:name="Level" oor:type="xs:int"><value>0</value></prop><prop oor:name="Delimiter" oor:type="xs:string"><value>.</value></prop><prop oor:name="Position" oor:type="xs:int"><value>1</value></prop><prop oor:name="CharacterStyle" oor:type="xs:string"/><prop oor:name="ApplyAttributes" oor:type="xs:boolean"/></group></group></group><group oor:name="OfficeObject"><group oor:name="Calc"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Settings"><prop oor:name="Category" oor:type="xs:string" oor:localized="true"/><prop oor:name="Numbering" oor:type="xs:int"><value>4</value></prop><prop oor:name="NumberingSeparator" oor:type="xs:string" oor:localized="true"><value>. </value></prop><prop oor:name="CaptionText" oor:type="xs:string" oor:localized="true"/><prop oor:name="Position" oor:type="xs:int"><value>1</value></prop><prop oor:name="Level" oor:type="xs:int"><value>0</value></prop><prop oor:name="Delimiter" oor:type="xs:string"><value>.</value></prop><prop oor:name="CharacterStyle" oor:type="xs:string"/><prop oor:name="ApplyAttributes" oor:type="xs:boolean"/></group></group><group oor:name="Draw"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Settings"><prop oor:name="Category" oor:type="xs:string" oor:localized="true"/><prop oor:name="Numbering" oor:type="xs:int"><value>4</value></prop><prop oor:name="NumberingSeparator" oor:type="xs:string" oor:localized="true"><value>. </value></prop><prop oor:name="CaptionText" oor:type="xs:string" oor:localized="true"/><prop oor:name="Position" oor:type="xs:int"><value>1</value></prop><prop oor:name="Level" oor:type="xs:int"><value>0</value></prop><prop oor:name="Delimiter" oor:type="xs:string"><value>.</value></prop><prop oor:name="CharacterStyle" oor:type="xs:string"/><prop oor:name="ApplyAttributes" oor:type="xs:boolean"/></group></group><group oor:name="Chart"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Settings"><prop oor:name="Category" oor:type="xs:string" oor:localized="true"/><prop oor:name="Numbering" oor:type="xs:int"><value>4</value></prop><prop oor:name="NumberingSeparator" oor:type="xs:string" oor:localized="true"><value>. </value></prop><prop oor:name="CaptionText" oor:type="xs:string" oor:localized="true"/><prop oor:name="Position" oor:type="xs:int"><value>1</value></prop><prop oor:name="Level" oor:type="xs:int"><value>0</value></prop><prop oor:name="Delimiter" oor:type="xs:string"><value>.</value></prop><prop oor:name="CharacterStyle" oor:type="xs:string"/><prop oor:name="ApplyAttributes" oor:type="xs:boolean"/></group></group><group oor:name="Image"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Settings"><prop oor:name="Category" oor:type="xs:string" oor:localized="true"/><prop oor:name="Numbering" oor:type="xs:int"><value>4</value></prop><prop oor:name="NumberingSeparator" oor:type="xs:string" oor:localized="true"><value>. </value></prop><prop oor:name="CaptionText" oor:type="xs:string" oor:localized="true"/><prop oor:name="Position" oor:type="xs:int"><value>1</value></prop><prop oor:name="Level" oor:type="xs:int"><value>0</value></prop><prop oor:name="Delimiter" oor:type="xs:string"><value>.</value></prop><prop oor:name="CharacterStyle" oor:type="xs:string"/><prop oor:name="ApplyAttributes" oor:type="xs:boolean"/></group></group><group oor:name="Formula"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Settings"><prop oor:name="Category" oor:type="xs:string" oor:localized="true"/><prop oor:name="Numbering" oor:type="xs:int"><value>4</value></prop><prop oor:name="NumberingSeparator" oor:type="xs:string" oor:localized="true"><value>. </value></prop><prop oor:name="CaptionText" oor:type="xs:string" oor:localized="true"/><prop oor:name="Position" oor:type="xs:int"><value>1</value></prop><prop oor:name="Level" oor:type="xs:int"><value>0</value></prop><prop oor:name="Delimiter" oor:type="xs:string"><value>.</value></prop><prop oor:name="CharacterStyle" oor:type="xs:string"/><prop oor:name="ApplyAttributes" oor:type="xs:boolean"/></group></group><group oor:name="Impress"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Settings"><prop oor:name="Category" oor:type="xs:string" oor:localized="true"/><prop oor:name="Numbering" oor:type="xs:int"><value>4</value></prop><prop oor:name="NumberingSeparator" oor:type="xs:string" oor:localized="true"><value>. </value></prop><prop oor:name="CaptionText" oor:type="xs:string" oor:localized="true"/><prop oor:name="Position" oor:type="xs:int"><value>1</value></prop><prop oor:name="Level" oor:type="xs:int"><value>0</value></prop><prop oor:name="Delimiter" oor:type="xs:string"><value>.</value></prop><prop oor:name="CharacterStyle" oor:type="xs:string"/><prop oor:name="ApplyAttributes" oor:type="xs:boolean"/></group></group><group oor:name="OLEMisc"><prop oor:name="Enable" oor:type="xs:boolean"><value>false</value></prop><group oor:name="Settings"><prop oor:name="Category" oor:type="xs:string" oor:localized="true"/><prop oor:name="Numbering" oor:type="xs:int"><value>4</value></prop><prop oor:name="NumberingSeparator" oor:type="xs:string" oor:localized="true"><value>. </value></prop><prop oor:name="CaptionText" oor:type="xs:string" oor:localized="true"/><prop oor:name="Position" oor:type="xs:int"><value>1</value></prop><prop oor:name="Level" oor:type="xs:int"><value>0</value></prop><prop oor:name="Delimiter" oor:type="xs:string"><value>.</value></prop><prop oor:name="CharacterStyle" oor:type="xs:string"/><prop oor:name="ApplyAttributes" oor:type="xs:boolean"/></group></group></group></group><group oor:name="Table"><prop oor:name="Header" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="RepeatHeader" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Split" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Border" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Compatibility"><group oor:name="MS_Word"><prop oor:name="AddBetween" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="AddToStart" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="AutoFunction"><group oor:name="Text"><prop oor:name="FileLinks" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="InternetLinks" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ShowPreview" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ShowToolTip" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SearchInAllCategories" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Format"><group oor:name="Option"><prop oor:name="UseReplacementTable" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="TwoCapitalsAtStart" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="CapitalAtStartSentence" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ChangeUnderlineWeight" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SetInetAttribute" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ChangeOrdinalNumber" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ChangeDash" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="AddNonBreakingSpace" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="DelEmptyParagraphs" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ReplaceUserStyle" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="CombineParagraphs" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="CombineValue" oor:type="xs:int"><value>50</value></prop><prop oor:name="DelSpacesAtStartEnd" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="DelSpacesBetween" oor:type="xs:boolean"><value>true</value></prop><group oor:name="ChangeToBullets"><prop oor:name="Enable" oor:type="xs:boolean"><value>true</value></prop><group oor:name="SpecialCharacter"><prop oor:name="Char" oor:type="xs:int"><value>8226</value></prop><prop oor:name="Font" oor:type="xs:string"><value>StarSymbol</value></prop><prop oor:name="FontFamily" oor:type="xs:int"><value>0</value></prop><prop oor:name="FontCharset" oor:type="xs:int"><value>10</value></prop><prop oor:name="FontPitch" oor:type="xs:int"><value>2</value></prop></group></group></group><group oor:name="ByInput"><prop oor:name="Enable" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ChangeDash" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ChangeToBorders" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ChangeToTable" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ReplaceStyle" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="DelSpacesAtStartEnd" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="DelSpacesBetween" oor:type="xs:boolean"><value>true</value></prop><group oor:name="ApplyNumbering"><prop oor:name="Enable" oor:type="xs:boolean"><value>true</value></prop><group oor:name="SpecialCharacter"><prop oor:name="Char" oor:type="xs:int"><value>8226</value></prop><prop oor:name="Font" oor:type="xs:string"><value>StarSymbol</value></prop><prop oor:name="FontFamily" oor:type="xs:int"><value>0</value></prop><prop oor:name="FontCharset" oor:type="xs:int"><value>10</value></prop><prop oor:name="FontPitch" oor:type="xs:int"><value>2</value></prop></group></group></group></group><group oor:name="Completion"><prop oor:name="Enable" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="MinWordLen" oor:type="xs:int"><value>10</value></prop><prop oor:name="MaxListLen" oor:type="xs:int"><value>500</value></prop><prop oor:name="CollectWords" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="EndlessList" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="AppendBlank" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ShowAsTip" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="AcceptKey" oor:type="xs:int"><value>1280</value></prop><prop oor:name="KeepList" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Label"><group oor:name="Inscription"><prop oor:name="UseAddress" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Address" oor:type="xs:string"><value/></prop><prop oor:name="Database" oor:type="xs:string"><value/></prop></group><group oor:name="Medium"><prop oor:name="Continous" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Brand" oor:type="xs:string"><value/></prop><prop oor:name="Type" oor:type="xs:string"><value/></prop></group><group oor:name="Format"><prop oor:name="Column" oor:type="xs:int"><value>1</value></prop><prop oor:name="Row" oor:type="xs:int"><value>1</value></prop><prop oor:name="HorizontalDistance" oor:type="xs:int"><value>10000</value></prop><prop oor:name="VerticalDistance" oor:type="xs:int"><value>10000</value></prop><prop oor:name="Width" oor:type="xs:int"><value>10000</value></prop><prop oor:name="Height" oor:type="xs:int"><value>10000</value></prop><prop oor:name="LeftMargin" oor:type="xs:int"><value>0</value></prop><prop oor:name="TopMargin" oor:type="xs:int"><value>0</value></prop></group><group oor:name="Option"><prop oor:name="Synchronize" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Page" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Column" oor:type="xs:int"><value>1</value></prop><prop oor:name="Row" oor:type="xs:int"><value>1</value></prop></group></group><group oor:name="BusinessCard"><group oor:name="Medium"><prop oor:name="Continous" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Brand" oor:type="xs:string"><value/></prop><prop oor:name="Type" oor:type="xs:string"><value/></prop></group><group oor:name="Format"><prop oor:name="Column" oor:type="xs:int"><value>1</value></prop><prop oor:name="Row" oor:type="xs:int"><value>1</value></prop><prop oor:name="HorizontalDistance" oor:type="xs:int"><value>10000</value></prop><prop oor:name="VerticalDistance" oor:type="xs:int"><value>10000</value></prop><prop oor:name="Width" oor:type="xs:int"><value>10000</value></prop><prop oor:name="Height" oor:type="xs:int"><value>10000</value></prop><prop oor:name="LeftMargin" oor:type="xs:int"><value>0</value></prop><prop oor:name="TopMargin" oor:type="xs:int"><value>0</value></prop></group><group oor:name="Option"><prop oor:name="Synchronize" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Page" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Column" oor:type="xs:int"><value>1</value></prop><prop oor:name="Row" oor:type="xs:int"><value>1</value></prop></group><group oor:name="AutoText"><prop oor:name="Group" oor:type="xs:string"/><prop oor:name="Block" oor:type="xs:string"/></group><group oor:name="PrivateAddress"><prop oor:name="FirstName" oor:type="xs:string"/><prop oor:name="Name" oor:type="xs:string"/><prop oor:name="ShortCut" oor:type="xs:string"/><prop oor:name="SecondFirstName" oor:type="xs:string"/><prop oor:name="SecondName" oor:type="xs:string"/><prop oor:name="SecondShortCut" oor:type="xs:string"/><prop oor:name="Street" oor:type="xs:string"/><prop oor:name="Zip" oor:type="xs:string"/><prop oor:name="City" oor:type="xs:string"/><prop oor:name="Country" oor:type="xs:string"/><prop oor:name="State" oor:type="xs:string"/><prop oor:name="Title" oor:type="xs:string"/><prop oor:name="Profession" oor:type="xs:string"/><prop oor:name="Phone" oor:type="xs:string"/><prop oor:name="Mobile" oor:type="xs:string"/><prop oor:name="Fax" oor:type="xs:string"/><prop oor:name="WebAddress" oor:type="xs:string"/><prop oor:name="Email" oor:type="xs:string"/></group><group oor:name="BusinessAddress"><prop oor:name="Company" oor:type="xs:string"/><prop oor:name="CompanyExt" oor:type="xs:string"/><prop oor:name="Slogan" oor:type="xs:string"/><prop oor:name="Street" oor:type="xs:string"/><prop oor:name="Zip" oor:type="xs:string"/><prop oor:name="City" oor:type="xs:string"/><prop oor:name="Country" oor:type="xs:string"/><prop oor:name="State" oor:type="xs:string"/><prop oor:name="Position" oor:type="xs:string"/><prop oor:name="Phone" oor:type="xs:string"/><prop oor:name="Mobile" oor:type="xs:string"/><prop oor:name="Fax" oor:type="xs:string"/><prop oor:name="WebAddress" oor:type="xs:string"/><prop oor:name="Email" oor:type="xs:string"/></group></group><group oor:name="ObjectBar"><group oor:name="Selection"><prop oor:name="Graphic" oor:type="xs:int"><value>-1</value></prop><prop oor:name="Table" oor:type="xs:int"><value>-1</value></prop><prop oor:name="NumberedList" oor:type="xs:int"><value>-1</value></prop><prop oor:name="NumberedList_InTable" oor:type="xs:int"><value>-1</value></prop><prop oor:name="BezierObject" oor:type="xs:int"><value>-1</value></prop></group></group><group oor:name="Notes"><prop oor:name="ShowAnkor" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Navigator"><prop oor:name="ShowListBox" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="GlobalDocMode" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="RootType" oor:type="xs:int"><value>-1</value></prop><prop oor:name="SelectedPosition" oor:type="xs:int"><value>0</value></prop><prop oor:name="OutlineLevel" oor:type="xs:int"><value>10</value></prop><prop oor:name="InsertMode" oor:type="xs:int"><value>0</value></prop><prop oor:name="ActiveBlock" oor:type="xs:int"><value>0</value></prop></group><group oor:name="Envelope"><group oor:name="Inscription"><prop oor:name="Addressee" oor:type="xs:string"><value/></prop><prop oor:name="Sender" oor:type="xs:string"/><prop oor:name="UseSender" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Database" oor:type="xs:string"><value/></prop></group><group oor:name="Format"><prop oor:name="AddresseeFromLeft" oor:type="xs:int"><value>5700</value></prop><prop oor:name="AddresseeFromTop" oor:type="xs:int"><value>5700</value></prop><prop oor:name="SenderFromLeft" oor:type="xs:int"><value>1000</value></prop><prop oor:name="SenderFromTop" oor:type="xs:int"><value>1000</value></prop><prop oor:name="Width" oor:type="xs:int"><value>11400</value></prop><prop oor:name="Height" oor:type="xs:int"><value>22700</value></prop></group><group oor:name="Print"><prop oor:name="Alignment" oor:type="xs:int"><value>0</value></prop><prop oor:name="FromAbove" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Right" oor:type="xs:int"><value>0</value></prop><prop oor:name="Down" oor:type="xs:int"><value>0</value></prop></group></group><group oor:name="InsertData"><set oor:name="DataSet" oor:node-type="DataSetType"/></group><group oor:name="Filter"><group oor:name="Import"><group oor:name="VBA"><prop oor:name="Load" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Executable" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Save" oor:type="xs:boolean"><value>true</value></prop></group></group></group><group oor:name="Numbering"><group oor:name="Graphic"><prop oor:name="KeepRatio" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="DefaultBulletList"><group oor:name="BulletFont"><prop oor:name="FontFamilyname" oor:type="xs:string"/><prop oor:name="FontWeight" oor:type="xs:short"/><prop oor:name="FontItalic" oor:type="xs:short"/></group><prop oor:name="BulletCharLvl1" oor:type="xs:short"/><prop oor:name="BulletCharLvl2" oor:type="xs:short"/><prop oor:name="BulletCharLvl3" oor:type="xs:short"/><prop oor:name="BulletCharLvl4" oor:type="xs:short"/><prop oor:name="BulletCharLvl5" oor:type="xs:short"/><prop oor:name="BulletCharLvl6" oor:type="xs:short"/><prop oor:name="BulletCharLvl7" oor:type="xs:short"/><prop oor:name="BulletCharLvl8" oor:type="xs:short"/><prop oor:name="BulletCharLvl9" oor:type="xs:short"/><prop oor:name="BulletCharLvl10" oor:type="xs:short"/></group><group oor:name="UserInterfaceBehavior"><prop oor:name="ChangeIndentOnTabAtFirstPosOfFirstListItem" oor:type="xs:boolean"/></group></group><group oor:name="Statistics"><group oor:name="WordNumber"><prop oor:name="Delimiter" oor:type="xs:string"><value>() \t\n\xff</value></prop></group></group><group oor:name="Index"><prop oor:name="ShowPreview" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="FormLetter"><group oor:name="PrintOutput"><prop oor:name="SinglePrintJobs" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="AskForMerge" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="MailingOutput"><prop oor:name="Format" oor:type="xs:int"/></group><group oor:name="FileOutput"><prop oor:name="Path" oor:type="xs:string"><value/></prop><group oor:name="FileName"><prop oor:name="Generation" oor:type="xs:boolean"/><prop oor:name="FromDatabaseField" oor:type="xs:string"/><prop oor:name="FromManualSetting" oor:type="xs:string"/></group></group></group><group oor:name="Misc"><prop oor:name="GraphicToGalleryAsLink" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="FilterFlags"><group oor:name="Excel_Lotus"><prop oor:name="MinRow" oor:type="xs:long"><value>0</value></prop><prop oor:name="MaxRow" oor:type="xs:long"><value>0</value></prop><prop oor:name="MinCol" oor:type="xs:long"><value>0</value></prop><prop oor:name="MaxCol" oor:type="xs:long"><value>0</value></prop></group><group oor:name="W4W"><prop oor:name="W4WHD" oor:type="xs:long"><value>0</value></prop><prop oor:name="W4WFT" oor:type="xs:long"><value>0</value></prop><prop oor:name="W4W000" oor:type="xs:long"><value>0</value></prop></group><group oor:name="WinWord"><prop oor:name="WW1F" oor:type="xs:long"><value>0</value></prop><prop oor:name="WW" oor:type="xs:long"><value>0</value></prop><prop oor:name="WW8" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWF" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWFA0" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWFA1" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWFA2" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWFB0" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWFB1" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWFB2" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWFLX" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWFLY" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWFT" oor:type="xs:long"><value>0</value></prop><prop oor:name="WWWR" oor:type="xs:long"><value>0</value></prop><prop oor:name="RegardHindiDigits" oor:type="xs:long"><value>0</value></prop></group><group oor:name="Writer"><prop oor:name="SW3Imp" oor:type="xs:long"><value>0</value></prop></group></group><group oor:name="Wizards"><group oor:name="Letter"><prop oor:type="xs:int" oor:name="LetterType"/><node-ref oor:node-type="LetterControls" oor:name="BusinessLetter"/><node-ref oor:node-type="LetterControls" oor:name="PrivateOfficialLetter"/><node-ref oor:node-type="LetterControls" oor:name="PrivateLetter"/></group><group oor:name="Fax"><prop oor:type="xs:int" oor:name="FaxType"/><node-ref oor:node-type="FaxControls" oor:name="BusinessFax"/><node-ref oor:node-type="FaxControls" oor:name="PrivateFax"/></group><group oor:name="Agenda"><prop oor:type="xs:int" oor:name="AgendaType"/><prop oor:type="xs:boolean" oor:name="IncludeMinutes"/><prop oor:type="xs:string" oor:name="Title"/><prop oor:type="xs:string" oor:name="Date"/><prop oor:type="xs:string" oor:name="Time"/><prop oor:type="xs:string" oor:name="Location"/><prop oor:type="xs:boolean" oor:name="ShowMeetingType"/><prop oor:type="xs:boolean" oor:name="ShowRead"/><prop oor:type="xs:boolean" oor:name="ShowBring"/><prop oor:type="xs:boolean" oor:name="ShowNotes"/><prop oor:type="xs:boolean" oor:name="ShowCalledBy"/><prop oor:type="xs:boolean" oor:name="ShowFacilitator"/><prop oor:type="xs:boolean" oor:name="ShowNotetaker"/><prop oor:type="xs:boolean" oor:name="ShowTimekeeper"/><prop oor:type="xs:boolean" oor:name="ShowAttendees"/><prop oor:type="xs:boolean" oor:name="ShowObservers"/><prop oor:type="xs:boolean" oor:name="ShowResourcePersons"/><prop oor:type="xs:string" oor:name="TemplateName"/><prop oor:type="xs:string" oor:name="TemplatePath"/><prop oor:type="xs:int" oor:name="ProceedMethod"/><set oor:name="Topics" oor:node-type="AgendaWizardTopic"/></group></group></component></oor:component-schema><oor:component-schema oor:name="WriterWeb" oor:package="org.openoffice.Office" xml:lang="en-US"><component><group oor:name="Content"><group oor:name="Display"><prop oor:name="GraphicObject" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Table" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="DrawingControl" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="FieldCode" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Note" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PreventTips" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="NonprintingCharacter"><prop oor:name="MetaCharacters" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ParagraphEnd" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="OptionalHyphen" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Space" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ProtectedSpace" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Break" oor:type="xs:boolean"><value>true</value></prop></group><group oor:name="Highlighting"><prop oor:name="Field" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="Layout"><group oor:name="Line"><prop oor:name="Guide" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="SimpleControlPoint" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="LargeControlPoint" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Window"><prop oor:name="HorizontalScroll" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="VerticalScroll" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ShowRulers" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HorizontalRuler" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HorizontalRulerUnit" oor:type="xs:int"/><prop oor:name="VerticalRuler" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="VerticalRulerUnit" oor:type="xs:int"/><prop oor:name="SmoothScroll" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Other"><prop oor:name="IsAlignMathObjectsToBaseline" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="MeasureUnit" oor:type="xs:int"/></group><group oor:name="Zoom"><prop oor:name="Type" oor:type="xs:int"><value>0</value></prop><prop oor:name="Value" oor:type="xs:int"><value>100</value></prop></group></group><group oor:name="Grid"><group oor:name="Option"><prop oor:name="SnapToGrid" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="VisibleGrid" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Synchronize" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Resolution"><prop oor:name="XAxis" oor:type="xs:int"><value>1000</value></prop><prop oor:name="YAxis" oor:type="xs:int"><value>1000</value></prop></group><group oor:name="Subdivision"><prop oor:name="XAxis" oor:type="xs:int"><value>1</value></prop><prop oor:name="YAxis" oor:type="xs:int"><value>1</value></prop></group></group><group oor:name="Print"><group oor:name="Content"><prop oor:name="Graphic" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Table" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Control" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Background" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintBlack" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Note" oor:type="xs:int"><value>0</value></prop></group><group oor:name="Page"><prop oor:name="Reversed" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Brochure" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="BrochureRightToLeft" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="Output"><prop oor:name="SinglePrintJob" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Fax" oor:type="xs:string"><value/></prop></group><group oor:name="Papertray"><prop oor:name="FromPrinterSetup" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="Table"><group oor:name="Shift"><prop oor:name="Row" oor:type="xs:int"><value>500</value></prop><prop oor:name="Column" oor:type="xs:int"><value>500</value></prop></group><group oor:name="Insert"><prop oor:name="Row" oor:type="xs:int"><value>500</value></prop><prop oor:name="Column" oor:type="xs:int"><value>2500</value></prop></group><group oor:name="Change"><prop oor:name="Effect" oor:type="xs:int"><value>2</value></prop></group><group oor:name="Input"><prop oor:name="NumberRecognition" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NumberFormatRecognition" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Alignment" oor:type="xs:boolean"><value>false</value></prop></group></group><group oor:name="Insert"><group oor:name="Table"><prop oor:name="Header" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="RepeatHeader" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Border" oor:type="xs:boolean"><value>true</value></prop></group></group><group oor:name="ObjectBar"><group oor:name="Selection"><prop oor:name="Graphic" oor:type="xs:int"><value>-1</value></prop><prop oor:name="Table" oor:type="xs:int"><value>-1</value></prop><prop oor:name="NumberedList" oor:type="xs:int"><value>-1</value></prop><prop oor:name="NumberedList_InTable" oor:type="xs:int"><value>-1</value></prop><prop oor:name="BezierObject" oor:type="xs:int"><value>-1</value></prop></group></group><group oor:name="Background"><prop oor:name="Color" oor:type="xs:int"/></group><group oor:name="Gallery"><prop oor:name="AddGraphic" oor:type="xs:boolean"><value>true</value></prop></group></component></oor:component-schema><oor:component-schema oor:name="Setup" oor:package="org.openoffice" xml:lang="en-US"><templates><group oor:name="InstalledLocale"><prop oor:name="Origin" oor:type="xs:string"/></group><group oor:name="MigrationStep"><prop oor:name="MigrationService" oor:type="xs:string"/><prop oor:name="IncludedFiles" oor:type="oor:string-list"/><prop oor:name="ExcludedFiles" oor:type="oor:string-list"/><prop oor:name="IncludedNodes" oor:type="oor:string-list"/><prop oor:name="ExcludedNodes" oor:type="oor:string-list"/><prop oor:name="IncludedExtensions" oor:type="oor:string-list"/><prop oor:name="ExcludedExtensions" oor:type="oor:string-list"/></group><group oor:name="MigrateVersion"><prop oor:name="VersionIdentifiers" oor:type="oor:string-list"><value/></prop><prop oor:name="Priority" oor:type="xs:int"><value/></prop><set oor:name="MigrationSteps" oor:node-type="MigrationStep"/></group><group oor:name="Factory"><prop oor:name="ooSetupFactoryActualFilter" oor:type="xs:string"/><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:type="xs:string"/><prop oor:name="ooSetupFactoryDefaultFilter" oor:type="xs:string"/><prop oor:name="ooSetupFactoryDocumentService" oor:type="xs:string"/><prop oor:name="ooSetupFactoryShortName" oor:type="xs:string"/><prop oor:name="ooSetupFactoryUIName" oor:type="xs:string"/><prop oor:name="ooSetupFactoryTemplateFile" oor:type="xs:string"/><prop oor:name="ooSetupFactorySystemDefaultTemplateChanged" oor:type="xs:boolean"/><prop oor:name="ooSetupFactoryWindowAttributes" oor:type="xs:string"/><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:type="xs:string"/><prop oor:name="ooSetupFactoryIcon" oor:type="xs:int"><value>0</value></prop><prop oor:name="ooSetupFactoryStyleFilter" oor:type="xs:int"><value>-1</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef" oor:type="xs:string"/><prop oor:name="ooSetupFactoryWindowStateConfigRef" oor:type="xs:string"/><prop oor:name="ooSetupFactoryCmdCategoryConfigRef" oor:type="xs:string"/><prop oor:name="ooSetupFactoryHelpBaseURL" oor:type="xs:string"/><prop oor:name="ooSetupFactoryHelpOnOpen" oor:type="xs:boolean"/></group></templates><component><group oor:name="Product"><prop oor:name="ooName" oor:type="xs:string"><value/></prop><prop oor:name="ooXMLFileFormatVersion" oor:type="xs:string"><value/></prop><prop oor:name="ooXMLFileFormatName" oor:type="xs:string"><value/></prop><prop oor:name="ooSetupVersion" oor:type="xs:string"><value/></prop><prop oor:name="ooSetupVersionAboutBox" oor:type="xs:string"><value/></prop><prop oor:name="ooVendor" oor:type="xs:string"><value/></prop><prop oor:name="ooSetupExtension" oor:type="xs:string"><value/></prop><prop oor:name="ooOpenSourceContext" oor:type="xs:int"><value>0</value></prop></group><group oor:name="Office"><prop oor:name="ooSetupInstallPath" oor:type="xs:string"><value/></prop><prop oor:name="ooSetupInstallURL" oor:type="xs:string"><value/></prop><prop oor:name="ooSetupInstCompleted" oor:type="xs:boolean"/><prop oor:name="ooSetupLocales" oor:type="oor:string-list"/><set oor:name="InstalledLocales" oor:node-type="InstalledLocale"/><prop oor:name="ooSetupShowIntro" oor:type="xs:boolean"/><prop oor:name="ooSetupConnectionURL" oor:type="xs:string"><value/></prop><prop oor:name="LicenseAcceptDate" oor:type="xs:string"/><prop oor:name="FirstStartWizardCompleted" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="MigrationCompleted" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="LastCompatibilityCheckID" oor:type="xs:string"><value>not checked</value></prop><set oor:name="Factories" oor:node-type="Factory"/><prop oor:name="OfficeRestartInProgress" oor:type="xs:boolean"><value>false</value></prop></group><group oor:name="L10N"><prop oor:name="ooLocale" oor:type="xs:string"><value/></prop><prop oor:name="ooSetupSystemLocale" oor:type="xs:string"><value/></prop><prop oor:name="ooSetupCurrency" oor:type="xs:string"><value/></prop><prop oor:name="DecimalSeparatorAsLocale" oor:type="xs:boolean" oor:nillable="false"><value>true</value></prop></group><group oor:name="Configuration"><prop oor:name="TransferUserSettingsOnce" oor:type="xs:boolean" oor:nillable="false"/></group><group oor:name="Migration"><set oor:name="SupportedVersions" oor:node-type="MigrateVersion"/></group></component></oor:component-schema><oor:component-schema oor:name="System" oor:package="org.openoffice" xml:lang="en-US"><component><group oor:name="L10N"><prop oor:name="Locale" oor:type="xs:string"><value/></prop><prop oor:name="UILocale" oor:type="xs:string"><value/></prop><prop oor:name="SystemLocale" oor:type="xs:string"><value/></prop></group></component></oor:component-schema><oor:component-schema oor:name="Filter" oor:package="org.openoffice.TypeDetection" xml:lang="en-US"><templates><group oor:name="Filter"><prop oor:name="FileFormatVersion" oor:type="xs:int"><value>0</value></prop><prop oor:name="Type" oor:type="xs:string"><value/></prop><prop oor:name="DocumentService" oor:type="xs:string"><value/></prop><prop oor:name="UIComponent" oor:type="xs:string"><value/></prop><prop oor:name="UserData" oor:type="oor:string-list"><value/></prop><prop oor:name="FilterService" oor:type="xs:string"><value/></prop><prop oor:name="TemplateName" oor:type="xs:string"><value/></prop><prop oor:name="Flags" oor:type="oor:string-list"><value/></prop><prop oor:name="UIName" oor:localized="true" oor:type="xs:string"/></group></templates><component><set oor:name="Filters" oor:node-type="Filter"/></component></oor:component-schema><oor:component-schema oor:name="GraphicFilter" oor:package="org.openoffice.TypeDetection" xml:lang="en-US"><templates><group oor:name="Filter"><prop oor:name="Type" oor:type="xs:string"/><prop oor:name="FormatName" oor:type="xs:string"/><prop oor:name="RealFilterName" oor:type="xs:string"/><prop oor:name="UIComponent" oor:type="xs:string"/><prop oor:name="Flags" oor:type="oor:string-list"/><prop oor:name="UIName" oor:localized="true" oor:type="xs:string"/></group></templates><component><set oor:name="Filters" oor:node-type="Filter"/></component></oor:component-schema><oor:component-schema oor:name="Misc" oor:package="org.openoffice.TypeDetection" xml:lang="en-US"><templates><group oor:name="FrameLoader"><prop oor:name="Types" oor:type="oor:string-list"><value/></prop></group><group oor:name="ContentHandler"><prop oor:name="Types" oor:type="oor:string-list"><value/></prop></group></templates><component><set oor:name="FrameLoaders" oor:node-type="FrameLoader"/><set oor:name="ContentHandlers" oor:node-type="ContentHandler"/><group oor:name="Defaults"><prop oor:name="DefaultFrameLoader" oor:type="xs:string"><value>com.sun.star.comp.office.FrameLoader</value></prop><prop oor:name="ShowAlienFilterWarning" oor:type="xs:boolean"><value>true</value></prop></group></component></oor:component-schema><oor:component-schema oor:name="Types" oor:package="org.openoffice.TypeDetection" xml:lang="en-US"><templates><group oor:name="Type"><prop oor:name="UIOrder" oor:type="xs:int"><value>0</value></prop><prop oor:name="URLPattern" oor:type="oor:string-list"><value/></prop><prop oor:name="Extensions" oor:type="oor:string-list"><value/></prop><prop oor:name="DocumentIconID" oor:type="xs:int"><value>0</value></prop><prop oor:name="MediaType" oor:type="xs:string"><value/></prop><prop oor:name="Preferred" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PreferredFilter" oor:type="xs:string"><value/></prop><prop oor:name="UIName" oor:localized="true" oor:type="xs:string"/><prop oor:name="ClipboardFormat" oor:type="xs:string"><value/></prop><prop oor:name="DetectService" oor:type="xs:string"><value/></prop></group></templates><component><set oor:name="Types" oor:node-type="Type"/></component></oor:component-schema><oor:component-schema oor:name="UISort" oor:package="org.openoffice.TypeDetection" xml:lang="en-US"><templates><group oor:name="ModuleFilterOrder"><prop oor:name="SortedFilterList" oor:type="oor:string-list"><value/></prop></group></templates><component><set oor:name="ModuleDependendFilterOrder" oor:node-type="ModuleFilterOrder"/></component></oor:component-schema><oor:component-schema oor:name="UserProfile" oor:package="org.openoffice" xml:lang="en-US"><component><group oor:name="Data"><prop oor:name="o" oor:type="xs:string"><value/></prop><prop oor:name="givenname" oor:type="xs:string"><value/></prop><prop oor:name="sn" oor:type="xs:string"><value/></prop><prop oor:name="initials" oor:type="xs:string"><value/></prop><prop oor:name="street" oor:type="xs:string"><value/></prop><prop oor:name="l" oor:type="xs:string"><value/></prop><prop oor:name="st" oor:type="xs:string"><value/></prop><prop oor:name="postalcode" oor:type="xs:string"><value/></prop><prop oor:name="c" oor:type="xs:string"><value/></prop><prop oor:name="title" oor:type="xs:string"><value/></prop><prop oor:name="position" oor:type="xs:string"><value/></prop><prop oor:name="homephone" oor:type="xs:string"><value/></prop><prop oor:name="telephonenumber" oor:type="xs:string"><value/></prop><prop oor:name="facsimiletelephonenumber" oor:type="xs:string"><value/></prop><prop oor:name="mail" oor:type="xs:string"><value/></prop><prop oor:name="UserGroup" oor:type="xs:string"><value>UserGroup</value></prop><prop oor:name="fathersname" oor:type="xs:string"><value/></prop><prop oor:name="apartment" oor:type="xs:string"><value/></prop></group></component></oor:component-schema><oor:component-schema oor:name="VCL" oor:package="org.openoffice" xml:lang="en-US"><templates><group oor:name="LFonts"><prop oor:name="SubstFonts" oor:type="xs:string"/><prop oor:name="SubstFontsMS" oor:type="xs:string"/><prop oor:name="SubstFontsPS" oor:type="xs:string"/><prop oor:name="SubstFontsHTML" oor:type="xs:string"/><prop oor:name="FontWeight" oor:type="xs:string"/><prop oor:name="FontWidth" oor:type="xs:string"/><prop oor:name="FontType" oor:type="xs:string"/></group><group oor:name="ConfigurableSettings" oor:extensible="true"/><group oor:name="LocalizedDefaultFonts" oor:extensible="true"/><set oor:name="LocalizedFontSubstitutions" oor:node-type="LFonts"/></templates><component><set oor:name="Settings" oor:node-type="ConfigurableSettings"/><set oor:name="DefaultFonts" oor:node-type="LocalizedDefaultFonts"/><set oor:name="FontSubstitutions" oor:node-type="LocalizedFontSubstitutions"/></component></oor:component-schema><oor:component-schema oor:name="Configuration" oor:package="org.openoffice.ucb" xml:lang="en-US"><templates><group oor:name="ContentProviderData"><prop oor:name="ServiceName" oor:type="xs:string"/><prop oor:name="URLTemplate" oor:type="xs:string"/><prop oor:name="Arguments" oor:type="xs:string"/></group><group oor:name="ContentProvidersDataSecondaryKeys"><set oor:name="ProviderData" oor:node-type="ContentProviderData"/></group><group oor:name="ContentProvidersDataPrimaryKeys"><set oor:name="SecondaryKeys" oor:node-type="ContentProvidersDataSecondaryKeys"/></group></templates><component><set oor:name="ContentProviders" oor:node-type="ContentProvidersDataPrimaryKeys"/></component></oor:component-schema><oor:component-schema oor:name="Hierarchy" oor:package="org.openoffice.ucb" xml:lang="en-US"><templates><group oor:name="Entry"><prop oor:name="Title" oor:type="xs:string"/><prop oor:name="TargetURL" oor:type="xs:string"/><prop oor:name="Type" oor:type="xs:int"/><set oor:name="Children" oor:node-type="Entry"/></group></templates><component><set oor:name="Root" oor:node-type="Entry"/></component></oor:component-schema><oor:component-schema oor:name="InteractionHandler" oor:package="org.openoffice.ucb" xml:lang="en-US"><templates><group oor:name="InteractionHandlerData"><prop oor:name="ServiceName" oor:type="xs:string"/></group></templates><component><set oor:name="InteractionHandlers" oor:node-type="InteractionHandlerData"/></component></oor:component-schema><oor:component-schema oor:name="Store" oor:package="org.openoffice.ucb" xml:lang="en-US"><templates><group oor:name="PropertyValue"><prop oor:name="Handle" oor:type="xs:int"/><prop oor:name="Attributes" oor:type="xs:int"/><prop oor:name="Value" oor:type="oor:any"/><prop oor:name="State" oor:type="xs:int"/></group><group oor:name="Properties"><set oor:name="Values" oor:node-type="PropertyValue"/></group></templates><component><set oor:name="ContentProperties" oor:node-type="Properties"/></component></oor:component-schema><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="FirstStartWizard" oor:package="org.openoffice"><node oor:name="TabPages"><node oor:name="Registration"><node oor:name="RegistrationOptions"><node oor:name="NowButton" oor:op="replace"/><node oor:name="LaterButton" oor:op="replace"/><node oor:name="NeverButton" oor:op="replace"/><node oor:name="AlreadyRegisteredButton" oor:op="replace"/></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Inet" oor:package="org.openoffice"><node oor:name="Settings"><prop oor:name="ooInetProxyType"><value>1</value></prop></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Interaction" oor:package="org.openoffice"><node oor:name="InteractionHandlers"><node oor:name="org.openoffice.Office.Base.DatabaseInteractions" oor:op="replace"><node oor:name="HandledRequestTypes"><node oor:name="com.sun.star.sdbc.SQLException" oor:op="replace"><prop oor:name="Propagation" oor:type="xs:string"><value>named-and-derived</value></prop></node><node oor:name="com.sun.star.sdb.ParametersRequest" oor:op="replace"><prop oor:name="Propagation" oor:type="xs:string"><value>named-and-derived</value></prop></node><node oor:name="com.sun.star.sdb.DocumentSaveRequest" oor:op="replace"><prop oor:name="Propagation" oor:type="xs:string"><value>named-and-derived</value></prop></node></node><prop oor:name="ServiceName" oor:type="xs:string"><value>com.sun.star.comp.dbaccess.DatabaseInteractionHandler</value></prop></node><node oor:name="org.openoffice.Filter.PDFExport.Interactions" oor:op="replace"><node oor:name="HandledRequestTypes"><node oor:name="com.sun.star.task.PDFExportException" oor:op="replace"><prop oor:name="Propagation" oor:type="xs:string"><value>named-and-derived</value></prop></node></node><prop oor:name="ServiceName" oor:type="xs:string"><value>com.sun.star.filter.pdfexport.PDFExportInteractionHandler</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Accelerators" oor:package="org.openoffice.Office"><node oor:name="PrimaryKeys"><node oor:name="Global"><node oor:name="A_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectAll</value></prop></node><node oor:name="B_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="B_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="C_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="DELETE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Delete</value></prop></node><node oor:name="E_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="F11_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MacroDialog</value></prop></node><node oor:name="F4" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ViewDataSourceBrowser</value></prop></node><node oor:name="F5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ToggleControlFocus</value></prop></node><node oor:name="F7_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:HangulHanjaConversion</value></prop></node><node oor:name="F_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">vnd.sun.star.findbar:FocusToFindbar</value></prop></node><node oor:name="H_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SearchDialog</value></prop></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:AddDirect</value></prop></node><node oor:name="N_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NewDoc</value></prop></node><node oor:name="O_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Open</value></prop></node><node oor:name="P_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Print</value></prop></node><node oor:name="Q_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Quit</value></prop></node><node oor:name="Q_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:BasicBreak</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Save</value></prop></node><node oor:name="S_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SaveAs</value></prop></node><node oor:name="U_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="V_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="W_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CloseWin</value></prop></node><node oor:name="X_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="Y_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node></node><node oor:name="Modules"><node oor:name="com.sun.star.script.BasicIDE" oor:op="replace"><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RunBasic</value></prop></node><node oor:name="F5_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:BasicStop</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:AddWatch</value></prop></node><node oor:name="F8" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:BasicStepInto</value></prop></node><node oor:name="F8_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:BasicStepOver</value></prop></node><node oor:name="F9" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ToggleBreakPoint</value></prop></node><node oor:name="F9_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ToggleBreakPointEnabled</value></prop></node></node><node oor:name="com.sun.star.frame.StartModule" oor:op="replace"><node oor:name="A_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectAll</value></prop></node><node oor:name="C_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="DELETE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Delete</value></prop></node><node oor:name="F4" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ViewDataSourceBrowser</value></prop></node><node oor:name="F5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ToggleControlFocus</value></prop></node><node oor:name="F7_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:HangulHanjaConversion</value></prop></node><node oor:name="F_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">vnd.sun.star.findbar:FocusToFindbar</value></prop></node><node oor:name="H_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno.SearchDialog</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:AddDirect</value></prop></node><node oor:name="N_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NewDoc</value></prop></node><node oor:name="O_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Open</value></prop></node><node oor:name="P_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Print</value></prop></node><node oor:name="Q_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Quit</value></prop></node><node oor:name="Q_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:BasicBreak</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Save</value></prop></node><node oor:name="V_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="W_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CloseWin</value></prop></node><node oor:name="X_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node></node><node oor:name="com.sun.star.sdb.OfficeDatabaseDocument" oor:op="replace"><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">private:factory/sdatabase?Interactive</value></prop></node></node><node oor:name="com.sun.star.sdb.DataSourceBrowser" oor:op="replace"><node oor:name="F_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RecSearch</value></prop></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node></node><node oor:name="com.sun.star.sdb.QueryDesign" oor:op="replace"><node oor:name="F4" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DBQueryPreview</value></prop></node><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SbaExecuteSql</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:AddTable</value></prop></node></node><node oor:name="com.sun.star.sdb.TableDataView" oor:op="replace"><node oor:name="F_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RecSearch</value></prop></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node></node><node oor:name="com.sun.star.sheet.SpreadsheetDocument" oor:op="replace"><node oor:name="1_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FormatCellDialog</value></prop></node><node oor:name="1_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NumberFormatDecimal</value></prop></node><node oor:name="2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpacePara2</value></prop></node><node oor:name="2_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NumberFormatScientific</value></prop></node><node oor:name="3_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NumberFormatDate</value></prop></node><node oor:name="4_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NumberFormatCurrency</value></prop></node><node oor:name="5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpacePara15</value></prop></node><node oor:name="5_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NumberFormatPercent</value></prop></node><node oor:name="6_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NumberFormatStandard</value></prop></node><node oor:name="ADD_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertCell</value></prop></node><node oor:name="BACKSPACE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Delete</value></prop></node><node oor:name="BACKSPACE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToCurrentCell</value></prop></node><node oor:name="BACKSPACE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Deselect</value></prop></node><node oor:name="B_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Bold</value></prop></node><node oor:name="B_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="B_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SubScript</value></prop></node><node oor:name="DELETE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ClearContents</value></prop></node><node oor:name="DIVIDE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectArrayFormula</value></prop></node><node oor:name="DOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDown</value></prop></node><node oor:name="DOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDownToEndOfData</value></prop></node><node oor:name="DOWN_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DataSelect</value></prop></node><node oor:name="DOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDownSel</value></prop></node><node oor:name="DOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDownToEndOfDataSel</value></prop></node><node oor:name="D_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FillDown</value></prop></node><node oor:name="END" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfRow</value></prop></node><node oor:name="END_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfData</value></prop></node><node oor:name="END_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfRowSel</value></prop></node><node oor:name="END_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfDataSel</value></prop></node><node oor:name="ESCAPE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cancel</value></prop></node><node oor:name="E_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:AlignHorizontalCenter</value></prop></node><node oor:name="F11" oor:op="replace"/><node oor:name="F11_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleCatalog</value></prop></node><node oor:name="F11_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SaveAsTemplate</value></prop></node><node oor:name="F12" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Group</value></prop></node><node oor:name="F12_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Ungroup</value></prop></node><node oor:name="F2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetInputMode</value></prop></node><node oor:name="F2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FunctionDialog</value></prop></node><node oor:name="F2_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FocusInputLine</value></prop></node><node oor:name="F3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefineName</value></prop></node><node oor:name="F3_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ChangeCaseRotateCase</value></prop></node><node oor:name="F4" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ViewDataSourceBrowser</value></prop></node><node oor:name="F4_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ToggleRelative</value></prop></node><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Navigator</value></prop></node><node oor:name="F5_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShowDependents</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpellDialog</value></prop></node><node oor:name="F7_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ThesaurusDialog</value></prop></node><node oor:name="F7_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShowPrecedents</value></prop></node><node oor:name="F8" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StatusSelectionModeExt</value></prop></node><node oor:name="F8_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ViewValueHighlighting</value></prop></node><node oor:name="F8_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StatusSelectionModeExp</value></prop></node><node oor:name="F9" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Calculate</value></prop></node><node oor:name="F9_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CalculateHard</value></prop></node><node oor:name="F_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RepeatSearch</value></prop></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="HOME" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfRow</value></prop></node><node oor:name="HOME_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStart</value></prop></node><node oor:name="HOME_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfRowSel</value></prop></node><node oor:name="HOME_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartSel</value></prop></node><node oor:name="INSERT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertContents</value></prop></node><node oor:name="I_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Italic</value></prop></node><node oor:name="J_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:AlignBlock</value></prop></node><node oor:name="J_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FullScreen</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="K_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="LEFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoLeft</value></prop></node><node oor:name="LEFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoLeftToStartOfData</value></prop></node><node oor:name="LEFT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoLeftSel</value></prop></node><node oor:name="LEFT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoLeftToStartOfDataSel</value></prop></node><node oor:name="L_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:AlignLeft</value></prop></node><node oor:name="MULTIPLY_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectData</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="PAGEDOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDownBlock</value></prop></node><node oor:name="PAGEDOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToNextTable</value></prop></node><node oor:name="PAGEDOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDownBlockSel</value></prop></node><node oor:name="PAGEDOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToNextTableSel</value></prop></node><node oor:name="PAGEUP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUpBlock</value></prop></node><node oor:name="PAGEUP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToPrevTable</value></prop></node><node oor:name="PAGEUP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUpBlockSel</value></prop></node><node oor:name="PAGEUP_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToPrevTableSel</value></prop></node><node oor:name="P_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SuperScript</value></prop></node><node oor:name="QUOTELEFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ToggleFormula</value></prop></node><node oor:name="REPEAT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node><node oor:name="RIGHT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoRight</value></prop></node><node oor:name="RIGHT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoRightToEndOfData</value></prop></node><node oor:name="RIGHT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoRightSel</value></prop></node><node oor:name="RIGHT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoRightToEndOfDataSel</value></prop></node><node oor:name="R_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:AlignRight</value></prop></node><node oor:name="R_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repaint</value></prop></node><node oor:name="SPACE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectRow</value></prop></node><node oor:name="SEMICOLON_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertCurrentDate</value></prop></node><node oor:name="SEMICOLON_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertCurrentTime</value></prop></node><node oor:name="BRACKETLEFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MarkPrecedents</value></prop></node><node oor:name="BRACKETRIGHT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MarkDependents</value></prop></node><node oor:name="SPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectColumn</value></prop></node><node oor:name="SUBTRACT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DeleteCell</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="TAB" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToNextUnprotected</value></prop></node><node oor:name="TAB_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToPreviousUnprotected</value></prop></node><node oor:name="T_MOD1" oor:op="replace"/><node oor:name="T_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FocusCellAddress</value></prop></node><node oor:name="UP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUp</value></prop></node><node oor:name="UP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUpToStartOfData</value></prop></node><node oor:name="UP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUpSel</value></prop></node><node oor:name="UP_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUpToStartOfDataSel</value></prop></node><node oor:name="U_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Underline</value></prop></node><node oor:name="U_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="V_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteSpecial</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.chart2.ChartDocument" oor:op="replace"><node oor:name="9_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShowItemBrowser</value></prop></node><node oor:name="C_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="DELETE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Delete</value></prop></node><node oor:name="F4" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:TransformDialog</value></prop></node><node oor:name="J_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FullScreen</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NewDoc</value></prop></node><node oor:name="O_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Open</value></prop></node><node oor:name="P_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Print</value></prop></node><node oor:name="Q_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Quit</value></prop></node><node oor:name="REPEAT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Save</value></prop></node><node oor:name="V_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="W_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CloseWin</value></prop></node><node oor:name="X_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.drawing.DrawingDocument" oor:op="replace"><node oor:name="1_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpacePara1</value></prop></node><node oor:name="2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpacePara2</value></prop></node><node oor:name="5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpacePara15</value></prop></node><node oor:name="9_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShowItemBrowser</value></prop></node><node oor:name="ADD_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Forward</value></prop></node><node oor:name="ADD_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:BringToFront</value></prop></node><node oor:name="A_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="A_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:AnimationMode</value></prop></node><node oor:name="B_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Bold</value></prop></node><node oor:name="B_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="B_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SubScript</value></prop></node><node oor:name="C_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="C_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="C_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="DELETE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Delete</value></prop></node><node oor:name="DIVIDE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertZWSP</value></prop></node><node oor:name="E_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CenterPara</value></prop></node><node oor:name="F11" oor:op="replace"/><node oor:name="F11_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleCatalog</value></prop></node><node oor:name="F2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Text</value></prop></node><node oor:name="F3" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EnterGroup</value></prop></node><node oor:name="F3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LeaveGroup</value></prop></node><node oor:name="F3_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ChangeCaseRotateCase</value></prop></node><node oor:name="F4" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:TransformDialog</value></prop></node><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Navigator</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpellDialog</value></prop></node><node oor:name="F7_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ThesaurusDialog</value></prop></node><node oor:name="F8" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ToggleObjectBezierMode</value></prop></node><node oor:name="F8_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:TextFitToSize</value></prop></node><node oor:name="F_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="G_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FormatGroup</value></prop></node><node oor:name="G_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FormatUngroup</value></prop></node><node oor:name="H_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="I_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Italic</value></prop></node><node oor:name="J_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JustifyPara</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="K_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Combine</value></prop></node><node oor:name="K_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Dismantle</value></prop></node><node oor:name="L_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LeftPara</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="N_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NewDoc</value></prop></node><node oor:name="O_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Open</value></prop></node><node oor:name="P_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Print</value></prop></node><node oor:name="P_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SuperScript</value></prop></node><node oor:name="P_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PixelMode</value></prop></node><node oor:name="Q_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Quit</value></prop></node><node oor:name="REPEAT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node><node oor:name="R_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RightPara</value></prop></node><node oor:name="SPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertNonBreakingSpace</value></prop></node><node oor:name="SUBTRACT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Backward</value></prop></node><node oor:name="SUBTRACT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SendToBack</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Save</value></prop></node><node oor:name="T_MOD1" oor:op="replace"/><node oor:name="U_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Underline</value></prop></node><node oor:name="U_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="V_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="V_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteSpecial</value></prop></node><node oor:name="X_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.text.GlobalDocument" oor:op="replace"><node oor:name="0_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Text body&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="0_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Standard&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="1_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 1&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 2&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 3&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="4_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 4&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 5&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="ADD_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CalculateSel</value></prop></node><node oor:name="A_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaLeftToRight</value></prop></node><node oor:name="BACKSPACE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SwBackspace</value></prop></node><node oor:name="BACKSPACE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfWord</value></prop></node><node oor:name="BACKSPACE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShiftBackspace</value></prop></node><node oor:name="BACKSPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfSentence</value></prop></node><node oor:name="B_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Bold</value></prop></node><node oor:name="B_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="B_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SubScript</value></prop></node><node oor:name="DELETE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfWord</value></prop></node><node oor:name="DELETE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfSentence</value></prop></node><node oor:name="DIVIDE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertZWSP</value></prop></node><node oor:name="DOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDown</value></prop></node><node oor:name="DOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextPara</value></prop></node><node oor:name="DOWN_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveDown</value></prop></node><node oor:name="DOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineDownSel</value></prop></node><node oor:name="DOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfParaSel</value></prop></node><node oor:name="D_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UnderlineDouble</value></prop></node><node oor:name="D_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaRightToLeft</value></prop></node><node oor:name="END" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfLine</value></prop></node><node oor:name="END_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfDoc</value></prop></node><node oor:name="END_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfLineSel</value></prop></node><node oor:name="END_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfDocumentSel</value></prop></node><node oor:name="ESCAPE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Escape</value></prop></node><node oor:name="E_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CenterPara</value></prop></node><node oor:name="F10_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ControlCodes</value></prop></node><node oor:name="F11" oor:op="replace"/><node oor:name="F11_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ActivateStyleApply</value></prop></node><node oor:name="F11_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleNewByExample</value></prop></node><node oor:name="F11_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleUpdateByExample</value></prop></node><node oor:name="F12" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultNumbering</value></prop></node><node oor:name="F12_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertTable</value></prop></node><node oor:name="F12_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultBullet</value></prop></node><node oor:name="F12_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveBullets</value></prop></node><node oor:name="F2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertFormula</value></prop></node><node oor:name="F2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertField</value></prop></node><node oor:name="F3" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExpandGlossary</value></prop></node><node oor:name="F3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EditGlossary</value></prop></node><node oor:name="F3_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ChangeCaseRotateCase</value></prop></node><node oor:name="F4_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToNextFrame</value></prop></node><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Navigator</value></prop></node><node oor:name="F5_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RestoreEditingView</value></prop></node><node oor:name="F5_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GotoPage</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpellingAndGrammarDialog</value></prop></node><node oor:name="F7_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ThesaurusDialog</value></prop></node><node oor:name="F8" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetExtSelection</value></prop></node><node oor:name="F8_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Marks</value></prop></node><node oor:name="F8_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetMultiSelection</value></prop></node><node oor:name="F8_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="F9" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateFields</value></prop></node><node oor:name="F9_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Fieldnames</value></prop></node><node oor:name="F9_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Calc</value></prop></node><node oor:name="F9_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateInputFields</value></prop></node><node oor:name="F_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RepeatSearch</value></prop></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="HOME" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfLine</value></prop></node><node oor:name="HOME_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfDoc</value></prop></node><node oor:name="HOME_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfLineSel</value></prop></node><node oor:name="HOME_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfDocumentSel</value></prop></node><node oor:name="H_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="INSERT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertMode</value></prop></node><node oor:name="I_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Italic</value></prop></node><node oor:name="I_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectTextMode</value></prop></node><node oor:name="J_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JustifyPara</value></prop></node><node oor:name="J_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FullScreen</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="K_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="LEFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoLeft</value></prop></node><node oor:name="LEFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevWord</value></prop></node><node oor:name="LEFT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharLeftSel</value></prop></node><node oor:name="LEFT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordLeftSel</value></prop></node><node oor:name="L_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LeftPara</value></prop></node><node oor:name="MULTIPLY_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExecuteMacroField</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="C_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertAnnotation</value></prop></node><node oor:name="PAGEDOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDown</value></prop></node><node oor:name="PAGEDOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFooter</value></prop></node><node oor:name="PAGEDOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDownSel</value></prop></node><node oor:name="PAGEDOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFootnoteArea</value></prop></node><node oor:name="PAGEUP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUp</value></prop></node><node oor:name="PAGEUP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToHeader</value></prop></node><node oor:name="PAGEUP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUpSel</value></prop></node><node oor:name="P_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SuperScript</value></prop></node><node oor:name="REPEAT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node><node oor:name="RETURN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPara</value></prop></node><node oor:name="RETURN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPagebreak</value></prop></node><node oor:name="RETURN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertLinebreak</value></prop></node><node oor:name="RETURN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertColumnBreak</value></prop></node><node oor:name="RIGHT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoRight</value></prop></node><node oor:name="RIGHT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextWord</value></prop></node><node oor:name="RIGHT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharRightSel</value></prop></node><node oor:name="RIGHT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordRightSel</value></prop></node><node oor:name="R_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RightPara</value></prop></node><node oor:name="R_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RefreshView</value></prop></node><node oor:name="SPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertNonBreakingSpace</value></prop></node><node oor:name="SUBTRACT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertSoftHyphen</value></prop></node><node oor:name="SUBTRACT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertHardHyphen</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="T_MOD1" oor:op="replace"/><node oor:name="T_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetTableProtection</value></prop></node><node oor:name="UP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUp</value></prop></node><node oor:name="UP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevPara</value></prop></node><node oor:name="UP_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveUp</value></prop></node><node oor:name="UP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineUpSel</value></prop></node><node oor:name="UP_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfParaSel</value></prop></node><node oor:name="U_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Underline</value></prop></node><node oor:name="U_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="V_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteSpecial</value></prop></node><node oor:name="X_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveDirectCharFormats</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.presentation.PresentationDocument" oor:op="replace"><node oor:name="C_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertAnnotation</value></prop></node><node oor:name="PAGEDOWN_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NextAnnotation</value></prop></node><node oor:name="PAGEUP_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PreviousAnnotation</value></prop></node><node oor:name="1_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpacePara1</value></prop></node><node oor:name="2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpacePara2</value></prop></node><node oor:name="5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpacePara15</value></prop></node><node oor:name="9_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShowItemBrowser</value></prop></node><node oor:name="ADD_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Forward</value></prop></node><node oor:name="ADD_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:BringToFront</value></prop></node><node oor:name="A_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="A_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:AnimationMode</value></prop></node><node oor:name="B_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Bold</value></prop></node><node oor:name="B_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="B_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SubScript</value></prop></node><node oor:name="C_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="C_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="C_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="DELETE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Delete</value></prop></node><node oor:name="DIVIDE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertZWSP</value></prop></node><node oor:name="DOWN_SHIFT_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:OutlineDown</value></prop></node><node oor:name="E_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CenterPara</value></prop></node><node oor:name="F11" oor:op="replace"/><node oor:name="F11_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleCatalog</value></prop></node><node oor:name="F2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Text</value></prop></node><node oor:name="F3" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EnterGroup</value></prop></node><node oor:name="F3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LeaveGroup</value></prop></node><node oor:name="F3_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CopyObjects</value></prop></node><node oor:name="F4" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:TransformDialog</value></prop></node><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Presentation</value></prop></node><node oor:name="F5_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RestoreEditingView</value></prop></node><node oor:name="F5_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Navigator</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpellDialog</value></prop></node><node oor:name="F7_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ThesaurusDialog</value></prop></node><node oor:name="F8" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ToggleObjectBezierMode</value></prop></node><node oor:name="F8_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:TextFitToSize</value></prop></node><node oor:name="F_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="G_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FormatGroup</value></prop></node><node oor:name="G_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FormatUngroup</value></prop></node><node oor:name="H_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="I_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Italic</value></prop></node><node oor:name="J_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JustifyPara</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="K_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Combine</value></prop></node><node oor:name="K_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Dismantle</value></prop></node><node oor:name="LEFT_SHIFT_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:OutlineLeft</value></prop></node><node oor:name="L_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LeftPara</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="N_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NewDoc</value></prop></node><node oor:name="O_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Open</value></prop></node><node oor:name="P_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Print</value></prop></node><node oor:name="P_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SuperScript</value></prop></node><node oor:name="P_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PixelMode</value></prop></node><node oor:name="Q_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Quit</value></prop></node><node oor:name="REPEAT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node><node oor:name="RIGHT_SHIFT_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:OutlineRight</value></prop></node><node oor:name="R_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RightPara</value></prop></node><node oor:name="SPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertNonBreakingSpace</value></prop></node><node oor:name="SUBTRACT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Backward</value></prop></node><node oor:name="SUBTRACT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SendToBack</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Save</value></prop></node><node oor:name="T_MOD1" oor:op="replace"/><node oor:name="UP_SHIFT_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:OutlineUp</value></prop></node><node oor:name="U_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Underline</value></prop></node><node oor:name="U_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="V_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="V_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteSpecial</value></prop></node><node oor:name="X_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.formula.FormulaProperties" oor:op="replace"><node oor:name="A_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Select</value></prop></node><node oor:name="F3" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NextError</value></prop></node><node oor:name="F3_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PrevError</value></prop></node><node oor:name="F4" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NextMark</value></prop></node><node oor:name="F4_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PrevMark</value></prop></node><node oor:name="F9" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Draw</value></prop></node><node oor:name="J_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FullScreen</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.text.WebDocument" oor:op="replace"><node oor:name="0_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Text body&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="0_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Standard&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="1_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 1&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 2&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 3&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="4_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 4&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 5&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="ADD_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CalculateSel</value></prop></node><node oor:name="A_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaLeftToRight</value></prop></node><node oor:name="BACKSPACE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SwBackspace</value></prop></node><node oor:name="BACKSPACE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfWord</value></prop></node><node oor:name="BACKSPACE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShiftBackspace</value></prop></node><node oor:name="BACKSPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfSentence</value></prop></node><node oor:name="B_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Bold</value></prop></node><node oor:name="B_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="B_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SubScript</value></prop></node><node oor:name="DELETE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfWord</value></prop></node><node oor:name="DELETE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfSentence</value></prop></node><node oor:name="DIVIDE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertZWSP</value></prop></node><node oor:name="DOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDown</value></prop></node><node oor:name="DOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextPara</value></prop></node><node oor:name="DOWN_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveDown</value></prop></node><node oor:name="DOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineDownSel</value></prop></node><node oor:name="DOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfParaSel</value></prop></node><node oor:name="D_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UnderlineDouble</value></prop></node><node oor:name="D_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaRightToLeft</value></prop></node><node oor:name="END" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfLine</value></prop></node><node oor:name="END_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfDoc</value></prop></node><node oor:name="END_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfLineSel</value></prop></node><node oor:name="END_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfDocumentSel</value></prop></node><node oor:name="ESCAPE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Escape</value></prop></node><node oor:name="E_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CenterPara</value></prop></node><node oor:name="F10_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ControlCodes</value></prop></node><node oor:name="F11" oor:op="replace"/><node oor:name="F11_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ActivateStyleApply</value></prop></node><node oor:name="F11_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleNewByExample</value></prop></node><node oor:name="F11_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleUpdateByExample</value></prop></node><node oor:name="F12" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultNumbering</value></prop></node><node oor:name="F12_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertTable</value></prop></node><node oor:name="F12_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultBullet</value></prop></node><node oor:name="F12_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveBullets</value></prop></node><node oor:name="F2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertFormula</value></prop></node><node oor:name="F2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertField</value></prop></node><node oor:name="F3" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExpandGlossary</value></prop></node><node oor:name="F3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EditGlossary</value></prop></node><node oor:name="F3_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ChangeCaseRotateCase</value></prop></node><node oor:name="F4_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToNextFrame</value></prop></node><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Navigator</value></prop></node><node oor:name="F5_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RestoreEditingView</value></prop></node><node oor:name="F5_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GotoPage</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpellingAndGrammarDialog</value></prop></node><node oor:name="F7_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ThesaurusDialog</value></prop></node><node oor:name="F8" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetExtSelection</value></prop></node><node oor:name="F8_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Marks</value></prop></node><node oor:name="F8_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetMultiSelection</value></prop></node><node oor:name="F8_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="F9" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateFields</value></prop></node><node oor:name="F9_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Fieldnames</value></prop></node><node oor:name="F9_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Calc</value></prop></node><node oor:name="F9_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateInputFields</value></prop></node><node oor:name="F_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RepeatSearch</value></prop></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="HOME" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfLine</value></prop></node><node oor:name="HOME_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfDoc</value></prop></node><node oor:name="HOME_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfLineSel</value></prop></node><node oor:name="HOME_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfDocumentSel</value></prop></node><node oor:name="H_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="INSERT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertMode</value></prop></node><node oor:name="I_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Italic</value></prop></node><node oor:name="I_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectTextMode</value></prop></node><node oor:name="J_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JustifyPara</value></prop></node><node oor:name="J_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FullScreen</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="K_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="LEFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoLeft</value></prop></node><node oor:name="LEFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevWord</value></prop></node><node oor:name="LEFT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharLeftSel</value></prop></node><node oor:name="LEFT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordLeftSel</value></prop></node><node oor:name="L_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LeftPara</value></prop></node><node oor:name="MULTIPLY_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExecuteMacroField</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="C_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertAnnotation</value></prop></node><node oor:name="PAGEDOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDown</value></prop></node><node oor:name="PAGEDOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFooter</value></prop></node><node oor:name="PAGEDOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDownSel</value></prop></node><node oor:name="PAGEDOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFootnoteArea</value></prop></node><node oor:name="PAGEUP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUp</value></prop></node><node oor:name="PAGEUP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToHeader</value></prop></node><node oor:name="PAGEUP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUpSel</value></prop></node><node oor:name="P_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SuperScript</value></prop></node><node oor:name="REPEAT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node><node oor:name="RETURN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPara</value></prop></node><node oor:name="RETURN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPagebreak</value></prop></node><node oor:name="RETURN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertLinebreak</value></prop></node><node oor:name="RETURN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertColumnBreak</value></prop></node><node oor:name="RIGHT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoRight</value></prop></node><node oor:name="RIGHT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextWord</value></prop></node><node oor:name="RIGHT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharRightSel</value></prop></node><node oor:name="RIGHT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordRightSel</value></prop></node><node oor:name="R_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RightPara</value></prop></node><node oor:name="R_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RefreshView</value></prop></node><node oor:name="SPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertNonBreakingSpace</value></prop></node><node oor:name="SUBTRACT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertSoftHyphen</value></prop></node><node oor:name="SUBTRACT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertHardHyphen</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="T_MOD1" oor:op="replace"/><node oor:name="T_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetTableProtection</value></prop></node><node oor:name="UP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUp</value></prop></node><node oor:name="UP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevPara</value></prop></node><node oor:name="UP_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveUp</value></prop></node><node oor:name="UP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineUpSel</value></prop></node><node oor:name="UP_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfParaSel</value></prop></node><node oor:name="U_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Underline</value></prop></node><node oor:name="U_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="V_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteUnformatted</value></prop></node><node oor:name="V_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteSpecial</value></prop></node><node oor:name="X_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveDirectCharFormats</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.sdb.FormDesign" oor:op="replace"><node oor:name="0_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Text body&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="0_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Standard&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="1_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 1&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 2&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 3&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="4_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 4&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 5&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="ADD_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CalculateSel</value></prop></node><node oor:name="A_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaLeftToRight</value></prop></node><node oor:name="BACKSPACE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SwBackspace</value></prop></node><node oor:name="BACKSPACE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfWord</value></prop></node><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="BACKSPACE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShiftBackspace</value></prop></node><node oor:name="BACKSPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfSentence</value></prop></node><node oor:name="B_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Bold</value></prop></node><node oor:name="B_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="B_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SubScript</value></prop></node><node oor:name="DELETE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfWord</value></prop></node><node oor:name="DELETE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfSentence</value></prop></node><node oor:name="DIVIDE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertZWSP</value></prop></node><node oor:name="DOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDown</value></prop></node><node oor:name="DOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextPara</value></prop></node><node oor:name="DOWN_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveDown</value></prop></node><node oor:name="DOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineDownSel</value></prop></node><node oor:name="DOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfParaSel</value></prop></node><node oor:name="D_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UnderlineDouble</value></prop></node><node oor:name="D_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaRightToLeft</value></prop></node><node oor:name="END" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfLine</value></prop></node><node oor:name="END_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfDoc</value></prop></node><node oor:name="END_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LastRecord</value></prop></node><node oor:name="END_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfLineSel</value></prop></node><node oor:name="END_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfDocumentSel</value></prop></node><node oor:name="ESCAPE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Escape</value></prop></node><node oor:name="E_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CenterPara</value></prop></node><node oor:name="F10_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ControlCodes</value></prop></node><node oor:name="F11" oor:op="replace"/><node oor:name="F11_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ActivateStyleApply</value></prop></node><node oor:name="F11_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleNewByExample</value></prop></node><node oor:name="F11_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleUpdateByExample</value></prop></node><node oor:name="F12" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultNumbering</value></prop></node><node oor:name="F12_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertTable</value></prop></node><node oor:name="F12_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultBullet</value></prop></node><node oor:name="F12_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveBullets</value></prop></node><node oor:name="F2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertFormula</value></prop></node><node oor:name="F2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertField</value></prop></node><node oor:name="F3" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExpandGlossary</value></prop></node><node oor:name="F3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EditGlossary</value></prop></node><node oor:name="F3_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ChangeCaseRotateCase</value></prop></node><node oor:name="F4_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToNextFrame</value></prop></node><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Navigator</value></prop></node><node oor:name="F5_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RestoreEditingView</value></prop></node><node oor:name="F5_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GotoPage</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpellingAndGrammarDialog</value></prop></node><node oor:name="F7_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ThesaurusDialog</value></prop></node><node oor:name="F8" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetExtSelection</value></prop></node><node oor:name="F8_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Marks</value></prop></node><node oor:name="F8_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetMultiSelection</value></prop></node><node oor:name="F8_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="F9" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateFields</value></prop></node><node oor:name="F9_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Fieldnames</value></prop></node><node oor:name="F9_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Calc</value></prop></node><node oor:name="F9_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateInputFields</value></prop></node><node oor:name="F_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RepeatSearch</value></prop></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="HOME" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfLine</value></prop></node><node oor:name="HOME_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfDoc</value></prop></node><node oor:name="HOME_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FirstRecord</value></prop></node><node oor:name="HOME_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfLineSel</value></prop></node><node oor:name="HOME_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfDocumentSel</value></prop></node><node oor:name="H_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="INSERT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertMode</value></prop></node><node oor:name="I_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Italic</value></prop></node><node oor:name="I_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectTextMode</value></prop></node><node oor:name="J_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JustifyPara</value></prop></node><node oor:name="J_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FullScreen</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="K_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="LEFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoLeft</value></prop></node><node oor:name="LEFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevWord</value></prop></node><node oor:name="LEFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PrevRecord</value></prop></node><node oor:name="LEFT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharLeftSel</value></prop></node><node oor:name="LEFT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordLeftSel</value></prop></node><node oor:name="L_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LeftPara</value></prop></node><node oor:name="L_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FormFilter</value></prop></node><node oor:name="MULTIPLY_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExecuteMacroField</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="C_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertAnnotation</value></prop></node><node oor:name="PAGEDOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDown</value></prop></node><node oor:name="PAGEDOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFooter</value></prop></node><node oor:name="PAGEDOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDownSel</value></prop></node><node oor:name="PAGEDOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFootnoteArea</value></prop></node><node oor:name="PAGEUP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUp</value></prop></node><node oor:name="PAGEUP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToHeader</value></prop></node><node oor:name="PAGEUP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUpSel</value></prop></node><node oor:name="P_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SuperScript</value></prop></node><node oor:name="REPEAT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node><node oor:name="RETURN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPara</value></prop></node><node oor:name="RETURN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPagebreak</value></prop></node><node oor:name="RETURN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertLinebreak</value></prop></node><node oor:name="RETURN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertColumnBreak</value></prop></node><node oor:name="RIGHT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoRight</value></prop></node><node oor:name="RIGHT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextWord</value></prop></node><node oor:name="RIGHT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:NextRecord</value></prop></node><node oor:name="RIGHT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharRightSel</value></prop></node><node oor:name="RIGHT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordRightSel</value></prop></node><node oor:name="R_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RightPara</value></prop></node><node oor:name="R_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RefreshView</value></prop></node><node oor:name="SPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertNonBreakingSpace</value></prop></node><node oor:name="SUBTRACT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertSoftHyphen</value></prop></node><node oor:name="SUBTRACT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertHardHyphen</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="T_MOD1" oor:op="replace"/><node oor:name="T_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetTableProtection</value></prop></node><node oor:name="UP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUp</value></prop></node><node oor:name="UP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevPara</value></prop></node><node oor:name="UP_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveUp</value></prop></node><node oor:name="UP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineUpSel</value></prop></node><node oor:name="UP_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfParaSel</value></prop></node><node oor:name="U_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Underline</value></prop></node><node oor:name="U_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="V_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteSpecial</value></prop></node><node oor:name="X_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveDirectCharFormats</value></prop></node></node><node oor:name="com.sun.star.sdb.TextReportDesign" oor:op="replace"><node oor:name="0_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Text body&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="0_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Standard&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="1_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 1&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 2&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 3&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="4_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 4&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 5&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="ADD_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CalculateSel</value></prop></node><node oor:name="A_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaLeftToRight</value></prop></node><node oor:name="BACKSPACE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SwBackspace</value></prop></node><node oor:name="BACKSPACE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfWord</value></prop></node><node oor:name="BACKSPACE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShiftBackspace</value></prop></node><node oor:name="BACKSPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfSentence</value></prop></node><node oor:name="B_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Bold</value></prop></node><node oor:name="B_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="B_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SubScript</value></prop></node><node oor:name="DELETE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfWord</value></prop></node><node oor:name="DELETE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfSentence</value></prop></node><node oor:name="DIVIDE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertZWSP</value></prop></node><node oor:name="DOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDown</value></prop></node><node oor:name="DOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextPara</value></prop></node><node oor:name="DOWN_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveDown</value></prop></node><node oor:name="DOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineDownSel</value></prop></node><node oor:name="DOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfParaSel</value></prop></node><node oor:name="D_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UnderlineDouble</value></prop></node><node oor:name="D_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaRightToLeft</value></prop></node><node oor:name="END" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfLine</value></prop></node><node oor:name="END_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfDoc</value></prop></node><node oor:name="END_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfLineSel</value></prop></node><node oor:name="END_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfDocumentSel</value></prop></node><node oor:name="ESCAPE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Escape</value></prop></node><node oor:name="E_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CenterPara</value></prop></node><node oor:name="F10_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ControlCodes</value></prop></node><node oor:name="F11" oor:op="replace"/><node oor:name="F11_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ActivateStyleApply</value></prop></node><node oor:name="F11_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleNewByExample</value></prop></node><node oor:name="F11_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleUpdateByExample</value></prop></node><node oor:name="F12" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultNumbering</value></prop></node><node oor:name="F12_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertTable</value></prop></node><node oor:name="F12_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultBullet</value></prop></node><node oor:name="F12_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveBullets</value></prop></node><node oor:name="F2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertFormula</value></prop></node><node oor:name="F2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertField</value></prop></node><node oor:name="F3" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExpandGlossary</value></prop></node><node oor:name="F3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EditGlossary</value></prop></node><node oor:name="F3_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ChangeCaseRotateCase</value></prop></node><node oor:name="F4_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToNextFrame</value></prop></node><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Navigator</value></prop></node><node oor:name="F5_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RestoreEditingView</value></prop></node><node oor:name="F5_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GotoPage</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpellingAndGrammarDialog</value></prop></node><node oor:name="F7_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ThesaurusDialog</value></prop></node><node oor:name="F8" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetExtSelection</value></prop></node><node oor:name="F8_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Marks</value></prop></node><node oor:name="F8_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetMultiSelection</value></prop></node><node oor:name="F8_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="F9" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateFields</value></prop></node><node oor:name="F9_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Fieldnames</value></prop></node><node oor:name="F9_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Calc</value></prop></node><node oor:name="F9_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateInputFields</value></prop></node><node oor:name="F_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RepeatSearch</value></prop></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="HOME" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfLine</value></prop></node><node oor:name="HOME_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfDoc</value></prop></node><node oor:name="HOME_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfLineSel</value></prop></node><node oor:name="HOME_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfDocumentSel</value></prop></node><node oor:name="H_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="INSERT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertMode</value></prop></node><node oor:name="I_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Italic</value></prop></node><node oor:name="I_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectTextMode</value></prop></node><node oor:name="J_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JustifyPara</value></prop></node><node oor:name="J_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FullScreen</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="K_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="LEFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoLeft</value></prop></node><node oor:name="LEFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevWord</value></prop></node><node oor:name="LEFT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharLeftSel</value></prop></node><node oor:name="LEFT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordLeftSel</value></prop></node><node oor:name="L_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LeftPara</value></prop></node><node oor:name="MULTIPLY_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExecuteMacroField</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="C_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertAnnotation</value></prop></node><node oor:name="PAGEDOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDown</value></prop></node><node oor:name="PAGEDOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFooter</value></prop></node><node oor:name="PAGEDOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDownSel</value></prop></node><node oor:name="PAGEDOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFootnoteArea</value></prop></node><node oor:name="PAGEUP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUp</value></prop></node><node oor:name="PAGEUP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToHeader</value></prop></node><node oor:name="PAGEUP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUpSel</value></prop></node><node oor:name="P_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SuperScript</value></prop></node><node oor:name="REPEAT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node><node oor:name="RETURN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPara</value></prop></node><node oor:name="RETURN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPagebreak</value></prop></node><node oor:name="RETURN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertLinebreak</value></prop></node><node oor:name="RETURN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertColumnBreak</value></prop></node><node oor:name="RIGHT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoRight</value></prop></node><node oor:name="RIGHT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextWord</value></prop></node><node oor:name="RIGHT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharRightSel</value></prop></node><node oor:name="RIGHT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordRightSel</value></prop></node><node oor:name="R_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RightPara</value></prop></node><node oor:name="R_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RefreshView</value></prop></node><node oor:name="SPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertNonBreakingSpace</value></prop></node><node oor:name="SUBTRACT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertSoftHyphen</value></prop></node><node oor:name="SUBTRACT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertHardHyphen</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="T_MOD1" oor:op="replace"/><node oor:name="T_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetTableProtection</value></prop></node><node oor:name="UP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUp</value></prop></node><node oor:name="UP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevPara</value></prop></node><node oor:name="UP_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveUp</value></prop></node><node oor:name="UP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineUpSel</value></prop></node><node oor:name="UP_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfParaSel</value></prop></node><node oor:name="U_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Underline</value></prop></node><node oor:name="U_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="V_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteSpecial</value></prop></node><node oor:name="X_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveDirectCharFormats</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.text.TextDocument" oor:op="replace"><node oor:name="0_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Text body&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="0_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Standard&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="1_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 1&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 2&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 3&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="4_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 4&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 5&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="ADD_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CalculateSel</value></prop></node><node oor:name="A_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaLeftToRight</value></prop></node><node oor:name="BACKSPACE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SwBackspace</value></prop></node><node oor:name="BACKSPACE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfWord</value></prop></node><node oor:name="BACKSPACE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShiftBackspace</value></prop></node><node oor:name="BACKSPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfSentence</value></prop></node><node oor:name="B_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Bold</value></prop></node><node oor:name="B_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="B_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SubScript</value></prop></node><node oor:name="DELETE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfWord</value></prop></node><node oor:name="DELETE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfSentence</value></prop></node><node oor:name="DIVIDE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertZWSP</value></prop></node><node oor:name="DOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDown</value></prop></node><node oor:name="DOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextPara</value></prop></node><node oor:name="DOWN_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveDown</value></prop></node><node oor:name="DOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineDownSel</value></prop></node><node oor:name="DOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfParaSel</value></prop></node><node oor:name="D_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UnderlineDouble</value></prop></node><node oor:name="D_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaRightToLeft</value></prop></node><node oor:name="END" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfLine</value></prop></node><node oor:name="END_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfDoc</value></prop></node><node oor:name="END_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfLineSel</value></prop></node><node oor:name="END_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfDocumentSel</value></prop></node><node oor:name="ESCAPE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Escape</value></prop></node><node oor:name="E_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CenterPara</value></prop></node><node oor:name="F10_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ControlCodes</value></prop></node><node oor:name="F11" oor:op="replace"/><node oor:name="F11_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ActivateStyleApply</value></prop></node><node oor:name="F11_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleNewByExample</value></prop></node><node oor:name="F11_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleUpdateByExample</value></prop></node><node oor:name="F12" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultNumbering</value></prop></node><node oor:name="F12_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertTable</value></prop></node><node oor:name="F12_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultBullet</value></prop></node><node oor:name="F12_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveBullets</value></prop></node><node oor:name="F2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertFormula</value></prop></node><node oor:name="F2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertField</value></prop></node><node oor:name="F3" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExpandGlossary</value></prop></node><node oor:name="F3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EditGlossary</value></prop></node><node oor:name="F3_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ChangeCaseRotateCase</value></prop></node><node oor:name="F4_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToNextFrame</value></prop></node><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Navigator</value></prop></node><node oor:name="F5_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RestoreEditingView</value></prop></node><node oor:name="F5_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GotoPage</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpellingAndGrammarDialog</value></prop></node><node oor:name="F7_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ThesaurusDialog</value></prop></node><node oor:name="F8" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetExtSelection</value></prop></node><node oor:name="F8_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Marks</value></prop></node><node oor:name="F8_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetMultiSelection</value></prop></node><node oor:name="F8_SHIFT_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="F9" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateFields</value></prop></node><node oor:name="F9_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Fieldnames</value></prop></node><node oor:name="F9_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Calc</value></prop></node><node oor:name="F9_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateInputFields</value></prop></node><node oor:name="F_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RepeatSearch</value></prop></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="HOME" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfLine</value></prop></node><node oor:name="HOME_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfDoc</value></prop></node><node oor:name="HOME_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfLineSel</value></prop></node><node oor:name="HOME_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfDocumentSel</value></prop></node><node oor:name="H_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="INSERT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertMode</value></prop></node><node oor:name="I_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Italic</value></prop></node><node oor:name="I_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectTextMode</value></prop></node><node oor:name="J_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JustifyPara</value></prop></node><node oor:name="J_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FullScreen</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="K_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="LEFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoLeft</value></prop></node><node oor:name="LEFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevWord</value></prop></node><node oor:name="LEFT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharLeftSel</value></prop></node><node oor:name="LEFT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordLeftSel</value></prop></node><node oor:name="L_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LeftPara</value></prop></node><node oor:name="MULTIPLY_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExecuteMacroField</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="C_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertAnnotation</value></prop></node><node oor:name="PAGEDOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDown</value></prop></node><node oor:name="PAGEDOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFooter</value></prop></node><node oor:name="PAGEDOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDownSel</value></prop></node><node oor:name="PAGEDOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFootnoteArea</value></prop></node><node oor:name="PAGEUP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUp</value></prop></node><node oor:name="PAGEUP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToHeader</value></prop></node><node oor:name="PAGEUP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUpSel</value></prop></node><node oor:name="P_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SuperScript</value></prop></node><node oor:name="REPEAT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node><node oor:name="RETURN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPara</value></prop></node><node oor:name="RETURN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPagebreak</value></prop></node><node oor:name="RETURN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertLinebreak</value></prop></node><node oor:name="RETURN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertColumnBreak</value></prop></node><node oor:name="RIGHT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoRight</value></prop></node><node oor:name="RIGHT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextWord</value></prop></node><node oor:name="RIGHT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharRightSel</value></prop></node><node oor:name="RIGHT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordRightSel</value></prop></node><node oor:name="R_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RightPara</value></prop></node><node oor:name="R_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RefreshView</value></prop></node><node oor:name="SPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertNonBreakingSpace</value></prop></node><node oor:name="SUBTRACT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertSoftHyphen</value></prop></node><node oor:name="SUBTRACT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertHardHyphen</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="T_MOD1" oor:op="replace"/><node oor:name="T_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetTableProtection</value></prop></node><node oor:name="UP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUp</value></prop></node><node oor:name="UP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevPara</value></prop></node><node oor:name="UP_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveUp</value></prop></node><node oor:name="UP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineUpSel</value></prop></node><node oor:name="UP_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfParaSel</value></prop></node><node oor:name="U_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Underline</value></prop></node><node oor:name="U_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="V_SHIFT_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteUnformatted</value></prop></node><node oor:name="V_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteSpecial</value></prop></node><node oor:name="X_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveDirectCharFormats</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.xforms.XMLFormDocument" oor:op="replace"><node oor:name="0_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Text body&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="0_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Standard&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="1_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 1&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 2&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 3&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="4_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 4&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="5_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleApply?Style:string=Heading 5&amp;FamilyName:string=ParagraphStyles</value></prop></node><node oor:name="ADD_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CalculateSel</value></prop></node><node oor:name="A_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaLeftToRight</value></prop></node><node oor:name="BACKSPACE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SwBackspace</value></prop></node><node oor:name="BACKSPACE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfWord</value></prop></node><node oor:name="BACKSPACE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ShiftBackspace</value></prop></node><node oor:name="BACKSPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToStartOfSentence</value></prop></node><node oor:name="B_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Bold</value></prop></node><node oor:name="B_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="B_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SubScript</value></prop></node><node oor:name="DELETE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfWord</value></prop></node><node oor:name="DELETE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DelToEndOfSentence</value></prop></node><node oor:name="DIVIDE_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertZWSP</value></prop></node><node oor:name="DOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoDown</value></prop></node><node oor:name="DOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextPara</value></prop></node><node oor:name="DOWN_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveDown</value></prop></node><node oor:name="DOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineDownSel</value></prop></node><node oor:name="DOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfParaSel</value></prop></node><node oor:name="D_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UnderlineDouble</value></prop></node><node oor:name="D_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ParaRightToLeft</value></prop></node><node oor:name="END" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfLine</value></prop></node><node oor:name="END_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToEndOfDoc</value></prop></node><node oor:name="END_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfLineSel</value></prop></node><node oor:name="END_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EndOfDocumentSel</value></prop></node><node oor:name="ESCAPE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Escape</value></prop></node><node oor:name="E_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CenterPara</value></prop></node><node oor:name="F10_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ControlCodes</value></prop></node><node oor:name="F11" oor:op="replace"/><node oor:name="F11_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ActivateStyleApply</value></prop></node><node oor:name="F11_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleNewByExample</value></prop></node><node oor:name="F11_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StyleUpdateByExample</value></prop></node><node oor:name="F12" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultNumbering</value></prop></node><node oor:name="F12_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertTable</value></prop></node><node oor:name="F12_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:DefaultBullet</value></prop></node><node oor:name="F12_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveBullets</value></prop></node><node oor:name="F2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertFormula</value></prop></node><node oor:name="F2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertField</value></prop></node><node oor:name="F3" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExpandGlossary</value></prop></node><node oor:name="F3_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:EditGlossary</value></prop></node><node oor:name="F3_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ChangeCaseRotateCase</value></prop></node><node oor:name="F4_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToNextFrame</value></prop></node><node oor:name="F5" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Navigator</value></prop></node><node oor:name="F5_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RestoreEditingView</value></prop></node><node oor:name="F5_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GotoPage</value></prop></node><node oor:name="F7" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SpellingAndGrammarDialog</value></prop></node><node oor:name="F7_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ThesaurusDialog</value></prop></node><node oor:name="F8" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetExtSelection</value></prop></node><node oor:name="F8_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Marks</value></prop></node><node oor:name="F8_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SetMultiSelection</value></prop></node><node oor:name="F8_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="F9" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateFields</value></prop></node><node oor:name="F9_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Fieldnames</value></prop></node><node oor:name="F9_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Calc</value></prop></node><node oor:name="F9_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:UpdateInputFields</value></prop></node><node oor:name="F_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RepeatSearch</value></prop></node><node oor:name="G_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="HOME" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfLine</value></prop></node><node oor:name="HOME_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToStartOfDoc</value></prop></node><node oor:name="HOME_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfLineSel</value></prop></node><node oor:name="HOME_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfDocumentSel</value></prop></node><node oor:name="H_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="INSERT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertMode</value></prop></node><node oor:name="I_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Italic</value></prop></node><node oor:name="I_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectTextMode</value></prop></node><node oor:name="J_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JustifyPara</value></prop></node><node oor:name="J_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FullScreen</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="K_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="LEFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoLeft</value></prop></node><node oor:name="LEFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevWord</value></prop></node><node oor:name="LEFT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharLeftSel</value></prop></node><node oor:name="LEFT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordLeftSel</value></prop></node><node oor:name="L_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LeftPara</value></prop></node><node oor:name="MULTIPLY_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ExecuteMacroField</value></prop></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="C_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertAnnotation</value></prop></node><node oor:name="PAGEDOWN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDown</value></prop></node><node oor:name="PAGEDOWN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFooter</value></prop></node><node oor:name="PAGEDOWN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageDownSel</value></prop></node><node oor:name="PAGEDOWN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToFootnoteArea</value></prop></node><node oor:name="PAGEUP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUp</value></prop></node><node oor:name="PAGEUP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:JumpToHeader</value></prop></node><node oor:name="PAGEUP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PageUpSel</value></prop></node><node oor:name="P_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SuperScript</value></prop></node><node oor:name="REPEAT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Repeat</value></prop></node><node oor:name="RETURN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPara</value></prop></node><node oor:name="RETURN_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertPagebreak</value></prop></node><node oor:name="RETURN_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertLinebreak</value></prop></node><node oor:name="RETURN_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertColumnBreak</value></prop></node><node oor:name="RIGHT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoRight</value></prop></node><node oor:name="RIGHT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToNextWord</value></prop></node><node oor:name="RIGHT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CharRightSel</value></prop></node><node oor:name="RIGHT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:WordRightSel</value></prop></node><node oor:name="R_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RightPara</value></prop></node><node oor:name="R_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RefreshView</value></prop></node><node oor:name="SPACE_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertNonBreakingSpace</value></prop></node><node oor:name="SUBTRACT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertSoftHyphen</value></prop></node><node oor:name="SUBTRACT_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertHardHyphen</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="T_MOD1" oor:op="replace"/><node oor:name="T_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetTableProtection</value></prop></node><node oor:name="UP" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoUp</value></prop></node><node oor:name="UP_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:GoToPrevPara</value></prop></node><node oor:name="UP_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:MoveUp</value></prop></node><node oor:name="UP_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:LineUpSel</value></prop></node><node oor:name="UP_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:StartOfParaSel</value></prop></node><node oor:name="U_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Underline</value></prop></node><node oor:name="U_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="V_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:PasteSpecial</value></prop></node><node oor:name="X_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:RemoveDirectCharFormats</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.report.ReportDefinition" oor:op="replace"/></node></node><node oor:name="SecondaryKeys"><node oor:name="Global"><node oor:name="COPY" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="CUT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="DELETE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="F4_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CloseWin</value></prop></node><node oor:name="INSERT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="INSERT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="OPEN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Open</value></prop></node><node oor:name="PASTE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node></node><node oor:name="Modules"><node oor:name="com.sun.star.frame.StartModule" oor:op="replace"><node oor:name="COPY" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="CUT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="DELETE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="F4_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CloseWin</value></prop></node><node oor:name="INSERT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="INSERT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="OPEN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Open</value></prop></node><node oor:name="PASTE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node></node><node oor:name="com.sun.star.sheet.SpreadsheetDocument" oor:op="replace"><node oor:name="ADD_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertCell</value></prop></node><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="F5_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:FocusCellAddress</value></prop></node><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.chart2.ChartDocument" oor:op="replace"><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="COPY" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="CUT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="DELETE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="F4_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:CloseWin</value></prop></node><node oor:name="F4_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Quit</value></prop></node><node oor:name="INSERT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="INSERT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="OPEN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Open</value></prop></node><node oor:name="PASTE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.drawing.DrawingDocument" oor:op="replace"><node oor:name="C_MOD1_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:InsertAnnotation</value></prop></node><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="COPY" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="CUT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="DELETE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="INSERT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="INSERT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="OPEN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Open</value></prop></node><node oor:name="PASTE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.text.GlobalDocument" oor:op="replace"><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="F8_SHIFT_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.presentation.PresentationDocument" oor:op="replace"><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="COPY" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="CUT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="DELETE_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Cut</value></prop></node><node oor:name="F2_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Presentation</value></prop></node><node oor:name="F9" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Presentation</value></prop></node><node oor:name="INSERT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Copy</value></prop></node><node oor:name="INSERT_SHIFT" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="K_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="N_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="OPEN" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Open</value></prop></node><node oor:name="PASTE" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Paste</value></prop></node><node oor:name="S_MOD1" oor:op="replace"><prop oor:name="Command"/></node><node oor:name="T_MOD1" oor:op="replace"/><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.formula.FormulaProperties" oor:op="replace"><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.text.WebDocument" oor:op="replace"><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="F8_SHIFT_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.sdb.FormDesign" oor:op="replace"><node oor:name="F8_SHIFT_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="Z_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.sdb.TextReportDesign" oor:op="replace"><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="F8_SHIFT_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.text.TextDocument" oor:op="replace"><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="F8_SHIFT_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node><node oor:name="com.sun.star.xforms.XMLFormDocument" oor:op="replace"><node oor:name="BACKSPACE_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node><node oor:name="F8_SHIFT_MOD2" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:SelectionModeBlock</value></prop></node><node oor:name="UNDO" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Undo</value></prop></node></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Calc" oor:package="org.openoffice.Office"><node oor:name="UnitConversion"><node oor:name="CR1" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>ATS</value></prop><prop oor:name="Factor"><value>13.7603</value></prop></node><node oor:name="CR2" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>BEF</value></prop><prop oor:name="Factor"><value>40.3399</value></prop></node><node oor:name="CR3" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>DEM</value></prop><prop oor:name="Factor"><value>1.95583</value></prop></node><node oor:name="CR4" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>ESP</value></prop><prop oor:name="Factor"><value>166.386</value></prop></node><node oor:name="CR5" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>FIM</value></prop><prop oor:name="Factor"><value>5.94573</value></prop></node><node oor:name="CR6" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>FRF</value></prop><prop oor:name="Factor"><value>6.55957</value></prop></node><node oor:name="CR7" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>IEP</value></prop><prop oor:name="Factor"><value>.787564</value></prop></node><node oor:name="CR8" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>ITL</value></prop><prop oor:name="Factor"><value>1936.27</value></prop></node><node oor:name="CR9" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>LUF</value></prop><prop oor:name="Factor"><value>40.3399</value></prop></node><node oor:name="CR10" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>NLG</value></prop><prop oor:name="Factor"><value>2.20371</value></prop></node><node oor:name="CR11" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>PTE</value></prop><prop oor:name="Factor"><value>200.482</value></prop></node><node oor:name="CR12" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>GRD</value></prop><prop oor:name="Factor"><value>340.750</value></prop></node><node oor:name="CR13" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>SIT</value></prop><prop oor:name="Factor"><value>239.640</value></prop></node><node oor:name="CR14" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>MTL</value></prop><prop oor:name="Factor"><value>.429300</value></prop></node><node oor:name="CR15" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>CYP</value></prop><prop oor:name="Factor"><value>.585274</value></prop></node><node oor:name="CR16" oor:op="replace"><prop oor:name="FromUnit"><value>EUR</value></prop><prop oor:name="ToUnit"><value>SKK</value></prop><prop oor:name="Factor"><value>30.1260</value></prop></node></node><node oor:name="Calculate"><node oor:name="Other"><node oor:name="Date"><prop oor:name="YY"><value>1899</value></prop><prop oor:name="MM"><value>12</value></prop><prop oor:name="DD"><value>30</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Canvas" oor:package="org.openoffice.Office"><node oor:name="DXCanvas"><prop oor:name="DeviceBlacklist" oor:type="oor:int-list"><value>
+
+ 4139 9511 260313131 1 5 13 1 1320
+
+ 4139 9511 255987755 1 6 12 1 1930
+
+ 4139 1317 54005803 4 5 12 1 1200
+
+ 4098 19545 -2132340659 0 6 13 3265 0
+
+ 4098 19526 11604008 2 5 10 0 1028
+ </value></prop></node><node oor:name="CanvasServiceList"><node oor:name="com.sun.star.rendering.Canvas" oor:op="replace"><prop oor:name="PreferredImplementations" oor:type="oor:string-list"><value oor:separator=",">com.sun.star.comp.rendering.BitmapCanvas.GDI+,
+ com.sun.star.comp.rendering.Canvas.GDI+,
+ com.sun.star.comp.rendering.Canvas.Cairo,
+ com.sun.star.comp.rendering.Canvas.GL,
+ com.sun.star.comp.rendering.Canvas.Java,
+ com.sun.star.comp.rendering.Canvas.VCL
+ </value></prop><prop oor:name="AcceleratedImplementations" oor:type="oor:string-list"><value oor:separator=",">com.sun.star.comp.rendering.Canvas.GL,
+ com.sun.star.comp.rendering.Canvas.Java
+ </value></prop><prop oor:name="AntialiasingImplementations" oor:type="oor:string-list"><value oor:separator=",">com.sun.star.comp.rendering.BitmapCanvas.GDI+,
+ com.sun.star.comp.rendering.Canvas.GDI+,
+ com.sun.star.comp.rendering.Canvas.Cairo,
+ com.sun.star.comp.rendering.Canvas.GL,
+ com.sun.star.comp.rendering.Canvas.Java
+ </value></prop></node><node oor:name="com.sun.star.rendering.SpriteCanvas" oor:op="replace"><prop oor:name="PreferredImplementations" oor:type="oor:string-list"><value oor:separator=",">com.sun.star.comp.rendering.SpriteCanvas.DX9,
+ com.sun.star.comp.rendering.SpriteCanvas.DX5,
+ com.sun.star.comp.rendering.SpriteCanvas.Cairo,
+ com.sun.star.comp.rendering.SpriteCanvas.GL,
+ com.sun.star.comp.rendering.SpriteCanvas.Java,
+ com.sun.star.comp.rendering.SpriteCanvas.VCL
+ </value></prop><prop oor:name="AcceleratedImplementations" oor:type="oor:string-list"><value oor:separator=",">com.sun.star.comp.rendering.SpriteCanvas.DX9,
+ com.sun.star.comp.rendering.SpriteCanvas.DX5,
+ com.sun.star.comp.rendering.SpriteCanvas.Cairo,
+ com.sun.star.comp.rendering.SpriteCanvas.GL,
+ com.sun.star.comp.rendering.SpriteCanvas.Java
+ </value></prop><prop oor:name="AntialiasingImplementations" oor:type="oor:string-list"><value oor:separator=",">com.sun.star.comp.rendering.SpriteCanvas.DX9,
+ com.sun.star.comp.rendering.SpriteCanvas.DX5,
+ com.sun.star.comp.rendering.SpriteCanvas.Cairo,
+ com.sun.star.comp.rendering.SpriteCanvas.GL,
+ com.sun.star.comp.rendering.SpriteCanvas.Java
+ </value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"><node oor:name="View"><node oor:name="Localisation"><prop oor:name="AutoMnemonic"><value xml:lang="en-US">true</value></prop><prop oor:name="DialogScale"><value xml:lang="en-US">10</value></prop></node></node><node oor:name="Help"><node oor:name="StartCenter"><prop oor:name="TemplateRepositoryURL" oor:type="xs:string"><value>http://templates.libreoffice.org/</value></prop></node><node oor:name="Registration"><prop oor:name="ReminderDate"><value>Patch</value></prop></node></node><node oor:name="Menus"><node oor:name="New"><node oor:name="m5" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:separator</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node><node oor:name="m9" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:separator</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node><node oor:name="m13" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:separator</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node><node oor:name="m14" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>slot:5500</value></prop><prop oor:name="Title"><value xml:lang="en-US">Templates a~nd Documents</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3242</value></prop></node></node><node oor:name="Wizard"><node oor:name="m4" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:separator</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop></node><node oor:name="m6" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:separator</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop></node><node oor:name="m10" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:separator</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop></node><node oor:name="m11" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>macro:///ImportWizard.Main.Main</value></prop><prop oor:name="Title"><value xml:lang="en-US">Document ~Converter...</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3216</value></prop></node><node oor:name="m13" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:separator</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop></node></node></node><node oor:name="Forms"><node oor:name="ControlLayout"><node oor:name="com.sun.star.xforms.XMLFormDocument"><prop oor:name="VisualEffect" oor:type="xs:string"><value>flat</value></prop><prop oor:name="DynamicBorderColors" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="com.sun.star.sdb.FormDesign"><prop oor:name="VisualEffect" oor:type="xs:string"><value>flat</value></prop><prop oor:name="DynamicBorderColors" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UseDocumentTextMetrics" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="com.sun.star.sheet.SpreadsheetDocument"><prop oor:name="UseDocumentTextMetrics" oor:type="xs:boolean"><value>false</value></prop></node></node></node><node oor:name="Startup"><node oor:name="RunOnce"><node oor:name="AddressSourcePilot" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ui.dialogs.AddressBookSourcePilot</value></prop><prop oor:name="UserInteraction"><value>true</value></prop><prop oor:name="AllowAsync"><value>false</value></prop></node></node></node><node oor:name="Save"><node oor:name="Document"/><node oor:name="ODF"/></node><node oor:name="Security"><node oor:name="Scripting"/></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="DataAccess" oor:package="org.openoffice.Office"><node oor:name="ConnectionPool"><node oor:name="DriverSettings"><node oor:name="com.sun.star.comp.sdbc.evoab.OEvoabDriver" oor:op="replace"><prop oor:name="DriverName"><value>com.sun.star.comp.sdbc.evoab.OEvoabDriver</value></prop><prop oor:name="Enable"><value>false</value></prop><prop oor:name="Timeout"><value>60</value></prop></node><node oor:name="com.sun.star.comp.sdbc.kab.Driver" oor:op="replace"><prop oor:name="DriverName"><value>com.sun.star.comp.sdbc.kab.Driver</value></prop><prop oor:name="Enable"><value>false</value></prop><prop oor:name="Timeout"><value>60</value></prop></node><node oor:name="com.sun.star.comp.sdbc.ado.ODriver" oor:op="replace"><prop oor:name="DriverName"><value>com.sun.star.comp.sdbc.ado.ODriver</value></prop><prop oor:name="Enable"><value>false</value></prop><prop oor:name="Timeout"><value>60</value></prop></node><node oor:name="com.sun.star.comp.sdbc.flat.ODriver" oor:op="replace"><prop oor:name="DriverName"><value>com.sun.star.comp.sdbc.flat.ODriver</value></prop><prop oor:name="Enable"><value>false</value></prop><prop oor:name="Timeout"><value>60</value></prop></node><node oor:name="com.sun.star.comp.sdbc.calc.ODriver" oor:op="replace"><prop oor:name="DriverName"><value>com.sun.star.comp.sdbc.calc.ODriver</value></prop><prop oor:name="Enable"><value>false</value></prop><prop oor:name="Timeout"><value>60</value></prop></node><node oor:name="com.sun.star.comp.sdbc.dbase.ODriver" oor:op="replace"><prop oor:name="DriverName"><value>com.sun.star.comp.sdbc.dbase.ODriver</value></prop><prop oor:name="Enable"><value>false</value></prop><prop oor:name="Timeout"><value>60</value></prop></node><node oor:name="com.sun.star.comp.sdbc.JDBCDriver" oor:op="replace"><prop oor:name="DriverName"><value>com.sun.star.comp.sdbc.JDBCDriver</value></prop><prop oor:name="Enable"><value>false</value></prop><prop oor:name="Timeout"><value>60</value></prop></node><node oor:name="com.sun.star.comp.sdbc.MozabDriver" oor:op="replace"><prop oor:name="DriverName"><value>com.sun.star.comp.sdbc.MozabDriver</value></prop><prop oor:name="Enable"><value>false</value></prop><prop oor:name="Timeout"><value>60</value></prop></node><node oor:name="org.openoffice.comp.drivers.MySQL.Driver" oor:op="replace"><prop oor:name="DriverName"><value>org.openoffice.comp.drivers.MySQL.Driver</value></prop><prop oor:name="Enable"><value>false</value></prop><prop oor:name="Timeout"><value>60</value></prop></node><node oor:name="com.sun.star.comp.sdbc.ODBCDriver" oor:op="replace"><prop oor:name="DriverName"><value>com.sun.star.comp.sdbc.ODBCDriver</value></prop><prop oor:name="Enable"><value>false</value></prop><prop oor:name="Timeout"><value>60</value></prop></node></node></node><node oor:name="RegisteredNames"><node oor:name="org.openoffice.Bibliography" oor:op="replace"><prop oor:name="Location" oor:type="xs:string"><value>$(userurl)/database/biblio.odb</value></prop><prop oor:name="Name" oor:type="xs:string"><value>Bibliography</value></prop></node></node><node oor:name="Bibliography"><node oor:name="CurrentDataSource"><prop oor:name="DataSourceName"><value>Bibliography</value></prop><prop oor:name="Command"><value>biblio</value></prop><prop oor:name="CommandType"><value>0</value></prop></node><node oor:name="DataSourceHistory"><node oor:name="Default" oor:op="replace"><prop oor:name="DataSourceName"><value>Bibliography</value></prop><prop oor:name="Command"><value>biblio</value></prop><prop oor:name="CommandType"><value>0</value></prop><node oor:name="Fields"><node oor:name="ShortName" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Identifier</value></prop><prop oor:name="AssignedFieldName"><value>Identifier</value></prop></node><node oor:name="Type" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>BibliographyType</value></prop><prop oor:name="AssignedFieldName"><value>Type</value></prop></node><node oor:name="Author" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Author</value></prop><prop oor:name="AssignedFieldName"><value>Author</value></prop></node><node oor:name="Title" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Title</value></prop><prop oor:name="AssignedFieldName"><value>Title</value></prop></node><node oor:name="Year" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Year</value></prop><prop oor:name="AssignedFieldName"><value>Year</value></prop></node><node oor:name="ISBN" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>ISBN</value></prop><prop oor:name="AssignedFieldName"><value>ISBN</value></prop></node><node oor:name="Booktitle" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Booktitle</value></prop><prop oor:name="AssignedFieldName"><value>Booktitle</value></prop></node><node oor:name="Chapter" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Chapter</value></prop><prop oor:name="AssignedFieldName"><value>Chapter</value></prop></node><node oor:name="Edition" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Edition</value></prop><prop oor:name="AssignedFieldName"><value>Edition</value></prop></node><node oor:name="Editor" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Editor</value></prop><prop oor:name="AssignedFieldName"><value>Editor</value></prop></node><node oor:name="PublicationType" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Howpublished</value></prop><prop oor:name="AssignedFieldName"><value>Howpublish</value></prop></node><node oor:name="Institution" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Institution</value></prop><prop oor:name="AssignedFieldName"><value>Institutn</value></prop></node><node oor:name="Journal" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Journal</value></prop><prop oor:name="AssignedFieldName"><value>Journal</value></prop></node><node oor:name="Month" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Month</value></prop><prop oor:name="AssignedFieldName"><value>Month</value></prop></node><node oor:name="Note" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Note</value></prop><prop oor:name="AssignedFieldName"><value>Note</value></prop></node><node oor:name="Annotation" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Annote</value></prop><prop oor:name="AssignedFieldName"><value>Annote</value></prop></node><node oor:name="Number" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Number</value></prop><prop oor:name="AssignedFieldName"><value>Number</value></prop></node><node oor:name="Organization" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Organizations</value></prop><prop oor:name="AssignedFieldName"><value>Organizat</value></prop></node><node oor:name="Page" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Pages</value></prop><prop oor:name="AssignedFieldName"><value>Pages</value></prop></node><node oor:name="Publisher" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Publisher</value></prop><prop oor:name="AssignedFieldName"><value>Publisher</value></prop></node><node oor:name="Address" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Address</value></prop><prop oor:name="AssignedFieldName"><value>Address</value></prop></node><node oor:name="University" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>School</value></prop><prop oor:name="AssignedFieldName"><value>School</value></prop></node><node oor:name="Series" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Series</value></prop><prop oor:name="AssignedFieldName"><value>Series</value></prop></node><node oor:name="Report" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>ReportType</value></prop><prop oor:name="AssignedFieldName"><value>RepType</value></prop></node><node oor:name="Volume" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Volume</value></prop><prop oor:name="AssignedFieldName"><value>Volume</value></prop></node><node oor:name="URL" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>URL</value></prop><prop oor:name="AssignedFieldName"><value>URL</value></prop></node><node oor:name="UserDefined1" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Custom1</value></prop><prop oor:name="AssignedFieldName"><value>Custom1</value></prop></node><node oor:name="UserDefined2" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Custom2</value></prop><prop oor:name="AssignedFieldName"><value>Custom2</value></prop></node><node oor:name="UserDefined3" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Custom3</value></prop><prop oor:name="AssignedFieldName"><value>Custom3</value></prop></node><node oor:name="UserDefined4" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Custom4</value></prop><prop oor:name="AssignedFieldName"><value>Custom4</value></prop></node><node oor:name="UserDefined5" oor:op="replace"><prop oor:name="ProgrammaticFieldName"><value>Custom5</value></prop><prop oor:name="AssignedFieldName"><value>Custom5</value></prop></node></node></node></node></node><node oor:name="DriverSettings"><node oor:name="com.sun.star.comp.sdbc.MozabDriver"><node oor:name="MozillaPreferences"><prop oor:name="PabDescription"><value xml:lang="en-US">Personal Address book</value></prop><prop oor:name="HisDescription"><value xml:lang="en-US">Collected Addresses</value></prop></node><node oor:name="ColumnAliases"><prop oor:name="FirstName"><value xml:lang="en-US">First Name</value></prop><prop oor:name="LastName"><value xml:lang="en-US">Last Name</value></prop><prop oor:name="DisplayName"><value xml:lang="en-US">Display Name</value></prop><prop oor:name="NickName"><value xml:lang="en-US">Nickname</value></prop><prop oor:name="PrimaryEmail"><value xml:lang="en-US">E-mail</value></prop><prop oor:name="SecondEmail"><value xml:lang="en-US">E-mail (2)</value></prop><prop oor:name="PreferMailFormat"><value xml:lang="en-US">Mail Format</value></prop><prop oor:name="WorkPhone"><value xml:lang="en-US">Phone (Work)</value></prop><prop oor:name="HomePhone"><value xml:lang="en-US">Phone (Home)</value></prop><prop oor:name="FaxNumber"><value xml:lang="en-US">Fax</value></prop><prop oor:name="PagerNumber"><value xml:lang="en-US">Pager</value></prop><prop oor:name="CellularNumber"><value xml:lang="en-US">Mobile</value></prop><prop oor:name="HomeAddress"><value xml:lang="en-US">Address 1</value></prop><prop oor:name="HomeAddress2"><value xml:lang="en-US">Address 2</value></prop><prop oor:name="HomeCity"><value xml:lang="en-US">City</value></prop><prop oor:name="HomeState"><value xml:lang="en-US">State</value></prop><prop oor:name="HomeZipCode"><value xml:lang="en-US">ZIP/Postal (Home)</value></prop><prop oor:name="HomeCountry"><value xml:lang="en-US">Country</value></prop><prop oor:name="WorkAddress"><value xml:lang="en-US">Work Address</value></prop><prop oor:name="WorkAddress2"><value xml:lang="en-US">Work Address 2</value></prop><prop oor:name="WorkCity"><value xml:lang="en-US">City (Work)</value></prop><prop oor:name="WorkState"><value xml:lang="en-US">State (Work)</value></prop><prop oor:name="WorkZipCode"><value xml:lang="en-US">Zip/Postal (Work)</value></prop><prop oor:name="WorkCountry"><value xml:lang="en-US">Country (Work)</value></prop><prop oor:name="JobTitle"><value xml:lang="en-US">Job Title</value></prop><prop oor:name="Department"><value xml:lang="en-US">Department</value></prop><prop oor:name="Company"><value xml:lang="en-US">Company</value></prop><prop oor:name="WebPage1"><value xml:lang="en-US">Web Page (Work)</value></prop><prop oor:name="WebPage2"><value xml:lang="en-US">Web Page (Home)</value></prop><prop oor:name="BirthYear"><value xml:lang="en-US">Birth Year</value></prop><prop oor:name="BirthMonth"><value xml:lang="en-US">Birth Month</value></prop><prop oor:name="BirthDay"><value xml:lang="en-US">Birth Day</value></prop><prop oor:name="Custom1"><value xml:lang="en-US">Custom 1</value></prop><prop oor:name="Custom2"><value xml:lang="en-US">Custom 2</value></prop><prop oor:name="Custom3"><value xml:lang="en-US">Custom 3</value></prop><prop oor:name="Custom4"><value xml:lang="en-US">Custom 4</value></prop><prop oor:name="Notes"><value xml:lang="en-US">Comments</value></prop></node></node><node oor:name="com.sun.star.comp.sdbc.evoab.OEvoabDriver"><node oor:name="EvolutionPreferences"><prop oor:name="FullPathExportingCommand"><value>file:///usr/share/evolution/*/evolution-addressbook-export</value></prop></node><node oor:name="ColumnAliases"><prop oor:name="FirstName"><value>given_name</value></prop><prop oor:name="LastName"><value>family_name</value></prop><prop oor:name="DisplayName"><value>full_name</value></prop><prop oor:name="NickName"><value>nickname</value></prop><prop oor:name="PrimaryEmail"><value>email</value></prop><prop oor:name="SecondEmail"><value>email_2</value></prop><prop oor:name="PreferMailFormat"><value>wants_html</value></prop><prop oor:name="WorkPhone"><value>business_phone</value></prop><prop oor:name="HomePhone"><value>home_phone</value></prop><prop oor:name="FaxNumber"><value>business_fax</value></prop><prop oor:name="PagerNumber"><value>pager</value></prop><prop oor:name="CellularNumber"><value>mobile_phone</value></prop><prop oor:name="HomeAddress"><value>Home Address</value></prop><prop oor:name="HomeAddress2"><value>Home Address2</value></prop><prop oor:name="HomeCity"><value>Home Address City</value></prop><prop oor:name="HomeState"><value>Home Address State</value></prop><prop oor:name="HomeZipCode"><value>Home Address PostCode</value></prop><prop oor:name="HomeCountry"><value>Home Address Country</value></prop><prop oor:name="WorkAddress"><value>Business Address</value></prop><prop oor:name="WorkAddress2"><value>Business Address2</value></prop><prop oor:name="WorkCity"><value>Business Address City</value></prop><prop oor:name="WorkState"><value>Business Address State</value></prop><prop oor:name="WorkZipCode"><value>Business Address PostCode</value></prop><prop oor:name="WorkCountry"><value>Business Address Country</value></prop><prop oor:name="JobTitle"><value>title</value></prop><prop oor:name="Department"><value>office</value></prop><prop oor:name="Company"><value>org</value></prop><prop oor:name="WebPage1"><value>url</value></prop><prop oor:name="WebPage2"><value>caluri</value></prop><prop oor:name="BirthYear"><value>Birth Year</value></prop><prop oor:name="BirthMonth"><value>Birth Month</value></prop><prop oor:name="BirthDay"><value>Birth Day</value></prop><prop oor:name="Notes"><value>note</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:package="org.openoffice.Office" oor:name="Embedding"><node oor:name="Verbs"><node oor:name="PRIMARY" oor:op="replace"><prop oor:name="VerbUIName"><value>Primary</value></prop><prop oor:name="VerbID"><value>0</value></prop><prop oor:name="VerbFlags"><value>0</value></prop><prop oor:name="VerbAttributes"><value>0</value></prop></node><node oor:name="SHOW" oor:op="replace"><prop oor:name="VerbUIName"><value xml:lang="en-US">~Edit</value></prop><prop oor:name="VerbID"><value>-1</value></prop><prop oor:name="VerbFlags"><value>0</value></prop><prop oor:name="VerbAttributes"><value>2</value></prop></node><node oor:name="OPEN" oor:op="replace"><prop oor:name="VerbUIName"><value xml:lang="en-US">~Open</value></prop><prop oor:name="VerbID"><value>-2</value></prop><prop oor:name="VerbFlags"><value>0</value></prop><prop oor:name="VerbAttributes"><value>0</value></prop></node><node oor:name="HIDE" oor:op="replace"><prop oor:name="VerbUIName"><value>Hide</value></prop><prop oor:name="VerbID"><value>-3</value></prop><prop oor:name="VerbFlags"><value>0</value></prop><prop oor:name="VerbAttributes"><value>0</value></prop></node><node oor:name="UIACTIVATE" oor:op="replace"><prop oor:name="VerbUIName"><value>UI activate</value></prop><prop oor:name="VerbID"><value>-4</value></prop><prop oor:name="VerbFlags"><value>0</value></prop><prop oor:name="VerbAttributes"><value>0</value></prop></node><node oor:name="IPACTIVATE" oor:op="replace"><prop oor:name="VerbUIName"><value>Activate inplace</value></prop><prop oor:name="VerbID"><value>-5</value></prop><prop oor:name="VerbFlags"><value>0</value></prop><prop oor:name="VerbAttributes"><value>0</value></prop></node><node oor:name="PROPERTIES" oor:op="replace"><prop oor:name="VerbUIName"><value xml:lang="en-US">Propert~ies...</value></prop><prop oor:name="VerbID"><value>-7</value></prop><prop oor:name="VerbFlags"><value>0</value></prop><prop oor:name="VerbAttributes"><value>2</value></prop></node><node oor:name="SAVECOPYAS" oor:op="replace"><prop oor:name="VerbUIName"><value xml:lang="en-US">Save Copy ~as...</value></prop><prop oor:name="VerbID"><value>-8</value></prop><prop oor:name="VerbFlags"><value>0</value></prop><prop oor:name="VerbAttributes"><value>2</value></prop></node></node><node oor:name="Objects"><node oor:name="970B1E81-CF2D-11CF-89CA-008029E4B0B1" oor:op="replace"><prop oor:name="ObjectFactory"><value>com.sun.star.embed.OOoSpecialEmbeddedObjectFactory</value></prop><prop oor:name="ObjectDocumentServiceName"><value>com.sun.star.comp.sfx2.AppletObject</value></prop><prop oor:name="ObjectMiscStatus"><value>4294969728</value></prop><prop oor:name="ObjectVerbs"><value>PRIMARY SHOW IPACTIVATE PROPERTIES</value></prop></node><node oor:name="4CAA7761-6B8B-11CF-89CA-008029E4B0B1" oor:op="replace"><prop oor:name="ObjectFactory"><value>com.sun.star.embed.OOoSpecialEmbeddedObjectFactory</value></prop><prop oor:name="ObjectDocumentServiceName"><value>com.sun.star.comp.sfx2.PluginObject</value></prop><prop oor:name="ObjectMiscStatus"><value>2432</value></prop><prop oor:name="ObjectVerbs"><value>PRIMARY SHOW IPACTIVATE PROPERTIES</value></prop></node><node oor:name="1A8A6701-DE58-11CF-89CA-008029E4B0B1" oor:op="replace"><prop oor:name="ObjectFactory"><value>com.sun.star.embed.OOoSpecialEmbeddedObjectFactory</value></prop><prop oor:name="ObjectDocumentServiceName"><value>com.sun.star.comp.sfx2.IFrameObject</value></prop><prop oor:name="ObjectMiscStatus"><value>2432</value></prop><prop oor:name="ObjectVerbs"><value>PRIMARY SHOW IPACTIVATE PROPERTIES</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="ExtensionManager" oor:package="org.openoffice.Office"><node oor:name="ExtensionRepositories"><prop oor:name="WebsiteLink"><value>http://extensions.libreoffice.org/</value></prop></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="FormWizard" oor:package="org.openoffice.Office"><node oor:name="FormWizard"><node oor:name="Styles"><node oor:name="style1" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">Beige</value></prop><prop oor:name="CssHref"><value>beige.css</value></prop></node><node oor:name="style2" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Bright Blue</value></prop><prop oor:name="CssHref"><value>bgr.css</value></prop></node><node oor:name="style3" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">Light Gray</value></prop><prop oor:name="CssHref"><value>grey.css</value></prop></node><node oor:name="style4" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Dark</value></prop><prop oor:name="CssHref"><value>dark.css</value></prop></node><node oor:name="style5" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">Orange</value></prop><prop oor:name="CssHref"><value>orange.css</value></prop></node><node oor:name="style6" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">Ice Blue</value></prop><prop oor:name="CssHref"><value>ibg.css</value></prop></node><node oor:name="style7" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">Grey</value></prop><prop oor:name="CssHref"><value>ice.css</value></prop></node><node oor:name="style8" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">Water</value></prop><prop oor:name="CssHref"><value>water.css</value></prop></node><node oor:name="style9" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">Red</value></prop><prop oor:name="CssHref"><value>red.css</value></prop></node><node oor:name="style10" oor:op="replace"><prop oor:name="Index"><value>19</value></prop><prop oor:name="Name"><value xml:lang="en-US">Violet</value></prop><prop oor:name="CssHref"><value>violet.css</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Histories" oor:package="org.openoffice.Office"><node oor:name="Histories"><node oor:name="HelpBookmarks" oor:op="fuse" oor:mandatory="true"/><node oor:name="URLHistory" oor:op="fuse" oor:mandatory="true"/><node oor:name="PickList" oor:op="fuse" oor:mandatory="true"/></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Impress" oor:package="org.openoffice.Office"><node oor:name="MultiPaneGUI"><node oor:name="Framework"><node oor:name="ResourceFactories"><node oor:name="F0" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.drawing.framework.BasicPaneFactory</value></prop><node oor:name="ResourceList"><node oor:name="R0" oor:op="replace"><prop oor:name="URL"><value>private:resource/pane/CenterPane</value></prop></node><node oor:name="R1" oor:op="replace"><prop oor:name="URL"><value>private:resource/pane/LeftImpressPane</value></prop></node><node oor:name="R2" oor:op="replace"><prop oor:name="URL"><value>private:resource/pane/LeftDrawPane</value></prop></node><node oor:name="R3" oor:op="replace"><prop oor:name="URL"><value>private:resource/pane/RightPane</value></prop></node></node></node><node oor:name="F1" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.drawing.framework.BasicViewFactory</value></prop><node oor:name="ResourceList"><node oor:name="R0" oor:op="replace"><prop oor:name="URL"><value>private:resource/view/ImpressView</value></prop></node><node oor:name="R1" oor:op="replace"><prop oor:name="URL"><value>private:resource/view/GraphicView</value></prop></node><node oor:name="R2" oor:op="replace"><prop oor:name="URL"><value>private:resource/view/OutlineView</value></prop></node><node oor:name="R3" oor:op="replace"><prop oor:name="URL"><value>private:resource/view/NotesView</value></prop></node><node oor:name="R4" oor:op="replace"><prop oor:name="URL"><value>private:resource/view/HandoutView</value></prop></node><node oor:name="R5" oor:op="replace"><prop oor:name="URL"><value>private:resource/view/SlideSorter</value></prop></node><node oor:name="R6" oor:op="replace"><prop oor:name="URL"><value>private:resource/view/TaskPane</value></prop></node><node oor:name="R7" oor:op="replace"><prop oor:name="URL"><value>private:resource/view/PresentationView</value></prop></node></node></node><node oor:name="F2" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.drawing.framework.BasicToolBarFactory</value></prop><node oor:name="ResourceList"><node oor:name="R0" oor:op="replace"><prop oor:name="URL"><value>private:resource/toolbar/ViewTabBar</value></prop></node></node></node><node oor:name="F3" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.drawing.framework.TaskPanelFactory</value></prop><node oor:name="ResourceList"><node oor:name="R0" oor:op="replace"><prop oor:name="URL"><value>private:resource/toolpanel/DrawingFramework/MasterPages</value></prop></node><node oor:name="R1" oor:op="replace"><prop oor:name="URL"><value>private:resource/toolpanel/DrawingFramework/Layouts</value></prop></node><node oor:name="R2" oor:op="replace"><prop oor:name="URL"><value>private:resource/toolpanel/DrawingFramework/TableDesign</value></prop></node><node oor:name="R3" oor:op="replace"><prop oor:name="URL"><value>private:resource/toolpanel/DrawingFramework/CustomAnimations</value></prop></node><node oor:name="R4" oor:op="replace"><prop oor:name="URL"><value>private:resource/toolpanel/DrawingFramework/SlideTransitions</value></prop></node></node></node></node><node oor:name="StartupServices"><node oor:name="S0" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.drawing.framework.PresentationFactoryProvider</value></prop></node></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Jobs" oor:package="org.openoffice.Office"><node oor:name="Jobs"><node oor:name="RegistrationRequest" oor:op="replace"><prop oor:name="Service"><value>com.sun.star.setup.ProductRegistration</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Labels" oor:package="org.openoffice.Office"><node oor:name="Manufacturer"><node oor:name="Tower" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W100 Mailing Label</value></prop><prop oor:name="Measure"><value>S;7000;3700;7000;3700;0;0;3;8</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W101 Mailing Label</value></prop><prop oor:name="Measure"><value>S;10500;3700;10500;3700;0;0;2;8</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W102 Freight Label</value></prop><prop oor:name="Measure"><value>S;10500;4720;10100;4600;200;420;2;6</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W103 Freight Label</value></prop><prop oor:name="Measure"><value>S;10300;7000;10100;7000;300;420;2;4</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W104 Freight Label</value></prop><prop oor:name="Measure"><value>S;10800;14400;9800;13900;200;420;2;2</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W105 Freight Label</value></prop><prop oor:name="Measure"><value>S;19960;14500;19960;14500;500;400;1;2</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W106 Freight Label</value></prop><prop oor:name="Measure"><value>S;21000;29600;21000;29600;0;0;1;1</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W107 Mailing Label</value></prop><prop oor:name="Measure"><value>S;4060;2120;3810;2120;470;1160;5;13</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W108 Mailing Label</value></prop><prop oor:name="Measure"><value>S;6600;3810;6350;3810;720;1590;3;7</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W110 Mailing Label</value></prop><prop oor:name="Measure"><value>S;7000;3500;7000;3500;0;420;3;8</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W111 Mailing Label</value></prop><prop oor:name="Measure"><value>S;10500;3500;10500;3500;0;420;2;8</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W115 Mailing Label</value></prop><prop oor:name="Measure"><value>S;4050;2990;3850;2990;500;1450;5;9</value></prop></node><node oor:name="L12" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W116 (32mm dia) Round</value></prop><prop oor:name="Measure"><value>S;3340;3520;3200;3200;500;1000;6;8</value></prop></node><node oor:name="L13" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W117 (50mm dia) Round</value></prop><prop oor:name="Measure"><value>S;6450;5810;5000;5000;1500;800;3;5</value></prop></node><node oor:name="L14" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W118 (80mm dia) Round</value></prop><prop oor:name="Measure"><value>S;9500;9500;8000;8000;1750;1450;2;3</value></prop></node><node oor:name="L15" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W221 Wrap-around Disk Label</value></prop><prop oor:name="Measure"><value>S;10400;7000;7000;7000;1800;420;2;4</value></prop></node><node oor:name="L16" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W222 Video Spine Label</value></prop><prop oor:name="Measure"><value>S;14500;1693;14500;1693;3260;1380;1;16</value></prop></node><node oor:name="L17" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W223 Video Face Label</value></prop><prop oor:name="Measure"><value>S;7870;4660;7620;4660;2750;950;2;6</value></prop></node><node oor:name="L18" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W224 Audio Cassette</value></prop><prop oor:name="Measure"><value>S;9150;4200;8900;4200;1470;2320;2;6</value></prop></node><node oor:name="L19" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W225 Slide Mount</value></prop><prop oor:name="Measure"><value>S;5080;1270;4600;1110;560;1670;4;21</value></prop></node><node oor:name="L20" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W227 Diskette Face</value></prop><prop oor:name="Measure"><value>S;9310;5200;7000;5200;2330;1920;2;5</value></prop></node><node oor:name="L21" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-P229 ID Photos</value></prop><prop oor:name="Measure"><value>S;3800;4800;3500;4500;1100;3050;5;5</value></prop></node><node oor:name="L22" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-B440 Business Cards</value></prop><prop oor:name="Measure"><value>S;10000;5500;8500;5500;1500;1000;2;5</value></prop></node><node oor:name="L23" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W330 Lever Arch</value></prop><prop oor:name="Measure"><value>S;20000;6000;20000;6000;500;2960;1;4</value></prop></node><node oor:name="L24" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-P230 CD Business Card (78 x 59)</value></prop><prop oor:name="Measure"><value>S;10275;6956;7800;5900;1465;1500;2;4</value></prop></node><node oor:name="L25" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W228 CD Label for CD Labeller</value></prop><prop oor:name="Measure"><value>S;11700;12800;11700;11700;4650;2800;1;2</value></prop></node><node oor:name="L26" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W250 Full Face CD Label</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2200;1;2</value></prop></node><node oor:name="L27" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value xml:lang="en-US">CIL-W251 Mini CD Label</value></prop><prop oor:name="Measure"><value>S;9800;9800;7800;7800;1700;1200;2;3</value></prop></node></node><node oor:name="Avery A4" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2050 Video Spine</value></prop><prop oor:name="Measure"><value>S;14732;2000;14732;2000;3134;1843;1;13</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2050 Video Face</value></prop><prop oor:name="Measure"><value>S;8128;4657;7874;4657;2499;872;2;6</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2070 Transfer Film for Mouse Pad</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2080 Transfer Film for Puzzle</value></prop><prop oor:name="Measure"><value>S;24500;17000;24500;17000;2600;2000;1;1</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2090 T-Shirt Transfer Set</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2160 Avery Inkjet Label</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;720;1515;3;7</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2163 Avery Inkjet Label</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2165 Large Labels</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1304;2;4</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2166 Avery 3.5" Disk Label (Face only)</value></prop><prop oor:name="Measure"><value>S;7620;5927;7000;5200;3190;3360;2;4</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2241 Avery Rectangle Sticker</value></prop><prop oor:name="Measure"><value>S;8128;3810;7620;3175;2626;3738;2;6</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2243 Avery Small Round Sticker</value></prop><prop oor:name="Measure"><value>S;4260;5080;3810;3810;2205;2785;4;5</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2244 Avery Big Round Sticker</value></prop><prop oor:name="Measure"><value>S;7874;7872;7195;7195;2966;3381;2;3</value></prop></node><node oor:name="L12" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2246 Avery Full Page Sticker</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L13" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2265 Disk Labels</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2143;2;5</value></prop></node><node oor:name="L14" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2341 Embossed Cards A5 (Cover)</value></prop><prop oor:name="Measure"><value>S;10850;17000;10850;17000;16850;2000;1;1</value></prop></node><node oor:name="L15" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2341 Embossed Cards A5 (Inside)</value></prop><prop oor:name="Measure"><value>S;14850;21000;14850;21000;14850;0;1;1</value></prop></node><node oor:name="L16" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2342 Embossed cards A6 (Coverl)</value></prop><prop oor:name="Measure"><value>S;7700;14850;7700;12050;11900;1400;1;2</value></prop></node><node oor:name="L17" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2342 Embossed Cards A6 (Inside)</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;10500;0;1;2</value></prop></node><node oor:name="L18" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2351 Avery A5 Greeting Card</value></prop><prop oor:name="Measure"><value>S;14850;21000;14850;21000;0;0;2;1</value></prop></node><node oor:name="L19" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2352 Avery A6 Greeting Card</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L20" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2353 Avery Postcard</value></prop><prop oor:name="Measure"><value>S;14650;12310;14650;11040;3175;3175;1;2</value></prop></node><node oor:name="L21" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2354 Avery Biz Card</value></prop><prop oor:name="Measure"><value>S;8513;5922;8037;5080;2250;3427;2;4</value></prop></node><node oor:name="L22" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2355 Avery Note Cards</value></prop><prop oor:name="Measure"><value>S;8255;12548;8255;12072;2245;2540;2;2</value></prop></node><node oor:name="L23" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2356 Avery Full Page Card</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L24" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2357 Compliment Cards</value></prop><prop oor:name="Measure"><value>S;21000;9900;21000;9900;0;0;1;3</value></prop></node><node oor:name="L25" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2361 Greeting Cards (A6)</value></prop><prop oor:name="Measure"><value>S;10500;14800;10500;14800;0;0;2;2</value></prop></node><node oor:name="L26" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2364 Marbled Business Cards</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L27" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2365 Marbled Business Cards</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L28" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2366 Marbled Business Cards</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L29" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2367 Marbled Business Cards</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L30" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2370 A4 Coated Paper -110gsm</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L31" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2371 A4 Coated Paper -160gsm</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L32" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2374 Marbled Paper</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L33" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2375 Marbled Paper</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L34" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2376 Marbled Paper</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L35" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2377 Marbled Paper</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L36" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2378 A4 Colour Laser Paper</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L37" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2379 A4 Bright White</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L38" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2410 Avery Self-Laminating Card</value></prop><prop oor:name="Measure"><value>S;8150;9300;8150;5000;10700;3050;1;3</value></prop></node><node oor:name="L39" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2420 Avery Self-Laminating Bookmark</value></prop><prop oor:name="Measure"><value>S;8900;17800;3800;17800;3000;1600;3;1</value></prop></node><node oor:name="L40" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2546 Windows Decals</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L41" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2547 Fantastic Plastic</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L42" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2651 Avery Inkjet Mini Label</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L43" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C6353 Photo Quality Gloss 4 x 6 Cards</value></prop><prop oor:name="Measure"><value>S;15240;10160;15240;10160;0;0;1;1</value></prop></node><node oor:name="L44" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9146 Photo Quality Label (Full Page)</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L45" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9151 Photo Quality Label</value></prop><prop oor:name="Measure"><value>S;3750;5000;3000;4000;1500;2850;5;5</value></prop></node><node oor:name="L46" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9169 Photo Quality Label (4 per page)</value></prop><prop oor:name="Measure"><value>S;13900;10164;13900;9910;950;463;2;2</value></prop></node><node oor:name="L47" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9312 Clean Edge(TM) Business Card</value></prop><prop oor:name="Measure"><value>S;9100;6000;8500;5400;1700;3150;2;4</value></prop></node><node oor:name="L48" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9351 Photo Quality Gloss A5 Greeting Card</value></prop><prop oor:name="Measure"><value>S;14850;21000;14850;21000;0;0;2;1</value></prop></node><node oor:name="L49" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9352 Greeting Cards Glossy A6</value></prop><prop oor:name="Measure"><value>S;8255;12548;8255;12072;2245;2540;2;2</value></prop></node><node oor:name="L50" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9353 Photo Quality Gloss Postcards</value></prop><prop oor:name="Measure"><value>S;14650;12310;14650;11040;3175;3175;1;2</value></prop></node><node oor:name="L51" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9354 Photo Quality Gloss Business Cards</value></prop><prop oor:name="Measure"><value>S;8513;5922;8040;5080;2225;3427;2;4</value></prop></node><node oor:name="L52" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9355 Post Cards</value></prop><prop oor:name="Measure"><value>S;14800;12000;14800;10500;3100;3600;1;2</value></prop></node><node oor:name="L53" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9356 Photo Quality A4 Card Sheet</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L54" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9362 Business Cards Glossy</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L55" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9372 Photo Paper Glossy 9 x 13</value></prop><prop oor:name="Measure"><value>S;13250;9500;12950;9000;1750;1250;2;2</value></prop></node><node oor:name="L56" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9373 Photo Gloss Paper</value></prop><prop oor:name="Measure"><value>S;15000;14850;15000;10000;3000;2425;1;2</value></prop></node><node oor:name="L57" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9374 Photo Quality Glossy Inkjet Card</value></prop><prop oor:name="Measure"><value>S;18000;13250;18000;12950;1500;1750;1;2</value></prop></node><node oor:name="L58" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9405 Avery T-Shirt Transfer Sheets</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L59" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9406 Avery T-Shirt Transfer Sheets</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L60" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9430 Photo Quality Glossy A4 Inkjet Paper</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L61" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9431 Photo Quality Glossy Paper - 160gsm</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L62" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9433 Inkjet Glossy Double Sided Paper</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L63" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9434 Photo Cards Glossy</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L64" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9612 CD-R Business Card</value></prop><prop oor:name="Measure"><value>S;9600;6450;8400;5600;1500;2375;2;4</value></prop></node><node oor:name="L65" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9660 Full Face CD/DVD Labels</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2150;1;2</value></prop></node><node oor:name="L66" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>COPT210 Copier Transparency</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L67" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>IJT310 Inkjet Transparency - 90microns</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L68" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>IJT311 Inkjet Transparency - 120 microns</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L69" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J40063 Address</value></prop><prop oor:name="Measure"><value>S;9910;6350;9910;3810;5545;2345;1;2</value></prop></node><node oor:name="L70" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J40065 Parcel</value></prop><prop oor:name="Measure"><value>S;9910;6770;9910;6770;590;4040;2;1</value></prop></node><node oor:name="L71" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J400DK 3.5" Diskette - Face Only</value></prop><prop oor:name="Measure"><value>S;7000;5200;7000;5200;3500;4825;2;1</value></prop></node><node oor:name="L72" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J400SL 35mm Slide</value></prop><prop oor:name="Measure"><value>S;4600;3384;4600;1111;1300;1794;4;4</value></prop></node><node oor:name="L73" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J400VF Video Face</value></prop><prop oor:name="Measure"><value>S;7620;7180;7620;4640;6690;1515;1;2</value></prop></node><node oor:name="L74" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J400VS Video Spine</value></prop><prop oor:name="Measure"><value>S;14500;2970;14500;1700;3250;2120;1;4</value></prop></node><node oor:name="L75" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8156 Address</value></prop><prop oor:name="Measure"><value>S;6954;1780;5800;1780;646;1410;3;15</value></prop></node><node oor:name="L76" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8157 Address</value></prop><prop oor:name="Measure"><value>S;6654;2430;6400;2430;646;1400;3;11</value></prop></node><node oor:name="L77" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8158 Address</value></prop><prop oor:name="Measure"><value>S;6654;2670;6400;2670;646;1400;3;10</value></prop></node><node oor:name="L78" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8159 Address</value></prop><prop oor:name="Measure"><value>S;6654;3386;6400;3386;646;1306;3;8</value></prop></node><node oor:name="L79" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8160 Address</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;720;1515;3;7</value></prop></node><node oor:name="L80" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8161 Address</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4656;721;882;3;6</value></prop></node><node oor:name="L81" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8162 Address</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1302;2;8</value></prop></node><node oor:name="L82" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8163 Address</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L83" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8164 Address</value></prop><prop oor:name="Measure"><value>S;6604;7197;6350;7197;721;457;3;4</value></prop></node><node oor:name="L84" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8165 Parcel</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1304;2;4</value></prop></node><node oor:name="L85" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8166 Parcel</value></prop><prop oor:name="Measure"><value>S;10160;9313;9906;9313;467;881;2;3</value></prop></node><node oor:name="L86" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8167 Shipping</value></prop><prop oor:name="Measure"><value>S;19960;28905;19960;28905;520;398;1;1</value></prop></node><node oor:name="L87" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8168 Shipping</value></prop><prop oor:name="Measure"><value>S;19960;14353;19960;14353;520;497;1;2</value></prop></node><node oor:name="L88" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8169 Parcel</value></prop><prop oor:name="Measure"><value>S;13900;10164;13900;9910;950;463;2;2</value></prop></node><node oor:name="L89" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8170 Collect/Filing</value></prop><prop oor:name="Measure"><value>S;13400;1100;13400;1100;3800;1650;1;24</value></prop></node><node oor:name="L90" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8171 Lever Arch Labels - White</value></prop><prop oor:name="Measure"><value>S;6000;20000;6000;20000;2850;500;4;1</value></prop></node><node oor:name="L91" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8173 Address</value></prop><prop oor:name="Measure"><value>S;10160;5700;9906;5700;467;600;2;5</value></prop></node><node oor:name="L92" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8359 Address</value></prop><prop oor:name="Measure"><value>S;6654;3386;6400;3386;646;1306;3;8</value></prop></node><node oor:name="L93" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8360 Address</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;720;1515;3;7</value></prop></node><node oor:name="L94" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8361 Address</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4656;721;882;3;6</value></prop></node><node oor:name="L95" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8362 Address</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1302;2;8</value></prop></node><node oor:name="L96" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8363 Address</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L97" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8364 Address</value></prop><prop oor:name="Measure"><value>S;6604;7197;6350;7197;721;457;3;4</value></prop></node><node oor:name="L98" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8365 Parcel</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1304;2;4</value></prop></node><node oor:name="L99" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8366 Parcel</value></prop><prop oor:name="Measure"><value>S;10160;9313;9906;9313;467;881;2;3</value></prop></node><node oor:name="L100" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8367 Shipping</value></prop><prop oor:name="Measure"><value>S;19960;28905;19960;28905;520;398;1;1</value></prop></node><node oor:name="L101" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8368 Shipping</value></prop><prop oor:name="Measure"><value>S;19960;14353;19960;14353;520;497;1;2</value></prop></node><node oor:name="L102" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8369 Parcel</value></prop><prop oor:name="Measure"><value>S;13900;10164;13900;9910;950;463;2;2</value></prop></node><node oor:name="L103" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8371 Lever Arch</value></prop><prop oor:name="Measure"><value>S;6000;20000;6000;20000;2850;500;4;1</value></prop></node><node oor:name="L104" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8414 Clean Edge (TM) Business Card</value></prop><prop oor:name="Measure"><value>S;9300;5080;8700;5080;1500;2150;2;5</value></prop></node><node oor:name="L105" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8415 Greeting Cards Maxi (A6)</value></prop><prop oor:name="Measure"><value>S;10800;15600;10800;15600;4050;2700;2;1</value></prop></node><node oor:name="L106" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8423 Name Card</value></prop><prop oor:name="Measure"><value>S;16000;6375;16000;4375;2500;3100;1;4</value></prop></node><node oor:name="L107" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8431 CD Case Insert - Cover</value></prop><prop oor:name="Measure"><value>S;12100;12100;12100;12100;2750;4450;2;1</value></prop></node><node oor:name="L108" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8432 CD Case Insert - Tray</value></prop><prop oor:name="Measure"><value>S;15100;13500;15100;11700;2950;2250;1;2</value></prop></node><node oor:name="L109" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8433 CD Envelope</value></prop><prop oor:name="Measure"><value>S;12400;12400;12400;12400;4300;2450;1;2</value></prop></node><node oor:name="L110" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8434 Inkjet CD Inserts - Cover Section</value></prop><prop oor:name="Measure"><value>S;12100;12100;12100;12100;5950;2400;1;1</value></prop></node><node oor:name="L111" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8434 Inkjet CD Inserts - Tray Section</value></prop><prop oor:name="Measure"><value>S;15100;11800;15100;11800;2950;15500;1;1</value></prop></node><node oor:name="L112" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8435 CD Case Insert Cover Section</value></prop><prop oor:name="Measure"><value>S;12100;12100;12100;12100;5950;2400;1;1</value></prop></node><node oor:name="L113" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8435 CD Case Insert Tray Section</value></prop><prop oor:name="Measure"><value>S;15100;11800;15100;11800;2950;15500;1;1</value></prop></node><node oor:name="L114" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8436 CD Case Spine Labels</value></prop><prop oor:name="Measure"><value>S;11430;550;11430;550;4785;1643;1;48</value></prop></node><node oor:name="L115" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8440 Zip(TM) Disk Card Insert - Panels</value></prop><prop oor:name="Measure"><value>S;10550;9700;9850;9700;4650;5650;2;1</value></prop></node><node oor:name="L116" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8560 Clear Address</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;720;1515;3;7</value></prop></node><node oor:name="L117" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8562 Clear Address</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1302;2;8</value></prop></node><node oor:name="L118" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8563 Clear Address</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L119" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8565 Clear Parcel</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1304;2;4</value></prop></node><node oor:name="L120" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8567 Clear A4 Labels</value></prop><prop oor:name="Measure"><value>S;19960;28400;19960;28400;520;650;1;1</value></prop></node><node oor:name="L121" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8570 Full Face CD/DVD Labels - Clear Inkjet</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2150;1;2</value></prop></node><node oor:name="L122" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8587 Inkjet Transparencies</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L123" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8612 CD-R Business Card</value></prop><prop oor:name="Measure"><value>S;9600;6450;8400;5600;1500;2375;2;4</value></prop></node><node oor:name="L124" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8651 Mini Address</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L125" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8654 Miini Address</value></prop><prop oor:name="Measure"><value>S;4826;2540;4572;2540;975;2143;4;10</value></prop></node><node oor:name="L126" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8655 Audio Cassette</value></prop><prop oor:name="Measure"><value>S;9154;4200;8900;4200;1473;2250;2;6</value></prop></node><node oor:name="L127" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8656 35 mm Slide</value></prop><prop oor:name="Measure"><value>S;5067;1270;4600;1111;600;1595;4;21</value></prop></node><node oor:name="L128" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8657 35 mm Slides/Small Items</value></prop><prop oor:name="Measure"><value>S;5067;1270;4600;1111;3133;6040;3;14</value></prop></node><node oor:name="L129" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8658 Mini Labels - Removable</value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1343;7;27</value></prop></node><node oor:name="L130" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8659 Mini Labels - Removable</value></prop><prop oor:name="Measure"><value>S;2032;1000;1778;1000;467;1343;10;27</value></prop></node><node oor:name="L131" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8666 3.5" Diskette - Face Only</value></prop><prop oor:name="Measure"><value>S;9330;5200;7000;5200;2335;1850;2;5</value></prop></node><node oor:name="L132" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8667 Mini Disk Label - Face</value></prop><prop oor:name="Measure"><value>S;3900;5450;3550;5200;925;1350;5;5</value></prop></node><node oor:name="L133" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8667 Mini Disk Label - Spine</value></prop><prop oor:name="Measure"><value>S;3900;5450;350;5200;575;1350;6;5</value></prop></node><node oor:name="L134" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8668 Labels for Zip (TM.) Disk</value></prop><prop oor:name="Measure"><value>S;6150;5100;5900;5100;1400;2100;3;5</value></prop></node><node oor:name="L135" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8671 Video Face</value></prop><prop oor:name="Measure"><value>S;7874;4640;7620;4640;2753;930;2;6</value></prop></node><node oor:name="L136" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8674 Video Spine</value></prop><prop oor:name="Measure"><value>S;14478;1693;14478;1693;3261;1304;1;16</value></prop></node><node oor:name="L137" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8676 Full Face CD/DVD Labels</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2150;1;2</value></prop></node><node oor:name="L138" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8701 Lever Arch</value></prop><prop oor:name="Measure"><value>S;6200;19200;6200;19200;2450;900;4;1</value></prop></node><node oor:name="L139" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8702 Lever Arch</value></prop><prop oor:name="Measure"><value>S;3900;19200;3900;19200;1200;900;7;1</value></prop></node><node oor:name="L140" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8766 3.5" Diskette - Face Only</value></prop><prop oor:name="Measure"><value>S;9330;5200;7000;5200;2335;1850;2;5</value></prop></node><node oor:name="L141" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8770 Full Face CD/DVD Labels</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2150;1;2</value></prop></node><node oor:name="L142" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8771 Video Face</value></prop><prop oor:name="Measure"><value>S;7874;4640;7620;4640;2753;930;2;6</value></prop></node><node oor:name="L143" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8774 Video Spine</value></prop><prop oor:name="Measure"><value>S;14478;1693;14478;1693;3261;1304;1;16</value></prop></node><node oor:name="L144" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8776 Full Face CD/DVD Labels - Holographic</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2150;1;2</value></prop></node><node oor:name="L145" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8777 Full Face CD/DVD Labels - Silver</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2150;1;2</value></prop></node><node oor:name="L146" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8778 Full Face CD/DVD Labels - Gold</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2150;1;2</value></prop></node><node oor:name="L147" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8867 Printable Magnets - Full Sheet</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L148" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8871 Printable Magnets</value></prop><prop oor:name="Measure"><value>S;8300;2800;7800;2800;2450;2250;2;9</value></prop></node><node oor:name="L149" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8875 Printable Magnets</value></prop><prop oor:name="Measure"><value>S;5000;14000;5000;14000;500;850;4;2</value></prop></node><node oor:name="L150" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J9124 Inkjet Labels, Glossy</value></prop><prop oor:name="Measure"><value>S;17800;13300;17800;12700;1600;1843;1;2</value></prop></node><node oor:name="L151" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L30063 Address</value></prop><prop oor:name="Measure"><value>S;9910;6350;9910;3810;5545;2345;1;2</value></prop></node><node oor:name="L152" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L30065 Parcel</value></prop><prop oor:name="Measure"><value>S;9910;6770;9910;6770;590;4040;2;1</value></prop></node><node oor:name="L153" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L300DK 3.5" Diskette - Face Only</value></prop><prop oor:name="Measure"><value>S;7000;5200;7000;5200;3500;4825;2;1</value></prop></node><node oor:name="L154" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L300SL 35mm Slide</value></prop><prop oor:name="Measure"><value>S;4600;3384;4600;1111;1300;1794;4;4</value></prop></node><node oor:name="L155" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L300VF Video Face</value></prop><prop oor:name="Measure"><value>S;7620;7180;7620;4640;6690;1515;1;2</value></prop></node><node oor:name="L156" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L300VS Video Spine</value></prop><prop oor:name="Measure"><value>S;14500;2970;14500;1700;3250;2120;1;4</value></prop></node><node oor:name="L157" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L6008 Silver Heavy Duty Labels</value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1343;7;27</value></prop></node><node oor:name="L158" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L6009 Silver Heavy Duty Labels</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L159" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L6011 Silver Heavy Duty Labels</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L160" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L6012 Silver Heavy Duty Labels</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2143;2;5</value></prop></node><node oor:name="L161" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L6112 Anti Tamper Labels</value></prop><prop oor:name="Measure"><value>S;4600;4600;4000;4000;1600;1343;4;6</value></prop></node><node oor:name="L162" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L6113 Anti Tamper Labels</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L163" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L6114 Anti Tamper Labels</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L164" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7051 Heavy Duty Labels Mini</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L165" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7060 White Heavy Duty Labels</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;720;1515;3;7</value></prop></node><node oor:name="L166" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7063 White Heavy Duty Labels</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L167" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7067 White Heavy Duty Labels</value></prop><prop oor:name="Measure"><value>S;20900;29500;20900;29500;50;100;1;1</value></prop></node><node oor:name="L168" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7068 White Heavy Duty Labels</value></prop><prop oor:name="Measure"><value>S;19960;14353;19960;14353;520;497;1;2</value></prop></node><node oor:name="L169" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7069 White Heavy Duty Labels</value></prop><prop oor:name="Measure"><value>S;13900;10164;13900;9910;950;463;2;2</value></prop></node><node oor:name="L170" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7156 Address</value></prop><prop oor:name="Measure"><value>S;6954;1780;5800;1780;646;1410;3;15</value></prop></node><node oor:name="L171" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7157 Address</value></prop><prop oor:name="Measure"><value>S;6654;2430;6400;2430;646;1400;3;11</value></prop></node><node oor:name="L172" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7158 Address</value></prop><prop oor:name="Measure"><value>S;6654;2670;6400;2670;646;1400;3;10</value></prop></node><node oor:name="L173" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7159 Address</value></prop><prop oor:name="Measure"><value>S;6654;3386;6400;3386;646;1306;3;8</value></prop></node><node oor:name="L174" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7160 Address</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;720;1515;3;7</value></prop></node><node oor:name="L175" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7161 Address</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4656;721;882;3;6</value></prop></node><node oor:name="L176" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7162 Address</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1302;2;8</value></prop></node><node oor:name="L177" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7163 Address</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L178" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7164 Address</value></prop><prop oor:name="Measure"><value>S;6604;7197;6350;7197;721;457;3;4</value></prop></node><node oor:name="L179" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7165 Parcel</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1304;2;4</value></prop></node><node oor:name="L180" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7166 Parcel</value></prop><prop oor:name="Measure"><value>S;10160;9313;9906;9313;467;881;2;3</value></prop></node><node oor:name="L181" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7167 Shipping</value></prop><prop oor:name="Measure"><value>S;19960;28905;19960;28905;520;398;1;1</value></prop></node><node oor:name="L182" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7168 Shipping</value></prop><prop oor:name="Measure"><value>S;19960;14353;19960;14353;520;497;1;2</value></prop></node><node oor:name="L183" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7169 Parcel</value></prop><prop oor:name="Measure"><value>S;13900;10164;13900;9910;950;463;2;2</value></prop></node><node oor:name="L184" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7170 Eurofolio</value></prop><prop oor:name="Measure"><value>S;13400;1100;13400;1100;3800;1650;1;24</value></prop></node><node oor:name="L185" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7171 Lever Arch - White</value></prop><prop oor:name="Measure"><value>S;6000;20000;6000;20000;2850;500;4;1</value></prop></node><node oor:name="L186" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7171B Lever Arch Labels - Blue</value></prop><prop oor:name="Measure"><value>S;6000;20000;6000;20000;2850;500;4;1</value></prop></node><node oor:name="L187" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7171G Lever Arch Labels - Green</value></prop><prop oor:name="Measure"><value>S;6000;20000;6000;20000;2850;500;4;1</value></prop></node><node oor:name="L188" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7171R Lever Arch Labels - Red</value></prop><prop oor:name="Measure"><value>S;6000;20000;6000;20000;2850;500;4;1</value></prop></node><node oor:name="L189" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7172 Ring Binder</value></prop><prop oor:name="Measure"><value>S;10254;3000;10000;3000;373;1350;2;9</value></prop></node><node oor:name="L190" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7173 Shipping</value></prop><prop oor:name="Measure"><value>S;10160;5700;9906;5700;467;600;2;5</value></prop></node><node oor:name="L191" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7176 Labels for 60mm Box File</value></prop><prop oor:name="Measure"><value>S;10000;4354;10000;4100;500;1915;2;6</value></prop></node><node oor:name="L192" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7177 Address</value></prop><prop oor:name="Measure"><value>S;10160;4233;9906;4233;467;2144;2;6</value></prop></node><node oor:name="L193" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7178 Labels for 40mm Box File</value></prop><prop oor:name="Measure"><value>S;10100;2900;10100;2900;5450;1800;1;9</value></prop></node><node oor:name="L194" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7179 Labels for 25mm Box File</value></prop><prop oor:name="Measure"><value>S;11100;1954;11100;1700;4950;2276;1;13</value></prop></node><node oor:name="L195" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7263 Fluorescent Yellow Address</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L196" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7363 Address</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L197" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7400 Suspended Files (Cupboard)</value></prop><prop oor:name="Measure"><value>S;13850;630;13850;630;7925;2310;1;26</value></prop></node><node oor:name="L198" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7408 Suspended Files (Drawer)</value></prop><prop oor:name="Measure"><value>S;27700;630;27700;630;1000;2310;1;26</value></prop></node><node oor:name="L199" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7409 Suspension Tab Card Inserts</value></prop><prop oor:name="Measure"><value>S;5700;1500;5700;1500;1950;2100;3;17</value></prop></node><node oor:name="L200" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-5 IndexMaker 5 part - Labels</value></prop><prop oor:name="Measure"><value>S;10419;2117;5502;1270;2540;4690;2;10</value></prop></node><node oor:name="L201" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-5 IndexMaker 5 part - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;9200;5750;9200;5750;10500;475;1;5</value></prop></node><node oor:name="L202" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-6 IndexMaker 6 part - Labels</value></prop><prop oor:name="Measure"><value>S;10411;1693;4493;1270;3048;4902;2;12</value></prop></node><node oor:name="L203" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-6 IndexMaker 6 part - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;9200;4750;9200;4750;10500;500;1;6</value></prop></node><node oor:name="L204" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-10 IndexMaker 10 part - Labels</value></prop><prop oor:name="Measure"><value>S;4826;2117;2540;1270;1991;4690;4;10</value></prop></node><node oor:name="L205" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-10 IndexMaker 10 part - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;9200;2885;9200;2885;10500;425;1;10</value></prop></node><node oor:name="L206" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-12 IndexMaker 12 part - Labels</value></prop><prop oor:name="Measure"><value>S;4572;1693;2200;1270;2542;4902;4;12</value></prop></node><node oor:name="L207" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-12 IndexMaker 12 part - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;9200;2390;9200;2390;10500;510;1;12</value></prop></node><node oor:name="L208" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-5 ReadyIndex 1-5 Index - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;10000;5767;10000;5767;10950;433;1;5</value></prop></node><node oor:name="L209" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-6 ReadyIndex 1-6 Index - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;10000;4800;10000;4800;10950;450;1;6</value></prop></node><node oor:name="L210" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-10 ReadyIndex 1-10 Index - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;10000;2885;10000;2885;10950;425;1;10</value></prop></node><node oor:name="L211" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-12 ReadyIndex 1-12 Index - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;10000;2390;10000;2390;10950;510;1;12</value></prop></node><node oor:name="L212" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-15 ReadyIndex 1-15 Index - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;10000;1740;10000;1740;10950;1800;1;15</value></prop></node><node oor:name="L213" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-20 ReadyIndex 1-20 Index - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;10000;1335;10000;1335;10950;1500;1;20</value></prop></node><node oor:name="L214" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-31 ReadyIndex 1-31 Index - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;10000;861;10000;861;10950;1500;1;31</value></prop></node><node oor:name="L215" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-AZ ReadyIndex A-Z Index - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;10000;1335;10000;1335;10950;1500;1;20</value></prop></node><node oor:name="L216" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-JD ReadyIndex Jan-Dec Index - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;10000;2400;10000;2400;10950;450;1;12</value></prop></node><node oor:name="L217" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7412-5 Insertable Tab Dividers - 5 Tabs</value></prop><prop oor:name="Measure"><value>S;10500;2115;5500;1270;2540;4730;2;10</value></prop></node><node oor:name="L218" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7412-6 Insertable Tab Dividers - 6 Tabs</value></prop><prop oor:name="Measure"><value>S;10420;2115;4700;1270;2540;4730;2;10</value></prop></node><node oor:name="L219" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7412-8 Insertable Tab Dividers - 8 Tabs</value></prop><prop oor:name="Measure"><value>S;10420;2115;4300;1270;2540;4730;2;10</value></prop></node><node oor:name="L220" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7412-10 Insertable Tab Dividers - 10 Tabs</value></prop><prop oor:name="Measure"><value>S;4820;2115;2540;1270;1980;4730;4;10</value></prop></node><node oor:name="L221" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7412-12 Insertable Tab Dividers - 12 Tabs</value></prop><prop oor:name="Measure"><value>S;4820;2115;2540;1270;1980;4730;4;10</value></prop></node><node oor:name="L222" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7413 Business Card</value></prop><prop oor:name="Measure"><value>S;9000;5080;9000;5080;1500;2150;2;5</value></prop></node><node oor:name="L223" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7414 Business Card</value></prop><prop oor:name="Measure"><value>S;9000;5200;9000;5200;1500;1850;2;5</value></prop></node><node oor:name="L224" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7415 Business Card</value></prop><prop oor:name="Measure"><value>S;9000;5200;9000;5200;1500;1850;2;5</value></prop></node><node oor:name="L225" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7416-5 IndexMaker 5 part (Unpunched) - Labels</value></prop><prop oor:name="Measure"><value>S;10418;2117;5502;1270;2540;4690;2;10</value></prop></node><node oor:name="L226" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7416-5 IndexMaker 5 part (Unpunched) - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;9200;5767;9200;5767;10500;433;1;5</value></prop></node><node oor:name="L227" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7416-6 IndexMaker 6 part - Extra Wide - Labels</value></prop><prop oor:name="Measure"><value>S;10411;1693;4493;1270;3048;4902;2;12</value></prop></node><node oor:name="L228" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7416-6 IndexMaker 6 part - Extra Wide - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;9200;4800;9200;4800;10500;450;1;6</value></prop></node><node oor:name="L229" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7416-10 IndexMaker 10 part (Unpunched) - Labels</value></prop><prop oor:name="Measure"><value>S;4826;2117;2540;1270;1991;4690;4;10</value></prop></node><node oor:name="L230" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7416-10 IndexMaker 10 part (Unpunched) - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;9200;2885;9200;2885;10500;425;1;10</value></prop></node><node oor:name="L231" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7416-12 IndexMaker 12 part - Extra Wide - Labels</value></prop><prop oor:name="Measure"><value>S;4572;1693;2200;1270;2542;4902;4;12</value></prop></node><node oor:name="L232" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7416-12 IndexMaker 12 part - Extra Wide - Contents Sheet</value></prop><prop oor:name="Measure"><value>S;9200;2400;9200;2400;10500;450;1;12</value></prop></node><node oor:name="L233" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7417 Business Card</value></prop><prop oor:name="Measure"><value>S;9000;5400;9000;5400;1500;1350;2;5</value></prop></node><node oor:name="L234" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7418 Name Badge</value></prop><prop oor:name="Measure"><value>S;8600;5500;8600;5500;1900;3850;2;4</value></prop></node><node oor:name="L235" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7419 Business Card</value></prop><prop oor:name="Measure"><value>S;9000;5400;9000;5400;1500;1350;2;5</value></prop></node><node oor:name="L236" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7420-5 Direct Print Dividers</value></prop><prop oor:name="Measure"><value>S;1300;5540;1300;5540;19200;1000;1;5</value></prop></node><node oor:name="L237" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7420-6 Direct Print Dividers</value></prop><prop oor:name="Measure"><value>S;1300;4622;1300;4622;19200;1000;1;6</value></prop></node><node oor:name="L238" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7420-8 Direct Print Dividers</value></prop><prop oor:name="Measure"><value>S;1300;3464;1300;3464;19200;1000;1;8</value></prop></node><node oor:name="L239" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7421 Post Card</value></prop><prop oor:name="Measure"><value>S;13937;9729;13937;9729;913;771;2;2</value></prop></node><node oor:name="L240" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7422 Suspension Tab Card Inserts</value></prop><prop oor:name="Measure"><value>S;17300;1200;17300;600;1900;5800;1;15</value></prop></node><node oor:name="L241" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7423 Delegate Card - Embossed</value></prop><prop oor:name="Measure"><value>S;18700;7425;18700;5350;1150;1038;1;2</value></prop></node><node oor:name="L242" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7424 Lever Arch Labels</value></prop><prop oor:name="Measure"><value>S;5900;19200;5900;19200;3043;900;4;1</value></prop></node><node oor:name="L243" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7425 Lever Arch Labels</value></prop><prop oor:name="Measure"><value>S;3400;19200;3400;19200;1243;900;8;1</value></prop></node><node oor:name="L244" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7426 Note Card</value></prop><prop oor:name="Measure"><value>S;10500;13937;10500;13937;0;828;2;2</value></prop></node><node oor:name="L245" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7451-5 ReadyIndex 5 Index (Unnumbered) - Contents</value></prop><prop oor:name="Measure"><value>S;10000;5767;10000;5767;10950;433;1;5</value></prop></node><node oor:name="L246" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7451-10 ReadyIndex 10 Index (Unnumbered) - Contents</value></prop><prop oor:name="Measure"><value>S;10000;2885;10000;2885;10950;425;1;10</value></prop></node><node oor:name="L247" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7551 Clear Mini Address</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L248" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7552 Clear Mini</value></prop><prop oor:name="Measure"><value>S;10418;2117;5502;1270;2540;4690;2;10</value></prop></node><node oor:name="L249" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7553 Clear Mini</value></prop><prop oor:name="Measure"><value>S;4572;1693;2200;1270;2542;4902;4;12</value></prop></node><node oor:name="L250" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7560 Clear Address</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;720;1515;3;7</value></prop></node><node oor:name="L251" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7562 Clear Address</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1302;2;8</value></prop></node><node oor:name="L252" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7563 Clear Address</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L253" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7565 Clear Parcel</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1304;2;4</value></prop></node><node oor:name="L254" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7567 Clear A4 Labels</value></prop><prop oor:name="Measure"><value>S;19960;28400;19960;28400;520;650;1;1</value></prop></node><node oor:name="L255" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7568 Clear A5 Labels</value></prop><prop oor:name="Measure"><value>S;19960;14353;19960;14353;520;498;1;2</value></prop></node><node oor:name="L256" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7587 Laser Transparencies</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L257" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7630 Circular</value></prop><prop oor:name="Measure"><value>S;6800;6800;6350;6350;525;1475;3;4</value></prop></node><node oor:name="L258" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7650 Circular</value></prop><prop oor:name="Measure"><value>S;6800;6800;6350;6350;525;1475;3;4</value></prop></node><node oor:name="L259" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7651 Mini Address</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L260" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7651/PF Mini Address</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L261" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7651/YF Mini Address</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L262" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7652 Miini Address</value></prop><prop oor:name="Measure"><value>S;4826;1693;4572;1693;975;1299;4;16</value></prop></node><node oor:name="L263" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7653 Mini</value></prop><prop oor:name="Measure"><value>S;4572;1693;2200;1270;2542;4902;4;12</value></prop></node><node oor:name="L264" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7654 Miini Address</value></prop><prop oor:name="Measure"><value>S;4826;2540;4572;2540;975;2143;4;10</value></prop></node><node oor:name="L265" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7655 Audio Cassette</value></prop><prop oor:name="Measure"><value>S;9154;4200;8900;4200;1473;2250;2;6</value></prop></node><node oor:name="L266" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7656 35 mm Slide</value></prop><prop oor:name="Measure"><value>S;5067;1270;4600;1111;600;1595;4;21</value></prop></node><node oor:name="L267" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7657 Mini Labels - Removable - Laser</value></prop><prop oor:name="Measure"><value>S;2032;1000;1778;1000;467;1343;10;27</value></prop></node><node oor:name="L268" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7658 Mini Labels - Removable - Laser</value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1343;7;27</value></prop></node><node oor:name="L269" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7663 5.25" Diskette</value></prop><prop oor:name="Measure"><value>S;11938;3376;11938;3376;4531;1348;1;8</value></prop></node><node oor:name="L270" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7664 3.5" Diskette - Wraparound</value></prop><prop oor:name="Measure"><value>S;10414;7197;7000;7197;1793;457;2;4</value></prop></node><node oor:name="L271" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7665 Mini Data Cartridge</value></prop><prop oor:name="Measure"><value>S;9400;2115;7200;2115;2200;2160;2;12</value></prop></node><node oor:name="L272" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7666 3.5" Diskette - Face Only</value></prop><prop oor:name="Measure"><value>S;9330;5200;7000;5200;2335;1850;2;5</value></prop></node><node oor:name="L273" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7667 Standard Data Cartridge</value></prop><prop oor:name="Measure"><value>S;13300;2961;13300;2961;3850;1526;1;9</value></prop></node><node oor:name="L274" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7668 Labels for Zip(TM) Disk</value></prop><prop oor:name="Measure"><value>S;6150;5100;5900;5100;1400;2100;3;5</value></prop></node><node oor:name="L275" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7669 Labels for SuperDisk (TM )</value></prop><prop oor:name="Measure"><value>S;7800;6300;5400;6100;3900;2350;2;4</value></prop></node><node oor:name="L276" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7670 Circular - Fluorescent Yellow</value></prop><prop oor:name="Measure"><value>S;6800;6800;6350;6350;525;1475;3;4</value></prop></node><node oor:name="L277" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7671 Video Face</value></prop><prop oor:name="Measure"><value>S;7874;4640;7620;4640;2753;930;2;6</value></prop></node><node oor:name="L278" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7674 Video Spine</value></prop><prop oor:name="Measure"><value>S;14478;1693;14478;1693;3261;1304;1;16</value></prop></node><node oor:name="L279" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7675 4mm Data Cartridge</value></prop><prop oor:name="Measure"><value>S;6400;3500;6150;3500;1025;2600;3;7</value></prop></node><node oor:name="L280" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7676 Full Face CD/DVD Labels - Black &amp; White</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2150;1;2</value></prop></node><node oor:name="L281" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7680 Mini Address - Gold</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L282" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7701 Lever Arch</value></prop><prop oor:name="Measure"><value>S;6200;19200;6200;19200;2450;900;4;1</value></prop></node><node oor:name="L283" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7702 Lever Arch</value></prop><prop oor:name="Measure"><value>S;3900;19200;3900;19200;1200;900;7;1</value></prop></node><node oor:name="L284" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7760 Full Face CD/DVD Labels - Colour Laser</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2150;1;2</value></prop></node><node oor:name="L285" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7765 Presentation/Photo - Glossy Colour Laser</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1304;2;4</value></prop></node><node oor:name="L286" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7767 Presentation/Photo - Glossy Colour Laser</value></prop><prop oor:name="Measure"><value>S;20900;29500;20900;29500;50;100;1;1</value></prop></node><node oor:name="L287" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7768 Presentation/Photo - Glossy Colour Laser</value></prop><prop oor:name="Measure"><value>S;19960;14353;19960;14353;520;497;1;2</value></prop></node><node oor:name="L288" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7769 Presentation/Photo - Glossy Colour Laser</value></prop><prop oor:name="Measure"><value>S;13900;10164;13900;9910;950;463;2;2</value></prop></node><node oor:name="L289" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7901 Organizer Page</value></prop><prop oor:name="Measure"><value>S;9500;17000;9500;17000;0;0;3;1</value></prop></node><node oor:name="L290" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7902 Organizer Page (A5)</value></prop><prop oor:name="Measure"><value>S;14850;21000;14850;21000;0;0;2;1</value></prop></node><node oor:name="L291" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7905 Compliment Slip</value></prop><prop oor:name="Measure"><value>S;21000;9300;21000;9300;0;900;1;3</value></prop></node><node oor:name="L292" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>LPT110 Laser/Copier Transparency - 100micron</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L293" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>LPT111 Laser/Copier Transparency - 100micron</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node></node><node oor:name="Avery A4/Asia" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2412 Laminated Cards, large</value></prop><prop oor:name="Measure"><value>S;13700;8500;12300;8500;1850;1800;2;1</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2413 Laminated Cards</value></prop><prop oor:name="Measure"><value>S;9100;9800;9100;6000;10700;2050;1;3</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2414 Laminated Cards</value></prop><prop oor:name="Measure"><value>S;8150;7000;8150;5000;10700;1850;1;4</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C24412 Laminated Cards, large</value></prop><prop oor:name="Measure"><value>S;12300;8500;12300;8500;1250;2400;1;1</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C25446 A5 Sheet</value></prop><prop oor:name="Measure"><value>S;14800;21000;14800;21000;0;0;1;1</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C25447 A5 Sheet</value></prop><prop oor:name="Measure"><value>S;14800;21000;14800;21000;0;0;1;1</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2546 Windows Decals</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2547 Fantastic Plastic</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C91131 Business Cards</value></prop><prop oor:name="Measure"><value>S;9100;5500;9100;5500;1400;1100;2;5</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C91149 Business Cards</value></prop><prop oor:name="Measure"><value>S;9900;6400;9100;5500;1500;2500;2;4</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9167 A4 Sheet</value></prop><prop oor:name="Measure"><value>S;19960;28905;19960;28905;520;398;1;1</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9169 Glossy Photo Quality Labels</value></prop><prop oor:name="Measure"><value>S;13900;10164;13900;9910;950;463;2;2</value></prop></node><node oor:name="L12" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9356 Photo Quality A4 Card Sheet</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L13" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J21013 Business Cards</value></prop><prop oor:name="Measure"><value>S;9100;5500;9100;5500;1400;1100;2;5</value></prop></node><node oor:name="L14" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J21015 Business Cards</value></prop><prop oor:name="Measure"><value>S;9100;5500;9100;5500;1400;1100;2;5</value></prop></node><node oor:name="L15" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J21016 Business Cards</value></prop><prop oor:name="Measure"><value>S;9100;5500;9100;5500;1400;1100;2;5</value></prop></node><node oor:name="L16" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J21031 Business Cards</value></prop><prop oor:name="Measure"><value>S;9900;6400;9100;5500;1500;2500;2;4</value></prop></node><node oor:name="L17" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J21033 Business Cards</value></prop><prop oor:name="Measure"><value>S;9100;5500;9100;5500;1400;1100;2;5</value></prop></node><node oor:name="L18" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J21131 Business Cards</value></prop><prop oor:name="Measure"><value>S;9100;5500;9100;5500;1400;1100;2;5</value></prop></node><node oor:name="L19" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J21141 Greeting Cards</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L20" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J21149 Business Cards</value></prop><prop oor:name="Measure"><value>S;9900;6400;9100;5500;1500;2500;2;4</value></prop></node><node oor:name="L21" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J2356 A4 Sheet</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L22" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8359 Address</value></prop><prop oor:name="Measure"><value>S;6654;3386;6400;3386;646;1306;3;8</value></prop></node><node oor:name="L23" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8360 Address</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;720;1515;3;7</value></prop></node><node oor:name="L24" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8361 Address</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4656;721;882;3;6</value></prop></node><node oor:name="L25" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8362 Address</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1302;2;8</value></prop></node><node oor:name="L26" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8363 Address</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L27" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8365 Address</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1304;2;4</value></prop></node><node oor:name="L28" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8367 Shipping A4</value></prop><prop oor:name="Measure"><value>S;19960;28905;19960;28905;520;398;1;1</value></prop></node><node oor:name="L29" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8368 Shipping A5</value></prop><prop oor:name="Measure"><value>S;19960;14353;19960;14353;520;497;1;2</value></prop></node><node oor:name="L30" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8369 Parcel</value></prop><prop oor:name="Measure"><value>S;13900;10164;13900;9910;950;463;2;2</value></prop></node><node oor:name="L31" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8371 Lever Arch</value></prop><prop oor:name="Measure"><value>S;6000;20000;6000;20000;2850;500;4;1</value></prop></node><node oor:name="L32" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8751 Mini Address</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L33" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8756 35 mm Slide</value></prop><prop oor:name="Measure"><value>S;5067;1270;4600;1111;600;1595;4;21</value></prop></node><node oor:name="L34" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8766 3.5" Diskette</value></prop><prop oor:name="Measure"><value>S;9330;5200;7000;5200;2335;1850;2;5</value></prop></node><node oor:name="L35" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8771 Video Face</value></prop><prop oor:name="Measure"><value>S;7874;4640;7620;4640;2753;930;2;6</value></prop></node><node oor:name="L36" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8774 Video Spine</value></prop><prop oor:name="Measure"><value>S;14478;1693;14478;1693;3261;1304;1;16</value></prop></node><node oor:name="L37" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J88911 Address</value></prop><prop oor:name="Measure"><value>S;9100;4800;8900;4800;1000;2500;2;5</value></prop></node><node oor:name="L38" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J88915 Address</value></prop><prop oor:name="Measure"><value>S;8760;4230;8380;4230;1930;2150;2;6</value></prop></node><node oor:name="L39" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J88919 Address</value></prop><prop oor:name="Measure"><value>S;8640;4230;8640;4230;1860;2120;2;6</value></prop></node><node oor:name="L40" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J88923 Address</value></prop><prop oor:name="Measure"><value>S;7000;4243;7000;4243;0;0;3;7</value></prop></node><node oor:name="L41" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J88927 Address</value></prop><prop oor:name="Measure"><value>S;7000;4230;7000;4230;0;2120;3;6</value></prop></node><node oor:name="L42" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J88935 Address</value></prop><prop oor:name="Measure"><value>S;7000;3390;7000;3390;0;1270;3;8</value></prop></node><node oor:name="L43" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7159 Address</value></prop><prop oor:name="Measure"><value>S;6654;3386;6400;3386;646;1306;3;8</value></prop></node><node oor:name="L44" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7160 Address</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;720;1515;3;7</value></prop></node><node oor:name="L45" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7161 Address</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4656;721;882;3;6</value></prop></node><node oor:name="L46" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7162 Address</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1302;2;8</value></prop></node><node oor:name="L47" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7163 Address</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L48" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7164 Address</value></prop><prop oor:name="Measure"><value>S;6604;7197;6350;7197;721;457;3;4</value></prop></node><node oor:name="L49" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7165 Parcel</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1304;2;4</value></prop></node><node oor:name="L50" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7166 Parcel</value></prop><prop oor:name="Measure"><value>S;10160;9313;9906;9313;467;881;2;3</value></prop></node><node oor:name="L51" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7167 Shipping</value></prop><prop oor:name="Measure"><value>S;19960;28905;19960;28905;520;398;1;1</value></prop></node><node oor:name="L52" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7168 Shipping</value></prop><prop oor:name="Measure"><value>S;19960;14353;19960;14353;520;497;1;2</value></prop></node><node oor:name="L53" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7169 Parcel</value></prop><prop oor:name="Measure"><value>S;13900;10164;13900;9910;950;463;2;2</value></prop></node><node oor:name="L54" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7170 Eurofolio</value></prop><prop oor:name="Measure"><value>S;13400;1100;13400;1100;3800;1650;1;24</value></prop></node><node oor:name="L55" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7171 Lever Arch</value></prop><prop oor:name="Measure"><value>S;6000;20000;6000;20000;2850;500;4;1</value></prop></node><node oor:name="L56" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7172 Ring Binder</value></prop><prop oor:name="Measure"><value>S;10254;3000;10000;3000;373;1350;2;9</value></prop></node><node oor:name="L57" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7173 Address</value></prop><prop oor:name="Measure"><value>S;10160;5700;9906;5700;467;600;2;5</value></prop></node><node oor:name="L58" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7651 Mini Adress</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L59" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7656 35 mm Slide</value></prop><prop oor:name="Measure"><value>S;5067;1270;4600;1111;600;1595;4;21</value></prop></node><node oor:name="L60" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7664 3.5" Diskette - Wraparound</value></prop><prop oor:name="Measure"><value>S;10414;7197;7000;7197;1793;457;2;4</value></prop></node><node oor:name="L61" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7665 Mini Data Cartridge</value></prop><prop oor:name="Measure"><value>S;9400;2115;7200;2115;2200;2160;2;12</value></prop></node><node oor:name="L62" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7666 3.5" Diskette</value></prop><prop oor:name="Measure"><value>S;9330;5200;7000;5200;2335;1850;2;5</value></prop></node><node oor:name="L63" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7667 Standard Data Cartridge</value></prop><prop oor:name="Measure"><value>S;13300;2961;13300;2961;3850;1526;1;9</value></prop></node><node oor:name="L64" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7668 Labels for Zip(TM) Disk</value></prop><prop oor:name="Measure"><value>S;6150;5100;5900;5100;1400;2100;3;5</value></prop></node><node oor:name="L65" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7671 Video Face</value></prop><prop oor:name="Measure"><value>S;7874;4640;7620;4640;2753;930;2;6</value></prop></node><node oor:name="L66" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7674 Video Spine</value></prop><prop oor:name="Measure"><value>S;14478;1693;14478;1693;3261;1304;1;16</value></prop></node><node oor:name="L67" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L78382 Address</value></prop><prop oor:name="Measure"><value>S;8640;4230;8640;4230;1860;2120;2;6</value></prop></node><node oor:name="L68" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L78383 Address</value></prop><prop oor:name="Measure"><value>S;7000;4243;7000;4243;0;0;3;7</value></prop></node><node oor:name="L69" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L78384 Address</value></prop><prop oor:name="Measure"><value>S;7000;4230;7000;4230;0;2120;3;6</value></prop></node><node oor:name="L70" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L78386 Address</value></prop><prop oor:name="Measure"><value>S;7000;3390;7000;3390;0;1270;3;8</value></prop></node><node oor:name="L71" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L78387 Address</value></prop><prop oor:name="Measure"><value>S;8640;5080;8640;5080;1860;2120;2;5</value></prop></node><node oor:name="L72" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L78388 Address</value></prop><prop oor:name="Measure"><value>S;4830;2540;4830;2540;840;880;4;11</value></prop></node><node oor:name="L73" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>M21131 Business Cards</value></prop><prop oor:name="Measure"><value>S;9100;5500;9100;5500;1400;1100;2;5</value></prop></node><node oor:name="L74" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>M8167 A4 Sheet</value></prop><prop oor:name="Measure"><value>S;19960;28905;19960;28905;520;398;1;1</value></prop></node><node oor:name="L75" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>M88173 Address</value></prop><prop oor:name="Measure"><value>S;9900;4450;9650;4450;710;2330;2;5</value></prop></node><node oor:name="L76" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>M88175 Address</value></prop><prop oor:name="Measure"><value>S;8760;4230;8380;4230;2040;2000;2;6</value></prop></node><node oor:name="L77" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>M88177 Address</value></prop><prop oor:name="Measure"><value>S;9100;4800;8900;4800;1000;2500;2;5</value></prop></node><node oor:name="L78" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>M88179 Address</value></prop><prop oor:name="Measure"><value>S;8600;4200;8400;4200;2000;2300;2;6</value></prop></node><node oor:name="L79" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>M88183 Address</value></prop><prop oor:name="Measure"><value>S;8760;4230;8380;4230;1930;2150;2;6</value></prop></node><node oor:name="L80" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>M88185 Address</value></prop><prop oor:name="Measure"><value>S;7000;4230;7000;4230;0;2150;3;6</value></prop></node><node oor:name="L81" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>M88187 Address</value></prop><prop oor:name="Measure"><value>S;8600;4200;8400;4200;2000;2250;2;6</value></prop></node><node oor:name="L82" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>M88315 Address</value></prop><prop oor:name="Measure"><value>S;6400;3390;6400;3390;700;2350;3;7</value></prop></node><node oor:name="L83" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>P78204 Address</value></prop><prop oor:name="Measure"><value>S;4200;7425;4200;7425;0;0;5;4</value></prop></node><node oor:name="L84" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>P78261 Address</value></prop><prop oor:name="Measure"><value>S;3800;6900;3800;6900;1000;1050;5;4</value></prop></node><node oor:name="L85" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>P78270 Address</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L86" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>P78275 Address</value></prop><prop oor:name="Measure"><value>S;8500;4200;8500;4200;2000;2250;2;</value></prop></node></node><node oor:name="Avery Letter Size" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5167 Return Address</value></prop><prop oor:name="Measure"><value>S;5240;1270;4445;1270;714;1270;4;20</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5267 Return Address</value></prop><prop oor:name="Measure"><value>S;5240;1270;4445;1270;714;1270;4;20</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5160 Address</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5260 Address</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5960 Address</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5159 Address</value></prop><prop oor:name="Measure"><value>S;10638;3810;10160;3810;396;635;2;7</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5161 Address</value></prop><prop oor:name="Measure"><value>S;10636;2540;10160;2540;396;1270;2;10</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5261 Address</value></prop><prop oor:name="Measure"><value>S;10636;2540;10160;2540;396;1270;2;10</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5961 Address</value></prop><prop oor:name="Measure"><value>S;10636;2540;10160;2540;396;1270;2;10</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5162 Address</value></prop><prop oor:name="Measure"><value>S;10636;3387;10160;3387;396;2117;2;7</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5262 Address</value></prop><prop oor:name="Measure"><value>S;10636;3387;10160;3387;396;2117;2;7</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5922 Address</value></prop><prop oor:name="Measure"><value>S;10636;3387;10160;3387;396;2117;2;7</value></prop></node><node oor:name="L12" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5962 Address</value></prop><prop oor:name="Measure"><value>S;10636;3387;10160;3387;396;2117;2;7</value></prop></node><node oor:name="L13" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5163 Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10636;5080;10160;5080;396;1270;2;5</value></prop></node><node oor:name="L14" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5263 Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10636;5080;10160;5080;396;1270;2;5</value></prop></node><node oor:name="L15" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5963 Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10636;5080;10160;5080;396;1270;2;5</value></prop></node><node oor:name="L16" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5164 Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10636;8467;10160;8467;396;1270;2;3</value></prop></node><node oor:name="L17" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5264 Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10636;8467;10160;8467;396;1270;2;3</value></prop></node><node oor:name="L18" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5168 Shipping</value></prop><prop oor:name="Measure"><value>S;10160;12700;8890;12700;1270;1270;2;2</value></prop></node><node oor:name="L19" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5667 Clear Return Address</value></prop><prop oor:name="Measure"><value>S;5207;1270;4445;1270;762;1270;4;20</value></prop></node><node oor:name="L20" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5660 Clear Address</value></prop><prop oor:name="Measure"><value>S;7197;2540;7196;2540;0;1270;3;10</value></prop></node><node oor:name="L21" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5930 Clear Address</value></prop><prop oor:name="Measure"><value>S;7197;2540;7196;2540;0;1270;3;10</value></prop></node><node oor:name="L22" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5661 Clear Address</value></prop><prop oor:name="Measure"><value>S;10795;2540;10795;2540;0;1270;2;10</value></prop></node><node oor:name="L23" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5662 Clear Address</value></prop><prop oor:name="Measure"><value>S;10795;3386;10795;3386;0;2121;2;7</value></prop></node><node oor:name="L24" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5663 Clear Address</value></prop><prop oor:name="Measure"><value>S;10795;5080;10795;5080;0;1270;2;5</value></prop></node><node oor:name="L25" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5664 Clear Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10795;8467;10795;8466;0;1270;2;3</value></prop></node><node oor:name="L26" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5165 Full Sheet</value></prop><prop oor:name="Measure"><value>S;0;0;21590;27940;0;0;1;1</value></prop></node><node oor:name="L27" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5265 Full Sheet</value></prop><prop oor:name="Measure"><value>S;0;0;21590;27940;0;0;1;1</value></prop></node><node oor:name="L28" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5266 File Folder-Assorted</value></prop><prop oor:name="Measure"><value>S;10160;1715;8733;1374;1349;1270;2;15</value></prop></node><node oor:name="L29" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5066 File Folder-Red</value></prop><prop oor:name="Measure"><value>S;10160;1715;8733;1374;1349;1270;2;15</value></prop></node><node oor:name="L30" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5166 File Folder-Orange</value></prop><prop oor:name="Measure"><value>S;10160;1693;8733;1374;1349;1588;2;15</value></prop></node><node oor:name="L31" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5366 File Folder-White</value></prop><prop oor:name="Measure"><value>S;10160;1692;8733;1692;1349;1270;2;15</value></prop></node><node oor:name="L32" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5666 File Folder-Purple</value></prop><prop oor:name="Measure"><value>S;10160;1693;8733;1374;1349;1588;2;15</value></prop></node><node oor:name="L33" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5766 File Folder-Blue</value></prop><prop oor:name="Measure"><value>S;10160;1715;8733;1374;1349;1270;2;15</value></prop></node><node oor:name="L34" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5866 File Folder-Green</value></prop><prop oor:name="Measure"><value>S;10160;1715;8733;1374;1349;1270;2;15</value></prop></node><node oor:name="L35" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5966 File Folder-Yellow</value></prop><prop oor:name="Measure"><value>S;10160;1715;8733;1374;1349;1270;2;15</value></prop></node><node oor:name="L36" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5293 Round</value></prop><prop oor:name="Measure"><value>S;5080;4234;5080;4128;1113;1270;4;6</value></prop></node><node oor:name="L37" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5294 Round</value></prop><prop oor:name="Measure"><value>S;6985;6350;6985;6350;635;1270;3;4</value></prop></node><node oor:name="L38" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5196 3-1/2" Diskette - White</value></prop><prop oor:name="Measure"><value>S;6985;7620;6985;6985;318;1270;3;3</value></prop></node><node oor:name="L39" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5096 3-1/2" Diskette - Red</value></prop><prop oor:name="Measure"><value>S;6985;7620;6985;4445;318;3810;3;3</value></prop></node><node oor:name="L40" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5896 3-1/2" Diskette - Blue</value></prop><prop oor:name="Measure"><value>S;6985;7620;6985;4445;318;3810;3;3</value></prop></node><node oor:name="L41" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5197 5-1/4 Diskette - White</value></prop><prop oor:name="Measure"><value>S;10636;3810;10160;3810;396;2540;2;6</value></prop></node><node oor:name="L42" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5198 Audio Cassette</value></prop><prop oor:name="Measure"><value>S;10160;4233;8890;4234;1270;1270;2;6</value></prop></node><node oor:name="L43" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5199 Video Cassette Face</value></prop><prop oor:name="Measure"><value>S;8382;4657;7780;4656;2715;2329;2;5</value></prop></node><node oor:name="L44" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5199 Video Cassette Spine</value></prop><prop oor:name="Measure"><value>S;14765;1693;14765;1693;3414;1270;1;15</value></prop></node><node oor:name="L45" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5925 White Laser Labels for Zip Disks (bottom spine)</value></prop><prop oor:name="Measure"><value>S;9525;8382;9525;714;6033;8788;1;3</value></prop></node><node oor:name="L46" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5925 White Laser Labels for Zip Disks (face)</value></prop><prop oor:name="Measure"><value>S;9182;8412;5956;5080;3226;1669;2;3</value></prop></node><node oor:name="L47" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5925 White Laser Labels for Zip Disks (top spine)</value></prop><prop oor:name="Measure"><value>S;9525;8382;9525;714;6033;7366;1;3</value></prop></node><node oor:name="L48" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5931 White CD/DVD Labels for Lasers (face)</value></prop><prop oor:name="Measure"><value>S;0;12700;11748;11748;4921;1746;1;2</value></prop></node><node oor:name="L49" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5931 White CD/DVD Labels for Lasers (spines)</value></prop><prop oor:name="Measure"><value>S;1191;12306;556;11908;1255;1864;2;2</value></prop></node><node oor:name="L50" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5970 Fluorescent Laser - Magenta</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L51" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5971 Fluorescent Laser - Green</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L52" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5972 Fluorescent Laser - Yellow</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L53" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5975 Fluorescent Laser - Full Sheet Assorted</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L54" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5979 Fluorescent Laser - Assorted</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L55" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5980 Pastel Laser - Blue</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L56" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5997 Videotape Face</value></prop><prop oor:name="Measure"><value>S;8382;4657;7780;4656;2715;2329;2;5</value></prop></node><node oor:name="L57" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5997 Videotape Spine</value></prop><prop oor:name="Measure"><value>S;14765;1693;14765;1693;3414;1270;1;15</value></prop></node><node oor:name="L58" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5998 Audio Tape</value></prop><prop oor:name="Measure"><value>S;10160;4233;8890;4234;1270;1270;2;6</value></prop></node><node oor:name="L59" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5395 Name Badge - White</value></prop><prop oor:name="Measure"><value>S;9525;6350;8573;5926;1748;1482;2;4</value></prop></node><node oor:name="L60" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5095 Name Badge - Red</value></prop><prop oor:name="Measure"><value>S;9525;6350;7779;5132;2223;2065;2;4</value></prop></node><node oor:name="L61" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5895 Name Badge - Blue</value></prop><prop oor:name="Measure"><value>S;9525;6350;7779;5132;2223;2064;2;4</value></prop></node><node oor:name="L62" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5371 Business Card - White</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L63" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5871 Laser Business Card</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L64" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5376 Business Card - Ivory</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L65" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5377 Business Card - Gray</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L66" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5911 Business Card</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L67" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5383 Name Tag Kit</value></prop><prop oor:name="Measure"><value>S;8890;5503;8890;5503;1905;2963;2;4</value></prop></node><node oor:name="L68" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5390 Name Tag Refill</value></prop><prop oor:name="Measure"><value>S;8890;5503;8890;5503;1905;2963;2;4</value></prop></node><node oor:name="L69" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5883 Name Tag Kit - Blue</value></prop><prop oor:name="Measure"><value>S;8890;5556;7620;4286;2540;3651;2;4</value></prop></node><node oor:name="L70" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5384 Name Tag Kit</value></prop><prop oor:name="Measure"><value>S;10160;7620;10160;7620;635;2540;2;3</value></prop></node><node oor:name="L71" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5392 Name Tag Refill</value></prop><prop oor:name="Measure"><value>S;10160;7620;10160;7620;635;2540;2;3</value></prop></node><node oor:name="L72" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5385 Rotary Card - Small</value></prop><prop oor:name="Measure"><value>S;10160;5503;10160;5503;635;2963;2;4</value></prop></node><node oor:name="L73" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5386 Rotary Card - Large</value></prop><prop oor:name="Measure"><value>S;12700;7620;12700;7620;4445;2540;1;3</value></prop></node><node oor:name="L74" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5388 Index Card</value></prop><prop oor:name="Measure"><value>S;12700;7620;12700;7620;4445;2540;1;3</value></prop></node><node oor:name="L75" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5389 Post Card</value></prop><prop oor:name="Measure"><value>S;15240;10160;15240;10160;3175;3810;1;2</value></prop></node><node oor:name="L76" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5305 Laser Tent Cards Med.</value></prop><prop oor:name="Measure"><value>S;21590;12700;19685;10795;953;2223;1;2</value></prop></node><node oor:name="L77" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5309 Laser Tent Cards Large</value></prop><prop oor:name="Measure"><value>S;27940;17780;26035;15875;953;2858;1;1</value></prop></node><node oor:name="L78" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5315 Laser Note Cards</value></prop><prop oor:name="Measure"><value>S;13970;0;13970;21590;0;0;2;1</value></prop></node><node oor:name="L79" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5361 Laminated ID Cards</value></prop><prop oor:name="Measure"><value>S;8255;9313;8255;5080;10954;2117;1;3</value></prop></node><node oor:name="L80" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5361 Laminated ID Cards-Single Card</value></prop><prop oor:name="Measure"><value>S;8255;5080;8255;5080;10954;2117;1;1</value></prop></node><node oor:name="L81" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5362 Laminated Name Badges</value></prop><prop oor:name="Measure"><value>S;8255;9313;8255;5080;10954;2117;1;3</value></prop></node><node oor:name="L82" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5362 Laminated N. Badges-Single Card</value></prop><prop oor:name="Measure"><value>S;8255;5080;8255;5080;10954;2117;1;1</value></prop></node><node oor:name="L83" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5364 Laminated Rotary Index Cards</value></prop><prop oor:name="Measure"><value>S;9843;9313;9843;5239;10954;2064;1;3</value></prop></node><node oor:name="L84" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5364 Laminated Rotary Index-Single Card</value></prop><prop oor:name="Measure"><value>S;9843;5240;9843;5239;10954;2064;1;1</value></prop></node><node oor:name="L85" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>74520 Name Badge Inserts - 3" x 4"</value></prop><prop oor:name="Measure"><value>S;0;7620;10160;7620;635;2540;1;3</value></prop></node><node oor:name="L86" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>74540 Name Badge Inserts - 3" x 4"</value></prop><prop oor:name="Measure"><value>S;10160;7620;10160;7620;635;2540;2;3</value></prop></node><node oor:name="L87" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>74541 Name Badge Inserts - 3" x 4"</value></prop><prop oor:name="Measure"><value>S;10160;7620;10160;7620;635;2540;2;3</value></prop></node><node oor:name="L88" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>74550 Name Badge Inserts - 2 1/4" x 3 1/2"</value></prop><prop oor:name="Measure"><value>S;0;5636;8890;5636;953;2699;1;4</value></prop></node><node oor:name="L89" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>74552 Name Badge Inserts - 2" x 3"</value></prop><prop oor:name="Measure"><value>S;7620;5001;7620;5001;3175;1429;2;5</value></prop></node><node oor:name="L90" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>74558 Name Badge Inserts - 2" x 3"</value></prop><prop oor:name="Measure"><value>S;7620;5001;7620;5001;3175;1590;2;5</value></prop></node><node oor:name="L91" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>74650 Name Badge Inserts - 2 1/4" x 3 1/2"</value></prop><prop oor:name="Measure"><value>S;0;5636;8890;5636;953;2461;1;4</value></prop></node><node oor:name="L92" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>74651 Name Badge Inserts - 2 1/4" x 3 1/2"</value></prop><prop oor:name="Measure"><value>S;0;5636;8890;5636;953;2699;1;4</value></prop></node><node oor:name="L93" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8160 Ink Jet Address</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L94" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8460 Ink Jet Address</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L95" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8461 Ink Jet Address</value></prop><prop oor:name="Measure"><value>S;10638;2540;10160;2540;396;1270;2;10</value></prop></node><node oor:name="L96" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8161 Ink Jet Address</value></prop><prop oor:name="Measure"><value>S;10636;2540;10160;2540;396;1270;2;10</value></prop></node><node oor:name="L97" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8162 Ink Jet Address</value></prop><prop oor:name="Measure"><value>S;10636;3387;10160;3387;396;2117;2;7</value></prop></node><node oor:name="L98" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8462 Ink Jet Address</value></prop><prop oor:name="Measure"><value>S;10636;3387;10160;3387;396;2117;2;7</value></prop></node><node oor:name="L99" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8163 Ink Jet Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10636;5080;10160;5080;396;1270;2;5</value></prop></node><node oor:name="L100" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8463 Ink Jet Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10636;5080;10160;5080;396;1270;2;5</value></prop></node><node oor:name="L101" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8464 Ink Jet Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10636;8467;10160;8467;396;1270;2;3</value></prop></node><node oor:name="L102" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8923 Ink Jet Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10636;5080;10160;5080;396;1270;2;5</value></prop></node><node oor:name="L103" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8164 Ink Jet Address / Shipping</value></prop><prop oor:name="Measure"><value>S;10636;8467;10160;8467;396;1270;2;3</value></prop></node><node oor:name="L104" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8165 Ink Jet Full Sheet</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L105" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8465 Ink Jet Full Sheet</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L106" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8166 Ink Jet File Folder-Assorted</value></prop><prop oor:name="Measure"><value>S;10160;1715;8733;1374;1349;1270;2;15</value></prop></node><node oor:name="L107" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8366 Ink Jet File Folder-White</value></prop><prop oor:name="Measure"><value>S;10160;1694;8733;1694;1349;1270;2;15</value></prop></node><node oor:name="L108" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8167 Ink Jet Return Address</value></prop><prop oor:name="Measure"><value>S;5240;1270;4445;1270;714;1270;4;20</value></prop></node><node oor:name="L109" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8196 Ink Jet 3-1/2" Diskette</value></prop><prop oor:name="Measure"><value>S;6985;7620;6985;6985;318;1270;3;3</value></prop></node><node oor:name="L110" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8250 Ink Jet Label for Color Printing</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L111" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8252 Ink Jet Label for Color Printing</value></prop><prop oor:name="Measure"><value>S;10636;3387;10160;3387;396;2117;2;7</value></prop></node><node oor:name="L112" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8253 Ink Jet Label for Color Printing</value></prop><prop oor:name="Measure"><value>S;10566;5080;10160;5080;432;1270;2;5</value></prop></node><node oor:name="L113" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8254 Ink Jet Label for Color Printing</value></prop><prop oor:name="Measure"><value>S;10636;8467;10160;8467;396;1270;2;3</value></prop></node><node oor:name="L114" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8255 Ink Jet Label for Color Printing </value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L115" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8257 Ink Jet Return Address for Color Printing</value></prop><prop oor:name="Measure"><value>S;6985;2540;5715;1905;953;1588;3;10</value></prop></node><node oor:name="L116" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8309 Tent Card Large</value></prop><prop oor:name="Measure"><value>S;27940;17780;25400;15240;1270;3175;1;1</value></prop></node><node oor:name="L117" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8315 Ink Jet Note Cards</value></prop><prop oor:name="Measure"><value>S;13970;0;13970;21590;0;0;2;1</value></prop></node><node oor:name="L118" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8316 Ink Jet Greeting Card (Portrait)*</value></prop><prop oor:name="Measure"><value>S;21590;13970;21590;13970;0;0;1;2</value></prop></node><node oor:name="L119" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8316 Ink Jet Greeting Card (Landscape)*</value></prop><prop oor:name="Measure"><value>S;13970;21590;13970;21590;0;0;2;1</value></prop></node><node oor:name="L120" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8324 Ink Jet Brochures</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L121" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8371 Ink Jet Business Card</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L122" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8385 Rotary Card - Small</value></prop><prop oor:name="Measure"><value>S;10160;5504;10160;5504;635;2963;2;4</value></prop></node><node oor:name="L123" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8387 Ink Jet Postcard - 4-up</value></prop><prop oor:name="Measure"><value>S;13970;10795;13970;10795;0;0;2;2</value></prop></node><node oor:name="L124" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8388 Index Card</value></prop><prop oor:name="Measure"><value>S;12700;7620;12700;7620;4445;2540;1;3</value></prop></node><node oor:name="L125" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8871 Clean Edge Business Cards (IJ)</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L126" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8376 Ink Jet Business Card - Ivory</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L127" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8377 Ink Jet Business Card - Gray</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L128" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8660 Ink Jet Clear Address</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L129" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8662 Ink Jet Clear Address</value></prop><prop oor:name="Measure"><value>S;10636;3387;10160;3387;396;2117;2;7</value></prop></node><node oor:name="L130" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8663 Ink Jet Clear Address/Shipping</value></prop><prop oor:name="Measure"><value>S;10636;5080;10160;5080;396;1270;2;5</value></prop></node><node oor:name="L131" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8665 Ink Jet Clear Full Sheet</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L132" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8667 Ink Jet Clear Address Labels</value></prop><prop oor:name="Measure"><value>S;5240;1270;4445;1270;714;1270;4;20</value></prop></node><node oor:name="L133" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8925 White Inkjet Labels for Zip Disks (bottom spine)</value></prop><prop oor:name="Measure"><value>S;9525;8382;9525;714;6033;8788;1;3</value></prop></node><node oor:name="L134" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8925 White Inkjet Labels for Zip Disks (face)</value></prop><prop oor:name="Measure"><value>S;9182;8412;5956;5080;3226;1669;2;3</value></prop></node><node oor:name="L135" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8925 White Inkjet Labels for Zip Disks (top spine)</value></prop><prop oor:name="Measure"><value>S;9525;8382;9525;714;6033;7366;1;3</value></prop></node><node oor:name="L136" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8931 White CD/DVD Jewel Case Insert (spines)</value></prop><prop oor:name="Measure"><value>S;14288;11748;635;11748;3334;1588;2;1</value></prop></node><node oor:name="L137" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8931 White CD/DVD Jewel Case Inserts (cover)</value></prop><prop oor:name="Measure"><value>S;12065;12065;12065;12065;4763;14288;1;1</value></prop></node><node oor:name="L138" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8931 White CD/DVD Jewel Case Inserts (tray)</value></prop><prop oor:name="Measure"><value>S;13653;11748;13653;11748;3969;1588;1;1</value></prop></node><node oor:name="L139" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8931 White CD/DVD Labels for Inkjet Printers</value></prop><prop oor:name="Measure"><value>S;0;12700;11748;11748;4921;1746;1;2</value></prop></node><node oor:name="L140" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11161 Ready Index ExtraWide 5 Tab</value></prop><prop oor:name="Measure"><value>S;7620;5080;7620;4763;12700;1588;1;5</value></prop></node><node oor:name="L141" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11163 Ready Index ExtraWide 8 Tab</value></prop><prop oor:name="Measure"><value>S;7620;3096;7620;2858;12700;2223;1;8</value></prop></node><node oor:name="L142" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11165 Ready Index ExtraWide 10 Tab</value></prop><prop oor:name="Measure"><value>S;7620;2540;7620;2223;12700;1588;1;10</value></prop></node><node oor:name="L143" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11526 Direct Print Custom Dividers 5 Tab Single Set</value></prop><prop oor:name="Measure"><value>S;5239;1270;4445;1270;1270;635;5;1</value></prop></node><node oor:name="L144" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11527 Direct Print Custom Dividers 8 Tab Single Set</value></prop><prop oor:name="Measure"><value>S;3220;1270;2858;1270;1270;635;8;1</value></prop></node><node oor:name="L145" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11171 Easy Edit Ready Index - 5 Tabs</value></prop><prop oor:name="Measure"><value>S;7620;5080;7620;4763;12700;1588;1;5</value></prop></node><node oor:name="L146" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11172 Easy Edit Ready Index - 8 Tabs</value></prop><prop oor:name="Measure"><value>S;7620;3086;7620;2858;12700;2210;1;8</value></prop></node><node oor:name="L147" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11173 Easy Edit Ready Index - 10 Tabs</value></prop><prop oor:name="Measure"><value>S;7620;2540;7620;2223;12700;1588;1;10</value></prop></node><node oor:name="L148" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11251 Clear Label/Index Maker Presentation Kit 5 Tab</value></prop><prop oor:name="Measure"><value>S;5207;1270;4445;1270;762;1270;4;20</value></prop></node><node oor:name="L149" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11251 Clear Label/Index Maker Spine Label 1/4" or 5/16"</value></prop><prop oor:name="Measure"><value>S;10414;635;9208;635;983;5080;2;2</value></prop></node><node oor:name="L150" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11251 Clear Label/Index Maker Spine Label 3/8" or 1/2"</value></prop><prop oor:name="Measure"><value>S;10414;953;9208;953;983;8890;2;2</value></prop></node><node oor:name="L151" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11251 Clear Label/Index Maker Spine Label 5/8" or 3/4"</value></prop><prop oor:name="Measure"><value>S;10414;1588;9208;1588;983;13335;2;2</value></prop></node><node oor:name="L152" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11251 Clear Label/Index Maker Spine Label 1" or Larger</value></prop><prop oor:name="Measure"><value>S;10414;2540;9208;2540;983;19050;2;2</value></prop></node><node oor:name="L153" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11253 Clear Label/Index Maker Narrow 5 Tab</value></prop><prop oor:name="Measure"><value>S;5207;1270;4445;635;762;1270;4;20</value></prop></node><node oor:name="L154" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11253 Clear Label/Index Maker Spine Label 1/4" or 5/16"</value></prop><prop oor:name="Measure"><value>S;10414;635;9208;635;983;5080;2;2</value></prop></node><node oor:name="L155" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11253 Clear Label/Index Maker Spine Label 3/8" or 1/2"</value></prop><prop oor:name="Measure"><value>S;10414;953;9208;953;983;8890;2;2</value></prop></node><node oor:name="L156" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11253 Clear Label/Index Maker Spine Label 5/8" or 3/4"</value></prop><prop oor:name="Measure"><value>S;10414;1588;9208;1588;983;13335;2;2</value></prop></node><node oor:name="L157" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11253 Clear Label/Index Maker Spine Label 1" or Larger</value></prop><prop oor:name="Measure"><value>S;10414;2540;9208;2540;983;19050;2;2</value></prop></node><node oor:name="L158" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11260 Ready Index Landscape - 5 Tabs</value></prop><prop oor:name="Measure"><value>S;8331;3556;8331;2997;3556;3048;1;5</value></prop></node><node oor:name="L159" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>11261 Ready Index Landscape - 8 Tabs</value></prop><prop oor:name="Measure"><value>S;8890;2210;8890;1702;3302;3048;1;8</value></prop></node><node oor:name="L160" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>12260 Ready Index Landscape - 5 Tabs</value></prop><prop oor:name="Measure"><value>S;8331;3556;8331;2997;3556;3048;1;5</value></prop></node><node oor:name="L161" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>12261 Ready Index Landscape - 8 Tabs</value></prop><prop oor:name="Measure"><value>S;8890;2210;8890;1702;3302;3048;1;8</value></prop></node><node oor:name="L162" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Index Maker 3 Tab</value></prop><prop oor:name="Measure"><value>S;11113;1270;7938;1270;1270;1270;2;20</value></prop></node><node oor:name="L163" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Index Maker 5 Tab</value></prop><prop oor:name="Measure"><value>S;5207;1270;4445;1270;762;1270;4;20</value></prop></node><node oor:name="L164" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Index Maker 8 Tab</value></prop><prop oor:name="Measure"><value>S;5398;1270;2858;1270;1270;1270;4;20</value></prop></node><node oor:name="L165" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Hidden Tab 5 Tab</value></prop><prop oor:name="Measure"><value>S;7620;5080;7620;4763;12700;1588;1;5</value></prop></node><node oor:name="L166" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Hidden Tab 8 Tab</value></prop><prop oor:name="Measure"><value>S;7620;3096;7620;2858;12700;2223;1;8</value></prop></node><node oor:name="L167" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Hidden Tab 10 Tab</value></prop><prop oor:name="Measure"><value>S;7620;2540;7620;2223;12700;1588;1;10</value></prop></node><node oor:name="L168" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Prof. Ready Index Spine Insert 1"</value></prop><prop oor:name="Measure"><value>S;24130;1588;24130;1588;1905;2540;1;1</value></prop></node><node oor:name="L169" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Prof. Ready Index Spine Insert 1 1/2"</value></prop><prop oor:name="Measure"><value>S;24130;2223;24130;2223;1905;5080;1;1</value></prop></node><node oor:name="L170" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Prof. Ready Index Spine Insert 2"</value></prop><prop oor:name="Measure"><value>S;24130;3175;24130;3175;1905;8731;1;1</value></prop></node><node oor:name="L171" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Prof. Ready Index Spine Insert 3"</value></prop><prop oor:name="Measure"><value>S;24130;5080;24130;5080;1905;13494;1;1</value></prop></node><node oor:name="L172" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Ready Index 5 Tab</value></prop><prop oor:name="Measure"><value>S;7620;5080;7620;4763;12700;1588;1;5</value></prop></node><node oor:name="L173" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Ready Index 8 Tab</value></prop><prop oor:name="Measure"><value>S;7620;3096;7620;2858;12700;2223;1;8</value></prop></node><node oor:name="L174" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Ready Index 10 Tab</value></prop><prop oor:name="Measure"><value>S;7620;2540;7620;2223;12700;1588;1;10</value></prop></node><node oor:name="L175" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Ready Index 12 Tab</value></prop><prop oor:name="Measure"><value>S;7620;2127;7620;2127;12700;1270;1;12</value></prop></node><node oor:name="L176" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Ready Index 15 Tab</value></prop><prop oor:name="Measure"><value>S;7620;1588;7620;1191;12700;2381;1;15</value></prop></node><node oor:name="L177" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>WorkSaver Divider 5 Tabs</value></prop><prop oor:name="Measure"><value>S;5080;847;5080;847;5715;2963;2;26</value></prop></node><node oor:name="L178" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>WorkSaver Divider 8 Tabs</value></prop><prop oor:name="Measure"><value>S;3810;847;3810;847;6985;2963;2;26</value></prop></node><node oor:name="L179" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>WorkSaver Inserts 1/3 Cut</value></prop><prop oor:name="Measure"><value>S;17780;1270;17780;1270;1905;2540;1;10</value></prop></node><node oor:name="L180" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>WorkSaver Inserts 1/5 Cut</value></prop><prop oor:name="Measure"><value>S;10160;1270;10160;1270;635;2540;2;10</value></prop></node><node oor:name="L181" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Self Adhesive Index Tab 1"</value></prop><prop oor:name="Measure"><value>S;5080;864;5080;864;2540;1270;1;15</value></prop></node><node oor:name="L182" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Self Adhesive Index Tab 1 1/2"</value></prop><prop oor:name="Measure"><value>S;7620;864;7620;864;1270;1270;1;15</value></prop></node><node oor:name="L183" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Self Adhesive Index Tab 2"</value></prop><prop oor:name="Measure"><value>S;10160;864;10160;864;318;1270;1;15</value></prop></node><node oor:name="L184" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Protect 'n Tab - 5 Tab</value></prop><prop oor:name="Measure"><value>S;5398;1654;5398;1654;13653;1905;1;15</value></prop></node><node oor:name="L185" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>Protect 'n Tab - 8 Tab</value></prop><prop oor:name="Measure"><value>S;3493;1654;3493;1654;15240;794;1;16</value></prop></node><node oor:name="L186" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>TitleFrames Asst.Spines Insert 1"</value></prop><prop oor:name="Measure"><value>S;24130;1588;24130;1588;1905;2540;1;1</value></prop></node><node oor:name="L187" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>TitleFrames Asst.Spines Insert 1 1/2"</value></prop><prop oor:name="Measure"><value>S;24130;2223;24130;2223;1905;5080;1;1</value></prop></node><node oor:name="L188" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>TitleFrames Asst.Spines Insert 2"</value></prop><prop oor:name="Measure"><value>S;24130;3175;24130;3175;1905;8731;1;1</value></prop></node><node oor:name="L189" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>TitleFrames Asst. Spines Insert 3"</value></prop><prop oor:name="Measure"><value>S;24130;5080;24130;5080;1905;13494;1;1</value></prop></node><node oor:name="L190" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>TitleFrames Cover - 1"</value></prop><prop oor:name="Measure"><value>S;19050;25400;19050;25400;1270;1270;1;1</value></prop></node><node oor:name="L191" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>TitleFrames Spine - 1"</value></prop><prop oor:name="Measure"><value>S;25400;2540;25400;1588;1270;3653;1;6</value></prop></node><node oor:name="L192" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>TitleFrames Cover - 1 1/2"</value></prop><prop oor:name="Measure"><value>S;19050;25400;19050;25400;1270;1270;1;1</value></prop></node><node oor:name="L193" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>TitleFrames Spine - 1 1/2"</value></prop><prop oor:name="Measure"><value>S;25400;3810;25400;2223;1270;3970;1;4</value></prop></node><node oor:name="L194" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2160 Addressing</value></prop><prop oor:name="Measure"><value>S;6680;2540;6680;2540;2057;1270;1;8</value></prop></node><node oor:name="L195" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2162 Addressing</value></prop><prop oor:name="Measure"><value>S;10160;3387;10160;3387;318;1270;1;6</value></prop></node><node oor:name="L196" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2163 Address/Shipping</value></prop><prop oor:name="Measure"><value>S;10160;5080;10160;5080;318;1270;1;4</value></prop></node><node oor:name="L197" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2164 Shipping</value></prop><prop oor:name="Measure"><value>S;10160;12700;10160;8414;318;2143;1;2</value></prop></node><node oor:name="L198" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2180 File Folder-Assorted</value></prop><prop oor:name="Measure"><value>S;8738;1715;8738;1374;1029;1270;1;12</value></prop></node><node oor:name="L199" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2181 File Folder-White</value></prop><prop oor:name="Measure"><value>S;8738;1715;8738;1692;1029;1270;1;12</value></prop></node><node oor:name="L200" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2186 3.5" Diskette-White</value></prop><prop oor:name="Measure"><value>S;6985;5080;6985;5080;1905;1270;1;4</value></prop></node><node oor:name="L201" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6490 Remove 'Em 3.5" Diskette-Face Only Labels</value></prop><prop oor:name="Measure"><value>S;7066;5080;6826;5080;318;1270;3;5</value></prop></node><node oor:name="L202" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6466 Remove 'Em File Folder Labels</value></prop><prop oor:name="Measure"><value>S;10160;1694;8733;1694;1349;1270;2;15</value></prop></node><node oor:name="L203" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6460 Remove 'Em Address Labels</value></prop><prop oor:name="Measure"><value>S;6985;2540;6668;2540;478;1270;3;10</value></prop></node><node oor:name="L204" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6464 Remove 'Em Shipping Labels</value></prop><prop oor:name="Measure"><value>S;10636;8467;10160;8466;396;1270;2;3</value></prop></node><node oor:name="L205" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6465 Removable Laser - Full Sheet</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L206" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6467 Removable Laser - Small Multi-Purpose</value></prop><prop oor:name="Measure"><value>S;5240;1270;4445;1270;714;1270;4;20</value></prop></node><node oor:name="L207" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6503 Remove'em white laser 8 1/2" x 11"</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L208" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5824 CD-Recordable Labels</value></prop><prop oor:name="Measure"><value>S;11430;13970;11430;11430;5080;1270;1;2</value></prop></node><node oor:name="L209" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5836 MtgCreator Portfolio Label</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L210" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5836 MtgCreator Divider 5 Tab</value></prop><prop oor:name="Measure"><value>S;5207;1270;4445;1270;762;1270;4;20</value></prop></node><node oor:name="L211" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3111 Square Stickers</value></prop><prop oor:name="Measure"><value>S;6826;7620;6350;6350;795;3175;3;3</value></prop></node><node oor:name="L212" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3112 Small Round Stickers</value></prop><prop oor:name="Measure"><value>S;5080;5080;3810;3810;1270;1905;4;5</value></prop></node><node oor:name="L213" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3114 Full Page Stickers</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L214" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3248 Glossy Photo Quality Postcard</value></prop><prop oor:name="Measure"><value>S;15240;11430;15240;10160;3175;3175;1;2</value></prop></node><node oor:name="L215" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3251 Feather Edge Greeting Card</value></prop><prop oor:name="Measure"><value>S;21590;13970;21590;13970;0;0;1;2</value></prop></node><node oor:name="L216" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3252 Vellum Overlay Greeting Card</value></prop><prop oor:name="Measure"><value>S;21590;13970;21590;13970;0;0;1;2</value></prop></node><node oor:name="L217" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3254 Glossy Photo Quality Print-to-the-Edge Greeting Card</value></prop><prop oor:name="Measure"><value>S;17463;12383;17463;12383;2064;1588;1;2</value></prop></node><node oor:name="L218" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3256 White Embossed Note Cards</value></prop><prop oor:name="Measure"><value>S;10795;13970;8255;11430;1270;1270;2;2</value></prop></node><node oor:name="L219" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3259 Ivory Embossed Note Card</value></prop><prop oor:name="Measure"><value>S;10795;13970;8255;11430;1270;1270;2;2</value></prop></node><node oor:name="L220" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3260 Ivory Embossed Half-Fold Card</value></prop><prop oor:name="Measure"><value>S;17780;13970;17780;10160;1905;1905;1;2</value></prop></node><node oor:name="L221" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3261 White Large Labels</value></prop><prop oor:name="Measure"><value>S;10160;3810;9525;3175;953;2858;2;6</value></prop></node><node oor:name="L222" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3261 White Small Labels</value></prop><prop oor:name="Measure"><value>S;6826;3810;6033;3175;953;2858;3;6</value></prop></node><node oor:name="L223" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3261 White Return Address Labels</value></prop><prop oor:name="Measure"><value>S;6985;2540;5715;1905;953;1588;3;10</value></prop></node><node oor:name="L224" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3263 White Postcard</value></prop><prop oor:name="Measure"><value>S;13970;10795;13970;10795;0;0;2;2</value></prop></node><node oor:name="L225" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3265 White Half-Fold Card</value></prop><prop oor:name="Measure"><value>S;21590;13970;21590;13970;0;0;1;2</value></prop></node><node oor:name="L226" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3266 White Quarter-Fold Card</value></prop><prop oor:name="Measure"><value>S;10795;13970;10795;13970;0;0;2;2</value></prop></node><node oor:name="L227" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3268 White Note Card</value></prop><prop oor:name="Measure"><value>S;10795;13970;10795;13970;0;0;2;2</value></prop></node><node oor:name="L228" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3274 White Big Round Stickers</value></prop><prop oor:name="Measure"><value>S;6826;7620;6350;6350;794;3175;3;3</value></prop></node><node oor:name="L229" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3274 White Small Round Stickers</value></prop><prop oor:name="Measure"><value>S;5080;5080;3810;3810;1270;1905;4;5</value></prop></node><node oor:name="L230" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3274 White Square Stickers</value></prop><prop oor:name="Measure"><value>S;6826;7620;6350;6350;794;3175;3;3</value></prop></node><node oor:name="L231" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3269 Glossy Photo Quality Half-Fold Cards</value></prop><prop oor:name="Measure"><value>S;21590;13970;21590;13970;0;0;1;2</value></prop></node><node oor:name="L232" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8313 Glossy Photo Quality 4" x 6" Card</value></prop><prop oor:name="Measure"><value>S;15240;10160;15240;10160;0;0;1;1</value></prop></node><node oor:name="L233" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8314 Glossy Photo Quality 8-1/2" x 11" Card</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L234" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8373 Glossy Photo Quality Business Card</value></prop><prop oor:name="Measure"><value>S;10160;6350;8890;5080;1270;1905;2;4</value></prop></node><node oor:name="L235" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8389 Glossy Photo Quality Postcard</value></prop><prop oor:name="Measure"><value>S;15240;11430;15240;10160;3175;3175;1;2</value></prop></node><node oor:name="L236" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8763 Glossy Photo Quality Labels</value></prop><prop oor:name="Measure"><value>S;10638;5080;10160;5080;396;1270;2;5</value></prop></node><node oor:name="L237" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8769 Glossy Photo Quality Labels</value></prop><prop oor:name="Measure"><value>S;10160;3810;9525;3175;953;2858;2;6</value></prop></node><node oor:name="L238" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3273 White Print-to-the-Edge Greeting Cards</value></prop><prop oor:name="Measure"><value>S;17463;12383;17463;12383;2064;1588;1;2</value></prop></node><node oor:name="L239" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3277 Textured Canvas for Ink Jet Printers</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L240" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8317 Embossed Ink Jet Note Card - Ivory</value></prop><prop oor:name="Measure"><value>S;10795;13970;8255;11430;1270;1270;2;2</value></prop></node><node oor:name="L241" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8384 Photo Quality Brochures</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L242" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>53220 Glossy 4x6 Photo Paper</value></prop><prop oor:name="Measure"><value>S;15240;11430;15240;10160;3175;3175;1;2</value></prop></node><node oor:name="L243" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>53221 Glossy 5x7 Photo Paper</value></prop><prop oor:name="Measure"><value>S;17463;12859;17463;12383;2065;635;1;2</value></prop></node><node oor:name="L244" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5881 Color Laser Business Cards</value></prop><prop oor:name="Measure"><value>S;10160;6350;8890;5080;1270;1905;2;4</value></prop></node><node oor:name="L245" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5884 Glossy Color Laser Brochures</value></prop><prop oor:name="Measure"><value>S;21590;27940;21590;27940;0;0;1;1</value></prop></node><node oor:name="L246" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5889 Color Laser Postcards</value></prop><prop oor:name="Measure"><value>S;15240;11430;15240;10160;3175;3175;1;2</value></prop></node><node oor:name="L247" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8877 Ink Jet Business Card - Gray</value></prop><prop oor:name="Measure"><value>S;8890;5080;8890;5080;1905;1270;2;5</value></prop></node><node oor:name="L248" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6873 Color Laser Address Labels</value></prop><prop oor:name="Measure"><value>S;10160;5715;9525;5080;953;2858;2;4</value></prop></node><node oor:name="L249" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6879 Color Laser Address Labels</value></prop><prop oor:name="Measure"><value>S;10160;3810;9525;3175;953;2858;2;6</value></prop></node><node oor:name="L250" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4207 Price Marking</value></prop><prop oor:name="Measure"><value>C;4064;1270;3810;953;1270;0;5;1</value></prop></node><node oor:name="L251" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4144 Address</value></prop><prop oor:name="Measure"><value>C;6604;2540;6350;2381;2159;0;3;1</value></prop></node><node oor:name="L252" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4021 Address</value></prop><prop oor:name="Measure"><value>C;7874;2540;7620;2381;1143;0;4;1</value></prop></node><node oor:name="L253" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4145 Address</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2381;1270;0;1;1</value></prop></node><node oor:name="L254" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4013 Address</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2381;953;0;1;1</value></prop></node><node oor:name="L255" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>R-4013 Address</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2381;953;0;1;1</value></prop></node><node oor:name="L256" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4030 Address</value></prop><prop oor:name="Measure"><value>C;9144;2540;8890;2381;1143;0;2;1</value></prop></node><node oor:name="L257" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4031 Address</value></prop><prop oor:name="Measure"><value>C;9144;2540;8890;2381;889;0;3;1</value></prop></node><node oor:name="L258" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4029 Address</value></prop><prop oor:name="Measure"><value>C;9144;2540;8890;2381;1143;0;4;1</value></prop></node><node oor:name="L259" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4060 Address</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3651;953;0;1;1</value></prop></node><node oor:name="L260" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4065 Address</value></prop><prop oor:name="Measure"><value>C;10160;2540;10160;2381;1270;0;1;1</value></prop></node><node oor:name="L261" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4143 Address</value></prop><prop oor:name="Measure"><value>C;10414;2540;10160;2381;1651;0;2;1</value></prop></node><node oor:name="L262" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4066 Address</value></prop><prop oor:name="Measure"><value>C;10414;2540;10160;2381;889;0;2;1</value></prop></node><node oor:name="L263" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4146 Address</value></prop><prop oor:name="Measure"><value>C;10160;3810;10160;3651;953;0;1;1</value></prop></node><node oor:name="L264" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4014 Address</value></prop><prop oor:name="Measure"><value>C;10160;3810;10160;3651;953;0;1;1</value></prop></node><node oor:name="L265" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4032 Address</value></prop><prop oor:name="Measure"><value>C;10414;3810;10160;3651;889;0;2;1</value></prop></node><node oor:name="L266" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4033 Address</value></prop><prop oor:name="Measure"><value>C;10414;3810;10160;3651;889;0;3;1</value></prop></node><node oor:name="L267" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4022 Address</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4921;1270;0;1;1</value></prop></node><node oor:name="L268" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4162 Address-Clear</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2381;953;0;1;1</value></prop></node><node oor:name="L269" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4601 Address-Clear</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2381;953;0;1;1</value></prop></node><node oor:name="L270" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4161 Shipping-Red Border</value></prop><prop oor:name="Measure"><value>C;10160;7620;10160;7461;953;0;1;1</value></prop></node><node oor:name="L271" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4088 Shipping</value></prop><prop oor:name="Measure"><value>C;10795;7620;10795;7461;953;0;1;1</value></prop></node><node oor:name="L272" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4076 Shipping</value></prop><prop oor:name="Measure"><value>C;12700;7620;12700;7461;953;0;1;1</value></prop></node><node oor:name="L273" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4110 Shipping</value></prop><prop oor:name="Measure"><value>C;14605;7620;14605;7461;953;0;1;1</value></prop></node><node oor:name="L274" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4027 File Folder / Address</value></prop><prop oor:name="Measure"><value>C;8890;1270;8890;1111;953;0;1;1</value></prop></node><node oor:name="L275" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4255 File Folder</value></prop><prop oor:name="Measure"><value>C;8890;1270;8890;1111;1270;0;1;1</value></prop></node><node oor:name="L276" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4266 File Folder-Assorted</value></prop><prop oor:name="Measure"><value>C;8890;1270;8890;1111;1270;0;1;1</value></prop></node><node oor:name="L277" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4163 Piggyback</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2381;953;0;1;1</value></prop></node><node oor:name="L278" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4160 Name Badge</value></prop><prop oor:name="Measure"><value>C;8890;6350;8890;6191;953;0;1;1</value></prop></node><node oor:name="L279" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4241 3-1/2" Diskette</value></prop><prop oor:name="Measure"><value>C;6985;7620;6985;6985;2223;0;1;1</value></prop></node><node oor:name="L280" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4166 Index Card</value></prop><prop oor:name="Measure"><value>C;12700;7620;12700;7620;1270;0;1;1</value></prop></node><node oor:name="L281" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4167 Post Card</value></prop><prop oor:name="Measure"><value>C;15240;8890;15240;8890;1270;0;1;1</value></prop></node><node oor:name="L282" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4037 Address</value></prop><prop oor:name="Measure"><value>C;6604;2540;6350;2381;889;0;2;1</value></prop></node><node oor:name="L283" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4020 Address</value></prop><prop oor:name="Measure"><value>C;7620;2540;7620;2381;1270;0;1;1</value></prop></node><node oor:name="L284" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4109 Address</value></prop><prop oor:name="Measure"><value>C;8636;2540;8382;2381;1651;0;4;1</value></prop></node><node oor:name="L285" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4018 Address - Removable</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2381;953;0;1;1</value></prop></node><node oor:name="L286" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4062 Address</value></prop><prop oor:name="Measure"><value>C;9144;3810;8890;3651;889;0;3;1</value></prop></node><node oor:name="L287" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4035 Address</value></prop><prop oor:name="Measure"><value>C;8890;5080;8890;4921;953;0;1;1</value></prop></node><node oor:name="L288" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4052 Data Storage</value></prop><prop oor:name="Measure"><value>C;9843;5080;9843;4604;953;0;1;1</value></prop></node><node oor:name="L289" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4067 Address</value></prop><prop oor:name="Measure"><value>C;10414;2540;10160;2381;889;0;3;1</value></prop></node><node oor:name="L290" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4019 Address - Removable</value></prop><prop oor:name="Measure"><value>C;10160;3810;10160;3651;953;0;1;1</value></prop></node><node oor:name="L291" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4015 Address</value></prop><prop oor:name="Measure"><value>C;12700;2540;12700;2381;1270;0;1;1</value></prop></node><node oor:name="L292" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4090 Address</value></prop><prop oor:name="Measure"><value>C;12700;5080;12700;4921;1270;0;1;1</value></prop></node><node oor:name="L293" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4043 Shipping</value></prop><prop oor:name="Measure"><value>C;13970;8467;13970;7779;1270;0;1;1</value></prop></node></node><node oor:name="Avery Zweckform" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2493 Inkjet-Photo-Papier, blanko</value></prop><prop oor:name="Measure"><value>S;13250;9500;12950;9000;1750;1250;2;2</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2494 Inkjet-Photo-Papier, blanko</value></prop><prop oor:name="Measure"><value>S;15000;14850;15000;10000;3000;2425;1;2</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2495 Inkjet-Photo-Papier, blanko</value></prop><prop oor:name="Measure"><value>S;18000;13250;18000;12950;1500;1750;1;2</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32010 Visitenkarten, blanko</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32011 Visitenkarten, blanko, schnittgestanzt</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32012 Visitenkarten, blanko, schnittgestanzt</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32014 Inkjet-Visitenkarten, blanko</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32017 Doppel-Visitenkarten, blanko</value></prop><prop oor:name="Measure"><value>S;17000;5400;17000;5400;2000;1350;1;5</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32020 Visitenkarten, marmoriert</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32021 Visitenkarten, marmoriert</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32022 Visitenkarten, marmoriert</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32023 Visitenkarten, marmoriert</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L12" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32029 Visitenkarten, blanko, Glossy</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L13" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32030 Visitenkarten, Blue Wave</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L14" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32031 Visitenkarten, Paradise</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L15" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32032 Visitenkarten, Sahara</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L16" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32036 Visitenkarten, Cosmic</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L17" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32040 Visitenkarten, blanko</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L18" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32060 Inkjet Bütten-Papier, Cream</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L19" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32061 Inkjet Bütten-Papier, Aqua</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L20" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32062 Inkjet Bütten-Papier, Jade</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L21" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32063 Inkjet Bütten-Papier, Sand</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L22" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32064 Inkjet-Papier, Leinenstruktur</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L23" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32065 Inkjet-Papier, Hammerschlag</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L24" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32080 Marmoriertes Papier</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L25" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32081 Marmoriertes Papier</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L26" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32082 Marmoriertes Papier</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L27" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32083 Marmoriertes Papier</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L28" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32098 Urkunde marmoriert, Text rot</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L29" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32099 Urkunde marmoriert, Text gold</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L30" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32250 CD-Einleger, blanko</value></prop><prop oor:name="Measure"><value>S;15100;24900;15100;24900;2950;2400;1;1</value></prop></node><node oor:name="L31" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32251 Inkjet-CD-Einleger</value></prop><prop oor:name="Measure"><value>S;15100;24900;15100;24900;2950;2400;1;1</value></prop></node><node oor:name="L32" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32252 Postkarte, blanko</value></prop><prop oor:name="Measure"><value>S;14850;10500;14850;10500;0;0;2;2</value></prop></node><node oor:name="L33" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32253 Tischkarte, blanko</value></prop><prop oor:name="Measure"><value>S;11000;8000;11000;8000;3850;2500;2;2</value></prop></node><node oor:name="L34" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32254 Karteikarte, blanko</value></prop><prop oor:name="Measure"><value>S;10500;7000;10500;7000;0;850;2;4</value></prop></node><node oor:name="L35" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32255 Cassetten-Einleger, blanko</value></prop><prop oor:name="Measure"><value>S;10100;15600;10100;15600;2375;2700;1;1</value></prop></node><node oor:name="L36" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32256 Video-Einleger, blanko</value></prop><prop oor:name="Measure"><value>S;25800;19000;25800;19000;1950;1000;1;1</value></prop></node><node oor:name="L37" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32257 Tischkarte lang, blanko</value></prop><prop oor:name="Measure"><value>S;21000;14000;21000;14000;0;850;1;2</value></prop></node><node oor:name="L38" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32258 Regalschilder</value></prop><prop oor:name="Measure"><value>S;10500;3800;10500;3800;0;1550;2;7</value></prop></node><node oor:name="L39" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32286 Inkjet-Glückwunschkarten, blanko</value></prop><prop oor:name="Measure"><value>S;29700;21000;29700;21000;0;0;1;1</value></prop></node><node oor:name="L40" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32287 Inkjet-Glückwunschkarten, blanko</value></prop><prop oor:name="Measure"><value>S;21000;14850;21000;14850;0;0;1;2</value></prop></node><node oor:name="L41" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32288 Inkjet-Glückwunschkarten, blanko</value></prop><prop oor:name="Measure"><value>S;21600;15600;21600;15600;4050;2700;1;1</value></prop></node><node oor:name="L42" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>32289 Inkjet-Glückwunschkarten, blanko</value></prop><prop oor:name="Measure"><value>S;29700;21000;29700;21000;0;0;1;1</value></prop></node><node oor:name="L43" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9312 Glossy Visitenkarten, schnittgestanzt</value></prop><prop oor:name="Measure"><value>S;9100;6000;8500;5400;1700;3150;2;4</value></prop></node><node oor:name="L44" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3415 Kreise</value></prop><prop oor:name="Measure"><value>S;4600;4600;4000;4000;1600;1343;4;6</value></prop></node><node oor:name="L45" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3416 Kreise</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1793;3;4</value></prop></node><node oor:name="L46" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3418 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;20000;29686;20000;29686;0;0;1;1</value></prop></node><node oor:name="L47" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3420 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;1690;7000;1690;0;478;3;17</value></prop></node><node oor:name="L48" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3421 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;2540;7000;2540;0;873;3;11</value></prop></node><node oor:name="L49" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3422 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3500;7000;3500;0;843;3;8</value></prop></node><node oor:name="L50" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3423 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;3500;10500;3500;0;843;2;8</value></prop></node><node oor:name="L51" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3424 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;4800;10500;4800;0;443;2;6</value></prop></node><node oor:name="L52" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3425 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;5700;10500;5700;0;593;2;5</value></prop></node><node oor:name="L53" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3426 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;7000;10500;7000;0;843;2;4</value></prop></node><node oor:name="L54" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3427 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;7420;10500;7420;0;0;2;4</value></prop></node><node oor:name="L55" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3448 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3710;7000;3710;0;0;3;8</value></prop></node><node oor:name="L56" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3449 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3710;7000;3710;0;0;3;8</value></prop></node><node oor:name="L57" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3450 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3710;7000;3710;0;0;3;8</value></prop></node><node oor:name="L58" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3451 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3710;7000;3710;0;0;3;8</value></prop></node><node oor:name="L59" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3452 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;3710;10500;3710;0;0;2;8</value></prop></node><node oor:name="L60" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3453 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;3710;10500;3710;0;0;2;8</value></prop></node><node oor:name="L61" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3454 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;3710;10500;3710;0;0;2;8</value></prop></node><node oor:name="L62" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3455 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;3710;10500;3710;0;0;2;8</value></prop></node><node oor:name="L63" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3456 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;14843;10500;14843;10500;0;0;2;2</value></prop></node><node oor:name="L64" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3457 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;14843;10500;14843;10500;0;0;2;2</value></prop></node><node oor:name="L65" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3458 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;14843;10500;14843;10500;0;0;2;2</value></prop></node><node oor:name="L66" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3459 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;14843;10500;14843;10500;0;0;2;2</value></prop></node><node oor:name="L67" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3470 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L68" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3471 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L69" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3472 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L70" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3473 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L71" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3474 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3710;7000;3710;0;0;3;8</value></prop></node><node oor:name="L72" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3475 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3600;7000;3600;0;443;3;8</value></prop></node><node oor:name="L73" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3477 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;4100;10500;4100;0;493;2;7</value></prop></node><node oor:name="L74" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3478 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L75" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3479 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3200;7000;3200;0;443;3;9</value></prop></node><node oor:name="L76" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3481 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;4100;7000;4100;0;493;3;7</value></prop></node><node oor:name="L77" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3483 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;14843;10500;14843;10500;0;0;2;2</value></prop></node><node oor:name="L78" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3484 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;3710;10500;3710;0;0;2;8</value></prop></node><node oor:name="L79" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3489 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;2969;7000;2969;0;0;3;10</value></prop></node><node oor:name="L80" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3490 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3600;7000;3600;0;443;3;8</value></prop></node><node oor:name="L81" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3651 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;5250;2969;5250;2969;0;0;4;10</value></prop></node><node oor:name="L82" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3652 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;4241;7000;4241;0;0;3;7</value></prop></node><node oor:name="L83" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3653 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;4241;10500;4241;0;0;2;7</value></prop></node><node oor:name="L84" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3654 CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L85" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3655 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;14843;21000;14843;0;0;1;2</value></prop></node><node oor:name="L86" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3657 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;4850;2540;4850;2540;800;2143;4;10</value></prop></node><node oor:name="L87" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3658 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;6460;3380;6460;3380;810;1323;3;8</value></prop></node><node oor:name="L88" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3659 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;9700;4230;9700;4230;800;2153;2;6</value></prop></node><node oor:name="L89" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3660 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;9700;6770;9700;6770;800;1303;2;4</value></prop></node><node oor:name="L90" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3661 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;6770;7000;6770;0;1303;3;4</value></prop></node><node oor:name="L91" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3662 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3400;19200;3400;19200;1243;900;8;1</value></prop></node><node oor:name="L92" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3663 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;5900;19200;5900;19200;3043;900;4;1</value></prop></node><node oor:name="L93" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3664 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3380;7000;3380;0;1323;3;8</value></prop></node><node oor:name="L94" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3665 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;10500;3380;10500;3380;0;1323;2;8</value></prop></node><node oor:name="L95" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3666 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;3810;2120;3810;2120;975;1063;5;13</value></prop></node><node oor:name="L96" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3667 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;4850;1690;4850;1690;800;1323;4;16</value></prop></node><node oor:name="L97" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3668 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;5250;2120;5250;2120;0;0;4;14</value></prop></node><node oor:name="L98" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3669 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;5080;7000;5080;0;2143;3;5</value></prop></node><node oor:name="L99" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3674 Computer-Etiketten</value></prop><prop oor:name="Measure"><value>S;2794;1693;2540;1450;1436;122;3;12</value></prop></node><node oor:name="L100" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3675 Computer-Etiketten</value></prop><prop oor:name="Measure"><value>S;4064;2540;3810;2300;1563;120;2;8</value></prop></node><node oor:name="L101" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3676 Computer-Etiketten</value></prop><prop oor:name="Measure"><value>S;5074;2117;4820;1870;1303;123;2;9</value></prop></node><node oor:name="L102" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3677 Computer-Etiketten, für 3,5" Disk.</value></prop><prop oor:name="Measure"><value>S;7150;7197;7150;6960;1925;119;1;3</value></prop></node><node oor:name="L103" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3684 Computer-Etiketten, für 3,5" Disk.</value></prop><prop oor:name="Measure"><value>S;7150;7197;7150;6960;1925;119;1;3</value></prop></node><node oor:name="L104" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3685 Computer-Etiketten, für 3,5" Disk.</value></prop><prop oor:name="Measure"><value>S;7150;7197;7150;6960;1925;119;1;3</value></prop></node><node oor:name="L105" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3686 Computer-Etiketten, für 3,5" Disk.</value></prop><prop oor:name="Measure"><value>S;7150;7197;7150;6960;1925;119;1;3</value></prop></node><node oor:name="L106" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3687 Computer-Etiketten, für 3,5" Disk.</value></prop><prop oor:name="Measure"><value>S;7150;7197;7150;6960;1925;119;1;3</value></prop></node><node oor:name="L107" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3688 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;19200;6100;19200;2643;900;4;1</value></prop></node><node oor:name="L108" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3689 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;19200;3800;19200;1543;900;7;1</value></prop></node><node oor:name="L109" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3691 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;19200;6100;19200;2643;900;4;1</value></prop></node><node oor:name="L110" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3692 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;19200;6100;19200;2643;900;4;1</value></prop></node><node oor:name="L111" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3693 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;19200;6100;19200;2643;900;4;1</value></prop></node><node oor:name="L112" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3694 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;19200;6100;19200;2643;900;4;1</value></prop></node><node oor:name="L113" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3696 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;19200;3800;19200;1543;900;7;1</value></prop></node><node oor:name="L114" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3697 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;19200;3800;19200;1543;900;7;1</value></prop></node><node oor:name="L115" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3698 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;19200;3800;19200;1543;900;7;1</value></prop></node><node oor:name="L116" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3699 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;19200;3800;19200;1543;900;7;1</value></prop></node><node oor:name="L117" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4720 Transparente Etiketten</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L118" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4721 Transparente Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L119" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4722 Transparente Etiketten</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2143;2;5</value></prop></node><node oor:name="L120" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4723 Transparente Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L121" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4730 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;2032;1000;1778;1000;467;1343;10;27</value></prop></node><node oor:name="L122" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4731 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1343;7;27</value></prop></node><node oor:name="L123" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4732 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;3810;1693;3556;1693;1102;1299;5;16</value></prop></node><node oor:name="L124" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4733 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;14843;10500;14843;10500;0;0;2;2</value></prop></node><node oor:name="L125" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4734 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;21000;14843;21000;14843;0;0;1;2</value></prop></node><node oor:name="L126" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4735 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L127" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4736 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L128" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4737 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L129" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4738 Disketten-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2143;2;5</value></prop></node><node oor:name="L130" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4739 Disketten-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2143;2;5</value></prop></node><node oor:name="L131" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4740 Disketten-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9000;6773;7000;6773;2500;1297;2;4</value></prop></node><node oor:name="L132" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4741 Disketten-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9000;6773;7000;6773;2500;1297;2;4</value></prop></node><node oor:name="L133" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4742 Video-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;8128;4657;7874;4657;2499;872;2;6</value></prop></node><node oor:name="L134" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4743 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9854;4233;9600;4233;773;2144;2;6</value></prop></node><node oor:name="L135" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4744 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2143;2;5</value></prop></node><node oor:name="L136" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4745 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9854;6350;9600;6350;773;2143;2;4</value></prop></node><node oor:name="L137" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4746 Video-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;14732;2000;14732;2000;3134;1843;1;13</value></prop></node><node oor:name="L138" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4747 Etiketten für ZIP-Disketten</value></prop><prop oor:name="Measure"><value>S;6154;5000;5900;5000;1396;2343;3;5</value></prop></node><node oor:name="L139" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4748 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;29686;3800;29686;1000;0;5;1</value></prop></node><node oor:name="L140" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4749 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;29686;3800;29686;1000;0;5;1</value></prop></node><node oor:name="L141" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4750 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;29686;3800;29686;1000;0;5;1</value></prop></node><node oor:name="L142" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4751 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;29686;3800;29686;1000;0;5;1</value></prop></node><node oor:name="L143" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4752 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;29686;6100;29686;1350;0;3;1</value></prop></node><node oor:name="L144" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4753 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;29686;6100;29686;1350;0;3;1</value></prop></node><node oor:name="L145" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4754 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;29686;6100;29686;1350;0;3;1</value></prop></node><node oor:name="L146" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4755 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;29686;6100;29686;1350;0;3;1</value></prop></node><node oor:name="L147" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4756 Hängeordner-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3400;29686;3400;29686;2000;0;5;1</value></prop></node><node oor:name="L148" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4757 Hängeordner-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6300;29686;6300;29686;1050;0;3;1</value></prop></node><node oor:name="L149" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4758 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;29686;3800;29686;1000;0;5;1</value></prop></node><node oor:name="L150" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4759 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;29686;6100;29686;1350;0;3;1</value></prop></node><node oor:name="L151" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4760 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;19200;3800;19200;1543;900;7;1</value></prop></node><node oor:name="L152" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4761 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;19200;6100;19200;2643;900;4;1</value></prop></node><node oor:name="L153" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4762 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;19200;3800;19200;1543;900;7;1</value></prop></node><node oor:name="L154" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4763 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;19200;3800;19200;1543;900;7;1</value></prop></node><node oor:name="L155" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4764 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;19200;3800;19200;1543;900;7;1</value></prop></node><node oor:name="L156" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4765 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3800;19200;3800;19200;1543;900;7;1</value></prop></node><node oor:name="L157" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4766 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;19200;6100;19200;2643;900;4;1</value></prop></node><node oor:name="L158" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4767 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;19200;6100;19200;2643;900;4;1</value></prop></node><node oor:name="L159" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4768 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;19200;6100;19200;2643;900;4;1</value></prop></node><node oor:name="L160" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4769 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;6100;19200;6100;19200;2643;900;4;1</value></prop></node><node oor:name="L161" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4770 Transparente Etiketten</value></prop><prop oor:name="Measure"><value>S;4850;2540;4850;2540;800;2143;4;10</value></prop></node><node oor:name="L162" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4771 Transparente Etiketten</value></prop><prop oor:name="Measure"><value>S;7000;3710;7000;3710;0;0;3;8</value></prop></node><node oor:name="L163" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4772 Transparente Etiketten</value></prop><prop oor:name="Measure"><value>S;9700;4230;9700;4230;800;2153;2;6</value></prop></node><node oor:name="L164" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4773 Wetterfeste Etiketten</value></prop><prop oor:name="Measure"><value>S;6460;3380;6460;3380;810;1323;3;8</value></prop></node><node oor:name="L165" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4774 Wetterfeste Etiketten</value></prop><prop oor:name="Measure"><value>S;14843;10500;14843;10500;0;0;2;2</value></prop></node><node oor:name="L166" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4775 Wetterfeste Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L167" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4776 Wetterfeste Etiketten</value></prop><prop oor:name="Measure"><value>S;9700;4230;9700;4230;800;2153;2;6</value></prop></node><node oor:name="L168" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4777 Transparente Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L169" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4780 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;4850;2540;4850;2540;800;2143;4;10</value></prop></node><node oor:name="L170" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4781 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;9700;4230;9700;4230;800;2153;2;6</value></prop></node><node oor:name="L171" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4782 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;9700;6770;9700;6770;800;1303;2;4</value></prop></node><node oor:name="L172" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4784 Namens-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L173" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4790 Inkjet-Etiketten, rund</value></prop><prop oor:name="Measure"><value>S;4600;4600;4000;4000;1600;1343;4;6</value></prop></node><node oor:name="L174" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4791 Inkjet-Etiketten</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L175" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4792 Inkjet-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L176" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4793 Inkjet-Etiketten</value></prop><prop oor:name="Measure"><value>S;9854;4233;9600;4233;773;2144;2;6</value></prop></node><node oor:name="L177" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4794 Inkjet-Etiketten</value></prop><prop oor:name="Measure"><value>S;9854;6350;9600;6350;773;2143;2;4</value></prop></node><node oor:name="L178" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4795 Inkjet-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L179" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4798 Disketten-Etiketten Photo-Qualität</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2143;2;5</value></prop></node><node oor:name="L180" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4799 Inkjet-Etiketten, oval</value></prop><prop oor:name="Measure"><value>S;9854;6773;9600;6350;773;1509;2;4</value></prop></node><node oor:name="L181" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6002 Neon-Etiketten</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1793;3;4</value></prop></node><node oor:name="L182" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6003 Neon-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L183" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6004 Neon-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L184" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6005 Neon-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L185" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6006 Neon-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L186" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6008 Typenschild-Etiketten</value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1343;7;27</value></prop></node><node oor:name="L187" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6009 Typenschild-Etiketten</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L188" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6011 Typenschild-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L189" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6012 Typenschild-Etiketten</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2143;2;5</value></prop></node><node oor:name="L190" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6013 Typenschild-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L191" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6014 Etiketten für CD-Hüllen</value></prop><prop oor:name="Measure"><value>S;11430;550;11430;550;4785;1643;1;48</value></prop></node><node oor:name="L192" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6015 CD-Etiketten incl. Zentrierhilfe</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L193" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6019 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;1270;1270;1000;1000;1110;1643;15;21</value></prop></node><node oor:name="L194" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6020 Dia-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;4572;847;4318;847;1483;1291;4;32</value></prop></node><node oor:name="L195" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6021 Sichtreiter-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;4826;1693;4572;1693;975;1299;4;16</value></prop></node><node oor:name="L196" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6022 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;6604;847;6350;847;721;1291;3;32</value></prop></node><node oor:name="L197" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6023 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1508;3;7</value></prop></node><node oor:name="L198" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6024 Inkjet+Laser+Kopier-Etiketten Stick+Lift, </value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4233;721;1087;3;6</value></prop></node><node oor:name="L199" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6025 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;6604;4657;6350;4657;721;872;3;6</value></prop></node><node oor:name="L200" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6026 Disketten-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2143;2;5</value></prop></node><node oor:name="L201" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6029 Disketten-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2143;2;5</value></prop></node><node oor:name="L202" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6030 Cassetten-Etiketten, Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9154;4230;8900;4230;1473;2153;2;6</value></prop></node><node oor:name="L203" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6031 Inkjet+Laser+Kopier-Etiketten Stick+Lift</value></prop><prop oor:name="Measure"><value>S;9854;1693;9600;1693;773;1299;2;16</value></prop></node><node oor:name="L204" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6036 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1343;7;27</value></prop></node><node oor:name="L205" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6037 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1343;7;27</value></prop></node><node oor:name="L206" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6038 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L207" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6039 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L208" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6040 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L209" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6041 Inkjet+Laser+Kopier-Etiketten</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L210" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6043 CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L211" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6044 CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L212" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6045 CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L213" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6046 CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L214" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6047 CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L215" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6058 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3400;29686;3400;29686;2000;0;5;1</value></prop></node><node oor:name="L216" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6059 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;5900;29686;5900;29686;1650;0;3;1</value></prop></node><node oor:name="L217" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6060 Ordnerrücken-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3400;19200;3400;19200;1243;900;8;1</value></prop></node><node oor:name="L218" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6061 Ordnerrücken-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;5900;19200;5900;19200;3043;900;4;1</value></prop></node><node oor:name="L219" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6074 Inkjet-Glossy-CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L220" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6077 Inkjet-Glossy-Etiketten</value></prop><prop oor:name="Measure"><value>S;13123;9398;12700;8890;1932;1356;2;2</value></prop></node><node oor:name="L221" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6078 Inkjet-Glossy-Etiketten</value></prop><prop oor:name="Measure"><value>S;17800;13300;17800;12700;1600;1843;1;2</value></prop></node><node oor:name="L222" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6079 Inkjet-Glossy-Etiketten, oval</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4233;721;1087;3;6</value></prop></node><node oor:name="L223" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6080 Inkjet-Glossy-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;5080;6350;4657;721;2355;3;5</value></prop></node><node oor:name="L224" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6081 Inkjet-Glossy-Etiketten</value></prop><prop oor:name="Measure"><value>S;9398;6773;8890;6350;1356;1509;2;4</value></prop></node><node oor:name="L225" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6082 Inkjet-Glossy-CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L226" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6083 Inkjet-Glossy-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L227" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6090 Korrektur- und Abdeck-Etiketten</value></prop><prop oor:name="Measure"><value>S;4850;1690;4850;1690;800;1323;4;16</value></prop></node><node oor:name="L228" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6091 Korrektur- und Abdeck-Etiketten</value></prop><prop oor:name="Measure"><value>S;6460;3380;6460;3380;810;1323;3;8</value></prop></node><node oor:name="L229" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6092 Korrektur- und Abdeck-Etiketten</value></prop><prop oor:name="Measure"><value>S;9700;4230;9700;4230;800;2153;2;6</value></prop></node><node oor:name="L230" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6093 Korrektur- und Abdeck-Etiketten</value></prop><prop oor:name="Measure"><value>S;14843;10500;14843;10500;0;0;2;2</value></prop></node><node oor:name="L231" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6094 Korrektur- und Abdeck-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L232" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6102 Farbige Folien-Etiketten</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L233" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6103 Farbige Folien-Etiketten</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L234" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6104 Farbige Folien-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L235" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6105 Farbige Folien-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L236" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6106 Farbige Folien-Etiketten</value></prop><prop oor:name="Measure"><value>S;9854;4233;9600;4233;773;2144;2;6</value></prop></node><node oor:name="L237" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6107 Farbige Folien-Etiketten</value></prop><prop oor:name="Measure"><value>S;9854;4233;9600;4233;773;2144;2;6</value></prop></node><node oor:name="L238" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6108 Farbige Folien-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;7422;21000;7422;0;0;1;4</value></prop></node><node oor:name="L239" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6109 Farbige Folien-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;7422;21000;7422;0;0;1;4</value></prop></node><node oor:name="L240" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6110 Farbige Folien-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L241" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6111 Farbige Folien-Etiketten</value></prop><prop oor:name="Measure"><value>S;21000;29686;21000;29686;0;0;1;1</value></prop></node><node oor:name="L242" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6112 Sicherheits-Etiketten</value></prop><prop oor:name="Measure"><value>S;4600;4600;4000;4000;1600;1343;4;6</value></prop></node><node oor:name="L243" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6113 Sicherheits-Etiketten</value></prop><prop oor:name="Measure"><value>S;4826;2117;4572;2117;975;2141;4;12</value></prop></node><node oor:name="L244" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6114 Sicherheits-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;2963;6350;2963;721;1510;3;9</value></prop></node><node oor:name="L245" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6115 CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L246" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6116 MiniDisc-Etiketten</value></prop><prop oor:name="Measure"><value>S;3550;5450;3550;5200;575;1350;5;5</value></prop></node><node oor:name="L247" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6117 CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L248" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6118 CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L249" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7767 Farblaser-Glossy-Etiketten</value></prop><prop oor:name="Measure"><value>S;20900;29500;20900;29500;50;100;1;1</value></prop></node><node oor:name="L250" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7768 Farblaser-Glossy-Etiketten</value></prop><prop oor:name="Measure"><value>S;19960;14350;19960;14350;520;500;1;2</value></prop></node><node oor:name="L251" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7769 Farblaser-Glossy-Etiketten</value></prop><prop oor:name="Measure"><value>S;10164;13900;9910;13900;463;950;2;2</value></prop></node><node oor:name="L252" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7765 Farblaser-Glossy-Etiketten</value></prop><prop oor:name="Measure"><value>S;10164;6770;9910;6770;467;1304;2;4</value></prop></node><node oor:name="L253" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9660 SuperSize Inkjet-Glossy-CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L254" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7760 SuperSize Farblaser-Glossy-CD-Etiketten</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L255" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8776 Inkjet-Stardust-CD-Etiketten*</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L256" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8871 Inkjet-Magnet-Schilder**</value></prop><prop oor:name="Measure"><value>S;7800;2800;7800;2800;2450;2243;2;9</value></prop></node><node oor:name="L257" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8875 Inkjet-Magnet-Schilder**</value></prop><prop oor:name="Measure"><value>S;14000;5000;14000;5000;843;500;2;4</value></prop></node><node oor:name="L258" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8867 Inkjet-Magnet-Schilder**</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L259" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2166 Etikett rechteckig</value></prop><prop oor:name="Measure"><value>S;7620;5927;7000;5200;3190;3360;2;4</value></prop></node><node oor:name="L260" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2243 Etikett rund, klein</value></prop><prop oor:name="Measure"><value>S;4260;5080;3810;3810;2205;2785;4;5</value></prop></node><node oor:name="L261" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2351 Glückwunschkarten A5</value></prop><prop oor:name="Measure"><value>S;29700;21000;29700;21000;0;0;1;1</value></prop></node><node oor:name="L262" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2354 Visitenkarten bis zum Rand</value></prop><prop oor:name="Measure"><value>S;8513;5922;8037;5080;2250;3427;2;4</value></prop></node><node oor:name="L263" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2355 Glückwunschkarten Standard</value></prop><prop oor:name="Measure"><value>S;16510;12548;16510;12072;2245;2540;1;2</value></prop></node><node oor:name="L264" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2410 Clubkarten laminiert</value></prop><prop oor:name="Measure"><value>S;8150;9300;8150;5000;10700;3050;1;3</value></prop></node><node oor:name="L265" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2651 Etikett rechteckig, klein</value></prop><prop oor:name="Measure"><value>S;4064;2117;3810;2117;467;1090;5;13</value></prop></node><node oor:name="L266" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9405 T-Shirt Transferfolie</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L267" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2547 Fantastic Plastic</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L268" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2070 Transfer-Folie für Mousepad</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L269" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2090 T-Shirt Transfer-Folie</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L270" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2080 Transfer-Folie für Puzzles</value></prop><prop oor:name="Measure"><value>S;24500;17000;24500;17000;2600;2000;1;1</value></prop></node><node oor:name="L271" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8416 Einladungskarten mit Klebeverschluss</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L272" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2546 Fensterbilder</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L273" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9660 CD-Etiketten, glossy, Super-Size</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L274" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8770 CD-Etiketten, Super-Ssize</value></prop><prop oor:name="Measure"><value>S;11700;13700;11700;11700;4650;2143;1;2</value></prop></node><node oor:name="L275" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2050 Video-Etiketten, seitlich</value></prop><prop oor:name="Measure"><value>S;14732;2000;14732;2000;3134;1843;1;13</value></prop></node><node oor:name="L276" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2050 Video-Etiketten, oben</value></prop><prop oor:name="Measure"><value>S;8128;4657;7874;4657;2499;872;2;6</value></prop></node><node oor:name="L277" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8666 Disketten-Etiketten</value></prop><prop oor:name="Measure"><value>S;9330;5200;7000;5200;2335;1850;2;5</value></prop></node><node oor:name="L278" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J9124 Photo-Etiketten, 13 x 18</value></prop><prop oor:name="Measure"><value>S;18000;13250;18000;12950;1500;1750;1;2</value></prop></node><node oor:name="L279" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7424 Ordner-Etiketten, breit</value></prop><prop oor:name="Measure"><value>S;5900;19200;5900;19200;3043;900;4;1</value></prop></node><node oor:name="L280" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7425 Ordner-Etiketten, schmal</value></prop><prop oor:name="Measure"><value>S;3400;19200;3400;19200;1243;900;8;1</value></prop></node><node oor:name="L281" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8587 Inkjet-Folie</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L282" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7587 Laser-Folie</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L283" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9431 Photo-Papier, glossy</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L284" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9434 Photo-Karton, glossy</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L285" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9372 Photo-Papier, glossy, 9 x 13</value></prop><prop oor:name="Measure"><value>S;13250;9500;12950;9000;1750;1250;2;2</value></prop></node><node oor:name="L286" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2371 Inkjet-Papier</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L287" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2370 Inkjet-Papier</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L288" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2374 Marmoriertes Papier</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L289" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2375 Marmoriertes Papier</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L290" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2376 Marmoriertes Papier</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L291" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2377 Marmoriertes Papier</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L292" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9355 Postkarten, Vorderseite</value></prop><prop oor:name="Measure"><value>S;14800;12000;14800;10500;3100;3600;1;2</value></prop></node><node oor:name="L293" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9355 Postkarten, Rückseite</value></prop><prop oor:name="Measure"><value>S;14800;12000;14800;10500;3100;3600;1;2</value></prop></node><node oor:name="L294" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>J8435 CD-Einleger</value></prop><prop oor:name="Measure"><value>S;15100;24900;15100;24900;2950;2400;1;1</value></prop></node><node oor:name="L295" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9362 Visitenkarten, glossy</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L296" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2364 Marmorierte Visitenkarten</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L297" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2365 Marmorierte Visitenkarten</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L298" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2366 Marmorierte Visitenkarten</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L299" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C2367 Marmorierte Visitenkarten</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1500;1350;2;5</value></prop></node><node oor:name="L300" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>C9352 Glückwunschkarten A6, glossy</value></prop><prop oor:name="Measure"><value>S;8255;12548;8255;12072;2245;2540;2;2</value></prop></node><node oor:name="L301" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7159 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;6654;3390;6400;3390;646;1306;3;8</value></prop></node><node oor:name="L302" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7160 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;720;1515;3;7</value></prop></node><node oor:name="L303" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7161 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;4660;6350;4660;721;882;3;6</value></prop></node><node oor:name="L304" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7162 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;4660;6350;4660;467;1302;2;8</value></prop></node><node oor:name="L305" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7163 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;10164;3810;9910;3810;467;1515;2;7</value></prop></node><node oor:name="L306" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7164 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;6604;7200;6350;7200;721;457;3;4</value></prop></node><node oor:name="L307" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7165 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;10164;6770;9910;6770;467;1304;2;4</value></prop></node><node oor:name="L308" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7166 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;10164;9310;9910;9310;467;880;2;3</value></prop></node><node oor:name="L309" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7167 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;19960;28910;19960;28910;520;397;1;1</value></prop></node><node oor:name="L310" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7168 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;19960;14350;19960;14350;520;497;1;2</value></prop></node><node oor:name="L311" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7169 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;10164;13900;9910;13900;950;463;2;2</value></prop></node><node oor:name="L312" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7173 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;10164;5700;9910;5700;467;600;2;5</value></prop></node><node oor:name="L313" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7651 Laser-Etiketten</value></prop><prop oor:name="Measure"><value>S;4064;2120;3810;2120;467;1089;5;13</value></prop></node><node oor:name="L314" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-10 Etiketten Register - Etikettenbogen 10</value></prop><prop oor:name="Measure"><value>S;4826;2117;2540;1270;1991;4690;4;10</value></prop></node><node oor:name="L315" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-10 Etiketten Register - Inhaltsblatt 10-t</value></prop><prop oor:name="Measure"><value>S;10000;2885;10000;2885;11000;425;1;10</value></prop></node><node oor:name="L316" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-12 Etiketten Register - Etikettenbogen 12</value></prop><prop oor:name="Measure"><value>S;4572;1693;2200;1270;2542;4902;4;12</value></prop></node><node oor:name="L317" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-12 Etiketten Register - Inhaltsblatt 12-t</value></prop><prop oor:name="Measure"><value>S;10000;2390;10000;2390;11000;510;1;12</value></prop></node><node oor:name="L318" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-5 Etiketten Register - Etikettenbogen 5-t</value></prop><prop oor:name="Measure"><value>S;10419;2117;5502;1270;2540;4690;2;10</value></prop></node><node oor:name="L319" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7410-5 Etiketten Register - Inhaltsblatt 5-tei</value></prop><prop oor:name="Measure"><value>S;10000;5750;10000;5750;11000;475;1;5</value></prop></node><node oor:name="L320" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-10 Zahlen Register - Inhaltsblatt 1-10</value></prop><prop oor:name="Measure"><value>S;10000;2885;10000;2885;11000;425;1;10</value></prop></node><node oor:name="L321" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-12 Zahlen Register - Inhaltsblatt 1-12</value></prop><prop oor:name="Measure"><value>S;10000;2390;10000;2390;11000;510;1;12</value></prop></node><node oor:name="L322" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-15 Zahlen Register - Inhaltsblatt 1-15</value></prop><prop oor:name="Measure"><value>S;10000;1980;10000;1980;11000;0;1;15</value></prop></node><node oor:name="L323" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-20 Zahlen Register - Inhaltsblatt 1-20</value></prop><prop oor:name="Measure"><value>S;10000;1335;10000;1335;11000;1500;1;20</value></prop></node><node oor:name="L324" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-31 Zahlen Register - Inhaltsblatt 1-31</value></prop><prop oor:name="Measure"><value>S;10000;861;10000;861;11000;1500;1;31</value></prop></node><node oor:name="L325" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-5 Zahlen Register - Inhaltsblatt 1-5</value></prop><prop oor:name="Measure"><value>S;10000;5750;10000;5750;11000;475;1;5</value></prop></node><node oor:name="L326" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-AZ A-Z Register - Inhaltsblatt</value></prop><prop oor:name="Measure"><value>S;10000;1335;10000;1335;11000;1500;1;20</value></prop></node><node oor:name="L327" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7411-JD Monats Register - Inhaltsblatt Jan - D</value></prop><prop oor:name="Measure"><value>S;10000;2390;10000;2390;11000;510;1;12</value></prop></node><node oor:name="L328" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7412-10 Einsteckschilder für Register 10-teilig</value></prop><prop oor:name="Measure"><value>S;4840;2116;3950;2116;1000;4730;4;10</value></prop></node><node oor:name="L329" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7412-12 Einsteckschilder für Register 12-teilig</value></prop><prop oor:name="Measure"><value>S;4840;2116;3450;2116;1250;4730;4;10</value></prop></node><node oor:name="L330" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>L7412-5 Einsteckschilder für Register 5-teilig</value></prop><prop oor:name="Measure"><value>S;10440;2116;7100;2116;1320;4730;2;10</value></prop></node><node oor:name="L331" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5129061 Trennstreifen </value></prop><prop oor:name="Measure"><value>S;24000;10500;24000;10500;0;0;1;2</value></prop></node><node oor:name="L332" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3600 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1055;0;1;1</value></prop></node><node oor:name="L333" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3601 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1055;0;1;1</value></prop></node><node oor:name="L334" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3602 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1055;0;1;1</value></prop></node><node oor:name="L335" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3603 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1055;0;1;1</value></prop></node><node oor:name="L336" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3604 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;2794;1693;2540;1450;1690;0;3;1</value></prop></node><node oor:name="L337" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3605 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;4314;1693;4060;1450;1440;0;2;1</value></prop></node><node oor:name="L338" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3606 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;5074;2117;4820;1870;1430;0;2;1</value></prop></node><node oor:name="L339" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3607 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;4064;2540;3810;2300;1690;0;2;1</value></prop></node><node oor:name="L340" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3608 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1055;0;1;1</value></prop></node><node oor:name="L341" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3609 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;7370;1270;7370;1030;1315;0;1;1</value></prop></node><node oor:name="L342" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3610 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2300;1055;0;1;1</value></prop></node><node oor:name="L343" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3611 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1243;0;1;1</value></prop></node><node oor:name="L344" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3612 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10160;3810;10160;3570;1335;0;1;1</value></prop></node><node oor:name="L345" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3613 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10670;5080;10670;4840;1080;0;1;1</value></prop></node><node oor:name="L346" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3614 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;11430;5080;11430;4840;1119;0;1;1</value></prop></node><node oor:name="L347" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3615 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1243;0;1;1</value></prop></node><node oor:name="L348" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3617 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4840;1335;0;1;1</value></prop></node><node oor:name="L349" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3620 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10414;3810;10160;3570;1215;0;2;1</value></prop></node><node oor:name="L350" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3621 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;4572;3810;4318;3570;1182;0;2;1</value></prop></node><node oor:name="L351" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3623 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10414;5080;10160;4840;1215;0;2;1</value></prop></node><node oor:name="L352" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3633 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;7624;3810;7370;3570;1445;0;3;1</value></prop></node><node oor:name="L353" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3634 Computer-Etikett, schnittgestanzt</value></prop><prop oor:name="Measure"><value>C;9500;3810;9500;3810;1055;0;1;1</value></prop></node><node oor:name="L354" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3635 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1243;0;1;1</value></prop></node><node oor:name="L355" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3643 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;3558;2540;3050;2300;2850;0;6;1</value></prop></node><node oor:name="L356" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3645 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2300;1055;0;1;1</value></prop></node><node oor:name="L357" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3646 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;5080;8890;4840;1055;0;1;1</value></prop></node><node oor:name="L358" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3647 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;4574;1270;4320;1030;1180;0;2;1</value></prop></node><node oor:name="L359" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3648 Computer-Etikett, ablösbar</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2300;1055;0;1;1</value></prop></node><node oor:name="L360" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3674 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;2794;1693;2540;1450;1690;0;3;1</value></prop></node><node oor:name="L361" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3675 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;4064;2540;3810;2300;1690;0;2;1</value></prop></node><node oor:name="L362" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>3676 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;5074;2117;4820;1870;1430;0;2;1</value></prop></node><node oor:name="L363" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5100 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;7370;1270;7370;1030;1315;0;1;1</value></prop></node><node oor:name="L364" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5101 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2300;1055;0;1;1</value></prop></node><node oor:name="L365" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5103 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;5080;8890;4840;1243;0;1;1</value></prop></node><node oor:name="L366" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5104 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10160;1270;10160;1030;1335;0;1;1</value></prop></node><node oor:name="L367" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5105 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10160;2540;10160;2300;1335;0;1;1</value></prop></node><node oor:name="L368" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5106 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10160;3810;10160;3570;1335;0;1;1</value></prop></node><node oor:name="L369" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5107 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4840;1335;0;1;1</value></prop></node><node oor:name="L370" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5108 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10670;3810;10670;3570;1080;0;1;1</value></prop></node><node oor:name="L371" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5109 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10670;5080;10670;4840;1080;0;1;1</value></prop></node><node oor:name="L372" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5110 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;11430;5080;11430;4840;1119;0;1;1</value></prop></node><node oor:name="L373" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5111 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;12700;2540;12700;2300;1150;0;1;1</value></prop></node><node oor:name="L374" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5112 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;12700;3810;12700;3570;1150;0;1;1</value></prop></node><node oor:name="L375" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5121 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1055;0;1;1</value></prop></node><node oor:name="L376" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5122 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1055;0;1;1</value></prop></node><node oor:name="L377" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5123 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1055;0;1;1</value></prop></node><node oor:name="L378" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5124 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1055;0;1;1</value></prop></node><node oor:name="L379" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5130 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;9144;3810;8890;3570;1360;0;2;1</value></prop></node><node oor:name="L380" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5131 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;9144;5080;8890;4840;1360;0;2;1</value></prop></node><node oor:name="L381" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5132 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10414;3810;10160;3570;1215;0;2;1</value></prop></node><node oor:name="L382" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5133 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10414;5080;10160;4840;1215;0;2;1</value></prop></node><node oor:name="L383" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5137 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;5334;2540;5080;2300;1170;0;2;1</value></prop></node><node oor:name="L384" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5140 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;4574;1270;4320;1030;1254;0;3;1</value></prop></node><node oor:name="L385" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5141 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;9144;2540;8890;2300;1665;0;3;1</value></prop></node><node oor:name="L386" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5142 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;9144;3810;8890;3570;1665;0;3;1</value></prop></node><node oor:name="L387" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5143 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;9144;5080;8890;4840;1665;0;3;1</value></prop></node><node oor:name="L388" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5145 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10414;3810;10160;3570;1260;0;3;1</value></prop></node><node oor:name="L389" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5146 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10924;3810;10670;3570;1495;0;3;1</value></prop></node><node oor:name="L390" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5147 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;10924;5080;10670;4840;1495;0;3;1</value></prop></node><node oor:name="L391" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5160 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;6604;2540;6350;2300;1550;0;4;1</value></prop></node><node oor:name="L392" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5161 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;7624;3810;7370;3570;1760;0;4;1</value></prop></node><node oor:name="L393" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5162 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8384;2540;8130;2300;1490;0;4;1</value></prop></node><node oor:name="L394" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5163 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8384;3810;8130;3570;1490;0;4;1</value></prop></node><node oor:name="L395" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5164 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;8500;3810;8000;3530;2020;0;4;1</value></prop></node><node oor:name="L396" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5170 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;6604;2540;6350;2300;1875;0;5;1</value></prop></node><node oor:name="L397" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5171 Computer-Etikett</value></prop><prop oor:name="Measure"><value>C;6374;3595;6350;3570;1875;0;5;1</value></prop></node></node><node oor:name="Herlitz" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083200/6 Adressetikett</value></prop><prop oor:name="Measure"><value>C;8900;3800;8900;3570;900;100;1;1</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083200/6 Adressetikett</value></prop><prop oor:name="Measure"><value>C;8900;3800;8900;3570;900;100;1;1</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083203/0 Adressetikett</value></prop><prop oor:name="Measure"><value>C;8900;5080;8900;4840;1100;100;1;1</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083204/8 Adressetikett</value></prop><prop oor:name="Measure"><value>C;10160;3800;10160;3570;900;100;1;1</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083205/5 Diskettenetikett</value></prop><prop oor:name="Measure"><value>C;7000;7620;7000;6960;1850;300;1;1</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083207/1 Adressetikett</value></prop><prop oor:name="Measure"><value>C;8900;3800;8900;3570;1100;100;2;1</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083215/4 Diskettenetikett</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2140;2;5</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083216/2 CD-ROM-Etikett</value></prop><prop oor:name="Measure"><value>S;11700;14800;11700;11700;4650;1600;1;2</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083217/0 Adressetikett</value></prop><prop oor:name="Measure"><value>S;7000;3600;7000;3600;0;440;3;8</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083219/6 Adressetikett</value></prop><prop oor:name="Measure"><value>S;9850;5080;9600;5080;770;2140;2;5</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083220/4 Adressetikett Laser</value></prop><prop oor:name="Measure"><value>S;7000;3710;7000;3710;0;0;3;8</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083221/2 Adressetikett Laser</value></prop><prop oor:name="Measure"><value>S;10500;4240;10500;4240;0;0;2;7</value></prop></node><node oor:name="L12" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083222/0 Adressetikett Laser</value></prop><prop oor:name="Measure"><value>S;7000;4240;7000;4240;0;0;3;7</value></prop></node><node oor:name="L13" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083224/6 Diskettenetikett Laser</value></prop><prop oor:name="Measure"><value>S;7000;7000;7000;7000;0;850;3;4</value></prop></node><node oor:name="L14" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083230/3 Adressetikett Inkjet</value></prop><prop oor:name="Measure"><value>S;7000;3710;7000;3710;0;0;3;8</value></prop></node><node oor:name="L15" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083231/1 Adressetikett Inkjet</value></prop><prop oor:name="Measure"><value>S;10500;4240;10500;4240;0;0;2;7</value></prop></node><node oor:name="L16" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083234/5 Diskettenetikett Inkjet</value></prop><prop oor:name="Measure"><value>S;7000;7000;7000;7000;0;850;3;4</value></prop></node><node oor:name="L17" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083240/2 Adressetik. Laser+InkJet</value></prop><prop oor:name="Measure"><value>S;7000;3710;7000;3710;0;0;3;8</value></prop></node><node oor:name="L18" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083244/4 Diskettenetik.Laser+InkJet</value></prop><prop oor:name="Measure"><value>S;7000;7000;7000;7000;0;850;3;4</value></prop></node><node oor:name="L19" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083250/1 Adressetiketten</value></prop><prop oor:name="Measure"><value>S;9860;4230;9600;4230;770;1076;2;3</value></prop></node><node oor:name="L20" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083251/9 Ordner-Etiketten, 8 cm</value></prop><prop oor:name="Measure"><value>S;19000;6100;19000;6100;1000;1321;1;2</value></prop></node><node oor:name="L21" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083252/7 Ordner-Etiketten, 5 cm</value></prop><prop oor:name="Measure"><value>S;19000;3800;19000;3800;1000;1721;1;3</value></prop></node><node oor:name="L22" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083253/5 Neonetiketten</value></prop><prop oor:name="Measure"><value>S;9860;4230;9600;4230;770;1076;2;3</value></prop></node><node oor:name="L23" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083254/3 Transparente Etiketten</value></prop><prop oor:name="Measure"><value>S;9860;4230;9600;4230;770;1076;2;3</value></prop></node><node oor:name="L24" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083255/0 Diskettenetiketten</value></prop><prop oor:name="Measure"><value>S;9000;6770;7000;6770;2500;651;2;2</value></prop></node><node oor:name="L25" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>83256/8a Videoetiketten 0</value></prop><prop oor:name="Measure"><value>S;8130;4660;7870;4660;2500;2761;2;2</value></prop></node><node oor:name="L26" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>83256/8b Videoetiketten 0</value></prop><prop oor:name="Measure"><value>S;14730;1690;14730;1690;3135;1506;1;7</value></prop></node><node oor:name="L27" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083257/6 Diaetiketten</value></prop><prop oor:name="Measure"><value>S;4820;1000;4570;1000;1000;1421;4;12</value></prop></node><node oor:name="L28" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083258/4 Farbdruck-Etiketten</value></prop><prop oor:name="Measure"><value>S;9860;4230;9600;4230;770;1076;2;3</value></prop></node><node oor:name="L29" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>502041/7 Visitenkarten</value></prop><prop oor:name="Measure"><value>S;9500;5400;8500;5400;1400;1400;2;5</value></prop></node><node oor:name="L30" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>083271/7 Ordnerrückeneinsteckschilder</value></prop><prop oor:name="Measure"><value>S;19000;5300;19000;5300;1000;1600;1;5</value></prop></node></node><node oor:name="Herma A4" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4093 SuperPrint CD-Etikett, gold</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4094 SuperPrint CD-Etikett, silber</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4097 SuperPrint Silberfolie</value></prop><prop oor:name="Measure"><value>S;4826;2116,7;4572;2116,7;975;2150;4;12</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4098 SuperPrint Silberfolie</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4099 SuperPrint Silberfolie</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2150;2;5</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4100 SuperPrint Goldfolie</value></prop><prop oor:name="Measure"><value>S;3302;1693;3048;1693;721;1303;6;16</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4101 SuperPrint Goldfolie</value></prop><prop oor:name="Measure"><value>S;4318;1270;4318;1030;1864;1000;4;22</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4102 SuperPrint Goldfolie</value></prop><prop oor:name="Measure"><value>S;4830;2540;4830;2540;840;880;4;11</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4103 SuperPrint Goldfolie</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4104 SuperPrint Goldfolie</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4105 SuperPrint Goldfolie, Kreise 60 mm</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1800;3;4</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4106 SuperPrint Goldfolie, oval</value></prop><prop oor:name="Measure"><value>S;6350;4656;5842;4233;1229;1093;3;6</value></prop></node><node oor:name="L12" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4107 SuperPrint Goldfolie, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L13" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4108 SuperPrint Goldfolie</value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1350;7;27</value></prop></node><node oor:name="L14" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4109 SuperPrint Goldfolie, oval</value></prop><prop oor:name="Measure"><value>S;4572;2963;4064;2540;1610;1727;4;9</value></prop></node><node oor:name="L15" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4110 SuperPrint Silberfolie</value></prop><prop oor:name="Measure"><value>S;3302;1693;3048;1693;721;1303;6;16</value></prop></node><node oor:name="L16" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4111 SuperPrint Silberfolie</value></prop><prop oor:name="Measure"><value>S;4318;1270;4318;1030;1864;1000;4;22</value></prop></node><node oor:name="L17" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4112 SuperPrint Silberfolie</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L18" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4113 SuperPrint Silberfolie</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L19" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4114 SuperPrint Silberfolie</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L20" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4115 SuperPrint Silberfolie, Kreise 60 mm</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1800;3;4</value></prop></node><node oor:name="L21" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4116 SuperPrint Silberfolie, oval</value></prop><prop oor:name="Measure"><value>S;6350;4656;5842;4233;1229;1093;3;6</value></prop></node><node oor:name="L22" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4117 SuperPrint Silberfolie, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L23" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4118 SuperPrint Silberfolie</value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1350;7;27</value></prop></node><node oor:name="L24" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4119 SuperPrint Silberfolie</value></prop><prop oor:name="Measure"><value>S;6604;1693;6350;1693;721;1303;3;16</value></prop></node><node oor:name="L25" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4200 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;4830;3387;4830;3387;840;1302;4;8</value></prop></node><node oor:name="L26" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4201 SuperPrint Sichtreiteretiketten, weiß</value></prop><prop oor:name="Measure"><value>S;4826;1693;4572;1693;975;1306;4;16</value></prop></node><node oor:name="L27" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4202 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;6604;847;6350;847;721;1298;3;32</value></prop></node><node oor:name="L28" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4203 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4656;721;882;3;6</value></prop></node><node oor:name="L29" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4204 SuperPrint 3,5"-Disketten, gelb</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2150;2;5</value></prop></node><node oor:name="L30" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4205 SuperPrint 3,5"-Disketten, rot</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2150;2;5</value></prop></node><node oor:name="L31" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4206 SuperPrint 3,5"-Disketten, blau</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2150;2;5</value></prop></node><node oor:name="L32" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4207 SuperPrint 3,5"-Disketten, grün</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2150;2;5</value></prop></node><node oor:name="L33" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4208 SuperPrint Musik-Cassetten, weiß</value></prop><prop oor:name="Measure"><value>S;9154;4233;8900;4233;1475;2150;2;6</value></prop></node><node oor:name="L34" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4209 SuperPrint weiß, z.B. für Regalbeschriftung, ablösbar</value></prop><prop oor:name="Measure"><value>S;9854;1693;9600;1693;773;1306;2;16</value></prop></node><node oor:name="L35" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4210 SuperPrint weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;3810;1270;3810;1270;975;880;5;22</value></prop></node><node oor:name="L36" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4211 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;2794;1693;2540;1693;848;1306;7;16</value></prop></node><node oor:name="L37" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4212 SuperPrint weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;3810;2120;3810;2120;975;1070;5;13</value></prop></node><node oor:name="L38" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4226 SuperPrint weiß, deckend</value></prop><prop oor:name="Measure"><value>S;4826;1693;4826;1693;848;1306;4;16</value></prop></node><node oor:name="L39" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4227 SuperPrint weiß, deckend</value></prop><prop oor:name="Measure"><value>S;6460;3387;6460;3387;810;1303;3;8</value></prop></node><node oor:name="L40" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4228 SuperPrint weiß, deckend</value></prop><prop oor:name="Measure"><value>S;9652;4233;9652;4233;848;2151;2;6</value></prop></node><node oor:name="L41" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4229 SuperPrint weiß, deckend</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L42" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4230 SuperPrint weiß, deckend</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L43" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4232 SuperPrint Sicherheits-/Verschlussetiketten, weiß</value></prop><prop oor:name="Measure"><value>S;4826;2116,7;4572;2116,7;975;2150;4;12</value></prop></node><node oor:name="L44" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4233 SuperPrint Sicherheits-/Verschlussetiketten, weiß</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L45" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4234 SuperPrint Sicherheits-/Verschlussetiketten, weiß</value></prop><prop oor:name="Measure"><value>S;4600;4600;4000;4000;1600;1350;4;6</value></prop></node><node oor:name="L46" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4249 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;19960;14350;19960;14350;520;500;1;2</value></prop></node><node oor:name="L47" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4250 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10190;13900;9910;13900;450;950;2;2</value></prop></node><node oor:name="L48" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4252 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;19960;28910;19960;28910;520;395;1;1</value></prop></node><node oor:name="L49" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4256 SuperPrint gelb</value></prop><prop oor:name="Measure"><value>S;10500;3712,5;10500;3712,5;0;0;2;8</value></prop></node><node oor:name="L50" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4257 SuperPrint rot</value></prop><prop oor:name="Measure"><value>S;10500;3712,5;10500;3712,5;0;0;2;8</value></prop></node><node oor:name="L51" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4258 SuperPrint blau</value></prop><prop oor:name="Measure"><value>S;10500;3712,5;10500;3712,5;0;0;2;8</value></prop></node><node oor:name="L52" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4259 SuperPrint grün</value></prop><prop oor:name="Measure"><value>S;10500;3712,5;10500;3712,5;0;0;2;8</value></prop></node><node oor:name="L53" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4262 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;6460;3387;6460;3387;810;1303;3;8</value></prop></node><node oor:name="L54" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4263 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;3387;7000;3387;0;1303;3;8</value></prop></node><node oor:name="L55" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4264 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;3387;10500;3387;0;1303;2;8</value></prop></node><node oor:name="L56" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4265 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4656;721;882;3;6</value></prop></node><node oor:name="L57" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4266 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;7200;6350;7200;721;450;3;4</value></prop></node><node oor:name="L58" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4267 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1303;2;8</value></prop></node><node oor:name="L59" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4268 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;5700;9906;5700;467;600;2;5</value></prop></node><node oor:name="L60" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4269 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L61" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4270 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;3810;2120;3810;2120;975;1070;5;13</value></prop></node><node oor:name="L62" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4271 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;4826;1693;4826;1693;848;1306;4;16</value></prop></node><node oor:name="L63" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4272 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L64" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4273 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;5250;2120;5250;2120;0;0;4;14</value></prop></node><node oor:name="L65" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4275 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;6600;2540;6600;2540;600;880;3;11</value></prop></node><node oor:name="L66" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4278 SuperPrint 3,5"-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;7000;5080;7000;5080;0;2150;3;5</value></prop></node><node oor:name="L67" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4279 SuperPrint 3,5"-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;7000;6773;7000;6773;0;1303;3;4</value></prop></node><node oor:name="L68" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4280 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;9652;6773;9652;6773;848;1303;2;4</value></prop></node><node oor:name="L69" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4281 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;5080;10500;5080;0;2150;2;5</value></prop></node><node oor:name="L70" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4282 SuperPrint weiß, A5</value></prop><prop oor:name="Measure"><value>S;21000;14850;21000;14850;0;0;1;2</value></prop></node><node oor:name="L71" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4283 SuperPrint für schmale Ordner, weiß</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L72" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4284 SuperPrint für breite Ordner, weiß</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L73" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4290 SuperPrint für schmale Ordner, weiß</value></prop><prop oor:name="Measure"><value>S;19200;3400;19200;3400;900;1250;1;8</value></prop></node><node oor:name="L74" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4291 SuperPrint für breite Ordner, weiß</value></prop><prop oor:name="Measure"><value>S;19200;5900;19200;5900;900;3050;1;4</value></prop></node><node oor:name="L75" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4292 SuperPrint für schmale Ordner, gelb</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L76" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4293 SuperPrint für schmale Ordner, rot</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L77" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4294 SuperPrint für schmale Ordner, blau</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L78" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4295 SuperPrint für schmale Ordner, grün</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L79" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4296 SuperPrint für breite Ordner, gelb</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L80" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4297 SuperPrint für breite Ordner, rot</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L81" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4298 SuperPrint für breite Ordner, blau</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L82" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4299 SuperPrint für breite Ordner, grün</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L83" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4333 SuperPrint weiß </value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1350;7;27</value></prop></node><node oor:name="L84" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4334 SuperPrint weiß </value></prop><prop oor:name="Measure"><value>S;2794;1693;2540;1693;848;1306;7;16</value></prop></node><node oor:name="L85" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4336 SuperPrint weiß </value></prop><prop oor:name="Measure"><value>S;3810;1693;3556;1693;1102;1306;5;16</value></prop></node><node oor:name="L86" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4343 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;2041;1000;1780;1000;425,5;1350;10;27</value></prop></node><node oor:name="L87" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4344 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;2794;1000;2540;1000;848;1350;7;27</value></prop></node><node oor:name="L88" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4345 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;3810;1693;3556;1693;1102;1306;5;16</value></prop></node><node oor:name="L89" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4346 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;4826;2116,7;4572;2116,7;975;2150;4;12</value></prop></node><node oor:name="L90" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4347 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L91" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4348 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;9854;4233;9600;4233;773;2150;2;6</value></prop></node><node oor:name="L92" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4349 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2150;2;5</value></prop></node><node oor:name="L93" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4350 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;9854;6350;9600;6350;773;2150;2;4</value></prop></node><node oor:name="L94" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4351 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;21000;14850;21000;14850;0;0;1;2</value></prop></node><node oor:name="L95" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4352 SuperPrint weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L96" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4353 SuperPrint 3,5"-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2150;2;5</value></prop></node><node oor:name="L97" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4354 SuperPrint 3,5"-Disketten, farbig sortiert</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2150;2;5</value></prop></node><node oor:name="L98" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4355 SuperPrint 3,5"-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;9000;6773;7000;6773;2500;1304;2;4</value></prop></node><node oor:name="L99" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4356 SuperPrint 3,5"-Disketten, farbig sortiert</value></prop><prop oor:name="Measure"><value>S;9000;6773;7000;6773;2500;1304;2;4</value></prop></node><node oor:name="L100" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4357 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;4850;2540;4850;2540;800;2150;4;10</value></prop></node><node oor:name="L101" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4358 SuperPrint Oval, weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;6604;4656,7;6350;4233;721;1093;3;6</value></prop></node><node oor:name="L102" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4359 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;9652;6773;9652;6773;848;1303;2;4</value></prop></node><node oor:name="L103" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4360 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;3600;7000;3600;0;450;3;8</value></prop></node><node oor:name="L104" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4361 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;4125;7000;4125;0;412,5;3;7</value></prop></node><node oor:name="L105" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4362 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;4125;10500;4125;0;412,5;2;7</value></prop></node><node oor:name="L106" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4363 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;4800;10500;4800;0;450;2;6</value></prop></node><node oor:name="L107" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4364 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;14400;10500;14400;0;450;2;2</value></prop></node><node oor:name="L108" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4366 SuperPrint gelb, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;4826;2116,7;4572;2116,7;975;2150;4;12</value></prop></node><node oor:name="L109" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4367 SuperPrint rot, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;4826;2116,7;4572;2116,7;975;2150;4;12</value></prop></node><node oor:name="L110" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4368 SuperPrint blau, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;4826;2116,7;4572;2116,7;975;2150;4;12</value></prop></node><node oor:name="L111" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4369 SuperPrint grün, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;4826;2116,7;4572;2116,7;975;2150;4;12</value></prop></node><node oor:name="L112" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4373 SuperPrint CD-Cover, weiß</value></prop><prop oor:name="Measure"><value>S;12150;14550;12150;11750;4425;1700;1;2</value></prop></node><node oor:name="L113" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4374 SuperPrint CD-Etikett, transparente Folie</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L114" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4375 SuperPrint transparente Folie</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L115" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4376 SuperPrint transparente Folie</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L116" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4377 SuperPrint witterungsbeständig, weiß</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L117" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4378 SuperPrint witterungsbeständig, weiß</value></prop><prop oor:name="Measure"><value>S;21000;14850;21000;14850;0;0;1;2</value></prop></node><node oor:name="L118" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4379 SuperPrint witterungsbeständig, weiß</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L119" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4380 SuperPrint Oval, weiß</value></prop><prop oor:name="Measure"><value>S;4572;2963;4064;2540;1610;1727;4;9</value></prop></node><node oor:name="L120" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4385 SuperPrint Kreise 10 mm, weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;1270;1270;1000;1000;1110;1650;15;21</value></prop></node><node oor:name="L121" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4386 SuperPrint Kreise 20 mm, weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;2254;2254;2000;2000;1611;1453;8;12</value></prop></node><node oor:name="L122" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4387 SuperPrint Kreise 30 mm, weiß</value></prop><prop oor:name="Measure"><value>S;3254;3254;3000;3000;865;1961;6;8</value></prop></node><node oor:name="L123" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4388 SuperPrint Tiefkühletiketten, weiß</value></prop><prop oor:name="Measure"><value>S;3810;2120;3810;2120;975;1070;5;13</value></prop></node><node oor:name="L124" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4389 SuperPrint Tiefkühletiketten, weiß</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L125" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4390 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L126" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4391 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;3712,5;10500;3712,5;0;0;2;8</value></prop></node><node oor:name="L127" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4392 SuperPrint weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;5250;2970;5250;2970;0;0;4;10</value></prop></node><node oor:name="L128" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4393 SuperPrint weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;10500;4125;10500;4125;0;412,5;2;7</value></prop></node><node oor:name="L129" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4394 SuperPrint weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;10500;14400;10500;14400;0;450;2;2</value></prop></node><node oor:name="L130" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4396 SuperPrint gelb, A6</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L131" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4397 SuperPrint rot, A6</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L132" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4398 SuperPrint blau, A6</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L133" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4399 SuperPrint grün, A6</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L134" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4401 SuperPrint gelb, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L135" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4402 SuperPrint rot, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L136" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4403 SuperPrint blau, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L137" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4404 SuperPrint grün, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L138" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4406 SuperPrint gelb</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L139" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4407 SuperPrint rot</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L140" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4408 SuperPrint blau</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L141" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4409 SuperPrint grün</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L142" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4414 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;3600;7000;3600;0;450;3;8</value></prop></node><node oor:name="L143" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4415 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;4125;7000;4125;0;412,5;3;7</value></prop></node><node oor:name="L144" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4416 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;4125;10500;4125;0;412,5;2;7</value></prop></node><node oor:name="L145" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4417 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;4800;10500;4800;0;450;2;6</value></prop></node><node oor:name="L146" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4418 SuperPrint Namensetiketten Acetatseide, rot</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L147" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4419 SuperPrint Namensetiketten Acetatseide, blau</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L148" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4421 SuperPrint gelb</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L149" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4422 SuperPrint rot</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L150" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4423 SuperPrint blau</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L151" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4424 SuperPrint grün</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L152" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4425 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;5700;10500;5700;0;600;2;5</value></prop></node><node oor:name="L153" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4426 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;7000;10500;7000;0;850;2;4</value></prop></node><node oor:name="L154" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4427 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;3500;10500;3500;0;850;2;8</value></prop></node><node oor:name="L155" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4428 SuperPrint weiß, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L156" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4429 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;3500;7000;3500;0;850;3;8</value></prop></node><node oor:name="L157" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4450 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;3200;7000;3200;0;450;3;9</value></prop></node><node oor:name="L158" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4451 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;4125;7000;4125;0;412,5;3;7</value></prop></node><node oor:name="L159" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4452 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;4125;10500;4125;0;412,5;2;7</value></prop></node><node oor:name="L160" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4453 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;3600;7000;3600;0;450;3;8</value></prop></node><node oor:name="L161" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4454 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;14400;10500;14400;0;450;2;2</value></prop></node><node oor:name="L162" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4455 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;2540;7000;2540;0;880;3;11</value></prop></node><node oor:name="L163" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4456 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;2970;7000;2970;0;0;3;10</value></prop></node><node oor:name="L164" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4457 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;4800;10500;4800;0;450;2;6</value></prop></node><node oor:name="L165" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4458 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;20000;29700;20000;29700;0;0;1;1</value></prop></node><node oor:name="L166" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4459 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;1693;7000;1693;0;460;3;17</value></prop></node><node oor:name="L167" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4461 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;5250;2970;5250;2970;0;0;4;10</value></prop></node><node oor:name="L168" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4462 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;3712,5;10500;3712,5;0;0;2;8</value></prop></node><node oor:name="L169" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4464 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L170" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4465 SuperPrint transparente Folie</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L171" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4466 SuperPrint gelb</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L172" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4467 SuperPrint rot</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L173" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4468 SuperPrint blau</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L174" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4469 SuperPrint grün</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L175" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4470 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;7425;10500;7425;0;0;2;4</value></prop></node><node oor:name="L176" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4471 SuperPrint CD-Etikett, weiß</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L177" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4472 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;8128;13970;7874;13970;2499;880;2;2</value></prop></node><node oor:name="L178" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4473 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;4100;7000;4100;0;500;3;7</value></prop></node><node oor:name="L179" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4474 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;4850;2540;4850;2540;800;2150;4;10</value></prop></node><node oor:name="L180" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4475 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;4100;10500;4100;0;500;2;7</value></prop></node><node oor:name="L181" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4476 SuperPrint Kreise 40 mm, weiß</value></prop><prop oor:name="Measure"><value>S;4600;4600;4000;4000;1600;1350;4;6</value></prop></node><node oor:name="L182" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4477 SuperPrint Kreise 60 mm, weiß</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1800;3;4</value></prop></node><node oor:name="L183" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4478 SuperPrint Kreise 85 mm, weiß</value></prop><prop oor:name="Measure"><value>S;9500;9500;8500;8500;1500;1100;2;3</value></prop></node><node oor:name="L184" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4479 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;3387;8890;3387;1229;1303;2;8</value></prop></node><node oor:name="L185" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4606 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;3810;2120;3810;2120;975;1070;5;13</value></prop></node><node oor:name="L186" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4607 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;4826;1693;4826;1693;848;1306;4;16</value></prop></node><node oor:name="L187" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4608 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L188" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4609 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;5250;2120;5250;2120;0;0;4;14</value></prop></node><node oor:name="L189" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4610 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;5250;2970;5250;2970;0;0;4;10</value></prop></node><node oor:name="L190" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4611 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;1693;7000;1693;0;460;3;17</value></prop></node><node oor:name="L191" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4612 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;2970;7000;2970;0;0;3;10</value></prop></node><node oor:name="L192" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4613 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;6600;2540;6600;2540;600;880;3;11</value></prop></node><node oor:name="L193" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4614 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L194" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4615 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L195" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4616 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;4243;7000;4243;0;0;3;7</value></prop></node><node oor:name="L196" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4617 SuperPrint 3,5"-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;7000;6773;7000;6773;0;1303;3;4</value></prop></node><node oor:name="L197" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4618 SuperPrint 3,5"-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;7000;5080;7000;5080;0;2150;3;5</value></prop></node><node oor:name="L198" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4619 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;9652;3387;9652;3387;848;1303;2;8</value></prop></node><node oor:name="L199" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4620 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;3712,5;10500;3712,5;0;0;2;8</value></prop></node><node oor:name="L200" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4623 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;9652;4233;9652;4233;848;2151;2;6</value></prop></node><node oor:name="L201" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4624 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;9652;6773;9652;6773;848;1303;2;4</value></prop></node><node oor:name="L202" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4625 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;4243;10500;4243;0;0;2;7</value></prop></node><node oor:name="L203" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4626 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;7425;10500;7425;0;0;2;4</value></prop></node><node oor:name="L204" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4627 SuperPrint weiß, A6</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L205" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4628 SuperPrint weiß, A5</value></prop><prop oor:name="Measure"><value>S;21000;14850;21000;14850;0;0;1;2</value></prop></node><node oor:name="L206" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4629 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;5080;10500;5080;0;2150;2;5</value></prop></node><node oor:name="L207" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4631 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L208" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4654 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;3900;10500;3900;0;1200;2;7</value></prop></node><node oor:name="L209" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4664 SuperPrint Lohnsteueretikett,perforiert mit Klebestreifen, weiß </value></prop><prop oor:name="Measure"><value>S;10500;3900;10500;3900;0;1200;2;7</value></prop></node><node oor:name="L210" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4666 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;4656;8890;4656;1229;880;2;6</value></prop></node><node oor:name="L211" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4667 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2150;2;5</value></prop></node><node oor:name="L212" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4668 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;4243;7000;4243;0;0;3;7</value></prop></node><node oor:name="L213" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4669 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;9652;4233;9652;4233;848;2150;2;6</value></prop></node><node oor:name="L214" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4670 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L215" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4672 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;9652;3387;9652;3387;848;1303;2;8</value></prop></node><node oor:name="L216" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4674 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;4243;10500;4243;0;0;2;7</value></prop></node><node oor:name="L217" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4676 SuperPrint weiß, A6</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L218" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4677 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L219" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4678 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L220" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4680 SuperPrint transparente Folie</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L221" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4681 SuperPrint transparente Folie</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L222" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4682 SuperPrint transparente Folie</value></prop><prop oor:name="Measure"><value>S;9652;4233;9652;4233;848;2150;2;6</value></prop></node><node oor:name="L223" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4683 SuperPrint transparente Folie, A5</value></prop><prop oor:name="Measure"><value>S;21000;14850;21000;14850;0;0;1;2</value></prop></node><node oor:name="L224" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4684 SuperPrint transparente Folie</value></prop><prop oor:name="Measure"><value>S;5250;2970;5250;2970;0;0;4;10</value></prop></node><node oor:name="L225" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4685 SuperPrint transparente Folie</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L226" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4686 SuperPrint Kreise 40 mm, transparent</value></prop><prop oor:name="Measure"><value>S;4600;4600;4000;4000;1600;1350;4;6</value></prop></node><node oor:name="L227" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4690 SuperPrint weiße Folie</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L228" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4691 SuperPrint weiße Folie</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L229" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4692 SuperPrint weiße Folie</value></prop><prop oor:name="Measure"><value>S;9652;4233;9652;4233;848;2150;2;6</value></prop></node><node oor:name="L230" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4693 SuperPrint weiße Folie, A5</value></prop><prop oor:name="Measure"><value>S;21000;14850;21000;14850;0;0;1;2</value></prop></node><node oor:name="L231" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4694 SuperPrint weiße Folie</value></prop><prop oor:name="Measure"><value>S;5250;2970;5250;2970;0;0;4;10</value></prop></node><node oor:name="L232" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4695 SuperPrint weiße Folie</value></prop><prop oor:name="Measure"><value>S;7000;3712,5;7000;3712,5;0;0;3;8</value></prop></node><node oor:name="L233" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4696 SuperPrint weiße Folie</value></prop><prop oor:name="Measure"><value>S;10500;4243;10500;4243;0;0;2;7</value></prop></node><node oor:name="L234" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4697 SuperPrint weiße Folie</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L235" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4698 SuperPrint weiße Folie</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L236" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4810 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;3810;2120;3810;2120;975;1070;5;13</value></prop></node><node oor:name="L237" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4811 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;4826;1693;4826;1693;848;1303;4;16</value></prop></node><node oor:name="L238" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4812 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L239" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4814 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L240" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4815 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;9652;3387;9652;3387;848;1303;2;8</value></prop></node><node oor:name="L241" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4816 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;9652;4230;9652;4230;848;2150;2;6</value></prop></node><node oor:name="L242" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4817 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;9652;6773;9652;6773;848;1303;2;4</value></prop></node><node oor:name="L243" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4819 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L244" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4820 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L245" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4821 InkPrint Special 3,5"-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;6600;6773;6600;6773;600;1303;3;4</value></prop></node><node oor:name="L246" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4822 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;9652;3387;9652;3387;848;1303;2;8</value></prop></node><node oor:name="L247" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4823 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;9652;4230;9652;4230;848;2150;2;6</value></prop></node><node oor:name="L248" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4824 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L249" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4825 InkPrint Special für schmale Ordner, weiß</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L250" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4826 InkPrint Special für breite Ordner, weiß</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L251" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4827 InkPrint Special Videocassette, Rücken, weiß</value></prop><prop oor:name="Measure"><value>S;14732;2000;14732;2000;3134;1850;1;13</value></prop></node><node oor:name="L252" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4828 InkPrint Special Videocassette, Front, weiß</value></prop><prop oor:name="Measure"><value>S;8128;4656;7874;4656;2499;882;2;6</value></prop></node><node oor:name="L253" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4829 InkPrint Special Diabeschriftung, weiß</value></prop><prop oor:name="Measure"><value>S;4572;847;4318;847;1483;1298;4;32</value></prop></node><node oor:name="L254" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4830 InkPrint Special für schmale Ordner, lang, weiß</value></prop><prop oor:name="Measure"><value>S;3800;29700;3800;29700;1000;0;5;1</value></prop></node><node oor:name="L255" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4831 InkPrint Special für breite Ordner, lang, weiß</value></prop><prop oor:name="Measure"><value>S;6100;29700;6100;29700;1350;0;3;1</value></prop></node><node oor:name="L256" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4841 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L257" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4842 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L258" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4843 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;9652;4233;9652;4233;848;2150;2;6</value></prop></node><node oor:name="L259" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4844 InkPrint Special transparente Folie, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L260" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4845 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;4826;2116,7;4572;2116,7;975;2150;4;12</value></prop></node><node oor:name="L261" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4846 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L262" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4847 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2150;2;5</value></prop></node><node oor:name="L263" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4848 InkPrint Special CD-Etikett, transparente Folie</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L264" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4851 InkPrint Special weiße Folie</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L265" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4852 InkPrint Special weiße Folie</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L266" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4853 InkPrint Special weiße Folie</value></prop><prop oor:name="Measure"><value>S;9652;4233;9652;4233;848;2150;2;6</value></prop></node><node oor:name="L267" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4854 InkPrint Special weiße Folie, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L268" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4864 InkPrint Special wetterfeste Folie, weiß</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L269" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4865 InkPrint Special wetterfeste Folie, weiß</value></prop><prop oor:name="Measure"><value>S;9854;13970;9600;13970;773;880;2;2</value></prop></node><node oor:name="L270" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4866 InkPrint Special wetterfeste Folie, weiß</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L271" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4867 InkPrint Special wetterfeste Folie, weiß, oval</value></prop><prop oor:name="Measure"><value>S;9398;6773;8890;6350;1356;1515;2;4</value></prop></node><node oor:name="L272" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5051 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L273" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5052 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;5250;2120;5250;2120;0;0;4;14</value></prop></node><node oor:name="L274" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5053 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L275" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5054 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;4243;7000;4243;0;0;3;7</value></prop></node><node oor:name="L276" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5055 SuperPrint 3,5"-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;7000;5080;7000;5080;0;2150;3;5</value></prop></node><node oor:name="L277" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5056 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;9652;4233;9652;4233;850;2151;2;6</value></prop></node><node oor:name="L278" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5057 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;4243;10500;4243;0;0;2;7</value></prop></node><node oor:name="L279" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5058 SuperPrint gelb</value></prop><prop oor:name="Measure"><value>S;10500;4243;10500;4243;0;0;2;7</value></prop></node><node oor:name="L280" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5059 SuperPrint rot</value></prop><prop oor:name="Measure"><value>S;10500;4243;10500;4243;0;0;2;7</value></prop></node><node oor:name="L281" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5060 SuperPrint blau</value></prop><prop oor:name="Measure"><value>S;10500;4243;10500;4243;0;0;2;7</value></prop></node><node oor:name="L282" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5061 SuperPrint grün</value></prop><prop oor:name="Measure"><value>S;10500;4243;10500;4243;0;0;2;7</value></prop></node><node oor:name="L283" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5062 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;10500;7425;10500;7425;0;0;2;4</value></prop></node><node oor:name="L284" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5063 SuperPrint weiß, A6</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L285" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5064 SuperPrint weiß, A5</value></prop><prop oor:name="Measure"><value>S;21000;14850;21000;14850;0;0;1;2</value></prop></node><node oor:name="L286" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5065 SuperPrint weiß, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L287" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5066 SuperPrint Kreise 40 mm, weiß</value></prop><prop oor:name="Measure"><value>S;4600;4600;4000;4000;1600;1350;4;6</value></prop></node><node oor:name="L288" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5067 SuperPrint Kreise 60 mm, weiß</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1800;3;4</value></prop></node><node oor:name="L289" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5068 SuperPrint Kreise 85 mm, weiß</value></prop><prop oor:name="Measure"><value>S;9500;9500;8500;8500;1500;1100;2;3</value></prop></node><node oor:name="L290" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5069 SuperPrint Videocassette, Rücken, weiß</value></prop><prop oor:name="Measure"><value>S;14732;2000;14732;2000;3134;1850;1;13</value></prop></node><node oor:name="L291" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5070 SuperPrint Videocassette, Front, weiß</value></prop><prop oor:name="Measure"><value>S;8128;4656;7874;4656;2499;882;2;6</value></prop></node><node oor:name="L292" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5071 SuperPrint Diabeschriftung, weiß</value></prop><prop oor:name="Measure"><value>S;4572;847;4318;847;1483;1298;4;32</value></prop></node><node oor:name="L293" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5072 SuperPrint Pfeile, gelb</value></prop><prop oor:name="Measure"><value>S;9652;4656;9144;2540;1102;1938;2;6</value></prop></node><node oor:name="L294" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5073 SuperPrint Pfeile, rot</value></prop><prop oor:name="Measure"><value>S;9652;4656;9144;2540;1102;1938;2;6</value></prop></node><node oor:name="L295" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5074 SuperPrint weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L296" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5075 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1303;2;8</value></prop></node><node oor:name="L297" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5076 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L298" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5077 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L299" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5078 SuperPrint CD-Box-Etiketten, weiß</value></prop><prop oor:name="Measure"><value>S;11430;550;11430;550;4785;1650;1;48</value></prop></node><node oor:name="L300" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5079 SuperPrint CD-Etikett, weiß</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L301" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5080 SuperPrint weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;5250;2120;5250;2120;0;0;4;14</value></prop></node><node oor:name="L302" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5081 SuperPrint weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;10500;4243;10500;4243;0;0;2;7</value></prop></node><node oor:name="L303" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5082 SuperPrint weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;10500;14850;10500;14850;0;0;2;2</value></prop></node><node oor:name="L304" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5083 SuperPrint CD-Etikett, gelb</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L305" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5084 SuperPrint CD-Etikett, rot</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L306" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5085 SuperPrint CD-Etikett, blau</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L307" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5086 SuperPrint CD-Etikett, grün</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L308" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5087 SuperPrint ZIP-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;6175;5000;5900;5000;1375;2350;3;5</value></prop></node><node oor:name="L309" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5088 SuperPrint für schmale Ordner, farbig sort.</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L310" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5089 SuperPrint für breite Ordner, farbig sort.</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L311" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5090 SuperPrint für schmale Ordner, weiß</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L312" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5091 SuperPrint für schmale Ordner, gelb</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L313" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5092 SuperPrint für schmale Ordner, rot</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L314" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5093 SuperPrint für schmale Ordner, blau</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L315" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5094 SuperPrint für schmale Ordner, grün</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1550;1;7</value></prop></node><node oor:name="L316" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5095 SuperPrint für breite Ordner, weiß</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L317" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5096 SuperPrint für breite Ordner, gelb</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L318" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5097 SuperPrint für breite Ordner, rot</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L319" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5098 SuperPrint für breite Ordner, blau</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L320" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5099 SuperPrint für breite Ordner, grün</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;2650;1;4</value></prop></node><node oor:name="L321" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5123 SuperPrint für breite Ordner, weiß</value></prop><prop oor:name="Measure"><value>S;19200;5900;19200;5900;900;3050;1;4</value></prop></node><node oor:name="L322" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5124 SuperPrint für breite Ordner, gelb</value></prop><prop oor:name="Measure"><value>S;19200;5900;19200;5900;900;3050;1;4</value></prop></node><node oor:name="L323" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5125 SuperPrint für breite Ordner, rot</value></prop><prop oor:name="Measure"><value>S;19200;5900;19200;5900;900;3050;1;4</value></prop></node><node oor:name="L324" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5126 SuperPrint für breite Ordner, blau</value></prop><prop oor:name="Measure"><value>S;19200;5900;19200;5900;900;3050;1;4</value></prop></node><node oor:name="L325" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5127 SuperPrint für breite Ordner, grün</value></prop><prop oor:name="Measure"><value>S;19200;5900;19200;5900;900;3050;1;4</value></prop></node><node oor:name="L326" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5128 SuperPrint für schmale Ordner, lang, farbig sort.</value></prop><prop oor:name="Measure"><value>S;3800;29700;3800;29700;1000;0;5;1</value></prop></node><node oor:name="L327" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5129 SuperPrint für breite Ordner, lang, farbig sort.</value></prop><prop oor:name="Measure"><value>S;6100;29700;6100;29700;1350;0;3;1</value></prop></node><node oor:name="L328" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5130 SuperPrint für schmale Ordner, lang, weiß</value></prop><prop oor:name="Measure"><value>S;3800;29700;3800;29700;1000;0;5;1</value></prop></node><node oor:name="L329" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5131 SuperPrint für schmale Ordner, lang, gelb</value></prop><prop oor:name="Measure"><value>S;3800;29700;3800;29700;1000;0;5;1</value></prop></node><node oor:name="L330" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5132 SuperPrint für schmale Ordner, lang, rot</value></prop><prop oor:name="Measure"><value>S;3800;29700;3800;29700;1000;0;5;1</value></prop></node><node oor:name="L331" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5133 SuperPrint für schmale Ordner, lang, blau</value></prop><prop oor:name="Measure"><value>S;3800;29700;3800;29700;1000;0;5;1</value></prop></node><node oor:name="L332" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5134 SuperPrint für schmale Ordner, lang, grün</value></prop><prop oor:name="Measure"><value>S;3800;29700;3800;29700;1000;0;5;1</value></prop></node><node oor:name="L333" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5135 SuperPrint für breite Ordner, lang, weiß</value></prop><prop oor:name="Measure"><value>S;6100;29700;6100;29700;1350;0;3;1</value></prop></node><node oor:name="L334" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5136 SuperPrint für breite Ordner, lang, gelb</value></prop><prop oor:name="Measure"><value>S;6100;29700;6100;29700;1350;0;3;1</value></prop></node><node oor:name="L335" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5137 SuperPrint für breite Ordner, lang, rot</value></prop><prop oor:name="Measure"><value>S;6100;29700;6100;29700;1350;0;3;1</value></prop></node><node oor:name="L336" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5138 SuperPrint für breite Ordner, lang, blau</value></prop><prop oor:name="Measure"><value>S;6100;29700;6100;29700;1350;0;3;1</value></prop></node><node oor:name="L337" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5139 SuperPrint für breite Ordner, lang, grün</value></prop><prop oor:name="Measure"><value>S;6100;29700;6100;29700;1350;0;3;1</value></prop></node><node oor:name="L338" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5140 SuperPrint neon-gelb</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L339" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5141 SuperPrint neon-orange</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L340" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5142 SuperPrint neon-pink</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L341" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5143 SuperPrint neon-grün</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L342" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5144 SuperPrint neon-gelb</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L343" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5145 SuperPrint neon-orange</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L344" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5146 SuperPrint neon-pink</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L345" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5147 SuperPrint neon-grün</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L346" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5148 SuperPrint neon-gelb, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L347" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5149 SuperPrint neon-orange, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L348" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5150 SuperPrint neon-pink, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L349" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5151 SuperPrint neon-grün, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L350" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5152 SuperPrint neon-gelb, Kreise 60 mm</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1800;3;4</value></prop></node><node oor:name="L351" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5153 SuperPrint neon-orange, Kreise 60 mm</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1800;3;4</value></prop></node><node oor:name="L352" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5154 SuperPrint neon-pink, Kreise 60 mm</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1800;3;4</value></prop></node><node oor:name="L353" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5155 SuperPrint neon-grün, Kreise 60 mm</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1800;3;4</value></prop></node><node oor:name="L354" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5158 SuperPrint für schmale Ordner, lang, weiß</value></prop><prop oor:name="Measure"><value>S;3400;29700;3400;29700;2000;0;5;1</value></prop></node><node oor:name="L355" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5159 SuperPrint für breite Ordner, lang, weiß</value></prop><prop oor:name="Measure"><value>S;5900;29700;5900;29700;1650;0;3;1</value></prop></node><node oor:name="L356" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5160 SuperPrint für schmale Ordner, weiß</value></prop><prop oor:name="Measure"><value>S;19200;3400;19200;3400;900;1250;1;8</value></prop></node><node oor:name="L357" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5161 SuperPrint für schmale Ordner, gelb</value></prop><prop oor:name="Measure"><value>S;19200;3400;19200;3400;900;1250;1;8</value></prop></node><node oor:name="L358" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5162 SuperPrint für schmale Ordner, rot</value></prop><prop oor:name="Measure"><value>S;19200;3400;19200;3400;900;1250;1;8</value></prop></node><node oor:name="L359" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5163 SuperPrint für schmale Ordner, blau</value></prop><prop oor:name="Measure"><value>S;19200;3400;19200;3400;900;1250;1;8</value></prop></node><node oor:name="L360" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5164 SuperPrint für schmale Ordner, grün</value></prop><prop oor:name="Measure"><value>S;19200;3400;19200;3400;900;1250;1;8</value></prop></node><node oor:name="L361" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5165 SuperPrint für schmale Hängeordner, weiß</value></prop><prop oor:name="Measure"><value>S;3400;29700;3400;29700;2000;0;5;1</value></prop></node><node oor:name="L362" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5166 SuperPrint für breite Hängeordner, weiß</value></prop><prop oor:name="Measure"><value>S;5800;29700;5800;29700;1800;0;3;1</value></prop></node><node oor:name="L363" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5167 SuperPrint für breite Hängeordner, weiß</value></prop><prop oor:name="Measure"><value>S;6300;29700;6300;29700;1050;0;3;1</value></prop></node><node oor:name="L364" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8619 SuperPrint Mini-CD-Etiketten, weiß</value></prop><prop oor:name="Measure"><value>S;9200;8950;7800;7800;2000;2000;2;3</value></prop></node><node oor:name="L365" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8631 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L366" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8632 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L367" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8633 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L368" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8634 SuperPrint weiß</value></prop><prop oor:name="Measure"><value>S;7000;4243;7000;4243;0;0;3;7</value></prop></node><node oor:name="L369" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8635 SuperPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L370" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8636 SuperPrint weiß, A5</value></prop><prop oor:name="Measure"><value>S;21000;14850;21000;14850;0;0;1;2</value></prop></node><node oor:name="L371" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8637 SuperPrint weiß, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L372" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8650 ColorPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L373" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8651 ColorPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;3387;8890;3387;1229;1303;2;8</value></prop></node><node oor:name="L374" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8652 ColorPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;4656;8890;4656;1229;882;2;6</value></prop></node><node oor:name="L375" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8653 ColorPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2150;2;5</value></prop></node><node oor:name="L376" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8654 ColorPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;13970;9600;13970;773;880;2;2</value></prop></node><node oor:name="L377" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8655 ColorPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L378" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8680 ColorPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L379" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8681 ColorPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;4656;8890;4656;1229;882;2;6</value></prop></node><node oor:name="L380" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8682 ColorPrint weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L381" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8683 ColorPrint CD-Etikett, weiß</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L382" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8800 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6096;3387;5334;3387;1737;1303;3;8</value></prop></node><node oor:name="L383" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8801 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L384" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8802 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4656;721;882;3;6</value></prop></node><node oor:name="L385" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8803 InkPrint Special 3,5"-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2150;2;5</value></prop></node><node oor:name="L386" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8804 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;3387;8890;3387;1229;1303;2;8</value></prop></node><node oor:name="L387" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8805 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;4656;8890;4656;1229;882;2;6</value></prop></node><node oor:name="L388" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8806 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2150;2;5</value></prop></node><node oor:name="L389" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8807 InkPrint Special weiß, z.B. Paketadresse, ca. A6</value></prop><prop oor:name="Measure"><value>S;9854;13970;9600;13970;773;880;2;2</value></prop></node><node oor:name="L390" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8808 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1303;2;8</value></prop></node><node oor:name="L391" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8809 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L392" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8810 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L393" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8811 InkPrint Special weiß, ca. DIN A5</value></prop><prop oor:name="Measure"><value>S;19200;13970;19200;13970;900;880;1;2</value></prop></node><node oor:name="L394" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8830 InkPrint Special weiß, z.B. für Preisauszeichnung</value></prop><prop oor:name="Measure"><value>S;2794;847;2540;847;848;1303;7;32</value></prop></node><node oor:name="L395" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8831 InkPrint Special weiß, quadratisch</value></prop><prop oor:name="Measure"><value>S;3048;2540;2540;2540;1610;880;6;11</value></prop></node><node oor:name="L396" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8832 InkPrint Special weiß, z.B. für Preisauszeichnung</value></prop><prop oor:name="Measure"><value>S;3302;1693;3048;1693;721;1303;6;16</value></prop></node><node oor:name="L397" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8833 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;3810;2120;3810;2120;975;1070;5;13</value></prop></node><node oor:name="L398" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8834 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;4830;1693;4830;1693;840;1330;4;16</value></prop></node><node oor:name="L399" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8835 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;4830;2540;4830;2540;840;880;4;11</value></prop></node><node oor:name="L400" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8836 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6096;3387;5334;3387;1737;1303;3;8</value></prop></node><node oor:name="L401" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8837 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;2540;6350;2540;721;880;3;11</value></prop></node><node oor:name="L402" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8838 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L403" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8839 InkPrint Special 3,5"-Disketten, weiß</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2150;2;5</value></prop></node><node oor:name="L404" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8840 InkPrint Special weiß, Visitenkartenformat</value></prop><prop oor:name="Measure"><value>S;8890;5080;8382;5080;1864;2150;2;5</value></prop></node><node oor:name="L405" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8841 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;3387;8890;3387;1229;1303;2;8</value></prop></node><node oor:name="L406" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8842 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;4656;8890;4656;1229;882;2;6</value></prop></node><node oor:name="L407" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8843 InkPrint Special weiß, z.B. für Regalbeschriftung</value></prop><prop oor:name="Measure"><value>S;9854;847;9600;847;773;1303;2;32</value></prop></node><node oor:name="L408" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8844 InkPrint Special weiß, z.B. für Regalbeschriftung</value></prop><prop oor:name="Measure"><value>S;9854;1693;9600;1693;773;1303;2;16</value></prop></node><node oor:name="L409" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8845 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2150;2;5</value></prop></node><node oor:name="L410" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8846 InkPrint Special weiß</value></prop><prop oor:name="Measure"><value>S;9652;6773;9652;6773;848;1303;2;4</value></prop></node><node oor:name="L411" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8847 InkPrint Special weiß, Paketadresse, ca. A6</value></prop><prop oor:name="Measure"><value>S;9854;13970;9600;13970;773;880;2;2</value></prop></node><node oor:name="L412" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8848 InkPrint Special weiß, z.B. für Regalbeschriftung</value></prop><prop oor:name="Measure"><value>S;19200;847;19200;847;900;1303;1;32</value></prop></node><node oor:name="L413" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8849 InkPrint Special weiß, z.B. für Regalbeschriftung</value></prop><prop oor:name="Measure"><value>S;19200;1693;19200;1693;900;1303;1;16</value></prop></node><node oor:name="L414" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8850 InkPrint Special weiß, ca. DIN A5</value></prop><prop oor:name="Measure"><value>S;19200;13970;19200;13970;900;880;1;2</value></prop></node><node oor:name="L415" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8851 InkPrint Special Kreise 32 mm, weiß</value></prop><prop oor:name="Measure"><value>S;3810;3810;3200;3200;1280;1820;5;7</value></prop></node><node oor:name="L416" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8852 InkPrint Special Kreise 63,5 mm, weiß</value></prop><prop oor:name="Measure"><value>S;6604;6773;6350;6350;721;1516;3;4</value></prop></node><node oor:name="L417" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8853 InkPrint Special Oval, weiß</value></prop><prop oor:name="Measure"><value>S;6350;4656;5842;4233;1229;1093;3;6</value></prop></node><node oor:name="L418" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8854 InkPrint Special Oval, weiß</value></prop><prop oor:name="Measure"><value>S;9398;6773;8890;6350;1356;1515;2;4</value></prop></node><node oor:name="L419" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8855 InkPrint Special abgeschrägte Ecken, weiß</value></prop><prop oor:name="Measure"><value>S;9652;6773;8890;6773;1229;1303;2;4</value></prop></node><node oor:name="L420" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8856 InkPrint Special Registeretiketten, weiß</value></prop><prop oor:name="Measure"><value>S;3048;4656;2540;4230;1610;1092;6;6</value></prop></node><node oor:name="L421" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8857 InkPrint Special Sterne 63,5 mm, weiß</value></prop><prop oor:name="Measure"><value>S;6604;6773;6350;6350;721;1516;3;4</value></prop></node><node oor:name="L422" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8858 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4656;721;882;3;6</value></prop></node><node oor:name="L423" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8859 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;3387;9906;3387;467;1303;2;8</value></prop></node><node oor:name="L424" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8860 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;3810;9906;3810;467;1515;2;7</value></prop></node><node oor:name="L425" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8861 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;5700;9906;5700;467;600;2;5</value></prop></node><node oor:name="L426" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8862 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L427" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8863 InkPrint Special Kreise 40 mm, weiß</value></prop><prop oor:name="Measure"><value>S;4600;4600;4000;4000;1600;1350;4;6</value></prop></node><node oor:name="L428" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8864 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;4826;2116,7;4572;2116,7;975;2150;4;12</value></prop></node><node oor:name="L429" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8865 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L430" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8866 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;4233;9600;4233;773;2150;2;6</value></prop></node><node oor:name="L431" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8867 InkPrint Special weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;6350;9600;6350;773;2150;2;4</value></prop></node><node oor:name="L432" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8868 InkPrint Special Sonderform, weiß</value></prop><prop oor:name="Measure"><value>S;6604;4656,7;6350;4233;721;1093;3;6</value></prop></node><node oor:name="L433" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8869 InkPrint Special Oval, weiß</value></prop><prop oor:name="Measure"><value>S;6604;4656,7;6350;4233;721;1093;3;6</value></prop></node><node oor:name="L434" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8870 InkPrint Special Oval, weiß</value></prop><prop oor:name="Measure"><value>S;9854;6773;9600;6350;773;1515;2;4</value></prop></node><node oor:name="L435" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8886 InkPrint Special Glossy-Qualität, Fotos 10x15, Two-in-one</value></prop><prop oor:name="Measure"><value>S;15000;14800;15000;10000;3000;2450;1;2</value></prop></node><node oor:name="L436" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8887 InkPrint Special Glossy-Qualität, Paßfoto-Format, Two-in-one</value></prop><prop oor:name="Measure"><value>S;4100;5100;3500;4500;2600;2400;4;5</value></prop></node><node oor:name="L437" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8888 InkPrint Special Glossy-Qualität, CD-Cover-Etikett, weiß</value></prop><prop oor:name="Measure"><value>S;12150;14550;12150;11750;4425;1700;1;2</value></prop></node><node oor:name="L438" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8889 InkPrint Special Glossy-Qualität,Visitenkartenetikett, weiß</value></prop><prop oor:name="Measure"><value>S;9600;5500;8300;5200;1550;1250;2;5</value></prop></node><node oor:name="L439" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8890 InkPrint Special Glossy-Qualität, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L440" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8891 InkPrint Special Glossy-Qualität, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;3387;8890;3387;1229;1303;2;8</value></prop></node><node oor:name="L441" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8892 InkPrint Special Glossy-Qualität, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9652;4656;8890;4656;1229;882;2;6</value></prop></node><node oor:name="L442" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8893 InkPrint Special Glossy-Qualität, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2150;2;5</value></prop></node><node oor:name="L443" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8894 InkPrint Special Glossy-Qualität, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;13970;9600;13970;773;880;2;2</value></prop></node><node oor:name="L444" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8895 InkPrint Special Glossy-Qualität, weiß</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L445" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8896 InkPrint Special Glossy-Qualität, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;5079;6350;4656;721;2363,5;3;5</value></prop></node><node oor:name="L446" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8897 InkPrint Special Glossy-Qualität, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9398;6773;8890;6350;1356;1515;2;4</value></prop></node><node oor:name="L447" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8898 InkPrint Special Glossy-Qualität, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9398;13123;8890;12700;1356;1932;2;2</value></prop></node><node oor:name="L448" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8899 InkPrint Special Glossy-Qualität, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;17800;13300;17800;12700;1600;1843;1;2</value></prop></node><node oor:name="L449" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8900 InkPrint Special Glossy-Qualität, CD-Etikett, weiß</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L450" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8901 InkPrint Special Glossy-Qualität, oval</value></prop><prop oor:name="Measure"><value>S;6604;4656;6350;4233;721;1093;3;6</value></prop></node><node oor:name="L451" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8939 InkPrint Special Mini-CD-Etiketten, weiß</value></prop><prop oor:name="Measure"><value>S;9200;8950;7800;7800;2000;2000;2;3</value></prop></node><node oor:name="L452" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8961 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L453" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8962 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L454" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8963 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;9652;4233;9652;4233;848;2150;2;6</value></prop></node><node oor:name="L455" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8964 InkPrint Special transparente Folie, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L456" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8965 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;4826;2116,7;4572;2116,7;975;2150;4;12</value></prop></node><node oor:name="L457" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8966 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1515;3;9</value></prop></node><node oor:name="L458" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8967 InkPrint Special transparente Folie</value></prop><prop oor:name="Measure"><value>S;9854;5080;9600;5080;773;2150;2;5</value></prop></node><node oor:name="L459" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8968 InkPrint Special CD-Etikett, transparente Folie</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L460" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8971 InkPrint Special weiße Folie</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L461" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8972 InkPrint Special weiße Folie</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L462" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8973 InkPrint Special weiße Folie</value></prop><prop oor:name="Measure"><value>S;9652;4233;9652;4233;848;2150;2;6</value></prop></node><node oor:name="L463" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8974 InkPrint Special weiße Folie, A4</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L464" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8981 InkPrint Special Goldfolie</value></prop><prop oor:name="Measure"><value>S;4826;2540;4826;2540;848;880;4;11</value></prop></node><node oor:name="L465" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8982 InkPrint Special Goldfolie</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L466" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8983 SuperPrint Goldfolie, oval</value></prop><prop oor:name="Measure"><value>S;4572;2963;4064;2540;1610;1727;4;9</value></prop></node><node oor:name="L467" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8984 InkPrint Special CD-Etikett, gold</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L468" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8991 InkPrint Special Silberfolie</value></prop><prop oor:name="Measure"><value>S;6600;3387;6600;3387;600;1303;3;8</value></prop></node><node oor:name="L469" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8992 InkPrint Special Silberfolie</value></prop><prop oor:name="Measure"><value>S;21000;29700;21000;29700;0;0;1;1</value></prop></node><node oor:name="L470" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8993 SuperPrint Silberfolie, oval</value></prop><prop oor:name="Measure"><value>S;4572;2963;4064;2540;1610;1727;4;9</value></prop></node><node oor:name="L471" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8994 InkPrint Special CD-Etikett, silber</value></prop><prop oor:name="Measure"><value>S;11600;14800;11600;11600;4700;1650;1;2</value></prop></node><node oor:name="L472" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4639a SuperPrint BETACAM SP/U-MATIC, Cassette (Front), weiß</value></prop><prop oor:name="Measure"><value>S;10160;6773;9906;6773;467;1303;2;4</value></prop></node><node oor:name="L473" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4639b SuperPrint BETACAM SP/U-MATIC, Cassette (Rücken), weiß</value></prop><prop oor:name="Measure"><value>S;14000;1693;14000;1693;3500;1306;1;16</value></prop></node><node oor:name="L474" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4640a SuperPrint Maxi Data Cartridge, weiß</value></prop><prop oor:name="Measure"><value>S;13400;6770;13400;6770;3800;1310;1;4</value></prop></node><node oor:name="L475" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4640b SuperPrint Maxi Data Cartridge (Hülle), weiß</value></prop><prop oor:name="Measure"><value>S;13400;1270;13400;1270;3800;1515;1;21</value></prop></node><node oor:name="L476" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4641a SuperPrint Data Cartridge 4 mm, weiß</value></prop><prop oor:name="Measure"><value>S;6096;2120;5334;2120;1737;1070;3;13</value></prop></node><node oor:name="L477" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4641b SuperPrint Data Cartridge 4 mm (Hülle), weiß</value></prop><prop oor:name="Measure"><value>S;6604;3810;6350;3810;721;1515;3;7</value></prop></node><node oor:name="L478" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4642a SuperPrint MiniData Cartridge, weiß</value></prop><prop oor:name="Measure"><value>S;8800;2400;7300;2400;2450;1650;2;11</value></prop></node><node oor:name="L479" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4642b SuperPrint MiniData Cartridge (Hülle), weiß</value></prop><prop oor:name="Measure"><value>S;9000;1000;7500;1000;2250;1850;2;26</value></prop></node><node oor:name="L480" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4643a SuperPrint Magneto Optical Disk 3,5", weiß</value></prop><prop oor:name="Measure"><value>S;9000;6773;7000;6773;2500;1304;2;4</value></prop></node><node oor:name="L481" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4643b SuperPrint Magneto Optical Disk 3,5" (Hülle), weiß</value></prop><prop oor:name="Measure"><value>S;9800;12400;8800;10400;1200;3450;2;2</value></prop></node><node oor:name="L482" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4646a SuperPrint Mini Digital Video, weiß</value></prop><prop oor:name="Measure"><value>S;4572;847;4318;847;1483;1298;4;32</value></prop></node><node oor:name="L483" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4646b SuperPrint Mini Digital Video (Hülle), weiß</value></prop><prop oor:name="Measure"><value>S;6604;2540;6350;2540;721;880;3;11</value></prop></node><node oor:name="L484" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4647a SuperPrint Video 8, Hi-8, Data Cartridge 8mm, weiß </value></prop><prop oor:name="Measure"><value>S;9000;1000;7500;1000;2250;1850;2;26</value></prop></node><node oor:name="L485" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4647b SuperPrint Video 8, Hi-8, Data Cartridge 8 mm (Hülle), weiß</value></prop><prop oor:name="Measure"><value>S;9652;4656;8890;4656;1229;882;2;6</value></prop></node><node oor:name="L486" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4648a SuperPrint VHS-C, SVHS-C, Cassette (Rücken) weiß</value></prop><prop oor:name="Measure"><value>S;4826;1200;4318;1200;1102;1050;4;23</value></prop></node><node oor:name="L487" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4648b SuperPrint VHS-C, SVHS-C, Cassette (Front), weiß</value></prop><prop oor:name="Measure"><value>S;6350;3810;5842;3810;1229;1515;3;7</value></prop></node><node oor:name="L488" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4649a SuperPrint MiniDisk, weiß</value></prop><prop oor:name="Measure"><value>S;3600;5500;3600;5200;1500;1250;5;5</value></prop></node><node oor:name="L489" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>4649b SuperPrint MiniDisk-Hülle, weiß</value></prop><prop oor:name="Measure"><value>S;9000;5080;7000;5080;2500;2150;2;5</value></prop></node><node oor:name="L490" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>5116 taillierte Ringetiketten für Schmuck, weiß</value></prop><prop oor:name="Measure"><value>S;5900;1400;4900;1000;2150;1050;3;20</value></prop></node></node><node oor:name="Herma A5" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8600 A5 Kreise 10 mm, weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;1270;1270;1000;1000;1110;1210;15;10</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8601 A5 Kreise 20 mm, weiß, ablösbar</value></prop><prop oor:name="Measure"><value>S;2300;2300;2000;2000;1450;675;8;6</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8602 A5 Kreise 60 mm, gelb, ablösbar</value></prop><prop oor:name="Measure"><value>S;6700;6700;6000;6000;800;1075;3;2</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8603 A5 weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;1524;850;1270;850;721;1050;13;15</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8604 A5 weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;2034;1000;1780;1000;457;1425;10;12</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8605 A5 weiß, Ecken abgerundet, ablösbar</value></prop><prop oor:name="Measure"><value>S;2794;1693;2540;1693;848;1499,5;7;7</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8606 A5 Diabeschriftung, weiß</value></prop><prop oor:name="Measure"><value>S;4826;1000;4572;1000;975;1425;4;12</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8607 A5 Sichtreiteretiketten, weiß</value></prop><prop oor:name="Measure"><value>S;4826;1693;4572;1693;975;1499,5;4;7</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8608 A5 weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;6604;2963,3;6350;2963,3;721;1499,5;3;4</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8609 A5 weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;4233;9600;4233;773;1075,5;2;3</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8610 A5 weiß, Ecken abgerundet</value></prop><prop oor:name="Measure"><value>S;9854;6350;9600;6350;773;1075;2;2</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8611 A5 3,5"-Disketten, farbig sortiert</value></prop><prop oor:name="Measure"><value>S;9000;6773;7000;6773;2500;652;2;2</value></prop></node><node oor:name="L12" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8612 A5 Videoetiketten, Front, weiß</value></prop><prop oor:name="Measure"><value>S;8128;4646;7874;4646;2499;2769;2;2</value></prop></node><node oor:name="L13" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8613 A5 Videoetiketten, Rücken, weiß</value></prop><prop oor:name="Measure"><value>S;14732;1693;14732;1693;3134;1499,5;1;7</value></prop></node><node oor:name="L14" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8614 A5 Musik-Cassetten, weiß</value></prop><prop oor:name="Measure"><value>S;9154;4233;8900;4233;1473;1075,5;2;3</value></prop></node><node oor:name="L15" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8615 A5 für schmale Ordner, farbig sortiert</value></prop><prop oor:name="Measure"><value>S;19200;3800;19200;3800;900;1725;1;3</value></prop></node><node oor:name="L16" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8616 A5 für breite Ordner, farbig sortiert</value></prop><prop oor:name="Measure"><value>S;19200;6100;19200;6100;900;1325;1;2</value></prop></node></node><node oor:name="Herma endlos" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8001 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2300;1105;0;1;1</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8002 Endlosetiketten 3-bahnig, Kennzeichnung</value></prop><prop oor:name="Measure"><value>C;2794;1693;2540;1453;1486;0;3;1</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8003 Endlosetiketten 2-bahnig, Kennzeichnung</value></prop><prop oor:name="Measure"><value>C;3810;2117;3556;1900;1867;0;2;1</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8004 Endlosetiketten 2-bahnig, Diabeschriftung</value></prop><prop oor:name="Measure"><value>C;4572;1270;4318;1030;1105;0;2;1</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8005 Endlosetiketten 2-bahnig, Kennzeichnung</value></prop><prop oor:name="Measure"><value>C;4064;2540;3810;2300;1613;0;2;1</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8006 Endlosetiketten 2-bahnig, Kennzeichnung</value></prop><prop oor:name="Measure"><value>C;4318;1693;4064;1453;1359;0;2;1</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8007 Endlosetiketten 2-bahnig, Kennzeichnung</value></prop><prop oor:name="Measure"><value>C;4572;3810;4318;3570;1105;0;2;1</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8008 Endlosetiketten 1-bahnig, 3,5"-Diskette, weiß</value></prop><prop oor:name="Measure"><value>C;7112;7620;7112;6960;1994;0;1;1</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8009 Endlosetiketten 1-bahnig, Namensetiketten, Acetatseide</value></prop><prop oor:name="Measure"><value>C;7000;2540;7000;2300;1500;0;1;1</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8010 Endlosetiketten 1-bahnig, 3,5"-Diskette, weiß, Front</value></prop><prop oor:name="Measure"><value>C;7112;5080;7112;4840;1444;0;1;1</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8011 Endlosetiketten 1-bahnig, 3,5"-Diskette, gelb</value></prop><prop oor:name="Measure"><value>C;7112;7620;7112;6960;1994;0;1;1</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8012 Endlosetiketten 1-bahnig, 3,5"-Diskette, rot</value></prop><prop oor:name="Measure"><value>C;7112;7620;7112;6960;1994;0;1;1</value></prop></node><node oor:name="L12" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8013 Endlosetiketten 1-bahnig, 3,5"-Diskette, blau</value></prop><prop oor:name="Measure"><value>C;7112;7620;7112;6960;1994;0;1;1</value></prop></node><node oor:name="L13" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8014 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;6858;3810;6858;3570;1571;0;1;1</value></prop></node><node oor:name="L14" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8015 Endlosetiketten 1-bahnig, 3,5"-Diskette, grün</value></prop><prop oor:name="Measure"><value>C;7112;7620;7112;6960;1994;0;1;1</value></prop></node><node oor:name="L15" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8021 Endlosetiketten 2-bahnig, gelb</value></prop><prop oor:name="Measure"><value>C;4064;2540;3810;2300;1613;0;2;1</value></prop></node><node oor:name="L16" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8022 Endlosetiketten 2-bahnig, rot</value></prop><prop oor:name="Measure"><value>C;4064;2540;3810;2300;1613;0;2;1</value></prop></node><node oor:name="L17" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8036 Endlosetiketten 2-bahnig, ablösbar</value></prop><prop oor:name="Measure"><value>C;4064;2540;3810;2300;1613;0;2;1</value></prop></node><node oor:name="L18" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8040 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L19" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8041 Endlosetiketten 1-bahnig, gelb</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L20" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8042 Endlosetiketten 1-bahnig, rot</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L21" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8043 Endlosetiketten 1-bahnig, blau</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L22" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8045 Endlosetiketten 1-bahnig, grün</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L23" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8050 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;8890;5080;8890;4840;1105;0;1;1</value></prop></node><node oor:name="L24" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8060 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L25" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8061 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;8890;5080;8890;4840;1105;0;1;1</value></prop></node><node oor:name="L26" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8066 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10160;3810;10160;3570;1170;0;1;1</value></prop></node><node oor:name="L27" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8067 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10668;3810;10668;3570;916;0;1;1</value></prop></node><node oor:name="L28" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8068 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4840;1170;0;1;1</value></prop></node><node oor:name="L29" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8069 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10668;5080;10668;4840;916;0;1;1</value></prop></node><node oor:name="L30" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8070 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;11176;5080;11176;4840;1162;0;1;1</value></prop></node><node oor:name="L31" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8071 Endlosetiketten 1-bahnig, Videocassetten</value></prop><prop oor:name="Measure"><value>C;14732;2540;14732;1900;1134;0;1;1</value></prop></node><node oor:name="L32" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8072 Endlosetiketten 1-bahnig, Querperforation, weiß</value></prop><prop oor:name="Measure"><value>C;14732;10160;14732;9920;1134;0;1;1</value></prop></node><node oor:name="L33" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8073 Endlosetiketten 1-bahnig, Querperforation, gelb</value></prop><prop oor:name="Measure"><value>C;14732;10160;14732;9920;1134;0;1;1</value></prop></node><node oor:name="L34" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8074 Endlosetiketten 1-bahnig, Querperforation, rot</value></prop><prop oor:name="Measure"><value>C;14732;10160;14732;9920;1134;0;1;1</value></prop></node><node oor:name="L35" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8104 Endlosetiketten 1-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;8890;5080;8890;4840;1105;0;1;1</value></prop></node><node oor:name="L36" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8111 Endlosetiketten 1-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L37" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8112 Endlosetiketten 1-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;10160;3810;10160;3570;1170;0;1;1</value></prop></node><node oor:name="L38" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8113 Endlosetiketten 1-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4840;1170;0;1;1</value></prop></node><node oor:name="L39" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8116 Endlosetiketten 1-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;11176;5080;11176;4840;1162;0;1;1</value></prop></node><node oor:name="L40" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8121 Endlosetiketten 1-bahnig, gelb</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4840;1170;0;1;1</value></prop></node><node oor:name="L41" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8122 Endlosetiketten 1-bahnig, rot</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4840;1170;0;1;1</value></prop></node><node oor:name="L42" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8123 Endlosetiketten 1-bahnig, blau</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4840;1170;0;1;1</value></prop></node><node oor:name="L43" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8125 Endlosetiketten 1-bahnig, grün</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4840;1170;0;1;1</value></prop></node><node oor:name="L44" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8158 Endlosetiketten 1-bahnig, Kennzeichnung</value></prop><prop oor:name="Measure"><value>C;7366;1270;7366;1030;1317;0;1;1</value></prop></node><node oor:name="L45" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8160 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2300;1105;0;1;1</value></prop></node><node oor:name="L46" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8161 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L47" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8162 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10160;3810;10160;3570;1170;0;1;1</value></prop></node><node oor:name="L48" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8163 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4840;1170;0;1;1</value></prop></node><node oor:name="L49" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8164 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10160;2540;10160;2300;1170;0;1;1</value></prop></node><node oor:name="L50" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8166 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;11176;5080;11176;4840;1162;0;1;1</value></prop></node><node oor:name="L51" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8167 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;10414;3810;10160;3570;1713;0;2;1</value></prop></node><node oor:name="L52" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8168 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;10414;5080;10160;4840;2213;0;2;1</value></prop></node><node oor:name="L53" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8169 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;10414;2540;10160;2300;1213;0;2;1</value></prop></node><node oor:name="L54" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8170 Endlosetiketten 1-bahnig, ablösbar</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2300;1105;0;1;1</value></prop></node><node oor:name="L55" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8171 Endlosetiketten 1-bahnig, ablösbar</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L56" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8172 Endlosetiketten 1-bahnig, ablösbar</value></prop><prop oor:name="Measure"><value>C;6858;3810;6858;3570;1571;0;1;1</value></prop></node><node oor:name="L57" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8173 Endlosetiketten 1-bahn., Querperforation, ablösbar</value></prop><prop oor:name="Measure"><value>C;14732;7620;14732;7380;1134;0;1;1</value></prop></node><node oor:name="L58" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8178 Endlosetiketten 1-bahnig, schnittgestanzt</value></prop><prop oor:name="Measure"><value>C;9500;3810;9500;3810;1000;0;1;1</value></prop></node><node oor:name="L59" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8179 Endlosetiketten 1-bahnig, schnittgestanzt</value></prop><prop oor:name="Measure"><value>C;15200;5080;15200;5080;900;0;1;1</value></prop></node><node oor:name="L60" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8181 Endlosetiketten 1-bahnig, gelb</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L61" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8182 Endlosetiketten 1-bahnig, rot</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L62" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8183 Endlosetiketten 1-bahnig, blau</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L63" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8185 Endlosetiketten 1-bahnig, grün</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L64" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8200 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;7874;2540;7874;2300;1063;0;1;1</value></prop></node><node oor:name="L65" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8201 Endlosetiketten 1-bahnig, 3,5"-Diskette, Front</value></prop><prop oor:name="Measure"><value>C;7112;5080;7112;4840;1444;0;1;1</value></prop></node><node oor:name="L66" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8202 Endlosetiketten 1-bahnig, Kennzeichnung</value></prop><prop oor:name="Measure"><value>C;7366;1270;7366;1030;1317;0;1;1</value></prop></node><node oor:name="L67" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8203 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10160;7620;10160;7380;1170;0;1;1</value></prop></node><node oor:name="L68" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8204 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;8890;5080;8890;4840;1105;0;1;1</value></prop></node><node oor:name="L69" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8207 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;6858;3810;6858;3570;881;0;1;1</value></prop></node><node oor:name="L70" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8209 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10668;3810;10668;3570;916;0;1;1</value></prop></node><node oor:name="L71" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8210 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;8890;2540;8890;2300;1105;0;1;1</value></prop></node><node oor:name="L72" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8211 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;8890;3810;8890;3570;1105;0;1;1</value></prop></node><node oor:name="L73" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8212 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10160;3810;10160;3570;1170;0;1;1</value></prop></node><node oor:name="L74" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8213 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10160;5080;10160;4840;1170;0;1;1</value></prop></node><node oor:name="L75" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8214 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10160;2540;10160;2300;1170;0;1;1</value></prop></node><node oor:name="L76" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8215 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;11176;3810;11176;3570;1162;0;1;1</value></prop></node><node oor:name="L77" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8216 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;11176;5080;11176;4840;1162;0;1;1</value></prop></node><node oor:name="L78" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8217 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;12700;2540;12700;2300;1150;0;1;1</value></prop></node><node oor:name="L79" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8218 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;12700;3810;12700;3570;1150;0;1;1</value></prop></node><node oor:name="L80" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8219 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;13460;2117;13460;1900;1200;0;1;1</value></prop></node><node oor:name="L81" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8220 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;9144;3810;8890;3570;1108;0;2;1</value></prop></node><node oor:name="L82" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8221 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;9144;2540;8890;2300;1108;0;2;1</value></prop></node><node oor:name="L83" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8222 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;5334;3810;5080;3570;1043;0;2;1</value></prop></node><node oor:name="L84" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8223 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;4064;2540;3810;2300;1613;0;2;1</value></prop></node><node oor:name="L85" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8225 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;10414;3810;10160;3570;1213;0;2;1</value></prop></node><node oor:name="L86" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8226 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;9144;5080;8890;4840;1108;0;2;1</value></prop></node><node oor:name="L87" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8227 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;10414;5080;10160;4840;1213;0;2;1</value></prop></node><node oor:name="L88" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8228 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;4064;1270;3810;1030;1613;0;2;1</value></prop></node><node oor:name="L89" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8229 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;5334;2540;5080;2300;1043;0;2;1</value></prop></node><node oor:name="L90" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8230 Endlosetiketten 3-bahnig</value></prop><prop oor:name="Measure"><value>C;9144;2540;8890;2300;1211;0;3;1</value></prop></node><node oor:name="L91" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8231 Endlosetiketten 3-bahnig</value></prop><prop oor:name="Measure"><value>C;9144;3810;8890;3570;1211;0;3;1</value></prop></node><node oor:name="L92" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8232 Endlosetiketten 3-bahnig</value></prop><prop oor:name="Measure"><value>C;10414;3810;10160;3570;1156;0;3;1</value></prop></node><node oor:name="L93" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8233 Endlosetiketten 3-bahnig</value></prop><prop oor:name="Measure"><value>C;10922;5080;10668;4840;1244;0;3;1</value></prop></node><node oor:name="L94" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8234 Endlosetiketten 3-bahnig</value></prop><prop oor:name="Measure"><value>C;9144;5080;8890;4840;1211;0;3;1</value></prop></node><node oor:name="L95" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8235 Endlosetiketten 3-bahnig</value></prop><prop oor:name="Measure"><value>C;11430;5080;11176;4840;1232;0;3;1</value></prop></node><node oor:name="L96" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8236 Endlosetiketten 3-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;7112;3810;6858;3570;1209;0;3;1</value></prop></node><node oor:name="L97" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8237 Endlosetiketten 3-bahnig</value></prop><prop oor:name="Measure"><value>C;10922;3810;10668;3570;1244;0;3;1</value></prop></node><node oor:name="L98" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8238 Endlosetiketten 3-bahnig</value></prop><prop oor:name="Measure"><value>C;10414;5080;10160;4840;1156;0;3;1</value></prop></node><node oor:name="L99" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8240 Endlosetiketten 4-bahnig</value></prop><prop oor:name="Measure"><value>C;7620;3810;7366;3570;1087;0;4;1</value></prop></node><node oor:name="L100" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8241 Endlosetiketten 4-bahnig</value></prop><prop oor:name="Measure"><value>C;8382;2540;8128;2300;1213;0;4;1</value></prop></node><node oor:name="L101" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8242 Endlosetiketten 4-bahnig</value></prop><prop oor:name="Measure"><value>C;8382;3810;8128;3570;1213;0;4;1</value></prop></node><node oor:name="L102" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8243 Endlosetiketten 4-bahnig</value></prop><prop oor:name="Measure"><value>C;8382;5080;8128;4840;1213;0;4;1</value></prop></node><node oor:name="L103" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8245 Endlosetiketten 4-bahnig</value></prop><prop oor:name="Measure"><value>C;5334;2540;5080;2300;1209;0;4;1</value></prop></node><node oor:name="L104" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8246 Endlosetiketten 4-bahnig</value></prop><prop oor:name="Measure"><value>C;5334;3810;5080;3570;1209;0;4;1</value></prop></node><node oor:name="L105" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8265 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;12700;5080;12700;4840;1150;0;1;1</value></prop></node><node oor:name="L106" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8266 Endlosetiketten 2-bahnig</value></prop><prop oor:name="Measure"><value>C;12954;5080;12700;4840;1173;0;2;1</value></prop></node><node oor:name="L107" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8267 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;7874;3810;7874;3570;1063;0;1;1</value></prop></node><node oor:name="L108" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8268 Endlosetiketten 3-bahnig, Kennzeichnung</value></prop><prop oor:name="Measure"><value>C;2794;1693;2540;1453;1486;0;3;1</value></prop></node><node oor:name="L109" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8002 Endlosetiketten 3-bahnig, Kennzeichnung</value></prop><prop oor:name="Measure"><value>C;2794;1693;2540;1453;1486;0;3;1</value></prop></node><node oor:name="L110" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8269 Endlosetiketten 1-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;21082;15240;21082;15000;1209;0;1;1</value></prop></node><node oor:name="L111" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8290 Endlosetiketten 2-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;14986;10160;14732;9920;1141;0;2;1</value></prop></node><node oor:name="L112" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8291 Endlosetiketten 1-bahnig, 3,5"-Diskette</value></prop><prop oor:name="Measure"><value>C;7112;7620;7112;6960;1994;0;1;1</value></prop></node><node oor:name="L113" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8292 Endlosetiketten 1-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;14732;10160;14732;9920;1134;0;1;1</value></prop></node><node oor:name="L114" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8293 Endlosetiketten 1-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;14732;5080;14732;4840;1134;0;1;1</value></prop></node><node oor:name="L115" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8294 Endlosetiketten 1-bahnig, mit Querperforation</value></prop><prop oor:name="Measure"><value>C;14732;7620;14732;7380;1134;0;1;1</value></prop></node><node oor:name="L116" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8295 Endlosetiketten 8-bahnig</value></prop><prop oor:name="Measure"><value>C;4064;1270;3810;1030;1371;0;8;1</value></prop></node><node oor:name="L117" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8296 Endlosetiketten 1-bahnig</value></prop><prop oor:name="Measure"><value>C;10668;5080;10668;4840;916;0;1;1</value></prop></node><node oor:name="L118" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>8299 Endlosetiketten 1-bahnig, 5,25"-Diskette, ablösbar</value></prop><prop oor:name="Measure"><value>C;7112;3386;7112;3146;1444;0;1;1</value></prop></node></node><node oor:name="Leitz" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>1680 Kartonrückenschilder, breit</value></prop><prop oor:name="Measure"><value>S;19000;6600;19000;5600;1000;2150;1;4</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>1681 Kartonrückenschilder, schmal</value></prop><prop oor:name="Measure"><value>S;19000;3900;19000;3100;1000;1600;1;7</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>1685 Papierrückenschilder selbstkl., breit</value></prop><prop oor:name="Measure"><value>S;19200;6950;19200;6150;900;1350;1;4</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>1686 Papierrückenschilder selbstkl., schmal</value></prop><prop oor:name="Measure"><value>S;19200;4700;19200;3900;900;1150;1;6</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>1687 Papierrückenschilder selbstkl., breit</value></prop><prop oor:name="Measure"><value>S;6150;28500;6150;28500;1250;600;3;1</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>1688 Papierrückenschilder selbstkl., schmal</value></prop><prop oor:name="Measure"><value>S;3900;28500;3900;28500;600;600;5;1</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6098 Papierrückenschilder selbstkl., breit</value></prop><prop oor:name="Measure"><value>S;6100;27900;6100;27900;1350;900;3;1</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6099 Papierrückenschilder selbstkl., schmal</value></prop><prop oor:name="Measure"><value>S;3400;27900;3400;27900;2000;900;5;1</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>1900 Blanko-Schildchen</value></prop><prop oor:name="Measure"><value>S;6000;2080;6000;2080;1500;1200;3;13</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>2466 Blanko-Schildchen</value></prop><prop oor:name="Measure"><value>S;5000;1500;5000;1500;3000;1200;3;18</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6010 Blanko-Schildchen</value></prop><prop oor:name="Measure"><value>S;5000;2100;5000;2100;3000;1200;3;13</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>6643 Beschriftungsschilder, selbstklebend </value></prop><prop oor:name="Measure"><value>S;7300;3900;7300;3900;3200;1200;2;7</value></prop></node></node><node oor:name="Sigel" oor:op="replace"><node oor:name="L0" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DP001 Tischkarten blanko weiß</value></prop><prop oor:name="Measure"><value>S;10500;8500;9500;8500;1500;5350;2;2</value></prop></node><node oor:name="L1" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DP002 Tischkarten konturgestanzt</value></prop><prop oor:name="Measure"><value>S;10500;8500;9500;8500;1500;5350;2;2</value></prop></node><node oor:name="L2" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DE115 Design-Etiketten</value></prop><prop oor:name="Measure"><value>S;5820;2540;5400;2120;1980;2360;3;10</value></prop></node><node oor:name="L3" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DE141 Design-Etiketten</value></prop><prop oor:name="Measure"><value>S;6300;3300;6000;3000;1200;1800;3;8</value></prop></node><node oor:name="L4" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>LP750 CD-Einleger</value></prop><prop oor:name="Measure"><value>S;12050;13100;12050;12100;2975;2400;1;2</value></prop></node><node oor:name="L5" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DD300 CD-Einleger</value></prop><prop oor:name="Measure"><value>S;12050;13100;12050;12100;2975;2400;1;2</value></prop></node><node oor:name="L6" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DD405 CD-Einleger</value></prop><prop oor:name="Measure"><value>S;12050;13100;12050;12100;2975;2400;1;2</value></prop></node><node oor:name="L7" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>LP755 CD-Booklet</value></prop><prop oor:name="Measure"><value>S;12000;24000;12000;24000;4500;2850;1;1</value></prop></node><node oor:name="L8" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DD450 CD-Booklet</value></prop><prop oor:name="Measure"><value>S;12000;24000;12000;24000;4500;2850;1;1</value></prop></node><node oor:name="L9" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DP839/DP939 Design-Visitenkarten</value></prop><prop oor:name="Measure"><value>S;9500;5500;8500;5500;1500;1000;2;5</value></prop></node><node oor:name="L10" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DP835/DP935 Design-Visitenkarten gestanzt</value></prop><prop oor:name="Measure"><value>S;9500;5500;8500;5500;1500;1100;2;5</value></prop></node><node oor:name="L11" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DP836/DP936 Design-Visitenkarten</value></prop><prop oor:name="Measure"><value>S;9500;5500;8500;5500;1500;1000;2;5</value></prop></node><node oor:name="L12" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DP837/DP937 Design-Visitenkarten gestanzt, m. abger. Ecken</value></prop><prop oor:name="Measure"><value>S;9500;5650;8500;5500;1500;600;2;5</value></prop></node><node oor:name="L13" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>DP838/DP938 Design-Klapp-Visitenkarten</value></prop><prop oor:name="Measure"><value>S;17000;5500;17000;5500;2000;1000;1;5</value></prop></node><node oor:name="L14" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>LP781 Regalschild</value></prop><prop oor:name="Measure"><value>S;10500;3800;10500;3800;0;1550;2;7</value></prop></node><node oor:name="L15" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>LP731 Ordner-Einsteckschild</value></prop><prop oor:name="Measure"><value>S;19000;3000;19000;3000;1000;2850;1;8</value></prop></node><node oor:name="L16" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>LP734 Ordner-Einsteckschild</value></prop><prop oor:name="Measure"><value>S;19000;5300;19000;5300;1000;1600;1;5</value></prop></node><node oor:name="L17" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>LP710 Postkarte bedruckt</value></prop><prop oor:name="Measure"><value>S;14850;9900;14850;9900;3075;0;1;3</value></prop></node><node oor:name="L18" oor:op="replace" oor:finalized="true"><prop oor:name="Name"><value>LP711 Postkarte</value></prop><prop oor:name="Measure"><value>S;9900;14850;9900;14850;0;0;2;2</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Logging" oor:package="org.openoffice.Office"/><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Math" oor:package="org.openoffice.Office"><node oor:name="FontFormatList"><node oor:name="Id1" oor:op="replace"><prop oor:name="Name"><value>OpenSymbol</value></prop><prop oor:name="CharSet"><value>-1</value></prop><prop oor:name="Family"><value>0</value></prop><prop oor:name="Pitch"><value>0</value></prop><prop oor:name="Weight"><value>0</value></prop><prop oor:name="Italic"><value>0</value></prop></node><node oor:name="Id2" oor:op="replace"><prop oor:name="Name"><value>OpenSymbol</value></prop><prop oor:name="CharSet"><value>-1</value></prop><prop oor:name="Family"><value>0</value></prop><prop oor:name="Pitch"><value>0</value></prop><prop oor:name="Weight"><value>0</value></prop><prop oor:name="Italic"><value>0</value></prop></node></node><node oor:name="SymbolList"><node oor:name="alpha" oor:op="replace"><prop oor:name="Char"><value>945</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="ALPHA" oor:op="replace"><prop oor:name="Char"><value>913</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="beta" oor:op="replace"><prop oor:name="Char"><value>946</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="BETA" oor:op="replace"><prop oor:name="Char"><value>914</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="gamma" oor:op="replace"><prop oor:name="Char"><value>947</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="GAMMA" oor:op="replace"><prop oor:name="Char"><value>915</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="delta" oor:op="replace"><prop oor:name="Char"><value>948</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="DELTA" oor:op="replace"><prop oor:name="Char"><value>916</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="epsilon" oor:op="replace"><prop oor:name="Char"><value>1013</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="EPSILON" oor:op="replace"><prop oor:name="Char"><value>917</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="zeta" oor:op="replace"><prop oor:name="Char"><value>950</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="ZETA" oor:op="replace"><prop oor:name="Char"><value>918</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="eta" oor:op="replace"><prop oor:name="Char"><value>951</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="ETA" oor:op="replace"><prop oor:name="Char"><value>919</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="theta" oor:op="replace"><prop oor:name="Char"><value>952</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="THETA" oor:op="replace"><prop oor:name="Char"><value>920</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="iota" oor:op="replace"><prop oor:name="Char"><value>953</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="IOTA" oor:op="replace"><prop oor:name="Char"><value>921</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="kappa" oor:op="replace"><prop oor:name="Char"><value>954</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="KAPPA" oor:op="replace"><prop oor:name="Char"><value>922</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="lambda" oor:op="replace"><prop oor:name="Char"><value>955</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="LAMBDA" oor:op="replace"><prop oor:name="Char"><value>923</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="mu" oor:op="replace"><prop oor:name="Char"><value>956</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="MU" oor:op="replace"><prop oor:name="Char"><value>924</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="nu" oor:op="replace"><prop oor:name="Char"><value>957</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="NU" oor:op="replace"><prop oor:name="Char"><value>925</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="xi" oor:op="replace"><prop oor:name="Char"><value>958</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="XI" oor:op="replace"><prop oor:name="Char"><value>926</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="omicron" oor:op="replace"><prop oor:name="Char"><value>959</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="OMICRON" oor:op="replace"><prop oor:name="Char"><value>927</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="pi" oor:op="replace"><prop oor:name="Char"><value>960</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="PI" oor:op="replace"><prop oor:name="Char"><value>928</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="rho" oor:op="replace"><prop oor:name="Char"><value>961</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="RHO" oor:op="replace"><prop oor:name="Char"><value>929</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="sigma" oor:op="replace"><prop oor:name="Char"><value>963</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="SIGMA" oor:op="replace"><prop oor:name="Char"><value>931</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="tau" oor:op="replace"><prop oor:name="Char"><value>964</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="TAU" oor:op="replace"><prop oor:name="Char"><value>932</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="upsilon" oor:op="replace"><prop oor:name="Char"><value>965</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="UPSILON" oor:op="replace"><prop oor:name="Char"><value>933</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="phi" oor:op="replace"><prop oor:name="Char"><value>981</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="PHI" oor:op="replace"><prop oor:name="Char"><value>934</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="chi" oor:op="replace"><prop oor:name="Char"><value>967</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="CHI" oor:op="replace"><prop oor:name="Char"><value>935</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="psi" oor:op="replace"><prop oor:name="Char"><value>968</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="PSI" oor:op="replace"><prop oor:name="Char"><value>936</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="omega" oor:op="replace"><prop oor:name="Char"><value>969</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="OMEGA" oor:op="replace"><prop oor:name="Char"><value>937</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="varepsilon" oor:op="replace"><prop oor:name="Char"><value>949</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="vartheta" oor:op="replace"><prop oor:name="Char"><value>977</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="varpi" oor:op="replace"><prop oor:name="Char"><value>982</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="varrho" oor:op="replace"><prop oor:name="Char"><value>1009</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="varsigma" oor:op="replace"><prop oor:name="Char"><value>962</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="varphi" oor:op="replace"><prop oor:name="Char"><value>966</value></prop><prop oor:name="Set"><value>Greek</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id2</value></prop></node><node oor:name="element" oor:op="replace"><prop oor:name="Char"><value>8712</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="noelement" oor:op="replace"><prop oor:name="Char"><value>8713</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="strictlylessthan" oor:op="replace"><prop oor:name="Char"><value>8810</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="strictlygreaterthan" oor:op="replace"><prop oor:name="Char"><value>8811</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="notequal" oor:op="replace"><prop oor:name="Char"><value>8800</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="identical" oor:op="replace"><prop oor:name="Char"><value>8801</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="tendto" oor:op="replace"><prop oor:name="Char"><value>8594</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="and" oor:op="replace"><prop oor:name="Char"><value>8743</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="or" oor:op="replace"><prop oor:name="Char"><value>8744</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="infinite" oor:op="replace"><prop oor:name="Char"><value>8734</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="angle" oor:op="replace"><prop oor:name="Char"><value>8738</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node><node oor:name="perthousand" oor:op="replace"><prop oor:name="Char"><value>8240</value></prop><prop oor:name="Set"><value>Special</value></prop><prop oor:name="Predefined"><value>true</value></prop><prop oor:name="FontFormatId"><value>Id1</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Paths" oor:package="org.openoffice.Office"><node oor:name="Paths"><node oor:name="Addin" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(progpath)/addin" oor:op="fuse"/></node></node><node oor:name="AutoCorrect" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/autocorr" oor:op="fuse"/></node><prop oor:name="WritePath"><value>$(userurl)/autocorr</value></prop></node><node oor:name="AutoText" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/autotext/$(vlang)" oor:op="fuse"/></node><prop oor:name="WritePath"><value>$(userurl)/autotext</value></prop></node><node oor:name="Backup" oor:op="fuse" oor:mandatory="true"><prop oor:name="IsSinglePath" oor:finalized="true"><value>true</value></prop><node oor:name="InternalPaths" oor:finalized="true"/><prop oor:name="UserPaths" oor:finalized="true"/><prop oor:name="WritePath"><value>$(userurl)/backup</value></prop></node><node oor:name="Basic" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/basic" oor:op="fuse"/></node><prop oor:name="WritePath"><value>$(userurl)/basic</value></prop></node><node oor:name="Bitmap" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/config/symbol" oor:op="fuse"/></node></node><node oor:name="Config" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/config" oor:op="fuse"/></node></node><node oor:name="Favorite" oor:op="fuse" oor:mandatory="true"><prop oor:name="WritePath"><value>$(userurl)/config/folders</value></prop></node><node oor:name="Filter" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(progpath)/filter" oor:op="fuse"/></node></node><node oor:name="Libraries" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(progpath)/libraries" oor:op="fuse"/></node></node><node oor:name="Gallery" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/gallery" oor:op="fuse"/></node><prop oor:name="WritePath"><value>$(userurl)/gallery</value></prop></node><node oor:name="Graphic" oor:op="fuse" oor:mandatory="true"><prop oor:name="IsSinglePath" oor:finalized="true"><value>true</value></prop><node oor:name="InternalPaths" oor:finalized="true"/><prop oor:name="UserPaths" oor:finalized="true"/><prop oor:name="WritePath"><value>$(userurl)/gallery</value></prop></node><node oor:name="Help" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(instpath)/help" oor:op="fuse"/></node></node><node oor:name="Linguistic" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/dict" oor:op="fuse"/><node oor:name="$(insturl)/share/dict/ooo" oor:op="fuse"/></node><prop oor:name="UserPaths"><value>$(userurl)/wordbook</value></prop></node><node oor:name="Dictionary" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/wordbook" oor:op="fuse"/></node><prop oor:name="WritePath"><value>$(userurl)/wordbook</value></prop></node><node oor:name="Module" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(progpath)" oor:op="fuse"/></node></node><node oor:name="Palette" oor:op="fuse" oor:mandatory="true"><prop oor:name="WritePath"><value>$(userurl)/config</value></prop></node><node oor:name="Plugin" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(progpath)/plugin" oor:op="fuse"/></node></node><node oor:name="Fingerprint" oor:op="fuse" oor:mandatory="true"/><node oor:name="Storage" oor:op="fuse" oor:mandatory="true"><prop oor:name="WritePath"><value>$(userpath)/store</value></prop></node><node oor:name="Temp" oor:op="fuse" oor:mandatory="true"><prop oor:name="IsSinglePath" oor:finalized="true"><value>true</value></prop><node oor:name="InternalPaths" oor:finalized="true"/><prop oor:name="UserPaths" oor:finalized="true"/></node><node oor:name="Template" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/template/$(vlang)" oor:op="fuse"/></node><prop oor:name="WritePath"><value>$(userurl)/template</value></prop></node><node oor:name="UIConfig" oor:op="fuse" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/config" oor:op="fuse"/></node></node><node oor:name="UserConfig" oor:op="fuse" oor:mandatory="true"><prop oor:name="IsSinglePath" oor:finalized="true"><value>true</value></prop><node oor:name="InternalPaths" oor:finalized="true"/><prop oor:name="UserPaths" oor:finalized="true"/><prop oor:name="WritePath"><value>$(userurl)/config</value></prop></node><node oor:name="Work" oor:op="fuse" oor:mandatory="true"><prop oor:name="IsSinglePath" oor:finalized="true"><value>true</value></prop><node oor:name="InternalPaths" oor:finalized="true"/><prop oor:name="UserPaths" oor:finalized="true"/><prop oor:name="WritePath"><value>$(work)</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="ProtocolHandler" oor:package="org.openoffice.Office"><node oor:name="HandlerSet"><node oor:name="com.sun.star.comp.sfx2.SfxMacroLoader" oor:op="replace"><prop oor:name="Protocols"><value>macro:*</value></prop></node><node oor:name="com.sun.star.comp.framework.MailToDispatcher" oor:op="replace"><prop oor:name="Protocols"><value>mailto:*</value></prop></node><node oor:name="com.sun.star.comp.sfx2.AppDispatchProvider" oor:op="replace"><prop oor:name="Protocols"><value>.uno* slot:*</value></prop></node><node oor:name="com.sun.star.comp.framework.ServiceHandler" oor:op="replace"><prop oor:name="Protocols"><value>service:*</value></prop></node><node oor:name="com.sun.star.comp.framework.jobs.JobDispatch" oor:op="replace"><prop oor:name="Protocols"><value>vnd.sun.star.job:*</value></prop></node><node oor:name="com.sun.star.comp.ScriptProtocolHandler" oor:op="replace"><prop oor:name="Protocols"><value>vnd.sun.star.script:*</value></prop></node><node oor:name="com.sun.star.comp.framework.PopupMenuControllerDispatcher" oor:op="replace"><prop oor:name="Protocols"><value>vnd.sun.star.popup:*</value></prop></node><node oor:name="com.sun.star.comp.svx.FindbarDispatcher" oor:op="replace"><prop oor:name="Protocols"><value>vnd.sun.star.findbar:*</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="SFX" oor:package="org.openoffice.Office"><node oor:name="Help"><prop oor:name="HelpAgentStarterList"><value xml:lang="en-US">956368385,956368385,26220,26235,2567291937,2567291938,26272,26273,26063,957028378,26153,26312,958170133,958186547,958202951,26320,26321,956419588,956433419,26323,26324,20309,20308,20226,10371,27015,10087,10156,10350,27002,700810288,700810324,700730881,703778354,700777567,701124116,701124158,541248011,541249030,541249032,700763681,34023,957235721,3388501505,3388501506,3388501507,3388501508,3388501509,3388501510,10416,10297,5573,5573,5573,34099,34100,34101,34102,34104,34106,34107,34108,34109,34110,34112,34114,34115,34116,34117,34118,34120,33368,10296,54946</value></prop></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Scripting" oor:package="org.openoffice.Office"><node oor:name="ScriptRuntimes"><node oor:name="BeanShell" oor:op="replace"><prop oor:name="SupportedFileExtensions"><value>bsh</value></prop></node><node oor:name="JavaScript" oor:op="replace"><prop oor:name="SupportedFileExtensions"><value>js</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Security" oor:package="org.openoffice.Office"><node oor:name="SecureExtensions"><node oor:name="m1" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sxw</value></prop></node><node oor:name="m2" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sxc</value></prop></node><node oor:name="m3" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sxd</value></prop></node><node oor:name="m4" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sxi</value></prop></node><node oor:name="m5" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sxm</value></prop></node><node oor:name="m6" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sxg</value></prop></node><node oor:name="m7" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sxp</value></prop></node><node oor:name="m8" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>stw</value></prop></node><node oor:name="m9" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>stc</value></prop></node><node oor:name="m10" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>std</value></prop></node><node oor:name="m11" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sti</value></prop></node><node oor:name="m12" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sdw</value></prop></node><node oor:name="m13" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sdc</value></prop></node><node oor:name="m14" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sda</value></prop></node><node oor:name="m15" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sdd</value></prop></node><node oor:name="m16" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>smf</value></prop></node><node oor:name="m17" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sds</value></prop></node><node oor:name="m18" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sgl</value></prop></node><node oor:name="m19" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>sdp</value></prop></node><node oor:name="m20" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>vor</value></prop></node><node oor:name="m21" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>doc</value></prop></node><node oor:name="m22" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>dot</value></prop></node><node oor:name="m23" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>ppt</value></prop></node><node oor:name="m24" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>pot</value></prop></node><node oor:name="m25" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>xls</value></prop></node><node oor:name="m26" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>xlw</value></prop></node><node oor:name="m27" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>xlt</value></prop></node><node oor:name="m28" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>dif</value></prop></node><node oor:name="m29" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>dbf</value></prop></node><node oor:name="m30" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>rtf</value></prop></node><node oor:name="m31" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>txt</value></prop></node><node oor:name="m32" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>text</value></prop></node><node oor:name="m33" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>csv</value></prop></node><node oor:name="m34" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>pdf</value></prop></node><node oor:name="m35" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>fdf</value></prop></node><node oor:name="m36" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>html</value></prop></node><node oor:name="m37" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>htm</value></prop></node><node oor:name="m38" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>shtml</value></prop></node><node oor:name="m39" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>xml</value></prop></node><node oor:name="m40" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>xhtml</value></prop></node><node oor:name="m41" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>bmp</value></prop></node><node oor:name="m42" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>gif</value></prop></node><node oor:name="m43" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>jpg</value></prop></node><node oor:name="m44" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>pbm</value></prop></node><node oor:name="m45" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>pcd</value></prop></node><node oor:name="m46" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>pcx</value></prop></node><node oor:name="m47" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>pbm</value></prop></node><node oor:name="m48" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>pcd</value></prop></node><node oor:name="m49" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>pcx</value></prop></node><node oor:name="m50" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>pgm</value></prop></node><node oor:name="m51" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>png</value></prop></node><node oor:name="m52" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>ppm</value></prop></node><node oor:name="m53" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>psd</value></prop></node><node oor:name="m54" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>ras</value></prop></node><node oor:name="m55" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>tga</value></prop></node><node oor:name="m56" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>tif</value></prop></node><node oor:name="m57" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>xbm</value></prop></node><node oor:name="m58" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>xpm</value></prop></node><node oor:name="m59" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>cgm</value></prop></node><node oor:name="m60" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>dxf</value></prop></node><node oor:name="m61" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>emf</value></prop></node><node oor:name="m62" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>eps</value></prop></node><node oor:name="m63" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>met</value></prop></node><node oor:name="m64" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>pct</value></prop></node><node oor:name="m65" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>wmf</value></prop></node><node oor:name="m66" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>aif</value></prop></node><node oor:name="m67" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>aifc</value></prop></node><node oor:name="m68" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>au</value></prop></node><node oor:name="m69" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>m1a</value></prop></node><node oor:name="m70" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>mid</value></prop></node><node oor:name="m71" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>midi</value></prop></node><node oor:name="m72" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>mp2</value></prop></node><node oor:name="m73" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>mp3</value></prop></node><node oor:name="m74" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>mpa</value></prop></node><node oor:name="m75" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>ra</value></prop></node><node oor:name="m76" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>ram</value></prop></node><node oor:name="m77" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>rm</value></prop></node><node oor:name="m78" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>wav</value></prop></node><node oor:name="m79" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>asf</value></prop></node><node oor:name="m80" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>asx</value></prop></node><node oor:name="m81" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>avi</value></prop></node><node oor:name="m82" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>moov</value></prop></node><node oor:name="m83" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>mov</value></prop></node><node oor:name="m84" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>movie</value></prop></node><node oor:name="m85" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>mpe</value></prop></node><node oor:name="m86" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>mpeg</value></prop></node><node oor:name="m87" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>mpg</value></prop></node><node oor:name="m88" oor:op="replace"><prop oor:name="Extension" oor:type="xs:string"><value>qt</value></prop></node></node><node oor:name="Hyperlinks"><prop oor:name="Open" oor:type="xs:int"><value>1</value></prop></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="TableWizard" oor:package="org.openoffice.Office"><node oor:name="TableWizard"><node oor:name="business" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">Business</value></prop><node oor:name="Tables"><node oor:name="categories" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">Categories</value></prop><node oor:name="Fields"><node oor:name="categoryID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">CategoryID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CategoryID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="categoryname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CategoryName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CategName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node></node></node><node oor:name="products" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Products</value></prop><node oor:name="Fields"><node oor:name="productID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">ProductID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ProductID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="productname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">ProductName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ProdName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="productdescription" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">ProductDescription</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ProdDescr</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="categoryID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">CategoryID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CategoryID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="supplierID" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">SupplierID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SupplierID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="serialnumber" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Serialnumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SerialNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="unitsinstock" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">UnitsInStock</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">UnitsStock</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="unitsonorder" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">UnitsOnOrder</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">UnitsOrder</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="unitprice" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">UnitPrice</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">UnitPrice</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>17</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="reorderlevel" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">ReorderLevel</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ReordLevel</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="discontinued" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">Discontinued</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Discontin</value></prop><prop oor:name="Type"><value>-7</value></prop></node><node oor:name="leadtime" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">LeadTime</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LeadTime</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node></node></node><node oor:name="suppliers" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Suppliers</value></prop><node oor:name="Fields"><node oor:name="supplierID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">SupplierID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SupplierID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="suppliername" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">SupplierName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SupplName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="contactname" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">ContactName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ContctName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="contacttitle" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">ContactTitle</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ContctTitl</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="address" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Address</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Address</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>200</value></prop></node><node oor:name="city" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">City</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">City</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="postalcode" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="stateorprovince" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">StateOrProvince</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">StateProvi</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="countryorregion" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">CountryOrRegion</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CountryReg</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="phonenumber" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">PhoneNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PhoneNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="faxnumber" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">FaxNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FaxNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="paymentterms" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">PaymentTerms</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PaymntTerm</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="emailaddress" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmailAddress</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmailAddr</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="mailinglist" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">MailingList</value></prop><node oor:name="Fields"><node oor:name="mailinglistID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">MailingListID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MailingID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="prefix" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Prefix</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Prefix</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="firstname" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="middlename" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">MiddleName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MiddleName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="lastlame" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">LastName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LastName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="suffix" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Suffix</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Suffix</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="title" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Title</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Title</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="organizationname" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">OrganizationName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">OrgName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="address" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">Address</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Address</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>200</value></prop></node><node oor:name="city" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">City</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">City</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="postalcode" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="stateorprovince" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">StateOrProvince</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">StateProvi</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="countryorregion" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">CountryOrRegion</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CountryReg</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="phonenumber" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">PhoneNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PhoneNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="faxnumber" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">FaxNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FaxNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="mobilenumber" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">MobileNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MobileNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="emailaddress" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmailAddress</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmailAddr</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="birthdate" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">Birthdate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Birthdate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="nationality" oor:op="replace"><prop oor:name="Index"><value>18</value></prop><prop oor:name="Name"><value xml:lang="en-US">Nationality</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Nationality</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="dateupdated" oor:op="replace"><prop oor:name="Index"><value>19</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateUpdated</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateUpdate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="datejoined" oor:op="replace"><prop oor:name="Index"><value>20</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateJoined</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateJoined</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="membershipstatus" oor:op="replace"><prop oor:name="Index"><value>21</value></prop><prop oor:name="Name"><value xml:lang="en-US">MembershipStatus</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MemberStat</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="pledgeamount" oor:op="replace"><prop oor:name="Index"><value>22</value></prop><prop oor:name="Name"><value xml:lang="en-US">PledgeAmount</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PledgeAmnt</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="pledgepaiddate" oor:op="replace"><prop oor:name="Index"><value>23</value></prop><prop oor:name="Name"><value xml:lang="en-US">PledgePaidDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PldgPdDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="duesamount" oor:op="replace"><prop oor:name="Index"><value>24</value></prop><prop oor:name="Name"><value xml:lang="en-US">DuesAmount</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DuesAmount</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="duespaiddate" oor:op="replace"><prop oor:name="Index"><value>25</value></prop><prop oor:name="Name"><value xml:lang="en-US">DuesPaidDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DuesPdDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="photo" oor:op="replace"><prop oor:name="Index"><value>26</value></prop><prop oor:name="Name"><value xml:lang="en-US">Photo</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Photo</value></prop><prop oor:name="Type"><value>-4</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>27</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="contacts" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Contacts</value></prop><node oor:name="Fields"><node oor:name="contactID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">ContactID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ContactID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="firstname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="lastname" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">LastName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LastName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="title" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Title</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Title</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="address" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Address</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Address</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>200</value></prop></node><node oor:name="city" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">City</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">City</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="postalcode" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="stateorprovince" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">StateOrProvince</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">StateProvi</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="countryorregion" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">CountryOrRegion</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CountryReg</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="phonenumber" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">PhoneNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PhoneNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="faxnumber" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">FaxNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FaxNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="mobilenumber" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">MobileNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MobileNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="emailaddress" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmailAddress</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmailAddr</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="salutation" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">Salutation</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Salutation</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="birthdate" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">Birthdate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Birthdate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="contacttypeID" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">ContactTypeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CntctTypID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="maritalstatus" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">MaritalStatus</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MaritlStat</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="spousename" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">SpouseName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SpouseName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="spousesinterests" oor:op="replace"><prop oor:name="Index"><value>18</value></prop><prop oor:name="Name"><value xml:lang="en-US">SpousesInterests</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SpouseIntr</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="contactsinterests" oor:op="replace"><prop oor:name="Index"><value>19</value></prop><prop oor:name="Name"><value xml:lang="en-US">ContactsInterests</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CntctInter</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="childrennames" oor:op="replace"><prop oor:name="Index"><value>20</value></prop><prop oor:name="Name"><value xml:lang="en-US">ChildrenNames</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ChildName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="photo" oor:op="replace"><prop oor:name="Index"><value>21</value></prop><prop oor:name="Name"><value xml:lang="en-US">Photo</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Photo</value></prop><prop oor:name="Type"><value>-4</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>22</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="customers" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Customers</value></prop><node oor:name="Fields"><node oor:name="customerID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="companyname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CompanyName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CompnyName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="firstname" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="lastname" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">LastName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LastName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="department" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Department</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Department</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="address" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Address</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Address</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>200</value></prop></node><node oor:name="city" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">City</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">City</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="postalcode" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="stateorprovince" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">StateOrProvince</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">StateProvi</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="countryorregion" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">CountryOrRegion</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CountryReg</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="phonenumber" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">PhoneNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PhoneNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="faxnumber" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">FaxNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FaxNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="mobilenumber" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">MobileNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MobileNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="emailaddress" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmailAddress</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmailAddr</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="title" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">Title</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Title</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="employees" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Employees</value></prop><node oor:name="Fields"><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="firstname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="middlename" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">MiddleName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MiddleName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="lastname" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">LastName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LastName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="title" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Title</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Title</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="department" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Department</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Department</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="socialsecuritynumber" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">SocialSecurityNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SocSecNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="employeenumber" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="emailaddress" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmailAddress</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmailAddr</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="extension" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Extension</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Extension</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="address" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">Address</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Address</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>200</value></prop></node><node oor:name="city" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">City</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">City</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="postalcode" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="stateorprovince" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">StateOrProvince</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">StateProvi</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="countryorregion" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">CountryOrRegion</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CountryReg</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="phonenumber" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">PhoneNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PhoneNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="faxnumber" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">FaxNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FaxNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="mobilenumber" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">MobileNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MobileNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="birthdate" oor:op="replace"><prop oor:name="Index"><value>18</value></prop><prop oor:name="Name"><value xml:lang="en-US">Birthdate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Birthdate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="datehired" oor:op="replace"><prop oor:name="Index"><value>19</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateHired</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateHired</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="departmentID" oor:op="replace"><prop oor:name="Index"><value>20</value></prop><prop oor:name="Name"><value xml:lang="en-US">DepartmentID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DeprtmntID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="salary" oor:op="replace"><prop oor:name="Index"><value>21</value></prop><prop oor:name="Name"><value xml:lang="en-US">Salary</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Salary</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="billingrate" oor:op="replace"><prop oor:name="Index"><value>22</value></prop><prop oor:name="Name"><value xml:lang="en-US">BillingRate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">BillngRate</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="deductions" oor:op="replace"><prop oor:name="Index"><value>23</value></prop><prop oor:name="Name"><value xml:lang="en-US">Deductions</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Deductions</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="supervisorID" oor:op="replace"><prop oor:name="Index"><value>24</value></prop><prop oor:name="Name"><value xml:lang="en-US">SupervisorID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SupervisID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="spousename" oor:op="replace"><prop oor:name="Index"><value>25</value></prop><prop oor:name="Name"><value xml:lang="en-US">SpouseName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SpouseName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="officelocation" oor:op="replace"><prop oor:name="Index"><value>26</value></prop><prop oor:name="Name"><value xml:lang="en-US">OfficeLocation</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">OfficeLoc</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="photo" oor:op="replace"><prop oor:name="Index"><value>27</value></prop><prop oor:name="Name"><value xml:lang="en-US">Photo</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Photo</value></prop><prop oor:name="Type"><value>-4</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>28</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="orders" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">Orders</value></prop><node oor:name="Fields"><node oor:name="orderID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">OrderID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">OrderID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="customerID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="orderdate" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">OrderDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">OrderDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="purchaseordernumber" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">PurchaseOrderNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PurchOrdNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="requiredbydate" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">RequiredByDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">RequirDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="promisedbydate" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">PromisedByDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PromisDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="shipname" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="shipaddress" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipAddress</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipAddres</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>200</value></prop></node><node oor:name="shipcity" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipCity</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipCity</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="shipstateorprovince" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipStateOrProvince</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShpStatPro</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="shippostalcode" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipPostalCode</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipPostlC</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="shipcountryorregion" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipCountryOrRegion</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipCouReg</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="shipphonenumber" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipPhoneNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipPhonNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="shipdate" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="shippingmethodID" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShippingMethodID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipMethID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="freightcharge" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">FreightCharge</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FreightCharge</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="salestaxrate" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">SalesTaxRate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SalesTaxRt</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>4</value></prop><prop oor:name="Scale"><value>2</value></prop></node></node></node><node oor:name="orderdetails" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">OrderDetails</value></prop><node oor:name="Fields"><node oor:name="orderdetailID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">OrderDetailID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">OrderDetID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="orderID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">OrderID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">OrderID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="productID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">ProductID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ProductID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="datesold" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateSold</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateSold</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="quantity" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Quantity</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Quantity</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="unitprice" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">UnitPrice</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">UnitPrice</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="discount" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Discount</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Discount</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>4</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="saleprice" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">SalePrice</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SalePrice</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="salestax" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">SalesTax</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SalesTax</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>9</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="linetotal" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">LineTotal</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LineTotal</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node></node></node><node oor:name="payments" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Payments</value></prop><node oor:name="Fields"><node oor:name="paymentID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">PaymentID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PaymentID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="customerID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="workorderID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">WorkorderID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">WorkordrID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="orderID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">OrderID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">OrderID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="reservationID" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">ReservationID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ReservID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="memberID" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">MemberID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MemberID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="registrationID" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">RegistrationID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">RegistraID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="projectID" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">ProjectID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ProjectID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="paymentamount" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">PaymentAmount</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PaymntAmnt</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="paymentdate" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">PaymentDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PaymntDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="paymentmethod" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">PaymentMethod</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PaymntMeth</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="checknumber" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">CheckNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CheckNo</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="creditcardtype" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">CreditCardType</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CCardType</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="creditcardnumber" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">CreditCardNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CCardNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="cardholder" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">Cardholder</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Cardholder</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="creditcardExpdate" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">CreditCardExpDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CCExpDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="creditcardauthorizationnumber" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">CreditCardAuthorizationNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CCAuthorNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="paymentterms" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">PaymentTerms</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PaymntTerm</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="paymentmethodID" oor:op="replace"><prop oor:name="Index"><value>18</value></prop><prop oor:name="Name"><value xml:lang="en-US">PaymentMethodID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PaymMethID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>19</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="invoices" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">Invoices</value></prop><node oor:name="Fields"><node oor:name="invoiceID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">InvoiceID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">InvoiceID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="customerID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="deliveryID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">DeliveryID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DeliveryID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="status" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Status</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Status</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="invoicedate" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">InvoiceDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">InvoiceDat</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="salesperson" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Salesperson</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Salespersn</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="shipdate" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="shippedto" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShippedTo</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShippedTo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="shippedvia" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShippedVia</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShippedVia</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="shippingcost" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShippingCost</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipCost</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="invoicedetails" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">InvoiceDetails</value></prop><node oor:name="Fields"><node oor:name="invoicedetailID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">InvoiceDetailID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">InvoiDetID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="invoiceID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">InvoiceID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">InvoiceID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="orderID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">OrderID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">OrderID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="productID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">ProductID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ProductID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="quantity" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Quantity</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Quantity</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="unitprice" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">UnitPrice</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">UnitPrice</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="discount" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Discount</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Discount</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>4</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="paymentterms" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">PaymentTerms</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PaymntTerm</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node></node></node><node oor:name="projects" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">Projects</value></prop><node oor:name="Fields"><node oor:name="projectID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">ProjectID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ProjectID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="projectname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">ProjectName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ProjctName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="projectdescription" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">ProjectDescription</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ProjctDscr</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="clientID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">ClientID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ClientID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="purchaseordernumber" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">PurchaseOrderNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PurchOrdNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="totalbillingestimate" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">TotalBillingEstimate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TotBillEst</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="begindate" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">BeginDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">BeginDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="enddate" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">EndDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EndDate</value></prop><prop oor:name="Type"><value>91</value></prop></node></node></node><node oor:name="events" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">Events</value></prop><node oor:name="Fields"><node oor:name="eventID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">EventID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EventID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="eventname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">EventName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EventName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="eventdescription" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">EventDescription</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EventDescr</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="eventtypeID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">EventTypeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EventTypID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="status" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Status</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Status</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="location" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Location</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Location</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="begindate" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">BeginDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">BeginDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="begintime" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">BeginTime</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">BeginTime</value></prop><prop oor:name="Type"><value>92</value></prop></node><node oor:name="enddate" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">EndDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EndDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="endtime" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">EndTime</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EndTime</value></prop><prop oor:name="Type"><value>92</value></prop></node><node oor:name="requiredstaffing" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">RequiredStaffing</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ReqStaffng</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="confirmation" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">Confirmation</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Confirmation</value></prop><prop oor:name="Type"><value>-7</value></prop></node><node oor:name="availablespaces" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">AvailableSpaces</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AvailSpace</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="costperperson" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">CostPerPerson</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CostPPersn</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="reservations" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">Reservations</value></prop><node oor:name="Fields"><node oor:name="reservationID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">ReservationID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ReservID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="customerID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="eventID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">EventID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EventID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="quantityreserved" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">QuantityReserved</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">QuntityRes</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="reservationdate" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">ReservationDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ReservDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="reservationtime" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">ReservationTime</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ReservTime</value></prop><prop oor:name="Type"><value>92</value></prop></node><node oor:name="depositdue" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">DepositDue</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DepositDue</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="totaldue" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">TotalDue</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TotalDue</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="amountpaid" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">AmountPaid</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AmountPaid</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="confirmation" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">Confirmation</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Confirmation</value></prop><prop oor:name="Type"><value>-7</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="timebilled" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">TimeBilled</value></prop><node oor:name="Fields"><node oor:name="timebilledID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">TimeBilledID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TimeBillID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="customerID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="projectID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">ProjectID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ProjectID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="billingdate" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">BillingDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">BillingDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="rateperhour" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">RatePerHour</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">RatePrHour</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="billablehours" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">BillableHours</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">BillablHrs</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>6</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="expenses" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">Expenses</value></prop><node oor:name="Fields"><node oor:name="expenseID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">ExpenseID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ExpenseID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="expensetype" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">ExpenseType</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ExpensType</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="purpose" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Purpose</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Purpose</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="datepurchased" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">DatePurchased</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DatePurchd</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="datesubmitted" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateSubmitted</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateSubmit</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="amountspent" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">AmountSpent</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AmountSpnt</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="advanceamount" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">AdvanceAmount</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AdvnceAmnt</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="paymentmethod" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">PaymentMethod</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PaymntMeth</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="deliveries" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">Deliveries</value></prop><node oor:name="Fields"><node oor:name="deliveryID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">DeliveryID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DeliveryID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="customerID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CustomerID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="orderID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">OrderID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">OrderID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="shippedfrom" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShippedFrom</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShippedFrm</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="shippedvia" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShippedVia</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShippedVia</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="trackingcode" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">TrackingCode</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TrckngCode</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="shipdate" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="shipperphonenumber" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShipperPhoneNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShipPhonNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="destinationaddress" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">DestinationAddress</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DestAddres</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="destinationcity" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">DestinationCity</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DestinCity</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="destinationstateprovince" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">DestinationStateProvince</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DestStaPro</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="destinationpostalcode" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">DestinationPostalCode</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DestPstCde</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="destinationcountryregion" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">DestinationCountryRegion</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DestCouReg</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="arrivaldate" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">ArrivalDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ArrivlDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="arrivaltime" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">ArrivalTime</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ArrivlTime</value></prop><prop oor:name="Type"><value>92</value></prop></node><node oor:name="currentlocation" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">CurrentLocation</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CurrLocatn</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="packagedimensions" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">PackageDimensions</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PackDimens</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="packageweight" oor:op="replace"><prop oor:name="Index"><value>18</value></prop><prop oor:name="Name"><value xml:lang="en-US">PackageWeight</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PackWeight</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="pickuplocation" oor:op="replace"><prop oor:name="Index"><value>19</value></prop><prop oor:name="Name"><value xml:lang="en-US">PickUpLocation</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PickUpLoca</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="pickupdate" oor:op="replace"><prop oor:name="Index"><value>20</value></prop><prop oor:name="Name"><value xml:lang="en-US">PickUpDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PickUpDate</value></prop><prop oor:name="Type"><value>91</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="pickuptime" oor:op="replace"><prop oor:name="Index"><value>21</value></prop><prop oor:name="Name"><value xml:lang="en-US">PickUpTime</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PickUpTime</value></prop><prop oor:name="Type"><value>92</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="receivedby" oor:op="replace"><prop oor:name="Index"><value>22</value></prop><prop oor:name="Name"><value xml:lang="en-US">ReceivedBy</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ReceivedBy</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="freightcharge" oor:op="replace"><prop oor:name="Index"><value>23</value></prop><prop oor:name="Name"><value xml:lang="en-US">FreightCharge</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FrghtChrge</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>6</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>24</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="assets" oor:op="replace"><prop oor:name="Index"><value>18</value></prop><prop oor:name="Name"><value xml:lang="en-US">Assets</value></prop><node oor:name="Fields"><node oor:name="assetID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">AssetID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AssetID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="description" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Description</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Descrption</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="assetcategoryID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">AssetCategoryID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AssetCatID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="statusID" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">StatusID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">StatusID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="departmentID" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">DepartmentID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DeprtmntID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="vendorID" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">VendorID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">VendorID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="make" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">Make</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Make</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="model" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">Model</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Model</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="modelnumber" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">ModelNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ModelNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="serialnumber" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">SerialNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SerialNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="barcodenumber" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">BarcodeNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">BarcodeNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="dateacquired" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateAcquired</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateAcquir</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="datesold" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateSold</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateSold</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="purchaseprice" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">PurchasePrice</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PurchPrice</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="depreciationmethod" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">DepreciationMethod</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DeprecMeth</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="depreciablelife" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">DepreciableLife</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DeprecLife</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="salvagevalue" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">SalvageValue</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SalvageVal</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="currentvalue" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">CurrentValue</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CurrentVal</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="comments" oor:op="replace"><prop oor:name="Index"><value>18</value></prop><prop oor:name="Name"><value xml:lang="en-US">Comments</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Comments</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="nextscheduledmaintenance" oor:op="replace"><prop oor:name="Index"><value>19</value></prop><prop oor:name="Name"><value xml:lang="en-US">NextScheduledMaintenance</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">NtSchMaint</value></prop><prop oor:name="Type"><value>91</value></prop></node></node></node><node oor:name="transactions" oor:op="replace"><prop oor:name="Index"><value>19</value></prop><prop oor:name="Name"><value xml:lang="en-US">Transactions</value></prop><node oor:name="Fields"><node oor:name="transactionID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">TransactionID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TrnsactnID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="paymentID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">PaymentID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PaymentID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="transactionnumber" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">TransactionNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TrnsactnNo</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="date" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Date</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Date</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="description" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Description</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Descrption</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="amount" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Amount</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Amount</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="accountID" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">AccountID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AccountID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="referencenumber" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">ReferenceNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">RefrenceNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="numberofunits" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">NumberofUnits</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">NumberUnit</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="withdrawalamount" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">WithdrawalAmount</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">WithdrwAmt</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="depositamount" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">DepositAmount</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DepositAmt</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="interestearned" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">InterestEarned</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">IntrstEarn</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>9</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="buyselldate" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">BuySellDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">BuySellDat</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="buysellprice" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">BuySellPrice</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">BuySellPrc</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="servicecharge" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">ServiceCharge</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ServiChrge</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>10</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="taxable" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">Taxable</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Taxable</value></prop><prop oor:name="Type"><value>-7</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="tasks" oor:op="replace"><prop oor:name="Index"><value>20</value></prop><prop oor:name="Name"><value xml:lang="en-US">Tasks</value></prop><node oor:name="Fields"><node oor:name="taskID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">TaskID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TaskID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="description" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Description</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Descrption</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="startdate" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">StartDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">StartDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="enddate" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">EndDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EndDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="employeestasks" oor:op="replace"><prop oor:name="Index"><value>21</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeesTasks</value></prop><node oor:name="Fields"><node oor:name="employeetaskID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeTaskID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmplTaskID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="employeeID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmployeeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="taskID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">TaskID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TaskID</value></prop><prop oor:name="Type"><value>4</value></prop></node></node></node></node></node><node oor:name="private" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Private</value></prop><node oor:name="Tables"><node oor:name="categories" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">Categories</value></prop><node oor:name="Fields"><node oor:name="categoryID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">CategoryID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CategoryID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="categoryname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CategoryName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CategName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node></node></node><node oor:name="addresses" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Addresses</value></prop><node oor:name="Fields"><node oor:name="addressID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">AddressID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AddressID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="firstname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="lastname" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">LastName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LastName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="title" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Title</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Title</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="address" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Address</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Address</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>200</value></prop></node><node oor:name="city" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">City</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">City</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="postalcode" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PostalCode</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="stateorprovince" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">StateOrProvince</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">StateProvi</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="countryorregion" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">CountryOrRegion</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CountryReg</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="phonenumber" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">PhoneNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PhoneNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="faxnumber" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">FaxNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FaxNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="mobilenumber" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">MobileNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MobileNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>30</value></prop></node><node oor:name="emailaddress" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">EmailAddress</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EmailAddr</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="salutation" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">Salutation</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Salutation</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="birthdate" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">Birthdate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Birthdate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="sendcard" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">SendCard</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SendCard</value></prop><prop oor:name="Type"><value>-7</value></prop></node><node oor:name="maritalstatus" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">MaritalStatus</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MaritlStat</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="spousename" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">SpouseName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SpouseName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="nickname" oor:op="replace"><prop oor:name="Index"><value>18</value></prop><prop oor:name="Name"><value xml:lang="en-US">Nickname</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Nickname</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="hobbies" oor:op="replace"><prop oor:name="Index"><value>19</value></prop><prop oor:name="Name"><value xml:lang="en-US">Hobbies</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Hobbies</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="childrennames" oor:op="replace"><prop oor:name="Index"><value>20</value></prop><prop oor:name="Name"><value xml:lang="en-US">ChildrenNames</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ChildName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="photo" oor:op="replace"><prop oor:name="Index"><value>21</value></prop><prop oor:name="Name"><value xml:lang="en-US">Photo</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Photo</value></prop><prop oor:name="Type"><value>-4</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>22</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="dateupdated" oor:op="replace"><prop oor:name="Index"><value>23</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateUpdated</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DatUpdated</value></prop><prop oor:name="Type"><value>91</value></prop></node></node></node><node oor:name="householdinventory" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">HouseholdInventory</value></prop><node oor:name="Fields"><node oor:name="inventoryID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">InventoryID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">InventryID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="categoryID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CategoryID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CategoryID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="roomID" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">RoomID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">RoomID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="item" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Item</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Item</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="itemtype" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">ItemType</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ItemType</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="description" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Description</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Descrption</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="manufacturer" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Manufacturer</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Manufactur</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="model" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">Model</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Model</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="modelnumber" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">ModelNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ModelNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="serialnumber" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">SerialNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SerialNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="datepurchased" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">DatePurchased</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DatePurch</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="placepurchased" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">PlacePurchased</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PlacePurch</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="purchaseprice" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">PurchasePrice</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PurchPrice</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>7</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="appraisedvalue" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">AppraisedValue</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AppraisVal</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>7</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="insured" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">Insured</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Insured</value></prop><prop oor:name="Type"><value>-7</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="recipes" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Recipes</value></prop><node oor:name="Fields"><node oor:name="recipeID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">RecipeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">RecipeID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="name" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Name</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Name</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="description" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Description</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Descrption</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="source" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Source</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Source</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="whichmeal" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">WhichMeal</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">WhichMeal</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="vegetarian" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Vegetarian</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Vegetarian</value></prop><prop oor:name="Type"><value>-7</value></prop></node><node oor:name="timetoprepare" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">TimeToPrepare</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TimePrepar</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="numberofservings" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">NumberofServings</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">NoofServng</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="caloriesperserving" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">CaloriesPerServing</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CalPerServ</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="nutritionalinformation" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">NutritionalInformation</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">NutriInfo</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="ingredients" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">Ingredients</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Ingredient</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="instructions" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">Instructions</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Instrction</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="utensils" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">Utensils</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Utensils</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="plants" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Plants</value></prop><node oor:name="Fields"><node oor:name="plantID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">PlantID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PlantID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="commonname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">CommonName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CommonName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="genus" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Genus</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Genus</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="species" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Species</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Species</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="flowering" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Flowering</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Flowering</value></prop><prop oor:name="Type"><value>-7</value></prop></node><node oor:name="lightpreference" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">LightPreference</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LightPref</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="temperaturepreference" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">TemperaturePreference</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TempPref</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="fertilizefrequency" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">FertilizeFrequency</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FertilFreq</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="wateringfrequency" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">WateringFrequency</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">WaterFreq</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="datepurchased" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">DatePurchased</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DatePurch</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="placepurchased" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">PlacePurchased</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PlacePurch</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="dateplanted" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">DatePlanted</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DatPlanted</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="daterepotted" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateRepotted</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DatRepottd</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="datepruned" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">DatePruned</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DatePruned</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="datewatered" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateWatered</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateWaterd</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="photo" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">Photo</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Photo</value></prop><prop oor:name="Type"><value>-4</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="photographs" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Photographs</value></prop><node oor:name="Fields"><node oor:name="photoID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">PhotoID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PhotoID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="filmID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">FilmID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FilmID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="datetaken" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateTaken</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateTaken</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="timetaken" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">TimeTaken</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TimeTaken</value></prop><prop oor:name="Type"><value>92</value></prop></node><node oor:name="placetaken" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">PlaceTaken</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PlaceTaken</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="lensused" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">LensUsed</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LensUsed</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="aperture" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Aperture</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Aperture</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="shutterspeed" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">ShutterSpeed</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShutterSpd</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="filterused" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">FilterUsed</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FilterUsed</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="flash" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Flash</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Flash</value></prop><prop oor:name="Type"><value>-7</value></prop></node><node oor:name="printsize" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">PrintSize</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PrintSize</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="miniaturefilms" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">MiniatureFilms</value></prop><node oor:name="Fields"><node oor:name="filmID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">FilmID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FilmID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="make" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Make</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Make</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="photosensitivity" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Photosensitivity</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Photosensi</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="numberofphotos" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">NumberOfPhotos</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">NumPhotos</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="colorfilm" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">ColorFilm</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ColorFilm</value></prop><prop oor:name="Type"><value>-7</value></prop></node><node oor:name="filmexpirationdate" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">FilmExpirationDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FlmExpDate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="datedeveloped" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateDeveloped</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateDevelp</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="developedby" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">DevelopedBy</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DevelopdBy</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="camera" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">Camera</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Camera</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="dvdcollection" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">DVD-Collection</value></prop><node oor:name="Fields"><node oor:name="dvdcollectionID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">CollectionID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CollectnID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="movietitle" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">MovieTitle</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MovieTitle</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="actress" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Genre</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Genre</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="actor" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Actor</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Actor</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="director" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Director</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Director</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="producer" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Producer</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Producer</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="releaseyear" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">ReleaseYear</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ReleasYear</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="rating" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">Rating</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Rating</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="subject" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">Subject</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Subject</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="length" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Length</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Length</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="dateacquired" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateAcquired</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateAcquir</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="purchasedat" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">PurchasedAt</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PurchaseAt</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="purchaseprice" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">PurchasePrice</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PurchPrice</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>17</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="review" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">Review</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Review</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="cdcollection" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">CD-Collection</value></prop><node oor:name="Fields"><node oor:name="cdcollectionID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">CollectionID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CollectnID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="albumtitle" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">AlbumTitle</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AlbumTitle</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="artist" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Artist</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Artist</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="musiccategoryID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">MusicCategoryID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MusicCatID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="recordlabel" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">RecordLabel</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">RecordLabl</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="producer" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Producer</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Producer</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="releaseyear" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">ReleaseYear</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ReleasYear</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="rating" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">Rating</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Rating</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="format" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">Format</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Format</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="numberoftracks" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">NumberofTracks</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">NoofTracks</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="datepurchased" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">DatePurchased</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DatePurch</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="purchasedat" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">PurchasedAt</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PurchaseAt</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="purchaseprice" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">PurchasePrice</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PurchPrice</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>17</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="review" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">Review</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Review</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="library" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Library</value></prop><node oor:name="Fields"><node oor:name="bookID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">BookID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">BookID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="title" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Title</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Title</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="topic" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Genre</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Genre</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="authorID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">AuthorID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AuthorID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="copyrightyear" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">CopyrightYear</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CpyrightYr</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="isbnnumber" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">ISBNNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ISBNNumber</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="publisher" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Publisher</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Publisher</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="rating" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">Rating</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Rating</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="translator" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">Translator</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Translator</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>100</value></prop></node><node oor:name="pages" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Pages</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Pages</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="datepurchased" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">DatePurchased</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DatePurch</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="purchasedat" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">PurchasedAt</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PurchaseAt</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="purchaseprice" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">PurchasePrice</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PurchPrice</value></prop><prop oor:name="Type"><value>3</value></prop><prop oor:name="Precision"><value>17</value></prop><prop oor:name="Scale"><value>2</value></prop></node><node oor:name="covertype" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">CoverType</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CoverType</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="editionnumber" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">EditionNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">EditionNo</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="authors" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">Authors</value></prop><node oor:name="Fields"><node oor:name="authorID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">AuthorID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AuthorID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="firstname" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">FirstName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="lastname" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">LastName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LastName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="nationality" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Nationality</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Nationlity</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="birthdate" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Birthdate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Birthdate</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="birthplace" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Birthplace</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Birthplace</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="dateofdeath" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateofDeath</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DatofDeath</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="traininglocation" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">TrainingLocation</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TraininLoc</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="majorinfluences" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">MajorInfluences</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MajrInflue</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node><node oor:name="photo" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Photo</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Photo</value></prop><prop oor:name="Type"><value>-4</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="accounts" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">Accounts</value></prop><node oor:name="Fields"><node oor:name="accountID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">AccountID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AccountID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="accountnumber" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">AccountNumber</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AccountNo</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="accountname" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">AccountName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AcountName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="accounttypeID" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">AccountTypeID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AccTypeID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="accounttype" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">AccountType</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AccountTyp</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="description" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Description</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Descrption</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="investments" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">Investments</value></prop><node oor:name="Fields"><node oor:name="investmentID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">InvestmentID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">InvestmtID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="accountID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">AccountID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">AccountID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="securityname" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">SecurityName</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SecuriName</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="securitysymbol" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">SecuritySymbol</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SecuriSymb</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>20</value></prop></node><node oor:name="securitytype" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">SecurityType</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">SecuriType</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="sharesowned" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">SharesOwned</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ShareOwned</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="exerciselog" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">ExerciseLog</value></prop><node oor:name="Fields"><node oor:name="exerciselogID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">LogID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LogID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="personID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">PersonID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PersonID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="activity" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Activity</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Activity</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="workoutdate" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">WorkoutDate</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">WorkoutDat</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="exercisetype" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">ExerciseType</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">ExercisTyp</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="timeexercised" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">TimeExercised</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TimeExerci</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="distancetraveled" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">DistanceTraveled</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DistTravel</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="restingpulse" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">RestingPulse</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">RestngPuls</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="maximumpulse" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">MaximumPulse</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MaxPulse</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="caloriesburned" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">CaloriesBurned</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">CalsBurned</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="hourssleep" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">HoursSleep</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">HoursSleep</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node><node oor:name="dietlog" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">DietLog</value></prop><node oor:name="Fields"><node oor:name="dietlogID" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">LogID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">LogID</value></prop><prop oor:name="Type"><value>4</value></prop><prop oor:name="PrimaryKey"><value>true</value></prop></node><node oor:name="personID" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">PersonID</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">PersonID</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="dietype" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">DietType</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DietType</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="dateacquired" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">DateAcquired</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">DateAcquir</value></prop><prop oor:name="Type"><value>91</value></prop></node><node oor:name="whichmeal" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">WhichMeal</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">WhichMeal</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>50</value></prop></node><node oor:name="gramscarbohydrates" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">GramsCarbohydrates</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">GrCarbohyd</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="gramsprotein" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">GramsProtein</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">GrsProtein</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="gramsfat" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">GramsFat</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">GramsFat</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="totalcalories" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">TotalCalories</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">TotalCals</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="milligramssodium" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">MilligramsSodium</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">MilligrSod</value></prop><prop oor:name="Type"><value>4</value></prop></node><node oor:name="vitamins" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">Vitamins</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Vitamins</value></prop><prop oor:name="Type"><value>12</value></prop><prop oor:name="Precision"><value>250</value></prop></node><node oor:name="notes" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">Notes</value></prop><prop oor:name="ShortName"><value xml:lang="en-US">Notes</value></prop><prop oor:name="Type"><value>-1</value></prop><prop oor:name="Precision"><value>65000</value></prop></node></node></node></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="BaseWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/tableobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/queryobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Query</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/reportobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Report</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="BasicIDECommands" oor:package="org.openoffice.Office.UI"/><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="BasicIDEWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/macrobar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Macro</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/dialogbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Dialog</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/translationbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Language</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/insertcontrolsbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Toolbox</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/findbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Find</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="BibliographyCommands" oor:package="org.openoffice.Office.UI"><node oor:name="UserInterface"><node oor:name="Commands"><node oor:name=".uno:Bib/Mapping" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Column Arrangement...</value></prop></node><node oor:name=".uno:Bib/standardFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Filter...</value></prop></node><node oor:name=".uno:Bib/DeleteRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete ~Record</value></prop></node><node oor:name=".uno:Bib/InsertRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Record</value></prop></node><node oor:name=".uno:Bib/sdbsource" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Choose Data Source...</value></prop></node><node oor:name=".uno:Bib/source" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop></node><node oor:name=".uno:Bib/query" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Search Key</value></prop></node><node oor:name=".uno:Bib/autoFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoFilter</value></prop></node><node oor:name=".uno:Bib/removeFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Remove Filter</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="ChartCommands" oor:package="org.openoffice.Office.UI"><node oor:name="UserInterface"><node oor:name="Commands"><node oor:name=".uno:InsertMenuTitles" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Titles...</value></prop></node><node oor:name=".uno:InsertMenuLegend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Legend...</value></prop></node><node oor:name=".uno:InsertMenuAxes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Axes...</value></prop></node><node oor:name=".uno:InsertMenuGrids" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Grids...</value></prop></node><node oor:name=".uno:InsertMenuDataLabels" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Data Labels...</value></prop></node><node oor:name=".uno:InsertMenuTrendlines" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Tre~nd Lines...</value></prop></node><node oor:name=".uno:InsertMenuMeanValues" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Mean ~Value Lines</value></prop></node><node oor:name=".uno:InsertMenuYErrorBars" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Y Error ~Bars...</value></prop></node><node oor:name=".uno:FormatSelection" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Selection...</value></prop></node><node oor:name=".uno:Legend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Legend...</value></prop></node><node oor:name=".uno:DiagramWall" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chart ~Wall...</value></prop></node><node oor:name=".uno:DiagramFloor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chart ~Floor...</value></prop></node><node oor:name=".uno:DiagramArea" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chart ~Area...</value></prop></node><node oor:name=".uno:DiagramType" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chart T~ype...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DataRanges" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Data Ranges...</value></prop></node><node oor:name=".uno:DiagramData" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chart ~Data Table...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:View3D" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~3D View...</value></prop></node><node oor:name=".uno:Forward" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bring ~Forward</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Backward" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Send Back~ward</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:MainTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Main Title...</value></prop></node><node oor:name=".uno:SubTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Subtitle...</value></prop></node><node oor:name=".uno:XTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~X Axis Title...</value></prop></node><node oor:name=".uno:YTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Y Axis Title...</value></prop></node><node oor:name=".uno:ZTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Z Axis Title...</value></prop></node><node oor:name=".uno:SecondaryXTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">S~econdary X Axis Title...</value></prop></node><node oor:name=".uno:SecondaryYTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Se~condary Y Axis Title...</value></prop></node><node oor:name=".uno:AllTitles" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~All Titles...</value></prop></node><node oor:name=".uno:DiagramAxisX" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~X Axis...</value></prop></node><node oor:name=".uno:DiagramAxisY" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Y Axis...</value></prop></node><node oor:name=".uno:DiagramAxisZ" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Z Axis...</value></prop></node><node oor:name=".uno:DiagramAxisA" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Secondary X Axis...</value></prop></node><node oor:name=".uno:DiagramAxisB" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">S~econdary Y Axis...</value></prop></node><node oor:name=".uno:DiagramAxisAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~All Axes...</value></prop></node><node oor:name=".uno:DiagramGridXMain" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Y Axis Major Grid...</value></prop></node><node oor:name=".uno:DiagramGridYMain" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~X Axis Major Grid...</value></prop></node><node oor:name=".uno:DiagramGridZMain" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Z Axis Major Grid...</value></prop></node><node oor:name=".uno:DiagramGridXHelp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Y Axis Minor ~Grid...</value></prop></node><node oor:name=".uno:DiagramGridYHelp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">X Axis ~Minor Grid...</value></prop></node><node oor:name=".uno:DiagramGridZHelp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Z Ax~is Minor Grid...</value></prop></node><node oor:name=".uno:DiagramGridAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~All Grids...</value></prop></node><node oor:name=".uno:FormatWall" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Wall...</value></prop></node><node oor:name=".uno:FormatFloor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Floor...</value></prop></node><node oor:name=".uno:FormatChartArea" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Chart Area...</value></prop></node><node oor:name=".uno:InsertTitles" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Titles...</value></prop></node><node oor:name=".uno:FormatTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Title...</value></prop></node><node oor:name=".uno:InsertLegend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Legend</value></prop></node><node oor:name=".uno:DeleteLegend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Legend</value></prop></node><node oor:name=".uno:FormatLegend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Legend...</value></prop></node><node oor:name=".uno:InsertRemoveAxes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert/Delete Axes...</value></prop></node><node oor:name=".uno:InsertAxis" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Axis</value></prop></node><node oor:name=".uno:DeleteAxis" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Axis</value></prop></node><node oor:name=".uno:FormatAxis" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Axis...</value></prop></node><node oor:name=".uno:InsertAxisTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Axis Title</value></prop></node><node oor:name=".uno:InsertMajorGrid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Major Grid</value></prop></node><node oor:name=".uno:DeleteMajorGrid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Major Grid</value></prop></node><node oor:name=".uno:FormatMajorGrid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Major Grid...</value></prop></node><node oor:name=".uno:InsertMinorGrid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Minor Grid</value></prop></node><node oor:name=".uno:DeleteMinorGrid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Minor Grid</value></prop></node><node oor:name=".uno:FormatMinorGrid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Minor Grid...</value></prop></node><node oor:name=".uno:InsertTrendline" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Tre~nd Line...</value></prop></node><node oor:name=".uno:DeleteTrendline" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Tre~nd Line</value></prop></node><node oor:name=".uno:FormatTrendline" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Trend Line...</value></prop></node><node oor:name=".uno:InsertTrendlineEquation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Trend Line ~Equation</value></prop></node><node oor:name=".uno:InsertTrendlineEquationAndR2" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert R² and Trend Line Equation</value></prop></node><node oor:name=".uno:InsertR2Value" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert R²</value></prop></node><node oor:name=".uno:DeleteR2Value" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete R²</value></prop></node><node oor:name=".uno:DeleteTrendlineEquation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Trend Line ~Equation</value></prop></node><node oor:name=".uno:FormatTrendlineEquation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Trend Line Equation...</value></prop></node><node oor:name=".uno:InsertMeanValue" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Mean ~Value Line</value></prop></node><node oor:name=".uno:DeleteMeanValue" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Mean ~Value Line</value></prop></node><node oor:name=".uno:FormatMeanValue" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Mean Value Line...</value></prop></node><node oor:name=".uno:InsertYErrorBars" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Y Error ~Bars...</value></prop></node><node oor:name=".uno:DeleteYErrorBars" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Y Error ~Bars</value></prop></node><node oor:name=".uno:FormatYErrorBars" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Y Error Bars...</value></prop></node><node oor:name=".uno:InsertDataLabels" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Data Labels</value></prop></node><node oor:name=".uno:DeleteDataLabels" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Data Labels</value></prop></node><node oor:name=".uno:FormatDataLabels" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Data Labels...</value></prop></node><node oor:name=".uno:InsertDataLabel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Single Data Label</value></prop></node><node oor:name=".uno:DeleteDataLabel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Single Data Label</value></prop></node><node oor:name=".uno:FormatDataLabel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Single Data Label...</value></prop></node><node oor:name=".uno:FormatDataSeries" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Data Series...</value></prop></node><node oor:name=".uno:FormatDataPoint" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Data Point...</value></prop></node><node oor:name=".uno:ResetDataPoint" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reset Data Point</value></prop></node><node oor:name=".uno:ResetAllDataPoints" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reset all Data Points</value></prop></node><node oor:name=".uno:FormatStockLoss" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Stock Loss...</value></prop></node><node oor:name=".uno:FormatStockGain" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Stock Gain...</value></prop></node><node oor:name=".uno:ChartElementSelector" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Chart Element</value></prop></node><node oor:name=".uno:ToggleGridHorizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Horizontal Grid On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ScaleText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Scale Text</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NewArrangement" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Automatic Layout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Update" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Update Chart</value></prop></node><node oor:name=".uno:ToggleTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Title On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToggleLegend" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Legend On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToggleAxisDescr" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Show/Hide Axis Description(s)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToggleGridVertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical Grid On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DataInRows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Data in Rows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DataInColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Data in Columns</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToolSelect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Tool</value></prop></node><node oor:name=".uno:ContextType" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chart Type</value></prop></node><node oor:name=".uno:DataDescriptionType" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Caption Type for Chart Data</value></prop></node><node oor:name=".uno:LegendPosition" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Legend Position</value></prop></node><node oor:name=".uno:DefaultColors" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Default Colors for Data Series</value></prop></node><node oor:name=".uno:BarWidth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bar Width</value></prop></node><node oor:name=".uno:NumberOfLines" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number of lines in combination chart</value></prop></node><node oor:name=".uno:TextAttributes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Te~xt...</value></prop></node><node oor:name=".uno:ObjectTitleDescription" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Description...</value></prop></node><node oor:name=".uno:RenameObject" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Name...</value></prop></node><node oor:name=".uno:LineArrowEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Ends with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node></node><node oor:name="Popups"><node oor:name=".uno:ArrangeRow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arrange~ment</value></prop></node><node oor:name=".uno:ChartTitleMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Title</value></prop></node><node oor:name=".uno:DiagramAxisMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">A~xis</value></prop></node><node oor:name=".uno:DiagramGridMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Grid</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="ChartWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Formatting</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/basicshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/symbolshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/arrowshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/flowchartshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Flowchart</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/calloutshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/starshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Stars and Banners</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Controller" oor:package="org.openoffice.Office.UI"><node oor:name="Registered"><node oor:name="PopupMenu"><node oor:name="c1" oor:op="replace"><prop oor:name="Command"><value>.uno:CharFontName</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.FontMenuController</value></prop></node><node oor:name="c2" oor:op="replace"><prop oor:name="Command"><value>.uno:FontHeight</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.FontSizeMenuController</value></prop></node><node oor:name="c4" oor:op="replace"><prop oor:name="Command"><value>.uno:ObjectMenue</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.ObjectMenuController</value></prop></node><node oor:name="c5" oor:op="replace"><prop oor:name="Command"><value>.uno:InsertPageHeader</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.HeaderMenuController</value></prop></node><node oor:name="c6" oor:op="replace"><prop oor:name="Command"><value>.uno:InsertPageFooter</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.FooterMenuController</value></prop></node><node oor:name="c7" oor:op="replace"><prop oor:name="Command"><value>.uno:ChangeControlType</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.ControlMenuController</value></prop></node><node oor:name="c8" oor:op="replace"><prop oor:name="Command"><value>.uno:AvailableToolbars</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.ToolBarsMenuController</value></prop></node><node oor:name="c9" oor:op="replace"><prop oor:name="Command"><value>.uno:ScriptOrganizer</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.MacrosMenuController</value></prop></node><node oor:name="c10" oor:op="replace"><prop oor:name="Command"><value>.uno:RecentFileList</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.RecentFilesMenuController</value></prop></node><node oor:name="c11" oor:op="replace"><prop oor:name="Command"><value>.uno:AddDirect</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.NewMenuController</value></prop></node><node oor:name="c12" oor:op="replace"><prop oor:name="Command"><value>.uno:AutoPilotMenu</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.NewMenuController</value></prop></node><node oor:name="c13" oor:op="replace"><prop oor:name="Command"><value>.uno:SetLanguageSelectionMenu</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sum.star.comp.framework.LanguageSelectionMenuController</value></prop></node><node oor:name="c14" oor:op="replace"><prop oor:name="Command"><value>.uno:SetLanguageAllTextMenu</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sum.star.comp.framework.LanguageSelectionMenuController</value></prop></node><node oor:name="c15" oor:op="replace"><prop oor:name="Command"><value>.uno:SetLanguageParagraphMenu</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sum.star.comp.framework.LanguageSelectionMenuController</value></prop></node></node><node oor:name="ToolBar"><node oor:name="c1" oor:op="replace"><prop oor:name="Command"><value>.uno:DBNewForm</value></prop><prop oor:name="Module"><value>com.sun.star.sdb.OfficeDatabaseDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.sdb.ApplicationToolboxController</value></prop></node><node oor:name="c2" oor:op="replace"><prop oor:name="Command"><value>.uno:Refresh</value></prop><prop oor:name="Module"><value>com.sun.star.sdb.OfficeDatabaseDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.sdb.ApplicationToolboxController</value></prop></node><node oor:name="c13" oor:op="replace"><prop oor:name="Command"><value>.uno:FontHeight</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.svx.FontHeightToolBoxController</value></prop></node><node oor:name="AssignLayout" oor:op="replace"><prop oor:name="Command"><value>.uno:AssignLayout</value></prop><prop oor:name="Module"><value>com.sun.star.presentation.PresentationDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.comp.sd.SlideLayoutController</value></prop></node><node oor:name="InsertPage" oor:op="replace"><prop oor:name="Command"><value>.uno:InsertPage</value></prop><prop oor:name="Module"><value>com.sun.star.presentation.PresentationDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.comp.sd.InsertSlideController</value></prop></node><node oor:name="ExtrusionDirectionFloater" oor:op="replace"><prop oor:name="Command"><value>.uno:ExtrusionDirectionFloater</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.svx.ExtrusionDirectionController</value></prop></node><node oor:name="ExtrusionDepthController" oor:op="replace"><prop oor:name="Command"><value>.uno:ExtrusionDepthFloater</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.svx.ExtrusionDepthController</value></prop></node><node oor:name="ExtrusionLightingFloater" oor:op="replace"><prop oor:name="Command"><value>.uno:ExtrusionLightingFloater</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.svx.ExtrusionLightingController</value></prop></node><node oor:name="ExtrusionSurfaceFloater" oor:op="replace"><prop oor:name="Command"><value>.uno:ExtrusionSurfaceFloater</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.svx.ExtrusionSurfaceController</value></prop></node><node oor:name="FontworkAlignmentFloater" oor:op="replace"><prop oor:name="Command"><value>.uno:FontworkAlignmentFloater</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.svx.FontworkAlignmentController</value></prop></node><node oor:name="FontworkCharacterSpacingFloater" oor:op="replace"><prop oor:name="Command"><value>.uno:FontworkCharacterSpacingFloater</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.svx.FontworkCharacterSpacingController</value></prop></node><node oor:name="c3" oor:op="replace"><prop oor:name="Command"><value>.uno:ChartElementSelector</value></prop><prop oor:name="Module"><value>com.sun.star.chart2.ChartDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.comp.chart.ElementSelectorToolbarController</value></prop></node><node oor:name="com.sun.star.chart2.BasicShapesToolbarController" oor:op="replace"><prop oor:name="Command"><value>.uno:BasicShapes</value></prop><prop oor:name="Module"><value>com.sun.star.chart2.ChartDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.comp.chart2.ShapeToolbarController</value></prop></node><node oor:name="com.sun.star.chart2.SymbolShapesToolbarController" oor:op="replace"><prop oor:name="Command"><value>.uno:SymbolShapes</value></prop><prop oor:name="Module"><value>com.sun.star.chart2.ChartDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.comp.chart2.ShapeToolbarController</value></prop></node><node oor:name="com.sun.star.chart2.ArrowShapesToolbarController" oor:op="replace"><prop oor:name="Command"><value>.uno:ArrowShapes</value></prop><prop oor:name="Module"><value>com.sun.star.chart2.ChartDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.comp.chart2.ShapeToolbarController</value></prop></node><node oor:name="com.sun.star.chart2.FlowChartShapesToolbarController" oor:op="replace"><prop oor:name="Command"><value>.uno:FlowChartShapes</value></prop><prop oor:name="Module"><value>com.sun.star.chart2.ChartDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.comp.chart2.ShapeToolbarController</value></prop></node><node oor:name="com.sun.star.chart2.CalloutShapesToolbarController" oor:op="replace"><prop oor:name="Command"><value>.uno:CalloutShapes</value></prop><prop oor:name="Module"><value>com.sun.star.chart2.ChartDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.comp.chart2.ShapeToolbarController</value></prop></node><node oor:name="com.sun.star.chart2.StarShapesToolbarController" oor:op="replace"><prop oor:name="Command"><value>.uno:StarShapes</value></prop><prop oor:name="Module"><value>com.sun.star.chart2.ChartDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.comp.chart2.ShapeToolbarController</value></prop></node><node oor:name="com.sun.star.svx.FindTextToolboxController" oor:op="replace"><prop oor:name="Command"><value>.uno:FindText</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.svx.FindTextToolboxController</value></prop></node><node oor:name="com.sun.star.svx.DownSearchToolboxController" oor:op="replace"><prop oor:name="Command"><value>.uno:DownSearch</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.svx.DownSearchToolboxController</value></prop></node><node oor:name="com.sun.star.svx.UpSearchToolboxController" oor:op="replace"><prop oor:name="Command"><value>.uno:UpSearch</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.svx.UpSearchToolboxController</value></prop></node></node><node oor:name="StatusBar"><node oor:name="c1" oor:op="replace"><prop oor:name="Command"><value>.uno:DBStatusType</value></prop><prop oor:name="Module"><value>com.sun.star.sdb.OfficeDatabaseDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.sdb.ApplicationStatusbarController</value></prop></node><node oor:name="c2" oor:op="replace"><prop oor:name="Command"><value>.uno:DBStatusDBName</value></prop><prop oor:name="Module"><value>com.sun.star.sdb.OfficeDatabaseDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.sdb.ApplicationStatusbarController</value></prop></node><node oor:name="c3" oor:op="replace"><prop oor:name="Command"><value>.uno:DBStatusUserName</value></prop><prop oor:name="Module"><value>com.sun.star.sdb.OfficeDatabaseDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.sdb.ApplicationStatusbarController</value></prop></node><node oor:name="c4" oor:op="replace"><prop oor:name="Command"><value>.uno:DBStatusHostName</value></prop><prop oor:name="Module"><value>com.sun.star.sdb.OfficeDatabaseDocument</value></prop><prop oor:name="Controller"><value>com.sun.star.sdb.ApplicationStatusbarController</value></prop></node><node oor:name="c5" oor:op="replace"><prop oor:name="Command"><value>.uno:StatusbarLogo</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.LogoImageStatusbarController</value></prop></node><node oor:name="c6" oor:op="replace"><prop oor:name="Command"><value>.uno:StatusbarLogoText</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.LogoTextStatusbarController</value></prop></node><node oor:name="c7" oor:op="replace"><prop oor:name="Command"><value>.uno:LanguageStatus</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="Controller"><value>com.sun.star.comp.framework.LangSelectionStatusbarController</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="DbBrowserWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table Data</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="DbQueryWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/designobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Design</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/sqlobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">SQL</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Query Design</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="DbRelationWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="DbTableDataWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table Data</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="DbTableWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="DbuCommands" oor:package="org.openoffice.Office.UI"><node oor:name="UserInterface"><node oor:name="Commands"><node oor:name=".uno:DBClearQuery" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Clear Query</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBAddRelation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">New Relation...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBAddTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Add Tables...</value></prop></node><node oor:name=".uno:DBIndexDesign" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Index Design...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBChangeDesignMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Switch Design View On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBViewFunctions" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Functions</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBViewAliases" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Alias</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBViewTableNames" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table name</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBDistinctValues" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Distinct Values</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PasteSpecial" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Paste ~Special...</value></prop></node><node oor:name=".uno:DBDelete" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete</value></prop></node><node oor:name=".uno:DBRename" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rename...</value></prop></node><node oor:name=".uno:DBEdit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit...</value></prop></node><node oor:name=".uno:DBEditSqlView" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit in SQL View...</value></prop></node><node oor:name=".uno:DBOpen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Open Database Object...</value></prop></node><node oor:name=".uno:DBTableDelete" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBTableRename" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rename...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBTableEdit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBTableOpen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Open Database Object...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBQueryDelete" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBQueryRename" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rename...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBQueryEdit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBQueryOpen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Open Database Object...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBFormDelete" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBFormRename" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rename...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBFormEdit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBFormOpen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Open Database Object...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBReportDelete" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBReportRename" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rename...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBReportEdit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBReportOpen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Open Database Object...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBConvertToView" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Create as View</value></prop></node><node oor:name=".uno:DBNewFormAutoPilot" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Form Wizard...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBNewTableAutoPilot" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table Wizard...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBNewQueryAutoPilot" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Query Wizard...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBNewFormAutoPilotWithPreSelection" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Form Wizard...</value></prop></node><node oor:name=".uno:DBNewReportAutoPilot" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Report Wizard...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBNewReportAutoPilotWithPreSelection" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Report Wizard...</value></prop></node><node oor:name=".uno:DBSelectAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select All</value></prop></node><node oor:name=".uno:DBDSProperties" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Properties...</value></prop></node><node oor:name=".uno:DBDSConnectionType" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Connection Type...</value></prop></node><node oor:name=".uno:DBDSAdvancedSettings" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Advanced Settings...</value></prop></node><node oor:name=".uno:DBViewTables" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Tables</value></prop></node><node oor:name=".uno:DBViewQueries" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Queries</value></prop></node><node oor:name=".uno:DBViewForms" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Forms</value></prop></node><node oor:name=".uno:DBViewReports" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reports</value></prop></node><node oor:name=".uno:DBSortAscending" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ascending</value></prop></node><node oor:name=".uno:DBSortDescending" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Descending</value></prop></node><node oor:name=".uno:DBDisablePreview" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">None</value></prop></node><node oor:name=".uno:DBShowDocInfoPreview" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Document Information</value></prop></node><node oor:name=".uno:DBShowDocPreview" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Document</value></prop></node><node oor:name=".uno:DBNewForm" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Form...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBNewQuery" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Query (Design View)...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBNewQuerySql" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Query (SQL View)...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBNewTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table Design...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBNewView" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">View Design...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBNewViewSQL" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">View (Simple)...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBNewFolder" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Folder...</value></prop></node><node oor:name=".uno:DBRelationDesign" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Relationships...</value></prop></node><node oor:name=".uno:DBUserAdmin" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">User Administration...</value></prop></node><node oor:name=".uno:DBTableFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table Filter...</value></prop></node><node oor:name=".uno:DBRefreshTables" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Refresh Tables</value></prop></node><node oor:name=".uno:DBDirectSQL" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">SQL...</value></prop></node><node oor:name=".uno:DBMigrateScripts" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Migrate Macros ...</value></prop></node><node oor:name=".uno:DSBEditDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit Data</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DSBFormLetter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Mail Merge...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DSBInsertColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Data to Text...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DSBInsertContent" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Data to Fields</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DSBDocumentDataSource" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Data Source of Current Document</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DBSendReportAsMail" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Report As E-Mail...</value></prop></node><node oor:name=".uno:DBSendReportToWriter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Report to Text Document...</value></prop></node><node oor:name=".uno:FormSlots/deleteRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete ~Record</value></prop></node><node oor:name=".uno:FormSlots/insertRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Record</value></prop></node><node oor:name=".uno:DBQueryPreview" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Preview</value></prop></node><node oor:name=".uno:DBNewReport" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Report...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node></node><node oor:name="Popups"><node oor:name=".uno:DBDatabasePropertiesMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Database</value></prop></node><node oor:name=".uno:DBDatabaseObjectsMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Database Objects</value></prop></node><node oor:name=".uno:DBSort" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sort</value></prop></node><node oor:name=".uno:DBPreview" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Preview</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="DrawImpressCommands" oor:package="org.openoffice.Office.UI"><node oor:name="UserInterface"><node oor:name="Commands"><node oor:name=".uno:Polygon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Polygon, filled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ColorView" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Black &amp; White View</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RenamePage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rename Slide</value></prop></node><node oor:name=".uno:RenameLayer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Rename</value></prop></node><node oor:name=".uno:Presentation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Slide Show</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RehearseTimings" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Rehearse Timings</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Dia" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">SlideTransition</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ShowSlide" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sho~w Slide</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HideSlide" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hide Slide</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TextAttributes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Te~xt...</value></prop></node><node oor:name=".uno:PagesPerRow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Slides Per Row</value></prop></node><node oor:name=".uno:TextFitToSizeTool" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fit Text to Frame</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:VerticalTextFitToSizeTool" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fit Vertical Text to Frame</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Objects3DToolbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">3D Objects</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Cube" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cube</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Sphere" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sphere</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Cylinder" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cylinder</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Cone" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cone</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Cyramid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pyramid</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueEditMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Glue Points</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueInsertPoint" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Glue Point</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GluePercent" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Glue Point Relative</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueEscapeDirection" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exit Direction</value></prop></node><node oor:name=".uno:GlueHorzAlignCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Glue Point Horizontal Center</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueHorzAlignLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Glue Point Horizontal Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueHorzAlignRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Glue Point Horizontal Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueVertAlignCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Glue Point Vertical Center</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueVertAlignTop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Glue Point Vertical Top</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueVertAlignBottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Glue Point Vertical Bottom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Shell3D" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Shell</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Torus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Torus</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HalfSphere" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Half-Sphere</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueEscapeDirectionLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exit Direction Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueEscapeDirectionRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exit Direction Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueEscapeDirectionTop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exit Direction Top</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GlueEscapeDirectionBottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exit Direction Bottom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertToolbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Morphing" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cross-fading...</value></prop></node><node oor:name=".uno:MeasureAttributes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Dimen~sions...</value></prop></node><node oor:name=".uno:GridFront" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Grid to ~Front</value></prop></node><node oor:name=".uno:HelplinesVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Display Snap Lines</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HelplinesFront" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Snap Lines to ~Front</value></prop></node><node oor:name=".uno:BeforeObject" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">In Front of ~Object</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PreviewWindow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pre~view</value></prop></node><node oor:name=".uno:CustomAnimation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Custom Animation...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CustomAnimationSchemes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Animation Schemes...</value></prop></node><node oor:name=".uno:SlideChangeWindow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Slide Transition...</value></prop></node><node oor:name=".uno:ConnectorAttributes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Connector...</value></prop></node><node oor:name=".uno:PresentationDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">S~lide Show Settings...</value></prop></node><node oor:name=".uno:Hyphenation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hyphenation</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NewRouting" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reset Routing</value></prop></node><node oor:name=".uno:DuplicatePage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">D~uplicate Slide</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExpandPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E~xpand Slide</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SummaryPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Su~mmary Slide</value></prop></node><node oor:name=".uno:LeaveAllGroups" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exit All Groups</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ParaspaceIncrease" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Increase Spacing</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ParaspaceDecrease" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Decrease Spacing</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SlideMasterPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Slide Master</value></prop></node><node oor:name=".uno:HandoutMasterPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Handout Master</value></prop></node><node oor:name=".uno:NotesMasterPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Notes Master</value></prop></node><node oor:name=".uno:TitleMasterPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Title Slide Master</value></prop></node><node oor:name=".uno:InsertPageQuick" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Slide Direct</value></prop></node><node oor:name=".uno:InsertDateFieldVar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Dat~e (variable)</value></prop></node><node oor:name=".uno:InsertDateFieldFix" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Date (fixed)</value></prop></node><node oor:name=".uno:InsertTimeFieldVar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">T~ime (variable)</value></prop></node><node oor:name=".uno:InsertTimeFieldFix" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Time (fixed)</value></prop></node><node oor:name=".uno:InsertPageField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Page Number</value></prop></node><node oor:name=".uno:InsertPagesField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page ~Count</value></prop></node><node oor:name=".uno:ModifyField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">F~ields...</value></prop></node><node oor:name=".uno:InsertFileField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~File Name</value></prop></node><node oor:name=".uno:InsertAuthorField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Author</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CustomShowDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Custom Slide Show...</value></prop></node><node oor:name=".uno:OutputQualityColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Color</value></prop></node><node oor:name=".uno:OutputQualityGrayscale" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Grayscale</value></prop></node><node oor:name=".uno:OutputQualityBlackWhite" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Black and White</value></prop></node><node oor:name=".uno:PreviewQualityColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Color</value></prop></node><node oor:name=".uno:PreviewQualityGrayscale" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Grayscale</value></prop></node><node oor:name=".uno:PreviewQualityBlackWhite" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Black and White</value></prop></node><node oor:name=".uno:ConvertInto3D" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To 3~D</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConvertInto3DLatheFast" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To 3D ~Rotation Object</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConvertIntoBitmap" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To ~Bitmap</value></prop></node><node oor:name=".uno:ConvertIntoMetaFile" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To ~Metafile</value></prop></node><node oor:name=".uno:PackAndGo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pack</value></prop></node><node oor:name=".uno:convert_to_contour" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To C~ontour</value></prop></node><node oor:name=".uno:EditHyperlink" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">H~yperlink...</value></prop></node><node oor:name=".uno:PageSetup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Page...</value></prop></node><node oor:name=".uno:PasteSpecial" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Paste ~Special...</value></prop></node><node oor:name=".uno:CopyObjects" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Duplicat~e...</value></prop></node><node oor:name=".uno:ManageLinks" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Lin~ks...</value></prop></node><node oor:name=".uno:ConvertInto3DLathe" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">In 3D Rotation Object</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DrawingMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Drawing View</value></prop></node><node oor:name=".uno:OutlineMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Outline</value></prop></node><node oor:name=".uno:OutputQualityContrast" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~High Contrast</value></prop></node><node oor:name=".uno:DiaMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sli~de Sorter</value></prop></node><node oor:name=".uno:PreviewQualityContrast" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~High Contrast</value></prop></node><node oor:name=".uno:InsertPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Slid~e</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ImportFromFile" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~File...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomPanning" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Shift</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PixelMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pixel Mode</value></prop></node><node oor:name=".uno:ObjectPosition" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arrange</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Combine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Comb~ine</value></prop></node><node oor:name=".uno:ObjectTitleDescription" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Description...</value></prop></node><node oor:name=".uno:NameGroup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Name...</value></prop></node><node oor:name=".uno:ConnectorToolbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Connector</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Forward" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bring ~Forward</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Backward" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Send Back~ward</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:MirrorVert" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Vertically</value></prop></node><node oor:name=".uno:MirrorHorz" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Horizontally</value></prop></node><node oor:name=".uno:ChangeBezier" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To ~Curve</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ChangePolygon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To ~Polygon</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CapturePoint" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Insert Snap Point/Line...</value></prop></node><node oor:name=".uno:ShowRuler" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Ruler</value></prop></node><node oor:name=".uno:InsertLayer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Layer...</value></prop></node><node oor:name=".uno:ModifyPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Slide ~Layout...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ModifyLayer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Layer...</value></prop></node><node oor:name=".uno:PageMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Normal</value></prop></node><node oor:name=".uno:LayerMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Layer</value></prop></node><node oor:name=".uno:MeasureLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Dimension Line</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:MasterPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Master</value></prop></node><node oor:name=".uno:DiaEffect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Slide Effects</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DiaSpeed" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Transition Speed</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DiaAuto" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoTransition</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DiaTime" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Time</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Connector" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Connector</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ActionMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Allow Interaction</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AnimationObjects" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Animated Image...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AnimationEffects" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Interaction...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PresentationLayout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Slide D~esign...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AssignLayout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Slide Layout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NotesMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Notes ~Page</value></prop></node><node oor:name=".uno:HandoutMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">H~andout Page</value></prop></node><node oor:name=".uno:DeletePage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">D~elete Slide</value></prop></node><node oor:name=".uno:DeleteLayer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete</value></prop></node><node oor:name=".uno:Dismantle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Split</value></prop></node><node oor:name=".uno:PageStatus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Slide/Layer</value></prop></node><node oor:name=".uno:LayoutStatus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Layout</value></prop></node><node oor:name=".uno:CrookRotate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Set in Circle (perspective)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CrookSlant" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Set to circle (slant)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CrookStretch" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Set in Circle (distort)</value></prop></node><node oor:name=".uno:Connect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">C~onnect</value></prop></node><node oor:name=".uno:Break" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Break</value></prop></node><node oor:name=".uno:AdvancedMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Effects</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InteractiveTransparence" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Transparency</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InteractiveGradient" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Gradient</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Shear" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Distort</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BehindObject" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Be~hind Object</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ReverseOrder" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Reverse</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorArrowStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Connector Starts with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorArrowEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Connector Ends with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorArrows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Connector with Arrows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorCircleStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Connector Starts with Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorCircleEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Connector Ends with Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorCircles" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Connector with Circles</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TextToolbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Straight Connector</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RectangleToolbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rectangle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLineArrowStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Straight Connector starts with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EllipseToolbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ellipse</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLineArrowEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Straight Connector ends with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineToolbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curve</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLineArrows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Straight Connector with Arrows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLineCircleStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Straight Connector starts with Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLineCircleEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Straight Connector ends with Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLineCircles" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Straight Connector with Circles</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorCurve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curved Connector</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorCurveArrowStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curved Connector Starts with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorCurveArrowEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curved Connector Ends with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorCurveArrows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curved Connector with Arrows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorCurveCircleStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curved Connector Starts with Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorCurveCircleEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curved Connector Ends with Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorCurveCircles" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curved Connector with Circles</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLines" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Connector</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLinesArrowStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Connector Starts with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLinesArrowEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Connector Ends with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLinesArrows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Connector with Arrows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLinesCircleStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Connector Starts with Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLinesCircleEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Connector Ends with Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConnectorLinesCircles" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Connector with Circles</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicDraft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Picture Placeholders</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FillDraft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Contour Mode</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TextDraft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text Placeholders</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineDraft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Contour Only</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HandlesDraft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Simple Handles</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SolidCreate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Modify Object with Attributes</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HelplinesUse" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Snap to Snap Lines</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SnapBorder" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Snap to Page Margins</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SnapFrame" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Snap to Object Border</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SnapPoints" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Snap to Object Points</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:QuickEdit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Allow Quick Editing</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PickThrough" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Text Area Only</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConvertTo1BitThreshold" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">1 Bit Threshold</value></prop></node><node oor:name=".uno:ConvertTo1BitMatrix" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">1 Bit Dithered</value></prop></node><node oor:name=".uno:ConvertTo4BitGrays" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">4 Bit grayscales</value></prop></node><node oor:name=".uno:ConvertTo4BitColors" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">4 Bit color palette</value></prop></node><node oor:name=".uno:ConvertTo8BitGrays" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">8 Bit Grayscales</value></prop></node><node oor:name=".uno:ConvertTo8BitColors" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">8 Bit color palette</value></prop></node><node oor:name=".uno:ConvertToTrueColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">24 Bit True Color</value></prop></node><node oor:name=".uno:BigHandles" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Large Handles</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DoubleClickTextEdit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Double-click to edit Text</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ClickChangeRotation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rotation Mode after Clicking Object</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowsToolbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Lines and Arrows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineArrowStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Starts with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineArrowEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Ends with Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineArrows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line with Arrows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineArrowCircle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line with Arrow/Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineCircleArrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line with Circle/Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineArrowSquare" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line with Arrow/Square</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineSquareArrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line with Square/Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Mirror" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flip</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertMasterPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">New Master</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeleteMasterPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Master</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RenameMasterPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rename Master</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CloseMasterView" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Close Master View</value></prop></node><node oor:name=".uno:SendMailDocAsMS" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E-mail as ~Microsoft PowerPoint Presentation...</value></prop></node><node oor:name=".uno:SendMailDocAsOOo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E-mail as ~OpenDocument Presentation...</value></prop></node></node><node oor:name="Popups"><node oor:name=".uno:ModifyMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Modify</value></prop></node><node oor:name=".uno:WorkspaceMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wor~kspace</value></prop></node><node oor:name=".uno:MirrorMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Flip</value></prop></node><node oor:name=".uno:PreviewDisplayQualityMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pre~view Mode</value></prop></node><node oor:name=".uno:LayerMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">La~yer</value></prop></node><node oor:name=".uno:GridMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Gr~id</value></prop></node><node oor:name=".uno:ConvertMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Convert</value></prop></node><node oor:name=".uno:ArrangeMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Arrange</value></prop></node><node oor:name=".uno:DisplayQualityMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Color/Grayscale</value></prop></node><node oor:name=".uno:SlideShowMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Slide Show</value></prop></node><node oor:name=".uno:GroupMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Group</value></prop></node><node oor:name=".uno:SendMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sen~d</value></prop></node><node oor:name=".uno:TemplatesMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Styl~es</value></prop></node><node oor:name=".uno:SnapLinesMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Snap Lines</value></prop></node><node oor:name=".uno:MasterPageMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Master</value></prop></node><node oor:name=".uno:MasterLayoutsMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Master Lay~outs</value></prop></node><node oor:name=".uno:MasterLayouts" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Master ~Elements...</value></prop></node><node oor:name=".uno:MasterLayoutsNotes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Notes Master Layout...</value></prop></node><node oor:name=".uno:MasterLayoutsHandouts" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Handout Master Layout...</value></prop></node><node oor:name=".uno:HeaderAndFooter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Header and Footer...</value></prop></node><node oor:name=".uno:InsertPageNumber" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">P~age Number...</value></prop></node><node oor:name=".uno:InsertDateAndTime" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Date and ~Time...</value></prop></node><node oor:name=".uno:NormalMultiPaneGUI" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Normal</value></prop></node><node oor:name=".uno:SlideSorterMultiPaneGUI" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sli~de Sorter</value></prop></node><node oor:name=".uno:LeftPaneImpress" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">S~lide Pane</value></prop></node><node oor:name=".uno:LeftPaneDraw" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Page Pane</value></prop></node><node oor:name=".uno:RightPane" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Tas~k Pane</value></prop></node><node oor:name=".uno:MergeCells" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Merge Cells</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SplitCell" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Cells</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OptimizeTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Optimize</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DistributeColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Distribute Columns Evenly</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DistributeRows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Distribute Rows Equally </value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CellVertBottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bottom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CellVertCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Center ( vertical )</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CellVertTop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Top</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertRows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Row</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertRowDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Rows...</value></prop></node><node oor:name=".uno:InsertColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Column</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertColumnDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Columns...</value></prop></node><node oor:name=".uno:DeleteRows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Row</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Rows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeleteColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Column</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Columns</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SelectTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Table</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Table</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EntireColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Column</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Columns</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EntireRow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Rows</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Rows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TableDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ta~ble Properties...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AutoSum" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sum</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TableSort" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">So~rt...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Table...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Grow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Increase Font</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Shrink" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reduce Font</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertAnnotation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Comme~nt</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ShowAnnotations" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Comme~nts</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeleteAnnotation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Delete Comment</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeleteAllAnnotation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete ~All Comments</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NextAnnotation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Next Comment</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PreviousAnnotation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Previous Comment</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Factories" oor:package="org.openoffice.Office.UI"><node oor:name="Registered"><node oor:name="UIElementFactories"><node oor:name="generic_menubar_factory" oor:op="replace"><prop oor:name="Type"><value>menubar</value></prop><prop oor:name="Name"><value/></prop><prop oor:name="Module"><value/></prop><prop oor:name="FactoryImplementation"><value>com.sun.star.comp.framework.MenuBarFactory</value></prop></node><node oor:name="generic_toolbar_factory" oor:op="replace"><prop oor:name="Type"><value>toolbar</value></prop><prop oor:name="Name"><value/></prop><prop oor:name="Module"><value/></prop><prop oor:name="FactoryImplementation"><value>com.sun.star.comp.framework.ToolBarFactory</value></prop></node><node oor:name="addons_toolbar_factory" oor:op="replace"><prop oor:name="Type"><value>toolbar</value></prop><prop oor:name="Name"><value>addon_</value></prop><prop oor:name="Module"><value/></prop><prop oor:name="FactoryImplementation"><value>com.sun.star.comp.framework.AddonsToolBarFactory</value></prop></node><node oor:name="statusbar_factory" oor:op="replace"><prop oor:name="Type"><value>statusbar</value></prop><prop oor:name="Name"><value/></prop><prop oor:name="Module"><value/></prop><prop oor:name="FactoryImplementation"><value>com.sun.star.comp.framework.StatusBarFactory</value></prop></node><node oor:name="org.openoffice.Office.Impress.ImpressToolPanelFactory" oor:op="replace"><prop oor:name="Type"><value>toolpanel</value></prop><prop oor:name="Name"><value>DrawingFramework</value></prop><prop oor:name="Module"><value>com.sun.star.presentation.PresentationDocument</value></prop><prop oor:name="FactoryImplementation"><value>com.sun.star.drawing.DefaultToolPanelFactory</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="GenericCategories" oor:package="org.openoffice.Office.UI"><node oor:name="Commands"><node oor:name="Categories"><node oor:name="0" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Internal</value></prop></node><node oor:name="1" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Application</value></prop></node><node oor:name="2" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">View</value></prop></node><node oor:name="3" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Documents</value></prop></node><node oor:name="4" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Edit</value></prop></node><node oor:name="5" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">BASIC</value></prop></node><node oor:name="6" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Options</value></prop></node><node oor:name="7" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Math</value></prop></node><node oor:name="8" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Navigate</value></prop></node><node oor:name="9" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop></node><node oor:name="10" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Format</value></prop></node><node oor:name="11" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Templates</value></prop></node><node oor:name="12" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Text</value></prop></node><node oor:name="13" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Frame</value></prop></node><node oor:name="14" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Graphic</value></prop></node><node oor:name="15" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop></node><node oor:name="16" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Numbering</value></prop></node><node oor:name="17" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Data</value></prop></node><node oor:name="18" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Special Functions</value></prop></node><node oor:name="19" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Image</value></prop></node><node oor:name="20" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Chart</value></prop></node><node oor:name="21" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Explorer</value></prop></node><node oor:name="22" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Connector</value></prop></node><node oor:name="23" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Modify</value></prop></node><node oor:name="24" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Drawing</value></prop></node><node oor:name="25" oor:op="replace"><prop oor:name="Name" oor:type="xs:string"><value xml:lang="en-US">Controls</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="GenericCommands" oor:package="org.openoffice.Office.UI"><node oor:name="UserInterface"><node oor:name="Commands"><node oor:name=".uno:WebHtml" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Preview in Web Browser</value></prop></node><node oor:name=".uno:NewPresentation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">New Presentation</value></prop></node><node oor:name=".uno:FontworkGalleryFloater" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fontwork Gallery</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:FontworkShapeType" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fontwork Shape</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkSameLetterHeights" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fontwork Same Letter Heights</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkAlignmentFloater" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fontwork Alignment</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkCharacterSpacingFloater" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fontwork Character Spacing</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowcharts</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CalloutShapes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Stars</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.rectangle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rectangle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.round-rectangle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rectangle, Rounded</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.quadrat" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Square</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.round-quadrat" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Square, Rounded</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.circle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.ellipse" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ellipse</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.circle-pie" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle Pie</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.isosceles-triangle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Isosceles Triangle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.right-triangle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right Triangle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.trapezoid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Trapezoid</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.diamond" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diamond</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.parallelogram" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Parallelogram</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.pentagon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Regular Pentagon</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.hexagon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Hexagon</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.octagon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Octagon</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.cross" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cross</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.ring" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ring</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.block-arc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Block Arc</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.can" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cylinder</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.cube" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cube</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.paper" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Folded Corner</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicShapes.frame" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Frame</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.smiley" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Smiley Face</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.sun" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sun</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.moon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Moon</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.lightning" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Lightning Bolt</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.heart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Heart</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.flower" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flower</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.cloud" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cloud</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.forbidden" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">"Prohibited" Symbol</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.puzzle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Puzzle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.bracket-pair" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Double Bracket</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.left-bracket" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left Bracket</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.right-bracket" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right Bracket</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.brace-pair" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Double Brace</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.left-brace" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left Brace</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.right-brace" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right Brace</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.quad-bevel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Square Bevel</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.octagon-bevel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Octagon Bevel</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SymbolShapes.diamond-bevel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Diamond Bevel</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.left-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.right-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.up-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Up Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.down-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Down Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.left-right-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left and Right Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.up-down-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Up and Down Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.up-right-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Up and Right Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.up-right-down-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Up, Right and Down Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.quad-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">4-way Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.corner-right-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Corner Right Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.split-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.striped-right-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Striped Right Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.notched-right-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Notched Right Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.pentagon-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pentagon</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.chevron" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chevron</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.right-arrow-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right Arrow Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.left-arrow-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left Arrow Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.up-arrow-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Up Arrow Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.down-arrow-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Down Arrow Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.left-right-arrow-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left and Right Arrow Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.up-down-arrow-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Up and Down Arrow Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.up-right-arrow-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Up and Right Arrow Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.quad-arrow-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">4-way Arrow Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.circular-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circular Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.split-round-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right or Left Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ArrowShapes.s-sharped-arrow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">S-shaped Arrow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-process" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Process</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-alternate-process" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Alternate Process</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-decision" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Decision</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-data" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Data</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-predefined-process" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Predefined Process</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-internal-storage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Internal Storage</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-document" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Document</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-multidocument" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Multidocument</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-terminator" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Terminator</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-preparation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Preparation</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-manual-input" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Manual Input</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-manual-operation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Manual Operation</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-connector" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Connector</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-off-page-connector" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Off-page Connector</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-card" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Card</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-punched-tape" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Punched Tape</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-summing-junction" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Summing Junction</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-or" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Or</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-collate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Collate</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-sort" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Sort</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-extract" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Extract</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-merge" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Merge</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-stored-data" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Stored Data</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-delay" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Delay</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-sequential-access" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Sequential Access</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-magnetic-disk" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Magnetic Disc</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-direct-access-storage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Direct Access Storage</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FlowChartShapes.flowchart-display" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flowchart: Display</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CalloutShapes.rectangular-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rectangular Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CalloutShapes.round-rectangular-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rounded Rectangular Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CalloutShapes.round-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Round Callout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CalloutShapes.cloud-callout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cloud</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CalloutShapes.line-callout-1" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Callout 1</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CalloutShapes.line-callout-2" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Callout 2</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CalloutShapes.line-callout-3" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Callout 3</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.bang" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Explosion</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.star4" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">4-Point Star</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.star5" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">5-Point Star</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.star6" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">6-Point Star</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.star8" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">8-Point Star</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.star12" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">12-Point Star</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.star24" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">24-Point Star</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.concave-star6" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">6-Point Star, concave</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.vertical-scroll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical Scroll</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.horizontal-scroll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Horizontal Scroll</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.signet" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Signet</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StarShapes.doorplate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Doorplate</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-plain-text" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Plain Text</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-wave" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wave</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-inflate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Inflate</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-stop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Stop</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-curve-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curve Up</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-curve-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curve Down</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-triangle-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Triangle Up</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-triangle-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Triangle Down</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-fade-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-fade-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-fade-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade Up</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-fade-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade Down</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-slant-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Slant Up</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-slant-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Slant Down</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-fade-up-and-right" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade Up and Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-fade-up-and-left" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fade Up and Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-chevron-up" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chevron Up</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-chevron-down" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chevron Down</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-arch-up-curve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arch Up (Curve)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-arch-down-curve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arch Down (Curve)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-arch-left-curve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arch Left (Curve)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-arch-right-curve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arch Right (Curve)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-circle-curve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle (Curve)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-open-circle-curve" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Open Circle (Curve)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-arch-up-pour" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arch Up (Pour)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-arch-down-pour" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arch Down (Pour)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-arch-left-pour" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arch Left (Pour)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-arch-right-pour" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arch Right (Pour)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-circle-pour" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle (Pour)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontworkShapeType.fontwork-open-circle-pour" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Open Circle (Pour)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:UndoAction" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Undo</value></prop></node><node oor:name=".uno:ToggleControlFocus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Control Focus</value></prop></node><node oor:name=".uno:ScrollBar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Scrollbar</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Zoom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Zoom...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SpinButton" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spin Button</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ConvertToScrollBar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Scrollbar</value></prop></node><node oor:name=".uno:ConvertToSpinButton" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Spin Button</value></prop></node><node oor:name=".uno:ConvertToNavigationBar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Navigation Bar</value></prop></node><node oor:name=".uno:ToggleBreakPoint" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Breakpoint On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Text" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LaunchStarImage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Start Image Editor</value></prop></node><node oor:name=".uno:AddWatch" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Enable Watch</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CharFontName" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Font Name</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ChooseMacro" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Macro</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Italic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Italic</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Bold" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bold</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ModuleDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Module</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Shadowed" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Shadow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ObjectCatalog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Object Catalog</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OutlineFont" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Outline</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Strikeout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Strikethrough</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:HelpOnHelp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Help on Help</value></prop></node><node oor:name=".uno:Underline" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Underline</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Overline" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Overline</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:HelpIndex" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">%PRODUCTNAME ~Help</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontHeight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Font Size</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FindText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Find Text</value></prop></node><node oor:name=".uno:DownSearch" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Find Next</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:UpSearch" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Find Previous</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name="vnd.sun.star.findbar:FocusToFindbar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Find...</value></prop></node><node oor:name=".uno:ExtendedHelp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">What's ~This?</value></prop></node><node oor:name=".uno:ActiveHelp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Extended Tips</value></prop></node><node oor:name=".uno:Color" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Font Color</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HelpTip" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Tips</value></prop></node><node oor:name=".uno:MatchGroup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Find Parenthesis</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicIDEAppear" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit Macros</value></prop></node><node oor:name=".uno:LibSelector" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Current Library</value></prop></node><node oor:name=".uno:LeftPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>11</value></prop></node><node oor:name=".uno:RightPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>11</value></prop></node><node oor:name=".uno:CenterPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Centered</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>11</value></prop></node><node oor:name=".uno:SendFax" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Send Default Fax</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:JustifyPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Justified</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>15</value></prop></node><node oor:name=".uno:HelpChooseFile" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Choose Help File</value></prop></node><node oor:name=".uno:SpacePara1" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Spacing: 1</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>15</value></prop></node><node oor:name=".uno:SpacePara15" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Spacing : 1.5</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>15</value></prop></node><node oor:name=".uno:SpacePara2" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Spacing : 2</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>15</value></prop></node><node oor:name=".uno:StatusGetPosition" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Position</value></prop></node><node oor:name=".uno:StatusGetTitle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Current Basic Module</value></prop></node><node oor:name=".uno:ManageBreakPoints" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Manage Breakpoints</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TransformDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Position and Si~ze...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GrafLuminance" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Brightness</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GrafContrast" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Contrast</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomToolBox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GrafRed" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Red</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomPlus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom In</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GrafGreen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Green</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomIn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom Out</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomMinus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom Out</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GrafBlue" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Blue</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OptionsTreeDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Options...</value></prop></node><node oor:name=".uno:Zoom100Percent" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom 100%</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GrafGamma" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Gamma</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom Page</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GrafTransparence" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Transparency</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomOptimal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Optimal</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GrafInvert" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Invert</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Line" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GrafMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Graphics mode</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Line_Diagonal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line (45°)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Rect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rectangle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Rect_Rounded" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rectangle, Rounded</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Ellipse" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ellipse</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BibliographyComponent" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Bibliography Database</value></prop></node><node oor:name=".uno:Pie" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ellipse Pie</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BezierEliminatePoints" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Eliminate Points</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DatasourceAdministration" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Data Sources...</value></prop></node><node oor:name=".uno:GrafAttrCrop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Crop Picture...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Crop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Crop Picture</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NewDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">New Document From Template</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Arc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arc</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Open" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Open...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CircleCut" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle Segment</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SaveAs" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Save ~As...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CloseDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Close</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Print" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Print...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BezierFill" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curve, Filled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Save" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Save</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BezierInsert" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Points</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BezierDelete" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Points</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BezierMove" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Points</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Reload" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reload</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BezierClose" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Close Bézier</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PrintDefault" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Print File Directly</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BezierSmooth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Smooth Transition</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToggleObjectBezierMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Poi~nts</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertAnnotation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Comme~nt</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BezierCutLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Curve</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SelectObject" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToggleObjectRotateMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Rotate</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ObjectAlignLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Centered</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ObjectAlignRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignUp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Top</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignMiddle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">C~enter</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignDown" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Bottom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:VerticalText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical Text</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:VerticalCaption" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical Callouts</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TextdirectionLeftToRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text direction from left to right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TextdirectionTopToBottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text direction from top to bottom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertObjectChart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Chart...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DefaultBullet" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bullets On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>15</value></prop></node><node oor:name=".uno:FormatArea" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">A~rea...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FormatLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">L~ine...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LanguageStatus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Language Status</value></prop></node><node oor:name=".uno:ChooseControls" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Controls</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ChangeCaseToSentenceCase" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Sentence case</value></prop></node><node oor:name=".uno:ChangeCaseToLower" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~lowercase</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ChangeCaseToUpper" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~UPPERCASE</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ChangeCaseToTitleCase" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Capitalize Every Word</value></prop></node><node oor:name=".uno:ChangeCaseToToggleCase" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~tOGGLE cASE</value></prop></node><node oor:name=".uno:ChangeCaseRotateCase" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rotate case (Title Case, UPPERCASE, lowercase)</value></prop></node><node oor:name=".uno:ChangeCaseToHalfWidth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">H~alf-width</value></prop></node><node oor:name=".uno:InsertDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~File...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertPushbutton" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Button</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ChangeCaseToFullWidth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Full-width</value></prop></node><node oor:name=".uno:DefaultNumbering" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Numbering On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>15</value></prop></node><node oor:name=".uno:BezierConvert" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Convert to Curve</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Stop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Stop Loading</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Radiobutton" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Option Button</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ChangeCaseToHiragana" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hiragana</value></prop></node><node oor:name=".uno:BezierEdge" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Corner Point</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Checkbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Check Box</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ChangeCaseToKatakana" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Katakana</value></prop></node><node oor:name=".uno:SetDocumentProperties" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Propert~ies...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BezierSymmetric" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Symmetric Transition</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OutlineUp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Up</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AddDirect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~New</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OutlineDown" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Down</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SaveAsTemplate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Save...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OutlineLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Promote</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DesignerDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">St~yles and Formatting</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OutlineRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Demote</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Organizer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Organize...</value></prop></node><node oor:name=".uno:OutlineFormat" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Formatting On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OutlineCollapseAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">First Level</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OutlineBullet" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Bullets and Numbering...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:EditDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit File</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:InsertImageControl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Image Control</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BrowseView" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Web Layout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ProgressBar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Progress Bar</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PlugInsActive" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Plug-in</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HFixedLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Horizontal Line</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FileDocument" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">File Document</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:VFixedLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical Line</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ChoosePolygon" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Symbol Selection</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ShowBrowser" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Display Properties</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FillStyle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Area Style / Filling</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AutoPilotAddressDataSource" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoPilot: Address Data Source</value></prop></node><node oor:name=".uno:FillColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fill Color</value></prop></node><node oor:name=".uno:StyleApply" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Apply Style</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AddDateField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Date Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertTimeField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Time Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:StyleNewByExample" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">New Style from Selection</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:XLineStyle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Style</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertNumericField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Numeric Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StyleUpdateByExample" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Update Style</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineDash" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Dash/Dot</value></prop></node><node oor:name=".uno:InsertCurrencyField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Currency Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineWidth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Width</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertFormattedField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Formatted Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:XLineColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Color</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertPatternField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pattern Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertFileControl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">File Selection</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertTreeControl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Tree Control</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ShowPropBrowser" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Properties</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertObject" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~OLE Object...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertObjectFloatingFrame" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Float~ing Frame</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EnterGroup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Enter Group</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LeaveGroup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E~xit group</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HideDetail" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hide Details</value></prop></node><node oor:name=".uno:ZoomPageWidth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom Page Width</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ShowDetail" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Show Details</value></prop></node><node oor:name=".uno:ZoomObjects" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Object Zoom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ParaLeftToRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left-To-Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>11</value></prop></node><node oor:name=".uno:Group" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Group...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ParaRightToLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right-To-Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>11</value></prop></node><node oor:name=".uno:Ungroup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Ungroup...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BackgroundColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Background Color</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BackgroundPatternController" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Background Pattern</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OpenHyperlinkOnCursor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Open Hyperlink</value></prop></node><node oor:name=".uno:OpenSmartTagMenuOnCursor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Open Smart Tag Menu</value></prop></node><node oor:name=".uno:StyleCatalog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Catalog...</value></prop></node><node oor:name=".uno:InsertImage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert from Image Editor</value></prop></node><node oor:name=".uno:SetBorderStyle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Borders</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertMath" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Formula...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertFixedText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Label field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ObjectMenue" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ob~ject</value></prop></node><node oor:name=".uno:Groupbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Group Box</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OpenXMLFilterSettings" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~XML Filter Settings...</value></prop></node><node oor:name=".uno:InsertEdit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text Box</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HangulHanjaConversion" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Hangul/Hanja Conversion...</value></prop></node><node oor:name=".uno:ChineseConversion" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chinese Conversion...</value></prop></node><node oor:name=".uno:InsertListbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">List Box</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Combobox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Combo Box</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Spinbutton" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spin Button</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HScrollbar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Horizontal Scroll Bar</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:VScrollbar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical Scroll Bar</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Preview" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Preview</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:URLButton" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">URL Button</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ModifiedStatus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Document Modified</value></prop></node><node oor:name=".uno:SelectMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:IsLoading" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Load Document</value></prop></node><node oor:name=".uno:TestMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Test Mode On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LineStyle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Style</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FrameLineColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Line Color (of the border)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OpenTemplate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Edit...</value></prop></node><node oor:name=".uno:OpenUrl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Load URL</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertSpreadsheet" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sp~readsheet</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Mode</value></prop></node><node oor:name=".uno:Size" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Size</value></prop></node><node oor:name=".uno:StateTableCell" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cell</value></prop></node><node oor:name=".uno:AutoPilotMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Wizards</value></prop></node><node oor:name=".uno:OutlineCollapse" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Hide Subpoints</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OutlineExpandAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">All Levels</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OutlineExpand" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Show Subpoints</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NewWindow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~New Window</value></prop></node><node oor:name=".uno:ClearOutline" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Remove</value></prop></node><node oor:name=".uno:HelplinesMove" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Helplines While Moving</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:CloseWin" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Close Window</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GridUse" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Snap to Grid</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:InsertTextFrame" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Text Frame</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FullScreen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">F~ull Screen</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertGraphic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~From File...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AutoFormat" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Auto~Format...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TableDesign" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table Design...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SpellingDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Spelling...</value></prop></node><node oor:name=".uno:RecheckDocument" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Recheck Document...</value></prop></node><node oor:name=".uno:SpellingAndGrammarDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Spelling and Grammar...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SpellDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Spelling...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertDraw" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Show Draw Functions</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NewFrameSet" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">New FrameSet</value></prop></node><node oor:name=".uno:ThesaurusDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Thesaurus...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DrawText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DrawCaption" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FontWork" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">F~ontwork</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SaveAsUrl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Save Document As URL</value></prop></node><node oor:name=".uno:ObjectForwardOne" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Forward One</value></prop></node><node oor:name=".uno:ObjectBackOne" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Back One</value></prop></node><node oor:name=".uno:EditFrameSet" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit FrameSet</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SplitHorizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Frame Horizontally</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SplitVertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Frame Vertically</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SplitParentHorizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split FrameSet Horizontally</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SplitParentVertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split FrameSet Vertically</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ModifyFrame" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Frame Properties</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeleteFrame" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Frame</value></prop></node><node oor:name=".uno:SetObjectToBackground" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Background</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SetObjectToForeground" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Foreground</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertLabels" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Labels</value></prop></node><node oor:name=".uno:InsertBusinessCard" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert business cards</value></prop></node><node oor:name=".uno:InsertPlugin" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Plug-in...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BringToFront" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Bring to Front</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SendToBack" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Send to Back</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SourceView" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">HT~ML Source</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:InsertSound" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Sound...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertVideo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Video...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:HyperlinkDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hyperlink</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Merge" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Merge</value></prop></node><node oor:name=".uno:Substract" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Subtract</value></prop></node><node oor:name=".uno:SuperScript" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Superscript</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Intersect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">I~ntersect</value></prop></node><node oor:name=".uno:SubScript" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Subscript</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:FontDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">C~haracter...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DistributeSelection" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Distribution...</value></prop></node><node oor:name=".uno:ParagraphDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">P~aragraph...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FillShadow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Shadow</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:LineEndStyle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Arrow Style</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Redo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Redo</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Undo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Undo</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FormatPaintbrush" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Format Paintbrush</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Repeat" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Repeat</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ClearHistory" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete History</value></prop></node><node oor:name=".uno:Cut" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cu~t</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Copy" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Copy</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Paste" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Paste</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Delete" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete C~ontents...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TwainSelect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Select Source...</value></prop></node><node oor:name=".uno:TwainTransfer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Request...</value></prop></node><node oor:name=".uno:Select" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select ~All</value></prop></node><node oor:name=".uno:ContourDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Edit Contour...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:SelectAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select ~All</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoDown" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Down</value></prop></node><node oor:name=".uno:GoUp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Up</value></prop></node><node oor:name=".uno:GoLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Left</value></prop></node><node oor:name=".uno:GoRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Right</value></prop></node><node oor:name=".uno:GoDownBlock" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Down</value></prop></node><node oor:name=".uno:GoUpBlock" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Up</value></prop></node><node oor:name=".uno:BmpMask" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Color ~Replacer</value></prop></node><node oor:name=".uno:GoLeftBlock" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Left</value></prop></node><node oor:name=".uno:FrameSpacing" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">FrameSet Spacing</value></prop></node><node oor:name=".uno:GoToEndOfData" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To File End</value></prop></node><node oor:name=".uno:GoToStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To File Begin</value></prop></node><node oor:name=".uno:GoToStartOfRow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Document Begin</value></prop></node><node oor:name=".uno:GoToEndOfRow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Document End</value></prop></node><node oor:name=".uno:Navigator" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Na~vigator</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:TaskPane" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Task Pane</value></prop></node><node oor:name=".uno:RestoreEditingView" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Restore Editing View</value></prop></node><node oor:name=".uno:BasicBreak" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Interrupt Macro</value></prop></node><node oor:name=".uno:TextFitToSize" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fit to Frame</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:ImageMapDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">ImageMap</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:GoDownSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Down</value></prop></node><node oor:name=".uno:GoUpSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Up</value></prop></node><node oor:name=".uno:GoLeftSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Left</value></prop></node><node oor:name=".uno:GoRightSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Right</value></prop></node><node oor:name=".uno:GoDownBlockSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Page Down</value></prop></node><node oor:name=".uno:GoUpBlockSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Page Up</value></prop></node><node oor:name=".uno:Rect_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rectangle, Unfilled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Rect_Rounded_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rounded Rectangle, Unfilled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoLeftBlockSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Page Left</value></prop></node><node oor:name=".uno:Square" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Square</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Square_Rounded" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rounded Square</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoToStartSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to File Begin</value></prop></node><node oor:name=".uno:Square_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Square, Unfilled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Square_Rounded_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Rounded Square, Unfilled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoToEndOfDataSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to File End</value></prop></node><node oor:name=".uno:Ellipse_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ellipse, Unfilled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoToStartOfRowSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Document Begin</value></prop></node><node oor:name=".uno:Circle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoToEndOfRowSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Document End</value></prop></node><node oor:name=".uno:Circle_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle, Unfilled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Pie_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ellipse Pie, Unfilled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CirclePie" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle Pie</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CirclePie_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle Pie, Unfilled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CircleArc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle Arc</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CircleCut_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Circle Segment, Unfilled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EllipseCut" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ellipse Segment</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EllipseCut_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ellipse Segment, unfilled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Polygon_Diagonal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Polygon (45°), Filled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Polygon_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Polygon</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Polygon_Diagonal_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Polygon (45°)</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Bezier_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Curve</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomNext" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom Next</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomPrevious" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom Previous</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GridVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Display Grid</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Flash" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flash</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:ToolsMacroEdit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit Macros</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InternetDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Internet Options</value></prop></node><node oor:name=".uno:ColorControl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Color Bar</value></prop></node><node oor:name=".uno:AutoCorrectDlg" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~AutoCorrect Options...</value></prop></node><node oor:name=".uno:AutoPilotPresentations" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoPilot: Presentation</value></prop></node><node oor:name=".uno:AutoPilotAgenda" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoPilot: Agenda</value></prop></node><node oor:name=".uno:AutoPilotFax" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoPilot: Fax</value></prop></node><node oor:name=".uno:AutoPilotLetter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoPilot: Letter</value></prop></node><node oor:name=".uno:VersionDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Versions...</value></prop></node><node oor:name=".uno:AutoPilotMemo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoPilot: Memo</value></prop></node><node oor:name=".uno:CompareDocuments" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Co~mpare Document...</value></prop></node><node oor:name=".uno:MergeDocuments" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Merge Documen~t...</value></prop></node><node oor:name=".uno:SwEditOptions" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text Document Options</value></prop></node><node oor:name=".uno:SdEditOptions" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Presentation Options</value></prop></node><node oor:name=".uno:ScEditOptions" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Spreadsheet Options</value></prop></node><node oor:name=".uno:SmEditOptions" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Formula Options</value></prop></node><node oor:name=".uno:SchEditOptions" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chart Options</value></prop></node><node oor:name=".uno:SimEditOptions" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Image Options</value></prop></node><node oor:name=".uno:FrameName" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Name</value></prop></node><node oor:name=".uno:FrameContent" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Contents</value></prop></node><node oor:name=".uno:GetColorTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Color Palette</value></prop></node><node oor:name=".uno:ExportTo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Expor~t...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SdGraphicOptions" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Presentation Graphic Options</value></prop></node><node oor:name=".uno:NavigationBarVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Navigation Bar Visible</value></prop></node><node oor:name=".uno:FormatGroup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Group</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FormatUngroup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Ungroup</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SetDefault" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Default Formatting</value></prop></node><node oor:name=".uno:DecrementIndent" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Decrease Indent</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:IncrementIndent" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Increase Indent</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:Freeline" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Freeform Line, Filled</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Freeline_Unfilled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Freeform Line</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Text_Marquee" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text Animation</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterToolbox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Filter</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterInvert" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Invert</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterSmooth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Smooth</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterSharpen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sharpen</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterRemoveNoise" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Remove Noise</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterSobel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Charcoal Sketch</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterMosaic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Mosaic</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterRelief" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Relief</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterPoster" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Posterize</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterPopart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pop Art</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterSepia" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Aging</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicFilterSolarize" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Solarization</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SpellOnline" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~AutoSpellcheck</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:HideSpellMark" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Do Not Mark Errors</value></prop></node><node oor:name=".uno:AddressBookSource" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Address Book Source...</value></prop></node><node oor:name=".uno:RubyDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">As~ian phonetic guide...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:InsertSymbol" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">S~pecial Character...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ViewDataSourceBrowser" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Data Sources</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:MenuBarVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Menu On/Off</value></prop></node><node oor:name=".uno:MacroRecorder" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Record Macro</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:StopRecording" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Stop Recording</value></prop></node><node oor:name=".uno:SendMailDocAsPDF" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E-mail as P~DF...</value></prop></node><node oor:name=".uno:ExportToPDF" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Export as P~DF...</value></prop></node><node oor:name=".uno:ConfigureDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Customize...</value></prop></node><node oor:name=".uno:ExportDirectToPDF" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Export Directly as PDF</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ObjectBarVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Object Bar</value></prop></node><node oor:name=".uno:ConfigureToolboxVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Customi~ze...</value></prop></node><node oor:name=".uno:ToolBarVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Main ~Toolbar</value></prop></node><node oor:name=".uno:FunctionBarVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Function Bar</value></prop></node><node oor:name=".uno:ShowImeStatusWindow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Input M~ethod Status</value></prop></node><node oor:name=".uno:OptionBarVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Optio~n Bar</value></prop></node><node oor:name=".uno:ShowLicense" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">License Information...</value></prop></node><node oor:name=".uno:ShowCredits" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">%PRODUCTNAME Credits...</value></prop></node><node oor:name=".uno:StatusBarVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Status ~Bar</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:MacroBarVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Macro Toolbar On/Off</value></prop></node><node oor:name=".uno:CommonTaskBarVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Presentation</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SaveConfiguration" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Save configuration</value></prop></node><node oor:name=".uno:TaskBarVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value/></prop></node><node oor:name=".uno:LoadConfiguration" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Load Configuration</value></prop></node><node oor:name=".uno:LoadBasic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert BASIC Source</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SaveBasicAs" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Save BASIC</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExportDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Export Dialog</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ImportDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Import Dialog</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CompileBasic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Compile</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RunBasic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Run BASIC</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicStepInto" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Step Into</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicStepOver" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Step Over</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicStop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Stop Macro</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:MacroDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">%PRODUCTNAME ~Basic...</value></prop></node><node oor:name=".uno:MacroOrganizer?TabId:short=1" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Organize ~Dialogs...</value></prop></node><node oor:name=".uno:ScriptOrganizer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Organize Macros</value></prop></node><node oor:name=".uno:RunMacro" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">R~un Macro...</value></prop></node><node oor:name=".uno:Gallery" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Gallery</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:SearchDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Find &amp; Rep~lace...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:HelperDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Help ~Agent</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BasicStepOut" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Step Out</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Config" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Controls</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:MoreControls" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">More Controls</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:FormDesignTools" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Form Design</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Pushbutton" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Push Button</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:RadioButton" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Option Button</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:CheckBox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Check Box</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Label" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Label Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:GroupBox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Group Box</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Edit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text Box</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ListBox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">List Box</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ComboBox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Combo Box</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Grid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table Control</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Imagebutton" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Image Button</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:FileControl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">File Selection</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ControlProperties" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Con~trol...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:FormProperties" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">For~m...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:TabDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Activation Order...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FirstRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">First Record</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NextRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Next Record</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PrevRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Previous Record</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:LastRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Last Record</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NewRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">New Record</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeleteRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Record</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AbsoluteRecord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Absolute Record</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AddField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Add Field...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RecText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Record</value></prop></node><node oor:name=".uno:RecFromText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text -&gt; Record</value></prop></node><node oor:name=".uno:RecTotal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Total No. of Records</value></prop></node><node oor:name=".uno:RecSave" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Save Record</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SwitchControlDesignMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Design Mode On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:SwitchXFormsDesignMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Design Mode On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:RecUndo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Undo: Data entry</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Repaint" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Redraw</value></prop></node><node oor:name=".uno:ShowFmExplorer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Form Navigator...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ShowDataNavigator" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Data Navigator...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Window3D" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~3D Effects</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Quit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E~xit</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:About" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">A~bout %PRODUCTNAME</value></prop></node><node oor:name=".uno:PrinterSetup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">P~rinter Settings...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SaveAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sa~ve All</value></prop></node><node oor:name=".uno:Context" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Current Context</value></prop></node><node oor:name=".uno:CurrentTime" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Current Time</value></prop></node><node oor:name=".uno:CurrentDate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Current Date</value></prop></node><node oor:name=".uno:VersionVisible" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Version Visible</value></prop></node><node oor:name=".uno:ShowItemBrowser" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Item Browser On/Off</value></prop></node><node oor:name=".uno:DateField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Date Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:TimeField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Time Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:NumericField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Numerical Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:CurrencyField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Currency Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:PrintPreview" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pa~ge Preview</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:PatternField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pattern Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:OpenReadOnly" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Open in Design Mode</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ImageControl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Image Control</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:RemoveFilterSort" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Remove Filter/Sort</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Sortup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sort Ascending</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SortDown" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sort Descending</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SendMail" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Document as ~E-mail...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OrderCrit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sort...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FilterCrit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Standard Filter...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AutoFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoFilter</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CountAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Records</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SbaNativeSql" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Run SQL command directly</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:SbaExecuteSql" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Run Query</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AddTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Add Table...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FormFiltered" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Apply Filter</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:Refresh" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Refresh</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RefreshFormControl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Refresh Control</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RecSearch" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Find Record...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:UseWizards" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wizards On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:FormattedField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Formatted Field</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:FormFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Form-Based Filters</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FormFilterExit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Close</value></prop></node><node oor:name=".uno:FormFilterExecute" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Apply Form-Based Filter</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FormFilterNavigator" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Filter Navigation</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ConvertToEdit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Text Box</value></prop></node><node oor:name=".uno:ConvertToButton" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Button</value></prop></node><node oor:name=".uno:ConvertToFixed" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Label Field</value></prop></node><node oor:name=".uno:ConvertToList" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with List Box</value></prop></node><node oor:name=".uno:ConvertToCheckBox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Check Box</value></prop></node><node oor:name=".uno:ConvertToRadio" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Radio Button</value></prop></node><node oor:name=".uno:ConvertToGroup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Group Box</value></prop></node><node oor:name=".uno:ConvertToCombo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Combo Box</value></prop></node><node oor:name=".uno:ConvertToImageBtn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Image Button</value></prop></node><node oor:name=".uno:ConvertToFileControl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with File Selection</value></prop></node><node oor:name=".uno:ConvertToDate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Date Field</value></prop></node><node oor:name=".uno:ConvertToTime" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Time Field</value></prop></node><node oor:name=".uno:ConvertToNumeric" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Numerical Field</value></prop></node><node oor:name=".uno:ConvertToCurrency" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Currency Field</value></prop></node><node oor:name=".uno:ConvertToPattern" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Pattern Field</value></prop></node><node oor:name=".uno:ConvertToImageControl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Image Control</value></prop></node><node oor:name=".uno:ConvertToFormatted" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Replace with Formatted Field</value></prop></node><node oor:name=".uno:ViewFormAsGrid" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Data source as Table</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RemoveFilter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Remove Filter</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AutoControlFocus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Automatic Control Focus</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:DSBrowserExplorer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Explorer On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:ExtrusionToggle" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Extrusion On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExtrusionTiltDown" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Tilt Down</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExtrusionTiltUp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Tilt Up</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExtrusionTiltLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Tilt Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExtrusionTiltRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Tilt Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExtrusionDirectionFloater" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Direction</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExtrusionLightingFloater" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Lighting</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExtrusionSurfaceFloater" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Surface</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Extrusion3DColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">3D Color</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExtrusionDepth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Extrusion</value></prop></node><node oor:name=".uno:ExtrusionDepthDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Extrusion Depth</value></prop></node><node oor:name=".uno:ExtrusionDepthFloater" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Depth</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ShowToolbar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Toolbars</value></prop></node><node oor:name=".uno:AvailableToolbars" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Toolbars</value></prop></node><node oor:name=".uno:NavigationBar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Navigation Bar</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToggleBreakPointEnabled" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Breakpoint Enabled/Disabled</value></prop></node><node oor:name="service:com.sun.star.deployment.ui.PackageManagerDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Extension Manager...</value></prop></node><node oor:name=".uno:Signature" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Digital Signatu~res...</value></prop></node><node oor:name=".uno:MacroSignature" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Digital Signature...</value></prop></node><node oor:name=".uno:CommonAlignLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Left</value></prop></node><node oor:name=".uno:CommonAlignHorizontalCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Centered</value></prop></node><node oor:name=".uno:CommonAlignRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Right</value></prop></node><node oor:name=".uno:CommonAlignTop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Top</value></prop></node><node oor:name=".uno:CommonAlignVerticalCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Center</value></prop></node><node oor:name=".uno:CommonAlignBottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bottom</value></prop></node><node oor:name=".uno:CommonAlignJustified" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Justified</value></prop></node><node oor:name=".uno:CommonAlignHorizontalDefault" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Default</value></prop></node><node oor:name=".uno:CommonAlignVerticalDefault" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Default</value></prop></node><node oor:name=".uno:RecentFileList" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Recent Doc~uments</value></prop></node><node oor:name=".uno:DeleteAllNotes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete All Comments</value></prop></node><node oor:name=".uno:DeleteAuthor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete All Comments by This Author</value></prop></node><node oor:name=".uno:ReplyComment" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reply Comment</value></prop></node><node oor:name=".uno:DeleteComment" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Comment</value></prop></node></node><node oor:name="Popups"><node oor:name=".uno:HelpMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Help</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PickList" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~File</value></prop></node><node oor:name=".uno:ObjectAlign" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Alignmen~t</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PolyFormen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Shapes</value></prop></node><node oor:name=".uno:Scan" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Scan</value></prop></node><node oor:name=".uno:FormatMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">F~ormat</value></prop></node><node oor:name=".uno:ObjectMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Object</value></prop></node><node oor:name=".uno:EditMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Edit</value></prop></node><node oor:name=".uno:InsertMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Insert</value></prop></node><node oor:name=".uno:SendToMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sen~d</value></prop></node><node oor:name=".uno:MacrosMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Macros</value></prop></node><node oor:name=".uno:GraphicMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pict~ure</value></prop></node><node oor:name=".uno:WindowList" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Window</value></prop></node><node oor:name=".uno:ChangesMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Chan~ges</value></prop></node><node oor:name=".uno:ToolsMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Tools</value></prop></node><node oor:name=".uno:TemplateMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Templates</value></prop></node><node oor:name=".uno:SpellingMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Spellcheck</value></prop></node><node oor:name=".uno:LanguageMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Language</value></prop></node><node oor:name=".uno:ViewMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~View</value></prop></node><node oor:name=".uno:ToolbarsMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Toolbars</value></prop></node><node oor:name=".uno:FieldMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fiel~ds</value></prop></node><node oor:name=".uno:FormattingMarkMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Formatting Mark</value></prop></node><node oor:name=".uno:TransliterateMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Change Case</value></prop></node><node oor:name=".uno:GroupMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Group</value></prop></node><node oor:name=".uno:ArrangeMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">A~rrange</value></prop></node><node oor:name=".uno:FlipMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Flip</value></prop></node><node oor:name=".uno:AnchorMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">A~nchor</value></prop></node><node oor:name=".uno:AVMediaPlayer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Media Pla~yer</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:InsertAVMedia" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Mo~vie and Sound...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Addons" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Add-Ons</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ColorSettings" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Color</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:InsertHardHyphen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Non-br~eaking hyphen</value></prop></node><node oor:name=".uno:InsertSoftHyphen" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Optional hyphen</value></prop></node><node oor:name=".uno:InsertNonBreakingSpace" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Non-breaking space</value></prop></node><node oor:name=".uno:InsertZWSP" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">No-~width optional break</value></prop></node><node oor:name=".uno:InsertZWNBSP" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">No-width no ~break</value></prop></node><node oor:name=".uno:InsertLRM" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Left-to-right mark</value></prop></node><node oor:name=".uno:InsertRLM" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Right-to-left mark</value></prop></node><node oor:name=".uno:ManageLanguage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Manage Language</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CurrentLanguage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Current Language</value></prop></node><node oor:name=".uno:SetLanguageSelectionMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">For Selection</value></prop></node><node oor:name=".uno:SetLanguageParagraphMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">For Paragraph</value></prop></node><node oor:name=".uno:SetLanguageAllTextMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">For all Text</value></prop></node><node oor:name=".uno:MoreDictionaries" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">More Dictionaries Online...</value></prop></node><node oor:name=".uno:ActivateStyleApply" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Set Focus in Combo Box</value></prop></node><node oor:name=".uno:MacroOrganizer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">%PRODUCTNAME Basic Macro Organizer...</value></prop></node><node oor:name=".uno:SendMailDocAsMS" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E-mail as ~Microsoft Format...</value></prop></node><node oor:name=".uno:SendMailDocAsOOo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E-mail as ~OpenDocument Format...</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="StartModuleCommands" oor:package="org.openoffice.Office.UI"><node oor:name="UserInterface"><node oor:name="Commands"><node oor:name=".uno:AddDirect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~New</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CloseDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Close</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CloseWin" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Close Window</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Copy" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Copy</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Cut" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cu~t</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ExtendedHelp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">What's ~This?</value></prop></node><node oor:name=".uno:HelpIndex" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">%PRODUCTNAME ~Help</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NewDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">New Document From Template</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Open" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Open...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:OpenUrl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Load URL</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Paste" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Paste</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Print" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Print...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PrinterSetup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">P~rinter Settings...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Quit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E~xit</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Save" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Save</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SaveAs" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Save ~As...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SendMail" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Document as ~E-mail...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SetDocumentProperties" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Propert~ies...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Undo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Undo</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node></node><node oor:name="Popups"><node oor:name=".uno:EditMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Edit</value></prop></node><node oor:name=".uno:HelpMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Help</value></prop></node><node oor:name=".uno:MacrosMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Macros</value></prop></node><node oor:name=".uno:PickList" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~File</value></prop></node><node oor:name=".uno:ToolsMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Tools</value></prop></node><node oor:name=".uno:ViewMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~View</value></prop></node><node oor:name=".uno:WindowList" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Window</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="StartModuleWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="UI" oor:package="org.openoffice.Office"><node oor:name="FilterClassification"><node oor:name="GlobalFilters"><node oor:name="Classes"><node oor:name="com.sun.star.text.TextDocument" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Text documents</value></prop><prop oor:name="Filters"><value oor:separator=";">HTML (StarWriter);MS WinWord 2.x (W4W);MS WinWord 6.0;MS Word 95;MS Word 95 Vorlage;MS Word 97;MS Word 97 Vorlage;StarOffice XML (Writer);StarWriter 3.0;StarWriter 3.0 Vorlage/Template;StarWriter 4.0;StarWriter 4.0 Vorlage/Template;StarWriter 5.0;StarWriter 5.0 Vorlage/Template;writer_StarOffice_XML_Writer_Template;Text;WordPerfect;writer8;writer8_template;LotusWordPro</value></prop></node><node oor:name="com.sun.star.sheet.SpreadsheetDocument" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Spreadsheets</value></prop><prop oor:name="Filters"><value oor:separator=";">StarCalc 1.0;StarCalc 3.0;StarCalc 4.0;StarCalc 5.0;StarCalc 3.0 Vorlage/Template;StarCalc 4.0 Vorlage/Template;StarCalc 5.0 Vorlage/Template;MS Excel 97;MS Excel 97 Vorlage/Template;MS Excel 95;MS Excel 5.0/95;MS Excel 4.0;MS Excel 95 Vorlage/Template;;MS Excel 4.0 Vorlage/Template;StarOffice XML (Calc);calc_StarOffice_XML_Calc_Template;Text - txt - csv (StarCalc);calc8;calc8_template</value></prop></node><node oor:name="com.sun.star.presentation.PresentationDocument" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Presentations</value></prop><prop oor:name="Filters"><value oor:separator=";">impress_StarOffice_XML_Draw;impress_StarOffice_XML_Impress_Template;MS PowerPoint 97;MS PowerPoint 97 Vorlage;StarImpress 4.0;StarImpress 4.0 Vorlage;StarImpress 5.0;StarImpress 5.0 (packed);StarImpress 5.0 Vorlage;StarOffice XML (Impress);impress8;impress8_template</value></prop></node><node oor:name="com.sun.star.drawing.DrawingDocument" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Drawings</value></prop><prop oor:name="Filters"><value oor:separator=";">draw_StarOffice_XML_Draw_Template;SGV - StarDraw 2.0;StarDraw 3.0;StarDraw 3.0 Vorlage;StarDraw 5.0;StarDraw 5.0 Vorlage;StarOffice XML (Draw);draw8;draw8_template</value></prop></node><node oor:name="com.sun.star.text.WebDocument" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Web pages</value></prop><prop oor:name="Filters"><value oor:separator=";">HTML;StarWriter/Web 4.0 Vorlage/Template;StarWriter/Web 5.0 Vorlage/Template;writer_web_StarOffice_XML_Writer_Web_Template;writerweb8_writer_template</value></prop></node><node oor:name="com.sun.star.text.GlobalDocument" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Master documents</value></prop><prop oor:name="Filters"><value oor:separator=";">StarWriter 4.0 (StarWriter/GlobalDocument)/GlobalDocument;StarWriter 5.0 (StarWriter/GlobalDocument)/GlobalDocument;writer_globaldocument_StarOffice_XML_Writer_GlobalDocument;writerglobal8</value></prop></node><node oor:name="com.sun.star.formula.FormularProperties" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Formulas</value></prop><prop oor:name="Filters"><value oor:separator=";">MathML XML (Math);MathType 3.x;StarMath 2.0;StarMath 3.0;StarMath 4.0;StarMath 5.0;StarOffice XML (Math);math8</value></prop></node><node oor:name="com.sun.star.sdb.OfficeDatabaseDocument" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Database documents</value></prop><prop oor:name="Filters"><value oor:separator=";">StarOffice XML (Base)</value></prop></node></node></node><node oor:name="LocalFilters"><node oor:name="Classes"><node oor:name="msword956" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Microsoft Word 6.0 / 95</value></prop><prop oor:name="Filters"><value oor:separator=";">MS Word 95;MS WinWord 6.0</value></prop></node><node oor:name="sw3to5" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarWriter 3.0 - 5.0</value></prop><prop oor:name="Filters"><value oor:separator=";">StarWriter 5.0;StarWriter 4.0;StarWriter 3.0</value></prop></node><node oor:name="sw3to5templ" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarWriter 3.0 - 5.0 Templates</value></prop><prop oor:name="Filters"><value oor:separator=";">StarWriter 5.0 Vorlage/Template;StarWriter 4.0 Vorlage/Template;StarWriter 3.0 Vorlage/Template</value></prop></node><node oor:name="excel456" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Microsoft Excel 4.x - 5.0 / 95</value></prop><prop oor:name="Filters"><value oor:separator=";">MS Excel 95;MS Excel 5.0/95;MS Excel 4.0</value></prop></node><node oor:name="excel456templ" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Microsoft Excel 4.x - 5.0 / 95 Templates</value></prop><prop oor:name="Filters"><value oor:separator=";">MS Excel 95 Vorlage/Template;MS Excel 5.0/95 Vorlage/Template;MS Excel 4.0 Vorlage/Template</value></prop></node><node oor:name="sc345" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarCalc 3.0 - 5.0</value></prop><prop oor:name="Filters"><value oor:separator=";">StarCalc 3.0;StarCalc 4.0;StarCalc 5.0</value></prop></node><node oor:name="sc345templ" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarCalc 3.0 - 5.0 Templates</value></prop><prop oor:name="Filters"><value oor:separator=";">StarCalc 3.0 Vorlage/Template;StarCalc 4.0 Vorlage/Template;StarCalc 5.0 Vorlage/Template</value></prop></node><node oor:name="sd35_i" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarDraw 3.0 / 5.0 (StarImpress)</value></prop><prop oor:name="Filters"><value oor:separator=";">StarDraw 5.0 (StarImpress);StarDraw 3.0 (StarImpress)</value></prop></node><node oor:name="sd35_itempl" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarDraw 3.0 / 5.0 Templates (StarImpress)</value></prop><prop oor:name="Filters"><value oor:separator=";">StarDraw 5.0 Vorlage (StarImpress);StarDraw 3.0 Vorlage (StarImpress)</value></prop></node><node oor:name="si45" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarImpress 4.0 / 5.0</value></prop><prop oor:name="Filters"><value oor:separator=";">StarImpress 4.0;StarImpress 5.0;StarImpress 5.0 (packed)</value></prop></node><node oor:name="si45templ" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarImpress 4.0 / 5.0 Templates</value></prop><prop oor:name="Filters"><value oor:separator=";">StarImpress 4.0 Vorlage;StarImpress 5.0 Vorlage</value></prop></node><node oor:name="sd35" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarDraw 3.0 / 5.0</value></prop><prop oor:name="Filters"><value oor:separator=";">StarDraw 5.0;StarDraw 3.0</value></prop></node><node oor:name="sd35templ" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarDraw 3.0 / 5.0 Templates</value></prop><prop oor:name="Filters"><value oor:separator=";">StarDraw 5.0 Vorlage;StarDraw 3.0 Vorlage</value></prop></node><node oor:name="sww45templ" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarWriter/Web 4.0 / 5.0 Templates</value></prop><prop oor:name="Filters"><value oor:separator=";">StarWriter/Web 5.0 Vorlage/Template;StarWriter/Web 4.0 Vorlage/Template</value></prop></node><node oor:name="sww345" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarWriter/Web 3.0 - 5.0</value></prop><prop oor:name="Filters"><value oor:separator=";">StarWriter 5.0 (StarWriter/Web);StarWriter 4.0 (StarWriter/Web);StarWriter 3.0 (StarWriter/Web)</value></prop></node><node oor:name="swwtext" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">Text (StarWriter/Web)</value></prop><prop oor:name="Filters"><value oor:separator=";">Text (StarWriter/Web);Text DOS (StarWriter/Web);Text Mac (StarWriter/Web);Text Unix (StarWriter/Web)</value></prop></node><node oor:name="sw45glob" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarWriter 4.0 / 5.0 Master Documents</value></prop><prop oor:name="Filters"><value oor:separator=";">StarWriter 5.0/GlobalDocument;StarWriter 4.0/GlobalDocument</value></prop></node><node oor:name="sm2to5" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">StarMath 2.0 - 5.0</value></prop><prop oor:name="Filters"><value oor:separator=";">StarMath 5.0;StarMath 4.0;StarMath 3.0;StarMath 2.0</value></prop></node><node oor:name="wpw67" oor:op="replace"><prop oor:name="DisplayName"><value xml:lang="en-US">WordPerfect (Win) 6.0 - 7.0</value></prop><prop oor:name="Filters"><value oor:separator=";">WordPerfect (Win) 6.0 (W4W);WordPerfect (Win) 6.1 (W4W);WordPerfect (Win) 7.0 (W4W)</value></prop></node></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Views" oor:package="org.openoffice.Office"><node oor:name="Windows"><node oor:name="5539" oor:op="replace"><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="WebWizard" oor:package="org.openoffice.Office"><node oor:name="WebWizard"><prop oor:name="WorkDir"><value>wizard/web</value></prop><node oor:name="Exporters"><node oor:name="copy-exporter" oor:op="replace"><prop oor:name="Index"><value>99</value></prop><prop oor:name="Name"><value xml:lang="en-US">Original file format</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.CopyExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value/></prop><prop oor:name="SupportedMimeTypes"><value/></prop><prop oor:name="Icon"><value/></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>0</value></prop></node><node oor:name="html-writer-exporter" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">HTML</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.FilterExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>html</value></prop><prop oor:name="SupportedMimeTypes"><value>writer</value></prop><prop oor:name="Icon"><value>html.gif</value></prop><prop oor:name="Binary"><value>false</value></prop><prop oor:name="PageType"><value>0</value></prop><prop oor:name="TargetType"><value>graphic_HTML</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>HTML (StarWriter)</value></prop></node></node></node><node oor:name="html-calc-exporter" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">HTML</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.FilterExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>html</value></prop><prop oor:name="SupportedMimeTypes"><value>calc</value></prop><prop oor:name="Icon"><value>html.gif</value></prop><prop oor:name="Binary"><value>false</value></prop><prop oor:name="PageType"><value>0</value></prop><prop oor:name="TargetType"><value>graphic_HTML</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>HTML (StarCalc)</value></prop></node></node></node><node oor:name="html-impress-exporter" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">HTML</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.ImpressHTMLExporter</value></prop><prop oor:name="OwnDirectory"><value>true</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>html</value></prop><prop oor:name="SupportedMimeTypes"><value>impress</value></prop><prop oor:name="Icon"><value>html.gif</value></prop><prop oor:name="Binary"><value>false</value></prop><prop oor:name="PageType"><value>2</value></prop><prop oor:name="TargetType"><value>graphic_HTML</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>impress_html_Export</value></prop></node><node oor:name="PublishMode" oor:op="replace"><prop oor:name="Value"><value>%1</value></prop></node><node oor:name="IsExportContentsPage" oor:op="replace"><prop oor:name="Value"><value>true</value></prop></node><node oor:name="IsExportNotes" oor:op="replace"><prop oor:name="Value"><value>false</value></prop></node><node oor:name="Format" oor:op="replace"><prop oor:name="Value"><value>%1</value></prop></node><node oor:name="Compression" oor:op="replace"><prop oor:name="Value"><value>$75%</value></prop></node><node oor:name="EnableDownload" oor:op="replace"><prop oor:name="Value"><value>false</value></prop></node><node oor:name="IsUseDocumentColors" oor:op="replace"><prop oor:name="Value"><value>true</value></prop></node></node></node><node oor:name="html-draw-exporter" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">HTML</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.ImpressHTMLExporter</value></prop><prop oor:name="OwnDirectory"><value>true</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>html</value></prop><prop oor:name="SupportedMimeTypes"><value>draw</value></prop><prop oor:name="Icon"><value>html.gif</value></prop><prop oor:name="Binary"><value>false</value></prop><prop oor:name="PageType"><value>2</value></prop><prop oor:name="TargetType"><value>graphic_HTML</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>draw_html_Export</value></prop></node><node oor:name="PublishMode" oor:op="replace"><prop oor:name="Value"><value>%1</value></prop></node><node oor:name="IsExportContentsPage" oor:op="replace"><prop oor:name="Value"><value>true</value></prop></node><node oor:name="IsExportNotes" oor:op="replace"><prop oor:name="Value"><value>false</value></prop></node><node oor:name="Format" oor:op="replace"><prop oor:name="Value"><value>%1</value></prop></node><node oor:name="Compression" oor:op="replace"><prop oor:name="Value"><value>$75%</value></prop></node><node oor:name="EnableDownload" oor:op="replace"><prop oor:name="Value"><value>false</value></prop></node><node oor:name="IsUseDocumentColors" oor:op="replace"><prop oor:name="Value"><value>true</value></prop></node></node></node><node oor:name="pdf-writer-exporter" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">PDF - Print optimized</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.ConfiguredExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>pdf</value></prop><prop oor:name="SupportedMimeTypes"><value>writer</value></prop><prop oor:name="Icon"><value>pdf.gif</value></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>1</value></prop><prop oor:name="TargetType"><value>pdf_Portable_Document_Format</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>writer_pdf_Export</value></prop></node></node></node><node oor:name="pdf-calc-exporter" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">PDF - Print optimized</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.ConfiguredExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>pdf</value></prop><prop oor:name="SupportedMimeTypes"><value>calc</value></prop><prop oor:name="Icon"><value>pdf.gif</value></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>1</value></prop><prop oor:name="TargetType"><value>pdf_Portable_Document_Format</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>calc_pdf_Export</value></prop></node></node></node><node oor:name="pdf-impress-exporter" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">PDF - Print optimized</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.ConfiguredExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>pdf</value></prop><prop oor:name="SupportedMimeTypes"><value>impress</value></prop><prop oor:name="Icon"><value>pdf.gif</value></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>1</value></prop><prop oor:name="TargetType"><value>pdf_Portable_Document_Format</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>impress_pdf_Export</value></prop></node></node></node><node oor:name="pdf-draw-exporter" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">PDF - Print optimized</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.ConfiguredExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>pdf</value></prop><prop oor:name="SupportedMimeTypes"><value>draw</value></prop><prop oor:name="Icon"><value>pdf.gif</value></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>1</value></prop><prop oor:name="TargetType"><value>pdf_Portable_Document_Format</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>draw_pdf_Export</value></prop></node></node></node><node oor:name="pdf-hq-writer-exporter" oor:op="replace"><prop oor:name="Index"><value>20</value></prop><prop oor:name="Name"><value xml:lang="en-US">PDF - Press optimized</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.ConfiguredExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>pdf</value></prop><prop oor:name="SupportedMimeTypes"><value>writer</value></prop><prop oor:name="Icon"><value>pdf.gif</value></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>1</value></prop><prop oor:name="TargetType"><value>pdf_Portable_Document_Format</value></prop><node oor:name="Arguments"><node oor:name="CompressMode" oor:op="replace"><prop oor:name="Value"><value>%2</value></prop></node><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>writer_pdf_Export</value></prop></node></node></node><node oor:name="pdf-calc-hq-exporter" oor:op="replace"><prop oor:name="Index"><value>21</value></prop><prop oor:name="Name"><value xml:lang="en-US">PDF - Press optimized</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.ConfiguredExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>pdf</value></prop><prop oor:name="SupportedMimeTypes"><value>calc</value></prop><prop oor:name="Icon"><value>pdf.gif</value></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>1</value></prop><prop oor:name="TargetType"><value>pdf_Portable_Document_Format</value></prop><node oor:name="Arguments"><node oor:name="CompressMode" oor:op="replace"><prop oor:name="Value"><value>%2</value></prop></node><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>calc_pdf_Export</value></prop></node></node></node><node oor:name="pdf-impress-hq-exporter" oor:op="replace"><prop oor:name="Index"><value>22</value></prop><prop oor:name="Name"><value xml:lang="en-US">PDF - Press optimized</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.ConfiguredExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>pdf</value></prop><prop oor:name="SupportedMimeTypes"><value>impress</value></prop><prop oor:name="Icon"><value>pdf.gif</value></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>1</value></prop><prop oor:name="TargetType"><value>pdf_Portable_Document_Format</value></prop><node oor:name="Arguments"><node oor:name="CompressMode" oor:op="replace"><prop oor:name="Value"><value>%2</value></prop></node><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>impress_pdf_Export</value></prop></node></node></node><node oor:name="pdf-draw-hq-exporter" oor:op="replace"><prop oor:name="Index"><value>23</value></prop><prop oor:name="Name"><value xml:lang="en-US">PDF - Press optimized</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.ConfiguredExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>pdf</value></prop><prop oor:name="SupportedMimeTypes"><value>draw</value></prop><prop oor:name="Icon"><value>pdf.gif</value></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>1</value></prop><prop oor:name="TargetType"><value>pdf_Portable_Document_Format</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>draw_pdf_Export</value></prop></node><node oor:name="CompressMode" oor:op="replace"><prop oor:name="Value"><value>%2</value></prop></node></node></node><node oor:name="flash-impress-exporter" oor:op="replace"><prop oor:name="Index"><value>30</value></prop><prop oor:name="Name"><value xml:lang="en-US">Flash</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.FilterExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>swf</value></prop><prop oor:name="SupportedMimeTypes"><value>impress</value></prop><prop oor:name="Icon"><value>fls.gif</value></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>2</value></prop><prop oor:name="TargetType"><value>graphic_SWF</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>impress_flash_Export</value></prop></node></node></node><node oor:name="flash-draw-exporter" oor:op="replace"><prop oor:name="Index"><value>31</value></prop><prop oor:name="Name"><value xml:lang="en-US">Flash</value></prop><prop oor:name="ExporterClass"><value>com.sun.star.wizards.web.export.FilterExporter</value></prop><prop oor:name="OwnDirectory"><value>false</value></prop><prop oor:name="SupportsFilename"><value>true</value></prop><prop oor:name="DefaultFilename"><value/></prop><prop oor:name="Extension"><value>swf</value></prop><prop oor:name="SupportedMimeTypes"><value>draw</value></prop><prop oor:name="Icon"><value>fls.gif</value></prop><prop oor:name="Binary"><value>true</value></prop><prop oor:name="PageType"><value>2</value></prop><prop oor:name="TargetType"><value>graphic_SWF</value></prop><node oor:name="Arguments"><node oor:name="Filter" oor:op="replace"><prop oor:name="Value"><value>draw_flash_Export</value></prop></node></node></node></node><node oor:name="Layouts"><node oor:name="table_3" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">Table with 3 columns</value></prop><prop oor:name="FSName"><value>table_3</value></prop></node><node oor:name="table_2" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Table with 2 columns</value></prop><prop oor:name="FSName"><value>table_2</value></prop></node><node oor:name="simple" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Simple</value></prop><prop oor:name="FSName"><value>simple</value></prop></node><node oor:name="diagonal" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Diagonal</value></prop><prop oor:name="FSName"><value>diagonal</value></prop></node><node oor:name="zigzag" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Zigzag</value></prop><prop oor:name="FSName"><value>zigzag</value></prop></node><node oor:name="frame_left" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">HTML frameset, left</value></prop><prop oor:name="FSName"><value>frame_left</value></prop></node><node oor:name="frame_right" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">HTML frameset, right</value></prop><prop oor:name="FSName"><value>frame_right</value></prop></node><node oor:name="frame_top" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">HTML frameset, top</value></prop><prop oor:name="FSName"><value>frame_top</value></prop></node><node oor:name="frame_bottom" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">HTML frameset, bottom</value></prop><prop oor:name="FSName"><value>frame_bottom</value></prop></node></node><node oor:name="Styles"><node oor:name="style1" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">Beige</value></prop><prop oor:name="CssHref"><value>beige.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style2" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Bright</value></prop><prop oor:name="CssHref"><value>bg.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style3" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Bright Blue</value></prop><prop oor:name="CssHref"><value>bgr.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style4" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Gray</value></prop><prop oor:name="CssHref"><value>bgrey.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style5" oor:op="replace"><prop oor:name="Index"><value>4</value></prop><prop oor:name="Name"><value xml:lang="en-US">Blue</value></prop><prop oor:name="CssHref"><value>bwb.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style6" oor:op="replace"><prop oor:name="Index"><value>5</value></prop><prop oor:name="Name"><value xml:lang="en-US">Contrast</value></prop><prop oor:name="CssHref"><value>bwo.css</value></prop><prop oor:name="BackgroundImage"/><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style7" oor:op="replace"><prop oor:name="Index"><value>6</value></prop><prop oor:name="Name"><value xml:lang="en-US">Blue &amp; Black</value></prop><prop oor:name="CssHref"><value>dark.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style8" oor:op="replace"><prop oor:name="Index"><value>7</value></prop><prop oor:name="Name"><value xml:lang="en-US">Dark Red</value></prop><prop oor:name="CssHref"><value>dp.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style9" oor:op="replace"><prop oor:name="Index"><value>8</value></prop><prop oor:name="Name"><value xml:lang="en-US">Light Gray</value></prop><prop oor:name="CssHref"><value>grey.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style10" oor:op="replace"><prop oor:name="Index"><value>9</value></prop><prop oor:name="Name"><value xml:lang="en-US">Forest</value></prop><prop oor:name="CssHref"><value>forest.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style11" oor:op="replace"><prop oor:name="Index"><value>10</value></prop><prop oor:name="Name"><value xml:lang="en-US">Orange &amp; Blue</value></prop><prop oor:name="CssHref"><value>rgb.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style12" oor:op="replace"><prop oor:name="Index"><value>11</value></prop><prop oor:name="Name"><value xml:lang="en-US">Marine</value></prop><prop oor:name="CssHref"><value>marine.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style13" oor:op="replace"><prop oor:name="Index"><value>12</value></prop><prop oor:name="Name"><value xml:lang="en-US">Orange</value></prop><prop oor:name="CssHref"><value>orange.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style14" oor:op="replace"><prop oor:name="Index"><value>13</value></prop><prop oor:name="Name"><value xml:lang="en-US">Ice Blue</value></prop><prop oor:name="CssHref"><value>ibg.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style15" oor:op="replace"><prop oor:name="Index"><value>14</value></prop><prop oor:name="Name"><value xml:lang="en-US">Blue &amp; Gray</value></prop><prop oor:name="CssHref"><value>ice.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style16" oor:op="replace"><prop oor:name="Index"><value>15</value></prop><prop oor:name="Name"><value xml:lang="en-US">Water</value></prop><prop oor:name="CssHref"><value>water.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style17" oor:op="replace"><prop oor:name="Index"><value>16</value></prop><prop oor:name="Name"><value xml:lang="en-US">Red</value></prop><prop oor:name="CssHref"><value>red.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style18" oor:op="replace"><prop oor:name="Index"><value>17</value></prop><prop oor:name="Name"><value xml:lang="en-US">Colorful</value></prop><prop oor:name="CssHref"><value>strange.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style19" oor:op="replace"><prop oor:name="Index"><value>18</value></prop><prop oor:name="Name"><value xml:lang="en-US">Green &amp; Red</value></prop><prop oor:name="CssHref"><value>greenred.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style20" oor:op="replace"><prop oor:name="Index"><value>19</value></prop><prop oor:name="Name"><value xml:lang="en-US">Violet</value></prop><prop oor:name="CssHref"><value>violet.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node><node oor:name="style21" oor:op="replace"><prop oor:name="Index"><value>20</value></prop><prop oor:name="Name"><value xml:lang="en-US">Green</value></prop><prop oor:name="CssHref"><value>green.css</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>iconset1</value></prop></node></node><node oor:name="BackgroundImages"><node oor:name="1" oor:op="replace"><prop oor:name="Href"><value>$(inst)/share/gallery/www-back/</value></prop></node><node oor:name="2" oor:op="replace"><prop oor:name="Href"><value>$(inst)/share/gallery/surface</value></prop></node><node oor:name="3" oor:op="replace"><prop oor:name="Href"><value>file:///c:/11.jpg</value></prop></node></node><node oor:name="IconSets"><node oor:name="iconset0" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">Round, 3D, blue &amp; gray</value></prop><prop oor:name="FNPrefix"><value>blu</value></prop><prop oor:name="FNPostfix"><value>.gif</value></prop></node><node oor:name="iconset1" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Round, 3D, blue &amp; green</value></prop><prop oor:name="FNPrefix"><value>gre</value></prop><prop oor:name="FNPostfix"><value>.gif</value></prop></node><node oor:name="iconset2" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Cubic, 3D, orange &amp; blue</value></prop><prop oor:name="FNPrefix"><value>cub</value></prop><prop oor:name="FNPostfix"><value>.gif</value></prop></node><node oor:name="iconset3" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">Round, flat, black &amp; gray</value></prop><prop oor:name="FNPrefix"><value>sim</value></prop><prop oor:name="FNPostfix"><value>.gif</value></prop></node></node><node oor:name="Filters"><node oor:name="OO_documents" oor:op="replace"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value xml:lang="en-US">%PRODNAME documents</value></prop><prop oor:name="Filter"><value>*.odt;*.ott;*.odm;*.ods;*.ots;*.odp;*.otp;*.odg;*.otg;*.odf;*.sxw;*.sxc;*.sxd;*.sxi;*.stw;*.stc;*.std;*.sti;*.sdw;*.sdc;*.sdd;*.sdi;*.sda;*.sdp;*.vor;</value></prop></node><node oor:name="ms_documents" oor:op="replace"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value xml:lang="en-US">Microsoft Office documents</value></prop><prop oor:name="Filter"><value>*.doc;*.xls;*.ppt;*.pps</value></prop></node><node oor:name="graphic_files" oor:op="replace"><prop oor:name="Index"><value>2</value></prop><prop oor:name="Name"><value xml:lang="en-US">Graphics files</value></prop><prop oor:name="Filter"><value>*.jpg;*.gif;*.png;*.bmp;*.tiff;*.jpeg;*.jpe</value></prop></node><node oor:name="all_files" oor:op="replace"><prop oor:name="Index"><value>3</value></prop><prop oor:name="Name"><value xml:lang="en-US">All files</value></prop><prop oor:name="Filter"><value>*</value></prop></node></node><node oor:name="DefaultSession"><prop oor:name="Index"><value>1</value></prop><prop oor:name="Name"><value>DefaultSession</value></prop><prop oor:name="InDirectory"><value>$(work)</value></prop><prop oor:name="OutDirectory"><value>$(work)</value></prop><node oor:name="Content"><prop oor:name="Index"><value>0</value></prop><prop oor:name="Name"><value>content</value></prop><prop oor:name="Description"/></node><node oor:name="Design"><prop oor:name="Layout"><value>table_3</value></prop><prop oor:name="Style"><value>style16</value></prop><prop oor:name="BackgroundImage"><value/></prop><prop oor:name="IconSet"><value>0</value></prop><prop oor:name="OptimizeDisplaySize"><value>1</value></prop><prop oor:name="DisplayTitle"><value>true</value></prop><prop oor:name="DisplayDescription"><value>true</value></prop><prop oor:name="DisplayAuthor"><value>false</value></prop><prop oor:name="DisplayCreateDate"><value>false</value></prop><prop oor:name="DisplayUpdateDate"><value>false</value></prop><prop oor:name="DisplayFilename"><value>false</value></prop><prop oor:name="DisplayFileFormat"><value>false</value></prop><prop oor:name="DisplayFormatIcon"><value>true</value></prop><prop oor:name="DisplayPages"><value>false</value></prop><prop oor:name="DisplaySize"><value>true</value></prop></node><node oor:name="Publishing"><node oor:name="local" oor:op="replace"><prop oor:name="Publish"><value>true</value></prop><prop oor:name="URL"><value/></prop><prop oor:name="Username"><value/></prop></node><node oor:name="ftp" oor:op="replace"><prop oor:name="Publish"><value>false</value></prop><prop oor:name="URL"><value/></prop><prop oor:name="Username"><value/></prop></node><node oor:name="zip" oor:op="replace"><prop oor:name="Publish"><value>false</value></prop><prop oor:name="URL"><value/></prop><prop oor:name="Username"><value/></prop></node></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Writer" oor:package="org.openoffice.Office"><node oor:name="MailMergeWizard"><prop oor:name="FemaleGreetingLines"><value xml:lang="en-US" oor:separator=";">Dear Mrs. &lt;2&gt;,</value></prop><prop oor:name="MaleGreetingLines"><value xml:lang="en-US" oor:separator=";">Dear Mr. &lt;2&gt;,</value></prop><prop oor:name="NeutralGreetingLines"><value xml:lang="en-US" oor:separator=";">To whom it may concern,;Dear Friends,;Dear Sir or Madam,;Hello,</value></prop><prop oor:name="IsHideEmptyParagraphs"><value>true</value></prop><node oor:name="DataSource"><prop oor:name="DataSourceName" oor:type="xs:string"><value>EvolutionLocal</value></prop><prop oor:name="DataTableName" oor:type="xs:string"><value>Personal</value></prop></node><node oor:name="AddressDataAssignments"><node oor:name="_0" oor:op="replace"><prop oor:name="DBColumnAssignments" oor:type="oor:string-list"><value oor:separator=",">title,full_name,family_name,org,addr_line1,addr_line2,city,state,zip,country,home_phone,business_phone,email_1,</value></prop><node oor:name="DataSource"><prop oor:name="DataSourceName" oor:type="xs:string"><value>EvolutionLocal</value></prop><prop oor:name="DataTableName" oor:type="xs:string"><value>Personal</value></prop></node></node></node><prop oor:name="EMailSupported"><value>true</value></prop></node><node oor:name="Insert"><node oor:name="Caption"><prop oor:name="CaptionOrderNumberingFirst"/><node oor:name="WriterObject"><node oor:name="Table"><node oor:name="Settings"><prop oor:name="Category"><value xml:lang="en-US">Table</value></prop><prop oor:name="CaptionText"><value xml:lang="en-US">: </value></prop></node></node><node oor:name="Frame"><node oor:name="Settings"><prop oor:name="Category"><value xml:lang="en-US">Text</value></prop><prop oor:name="CaptionText"><value xml:lang="en-US">: </value></prop></node></node><node oor:name="Graphic"><node oor:name="Settings"><prop oor:name="Category"><value xml:lang="en-US">Illustration</value></prop><prop oor:name="CaptionText"><value xml:lang="en-US">: </value></prop></node></node></node><node oor:name="OfficeObject"><node oor:name="Calc"><node oor:name="Settings"><prop oor:name="Category"><value xml:lang="en-US">Illustration</value></prop><prop oor:name="CaptionText"><value xml:lang="en-US">: </value></prop></node></node><node oor:name="Draw"><node oor:name="Settings"><prop oor:name="Category"><value xml:lang="en-US">Illustration</value></prop><prop oor:name="CaptionText"><value xml:lang="en-US">: </value></prop></node></node><node oor:name="Chart"><node oor:name="Settings"><prop oor:name="Category"><value xml:lang="en-US">Illustration</value></prop><prop oor:name="CaptionText"><value xml:lang="en-US">: </value></prop></node></node><node oor:name="Image"><node oor:name="Settings"><prop oor:name="Category"><value xml:lang="en-US">Illustration</value></prop><prop oor:name="CaptionText"><value xml:lang="en-US">: </value></prop></node></node><node oor:name="Formula"><node oor:name="Settings"><prop oor:name="Category"><value xml:lang="en-US">Illustration</value></prop><prop oor:name="CaptionText"><value xml:lang="en-US">: </value></prop></node></node><node oor:name="Impress"><node oor:name="Settings"><prop oor:name="Category"><value xml:lang="en-US">Illustration</value></prop><prop oor:name="CaptionText"><value xml:lang="en-US">: </value></prop></node></node><node oor:name="OLEMisc"><node oor:name="Settings"><prop oor:name="Category"><value xml:lang="en-US">Illustration</value></prop><prop oor:name="CaptionText"><value xml:lang="en-US">: </value></prop></node></node></node></node><node oor:name="Table"><prop oor:name="RepeatHeader" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="Wizards"><node oor:name="Letter"><prop oor:name="LetterType" oor:type="xs:int"><value>0</value></prop><node oor:name="BusinessLetter"><prop oor:name="BusinessPaper" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="CreationType" oor:type="xs:int"><value>0</value></prop><prop oor:name="Footer" oor:type="xs:string"><value/></prop><prop oor:name="FooterOnlySecondPage" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="FooterPageNumbers" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Greeting" oor:type="xs:string"><value/></prop><prop oor:name="PaperCompanyAddressReceiverField" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PaperFooter" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PaperFooterHeight" oor:type="xs:double"><value>3.1</value></prop><prop oor:name="PrintBendMarks" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintCompanyAddressReceiverField" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintCompanyLogo" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintFooter" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintGreeting" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintSalutation" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintSubjectLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ReceiverAddressType" oor:type="xs:int"><value>1</value></prop><prop oor:name="Salutation" oor:type="xs:string"><value/></prop><prop oor:name="SenderAddressType" oor:type="xs:int"><value>1</value></prop><prop oor:name="SenderCity" oor:type="xs:string"><value/></prop><prop oor:name="SenderCompanyName" oor:type="xs:string"><value/></prop><prop oor:name="SenderPostCode" oor:type="xs:string"><value/></prop><prop oor:name="SenderStreet" oor:type="xs:string"><value/></prop><prop oor:name="Style" oor:type="xs:int"><value>0</value></prop><prop oor:name="TemplateName" oor:type="xs:string"><value/></prop><prop oor:name="TemplatePath" oor:type="xs:string"><value/></prop><node oor:name="CompanyAddress"><prop oor:name="Display" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Height" oor:type="xs:double"><value>4</value></prop><prop oor:name="Width" oor:type="xs:double"><value>15</value></prop><prop oor:name="X" oor:type="xs:double"><value>6</value></prop><prop oor:name="Y" oor:type="xs:double"><value>0</value></prop></node><node oor:name="CompanyLogo"><prop oor:name="Display" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Height" oor:type="xs:double"><value>4</value></prop><prop oor:name="Width" oor:type="xs:double"><value>5</value></prop><prop oor:name="X" oor:type="xs:double"><value>0</value></prop><prop oor:name="Y" oor:type="xs:double"><value>0</value></prop></node><prop oor:name="Norm" oor:type="xs:int"><value>0</value></prop><prop oor:name="PrintLetterSigns" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="SenderState" oor:type="xs:string"><value/></prop></node><node oor:name="PrivateLetter"><prop oor:name="CreationType" oor:type="xs:int"><value>0</value></prop><prop oor:name="Greeting" oor:type="xs:string"><value/></prop><prop oor:name="PrintGreeting" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintSalutation" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintSubjectLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Salutation" oor:type="xs:string"><value/></prop><prop oor:name="Style" oor:type="xs:int"><value>0</value></prop><prop oor:name="TemplateName" oor:type="xs:string"><value/></prop><prop oor:name="TemplatePath" oor:type="xs:string"><value/></prop><prop oor:name="BusinessPaper" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Footer" oor:type="xs:string"><value/></prop><prop oor:name="FooterOnlySecondPage" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="FooterPageNumbers" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Norm" oor:type="xs:int"><value>0</value></prop><prop oor:name="PaperCompanyAddressReceiverField" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PaperFooter" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PaperFooterHeight" oor:type="xs:double"><value>0</value></prop><prop oor:name="PrintBendMarks" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PrintCompanyAddressReceiverField" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PrintCompanyLogo" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PrintFooter" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PrintLetterSigns" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="ReceiverAddressType" oor:type="xs:int"><value>0</value></prop><prop oor:name="SenderAddressType" oor:type="xs:int"><value>0</value></prop><prop oor:name="SenderCity" oor:type="xs:string"><value/></prop><prop oor:name="SenderCompanyName" oor:type="xs:string"><value/></prop><prop oor:name="SenderPostCode" oor:type="xs:string"><value/></prop><prop oor:name="SenderState" oor:type="xs:string"><value/></prop><prop oor:name="SenderStreet" oor:type="xs:string"><value/></prop><node oor:name="CompanyAddress"><prop oor:name="Display" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Height" oor:type="xs:double"><value>0</value></prop><prop oor:name="Width" oor:type="xs:double"><value>0</value></prop><prop oor:name="X" oor:type="xs:double"><value>0</value></prop><prop oor:name="Y" oor:type="xs:double"><value>0</value></prop></node><node oor:name="CompanyLogo"><prop oor:name="Display" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Height" oor:type="xs:double"><value>0</value></prop><prop oor:name="Width" oor:type="xs:double"><value>0</value></prop><prop oor:name="X" oor:type="xs:double"><value>0</value></prop><prop oor:name="Y" oor:type="xs:double"><value>0</value></prop></node></node><node oor:name="PrivateOfficialLetter"><prop oor:name="CreationType" oor:type="xs:int"><value>0</value></prop><prop oor:name="FooterPageNumbers" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Greeting" oor:type="xs:string"><value/></prop><prop oor:name="PrintBendMarks" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintCompanyAddressReceiverField" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintFooter" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintGreeting" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintSalutation" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintSubjectLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ReceiverAddressType" oor:type="xs:int"><value>1</value></prop><prop oor:name="Salutation" oor:type="xs:string"><value/></prop><prop oor:name="SenderAddressType" oor:type="xs:int"><value>1</value></prop><prop oor:name="SenderCity" oor:type="xs:string"><value/></prop><prop oor:name="SenderCompanyName" oor:type="xs:string"><value/></prop><prop oor:name="SenderPostCode" oor:type="xs:string"><value/></prop><prop oor:name="SenderState" oor:type="xs:string"><value/></prop><prop oor:name="SenderStreet" oor:type="xs:string"><value/></prop><prop oor:name="Style" oor:type="xs:int"><value>0</value></prop><prop oor:name="TemplateName" oor:type="xs:string"><value/></prop><prop oor:name="TemplatePath" oor:type="xs:string"><value/></prop><prop oor:name="BusinessPaper" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Footer" oor:type="xs:string"><value/></prop><prop oor:name="FooterOnlySecondPage" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Norm" oor:type="xs:int"><value>0</value></prop><prop oor:name="PaperCompanyAddressReceiverField" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PaperFooter" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PaperFooterHeight" oor:type="xs:double"><value>0</value></prop><prop oor:name="PrintCompanyLogo" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="PrintLetterSigns" oor:type="xs:boolean"><value>false</value></prop><node oor:name="CompanyAddress"><prop oor:name="Display" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Height" oor:type="xs:double"><value>0</value></prop><prop oor:name="Width" oor:type="xs:double"><value>0</value></prop><prop oor:name="X" oor:type="xs:double"><value>0</value></prop><prop oor:name="Y" oor:type="xs:double"><value>0</value></prop></node><node oor:name="CompanyLogo"><prop oor:name="Display" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Height" oor:type="xs:double"><value>0</value></prop><prop oor:name="Width" oor:type="xs:double"><value>0</value></prop><prop oor:name="X" oor:type="xs:double"><value>0</value></prop><prop oor:name="Y" oor:type="xs:double"><value>0</value></prop></node></node></node><node oor:name="Fax"><prop oor:name="FaxType" oor:type="xs:int"><value>0</value></prop><node oor:name="BusinessFax"><prop oor:name="CreationType" oor:type="xs:int"><value>0</value></prop><prop oor:name="Footer" oor:type="xs:string"><value/></prop><prop oor:name="FooterOnlySecondPage" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="FooterPageNumbers" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Greeting" oor:type="xs:string"><value/></prop><prop oor:name="CommunicationType" oor:type="xs:string"><value/></prop><prop oor:name="PrintCompanyLogo" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintFooter" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintGreeting" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintSalutation" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintSubjectLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintDate" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintCommunicationType" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ReceiverAddressType" oor:type="xs:int"><value>1</value></prop><prop oor:name="Salutation" oor:type="xs:string"><value/></prop><prop oor:name="SenderAddressType" oor:type="xs:int"><value>1</value></prop><prop oor:name="SenderCity" oor:type="xs:string"><value/></prop><prop oor:name="SenderCompanyName" oor:type="xs:string"><value/></prop><prop oor:name="SenderPostCode" oor:type="xs:string"><value/></prop><prop oor:name="SenderStreet" oor:type="xs:string"><value/></prop><prop oor:name="SenderFax" oor:type="xs:string"><value/></prop><prop oor:name="Style" oor:type="xs:int"><value>0</value></prop><prop oor:name="TemplateName" oor:type="xs:string"><value/></prop><prop oor:name="TemplatePath" oor:type="xs:string"><value/></prop></node><node oor:name="PrivateFax"><prop oor:name="CreationType" oor:type="xs:int"><value>0</value></prop><prop oor:name="Greeting" oor:type="xs:string"><value/></prop><prop oor:name="PrintGreeting" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintSalutation" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="PrintSubjectLine" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="Salutation" oor:type="xs:string"><value/></prop><prop oor:name="Style" oor:type="xs:int"><value>0</value></prop><prop oor:name="TemplateName" oor:type="xs:string"><value/></prop><prop oor:name="TemplatePath" oor:type="xs:string"><value/></prop></node></node><node oor:name="Agenda"><prop oor:name="IncludeMinutes"><value>true</value></prop><prop oor:name="ShowMeetingType"><value>true</value></prop><prop oor:name="ShowRead"><value>true</value></prop><prop oor:name="ShowNotes"><value>true</value></prop><prop oor:name="ShowCalledBy"><value>true</value></prop><prop oor:name="ShowAttendees"><value>true</value></prop></node></node><node oor:name="Notes"/></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice"><node oor:name="Office"><prop oor:name="ooSetupInstCompleted"><value>false</value></prop><prop oor:name="ooSetupShowIntro"><value>true</value></prop><node oor:name="Factories"><node oor:name="com.sun.star.text.WebDocument" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.text.WebDocument</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>WriterCommands</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>HTML</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter"><value>HTML</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/swriter/web</value></prop><prop oor:name="ooSetupFactoryWindowAttributes"><value/></prop><prop oor:name="ooSetupFactoryIcon"><value>12</value></prop><prop oor:name="ooSetupFactoryTemplateFile"><value/></prop><prop oor:name="ooSetupFactorySystemDefaultTemplateChanged"><value>false</value></prop><prop oor:name="ooSetupFactoryShortName"><value>sweb</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Writer/Web</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>WriterWebWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node><node oor:name="com.sun.star.frame.Bibliography" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/><prop oor:name="ooSetupFactoryCommandConfigRef"><value>BibliographyCommands</value></prop><prop oor:name="ooSetupFactoryShortName"><value>sbibliography</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>BibliographyWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Bibliography</value></prop></node><node oor:name="com.sun.star.script.BasicIDE" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/><prop oor:name="ooSetupFactoryCommandConfigRef"><value>BasicIDECommands</value></prop><prop oor:name="ooSetupFactoryShortName"><value>BasicIDE</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>BasicIDEWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Basic</value></prop></node><node oor:name="com.sun.star.chart2.ChartDocument" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.chart2.ChartDocument</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>ChartCommands</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>chart8</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter"><value>chart8</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/schart</value></prop><prop oor:name="ooSetupFactoryWindowAttributes"><value/></prop><prop oor:name="ooSetupFactoryIcon"><value>13</value></prop><prop oor:name="ooSetupFactoryTemplateFile"><value/></prop><prop oor:name="ooSetupFactorySystemDefaultTemplateChanged"><value>false</value></prop><prop oor:name="ooSetupFactoryShortName"><value>schart</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Chart</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>ChartWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node></node></node><node oor:name="L10N"/><node oor:name="Configuration"><prop oor:name="TransferUserSettingsOnce" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="Migration"><node oor:name="SupportedVersions"><node oor:name="OpenOffice.org3+OpenOffice.org2+StarOffice8+StarSuite8+Libreoffice3" oor:op="replace"><prop oor:name="Priority"><value>10</value></prop><prop oor:name="VersionIdentifiers"><value oor:separator=",">Libreoffice 3=libreoffice/3,Openofice.org 3=openoffice.org/3,OpenOffice.org 2=openoffice.org2,StarOffice 8=staroffice8,StarSuite 8=starsuite8</value></prop><node oor:name="MigrationSteps"><node oor:name="Datasources" oor:op="replace"><prop oor:name="IncludedFiles"><value>.*/database/biblio/biblio\.dbf</value></prop><prop oor:name="ExcludedFiles"/><prop oor:name="IncludedNodes"><value>/org.openoffice.Office.DataAccess</value></prop><prop oor:name="ExcludedNodes"><value><it>/org.openoffice.Office.DataAccess/Bibliography</it><it>/org.openoffice.Office.DataAccess/ConnectionPool</it><it>/org.openoffice.Office.DataAccess/DataSources</it><it>/org.openoffice.Office.DataAccess/DriverManager</it></value></prop></node><node oor:name="Deployment" oor:op="replace"><prop oor:name="MigrationService"><value>com.sun.star.migration.Extensions</value></prop></node><node oor:name="Inet" oor:op="replace"><prop oor:name="IncludedNodes"><value>/org.openoffice.Inet</value></prop></node><node oor:name="Basic" oor:op="replace"><prop oor:name="MigrationService"><value>com.sun.star.migration.Basic</value></prop></node><node oor:name="UserProfile" oor:op="replace"><prop oor:name="IncludedNodes"><value>/org.openoffice.UserProfile</value></prop></node><node oor:name="Common" oor:op="replace"><prop oor:name="IncludedFiles"><value><it>.*/autotext/.*</it><it>.*/autocorr/.*</it><it>.*/config/.*\.so[bcdegh]</it><it>.*/config/soffice.cfg/modules/.*/toolbar/custom.*\.xml</it><it>.*/config/soffice.cfg/modules/.*/images/.*</it><it>.*/gallery/.*</it><it>.*/template/.*</it></value></prop><prop oor:name="IncludedNodes"><value><it>/org.openoffice.Office.Compatibility</it><it>/org.openoffice.Office.Custom</it><it>/org.openoffice.Office.Embedding</it><it>/org.openoffice.Office.Events</it><it>/org.openoffice.Office.ExtendedColorScheme</it><it>/org.openoffice.Office.Common/Accessibility</it><it>/org.openoffice.Office.Common/Accessibility/AutoDetectSystemHC</it><it>/org.openoffice.Office.Common/AsianLayout</it><it>/org.openoffice.Office.Common/AutoCorrect</it><it>/org.openoffice.Office.Common/Cache</it><it>/org.openoffice.Office.Common/DateFormat</it><it>/org.openoffice.Office.Common/ExternalMailer/Program</it><it>/org.openoffice.Office.Common/Filter</it><it>/org.openoffice.Office.Common/Font</it><it>/org.openoffice.Office.Common/Forms</it><it>/org.openoffice.Office.Common/Gallery</it><it>/org.openoffice.Office.Common/Help</it><it>/org.openoffice.Office.Common/History</it><it>/org.openoffice.Office.Common/I18N</it><it>/org.openoffice.Office.Common/InternalMSExport</it><it>/org.openoffice.Office.Common/Load</it><it>/org.openoffice.Office.Common/Misc/FormControlPilotsEnabled</it><it>/org.openoffice.Office.Common/Misc/PluginsEnabled</it><it>/org.openoffice.Office.Common/Misc/SymbolSet</it><it>/org.openoffice.Office.Common/Misc/UseSystemFileDialog</it><it>/org.openoffice.Office.Common/Misc/UseSystemPrintDialog</it><it>/org.openoffice.Office.Common/Misc/SymbolStyle</it><it>/org.openoffice.Office.Common/Passwords</it><it>/org.openoffice.Office.Common/Print/PrintingModifiesDocument</it><it>/org.openoffice.Office.Common/Print/Warning</it><it>/org.openoffice.Office.Common/Vectorize</it><it>/org.openoffice.Office.Common/Save</it><it>/org.openoffice.Office.Common/SearchOptions</it><it>/org.openoffice.Office.Common/Undo</it><it>/org.openoffice.Office.Common/View/Dialog/Dialog/MiddleMouseButton</it><it>/org.openoffice.Office.Common/View/Dialog/MousePositioning</it><it>/org.openoffice.Office.Common/View/Localization</it><it>/org.openoffice.Office.Common/View/Menu</it><it>/org.openoffice.Office.Common/_3D_Engine</it></value></prop><prop oor:name="ExcludedNodes"><value><it>/org.openoffice.Office.Common/_3D_Engine/OpenGL</it><it>/org.openoffice.Office.Common/Help/Registration</it></value></prop></node><node oor:name="Calc" oor:op="replace"><prop oor:name="IncludedNodes"><value>/org.openoffice.Office.Calc</value></prop></node><node oor:name="Chart" oor:op="replace"><prop oor:name="IncludedNodes"><value>/org.openoffice.Office.Chart</value></prop></node><node oor:name="Draw" oor:op="replace"><prop oor:name="IncludedNodes"><value>/org.openoffice.Office.Draw</value></prop></node><node oor:name="Impress" oor:op="replace"><prop oor:name="IncludedNodes"><value>/org.openoffice.Office.Impress</value></prop></node><node oor:name="Labels" oor:op="replace"><prop oor:name="IncludedNodes"><value>/org.openoffice.Office.Labels</value></prop></node><node oor:name="Linguistic" oor:op="replace"><prop oor:name="MigrationService"><value>com.sun.star.migration.Wordbooks</value></prop><prop oor:name="IncludedNodes"><value>/org.openoffice.Office.Linguistic</value></prop><prop oor:name="ExcludedNodes"><value>/org.openoffice.Office.Linguistic/ServiceManager</value></prop></node><node oor:name="Math" oor:op="replace"><prop oor:name="IncludedNodes"><value>/org.openoffice.Office.Math</value></prop></node><node oor:name="Security" oor:op="replace"><prop oor:name="IncludedNodes"><value>/org.openoffice.Office.Security</value></prop></node><node oor:name="UI" oor:op="replace"><prop oor:name="IncludedNodes"><value>/org.openoffice.Office.UI/ColorScheme</value></prop></node><node oor:name="Writer" oor:op="replace"><prop oor:name="IncludedNodes"><value><it>/org.openoffice.Office.Writer</it><it>/org.openoffice.Office.WriterWeb</it></value></prop><prop oor:name="ExcludedNodes"><value>/org.openoffice.Office.Writer/Wizard</value></prop></node></node></node></node></node></oor:component-data><oor:component-data oor:package="org.openoffice" oor:name="System"><node oor:name="L10N"><prop oor:name="Locale"><value oor:external="com.sun.star.configuration.backend.LocaleBackend Locale"/></prop><prop oor:name="UILocale"><value oor:external="com.sun.star.configuration.backend.LocaleBackend UILocale"/></prop><prop oor:name="SystemLocale"><value oor:external="com.sun.star.configuration.backend.LocaleBackend SystemLocale"/></prop></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="UISort" oor:package="org.openoffice.TypeDetection"/><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="UserProfile" oor:package="org.openoffice"><node oor:name="Data"/></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="VCL" oor:package="org.openoffice"><node oor:name="Settings"><node oor:name="Accessibility" oor:op="replace"><prop oor:name="EnableATToolSupport" oor:type="xs:string" oor:op="replace"><value>false</value></prop></node><node oor:name="DesktopManagement" oor:op="replace"><prop oor:name="DisablePrinting" oor:type="xs:string" oor:op="replace"><value>false</value></prop></node><node oor:name="Transfer" oor:op="replace"><prop oor:name="SelectionTimeout" oor:type="xs:string" oor:op="replace"><value>3</value></prop></node><node oor:name="Menu" oor:op="replace"><prop oor:name="SuppressAccelerators" oor:type="xs:string" oor:op="replace"><value>false</value></prop></node><node oor:name="PrintDialog" oor:op="replace"><prop oor:name="Collate" oor:op="replace" oor:type="xs:string"><value>true</value></prop><prop oor:name="CollateBox" oor:op="replace" oor:type="xs:string"><value>Default</value></prop></node><node oor:name="WM" oor:op="replace"><prop oor:name="ShouldSwitchWorkspace" oor:op="replace" oor:type="xs:string"><value/></prop></node></node><node oor:name="DefaultFonts"><node oor:name="en" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Liberation Sans;Nimbus Sans L;DejaVu Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="CJK_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;AR PL ShanHeiSun Uni;MS PGothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Liberation Sans;Nimbus Sans L;DejaVu Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Liberation Mono;Nimbus Mono L;DejaVu Sans Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Liberation Sans;Nimbus Sans L;DejaVu Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Liberation Sans;Nimbus Sans L;DejaVu Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Liberation Serif;Nimbus Roman No9 L;DejaVu Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="CJK_HEADING" oor:type="xs:string" oor:op="replace"><value>HG Mincho Light J;MS Mincho;HG Mincho J;HG Mincho L;HG Mincho;Mincho;MS PMincho;HG Mincho Light J;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;AR PL ShanHeiSun Uni;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>HG Mincho Light J;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;AR PL ShanHeiSun Uni;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic;MS PGothic;AR PL ShanHeiSun Uni;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CTL_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Liberation Sans;Nimbus Sans L;DejaVu Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="SANS_UNICODE" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;Arial Unicode MS;DejaVu Sans;Lucida Sans Unicode;Tahoma;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Liberation Serif;DejaVu Serif;Nimbus Roman No9 L;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="SYMBOL" oor:type="xs:string" oor:op="replace"><value>StarSymbol;OpenSymbol;Andale Sans UI;Arial Unicode MS;StarBats;Zapf Dingbats;WingDings;Symbol</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Liberation Mono;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Liberation Mono;Nimbus Mono L;DejaVu Sans Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;DejaVu Sans;Albany AMT;Albany;Arial;Nimbus Sans L;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Lucida;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="cs" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="el" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;DejaVu Sans;CMU Sans Serif;FreeSans;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;DejaVu Sans;CMU Sans Serif;FreeSans;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;DejaVu Sans Mono;CMU Typewriter Text;FreeMono;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;DejaVu Sans;CMU Sans Serif;FreeSans;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;DejaVu Sans;CMU Sans Serif;FreeSans;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;DejaVu Serif;CMU Serif;FreeSerif;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;DejaVu Sans;CMU Sans Serif;FreeSans;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;DejaVu Serif;CMU Serif;FreeSerif;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;DejaVu Sans Mono;CMU Typewriter Text;FreeMono;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;DejaVu Sans Mono;CMU Typewriter Text;FreeMono;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;DejaVu Sans;CMU Sans Serif;FreeSans;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop></node><node oor:name="hr-HR" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="hu-HU" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="pl-PL" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="tg" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Palatino Linotype;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Palatino Linotype;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>Palatino Linotype;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Palatino Linotype;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Palatino Linotype;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Palatino Linotype;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Palatino Linotype;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Palatino Linotype;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>Palatino Linotype;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>Palatino Linotype;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Palatino Linotype;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Palatino;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop></node><node oor:name="ro-RO" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="sk-SK" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="sl-SI" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Luxi Sans;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="ar" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Tahoma;Traditional Arabic;Simplified Arabic;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop><prop oor:name="SANS_UNICODE" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;SansSerif</value></prop><prop oor:name="CTL_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:type="xs:string" oor:op="replace"><value>Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="he" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;supplement;Andale Sans UI;arialunicodems;lucidasansunicode;interfaceuser;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop><prop oor:name="SANS_UNICODE" oor:type="xs:string" oor:op="replace"><value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;lucidasans;arialunicodems;lucidasansunicode;tahoma;nachlieli;lucidagrande;clearlyu;lucida;sansserif</value></prop><prop oor:name="CTL_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value></prop><prop oor:name="CTL_HEADING" oor:type="xs:string" oor:op="replace"><value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value></prop><prop oor:name="CTL_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value></prop><prop oor:name="CTL_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value></prop><prop oor:name="CTL_TEXT" oor:type="xs:string" oor:op="replace"><value>Nachlieli CLM;Miriam CLM;Ellinia CLM;Aharoni CLM;Drugulin CLM;Miriam Mono CLM;tahoma;nachlieli;lucidagrande;lucidasans;arialunicodems</value></prop></node><node oor:name="th" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Tahoma;Arial Unicode MS;Waree;Loma;Thonburi;Lucidasans;Lucida Sans;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Tahoma;Arial Unicode MS;Waree;Loma;Thonburi;Lucidasans;Lucida Sans;Angsana New</value></prop><prop oor:name="CTL_HEADING" oor:type="xs:string" oor:op="replace"><value>Cordia New;CordiaUPC;Browallia New;BrowalliaUPC;Bromlila;Corada;Umpush;Thonburi;TH SarabunPSK;TH SarabunNew;Angsana New;AngsanaUPC;Tahoma;Arial Unicode MS;Lucidasans;Lucida Sans</value></prop><prop oor:name="CTL_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Cordia New;CordiaUPC;Browallia New;BrowalliaUPC;Bromlila;Corada;Umpush;Thonburi;TH SarabunPSK;TH SarabunNew;Angsana New;AngsanaUPC;Tahoma;Arial Unicode MS;Lucidasans;Lucida Sans</value></prop><prop oor:name="CTL_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Tahoma;Arial Unicode MS;Waree;Loma;Thonburi;TH SarabunPSK;TH SarabunNew;Angsana New;AngsanaUPC;Lucidasans;Lucida Sans</value></prop><prop oor:name="CTL_TEXT" oor:type="xs:string" oor:op="replace"><value>Angsana New;AngsanaUPC;Angsima;Kinnari;Norasi;Thonburi;TH SarabunPSK;TH SarabunNew;Tahoma;Arial Unicode MS;Lucidasans;Lucida Sans</value></prop></node><node oor:name="ja" oor:op="replace"><prop oor:name="CJK_TEXT" oor:type="xs:string" oor:op="replace"><value>HG 明æœL Sun;HG MinchoL Sun;HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;HG Mincho Light J;ï¼­ï¼³ P明æœ;ãƒ’ãƒ©ã‚®ãƒŽæ˜Žæœ ProN W3;ãƒ’ãƒ©ã‚®ãƒŽæ˜Žæœ Pro W3;UmePlus P Gothic;TLP明æœ;LX明æœ;HGPMinchoL;IPA P明æœ;æ±é¢¨æ˜Žæœ;Kochi Mincho;ã•ã–ãªã¿æ˜Žæœ;Mincho;Serif</value></prop><prop oor:name="CJK_HEADING" oor:type="xs:string" oor:op="replace"><value>HG 明æœL Sun;HG 明æœL;HG Mincho Light J;ï¼­ï¼³ Pゴシック;ヒラギノ角ゴ ProN W3;ヒラギノ角ゴ Pro W3;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Gothic;ï¼­ï¼³ 明æœ;HG Mincho J;HG Mincho L;HG Mincho;Mincho;ï¼­ï¼³ P明æœ;HG Mincho Light J;ï¼­ï¼³ ゴシック;HG Gothic J;HG Gothic B;HG Gothic;Gothic;ï¼­ï¼³ Pゴシック;UmePlus P Gothic;Andale Sans UI</value></prop><prop oor:name="CJK_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;ãƒ’ãƒ©ã‚®ãƒŽæ˜Žæœ ProN W3;ãƒ’ãƒ©ã‚®ãƒŽæ˜Žæœ Pro W3;HG-PGothicB;HG-GothicB;HG Mincho Light J;ï¼­ï¼³ Pゴシック;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;ï¼­ï¼³ ゴシック;ï¼­ï¼³ Pゴシック;HG Gothic;HG Gothic B;UmePlus P Gothic;Gothic;Andale Sans UI</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Andale;Arial</value></prop><prop oor:name="CJK_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;ï¼­ï¼³ Pゴシック;ヒラギノ角ゴ ProN W3;ヒラギノ角ゴ Pro W3;TLPゴシック;LXゴシック;ãƒ’ãƒ©ã‚®ãƒŽæ˜Žæœ ProN W3;ãƒ’ãƒ©ã‚®ãƒŽæ˜Žæœ Pro W3;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;UmePlus P Gothic;Andale Sans UI;Kochi Gothic;HG Gothic J;HG Gothic B;HG Gothic;Gothic</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>HG PゴシックB Sun;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;Andale Sans UI;ï¼­ï¼³ Pゴシック;ヒラギノ角ゴ ProN W3;ヒラギノ角ゴ Pro W3;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;MS Gothic;HG Gothic J;HG Gothic B;HG Gothic;Kochi Gothic;MS PGothic;UmePlus P Gothic;Gothic</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>HG ゴシックB Sun;HG-GothicB Sun;HG Mincho Light J;ï¼­ï¼³ Pゴシック;Osaka;ヒラギノ角ゴ ProN W3;ヒラギノ角ゴ Pro W3;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Kochi Gothic;UmePlus Gothic;Gothic</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>HG ゴシックB Sun;HG-GothicB Sun;HG ゴシックB;HG Mincho Light J;ï¼­ï¼³ Pゴシック;ヒラギノ角ゴ ProN W3;ヒラギノ角ゴ Pro W3;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Kochi Gothic;UmePlus Gothic;Gothic</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>HG PゴシックB Sun;Osaka;ヒラギノ角ゴ ProN W3;ヒラギノ角ゴ Pro W3;HG-PGothicB Sun;HG PゴシックB;HG-PGothicB;HG-GothicB;UmePlus P Gothic;Andale Sans UI;HG Mincho Light J;標準;TLPゴシック;LXゴシック;HGPGothicB;IPA Pゴシック;æ±é¢¨ã‚´ã‚·ãƒƒã‚¯;ã•ã–ãªã¿ã‚´ã‚·ãƒƒã‚¯;Kochi Gothic;Gothic;Gnu-Unifont</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>hgmincholightj;cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidasanstypewriter;lucidatypewriter;monaco;monospaced</value></prop></node><node oor:name="zh-cn" oor:op="replace"><prop oor:name="CJK_DISPLAY" oor:type="xs:string" oor:op="replace"><value>微软雅黑;方正宋体;ZYSong18030;AR PL SungtiL GB;MSung Light SC;SimSun;Song;FZSongYi;FZShuSong;NSimSun;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>方正宋体;ZYSong18030;AR PL SungtiL GB;新宋体;NSimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light SC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="CJK_HEADING" oor:type="xs:string" oor:op="replace"><value>微软雅黑;方正黑体;方正宋体;ZYSong18030;AR PL SungtiL GB;宋体;SimSun;黑体;文鼎PL中楷Uni;AR PL ZenKai Uni;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light SC;Song;FZSongYi;FZShuSong;NSimSun;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>微软雅黑;方正宋体;ZYSong18030;AR PL SungtiL GB;宋体;SimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light SC;Song;FZSongYi;FZShuSong;NSimSun;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>微软雅黑;方正宋体;ZYSong18030;AR PL SungtiL GB;宋体;SimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light SC;Song;FZSongYi;FZShuSong;NSimSun;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_TEXT" oor:type="xs:string" oor:op="replace"><value>方正宋体;ZYSong18030;AR PL SungtiL GB;SimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light SC;Song;FZSongYi;FZShuSong;NSimSun;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>方正宋体;ZYSong18030;AR PL SungtiL GB;新宋体;NSimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light SC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>方正宋体;ZYSong18030;AR PL SungtiL GB;新宋体;NSimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light SC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>方正宋体;ZYSong18030;AR PL SungtiL GB;SimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;Andale Sans UI;ZYSong18030;AR PL SungtiL GB;AR PL KaitiM GB;SimSun;Arial Unicode MS;Fangsong;Hei;Song;Kai;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="zh-tw" oor:op="replace"><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>方正明體;AR PL Mingti2L Big5;細明體;MingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="CJK_DISPLAY" oor:type="xs:string" oor:op="replace"><value>微軟正黑體;方正明體;AR PL Mingti2L Big5;新細明體;PMingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;MingLiU;Ming;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_HEADING" oor:type="xs:string" oor:op="replace"><value>方正黑体;新細明體;PMingLiU;文鼎PL中楷Uni;AR PL ZenKai Uni;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;MingLiU;Ming;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>微軟正黑體;方正明體;AR PL Mingti2L Big5;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;MingLiU;Ming;PMingLiU;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>微軟正黑體;方正明體;AR PL Mingti2L Big5;新細明體;PMingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;MingLiU;Ming;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_TEXT" oor:type="xs:string" oor:op="replace"><value>微軟正黑體;方正明體;AR PL Mingti2L Big5;新細明體;PMingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;MingLiU;Ming;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>方正明體;AR PL Mingti2L Big5;細明體;MingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>方正明體;AR PL Mingti2L Big5;細明體;MingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>微軟正黑體;方正明體;AR PL Mingti2L Big5;新細明體;PMingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;Andale Sans UI;AR PL Mingti2L Big5;AR PL KaitiM Big5;Kai;Arial Unicode MS;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="zh-hk" oor:op="replace"><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>方正明體;AR PL Mingti2L Big5;細明體;MingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="CJK_DISPLAY" oor:type="xs:string" oor:op="replace"><value>微軟正黑體;方正明體;AR PL Mingti2L Big5;新細明體;PMingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;MingLiU;Ming;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_HEADING" oor:type="xs:string" oor:op="replace"><value>微軟正黑體;FZHeiTi;方正明體;AR PL Mingti2L Big5;新細明體;PMingLiU;文鼎PL中楷Uni;AR PL ZenKai Uni;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;MingLiU;Ming;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>微軟正黑體;方正明體;AR PL Mingti2L Big5;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;MingLiU;Ming;PMingLiU;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>微軟正黑體;方正明體;AR PL Mingti2L Big5;新細明體;PMingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;MingLiU;Ming;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_TEXT" oor:type="xs:string" oor:op="replace"><value>方正明體;AR PL Mingti2L Big5;新細明體;PMingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;MingLiU;Ming;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>方正明體;AR PL Mingti2L Big5;細明體;MingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>方正明體;AR PL Mingti2L Big5;細明體;MingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>微軟正黑體;方正明體;AR PL Mingti2L Big5;新細明體;PMingLiU;文鼎PL細上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;Andale Sans UI;AR PL Mingti2L Big5;AR PL KaitiM Big5;Kai;Arial Unicode MS;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="zh-sg" oor:op="replace"><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>方正宋体;ZYSong18030;AR PL SungtiL GB;新宋体;NSimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="CJK_DISPLAY" oor:type="xs:string" oor:op="replace"><value>微软雅黑;方正宋体;ZYSong18030;AR PL SungtiL GB;宋体;SimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;Song;FZSongYi;FZShuSong;MSung Light TC;MingLiU;Ming;PMingLiU;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_HEADING" oor:type="xs:string" oor:op="replace"><value>微软雅黑;方正黑体;方正宋体;ZYSong18030;AR PL SungtiL GB;宋体;SimSun;文鼎PL中楷Uni;AR PL ZenKai Uni;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;Song;FZSongYi;FZShuSong;MSung Light TC;MingLiU;Ming;PMingLiU;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>微软雅黑;方正宋体;ZYSong18030;AR PL SungtiL GB;SimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;Song;FZSongYi;FZShuSong;MSung Light TC;MingLiU;Ming;PMingLiU;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>微软雅黑;方正宋体;ZYSong18030;AR PL SungtiL GB;SimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;Song;FZSongYi;FZShuSong;MSung Light TC;MingLiU;Ming;PMingLiU;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="CJK_TEXT" oor:type="xs:string" oor:op="replace"><value>微软雅黑;方正宋体;ZYSong18030;AR PL SungtiL GB;宋体;SimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;Song;FZSongYi;FZShuSong;MSung Light TC;MingLiU;Ming;PMingLiU;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>方正宋体;ZYSong18030;AR PL SungtiL GB;新宋体;NSimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>方正宋体;ZYSong18030;AR PL SungtiL GB;新宋体;NSimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;MSung Light TC;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>方正宋体;ZYSong18030;AR PL SungtiL GB;SimSun;文鼎PL细上海宋Uni;AR PL ShanHeiSun Uni;文鼎PL新宋;AR PL New Sung;Andale Sans UI;ZYSong18030;AR PL SungtiL GB;AR PL KaitiM GB;SimSun;Arial Unicode MS;Fangsong;Hei;Song;Kai;Ming;gnu-unifont;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="ko-kr" oor:op="replace"><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;Baekmuk Batang;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>ì¬ë‹ì›€;SunDotum;Baekmuk Dotum;ë‹ì›€;Dotum;ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;Baekmuk Batang;Roundgothic;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>ì¬ë°”탕;SunBatang;Baekmuk Batang;바탕;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;Baekmuk Batang;Roundgothic;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;Batang;Myeongjo;Gulim;Baekmuk Batang;Roundgothic;Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>ì¬ë‹ì›€;SunDotum;Baekmuk Dotum;ë‹ì›€;Dotum;백묵ë‹ì›€;BaekmukDotum;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;Gulim;Baekmuk Batang;Roundgothic</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>ì¬ë°”탕;SunBatang;Baekmuk Batang;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;Gulim;Baekmuk Batang;Roundgothic;Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>ì¬ë‹ì›€;SunDotum;Baekmuk Dotum;ë‹ì›€;Dotum;바탕;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;Baekmuk Batang;Roundgothic;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="SANS_UNICODE" oor:type="xs:string" oor:op="replace"><value>ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;Baekmuk Batang;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;Tahoma;Albany AMT;Albany;Arial;Nimbus Sans L;Helvetica;Lucida;Geneva;Helmet;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;Batang;Myeongjo;Gulim;Baekmuk Batang;Roundgothic;Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="CJK_DISPLAY" oor:type="xs:string" oor:op="replace"><value>ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;Baekmuk Batang;Roundgothic;Andale Sans UI;Arial Unicode MS</value></prop><prop oor:name="CJK_HEADING" oor:type="xs:string" oor:op="replace"><value>ì¬ë°”탕;SunBatang;Baekmuk Batang;바탕;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;Andale Sans UI;Gulim;Baekmuk Batang;Roundgothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode</value></prop><prop oor:name="CJK_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;바탕;Batang;Baekmuk Batang;Myeongjo;Andale Sans UI;Gulim;Roundgothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode</value></prop><prop oor:name="CJK_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>ì¬ë‹ì›€;SunDotum;Baekmuk Dotum;ë‹ì›€;Dotum;바탕;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;Baekmuk Batang;Andale Sans UI;Gulim;Roundgothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode</value></prop><prop oor:name="CJK_TEXT" oor:type="xs:string" oor:op="replace"><value>ì¬ë°”탕;SunBatang;Baekmuk Batang;바탕;Batang;Myeongjo;ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;Andale Sans UI;Gulim;Baekmuk Batang;Roundgothic;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;Baekmuk Batang;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>ì¬êµ´ë¦¼;sungulim;굴림;Gulim;Baekmuk Batang;RoundGothic;Arial Unicode MS;Lucida Sans Unicode;AndaleSansUI;GNU-Unifont</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>ì¬êµ´ë¦¼;SunGulim;Baekmuk Gulim;굴림;Gulim;Baekmuk Batang;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop></node><node oor:name="bn" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Mukti Narrow;Lohit Bengali;Vrinda;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU;Interface User;WarpSans;Geneva;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Mukti Narrow;Lohit Bengali;Vrinda;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Mukti Narrow;Lohit Bengali;Vrinda;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Mukti Narrow;Lohit Bengali;Vrinda;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Mukti Narrow;Lohit Bengali;Vrinda;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Mukti Narrow;Lohit Bengali;Vrinda;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="dz" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Wangdi;Dzongkha Machine Uni;Tibetan Machine Uni;Wagdi29;Uchen_05;Tsuig_03;XTashi</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Wangdi;Dzongkha Machine Uni;Wagdi29;Uchen_05;Tsuig_03;XTashi;Tibetan Machine Uni</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Wangdi;Dzongkha Machine Uni;Wagdi29;Uchen_05;Tsuig_03;XTashi;Tibetan Machine Uni</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Wangdi;Dzongkha Machine Uni;Wagdi29;Uchen_05;Tsuig_03;XTashi;Tibetan Machine Uni</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Wangdi;Dzongkha Machine Uni;Wagdi29;Uchen_05;Tsuig_03;XTashi;Tibetan Machine Uni</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Wangdi;Dzongkha Machine Uni;Wagdi29;Uchen_05;Tsuig_03;XTashi;Tibetan Machine Uni</value></prop></node><node oor:name="km" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Khmer OS System;Khmer OS;XenoType Khmer</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Khmer OS System;Khmer OS;XenoType Khmer</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Khmer OS;Khmer OS System;XenoType Khmer</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Khmer OS;Khmer OS System;XenoType Khmer</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Khmer OS System;Khmer OS;XenoType Khmer</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Khmer OS;Khmer OS System;XenoType Khmer</value></prop></node><node oor:name="lo" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Phetsarath OT;Arial Unicode MS;Dok Champa;Saysettha OT;Saysettha Unicode;JG Basic Lao;JG Chantabouli Lao</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Phetsarath OT;Arial Unicode MS;Dok Champa;Saysettha OT;Saysettha Unicode;JG Basic Lao;JG Chantabouli Lao</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Phetsarath OT;Arial Unicode MS;Dok Champa;Saysettha OT;Saysettha Unicode;JG Basic Lao;JG Chantabouli Laog</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Phetsarath OT;Arial Unicode MS;Dok Champa;Saysettha OT;Saysettha Unicode;JG Basic Lao;JG Chantabouli Lao</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Phetsarath OT;Arial Unicode MS;Dok Champa;Saysettha OT;Saysettha Unicode;JG Basic Lao;JG Chantabouli Lao</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Phetsarath OT;Arial Unicode MS;Dok Champa;Saysettha OT;Saysettha Unicode;JG Basic Lao;JG Chantabouli Lao</value></prop></node><node oor:name="my" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Padauk;Myanmar3;MyMyanmar Unicode;Parabaik</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Padauk;Myanmar3;MyMyanmar Unicode;Parabaik</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Padauk;Myanmar3;MyMyanmar Unicode;Parabaik</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Padauk;Myanmar3;MyMyanmar Unicode;Parabaik</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Padauk;Myanmar3;MyMyanmar Unicode;Parabaik</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Padauk;Myanmar3;MyMyanmar Unicode;Parabaik</value></prop></node><node oor:name="ne" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Lohit Nepali;Kalimati;Samanata;Sans</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Lohit Nepali;Kalimati;Samanata;Sans</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Lohit Nepali;Kalimati;Samanata;Sans</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Lohit Nepali;Kalimati;Samanata;Sans</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Lohit Nepali;Kalimati;Samanata;Sans</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Lohit Nepali;Kalimati;Samanata;Sans</value></prop></node><node oor:name="as-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Lohit Assamese;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="bn-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Lohit Bengali;Vrinda;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="hi-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Lohit Hindi;Mangal;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="gu-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Lohit Gujarati;Shruti;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="kn-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Lohit Kannada;Tunga;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="mai-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Lohit Maithili;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="ml-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>AnjaliOldLipi;Lohit Malayalam;Meera;Tahoma;Lucidasans;Lucida Sans;Supplement;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>AnjaliOldLipi;Lohit Malayalam;Meera;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>AnjaliOldLipi;Lohit Malayalam;Meera;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>AnjaliOldLipi;Lohit Malayalam;Meera;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>AnjaliOldLipi;Lohit Malayalam;Meera;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>AnjaliOldLipi;Lohit Malayalam;Meera;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="mr-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Lohit Marathi;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="or-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>utkal;Kalinga;Lohit Oriya;Samyak Oriya;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="pa-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Raavi;Lohit Punjabi;Saab;Tahoma</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Raavi;Lohit Punjabi;Saab;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Raavi;Lohit Punjabi;Saab;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Raavi;Lohit Punjabi;Saab;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Raavi;Lohit Punjabi;Saab;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Raavi;Lohit Punjabi;Saab;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="ta-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Lohit Tamil;Latha;Sans Serif</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Lohit Tamil;Latha;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Lohit Tamil;Latha;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Lohit Tamil;Latha;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Lohit Tamil;Latha;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Lohit Tamil;Latha;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="te-IN" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Lohit Telugu;Gautami;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="ur" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>PakTypeNaqsh;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node><node oor:name="ak-GH" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>Arial Unicode MS;Lucida Sans Unicode;Gentium;Aboriginal Sans;FreeSans;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Andale Sans UI;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>Arial Unicode MS;Lucida Sans Unicode;Gentium;Aboriginal Sans;FreeSans;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>FreeMono;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>Arial Unicode MS;Lucida Sans Unicode;Gentium;Aboriginal Sans;FreeSans;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Andale Sans UI;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>Arial Unicode MS;Lucida Sans Unicode;Gentium;Aboriginal Sans;FreeSans;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>Gentium;Aboriginal Serif;FreeSerif;Luxi Serif;Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Times;Lucida Serif;Lucida Bright;Serif</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>Arial Unicode MS;Lucida Sans Unicode;Gentium;Aboriginal Sans;FreeSans;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Tahoma;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value> Gentium;Aboriginal Serif;FreeSerif;Luxi Serif;Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Times;Lucida Serif;Lucida Bright;Serif</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>FreeMono;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>FreeMono;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>Arial Unicode MS;Lucida Sans Unicode;Gentium;Aboriginal Sans;FreeSans;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Tahoma;SansSerif</value></prop></node><node oor:name="uz" oor:op="replace"><prop oor:name="LATIN_DISPLAY" oor:type="xs:string" oor:op="replace"><value>DejaVu Sans;Arial Unicode MS;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_HEADING" oor:type="xs:string" oor:op="replace"><value>DejaVu Sans;Arial Unicode MS;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_FIXED" oor:type="xs:string" oor:op="replace"><value>DejaVu Sans Mono;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="LATIN_PRESENTATION" oor:type="xs:string" oor:op="replace"><value>DejaVu Sans;Arial Unicode MS;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Serif;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_SPREADSHEET" oor:type="xs:string" oor:op="replace"><value>DejaVu Sans;Arial Unicode MS;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="LATIN_TEXT" oor:type="xs:string" oor:op="replace"><value>DejaVu Serif;Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="SANS" oor:type="xs:string" oor:op="replace"><value>DejaVu Sans;Arial Unicode MS;Albany AMT;Albany;Arial;Nimbus Sans L;Luxi Sans;Helvetica;Lucida;Geneva;Helmet;Andale Sans UI;Lucida Sans Unicode;Tahoma;SansSerif</value></prop><prop oor:name="SERIF" oor:type="xs:string" oor:op="replace"><value>DejaVu Serif;Thorndale AMT;Thorndale;Times New Roman;Nimbus Roman No9 L;Luxi Serif;Times;Lucida Serif;Lucida Bright;Timmons;New York;Serif</value></prop><prop oor:name="UI_FIXED" oor:type="xs:string" oor:op="replace"><value>DejaVu Serif;DejaVu Sans Mono;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="FIXED" oor:type="xs:string" oor:op="replace"><value>DejaVu Serif;DejaVu Sans Mono;Cumberland AMT;Cumberland;Courier New;Nimbus Mono L;Luxi Mono;Courier;Lucida Sans Typewriter;Lucida Typewriter;Monaco;Monospaced</value></prop><prop oor:name="UI_SANS" oor:type="xs:string" oor:op="replace"><value>DejaVu Sans;Arial Unicode MS;Andale Sans UI;Lucida Sans Unicode;Tahoma;Luxi Sans;Interface User;WarpSans;Geneva;Tahoma;MS Sans Serif;Helv;Dialog;Albany AMT;Albany;Lucida;Arial;Nimbus Sans L;Helvetica;Charcoal;Chicago;Helmet;Interface System;Sans Serif</value></prop></node><node oor:name="af" oor:op="replace"/><node oor:name="nr" oor:op="replace"/><node oor:name="nso" oor:op="replace"/><node oor:name="sw" oor:op="replace"/><node oor:name="ts" oor:op="replace"/><node oor:name="tn" oor:op="replace"/><node oor:name="ss" oor:op="replace"/><node oor:name="st" oor:op="replace"/><node oor:name="xh" oor:op="replace"/><node oor:name="zu" oor:op="replace"/><node oor:name="vi" oor:op="replace"/><node oor:name="rw" oor:op="replace"/><node oor:name="si" oor:op="replace"><prop oor:name="UI_SANS" oor:op="replace" oor:type="xs:string"><value>LKLUG;Iskoola Pota;Lucidasans;Lucida Sans;Andale Sans UI;Arial Unicode MS;Lucida Sans Unicode;clearlyU</value></prop><prop oor:name="CTL_DISPLAY" oor:op="replace" oor:type="xs:string"><value>Iskoola Pota;LKLUG;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_HEADING" oor:op="replace" oor:type="xs:string"><value>Iskoola Pota;LKLUG;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_PRESENTATION" oor:op="replace" oor:type="xs:string"><value>Iskoola Pota;LKLUG;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_SPREADSHEET" oor:op="replace" oor:type="xs:string"><value>Iskoola Pota;LKLUG;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop><prop oor:name="CTL_TEXT" oor:op="replace" oor:type="xs:string"><value>Iskoola Pota;LKLUG;Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS</value></prop></node></node><node oor:name="FontSubstitutions"><node oor:name="en" oor:op="replace"><node oor:name="albany" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;liberationsans;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>Arial</value></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,SansSerif</value></prop></node><node oor:name="albanyamt" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;liberationsans;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>Arial</value></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,SansSerif</value></prop></node><node oor:name="algerian" oor:op="replace"><prop oor:name="SubstFonts"><value>imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian;imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar</value></prop><prop oor:name="SubstFontsMS"><value>comic</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special,Title,Outline,Shadow</value></prop></node><node oor:name="almanac" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="andalesans" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>Trebuchet</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="andalesansui" oor:op="replace"><prop oor:name="SubstFonts"><value>andalesansui;arialunicodems;lucidaunicode;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value>Arial Unicode MS;Andale Sans UI</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Normal,SansSerif,Full</value></prop></node><node oor:name="andalewtui" oor:op="replace"><prop oor:name="SubstFonts"><value>andalesansui;arialunicodems;lucidaunicode;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value>Arial Unicode MS;Andale Sans UI</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Normal,SansSerif,Full</value></prop></node><node oor:name="andy" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Comic</value></prop></node><node oor:name="antiqueolive" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="arial" oor:op="replace"><prop oor:name="SubstFonts"><value>liberationsans;albanyamt;albany;arimo;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,SansSerif</value></prop></node><node oor:name="arialnarrow" oor:op="replace"><prop oor:name="SubstFonts"><value>arialnarrowmt;liberationsansnarrow;helveticanarrow;helmetcondensed;dejavusanscondensed;nimbussanslcondensed;nimbussanscondensed</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="arialunicode" oor:op="replace"><prop oor:name="SubstFonts"><value>andalesansui;arialunicodems;lucidaunicode;albanyamt;albany;arial;liberationsans;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif,Full</value></prop></node><node oor:name="arimo" oor:op="replace"><prop oor:name="SubstFonts"><value>arial;liberationsans;albany;albanyamt;helvetica;</value></prop><prop oor:name="SubstFontsMS"><value>arial</value></prop><prop oor:name="SubstFontsPS"><value>helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,SansSerif</value></prop></node><node oor:name="arioso" oor:op="replace"><prop oor:name="SubstFonts"><value>palacescript;palacescriptmt;arioso;shelley;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,BrushScript</value></prop></node><node oor:name="avantgarde" oor:op="replace"><prop oor:name="SubstFonts"><value>centurygothic;avantgarde;itcavantgarde;gothic;avantgardegothic;conga;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="baskervilleoldface" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif,Other</value></prop></node><node oor:name="batang" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë°”탕;sunbatang;baekmukbatang;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;batangche;gungsuh;gungsuhche;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>바탕</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,CJK,CJK_KR</value></prop></node><node oor:name="sunbatang" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë°”탕;batang;baekmukbatang;myeongjo;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;ì¬êµ´ë¦¼;sungulim;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>바탕;batang</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,CJK,CJK_KR</value></prop></node><node oor:name="batangche" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë°”탕;sunbatang;baekmukbatang;ì¬êµ´ë¦¼;sungulim;myeongjo;batang;gungsuh;gungsuhche;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;hymyeongjolightk;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="bell" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="bitstreamverasans" oor:op="replace"><prop oor:name="SubstFonts"><value>dejavusans</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,SansSerif</value></prop></node><node oor:name="bitstreamveraserif" oor:op="replace"><prop oor:name="SubstFonts"><value>dejavuserif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Serif</value></prop></node><node oor:name="bitstreamverasansmono" oor:op="replace"><prop oor:name="SubstFonts"><value>dejavusansmono;cumberlandamt;cumberland;couriernew;nimbusmonol;liberationmono</value></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Fixed,Typewriter</value></prop></node><node oor:name="blackadder" oor:op="replace"><prop oor:name="SubstFonts"><value>palacescript;palacescriptmt;arioso;shelley;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,BrushScript</value></prop></node><node oor:name="bookantiqua" oor:op="replace"><prop oor:name="SubstFonts"><value>palatino;palatinolinotype;bookantiqua;palladio;palladiol;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="bookman" oor:op="replace"><prop oor:name="SubstFonts"><value>bookman;itcbookman;bookmanl;bookmanoldstyle;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="bookmanl" oor:op="replace"><prop oor:name="SubstFonts"><value>bookman;itcbookman;bookmanl;bookmanoldstyle;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="bookmanoldstyle" oor:op="replace"><prop oor:name="SubstFonts"><value>bookman;itcbookman;bookmanl;bookmanoldstyle;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif,Other</value></prop></node><node oor:name="bradleyhand" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Handwriting</value></prop></node><node oor:name="broadway" oor:op="replace"><prop oor:name="SubstFonts"><value>broadway;mtbroadway;broadwaymt;falstaff;widelatin;latinwide;impact</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Black</value></prop><prop oor:name="FontWidth"><value>Expanded</value></prop><prop oor:name="FontType"><value>Decorative,Special</value></prop></node><node oor:name="calibri" oor:op="replace"><prop oor:name="SubstFonts"><value>hiraginomarugothicpronw3;hiraginomarugothicprow3</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="candara" oor:op="replace"><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="cambria" oor:op="replace"><prop oor:name="SubstFonts"><value>applelisung</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="consolas" oor:op="replace"><prop oor:name="FontType"><value>Normal,SansSerif,Fixed</value></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop></node><node oor:name="constantia" oor:op="replace"><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="corbel" oor:op="replace"><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="cordia" oor:op="replace"><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="calisto" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="castellar" oor:op="replace"><prop oor:name="SubstFonts"><value>monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar;imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special,Title,Outline,Shadow</value></prop></node><node oor:name="century" oor:op="replace"><prop oor:name="SubstFonts"><value>newcenturyschlbk;newcenturyschoolbook;centuryschoolbook;centuryschoolbookl;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="centurygothic" oor:op="replace"><prop oor:name="SubstFonts"><value>centurygothic;avantgarde;itcavantgarde;gothic;avantgardegothic;conga;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="centuryschoolbook" oor:op="replace"><prop oor:name="SubstFonts"><value>newcenturyschlbk;newcenturyschoolbook;centuryschoolbook;centuryschoolbookl;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif,Schoolbook</value></prop></node><node oor:name="centuryschoolbookl" oor:op="replace"><prop oor:name="SubstFonts"><value>newcenturyschlbk;newcenturyschoolbook;centuryschoolbook;centuryschoolbookl;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif,Schoolbook</value></prop></node><node oor:name="cfangsong" oor:op="replace"><prop oor:name="SubstFonts"><value>fangsong;fzfangsong;cfangsong;simkai;fzkai;zycjkkai;mkai;kai;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="cgtimes" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;liberationserif;nimbusromanno9l;times;timesroman;newyork;timmons;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="chancery" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Chancery</value></prop></node><node oor:name="chanceryl" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Chancery</value></prop></node><node oor:name="chevara" oor:op="replace"><prop oor:name="SubstFonts"><value>imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian;imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special,Capitals,Outline,Shadow</value></prop></node><node oor:name="chevaraoutline" oor:op="replace"><prop oor:name="SubstFonts"><value>monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar;imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special,Capitals,Outline,Shadow</value></prop></node><node oor:name="chicago" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="chiller" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Special,Italic,Script</value></prop></node><node oor:name="cmusansserif" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;dejavusans;cmusansserif;freesans;nimbussansl;helvetica;lucida;geneva;helmet;andalesansui;arialunicodems;lucidasansunicode;tahoma</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,SansSerif</value></prop></node><node oor:name="cmuserif" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;dejavuserif;cmuserif;freeserif;nimbusromanno9l;luxiserif;times;lucidaserif;lucidabright;timmons;newyork;serif</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Serif</value></prop></node><node oor:name="cmutypewritertext" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;dejavusansmono;cmutypewritertext;freemono;nimbusmonol;courier;lucidasanstypewriter;lucidatypewriter;monaco;monospaced</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Fixed,Typewriter</value></prop></node><node oor:name="colonna" oor:op="replace"><prop oor:name="SubstFonts"><value>monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar;imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special,Outline,Shadow</value></prop></node><node oor:name="comicsans" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Italic,Script,Comic</value></prop></node><node oor:name="comicsansms" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Italic,Script,Comic</value></prop></node><node oor:name="conga" oor:op="replace"><prop oor:name="SubstFonts"><value>sheffield;conga;centurygothic;copperlategothic;felixtitling;centurygothic;avantgarde;itcavantgarde;gothic;avantgardegothic;conga;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif,Decorative,Capitals</value></prop></node><node oor:name="copperlategothic" oor:op="replace"><prop oor:name="SubstFonts"><value>sheffield;conga;centurygothic;copperlategothic;felixtitling;centurygothic;avantgarde;itcavantgarde;gothic;avantgardegothic;conga;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif,Decorative,Capitals</value></prop></node><node oor:name="corsiva" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Chancery</value></prop></node><node oor:name="courier" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;cousine;liberationmono;couriernew;nimbusmonol;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value>Courier New</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Fixed,Typewriter</value></prop></node><node oor:name="couriernew" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;cousine;liberationmono;dejavusansmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsPS"><value>Courier</value></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Fixed,Typewriter</value></prop></node><node oor:name="cousine" oor:op="replace"><prop oor:name="SubstFonts"><value>couriernew;cumberland;cumberlandamt;liberationmono;courier</value></prop><prop oor:name="SubstFontsMS"><value>Courier New</value></prop><prop oor:name="SubstFontsPS"><value>Courier</value></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Fixed,Typewriter</value></prop></node><node oor:name="cumberland" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;liberationmono;dejavusansmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value>Courier New</value></prop><prop oor:name="SubstFontsPS"><value>Courier</value></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,Fixed,Typewriter</value></prop></node><node oor:name="cumberlandamt" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;liberationmono;dejavusansmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value>Courier New</value></prop><prop oor:name="SubstFontsPS"><value>Courier</value></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,Fixed,Typewriter</value></prop></node><node oor:name="curlz" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Special,Italic,Script</value></prop></node><node oor:name="cursive" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script</value></prop></node><node oor:name="dejavusans" oor:op="replace"><prop oor:name="SubstFonts"><value>bitstreamverasans</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,SansSerif</value></prop></node><node oor:name="dejavuserif" oor:op="replace"><prop oor:name="SubstFonts"><value>bitstreamveraserif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Serif</value></prop></node><node oor:name="dejavusansmono" oor:op="replace"><prop oor:name="SubstFonts"><value>bitstreamverasansmono;cumberlandamt;cumberland;couriernew;nimbusmonol;liberationmono</value></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Fixed,Typewriter</value></prop></node><node oor:name="dejavusanscondensed" oor:op="replace"><prop oor:name="SubstFonts"><value>arialnarrow;liberationsansnarrow</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>SansSerif</value></prop></node><node oor:name="din" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,SansSerif</value></prop></node><node oor:name="dingbats" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;opensymbol;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="dotum" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë‹ì›€;sundotum;baekmukdotum;gulim;gulimche;dotum;dotumche;roundgothic;kodig;andalesansui;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,CJK,CJK_KR</value></prop></node><node oor:name="sundotum" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë‹ì›€;baekmukdotum;dotum;dotumche;gulim;gulimche;roundgothic;kodig;ì¬êµ´ë¦¼;sungulim;hygothicmedium;hygraphicmedium;hymyeongjolightk;haansoftdotum;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>ë‹ì›€;dotum</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,CJK,CJK_KR</value></prop></node><node oor:name="dotumche" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë‹ì›€;sundotum;baekmukdotum;gulim;gulimche;dotum;dotumche;roundgothic;kodig;andalesansui;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hygothic" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë‹ì›€;sundotum;baekmukdotum;gulim;gulimche;dotum;dotumche;roundgothic;kodig;andalesansui;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="haansoftdotum" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë‹ì›€;sundotum;baekmukdotum;gulim;gulimche;dotum;dotumche;roundgothic;kodig;andalesansui;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hygraphic" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë‹ì›€;sundotum;gulim;gulimche;dotum;dotumche;roundgothic;kodig;andalesansui;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="edwardianscript" oor:op="replace"><prop oor:name="SubstFonts"><value>palacescript;palacescriptmt;arioso;shelley;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,BrushScript</value></prop></node><node oor:name="elite" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed,Typewriter</value></prop></node><node oor:name="elited" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed,Typewriter</value></prop></node><node oor:name="engravers" oor:op="replace"><prop oor:name="SubstFonts"><value>sheffield;conga;centurygothic;copperlategothic;felixtitling;centurygothic;avantgarde;itcavantgarde;gothic;avantgardegothic;conga;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif,Decorative,Capitals</value></prop></node><node oor:name="extra" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="falstaff" oor:op="replace"><prop oor:name="SubstFonts"><value>falstaff;widelatin;latinwide;impact;broadway;mtbroadway;broadwaymt</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Black</value></prop><prop oor:name="FontWidth"><value>UltraExpanded</value></prop><prop oor:name="FontType"><value>Serif,Decorative,Special</value></prop></node><node oor:name="fangsong" oor:op="replace"><prop oor:name="SubstFonts"><value>fangsong;fzfangsong;cfangsong;simkai;fzkai;zycjkkai;mkai;kai;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="fantasy" oor:op="replace"><prop oor:name="SubstFonts"><value>imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar;imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special</value></prop></node><node oor:name="felixtitling" oor:op="replace"><prop oor:name="SubstFonts"><value>sheffield;conga;centurygothic;copperlategothic;felixtitling;centurygothic;avantgarde;itcavantgarde;gothic;avantgardegothic;conga;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif,Decorative,Capitals</value></prop></node><node oor:name="forte" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Italic,Script,Comic</value></prop></node><node oor:name="freemono" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;dejavusansmono;cmutypewritertext;freemono;nimbusmonol;courier;lucidasanstypewriter;lucidatypewriter;monaco;monospaced</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Fixed,Typewriter</value></prop></node><node oor:name="freesans" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;dejavusans;cmusansserif;freesans;nimbussansl;helvetica;lucida;geneva;helmet;andalesansui;arialunicodems;lucidasansunicode;tahoma</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,SansSerif</value></prop></node><node oor:name="freeserif" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;dejavuserif;cmuserif;freeserif;nimbusromanno9l;luxiserif;times;lucidaserif;lucidabright;timmons;newyork;serif</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Serif</value></prop></node><node oor:name="frenchscript" oor:op="replace"><prop oor:name="SubstFonts"><value>palacescript;palacescriptmt;arioso;shelley;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Special,Italic,Script,BrushScript</value></prop></node><node oor:name="frutiger" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="fujiyama" oor:op="replace"><prop oor:name="SubstFonts"><value>arialnarrow;helveticanarrow;helmetcondensed;dejavusanscondensed;nimbussanslcondensed;nimbussanscondensed</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>SansSerif,Special</value></prop></node><node oor:name="fzhei" oor:op="replace"><prop oor:name="SubstFonts"><value>simhei;fzhei;zycjkhei;mhei;hei;andalesansui;fzsongti;msunglightsc;simsun;nsimsun;zycjksun;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="fzkai" oor:op="replace"><prop oor:name="SubstFonts"><value>simkai;fzkai;zycjkkai;mkai;kai;fangsong;fzfangsong;cfangsong;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="gallia" oor:op="replace"><prop oor:name="SubstFonts"><value>imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian;imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special,Title,Outline,Shadow</value></prop></node><node oor:name="garamond" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="geneva" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="gigi" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Special,Italic,Script</value></prop></node><node oor:name="gothic" oor:op="replace"><prop oor:name="SubstFonts"><value>hggothicbsun;msgothic;mspgothic;hiraginominchopronw3;hiraginominchoprow3;hggothic;hggothicb;hggothice;ipagothic;kochigothic;sazanamigothic;andalesansui;gothic;hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;centurygothic;avantgarde;itcavantgarde;gothic;avantgardegothic;conga;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msgothic</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="gothicb" oor:op="replace"><prop oor:name="SubstFonts"><value>hggothicbsun;msgothic;mspgothic;hggothic;hggothicb;hggothice;ipagothic;kochigothic;sazanamigothic;andalesansui;gothic;hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msgothic</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="gothicl" oor:op="replace"><prop oor:name="SubstFonts"><value>msgothic;mspgothic;hggothic;hggothicb;hggothice;ipapgothic;sazanamigothic;kochigothic;andalesansui;gothic;hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;centurygothic;avantgarde;itcavantgarde;gothic;avantgardegothic;conga;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msgothic</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="gulim" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬êµ´ë¦¼;sungulim;baekmukgulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,CJK,CJK_KR</value></prop></node><node oor:name="gulimche" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬êµ´ë¦¼;sungulim;baekmukgulim;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="newgulim" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬êµ´ë¦¼;sungulim;gulimche;baekmukgulim;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="gungsuh" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ê¶ì„œ;sungungseo;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="gungsuhche" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ê¶ì„œ;sungungseo;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hygungso" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ê¶ì„œ;sungungseo;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hyhaeseo" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ê¶ì„œ;sungungseo;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hei" oor:op="replace"><prop oor:name="SubstFonts"><value>hei;andalesansui;simhei;fzhei;zycjkhei;mhei;fzmingti;msunglighttc;mingliu;pmingliu;ming;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_TW</value></prop></node><node oor:name="heiseimin" oor:op="replace"><prop oor:name="SubstFonts"><value>hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="helmet" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;liberationsans;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>Arial</value></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="helmetcondensed" oor:op="replace"><prop oor:name="SubstFonts"><value>arialnarrow;helveticanarrow;dejavusanscondensed;nimbussanslcondensed;nimbussanscondensed</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="helv" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;liberationsans;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>Arial</value></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="helvetica" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;liberationsans;arial;nimbussansl;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>Arial</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,SansSerif</value></prop></node><node oor:name="helveticanarrow" oor:op="replace"><prop oor:name="SubstFonts"><value>arialnarrow;liberationsansnarrow;helmetcondensed;dejavusanscondensed;nimbussanslcondensed;nimbussanscondensed</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="hggothicbsun" oor:op="replace"><prop oor:name="SubstFonts"><value>msgothic;hggothicb;hiraginokakugothicpronw3;hiraginokakugothicprow3;hggothice;andalesansui;gothic;hgmincholightj;msmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msgothic</value></prop></node><node oor:name="hgpgothicbsun" oor:op="replace"><prop oor:name="SubstFonts"><value>mspgothic;hgpgothicb;hgpgothice;andalesansui</value></prop><prop oor:name="SubstFontsMS"><value>mspgothic</value></prop></node><node oor:name="hgmincholsun" oor:op="replace"><prop oor:name="SubstFonts"><value>hgmincholightj;msmincho;mspmincho;hgminchoj;hiraginominchopronw3;hiraginominchoprow3;minchol;mincho;hgheiseimin;heiseimin;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;andalesansui;arialunicodems;lucidaunicode</value></prop></node><node oor:name="hgpmincholsun" oor:op="replace"><prop oor:name="SubstFonts"><value>mspmincho;ipapmincho;sazanamimincho;kochimincho;andalesansui;mincho;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msmincho</value></prop></node><node oor:name="hggothic" oor:op="replace"><prop oor:name="SubstFonts"><value>msgothic;mspgothic;hggothicb;hggothice;andalesansui;gothic;hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msgothic</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="hggothicb" oor:op="replace"><prop oor:name="SubstFonts"><value>msgothic;mspgothic;hggothic;hggothice;ipagothic;ipapgothic;sazanamigothic;kochigothic;andalesansui;gothic;hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msgothic</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="hggothice" oor:op="replace"><prop oor:name="SubstFonts"><value>msgothic;mspgothic;hggothic;hggothicb;ipagothic;ipapgothic;sazanamigothic;kochigothic;andalesansui;gothic;hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="hgminchoj" oor:op="replace"><prop oor:name="SubstFonts"><value>hgmincholightj;msmincho;mspmincho;ipapmincho;sazanamimincho;kochimincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msmincho</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="hgminchol" oor:op="replace"><prop oor:name="SubstFonts"><value>hgmincholsun;hgmincholightj;msmincho;mspmincho;hgminchoj;ipamincho;ipapmincho;sazanamimincho;kochimincho;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="hgmincholightj" oor:op="replace"><prop oor:name="SubstFonts"><value>hgmincholsun;msmincho;mspmincho;ipapmincho;sazanamimincho;hgmincholightj;kochimincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msmincho</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="holidaypi" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="holidays" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="hymyeongjolightk" oor:op="replace"><prop oor:name="SubstFonts"><value>hymyeongjolightk;myeongjo;batang;batangche;gungsuh;gungsuhche;myeomjo;ì¬êµ´ë¦¼;sungulim;gulim;gulimche;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hymyeongjoextra" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë°”탕;sunbatang;baekmukbatang;hymyeongjolightk;myeongjo;batang;batangche;gungsuh;gungsuhche;myeomjo;ì¬êµ´ë¦¼;sungulim;gulim;gulimche;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="haansoftbatang" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë°”탕;sunbatang;baekmukbatang;hymyeongjolightk;myeongjo;batang;batangche;gungsuh;gungsuhche;myeomjo;ì¬êµ´ë¦¼;sungulim;gulim;gulimche;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hysinmyeongjo" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë°”탕;sunbatang;baekmukbatang;hymyeongjolightk;myeongjo;batang;batangche;gungsuh;gungsuhche;myeomjo;ì¬êµ´ë¦¼;sungulim;gulim;gulimche;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="sungulim" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬êµ´ë¦¼;baekmukgulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>굴림;Gulim</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,CJK,CJK_KR</value></prop></node><node oor:name="sungungseo" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ê¶ì„œ;gungsuh;gungsuhche;hygungsobold;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;baekmukgulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>ê¶ì„œ;gungsuh</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="sunheadline" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬í—¤ë“œë¼ì¸;hyheadlinemedium;baekmukheadline;yetr;hygothicextra;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>hy헤드ë¼ì¸m;hyheadlinemedium</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hyheadline" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬í—¤ë“œë¼ì¸;sunheadline;baekmukheadline;hyheadlinemedium;yetr;hygothicextra;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="yetr" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬í—¤ë“œë¼ì¸;sunheadline;hyheadlinemedium;baekmukheadline;yetr;hygothicextra;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hygothicextra" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬í—¤ë“œë¼ì¸;sunheadline;hyheadlinemedium;baekmukheadline;yetr;hygothicextra;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="sunmokpan" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ëª©íŒ;hy목íŒl;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;baekmukgulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>hy목íŒl</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="mdsol" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ëª©íŒ;sunmokpan;ì¬ëª©íŒ;hy목íŒl;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;baekmukgulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>hy목íŒl</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hy&#xBAA9;&#xD310;l" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ëª©íŒ;sunmokpan;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;baekmukbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="sunyeopseo" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ì—½ì„œ;hypostlight;magicr;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>hy엽서l;hypostlight</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hypost" oor:op="replace"><prop oor:name="SubstFonts"><value>sunyeopseo;ì¬ì—½ì„œ;hypostlight;magicr;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="mdgaesung" oor:op="replace"><prop oor:name="SubstFonts"><value>sunyeopseo;ì¬ì—½ì„œ;hypostlight;magicr;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="mdart" oor:op="replace"><prop oor:name="SubstFonts"><value>sunyeopseo;ì¬ì—½ì„œ;hypostlight;magicr;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="mdeasop" oor:op="replace"><prop oor:name="SubstFonts"><value>sunyeopseo;ì¬ì—½ì„œ;hypostlight;magicr;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="mdalong" oor:op="replace"><prop oor:name="SubstFonts"><value>sunyeopseo;ì¬ì—½ì„œ;hypostlight;magicr;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="magicr" oor:op="replace"><prop oor:name="SubstFonts"><value>sunyeopseo;ì¬ì—½ì„œ;hypostlight;magicr;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hy&#xC5FD;&#xC11C;m" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ì—½ì„œ;sunyeopseo;hypostlight;magicr;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hy&#xC13C;&#xC2A4;l" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ì—½ì„œ;sunyeopseo;hypostlight;magicr;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="suncrystal" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬í¬ë¦¬ìŠ¤íƒˆ;hyí¬ë¦¬ìŠ¤íƒˆm;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>hyí¬ë¦¬ìŠ¤íƒˆm</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hy&#xD06C;&#xB9AC;&#xC2A4;&#xD0C8;m" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬í¬ë¦¬ìŠ¤íƒˆ;suncrystal;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="sunsaemmul" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ìƒ˜ë¬¼;hyshortsamulmedium;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>hyì–•ì€ìƒ˜ë¬¼m;hyshortsamulmedium</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hyshortsamul" oor:op="replace"><prop oor:name="SubstFonts"><value>sunsaemmul;ì¬ìƒ˜ë¬¼;hyshortsamulmedium;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="sunbaeksong" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë°±ì†¡;hy백송b;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;baekmukgulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>hy백송b</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="hy&#xBC31;&#xC1A1;b" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬ë°±ì†¡;sunbaeksong;ì¬ë°”탕;ì¬êµ´ë¦¼;sungulim;baekmukgulim;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;hymyeongjolightk;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="impact" oor:op="replace"><prop oor:name="SubstFonts"><value>falstaff;widelatin;latinwide;impact;broadway;mtbroadway;broadwaymt</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Black</value></prop><prop oor:name="FontWidth"><value>UltraExpanded</value></prop><prop oor:name="FontType"><value>SansSerif,Decorative,Special</value></prop></node><node oor:name="imprint" oor:op="replace"><prop oor:name="SubstFonts"><value>imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar;imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special,Outline,Shadow</value></prop></node><node oor:name="imprintmtshadow" oor:op="replace"><prop oor:name="SubstFonts"><value>imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar;imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special,Outline,Shadow</value></prop></node><node oor:name="imprintshadow" oor:op="replace"><prop oor:name="SubstFonts"><value>imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar;imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special,Outline,Shadow</value></prop></node><node oor:name="informalroman" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;palacescript;palacescriptmt;arioso;shelley</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script</value></prop></node><node oor:name="kai" oor:op="replace"><prop oor:name="SubstFonts"><value>kai;simkai;fzkai;zycjkkai;mkai;fzmingti;msunglighttc;mingliu;pmingliu;ming;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_TW</value></prop></node><node oor:name="kidprint" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Italic,Script,Comic</value></prop></node><node oor:name="kodig" oor:op="replace"><prop oor:name="SubstFonts"><value>gulim;gulimche;ì¬ë‹ì›€;sundotum;baekmukgulim;dotum;dotumche;roundgothic;kodig;andalesansui;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="kristen" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Comic</value></prop></node><node oor:name="kunstlerscript" oor:op="replace"><prop oor:name="SubstFonts"><value>palacescript;palacescriptmt;arioso;shelley;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,BrushScript</value></prop></node><node oor:name="latinwide" oor:op="replace"><prop oor:name="SubstFonts"><value>falstaff;widelatin;latinwide;impact;broadway;mtbroadway;broadwaymt</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Black</value></prop><prop oor:name="FontWidth"><value>UltraExpanded</value></prop><prop oor:name="FontType"><value>Serif,Decorative,Special</value></prop></node><node oor:name="lettergothic" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="liberationsans" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>Arial</value></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,SansSerif</value></prop></node><node oor:name="liberationserif" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value>Times New Roman</value></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,Serif</value></prop></node><node oor:name="liberationmono" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;dejavusansmono;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value>Courier New</value></prop><prop oor:name="SubstFontsPS"><value>Courier</value></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,Fixed,Typewriter</value></prop></node><node oor:name="linedraw" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="lineprinter" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed,Typewriter</value></prop></node><node oor:name="losangeles" oor:op="replace"><prop oor:name="SubstFonts"><value>onyx;arialnarrow;helveticanarrow;helmetcondensed;dejavusanscondensed;nimbussanslcondensed;nimbussanscondensed</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Normal,SansSerif,Special</value></prop></node><node oor:name="lucidabright" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="lucidacalligraphic" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Chancery</value></prop></node><node oor:name="lucidacalligraphy" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Chancery</value></prop></node><node oor:name="lucidaconsole" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="lucidadingbats" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;opensymbol;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="lucidahandwriting" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Handwriting</value></prop></node><node oor:name="lucidasans" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="lucidasansdingbats" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;opensymbol;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="lucidasanstyp" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed,Typewriter</value></prop></node><node oor:name="lucidasanstypewriter" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed,Typewriter</value></prop></node><node oor:name="lucidasansunicode" oor:op="replace"><prop oor:name="SubstFonts"><value>andalesansui;arialunicodems;lucidaunicode;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="lucidatypewriter" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed,Typewriter</value></prop></node><node oor:name="marlett" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="mhei" oor:op="replace"><prop oor:name="SubstFonts"><value>simhei;fzhei;zycjkhei;mhei;hei;andalesansui;fzsongti;msunglightsc;simsun;nsimsun;zycjksun;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="mincho" oor:op="replace"><prop oor:name="SubstFonts"><value>hgmincholsun;hgmincholightj;msmincho;mspmincho;hiraginominchopronw3;hiraginominchoprow3;ipamincho;ipapmincho;sazanamimincho;hgmincholightj;hgminchoj;kochimincho;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msmincho</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="minchoj" oor:op="replace"><prop oor:name="SubstFonts"><value>hgmincholsun;hgmincholightj;msmincho;sazanamimincho;hgmincholightj;mspmincho;hgminchoj;hgminchol;minchol;hgheiseimin;heiseimin;mincho;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msmincho</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="minchol" oor:op="replace"><prop oor:name="SubstFonts"><value>hgmincholsun;hgmincholightj;msmincho;ipamincho;sazanamimincho;kochimincho;mspmincho;hgminchoj;hgminchol;mincho;hgheiseimin;heiseimin;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>msmincho</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="minchou" oor:op="replace"><prop oor:name="SubstFonts"><value>hgmincholsun;hgmincholightj;msmincho;ipamicho;ipapmincho;sazanamimincho;kochimincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="ming" oor:op="replace"><prop oor:name="SubstFonts"><value>fzmingti;msunglighttc;mingliu;pmingliu;ming;hei;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_TW</value></prop></node><node oor:name="mingli" oor:op="replace"><prop oor:name="SubstFonts"><value>fzmingti;msunglighttc;mingliu;pmingliu;ming;hei;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_TW</value></prop></node><node oor:name="mingliu" oor:op="replace"><prop oor:name="SubstFonts"><value>fzmingti;msunglighttc;mingliu;pmingliu;ming;hei;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_TW</value></prop></node><node oor:name="mkai" oor:op="replace"><prop oor:name="SubstFonts"><value>simkai;fzkai;zycjkkai;mkai;kai;fangsong;fzfangsong;cfangsong;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="monaco" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value>Courier</value></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed,Typewriter</value></prop></node><node oor:name="mono" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="monol" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="monospace" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="monospaced" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="morewingbats" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;wingdings;morewingbats;opensymbol;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="hiraginominchopronw3" oor:op="replace"><prop oor:name="SubstFonts"><value>hiraginominchoprow3;msmincho</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="hiraginominchoprow3" oor:op="replace"><prop oor:name="SubstFonts"><value>hiraginominchopronw3;msmincho</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="hiraginokakugothicpronw3" oor:op="replace"><prop oor:name="SubstFonts"><value>hiraginokakugothicprow3;msgothic</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="hiraginokakugothicprow3" oor:op="replace"><prop oor:name="SubstFonts"><value>hiraginokakugothicpronw3;msgothic</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="hiraginomarugothicpronw4" oor:op="replace"><prop oor:name="SubstFonts"><value>hiraginomarugothicprow4;meiryo;msgothic</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="hiraginomarugothicprow4" oor:op="replace"><prop oor:name="SubstFonts"><value>hiraginomarugothicpronw4;meiryo;msgothic</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="meiryo" oor:op="replace"><prop oor:name="SubstFonts"><value>msgothic;hiraginomarugothicpronw4</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="msgothic" oor:op="replace"><prop oor:name="SubstFonts"><value>hggothicbsun;mspgothic;hiraginokakugothicpronw3;hiraginokakugothicprow3;hggothic;hggothicb;ipagothic;sazanamigothic;kochigothic;hggothice;andalesansui;gothic;hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="mspgothic" oor:op="replace"><prop oor:name="SubstFonts"><value>hgpgothicbsun;mspgothic;msgothic;hiraginokakugothicpronw3;hiraginokakugothicprow3;hggothic;hggothicb;ipapgothic;sazanamigothic;kochigothic;hggothice;andalesansui;gothic;hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="msmincho" oor:op="replace"><prop oor:name="SubstFonts"><value>hgmincholsun;hgmincholightj;ipamincho;hiraginominchopronw3;hiraginominchoprow3;sazanamimincho;kochimincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="msong" oor:op="replace"><prop oor:name="SubstFonts"><value>song;fzsongyi;fzsong;msong;shusong;fzshusong;fzsongti;msunglightsc;simsun;nsimsun;arplshanheisununi;arplshanheisununi;zycjksun;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="mspmincho" oor:op="replace"><prop oor:name="SubstFonts"><value>hgpmincholsun;hgmincholightj;msmincho;hiraginominchopronw3;hiraginominchoprow3;ipapmincho;sazanamimincho;hgminchoj;hgminchol;kochimincho;minchol;mincho;hgheiseimin;heiseimin;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="msuigothic" oor:op="replace"><prop oor:name="SubstFonts"><value>hggothicbsun;mspgothic;msgothic;hggothic;hggothicb;ipauigothic;sazanamigothic;kochigothic;hggothice;andalesansui;gothic;hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="msunglightsc" oor:op="replace"><prop oor:name="SubstFonts"><value>fzsongti;msunglightsc;simsun;nsimsun;arplshanheisununi;zycjksun;song;fzsongyi;fzsong;msong;shusong;fzshusong;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="fzsongti" oor:op="replace"><prop oor:name="SubstFonts"><value>fzsongti;msunglightsc;simsun;nsimsun;arplshanheisununi;zycjksun;song;fzsongyi;fzsong;msong;shusong;fzshusong;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="msunglighttc" oor:op="replace"><prop oor:name="SubstFonts"><value>fzmingti;msunglighttc;mingliu;pmingliu;ming;hei;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_TW</value></prop></node><node oor:name="fzmingti" oor:op="replace"><prop oor:name="SubstFonts"><value>fzmingti;msunglighttc;mingliu;pmingliu;ming;hei;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_TW</value></prop></node><node oor:name="mtbroadway" oor:op="replace"><prop oor:name="SubstFonts"><value>broadway;mtbroadway;broadwaymt;falstaff;widelatin;latinwide;impact</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Black</value></prop><prop oor:name="FontWidth"><value>UltraExpanded</value></prop><prop oor:name="FontType"><value>Decorative,Special</value></prop></node><node oor:name="myeongjo" oor:op="replace"><prop oor:name="SubstFonts"><value>ì¬êµ´ë¦¼;sungulim;baekmukgulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;gulim;gulimche;ì¬ë‹ì›€;sundotum;dotum;dotumche;roundgothic;kodig;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="newcenturyschlbk" oor:op="replace"><prop oor:name="SubstFonts"><value>newcenturyschlbk;newcenturyschoolbook;centuryschoolbook;centuryschoolbookl;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif,Schoolbook</value></prop></node><node oor:name="newcenturyschoolbook" oor:op="replace"><prop oor:name="SubstFonts"><value>newcenturyschlbk;newcenturyschoolbook;centuryschoolbook;centuryschoolbookl;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif,Schoolbook</value></prop></node><node oor:name="newyork" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="nimbusromanno9l" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value>Times New Roman</value></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,Serif</value></prop></node><node oor:name="nlq" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed,Typewriter</value></prop></node><node oor:name="nimbussansl" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>Arial</value></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,SansSerif</value></prop></node><node oor:name="nimbusromannol" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value>Times New Roman</value></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,Serif</value></prop></node><node oor:name="nimbusmonol" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;liberationmono;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono</value></prop><prop oor:name="SubstFontsMS"><value>Courier New</value></prop><prop oor:name="SubstFontsPS"><value>courier</value></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Fixed,Typewriter</value></prop></node><node oor:name="nsimsun" oor:op="replace"><prop oor:name="SubstFonts"><value>fzsongti;msunglightsc;simsun;nsimsun;arplshanheisununi;zycjksun;song;fzsongyi;fzsong;msong;shusong;fzshusong;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="ocean" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="omega" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="onyx" oor:op="replace"><prop oor:name="SubstFonts"><value>losangeles;arialnarrow;helveticanarrow;helmetcondensed;dejavusanscondensed;nimbussanslcondensed;nimbussanscondensed</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Normal,SansSerif,Special</value></prop></node><node oor:name="opensymbol" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;andalesansui;arialunicodems;lucidaunicode;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl</value></prop><prop oor:name="SubstFontsMS"><value>Arial Unicode MS;Andale Sans UI</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="outlook" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="palacescript" oor:op="replace"><prop oor:name="SubstFonts"><value>palacescript;palacescriptmt;arioso;shelley;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Italic,Script,BrushScript</value></prop></node><node oor:name="palatino" oor:op="replace"><prop oor:name="SubstFonts"><value>palatino;bookantiqua;palladio;palladiol;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="palladio" oor:op="replace"><prop oor:name="SubstFonts"><value>palatino;bookantiqua;palladio;palladiol;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="palladiol" oor:op="replace"><prop oor:name="SubstFonts"><value>palatino;bookantiqua;palladio;palladiol;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="pepita" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Chancery</value></prop></node><node oor:name="pgothic" oor:op="replace"><prop oor:name="SubstFonts"><value>hgpgothicbsun;mspgothic;msgothic;hggothic;hggothicb;ipapgothic;sazanamigothic;kochigothic;hggothice;andalesansui;gothic;hgmincholightj;msmincho;mspmincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>mspgothic</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="pica" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed,Typewriter</value></prop></node><node oor:name="picad" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed,Typewriter</value></prop></node><node oor:name="pmincho" oor:op="replace"><prop oor:name="SubstFonts"><value>hgpminchobsun;hgmincholightj;mspmincho;msmincho;ipapmincho;sazanamimincho;kochimincho;hgminchoj;hgminchol;minchol;mincho;hgheiseimin;heiseimin;minchou;msgothic;mspgothic;hggothic;hggothicb;hggothice;andalesansui;gothic;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>mspmincho</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_JP</value></prop></node><node oor:name="pmingliu" oor:op="replace"><prop oor:name="SubstFonts"><value>fzmingti;msunglighttc;mingliu;pmingliu;ming;hei;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_TW</value></prop></node><node oor:name="pristina" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Chancery</value></prop></node><node oor:name="ps" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="psd" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="psnlq" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="roman" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="romanno9" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="romanno9l" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="romanps" oor:op="replace"><prop oor:name="SubstFonts"><value>cumberlandamt;cumberland;couriernew;nimbusmonol;courier;lucidatypewriter;lucidasanstypewriter;monaco;monospaced;nimbusmono;nimbusmonol</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>monospace</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Fixed</value></prop></node><node oor:name="roundgothic" oor:op="replace"><prop oor:name="SubstFonts"><value>gulim;gulimche;ì¬ë‹ì›€;sundotum;baekmukdotum;dotum;dotumche;roundgothic;kodig;andalesansui;ì¬êµ´ë¦¼;sungulim;hymyeongjolightk;myeongjo;ì¬ë°”탕;sunbatang;batang;batangche;gungsuh;gungsuhche;myeomjo;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_KR</value></prop></node><node oor:name="sans" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;bitstreamvera;verdana;luxisans;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="sanscondensed" oor:op="replace"><prop oor:name="SubstFonts"><value>arialnarrow;liberationsansnarrow;helveticanarrow;helmetcondensed;dejavusanscondensed;nimbussanslcondensed;nimbussanscondensed</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="sansl" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;liberationsans;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>Verdana</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="sanslcondensed" oor:op="replace"><prop oor:name="SubstFonts"><value>arialnarrow;liberationsansnarrow;helveticanarrow;helmetcondensed;nimbussanslcondensed;nimbussanscondensed;dejavusanscondensed</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="sansserif" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;liberationsans;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value>Arial</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="schoolbook" oor:op="replace"><prop oor:name="SubstFonts"><value>newcenturyschlbk;newcenturyschoolbook;centuryschoolbook;centuryschoolbookl;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif,Schoolbook</value></prop></node><node oor:name="script" oor:op="replace"><prop oor:name="SubstFonts"><value>palacescript;palacescriptmt;arioso;shelley;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,BrushScript</value></prop></node><node oor:name="segoe" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="serif" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="sheffield" oor:op="replace"><prop oor:name="SubstFonts"><value>sheffield;conga;centurygothic;copperlategothic;felixtitling;centurygothic;avantgarde;itcavantgarde;gothic;avantgardegothic;conga;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Normal,SansSerif,Decorative,Capitals</value></prop></node><node oor:name="shelley" oor:op="replace"><prop oor:name="SubstFonts"><value>palacescript;palacescriptmt;arioso;shelley;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,BrushScript</value></prop></node><node oor:name="shusong" oor:op="replace"><prop oor:name="SubstFonts"><value>song;fzsongyi;fzsong;msong;shusong;fzshusong;fzsongti;msunglightsc;simsun;nsimsun;arplshanheisununi;zycjksun;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="simhei" oor:op="replace"><prop oor:name="SubstFonts"><value>simhei;fzhei;zycjkhei;mhei;hei;andalesansui;fzsongti;msunglightsc;simsun;nsimsun;zycjksun;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="simkai" oor:op="replace"><prop oor:name="SubstFonts"><value>simkai;fzkai;zycjkkai;mkai;kai;fangsong;fzfangsong;cfangsong;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="simsong" oor:op="replace"><prop oor:name="SubstFonts"><value>song;fzsongyi;fzsong;msong;shusong;fzshusong;fzsongti;msunglightsc;simsun;nsimsun;arplshanheisununi;arplshanheisununi;zycjksun;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="simsun" oor:op="replace"><prop oor:name="SubstFonts"><value>fzsongti;msunglightsc;simsun;nsimsun;arplshanheisununi;zycjksun;song;fzsongyi;fzsong;msong;shusong;fzshusong;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="snowcap" oor:op="replace"><prop oor:name="SubstFonts"><value>imprintmtshadow;imprintshadow;imprint;chevaraoutline;chevara;gallia;colonnamt;algerian;castellar;monotypeoldstyleboldoutline;monotypeoldstyleoutline;chevaraoutline;imprintmtshadow;imprintshadow;imprint;colonnamt;castellar;imprintmtshadow;imprintshadow;imprint;chevara;gallia;algerian</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Decorative,Special,Outline,Shadow</value></prop></node><node oor:name="song" oor:op="replace"><prop oor:name="SubstFonts"><value>song;fzsongyi;fzsong;msong;shusong;fzshusong;fzsongti;msunglightsc;simsun;nsimsun;arplshanheisununi;zycjksun;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="sorts" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;opensymbol;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="sorts2" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="sorts3" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="spartan" oor:op="replace"><prop oor:name="SubstFonts"><value>sheffield;conga;centurygothic;copperlategothic;felixtitling;centurygothic;avantgarde;itcavantgarde;gothic;avantgardegothic;conga;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif,Decorative,Capitals</value></prop></node><node oor:name="standardsymbols" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;symbol;standardsymbols;standardsymbolsl;mtsymbol;opensymbol;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="standardsymbolsl" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;symbol;standardsymbols;standardsymbolsl;mtsymbol;opensymbol;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="starbats" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="starmath" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="starsymbol" oor:op="replace"><prop oor:name="SubstFonts"><value>opensymbol;andalesansui;arialunicodems;lucidaunicode;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl</value></prop><prop oor:name="SubstFontsMS"><value>Arial Unicode MS;Andale Sans UI</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="swiss" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="swissnarrow" oor:op="replace"><prop oor:name="SubstFonts"><value>dejavuserifcondensed;arialnarrow;liberationsansnarrow;helveticanarrow;helmetcondensed;nimbussanslcondensed;nimbussanscondensed</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="symbol" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;standardsymbols;standardsymbolsl;mtsymbol;opensymbol;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="tahoma" oor:op="replace"><prop oor:name="SubstFonts"><value>andalesansui;arialunicodems;lucidaunicode;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="thorndale" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;liberationserif;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value>Times New Roman</value></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,Serif</value></prop></node><node oor:name="thorndaleamt" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;liberationserif;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value>Times New Roman</value></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Default,Standard,Normal,Serif</value></prop></node><node oor:name="times" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;liberationserif;timesroman;newyork;timmons;lucidaserif;lucidabright;roman;nimbusromanno9;nimbusromanno9l;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value>Times New Roman</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Serif</value></prop></node><node oor:name="timesnewroman" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;liberationserif;nimbusromanno9l;times;timesroman;newyork;timmons;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Serif</value></prop></node><node oor:name="timesroman" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;liberationserif;nimbusromanno9l;times;newyork;timmons;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value>Times New Roman</value></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="timmons" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;liberationserif;nimbusromanno9l;times;timesroman;newyork;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value>Times New Roman</value></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="timos" oor:op="replace"><prop oor:name="SubstFonts"><value>timesnewroman;thorndale;thorndaleamt;liberationserif;nimbusromanno9l;times;timesroman;newyork;timmons</value></prop><prop oor:name="SubstFontsMS"><value>Times New Roman</value></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Standard,Normal,Serif</value></prop></node><node oor:name="tmsrmn" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;liberationserif;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value>Times New Roman</value></prop><prop oor:name="SubstFontsPS"><value>Times</value></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="trebuchet" oor:op="replace"><prop oor:name="SubstFonts"><value>andalesans;verdana;trebuchetms;albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="univers" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value>Helvetica</value></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="universcondensed" oor:op="replace"><prop oor:name="SubstFonts"><value>arialnarrow;helveticanarrow;dejavucondensed;helmetcondensed;nimbussanslcondensed;nimbussanscondensed</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="utah" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans;lucida;geneva;helmet;sansserif;nimbussans;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="utopia" oor:op="replace"><prop oor:name="SubstFonts"><value>newcenturyschlbk;newcenturyschoolbook;centuryschoolbook;centuryschoolbookl;thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons;serif;lucidaserif;lucidabright;roman;nimbusromanno9;bookman;itcbookman;garamond;garamondmt;palatino</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="vacation" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="verdana" oor:op="replace"><prop oor:name="SubstFonts"><value>segoe;lucidasans;albanyamt;albany;arial;nimbussansl;helvetica;lucida;geneva;helmet;sansserif;nimbussans</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>sans-serif</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="vinerhand" oor:op="replace"><prop oor:name="SubstFonts"><value>andymt;comicsansms;andy;kidprint;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Handwriting</value></prop></node><node oor:name="vivaldi" oor:op="replace"><prop oor:name="SubstFonts"><value>palacescript;palacescriptmt;arioso;shelley;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,BrushScript</value></prop></node><node oor:name="vladimirscript" oor:op="replace"><prop oor:name="SubstFonts"><value>palacescript;palacescriptmt;arioso;shelley;zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,BrushScript</value></prop></node><node oor:name="webdings" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="webdings2" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="webdings3" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="widelatin" oor:op="replace"><prop oor:name="SubstFonts"><value>falstaff;widelatin;latinwide;impact;broadway;mtbroadway;broadwaymt</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Black</value></prop><prop oor:name="FontWidth"><value>UltraExpanded</value></prop><prop oor:name="FontType"><value>Serif,Decorative,Special</value></prop></node><node oor:name="wingdings" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;wingdings;morewingbats;opensymbol;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="wingdings2" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="wingdings3" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="wingdings4" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="zapfcalligraphic" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Chancery</value></prop></node><node oor:name="zapfcalligraphy" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value>cursive</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Chancery</value></prop></node><node oor:name="zapfchancery" oor:op="replace"><prop oor:name="SubstFonts"><value>zapfchancery;itczapfchancery;monotypecorsiva;corsiva;chancery;chanceryl;lucidacalligraphy;lucidahandwriting;palacescript;palacescriptmt;arioso;shelley;andymt;comicsansms;andy;kidprint;</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Script,Chancery</value></prop></node><node oor:name="zapfdingbats" oor:op="replace"><prop oor:name="SubstFonts"><value>starsymbol;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;opensymbol;starsymbol;opensymbol;starbats;wingdings;zapfdingbats;itczapfdingbats;monotypesorts;dingbats;lucidadingbats;lucidasansdingbats;webdings;symbol;standardsymbols;standardsymbolsl;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Symbol,Special</value></prop></node><node oor:name="zycjkhei" oor:op="replace"><prop oor:name="SubstFonts"><value>simhei;fzhei;zycjkhei;mhei;hei;andalesansui;fzsongti;msunglightsc;simsun;nsimsun;zycjksun;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="zycjkkai" oor:op="replace"><prop oor:name="SubstFonts"><value>simkai;fzkai;zycjkkai;mkai;kai;fangsong;fzfangsong;cfangsong;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="zycjksun" oor:op="replace"><prop oor:name="SubstFonts"><value>fzsongti;msunglightsc;simsun;nsimsun;arplshanheisununi;zycjksun;song;fzsongyi;fzsong;msong;shusong;fzshusong;andalesansui;arialunicodems;lucidaunicode</value></prop><prop oor:name="SubstFontsMS"><value/></prop><prop oor:name="SubstFontsPS"><value/></prop><prop oor:name="SubstFontsHTML"><value/></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>CJK,CJK_SC</value></prop></node><node oor:name="sansregular" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="sansdemi" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans</value></prop><prop oor:name="FontWeight"><value>Demi</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="sansheavy" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans</value></prop><prop oor:name="FontWeight"><value>Heavy</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="sansbold" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans</value></prop><prop oor:name="FontWeight"><value>Bold</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="sansitalic" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,SansSerif</value></prop></node><node oor:name="sansbolditalic" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans</value></prop><prop oor:name="FontWeight"><value>Bold</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,SansSerif</value></prop></node><node oor:name="sanssemibold" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans</value></prop><prop oor:name="FontWeight"><value>SemiBold</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="sanssemibolditalic" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans</value></prop><prop oor:name="FontWeight"><value>SemiBold</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,SansSerif</value></prop></node><node oor:name="sanscondensedsemibold" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans</value></prop><prop oor:name="FontWeight"><value>Semi</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Normal,SansSerif</value></prop></node><node oor:name="sanscondensedsemibolditalic" oor:op="replace"><prop oor:name="SubstFonts"><value>albanyamt;albany;arial;nimbussansl;helvetica;lucidasans</value></prop><prop oor:name="FontWeight"><value>SemiBold</value></prop><prop oor:name="FontWidth"><value>Condensed</value></prop><prop oor:name="FontType"><value>Italic,SansSerif</value></prop></node><node oor:name="serifregular" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="serifbold" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons</value></prop><prop oor:name="FontWeight"><value>Bold</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Normal,Serif</value></prop></node><node oor:name="serifbolditalic" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons</value></prop><prop oor:name="FontWeight"><value>Bold</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Serif</value></prop></node><node oor:name="serifitalic" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Italic,Serif</value></prop></node><node oor:name="serifcaps" oor:op="replace"><prop oor:name="SubstFonts"><value>thorndaleamt;thorndale;timesnewroman;nimbusromanno9l;times;timesroman;newyork;timmons</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Serif,Capitals</value></prop></node><node oor:name="charter" oor:op="replace"><prop oor:name="SubstFonts"><value>bitstreamcharter;georgia;timesnewroman</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Serif</value></prop></node><node oor:name="bitstreamcharter" oor:op="replace"><prop oor:name="SubstFonts"><value>charter;georgia;timesnewroman</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Serif</value></prop></node><node oor:name="georgia" oor:op="replace"><prop oor:name="SubstFonts"><value>bell;bitstreamcharter;charter;timesnewroman</value></prop><prop oor:name="FontWeight"><value>Normal</value></prop><prop oor:name="FontWidth"><value>Normal</value></prop><prop oor:name="FontType"><value>Serif</value></prop></node><node oor:name="angsananew" oor:op="replace"><prop oor:name="SubstFonts"><value>angsanaupc;oonaksit;tahoma;browallianew;lucidasans;arialunicodems;clearlyu</value></prop></node><node oor:name="angsanaupc" oor:op="replace"><prop oor:name="SubstFonts"><value>angsananew;oonaksit;tahoma;browalliaupc;lucidasans;arialunicodems;clearlyu</value></prop></node><node oor:name="browallianew" oor:op="replace"><prop oor:name="SubstFonts"><value>browalliaupc;angsananew;oonaksit;tahoma;lucidasans;arialunicodems;clearlyu</value></prop></node><node oor:name="browalliaupc" oor:op="replace"><prop oor:name="SubstFonts"><value>browallianew;angsanaupc;oonaksit;tahoma;lucidasans;arialunicodems;clearlyu</value></prop></node><node oor:name="cordianew" oor:op="replace"><prop oor:name="SubstFonts"><value>cordiaupc;browalliaupc;angsananew;oonaksit;tahoma;lucidasans;arialunicodems;clearlyu</value></prop></node><node oor:name="cordiaupc" oor:op="replace"><prop oor:name="SubstFonts"><value>cordianew;browallianew;angsanaupc;oonaksit;tahoma;lucidasans;arialunicodems;clearlyu</value></prop></node><node oor:name="ooannop" oor:op="replace"><prop oor:name="SubstFonts"><value>cordianew;browallianew;angsananew;tahoma</value></prop><prop oor:name="FontType"><value>CTL</value></prop><prop oor:name="SubstFontsMS"><value>angsananew</value></prop><prop oor:name="SubstFontsHTML"><value>angsananew</value></prop></node><node oor:name="oonaksit" oor:op="replace"><prop oor:name="SubstFonts"><value>cordianew;browallianew;angsananew;tahoma</value></prop><prop oor:name="FontType"><value>CTL</value></prop><prop oor:name="SubstFontsMS"><value>angsananew</value></prop><prop oor:name="SubstFontsHTML"><value>angsananew</value></prop></node><node oor:name="ooratchada" oor:op="replace"><prop oor:name="SubstFonts"><value>cordianew;browallianew;angsananew;tahoma</value></prop><prop oor:name="FontType"><value>CTL</value></prop><prop oor:name="SubstFontsMS"><value>angsananew</value></prop><prop oor:name="SubstFontsHTML"><value>angsananew</value></prop></node><node oor:name="oosawasdee" oor:op="replace"><prop oor:name="SubstFonts"><value>cordianew;browallianew;angsananew;tahoma</value></prop><prop oor:name="FontType"><value>CTL</value></prop><prop oor:name="SubstFontsMS"><value>angsananew</value></prop><prop oor:name="SubstFontsHTML"><value>angsananew</value></prop></node><node oor:name="oothanakrit" oor:op="replace"><prop oor:name="SubstFonts"><value>cordianew;browallianew;angsananew;tahoma</value></prop><prop oor:name="FontType"><value>CTL</value></prop><prop oor:name="SubstFontsMS"><value>angsananew</value></prop><prop oor:name="SubstFontsHTML"><value>angsananew</value></prop></node><node oor:name="garuda" oor:op="replace"><prop oor:name="SubstFonts"><value>cordianew;browallianew;angsananew;tahoma</value></prop><prop oor:name="FontType"><value>CTL</value></prop><prop oor:name="SubstFontsMS"><value>angsananew</value></prop><prop oor:name="SubstFontsHTML"><value>angsananew</value></prop></node><node oor:name="norasi" oor:op="replace"><prop oor:name="SubstFonts"><value>cordianew;browallianew;angsananew;tahoma</value></prop><prop oor:name="FontType"><value>CTL</value></prop><prop oor:name="SubstFontsMS"><value>angsananew</value></prop><prop oor:name="SubstFontsHTML"><value>angsananew</value></prop></node><node oor:name="nftnorasi" oor:op="replace"><prop oor:name="SubstFonts"><value>norasi</value></prop><prop oor:name="FontType"><value>CTL</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Configuration" oor:package="org.openoffice.ucb"><node oor:name="ContentProviders"><node oor:name="Local" oor:op="replace"><node oor:name="SecondaryKeys"><node oor:name="Office" oor:op="replace"><node oor:name="ProviderData"><node oor:name="Provider1" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.HierarchyContentProvider</value></prop><prop oor:name="URLTemplate"><value>vnd.sun.star.hier</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider2" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.FileContentProvider</value></prop><prop oor:name="URLTemplate"><value>file</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider3" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.WebDAVContentProvider</value></prop><prop oor:name="URLTemplate"><value>http</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider4" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.WebDAVContentProvider</value></prop><prop oor:name="URLTemplate"><value>vnd.sun.star.webdav</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider5" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.help.XMLHelp</value></prop><prop oor:name="URLTemplate"><value>vnd.sun.star.help</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider6" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.FTPContentProvider</value></prop><prop oor:name="URLTemplate"><value>ftp</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider7" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.WebDAVContentProvider</value></prop><prop oor:name="URLTemplate"><value>dav</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider8" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.PackageContentProvider</value></prop><prop oor:name="URLTemplate"><value>vnd.sun.star.pkg</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider9" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.ExpandContentProvider</value></prop><prop oor:name="URLTemplate"><value>vnd.sun.star.expand</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider10" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.TransientDocumentsContentProvider</value></prop><prop oor:name="URLTemplate"><value>vnd.sun.star.tdoc</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider11" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.PackageContentProvider</value></prop><prop oor:name="URLTemplate"><value>vnd.sun.star.zip</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider12" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.WebDAVContentProvider</value></prop><prop oor:name="URLTemplate"><value>https</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider13" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.WebDAVContentProvider</value></prop><prop oor:name="URLTemplate"><value>davs</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider14" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.ExtensionContentProvider</value></prop><prop oor:name="URLTemplate"><value>vnd.sun.star.extension</value></prop><prop oor:name="Arguments"><value/></prop></node><node oor:name="Provider42" oor:op="replace"><prop oor:name="ServiceName"><value>com.sun.star.ucb.ODMAContentProvider</value></prop><prop oor:name="URLTemplate"><value>vnd.sun.star.odma</value></prop><prop oor:name="Arguments"><value/></prop></node></node></node></node></node></node></oor:component-data><oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess"><node oor:name="Installed"><node oor:name="sdbc:dbase:*" oor:op="replace"><prop oor:name="Driver"><value>com.sun.star.comp.sdbc.dbase.ODriver</value></prop><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"><value xml:lang="en-US">dBASE</value></prop><node oor:name="Properties"><node oor:name="CharSet" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="ShowDeleted" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="EnableSQL92Check" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="AddIndexAppendix" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>false</value></prop></node></node><node oor:name="Features"><node oor:name="UseSQL92NamingConstraints" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseDOSLineEnds" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="EscapeDateTime" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="MetaData"><node oor:name="SupportsTableCreation" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="SupportsBrowsing" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="FileSystemBased" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="MediaType" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>application/dbase</value></prop></node></node></node></node></oor:component-data><oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess"><node oor:name="Installed"><node oor:name="sdbc:flat:*" oor:op="replace"><prop oor:name="Driver"><value>com.sun.star.comp.sdbc.flat.ODriver</value></prop><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"><value xml:lang="en-US">Text</value></prop><node oor:name="Properties"><node oor:name="CharSet" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="Extension" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="HeaderLine" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="FieldDelimiter" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>,</value></prop></node><node oor:name="StringDelimiter" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>"</value></prop></node><node oor:name="DecimalDelimiter" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>.</value></prop></node><node oor:name="ThousandDelimiter" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="EnableSQL92Check" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="MaxRowScan" oor:op="replace"><prop oor:name="Value" oor:type="xs:int"><value>100</value></prop></node></node><node oor:name="Features"><node oor:name="MaxRowScan" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseSQL92NamingConstraints" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="EscapeDateTime" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="MetaData"><node oor:name="SupportsBrowsing" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="FileSystemBased" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="MediaType" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>text/csv</value></prop></node></node></node></node></oor:component-data><oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess"><node oor:name="Installed"><node oor:name="sdbc:mysql:jdbc:*" oor:op="replace"><prop oor:name="Driver"><value>org.openoffice.comp.drivers.MySQL.Driver</value></prop><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"><value xml:lang="en-US">MySQL (JDBC)</value></prop><node oor:name="Properties"><node oor:name="CharSet" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="JavaDriverClass" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>com.mysql.jdbc.Driver</value></prop></node><node oor:name="AddIndexAppendix" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="Features"><node oor:name="UseKeywordAsBeforeAlias" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="IgnoreDriverPrivileges" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="DisplayVersionColumns" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseDOSLineEnds" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="BooleanComparisonMode" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="FormsCheckRequiredFields" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="MetaData"><node oor:name="SupportsTableCreation" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseJava" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="Authentication" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>UserPassword</value></prop></node><node oor:name="SupportsColumnDescription" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node></node><node oor:name="sdbc:mysql:odbc:*" oor:op="replace"><prop oor:name="Driver"><value>org.openoffice.comp.drivers.MySQL.Driver</value></prop><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"><value xml:lang="en-US">MySQL (ODBC)</value></prop><node oor:name="Properties"><node oor:name="CharSet" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="AddIndexAppendix" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="Features"><node oor:name="UseKeywordAsBeforeAlias" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="IgnoreDriverPrivileges" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="DisplayVersionColumns" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseDOSLineEnds" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="BooleanComparisonMode" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="FormsCheckRequiredFields" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="MetaData"><node oor:name="SupportsTableCreation" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="SupportsBrowsing" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="Authentication" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>UserPassword</value></prop></node></node></node><node oor:name="sdbc:mysql:mysqlc:*" oor:op="replace"><prop oor:name="Driver"><value>org.openoffice.comp.drivers.MySQL.Driver</value></prop><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"><value xml:lang="en-US">MySQL (Native)</value></prop><node oor:name="Properties"><node oor:name="CharSet" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="LocalSocket" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="NamedPipe" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="AddIndexAppendix" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="Features"><node oor:name="UseKeywordAsBeforeAlias" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="IgnoreDriverPrivileges" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="DisplayVersionColumns" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseDOSLineEnds" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="BooleanComparisonMode" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="FormsCheckRequiredFields" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="MetaData"><node oor:name="SupportsTableCreation" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="Authentication" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>UserPassword</value></prop></node><node oor:name="SupportsColumnDescription" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node></node></node></oor:component-data><oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess"><node oor:name="Installed"><node oor:name="sdbc:odbc:*" oor:op="replace"><prop oor:name="Driver"><value>com.sun.star.comp.sdbc.ODBCDriver</value></prop><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"><value xml:lang="en-US">ODBC</value></prop><node oor:name="Properties"><node oor:name="CharSet" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="SystemDriverSettings" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="UseCatalog" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="AutoIncrementCreation" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="AutoRetrievingStatement" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="IsAutoRetrievingEnabled" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="AddIndexAppendix" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="Features"><node oor:name="GeneratedValues" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseSQL92NamingConstraints" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="AppendTableAliasInSelect" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseKeywordAsBeforeAlias" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseBracketedOuterJoinSyntax" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="IgnoreDriverPrivileges" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="ParameterNameSubstitution" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="DisplayVersionColumns" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseCatalogInSelect" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseSchemaInSelect" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseIndexDirectionKeyword" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseDOSLineEnds" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="BooleanComparisonMode" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="FormsCheckRequiredFields" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="EscapeDateTime" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="PrimaryKeySupport" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="RespectDriverResultSetType" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="MetaData"><node oor:name="SupportsTableCreation" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="SupportsBrowsing" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="Authentication" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>UserPassword</value></prop></node></node></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="writer_web_HTML_help" oor:op="replace"><prop oor:name="Flags"><value>IMPORT INTERNAL NOTINFILEDIALOG NOTINCHOOSER ASYNCHRON READONLY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>HTML_HELP</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Help content</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_web_HTML_help</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Misc"><node oor:name="FrameLoaders"><node oor:name="com.sun.star.frame.Bibliography" oor:op="replace"><prop oor:name="Types"><value>component_Bibliography</value></prop></node><node oor:name="com.sun.star.sdb.ContentLoader" oor:op="replace"><prop oor:name="Types"><value>component_DB</value></prop></node></node><node oor:name="ContentHandlers"><node oor:name="com.sun.star.comp.framework.SoundHandler" oor:op="replace"><prop oor:name="Types"><value>wav_Wave_Audio_File</value></prop></node><node oor:name="com.sun.star.comp.framework.OXTFileHandler" oor:op="replace"><prop oor:name="Types"><value>oxt_OpenOffice_Extension</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="writer_web_HTML_help" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"><value>vnd.sun.star.help://*</value></prop><prop oor:name="Extensions"/><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>writer_web_HTML_help</value></prop><prop oor:name="UIName"><value>Help content</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="oxt_OpenOffice_Extension" oor:op="replace"><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>oxt</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="UIName"><value>OpenOffice Extension</value></prop><prop oor:name="ClipboardFormat"/><prop oor:name="DetectService"><value>com.sun.star.comp.framework.OXTFileHandler</value></prop><prop oor:name="PreferredFilter"/></node><node oor:name="wav_Wave_Audio_File" oor:op="replace"><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wav</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="UIName"><value>Wave Audio File</value></prop><prop oor:name="ClipboardFormat"/><prop oor:name="DetectService"><value>com.sun.star.comp.framework.SoundHandler</value></prop><prop oor:name="PreferredFilter"/></node><node oor:name="component_Bibliography" oor:op="replace"><prop oor:name="URLPattern"><value>.component:Bibliography/*</value></prop><prop oor:name="Extensions"/><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="UIName"><value>Bibliography component</value></prop><prop oor:name="ClipboardFormat"/><prop oor:name="DetectService"/><prop oor:name="PreferredFilter"/></node><node oor:name="component_DB" oor:op="replace"><prop oor:name="URLPattern"><value>.component:DB*</value></prop><prop oor:name="Extensions"/><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="UIName"><value>DB component</value></prop><prop oor:name="ClipboardFormat"/><prop oor:name="DetectService"/><prop oor:name="PreferredFilter"/></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="StarOffice XML (Chart)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT OWN ALIEN NOTINFILEDIALOG NOTINCHOOSER ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.chart2.XMLFilter</value></prop><prop oor:name="UserData"><value>XML</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>chart_StarOffice_XML_Chart</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.chart2.ChartDocument</value></prop></node><node oor:name="chart8" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT OWN DEFAULT NOTINFILEDIALOG NOTINCHOOSER PREFERRED ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.chart2.XMLFilter</value></prop><prop oor:name="UserData"><value>XML</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>chart8</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.chart2.ChartDocument</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Misc"><node oor:name="FrameLoaders"><node oor:name="com.sun.star.comp.chart2.ChartFrameLoader" oor:op="replace" oor:finalized="true" oor:mandatory="true"><prop oor:name="Types"><value>chart_StarOffice_XML_Chart chart8 chart_StarChart_50 chart_StarChart_40 chart_StarChart_30</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="chart_StarOffice_XML_Chart" oor:op="replace" oor:finalized="true" oor:mandatory="true"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sxs</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.chart</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>StarOffice XML (Chart)</value></prop><prop oor:name="UIName"><value>Chart 6.0</value></prop><prop oor:name="ClipboardFormat"><value>Chart 6.0</value></prop></node><node oor:name="chart8" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"><value>private:factory/schart*</value></prop><prop oor:name="Extensions"><value>odc</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.chart</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>chart8</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Chart 8</value></prop><prop oor:name="ClipboardFormat"><value>Chart 8</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="GraphicFilter"><node oor:name="Filters"><node oor:name="bmp_Export" oor:op="replace"><prop oor:name="Type"><value>bmp_MS_Windows</value></prop><prop oor:name="FormatName"><value>SVBMP</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">BMP - Windows Bitmap</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="bmp_Import" oor:op="replace"><prop oor:name="Type"><value>bmp_MS_Windows</value></prop><prop oor:name="FormatName"><value>SVBMP</value></prop><prop oor:name="RealFilterName"><value>BMP - MS Windows</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">BMP - Windows Bitmap</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="dxf_Import" oor:op="replace"><prop oor:name="Type"><value>dxf_AutoCAD_Interchange</value></prop><prop oor:name="FormatName"><value>idx</value></prop><prop oor:name="RealFilterName"><value>DXF - AutoCAD Interchange</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">DXF - AutoCAD Interchange Format</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="emf_Export" oor:op="replace"><prop oor:name="Type"><value>emf_MS_Windows_Metafile</value></prop><prop oor:name="FormatName"><value>SVEMF</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">EMF - Enhanced Metafile</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="emf_Import" oor:op="replace"><prop oor:name="Type"><value>emf_MS_Windows_Metafile</value></prop><prop oor:name="FormatName"><value>SVEMF</value></prop><prop oor:name="RealFilterName"><value>EMF - MS Windows Metafile</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">EMF - Enhanced Metafile</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="eps_Export" oor:op="replace"><prop oor:name="Type"><value>eps_Encapsulated_PostScript</value></prop><prop oor:name="FormatName"><value>eps</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">EPS - Encapsulated PostScript</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="eps_Import" oor:op="replace"><prop oor:name="Type"><value>eps_Encapsulated_PostScript</value></prop><prop oor:name="FormatName"><value>ips</value></prop><prop oor:name="RealFilterName"><value>EPS - Encapsulated PostScript</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">EPS - Encapsulated PostScript</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="gif_Export" oor:op="replace"><prop oor:name="Type"><value>gif_Graphics_Interchange</value></prop><prop oor:name="FormatName"><value>egi</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">GIF - Graphics Interchange Format</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="gif_Import" oor:op="replace"><prop oor:name="Type"><value>gif_Graphics_Interchange</value></prop><prop oor:name="FormatName"><value>SVIGIF</value></prop><prop oor:name="RealFilterName"><value>GIF - Graphics Interchange</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">GIF - Graphics Interchange Format</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="jpg_Export" oor:op="replace"><prop oor:name="Type"><value>jpg_JPEG</value></prop><prop oor:name="FormatName"><value>SVEJPEG</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">JPEG - Joint Photographic Experts Group</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="jpg_Import" oor:op="replace"><prop oor:name="Type"><value>jpg_JPEG</value></prop><prop oor:name="FormatName"><value>SVIJPEG</value></prop><prop oor:name="RealFilterName"><value>JPG - JPEG</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">JPEG - Joint Photographic Experts Group</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="met_Export" oor:op="replace"><prop oor:name="Type"><value>met_OS2_Metafile</value></prop><prop oor:name="FormatName"><value>eme</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">MET - OS/2 Metafile</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="met_Import" oor:op="replace"><prop oor:name="Type"><value>met_OS2_Metafile</value></prop><prop oor:name="FormatName"><value>ime</value></prop><prop oor:name="RealFilterName"><value>MET - OS/2 Metafile</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">MET - OS/2 Metafile</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="pbm_Export" oor:op="replace"><prop oor:name="Type"><value>pbm_Portable_Bitmap</value></prop><prop oor:name="FormatName"><value>epb</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">PBM - Portable Bitmap</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="pbm_Import" oor:op="replace"><prop oor:name="Type"><value>pbm_Portable_Bitmap</value></prop><prop oor:name="FormatName"><value>ipb</value></prop><prop oor:name="RealFilterName"><value>PBM - Portable Bitmap</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">PBM - Portable Bitmap</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="pcd_Import_Base" oor:op="replace"><prop oor:name="Type"><value>pcd_Photo_CD_Base</value></prop><prop oor:name="FormatName"><value>icd</value></prop><prop oor:name="RealFilterName"><value>draw_PCD_Photo_CD_Base</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">PCD - Kodak Photo CD (768x512)</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="pcd_Import_Base4" oor:op="replace"><prop oor:name="Type"><value>pcd_Photo_CD_Base4</value></prop><prop oor:name="FormatName"><value>icd</value></prop><prop oor:name="RealFilterName"><value>draw_PCD_Photo_CD_Base4</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">PCD - Kodak Photo CD (384x256)</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="pcd_Import_Base16" oor:op="replace"><prop oor:name="Type"><value>pcd_Photo_CD_Base16</value></prop><prop oor:name="FormatName"><value>icd</value></prop><prop oor:name="RealFilterName"><value>draw_PCD_Photo_CD_Base16</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">PCD - Kodak Photo CD (192x128)</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="pct_Export" oor:op="replace"><prop oor:name="Type"><value>pct_Mac_Pict</value></prop><prop oor:name="FormatName"><value>ept</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">PCT - Mac Pict</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="pct_Import" oor:op="replace"><prop oor:name="Type"><value>pct_Mac_Pict</value></prop><prop oor:name="FormatName"><value>ipt</value></prop><prop oor:name="RealFilterName"><value>PCT - Mac Pict</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">PCT - Mac Pict</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="pcx_Import" oor:op="replace"><prop oor:name="Type"><value>pcx_Zsoft_Paintbrush</value></prop><prop oor:name="FormatName"><value>ipx</value></prop><prop oor:name="RealFilterName"><value>PCX - Zsoft Paintbrush</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">PCX - Zsoft Paintbrush</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="pgm_Export" oor:op="replace"><prop oor:name="Type"><value>pgm_Portable_Graymap</value></prop><prop oor:name="FormatName"><value>epg</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">PGM - Portable Graymap</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="pgm_Import" oor:op="replace"><prop oor:name="Type"><value>pgm_Portable_Graymap</value></prop><prop oor:name="FormatName"><value>ipb</value></prop><prop oor:name="RealFilterName"><value>PGM - Portable Graymap</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">PGM - Portable Graymap</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="png_Export" oor:op="replace"><prop oor:name="Type"><value>png_Portable_Network_Graphic</value></prop><prop oor:name="FormatName"><value>SVEPNG</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">PNG - Portable Network Graphic</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="png_Import" oor:op="replace"><prop oor:name="Type"><value>png_Portable_Network_Graphic</value></prop><prop oor:name="FormatName"><value>SVIPNG</value></prop><prop oor:name="RealFilterName"><value>PNG - Portable Network Graphic</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">PNG - Portable Network Graphic</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="ppm_Export" oor:op="replace"><prop oor:name="Type"><value>ppm_Portable_Pixelmap</value></prop><prop oor:name="FormatName"><value>epp</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">PPM - Portable Pixelmap</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="ppm_Import" oor:op="replace"><prop oor:name="Type"><value>ppm_Portable_Pixelmap</value></prop><prop oor:name="FormatName"><value>ipb</value></prop><prop oor:name="RealFilterName"><value>PPM - Portable Pixelmap</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">PPM - Portable Pixelmap</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="psd_Import" oor:op="replace"><prop oor:name="Type"><value>psd_Adobe_Photoshop</value></prop><prop oor:name="FormatName"><value>ipd</value></prop><prop oor:name="RealFilterName"><value>PSD - Adobe Photoshop</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">PSD - Adobe Photoshop</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="ras_Export" oor:op="replace"><prop oor:name="Type"><value>ras_Sun_Rasterfile</value></prop><prop oor:name="FormatName"><value>era</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">RAS - Sun Raster Image</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="ras_Import" oor:op="replace"><prop oor:name="Type"><value>ras_Sun_Rasterfile</value></prop><prop oor:name="FormatName"><value>ira</value></prop><prop oor:name="RealFilterName"><value>RAS - Sun Rasterfile</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">RAS - Sun Raster Image</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="sgf_Import" oor:op="replace"><prop oor:name="Type"><value>sgf_StarOffice_Writer_SGF</value></prop><prop oor:name="FormatName"><value>SVSGF</value></prop><prop oor:name="RealFilterName"><value>SGF - StarOffice Writer SGF</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">SGF - StarWriter Graphics Format</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="sgv_Import" oor:op="replace"><prop oor:name="Type"><value>sgv_StarDraw_20</value></prop><prop oor:name="FormatName"><value>SVSGV</value></prop><prop oor:name="RealFilterName"><value>SGV - StarDraw 2.0</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">SGV - StarDraw 2.0</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="svg_Export" oor:op="replace"><prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop><prop oor:name="FormatName"><value>SVESVG</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">SVG - Scalable Vector Graphics</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="svg_Import" oor:op="replace"><prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop><prop oor:name="FormatName"><value>SVISVG</value></prop><prop oor:name="RealFilterName"><value>SVG - Scalable Vector Graphics</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">SVG - Scalable Vector Graphics</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="svm_Export" oor:op="replace"><prop oor:name="Type"><value>svm_StarView_Metafile</value></prop><prop oor:name="FormatName"><value>SVMETAFILE</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">SVM - StarView Metafile</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="svm_Import" oor:op="replace"><prop oor:name="Type"><value>svm_StarView_Metafile</value></prop><prop oor:name="FormatName"><value>SVMETAFILE</value></prop><prop oor:name="RealFilterName"><value>SVM - StarView Metafile</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">SVM - StarView Metafile</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="tga_Import" oor:op="replace"><prop oor:name="Type"><value>tga_Truevision_TARGA</value></prop><prop oor:name="FormatName"><value>itg</value></prop><prop oor:name="RealFilterName"><value>TGA - Truevision TARGA</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">TGA - Truevision Targa</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="tif_Export" oor:op="replace"><prop oor:name="Type"><value>tif_Tag_Image_File</value></prop><prop oor:name="FormatName"><value>eti</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">TIFF - Tagged Image File Format</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="tif_Import" oor:op="replace"><prop oor:name="Type"><value>tif_Tag_Image_File</value></prop><prop oor:name="FormatName"><value>iti</value></prop><prop oor:name="RealFilterName"><value>TIF - Tag Image File</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">TIFF - Tagged Image File Format</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="wmf_Export" oor:op="replace"><prop oor:name="Type"><value>wmf_MS_Windows_Metafile</value></prop><prop oor:name="FormatName"><value>SVWMF</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">WMF - Windows Metafile</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="wmf_Import" oor:op="replace"><prop oor:name="Type"><value>wmf_MS_Windows_Metafile</value></prop><prop oor:name="FormatName"><value>SVWMF</value></prop><prop oor:name="RealFilterName"><value>WMF - MS Windows Metafile</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">WMF - Windows Metafile</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="xbm_Import" oor:op="replace"><prop oor:name="Type"><value>xbm_X_Consortium</value></prop><prop oor:name="FormatName"><value>SVIXBM</value></prop><prop oor:name="RealFilterName"><value>XBM - X-Consortium</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">XBM - X Bitmap</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node><node oor:name="xpm_Export" oor:op="replace"><prop oor:name="Type"><value>xpm_XPM</value></prop><prop oor:name="FormatName"><value>exp</value></prop><prop oor:name="RealFilterName"/><prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop><prop oor:name="UIName"><value xml:lang="en-US">XPM - X PixMap</value></prop><prop oor:name="Flags"><value>EXPORT</value></prop></node><node oor:name="xpm_Import" oor:op="replace"><prop oor:name="Type"><value>xpm_XPM</value></prop><prop oor:name="FormatName"><value>SVIXPM</value></prop><prop oor:name="RealFilterName"><value>XPM</value></prop><prop oor:name="UIComponent"/><prop oor:name="UIName"><value xml:lang="en-US">XPM - X PixMap</value></prop><prop oor:name="Flags"><value>IMPORT</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="bmp_MS_Windows" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>bmp</value></prop><prop oor:name="MediaType"><value>image/x-MS-bmp</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>BMP - MS Windows</value></prop><prop oor:name="UIName"><value>BMP - Windows Bitmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="dxf_AutoCAD_Interchange" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>dxf</value></prop><prop oor:name="MediaType"><value>image/vnd.dxf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>DXF - AutoCAD Interchange</value></prop><prop oor:name="UIName"><value>DXF - AutoCAD Interchange Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="emf_MS_Windows_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>emf</value></prop><prop oor:name="MediaType"><value>image/x-emf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>EMF - MS Windows Metafile</value></prop><prop oor:name="UIName"><value>EMF - Enhanced Meta File</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="eps_Encapsulated_PostScript" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>eps</value></prop><prop oor:name="MediaType"><value>image/x-eps</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>EPS - Encapsulated PostScript</value></prop><prop oor:name="UIName"><value>EPS - Encapsulated PostScript</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="gif_Graphics_Interchange" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>gif</value></prop><prop oor:name="MediaType"><value>image/gif</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>GIF - Graphics Interchange</value></prop><prop oor:name="UIName"><value>GIF - Graphics Interchange</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="jpg_JPEG" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>jpg jpeg jfif jif jpe</value></prop><prop oor:name="MediaType"><value>image/jpeg</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>JPG - JPEG</value></prop><prop oor:name="UIName"><value>JPEG - Joint Photographic Experts Group</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="met_OS2_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>met</value></prop><prop oor:name="MediaType"><value>image/x-met</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MET - OS/2 Metafile</value></prop><prop oor:name="UIName"><value>MET - OS/2 Metafile</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pbm_Portable_Bitmap" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pbm</value></prop><prop oor:name="MediaType"><value>image/x-portable-bitmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PBM - Portable Bitmap</value></prop><prop oor:name="UIName"><value>PBM - Portable Bitmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pcd_Photo_CD_Base" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pcd</value></prop><prop oor:name="MediaType"><value>image/x-photo-cd</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>draw_PCD_Photo_CD_Base</value></prop><prop oor:name="UIName"><value>PCD - Photo CD Base</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pcd_Photo_CD_Base16" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pcd</value></prop><prop oor:name="MediaType"><value>image/x-photo-cd</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>draw_PCD_Photo_CD_Base16</value></prop><prop oor:name="UIName"><value>PCD - Photo CD Base16</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pcd_Photo_CD_Base4" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pcd</value></prop><prop oor:name="MediaType"><value>image/x-photo-cd</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>draw_PCD_Photo_CD_Base4</value></prop><prop oor:name="UIName"><value>PCD - Photo CD Base4</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pct_Mac_Pict" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pct pict</value></prop><prop oor:name="MediaType"><value>image/x-pict</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PCT - Mac Pict</value></prop><prop oor:name="UIName"><value>PCT - Mac Pict</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pcx_Zsoft_Paintbrush" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pcx</value></prop><prop oor:name="MediaType"><value>image/x-pcx</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PCX - Zsoft Paintbrush</value></prop><prop oor:name="UIName"><value>PCX - Zsoft Paintbrush</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="pgm_Portable_Graymap" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pgm</value></prop><prop oor:name="MediaType"><value>image/x-portable-graymap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PGM - Portable Graymap</value></prop><prop oor:name="UIName"><value>PGM - Portable Graymap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="png_Portable_Network_Graphic" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>png</value></prop><prop oor:name="MediaType"><value>image/png</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PNG - Portable Network Graphic</value></prop><prop oor:name="UIName"><value>PNG - Portable Network Graphic</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="ppm_Portable_Pixelmap" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ppm</value></prop><prop oor:name="MediaType"><value>image/x-portable-pixmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PPM - Portable Pixelmap</value></prop><prop oor:name="UIName"><value>PPM - Portable Pixelmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="psd_Adobe_Photoshop" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>psd</value></prop><prop oor:name="MediaType"><value>image/vnd.adobe.photoshop</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PSD - Adobe Photoshop</value></prop><prop oor:name="UIName"><value>PSD - Adobe Photoshop</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="ras_Sun_Rasterfile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ras</value></prop><prop oor:name="MediaType"><value>image/x-cmu-raster</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>RAS - Sun Rasterfile</value></prop><prop oor:name="UIName"><value>RAS - Sun Raster Image</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="sgf_StarOffice_Writer_SGF" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sgf</value></prop><prop oor:name="MediaType"><value>image/x-sgf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>SGF - StarOffice Writer SGF</value></prop><prop oor:name="UIName"><value>SGF - StarWriter SGF</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="sgv_StarDraw_20" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sgv</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>SGV - StarDraw 2.0</value></prop><prop oor:name="UIName"><value>SGV - StarDraw 2.0</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="svg_Scalable_Vector_Graphics" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>svg</value></prop><prop oor:name="MediaType"><value>image/svg+xml</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>SVG - Scalable Vector Graphics</value></prop><prop oor:name="UIName"><value>SVG - Scalable Vector Graphics</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="svm_StarView_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>svm</value></prop><prop oor:name="MediaType"><value>image/x-svm</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>SVM - StarView Metafile</value></prop><prop oor:name="UIName"><value>SVM - StarView Meta File</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="tga_Truevision_TARGA" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>tga</value></prop><prop oor:name="MediaType"><value>image/x-targa</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>TGA - Truevision TARGA</value></prop><prop oor:name="UIName"><value>TGA - Truevision Targa</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="tif_Tag_Image_File" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>tif tiff</value></prop><prop oor:name="MediaType"><value>image/tiff</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>TIF - Tag Image File</value></prop><prop oor:name="UIName"><value>TIFF - Tagged Image File Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="wmf_MS_Windows_Metafile" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wmf</value></prop><prop oor:name="MediaType"><value>image/x-wmf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>WMF - MS Windows Metafile</value></prop><prop oor:name="UIName"><value>WMF - Windows Metafile</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="xbm_X_Consortium" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xbm</value></prop><prop oor:name="MediaType"><value>image/x-xbitmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>XBM - X-Consortium</value></prop><prop oor:name="UIName"><value>XBM - X Bitmap</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="xpm_XPM" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xpm</value></prop><prop oor:name="MediaType"><value>image/x-xpixmap</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>XPM</value></prop><prop oor:name="UIName"><value>XPM - X PixMap</value></prop><prop oor:name="ClipboardFormat"/></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:package="org.openoffice.Office" oor:name="Embedding"><node oor:name="Objects"><node oor:name="12DCAE26-281F-416F-A234-C3086127382E" oor:op="replace"><prop oor:name="ObjectFactory"><value>com.sun.star.embed.OOoEmbeddedObjectFactory</value></prop><prop oor:name="ObjectDocumentServiceName"><value>com.sun.star.chart2.ChartDocument</value></prop><prop oor:name="ObjectMiscStatus"><value>1</value></prop><prop oor:name="ObjectVerbs"><value>PRIMARY SHOW OPEN HIDE UIACTIVATE IPACTIVATE</value></prop></node></node><node oor:name="ObjectNames"><node oor:name="Chart" oor:op="replace"><prop oor:name="ObjectUIName"><value xml:lang="en-US">%PRODUCTNAME %PRODUCTVERSION Chart</value></prop><prop oor:name="ClassID"><value>12DCAE26-281F-416F-A234-C3086127382E</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice"><node oor:name="Office"><node oor:name="Factories"><node oor:name="com.sun.star.frame.StartModule" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"/><prop oor:name="ooSetupFactoryCommandConfigRef"><value>StartModuleCommands</value></prop><prop oor:name="ooSetupFactoryShortName"><value>StartModule</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>StartModuleWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="UISort" oor:package="org.openoffice.TypeDetection"><node oor:name="ModuleDependendFilterOrder"><node oor:name="com.sun.star.sheet.SpreadsheetDocument" oor:op="replace"><prop oor:name="SortedFilterList"><value oor:separator=";">calc8;calc8_template;StarOffice XML (Calc);calc_StarOffice_XML_Calc_Template;Calc Office Open XML;Calc Office Open XML Template;OpenDocument Spreadsheet Flat XML;UOF spreadsheet;Calc MS Excel 2007 XML;Calc MS Excel 2007 XML Template;Calc MS Excel 2007 Binary;MS Excel 2003 XML;MS Excel 97;MS Excel 97 Vorlage/Template;MS Excel 95;MS Excel 95 Vorlage/Template;MS Excel 5.0/95;MS Excel 5.0/95 Vorlage/Template;MS Excel 4.0;MS Excel 4.0 Vorlage/Template;StarCalc 5.0;StarCalc 5.0 Vorlage/Template;StarCalc 4.0;StarCalc 4.0 Vorlage/Template;StarCalc 3.0;StarCalc 3.0 Vorlage/Template;StarCalc 1.0;DIF;dBase;HTML (StarCalc);Lotus;Pocket Excel;Quattro Pro 6.0;Rich Text Format (StarCalc);SYLK;Text - txt - csv (StarCalc);calc_HTML_WebQuery</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="UISort" oor:package="org.openoffice.TypeDetection"><node oor:name="ModuleDependendFilterOrder"><node oor:name="com.sun.star.drawing.DrawingDocument" oor:op="replace"><prop oor:name="SortedFilterList"><value oor:separator=";">draw8;draw8_template;StarOffice XML (Draw);draw_StarOffice_XML_Draw_Template;OpenDocument Drawing Flat XML;draw_html_Export;draw_pdf_Export;draw_flash_Export;WordPerfect Graphics;DXF - AutoCAD Interchange;EMF - MS Windows Metafile;EPS - Encapsulated PostScript;MET - OS/2 Metafile;PCT - Mac Pict;SGF - StarOffice Writer SGF;SGV - StarDraw 2.0;StarDraw 5.0;StarDraw 5.0 Vorlage;StarDraw 3.0;StarDraw 3.0 Vorlage;SVM - StarView Metafile;WMF - MS Windows Metafile</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="UISort" oor:package="org.openoffice.TypeDetection"><node oor:name="ModuleDependendFilterOrder"><node oor:name="com.sun.star.presentation.PresentationDocument" oor:op="replace"><prop oor:name="SortedFilterList"><value oor:separator=";">impress8;impress8_template;impress8_draw;StarOffice XML (Impress);impress_StarOffice_XML_Impress_Template;impress_StarOffice_XML_Draw;Impress Office Open XML;Impress Office Open XML AutoPlay;Impress Office Open XML Template;OpenDocument Presentation Flat XML;UOF presentation;Impress MS PowerPoint 2007 XML;Impress MS PowerPoint 2007 XML AutoPlay;Impress MS PowerPoint 2007 XML Template;MS PowerPoint 97;MS PowerPoint 97 AutoPlay;MS PowerPoint 97 Vorlage;StarDraw 5.0 (StarImpress);StarDraw 3.0 (StarImpress);StarImpress 5.0;StarImpress 5.0 Vorlage;StarImpress 5.0 (packed);StarImpress 4.0;StarImpress 4.0 Vorlage;CGM - Computer Graphics Metafile</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="UISort" oor:package="org.openoffice.TypeDetection"><node oor:name="ModuleDependendFilterOrder"><node oor:name="com.sun.star.formula.FormulaProperties" oor:op="replace"><prop oor:name="SortedFilterList"><value oor:separator=";">math8;StarOffice XML (Math);StarMath 5.0;StarMath 4.0;StarMath 3.0;StarMath 2.0;MathML XML (Math);MathType 3.x</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="UISort" oor:package="org.openoffice.TypeDetection"><node oor:name="ModuleDependendFilterOrder"><node oor:name="com.sun.star.text.GlobalDocument" oor:op="replace"><prop oor:name="SortedFilterList"><value oor:separator=";">writerglobal8;writer_globaldocument_StarOffice_XML_Writer_GlobalDocument;StarWriter 5.0/GlobalDocument;StarWriter 4.0/GlobalDocument;writer_globaldocument_StarOffice_XML_Writer;StarWriter 5.0 (StarWriter/GlobalDocument);StarWriter 4.0 (StarWriter/GlobalDocument);StarWriter 3.0 (StarWriter/GlobalDocument);Text (encoded) (StarWriter/GlobalDocument)</value></prop></node><node oor:name="com.sun.star.text.TextDocument" oor:op="replace"><prop oor:name="SortedFilterList"><value oor:separator=";">writer8;writer8_template;StarOffice XML (Writer);writer_StarOffice_XML_Writer_Template;Office Open XML Text;Office Open XML Text Template;OpenDocument Text Flat XML;UOF text;MS Word 2007 XML;MS Word 2007 XML Template;MS Word 2003 XML;MS Word 97;MS Word 97 Vorlage;MS Word 95;MS Word 95 Vorlage;MS WinWord 6.0;MS WinWord 5;MS_Works;AportisDoc Palm DB;DocBook File;writer_MIZI_Hwp_97;HTML (StarWriter);LotusWordPro;PocketWord File;Rich Text Format;StarWriter 5.0;StarWriter 5.0 Vorlage/Template;StarWriter 4.0;StarWriter 4.0 Vorlage/Template;StarWriter 3.0;StarWriter 3.0 Vorlage/Template;T602Document;Text;Text (encoded);WordPerfect</value></prop></node><node oor:name="com.sun.star.text.WebDocument" oor:op="replace"><prop oor:name="SortedFilterList"><value oor:separator=";">HTML;writerweb8_writer;writerweb8_writer_template;writer_web_StarOffice_XML_Writer_Web_Template;writer_web_StarOffice_XML_Writer;StarWriter/Web 5.0 Vorlage/Template;StarWriter/Web 4.0 Vorlage/Template;StarWriter 5.0 (StarWriter/Web);StarWriter 4.0 (StarWriter/Web);StarWriter 3.0 (StarWriter/Web);Text (StarWriter/Web);Text (encoded) (StarWriter/Web)</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Inet" oor:package="org.openoffice"><node oor:name="Settings"><prop oor:name="ooInetNoProxy"><value oor:external="com.sun.star.configuration.backend.DesktopBackend ooInetNoProxy"/></prop><prop oor:name="ooInetProxyType"><value oor:external="com.sun.star.configuration.backend.DesktopBackend ooInetProxyType"/></prop><prop oor:name="ooInetFTPProxyName"><value oor:external="com.sun.star.configuration.backend.DesktopBackend ooInetFTPProxyName"/></prop><prop oor:name="ooInetFTPProxyPort"><value oor:external="com.sun.star.configuration.backend.DesktopBackend ooInetFTPProxyPort"/></prop><prop oor:name="ooInetHTTPProxyName"><value oor:external="com.sun.star.configuration.backend.DesktopBackend ooInetHTTPProxyName"/></prop><prop oor:name="ooInetHTTPProxyPort"><value oor:external="com.sun.star.configuration.backend.DesktopBackend ooInetHTTPProxyPort"/></prop><prop oor:name="ooInetHTTPSProxyName"><value oor:external="com.sun.star.configuration.backend.DesktopBackend ooInetHTTPSProxyName"/></prop><prop oor:name="ooInetHTTPSProxyPort"><value oor:external="com.sun.star.configuration.backend.DesktopBackend ooInetHTTPSProxyPort"/></prop></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Accelerators" oor:package="org.openoffice.Office"><node oor:name="PrimaryKeys"><node oor:name="Modules"><node oor:name="com.sun.star.sheet.SpreadsheetDocument"><node oor:name="F11"><prop oor:name="Command"><value xml:lang="en-US">.uno:DesignerDialog</value></prop></node><node oor:name="M_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetAttributes</value></prop></node><node oor:name="T_MOD1"><prop oor:name="Command"><value xml:lang="de">.uno:SubScript</value><value xml:lang="es">.uno:AlignHorizontalCenter</value></prop></node><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node><node oor:name="com.sun.star.chart2.ChartDocument"><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node><node oor:name="com.sun.star.drawing.DrawingDocument"><node oor:name="F11"><prop oor:name="Command"><value xml:lang="en-US">.uno:DesignerDialog</value></prop></node><node oor:name="M_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetAttributes</value></prop></node><node oor:name="T_MOD1"><prop oor:name="Command"><value xml:lang="de">.uno:SubScript</value><value xml:lang="es">.uno:CenterPara</value></prop></node><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node><node oor:name="com.sun.star.text.GlobalDocument"><node oor:name="F11"><prop oor:name="Command"><value xml:lang="en-US">.uno:DesignerDialog</value></prop></node><node oor:name="M_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetAttributes</value></prop></node><node oor:name="T_MOD1"><prop oor:name="Command"><value xml:lang="de">.uno:SubScript</value><value xml:lang="es">.uno:CenterPara</value></prop></node><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node><node oor:name="com.sun.star.presentation.PresentationDocument"><node oor:name="F11"><prop oor:name="Command"><value xml:lang="en-US">.uno:DesignerDialog</value></prop></node><node oor:name="M_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetAttributes</value></prop></node><node oor:name="T_MOD1"><prop oor:name="Command"><value xml:lang="de">.uno:SubScript</value><value xml:lang="es">.uno:CenterPara</value></prop></node><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node><node oor:name="com.sun.star.formula.FormulaProperties"><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node><node oor:name="com.sun.star.text.WebDocument"><node oor:name="F11"><prop oor:name="Command"><value xml:lang="en-US">.uno:DesignerDialog</value></prop></node><node oor:name="M_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetAttributes</value></prop></node><node oor:name="T_MOD1"><prop oor:name="Command"><value xml:lang="de">.uno:SubScript</value><value xml:lang="es">.uno:CenterPara</value></prop></node><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node><node oor:name="com.sun.star.sdb.FormDesign"><node oor:name="F11"><prop oor:name="Command"><value xml:lang="en-US">.uno:DesignerDialog</value></prop></node><node oor:name="M_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetAttributes</value></prop></node><node oor:name="T_MOD1"><prop oor:name="Command"><value xml:lang="de">.uno:SubScript</value><value xml:lang="es">.uno:CenterPara</value></prop></node><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node><node oor:name="com.sun.star.sdb.TextReportDesign"><node oor:name="F11"><prop oor:name="Command"><value xml:lang="en-US">.uno:DesignerDialog</value></prop></node><node oor:name="M_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetAttributes</value></prop></node><node oor:name="T_MOD1"><prop oor:name="Command"><value xml:lang="de">.uno:SubScript</value><value xml:lang="es">.uno:CenterPara</value></prop></node><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node><node oor:name="com.sun.star.text.TextDocument"><node oor:name="F11"><prop oor:name="Command"><value xml:lang="en-US">.uno:DesignerDialog</value></prop></node><node oor:name="M_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetAttributes</value></prop></node><node oor:name="T_MOD1"><prop oor:name="Command"><value xml:lang="de">.uno:SubScript</value><value xml:lang="es">.uno:CenterPara</value></prop></node><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node><node oor:name="com.sun.star.xforms.XMLFormDocument"><node oor:name="F11"><prop oor:name="Command"><value xml:lang="en-US">.uno:DesignerDialog</value></prop></node><node oor:name="M_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:ResetAttributes</value></prop></node><node oor:name="T_MOD1"><prop oor:name="Command"><value xml:lang="de">.uno:SubScript</value><value xml:lang="es">.uno:CenterPara</value></prop></node><node oor:name="Y_MOD1" oor:op="replace"><prop oor:name="Command"><value xml:lang="en-US">.uno:Redo</value></prop></node></node></node></node><node oor:name="SecondaryKeys"><node oor:name="Modules"><node oor:name="com.sun.star.presentation.PresentationDocument"><node oor:name="T_MOD1"><prop oor:name="Command"><value xml:lang="de">.uno:SubScript</value><value xml:lang="es">.uno:AlignHorizontalCenter</value></prop></node></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"/><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"><node oor:name="ExternalMailer"><prop oor:name="Program"><value oor:external="com.sun.star.configuration.backend.DesktopBackend ExternalMailer"/></prop></node><node oor:name="Font"><node oor:name="SourceViewFont"><prop oor:name="FontName"><value oor:external="com.sun.star.configuration.backend.DesktopBackend SourceViewFontName"/></prop><prop oor:name="FontHeight"><value oor:external="com.sun.star.configuration.backend.DesktopBackend SourceViewFontHeight"/></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"><node oor:name="View"><node oor:name="Dialog"><prop oor:name="MiddleMouseButton"><value>2</value></prop></node></node><node oor:name="Help"><prop oor:name="System"><value>UNIX</value></prop></node><node oor:name="Path"><node oor:name="Current"><prop oor:name="Temp" oor:type="xs:string"><value>$(temp)</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Paths" oor:package="org.openoffice.Office"><node oor:name="Variables"><prop oor:name="Work"><value oor:external="com.sun.star.configuration.backend.DesktopBackend WorkPathVariable"/></prop></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Paths" oor:package="org.openoffice.Office"><node oor:name="Paths"><node oor:name="Temp" oor:mandatory="true"><prop oor:name="WritePath"><value>$(temp)</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="VCL" oor:package="org.openoffice"><node oor:name="Settings"><node oor:name="Accessibility"><prop oor:name="EnableATToolSupport" oor:type="xs:string"><value oor:external="com.sun.star.configuration.backend.DesktopBackend EnableATToolSupport"/></prop></node></node></oor:component-data><oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess"><node oor:name="Installed"><node oor:name="sdbc:embedded:hsqldb" oor:op="replace"><prop oor:name="Driver"><value>com.sun.star.sdbcx.comp.hsqldb.Driver</value></prop><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"><value xml:lang="en-US">HSQL database engine</value></prop><node oor:name="Features"><node oor:name="UseDOSLineEnds" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="FormsCheckRequiredFields" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="EscapeDateTime" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="AddIndexAppendix" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>false</value></prop></node></node><node oor:name="MetaData"><node oor:name="SupportsTableCreation" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseJava" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="AutoIncrementIsPrimaryKey" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node></node></node></oor:component-data><oor:component-data oor:name="Drivers" oor:package="org.openoffice.Office.DataAccess"><node oor:name="Installed"><node oor:name="jdbc:*" oor:op="replace"><prop oor:name="Driver"><value>com.sun.star.comp.sdbc.JDBCDriver</value></prop><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"><value xml:lang="en-US">JDBC</value></prop><node oor:name="Properties"><node oor:name="JavaDriverClass" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="JavaDriverClassPath" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="AutoIncrementCreation" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="AutoRetrievingStatement" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value/></prop></node><node oor:name="IsAutoRetrievingEnabled" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="AddIndexAppendix" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="Features"><node oor:name="GeneratedValues" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseSQL92NamingConstraints" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="AppendTableAliasInSelect" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseKeywordAsBeforeAlias" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseBracketedOuterJoinSyntax" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="IgnoreDriverPrivileges" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="ParameterNameSubstitution" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="DisplayVersionColumns" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseCatalogInSelect" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseSchemaInSelect" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseIndexDirectionKeyword" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseDOSLineEnds" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="BooleanComparisonMode" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="FormsCheckRequiredFields" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="EscapeDateTime" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="PrimaryKeySupport" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="RespectDriverResultSetType" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="MetaData"><node oor:name="SupportsTableCreation" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="UseJava" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="Authentication" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>UserPassword</value></prop></node></node></node><node oor:name="jdbc:oracle:thin:*" oor:op="replace"><prop oor:name="ParentURLPattern"><value>jdbc:*</value></prop><prop oor:name="DriverTypeDisplayName" oor:type="xs:string"><value xml:lang="en-US">Oracle JDBC</value></prop><node oor:name="Properties"><node oor:name="IgnoreCurrency" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="TypeInfoSettings" oor:op="replace"><prop oor:name="Value" oor:type="oor:string-list"><value oor:separator=",">Column(2) = -5,Column(6) = PRECISION,Column(2) = -4,Column(6) = PRECISION,Column(2) = -3,Column(6) = PRECISION,Column(2) = -2,Column(6) = PRECISION,Column(2) = -1,Column(6) = PRECISION,Column(2) = -1,Column(6) = PRECISION,Column(2) = 2,Column(6) = PRECISION,Column(2) = 12,Column(6) = PRECISION</value></prop></node><node oor:name="JavaDriverClass" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>oracle.jdbc.driver.OracleDriver</value></prop></node><node oor:name="AddIndexAppendix" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>false</value></prop></node></node><node oor:name="Features"><node oor:name="IgnoreCurrency" oor:op="replace"><prop oor:name="Value" oor:type="xs:boolean"><value>true</value></prop></node></node><node oor:name="MetaData"><node oor:name="Authentication" oor:op="replace"><prop oor:name="Value" oor:type="xs:string"><value>UserPassword</value></prop></node></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Paths" oor:package="org.openoffice.Office"><node oor:name="Paths"><node oor:name="Fingerprint" oor:mandatory="true"><node oor:name="InternalPaths"><node oor:name="$(insturl)/share/fingerprint" oor:op="fuse"/></node></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/math.xcd b/test/user-template/user/registry/math.xcd
new file mode 100644
index 000000000000..3ce4f4906e86
--- /dev/null
+++ b/test/user-template/user/registry/math.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-schema oor:name="MathCommands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UserInterface"><set oor:name="Commands" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/><set oor:name="Popups" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/></group></component></oor:component-schema><oor:component-schema oor:name="MathWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="MathCommands" oor:package="org.openoffice.Office.UI"><node oor:name="UserInterface"><node oor:name="Commands"><node oor:name=".uno:ChangeFont" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Fonts...</value></prop></node><node oor:name=".uno:ChangeFontSize" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">F~ont Size...</value></prop></node><node oor:name=".uno:ChangeDistance" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Spacing...</value></prop></node><node oor:name=".uno:ChangeAlignment" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">A~lignment...</value></prop></node><node oor:name=".uno:RedrawAutomatic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~AutoUpdate Display</value></prop></node><node oor:name=".uno:Symbols" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Symbols</value></prop></node><node oor:name=".uno:Textmode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Text Mode</value></prop></node><node oor:name=".uno:ImportFormula" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Import Formula...</value></prop></node><node oor:name=".uno:FitInWindow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fit To Window</value></prop></node><node oor:name=".uno:InsertConfigName" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Text</value></prop></node><node oor:name=".uno:InsertCommand" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Command</value></prop></node><node oor:name=".uno:ModifyStatus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Modified</value></prop></node><node oor:name=".uno:TextStatus" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text Status</value></prop></node><node oor:name=".uno:NextError" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ne~xt Error</value></prop></node><node oor:name=".uno:PrevError" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Pr~evious Error</value></prop></node><node oor:name=".uno:NextMark" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Next Marker</value></prop></node><node oor:name=".uno:PrevMark" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Previous ~Marker</value></prop></node><node oor:name=".uno:SymbolCatalogue" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Catalog...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Preferences" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Options</value></prop></node><node oor:name=".uno:View50" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">0.5</value></prop></node><node oor:name=".uno:View100" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom 100%</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:View200" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoom 200%</value></prop></node><node oor:name=".uno:ZoomIn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Z~oom In</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ZoomOut" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Zoo~m Out</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Draw" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">U~pdate</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Adjust" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sho~w All</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToolBox" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Elements</value></prop></node><node oor:name=".uno:FormelCursor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Formula Cursor</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="MathWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Tools</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="MathML XML (Math)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">MathML 1.01</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>math_MathML_XML_Math</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop></node><node oor:name="MathType 3.x" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">MathType3.x</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>math_MathType_3x</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop></node><node oor:name="StarOffice XML (Math)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>math_StarOffice_XML_Math</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop></node><node oor:name="math_pdf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PDF - Portable Document Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop></node><node oor:name="math8" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value/></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>math8</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="math_MathML_XML_Math" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.math.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>mml</value></prop><prop oor:name="MediaType"><value>application/mathml+xml</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MathML XML (Math)</value></prop><prop oor:name="UIName"><value>MathML 1.01</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="math_MathType_3x" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.math.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xxx</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MathType 3.x</value></prop><prop oor:name="UIName"><value>MathType3.x</value></prop><prop oor:name="ClipboardFormat"><value>DS Equation</value></prop></node><node oor:name="math_StarOffice_XML_Math" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.math.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sxm</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.math</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>StarOffice XML (Math)</value></prop><prop oor:name="UIName"><value>%productname% %formatversion% Formel</value></prop><prop oor:name="ClipboardFormat"><value>Math 6.0</value></prop></node><node oor:name="pdf_Portable_Document_Format" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pdf</value></prop><prop oor:name="MediaType"><value>application/pdf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>PDF - Portable Document Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="math8" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.math.FormatDetector</value></prop><prop oor:name="URLPattern"><value>private:factory/smath*</value></prop><prop oor:name="Extensions"><value>odf</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.formula</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>math8</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Math 8</value></prop><prop oor:name="ClipboardFormat"><value>Math 8</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"><node oor:name="Menus"><node oor:name="New"><node oor:name="m10" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/smath</value></prop><prop oor:name="Title"><value xml:lang="en-US">F~ormula</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:package="org.openoffice.Office" oor:name="Embedding"><node oor:name="Objects"><node oor:name="078B7ABA-54FC-457F-8551-6147E776A997" oor:op="replace"><prop oor:name="ObjectFactory"><value>com.sun.star.embed.OOoEmbeddedObjectFactory</value></prop><prop oor:name="ObjectDocumentServiceName"><value>com.sun.star.formula.FormulaProperties</value></prop><prop oor:name="ObjectMiscStatus"><value>8589934592</value></prop><prop oor:name="ObjectVerbs"><value>PRIMARY SHOW OPEN HIDE UIACTIVATE IPACTIVATE SAVECOPYAS</value></prop></node></node><node oor:name="ObjectNames"><node oor:name="Math" oor:op="replace"><prop oor:name="ObjectUIName"><value xml:lang="en-US">%PRODUCTNAME %PRODUCTVERSION Formula</value></prop><prop oor:name="ClassID"><value>078B7ABA-54FC-457F-8551-6147E776A997</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice"><node oor:name="Office"><node oor:name="Factories"><node oor:name="com.sun.star.formula.FormulaProperties" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.formula.FormulaProperties</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>MathCommands</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>math8</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter"><value>math8</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/smath</value></prop><prop oor:name="ooSetupFactoryWindowAttributes"><value/></prop><prop oor:name="ooSetupFactoryIcon"><value>15</value></prop><prop oor:name="ooSetupFactoryTemplateFile"><value/></prop><prop oor:name="ooSetupFactorySystemDefaultTemplateChanged"><value>false</value></prop><prop oor:name="ooSetupFactoryShortName"><value>smath</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Math</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>MathWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/ogltrans.xcd b/test/user-template/user/registry/ogltrans.xcd
new file mode 100644
index 000000000000..2d72d16c5ad6
--- /dev/null
+++ b/test/user-template/user/registry/ogltrans.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Impress" oor:package="org.openoffice.Office"><node oor:name="Misc"/></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/oo-ad-ldap.xcd.sample b/test/user-template/user/registry/oo-ad-ldap.xcd.sample
new file mode 100644
index 000000000000..edc50fb637db
--- /dev/null
+++ b/test/user-template/user/registry/oo-ad-ldap.xcd.sample
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<!-- This file is an example of an LDAP configuration file.
+
+ To use user data from LDAP in your installation, you need to provide a
+ customized version of this file, removing the ".sample" suffix.
+
+ This sample file is designed to work with a Windows Active Directory
+ Server. There is another sample file designed to work with a Sun Java
+ System Directory Server. Only one of those files should be activated by
+ removing its ".sample" suffix.
+
+ To customize values in this file, replace the data within <value>...
+ </value> elements flagged as "CUSTOMIZE" with the values for your
+ organization. If a certain setting is not necessary for your installation,
+ you can remove the compelete corresponding <value>...</value> element.
+-->
+
+<oor:data xmlns:oor="http://openoffice.org/2001/registry">
+ <dependency file="main"/>
+ <oor:component-data oor:package="org.openoffice" oor:name="LDAP">
+ <node oor:name="UserDirectory">
+ <prop oor:name="SearchUser">
+ <!-- CUSTOMIZE, activate unless anonymous access is possible:
+ <value>MyUserLogin</value> -->
+ </prop>
+ <prop oor:name="SearchPassword">
+ <!-- CUSTOMIZE, activate unless anonymous access is possible:
+ <value>MyPassword</value> -->
+ </prop>
+ <prop oor:name="UserObjectClass">
+ <!-- CUSTOMIZE --><value>inetorgperson</value>
+ </prop>
+ <prop oor:name="UserUniqueAttribute">
+ <!-- CUSTOMIZE --><value>uid</value>
+ </prop>
+ <node oor:name="ServerDefinition">
+ <prop oor:name="Server">
+ <!-- CUSTOMIZE --><value>ldapserver.mycorp.com</value>
+ </prop>
+ <prop oor:name="Port">
+ <!-- CUSTOMIZE --><value>389</value>
+ </prop>
+ <prop oor:name="BaseDN">
+ <!-- CUSTOMIZE --><value>dc=mycorp,dc=com</value>
+ </prop>
+ </node>
+ </node>
+ </oor:component-data>
+ <oor:component-data oor:package="org.openoffice" oor:name="UserProfile">
+ <node oor:name="Data">
+ <prop oor:name="o">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe department"/>
+ </prop>
+ <prop oor:name="givenname">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe givenname"/>
+ </prop>
+ <prop oor:name="sn">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe sn"/>
+ </prop>
+ <prop oor:name="initials">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe initials"/>
+ </prop>
+ <prop oor:name="street">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe street,postalAddress"/>
+ </prop>
+ <prop oor:name="l">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe l"/>
+ </prop>
+ <prop oor:name="st">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe st"/>
+ </prop>
+ <prop oor:name="postalcode">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe postalCode"/>
+ </prop>
+ <prop oor:name="c">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe c,co"/>
+ </prop>
+ <prop oor:name="title">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe title"/>
+ </prop>
+ <prop oor:name="position">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe position"/>
+ </prop>
+ <prop oor:name="homephone">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe homePhone"/>
+ </prop>
+ <prop oor:name="telephonenumber">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe telephoneNumber"/>
+ </prop>
+ <prop oor:name="facsimiletelephonenumber">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe facsimileTelephoneNumber"
+/>
+ </prop>
+ <prop oor:name="mail">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe mail"/>
+ </prop>
+ <!--
+ <prop oor:name="fathersname">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe ..."/>
+ </prop>
+ -->
+ <!--
+ <prop oor:name="apartment">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe ..."/>
+ </prop>
+ -->
+ </node>
+ </oor:component-data>
+</oor:data>
diff --git a/test/user-template/user/registry/oo-ldap.xcd.sample b/test/user-template/user/registry/oo-ldap.xcd.sample
new file mode 100644
index 000000000000..8e9271a44dc9
--- /dev/null
+++ b/test/user-template/user/registry/oo-ldap.xcd.sample
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<!-- This file is an example of an LDAP configuration file.
+
+ To use user data from LDAP in your installation, you need to provide a
+ customized version of this file, removing the ".sample" suffix.
+
+ This sample file is designed to work with a Sun Java System Directory
+ Server. There is another sample file designed to work with a Windows
+ Active Directory Server. Only one of those files should be activated by
+ removing its ".sample" suffix.
+
+ To customize values in this file, replace the data within <value>...
+ </value> elements flagged as "CUSTOMIZE" with the values for your
+ organization. If a certain setting is not necessary for your installation,
+ you can remove the compelete corresponding <value>...</value> element.
+-->
+
+<oor:data xmlns:oor="http://openoffice.org/2001/registry">
+ <dependency file="main"/>
+ <oor:component-data oor:package="org.openoffice" oor:name="LDAP">
+ <node oor:name="UserDirectory">
+ <prop oor:name="SearchUser">
+ <!-- CUSTOMIZE, activate unless anonymous access is possible:
+ <value>MyUserLogin</value> -->
+ </prop>
+ <prop oor:name="SearchPassword">
+ <!-- CUSTOMIZE, activate unless anonymous access is possible:
+ <value>MyPassword</value> -->
+ </prop>
+ <prop oor:name="UserObjectClass">
+ <!-- CUSTOMIZE --><value>inetorgperson</value>
+ </prop>
+ <prop oor:name="UserUniqueAttribute">
+ <!-- CUSTOMIZE --><value>uid</value>
+ </prop>
+ <node oor:name="ServerDefinition">
+ <prop oor:name="Server">
+ <!-- CUSTOMIZE --><value>ldapserver.mycorp.com</value>
+ </prop>
+ <prop oor:name="Port">
+ <!-- CUSTOMIZE --><value>389</value>
+ </prop>
+ <prop oor:name="BaseDN">
+ <!-- CUSTOMIZE --><value>dc=mycorp,dc=com</value>
+ </prop>
+ </node>
+ </node>
+ </oor:component-data>
+ <oor:component-data oor:package="org.openoffice" oor:name="UserProfile">
+ <node oor:name="Data">
+ <prop oor:name="o">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe o,organizationName"/>
+ </prop>
+ <prop oor:name="givenname">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe givenname"/>
+ </prop>
+ <prop oor:name="sn">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe sn"/>
+ </prop>
+ <prop oor:name="initials">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe initials"/>
+ </prop>
+ <prop oor:name="street">
+ <value oor:external=
+"com.sun.star.configuration.backend.LdapUserProfileBe street,postalAddress,streetAddress"
+/>
+ </prop>
+ <prop oor:name="l">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe l"/>
+ </prop>
+ <prop oor:name="st">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe st"/>
+ </prop>
+ <prop oor:name="postalcode">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe postalcode"/>
+ </prop>
+ <!--
+ <prop oor:name="c">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe ..."/>
+ </prop>
+ -->
+ <prop oor:name="title">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe title"/>
+ </prop>
+ <prop oor:name="position">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe position"/>
+ </prop>
+ <prop oor:name="homephone">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe homephone"/>
+ </prop>
+ <prop oor:name="telephonenumber">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe telephonenumber"/>
+ </prop>
+ <prop oor:name="facsimiletelephonenumber">
+ <value oor:external=
+"com.sun.star.configuration.backend.LdapUserProfileBe facsimiletelephonenumber,officeFax"
+/>
+ </prop>
+ <prop oor:name="mail">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe mail"/>
+ </prop>
+ <!--
+ <prop oor:name="fathersname">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe ..."/>
+ </prop>
+ -->
+ <!--
+ <prop oor:name="apartment">
+ <value oor:external=
+ "com.sun.star.configuration.backend.LdapUserProfileBe ..."/>
+ </prop>
+ -->
+ </node>
+ </oor:component-data>
+</oor:data>
diff --git a/test/user-template/user/registry/palm.xcd b/test/user-template/user/registry/palm.xcd
new file mode 100644
index 000000000000..d55edd16076a
--- /dev/null
+++ b/test/user-template/user/registry/palm.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="AportisDoc Palm DB" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_AportisDoc_PalmDB_File</value></prop><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value>com.sun.star.documentconversion.XMergeBridge classes/aportisdoc.jar com.sun.star.comp.Writer.XMLImporter com.sun.star.comp.Writer.XMLExporter staroffice/sxw application/x-aportisdoc</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>AportisDoc (Palm)</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="writer_AportisDoc_PalmDB_File" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pdb</value></prop><prop oor:name="MediaType"><value>application/x-aportisdoc</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>AportisDoc Palm DB</value></prop><prop oor:name="UIName"><value>AportisDoc (Palm)</value></prop><prop oor:name="ClipboardFormat"><value>doctype:TEXt</value></prop></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/pocketexcel.xcd b/test/user-template/user/registry/pocketexcel.xcd
new file mode 100644
index 000000000000..5e6a05876ba5
--- /dev/null
+++ b/test/user-template/user/registry/pocketexcel.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="Pocket Excel" oor:op="replace"><prop oor:name="FileFormatVersion"><value>1</value></prop><prop oor:name="Type"><value>calc_Pocket_Excel_File</value></prop><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value>com.sun.star.documentconversion.XMergeBridge classes/pexcel.jar com.sun.star.comp.Calc.XMLImporter com.sun.star.comp.Calc.XMLExporter staroffice/sxc application/x-pocket-excel</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>Pocket Excel</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="calc_Pocket_Excel_File" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pxl</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Pocket Excel</value></prop><prop oor:name="UIName"><value>Pocket Excel</value></prop><prop oor:name="ClipboardFormat"/></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/pocketword.xcd b/test/user-template/user/registry/pocketword.xcd
new file mode 100644
index 000000000000..0c546be58c56
--- /dev/null
+++ b/test/user-template/user/registry/pocketword.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="PocketWord File" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_PocketWord_File</value></prop><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value>com.sun.star.documentconversion.XMergeBridge classes/pocketword.jar com.sun.star.comp.Writer.XMLImporter com.sun.star.comp.Writer.XMLExporter staroffice/sxw application/x-pocket-word</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>Pocket Word</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="writer_PocketWord_File" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>psw</value></prop><prop oor:name="MediaType"><value>application/x-pocket-word</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>PocketWord File</value></prop><prop oor:name="UIName"><value>Pocket Word</value></prop><prop oor:name="ClipboardFormat"><value>doctype:pwi</value></prop></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/pyuno.xcd b/test/user-template/user/registry/pyuno.xcd
new file mode 100644
index 000000000000..b1e6ce7849ac
--- /dev/null
+++ b/test/user-template/user/registry/pyuno.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Scripting" oor:package="org.openoffice.Office"><node oor:name="ScriptRuntimes"><node oor:name="Python" oor:op="replace"><prop oor:name="SupportedFileExtensions"><value>py</value></prop></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/res/fcfg_langpack_en-US.xcd b/test/user-template/user/registry/res/fcfg_langpack_en-US.xcd
new file mode 100644
index 000000000000..bac922cd9b05
--- /dev/null
+++ b/test/user-template/user/registry/res/fcfg_langpack_en-US.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="StarOffice XML (Base)"><prop oor:name="UIName"><value xml:lang="en-US">ODF Database</value></prop></node><node oor:name="HTML (StarWriter)"><prop oor:name="UIName"><value xml:lang="en-US">HTML Document (%productname% Writer)</value></prop></node><node oor:name="MS Word 95 Vorlage"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Word 95 Template</value></prop></node><node oor:name="MS Word 97 Vorlage"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Word 97/2000/XP/2003 Template</value></prop></node><node oor:name="StarOffice XML (Writer)"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Text Document</value></prop></node><node oor:name="Text"><prop oor:name="UIName"><value xml:lang="en-US">Text</value></prop></node><node oor:name="Text (encoded)"><prop oor:name="UIName"><value xml:lang="en-US">Text Encoded</value></prop></node><node oor:name="writer_StarOffice_XML_Writer_Template"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Text Document Template</value></prop></node><node oor:name="writer8"><prop oor:name="UIName"><value xml:lang="en-US">ODF Text Document</value></prop></node><node oor:name="writer8_template"><prop oor:name="UIName"><value xml:lang="en-US">ODF Text Document Template</value></prop></node><node oor:name="MS Word 2003 XML"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Word 2003 XML</value></prop></node><node oor:name="MS Word 2007 XML"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Word 2007/2010 XML</value></prop></node><node oor:name="MS Word 2007 XML Template"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Word 2007/2010 XML Template</value></prop></node><node oor:name="Office Open XML Text"><prop oor:name="UIName"><value xml:lang="en-US">Office Open XML Text</value></prop></node><node oor:name="Office Open XML Text Template"><prop oor:name="UIName"><value xml:lang="en-US">Office Open XML Text Template</value></prop></node><node oor:name="HTML"><prop oor:name="UIName"><value xml:lang="en-US">HTML Document</value></prop></node><node oor:name="Text (StarWriter/Web)"><prop oor:name="UIName"><value xml:lang="en-US">Text (%productname% Writer/Web)</value></prop></node><node oor:name="Text (encoded) (StarWriter/Web)"><prop oor:name="UIName"><value xml:lang="en-US">Text Encoded (%productname% Writer/Web)</value></prop></node><node oor:name="writer_web_StarOffice_XML_Writer"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Text Document (%productname% Writer/Web)</value></prop></node><node oor:name="writer_web_StarOffice_XML_Writer_Web_Template"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% HTML Template</value></prop></node><node oor:name="writerweb8_writer_template"><prop oor:name="UIName"><value xml:lang="en-US">HTML Document Template</value></prop></node><node oor:name="writerweb8_writer"><prop oor:name="UIName"><value xml:lang="en-US">%productname% Text (%productname% Writer/Web)</value></prop></node><node oor:name="Text (encoded) (StarWriter/GlobalDocument)"><prop oor:name="UIName"><value xml:lang="en-US">Text Encoded (%productname% Master Document)</value></prop></node><node oor:name="writer_globaldocument_StarOffice_XML_Writer"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Text Document</value></prop></node><node oor:name="writer_globaldocument_StarOffice_XML_Writer_GlobalDocument"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Master Document</value></prop></node><node oor:name="writerglobal8"><prop oor:name="UIName"><value xml:lang="en-US">ODF Master Document</value></prop></node><node oor:name="writerglobal8_writer"><prop oor:name="UIName"><value xml:lang="en-US">ODF Text Document</value></prop></node><node oor:name="HTML (StarCalc)"><prop oor:name="UIName"><value xml:lang="en-US">HTML Document (%productname% Calc)</value></prop></node><node oor:name="MS Excel 4.0 Vorlage/Template"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 4.0 Template</value></prop></node><node oor:name="MS Excel 5.0/95 Vorlage/Template"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 5.0 Template</value></prop></node><node oor:name="MS Excel 95 Vorlage/Template"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 95 Template</value></prop></node><node oor:name="MS Excel 97 Vorlage/Template"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 97/2000/XP/2003 Template</value></prop></node><node oor:name="StarOffice XML (Calc)"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Spreadsheet</value></prop></node><node oor:name="Text - txt - csv (StarCalc)"><prop oor:name="UIName"><value xml:lang="en-US">Text CSV</value></prop></node><node oor:name="calc_HTML_WebQuery"><prop oor:name="UIName"><value xml:lang="en-US">Web Page Query (%productname% Calc)</value></prop></node><node oor:name="calc_StarOffice_XML_Calc_Template"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Spreadsheet Template</value></prop></node><node oor:name="calc8"><prop oor:name="UIName"><value xml:lang="en-US">ODF Spreadsheet</value></prop></node><node oor:name="calc8_template"><prop oor:name="UIName"><value xml:lang="en-US">ODF Spreadsheet Template</value></prop></node><node oor:name="MS Excel 2003 XML"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 2003 XML</value></prop></node><node oor:name="Calc MS Excel 2007 XML"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 2007/2010 XML</value></prop></node><node oor:name="Calc MS Excel 2007 XML Template"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 2007/2010 XML Template</value></prop></node><node oor:name="Calc MS Excel 2007 Binary"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Excel 2007 Binary</value></prop></node><node oor:name="Calc Office Open XML"><prop oor:name="UIName"><value xml:lang="en-US">Office Open XML Spreadsheet</value></prop></node><node oor:name="Calc Office Open XML Template"><prop oor:name="UIName"><value xml:lang="en-US">Office Open XML Spreadsheet Template</value></prop></node><node oor:name="StarOffice XML (Draw)"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Drawing</value></prop></node><node oor:name="draw_StarOffice_XML_Draw_Template"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Drawing Template</value></prop></node><node oor:name="draw8"><prop oor:name="UIName"><value xml:lang="en-US">ODF Drawing</value></prop></node><node oor:name="draw8_template"><prop oor:name="UIName"><value xml:lang="en-US">ODF Drawing Template</value></prop></node><node oor:name="MS PowerPoint 97 Vorlage"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft PowerPoint 97/2000/XP/2003 Template</value></prop></node><node oor:name="impress_StarOffice_XML_Draw"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Drawing (%productname% Impress)</value></prop></node><node oor:name="StarOffice XML (Impress)"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Presentation</value></prop></node><node oor:name="impress_StarOffice_XML_Impress_Template"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Presentation Template</value></prop></node><node oor:name="impress8"><prop oor:name="UIName"><value xml:lang="en-US">ODF Presentation</value></prop></node><node oor:name="impress8_template"><prop oor:name="UIName"><value xml:lang="en-US">ODF Presentation Template</value></prop></node><node oor:name="impress8_draw"><prop oor:name="UIName"><value xml:lang="en-US">ODF Drawing (Impress)</value></prop></node><node oor:name="Impress MS PowerPoint 2007 XML"><prop oor:name="UIName"><value xml:lang="en-US">Microsoft PowerPoint 2007/2010 XML</value></prop></node><node oor:name="Office Open XML Presentation"><prop oor:name="UIName"><value xml:lang="en-US">Office Open XML Presentation</value></prop></node><node oor:name="Office Open XML Presentation Template"><prop oor:name="UIName"><value xml:lang="en-US">Office Open XML Presentation Template</value></prop></node><node oor:name="StarOffice XML (Chart)"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Chart</value></prop></node><node oor:name="chart8"><prop oor:name="UIName"><value xml:lang="en-US">ODF Chart</value></prop></node><node oor:name="StarOffice XML (Math)"><prop oor:name="UIName"><value xml:lang="en-US">%productname% %formatversion% Formula</value></prop></node><node oor:name="math8"><prop oor:name="UIName"><value xml:lang="en-US">ODF Formula</value></prop></node><node oor:name="draw_html_Export"><prop oor:name="UIName"><value xml:lang="en-US">HTML Document (%productname% Draw)</value></prop></node><node oor:name="impress_html_Export"><prop oor:name="UIName"><value xml:lang="en-US">HTML Document (%productname% Impress)</value></prop></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/writer.xcd b/test/user-template/user/registry/writer.xcd
new file mode 100644
index 000000000000..b75e15e4e42f
--- /dev/null
+++ b/test/user-template/user/registry/writer.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-schema oor:name="WriterCommands" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UserInterface"><set oor:name="Commands" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/><set oor:name="Popups" oor:node-type="LabelType" oor:component="org.openoffice.Office.UI.Commands"/></group></component></oor:component-schema><oor:component-schema oor:name="WriterFormWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="WriterGlobalWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="WriterReportWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="WriterWebWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="WriterWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-schema oor:name="XFormsWindowState" oor:package="org.openoffice.Office.UI" xml:lang="en-US"><templates/><component><group oor:name="UIElements"><set oor:name="States" oor:node-type="WindowStateType" oor:component="org.openoffice.Office.UI.WindowState"/></group></component></oor:component-schema><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="WriterCommands" oor:package="org.openoffice.Office.UI"><node oor:name="UserInterface"><node oor:name="Commands"><node oor:name=".uno:EditGlossary" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoTe~xt...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PrintLayout" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Print Layout</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertHeader" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Header</value></prop></node><node oor:name=".uno:InsertFooter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Footer</value></prop></node><node oor:name=".uno:ExpandGlossary" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Run AutoText Entry</value></prop></node><node oor:name=".uno:ShowHiddenParagraphs" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hidden Paragraphs</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:ShowAnnotations" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Comments</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:InsertScript" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">S~cript...</value></prop></node><node oor:name=".uno:InsertGraphicRuler" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Hori~zontal Rule...</value></prop></node><node oor:name=".uno:SetAnchorAtChar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Anchor to Character</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">To ~Character</value></prop></node><node oor:name=".uno:PageOffsetDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Number</value></prop></node><node oor:name=".uno:InsertPageHeader" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">He~ader</value></prop></node><node oor:name=".uno:InsertPageFooter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Foote~r</value></prop></node><node oor:name=".uno:PreviewZoom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Preview Zoom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertEndnote" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Endnote Directly</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TableNumberRecognition" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Recognition</value></prop></node><node oor:name=".uno:InsertSection" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Section...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertMultiIndex" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Indexes and Tables...</value></prop></node><node oor:name=".uno:InsertAuthoritiesEntry" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Bibliography Entry...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:ShadowCursor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Direct Cursor On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:StartAutoCorrect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoCorrect</value></prop></node><node oor:name=".uno:FontColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Font Color</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:UpdateAllIndexes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~All Indexes and Tables</value></prop></node><node oor:name=".uno:UpdateCurIndex" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Current ~Index</value></prop></node><node oor:name=".uno:RemoveTableOf" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete index</value></prop></node><node oor:name=".uno:ProtectTraceChangeMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Protect Records...</value></prop></node><node oor:name=".uno:RejectTracedChange" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reject Change</value></prop></node><node oor:name=".uno:AcceptTracedChange" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Accept Change</value></prop></node><node oor:name=".uno:UpdateAllLinks" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Links</value></prop></node><node oor:name=".uno:TrackChanges" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Record</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:ShowTrackedChanges" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Show</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:GotoPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Page</value></prop></node><node oor:name=".uno:CommentChangeTracking" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Comment...</value></prop></node><node oor:name=".uno:UpdateAll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Update All</value></prop></node><node oor:name=".uno:InsertEnvelope" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">En~velope...</value></prop></node><node oor:name=".uno:AcceptTrackedChanges" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Accept or Reject...</value></prop></node><node oor:name=".uno:EditCurIndex" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit index</value></prop></node><node oor:name=".uno:AuthoritiesEntryDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Bibliography Entry...</value></prop></node><node oor:name=".uno:UpdateCharts" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">All ~Charts</value></prop></node><node oor:name=".uno:EditHyperlink" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">H~yperlink</value></prop></node><node oor:name=".uno:RemoveHyperlink" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Remove Hyperlink</value></prop></node><node oor:name=".uno:CopyHyperlinkLocation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Copy Hyperlink Location</value></prop></node><node oor:name=".uno:AcceptChange" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Accept Change</value></prop></node><node oor:name=".uno:RejectChange" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reject Change</value></prop></node><node oor:name=".uno:InsertBookmark" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bookmar~k...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Paragraph</value></prop></node><node oor:name=".uno:InsertBreak" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Manual ~Break...</value></prop></node><node oor:name=".uno:InsertColumnBreak" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Column Break</value></prop></node><node oor:name=".uno:InsertField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Other...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:ChangeDatabaseField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Exc~hange Database...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertCaptionDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Caption...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertFootnoteDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Footnote/Endnote~...</value></prop></node><node oor:name=".uno:InsertReferenceField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cross-reference...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertHyperlinkDlg" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Hyperlink</value></prop></node><node oor:name=".uno:InsertLinebreak" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Manual Row Break</value></prop></node><node oor:name=".uno:InsertObjectDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Other Objects</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertPagebreak" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Manual Page Break</value></prop></node><node oor:name=".uno:InsertAnnotation" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Comme~nt</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Table...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertFrameInteract" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Frame Manually</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertFrame" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fra~me...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertIndexesEntry" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Entry...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertFrameInteractNoColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert single-column frame manually</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ToggleAnchorType" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Change Anchor</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SetAnchorToPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Anchor To Page</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">To P~age</value></prop></node><node oor:name=".uno:SetAnchorToPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Anchor To Paragraph</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">To ~Paragraph</value></prop></node><node oor:name=".uno:ToggleObjectLayer" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Change Position</value></prop></node><node oor:name=".uno:MergeDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Mail Merge...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:MailMergeWizard" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Mail Merge Wi~zard...</value></prop></node><node oor:name=".uno:SetAnchorToFrame" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Anchor To Frame</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">To ~Frame</value></prop></node><node oor:name=".uno:InsertObjectStarMath" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Formula</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TextAttributes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text Attributes</value></prop></node><node oor:name=".uno:SetAnchorToChar" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Anchor as Character</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">As C~haracter</value></prop></node><node oor:name=".uno:InsertCtrl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertObjCtrl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Object</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertFieldCtrl" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Fields</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:InsertDateField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Date</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NewGlobalDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Create Master ~Document</value></prop></node><node oor:name=".uno:InsertTimeField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Time</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertPageNumberField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Page Number</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertPageCountField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page ~Count</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertTopicField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Subject</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertTitleField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">T~itle</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertAuthorField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Author</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertFootnote" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Footnote/Endnote Directly</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AutoFormatApply" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Appl~y</value></prop></node><node oor:name=".uno:OnlineAutoFormat" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~While Typing</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:StatePageNumber" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Number</value></prop></node><node oor:name=".uno:Grow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Increase Font</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Shrink" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Reduce Font</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PageStyleName" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Style</value></prop></node><node oor:name=".uno:UnderlineDouble" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Double Underline </value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:AutoFormatRedlineApply" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Apply and Edit ~Changes</value></prop></node><node oor:name=".uno:SelectionMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Selection Mode</value></prop></node><node oor:name=".uno:ExecHyperlinks" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Hyperlinks Active</value></prop></node><node oor:name=".uno:SuperScript" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Superscript</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:SubScript" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Subscript</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:CharLeftSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Character Left</value></prop></node><node oor:name=".uno:CharRightSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Character Right</value></prop></node><node oor:name=".uno:LineUpSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Top Line</value></prop></node><node oor:name=".uno:LineDownSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Down</value></prop></node><node oor:name=".uno:StartOfLineSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Begin of Line</value></prop></node><node oor:name=".uno:EndOfLineSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to End of Line</value></prop></node><node oor:name=".uno:StartOfDocumentSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Document Begin</value></prop></node><node oor:name=".uno:EndOfDocumentSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Document End</value></prop></node><node oor:name=".uno:GoToStartOfNextPageSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Begin of Next Page</value></prop></node><node oor:name=".uno:GoToEndOfNextPageSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to End of Next Page</value></prop></node><node oor:name=".uno:GoToStartOfPrevPageSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Begin of Previous Page</value></prop></node><node oor:name=".uno:GoToEndOfPrevPageSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to End of Previous Page</value></prop></node><node oor:name=".uno:GoToStartOfPageSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Page Begin</value></prop></node><node oor:name=".uno:SendOutlineToStarImpress" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Outline to ~Presentation</value></prop></node><node oor:name=".uno:GoToEndOfPageSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Page End</value></prop></node><node oor:name=".uno:FlipHorizontal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flip Vertically</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SendOutlineToClipboard" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Outline to ~Clipboard</value></prop></node><node oor:name=".uno:FlipVertical" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flip Horizontally</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NewHtmlDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Create ~HTML Document</value></prop></node><node oor:name=".uno:StartOfParaSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Paragraph Begin</value></prop></node><node oor:name=".uno:EndOfParaSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Paragraph End</value></prop></node><node oor:name=".uno:WordRightSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Word Right</value></prop></node><node oor:name=".uno:WordLeftSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Begin of Word</value></prop></node><node oor:name=".uno:GotoNextSentenceSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Next Sentence</value></prop></node><node oor:name=".uno:GotoPrevSentenceSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Previous Sentence</value></prop></node><node oor:name=".uno:PageUpSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Previous Page</value></prop></node><node oor:name=".uno:PageDownSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select to Next Page</value></prop></node><node oor:name=".uno:JumpToNextRegion" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Section</value></prop></node><node oor:name=".uno:JumpToPrevRegion" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Section</value></prop></node><node oor:name=".uno:TableNumberFormatDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format...</value></prop></node><node oor:name=".uno:LoadStyles" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Load Styles...</value></prop></node><node oor:name=".uno:CreateAbstract" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Create A~utoAbstract...</value></prop></node><node oor:name=".uno:SendAbstractToStarImpress" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoAbst~ract to Presentation...</value></prop></node><node oor:name=".uno:ObjectTitleDescription" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Description...</value></prop></node><node oor:name=".uno:NameGroup" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Name...</value></prop></node><node oor:name=".uno:BorderDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Borders</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PageColumnDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Columns</value></prop></node><node oor:name=".uno:BackgroundDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Background</value></prop></node><node oor:name=".uno:PageDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Settings</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Page...</value></prop></node><node oor:name=".uno:TitlePageDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Title Page...</value></prop></node><node oor:name=".uno:FormatColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Co~lumns...</value></prop></node><node oor:name=".uno:FormatDropcap" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Drop Caps</value></prop></node><node oor:name=".uno:FrameDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Frame Properties</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">Fra~me/Object...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GraphicDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Picture...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">Pict~ure...</value></prop></node><node oor:name=".uno:TableDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Ta~ble Properties...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:FootnoteDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Footnotes/Endnotes...</value></prop></node><node oor:name=".uno:ResetAttributes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Clear ~Direct Formatting</value></prop></node><node oor:name=".uno:WrapOff" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wrap Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>15</value></prop></node><node oor:name=".uno:WrapOn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Page Wrap</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:ShowTwoPages" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Preview: Two Pages</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:WrapThrough" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Wrap Through</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:ShowMultiplePages" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Preview: Multiple Pages</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PrintPagePreView" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Print document</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ClosePreview" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Close Preview</value></prop></node><node oor:name=".uno:AlignRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignHorizontalCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Center Horizontal</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignTop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Top</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignBottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Bottom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:AlignVerticalCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align Vertical Center</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PageStyleApply" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Apply Page Style</value></prop></node><node oor:name=".uno:FieldDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">F~ields...</value></prop></node><node oor:name=".uno:LinkDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Lin~ks...</value></prop></node><node oor:name=".uno:ConvertTableText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Te~xt &lt;-&gt; Table...</value></prop></node><node oor:name=".uno:ConvertTableToText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">T~able to Text...</value></prop></node><node oor:name=".uno:ConvertTextToTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Text to Table...</value></prop></node><node oor:name=".uno:HeadingRowsRepeat" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Heading rows repeat</value></prop></node><node oor:name=".uno:TableSort" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">So~rt...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertRowDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Rows...</value></prop></node><node oor:name=".uno:InsertRows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Row</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:InsertColumnDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Columns...</value></prop></node><node oor:name=".uno:InsertColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Column</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PasteUnformatted" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Paste Unformatted Text</value></prop></node><node oor:name=".uno:PasteSpecial" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Paste ~Special...</value></prop></node><node oor:name=".uno:DeleteRows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Row</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Rows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeleteColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Column</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Columns</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DeleteTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Table</value></prop></node><node oor:name=".uno:SplitCell" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Cells</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:MergeCells" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Merge Cells</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SetRowHeight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Row Height...</value></prop></node><node oor:name=".uno:SetColumnWidth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Column Width...</value></prop></node><node oor:name=".uno:OptimizeTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Optimize</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BulletsAndNumberingDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Bullets and Numbering...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:GoLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Character Left</value></prop></node><node oor:name=".uno:IndexEntryDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Index Entr~y...</value></prop></node><node oor:name=".uno:GoRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Go Right</value></prop></node><node oor:name=".uno:EntireRow" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Rows</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Rows</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EntireCell" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">C~ells</value></prop></node><node oor:name=".uno:GoUp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Top Line</value></prop></node><node oor:name=".uno:EntireColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Column</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Columns</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:UpdateFields" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Fields</value></prop></node><node oor:name=".uno:SelectTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Table</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Table</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoDown" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Line Below</value></prop></node><node oor:name=".uno:GoToStartOfLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Line Begin</value></prop></node><node oor:name=".uno:ExecuteMacroField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Run Macro Field</value></prop></node><node oor:name=".uno:Protect" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Protect Cells</value></prop></node><node oor:name=".uno:GoToEndOfLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To End of Line</value></prop></node><node oor:name=".uno:InsertFormula" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fo~rmula</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoToStartOfDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Document Begin</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Calc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Calculate Table</value></prop></node><node oor:name=".uno:UnsetCellsReadOnly" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Unprotect cells</value></prop></node><node oor:name=".uno:GoToEndOfDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Document End</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:DecrementLevel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Demote One Level</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:GoToStartOfNextPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Begin of Next Page</value></prop></node><node oor:name=".uno:IncrementLevel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Promote One Level</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:SetOptimalColumnWidth" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Optimal Column Width</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:JumpUpThisLevel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Paragraph in Level</value></prop></node><node oor:name=".uno:GoToEndOfNextPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To End of Next Page</value></prop></node><node oor:name=".uno:GoToStartOfPrevPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Begin of Previous Page</value></prop></node><node oor:name=".uno:JumpDownThisLevel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Paragraph in Level</value></prop></node><node oor:name=".uno:MoveUp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Up</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:GoToEndOfPrevPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To End of Previous Page</value></prop></node><node oor:name=".uno:MoveDown" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Down</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:GoToStartOfPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Page Begin</value></prop></node><node oor:name=".uno:GoToEndOfPage" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Page End</value></prop></node><node oor:name=".uno:InsertNeutralParagraph" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Insert Unnumbered Entry</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:RemoveBullets" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Numbering Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:SetOptimalRowHeight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Optimal Row Height</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoToStartOfColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Column Begin</value></prop></node><node oor:name=".uno:DecrementSubLevels" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Demote One Level With Subpoints</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:GoToEndOfColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Column End</value></prop></node><node oor:name=".uno:IncrementSubLevels" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Promote One Level With Subpoints</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:MoveUpSubItems" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Up with Subpoints</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:GoToStartOfPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Paragraph Begin</value></prop></node><node oor:name=".uno:MoveDownSubItems" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Move Down with Subpoints</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:GoToEndOfPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Paragraph End</value></prop></node><node oor:name=".uno:UpdateInputFields" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Update Input Fields</value></prop></node><node oor:name=".uno:GoToNextWord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Word Right</value></prop></node><node oor:name=".uno:GoToPrevWord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Word Left</value></prop></node><node oor:name=".uno:GoToNextSentence" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Sentence</value></prop></node><node oor:name=".uno:NumberOrNoNumber" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Numbering On/Off</value></prop></node><node oor:name=".uno:GoToPrevSentence" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Sentence</value></prop></node><node oor:name=".uno:GotoNextInputField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Input Field</value></prop></node><node oor:name=".uno:SwBackspace" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Backspace</value></prop></node><node oor:name=".uno:GotoPrevInputField" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Input Field</value></prop></node><node oor:name=".uno:DelToEndOfSentence" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete to End of Sentence</value></prop></node><node oor:name=".uno:RepeatSearch" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Repeat Search</value></prop></node><node oor:name=".uno:DelToStartOfSentence" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete to Start of Sentence</value></prop></node><node oor:name=".uno:DelToEndOfWord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete to End of Word</value></prop></node><node oor:name=".uno:DelToStartOfWord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete to Start of Word</value></prop></node><node oor:name=".uno:DelToEndOfLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete to End of Line</value></prop></node><node oor:name=".uno:DelToStartOfLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete to Start of Line</value></prop></node><node oor:name=".uno:DelToEndOfPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete to End of Paragraph</value></prop></node><node oor:name=".uno:DelToStartOfPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete to Start of Paragraph</value></prop></node><node oor:name=".uno:DelLine" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Delete Row</value></prop></node><node oor:name=".uno:PageUp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Previous Page</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:PageDown" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Next Page</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:SetMultiSelection" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">MultiSelection On</value></prop></node><node oor:name=".uno:Repaginate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Page Formatting</value></prop></node><node oor:name=".uno:SetExtSelection" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Extended Selection On</value></prop></node><node oor:name=".uno:EditFootnote" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Footnote/Endnote~...</value></prop></node><node oor:name=".uno:Escape" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Cancel</value></prop></node><node oor:name=".uno:ShiftBackspace" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Backspace</value></prop></node><node oor:name=".uno:SelectWord" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Word</value></prop></node><node oor:name=".uno:NumberFormatStandard" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Standard</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:EditRegion" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Sections...</value></prop></node><node oor:name=".uno:JumpToReference" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Reference</value></prop></node><node oor:name=".uno:GotoNextObject" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Object</value></prop></node><node oor:name=".uno:NumberFormatDecimal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Decimal</value></prop></node><node oor:name=".uno:GotoPrevObject" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Object</value></prop></node><node oor:name=".uno:NumberFormatScientific" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Exponential</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:JumpToNextBookmark" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Bookmark</value></prop></node><node oor:name=".uno:NumberFormatDate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format : Date</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:JumpToPrevBookmark" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Bookmark</value></prop></node><node oor:name=".uno:GoToStartOfTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Table Begin</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:ResetTableProtection" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Unprotect sheet</value></prop></node><node oor:name=".uno:NumberFormatTime" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Time</value></prop></node><node oor:name=".uno:GoToEnd" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Table End</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NumberFormatCurrency" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Currency</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:JumpToNextTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Table</value></prop></node><node oor:name=".uno:NumberFormatPercent" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Number Format: Percent</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:JumpToPrevTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Table</value></prop></node><node oor:name=".uno:GoToStartOfNextColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Begin of Next Column</value></prop></node><node oor:name=".uno:WrapIdeal" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Optimal Page Wrap</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoToEndOfNextColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To End of Next Column</value></prop></node><node oor:name=".uno:WrapThroughTransparent" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">In ~Background</value></prop></node><node oor:name=".uno:GoToStartOfPrevColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Begin of Previous Column</value></prop></node><node oor:name=".uno:GoToEndOfPrevColumn" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Column</value></prop></node><node oor:name=".uno:AlignRowTop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align to Top of Line</value></prop></node><node oor:name=".uno:JumpToFootnoteOrAnchor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Footnote Anchor</value></prop></node><node oor:name=".uno:AlignRowBottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align to Bottom of Line</value></prop></node><node oor:name=".uno:JumpToNextFootnote" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Footnote</value></prop></node><node oor:name=".uno:AlignVerticalRowCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align to Vertical Center of Line</value></prop></node><node oor:name=".uno:JumpToPrevFootnote" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Footnote</value></prop></node><node oor:name=".uno:AlignCharTop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align to Top of Character</value></prop></node><node oor:name=".uno:JumpToNextFrame" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Frame</value></prop></node><node oor:name=".uno:ChainFrames" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Link Frames</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:AlignCharBottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align to Bottom of Character</value></prop></node><node oor:name=".uno:UnhainFrames" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Unlink Frames</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GoToAnchor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Set Cursor To Anchor</value></prop></node><node oor:name=".uno:AlignVerticalCharCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Align to Vertical Center of Character</value></prop></node><node oor:name=".uno:NumberingStart" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Restart Numbering</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>15</value></prop></node><node oor:name=".uno:JumpToHeader" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Header</value></prop></node><node oor:name=".uno:WrapLeft" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wrap Left</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:JumpToFooter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Footer</value></prop></node><node oor:name=".uno:WrapRight" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wrap Right</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:MirrorOnEvenPages" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Mirror Object on Even Pages</value></prop></node><node oor:name=".uno:IndexMarkToIndex" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Index Mark to Index</value></prop></node><node oor:name=".uno:JumpToFootnoteArea" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Edit Footnote/Endnote</value></prop></node><node oor:name=".uno:MirrorGraphicOnEvenPages" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Flip Graphics on Even Pages</value></prop></node><node oor:name=".uno:SplitTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Split Table</value></prop></node><node oor:name=".uno:WrapAnchorOnly" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wrap First Paragraph</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~First Paragraph</value></prop></node><node oor:name=".uno:DistributeColumns" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Distribute Columns Evenly</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:IncrementIndentValue" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Increment Indent Value</value></prop></node><node oor:name=".uno:DistributeRows" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Distribute Rows Equally </value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:WrapContour" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Wrap Contour On</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Contour</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>7</value></prop></node><node oor:name=".uno:DecrementIndentValue" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Decrement Indent Value</value></prop></node><node oor:name=".uno:MergeTable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Merge Table</value></prop></node><node oor:name=".uno:GoToPrevPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Paragraph</value></prop></node><node oor:name=".uno:CellVertTop" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Top</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RowSplit" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Allow Row to Break Across Pages and Columns</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:SelectText" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Paragraph</value></prop></node><node oor:name=".uno:GoToNextPara" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Paragraph</value></prop></node><node oor:name=".uno:CellVertCenter" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Center ( vertical )</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GotoNextPlacemarker" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Next Placeholder</value></prop></node><node oor:name=".uno:CellVertBottom" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Bottom</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GotoPrevPlacemarker" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">To Previous Placeholder</value></prop></node><node oor:name=".uno:TableModeFix" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table: Fixed</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:JumpToStartOfDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Directly to Document Begin</value></prop></node><node oor:name=".uno:TableModeFixProp" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table: Fixed, Proportional</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:RefreshView" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Restore View</value></prop></node><node oor:name=".uno:JumpToEndOfDoc" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Directly to Document End</value></prop></node><node oor:name=".uno:TableModeVariable" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table: Variable</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TextWrap" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Text Wrap...</value></prop><prop oor:name="ContextLabel" oor:type="xs:string"><value xml:lang="en-US">~Edit...</value></prop></node><node oor:name=".uno:GotoNextIndexMark" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Go to Next Index Mark</value></prop></node><node oor:name=".uno:GotoPrevIndexMark" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Go to Previous Index Mark</value></prop></node><node oor:name=".uno:AutoSum" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Sum</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:GotoNextTableFormula" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Go to next table formula</value></prop></node><node oor:name=".uno:GotoPrevTableFormula" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Go to previous table formula</value></prop></node><node oor:name=".uno:GotoNextWrongTableFormula" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Go to next faulty table formula</value></prop></node><node oor:name=".uno:GotoPrevWrongTableFormula" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Go to previous faulty table formula</value></prop></node><node oor:name=".uno:SelectTextMode" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Select Text</value></prop></node><node oor:name=".uno:Ruler" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Ruler</value></prop></node><node oor:name=".uno:LineNumberingDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Line Numbering...</value></prop></node><node oor:name=".uno:Graphic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Graphics On/Off</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CharColorExt" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Font Color Fill</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:ViewBounds" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Te~xt Boundaries</value></prop></node><node oor:name=".uno:ThesaurusDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Thesaurus...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:BackColor" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Highlighting</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:Fields" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fields</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CharBackgroundExt" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Highlight Fill</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:VRuler" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical Ruler</value></prop></node><node oor:name=".uno:Hyphenate" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Hyphenation...</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:VScroll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Vertical Scroll Bar</value></prop></node><node oor:name=".uno:AddAllUnknownWords" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Add Unknown Words</value></prop></node><node oor:name=".uno:HScroll" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Scroll Horizontal</value></prop></node><node oor:name=".uno:ChapterNumberingDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Outline ~Numbering...</value></prop></node><node oor:name=".uno:ControlCodes" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Nonprinting Characters</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:SortDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">So~rt...</value></prop></node><node oor:name=".uno:Marks" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Fie~ld Shadings</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:CalculateSel" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Calculat~e</value></prop></node><node oor:name=".uno:Fieldnames" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Field Names</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:TableBoundaries" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Table Boundaries</value></prop></node><node oor:name=".uno:ShowBookview" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Book Preview</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>9</value></prop></node><node oor:name=".uno:RemoveDirectCharFormats" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Remove Direct Character Formats</value></prop></node><node oor:name=".uno:SendMailDocAsMS" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E-mail as ~Microsoft Word...</value></prop></node><node oor:name=".uno:SendMailDocAsOOo" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">E-mail as ~OpenDocument Text...</value></prop></node><node oor:name=".uno:SelectionModeDefault" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Standard</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node><node oor:name=".uno:SelectionModeBlock" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Block Area</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>8</value></prop></node></node><node oor:name="Popups"><node oor:name=".uno:TableMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">T~able</value></prop></node><node oor:name=".uno:TableInsertMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Insert</value></prop></node><node oor:name=".uno:TableDeleteMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Delete</value></prop></node><node oor:name=".uno:TableSelectMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Select</value></prop></node><node oor:name=".uno:TableAutoFitMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">A~utofit</value></prop></node><node oor:name=".uno:TableConvertMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Convert</value></prop></node><node oor:name=".uno:UpdateMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Update</value></prop></node><node oor:name=".uno:IndexesMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Inde~xes and Tables</value></prop></node><node oor:name=".uno:WordCountDialog" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Word Count</value></prop></node><node oor:name=".uno:StylesMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Styl~es</value></prop></node><node oor:name=".uno:WrapMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">~Wrap</value></prop></node><node oor:name=".uno:AutoFormatMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">AutoCorr~ect</value></prop></node><node oor:name=".uno:SelectionModeMenu" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Selection Mode</value></prop></node><node oor:name=".uno:SaveGraphic" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Save Graphics...</value></prop></node><node oor:name=".uno:ContinueNumbering" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Continue previous numbering</value></prop></node><node oor:name=".uno:NavigateBack" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Back</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node><node oor:name=".uno:NavigateForward" oor:op="replace"><prop oor:name="Label" oor:type="xs:string"><value xml:lang="en-US">Forward</value></prop><prop oor:name="Properties" oor:type="xs:int"><value>1</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="WriterFormWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/textobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Formatting</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Tools</value></prop></node><node oor:name="private:resource/toolbar/tableobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/numobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Bullets and Numbering</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawingobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing Object Properties</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/alignmentbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Align</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/bezierobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Edit Points</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/extrusionobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">3D-Settings</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formtextobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Box Formatting</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsfilterbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Filter</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsnavigationbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Navigation</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Controls</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>2</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/moreformcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">More Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formdesign" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Design</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/frameobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Frame</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graffilterbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Graphic Filter</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graphicobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Picture</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/insertbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop></node><node oor:name="private:resource/toolbar/insertobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert Object</value></prop></node><node oor:name="private:resource/toolbar/oleobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">OLE-Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/optimizetablebar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Optimize</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/previewobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Page Preview</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawtextobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/viewerbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard (Viewing Mode)</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing</value></prop></node><node oor:name="private:resource/toolbar/mediaobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Media Playback</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/colorbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Color</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/basicshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/arrowshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/flowchartshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Flowchart</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/starshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Stars and Banners</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/symbolshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/calloutshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkshapetype" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork Shape</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="WriterGlobalWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/findbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Find</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/textobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Formatting</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Tools</value></prop></node><node oor:name="private:resource/toolbar/tableobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/numobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Bullets and Numbering</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawingobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing Object Properties</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/alignmentbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Align</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/bezierobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Edit Points</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/extrusionobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">3D-Settings</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formtextobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Box Formatting</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsfilterbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Filter</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsnavigationbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Navigation</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/moreformcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">More Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formdesign" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Design</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/frameobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Frame</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graffilterbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Graphic Filter</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graphicobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Picture</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/insertbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop></node><node oor:name="private:resource/toolbar/oleobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">OLE-Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/optimizetablebar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Optimize</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/previewobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Page Preview</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawtextobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/viewerbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard (Viewing Mode)</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing</value></prop></node><node oor:name="private:resource/toolbar/mediaobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Media Playback</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/colorbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Color</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/basicshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/arrowshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/flowchartshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Flowchart</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/starshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Stars and Banners</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/symbolshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/calloutshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkshapetype" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork Shape</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/navigationobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Navigation</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="WriterReportWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/textobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Formatting</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Tools</value></prop></node><node oor:name="private:resource/toolbar/tableobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/numobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Bullets and Numbering</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawingobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing Object Properties</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/alignmentbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Align</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/bezierobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Edit Points</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/extrusionobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">3D-Settings</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formtextobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Box Formatting</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsfilterbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Filter</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsnavigationbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Navigation</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Controls</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>2</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/moreformcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">More Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formdesign" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Design</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/frameobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Frame</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graffilterbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Graphic Filter</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graphicobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Picture</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/insertbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop></node><node oor:name="private:resource/toolbar/insertobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert Object</value></prop></node><node oor:name="private:resource/toolbar/oleobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">OLE-Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/optimizetablebar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Optimize</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/previewobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Page Preview</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawtextobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/viewerbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard (Viewing Mode)</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing</value></prop></node><node oor:name="private:resource/toolbar/mediaobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Media Playback</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/colorbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Color</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/basicshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/arrowshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/flowchartshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Flowchart</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/starshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Stars and Banners</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/symbolshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/calloutshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkshapetype" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork Shape</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="WriterWebWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/findbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Find</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/textobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Formatting</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Tools</value></prop></node><node oor:name="private:resource/toolbar/oleobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">OLE-Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/tableobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/frameobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Frame</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graphicobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Picture</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawtextobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawingobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing Object Properties</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/bezierobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Edit Points</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkshapetype" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork Shape</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formtextobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Box Formatting</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsfilterbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Filter</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsnavigationbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Navigation</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/moreformcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">More Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formdesign" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Design</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graffilterbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Graphic Filter</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/insertbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/numobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Bullets and Numbering</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/previewobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Page Preview</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/viewerbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard (Viewing Mode)</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/mediaobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Media Playback</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/colorbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Color</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/basicshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/arrowshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/flowchartshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Flowchart</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/starshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Stars and Banners</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/symbolshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/calloutshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="WriterWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/findbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Find</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/textobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Formatting</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Tools</value></prop></node><node oor:name="private:resource/toolbar/tableobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/numobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Bullets and Numbering</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawingobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing Object Properties</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/alignmentbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Align</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/bezierobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Edit Points</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/extrusionobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">3D-Settings</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formtextobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Box Formatting</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsfilterbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Filter</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsnavigationbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Navigation</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/moreformcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">More Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formdesign" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Design</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,2</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/frameobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Frame</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graffilterbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Graphic Filter</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graphicobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Picture</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/insertbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop></node><node oor:name="private:resource/toolbar/oleobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">OLE-Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/optimizetablebar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Optimize</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/previewobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Page Preview</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawtextobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/viewerbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard (Viewing Mode)</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing</value></prop></node><node oor:name="private:resource/toolbar/mediaobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Media Playback</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/colorbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Color</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/basicshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/arrowshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/flowchartshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Flowchart</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/starshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Stars and Banners</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/symbolshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/calloutshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkshapetype" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork Shape</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/navigationobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Navigation</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="XFormsWindowState" oor:package="org.openoffice.Office.UI"><node oor:name="UIElements"><node oor:name="States"><node oor:name="private:resource/toolbar/standardbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/findbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>1,0</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Find</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/textobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Formatting</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/toolbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Tools</value></prop></node><node oor:name="private:resource/toolbar/tableobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Table</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/numobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Bullets and Numbering</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawingobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing Object Properties</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/alignmentbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Align</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop></node><node oor:name="private:resource/toolbar/bezierobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Edit Points</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/extrusionobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">3D-Settings</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formtextobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Box Formatting</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsfilterbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Filter</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formsnavigationbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Navigation</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/moreformcontrols" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">More Controls</value></prop><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/formdesign" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Form Design</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,2</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/frameobjectbar" oor:op="replace"><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Frame</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fullscreenbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Style" oor:type="xs:int"><value>2</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Full Screen</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graffilterbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Graphic Filter</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/graphicobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Picture</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/insertbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert</value></prop></node><node oor:name="private:resource/toolbar/insertobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Insert Object</value></prop></node><node oor:name="private:resource/toolbar/oleobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">OLE-Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/optimizetablebar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Optimize</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/previewobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Page Preview</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawtextobjectbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Text Object</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/viewerbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>0</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Standard (Viewing Mode)</value></prop><prop oor:name="NoClose" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/drawbar" oor:op="replace"><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Drawing</value></prop></node><node oor:name="private:resource/toolbar/mediaobjectbar" oor:op="replace"><prop oor:name="DockPos" oor:type="xs:string"><value>0,1</value></prop><prop oor:name="DockingArea" oor:type="xs:int"><value>1</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Media Playback</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/colorbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Color</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/basicshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Basic Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/arrowshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Block Arrows</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/flowchartshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Flowchart</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/starshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Stars and Banners</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/symbolshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Symbol Shapes</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/calloutshapes" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Callouts</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkobjectbar" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>true</value></prop><prop oor:name="ContextSensitive" oor:type="xs:boolean"><value>true</value></prop></node><node oor:name="private:resource/toolbar/fontworkshapetype" oor:op="replace"><prop oor:name="Docked" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="UIName" oor:type="xs:string"><value xml:lang="en-US">Fontwork Shape</value></prop><prop oor:name="Visible" oor:type="xs:boolean"><value>false</value></prop><prop oor:name="HideFromToolbarMenu" oor:type="xs:boolean"><value>true</value></prop></node></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="Text (encoded) (StarWriter/GlobalDocument)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.Writer.FilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value>TEXT_DLG</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_Text</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop></node><node oor:name="writer_globaldocument_StarOffice_XML_Writer" oor:op="replace"><prop oor:name="Flags"><value>EXPORT TEMPLATE ALIEN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXML</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>writer_StarOffice_XML_Writer</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop></node><node oor:name="writer_globaldocument_StarOffice_XML_Writer_GlobalDocument" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN PREFERRED ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXML</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>writer_globaldocument_StarOffice_XML_Writer_GlobalDocument</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop></node><node oor:name="writer_globaldocument_pdf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PDF - Portable Document Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop></node><node oor:name="writerglobal8" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN PREFERRED ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXML</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>writerglobal8</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop></node><node oor:name="writerglobal8_writer" oor:op="replace"><prop oor:name="Flags"><value>EXPORT TEMPLATE DEFAULT ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXML</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>writer8</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop></node><node oor:name="writerglobal8_HTML" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN ASYNCHRON NOTINCHOOSER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>HTML</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_web_HTML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop><prop oor:name="UIName"><value xml:lang="x-default">HTML (Writer/Global)</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="writer_Text" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>txt</value></prop><prop oor:name="MediaType"><value>text/plain</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Text</value></prop><prop oor:name="UIName"><value>Text</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_StarOffice_XML_Writer" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sxw</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.writer</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>StarOffice XML (Writer)</value></prop><prop oor:name="UIName"><value>%productname% %formatversion% Textdokument</value></prop><prop oor:name="ClipboardFormat"><value>Writer 6.0</value></prop></node><node oor:name="writer_globaldocument_StarOffice_XML_Writer_GlobalDocument" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sxg</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.writer.global</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>writer_globaldocument_StarOffice_XML_Writer_GlobalDocument</value></prop><prop oor:name="UIName"><value>Writer 6.0 Master Document</value></prop><prop oor:name="ClipboardFormat"><value>Writer/Global 6.0</value></prop></node><node oor:name="pdf_Portable_Document_Format" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pdf</value></prop><prop oor:name="MediaType"><value>application/pdf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>PDF - Portable Document Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writerglobal8" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"><value>private:factory/swriter/GlobalDocument*</value></prop><prop oor:name="Extensions"><value>odm</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.text-master</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>writerglobal8</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Writer 8 Master Document</value></prop><prop oor:name="ClipboardFormat"><value>Writer/Global 8</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="HTML" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ASYNCHRON PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>HTML</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_web_HTML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop></node><node oor:name="Text (StarWriter/Web)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>TEXT</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_Text</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop></node><node oor:name="Text (encoded) (StarWriter/Web)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.Writer.FilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value>TEXT_DLG</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_Text</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop></node><node oor:name="writer_web_HTML_help" oor:op="replace"><prop oor:name="Flags"><value>IMPORT INTERNAL NOTINFILEDIALOG NOTINCHOOSER ASYNCHRON READONLY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>HTML_HELP</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Help content</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_web_HTML_help</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop></node><node oor:name="writer_web_StarOffice_XML_Writer" oor:op="replace"><prop oor:name="Flags"><value>EXPORT TEMPLATE ALIEN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXML</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>writer_StarOffice_XML_Writer</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop></node><node oor:name="writer_web_StarOffice_XML_Writer_Web_Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ALIEN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXMLVWEB</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>writer_web_StarOffice_XML_Writer_Web_Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop></node><node oor:name="writer_web_pdf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PDF - Portable Document Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop></node><node oor:name="writerweb8_writer_template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXMLVWEB</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>writerweb8_writer_template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop></node><node oor:name="writerweb8_writer" oor:op="replace"><prop oor:name="Flags"><value>EXPORT TEMPLATE ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXML</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>writer8</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="writer_web_HTML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"><value>private:factory/swriter/web*</value></prop><prop oor:name="Extensions"><value>html htm</value></prop><prop oor:name="MediaType"><value>text/html</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>HTML</value></prop><prop oor:name="UIName"><value>HTML Document</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_Text" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>txt</value></prop><prop oor:name="MediaType"><value>text/plain</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Text</value></prop><prop oor:name="UIName"><value>Text</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_web_HTML_help" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"><value>vnd.sun.star.help://*</value></prop><prop oor:name="Extensions"/><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>writer_web_HTML_help</value></prop><prop oor:name="UIName"><value>Help content</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_StarOffice_XML_Writer" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sxw</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.writer</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>StarOffice XML (Writer)</value></prop><prop oor:name="UIName"><value>%productname% %formatversion% Textdokument</value></prop><prop oor:name="ClipboardFormat"><value>Writer 6.0</value></prop></node><node oor:name="writer_web_StarOffice_XML_Writer_Web_Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>stw</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>writer_web_StarOffice_XML_Writer_Web_Template</value></prop><prop oor:name="UIName"><value>Writer/Web 6.0 Template</value></prop><prop oor:name="ClipboardFormat"><value>Writer/Web 6.0</value></prop></node><node oor:name="pdf_Portable_Document_Format" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pdf</value></prop><prop oor:name="MediaType"><value>application/pdf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>PDF - Portable Document Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writerweb8_writer_template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>oth</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>writerweb8_writer_template</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Writer/Web 8 Template</value></prop><prop oor:name="ClipboardFormat"><value>Writer/Web 8</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="HTML (StarWriter)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN ASYNCHRON</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>HTML</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_web_HTML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="Lotus 1-2-3 1.0 (DOS) (StarWriter)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop><prop oor:name="UserData"><value>LOTUSD</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Lotus 1-2-3 1.0 DOS (%productname% Writer)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_Lotus_1_2_3_10_DOS_StarWriter</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="Lotus 1-2-3 1.0 (WIN) (StarWriter)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop><prop oor:name="UserData"><value>LOTUSW</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Lotus 1-2-3 1.0 WIN (%productname% Writer)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_Lotus_1_2_3_10_WIN_StarWriter</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS Excel 4.0 (StarWriter)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop><prop oor:name="UserData"><value>EXCEL</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Excel 4.0 (%productname% Writer)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_40</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS Excel 5.0 (StarWriter)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop><prop oor:name="UserData"><value>CEXCEL</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Excel 5.0 (%productname% Writer)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_5095</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS Excel 95 (StarWriter)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop><prop oor:name="UserData"><value>CEXCEL</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Excel 95 (%productname% Writer)</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_MS_Excel_95</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS WinWord 5" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>WW6</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft WinWord 5</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MS_WinWord_5</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS WinWord 6.0" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CWW6</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Word 6.0</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MS_WinWord_60</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS Word 95" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CWW6</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Word 95</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MS_Word_95</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS Word 95 Vorlage" oor:op="replace"><prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH ALIEN</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CWW6</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MS_Word_95_Vorlage</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS Word 97" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CWW8</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Word 97/2000/XP/2003</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MS_Word_97</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS Word 97 Vorlage" oor:op="replace"><prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH ALIEN ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CWW8</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MS_Word_97_Vorlage</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="Rich Text Format" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.RtfFilter</value></prop><prop oor:name="UserData"><value>RTF</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Rich Text Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_Rich_Text_Format</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="StarOffice XML (Writer)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN PREFERRED ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXML</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>writer_StarOffice_XML_Writer</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="WordPerfect" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.WordPerfectImportFilter</value></prop><prop oor:name="UserData"><value>WPD</value></prop><prop oor:name="UIName"><value xml:lang="x-default">WordPerfect Document</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_WordPerfect_Document</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS_Works" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.MSWorksImportFilter</value></prop><prop oor:name="UserData"><value>WPS</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Works Document</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MS_Works_Document</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="T602Document" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.T602ImportFilter</value></prop><prop oor:name="UserData"><value>602</value></prop><prop oor:name="UIName"><value xml:lang="x-default">T602 Document</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_T602_Document</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="LotusWordPro" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.LotusWordProImportFilter</value></prop><prop oor:name="UserData"><value>WPD</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Lotus WordPro Document</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_LotusWordPro_Document</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="Text" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>TEXT</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_Text</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="Text (encoded)" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.Writer.FilterOptionsDialog</value></prop><prop oor:name="FilterService"/><prop oor:name="UserData"><value>TEXT_DLG</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_Text_encoded</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="writer_MIZI_Hwp_97" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.comp.hwpimport.HwpImportFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">Hangul WP 97</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MIZI_Hwp_97</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="writer_StarOffice_XML_Writer_Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ALIEN ENCRYPTION</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXMLV</value></prop><prop oor:name="FileFormatVersion"><value>6200</value></prop><prop oor:name="Type"><value>writer_StarOffice_XML_Writer_Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="writer_pdf_Export" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">PDF - Portable Document Format</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="writer8" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXML</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>writer8</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="writer8_template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION PASSWORDTOMODIFY</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"/><prop oor:name="UserData"><value>CXMLV</value></prop><prop oor:name="FileFormatVersion"><value>6800</value></prop><prop oor:name="Type"><value>writer8_template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS Word 2003 XML" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Writer.XMLOasisImporter,com.sun.star.comp.Writer.XMLOasisExporter,../share/xslt/import/wordml/wordml2ooo.xsl,../share/xslt/export/wordml/ooo2wordml.xsl</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MS_Word_2003_XML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS Word 2007 XML" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.WriterFilter</value></prop><prop oor:name="UserData"><value>OXML</value></prop><prop oor:name="UIName"><value xml:lang="x-default">Microsoft Word 2007/2010 XML</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MS_Word_2007</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="MS Word 2007 XML Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.WriterFilter</value></prop><prop oor:name="UserData"><value>OXML</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Word 2007/2010 XML Template</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_MS_Word_2007_Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="Office Open XML Text" oor:op="replace"><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.WriterFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Text</value></prop><prop oor:name="FileFormatVersion"><value>1</value></prop><prop oor:name="Type"><value>writer_OOXML</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="Office Open XML Text Template" oor:op="replace"><prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.WriterFilter</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Text Template</value></prop><prop oor:name="FileFormatVersion"><value>1</value></prop><prop oor:name="Type"><value>writer_OOXML_Text_Template</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node><node oor:name="writer_layout_dump" oor:op="replace"><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop><prop oor:name="UIComponent"/><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.LayoutDump</value></prop><prop oor:name="UserData"><value/></prop><prop oor:name="UIName"><value xml:lang="x-default">Writer Layout XML</value></prop><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_layout_dump_xml</value></prop><prop oor:name="TemplateName"/><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="writer_web_HTML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"><value>private:factory/swriter/web*</value></prop><prop oor:name="Extensions"><value>html htm</value></prop><prop oor:name="MediaType"><value>text/html</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>HTML</value></prop><prop oor:name="UIName"><value>HTML Document</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_Lotus_1_2_3_10_DOS_StarWriter" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wk1 wks</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Lotus 1-2-3 1.0 (DOS) (StarWriter)</value></prop><prop oor:name="UIName"><value>Lotus 1-2-3 1.0 (DOS) (%productname% %formatversion% Writer)</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_Lotus_1_2_3_10_WIN_StarWriter" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wk1 wks</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Lotus 1-2-3 1.0 (WIN) (StarWriter)</value></prop><prop oor:name="UIName"><value>Lotus 1-2-3 1.0 (WIN) (%productname% %formatversion% Writer)</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_MS_Excel_40" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xls xlw xlc xlm</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 4.0</value></prop><prop oor:name="UIName"><value>Microsoft Excel 4.0</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="calc_MS_Excel_5095" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xls xlc xlm xlw</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 5.0/95</value></prop><prop oor:name="UIName"><value>Microsoft Excel 5.0</value></prop><prop oor:name="ClipboardFormat"><value>Biff5</value></prop></node><node oor:name="calc_MS_Excel_95" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xls xlc xlm xlw</value></prop><prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Excel 95</value></prop><prop oor:name="UIName"><value>Microsoft Excel 95</value></prop><prop oor:name="ClipboardFormat"><value>Biff5</value></prop></node><node oor:name="writer_MS_WinWord_5" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>doc</value></prop><prop oor:name="MediaType"><value>application/msword</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS WinWord 5</value></prop><prop oor:name="UIName"><value>Microsoft WinWord 5</value></prop><prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop></node><node oor:name="writer_MS_WinWord_60" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>doc</value></prop><prop oor:name="MediaType"><value>application/msword</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS WinWord 6.0</value></prop><prop oor:name="UIName"><value>Microsoft Word 6.0</value></prop><prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop></node><node oor:name="writer_MS_Word_95" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>doc</value></prop><prop oor:name="MediaType"><value>application/msword</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Word 95</value></prop><prop oor:name="UIName"><value>Microsoft Word 95</value></prop><prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop></node><node oor:name="writer_MS_Word_95_Vorlage" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>dot</value></prop><prop oor:name="MediaType"><value>application/msword</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Word 95 Vorlage</value></prop><prop oor:name="UIName"><value>MS Word 95 Template</value></prop><prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop></node><node oor:name="writer_MS_Word_97" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>doc</value></prop><prop oor:name="MediaType"><value>application/msword</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>MS Word 97</value></prop><prop oor:name="UIName"><value>Microsoft Word 97/2000/XP/2003</value></prop><prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop></node><node oor:name="writer_MS_Word_97_Vorlage" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>dot</value></prop><prop oor:name="MediaType"><value>application/msword</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Word 97 Vorlage</value></prop><prop oor:name="UIName"><value>MS Word 97/2000 Template</value></prop><prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop></node><node oor:name="writer_Rich_Text_Format" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>rtf</value></prop><prop oor:name="MediaType"><value>application/rtf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Rich Text Format</value></prop><prop oor:name="UIName"><value>Rich Text Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_StarOffice_XML_Writer" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>sxw</value></prop><prop oor:name="MediaType"><value>application/vnd.sun.xml.writer</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>StarOffice XML (Writer)</value></prop><prop oor:name="UIName"><value>%productname% %formatversion% Textdokument</value></prop><prop oor:name="ClipboardFormat"><value>Writer 6.0</value></prop></node><node oor:name="writer_WordPerfect_Document" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.Writer.WordPerfectImportFilter</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wpd</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>WordPerfect</value></prop><prop oor:name="UIName"><value>WordPerfect Document</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_MS_Works_Document" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.Writer.MSWorksImportFilter</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>wps</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>MS_Works</value></prop><prop oor:name="UIName"><value>Microsoft Works Document</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_T602_Document" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.Writer.T602ImportFilter</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>602 txt</value></prop><prop oor:name="MediaType"><value>application/x-t602</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>T602Document</value></prop><prop oor:name="UIName"><value>T602 Document</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_LotusWordPro_Document" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.Writer.LotusWordProImportFilter</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>lwp</value></prop><prop oor:name="MediaType"><value>application/vnd.lotus-wordpro</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>LotusWordPro</value></prop><prop oor:name="UIName"><value>LotusWordPro Document</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_Text" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>txt</value></prop><prop oor:name="MediaType"><value>text/plain</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Text</value></prop><prop oor:name="UIName"><value>Text</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_Text_encoded" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>txt</value></prop><prop oor:name="MediaType"><value>text/plain</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>Text (encoded)</value></prop><prop oor:name="UIName"><value>Text - encoded</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_MIZI_Hwp_97" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.comp.hwpimport.HwpImportFilter</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>hwp</value></prop><prop oor:name="MediaType"><value>application/x-hwp</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>writer_MIZI_Hwp_97</value></prop><prop oor:name="UIName"><value>Hangul WP 97</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer_StarOffice_XML_Writer_Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>stw</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>writer_StarOffice_XML_Writer_Template</value></prop><prop oor:name="UIName"><value>Writer 6.0 Template</value></prop><prop oor:name="ClipboardFormat"><value>Writer 6.0</value></prop></node><node oor:name="pdf_Portable_Document_Format" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>pdf</value></prop><prop oor:name="MediaType"><value>application/pdf</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>PDF - Portable Document Format</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="writer8_template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>ott</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.text-template</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>writer8_template</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Writer 8 Template</value></prop><prop oor:name="ClipboardFormat"><value>Writer 8 Template</value></prop></node><node oor:name="writer8" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop><prop oor:name="URLPattern"><value>private:factory/swriter</value></prop><prop oor:name="Extensions"><value>odt</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.text</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>writer8</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Writer 8</value></prop><prop oor:name="ClipboardFormat"><value>Writer 8</value></prop></node><node oor:name="writer_MS_Word_2003_XML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xml doc</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>MS Word 2003 XML</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Word 2003 XML</value></prop><prop oor:name="ClipboardFormat"><value>doctype:wordDocument</value></prop></node><node oor:name="writer_MS_Word_2007" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>docx docm</value></prop><prop oor:name="MediaType"><value>application/msword</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>MS Word 2007 XML</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Word 2007/2010 XML</value></prop><prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop></node><node oor:name="writer_MS_Word_2007_Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>dotx dotm</value></prop><prop oor:name="MediaType"><value>application/msword</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>MS Word 2007 XML Template</value></prop><prop oor:name="UIName"><value xml:lang="en-US">Microsoft Word 2007/2010 XML Template</value></prop><prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop></node><node oor:name="writer_OOXML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>docx docm</value></prop><prop oor:name="MediaType"><value>application/vnd.openxmlformats-officedocument.wordprocessingml.document</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Office Open XML Text</value></prop><prop oor:name="UIName"><value>Office Open XML Text Document</value></prop><prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop></node><node oor:name="writer_OOXML_Text_Template" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>dotx dotm</value></prop><prop oor:name="MediaType"><value>application/vnd.openxmlformats-officedocument.wordprocessingml.template</value></prop><prop oor:name="Preferred"><value>true</value></prop><prop oor:name="PreferredFilter"><value>Office Open XML Text Template</value></prop><prop oor:name="UIName"><value>Office Open XML Text Template</value></prop><prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop></node><node oor:name="writer_layout_dump_xml" oor:op="replace"><prop oor:name="DetectService"/><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xml</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>Writer Layout Dump</value></prop><prop oor:name="ClipboardFormat"/></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Common" oor:package="org.openoffice.Office"><node oor:name="Menus"><node oor:name="New"><node oor:name="m0" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/swriter</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Text Document</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node><node oor:name="m6" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/swriter/web</value></prop><prop oor:name="Title"><value xml:lang="en-US">~HTML Document</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node><node oor:name="m7" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/swriter?slot=21053</value></prop><prop oor:name="Title"><value xml:lang="en-US">~XML Form Document</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node><node oor:name="m8" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/swriter/GlobalDocument</value></prop><prop oor:name="Title"><value xml:lang="en-US">M~aster Document</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop></node><node oor:name="m11" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/swriter?slot=21051</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Labels</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3255</value></prop></node><node oor:name="m12" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>private:factory/swriter?slot=21052</value></prop><prop oor:name="Title"><value xml:lang="en-US">B~usiness Cards</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_default</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3255</value></prop></node></node><node oor:name="Wizard"><node oor:name="m0" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>service:com.sun.star.wizards.letter.CallWizard?start</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Letter...</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3216</value></prop></node><node oor:name="m1" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>service:com.sun.star.wizards.fax.CallWizard?start</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Fax...</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3216</value></prop></node><node oor:name="m2" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>service:com.sun.star.wizards.agenda.CallWizard?start</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Agenda...</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3216</value></prop></node><node oor:name="m7" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>service:com.sun.star.wizards.web.CallWizard?start</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Web Page...</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3216</value></prop></node><node oor:name="m12" oor:op="replace"><prop oor:name="URL" oor:type="xs:string"><value>macro:///Euro.AutoPilotRun.StartAutoPilot</value></prop><prop oor:name="Title"><value xml:lang="en-US">~Euro Converter...</value></prop><prop oor:name="TargetName" oor:type="xs:string"><value>_self</value></prop><prop oor:name="ImageIdentifier" oor:type="xs:string"><value>private:image/3216</value></prop></node></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:package="org.openoffice.Office" oor:name="Embedding"><node oor:name="Objects"><node oor:name="8BC6B165-B1B2-4EDD-AA47-DAE2EE689DD6" oor:op="replace"><prop oor:name="ObjectFactory"><value>com.sun.star.embed.OOoEmbeddedObjectFactory</value></prop><prop oor:name="ObjectDocumentServiceName"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="ObjectMiscStatus"/><prop oor:name="ObjectVerbs"><value>PRIMARY SHOW OPEN HIDE UIACTIVATE IPACTIVATE SAVECOPYAS</value></prop></node></node><node oor:name="ObjectNames"><node oor:name="Writer" oor:op="replace"><prop oor:name="ObjectUIName"><value xml:lang="en-US">%PRODUCTNAME %PRODUCTVERSION Text</value></prop><prop oor:name="ClassID"><value>8BC6B165-B1B2-4EDD-AA47-DAE2EE689DD6</value></prop></node></node></oor:component-data><oor:component-data xmlns:install="http://openoffice.org/2004/installation" oor:name="Setup" oor:package="org.openoffice"><node oor:name="Office"><node oor:name="Factories"><node oor:name="com.sun.star.text.GlobalDocument" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.text.GlobalDocument</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>WriterCommands</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>writerglobal8</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"/><prop oor:name="ooSetupFactoryDefaultFilter"><value>writerglobal8</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/swriter/GlobalDocument</value></prop><prop oor:name="ooSetupFactoryWindowAttributes"><value/></prop><prop oor:name="ooSetupFactoryIcon"><value>11</value></prop><prop oor:name="ooSetupFactoryTemplateFile"><value/></prop><prop oor:name="ooSetupFactorySystemDefaultTemplateChanged"><value>false</value></prop><prop oor:name="ooSetupFactoryShortName"><value>sglobal</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Writer</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>WriterGlobalWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node><node oor:name="com.sun.star.text.TextDocument" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>WriterCommands</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>writer8</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"><value>writer8_template</value></prop><prop oor:name="ooSetupFactoryDefaultFilter"><value>writer8</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/swriter</value></prop><prop oor:name="ooSetupFactoryWindowAttributes"><value/></prop><prop oor:name="ooSetupFactoryIcon"><value>2</value></prop><prop oor:name="ooSetupFactoryTemplateFile"><value/></prop><prop oor:name="ooSetupFactorySystemDefaultTemplateChanged"><value>false</value></prop><prop oor:name="ooSetupFactoryShortName"><value>swriter</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Writer</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>WriterWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node><node oor:name="com.sun.star.sdb.FormDesign" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>writer8</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"><value>writer8_template</value></prop><prop oor:name="ooSetupFactoryDefaultFilter"><value>writer8</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/swriter</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>WriterCommands</value></prop><prop oor:name="ooSetupFactoryIcon"><value>2</value></prop><prop oor:name="ooSetupFactoryShortName"><value>swform</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Base: Database Form</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>WriterFormWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node><node oor:name="com.sun.star.sdb.TextReportDesign" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>writer8</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"><value>writer8_template</value></prop><prop oor:name="ooSetupFactoryDefaultFilter"><value>writer8</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/swriter</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>WriterCommands</value></prop><prop oor:name="ooSetupFactoryIcon"><value>2</value></prop><prop oor:name="ooSetupFactoryShortName"><value>swreport</value></prop><prop oor:name="ooSetupFactoryUIName"><value>Base: Report Design</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>WriterReportWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node><node oor:name="com.sun.star.xforms.XMLFormDocument" oor:op="replace"><prop oor:name="ooSetupFactoryDocumentService" oor:finalized="true"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="ooSetupFactoryActualFilter" oor:finalized="true"><value>writer8</value></prop><prop oor:name="ooSetupFactoryActualTemplateFilter" oor:finalized="true"><value>writer8_template</value></prop><prop oor:name="ooSetupFactoryDefaultFilter"><value>writer8</value></prop><prop oor:name="ooSetupFactoryEmptyDocumentURL" oor:finalized="true"><value>private:factory/swriter?slot=21053</value></prop><prop oor:name="ooSetupFactoryCommandConfigRef"><value>WriterCommands</value></prop><prop oor:name="ooSetupFactoryWindowAttributes"><value/></prop><prop oor:name="ooSetupFactoryIcon"><value>2</value></prop><prop oor:name="ooSetupFactoryShortName"><value>swxform</value></prop><prop oor:name="ooSetupFactoryUIName"><value>XML Form Document</value></prop><prop oor:name="ooSetupFactoryWindowStateConfigRef"><value>XFormsWindowState</value></prop><prop oor:name="ooSetupFactoryCmdCategoryConfigRef"><value>GenericCategories</value></prop></node></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/registry/xsltfilter.xcd b/test/user-template/user/registry/xsltfilter.xcd
new file mode 100644
index 000000000000..782708cd691d
--- /dev/null
+++ b/test/user-template/user/registry/xsltfilter.xcd
@@ -0,0 +1,2 @@
+<?xml version="1.0"?>
+<oor:data xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oor="http://openoffice.org/2001/registry"><dependency file="main"/><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Filter"><node oor:name="Filters"><node oor:name="DocBook File" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_DocBook_File</value></prop><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Writer.XMLImporter,com.sun.star.comp.Writer.XMLExporter,../share/xslt/docbook/docbooktosoffheadings.xsl,../share/xslt/docbook/sofftodocbookheadings.xsl</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"><value>../share/xslt/docbook/DocBookTemplate.stw</value></prop><prop oor:name="UIName"><value>DocBook</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop></node><node oor:name="OpenDocument Drawing Flat XML" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>draw_ODG_FlatXML</value></prop><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.comp.filter.OdfFlatXml,,com.sun.star.comp.Draw.XMLOasisImporter,com.sun.star.comp.Draw.XMLOasisExporter,,,true</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>OpenDocument Drawing (Flat XML)</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop></node><node oor:name="OpenDocument Presentation Flat XML" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>impress_ODP_FlatXML</value></prop><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.comp.filter.OdfFlatXml,,com.sun.star.comp.Impress.XMLOasisImporter,com.sun.star.comp.Impress.XMLOasisExporter,,,true</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>OpenDocument Presentation (Flat XML)</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop></node><node oor:name="OpenDocument Spreadsheet Flat XML" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>calc_ODS_FlatXML</value></prop><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.comp.filter.OdfFlatXml,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,,,true</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>OpenDocument Spreadsheet (Flat XML)</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop></node><node oor:name="OpenDocument Text Flat XML" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>writer_ODT_FlatXML</value></prop><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.comp.filter.OdfFlatXml,,com.sun.star.comp.Writer.XMLOasisImporter,com.sun.star.comp.Writer.XMLOasisExporter,,,true</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>OpenDocument Text (Flat XML)</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT OWN 3RDPARTYFILTER</value></prop></node><node oor:name="XHTML Calc File" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>XHTML_File</value></prop><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,,../share/xslt/export/xhtml/opendoc2xhtml.xsl</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>XHTML</value></prop><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop></node><node oor:name="XHTML Draw File" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>XHTML_File</value></prop><prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Draw.XMLOasisImporter,com.sun.star.comp.Draw.XMLOasisExporter,,../share/xslt/export/xhtml/opendoc2xhtml.xsl</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>XHTML</value></prop><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop></node><node oor:name="XHTML Impress File" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>XHTML_File</value></prop><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Impress.XMLOasisImporter,com.sun.star.comp.Impress.XMLOasisExporter,,../share/xslt/export/xhtml/opendoc2xhtml.xsl</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>XHTML</value></prop><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop></node><node oor:name="XHTML Writer File" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>XHTML_File</value></prop><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Writer.XMLOasisImporter,com.sun.star.comp.Writer.XMLOasisExporter,,../share/xslt/export/xhtml/opendoc2xhtml.xsl,,true</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>XHTML</value></prop><prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop></node><node oor:name="UOF text" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>Unified_Office_Format_text</value></prop><prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Writer.XMLOasisImporter,com.sun.star.comp.Writer.XMLOasisExporter,../share/xslt/import/uof/uof2odf_text.xsl,../share/xslt/export/uof/odf2uof_text.xsl</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>Unified Office Format text</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop></node><node oor:name="UOF spreadsheet" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>Unified_Office_Format_spreadsheet</value></prop><prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,../share/xslt/import/uof/uof2odf_spreadsheet.xsl,../share/xslt/export/uof/odf2uof_spreadsheet.xsl</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>Unified Office Format spreadsheet</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop></node><node oor:name="UOF presentation" oor:op="replace"><prop oor:name="FileFormatVersion"><value>0</value></prop><prop oor:name="Type"><value>Unified_Office_Format_presentation</value></prop><prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop><prop oor:name="UIComponent"/><prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Impress.XMLOasisImporter,com.sun.star.comp.Impress.XMLOasisExporter,../share/xslt/import/uof/uof2odf_presentation.xsl,../share/xslt/export/uof/odf2uof_presentation.xsl</value></prop><prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop><prop oor:name="TemplateName"/><prop oor:name="UIName"><value>Unified Office Format presentation</value></prop><prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop></node></node></oor:component-data><oor:component-data oor:package="org.openoffice.TypeDetection" oor:name="Types"><node oor:name="Types"><node oor:name="calc_ODS_FlatXML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>fods ods xml</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.spreadsheet-flat-xml</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>OpenDocument Spreadsheet Flat XML</value></prop><prop oor:name="UIName"><value>OpenDocument Spreadsheet (Flat XML)</value></prop><prop oor:name="ClipboardFormat"><value>doctype:office:mimetype="application/vnd.oasis.opendocument.spreadsheet"</value></prop></node><node oor:name="draw_ODG_FlatXML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>fodg odg xml</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.graphics-flat-xml</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>OpenDocument Drawing Flat XML</value></prop><prop oor:name="UIName"><value>OpenDocument Drawing (Flat XML)</value></prop><prop oor:name="ClipboardFormat"><value>doctype:office:mimetype="application/vnd.oasis.opendocument.graphics"</value></prop></node><node oor:name="impress_ODP_FlatXML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>fodp odp xml</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.presentation-flat-xml</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>OpenDocument Presentation Flat XML</value></prop><prop oor:name="UIName"><value>OpenDocument Presentation (Flat XML)</value></prop><prop oor:name="ClipboardFormat"><value>doctype:office:mimetype="application/vnd.oasis.opendocument.presentation"</value></prop></node><node oor:name="writer_DocBook_File" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>xml</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>DocBook File</value></prop><prop oor:name="UIName"><value>DocBook</value></prop><prop oor:name="ClipboardFormat"><value>doctype:-//OASIS//DTD DocBook XML V4</value></prop></node><node oor:name="writer_ODT_FlatXML" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>fodt odt xml</value></prop><prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.text-flat-xml</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"><value>OpenDocument Text Flat XML</value></prop><prop oor:name="UIName"><value>OpenDocument Text (Flat XML)</value></prop><prop oor:name="ClipboardFormat"><value>doctype:office:mimetype="application/vnd.oasis.opendocument.text"</value></prop></node><node oor:name="XHTML_File" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value>html xhtml</value></prop><prop oor:name="MediaType"><value>application/xhtml+xml</value></prop><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>XHTML</value></prop><prop oor:name="ClipboardFormat"/></node><node oor:name="Unified_Office_Format_text" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value oor:separator=";">uot;uof</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>Unified Office Format text</value></prop><prop oor:name="ClipboardFormat"><value>doctype:vnd.uof.text</value></prop></node><node oor:name="Unified_Office_Format_spreadsheet" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value oor:separator=";">uos;uof</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>Unified Office Format spreadsheet</value></prop><prop oor:name="ClipboardFormat"><value>doctype:vnd.uof.spreadsheet</value></prop></node><node oor:name="Unified_Office_Format_presentation" oor:op="replace"><prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop><prop oor:name="URLPattern"/><prop oor:name="Extensions"><value oor:separator=";">uop;uof</value></prop><prop oor:name="MediaType"/><prop oor:name="Preferred"><value>false</value></prop><prop oor:name="PreferredFilter"/><prop oor:name="UIName"><value>Unified Office Format presentation</value></prop><prop oor:name="ClipboardFormat"><value>doctype:vnd.uof.presentation</value></prop></node></node></oor:component-data></oor:data>
diff --git a/test/user-template/user/template/common/layout/.memdump b/test/user-template/user/template/common/layout/.memdump
new file mode 100644
index 000000000000..175ed7477d7e
--- /dev/null
+++ b/test/user-template/user/template/common/layout/.memdump
@@ -0,0 +1,4 @@
+ 04:37:13 AM
+
+ MEMORY ALLOCATED : 0, MAX was 956182
+BLOCK NUMBER SIZE TYPE
diff --git a/test/user-template/user/template/common/layout/lyt-aqua.otp b/test/user-template/user/template/common/layout/lyt-aqua.otp
new file mode 100644
index 000000000000..4c0af80ef984
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-aqua.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-blackandwhite.otp b/test/user-template/user/template/common/layout/lyt-blackandwhite.otp
new file mode 100644
index 000000000000..2cb8d194fd90
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-blackandwhite.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-bluegrey.otp b/test/user-template/user/template/common/layout/lyt-bluegrey.otp
new file mode 100644
index 000000000000..dc544a42bbfe
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-bluegrey.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-bluelinesgrad.otp b/test/user-template/user/template/common/layout/lyt-bluelinesgrad.otp
new file mode 100644
index 000000000000..c604d44ae5f5
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-bluelinesgrad.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-bluetitledown.otp b/test/user-template/user/template/common/layout/lyt-bluetitledown.otp
new file mode 100644
index 000000000000..02ae32127312
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-bluetitledown.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-book.otp b/test/user-template/user/template/common/layout/lyt-book.otp
new file mode 100644
index 000000000000..193e1bb9eedc
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-book.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-brown.otp b/test/user-template/user/template/common/layout/lyt-brown.otp
new file mode 100644
index 000000000000..40d16d41472d
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-brown.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-charglow.otp b/test/user-template/user/template/common/layout/lyt-charglow.otp
new file mode 100644
index 000000000000..06475ee8b299
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-charglow.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-forest.otp b/test/user-template/user/template/common/layout/lyt-forest.otp
new file mode 100644
index 000000000000..25a035c82e6c
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-forest.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-frepa.otp b/test/user-template/user/template/common/layout/lyt-frepa.otp
new file mode 100644
index 000000000000..368700b119d3
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-frepa.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-glacier.otp b/test/user-template/user/template/common/layout/lyt-glacier.otp
new file mode 100644
index 000000000000..2dac4c42b10e
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-glacier.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-greengradlines.otp b/test/user-template/user/template/common/layout/lyt-greengradlines.otp
new file mode 100644
index 000000000000..a272ef5225c7
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-greengradlines.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-keyboard.otp b/test/user-template/user/template/common/layout/lyt-keyboard.otp
new file mode 100644
index 000000000000..48304afbc7c0
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-keyboard.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-movwaves.otp b/test/user-template/user/template/common/layout/lyt-movwaves.otp
new file mode 100644
index 000000000000..aa24a7ea4ba8
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-movwaves.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-numdark.otp b/test/user-template/user/template/common/layout/lyt-numdark.otp
new file mode 100644
index 000000000000..962d552680a5
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-numdark.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-ocean.otp b/test/user-template/user/template/common/layout/lyt-ocean.otp
new file mode 100644
index 000000000000..a737ee621caa
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-ocean.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-organic.otp b/test/user-template/user/template/common/layout/lyt-organic.otp
new file mode 100644
index 000000000000..12db35ba868b
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-organic.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-paper.otp b/test/user-template/user/template/common/layout/lyt-paper.otp
new file mode 100644
index 000000000000..72c8d081c43d
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-paper.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-rededges.otp b/test/user-template/user/template/common/layout/lyt-rededges.otp
new file mode 100644
index 000000000000..b75937678d5b
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-rededges.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-roundedrect.otp b/test/user-template/user/template/common/layout/lyt-roundedrect.otp
new file mode 100644
index 000000000000..5486d58e0144
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-roundedrect.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-sunrise.otp b/test/user-template/user/template/common/layout/lyt-sunrise.otp
new file mode 100644
index 000000000000..22c0a3113a21
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-sunrise.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-techpoly.otp b/test/user-template/user/template/common/layout/lyt-techpoly.otp
new file mode 100644
index 000000000000..60882a86506d
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-techpoly.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-tunnel.otp b/test/user-template/user/template/common/layout/lyt-tunnel.otp
new file mode 100644
index 000000000000..8c4e7104dea0
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-tunnel.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-water.otp b/test/user-template/user/template/common/layout/lyt-water.otp
new file mode 100644
index 000000000000..8eacf7440251
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-water.otp
Binary files differ
diff --git a/test/user-template/user/template/common/layout/lyt-wine.otp b/test/user-template/user/template/common/layout/lyt-wine.otp
new file mode 100644
index 000000000000..1a4cdeb79302
--- /dev/null
+++ b/test/user-template/user/template/common/layout/lyt-wine.otp
Binary files differ
diff --git a/test/user-template/user/template/en-US/internal/html.stw b/test/user-template/user/template/en-US/internal/html.stw
new file mode 100644
index 000000000000..56dec1a901cc
--- /dev/null
+++ b/test/user-template/user/template/en-US/internal/html.stw
Binary files differ
diff --git a/test/user-template/user/template/en-US/internal/idxexample.odt b/test/user-template/user/template/en-US/internal/idxexample.odt
new file mode 100644
index 000000000000..a1cf2a3300c3
--- /dev/null
+++ b/test/user-template/user/template/en-US/internal/idxexample.odt
Binary files differ
diff --git a/test/user-template/user/template/en-US/presnt/.memdump b/test/user-template/user/template/en-US/presnt/.memdump
new file mode 100644
index 000000000000..8fc2bbac1c54
--- /dev/null
+++ b/test/user-template/user/template/en-US/presnt/.memdump
@@ -0,0 +1,4 @@
+ 04:37:15 AM
+
+ MEMORY ALLOCATED : 0, MAX was 1171099
+BLOCK NUMBER SIZE TYPE
diff --git a/test/user-template/user/template/en-US/presnt/prs-novelty.otp b/test/user-template/user/template/en-US/presnt/prs-novelty.otp
new file mode 100644
index 000000000000..7b664e3cff6d
--- /dev/null
+++ b/test/user-template/user/template/en-US/presnt/prs-novelty.otp
Binary files differ
diff --git a/test/user-template/user/template/en-US/presnt/prs-strategy.otp b/test/user-template/user/template/en-US/presnt/prs-strategy.otp
new file mode 100644
index 000000000000..202bc9b8bc0f
--- /dev/null
+++ b/test/user-template/user/template/en-US/presnt/prs-strategy.otp
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/10grey.ott b/test/user-template/user/template/en-US/wizard/agenda/10grey.ott
new file mode 100644
index 000000000000..b924fe756313
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/10grey.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/1simple.ott b/test/user-template/user/template/en-US/wizard/agenda/1simple.ott
new file mode 100644
index 000000000000..520b5d2e0954
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/1simple.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/2elegant.ott b/test/user-template/user/template/en-US/wizard/agenda/2elegant.ott
new file mode 100644
index 000000000000..a397392e16ee
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/2elegant.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/3modern.ott b/test/user-template/user/template/en-US/wizard/agenda/3modern.ott
new file mode 100644
index 000000000000..80d4a083d0d9
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/3modern.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/4classic.ott b/test/user-template/user/template/en-US/wizard/agenda/4classic.ott
new file mode 100644
index 000000000000..8058d78369b0
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/4classic.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/5blue.ott b/test/user-template/user/template/en-US/wizard/agenda/5blue.ott
new file mode 100644
index 000000000000..27702d59c496
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/5blue.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/6orange.ott b/test/user-template/user/template/en-US/wizard/agenda/6orange.ott
new file mode 100644
index 000000000000..5bc0c6eba9b8
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/6orange.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/7red.ott b/test/user-template/user/template/en-US/wizard/agenda/7red.ott
new file mode 100644
index 000000000000..4a5ebfb17894
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/7red.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/8green.ott b/test/user-template/user/template/en-US/wizard/agenda/8green.ott
new file mode 100644
index 000000000000..8bd9057774ac
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/8green.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/9colorful.ott b/test/user-template/user/template/en-US/wizard/agenda/9colorful.ott
new file mode 100644
index 000000000000..684fa84aad54
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/9colorful.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/aw-10grey.ott b/test/user-template/user/template/en-US/wizard/agenda/aw-10grey.ott
new file mode 100644
index 000000000000..e68c8c192beb
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/aw-10grey.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/aw-1simple.ott b/test/user-template/user/template/en-US/wizard/agenda/aw-1simple.ott
new file mode 100644
index 000000000000..c60878e91d72
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/aw-1simple.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/aw-2elegant.ott b/test/user-template/user/template/en-US/wizard/agenda/aw-2elegant.ott
new file mode 100644
index 000000000000..9140c0e18708
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/aw-2elegant.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/aw-3modern.ott b/test/user-template/user/template/en-US/wizard/agenda/aw-3modern.ott
new file mode 100644
index 000000000000..e0e34c620ef6
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/aw-3modern.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/aw-4classic.ott b/test/user-template/user/template/en-US/wizard/agenda/aw-4classic.ott
new file mode 100644
index 000000000000..8c88b783540b
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/aw-4classic.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/aw-5blue.ott b/test/user-template/user/template/en-US/wizard/agenda/aw-5blue.ott
new file mode 100644
index 000000000000..0bca3f4b3a67
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/aw-5blue.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/aw-6orange.ott b/test/user-template/user/template/en-US/wizard/agenda/aw-6orange.ott
new file mode 100644
index 000000000000..b6300f8d66ef
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/aw-6orange.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/aw-7red.ott b/test/user-template/user/template/en-US/wizard/agenda/aw-7red.ott
new file mode 100644
index 000000000000..2001e90e05df
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/aw-7red.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/aw-8green.ott b/test/user-template/user/template/en-US/wizard/agenda/aw-8green.ott
new file mode 100644
index 000000000000..f39e116564ec
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/aw-8green.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/agenda/aw-9colorful.ott b/test/user-template/user/template/en-US/wizard/agenda/aw-9colorful.ott
new file mode 100644
index 000000000000..eeb8c7c560b7
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/agenda/aw-9colorful.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/fax/bus-classic-pri_f.ott b/test/user-template/user/template/en-US/wizard/fax/bus-classic-pri_f.ott
new file mode 100644
index 000000000000..6500c6090231
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/fax/bus-classic-pri_f.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/fax/bus-classic_f.ott b/test/user-template/user/template/en-US/wizard/fax/bus-classic_f.ott
new file mode 100644
index 000000000000..0c72d1ab0094
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/fax/bus-classic_f.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/fax/bus-modern-pri_f.ott b/test/user-template/user/template/en-US/wizard/fax/bus-modern-pri_f.ott
new file mode 100644
index 000000000000..4a361edef969
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/fax/bus-modern-pri_f.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/fax/bus-modern_f.ott b/test/user-template/user/template/en-US/wizard/fax/bus-modern_f.ott
new file mode 100644
index 000000000000..3f2250e22d98
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/fax/bus-modern_f.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/fax/pri-bottle_f.ott b/test/user-template/user/template/en-US/wizard/fax/pri-bottle_f.ott
new file mode 100644
index 000000000000..ed210571d3a7
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/fax/pri-bottle_f.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/fax/pri-fax_f.ott b/test/user-template/user/template/en-US/wizard/fax/pri-fax_f.ott
new file mode 100644
index 000000000000..3c1d7350ffba
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/fax/pri-fax_f.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/fax/pri-lines_f.ott b/test/user-template/user/template/en-US/wizard/fax/pri-lines_f.ott
new file mode 100644
index 000000000000..c718d8ca4489
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/fax/pri-lines_f.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/fax/pri-marine_f.ott b/test/user-template/user/template/en-US/wizard/fax/pri-marine_f.ott
new file mode 100644
index 000000000000..13695b81311f
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/fax/pri-marine_f.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-01.ott b/test/user-template/user/template/en-US/wizard/report/cnt-01.ott
new file mode 100644
index 000000000000..47dc86ac482c
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-01.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-011.ott b/test/user-template/user/template/en-US/wizard/report/cnt-011.ott
new file mode 100644
index 000000000000..050262332b57
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-011.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-012.ott b/test/user-template/user/template/en-US/wizard/report/cnt-012.ott
new file mode 100644
index 000000000000..f236c289ac75
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-012.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-02.ott b/test/user-template/user/template/en-US/wizard/report/cnt-02.ott
new file mode 100644
index 000000000000..42241f257657
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-02.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-021.ott b/test/user-template/user/template/en-US/wizard/report/cnt-021.ott
new file mode 100644
index 000000000000..87c267ed327a
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-021.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-022.ott b/test/user-template/user/template/en-US/wizard/report/cnt-022.ott
new file mode 100644
index 000000000000..55bdad50e3a2
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-022.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-03.ott b/test/user-template/user/template/en-US/wizard/report/cnt-03.ott
new file mode 100644
index 000000000000..c0334639814b
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-03.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-031.ott b/test/user-template/user/template/en-US/wizard/report/cnt-031.ott
new file mode 100644
index 000000000000..0a933fa2ed2e
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-031.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-032.ott b/test/user-template/user/template/en-US/wizard/report/cnt-032.ott
new file mode 100644
index 000000000000..dfdd5fe6d18e
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-032.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-04.ott b/test/user-template/user/template/en-US/wizard/report/cnt-04.ott
new file mode 100644
index 000000000000..ac63374c6828
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-04.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-041.ott b/test/user-template/user/template/en-US/wizard/report/cnt-041.ott
new file mode 100644
index 000000000000..4440aabf03c0
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-041.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-042.ott b/test/user-template/user/template/en-US/wizard/report/cnt-042.ott
new file mode 100644
index 000000000000..a82c209dd57e
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-042.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-05.ott b/test/user-template/user/template/en-US/wizard/report/cnt-05.ott
new file mode 100644
index 000000000000..ad8147e71e64
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-05.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-051.ott b/test/user-template/user/template/en-US/wizard/report/cnt-051.ott
new file mode 100644
index 000000000000..b42b9ab78378
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-051.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-052.ott b/test/user-template/user/template/en-US/wizard/report/cnt-052.ott
new file mode 100644
index 000000000000..dce7cf8716ec
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-052.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-06.ott b/test/user-template/user/template/en-US/wizard/report/cnt-06.ott
new file mode 100644
index 000000000000..52586612e7e0
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-06.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-061.ott b/test/user-template/user/template/en-US/wizard/report/cnt-061.ott
new file mode 100644
index 000000000000..48f9691f37a6
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-061.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-062.ott b/test/user-template/user/template/en-US/wizard/report/cnt-062.ott
new file mode 100644
index 000000000000..8876b12f9c84
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-062.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/cnt-default.ott b/test/user-template/user/template/en-US/wizard/report/cnt-default.ott
new file mode 100644
index 000000000000..76b60675b7d5
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/cnt-default.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/stl-01.ott b/test/user-template/user/template/en-US/wizard/report/stl-01.ott
new file mode 100644
index 000000000000..d433a50bfceb
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/stl-01.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/stl-02.ott b/test/user-template/user/template/en-US/wizard/report/stl-02.ott
new file mode 100644
index 000000000000..06c74ec7d91d
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/stl-02.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/stl-03.ott b/test/user-template/user/template/en-US/wizard/report/stl-03.ott
new file mode 100644
index 000000000000..d3b05d720c31
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/stl-03.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/stl-04.ott b/test/user-template/user/template/en-US/wizard/report/stl-04.ott
new file mode 100644
index 000000000000..6151a4342413
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/stl-04.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/stl-05.ott b/test/user-template/user/template/en-US/wizard/report/stl-05.ott
new file mode 100644
index 000000000000..fa3951c72424
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/stl-05.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/stl-06.ott b/test/user-template/user/template/en-US/wizard/report/stl-06.ott
new file mode 100644
index 000000000000..f13bb8b203f5
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/stl-06.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/stl-07.ott b/test/user-template/user/template/en-US/wizard/report/stl-07.ott
new file mode 100644
index 000000000000..b5579e9280bf
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/stl-07.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/stl-08.ott b/test/user-template/user/template/en-US/wizard/report/stl-08.ott
new file mode 100644
index 000000000000..3b65b1246584
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/stl-08.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/stl-09.ott b/test/user-template/user/template/en-US/wizard/report/stl-09.ott
new file mode 100644
index 000000000000..3cf5939a7f91
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/stl-09.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/report/stl-default.ott b/test/user-template/user/template/en-US/wizard/report/stl-default.ott
new file mode 100644
index 000000000000..4494b33ca41d
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/report/stl-default.ott
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/black_white.ots b/test/user-template/user/template/en-US/wizard/styles/black_white.ots
new file mode 100644
index 000000000000..5ae085a11556
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/black_white.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/blackberry.ots b/test/user-template/user/template/en-US/wizard/styles/blackberry.ots
new file mode 100644
index 000000000000..05254b78b435
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/blackberry.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/default.ots b/test/user-template/user/template/en-US/wizard/styles/default.ots
new file mode 100644
index 000000000000..d24f0384d34a
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/default.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/diner.ots b/test/user-template/user/template/en-US/wizard/styles/diner.ots
new file mode 100644
index 000000000000..b90c7e75aa16
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/diner.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/fall.ots b/test/user-template/user/template/en-US/wizard/styles/fall.ots
new file mode 100644
index 000000000000..1dda63864a06
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/fall.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/glacier.ots b/test/user-template/user/template/en-US/wizard/styles/glacier.ots
new file mode 100644
index 000000000000..72956b3a3aeb
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/glacier.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/green_grapes.ots b/test/user-template/user/template/en-US/wizard/styles/green_grapes.ots
new file mode 100644
index 000000000000..c2eea8e66e07
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/green_grapes.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/jeans.ots b/test/user-template/user/template/en-US/wizard/styles/jeans.ots
new file mode 100644
index 000000000000..9d5acfcfabef
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/jeans.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/marine.ots b/test/user-template/user/template/en-US/wizard/styles/marine.ots
new file mode 100644
index 000000000000..9c45bf3f28dc
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/marine.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/millennium.ots b/test/user-template/user/template/en-US/wizard/styles/millennium.ots
new file mode 100644
index 000000000000..b9c3a0bb8b17
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/millennium.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/nature.ots b/test/user-template/user/template/en-US/wizard/styles/nature.ots
new file mode 100644
index 000000000000..8c5c55e82def
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/nature.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/neon.ots b/test/user-template/user/template/en-US/wizard/styles/neon.ots
new file mode 100644
index 000000000000..0d5fdd3e37d4
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/neon.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/night.ots b/test/user-template/user/template/en-US/wizard/styles/night.ots
new file mode 100644
index 000000000000..5d7edb4a8239
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/night.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/nostalgic.ots b/test/user-template/user/template/en-US/wizard/styles/nostalgic.ots
new file mode 100644
index 000000000000..3a174e653402
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/nostalgic.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/pastell.ots b/test/user-template/user/template/en-US/wizard/styles/pastell.ots
new file mode 100644
index 000000000000..d09946a7fb1a
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/pastell.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/pool.ots b/test/user-template/user/template/en-US/wizard/styles/pool.ots
new file mode 100644
index 000000000000..30340d2d68d7
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/pool.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/pumpkin.ots b/test/user-template/user/template/en-US/wizard/styles/pumpkin.ots
new file mode 100644
index 000000000000..59a62ffec377
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/pumpkin.ots
Binary files differ
diff --git a/test/user-template/user/template/en-US/wizard/styles/xos.ots b/test/user-template/user/template/en-US/wizard/styles/xos.ots
new file mode 100644
index 000000000000..abe6b7d9a47b
--- /dev/null
+++ b/test/user-template/user/template/en-US/wizard/styles/xos.ots
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/Import_1.bmp b/test/user-template/user/template/wizard/bitmap/Import_1.bmp
new file mode 100644
index 000000000000..98457094b3fd
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/Import_1.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/Import_3.bmp b/test/user-template/user/template/wizard/bitmap/Import_3.bmp
new file mode 100644
index 000000000000..37802a50d744
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/Import_3.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/Import_4.bmp b/test/user-template/user/template/wizard/bitmap/Import_4.bmp
new file mode 100644
index 000000000000..591c5ded5065
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/Import_4.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/MS-Import_2-1.bmp b/test/user-template/user/template/wizard/bitmap/MS-Import_2-1.bmp
new file mode 100644
index 000000000000..085feeca5ab8
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/MS-Import_2-1.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/MS-Import_2-2.bmp b/test/user-template/user/template/wizard/bitmap/MS-Import_2-2.bmp
new file mode 100644
index 000000000000..64fc93f1a579
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/MS-Import_2-2.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/MS-Import_2-3.bmp b/test/user-template/user/template/wizard/bitmap/MS-Import_2-3.bmp
new file mode 100644
index 000000000000..c8fc6becc718
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/MS-Import_2-3.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/XML-Import_2-1.bmp b/test/user-template/user/template/wizard/bitmap/XML-Import_2-1.bmp
new file mode 100644
index 000000000000..95f843d6891f
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/XML-Import_2-1.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/XML-Import_2-2.bmp b/test/user-template/user/template/wizard/bitmap/XML-Import_2-2.bmp
new file mode 100644
index 000000000000..0ba9ed8d61ac
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/XML-Import_2-2.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/XML-Import_2-3.bmp b/test/user-template/user/template/wizard/bitmap/XML-Import_2-3.bmp
new file mode 100644
index 000000000000..93aaf167e9e8
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/XML-Import_2-3.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/XML-Import_2-4.bmp b/test/user-template/user/template/wizard/bitmap/XML-Import_2-4.bmp
new file mode 100644
index 000000000000..7e18ccfe2531
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/XML-Import_2-4.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/brasil.gif b/test/user-template/user/template/wizard/bitmap/brasil.gif
new file mode 100644
index 000000000000..10de40697000
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/brasil.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/cancel_down.bmp b/test/user-template/user/template/wizard/bitmap/cancel_down.bmp
new file mode 100644
index 000000000000..6356e823a6e4
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/cancel_down.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/cancel_up.bmp b/test/user-template/user/template/wizard/bitmap/cancel_up.bmp
new file mode 100644
index 000000000000..ca3d08bd918b
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/cancel_up.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/china.gif b/test/user-template/user/template/wizard/bitmap/china.gif
new file mode 100644
index 000000000000..4d742ed0a7c7
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/china.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/denmark.gif b/test/user-template/user/template/wizard/bitmap/denmark.gif
new file mode 100644
index 000000000000..e0e336a22a6a
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/denmark.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/down.bmp b/test/user-template/user/template/wizard/bitmap/down.bmp
new file mode 100644
index 000000000000..281acfaec6fe
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/down.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/end.bmp b/test/user-template/user/template/wizard/bitmap/end.bmp
new file mode 100644
index 000000000000..876992aaf0da
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/end.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/euro_1.bmp b/test/user-template/user/template/wizard/bitmap/euro_1.bmp
new file mode 100644
index 000000000000..81869151541f
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/euro_1.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/euro_2.bmp b/test/user-template/user/template/wizard/bitmap/euro_2.bmp
new file mode 100644
index 000000000000..34031d9efdda
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/euro_2.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/euro_3.bmp b/test/user-template/user/template/wizard/bitmap/euro_3.bmp
new file mode 100644
index 000000000000..70f73b141d67
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/euro_3.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/finland.gif b/test/user-template/user/template/wizard/bitmap/finland.gif
new file mode 100644
index 000000000000..a0251e50d8c7
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/finland.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/france.gif b/test/user-template/user/template/wizard/bitmap/france.gif
new file mode 100644
index 000000000000..c528c67b11a7
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/france.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/ftpconnected.gif b/test/user-template/user/template/wizard/bitmap/ftpconnected.gif
new file mode 100644
index 000000000000..466e832b797b
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/ftpconnected.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/ftpconnecting.gif b/test/user-template/user/template/wizard/bitmap/ftpconnecting.gif
new file mode 100644
index 000000000000..62928ec586f2
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/ftpconnecting.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/ftperror.gif b/test/user-template/user/template/wizard/bitmap/ftperror.gif
new file mode 100644
index 000000000000..cfc879c67770
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/ftperror.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/ftpunknown.gif b/test/user-template/user/template/wizard/bitmap/ftpunknown.gif
new file mode 100644
index 000000000000..7c89e7b7fff5
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/ftpunknown.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/germany.wmf b/test/user-template/user/template/wizard/bitmap/germany.wmf
new file mode 100644
index 000000000000..7c53f046552e
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/germany.wmf
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/greece.gif b/test/user-template/user/template/wizard/bitmap/greece.gif
new file mode 100644
index 000000000000..9bb33c3bfe51
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/greece.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/italia.gif b/test/user-template/user/template/wizard/bitmap/italia.gif
new file mode 100644
index 000000000000..cf729b0b9779
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/italia.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/japan.gif b/test/user-template/user/template/wizard/bitmap/japan.gif
new file mode 100644
index 000000000000..0a7309738901
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/japan.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/maximize.bmp b/test/user-template/user/template/wizard/bitmap/maximize.bmp
new file mode 100644
index 000000000000..be5fcf772f81
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/maximize.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/minimize.bmp b/test/user-template/user/template/wizard/bitmap/minimize.bmp
new file mode 100644
index 000000000000..f892786a6811
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/minimize.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/netherlands.gif b/test/user-template/user/template/wizard/bitmap/netherlands.gif
new file mode 100644
index 000000000000..5eeb4ea0e6ca
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/netherlands.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/okay_down.bmp b/test/user-template/user/template/wizard/bitmap/okay_down.bmp
new file mode 100644
index 000000000000..bbff5f5f2c4c
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/okay_down.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/okay_up.bmp b/test/user-template/user/template/wizard/bitmap/okay_up.bmp
new file mode 100644
index 000000000000..76baac6aea92
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/okay_up.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/polska.gif b/test/user-template/user/template/wizard/bitmap/polska.gif
new file mode 100644
index 000000000000..bdbe64a1cd99
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/polska.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/portugal.gif b/test/user-template/user/template/wizard/bitmap/portugal.gif
new file mode 100644
index 000000000000..4951139dc90f
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/portugal.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/report.bmp b/test/user-template/user/template/wizard/bitmap/report.bmp
new file mode 100644
index 000000000000..488347335ae1
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/report.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/russia.gif b/test/user-template/user/template/wizard/bitmap/russia.gif
new file mode 100644
index 000000000000..53aac1cfd987
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/russia.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/spain.gif b/test/user-template/user/template/wizard/bitmap/spain.gif
new file mode 100644
index 000000000000..7fa821cf184c
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/spain.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/sweden.gif b/test/user-template/user/template/wizard/bitmap/sweden.gif
new file mode 100644
index 000000000000..540c2a11a8ed
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/sweden.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/taiwan.gif b/test/user-template/user/template/wizard/bitmap/taiwan.gif
new file mode 100644
index 000000000000..4258f5433f21
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/taiwan.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/turkey.gif b/test/user-template/user/template/wizard/bitmap/turkey.gif
new file mode 100644
index 000000000000..f001a0b5e9ee
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/turkey.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/tutorial_background.gif b/test/user-template/user/template/wizard/bitmap/tutorial_background.gif
new file mode 100644
index 000000000000..333d653cbabf
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/tutorial_background.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/up.bmp b/test/user-template/user/template/wizard/bitmap/up.bmp
new file mode 100644
index 000000000000..1d4d132b6629
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/up.bmp
Binary files differ
diff --git a/test/user-template/user/template/wizard/bitmap/usa.gif b/test/user-template/user/template/wizard/bitmap/usa.gif
new file mode 100644
index 000000000000..e15122b88ad0
--- /dev/null
+++ b/test/user-template/user/template/wizard/bitmap/usa.gif
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/bg/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/bg/bus-elegant_l.ott
new file mode 100644
index 000000000000..af0a7c5a9f69
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/bg/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/bg/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/bg/bus-modern_l.ott
new file mode 100644
index 000000000000..e2a32dd83c9b
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/bg/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/bg/bus-office_l.ott b/test/user-template/user/template/wizard/letter/bg/bus-office_l.ott
new file mode 100644
index 000000000000..6db1287b0fb5
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/bg/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/bg/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/bg/off-elegant_l.ott
new file mode 100644
index 000000000000..9aef08d9a4cf
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/bg/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/bg/off-modern_l.ott b/test/user-template/user/template/wizard/letter/bg/off-modern_l.ott
new file mode 100644
index 000000000000..cc20ef7420ae
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/bg/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/bg/off-office_l.ott b/test/user-template/user/template/wizard/letter/bg/off-office_l.ott
new file mode 100644
index 000000000000..215924fde439
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/bg/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/bg/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/bg/pri-bottle_l.ott
new file mode 100644
index 000000000000..459f02e3de54
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/bg/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/bg/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/bg/pri-mail_l.ott
new file mode 100644
index 000000000000..4c5347631957
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/bg/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/bg/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/bg/pri-marine_l.ott
new file mode 100644
index 000000000000..6cd053db1e19
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/bg/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/bg/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/bg/pri-redline_l.ott
new file mode 100644
index 000000000000..7ded82bfaa79
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/bg/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/cs/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/cs/bus-elegant_l.ott
new file mode 100644
index 000000000000..2180334627d2
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/cs/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/cs/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/cs/bus-modern_l.ott
new file mode 100644
index 000000000000..304ecbb9dab0
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/cs/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/cs/bus-office_l.ott b/test/user-template/user/template/wizard/letter/cs/bus-office_l.ott
new file mode 100644
index 000000000000..75dbf4ba41a8
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/cs/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/cs/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/cs/off-elegant_l.ott
new file mode 100644
index 000000000000..5f982e65ad00
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/cs/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/cs/off-modern_l.ott b/test/user-template/user/template/wizard/letter/cs/off-modern_l.ott
new file mode 100644
index 000000000000..d9202d2df130
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/cs/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/cs/off-office_l.ott b/test/user-template/user/template/wizard/letter/cs/off-office_l.ott
new file mode 100644
index 000000000000..48f38beba6b2
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/cs/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/cs/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/cs/pri-bottle_l.ott
new file mode 100644
index 000000000000..545c55380c29
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/cs/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/cs/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/cs/pri-mail_l.ott
new file mode 100644
index 000000000000..eb35625c261d
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/cs/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/cs/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/cs/pri-marine_l.ott
new file mode 100644
index 000000000000..bb1cac93b28f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/cs/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/cs/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/cs/pri-redline_l.ott
new file mode 100644
index 000000000000..33a6fca8ba94
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/cs/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/da/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/da/bus-elegant_l.ott
new file mode 100644
index 000000000000..39af501e458a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/da/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/da/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/da/bus-modern_l.ott
new file mode 100644
index 000000000000..d7c5e5a90ff5
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/da/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/da/bus-office_l.ott b/test/user-template/user/template/wizard/letter/da/bus-office_l.ott
new file mode 100644
index 000000000000..f07f949c1a7d
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/da/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/da/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/da/off-elegant_l.ott
new file mode 100644
index 000000000000..e9780d3274e3
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/da/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/da/off-modern_l.ott b/test/user-template/user/template/wizard/letter/da/off-modern_l.ott
new file mode 100644
index 000000000000..81466a291c63
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/da/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/da/off-office_l.ott b/test/user-template/user/template/wizard/letter/da/off-office_l.ott
new file mode 100644
index 000000000000..513794c777ea
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/da/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/da/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/da/pri-bottle_l.ott
new file mode 100644
index 000000000000..20982ffe2acc
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/da/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/da/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/da/pri-mail_l.ott
new file mode 100644
index 000000000000..e8af3babfa2b
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/da/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/da/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/da/pri-marine_l.ott
new file mode 100644
index 000000000000..23c7dee5a864
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/da/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/da/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/da/pri-redline_l.ott
new file mode 100644
index 000000000000..4e3b151c8f5c
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/da/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/de/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/de/bus-elegant_l.ott
new file mode 100644
index 000000000000..2cddf12cd5c9
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/de/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/de/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/de/bus-modern_l.ott
new file mode 100644
index 000000000000..2db75e7e685f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/de/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/de/bus-office_l.ott b/test/user-template/user/template/wizard/letter/de/bus-office_l.ott
new file mode 100644
index 000000000000..70a065021580
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/de/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/de/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/de/off-elegant_l.ott
new file mode 100644
index 000000000000..8422bba2c087
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/de/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/de/off-modern_l.ott b/test/user-template/user/template/wizard/letter/de/off-modern_l.ott
new file mode 100644
index 000000000000..07267903a810
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/de/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/de/off-office_l.ott b/test/user-template/user/template/wizard/letter/de/off-office_l.ott
new file mode 100644
index 000000000000..e36b0b643a20
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/de/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/de/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/de/pri-bottle_l.ott
new file mode 100644
index 000000000000..1c4c19026b4f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/de/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/de/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/de/pri-mail_l.ott
new file mode 100644
index 000000000000..00a0cdd18f36
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/de/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/de/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/de/pri-marine_l.ott
new file mode 100644
index 000000000000..634cc95a0287
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/de/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/de/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/de/pri-redline_l.ott
new file mode 100644
index 000000000000..a323e82a812f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/de/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-GB/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/en-GB/bus-elegant_l.ott
new file mode 100644
index 000000000000..cf1e470c3e26
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-GB/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-GB/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/en-GB/bus-modern_l.ott
new file mode 100644
index 000000000000..6ac0d93f5767
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-GB/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-GB/bus-office_l.ott b/test/user-template/user/template/wizard/letter/en-GB/bus-office_l.ott
new file mode 100644
index 000000000000..24440a829ab3
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-GB/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-GB/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/en-GB/off-elegant_l.ott
new file mode 100644
index 000000000000..a49de7517618
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-GB/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-GB/off-modern_l.ott b/test/user-template/user/template/wizard/letter/en-GB/off-modern_l.ott
new file mode 100644
index 000000000000..99f145b1d7e4
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-GB/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-GB/off-office_l.ott b/test/user-template/user/template/wizard/letter/en-GB/off-office_l.ott
new file mode 100644
index 000000000000..f738cde32024
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-GB/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-GB/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/en-GB/pri-bottle_l.ott
new file mode 100644
index 000000000000..70ced87f4f83
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-GB/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-GB/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/en-GB/pri-mail_l.ott
new file mode 100644
index 000000000000..c7a9bc8d1ca0
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-GB/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-GB/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/en-GB/pri-marine_l.ott
new file mode 100644
index 000000000000..c8d3029eaa48
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-GB/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-GB/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/en-GB/pri-redline_l.ott
new file mode 100644
index 000000000000..8d32f6ac6c06
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-GB/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-US/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/en-US/bus-elegant_l.ott
new file mode 100644
index 000000000000..e143e454784d
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-US/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-US/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/en-US/bus-modern_l.ott
new file mode 100644
index 000000000000..2a8c7380aa55
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-US/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-US/bus-office_l.ott b/test/user-template/user/template/wizard/letter/en-US/bus-office_l.ott
new file mode 100644
index 000000000000..ce1fa9fcdce0
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-US/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-US/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/en-US/off-elegant_l.ott
new file mode 100644
index 000000000000..dd1fc280a1a1
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-US/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-US/off-modern_l.ott b/test/user-template/user/template/wizard/letter/en-US/off-modern_l.ott
new file mode 100644
index 000000000000..534a6bb24366
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-US/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-US/off-office_l.ott b/test/user-template/user/template/wizard/letter/en-US/off-office_l.ott
new file mode 100644
index 000000000000..ac7e77269cea
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-US/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-US/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/en-US/pri-bottle_l.ott
new file mode 100644
index 000000000000..30c75222ebce
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-US/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-US/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/en-US/pri-mail_l.ott
new file mode 100644
index 000000000000..b2424202132c
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-US/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-US/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/en-US/pri-marine_l.ott
new file mode 100644
index 000000000000..617fa675c102
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-US/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/en-US/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/en-US/pri-redline_l.ott
new file mode 100644
index 000000000000..d2e974d5763a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/en-US/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/es/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/es/bus-elegant_l.ott
new file mode 100644
index 000000000000..0b65979f69d1
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/es/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/es/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/es/bus-modern_l.ott
new file mode 100644
index 000000000000..8a1345d08f88
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/es/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/es/bus-office_l.ott b/test/user-template/user/template/wizard/letter/es/bus-office_l.ott
new file mode 100644
index 000000000000..1fa4fc779613
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/es/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/es/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/es/off-elegant_l.ott
new file mode 100644
index 000000000000..fb1226425028
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/es/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/es/off-modern_l.ott b/test/user-template/user/template/wizard/letter/es/off-modern_l.ott
new file mode 100644
index 000000000000..d7392cc73d71
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/es/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/es/off-office_l.ott b/test/user-template/user/template/wizard/letter/es/off-office_l.ott
new file mode 100644
index 000000000000..90a9264dc229
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/es/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/es/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/es/pri-bottle_l.ott
new file mode 100644
index 000000000000..cedc680fe74a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/es/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/es/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/es/pri-mail_l.ott
new file mode 100644
index 000000000000..c57a9755f30c
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/es/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/es/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/es/pri-marine_l.ott
new file mode 100644
index 000000000000..a696cdc40b92
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/es/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/es/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/es/pri-redline_l.ott
new file mode 100644
index 000000000000..d32e75517750
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/es/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/eu/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/eu/bus-elegant_l.ott
new file mode 100644
index 000000000000..7ad1cfd49af0
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/eu/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/eu/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/eu/bus-modern_l.ott
new file mode 100644
index 000000000000..ab48867692d7
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/eu/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/eu/bus-office_l.ott b/test/user-template/user/template/wizard/letter/eu/bus-office_l.ott
new file mode 100644
index 000000000000..2fd7dfd70be9
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/eu/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/eu/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/eu/off-elegant_l.ott
new file mode 100644
index 000000000000..e06cb2dec011
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/eu/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/eu/off-modern_l.ott b/test/user-template/user/template/wizard/letter/eu/off-modern_l.ott
new file mode 100644
index 000000000000..40b4b95b864d
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/eu/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/eu/off-office_l.ott b/test/user-template/user/template/wizard/letter/eu/off-office_l.ott
new file mode 100644
index 000000000000..d8c4aad20b7e
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/eu/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/eu/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/eu/pri-bottle_l.ott
new file mode 100644
index 000000000000..1e72e6780cb6
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/eu/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/eu/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/eu/pri-mail_l.ott
new file mode 100644
index 000000000000..bf9601ac7f6f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/eu/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/eu/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/eu/pri-marine_l.ott
new file mode 100644
index 000000000000..29e3829ee70f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/eu/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/eu/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/eu/pri-redline_l.ott
new file mode 100644
index 000000000000..5fd019dc2039
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/eu/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/fr/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/fr/bus-elegant_l.ott
new file mode 100644
index 000000000000..406ccc7d4576
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/fr/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/fr/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/fr/bus-modern_l.ott
new file mode 100644
index 000000000000..a39141f0f709
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/fr/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/fr/bus-office_l.ott b/test/user-template/user/template/wizard/letter/fr/bus-office_l.ott
new file mode 100644
index 000000000000..7e17baad686d
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/fr/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/fr/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/fr/off-elegant_l.ott
new file mode 100644
index 000000000000..3f27b2039dc7
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/fr/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/fr/off-modern_l.ott b/test/user-template/user/template/wizard/letter/fr/off-modern_l.ott
new file mode 100644
index 000000000000..7d7934755b08
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/fr/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/fr/off-office_l.ott b/test/user-template/user/template/wizard/letter/fr/off-office_l.ott
new file mode 100644
index 000000000000..1d7aa837d6d8
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/fr/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/fr/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/fr/pri-bottle_l.ott
new file mode 100644
index 000000000000..663a62b9dfe7
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/fr/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/fr/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/fr/pri-mail_l.ott
new file mode 100644
index 000000000000..1eab17796823
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/fr/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/fr/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/fr/pri-marine_l.ott
new file mode 100644
index 000000000000..301221fc5765
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/fr/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/fr/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/fr/pri-redline_l.ott
new file mode 100644
index 000000000000..e50b65e5fae0
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/fr/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/hu/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/hu/bus-elegant_l.ott
new file mode 100644
index 000000000000..60c6d9bcf934
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/hu/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/hu/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/hu/bus-modern_l.ott
new file mode 100644
index 000000000000..2d065c0a45ab
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/hu/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/hu/bus-office_l.ott b/test/user-template/user/template/wizard/letter/hu/bus-office_l.ott
new file mode 100644
index 000000000000..e431a12725db
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/hu/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/hu/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/hu/off-elegant_l.ott
new file mode 100644
index 000000000000..9b2194ef5eba
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/hu/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/hu/off-modern_l.ott b/test/user-template/user/template/wizard/letter/hu/off-modern_l.ott
new file mode 100644
index 000000000000..900b98b2d2c3
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/hu/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/hu/off-office_l.ott b/test/user-template/user/template/wizard/letter/hu/off-office_l.ott
new file mode 100644
index 000000000000..76d3da99748a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/hu/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/hu/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/hu/pri-bottle_l.ott
new file mode 100644
index 000000000000..764eb29769cb
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/hu/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/hu/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/hu/pri-mail_l.ott
new file mode 100644
index 000000000000..3e6da23f88b9
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/hu/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/hu/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/hu/pri-marine_l.ott
new file mode 100644
index 000000000000..6ddbb2d78e32
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/hu/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/hu/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/hu/pri-redline_l.ott
new file mode 100644
index 000000000000..7874c875ae11
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/hu/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/it/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/it/bus-elegant_l.ott
new file mode 100644
index 000000000000..be494ae70156
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/it/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/it/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/it/bus-modern_l.ott
new file mode 100644
index 000000000000..a3b268b6f166
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/it/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/it/bus-office_l.ott b/test/user-template/user/template/wizard/letter/it/bus-office_l.ott
new file mode 100644
index 000000000000..dffa02f1a2e7
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/it/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/it/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/it/off-elegant_l.ott
new file mode 100644
index 000000000000..2e393f885842
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/it/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/it/off-modern_l.ott b/test/user-template/user/template/wizard/letter/it/off-modern_l.ott
new file mode 100644
index 000000000000..ffff91cbe6ba
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/it/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/it/off-office_l.ott b/test/user-template/user/template/wizard/letter/it/off-office_l.ott
new file mode 100644
index 000000000000..54d2f23c625f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/it/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/it/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/it/pri-bottle_l.ott
new file mode 100644
index 000000000000..109cab74d4c4
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/it/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/it/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/it/pri-mail_l.ott
new file mode 100644
index 000000000000..3cbbf7062128
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/it/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/it/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/it/pri-marine_l.ott
new file mode 100644
index 000000000000..c1c9ba992c94
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/it/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/it/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/it/pri-redline_l.ott
new file mode 100644
index 000000000000..f699cc6d0e88
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/it/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ja/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/ja/bus-elegant_l.ott
new file mode 100644
index 000000000000..378405a758bb
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ja/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ja/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/ja/bus-modern_l.ott
new file mode 100644
index 000000000000..e683b51dbbc4
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ja/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ja/bus-office_l.ott b/test/user-template/user/template/wizard/letter/ja/bus-office_l.ott
new file mode 100644
index 000000000000..0b4bcc667b1d
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ja/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ja/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/ja/off-elegant_l.ott
new file mode 100644
index 000000000000..7ea22d0a7455
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ja/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ja/off-modern_l.ott b/test/user-template/user/template/wizard/letter/ja/off-modern_l.ott
new file mode 100644
index 000000000000..6500e02d9c41
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ja/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ja/off-office_l.ott b/test/user-template/user/template/wizard/letter/ja/off-office_l.ott
new file mode 100644
index 000000000000..1df1bf38fb67
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ja/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ja/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/ja/pri-bottle_l.ott
new file mode 100644
index 000000000000..9f021f6060a7
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ja/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ja/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/ja/pri-mail_l.ott
new file mode 100644
index 000000000000..f7bbc21f0718
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ja/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ja/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/ja/pri-marine_l.ott
new file mode 100644
index 000000000000..aa632d7deaf0
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ja/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ja/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/ja/pri-redline_l.ott
new file mode 100644
index 000000000000..f05dfe1133ac
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ja/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/km/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/km/bus-elegant_l.ott
new file mode 100644
index 000000000000..a8366d719976
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/km/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/km/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/km/bus-modern_l.ott
new file mode 100644
index 000000000000..ede3dff55b49
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/km/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/km/bus-office_l.ott b/test/user-template/user/template/wizard/letter/km/bus-office_l.ott
new file mode 100644
index 000000000000..daa287cb0543
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/km/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/km/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/km/off-elegant_l.ott
new file mode 100644
index 000000000000..cb2656e216de
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/km/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/km/off-modern_l.ott b/test/user-template/user/template/wizard/letter/km/off-modern_l.ott
new file mode 100644
index 000000000000..090b49b20df9
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/km/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/km/off-office_l.ott b/test/user-template/user/template/wizard/letter/km/off-office_l.ott
new file mode 100644
index 000000000000..16f30b2aef1a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/km/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/km/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/km/pri-bottle_l.ott
new file mode 100644
index 000000000000..eea2f23a179b
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/km/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/km/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/km/pri-mail_l.ott
new file mode 100644
index 000000000000..bf46999868a3
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/km/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/km/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/km/pri-marine_l.ott
new file mode 100644
index 000000000000..9d12f58e2d64
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/km/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/km/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/km/pri-redline_l.ott
new file mode 100644
index 000000000000..0045838e5273
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/km/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ko/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/ko/bus-elegant_l.ott
new file mode 100644
index 000000000000..cf16001ef845
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ko/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ko/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/ko/bus-modern_l.ott
new file mode 100644
index 000000000000..3856268a5635
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ko/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ko/bus-office_l.ott b/test/user-template/user/template/wizard/letter/ko/bus-office_l.ott
new file mode 100644
index 000000000000..9cd27218e02b
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ko/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ko/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/ko/off-elegant_l.ott
new file mode 100644
index 000000000000..9e421be83119
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ko/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ko/off-modern_l.ott b/test/user-template/user/template/wizard/letter/ko/off-modern_l.ott
new file mode 100644
index 000000000000..097d722276cb
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ko/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ko/off-office_l.ott b/test/user-template/user/template/wizard/letter/ko/off-office_l.ott
new file mode 100644
index 000000000000..530ba59b43b7
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ko/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ko/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/ko/pri-bottle_l.ott
new file mode 100644
index 000000000000..481ce060a0f2
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ko/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ko/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/ko/pri-mail_l.ott
new file mode 100644
index 000000000000..24ac104adde7
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ko/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ko/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/ko/pri-marine_l.ott
new file mode 100644
index 000000000000..8b8e6975186a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ko/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ko/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/ko/pri-redline_l.ott
new file mode 100644
index 000000000000..abe6091fab29
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ko/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/nl/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/nl/bus-elegant_l.ott
new file mode 100644
index 000000000000..3e879f45523a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/nl/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/nl/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/nl/bus-modern_l.ott
new file mode 100644
index 000000000000..6f4a83cfb9ce
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/nl/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/nl/bus-office_l.ott b/test/user-template/user/template/wizard/letter/nl/bus-office_l.ott
new file mode 100644
index 000000000000..cefbe5783fdf
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/nl/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/nl/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/nl/off-elegant_l.ott
new file mode 100644
index 000000000000..2eef6a8ed65a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/nl/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/nl/off-modern_l.ott b/test/user-template/user/template/wizard/letter/nl/off-modern_l.ott
new file mode 100644
index 000000000000..0443407d1a6f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/nl/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/nl/off-office_l.ott b/test/user-template/user/template/wizard/letter/nl/off-office_l.ott
new file mode 100644
index 000000000000..a8d52e877185
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/nl/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/nl/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/nl/pri-bottle_l.ott
new file mode 100644
index 000000000000..9b900ed9ac0e
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/nl/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/nl/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/nl/pri-mail_l.ott
new file mode 100644
index 000000000000..3e72124301e2
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/nl/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/nl/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/nl/pri-marine_l.ott
new file mode 100644
index 000000000000..6b3683a8da5e
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/nl/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/nl/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/nl/pri-redline_l.ott
new file mode 100644
index 000000000000..0d022a0c95fd
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/nl/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pl/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/pl/bus-elegant_l.ott
new file mode 100644
index 000000000000..d788de434c94
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pl/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pl/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/pl/bus-modern_l.ott
new file mode 100644
index 000000000000..bfe5508b80c7
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pl/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pl/bus-office_l.ott b/test/user-template/user/template/wizard/letter/pl/bus-office_l.ott
new file mode 100644
index 000000000000..562f6a7e753d
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pl/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pl/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/pl/off-elegant_l.ott
new file mode 100644
index 000000000000..0eab5b0e816d
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pl/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pl/off-modern_l.ott b/test/user-template/user/template/wizard/letter/pl/off-modern_l.ott
new file mode 100644
index 000000000000..6c739f9ff6d0
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pl/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pl/off-office_l.ott b/test/user-template/user/template/wizard/letter/pl/off-office_l.ott
new file mode 100644
index 000000000000..ca8fd3cbc907
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pl/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pl/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/pl/pri-bottle_l.ott
new file mode 100644
index 000000000000..ed5e7848f3ba
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pl/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pl/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/pl/pri-mail_l.ott
new file mode 100644
index 000000000000..c6241cdad840
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pl/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pl/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/pl/pri-marine_l.ott
new file mode 100644
index 000000000000..9f10579485bd
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pl/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pl/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/pl/pri-redline_l.ott
new file mode 100644
index 000000000000..eda2ea5d13ee
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pl/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt-BR/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/pt-BR/bus-elegant_l.ott
new file mode 100644
index 000000000000..903d673fd0ab
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt-BR/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt-BR/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/pt-BR/bus-modern_l.ott
new file mode 100644
index 000000000000..9cc299156c1b
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt-BR/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt-BR/bus-office_l.ott b/test/user-template/user/template/wizard/letter/pt-BR/bus-office_l.ott
new file mode 100644
index 000000000000..3408c4979363
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt-BR/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt-BR/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/pt-BR/off-elegant_l.ott
new file mode 100644
index 000000000000..388d22712195
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt-BR/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt-BR/off-modern_l.ott b/test/user-template/user/template/wizard/letter/pt-BR/off-modern_l.ott
new file mode 100644
index 000000000000..7cdaed9cf2f2
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt-BR/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt-BR/off-office_l.ott b/test/user-template/user/template/wizard/letter/pt-BR/off-office_l.ott
new file mode 100644
index 000000000000..65de00c1010e
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt-BR/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt-BR/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/pt-BR/pri-bottle_l.ott
new file mode 100644
index 000000000000..f93a4ca9fcfa
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt-BR/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt-BR/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/pt-BR/pri-mail_l.ott
new file mode 100644
index 000000000000..99dd88ae48b1
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt-BR/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt-BR/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/pt-BR/pri-marine_l.ott
new file mode 100644
index 000000000000..a70573e0b6ec
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt-BR/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt-BR/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/pt-BR/pri-redline_l.ott
new file mode 100644
index 000000000000..31c35bcde314
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt-BR/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/pt/bus-elegant_l.ott
new file mode 100644
index 000000000000..bf2029a9d9f4
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/pt/bus-modern_l.ott
new file mode 100644
index 000000000000..6fe2d8a81809
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt/bus-office_l.ott b/test/user-template/user/template/wizard/letter/pt/bus-office_l.ott
new file mode 100644
index 000000000000..78dd3e1b20b3
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/pt/off-elegant_l.ott
new file mode 100644
index 000000000000..dc2c0933a641
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt/off-modern_l.ott b/test/user-template/user/template/wizard/letter/pt/off-modern_l.ott
new file mode 100644
index 000000000000..02cc747c62dd
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt/off-office_l.ott b/test/user-template/user/template/wizard/letter/pt/off-office_l.ott
new file mode 100644
index 000000000000..9d16a0b45d27
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/pt/pri-bottle_l.ott
new file mode 100644
index 000000000000..9b13b34f6f18
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/pt/pri-mail_l.ott
new file mode 100644
index 000000000000..c330867d5fba
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/pt/pri-marine_l.ott
new file mode 100644
index 000000000000..dd2e09006058
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/pt/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/pt/pri-redline_l.ott
new file mode 100644
index 000000000000..d4e455eaec48
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/pt/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ru/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/ru/bus-elegant_l.ott
new file mode 100644
index 000000000000..16a927f65fb2
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ru/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ru/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/ru/bus-modern_l.ott
new file mode 100644
index 000000000000..f4c9c896deba
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ru/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ru/bus-office_l.ott b/test/user-template/user/template/wizard/letter/ru/bus-office_l.ott
new file mode 100644
index 000000000000..56db089977f6
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ru/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ru/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/ru/off-elegant_l.ott
new file mode 100644
index 000000000000..0fb64ba19a32
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ru/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ru/off-modern_l.ott b/test/user-template/user/template/wizard/letter/ru/off-modern_l.ott
new file mode 100644
index 000000000000..8f15eec57e00
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ru/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ru/off-office_l.ott b/test/user-template/user/template/wizard/letter/ru/off-office_l.ott
new file mode 100644
index 000000000000..6aa6ae276a88
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ru/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ru/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/ru/pri-bottle_l.ott
new file mode 100644
index 000000000000..b4072eb232e6
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ru/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ru/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/ru/pri-mail_l.ott
new file mode 100644
index 000000000000..869e52f93c9c
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ru/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ru/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/ru/pri-marine_l.ott
new file mode 100644
index 000000000000..b5680681b052
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ru/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/ru/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/ru/pri-redline_l.ott
new file mode 100644
index 000000000000..a7edc30d25ac
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/ru/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sk/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/sk/bus-elegant_l.ott
new file mode 100644
index 000000000000..a0b84a843649
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sk/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sk/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/sk/bus-modern_l.ott
new file mode 100644
index 000000000000..03211c41224b
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sk/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sk/bus-office_l.ott b/test/user-template/user/template/wizard/letter/sk/bus-office_l.ott
new file mode 100644
index 000000000000..eda660f7186b
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sk/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sk/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/sk/off-elegant_l.ott
new file mode 100644
index 000000000000..fed64c1700f6
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sk/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sk/off-modern_l.ott b/test/user-template/user/template/wizard/letter/sk/off-modern_l.ott
new file mode 100644
index 000000000000..3c142fb49085
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sk/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sk/off-office_l.ott b/test/user-template/user/template/wizard/letter/sk/off-office_l.ott
new file mode 100644
index 000000000000..700a2c113e9f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sk/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sk/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/sk/pri-bottle_l.ott
new file mode 100644
index 000000000000..8e596ccd4088
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sk/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sk/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/sk/pri-mail_l.ott
new file mode 100644
index 000000000000..35bea6850485
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sk/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sk/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/sk/pri-marine_l.ott
new file mode 100644
index 000000000000..29c2ba1c88cd
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sk/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sk/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/sk/pri-redline_l.ott
new file mode 100644
index 000000000000..a1c433e33a15
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sk/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sl/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/sl/bus-elegant_l.ott
new file mode 100644
index 000000000000..86e3d6b7b131
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sl/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sl/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/sl/bus-modern_l.ott
new file mode 100644
index 000000000000..30c5f3dcba42
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sl/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sl/bus-office_l.ott b/test/user-template/user/template/wizard/letter/sl/bus-office_l.ott
new file mode 100644
index 000000000000..f65d350046ad
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sl/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sl/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/sl/off-elegant_l.ott
new file mode 100644
index 000000000000..a62ae32d7a63
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sl/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sl/off-modern_l.ott b/test/user-template/user/template/wizard/letter/sl/off-modern_l.ott
new file mode 100644
index 000000000000..ef3fcdebd7de
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sl/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sl/off-office_l.ott b/test/user-template/user/template/wizard/letter/sl/off-office_l.ott
new file mode 100644
index 000000000000..c4901826ec58
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sl/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sl/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/sl/pri-bottle_l.ott
new file mode 100644
index 000000000000..6d28e98576a4
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sl/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sl/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/sl/pri-mail_l.ott
new file mode 100644
index 000000000000..bd06f2742a04
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sl/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sl/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/sl/pri-marine_l.ott
new file mode 100644
index 000000000000..8e6e489c923a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sl/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sl/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/sl/pri-redline_l.ott
new file mode 100644
index 000000000000..c174608e1cc3
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sl/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sv/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/sv/bus-elegant_l.ott
new file mode 100644
index 000000000000..b7c47952c85f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sv/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sv/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/sv/bus-modern_l.ott
new file mode 100644
index 000000000000..6cddd664fa52
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sv/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sv/bus-office_l.ott b/test/user-template/user/template/wizard/letter/sv/bus-office_l.ott
new file mode 100644
index 000000000000..74f1d2e6c0ea
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sv/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sv/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/sv/off-elegant_l.ott
new file mode 100644
index 000000000000..c7635f260eab
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sv/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sv/off-modern_l.ott b/test/user-template/user/template/wizard/letter/sv/off-modern_l.ott
new file mode 100644
index 000000000000..baa4122cad5f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sv/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sv/off-office_l.ott b/test/user-template/user/template/wizard/letter/sv/off-office_l.ott
new file mode 100644
index 000000000000..cb085b3af7e0
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sv/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sv/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/sv/pri-bottle_l.ott
new file mode 100644
index 000000000000..4925e9f5e051
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sv/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sv/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/sv/pri-mail_l.ott
new file mode 100644
index 000000000000..46d0df7b9b8f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sv/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sv/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/sv/pri-marine_l.ott
new file mode 100644
index 000000000000..937c767c601f
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sv/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/sv/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/sv/pri-redline_l.ott
new file mode 100644
index 000000000000..7f969fda70bd
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/sv/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/tr/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/tr/bus-elegant_l.ott
new file mode 100644
index 000000000000..20ac00c53830
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/tr/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/tr/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/tr/bus-modern_l.ott
new file mode 100644
index 000000000000..315639b257dd
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/tr/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/tr/bus-office_l.ott b/test/user-template/user/template/wizard/letter/tr/bus-office_l.ott
new file mode 100644
index 000000000000..d9eb7e9da22c
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/tr/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/tr/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/tr/off-elegant_l.ott
new file mode 100644
index 000000000000..881810814e07
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/tr/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/tr/off-modern_l.ott b/test/user-template/user/template/wizard/letter/tr/off-modern_l.ott
new file mode 100644
index 000000000000..0c72b73c798e
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/tr/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/tr/off-office_l.ott b/test/user-template/user/template/wizard/letter/tr/off-office_l.ott
new file mode 100644
index 000000000000..5e2cbb32f196
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/tr/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/tr/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/tr/pri-bottle_l.ott
new file mode 100644
index 000000000000..ade6f6e00ef5
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/tr/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/tr/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/tr/pri-mail_l.ott
new file mode 100644
index 000000000000..f859216704b2
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/tr/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/tr/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/tr/pri-marine_l.ott
new file mode 100644
index 000000000000..845a4b569b51
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/tr/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/tr/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/tr/pri-redline_l.ott
new file mode 100644
index 000000000000..44f26b0d0fad
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/tr/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/vi/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/vi/bus-elegant_l.ott
new file mode 100644
index 000000000000..9cb4962b4e0b
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/vi/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/vi/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/vi/bus-modern_l.ott
new file mode 100644
index 000000000000..739f6126fbee
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/vi/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/vi/bus-office_l.ott b/test/user-template/user/template/wizard/letter/vi/bus-office_l.ott
new file mode 100644
index 000000000000..e93a1e6447c1
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/vi/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/vi/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/vi/off-elegant_l.ott
new file mode 100644
index 000000000000..eed0b0d663ee
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/vi/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/vi/off-modern_l.ott b/test/user-template/user/template/wizard/letter/vi/off-modern_l.ott
new file mode 100644
index 000000000000..246783cb6a22
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/vi/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/vi/off-office_l.ott b/test/user-template/user/template/wizard/letter/vi/off-office_l.ott
new file mode 100644
index 000000000000..32f6e340abf0
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/vi/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/vi/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/vi/pri-bottle_l.ott
new file mode 100644
index 000000000000..c199d312fa8e
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/vi/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/vi/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/vi/pri-mail_l.ott
new file mode 100644
index 000000000000..bca714560a2a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/vi/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/vi/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/vi/pri-marine_l.ott
new file mode 100644
index 000000000000..51c58a426352
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/vi/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/vi/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/vi/pri-redline_l.ott
new file mode 100644
index 000000000000..1307f1b71c01
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/vi/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-CN/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/zh-CN/bus-elegant_l.ott
new file mode 100644
index 000000000000..8696c850b3d6
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-CN/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-CN/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/zh-CN/bus-modern_l.ott
new file mode 100644
index 000000000000..6476cf84ef97
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-CN/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-CN/bus-office_l.ott b/test/user-template/user/template/wizard/letter/zh-CN/bus-office_l.ott
new file mode 100644
index 000000000000..b9b22cf91646
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-CN/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-CN/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/zh-CN/off-elegant_l.ott
new file mode 100644
index 000000000000..ed2e1fa11da5
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-CN/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-CN/off-modern_l.ott b/test/user-template/user/template/wizard/letter/zh-CN/off-modern_l.ott
new file mode 100644
index 000000000000..505c8ffeff17
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-CN/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-CN/off-office_l.ott b/test/user-template/user/template/wizard/letter/zh-CN/off-office_l.ott
new file mode 100644
index 000000000000..16c8afd15719
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-CN/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-CN/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/zh-CN/pri-bottle_l.ott
new file mode 100644
index 000000000000..ea24c3bc2142
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-CN/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-CN/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/zh-CN/pri-mail_l.ott
new file mode 100644
index 000000000000..3cc4158747bc
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-CN/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-CN/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/zh-CN/pri-marine_l.ott
new file mode 100644
index 000000000000..ee8d040095b0
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-CN/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-CN/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/zh-CN/pri-redline_l.ott
new file mode 100644
index 000000000000..f0e8377471bd
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-CN/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-TW/bus-elegant_l.ott b/test/user-template/user/template/wizard/letter/zh-TW/bus-elegant_l.ott
new file mode 100644
index 000000000000..19c25abcf841
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-TW/bus-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-TW/bus-modern_l.ott b/test/user-template/user/template/wizard/letter/zh-TW/bus-modern_l.ott
new file mode 100644
index 000000000000..98f951bd0134
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-TW/bus-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-TW/bus-office_l.ott b/test/user-template/user/template/wizard/letter/zh-TW/bus-office_l.ott
new file mode 100644
index 000000000000..2f689dd96714
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-TW/bus-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-TW/off-elegant_l.ott b/test/user-template/user/template/wizard/letter/zh-TW/off-elegant_l.ott
new file mode 100644
index 000000000000..f78a24bf0c5d
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-TW/off-elegant_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-TW/off-modern_l.ott b/test/user-template/user/template/wizard/letter/zh-TW/off-modern_l.ott
new file mode 100644
index 000000000000..fead04ffb8df
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-TW/off-modern_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-TW/off-office_l.ott b/test/user-template/user/template/wizard/letter/zh-TW/off-office_l.ott
new file mode 100644
index 000000000000..dfbee4404e5a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-TW/off-office_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-TW/pri-bottle_l.ott b/test/user-template/user/template/wizard/letter/zh-TW/pri-bottle_l.ott
new file mode 100644
index 000000000000..ea9b14c3b8a5
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-TW/pri-bottle_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-TW/pri-mail_l.ott b/test/user-template/user/template/wizard/letter/zh-TW/pri-mail_l.ott
new file mode 100644
index 000000000000..bfd274b7571a
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-TW/pri-mail_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-TW/pri-marine_l.ott b/test/user-template/user/template/wizard/letter/zh-TW/pri-marine_l.ott
new file mode 100644
index 000000000000..c68e900734bd
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-TW/pri-marine_l.ott
Binary files differ
diff --git a/test/user-template/user/template/wizard/letter/zh-TW/pri-redline_l.ott b/test/user-template/user/template/wizard/letter/zh-TW/pri-redline_l.ott
new file mode 100644
index 000000000000..2c53dcd06161
--- /dev/null
+++ b/test/user-template/user/template/wizard/letter/zh-TW/pri-redline_l.ott
Binary files differ
diff --git a/test/user-template/user/wordbook/en-GB.dic b/test/user-template/user/wordbook/en-GB.dic
new file mode 100644
index 000000000000..6f5945371014
--- /dev/null
+++ b/test/user-template/user/wordbook/en-GB.dic
@@ -0,0 +1,46 @@
+OOoUserDict1
+lang: en-GB
+type: positive
+---
+Applet
+Applets
+AutoAbstract
+AutoComplete
+AutoFill
+AutoMail
+AutoPilots
+AutoSpell
+AutoUpdate
+Bitmap
+Clientsided
+ClipArt
+ClipArts
+Combobox
+Euro
+FontManager
+Fontwork
+Frameset
+Framesets
+GIFs
+HelpAgent
+HighEnd
+Homepage
+Http
+Hyperlink
+Hyperlinks
+ImageMaps
+Imagemap
+Intranet
+PlugIns
+Plugin
+PreFinal
+Serversided
+ServicePack
+TabPage
+deinstall
+deinstalled
+deinstalling
+deinstalls
+userspace
+endian
+endianness
diff --git a/test/user-template/user/wordbook/en-US.dic b/test/user-template/user/wordbook/en-US.dic
new file mode 100644
index 000000000000..4aa77f9c9665
--- /dev/null
+++ b/test/user-template/user/wordbook/en-US.dic
@@ -0,0 +1,46 @@
+OOoUserDict1
+lang: en-US
+type: positive
+---
+Applet
+Applets
+AutoAbstract
+AutoComplete
+AutoFill
+AutoMail
+AutoPilots
+AutoSpell
+AutoUpdate
+Bitmap
+Clientsided
+ClipArt
+ClipArts
+Combobox
+Euro
+FontManager
+Fontwork
+Frameset
+Framesets
+GIFs
+HelpAgent
+HighEnd
+Homepage
+Http
+Hyperlink
+Hyperlinks
+ImageMaps
+Imagemap
+Intranet
+PlugIns
+Plugin
+PreFinal
+Serversided
+ServicePack
+TabPage
+deinstall
+deinstalled
+deinstalling
+deinstalls
+userspace
+endian
+endianness
diff --git a/test/user-template/user/wordbook/sl.dic b/test/user-template/user/wordbook/sl.dic
new file mode 100644
index 000000000000..4c2100a99a2f
--- /dev/null
+++ b/test/user-template/user/wordbook/sl.dic
@@ -0,0 +1,24 @@
+OOoUserDict1
+lang: sl
+type: positive
+---
+avtopiloti
+hiperpovezav
+hiperpovezava
+hiperpovezavam
+hiperpovezavama
+hiperpovezavami
+hiperpovezave
+hiperpovezavi
+hiperpovezavo
+intranet
+samooblikovanj
+samooblikovanja
+samooblikovanje
+samooblikovanju
+samopopravka
+samopopravki
+samopopravkom
+samopopravkoma
+samopopravkov
+samopopravku
diff --git a/test/user-template/user/wordbook/technical.dic b/test/user-template/user/wordbook/technical.dic
new file mode 100644
index 000000000000..383c6689c390
--- /dev/null
+++ b/test/user-template/user/wordbook/technical.dic
@@ -0,0 +1,230 @@
+OOoUserDict1
+lang: <none>
+type: positive
+---
+Accenture
+Acer
+Acrobat
+Add-in
+Adobe
+Advanced
+AMD
+Android
+AppArmor
+AppConnect=
+Apple
+AppWizard=
+AppXaminer=
+AppXNavigator=
+AppXRay=
+Argus=
+Asus
+AutoVue=
+Badger
+Base=
+Base24=
+Bing
+BorderManager
+Breezy
+CADView=
+Calc=
+Canon
+Canonical
+Capgemini
+Carefx
+Chrome
+Cisco=
+Clickstream=
+Cognos=
+Connect2OracleSelf=
+ConsoleOne
+ConText=
+COREid=
+Corporation
+Dapper
+dBase
+Debian
+debootstrap
+Dell
+Devices
+DocLink
+Docuflex=
+Documaker=
+Document
+dpkg
+Drake
+Draw=
+Edgy
+eDirectory
+Edubuntu
+Eft
+eGuide
+Electronics
+Etch
+Ethernet
+Evolution
+Exadata=
+Facebook
+Fawn
+Feisty
+Firebird
+Firefox
+FLAC
+Flash
+Foundation
+Foxconn
+FreeBSD
+Fujitsu
+gcc
+gcj
+Gibbon
+GIF
+gij
+GNOME
+GNU
+Google
+GPS
+GroupWise
+Gutsy
+Hardy
+Hedgehog
+Heron
+Hewlett-Packard
+Hi-Fi
+Hitachi
+Hoary
+HP
+HTML
+Ibex
+IBM
+iChain
+Identi.ca
+iFolder
+iManager
+Impress=
+Intel
+Intrepid
+iPrint
+Jackalope
+Jaunty
+JavaScript
+JPEG
+Karmic
+KDE
+Kerberos
+Koala
+Kubuntu
+Launchpad
+LDAP
+Lenny
+Lenovo
+LibreOffice=
+Linux
+Lucid
+Lynx
+Malone
+ManageWise
+MasterCard
+Math=
+Maverick
+Meerkat
+Micro
+Microsoft=
+MicroStrategy=
+Mono
+Motorola
+Mozilla
+MySQL
+NCSA
+NEC
+NetBSD
+NetIdentity
+NetMail
+NetStorage
+NetWare
+NNTP
+Nokia
+Novell
+NRadius
+ODBC
+Ogg
+OnDemand
+OpenBSD
+OpenDocument=
+OpenOffice.org=
+openSUSE
+OpenText=
+OpenWorld=
+OpenZorg=
+Opera
+Optronics
+Oracle=
+Panasonic
+PayPal
+PeopleSoft=
+Plug-in
+PNG
+PolyServe
+POP3
+PostgreSQL
+PPPoE
+Quanta
+Rosetta
+RosettaNet=
+rpm
+Samba
+Samsung
+SAP
+Sarge
+Satmetrix=
+SecretStore
+SecureLogin
+Sharp
+Shockwave
+Sid
+Skype
+SLED
+SLES
+SMTP
+Sony
+Soyuz
+Spamassassin
+SPI
+Squeeze
+StarOffice
+StorageTek=
+Sun=
+SunHSI=
+SunSAI=
+SUSE
+TeliaSonera
+The
+Thunderbird
+Toshiba
+TrueType
+Twitter
+Ubuntu
+uname
+URL
+Visa
+VoIP=
+Vorbis
+VRML
+Warthog
+Warty
+Wheezy
+Wi-Fi
+WiMAX
+Windows
+Woody
+WorkPlace
+Writer=
+WYSIWYG
+Xen
+Ximian
+Xtensible
+XTier
+Xubuntu
+Yahoo
+YouTube
+ZENworks
diff --git a/test/user-template/user/xslt/common/math.xsl b/test/user-template/user/xslt/common/math.xsl
new file mode 100644
index 000000000000..2b6ce0c89ccf
--- /dev/null
+++ b/test/user-template/user/xslt/common/math.xsl
@@ -0,0 +1,589 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+ -->
+<!--
+ xslt math lib by Wind Li
+Public Functions
+ sin(x,rounding-factor=100)
+ cos(x,rounding-factor=100)
+ tan(x,rounding-factor=100)
+ ctan(x,rounding-factor=100)
+ atan2(x, y ,rounding-factor=100)
+ atan(x,rounding-factor=100)
+ acos(x,rounding-factor=100)
+ asin(x,rounding-factor=100)
+ abs(x)
+ max(x1,x2)
+ min(x1,x2)
+ power(x,power(interger only), rounding-factor=100)
+ sqrt(x, rounding-factor=100)
+ convert2radian(x,rounding-factor=100)
+ convert2degree(x,rounding-factor=100)
+ convert2fd(x,rounding-factor=100)
+ -->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:text="http://openoffice.org/2000/text" xmlns:style="http://openoffice.org/2000/style" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:office="http://openoffice.org/2000/office" exclude-result-prefixes="draw svg style office fo text">
+ <xsl:variable name="pi" select="3.1416"/>
+ <xsl:template name="math-test">
+ sin(34.8)
+ <xsl:call-template name="sin">
+ <xsl:with-param name="x" select="34.8"/>
+ <xsl:with-param name="rounding-factor" select="100000"/>
+ </xsl:call-template>
+ cos(34.8)
+ <xsl:call-template name="cos">
+ <xsl:with-param name="x" select="34.8"/>
+ <xsl:with-param name="rounding-factor" select="100000"/>
+ </xsl:call-template>
+ atan(2.74)
+ <xsl:call-template name="atan">
+ <xsl:with-param name="x" select="2.74"/>
+ <xsl:with-param name="rounding-factor" select="100000"/>
+ </xsl:call-template>
+ acos(0.5)
+ <xsl:call-template name="acos">
+ <xsl:with-param name="x" select="0.5"/>
+ <xsl:with-param name="rounding-factor" select="100000"/>
+ </xsl:call-template>
+ asin(0.5)
+ <xsl:call-template name="asin">
+ <xsl:with-param name="x" select="0.5"/>
+ <xsl:with-param name="rounding-factor" select="100000"/>
+ </xsl:call-template>
+ sqrt(1328.3414)
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select="1328.3414"/>
+ <xsl:with-param name="rounding-factor" select="100000"/>
+ </xsl:call-template>
+ </xsl:template>
+ <!-- public functions start -->
+ <xsl:template name="sin">
+ <xsl:param name="x" select="0"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:variable name="angle" select="$x * 180 div $pi "/>
+ <xsl:variable name="mod-angle" select="$angle mod 360"/>
+ <xsl:variable name="sinx">
+ <xsl:call-template name="sin-private">
+ <xsl:with-param name="x" select=" ( $angle mod 360 ) * $pi div 180 "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select=" round ( number($sinx) * $rounding-factor ) div $rounding-factor"/>
+ </xsl:template>
+ <xsl:template name="cos">
+ <xsl:param name="x" select="0"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:variable name="angle" select="$x * 180 div $pi "/>
+ <xsl:variable name="mod-angle" select="$angle mod 360"/>
+ <xsl:variable name="cosx">
+ <xsl:call-template name="cos-private">
+ <xsl:with-param name="x" select=" ( $angle mod 360 ) * $pi div 180 "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select=" round ( number($cosx) * $rounding-factor ) div $rounding-factor"/>
+ </xsl:template>
+ <xsl:template name="tan">
+ <xsl:param name="x" select="0"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:variable name="sinx">
+ <xsl:call-template name="sin">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="rounding-factor" select="$rounding-factor * 10"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="cosx">
+ <xsl:call-template name="cos">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="rounding-factor" select="$rounding-factor * 10"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test=" $cosx = 0 ">
+ <xsl:message>tan error : tan(<xsl:value-of select="$x"/>) is infinite!</xsl:message>
+ <xsl:value-of select="63535"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" round( $sinx div $cosx * $rounding-factor) div $rounding-factor"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="ctan">
+ <xsl:param name="x" select="0"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:variable name="sinx">
+ <xsl:call-template name="sin">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="rounding-factor" select="$rounding-factor * 10"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="cosx">
+ <xsl:call-template name="cos">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="rounding-factor" select="$rounding-factor * 10"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test=" $sinx = 0 ">
+ <xsl:message>tan error : tan(<xsl:value-of select="$x"/>) is infinite!</xsl:message>
+ <xsl:value-of select="63535"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" round( $cosx div $sinx * $rounding-factor) div $rounding-factor"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="atan">
+ <xsl:param name="x" select="0"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:choose>
+ <xsl:when test="$x = 0">
+ <xsl:value-of select="0"/>
+ </xsl:when>
+ <xsl:when test="$x &lt; 0">
+ <xsl:variable name="atan-x">
+ <xsl:call-template name="atan">
+ <xsl:with-param name="x" select=" -1 * $x"/>
+ <xsl:with-param name="rounding-factor" select="$rounding-factor"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="-1 * $atan-x"/>
+ </xsl:when>
+ <xsl:when test="$x &gt; 1">
+ <xsl:variable name="atan-div-x">
+ <xsl:call-template name="atan">
+ <xsl:with-param name="x" select="1 div $x "/>
+ <xsl:with-param name="rounding-factor" select="$rounding-factor"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select=" $pi div 2 - $atan-div-x"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="arctanx">
+ <xsl:call-template name="atan-private">
+ <xsl:with-param name="x" select=" $x "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select=" round ( number($arctanx) * $rounding-factor ) div $rounding-factor"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="atan2">
+ <xsl:param name="x"/>
+ <xsl:param name="y"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:choose>
+ <xsl:when test="$x = 0">
+ <xsl:value-of select=" $pi div 2"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="atan">
+ <xsl:with-param name="x" select="$y div $x"/>
+ <xsl:with-param name="rounding-factor" select="$rounding-factor"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="acos">
+ <xsl:param name="x"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:variable name="abs-x">
+ <xsl:call-template name="abs">
+ <xsl:with-param name="x" select="$x"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$abs-x &gt; 1">
+ <xsl:message>acos error : abs(<xsl:value-of select="$x"/>) greate then 1 !</xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="atan2">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="y">
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select="1 - $x * $x"/>
+ <xsl:with-param name="rounding-factor" select=" concat($rounding-factor,'0') "/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="asin">
+ <xsl:param name="x"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:variable name="abs-x">
+ <xsl:call-template name="abs">
+ <xsl:with-param name="x" select="$x"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$abs-x &gt; 1">
+ <xsl:message>asin error : abs(<xsl:value-of select="$x"/>) greate then 1 !</xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="atan2">
+ <xsl:with-param name="y" select="$x"/>
+ <xsl:with-param name="x">
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select="1 - $x * $x"/>
+ <xsl:with-param name="rounding-factor" select=" concat($rounding-factor,'0') "/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="abs">
+ <xsl:param name="x"/>
+ <xsl:choose>
+ <xsl:when test="$x &gt; 0">
+ <xsl:value-of select="$x"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$x * -1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="max">
+ <xsl:param name="x1"/>
+ <xsl:param name="x2"/>
+ <xsl:choose>
+ <xsl:when test="$x1 &gt; $x2">
+ <xsl:value-of select="$x1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$x2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="min">
+ <xsl:param name="x1"/>
+ <xsl:param name="x2"/>
+ <xsl:choose>
+ <xsl:when test="$x1 &lt; $x2">
+ <xsl:value-of select="$x1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$x2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="power">
+ <xsl:param name="x"/>
+ <xsl:param name="y" select="1"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <!-- z is a private param -->
+ <xsl:param name="z" select="1"/>
+ <xsl:choose>
+ <xsl:when test="$y &gt; 0">
+ <xsl:call-template name="power">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="y" select="$y - 1"/>
+ <xsl:with-param name="z" select="$z * $x"/>
+ <xsl:with-param name="rounding-factor" select="$rounding-factor"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" round( $z * $rounding-factor) div $rounding-factor"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="sqrt">
+ <xsl:param name="x"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:choose>
+ <xsl:when test="$x = 0">0</xsl:when>
+ <xsl:when test="$x &lt; 0">
+ <xsl:message>sqrt error : <xsl:value-of select="$x"/> less then 0!</xsl:message>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="sqrt-private">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="rounding-factor" select="$rounding-factor"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- public functions end -->
+ <!--
+Private functions:
+sin-private
+cos-private
+atan-private
+sqrt-private
+integer-sqrt
+Sqrt-GetOneDigit
+-->
+ <xsl:template name="sin-private">
+ <xsl:param name="x" select="0"/>
+ <xsl:param name="n" select="0"/>
+ <xsl:param name="nx" select="1"/>
+ <xsl:param name="sign" select="1"/>
+ <xsl:param name="max-n" select="20"/>
+ <xsl:param name="sinx" select="0"/>
+ <xsl:choose>
+ <xsl:when test="not ($max-n &gt; $n) or $nx = 0 ">
+ <xsl:value-of select="$sinx"/>
+ </xsl:when>
+ <xsl:when test="$n = 0">
+ <xsl:call-template name="sin-private">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="n" select="$n + 1"/>
+ <xsl:with-param name="sign" select="$sign * -1"/>
+ <xsl:with-param name="max-n" select="$max-n"/>
+ <xsl:with-param name="nx" select="$x "/>
+ <xsl:with-param name="sinx" select="$sinx + $x"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="new-nx" select="($nx * $x * $x) div ( 2 * $n ) div ( 2 * $n + 1) "/>
+ <xsl:call-template name="sin-private">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="n" select="$n + 1"/>
+ <xsl:with-param name="sign" select="$sign * -1"/>
+ <xsl:with-param name="max-n" select="$max-n"/>
+ <xsl:with-param name="nx" select=" $new-nx "/>
+ <xsl:with-param name="sinx" select="$sinx + $new-nx * $sign"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="cos-private">
+ <xsl:param name="x" select="0"/>
+ <xsl:param name="n" select="0"/>
+ <xsl:param name="nx" select="1"/>
+ <xsl:param name="sign" select="1"/>
+ <xsl:param name="max-n" select="20"/>
+ <xsl:param name="cosx" select="0"/>
+ <xsl:choose>
+ <xsl:when test="not ($max-n &gt; $n) or $nx = 0 ">
+ <xsl:value-of select="$cosx"/>
+ </xsl:when>
+ <xsl:when test="$n = 0">
+ <xsl:call-template name="cos-private">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="n" select="$n + 1"/>
+ <xsl:with-param name="sign" select="$sign * -1"/>
+ <xsl:with-param name="max-n" select="$max-n"/>
+ <xsl:with-param name="nx" select=" 1 "/>
+ <xsl:with-param name="cosx" select="1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="new-nx" select="($nx * $x * $x) div ( 2 * $n -1 ) div ( 2 * $n ) "/>
+ <xsl:call-template name="cos-private">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="n" select="$n + 1"/>
+ <xsl:with-param name="sign" select="$sign * -1"/>
+ <xsl:with-param name="max-n" select="$max-n"/>
+ <xsl:with-param name="nx" select=" $new-nx "/>
+ <xsl:with-param name="cosx" select="$cosx + $new-nx * $sign"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="atan-private">
+ <xsl:param name="x" select="0"/>
+ <xsl:param name="n" select="0"/>
+ <xsl:param name="nx" select="1"/>
+ <xsl:param name="sign" select="1"/>
+ <xsl:param name="max-n" select="40"/>
+ <xsl:param name="arctanx" select="0"/>
+ <xsl:choose>
+ <xsl:when test="not ($max-n &gt; $n) or $nx = 0 ">
+ <xsl:value-of select="$arctanx"/>
+ </xsl:when>
+ <xsl:when test="$n = 0">
+ <xsl:call-template name="atan-private">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="n" select="$n + 1"/>
+ <xsl:with-param name="sign" select="$sign * -1"/>
+ <xsl:with-param name="max-n" select="$max-n"/>
+ <xsl:with-param name="nx" select="$x "/>
+ <xsl:with-param name="arctanx" select="$arctanx + $x"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="new-nx" select=" $nx * $x * $x "/>
+ <xsl:call-template name="atan-private">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="n" select="$n + 1"/>
+ <xsl:with-param name="sign" select="$sign * -1"/>
+ <xsl:with-param name="max-n" select="$max-n"/>
+ <xsl:with-param name="nx" select=" $new-nx "/>
+ <xsl:with-param name="arctanx" select="$arctanx + $new-nx div (2 * $n +1) * $sign"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="sqrt-private">
+ <xsl:param name="x"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:variable name="shift" select="string-length( $rounding-factor)"/>
+ <xsl:variable name="power">
+ <xsl:call-template name="power">
+ <xsl:with-param name="x" select="100"/>
+ <xsl:with-param name="y" select="$shift"/>
+ <xsl:with-param name="rounding-factor" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="integer-x" select=" round( $power * $x )"/>
+ <xsl:variable name="integer-quotient">
+ <xsl:call-template name="integer-sqrt">
+ <xsl:with-param name="x" select="$integer-x"/>
+ <xsl:with-param name="length" select=" string-length( $integer-x ) "/>
+ <xsl:with-param name="curr-pos" select=" 2 - (round (string-length( $integer-x ) div 2 ) * 2 - string-length( $integer-x ) ) "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="power-10">
+ <xsl:call-template name="power">
+ <xsl:with-param name="x" select="10"/>
+ <xsl:with-param name="y" select="$shift - 1"/>
+ <xsl:with-param name="rounding-factor" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select=" round( $integer-quotient div 10) div $power-10 "/>
+ </xsl:template>
+ <xsl:template name="integer-sqrt">
+ <xsl:param name="x"/>
+ <xsl:param name="length"/>
+ <xsl:param name="curr-pos"/>
+ <xsl:param name="last-quotient" select="0"/>
+ <xsl:choose>
+ <xsl:when test="$curr-pos &gt; $length">
+ <xsl:value-of select="$last-quotient"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="curr-x" select="substring( $x, 1, $curr-pos )"/>
+ <xsl:variable name="new-quotient">
+ <xsl:call-template name="get-one-sqrt-digit">
+ <xsl:with-param name="x" select="$curr-x"/>
+ <xsl:with-param name="last-quotient" select="$last-quotient"/>
+ <xsl:with-param name="n" select="5"/>
+ <xsl:with-param name="direct" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="integer-sqrt">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="length" select="$length"/>
+ <xsl:with-param name="curr-pos" select="$curr-pos + 2"/>
+ <xsl:with-param name="last-quotient" select="number($new-quotient)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-one-sqrt-digit">
+ <xsl:param name="x"/>
+ <xsl:param name="last-quotient"/>
+ <xsl:param name="n"/>
+ <xsl:param name="direct" select="1"/>
+ <xsl:variable name="quotient" select=" concat( $last-quotient, $n) "/>
+ <xsl:variable name="accumulate" select="$quotient * $quotient "/>
+ <xsl:choose>
+ <xsl:when test="$accumulate = $x">
+ <xsl:value-of select="concat($last-quotient , $n )"/>
+ </xsl:when>
+ <xsl:when test="$direct = 0 and $accumulate &lt; $x">
+ <xsl:call-template name="get-one-sqrt-digit">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="last-quotient" select="$last-quotient"/>
+ <xsl:with-param name="n" select="$n + 1"/>
+ <xsl:with-param name="direct" select="1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$direct = 0 and $accumulate &gt; $x">
+ <xsl:call-template name="get-one-sqrt-digit">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="last-quotient" select="$last-quotient"/>
+ <xsl:with-param name="n" select="$n - 1"/>
+ <xsl:with-param name="direct" select="-1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test=" $accumulate * $direct &lt; $x * $direct ">
+ <xsl:call-template name="get-one-sqrt-digit">
+ <xsl:with-param name="x" select="$x"/>
+ <xsl:with-param name="last-quotient" select="$last-quotient"/>
+ <xsl:with-param name="n" select="$n+ $direct"/>
+ <xsl:with-param name="direct" select="$direct"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="not($n &lt; 9) or $n = -1">
+ <xsl:value-of select="concat($last-quotient , $n - $direct) "/>
+ </xsl:when>
+ <xsl:when test="$direct = 1">
+ <xsl:value-of select="concat($last-quotient , $n - 1) "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($last-quotient , $n) "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="convert2redian">
+ <xsl:param name="x" select="'0'"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:choose>
+ <xsl:when test="contains($x,'deg')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($x, 'deg') div 180 * $pi)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($x,'fd')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($x, 'fd') div 180 div 65536 * $pi)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="round($rounding-factor * number($x) div 180 * $pi) div $rounding-factor"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="convert2degree">
+ <xsl:param name="x" select="'0'"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:choose>
+ <xsl:when test="contains($x,'deg')">
+ <xsl:value-of select="round($rounding-factor * substring-before($x,'deg')) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($x,'fd')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($x, 'fd')) div 65536 ) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="round($rounding-factor * number($x) * 180 div $pi) div $rounding-factor"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="convert2fd">
+ <xsl:param name="x" select="'0'"/>
+ <xsl:param name="rounding-factor" select="100"/>
+ <xsl:choose>
+ <xsl:when test="contains($x,'deg')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($x, 'deg') * 65535)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($x,'fd')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($x, 'fd'))) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="round($rounding-factor * number($x) * 180 div $pi * 65535) div $rounding-factor"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/common/measure_conversion.xsl b/test/user-template/user/xslt/common/measure_conversion.xsl
new file mode 100644
index 000000000000..6ad52e0512cd
--- /dev/null
+++ b/test/user-template/user/xslt/common/measure_conversion.xsl
@@ -0,0 +1,488 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!-- DPI (dots per inch) the standard resolution of given pictures (necessary for the conversion of 'cm' into 'pixel')
+ Although many pictures have a 96 dpi resolution, a higher resoltion give better results for common browsers -->
+ <xsl:param name="dpi" select="111"/>
+ <xsl:param name="centimeter-in-mm" select="10"/>
+ <xsl:param name="inch-in-mm" select="25.4"/>
+ <xsl:param name="didot-point-in-mm" select="0.376065"/>
+ <xsl:param name="pica-in-mm" select="4.2333333"/>
+ <xsl:param name="point-in-mm" select="0.3527778"/>
+ <xsl:param name="twip-in-mm" select="0.017636684"/>
+ <xsl:param name="pixel-in-mm" select="$inch-in-mm div $dpi"/>
+ <!-- ***** MEASUREMENT CONVERSIONS *****
+ PARAM 'value'
+ The measure to be converted.
+ The current measure is judged by a substring (e.g. 'mm', 'cm', 'in', 'pica'...)
+ directly added to the number.
+
+ PARAM 'rounding-factor'
+ Is used for the rounding of decimal places.
+ The parameter number is the product of 1 and some '10', where
+ every zero represents a decimal place.
+
+ For example, providing as parameter:
+ <xsl:param name="rounding-factor" select="10000" />
+ Gives by default four decimal places.
+
+ To round two decimal places, basically the following is done:
+ <xsl:value-of select="round(100 * value) div 100"/>
+
+ RETURN The converted number, by default rounded to four decimal places.
+ In case the input measure could not be matched the same value is
+ returned and a warning message is written out.
+
+
+
+ MEASURE LIST:
+ * 1 milimeter (mm), the basic measure
+
+ * 1 centimeter (cm) = 10 mm
+
+ * 1 inch (in) = 25.4 mm
+ While the English have already seen the light (read: the metric system), the US
+ remains loyal to this medieval system.
+
+ * 1 point (pt) = 0.35277777.. mm
+ Sometimes called PostScript point (ppt), as when Adobe created PostScript, they added their own system of points.
+ There are exactly 72 PostScript points in 1 inch.
+
+ * 1 twip = twentieth of a (PostScript) point
+ A twip (twentieth of a point) is a 1/20th of a PostScript point, a traditional measure in printing.
+
+ * 1 didot point (dpt) = 0.376065 mm
+ Didot point after the French typographer Firmin Didot (1764-1836).
+
+ More details under
+ http://www.unc.edu/~rowlett/units/dictP.html:
+ "A unit of length used by typographers and printers. When printing was done
+ from hand-set metal type, one point represented the smallest element of type
+ that could be handled, roughly 1/64 inch. Eventually, the point was standardized
+ in Britain and America as exactly 1/72.27 = 0.013 837 inch, which is
+ about 0.35 mm (351.46 micrometers). In continental Europe, typographers
+ traditionally used a slightly larger point of 0.014 83 inch (about
+ 1/72 pouce, 0.377 mm, or roughly 1/67 English inch), called a Didot point
+ after the French typographer Firmin Didot (1764-1836). In the U.S.,
+ Adobe software defines the point to be exactly 1/72 inch (0.013 888 9 inch
+ or 0.352 777 8 millimeters) and TeX software uses a slightly smaller point
+ of 0.351 459 8035 mm. The German standards agency DIN has proposed that
+ all these units be replaced by multiples of 0.25 millimeters (1/101.6 inch).
+
+ * 1 pica = 4.233333 mm
+ 1/6 inch or 12 points
+
+ * 1 pixel (px) = 0.26458333.. mm (relative to 'DPI', here: 96 dpi)
+ Most pictures have the 96 dpi resolution, but the dpi variable may vary by stylesheet parameter
+
+
+ -->
+ <!-- changing measure to mm -->
+ <xsl:template name="convert2mm">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="substring-before($value, 'mm')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm' ) * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in' ) * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'mm'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to cm -->
+ <xsl:template name="convert2cm">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="substring-before($value, 'cm')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $centimeter-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $centimeter-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $centimeter-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $centimeter-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $centimeter-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $centimeter-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'cm'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to inch (cp. section comment) -->
+ <xsl:template name="convert2in">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $inch-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="substring-before($value, 'in')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $inch-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $inch-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $inch-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $inch-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $inch-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'in'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to dpt (cp. section comment) -->
+ <xsl:template name="convert2dpt">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $didot-point-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $didot-point-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $didot-point-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="substring-before($value, 'dpt')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $didot-point-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $didot-point-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $didot-point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'dpt'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pica (cp. section comment) -->
+ <xsl:template name="convert2pica">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $pica-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $pica-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $pica-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $pica-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="substring-before($value, 'pica')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $pica-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $pica-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pica'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pt (cp. section comment) -->
+ <xsl:template name="convert2pt">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $point-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $point-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="substring-before($value, 'pt')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $point-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $point-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $point-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pt'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to twip (cp. section comment) -->
+ <xsl:template name="convert2twip">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $twip-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $twip-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $twip-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $twip-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $twip-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="substring-before($value, 'twip')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $twip-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'twip'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pixel by via parameter provided dpi (dots per inch) standard factor (cp. section comment) -->
+ <xsl:template name="convert2px">
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round(number(substring-before($value, 'mm')) div $pixel-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round(number(substring-before($value, 'cm')) div $pixel-in-mm * $centimeter-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round(number(substring-before($value, 'in')) div $pixel-in-mm * $inch-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round(number(substring-before($value, 'pt')) div $pixel-in-mm * $point-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round(number(substring-before($value, 'dpt')) div $pixel-in-mm * $didot-point-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round(number(substring-before($value, 'pica')) div $pixel-in-mm * $pica-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round(number(substring-before($value, 'twip')) div $pixel-in-mm * $twip-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'px'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="ConvertMeasure">
+ <xsl:param name="TargetMeasure" select="'cm'"/>
+ <xsl:param name="TargetTruncate" select=" 'all' "/>
+ <xsl:param name="value"/>
+ <!-- When TargetTruncate ='all' it returns the number whichsoever the return value is negative or positive
+ When TargetTruncate ='nonNegative' it only returns nonNegative number, all negative number to be returned as 0
+ When TargetTruncate ='positive" it only returns positive number, all nonPositive number to be returned as 1 -->
+ <xsl:variable name="return_value">
+ <xsl:choose>
+ <!-- remove the measure mark, if the value is null, the result should be 0. Must be the first case -->
+ <xsl:when test="string-length(translate(string($value),'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ','')) = 0">0</xsl:when>
+ <xsl:when test="string-length(translate(string($value),'- .0123456789','')) = 0">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:when test="$TargetMeasure = 'cm'">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$TargetMeasure = 'pt'">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$TargetMeasure = 'twip'">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$TargetMeasure = 'in'">
+ <xsl:call-template name="convert2in">
+ <xsl:with-param name="value" select="$value"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$TargetTruncate = 'all' ">
+ <xsl:choose>
+ <xsl:when test="string(number($TargetMeasure)) = 'NaN' ">
+ <xsl:value-of select=" '0' "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return_value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$TargetTruncate = 'nonNegative' ">
+ <xsl:choose>
+ <xsl:when test="string(number($TargetMeasure)) = 'NaN' ">
+ <xsl:value-of select=" '0' "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test=" $return_value &lt; 0 ">
+ <xsl:value-of select=" '0' "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return_value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$TargetTruncate = 'positive' ">
+ <xsl:choose>
+ <xsl:when test="string(number($TargetMeasure)) = 'NaN' ">
+ <xsl:value-of select=" '1' "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test=" $return_value &lt;= 0 ">
+ <xsl:value-of select=" '1' "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return_value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="Add-With-Measure">
+ <xsl:param name="value1"/>
+ <xsl:param name="value2"/>
+ <xsl:param name="TargetMeasure" select="'in'"/>
+ <xsl:variable name="number-value1">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="$value1"/>
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="number-value2">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="$value2"/>
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$number-value1 + $number-value2"/>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/docbook/DocBookTemplate.stw b/test/user-template/user/xslt/docbook/DocBookTemplate.stw
new file mode 100644
index 000000000000..ebc95f9f68cb
--- /dev/null
+++ b/test/user-template/user/xslt/docbook/DocBookTemplate.stw
Binary files differ
diff --git a/test/user-template/user/xslt/docbook/docbooktosoffheadings.xsl b/test/user-template/user/xslt/docbook/docbooktosoffheadings.xsl
new file mode 100644
index 000000000000..0b583a9d1452
--- /dev/null
+++ b/test/user-template/user/xslt/docbook/docbooktosoffheadings.xsl
@@ -0,0 +1,1424 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script" xmlns:config="http://openoffice.org/2001/config" office:class="text" office:version="1.0">
+ <xsl:decimal-format name="staff" digit="D"/>
+ <xsl:template match="/">
+ <xsl:element name="office:document">
+ <office:meta>
+ <dc:title>
+ <xsl:value-of select="/article/articleinfo/title"/>
+ </dc:title>
+ <dc:description></dc:description>
+ <dc:subject></dc:subject>
+ <dc:date>
+ <xsl:value-of select="article/articleinfo/pubdate"/>
+ </dc:date>
+ <dc:language>
+ <xsl:value-of select="article/@lang"/>
+ </dc:language>
+ <meta:user-defined meta:name="Info 1"/>
+ <meta:user-defined meta:name="Info 2"/>
+ <meta:user-defined meta:name="Info 3"/>
+ <meta:user-defined meta:name="Info 4"/>
+ </office:meta>
+ <office:font-decls>
+ <style:font-decl style:name="Tahoma1" fo:font-family="Tahoma"/>
+ <style:font-decl style:name="Thorndale" fo:font-family="Thorndale" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-decl style:name="Albany" fo:font-family="Albany" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ <style:font-decl style:name="Andale Sans UI" fo:font-family="'Andale Sans UI'" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-decl style:name="MS Mincho" fo:font-family="'MS Mincho'" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-decl style:name="Tahoma" fo:font-family="Tahoma" style:font-family-generic="system" style:font-pitch="variable"/>
+ </office:font-decls>
+ <office:styles>
+ <style:default-style style:family="graphics">
+ <style:properties draw:shadow-offset-x="0.3cm" draw:shadow-offset-y="0.3cm" draw:start-line-spacing-horizontal="0.283cm" draw:start-line-spacing-vertical="0.283cm" draw:end-line-spacing-horizontal="0.283cm" draw:end-line-spacing-vertical="0.283cm" style:text-autospace="ideograph-alpha" style:line-break="strict" style:writing-mode="lr-tb" style:font-independent-line-spacing="false" style:use-window-font-color="true" fo:font-size="12pt" fo:language="en" fo:country="US" style:font-size-asian="12pt" style:language-asian="zxx" style:country-asian="none" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none">
+ <style:tab-stops/>
+ </style:properties>
+ </style:default-style>
+ <style:default-style style:family="paragraph">
+ <style:properties fo:hyphenation-ladder-count="no-limit" style:text-autospace="ideograph-alpha" style:punctuation-wrap="hanging" style:line-break="strict" style:tab-stop-distance="2.205cm" style:writing-mode="page" style:use-window-font-color="true" style:font-name="Thorndale" fo:font-size="12pt" fo:language="en" fo:country="US" style:font-name-asian="Andale Sans UI" style:font-size-asian="12pt" style:language-asian="zxx" style:country-asian="none" style:font-name-complex="Tahoma" style:font-size-complex="12pt" style:language-complex="zxx" style:country-complex="none" fo:hyphenate="false" fo:hyphenation-remain-char-count="2" fo:hyphenation-push-char-count="2"/>
+ </style:default-style>
+ <style:default-style style:family="table">
+ <style:properties table:border-model="separating"/>
+ </style:default-style>
+ <style:default-style style:family="table-row">
+ <style:properties fo:keep-together="always"/>
+ </style:default-style>
+ <style:style style:name="Standard" style:family="paragraph" style:class="text"/>
+ <style:style style:name="Text body" style:family="paragraph" style:parent-style-name="Standard" style:class="text">
+ <style:properties fo:margin-top="0cm" fo:margin-bottom="0.212cm"/>
+ </style:style>
+ <style:style style:name="Heading" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Text body" style:class="text">
+ <style:properties fo:margin-top="0.423cm" fo:margin-bottom="0.212cm" fo:keep-with-next="true" style:font-name="Albany" fo:font-size="14pt" style:font-name-asian="MS Mincho" style:font-size-asian="14pt" style:font-name-complex="Tahoma" style:font-size-complex="14pt"/>
+ </style:style>
+ <style:style style:name="Heading 1" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text body" style:class="text">
+ <style:properties fo:font-size="115%" fo:font-weight="bold" style:font-size-asian="115%" style:font-weight-asian="bold" style:font-size-complex="115%" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Heading 2" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text body" style:class="text">
+ <style:properties fo:font-size="14pt" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="14pt" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-style-complex="italic" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Heading 3" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text body" style:class="text">
+ <style:properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Heading 4" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text body" style:class="text">
+ <style:properties fo:font-size="85%" fo:font-style="italic" fo:font-weight="bold" style:font-size-asian="85%" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-size-complex="85%" style:font-style-complex="italic" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="List" style:family="paragraph" style:parent-style-name="Text body" style:class="list">
+ <style:properties style:font-name-complex="Tahoma1"/>
+ </style:style>
+ <style:style style:name="Table Contents" style:family="paragraph" style:parent-style-name="Text body" style:class="extra">
+ <style:properties text:number-lines="false" text:line-number="0"/>
+ </style:style>
+ <style:style style:name="Table Heading" style:family="paragraph" style:parent-style-name="Table Contents" style:class="extra">
+ <style:properties fo:text-align="center" style:justify-single-word="false" text:number-lines="false" text:line-number="0" fo:font-style="italic" fo:font-weight="bold" style:font-style-asian="italic" style:font-weight-asian="bold" style:font-style-complex="italic" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="Caption" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+ <style:properties fo:margin-top="0.212cm" fo:margin-bottom="0.212cm" text:number-lines="false" text:line-number="0" fo:font-size="10pt" fo:font-style="italic" style:font-size-asian="10pt" style:font-style-asian="italic" style:font-size-complex="10pt" style:font-style-complex="italic"/>
+ </style:style>
+ <style:style style:name="Table" style:family="paragraph" style:parent-style-name="Caption" style:class="extra"/>
+ <style:style style:name="Frame contents" style:family="paragraph" style:parent-style-name="Text body" style:class="extra"/>
+ <style:style style:name="Footnote" style:family="paragraph" style:parent-style-name="Standard" style:class="extra">
+ <style:properties fo:margin-left="0.499cm" fo:margin-right="0cm" fo:text-indent="-0.499cm" style:auto-text-indent="false" text:number-lines="false" text:line-number="0" fo:font-size="10pt" style:font-size-asian="10pt" style:font-size-complex="10pt"/>
+ </style:style>
+ <style:style style:name="Index" style:family="paragraph" style:parent-style-name="Standard" style:class="index">
+ <style:properties text:number-lines="false" text:line-number="0" style:font-name-complex="Tahoma1"/>
+ </style:style>
+ <style:style style:name="Subtitle" style:family="paragraph" style:parent-style-name="Heading" style:next-style-name="Text body" style:class="chapter">
+ <style:properties fo:text-align="center" style:justify-single-word="false" fo:font-size="14pt" fo:font-style="italic" style:font-size-asian="14pt" style:font-style-asian="italic" style:font-size-complex="14pt" style:font-style-complex="italic"/>
+ </style:style>
+ <style:style style:name="Mediaobject" style:family="paragraph" style:class="text"/>
+ <style:style style:name="Object" style:family="paragraph" style:parent-style-name="Caption" style:class="extra"/>
+ <style:style style:name="Section Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:line-height="200%" fo:text-transform="capitalize" fo:font-size="14pt"/>
+ </style:style>
+ <style:style style:name="Appendix Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:line-height="200%" fo:text-transform="capitalize" fo:font-size="14pt"/>
+ </style:style>
+ <style:style style:name="Section1 Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:line-height="200%" fo:text-transform="capitalize" fo:font-size="14pt"/>
+ </style:style>
+ <style:style style:name="Section2 Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:line-height="200%" fo:text-transform="capitalize" fo:font-size="13pt"/>
+ </style:style>
+ <style:style style:name="Section3 Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:line-height="200%" fo:text-transform="capitalize" fo:font-size="12pt"/>
+ </style:style>
+ <style:style style:name="Section4 Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:line-height="200%" fo:text-transform="capitalize" fo:font-size="12pt"/>
+ </style:style>
+ <style:style style:name="Section5 Title" style:family="paragraph" style:next-style-name="Text body" style:master-page-name="">
+ <style:properties fo:line-height="200%" fo:text-transform="capitalize" fo:font-size="12pt"/>
+ </style:style>
+ <style:style style:name="Document Title" style:family="paragraph" style:parent-style-name="Standard" style:next-style-name="Document SubTitle">
+ <style:properties fo:text-align="center" style:justify-single-word="false" fo:font-size="20pt"/>
+ </style:style>
+ <style:style style:name="Document SubTitle" style:family="paragraph" style:parent-style-name="Document Title" style:next-style-name="Text body">
+ <style:properties fo:font-size="14pt"/>
+ </style:style>
+ <style:style style:name="Section SubTitle" style:family="paragraph" style:parent-style-name="Section Title"/>
+ <style:style style:name="CopyRight" style:family="paragraph" style:parent-style-name="Text body"/>
+ <style:style style:name="VarList Item" style:family="paragraph" style:parent-style-name="Text body" style:list-style-name="Var List" style:class="text">
+ <style:properties fo:margin-left="3cm" fo:margin-right="0cm" fo:text-indent="0cm" style:auto-text-indent="false">
+ <style:tab-stops>
+ <style:tab-stop style:position="0cm"/>
+ </style:tab-stops>
+ </style:properties>
+ </style:style>
+ <style:style style:name="VarList Term" style:family="paragraph" style:parent-style-name="Text body" style:list-style-name="Var List" style:class="text">
+ <style:properties fo:margin-left="1cm" fo:margin-right="0cm" fo:text-indent="-4.5cm" style:auto-text-indent="false">
+ <style:tab-stops>
+ <style:tab-stop style:position="0cm"/>
+ </style:tab-stops>
+ </style:properties>
+ </style:style>
+ <style:style style:name="Footnote Symbol" style:family="text"/>
+ <style:style style:name="Numbering Symbols" style:family="text"/>
+ <style:style style:name="Bullet Symbols" style:family="text">
+ <style:properties fo:font-size="9pt" style:font-size-asian="9pt" style:font-size-complex="9pt"/>
+ </style:style>
+ <style:style style:name="Internet link" style:family="text">
+ <style:properties fo:color="#000080" style:text-underline-color="font-color" style:text-underline="single"/>
+ </style:style>
+ <style:style style:name="Endnote Symbol" style:family="text"/>
+ <style:style style:name="Emphasis" style:family="text">
+ <style:properties fo:font-style="italic" style:font-style-asian="italic" style:font-style-complex="italic"/>
+ </style:style>
+ <style:style style:name="Source Text" style:family="text"/>
+ <style:style style:name="Highlight" style:family="text">
+ <style:properties style:text-background-color="#fff000"/>
+ </style:style>
+ <style:style style:name="KeyCap" style:family="text">
+ <style:properties fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="Command" style:family="text">
+ <style:properties fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="Application" style:family="text">
+ <style:properties fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="FileName" style:family="text">
+ <style:properties fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="SuperScript" style:family="text">
+ <style:properties style:text-position="super 58%"/>
+ </style:style>
+ <style:style style:name="SubScript" style:family="text">
+ <style:properties style:text-position="sub 58%"/>
+ </style:style>
+ <style:style style:name="SystemItem" style:family="text">
+ <style:properties fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="ComputerOutput" style:family="text">
+ <style:properties fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="KeyCombo" style:family="text">
+ <style:properties fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="KeySym" style:family="text">
+ <style:properties fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="GuiMenu" style:family="text">
+ <style:properties fo:color="#000fff" fo:font-style="italic"/>
+ </style:style>
+ <style:style style:name="GuiSubMenu" style:family="text">
+ <style:properties fo:color="#ff9966" fo:font-style="italic"/>
+ </style:style>
+ <style:style style:name="GuiButton" style:family="text">
+ <style:properties fo:color="#00f0ff" fo:font-style="italic"/>
+ </style:style>
+ <style:style style:name="GuiMenuItem" style:family="text">
+ <style:properties fo:color="#00ffff" fo:font-style="italic"/>
+ </style:style>
+ <style:style style:name="GuiLabel" style:family="text">
+ <style:properties fo:color="#00777f" fo:font-style="italic"/>
+ </style:style>
+ <style:style style:name="Frame" style:family="graphics">
+ <style:properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" fo:margin-left="0.201cm" fo:margin-right="0.201cm" fo:margin-top="0.201cm" fo:margin-bottom="0.201cm" style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph-content" style:horizontal-pos="center" style:horizontal-rel="paragraph-content" fo:padding="0.15cm" fo:border="0.002cm solid #000000"/>
+ </style:style>
+ <text:outline-style>
+ <text:outline-level-style text:level="1" style:num-format=""/>
+ <text:outline-level-style text:level="2" style:num-format=""/>
+ <text:outline-level-style text:level="3" style:num-format=""/>
+ <text:outline-level-style text:level="4" style:num-format=""/>
+ <text:outline-level-style text:level="5" style:num-format=""/>
+ <text:outline-level-style text:level="6" style:num-format=""/>
+ <text:outline-level-style text:level="7" style:num-format=""/>
+ <text:outline-level-style text:level="8" style:num-format=""/>
+ <text:outline-level-style text:level="9" style:num-format=""/>
+ <text:outline-level-style text:level="10" style:num-format=""/>
+ </text:outline-style>
+ <text:list-style style:name="Ordered List">
+ <text:list-level-style-number text:level="1" text:style-name="Numbering Symbols" style:num-suffix="." style:num-format="1">
+ <style:properties text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="2" style:num-suffix="." style:num-format="1">
+ <style:properties text:space-before="0.501cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="3" style:num-suffix="." style:num-format="1">
+ <style:properties text:space-before="1cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="4" style:num-suffix="." style:num-format="1">
+ <style:properties text:space-before="1.501cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="5" style:num-suffix="." style:num-format="1">
+ <style:properties text:space-before="2cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="6" style:num-suffix="." style:num-format="1">
+ <style:properties text:space-before="2.501cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="7" style:num-suffix="." style:num-format="1">
+ <style:properties text:space-before="3.001cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="8" style:num-suffix="." style:num-format="1">
+ <style:properties text:space-before="3.502cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="9" style:num-suffix="." style:num-format="1">
+ <style:properties text:space-before="4.001cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ <text:list-level-style-number text:level="10" style:num-suffix="." style:num-format="1">
+ <style:properties text:space-before="4.502cm" text:min-label-width="0.499cm"/>
+ </text:list-level-style-number>
+ </text:list-style>
+ <text:list-style style:name="UnOrdered List">
+ <text:list-level-style-bullet text:level="1" text:style-name="Bullet Symbols" text:bullet-char="•">
+ <style:properties text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:style-name="Bullet Symbols" text:bullet-char="•">
+ <style:properties text:space-before="0.501cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="1cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="1.501cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="2cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="2.501cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="3.001cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="3.502cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="4.001cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="4.502cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ <text:list-style style:name="Var List">
+ <text:list-level-style-bullet text:level="1" text:style-name="Bullet Symbols" text:bullet-char="•">
+ <style:properties text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="2" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="0.501cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="3" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="1cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="4" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="1.501cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="5" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="2cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="6" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="2.501cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="7" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="3.001cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="8" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="3.502cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="9" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="4.001cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ <text:list-level-style-bullet text:level="10" text:style-name="Bullet Symbols" style:num-suffix="." text:bullet-char="•">
+ <style:properties text:space-before="4.502cm" text:min-label-width="0.499cm" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </text:list-level-style-bullet>
+ </text:list-style>
+ <text:footnotes-configuration text:citation-style-name="Footnote Symbol" style:num-format="1" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="page"/>
+ <text:endnotes-configuration text:citation-style-name="Endnote Symbol" text:master-page-name="Endnote" style:num-format="1" text:start-value="0"/>
+ <text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
+ </office:styles>
+ <office:automatic-styles>
+ <style:page-master style:name="pm1">
+ <style:properties fo:page-width="20.999cm" fo:page-height="29.699cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2.54cm" fo:margin-bottom="2.54cm" fo:margin-left="3.175cm" fo:margin-right="3.175cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:properties>
+ <style:header-style/>
+ <style:footer-style/>
+ </style:page-master>
+ <style:page-master style:name="pm2">
+ <style:properties fo:page-width="20.999cm" fo:page-height="29.699cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
+ <style:footnote-sep style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:properties>
+ <style:header-style/>
+ <style:footer-style/>
+ </style:page-master>
+ </office:automatic-styles>
+ <office:master-styles>
+ <style:master-page style:name="Standard" style:page-master-name="pm1"/>
+ <style:master-page style:name="Endnote" style:page-master-name="pm2"/>
+ </office:master-styles>
+ <office:body>
+ <xsl:apply-templates/>
+ </office:body>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="subtitle">
+ <xsl:choose>
+ <xsl:when test="parent::table">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:when test="parent::informaltable">
+ <xsl:apply-templates/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">Section SubTitle</xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+
+
+ <xsl:template match="title">
+ <xsl:choose>
+ <xsl:when test="parent::figure"></xsl:when>
+ <xsl:when test="parent::table"></xsl:when>
+ <xsl:when test="parent::sect1"></xsl:when>
+ <xsl:when test="parent::sect2"></xsl:when>
+ <xsl:when test="parent::sect3"></xsl:when>
+ <xsl:when test="parent::sect4"></xsl:when>
+ <xsl:when test="parent::sect5"></xsl:when>
+ <xsl:when test="parent::informaltable">
+ <xsl:apply-templates/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:element name="text:p">
+ <xsl:choose>
+
+ <xsl:when test="parent::appendix">
+ <xsl:attribute name="text:style-name">Appendix Title</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="articleinfo">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">ArticleInfo</xsl:attribute>
+ <xsl:attribute name="text:name">ArticleInfo</xsl:attribute>
+ <xsl:if test="/article/articleinfo/title !=''">
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">Document Title</xsl:attribute>
+ <xsl:value-of select="/article/articleinfo/title"/>
+ </xsl:element>
+ <xsl:if test="/article/articleinfo/subtitle !=''">
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">Document SubTitle</xsl:attribute>
+ <xsl:value-of select="/article/articleinfo/subtitle"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:element>
+
+ </xsl:template>
+
+ <xsl:template match="appendix">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">Appendix</xsl:attribute>
+ <xsl:attribute name="text:name">Appendix</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+
+ </xsl:template>
+
+<!--
+<xsl:template match="author">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="firstname">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo/author">
+ <xsl:text disable-output-escaping="yes">articleinfo.author</xsl:text><xsl:value-of select="count(parent::author[preceding-sibling::author])"/><xsl:text disable-output-escaping="yes">.firstname</xsl:text><xsl:value-of select="count(preceding-sibling::firstname)"/>
+ </xsl:if>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+
+</xsl:template>-->
+
+ <xsl:template match="articleinfo/title">
+ <!-- <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.title</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.title</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>--></xsl:template>
+
+ <xsl:template match="articleinfo/subtitle">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.subtitle</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.subtitle</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="articleinfo/edition">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.edition</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.edition</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="articleinfo/releaseinfo">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.releaseinfo_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::releaseinfo)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.releaseinfo_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::releaseinfo)"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+
+ <xsl:template match="author/firstname">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text>
+ <xsl:value-of select="count(parent::author[preceding-sibling::author])"/>
+ <xsl:text disable-output-escaping="yes">.firstname_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::firstname)"/>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text>
+ <xsl:value-of select="count(parent::author[preceding-sibling::author])"/>
+ <xsl:text disable-output-escaping="yes">.firstname_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::firstname)"/>
+ </xsl:if>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+
+
+ <xsl:template match="articleinfo/copyright/year">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo/copyright">
+ <xsl:text disable-output-escaping="yes">articleinfo.copyright_</xsl:text>
+ <xsl:value-of select="count(parent::copyright[preceding-sibling::copyright])"/>
+ <xsl:text disable-output-escaping="yes">.year_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::year)"/>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo/copyright">
+ <xsl:text disable-output-escaping="yes">articleinfo.copyright_</xsl:text>
+ <xsl:value-of select="count(parent::copyright[preceding-sibling::copyright])"/>
+ <xsl:text disable-output-escaping="yes">.year_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::year)"/>
+ </xsl:if>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="authorgroup">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="articleinfo/copyright/holder">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo/copyright">
+ <xsl:text disable-output-escaping="yes">articleinfo.copyright_</xsl:text>
+ <xsl:value-of select="count(parent::copyright[preceding-sibling::copyright])"/>
+ <xsl:text disable-output-escaping="yes">.holder_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::holder)"/>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:if test="ancestor::articleinfo/copyright">
+ <xsl:text disable-output-escaping="yes">articleinfo.copyright_</xsl:text>
+ <xsl:value-of select="count(parent::copyright[preceding-sibling::copyright])"/>
+ <xsl:text disable-output-escaping="yes">.holder_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::holder)"/>
+ </xsl:if>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+
+
+
+ <xsl:template name="affiliation">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="author/affiliation/address">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text>
+ <xsl:value-of select="count(ancestor::author[preceding-sibling::author])"/>
+ <xsl:text disable-output-escaping="yes">.affiliation_</xsl:text>
+ <xsl:value-of select="count(parent::affiliation[preceding-sibling::affiliation])"/>
+ <xsl:text disable-output-escaping="yes">.address_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::address)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text>
+ <xsl:value-of select="count(ancestor::author[preceding-sibling::author])"/>
+ <xsl:text disable-output-escaping="yes">.affiliation_</xsl:text>
+ <xsl:value-of select="count(parent::affiliation[preceding-sibling::affiliation])"/>
+ <xsl:text disable-output-escaping="yes">.address_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::address)"/>
+
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="author/affiliation/orgname">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:if test="ancestor::articleinfo">
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text>
+ <xsl:value-of select="count(ancestor::author[preceding-sibling::author])"/>
+ <xsl:text disable-output-escaping="yes">.affiliation_</xsl:text>
+ <xsl:value-of select="count(parent::affiliation[preceding-sibling::affiliation])"/>
+ <xsl:text disable-output-escaping="yes">.orgname_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::orgname)"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:if test="ancestor::articleinfo">
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text>
+ <xsl:value-of select="count(ancestor::author[preceding-sibling::author])"/>
+ <xsl:text disable-output-escaping="yes">.affiliation_</xsl:text>
+ <xsl:value-of select="count(parent::affiliation[preceding-sibling::affiliation])"/>
+ <xsl:text disable-output-escaping="yes">.orgname_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::orgname)"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+
+
+ <xsl:template match="author/surname">
+ <xsl:element name="text:variable-decls">
+ <xsl:element name="text:variable-decl">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text>
+ <xsl:value-of select="count(parent::author[preceding-sibling::author])"/>
+ <xsl:text disable-output-escaping="yes">.surname_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::surname)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="text:p">
+ <xsl:element name="text:variable-set">
+ <xsl:attribute name="text:value-type">
+ <xsl:text>string</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="text:name">
+ <xsl:text disable-output-escaping="yes">articleinfo.author_</xsl:text>
+ <xsl:value-of select="count(parent::author[preceding-sibling::author])"/>
+ <xsl:text disable-output-escaping="yes">.surname_</xsl:text>
+ <xsl:value-of select="count(preceding-sibling::surname)"/>
+
+
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+
+
+
+
+ <xsl:template match="para">
+
+ <xsl:element name="text:p">
+
+ <xsl:choose>
+ <xsl:when test="ancestor-or-self::footnote">
+ <xsl:attribute name="text:style-name">Footnote</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::listitem">
+ <xsl:attribute name="text:style-name">VarList Item</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::informaltable">
+ <xsl:if test="ancestor-or-self::informaltable">
+ <xsl:attribute name="text:style-name">Table Contents</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::thead">
+ <xsl:attribute name="text:style-name">Table Heading</xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="ancestor-or-self::table">
+ <xsl:if test="ancestor-or-self::table">
+ <xsl:attribute name="text:style-name">Table Contents</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::thead">
+ <xsl:attribute name="text:style-name">Table Heading</xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:style-name">Text body</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:apply-templates/>
+ </xsl:element>
+
+ </xsl:template>
+
+ <xsl:template match="section">
+ <xsl:element name="text:h">
+ <xsl:attribute name="text:level">
+ <xsl:value-of select="count(ancestor-or-self::section)"/>
+ </xsl:attribute>
+ <xsl:value-of select="child::title"/>
+ </xsl:element>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="abstract">
+ <xsl:element name="text:h">
+ <xsl:attribute name="text:level">1</xsl:attribute>
+ <xsl:text>abstract</xsl:text>
+ </xsl:element>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+
+ <xsl:template match="appendix">
+ <xsl:element name="text:h">
+ <xsl:attribute name="text:level">1</xsl:attribute>
+ <xsl:text>appendix</xsl:text>
+ </xsl:element>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="sect1">
+ <xsl:element name="text:h">
+ <xsl:attribute name="text:level">1</xsl:attribute>
+ <xsl:attribute name="text:style-name">Heading 1</xsl:attribute>
+ <xsl:value-of select="child::title"/>
+ </xsl:element>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="sect2">
+ <xsl:element name="text:h">
+ <xsl:attribute name="text:level">2</xsl:attribute>
+ <xsl:attribute name="text:style-name">Heading 2</xsl:attribute>
+ <xsl:value-of select="child::title"/>
+ </xsl:element>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="sect3">
+ <xsl:element name="text:h">
+ <xsl:attribute name="text:level">3</xsl:attribute>
+ <xsl:attribute name="text:style-name">Heading 3</xsl:attribute>
+ <xsl:value-of select="child::title"/>
+ </xsl:element>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="sect4">
+ <xsl:element name="text:h">
+ <xsl:attribute name="text:level">4</xsl:attribute>
+ <xsl:attribute name="text:style-name">Heading 4</xsl:attribute>
+ <xsl:value-of select="child::title"/>
+ </xsl:element>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="sect5">
+ <xsl:element name="text:h">
+ <xsl:attribute name="text:level">5</xsl:attribute>
+ <xsl:value-of select="child::title"/>
+ </xsl:element>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+<!--<xsl:template match="sect5">
+ <xsl:element name="text:section">
+ <xsl:attribute name="text:style-name">Sect1</xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select="@id"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+</xsl:template>-->
+
+
+ <xsl:template match="informaltable">
+ <xsl:element name="table:table">
+ <xsl:attribute name="table:name"></xsl:attribute>
+ <xsl:attribute name="table:style-name">Table1</xsl:attribute>
+ <xsl:attribute name="table:name">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+
+ <xsl:template match="table">
+ <xsl:variable name="tabletitle">
+ <xsl:value-of select="title"/>
+ </xsl:variable>
+ <xsl:element name="table:table">
+ <xsl:attribute name="table:name"></xsl:attribute>
+ <xsl:attribute name="table:style-name">Table1</xsl:attribute>
+ <xsl:attribute name="table:name">
+ <xsl:value-of select="@id"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ <xsl:if test="not($tabletitle='')">
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">Table</xsl:attribute>
+ <xsl:value-of select="$tabletitle"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="tgroup">
+ <xsl:element name="table:table-column">
+ <xsl:attribute name="table:style-name">Table1.A</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@cols >0">
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="@cols"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="count(child::tbody/row/entry) div count(child::tbody/row)"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+
+ <xsl:template match="indexterm"></xsl:template>
+
+ <xsl:template match="thead">
+ <xsl:element name="table:table-header-rows">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="tbody">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="row">
+ <xsl:element name="table:table-row">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="entry">
+ <xsl:element name="table:table-cell">
+ <xsl:if test="ancestor-or-self::thead">
+ <xsl:attribute name="table:style-name">Table1.A1</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(ancestor-or-self::thead)">
+ <xsl:attribute name="table:style-name">Table1.A2</xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@spanname">
+ <!--<xsl:if test="@spanname">-->
+ <xsl:variable name="sname">
+ <xsl:value-of select="@spanname"/>
+ </xsl:variable>
+ <xsl:attribute name="table:number-columns-spanned">
+ <xsl:variable name="colnamestart">
+ <xsl:value-of select="ancestor::tgroup/spanspec[@spanname=$sname]/@namest"/>
+ </xsl:variable>
+ <xsl:variable name="colnameend">
+ <xsl:value-of select="ancestor::tgroup/spanspec[@spanname=$sname]/@nameend"/>
+ </xsl:variable>
+ <xsl:variable name="colnumstart">
+ <xsl:value-of select="ancestor::tgroup/colspec[@colname=$colnamestart]/@colnum"/>
+ </xsl:variable>
+ <xsl:variable name="colnumend">
+ <xsl:value-of select="ancestor::tgroup/colspec[@colname=$colnameend]/@colnum"/>
+ </xsl:variable>
+ <xsl:value-of select="$colnumend - $colnumstart + 1"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@namest and @nameend">
+ <!--<xsl:if test="@namest and @nameend">-->
+ <xsl:variable name="colnamestart">
+ <xsl:value-of select="@namest"/>
+ </xsl:variable>
+ <xsl:variable name="colnameend">
+ <xsl:value-of select="@nameend"/>
+ </xsl:variable>
+
+ <xsl:attribute name="table:number-columns-spanned">
+ <xsl:variable name="colnumstart">
+ <xsl:value-of select="ancestor::tgroup/colspec[@colname=$colnamestart]/@colnum"/>
+ </xsl:variable>
+ <xsl:variable name="colnumend">
+ <xsl:value-of select="ancestor::tgroup/colspec[@colname=$colnameend]/@colnum"/>
+ </xsl:variable>
+ <xsl:value-of select="$colnumend - $colnumstart + 1"/>
+
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <!--
+ <xsl:if test="not(@namest = '' ) ">
+ <xsl:attribute name="table:number-columns-spanned">
+ <xsl:value-of select="(substring-after(@nameend,'c')-substring-after(@namest,'c'))+1"/>
+
+ </xsl:attribute>
+ </xsl:if>
+ -->
+ <xsl:choose>
+ <xsl:when test="not(child::para)">
+ <xsl:element name="text:p">
+ <xsl:if test="ancestor-or-self::thead">
+ <xsl:attribute name="text:style-name">Table Heading</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::tbody">
+ <xsl:attribute name="text:style-name">Table Contents</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+
+
+
+
+
+
+ <xsl:template match="figure">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+<!-- lists Section -->
+
+ <xsl:template match="itemizedlist">
+ <xsl:element name="text:unordered-list">
+ <xsl:if test="not(ancestor::itemizedlist)">
+ <xsl:attribute name="text:style-name">L1</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="variablelist">
+ <xsl:element name="text:unordered-list">
+ <xsl:attribute name="text:style-name">Var List</xsl:attribute>
+ <xsl:attribute name="text:continue-numbering">false</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="orderedlist">
+ <xsl:element name="text:ordered-list">
+ <xsl:attribute name="text:style-name">Ordered List</xsl:attribute>
+ <xsl:attribute name="text:continue-numbering">false</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="term">
+ <xsl:if test="parent::varlistentry">
+ <text:list-item>
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">VarList Term</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </text:list-item>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="listitem">
+ <text:list-item>
+ <xsl:apply-templates/>
+ </text:list-item>
+ </xsl:template>
+
+<!-- end of lists-->
+
+ <xsl:template match="menuchoice">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="guimenuitem">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiMenuItem</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="guibutton">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiButton</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="guisubmenu">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiSubMenu</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="emphasis">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">Emphasis</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+
+ <xsl:template match="guimenu">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiMenu</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="guisubmenu">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiSubMenu</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+
+ <xsl:template match="guilabel">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiLabel</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="guibutton">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">GuiButton</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="keycap">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">KeyCap</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+
+ <xsl:template match="keysym">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">KeySym</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+
+ <xsl:template match="keycombo">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">KeyCombo</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="command">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">Command</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="application">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">Application</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="filename">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">FileName</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="systemitem">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">SystemItem</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="computeroutput">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">ComputerOutput</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="inlinegraphic">
+ <xsl:element name="draw:image">
+ <xsl:attribute name="draw:style-name">fr1</xsl:attribute>
+ <xsl:attribute name="draw:name"></xsl:attribute>
+ <xsl:attribute name="text:anchor-type"></xsl:attribute>
+ <xsl:attribute name="draw:z-index"></xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@fileref"/>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:type"></xsl:attribute>
+ <xsl:attribute name="svg:width">
+ <!--<xsl:value-of select="@width"/>-->
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="svg:height">
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:show">
+ <xsl:text>embed</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:actuate">
+ <xsl:text>onLoad</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="draw:filter-name">
+ <xsl:text disable-output-escaping="yes">&lt;All formats&gt;</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+
+
+ <xsl:template match="footnote">
+ <xsl:element name="text:footnote">
+ <!--<xsl:element name="text:footnote-citation">Aidan</xsl:element>-->
+ <xsl:element name="text:footnote-body">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="highlight">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">Highlight</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="ulink">
+ <xsl:element name="text:a">
+ <xsl:attribute name="xlink:type">
+ <xsl:text>simple</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@url"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+
+ </xsl:template>
+
+ <xsl:template match="link">
+ <xsl:element name="text:a">
+ <xsl:attribute name="xlink:type">
+ <xsl:text>simple</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:text>#</xsl:text>
+ <xsl:value-of select="@linkend"/>
+ <xsl:text>%7Cregion</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+
+ </xsl:template>
+
+ <xsl:template match="olink">
+ <xsl:element name="text:a">
+ <xsl:attribute name="xlink:type">
+ <xsl:text>simple</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@targetdocent"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="note">
+ <office:annotation>
+ <text:p>
+ <xsl:apply-templates/>
+ </text:p>
+ </office:annotation>
+ </xsl:template>
+
+ <xsl:template match="imageobject">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="textobject"></xsl:template>
+
+ <xsl:template match="caption">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+
+ <xsl:template match="imagedata">
+ <xsl:element name="draw:image">
+ <xsl:attribute name="draw:style-name">fr1</xsl:attribute>
+ <xsl:attribute name="draw:name"></xsl:attribute>
+ <xsl:attribute name="text:anchor-type"></xsl:attribute>
+ <xsl:attribute name="draw:z-index"></xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@fileref"/>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:type"></xsl:attribute>
+ <xsl:attribute name="svg:width">
+ <!--<xsl:value-of select="@width"/>-->
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="svg:height">
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:show">
+ <xsl:text>embed</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:actuate">
+ <xsl:text>onLoad</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="draw:filter-name">
+ <xsl:text disable-output-escaping="yes">&lt;All formats&gt;</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="audioobject">
+ <xsl:element name="draw:plugin">
+ <xsl:attribute name="draw:style-name">fr1</xsl:attribute>
+ <xsl:attribute name="draw:name"></xsl:attribute>
+ <xsl:attribute name="text:anchor-type"></xsl:attribute>
+ <xsl:attribute name="draw:z-index"></xsl:attribute>
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@fileref"/>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:type"></xsl:attribute>
+ <xsl:attribute name="svg:width">
+ <!--<xsl:value-of select="@width"/>-->
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="svg:height">
+ <xsl:text>1cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:show">
+ <xsl:text>embed</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="xlink:actuate">
+ <xsl:text>onLoad</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="draw:filter-name">
+ <xsl:text disable-output-escaping="yes">&lt;All formats&gt;</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="remark">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="mediaobject">
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">Mediaobject</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="superscript">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">SuperScript</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="subscript">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name">SubScript</xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="anchor">
+ <xsl:element name="text:bookmark">
+ <xsl:attribute name="text:name"><xsl:value-of select="@id"/></xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+
+<!-- Change Made By Kevin Fowlks (fowlks@msu.edu) July 2nd, 2003 -->
+ <xsl:template match="example">
+ <xsl:element name="text:p">
+ <xsl:attribute name="text:style-name">Example</xsl:attribute>
+ <xsl:value-of select="programlisting"/>
+ </xsl:element>
+ </xsl:template>
+</xsl:stylesheet> \ No newline at end of file
diff --git a/test/user-template/user/xslt/docbook/sofftodocbookheadings.xsl b/test/user-template/user/xslt/docbook/sofftodocbookheadings.xsl
new file mode 100644
index 000000000000..3fda55612a05
--- /dev/null
+++ b/test/user-template/user/xslt/docbook/sofftodocbookheadings.xsl
@@ -0,0 +1,1161 @@
+<?xml version='1.0' encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:office="http://openoffice.org/2000/office" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script" xmlns:config="http://openoffice.org/2001/config" office:class="text" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="office meta table number dc fo xlink chart math script xsl draw svg dr3d form config text style">
+ <xsl:output method="xml" indent="yes" omit-xml-declaration="no" version="1.0" encoding="UTF-8" doctype-public="-//OASIS//DTD DocBook XML V4.1.2//EN" doctype-system="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/>
+
+
+ <!-- Heading will be mapped to sections.
+ In OpenDocument headings are not nested, they do not embrace their related content, the XML hierarchy has to be restructured.
+
+ Example of OpenDocument content:
+
+ <office:body>
+ <text:h text:style-name="Heading 1" text:level="1">Heading 1</text:h>
+ <text:p text:style-name="Text body">Heading 1 Content</text:p>
+ <text:h text:style-name="Heading 2" text:level="2">Heading 2</text:h>
+ <text:p text:style-name="Text body">Heading 2 Content</text:p>
+ <office:body>
+
+ Example of DocBook content:
+
+ <article lang="en-US">
+ <sect1>
+ <title>Heading 1</title>
+ <para>Heading 1 Content</para>
+ <sect2>
+ <title>Heading 2</title>
+ <para>Heading 2 Content</para>
+ </sect2>
+ </sect1>
+ </article>
+ -->
+
+ <!-- The key function "nestedContent" returns all ODF elements that are children of the current heading (i.e. text:h) or their parent office:body in case there is no text:h.
+ It works by matching all ODF elements, that text:h refer to (it's sibling or office:body childring)
+ Various keyed element sets of these matched elements are being generated. A set is identified by having the same last (closest) preceding text:h or if none exisitent the parent document.
+ All those elements, that have the current heading as last preceding heading (text:h) are returned as a nodeset.
+ -->
+ <xsl:key name="nestedContent"
+ match="text:p | table:table | text:span | text:ordered-list | office:annotation | text:unordered-list | text:footnote | text:a | text:list-item | draw:plugin | draw:text-box | text:footnote-body | text:section"
+ use="generate-id((.. | preceding::text:h)[last()])"/>
+
+ <!-- The key function "nestedHeadings" returns a nodeset of all heading (text:h) elements, which belong to this heading (follow and have a higher outline number than the current text:h, which ID is given to the function) -->
+ <xsl:key name="nestedHeadings"
+ match="text:h"
+ use="generate-id(preceding::text:h[@text:level &lt; current()/@text:level][1])"/>
+
+ <!-- The key function "getHeadingsByOutline" returns all headings of a certain outline level -->
+ <xsl:key name="getHeadingsByOutline"
+ match="text:h"
+ use="@text:level"/>
+
+ <!-- A further problem during mapping of Heading to sections is the quantity of levels. In OpenDocument there can exist more than 4 hierarchies (outline levels).
+ Furthermore an OpenDocument have not to start with heading outline level 1 nor does a outline level 2 have to follow.
+ Therefore all possible existing heading outline levels from 1 to 10 have to be mapped to the section1 to section4 in DocBook.
+ The lowest outline number is mapped section1, second is section2... until fourth and higher are all mapped to section4 -->
+
+ <!-- Each global variable hold the outline level which has been mapped to one of the four sections in DocBook -->
+ <xsl:variable name="section1_OutlineLevel">
+ <xsl:call-template name="findOutlineLevel">
+ <xsl:with-param name="candidateOutlineLevel" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="section2_OutlineLevel">
+ <xsl:call-template name="findOutlineLevel">
+ <xsl:with-param name="candidateOutlineLevel" select="$section1_OutlineLevel + 1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="section3_OutlineLevel">
+ <xsl:call-template name="findOutlineLevel">
+ <xsl:with-param name="candidateOutlineLevel" select="$section2_OutlineLevel + 1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="section4_OutlineLevel">
+ <xsl:call-template name="findOutlineLevel">
+ <xsl:with-param name="candidateOutlineLevel" select="$section3_OutlineLevel + 1"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- get the minimum available heading outline level (usually '1') -->
+ <xsl:template name="findOutlineLevel">
+ <xsl:param name="candidateOutlineLevel"/>
+ <xsl:choose>
+ <xsl:when test="key('getHeadingsByOutline', $candidateOutlineLevel)[1]/@text:level != ''">
+ <xsl:value-of select="$candidateOutlineLevel"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$candidateOutlineLevel &lt; 11">
+ <xsl:call-template name="findOutlineLevel">
+ <xsl:with-param name="candidateOutlineLevel" select="$candidateOutlineLevel + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- START -->
+ <xsl:template match="/*">
+ <xsl:element name="article">
+ <xsl:attribute name="lang">
+ <xsl:value-of select="/*/office:meta/dc:language"/>
+ </xsl:attribute>
+ <!-- page style header -->
+ <xsl:call-template name="page-style">
+ <xsl:with-param name="area" select="'header'"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="office:body"/>
+ <!-- page style footer -->
+ <xsl:call-template name="page-style"/>
+ </xsl:element>
+ </xsl:template>
+
+
+ <xsl:key match="style:master-page" name="styleMasterPage" use="@style:name" />
+ <!-- using a simple heuristic for "standard" page-style heading/footer from page styles -->
+ <xsl:template name="page-style">
+ <xsl:param name="area"/>
+
+ <xsl:variable name="defaultPageStyle" select="key('styleMasterPage', 'Standard')"/>
+ <xsl:choose>
+ <xsl:when test="$area = 'header'">
+ <xsl:apply-templates select="$defaultPageStyle/style:header/*"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$defaultPageStyle/style:footer/*"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <xsl:template match="office:body">
+ <!-- here all children of office:body before the first heading are matched -->
+ <xsl:apply-templates select="key('nestedContent', generate-id())"/>
+ <!-- have to be descendant as text:h can be in a list:item in some list -->
+ <xsl:variable name="firstHeading" select="descendant::text:h[1]"/>
+ <!-- changing the context node from office:body to text:h as required for used key functions -->
+ <xsl:for-each select="descendant::text:h[@text:level=$section1_OutlineLevel][1]">
+ <!-- if the first heading is not of the section1 level -->
+ <xsl:if test="generate-id(.) != generate-id($firstHeading)">
+ <!-- create an anonymous section1 and embrace all headings preceding the first real existent section1 -->
+ <xsl:element name="sect1">
+ <title></title>
+ <!-- create sections for all the first section1 preluding headings -->
+ <xsl:for-each select="key('getHeadingsByOutline', $section1_OutlineLevel)[1]/preceding::text:h">
+ <xsl:call-template name="make-section">
+ <xsl:with-param name="previousSectionLevel" select="$section1_OutlineLevel"/>
+ <xsl:with-param name="currentSectionLevel">
+ <xsl:call-template name="getSectionLevel">
+ <xsl:with-param name="outlineLevel" select="@text:level"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ <!-- match all headings, which are mapped to section1 to create a nested section structure used in docbook (see first comment after copyright) -->
+ <xsl:apply-templates mode="recreateStructure" select="descendant::text:h[@text:level = $section1_OutlineLevel]"/>
+ </xsl:template>
+
+ <xsl:template match="text:h" mode="recreateStructure">
+ <!-- relate the current ODF outline level of the heading to one of the four docbook section levels-->
+ <xsl:variable name="currentSectionLevel">
+ <xsl:call-template name="getSectionLevel">
+ <xsl:with-param name="outlineLevel" select="@text:level"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- heading with outline level 1 might be an Abstract -->
+ <xsl:when test="$currentSectionLevel = 1">
+ <xsl:choose>
+ <!-- when the content of a level 1 heading is 'Abstract' the <abstract> docbook element is used instead of <section1> -->
+ <xsl:when test=".='Abstract'">
+ <abstract>
+ <xsl:apply-templates select="key('nestedContent', generate-id())"/>
+ <xsl:apply-templates select="key('nestedHeadings', generate-id())" mode="recreateStructure"/>
+ </abstract>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="make-section">
+ <xsl:with-param name="currentSectionLevel" select="$currentSectionLevel"/>
+ <xsl:with-param name="previousSectionLevel" select="$currentSectionLevel"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="previousHeading" select="preceding::text:h[@text:level &lt; current()/@text:level][1]"/>
+ <xsl:choose>
+ <xsl:when test="$previousHeading/@text:level != ''">
+ <xsl:call-template name="make-section">
+ <xsl:with-param name="currentSectionLevel" select="$currentSectionLevel"/>
+ <xsl:with-param name="previousSectionLevel">
+ <xsl:call-template name="getSectionLevel">
+ <xsl:with-param name="outlineLevel" select="$previousHeading/@text:level"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="make-section">
+ <xsl:with-param name="currentSectionLevel" select="$currentSectionLevel"/>
+ <xsl:with-param name="previousSectionLevel" select="$currentSectionLevel"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="text:bookmark | text:bookmark-start">
+ <xsl:element name="anchor">
+ <xsl:attribute name="id">
+ <!-- ID have to be an NCName which have to start with a letter or '_'
+ in case of the frequent starting number a '_' will be added as prefix -->
+ <xsl:choose>
+ <xsl:when test="(starts-with(@text:name, '0') or
+ starts-with(@text:name, '1') or
+ starts-with(@text:name, '2') or
+ starts-with(@text:name, '3') or
+ starts-with(@text:name, '4') or
+ starts-with(@text:name, '5') or
+ starts-with(@text:name, '6') or
+ starts-with(@text:name, '7') or
+ starts-with(@text:name, '8') or
+ starts-with(@text:name, '9'))">
+ <xsl:value-of select="concat('_', @text:name)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@text:name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template name="getSectionLevel">
+ <xsl:param name="outlineLevel"/>
+ <xsl:choose>
+ <xsl:when test="$outlineLevel = $section1_OutlineLevel">1</xsl:when>
+ <xsl:when test="$outlineLevel = $section2_OutlineLevel">2</xsl:when>
+ <xsl:when test="$outlineLevel = $section3_OutlineLevel">3</xsl:when>
+ <xsl:otherwise>4</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- make-section creates the nested section hierarchy and
+ in case the difference between the parent section and the new section is higher than one
+ a section is inserted to keep the output format valid -->
+ <xsl:template name="make-section">
+ <xsl:param name="currentSectionLevel"/>
+ <xsl:param name="previousSectionLevel"/>
+ <xsl:choose>
+ <!-- empty title as it is an empty section between two headings with an outline level difference higher than 1 -->
+ <xsl:when test="$currentSectionLevel &gt; $previousSectionLevel+1">
+ <xsl:element name="{concat('sect', $previousSectionLevel + 1)}">
+ <title></title>
+ <xsl:call-template name="make-section">
+ <xsl:with-param name="currentSectionLevel" select="$currentSectionLevel"/>
+ <xsl:with-param name="previousSectionLevel" select="$previousSectionLevel +1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{concat('sect', $currentSectionLevel)}">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+ <xsl:apply-templates select="key('nestedContent', generate-id())"/>
+ <xsl:apply-templates select="key('nestedHeadings', generate-id())" mode="recreateStructure"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template match="office:meta">
+ <!--<xsl:apply-templates/>--></xsl:template>
+
+ <xsl:template match="meta:editing-cycles"></xsl:template>
+
+ <xsl:template match="meta:user-defined"></xsl:template>
+
+ <xsl:template match="meta:editing-duration"></xsl:template>
+
+ <xsl:template match="dc:language"></xsl:template>
+
+ <xsl:template match="dc:date">
+ <!--<pubdate>
+ <xsl:value-of select="substring-before(.,'T')"/>
+ </pubdate>--></xsl:template>
+
+ <xsl:template match="meta:creation-date"></xsl:template>
+
+ <xsl:template match="office:styles">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="office:script"></xsl:template>
+
+
+ <xsl:template match="office:settings"></xsl:template>
+
+ <xsl:template match="office:font-decls"></xsl:template>
+
+ <xsl:template match="text:section">
+ <xsl:choose>
+ <xsl:when test="@text:name='ArticleInfo'">
+ <articleinfo>
+ <title>
+ <xsl:value-of select="text:p[@text:style-name='Document Title']"/>
+ </title>
+ <subtitle>
+ <xsl:value-of select="text:p[@text:style-name='Document SubTitle']"/>
+ </subtitle>
+ <edition>
+ <xsl:value-of select="text:p/text:variable-set[@text:name='articleinfo.edition']"/>
+ </edition>
+ <xsl:for-each select="text:p/text:variable-set[substring-after(@text:name,'articleinfo.releaseinfo')]">
+ <releaseinfo>
+ <xsl:value-of select="."/>
+ </releaseinfo>
+ </xsl:for-each>
+ <xsl:call-template name="ArticleInfo">
+ <xsl:with-param name="level" select="0"/>
+ </xsl:call-template>
+ </articleinfo>
+ </xsl:when>
+ <xsl:when test="@text:name='Abstract'">
+ <abstract>
+ <xsl:apply-templates/>
+ </abstract>
+ </xsl:when>
+ <xsl:when test="@text:name='Appendix'">
+ <appendix>
+ <xsl:apply-templates/>
+ </appendix>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{concat('sect', count(ancestor::text:section) + 1)}">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@text:name"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="ArticleInfo">
+ <xsl:param name="level"/>
+ <xsl:variable name="author">
+ <xsl:value-of select="concat('articleinfo.author_','', $level)"/>
+ </xsl:variable>
+ <xsl:if test="text:p/text:variable-set[contains(@text:name, $author )]">
+ <xsl:call-template name="Author">
+ <xsl:with-param name="AuthorLevel" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="Copyright">
+ <xsl:with-param name="CopyrightLevel" select="0"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="Copyright">
+ <xsl:param name="CopyrightLevel"/>
+
+ <xsl:variable name="Copyright">
+ <xsl:value-of select="concat('articleinfo.copyright_','', $CopyrightLevel)"/>
+ </xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[contains(@text:name,$Copyright)]">
+ <copyright>
+ <xsl:call-template name="Year">
+ <xsl:with-param name="CopyrightLevel" select="$CopyrightLevel"/>
+ <xsl:with-param name="YearlLevel" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="Holder">
+ <xsl:with-param name="CopyrightLevel" select="$CopyrightLevel"/>
+ <xsl:with-param name="HolderlLevel" select="0"/>
+
+ </xsl:call-template>
+ </copyright>
+ </xsl:if>
+ </xsl:template>
+
+
+ <xsl:template name="Year">
+ <xsl:param name="CopyrightLevel"/>
+ <xsl:param name="YearLevel"/>
+ <xsl:variable name="Copyright">
+ <xsl:value-of select="concat('articleinfo.copyright_','', $CopyrightLevel)"/>
+ </xsl:variable>
+ <xsl:variable name="Year">
+ <xsl:value-of select="concat($Copyright,'',concat('.year_','',$YearLevel))"/>
+ </xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Year]">
+ <orgname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Year]"/>
+ </orgname>
+ </xsl:if>
+ </xsl:template>
+
+
+ <xsl:template name="Holder">
+ <xsl:param name="CopyrightLevel"/>
+ <xsl:param name="HolderLevel"/>
+ <xsl:variable name="Copyright">
+ <xsl:value-of select="concat('articleinfo.copyright_','', $CopyrightLevel)"/>
+ </xsl:variable>
+ <xsl:variable name="Holder">
+ <xsl:value-of select="concat($Copyright,'',concat('.holder_','',$HolderLevel))"/>
+ </xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Holder]">
+ <orgname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Holder]"/>
+ </orgname>
+ </xsl:if>
+ </xsl:template>
+
+
+
+ <xsl:template name="Author">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:variable name="Author">
+ <xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/>
+ </xsl:variable>
+ <xsl:if test="text:p/text:variable-set[contains(@text:name, $Author )]">
+ <author>
+ <xsl:call-template name="Surname">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="SurnameLevel" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="Firstname">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="FirstnameLevel" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="Affiliation">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="AffilLevel" select="0"/>
+ </xsl:call-template>
+ </author>
+ <xsl:call-template name="Author">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel+1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+
+ <xsl:template name="Surname">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="SurnameLevel"/>
+ <xsl:variable name="Author">
+ <xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/>
+ </xsl:variable>
+ <xsl:variable name="Surname">
+ <xsl:value-of select="concat($Author,'',concat('.surname_','',$SurnameLevel))"/>
+ </xsl:variable>
+ <xsl:if test="text:p/text:variable-set[@text:name=$Surname]">
+ <surname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Surname]"/>
+ </surname>
+ <xsl:call-template name="Surname">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="SurnameLevel" select="SurnameLevel+1"/>
+ </xsl:call-template>
+
+ </xsl:if>
+ </xsl:template>
+
+
+
+
+ <xsl:template name="Firstname">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="FirstnameLevel"/>
+ <xsl:variable name="Author">
+ <xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/>
+ </xsl:variable>
+ <xsl:variable name="Firstname">
+ <xsl:value-of select="concat($Author,'',concat('.firstname_','',$FirstnameLevel))"/>
+ </xsl:variable>
+ <xsl:if test="text:p/text:variable-set[@text:name=$Firstname]">
+ <firstname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Firstname]"/>
+ </firstname>
+ <xsl:call-template name="Surname">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="FirstnameLevel" select="FirstnameLevel+1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+
+
+ <xsl:template name="Affiliation">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="AffilLevel"/>
+ <xsl:variable name="Author">
+ <xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/>
+ </xsl:variable>
+ <xsl:variable name="Affil">
+ <xsl:value-of select="concat($Author,'',concat('.affiliation_','',$AffilLevel))"/>
+ </xsl:variable>
+ <xsl:if test="text:p/text:variable-set[contains(@text:name,$Affil)]">
+ <affiliation>
+ <xsl:call-template name="Orgname">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="AffilLevel" select="$AffilLevel"/>
+ <xsl:with-param name="OrgLevel" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="Address">
+ <xsl:with-param name="AuthorLevel" select="$AuthorLevel"/>
+ <xsl:with-param name="AffilLevel" select="$AffilLevel"/>
+ <xsl:with-param name="AddressLevel" select="0"/>
+
+ </xsl:call-template>
+ </affiliation>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="Orgname">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="AffilLevel"/>
+ <xsl:param name="OrgLevel"/>
+
+ <xsl:variable name="Author">
+ <xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/>
+ </xsl:variable>
+ <xsl:variable name="Affil">
+ <xsl:value-of select="concat($Author,'',concat('.affiliation_','',$AffilLevel))"/>
+ </xsl:variable>
+ <xsl:variable name="Org">
+ <xsl:value-of select="concat($Affil,'',concat('.orgname_','',$OrgLevel))"/>
+ </xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Org]">
+ <orgname>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Org]"/>
+ </orgname>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="Address">
+ <xsl:param name="AuthorLevel"/>
+ <xsl:param name="AffilLevel"/>
+ <xsl:param name="AddressLevel"/>
+
+ <xsl:variable name="Author">
+ <xsl:value-of select="concat('articleinfo.author_','', $AuthorLevel)"/>
+ </xsl:variable>
+ <xsl:variable name="Affil">
+ <xsl:value-of select="concat($Author,'',concat('.affiliation_','',$AffilLevel))"/>
+ </xsl:variable>
+ <xsl:variable name="Address">
+ <xsl:value-of select="concat($Affil,'',concat('.address_','',$AddressLevel))"/>
+ </xsl:variable>
+
+ <xsl:if test="text:p/text:variable-set[@text:name=$Address]">
+ <address>
+ <xsl:value-of select="text:p/text:variable-set[@text:name=$Address]"/>
+ </address>
+ </xsl:if>
+ </xsl:template>
+
+
+
+
+ <xsl:template match="text:p[@text:style-name='Document Title']"></xsl:template>
+
+ <xsl:template match="text:p[@text:style-name='Document SubTitle']"></xsl:template>
+
+
+ <xsl:template match="text:p[@text:style-name='Section Title']">
+ <xsl:element name="title">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="text:p[@text:style-name='Appendix Title']">
+ <xsl:element name="title">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+
+<!--<xsl:template match="text:p[@text:style-name='VarList Item']">
+ <xsl:if test="not(preceding-sibling::text:p[@text:style-name='VarList Item'])">
+ <xsl:text disable-output-escaping="yes">&lt;listitem&gt;</xsl:text>
+ </xsl:if>
+ <para>
+ <xsl:apply-templates/>
+ </para>
+ <xsl:if test="not(following-sibling::text:p[@text:style-name='VarList Item'])">
+ <xsl:text disable-output-escaping="yes">&lt;/listitem&gt;</xsl:text>
+ </xsl:if>
+</xsl:template>-->
+
+
+ <xsl:template match="text:p[@text:style-name='Section1 Title']">
+ <xsl:element name="title">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+
+ <xsl:template match="text:p[@text:style-name='Section2 Title']">
+ <xsl:element name="title">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+
+ <xsl:template match="text:p[@text:style-name='Section3 Title']">
+ <xsl:element name="title">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="text:footnote-citation"></xsl:template>
+
+ <xsl:template match="text:p[@text:style-name='Mediaobject']">
+ <mediaobject>
+ <xsl:apply-templates/>
+ </mediaobject>
+ </xsl:template>
+
+ <xsl:template match="office:annotation/text:p">
+ <note>
+ <remark>
+ <xsl:apply-templates/>
+ </remark>
+ </note>
+ </xsl:template>
+
+<!--<xsl:template match="meta:initial-creator">
+ <author>
+ <xsl:apply-templates />
+ </author>
+</xsl:template>-->
+
+ <xsl:template match="table:table">
+ <xsl:choose>
+ <xsl:when test="following-sibling::text:p[@text:style-name='Table']">
+ <table frame="all">
+ <xsl:attribute name="id">
+ <xsl:value-of select="@table:name"/>
+ </xsl:attribute>
+ <title>
+ <xsl:value-of select="following-sibling::text:p[@text:style-name='Table']"/>
+ </title>
+ <xsl:call-template name="generictable"/>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <informaltable frame="all">
+ <xsl:call-template name="generictable"/>
+ </informaltable>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="generictable">
+ <xsl:variable name="cells" select="count(descendant::table:table-cell)"></xsl:variable>
+ <xsl:variable name="rows">
+ <xsl:value-of select="count(descendant::table:table-row)"/>
+ </xsl:variable>
+ <xsl:variable name="cols">
+ <xsl:value-of select="$cells div $rows"/>
+ </xsl:variable>
+ <xsl:variable name="numcols">
+ <xsl:choose>
+ <xsl:when test="child::table:table-column/@table:number-columns-repeated">
+ <xsl:value-of select="number(table:table-column/@table:number-columns-repeated+1)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$cols"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="tgroup">
+ <xsl:attribute name="cols">
+ <xsl:value-of select="$numcols"/>
+ </xsl:attribute>
+ <xsl:call-template name="colspec">
+ <xsl:with-param name="left" select="1"/>
+ </xsl:call-template>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template name="colspec">
+ <xsl:param name="left"/>
+ <xsl:if test="number($left &lt; ( table:table-column/@table:number-columns-repeated +2) )">
+ <xsl:element name="colspec">
+ <xsl:attribute name="colnum">
+ <xsl:value-of select="$left"/>
+ </xsl:attribute>
+ <xsl:attribute name="colname">c<xsl:value-of select="$left"/>
+ </xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="colspec">
+ <xsl:with-param name="left" select="$left+1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="table:table-column">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="table:table-header-rows">
+ <thead>
+ <xsl:apply-templates/>
+ </thead>
+ </xsl:template>
+
+ <xsl:template match="table:table-header-rows/table:table-row">
+ <row>
+ <xsl:apply-templates/>
+ </row>
+ </xsl:template>
+
+ <xsl:template match="table:table/table:table-row">
+ <xsl:if test="not(preceding-sibling::table:table-row)">
+ <xsl:text disable-output-escaping="yes">&lt;tbody&gt;</xsl:text>
+ </xsl:if>
+ <row>
+ <xsl:apply-templates/>
+ </row>
+ <xsl:if test="not(following-sibling::table:table-row)">
+ <xsl:text disable-output-escaping="yes">&lt;/tbody&gt;</xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="table:table-cell">
+ <xsl:element name="entry">
+ <xsl:if test="@table:number-columns-spanned >'1'">
+ <xsl:attribute name="namest">
+ <xsl:value-of select="concat('c',count(preceding-sibling::table:table-cell[not(@table:number-columns-spanned)]) +sum(preceding-sibling::table:table-cell/@table:number-columns-spanned)+1)"/>
+ </xsl:attribute>
+ <xsl:attribute name="nameend">
+ <xsl:value-of select="concat('c',count(preceding-sibling::table:table-cell[not(@table:number-columns-spanned)]) +sum(preceding-sibling::table:table-cell/@table:number-columns-spanned)+ @table:number-columns-spanned)"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="text:p">
+ <xsl:choose>
+ <xsl:when test="@text:style-name='Table'"></xsl:when>
+ <xsl:otherwise>
+ <para>
+ <xsl:apply-templates/>
+ </para>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:key match="text:list-style" name="getListStyle" use="@style:name"/>
+
+ <xsl:template match="text:ordered-list">
+ <xsl:param name="outlineLevel" select="1"/>
+
+ <xsl:variable name="listStyle" select="key('getListStyle', @text:style-name)/*[@text:level = $outlineLevel]"/>
+
+ <!-- if the list is not recognizable as a list (e.g. no indent, number/bullet, etc.) the list will be ignored -->
+ <xsl:if test="$listStyle/style:properties/@*">
+ <orderedlist>
+ <xsl:apply-templates>
+ <xsl:with-param name="itemType" select="'listitem'"/>
+ <xsl:with-param name="outlineLevel" select="$outlineLevel + 1"/>
+ </xsl:apply-templates>
+ </orderedlist>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="text:unordered-list">
+ <xsl:param name="outlineLevel" select="1"/>
+
+ <xsl:variable name="listStyle" select="key('getListStyle', @text:style-name)/*[@text:level = $outlineLevel]"/>
+ <!-- if the list is not recognizable as a list (e.g. no indent, number/bullet, etc.) the list will be ignored -->
+ <xsl:if test="$listStyle/style:properties/@*">
+ <xsl:choose>
+ <xsl:when test="@text:style-name='Var List'">
+ <variablelist>
+ <xsl:apply-templates>
+ <xsl:with-param name="itemType" select="'varlist'"/>
+ <xsl:with-param name="outlineLevel" select="$outlineLevel + 1"/>
+ </xsl:apply-templates>
+ </variablelist>
+ </xsl:when>
+ <xsl:otherwise>
+ <itemizedlist>
+ <xsl:apply-templates>
+ <xsl:with-param name="itemType" select="'listitem'"/>
+ <xsl:with-param name="outlineLevel" select="$outlineLevel + 1"/>
+ </xsl:apply-templates>
+ </itemizedlist>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="text:list-item | text:list-header">
+ <xsl:param name="listType"/>
+ <xsl:param name="outlineLevel"/>
+
+ <xsl:choose>
+ <xsl:when test="$listType='Var List'">
+ <xsl:element name="varlistentry">
+ <xsl:apply-templates>
+ <xsl:with-param name="outlineLevel" select="$outlineLevel"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="listitem">
+ <xsl:apply-templates>
+ <xsl:with-param name="outlineLevel" select="$outlineLevel"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="text:p[@text:style-name='VarList Term']">
+ <xsl:element name="term">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="text:p[@text:style-name='VarList Item']">
+ <xsl:element name="para">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- text headings should only be matched once, when creating a nested docbook section structure, but might be as well become as part of a list a title -->
+ <xsl:template match="text:h">
+ <title>
+ <xsl:apply-templates/>
+ </title>
+ </xsl:template>
+
+ <xsl:template match="dc:title"></xsl:template>
+
+ <xsl:template match="dc:description">
+ <abstract>
+ <para>
+ <xsl:apply-templates/>
+ </para>
+ </abstract>
+ </xsl:template>
+
+ <xsl:template match="dc:subject"></xsl:template>
+
+
+ <xsl:template match="meta:generator"></xsl:template>
+
+ <xsl:template match="draw:plugin">
+ <xsl:element name="audioobject">
+ <xsl:attribute name="fileref">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:attribute name="width"></xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="text:footnote">
+ <footnote>
+ <xsl:apply-templates/>
+ </footnote>
+ </xsl:template>
+
+ <xsl:template match="text:footnote-body">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+
+ <xsl:template match="draw:text-box"></xsl:template>
+
+
+
+ <xsl:template match="draw:image">
+ <xsl:choose>
+ <xsl:when test="parent::text:p[@text:style-name='Mediaobject']">
+ <xsl:element name="imageobject">
+ <xsl:element name="imagedata">
+ <xsl:attribute name="fileref">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ </xsl:element>
+ <xsl:element name="caption">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="inlinegraphic">
+ <xsl:attribute name="fileref">
+ <xsl:choose>
+ <xsl:when test="@xlink:href != ''">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>embedded:</xsl:text>
+ <xsl:value-of select="@draw:name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="width">
+ <xsl:value-of select="@svg:width"/>
+ </xsl:attribute>
+ <xsl:attribute name="depth">
+ <xsl:value-of select="@svg:height"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template match="text:span">
+ <xsl:choose>
+ <xsl:when test="./@text:style-name='GuiMenu'">
+ <xsl:element name="guimenu">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="./@text:style-name='GuiSubMenu'">
+ <xsl:element name="guisubmenu">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='GuiMenuItem'">
+ <xsl:element name="guimenuitem">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='GuiButton'">
+ <xsl:element name="guibutton">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='GuiButton'">
+ <xsl:element name="guibutton">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='GuiLabel'">
+ <xsl:element name="guilabel">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='Emphasis'">
+ <xsl:element name="emphasis">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='FileName'">
+ <xsl:element name="filename">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='Application'">
+ <xsl:element name="application">
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='Command'">
+ <command>
+ <xsl:apply-templates/>
+ </command>
+ </xsl:when>
+ <xsl:when test="@text:style-name='SubScript'">
+ <subscript>
+ <xsl:apply-templates/>
+ </subscript>
+ </xsl:when>
+ <xsl:when test="@text:style-name='SuperScript'">
+ <superscript>
+ <xsl:apply-templates/>
+ </superscript>
+ </xsl:when>
+ <xsl:when test="@text:style-name='SystemItem'">
+ <systemitem>
+ <xsl:apply-templates/>
+ </systemitem>
+ </xsl:when>
+ <xsl:when test="@text:style-name='ComputerOutput'">
+ <computeroutput>
+ <xsl:apply-templates/>
+ </computeroutput>
+ </xsl:when>
+ <xsl:when test="@text:style-name='Highlight'">
+ <highlight>
+ <xsl:apply-templates/>
+ </highlight>
+ </xsl:when>
+ <xsl:when test="@text:style-name='KeyCap'">
+ <keycap>
+ <xsl:apply-templates/>
+ </keycap>
+ </xsl:when>
+ <xsl:when test="@text:style-name='KeySym'">
+ <xsl:element name="keysym">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@text:style-name='KeyCombo'">
+ <keycombo>
+ <xsl:apply-templates/>
+ </keycombo>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+
+ <xsl:template match="text:a">
+ <xsl:choose>
+ <xsl:when test="contains(@xlink:href,'://')">
+ <xsl:element name="ulink">
+ <xsl:attribute name="url">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="contains(@xlink:href,'mailto:')">
+ <xsl:element name="ulink">
+ <xsl:attribute name="url">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="not(contains(@xlink:href,'#'))">
+ <xsl:element name="olink">
+ <xsl:attribute name="targetdocent">
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="linkvar" select="substring-after(@xlink:href,'#')"/>
+ <xsl:element name="link">
+ <xsl:attribute name="linkend">
+ <xsl:value-of select="substring-before($linkvar,'%')"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+<!--
+ Change Made By Kevin Fowlks (fowlks@msu.edu) July 2nd, 2003
+ This allows users to create example code in DocBook.
+
+ Note: This type of grouping could also be implemented for
+ <notes>,<literallayout>, <blockquote> or any other tag that requires text to be treated as blocked.
+-->
+ <xsl:template match="text:p[@text:style-name='Example']">
+ <xsl:if test="not(preceding-sibling::*[1][self::text:p[@text:style-name='Example']])">
+ <xsl:element name="example">
+ <xsl:element name="title"></xsl:element>
+ <xsl:element name="programlisting">
+ <xsl:value-of select="."/>
+ <xsl:text disable-output-escaping="no">&#xD;</xsl:text>
+ <xsl:apply-templates mode="in-list" select="following-sibling::*[1][self::text:p[@text:style-name='Example']]"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="text:p[@text:style-name='Example']" mode="in-list">
+ <xsl:value-of select="."/>
+ <xsl:text disable-output-escaping="no">&#xD;</xsl:text>
+ <xsl:apply-templates mode="in-list" select="following-sibling::*[1][self::text:p[@text:style-name='Example']]"/>
+ </xsl:template>
+
+ <!-- ****************** -->
+ <!-- *** Whitespace *** -->
+ <!-- ****************** -->
+
+ <xsl:template match="text:s">
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="@text:c"/>
+ </xsl:call-template>
+ </xsl:template>
+
+
+ <!--write the number of 'whitespaces' -->
+ <xsl:template name="write-breakable-whitespace">
+ <xsl:param name="whitespaces"/>
+
+ <!--write two space chars as the normal white space character will be stripped
+ and the other is able to break -->
+ <xsl:text>&#160;</xsl:text>
+ <xsl:if test="$whitespaces >= 2">
+ <xsl:call-template name="write-breakable-whitespace-2">
+ <xsl:with-param name="whitespaces" select="$whitespaces - 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+
+ <!--write the number of 'whitespaces' -->
+ <xsl:template name="write-breakable-whitespace-2">
+ <xsl:param name="whitespaces"/>
+ <!--write two space chars as the normal white space character will be stripped
+ and the other is able to break -->
+ <xsl:text> </xsl:text>
+ <xsl:if test="$whitespaces >= 2">
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="$whitespaces - 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="text:tab-stop">
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="8"/>
+ </xsl:call-template>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/common/body.xsl b/test/user-template/user/xslt/export/common/body.xsl
new file mode 100644
index 000000000000..96f7d3ce691c
--- /dev/null
+++ b/test/user-template/user/xslt/export/common/body.xsl
@@ -0,0 +1,422 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://xml.apache.org/xslt/java" xmlns:urlencoder="http://www.jclark.com/xt/java/java.net.URLEncoder" exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi java urlencoder">
+
+
+ <xsl:include href="table_of_content.xsl"/>
+
+
+ <!-- ****************** -->
+ <!-- *** Whitespace *** -->
+ <!-- ****************** -->
+
+ <xsl:template match="text:s">
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="@text:c"/>
+ </xsl:call-template>
+ </xsl:template>
+
+
+ <!--write the number of 'whitespaces' -->
+ <xsl:template name="write-breakable-whitespace">
+ <xsl:param name="whitespaces"/>
+
+ <!--write two space chars as the normal white space character will be stripped
+ and the other is able to break -->
+ <xsl:text>&#160;</xsl:text>
+ <xsl:if test="$whitespaces >= 2">
+ <xsl:call-template name="write-breakable-whitespace-2">
+ <xsl:with-param name="whitespaces" select="$whitespaces - 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+
+ <!--write the number of 'whitespaces' -->
+ <xsl:template name="write-breakable-whitespace-2">
+ <xsl:param name="whitespaces"/>
+ <!--write two space chars as the normal white space character will be stripped
+ and the other is able to break -->
+ <xsl:text> </xsl:text>
+ <xsl:if test="$whitespaces >= 2">
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="$whitespaces - 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- currentSolution: 8 non-breakable-spaces instead of a TAB is an approximation.
+ Sometimes less spaces than 8 might be needed and the output might be more difficult to read-->
+ <xsl:template match="text:tab">
+ <xsl:param name="globalData"/>
+
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="8"/>
+ </xsl:call-template>
+ </xsl:template>
+
+
+
+ <!-- *************** -->
+ <!-- *** Textbox *** -->
+ <!-- *************** -->
+
+ <!-- ID / NAME of text-box -->
+ <xsl:template match="@draw:name">
+ <xsl:attribute name="id">
+ <xsl:choose>
+ <xsl:when test="number(substring(.,1,1))">
+ <!-- Heuristic: If the first character is a number a 'a_' will be set
+ as prefix, as id have to be of type NMTOKEN -->
+ <xsl:value-of select="concat('a_',translate(., '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate(., '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:template>
+
+
+ <xsl:template match="text:line-break">
+ <xsl:param name="listIndent"/>
+
+ <xsl:element namespace="{$namespace}" name="br"/>
+
+ <!-- line breaks in lists need an indent similar to the list label -->
+ <xsl:if test="$listIndent">
+ <xsl:element namespace="{$namespace}" name="span">
+ <xsl:attribute name="style">margin-left:<xsl:value-of select="$listIndent"/>cm</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+
+ <!-- currently there have to be an explicit call of the style attribute nodes, maybe the attributes nodes have no priority only order relevant-->
+ <xsl:template name="apply-styles-and-content">
+ <xsl:param name="globalData"/>
+ <xsl:param name="footnotePrefix" />
+ <xsl:apply-templates select="@*">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ <!-- the footnote symbol is the prefix for a footnote in the footer -->
+ <xsl:copy-of select="$footnotePrefix"/>
+ <xsl:apply-templates select="node()">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+
+ <!-- ******************* -->
+ <!-- *** References *** -->
+ <!-- ******************* -->
+
+ <xsl:template match="text:reference-ref | text:sequence-ref">
+ <xsl:param name="globalData"/>
+ <xsl:element namespace="{$namespace}" name="a">
+ <xsl:attribute name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:choose>
+ <xsl:when test="number(substring(@text:ref-name,1,1))">
+ <!-- Heuristic: If the first character is a number a 'a_' will be set
+ as prefix, as id have to be of type NMTOKEN -->
+ <xsl:value-of select="concat('a_',translate(@text:ref-name, '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate(@text:ref-name, '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+
+ <xsl:apply-templates select="@* | node()">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="@text:name">
+ <xsl:attribute name="id">
+ <xsl:choose>
+ <xsl:when test="number(substring(.,1,1))">
+ <!-- Heuristic: If the first character is a number a 'a_' will be set
+ as prefix, as id have to be of type NMTOKEN -->
+ <xsl:value-of select="concat('a_',translate(., '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate(., '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="text:sequence">
+ <xsl:param name="globalData"/>
+
+ <xsl:element namespace="{$namespace}" name="a">
+ <xsl:apply-templates select="@*" />
+ <xsl:attribute name="id">
+ <xsl:choose>
+ <xsl:when test="number(substring(@text:ref-name,1,1))">
+ <!-- Heuristic: If the first character is a number a 'a_' will be set
+ as prefix, as id have to be of type NMTOKEN -->
+ <xsl:value-of select="concat('a_',translate(@text:ref-name, '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate(@text:ref-name, '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:element>
+
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="text:reference-mark">
+ <xsl:param name="globalData"/>
+
+ <xsl:element namespace="{$namespace}" name="a">
+ <xsl:apply-templates select="@*" />
+ <xsl:attribute name="id">
+ <xsl:choose>
+ <xsl:when test="number(substring(@text:name,1,1))">
+ <!-- Heuristic: If the first character is a number a 'a_' will be set
+ as prefix, as id have to be of type NMTOKEN -->
+ <xsl:value-of select="concat('a_',translate(@text:name, '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate(@text:name, '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:element>
+
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+
+ <xsl:template match="text:reference-mark-start">
+ <xsl:param name="globalData"/>
+
+ <xsl:element namespace="{$namespace}" name="a">
+ <xsl:apply-templates select="@*" />
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="text:bibliography-mark">
+ <xsl:param name="globalData"/>
+
+ <xsl:element namespace="{$namespace}" name="a">
+ <xsl:apply-templates select="@* | node()">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- @text:title exist only in text:bibliography-mark -->
+ <xsl:template match="@text:title">
+ <xsl:attribute name="title">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <!-- @text:url exist only in text:bibliography-mark -->
+ <xsl:template match="@text:url">
+ <xsl:attribute name="href">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="text:user-defined">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+
+ <xsl:template match="office:annotation">
+ <xsl:element name="span">
+ <xsl:attribute name="title">annotation</xsl:attribute>
+ <xsl:attribute name="class">annotation_style_by_filter</xsl:attribute>
+ <xsl:apply-templates select="@*" />
+ <br/>
+ <xsl:text>[ANNOTATION:</xsl:text>
+ <br/>
+ <xsl:apply-templates select="*" mode="annotation"/>
+ <xsl:text>]</xsl:text>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="text:p" mode="annotation">
+ <br/>
+ <xsl:element name="span">
+ <xsl:text>NOTE: '</xsl:text>
+ <xsl:apply-templates />
+ <xsl:text>'</xsl:text>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="dc:creator" mode="annotation">
+ <br/>
+ <xsl:element name="span">
+ <xsl:attribute name="title">dc:creator</xsl:attribute>
+ <xsl:text>BY '</xsl:text>
+ <xsl:apply-templates />
+ <xsl:text>'</xsl:text>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="dc:date" mode="annotation">
+ <br/>
+ <xsl:element name="span">
+ <xsl:attribute name="title">dc:date</xsl:attribute>
+ <xsl:text>ON '</xsl:text>
+ <xsl:apply-templates />
+ <xsl:text>'</xsl:text>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="meta:date-string" mode="annotation">
+ <br/>
+ <xsl:element name="span">
+ <xsl:attribute name="title">meta-date-string</xsl:attribute>
+ <xsl:text>META DATE '</xsl:text>
+ <xsl:apply-templates />
+ <xsl:text>'</xsl:text>
+ </xsl:element>
+ </xsl:template>
+
+
+ <!-- *************** -->
+ <!-- *** HELPER *** -->
+ <!-- *************** -->
+
+
+ <xsl:template name="create-href">
+ <xsl:param name="href"/>
+
+ <xsl:choose>
+ <!-- internal OOo URL used in content tables -->
+ <xsl:when test="contains($href, '%7Coutline')">
+ <!-- the simple workaround for content tables in a single document is to create create an anchor from every heading element
+ work-around downside: Multiple identical headings won't refer always to the first.
+ -->
+ <xsl:text>#</xsl:text>
+ <xsl:variable name="title">
+ <xsl:apply-templates mode="concatenate"/>
+ </xsl:variable>
+
+ <xsl:value-of select="concat('a_', translate(normalize-space($title), '.,;: %()[]/\+', '_____________'))"/>
+ </xsl:when>
+ <xsl:when test="self::draw:image[office:binary-data]">
+ <xsl:text>data:image/*;base64,</xsl:text><xsl:value-of select="office:binary-data"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <!-- in case of packed open office document -->
+ <xsl:when test="starts-with($sourceBaseURL, 'jar:') or $isPackageFormat">
+ <xsl:choose>
+ <!-- for images relative to open office document -->
+ <xsl:when test="starts-with($href, '../')">
+ <!-- creating an absolute http URL to the packed image file (removing the '.')-->
+ <xsl:value-of select="concat(substring-after(substring-before($sourceBaseURL, '!'), 'jar:'), '/', $href, $optionalURLSuffix)"/>
+ </xsl:when>
+ <!-- for absolute URLs & absolute paths -->
+ <xsl:when test="contains($href, ':') or starts-with($href, '/')">
+ <xsl:value-of select="concat($href, $optionalURLSuffix)"/>
+ </xsl:when>
+ <!-- for images jared in open office document -->
+ <xsl:otherwise>
+ <xsl:value-of select="concat($sourceBaseURL, $href, $optionalURLSuffix)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <!-- for absolute URLs & Paths -->
+ <xsl:when test="contains($href, ':') or starts-with($href, '/')">
+ <xsl:value-of select="concat($href, $optionalURLSuffix)"/>
+ </xsl:when>
+ <!-- for relative URLs -->
+ <xsl:otherwise>
+ <xsl:value-of select="concat($sourceBaseURL, $href, $optionalURLSuffix)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <xsl:template match="text()" mode="concatenate">
+ <xsl:value-of select="."/>
+ </xsl:template>
+ <xsl:template match="*" mode="concatenate">
+ <xsl:apply-templates mode="concatenate"/>
+ </xsl:template>
+
+
+ <!-- ******************** -->
+ <!-- *** Common Rules *** -->
+ <!-- ******************** -->
+
+ <!-- ignore / neglect the following elements -->
+ <xsl:template match="draw:custom-shape | draw:g | office:forms | text:alphabetical-index-mark | text:alphabetical-index-mark-end | text:alphabetical-index-mark-start | text:bibliography-source | text:number | text:reference-mark-end | text:sequence-decls | text:soft-page-break | text:table-of-content-source | text:tracked-changes | text:user-field-decls"/>
+
+ <!-- default template used by purpose-->
+ <xsl:template match="text:bibliography | text:change-end | text:change-start">
+ <xsl:param name="globalData"/>
+
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <!-- default template for not recognized elements -->
+ <xsl:template match="*">
+ <xsl:param name="globalData"/>
+ <xsl:message>Using default element rule for ODF element '<xsl:value-of select="name()"/>'.</xsl:message>
+
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="@*"/>
+
+ <!-- allowing all matched text nodes -->
+ <xsl:template match="text()">
+ <xsl:value-of select="."/>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/common/ooo2ms_docpr.xsl b/test/user-template/user/xslt/export/common/ooo2ms_docpr.xsl
new file mode 100644
index 000000000000..fd3c6b9cef0c
--- /dev/null
+++ b/test/user-template/user/xslt/export/common/ooo2ms_docpr.xsl
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <xsl:template match="office:meta">
+ <o:DocumentProperties>
+ <o:Title>
+ <xsl:value-of select="dc:title"/>
+ </o:Title>
+ <o:Subject>
+ <xsl:value-of select="dc:subject"/>
+ </o:Subject>
+ <o:Keywords>
+ <xsl:for-each select="meta:keywords/meta:keyword">
+ <xsl:value-of select="."/>
+ <xsl:if test="position()!=last()">, </xsl:if>
+ </xsl:for-each>
+ </o:Keywords>
+ <o:Description>
+ <xsl:value-of select="dc:description"/>
+ </o:Description>
+ <o:Category>
+ <xsl:value-of select="meta:user-defined[@meta:name = 'Category']"/>
+ </o:Category>
+ <o:Author>
+ <xsl:value-of select="meta:initial-creator"/>
+ </o:Author>
+ <o:LastAuthor>
+ <xsl:value-of select="dc:creator"/>
+ </o:LastAuthor>
+ <o:Manager>
+ <xsl:value-of select="meta:user-defined[@meta:name = 'Manager']"/>
+ </o:Manager>
+ <o:Company>
+ <xsl:value-of select="meta:user-defined[@meta:name = 'Company']"/>
+ </o:Company>
+ <o:HyperlinkBase>
+ <xsl:value-of select="meta:user-defined[@meta:name = 'HyperlinkBase']"/>
+ </o:HyperlinkBase>
+ <o:Revision>
+ <xsl:value-of select="meta:editing-cycles"/>
+ </o:Revision>
+ <!-- PresentationFormat, Guid, AppName, Version -->
+ <o:TotalTime>
+ <xsl:if test="meta:editing-duration">
+ <xsl:variable name="hours">
+ <xsl:choose>
+ <xsl:when test="contains(meta:editing-duration, 'H')">
+ <xsl:value-of select="substring-before( substring-after( meta:editing-duration, 'PT'), 'H')"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="minutes">
+ <xsl:choose>
+ <xsl:when test="contains(meta:editing-duration, 'M') and contains(meta:editing-duration, 'H')">
+ <xsl:value-of select="substring-before( substring-after( meta:editing-duration, 'H'), 'M')"/>
+ </xsl:when>
+ <xsl:when test="contains(meta:editing-duration, 'M')">
+ <xsl:value-of select="substring-before( substring-after( meta:editing-duration, 'PT'), 'M')"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$hours * 60 + $minutes"/>
+ </xsl:if>
+ </o:TotalTime>
+ <o:LastPrinted>
+ <xsl:if test="meta:print-date">
+ <xsl:value-of select="concat( meta:print-date, 'Z')"/>
+ </xsl:if>
+ </o:LastPrinted>
+ <o:Created>
+ <xsl:if test="meta:creation-date">
+ <xsl:value-of select="concat( meta:creation-date, 'Z')"/>
+ </xsl:if>
+ </o:Created>
+ <o:LastSaved>
+ <xsl:if test="dc:date">
+ <xsl:value-of select="concat( dc:date, 'Z')"/>
+ </xsl:if>
+ </o:LastSaved>
+ <o:Pages>
+ <xsl:value-of select="meta:document-statistic/@meta:page-count"/>
+ </o:Pages>
+ <o:Words>
+ <xsl:value-of select="meta:document-statistic/@meta:word-count"/>
+ </o:Words>
+ <o:Characters>
+ <xsl:value-of select="meta:document-statistic/@meta:character-count"/>
+ </o:Characters>
+ <!-- CharactersWithSpaces, Bytes, Lines -->
+ <o:Paragraphs>
+ <xsl:value-of select="meta:document-statistic/@meta:paragraph-count"/>
+ </o:Paragraphs>
+ </o:DocumentProperties>
+ <o:CustomDocumentProperties>
+ <o:Editor dt:dt="string">
+ <xsl:value-of select="meta:generator"/>
+ </o:Editor>
+ <o:Language dt:dt="string">
+ <xsl:value-of select="dc:language"/>
+ </o:Language>
+ <xsl:for-each select="meta:user-defined">
+ <!-- transfer strings to XML QName, necessary to convert several characters -->
+ <!-- &#x7b;&#x7d; -->
+ <xsl:variable name="foo">.,| ~`!@#$%^*()&amp;&lt;&gt;+=[];:&quot;/\?{}'</xsl:variable>
+ <xsl:element name="{concat( 'o:', translate(@meta:name,string($foo),'_'))}">
+ <xsl:attribute name="dt:dt">string</xsl:attribute>
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:for-each>
+ </o:CustomDocumentProperties>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/common/styles/style_collector.xsl b/test/user-template/user/xslt/export/common/styles/style_collector.xsl
new file mode 100644
index 000000000000..5f75027d33e6
--- /dev/null
+++ b/test/user-template/user/xslt/export/common/styles/style_collector.xsl
@@ -0,0 +1,828 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xt="http://www.jclark.com/xt"
+ xmlns:common="http://exslt.org/common"
+ xmlns:xalan="http://xml.apache.org/xalan"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi xt common xalan">
+
+
+
+ <!-- ***************************************** -->
+ <!-- *** Gathering office style properties *** -->
+ <!-- ***************************************** -->
+
+ <!-- REASON FOR STYLESHEET:
+ In the OpenOffice documents styles are represented by a hierarchy.
+ (e.g. most styles are inherited from a default style).
+ Many other languages (as XHTML/CSS) do not support inherited styles.
+ The style inheritance have to be made flat/absolute for each style.
+
+ A further reason was, that the earlier style collection mechanism
+ had problems with CSS inline, which do not inherit from XML office defaults
+ nor font:family defaults as the style header does
+ (cp. stylesheet 'style_collector.xsl' and the 'write-default-styles' template)
+
+ RESULT OF STYLESHEET:
+ All styles will be returned in a variable containing styles with their inherited *:
+
+ <all-styles>
+ <style style:family="foo" style:name="x1">
+ <* fo:padding-left="0cm" fo:margin-right="0cm" />
+ </style>
+ <style style:family="muh" style:name="x2" >
+ <* fo:padding-left="3cm" ... />
+ </style>
+ ...
+
+ </all-styles>
+ -->
+
+
+ <xsl:template name="collect-global-odf-properties">
+ <!-- to access the variable as a node-set by XPATH expressions, it is necessary to convert it
+ from a result-tree-fragment (RTF) to a node set by a in a XSLT 1.0 non standarized function -->
+ <xsl:variable name="globalDataRTF">
+ <xsl:call-template name="collect-document-links-RTF" />
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="collect-style-properties">
+ <xsl:with-param name="globalData" select="common:node-set($globalDataRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="collect-style-properties">
+ <xsl:with-param name="globalData" select="xalan:nodeset($globalDataRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="collect-style-properties">
+ <xsl:with-param name="globalData" select="xt:node-set($globalDataRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">The required node-set function was not found!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+
+ <xsl:template name="collect-style-properties">
+ <xsl:param name="globalData" />
+
+ <!-- Add the input file references to the new collected style properties -->
+ <xsl:variable name="globalDataRTF">
+ <xsl:copy-of select="$globalData" />
+ <xsl:call-template name="collect-style-properties-RTF">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="map-odf-style-properties">
+ <xsl:with-param name="globalData" select="common:node-set($globalDataRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="map-odf-style-properties">
+ <xsl:with-param name="globalData" select="xalan:nodeset($globalDataRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="map-odf-style-properties">
+ <xsl:with-param name="globalData" select="xt:node-set($globalDataRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">The required node-set function was not found!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="collect-document-links-RTF">
+ <!-- works for zipped office files, unzipped office files as for flat filter single office file format as well -->
+ <xsl:variable name="documentLinksRTF">
+ <xsl:choose>
+ <xsl:when test="office:document-content">
+ <xsl:element name="styles-file" namespace="">
+ <xsl:copy-of select="document(concat($sourceBaseURL, 'styles.xml'), .)" />
+ </xsl:element>
+ <xsl:element name="meta-file" namespace="">
+ <xsl:copy-of select="document(concat($sourceBaseURL, 'meta.xml'), .)" />
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="styles-file" namespace="">
+ <xsl:copy-of select="/" />
+ </xsl:element>
+ <xsl:element name="meta-file" namespace="">
+ <xsl:copy-of select="/" />
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="collect-document-links">
+ <xsl:with-param name="documentLinks" select="common:node-set($documentLinksRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="collect-document-links">
+ <xsl:with-param name="documentLinks" select="xalan:nodeset($documentLinksRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="collect-document-links">
+ <xsl:with-param name="documentLinks" select="xt:node-set($documentLinksRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">The required node-set function was not found!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+
+ <xsl:template name="collect-document-links">
+ <xsl:param name="documentLinks" />
+
+ <xsl:element name="styles-file" namespace="">
+ <xsl:copy-of select="$documentLinks/styles-file/*" />
+ </xsl:element>
+
+ <xsl:element name="meta-file" namespace="">
+ <xsl:copy-of select="$documentLinks/meta-file/*" />
+ </xsl:element>
+
+ <xsl:copy-of select="$documentLinks/styles-file/*/office:styles" />
+ <xsl:copy-of select="$documentLinks/styles-file/*/office:font-face-decls" />
+
+ <!-- office:automatic-styles may be containted in two files (i.e. content.xml and styles.xml).
+ Wild card necessary as top level element differs from flat office files ("SampleName.fsxw") -->
+ <xsl:copy-of select="/*/office:automatic-styles" />
+
+ </xsl:template>
+
+
+ <xsl:template name="collect-style-properties-RTF">
+ <xsl:param name="globalData" />
+
+ <!--** DEFAULT STYLES: First adding some office defaults unwritten in XML -->
+ <xsl:variable name="defaultOfficeStyle-RTF">
+ <xsl:element name="style" namespace="">
+ <xsl:element name="style:properties" />
+ </xsl:element>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="collect-properties-defaults">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="defaultOfficeStyle" select="common:node-set($defaultOfficeStyle-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="collect-properties-defaults">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="defaultOfficeStyle" select="xalan:nodeset($defaultOfficeStyle-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="collect-properties-defaults">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="defaultOfficeStyle" select="xt:node-set($defaultOfficeStyle-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">ERROR: Function not found: 'Nodeset'</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="collect-properties-defaults">
+ <xsl:param name="globalData" />
+ <xsl:param name="defaultOfficeStyle" />
+
+ <!--** DEFAULT STYLES: Adding the default styles of a style:family, by adding each office:styles/style:default-style element **-->
+ <xsl:variable name="defaultFamilyStyles-RTF">
+ <xsl:for-each select="$globalData/office:styles/style:default-style">
+ <xsl:element name="style" namespace="">
+ <xsl:copy-of select="@style:family" />
+ <xsl:call-template name="create-inherited-style-properties">
+ <xsl:with-param name="inheritedStyleProperties" select="$defaultOfficeStyle/style/*" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="collect-properties">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="defaultOfficeStyle" select="$defaultOfficeStyle" />
+ <xsl:with-param name="defaultFamilyStyles" select="common:node-set($defaultFamilyStyles-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="collect-properties">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="defaultOfficeStyle" select="$defaultOfficeStyle" />
+ <xsl:with-param name="defaultFamilyStyles" select="xalan:nodeset($defaultFamilyStyles-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="collect-properties">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="defaultOfficeStyle" select="$defaultOfficeStyle" />
+ <xsl:with-param name="defaultFamilyStyles" select="xt:node-set($defaultFamilyStyles-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">ERROR: Function not found: nodeset</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="collect-properties">
+ <xsl:param name="globalData" />
+ <xsl:param name="defaultOfficeStyle" />
+ <xsl:param name="defaultFamilyStyles" />
+
+ <!--** traversee all style trees - branch after branch - collecting style properties **-->
+ <xsl:element name="all-doc-styles" namespace="">
+
+ <!-- Background Information:
+
+ There are two different types of styles in the Office:
+ 1) The office:styles from the user pre-defined style templates
+ 2) The automatic:styles, which are created whenever a user uses explicit style formatting.
+
+ The office:styles only have parent styles in the office:styles,
+ but automatic:styles may inherit from both office:styles and themself.
+ -->
+
+ <!--** traversee all office:styles trees beginning with the top-level styles **-->
+ <xsl:for-each select="$globalData/office:styles/style:style[not(@style:parent-style-name)]">
+ <!-- Looking for parents from style:family
+ <xsl:for-each select="$globalData/office:styles/style:style[@style:family=current()/@style:family][not(@style:parent-style-name)]"> -->
+ <xsl:choose>
+ <xsl:when test="$defaultFamilyStyles/style[@style:family=current()/@style:family]">
+ <xsl:call-template name="inherit-style-for-self-and-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="inheritedStyleProperties" select="$defaultFamilyStyles/style[@style:family=current()/@style:family]/*" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="false()" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inherit-style-for-self-and-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="inheritedStyleProperties" select="$defaultOfficeStyle/style/*" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="false()" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--** creates a style element with style:name and style:family attribute and
+ an element representing the absolute style properties style:property ** -->
+ </xsl:for-each>
+
+ <!--** traversee all office:automatic-styles trees beginning with the top-level styles **-->
+ <xsl:for-each select="$globalData/office:automatic-styles/style:style[not(@style:parent-style-name)]">
+ <!--** creates a style element with style:name and style:family attribute and
+ an element representing the absolute style properties style:property ** -->
+ <xsl:choose>
+ <xsl:when test="$defaultFamilyStyles/style[@style:family=current()/@style:family]">
+ <xsl:call-template name="inherit-style-for-self-and-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="inheritedStyleProperties" select="$defaultFamilyStyles/style[@style:family=current()/@style:family]/*" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="true()" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="inherit-style-for-self-and-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="inheritedStyleProperties" select="$defaultOfficeStyle/style/*" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="true()" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:for-each>
+
+ </xsl:element>
+ <!-- debug output in case only styles should be given out (regression test) -->
+ <xsl:if test="$onlyStyleOutputEnabled">
+ <xsl:element name="defaultOfficeStyle" namespace="">
+ <xsl:copy-of select="$defaultOfficeStyle" />
+ </xsl:element>
+ <xsl:element name="defaultFamilyStyles" namespace="">
+ <xsl:copy-of select="$defaultFamilyStyles" />
+ </xsl:element>
+ </xsl:if>
+
+ </xsl:template>
+
+
+ <xsl:template name="inherit-style-for-self-and-children">
+ <xsl:param name="globalData" />
+ <xsl:param name="inheritedStyleProperties" />
+ <xsl:param name="searchOnlyInAutomaticStyles" />
+
+ <!--** create an absolute style by inherting properties from the given parent properties **-->
+ <xsl:variable name="newStyleProperties-RTF">
+ <xsl:call-template name="create-inherited-style-properties">
+ <xsl:with-param name="inheritedStyleProperties" select="$inheritedStyleProperties" />
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:variable name="newStyleProperties" select="common:node-set($newStyleProperties-RTF)" />
+
+ <xsl:element name="style" namespace="">
+ <xsl:copy-of select="@style:family" />
+ <xsl:copy-of select="@style:name" />
+ <xsl:copy-of select="$newStyleProperties" />
+ </xsl:element>
+
+ <xsl:choose>
+ <xsl:when test="$searchOnlyInAutomaticStyles">
+ <xsl:call-template name="get-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="true()" />
+ <xsl:with-param name="inheritedStyleProperties" select="$newStyleProperties/*" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!--** for all automatic-children of the current office:styles **-->
+ <xsl:call-template name="get-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="false()" />
+ <xsl:with-param name="inheritedStyleProperties" select="$newStyleProperties/*" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:variable name="newStyleProperties" select="xalan:nodeset($newStyleProperties-RTF)" />
+
+ <xsl:element name="style" namespace="">
+ <xsl:copy-of select="@style:family" />
+ <xsl:copy-of select="@style:name" />
+ <xsl:copy-of select="$newStyleProperties" />
+ </xsl:element>
+
+ <xsl:choose>
+ <xsl:when test="$searchOnlyInAutomaticStyles">
+ <xsl:call-template name="get-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="true()" />
+ <xsl:with-param name="inheritedStyleProperties" select="$newStyleProperties/*" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!--** for all automatic-children of the current office:styles **-->
+ <xsl:call-template name="get-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="false()" />
+ <xsl:with-param name="inheritedStyleProperties" select="$newStyleProperties/*" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:variable name="newStyleProperties" select="xt:node-set($newStyleProperties-RTF)" />
+
+ <xsl:element name="style" namespace="">
+ <xsl:copy-of select="@style:family" />
+ <xsl:copy-of select="@style:name" />
+ <xsl:copy-of select="$newStyleProperties" />
+ </xsl:element>
+
+ <xsl:choose>
+ <xsl:when test="$searchOnlyInAutomaticStyles">
+ <xsl:call-template name="get-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="true()" />
+ <xsl:with-param name="inheritedStyleProperties" select="$newStyleProperties/*" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!--** for all automatic-children of the current office:styles **-->
+ <xsl:call-template name="get-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="false()" />
+ <xsl:with-param name="inheritedStyleProperties" select="$newStyleProperties/*" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">ERROR: Function not found: nodeset</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="get-children">
+ <xsl:param name="globalData" />
+ <xsl:param name="searchOnlyInAutomaticStyles" />
+ <xsl:param name="inheritedStyleProperties" select="*" />
+
+<!-- QUESTION: Parent style is only unique by name and family, but what about cross family inheritance? -->
+ <!-- For each child style (that is every style which has the given parentStyleName as style:parent-style-name and the same style:family -->
+ <xsl:variable name="parentStyleFamily" select="@style:family" />
+ <xsl:variable name="parentStyleName" select="@style:name" />
+ <xsl:if test="not($searchOnlyInAutomaticStyles)">
+ <xsl:for-each select="$globalData/office:styles/style:style[@style:family=$parentStyleFamily and @style:parent-style-name=$parentStyleName]">
+ <xsl:call-template name="inherit-style-for-self-and-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="inheritedStyleProperties" select="$inheritedStyleProperties" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="$searchOnlyInAutomaticStyles" />
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:for-each select="$globalData/office:automatic-styles/style:style[@style:family=$parentStyleFamily and @style:parent-style-name=$parentStyleName]">
+ <xsl:call-template name="inherit-style-for-self-and-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="inheritedStyleProperties" select="$inheritedStyleProperties" />
+ <xsl:with-param name="searchOnlyInAutomaticStyles" select="$searchOnlyInAutomaticStyles" />
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:template>
+
+
+ <xsl:template name="create-inherited-style-properties">
+ <xsl:param name="inheritedStyleProperties" />
+
+ <xsl:element name="style:properties">
+ <!-- Writing all inherited style properties -->
+ <xsl:for-each select="$inheritedStyleProperties/@*">
+ <xsl:sort select="name()" />
+ <xsl:copy-of select="." />
+ </xsl:for-each>
+
+ <!--All current attributes will override already inserted attributes of the same name
+ XSLT Spec: "Adding an attribute to an element replaces any existing attribute of that element with the same expanded-name." -->
+ <xsl:for-each select="*/@*[name() != 'style:font-size-rel']">
+ <xsl:copy-of select="." />
+ </xsl:for-each>
+
+ <xsl:if test="*/@style:font-size-rel">
+<!--
+ The intheritedStyleProperties should include a absolute Font Size, but
+ <style:properties
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ style:font-name="Courier New"
+ fo:language="en"
+ fo:country="US"
+ style:font-name-asian=Courier New"
+ style:font-name-complex="Courier New"/>
+-->
+ <xsl:variable name="fontSizeAbsolute">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$inheritedStyleProperties/@fo:font-size" />
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:variable name="fontSizeRelative">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="*/@style:font-size-rel" />
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:attribute name="fo:font-size">
+ <xsl:value-of select="$fontSizeAbsolute + $fontSizeRelative"/>
+ <xsl:text>pt</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+
+ <!-- providing tabulator indentation -->
+ <xsl:copy-of select="$inheritedStyleProperties/style:tab-stops"/>
+ <xsl:copy-of select="*/style:tab-stops"/>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- debugging & testing purpose -->
+ <xsl:template name="write-collected-styles">
+ <xsl:param name="globalData" />
+
+ <xsl:message>&lt;all-doc-styles&gt;</xsl:message>
+ <xsl:for-each select="$globalData/all-doc-styles/style">
+ <xsl:message>&lt;style</xsl:message>
+ <xsl:message>style:family="<xsl:value-of select="current()/@style:family" />"&gt;</xsl:message>
+ <xsl:message>style:name="<xsl:value-of select="current()/@style:name" />" </xsl:message>
+ <xsl:message> &lt;*</xsl:message>
+ <xsl:for-each select="*/@*">
+ <xsl:message>
+ <xsl:text></xsl:text>
+ <xsl:value-of select="name()" />="<xsl:value-of select="." />"</xsl:message>
+ </xsl:for-each>
+ <xsl:message>/&gt;</xsl:message>
+ <xsl:message>&lt;/style&gt;</xsl:message>
+ </xsl:for-each>
+ <xsl:message>&lt;/all-doc-styles&gt;</xsl:message>
+ </xsl:template>
+
+ <xsl:template name="map-odf-style-properties">
+ <xsl:param name="globalData" />
+
+ <xsl:choose>
+ <!--+++++ DEBUG STYLE OUTPUT FOR REGRESSION TEST +++++-->
+ <!-- create styles file from the style variable (testing switch) -->
+ <xsl:when test="$onlyStyleOutputEnabled">
+
+ <xsl:element name="debug-output" namespace="">
+ <xsl:copy-of select="$globalData" />
+ <xsl:call-template name="map-odf-properties">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+
+ <!-- create XHTML file -->
+ <xsl:otherwise>
+ <!-- to access the variable like a node-set it is necessary to convert it
+ from a result-tree-fragment (RTF) to a node set using the James Clark extension -->
+ <xsl:variable name="globalDataRTF">
+ <!-- raw properties still needed for table width attribute creation -->
+ <xsl:copy-of select="$globalData" />
+ <xsl:call-template name="map-odf-properties">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="start-main">
+ <xsl:with-param name="globalData" select="common:node-set($globalDataRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="start-main">
+ <xsl:with-param name="globalData" select="xalan:nodeset($globalDataRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="start-main">
+ <xsl:with-param name="globalData" select="xt:node-set($globalDataRTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">ERROR: Function not found: nodeset</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- REASON FOR TEMPLATE:
+ The OpenOffice style properities gathered in the variable 'globalData' have to be mapped to the CSS style format
+ -->
+ <xsl:template name="map-odf-properties">
+ <xsl:param name="globalData" />
+ <xsl:element name="all-styles" namespace="">
+ <xsl:for-each select="$globalData/all-doc-styles/style">
+ <xsl:sort select="@style:family" />
+ <xsl:sort select="@style:name" />
+
+ <xsl:call-template name="writeUsedStyles">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="style" select="."/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:key name="elementUsingStyle" match="*" use="@text:style-name | @draw:style-name | @draw:text-style-name | @table:style-name | @table:default-cell-style-name"/>
+ <xsl:key name="listLabelStyleInStyles" match="/*/office:styles/text:list-style/* |
+ /*/office:styles/style:graphic-properties/text:list-style/*" use="@text:style-name"/>
+
+ <xsl:key name="listLabelStyleInContent" match="/*/office:automatic-styles/text:list-style/* | /*/office:automatic-styles/style:graphic-properties/text:list-style/*" use="@text:style-name"/>
+
+
+ <xsl:variable name="documentRoot" select="/" />
+ <xsl:template name="writeUsedStyles">
+ <xsl:param name="globalData" />
+ <xsl:param name="style"/>
+
+ <!-- for-each changes the key environment from the previously globalData back to the document root -->
+ <xsl:for-each select="$documentRoot">
+ <!-- only styles, which are used in the content are written as CSS styles -->
+ <xsl:choose>
+ <xsl:when test="key('elementUsingStyle', $style/@style:name)/@* or key('listLabelStyleInContent', $style/@style:name)/@*">
+ <xsl:call-template name="writeUsedStyles2">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="style" select="$style" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="not(office:document-content)">
+ <xsl:if test="key('listLabelStyleInStyles', $style/@style:name)/@* or /*/office:styles/text:notes-configuration[@text:citation-style-name = $style/@style:name or /*/office:styles/@text:citation-body-style-name=$style/@style:name]">
+ <!-- if there are consecutive paragraphs with borders (OR background AND margin ), only the first and the last have the top/bottom border
+ unless style:join-border="false" -->
+ <xsl:call-template name="writeUsedStyles2">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="style" select="$style" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="document($stylesFileURL)">
+ <xsl:if test="key('listLabelStyleInStyles', $style/@style:name)/@* or /*/office:styles/text:notes-configuration[@text:citation-style-name = $style/@style:name or /*/office:styles/@text:citation-body-style-name=$style/@style:name]">
+ <!-- if there are consecutive paragraphs with borders (OR background AND margin ), only the first and the last have the top/bottom border
+ unless style:join-border="false" -->
+ <xsl:call-template name="writeUsedStyles2">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="style" select="$style" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="writeUsedStyles2">
+ <xsl:param name="globalData" />
+ <xsl:param name="style"/>
+ <xsl:choose>
+ <xsl:when test="
+ $style/@style:family='paragraph'
+ and((
+ (
+ $style/*/@fo:border-top
+ or $style/*/@fo:border-bottom
+ or $style/*/@fo:border
+ )
+ and
+ (
+ not($style/*/@style:join-border)
+ or $style/*/@style:join-border = 'true'
+ )
+ )
+ or
+ (
+ (
+ $style/*/@fo:margin-top
+ or $style/*/@fo:margin-bottom
+ or $style/*/@fo:margin
+ )
+ and
+ ( $style/*/@fo:background-color
+ and
+ not($style/*/fo:background-color='transparent')
+ )
+ )
+ )">
+ <xsl:element name="style" namespace="">
+ <xsl:copy-of select="$style/@style:family" />
+ <xsl:attribute name="style:name"><xsl:value-of select="concat($style/@style:name, '_borderStart')" /></xsl:attribute>
+ <xsl:element name="final-properties" namespace="">
+ <xsl:apply-templates select="$style/*/@*[not(name() = 'fo:border-bottom')][not(name() = 'fo:padding-bottom')][not(name() = 'fo:margin-bottom')][not(name() = 'fo:margin')]">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="paragraphMerge" select="$style/*/@*[name() = 'fo:margin-bottom' or name() = 'fo:margin']">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+ <xsl:text> border-bottom-style:none; </xsl:text>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="style" namespace="">
+ <xsl:copy-of select="$style/@style:family" />
+ <xsl:copy-of select="$style/@style:name" />
+ <xsl:attribute name="mergedBorders"><xsl:value-of select="true()" /></xsl:attribute>
+ <xsl:element name="final-properties" namespace="">
+ <xsl:apply-templates select="$style/*/@*[not(name() = 'fo:border-top') and not(name() = 'fo:border-bottom')][not(name() = 'fo:padding-top') and not(name() = 'fo:padding-bottom')][not(name() = 'fo:margin-top') and not(name() = 'fo:margin-bottom')][not(name() = 'fo:margin')]">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="paragraphMerge" select="$style/*/@*[name() = 'fo:margin-top' or name() = 'fo:margin-bottom' or name() = 'fo:margin']">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+ <xsl:text> border-top-style:none; border-bottom-style:none; </xsl:text>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="style" namespace="">
+ <xsl:copy-of select="$style/@style:family" />
+ <xsl:attribute name="style:name"><xsl:value-of select="concat($style/@style:name, '_borderEnd')" /></xsl:attribute>
+ <xsl:element name="final-properties" namespace="">
+ <xsl:apply-templates select="$style/*/@*[not(name() = 'fo:border-top')][not(name() = 'fo:padding-top')][not(name() = 'fo:margin-top')][not(name() = 'fo:margin')]">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+ <xsl:apply-templates mode="paragraphMerge" select="$style/*/@*[name() = 'fo:margin-top' or name() = 'fo:margin']">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+ <xsl:text> border-top-style:none;</xsl:text>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="not(key('listLabelStyleInStyles', $style/@style:name)/@*)">
+ <xsl:element name="style" namespace="">
+ <xsl:copy-of select="$style/@style:family" />
+ <xsl:copy-of select="$style/@style:name" />
+ <xsl:element name="final-properties" namespace="">
+ <xsl:apply-templates select="$style/*/@*">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="style" namespace="">
+ <xsl:attribute name="style:family">none</xsl:attribute>
+ <xsl:attribute name="style:name"><xsl:value-of select="$style/@style:name"/></xsl:attribute>
+ <xsl:element name="final-properties" namespace="">
+ <xsl:apply-templates select="$style/*/@*">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template mode="paragraphMerge" match="@fo:margin | @fo:margin-top | @fo:margin-bottom | @fo:margin-left | @fo:margin-right">
+ <xsl:text>padding</xsl:text>
+ <xsl:value-of select="substring-after(name(), 'fo:margin')"/>
+ <xsl:text>:</xsl:text>
+ <!-- Map once erroneusly used inch shortage 'inch' to CSS shortage 'in' -->
+ <xsl:choose>
+ <xsl:when test="contains(., 'inch')">
+ <xsl:value-of select="substring-before(.,'ch')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>; </xsl:text>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/common/styles/style_mapping_css.xsl b/test/user-template/user/xslt/export/common/styles/style_mapping_css.xsl
new file mode 100644
index 000000000000..cfd38dcd9a3d
--- /dev/null
+++ b/test/user-template/user/xslt/export/common/styles/style_mapping_css.xsl
@@ -0,0 +1,355 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi">
+
+
+ <!-- *** Properties with a 'fo:' prefix *** -->
+ <xsl:template match="@fo:background-color">
+ <xsl:text>background-color:</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>; </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="@fo:border | @fo:border-top | @fo:border-bottom | @fo:border-left | @fo:border-right">
+ <xsl:variable name="borderType" select="substring-after(name(), ':')"/>
+ <xsl:choose>
+ <xsl:when test=". = 'none'">
+ <xsl:value-of select="$borderType"/>
+ <xsl:text>-style:none; </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="borderWidth" select="substring-before(., ' ')"/>
+ <xsl:variable name="borderStyle" select="substring-before(substring-after(., ' '), ' ')"/>
+ <xsl:variable name="borderColor" select="substring-after(substring-after(., ' '), ' ')"/>
+
+ <!-- More information at template 'round-up-border-width' -->
+ <xsl:variable name="borderWidthFixed">
+ <xsl:call-template name="round-up-border-width">
+ <xsl:with-param name="borderWidth" select="$borderWidth"/>
+ <xsl:with-param name="multiplier">
+ <xsl:choose>
+ <xsl:when test="$borderStyle = 'double'">3</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:value-of select="$borderType"/>
+ <xsl:text>-width:</xsl:text>
+ <xsl:value-of select="$borderWidthFixed"/>
+ <xsl:text>; </xsl:text>
+ <xsl:value-of select="$borderType"/>
+ <xsl:text>-style:</xsl:text>
+ <xsl:value-of select="$borderStyle"/>
+ <xsl:text>; </xsl:text>
+ <xsl:value-of select="$borderType"/>
+ <xsl:text>-color:</xsl:text>
+ <xsl:value-of select="$borderColor"/>
+ <xsl:text>; </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- NOTE: Still there have to be placed a <br clear='all' /> to disable the flow!!!!-->
+ <xsl:template match="@fo:clear">
+ <xsl:text>clear:both; </xsl:text>
+ </xsl:template>
+
+ <!-- text-shadow is a CSS2 feature and yet not common used in user-agents -->
+ <xsl:template match="@fo:color |@svg:font-family |@fo:font-size |@fo:font-style |@fo:font-weight |@fo:text-indent |@fo:text-shadow">
+ <xsl:value-of select="substring-after(name(), ':')"/>
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>; </xsl:text>
+ </xsl:template>
+
+ <!-- Maps fo:margin as well fo:margin-top, fo:margin-bottom, fo:padding-left, fo:margin-right -->
+ <!-- Maps fo:padding as well fo:padding-top, fo:padding-bottom, fo:padding-left, fo:padding-right -->
+ <xsl:template match="@fo:letter-spacing | @fo:line-height | @fo:width |@fo:margin | @fo:margin-top | @fo:margin-bottom | @fo:margin-left | @fo:margin-right | @fo:padding | @fo:padding-top | @fo:padding-bottom | @fo:padding-left | @fo:padding-right">
+ <xsl:value-of select="substring-after(name(), ':')"/>
+ <xsl:text>:</xsl:text>
+ <!-- Map once erroneusly used inch shortage 'inch' to CSS shortage 'in' -->
+ <xsl:choose>
+ <xsl:when test="contains(., 'inch')">
+ <xsl:value-of select="substring-before(.,'ch')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>; </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="@fo:text-align">
+ <!-- 'important' is necessary as table cell value alignment is decided by runtime over the valuetype
+ Otherwise a table cell style-class would always be outnumbered by the run-time alignment value -->
+ <xsl:choose>
+ <xsl:when test="contains(., 'start')">
+ <xsl:choose>
+ <xsl:when test="parent::*/@style:writing-mode and contains(parent::*/@style:writing-mode, 'rl')">
+ <xsl:text>text-align:right ! important; </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>text-align:left ! important; </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="contains(., 'end')">
+ <xsl:choose>
+ <xsl:when test="parent::*/@style:writing-mode and contains(parent::*/@style:writing-mode, 'rl')">
+ <xsl:text>text-align:left ! important;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>text-align:right ! important; </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>text-align:</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text> ! important; </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="@style:vertical-align">
+ <xsl:choose>
+ <xsl:when test="contains(., 'bottom')">
+ <xsl:text>vertical-align:bottom; </xsl:text>
+ </xsl:when>
+ <xsl:when test="contains(., 'middle')">
+ <xsl:text>vertical-align:middle; </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>vertical-align:top; </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+<!-- *** Properties with a 'style:' prefix *** -->
+ <!-- NOTE: Can 'inside' | 'from-inside' better be handled:
+ <!ATTLIST * style:horizontal-pos (from-left|left|center|right|from-inside|inside|outside)#IMPLIED>-->
+ <xsl:template match="@style:horizontal-pos">
+ <xsl:choose>
+ <xsl:when test=".='left'">
+ <xsl:text>text-align:left; </xsl:text>
+ </xsl:when>
+ <xsl:when test=". = 'right'">
+ <xsl:text>text-align:right; </xsl:text>
+ </xsl:when>
+ <xsl:when test=".='center'">
+ <xsl:text>text-align:center; </xsl:text>
+ </xsl:when>
+ <!-- NOTE: currently other values are not used.
+ If the property value is from-left or from-inside,
+ the svg:x attribute associated with the frame element specifies
+ the horizontal position of the frame.
+ Otherwise the svg:x attribute is ignored for text documents.
+ -->
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="@style:column-width">
+ <xsl:text>width:</xsl:text>
+ <xsl:choose>
+ <!-- changing the distance measure: inch to in -->
+ <xsl:when test="contains(., 'inch')">
+ <xsl:value-of select="substring-before(.,'ch')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>; </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="@style:text-underline-style">
+ <xsl:text>text-decoration:</xsl:text>
+ <xsl:choose>
+ <!-- changing the distance measure: inch to in -->
+ <xsl:when test=".='none'">
+ <xsl:text>none ! important</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>underline</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>; </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="@style:font-name">
+ <xsl:param name="globalData" />
+
+ <xsl:text>font-family:</xsl:text>
+ <xsl:variable name="content" select="."/>
+ <xsl:variable name="quote">'</xsl:variable>
+ <xsl:variable name="fontName" select="$globalData/office:font-face-decls/style:font-face[@style:name=$content]/@svg:font-family" />
+ <xsl:value-of select="translate($fontName, $quote, '')"/>
+ <xsl:text>; </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="@style:row-height">
+ <xsl:text>height:</xsl:text>
+ <xsl:choose>
+ <!-- changing the distance measure: inch to in -->
+ <xsl:when test="contains(., 'inch')">
+ <xsl:value-of select="substring-before(.,'ch')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>; </xsl:text>
+ </xsl:template>
+
+ <xsl:template match="@svg:strikethrough-position">
+ <xsl:if test="not(.='none')">
+ <xsl:text>text-decoration:line-through; </xsl:text>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="@style:text-position">
+ <xsl:if test="contains(., 'sub')">
+ <xsl:text>vertical-align:sub; </xsl:text>
+ <xsl:if test="contains(., '%')">
+ <xsl:text>font-size:</xsl:text>
+ <xsl:value-of select="substring-after(., 'sub ')"/>
+ <xsl:text>;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="contains(., 'super')">
+ <xsl:text>vertical-align:super; </xsl:text>
+ <xsl:if test="contains(., '%')">
+ <xsl:text>font-size:</xsl:text>
+ <xsl:value-of select="substring-after(., 'super ')"/>
+ <xsl:text>;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="@style:vertical-pos">
+ <xsl:choose>
+ <xsl:when test=".='from-top'">
+ <xsl:text>vertical-align:top; </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>vertical-align:</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>; </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="@style:width">
+ <xsl:text>width:</xsl:text>
+ <xsl:choose>
+ <!-- changing the distance measure: inch to in -->
+ <xsl:when test="contains(., 'inch')">
+ <xsl:value-of select="substring-before(.,'ch')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>; </xsl:text>
+ </xsl:template>
+ <xsl:template match="@style:wrap">
+ <xsl:choose>
+ <xsl:when test=".='left'">
+ <xsl:text>float:right; </xsl:text>
+ </xsl:when>
+ <xsl:when test=".='right'">
+ <xsl:text>float:left; </xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="@style:writing-mode">
+ <xsl:text>writing-mode:</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>; </xsl:text>
+ </xsl:template>
+ <!-- *** Properties with a no 'fo:' or 'style:' prefix *** -->
+ <xsl:template match="@table:align">
+ <xsl:choose>
+ <xsl:when test=".='left'">
+ <!-- Note: problems with meeting minutes example
+ <xsl:text>float:right; </xsl:text> --></xsl:when>
+ <xsl:when test=".='right'">
+ <!-- Note: problems with meeting minutes example
+ <xsl:text>float:left; </xsl:text> --></xsl:when>
+ <xsl:otherwise>
+ <xsl:text>float:none; </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="style:background-image">
+ <xsl:text>background-image:url(</xsl:text>
+ <xsl:value-of select="@xlink:href"/>
+ <xsl:text>); </xsl:text>
+ <xsl:choose>
+ <xsl:when test="@style:repeat = 'repeat'">
+ <xsl:text>background-repeat:repeat; </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>background-repeat:no-repeat; </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Changing border width measure to cm and enlarging border-width to the Mozilla browser(1.7)
+ visible minimum width
+ - 0.0133cm for solid style
+ - 0.0399cm for double style
+ as there are three border lines painted -->
+ <xsl:template name="round-up-border-width">
+ <xsl:param name="borderWidth"/>
+ <xsl:param name="multiplier"/>
+
+ <xsl:variable name="borderWidthByCentimeter">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$borderWidth"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="minimalBorderWidth" select="0.0133 * $multiplier"/>
+ <xsl:choose>
+ <xsl:when test="number($borderWidthByCentimeter) &lt; $minimalBorderWidth">
+ <xsl:value-of select="$minimalBorderWidth"/>
+ <xsl:text>cm</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$borderWidthByCentimeter"/>
+ <xsl:text>cm</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
+
diff --git a/test/user-template/user/xslt/export/common/table/table.xsl b/test/user-template/user/xslt/export/common/table/table.xsl
new file mode 100644
index 000000000000..a380088a26f7
--- /dev/null
+++ b/test/user-template/user/xslt/export/common/table/table.xsl
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi">
+
+
+ <!-- table row handling -->
+ <xsl:include href="table_rows.xsl" />
+ <!-- table column handling -->
+ <xsl:include href="table_columns.xsl" />
+ <!-- table cell handling -->
+ <xsl:include href="table_cells.xsl" />
+
+ <xsl:param name="tableElement" select="'table'" />
+
+ <!-- ******************* -->
+ <!-- *** main table *** -->
+ <!-- ******************* -->
+
+
+ <xsl:template match="table:table" name="table:table">
+ <xsl:param name="globalData" />
+
+ <!-- The table will only be created if the table:scenario is active -->
+ <xsl:if test="not(table:scenario) or table:scenario/@table:is-active">
+ <xsl:call-template name="create-table">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+
+
+ <xsl:template name="create-table">
+ <xsl:param name="globalData" />
+
+ <!-- by default '1', for each new sub/inner/nested table the number counts one up -->
+ <xsl:variable name="tableLevel" select="count(ancestor-or-self::table:table)" />
+ <!-- collecting all visible "table:table-row" elements of the table -->
+ <xsl:variable name="allVisibleTableRows" select="table:table-row[not(@table:visibility = 'collapse' or @table:visibility = 'filter')][count(ancestor-or-self::table:table) = $tableLevel] |
+ table:table-header-rows/descendant::table:table-row[not(@table:visibility = 'collapse' or @table:visibility = 'filter')][count(ancestor-or-self::table:table) = $tableLevel] |
+ table:table-row-group/descendant::table:table-row[not(@table:visibility = 'collapse' or @table:visibility = 'filter')][count(ancestor-or-self::table:table) = $tableLevel]" />
+ <!-- As the alignment of a table is by 'align' attribut is deprecated and as the CSS 'float' attribute not well displayed,
+ we do a trick by encapsulating the table with a aligned 'div' element-->
+ <xsl:variable name="table-alignment" select="key('styles', @style:name = current()/@table:style-name)/*/@table:align" />
+ <xsl:choose>
+ <xsl:when test="string-length($table-alignment) != 0">
+ <xsl:element namespace="{$namespace}" name="div">
+ <xsl:attribute name="style">
+ <xsl:choose>
+ <xsl:when test='$table-alignment="left" or $table-alignment="margins"'>
+ <xsl:text>text-align:left</xsl:text>
+ </xsl:when>
+ <xsl:when test='$table-alignment="right"'>
+ <xsl:text>text-align:right</xsl:text>
+ </xsl:when>
+ <xsl:when test='$table-alignment="center"'>
+ <xsl:text>text-align:center</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:call-template name="create-table-element">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allVisibleTableRows" select="$allVisibleTableRows" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create-table-element">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allVisibleTableRows" select="$allVisibleTableRows" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="create-table-element">
+ <xsl:param name="globalData" />
+ <xsl:param name="allVisibleTableRows" />
+
+ <xsl:element namespace="{$namespace}" name="{$tableElement}">
+ <xsl:attribute name="border">0</xsl:attribute>
+ <xsl:attribute name="cellspacing">0</xsl:attribute>
+ <xsl:attribute name="cellpadding">0</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test='name()="table:table"'>
+ <xsl:variable name="value" select="$globalData/all-doc-styles/style[@style:name = current()/@table:style-name]/*/@style:rel-width" />
+ <xsl:if test="$value">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$value" />
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="width">100%</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:apply-templates select="@table:style-name">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+
+ <xsl:call-template name="create-column-style-variable">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allVisibleTableRows" select="$allVisibleTableRows" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/common/table/table_cells.xsl b/test/user-template/user/xslt/export/common/table/table_cells.xsl
new file mode 100644
index 000000000000..b5398742a315
--- /dev/null
+++ b/test/user-template/user/xslt/export/common/table/table_cells.xsl
@@ -0,0 +1,279 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xt="http://www.jclark.com/xt"
+ xmlns:common="http://exslt.org/common"
+ xmlns:xalan="http://xml.apache.org/xalan"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi xt common xalan">
+
+
+ <!-- *********************************** -->
+ <!-- *** write repeating table cells *** -->
+ <!-- *********************************** -->
+
+
+ <!-- matching cells to give out -> covered table cells are not written out -->
+ <xsl:template match="table:table-cell">
+ <xsl:param name="globalData" />
+ <!-- position of the current input cell to get the correct colum style (hidden are also counted)-->
+ <xsl:param name="allTableColumns" />
+ <xsl:param name="maxRowLength" />
+ <xsl:param name="tableDataType" />
+
+
+ <!-- The column position of the current cell has to be determined
+ to get the adequate column styles during later cell creation,
+ or hiding the cell when @table:visibility is not set to 'visible'.
+
+ The position is archieved by adding up all table:number-columns-repeated of the preceding cells.
+ Step1: creating '$precedingCells/quantity/@table:number-columns-repeated').
+ Step2: sum(xxx:nodeset($precedingCells)/quantity) + 1 -->
+ <xsl:variable name="precedingCells">
+ <xsl:for-each select="preceding-sibling::*">
+ <xsl:choose>
+ <!-- maybe a parser is used, which reads the DTD files (e.g. Xerces),
+ then '1' is the default for 'table:number-columns-repeated' -->
+ <xsl:when test="not(@table:number-columns-repeated and @table:number-columns-repeated > 1)">
+ <xsl:element name="quantity" namespace="">
+ <xsl:text>1</xsl:text>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="quantity" namespace="">
+ <xsl:value-of select="@table:number-columns-repeated" />
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+
+
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="create-table-cell">
+ <!-- position of the current input cell to get the correct colum style (hidden are also counted)-->
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="precedingColumns" select="sum(common:node-set($precedingCells)/*)" />
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="create-table-cell">
+ <!-- position of the current input cell to get the correct colum style (hidden are also counted)-->
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="precedingColumns" select="sum(xalan:nodeset($precedingCells)/*)" />
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="create-table-cell">
+ <!-- position of the current input cell to get the correct colum style (hidden are also counted)-->
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="precedingColumns" select="sum(xt:node-set($precedingCells)/*)" />
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">ERROR: Function not found: nodeset</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- current node is a table:table-cell -->
+ <xsl:template name="create-table-cell">
+ <!-- position of the current input cell to get the correct colum style (hidden are also counted)-->
+ <xsl:param name="allTableColumns" />
+ <xsl:param name="globalData" />
+ <xsl:param name="maxRowLength" />
+ <xsl:param name="precedingColumns" select="0" />
+ <xsl:param name="tableDataType" />
+
+ <xsl:variable name="columnPosition" select="$precedingColumns + 1" />
+
+ <xsl:if test="$debugEnabled">
+ <xsl:message>
+ <xsl:text>
+ table:table-cell #</xsl:text>
+ <xsl:value-of select="$columnPosition" />
+ <xsl:text> has been entered with node value: </xsl:text>
+ <xsl:value-of select="." />
+ <xsl:text>
+ table:number-columns-repeated: </xsl:text>
+ <xsl:value-of select="@table:number-columns-repeated" />
+ <xsl:text>
+ maxRowLength: </xsl:text>
+ <xsl:value-of select="$maxRowLength" />
+ </xsl:message>
+ </xsl:if>
+
+ <!-- only non hidden column will be given out -->
+ <xsl:variable name="currentTableColumn" select="$allTableColumns/table:table-column[position() = $columnPosition]" />
+ <xsl:if test="$currentTableColumn[not(@table:visibility = 'collapse' or @table:visibility = 'filter')]">
+ <xsl:choose>
+ <!-- if parser reads DTD the default is set to '1' -->
+ <xsl:when test="@table:number-columns-repeated > 1">
+ <!-- writes multiple entries of a cell -->
+ <xsl:call-template name="repeat-write-cell">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="columnPosition" select="$columnPosition" />
+ <xsl:with-param name="currentTableColumn" select="$currentTableColumn" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="numberColumnsRepeated" select="@table:number-columns-repeated" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- writes an entry of a cell -->
+ <xsl:call-template name="write-cell">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="columnPosition" select="$columnPosition" />
+ <xsl:with-param name="currentTableColumn" select="$currentTableColumn" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+
+
+ <xsl:template name="repeat-write-cell">
+ <xsl:param name="globalData" />
+ <xsl:param name="allTableColumns" />
+ <xsl:param name="columnPosition" />
+ <xsl:param name="currentTableColumn" />
+ <xsl:param name="maxRowLength" />
+ <xsl:param name="numberColumnsRepeated" />
+ <xsl:param name="tableDataType" />
+
+ <xsl:choose>
+ <!-- This is the current workaround for the flood of cells, simulation background by repeating cell -->
+ <xsl:when test="$numberColumnsRepeated > 1 and $maxRowLength > $columnPosition">
+
+ <!-- writes an entry of a cell -->
+ <xsl:call-template name="write-cell">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="columnPosition" select="$columnPosition" />
+ <xsl:with-param name="currentTableColumn" select="$currentTableColumn" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ <!-- repeat calling this method until all elements written out -->
+ <xsl:if test="$debugEnabled">
+ <xsl:message>+++++++++ cell repetition +++++++++</xsl:message>
+ </xsl:if>
+ <xsl:call-template name="repeat-write-cell">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="columnPosition" select="$columnPosition + 1" />
+ <xsl:with-param name="currentTableColumn" select="$allTableColumns/table:table-column[position() = ($columnPosition + 1)]" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="numberColumnsRepeated" select="$numberColumnsRepeated - 1" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- This is the current workaround for the flood of cells, simulation background by repeating cell -->
+ <!-- When the maxRowLength is reached a last entry of a cell is written -->
+ <xsl:call-template name="write-cell">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="columnPosition" select="$columnPosition" />
+ <xsl:with-param name="currentTableColumn" select="$currentTableColumn" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="write-cell">
+ <xsl:param name="globalData" />
+ <xsl:param name="allTableColumns" />
+ <xsl:param name="columnPosition" />
+ <xsl:param name="currentTableColumn" />
+ <xsl:param name="tableDataType" />
+
+ <!-- a non hidden column will be give out -->
+ <xsl:choose>
+ <xsl:when test="$currentTableColumn[not(@table:visibility = 'collapse' or @table:visibility = 'filter')]">
+ <xsl:call-template name="create-table-cell-content">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="columnPosition" select="$columnPosition" />
+ <xsl:with-param name="currentTableColumn" select="$currentTableColumn" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:when>
+ <!-- a hidden column -->
+ <xsl:otherwise>
+ <xsl:if test="$debugEnabled">
+ <xsl:message>table column is hidden!</xsl:message>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/common/table/table_columns.xsl b/test/user-template/user/xslt/export/common/table/table_columns.xsl
new file mode 100644
index 000000000000..ee578e158a63
--- /dev/null
+++ b/test/user-template/user/xslt/export/common/table/table_columns.xsl
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:xt="http://www.jclark.com/xt"
+ xmlns:common="http://exslt.org/common"
+ xmlns:xalan="http://xml.apache.org/xalan"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi xt common xalan">
+
+ <xsl:param name="tableColumnElement" select="'col'" />
+
+ <!-- ******************************************** -->
+ <!-- *** Create table columns style variable *** -->
+ <!-- ******************************************** -->
+
+ <!-- current node is a table:table -->
+ <xsl:template name="create-column-style-variable">
+ <xsl:param name="globalData" />
+ <xsl:param name="allVisibleTableRows" />
+
+ <!-- all columns of the table -->
+ <xsl:variable name="allTableColumns" select="table:table-column |
+ table:table-column-group/descendant::table:table-column |
+ table:table-header-columns/descendant::table:table-column" />
+ <!-- allTableColumns: Containing all columns of the table, hidden and viewed.
+ - if a column is hidden, if table:visibility has the value 'collapse' or 'filter', otherwise the value is 'visible'
+ - if a column is being repeated, each repeated column is explicitly written as entry in this variable.
+ Later (during template "write-cell") the style of the column will be mixed with the cell-style by using
+ the position() of the column entry and comparing it with the iterating cell number. -->
+ <xsl:variable name="allTableColumns-RTF">
+ <xsl:for-each select="$allTableColumns">
+ <xsl:call-template name="adding-column-styles-entries">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="create-table-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allVisibleTableRows" select="$allVisibleTableRows" />
+ <xsl:with-param name="allTableColumns" select="common:node-set($allTableColumns-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="create-table-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allVisibleTableRows" select="$allVisibleTableRows" />
+ <xsl:with-param name="allTableColumns" select="xalan:nodeset($allTableColumns-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="create-table-children">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allVisibleTableRows" select="$allVisibleTableRows" />
+ <xsl:with-param name="allTableColumns" select="xt:node-set($allTableColumns-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- current node is a table:table -->
+ <xsl:template name="create-table-children">
+ <xsl:param name="globalData" />
+ <xsl:param name="allVisibleTableRows" />
+ <xsl:param name="allTableColumns" />
+
+
+ <xsl:for-each select="$allTableColumns/table:table-column">
+ <xsl:if test="not(@table:visibility = 'collapse' or @table:visibility = 'filter')">
+
+ <xsl:call-template name="create-column-element">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allVisibleTableRows" select="$allVisibleTableRows" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:call-template name="create-table-rows">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allVisibleTableRows" select="$allVisibleTableRows" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- To be OVERWRITTEN -->
+ <xsl:template name="create-column-element" />
+
+ <!-- current node is a table:table-column -->
+ <xsl:template name="adding-column-styles-entries">
+ <xsl:param name="globalData" />
+ <xsl:param name="allTableColumns" />
+
+ <xsl:choose>
+ <!-- if parser reads DTD the default is set to '1' -->
+ <xsl:when test="not(@table:number-columns-repeated and @table:number-columns-repeated > 1)">
+ <!-- writes an entry of a column in the columns-variable -->
+ <xsl:copy-of select="." />
+ </xsl:when>
+ <!-- No higher repetition of cells greater than 99 for the last and second last column.
+ This is a workaround for some sample document (Waehrungsumrechner.sxc),
+ having 230 repeated columns in the second last column to emulate background -->
+ <!-- NOTE: Testcase with a table containing table:table-column-group and/or table:table-header-columns -->
+ <xsl:when test="(last() or (last() - 1)) and @table:number-columns-repeated &gt; 99">
+ <!-- writes an entry of a column in the columns-variable -->
+ <xsl:call-template name="repeat-adding-table-column">
+ <xsl:with-param name="numberColumnsRepeated" select="1" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- repeated colums will be written explicit several times in the variable-->
+ <xsl:call-template name="repeat-adding-table-column">
+ <xsl:with-param name="numberColumnsRepeated" select="@table:number-columns-repeated" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- WRITES THE REPEATED COLUMN STYLE EXPLICIT AS AN ELEMENT IN THE COLUMNS-VARIABLE -->
+ <!-- current node is a table:table-column -->
+ <xsl:template name="repeat-adding-table-column">
+ <xsl:param name="table:table-column" />
+ <xsl:param name="numberColumnsRepeated" />
+
+
+ <xsl:choose>
+ <xsl:when test="$numberColumnsRepeated > 1">
+ <!-- writes an entry of a column in the columns-variable -->
+ <xsl:copy-of select="." />
+ <!-- repeat calling this method until all elements written out -->
+ <xsl:call-template name="repeat-adding-table-column">
+ <xsl:with-param name="numberColumnsRepeated" select="$numberColumnsRepeated - 1" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- writes an entry of a column in the columns-variable -->
+ <xsl:copy-of select="." />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!--debugEnabled-START-->
+ <!-- giving out the 'allColumnStyle' variable:
+ For each 'table:table-column' of the 'allTableColumns' variable the style-name is given out.
+ In case of 'column-hidden-flag' attribute the text 'Column is hidden is given out.-->
+ <!-- current node is a table:table -->
+ <xsl:template name="table-debug-allTableColumns">
+ <xsl:param name="allTableColumns" />
+
+ <!-- debug output as table summary attribut in html -->
+ <xsl:attribute name="summary">
+ <xsl:call-template name="table-debug-column-out">
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ </xsl:call-template>
+ </xsl:attribute>
+ <!-- debug output to console -->
+ <xsl:message>
+ <xsl:call-template name="table-debug-column-out">
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ </xsl:call-template>
+ </xsl:message>
+ </xsl:template>
+
+ <!-- current node is a table:table -->
+ <xsl:template name="table-debug-column-out">
+ <xsl:param name="allTableColumns" />
+ <xsl:text>
+ DebugInformation: For each 'table:table-column' of the 'allTableColumns' variable the style-name is given out.
+ In case of table:visibility attribute unequal 'visible' the 'column is hidden' no text is given out.
+ </xsl:text>
+ <xsl:for-each select="$allTableColumns/table:table-column">
+ <xsl:choose>
+ <xsl:when test="@table:visibility = 'collapse' or @table:visibility = 'filter' ">
+ <xsl:text> </xsl:text><xsl:value-of select="@table:style-name" /><xsl:text>column is hidden</xsl:text><xsl:text>
+ </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text><xsl:value-of select="@table:style-name" /><xsl:text> </xsl:text><xsl:value-of select="@table:default-cell-style-name" /><xsl:text>
+ </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <!--debugEnabled-END-->
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/common/table/table_rows.xsl b/test/user-template/user/xslt/export/common/table/table_rows.xsl
new file mode 100644
index 000000000000..1cf51362b1b5
--- /dev/null
+++ b/test/user-template/user/xslt/export/common/table/table_rows.xsl
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi">
+
+
+ <xsl:param name="rowElement" select="'tr'" />
+
+ <!-- ********************************** -->
+ <!-- *** write repeating table rows *** -->
+ <!-- ********************************** -->
+
+ <!-- current node is a table:table -->
+ <xsl:template name="create-table-rows">
+ <xsl:param name="globalData" />
+ <xsl:param name="allVisibleTableRows" />
+ <xsl:param name="allTableColumns" />
+
+ <!-- Some Office Calc documents simulate a background by repeating one of the later cells until end of used space
+ (The value of "table:number-columns-repeated" is enourmous). Writing out all these cells would be fatal in time
+ and output size. Therefore, this global variable shows us the longest row with content. -->
+ <xsl:variable name="maxRowLength" select="count($allTableColumns/table:table-column)" />
+ <xsl:if test="$debugEnabled">
+ <xsl:message>maxRowLength: <xsl:value-of select="$maxRowLength" /></xsl:message>
+ <xsl:call-template name="table-debug-allTableColumns">
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ </xsl:call-template>
+ </xsl:if>
+
+ <!-- a table is a table header, when it has a "table:table-header-rows" ancestor -->
+ <xsl:variable name="tableDataType">
+ <xsl:choose>
+ <xsl:when test="ancestor::table:table-header-rows">
+ <xsl:text>th</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>td</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- removes repetition of rows, most probably done for background emulating -->
+ <xsl:for-each select="$allVisibleTableRows">
+ <xsl:choose>
+ <xsl:when test="(last() or (last() - 1)) and @table:number-rows-repeated &gt; 99">
+ <xsl:call-template name="repeat-write-row">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="numberRowsRepeated" select="1" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="repeat-write-row">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="numberRowsRepeated" select="@table:number-rows-repeated" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+
+
+ <xsl:template name="repeat-write-row">
+ <xsl:param name="globalData" />
+ <xsl:param name="allTableColumns" />
+ <xsl:param name="numberRowsRepeated" select="1" />
+ <xsl:param name="maxRowLength" />
+ <xsl:param name="tableDataType" />
+
+ <xsl:choose>
+ <!-- write an entry of a row and repeat calling this method until all elements are written out -->
+ <xsl:when test="$numberRowsRepeated > 1 and table:table-cell">
+ <xsl:call-template name="write-row">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+
+ <!-- NOTE: take variable from the output of repeated write-row and iterate giving out the variable -->
+ <xsl:call-template name="repeat-write-row">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="numberRowsRepeated" select="$numberRowsRepeated - 1" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:when>
+ <!-- write a single entry of a row -->
+ <xsl:otherwise>
+ <xsl:call-template name="write-row">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="add-table-row-attributes">
+ <xsl:param name="globalData" />
+
+ <!-- writing the style of the row -->
+ <xsl:if test="@table:style-name">
+ <xsl:call-template name='add-style-properties'>
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="write-row">
+ <xsl:param name="globalData" />
+ <xsl:param name="allTableColumns" />
+ <xsl:param name="maxRowLength" />
+ <xsl:param name="tableDataType" />
+
+
+ <xsl:element namespace="{$namespace}" name="{$rowElement}">
+ <xsl:call-template name='add-table-row-attributes'>
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+
+ <xsl:if test="$debugEnabled">
+ <xsl:message>'tr' element has been added!</xsl:message>
+ </xsl:if>
+
+ <xsl:apply-templates select="table:table-cell">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ <xsl:with-param name="maxRowLength" select="$maxRowLength" />
+ <xsl:with-param name="tableDataType" select="$tableDataType" />
+ </xsl:apply-templates>
+
+ </xsl:element>
+ </xsl:template>
+
+
+ <!-- **************************** -->
+ <!-- *** HELPER: table styles *** -->
+ <!-- **************************** -->
+
+ <xsl:template name="add-style-properties">
+ <xsl:param name="globalData" />
+ <xsl:param name="allTableColumns" />
+ <xsl:param name="node-position" />
+
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate(@table:style-name, '. %()/\+', '')" />
+ </xsl:attribute>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/common/table_of_content.xsl b/test/user-template/user/xslt/export/common/table_of_content.xsl
new file mode 100644
index 000000000000..acdc3dd0412d
--- /dev/null
+++ b/test/user-template/user/xslt/export/common/table_of_content.xsl
@@ -0,0 +1,588 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:java="http://xml.apache.org/xslt/java" xmlns:sxg="http://www.jclark.com/xt/java/org.openoffice.xslt.OOoMasterDocument" xmlns:common="http://exslt.org/common" xmlns:xt="http://www.jclark.com/xt" xmlns:xalan="http://xml.apache.org/xalan" exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi java sxg xt common xalan">
+
+ <!-- ****************************** -->
+ <!-- *** Table of Content *** -->
+ <!-- ****************************** -->
+
+ <xsl:param name="currentChildContentRef" />
+ <xsl:param name="contentTableHeadings" />
+ <xsl:param name="contentTableURL" />
+ <xsl:template match="text:table-of-content">
+ <xsl:param name="globalData"/>
+
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+
+ <xsl:template match="text:index-body">
+ <xsl:param name="globalData"/>
+
+ <xsl:choose>
+ <xsl:when test="parent::table-of-content and */text:tab[1] or */*/text:tab[1]">
+ <xsl:call-template name="createIndexBodyTable">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="text:index-title" mode="content-table">
+ <xsl:param name="globalData"/>
+
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template name="createIndexBodyTable">
+ <xsl:param name="globalData"/>
+ <xsl:variable name="allStyleTabStops-RTF">
+ <xsl:element name="style:tab-stops">
+ <xsl:call-template name="get-tab-stops">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="styleName" select="current()/@text:style-name"/>
+
+ <!--
+ Currently only the style of text:index-body is recognized, but not of a paragraph child containing the text:tab element!
+ <xsl:with-param name="styleName" select="descendant-or-self::*/@text:style-name"/>
+
+ The column width needs to be tabstop plus fo:margin-left paragraph-properties
+ -->
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:variable>
+ <xsl:element namespace="{$namespace}" name="table">
+
+ <xsl:attribute name="border">0</xsl:attribute>
+ <xsl:attribute name="cellspacing">0</xsl:attribute>
+ <xsl:attribute name="cellpadding">0</xsl:attribute>
+ <xsl:if test="parent::*/@text:style-name">
+ <!-- parent as index:body has no style -->
+ <xsl:variable name="value" select="$globalData/all-doc-styles/style[@style:name = current()/parent::*/@text:style-name]/*/@style:rel-width"/>
+ <xsl:if test="$value">
+ <xsl:attribute name="width">
+ <xsl:value-of select="$value"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate(parent::*/@text:style-name, '.,;: %()[]/\+', '_____________')"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:element namespace="{$namespace}" name="colgroup">
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="create-col-element">
+ <xsl:with-param name="lastNodePosition" select="count(common:node-set($allStyleTabStops-RTF)/style:tab-stops/style:tab-stop)"/>
+ <xsl:with-param name="allStyleTabStops" select="common:node-set($allStyleTabStops-RTF)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="create-col-element">
+ <xsl:with-param name="lastNodePosition" select="count(xalan:nodeset($allStyleTabStops-RTF)/style:tab-stops/style:tab-stop)"/>
+ <xsl:with-param name="allStyleTabStops" select="xalan:nodeset($allStyleTabStops-RTF)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="create-col-element">
+ <xsl:with-param name="lastNodePosition" select="count(xt:node-set($allStyleTabStops-RTF)/style:tab-stops/style:tab-stop)"/>
+ <xsl:with-param name="allStyleTabStops" select="xt:node-set($allStyleTabStops-RTF)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">ERROR: Function not found: nodeset</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+
+ <!-- add table data -->
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:apply-templates mode="content-table">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="allStyleTabStops" select="common:node-set($allStyleTabStops-RTF)"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:apply-templates mode="content-table">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="allStyleTabStops" select="xalan:nodeset($allStyleTabStops-RTF)"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:apply-templates mode="content-table">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="allStyleTabStops" select="xt:node-set($allStyleTabStops-RTF)"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">ERROR: Function not found: nodeset</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:element>
+ </xsl:template>
+
+
+ <!-- ************************************************ -->
+ <!-- *** Create Table for Content Table Paragraph *** -->
+ <!-- ************************************************ -->
+
+ <!-- Usually the paragraph in a content-table are ordered by tab-stops, which can not be displayed correctly by XHTML/CSS
+ Therefore they will be simulated by a table -->
+ <xsl:template match="text:p" mode="content-table">
+ <xsl:param name="globalData"/>
+ <xsl:param name="allStyleTabStops"/>
+
+ <!-- all elements before the first tabStop -->
+ <xsl:variable name="testNo-RTF">
+ <xsl:apply-templates select="node()" mode="cell-content"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:variable name="tabNodePositions" select="common:node-set($testNo-RTF)"/>
+ <xsl:element namespace="{$namespace}" name="tr">
+ <xsl:call-template name="create-td-elements">
+ <xsl:with-param name="lastNodePosition" select="count($allStyleTabStops/style:tab-stops/style:tab-stop)"/>
+ <xsl:with-param name="position" select="1"/>
+ <xsl:with-param name="allStyleTabStops" select="$allStyleTabStops"/>
+ <xsl:with-param name="tabNodePositions" select="$tabNodePositions"/>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:variable name="tabNodePositions" select="xalan:nodeset($testNo-RTF)"/>
+ <xsl:element namespace="{$namespace}" name="tr">
+ <xsl:call-template name="create-td-elements">
+ <xsl:with-param name="lastNodePosition" select="count($allStyleTabStops/style:tab-stops/style:tab-stop)"/>
+ <xsl:with-param name="position" select="1"/>
+ <xsl:with-param name="allStyleTabStops" select="$allStyleTabStops"/>
+ <xsl:with-param name="tabNodePositions" select="$tabNodePositions"/>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:variable name="tabNodePositions" select="xt:node-set($testNo-RTF)"/>
+ <xsl:element namespace="{$namespace}" name="tr">
+ <xsl:call-template name="create-td-elements">
+ <xsl:with-param name="lastNodePosition" select="count($allStyleTabStops/style:tab-stops/style:tab-stop)"/>
+ <xsl:with-param name="position" select="1"/>
+ <xsl:with-param name="allStyleTabStops" select="$allStyleTabStops"/>
+ <xsl:with-param name="tabNodePositions" select="$tabNodePositions"/>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">ERROR: Function not found: nodeset</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Gathering all style:tab-stops from a style-hierarchy as siblings -->
+ <xsl:template name="get-tab-stops">
+ <xsl:param name="globalData"/>
+ <xsl:param name="styleName"/>
+ <xsl:variable name="tabStyle" select="key('styles', $styleName)"/>
+
+ <xsl:if test="$tabStyle/*/style:tab-stops/style:tab-stop/@style:position">
+ <xsl:for-each select="$tabStyle/*/style:tab-stops/style:tab-stop">
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="$tabStyle/@style:parent-style-name">
+ <xsl:call-template name="get-tab-stops">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="styleName" select="$tabStyle/@style:parent-style-name"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="create-col-element">
+ <xsl:param name="lastNodePosition"/>
+ <xsl:param name="allStyleTabStops"/>
+
+ <xsl:for-each select="$allStyleTabStops/style:tab-stops/style:tab-stop">
+ <xsl:element namespace="{$namespace}" name="col">
+ <xsl:attribute name="style">
+ <xsl:text>width: </xsl:text>
+ <xsl:choose>
+ <xsl:when test="contains(@style:position, 'cm')">
+ <xsl:call-template name="create-cell-width">
+ <xsl:with-param name="width" select="number(substring-before(@style:position,'cm'))"/>
+ <xsl:with-param name="unit" select="'cm'"/>
+ <xsl:with-param name="position" select="position() - 1"/>
+ <xsl:with-param name="allStyleTabStops" select="$allStyleTabStops"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains(@style:position, 'in')">
+ <xsl:call-template name="create-cell-width">
+ <xsl:with-param name="width" select="number(substring-before(@style:position,'in'))"/>
+ <xsl:with-param name="unit" select="'in'"/>
+ <xsl:with-param name="position" select="position() - 1"/>
+ <xsl:with-param name="allStyleTabStops" select="$allStyleTabStops"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains(@style:position, 'ch')">
+ <xsl:call-template name="create-cell-width">
+ <xsl:with-param name="width" select="number(substring-before(@style:position,'ch'))"/>
+ <xsl:with-param name="unit" select="'ch'"/>
+ <xsl:with-param name="position" select="position() - 1"/>
+ <xsl:with-param name="allStyleTabStops" select="$allStyleTabStops"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains(@style:position, 'pt')">
+ <xsl:call-template name="create-cell-width">
+ <xsl:with-param name="width" select="number(substring-before(@style:position,'pt'))"/>
+ <xsl:with-param name="unit" select="'pt'"/>
+ <xsl:with-param name="position" select="position() - 1"/>
+ <xsl:with-param name="allStyleTabStops" select="$allStyleTabStops"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+
+ </xsl:template>
+<!--
+Scenarios tabstops
+
+1) style:type of style:tab-stop is 'right' and earlier tabStop is not right
+ -> Earlier text-nodes and following text-nodes, will be put into an inner table, with two TD first aligned left, with proceding textnodes, the latter aligned right.
+
+2) style:type is 'right' and earlier tabStop is right
+ -> following text-nodes, will be put into a right aligned TD
+
+3) style:type is 'non-right' and earlier tabStop 'non-right' as well
+ -> put the preceding tab stops into a TD (left aligned is default)
+
+4) first style:type would have no right preceding tabStop
+ -> works well with first sceanrios 1 and 3
+
+5) last style:type would be a special case, if it would be left aligned, but this won't happen in our case.. :D
+
+Scenarios unmatched:
+- text:styleposition 'center' will not be matched in our case (effort for nothing), there will be only 'right' and not 'right'
+- If the last tabStop is not from text:stylepostion 'right', the length of the last cell is undefined and a document length must be found.
+ Not happens in our master document case. Also the algorithm below would have to be expanded (cp. scenario 5).
+
+-->
+ <xsl:template name="create-td-elements">
+ <xsl:param name="globalData"/>
+ <xsl:param name="lastNodePosition"/>
+ <xsl:param name="position"/>
+ <xsl:param name="allStyleTabStops"/>
+ <xsl:param name="tabNodePositions"/>
+
+ <xsl:variable name="currentTabStop" select="$allStyleTabStops/style:tab-stops/style:tab-stop[$position]"/>
+ <xsl:variable name="earlierTabStop" select="$allStyleTabStops/style:tab-stops/style:tab-stop[$position - 1]"/>
+ <xsl:choose>
+ <xsl:when test="not($currentTabStop/@style:position) and not($earlierTabStop/@style:position)">
+ <!-- in case no TAB STOP is being set -->
+ <xsl:element namespace="{$namespace}" name="td">
+ <xsl:element namespace="{$namespace}" name="p">
+ <xsl:if test="$position = 1">
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate(@text:style-name, '.,;: %()[]/\+', '_____________')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="content-table">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$currentTabStop/@style:type = 'right'">
+ <xsl:choose>
+ <xsl:when test="$earlierTabStop/@style:type = 'right'">
+ <!--
+ 2) style:type is 'right' and earlier tabStop is right
+ -> following text-nodes, will be put into a right aligned TD -->
+ <xsl:element namespace="{$namespace}" name="td">
+ <xsl:attribute name="style">
+ <xsl:text>align: right</xsl:text>
+ </xsl:attribute>
+ <xsl:element namespace="{$namespace}" name="p">
+ <xsl:if test="$position = 1">
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate(@text:style-name, '.,;: %()[]/\+', '_____________')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="grab-cell-content-before-tab-stop">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="endingTabStopPosition" select="$position + 1"/>
+ <xsl:with-param name="lastNodePosition" select="$lastNodePosition"/>
+ <xsl:with-param name="tabNodePositions" select="$tabNodePositions"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element namespace="{$namespace}" name="td">
+ <xsl:element namespace="{$namespace}" name="p">
+ <xsl:if test="$position = 1">
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate(@text:style-name, '.,;: %()[]/\+', '_____________')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="grab-cell-content-before-tab-stop">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="endingTabStopPosition" select="$position"/>
+ <xsl:with-param name="lastNodePosition" select="$lastNodePosition"/>
+ <xsl:with-param name="tabNodePositions" select="$tabNodePositions"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$earlierTabStop/@style:type = 'right'"></xsl:when>
+ <xsl:otherwise>
+ <!--
+ 3) style:type is 'non-right' and earlier tabStop 'non-right' as well
+ -> put the preceding tab stops into a TD (left aligned is default) -->
+ <xsl:element namespace="{$namespace}" name="p">
+ <xsl:if test="$position = 1">
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate(@text:style-name, '.,;: %()[]/\+', '_____________')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:element namespace="{$namespace}" name="td">
+ <xsl:call-template name="grab-cell-content-before-tab-stop">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="endingTabStopPosition" select="$position"/>
+ <xsl:with-param name="lastNodePosition" select="$lastNodePosition"/>
+ <xsl:with-param name="tabNodePositions" select="$tabNodePositions"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="$position != $lastNodePosition">
+ <xsl:call-template name="create-td-elements">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="lastNodePosition" select="$lastNodePosition"/>
+ <xsl:with-param name="position" select="$position + 1"/>
+ <xsl:with-param name="allStyleTabStops" select="$allStyleTabStops"/>
+ <xsl:with-param name="tabNodePositions" select="$tabNodePositions"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="grab-cell-content-before-tab-stop">
+ <xsl:param name="globalData"/>
+ <xsl:param name="endingTabStopPosition"/>
+ <xsl:param name="tabNodePositions"/>
+ <xsl:param name="lastNodePosition"/>
+
+ <xsl:choose>
+ <xsl:when test="$endingTabStopPosition = 1">
+ <xsl:apply-templates mode="content-table" select="node()[position() &lt; $tabNodePositions/tab-stop-node-position[$endingTabStopPosition]]">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$endingTabStopPosition > $lastNodePosition">
+ <xsl:apply-templates mode="content-table" select="node()[position() > $tabNodePositions/tab-stop-node-position[$endingTabStopPosition - 1]]">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="nodesOfNextColumn" select="node()[position() &lt; $tabNodePositions/tab-stop-node-position[$endingTabStopPosition]][position() &gt; $tabNodePositions/tab-stop-node-position[$endingTabStopPosition - 1]]"/>
+ <xsl:choose>
+ <xsl:when test="$nodesOfNextColumn != ''">
+ <xsl:apply-templates mode="content-table" select="$nodesOfNextColumn">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="content-table">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- As the span width will be mapped to column width, the preceding span widths have to be substracted -->
+ <xsl:template name="create-cell-width">
+ <xsl:param name="width"/>
+ <xsl:param name="unit"/>
+ <xsl:param name="position"/>
+ <xsl:param name="allStyleTabStops"/>
+
+ <xsl:choose>
+ <!-- beyond second width -->
+ <xsl:when test="$position > 1">
+ <xsl:call-template name="create-cell-width">
+ <xsl:with-param name="width" select="$width - number(substring-before($allStyleTabStops/style:tab-stops/style:tab-stop[$position]/@style:position,$unit))"/>
+ <xsl:with-param name="unit" select="$unit"/>
+ <xsl:with-param name="position" select="$position - 1"/>
+ <xsl:with-param name="allStyleTabStops" select="$allStyleTabStops"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- second width -->
+ <xsl:when test="$position = 1">
+ <xsl:value-of select="concat($width - number(substring-before($allStyleTabStops/style:tab-stops/style:tab-stop[$position]/@style:position,$unit)), $unit)"/>
+ </xsl:when>
+ <!-- first width -->
+ <xsl:otherwise>
+ <xsl:value-of select="concat($width, $unit)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- ************************************** -->
+ <!-- CREATION OF A CONTENT TABLE LINK -->
+ <!-- ************************************** -->
+
+ <xsl:key name="bookmark" match="text:bookmark | text:bookmark-start" use="@text:name"/>
+
+ <!-- content table link -->
+ <xsl:template match="text:a" mode="content-table">
+ <xsl:param name="globalData"/>
+
+ <xsl:variable name="name" select="substring(@xlink:href,2)"/>
+
+ <xsl:variable name="text">
+ <xsl:choose>
+ <!-- heuristic assumption that first in a content table row, there is numbering (if at all) and than the text,
+ furthermore that a tab will separate the to be neglected page number -->
+ <xsl:when test="text:tab">
+ <xsl:call-template name="write-text-without-line-numbers">
+ <xsl:with-param name="textCount" select="count(text())"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="text()"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- REFERENCE HANDLING - HREF -->
+ <xsl:element namespace="{$namespace}" name="a">
+ <xsl:attribute name="href">
+ <xsl:text>#</xsl:text>
+ <xsl:choose>
+ <xsl:when test="key('bookmark',$name)">
+ <xsl:value-of select="$name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select='concat("a_", translate(normalize-space($text), "&#xA;&amp;&lt;&gt;.,;: %()[]/\+", "_______________________________"))'/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:value-of select="$text"/>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- Heuristic: write out text separated by elements, leaving the last number out (mostly text number) -->
+ <xsl:template name="write-text-without-line-numbers">
+ <xsl:param name="textCount"/>
+ <xsl:param name="textNodeNumber" select="1"/>
+
+ <xsl:choose>
+ <xsl:when test="$textCount &gt; $textNodeNumber">
+ <xsl:value-of select="text()[$textNodeNumber]"/>
+ <xsl:call-template name="write-text-without-line-numbers">
+ <xsl:with-param name="textCount" select="$textCount"/>
+ <xsl:with-param name="textNodeNumber" select="$textNodeNumber + 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="not(number(text()[$textNodeNumber]) &gt; -1)">
+ <xsl:value-of select="text()[$textNodeNumber]"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+ <xsl:template match="text:s" mode="content-table">
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="@text:c"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- ******************** -->
+ <!-- *** Common Rules *** -->
+ <!-- ******************** -->
+
+ <xsl:template match="*" mode="content-table">
+ <xsl:param name="globalData"/>
+
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="*" mode="cell-content">
+ <xsl:if test="name() = 'text:tab' or *[name() = 'text:tab']">
+ <xsl:element name="tab-stop-node-position" namespace="">
+ <xsl:value-of select="position()"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="text()" mode="content-table">
+ <!-- Heuristic to remove page numbers (useless in HTML) in the content table
+ usually after a tab -->
+ <xsl:if test="name(preceding-sibling::*[1]) != 'text:tab' and not(number() &gt; -1)">
+ <xsl:value-of select="."/>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/spreadsheetml/formular.xsl b/test/user-template/user/xslt/export/spreadsheetml/formular.xsl
new file mode 100644
index 000000000000..8134412ec8d9
--- /dev/null
+++ b/test/user-template/user/xslt/export/spreadsheetml/formular.xsl
@@ -0,0 +1,640 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xt="http://www.jclark.com/xt"
+ xmlns:common="http://exslt.org/common"
+ xmlns:xalan="http://xml.apache.org/xalan"
+ xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xlink xt common xalan">
+
+
+ <!-- Mapping @table:formula to @ss:Formula translating the expression syntax -->
+ <xsl:template match="@table:formula">
+ <xsl:param name="calculatedCellPosition" />
+ <xsl:param name="calculatedRowPosition" />
+
+ <xsl:attribute name="ss:Formula">
+ <xsl:call-template name="translate-formular-expression">
+ <xsl:with-param name="rowPos" select="$calculatedRowPosition" />
+ <xsl:with-param name="columnPos" select="$calculatedCellPosition" />
+ <xsl:with-param name="expression" select="." />
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:template>
+
+
+ <!-- Translate OOOC formula expressions of table cells to spreadsheetml expression
+
+ For example:
+ "oooc:=ROUNDDOWN(123.321;2)"
+ to "=ROUNDDOWN(123.321,2)"
+ "oooc:=([.B2]-[.C2])"
+ to "=(RC[-2]-RC[-1])"
+ "oooc:=DCOUNTA([.E14:.F21];[.F14];[.H14:.I15])"
+ to "=DCOUNTA(R[-17]C[3]:R[-10]C[4],R[-17]C[4],R[-17]C[6]:R[-16]C[7])" -->
+ <xsl:template name="translate-formular-expression">
+ <!-- return position or range for formula or other -->
+ <xsl:param name="rowPos" /> <!-- the position in row (vertical) of cell -->
+ <xsl:param name="columnPos" /> <!-- the position in column (horizontal of cell) -->
+ <xsl:param name="expression" /> <!-- the expression string to be converted -->
+
+ <xsl:choose>
+ <xsl:when test="$expression != ''">
+ <xsl:choose>
+ <!-- OASIS Open Document XML formular expressions -->
+ <xsl:when test="starts-with($expression,'oooc:')">
+ <!-- giving out the '=', which will be removed with 'oooc:=' to enable recursive string parsing -->
+ <xsl:text>=</xsl:text>
+ <xsl:call-template name="function-parameter-mapping">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <!-- 1) remove 'oooc:=' prefix and exchange ';' with ',' -->
+ <xsl:with-param name="expression" select="translate(substring($expression,7),';',',')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$expression" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$expression" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- As the function API of our Office and MS Office show differences in the argumentlists,
+ - sometimes the last parameter have to be neglected
+ - sometimes a default have to be added
+ these exchanges have to be done as well -->
+ <xsl:template name="function-parameter-mapping">
+ <xsl:param name="rowPos" /> <!-- the position in row (vertical of cell) -->
+ <xsl:param name="columnPos" /> <!-- the position in column (horizontal of cell) -->
+ <xsl:param name="expression" /> <!-- expression to be exchanged -->
+
+ <!-- Choose if the expression contains one of the function, which might need changes -->
+ <xsl:choose>
+ <!-- if not contain one of the functions, which need parameter mapping -->
+ <xsl:when test="not(contains($expression, 'ADDRESS(') or
+ contains($expression, 'CEILING(') or
+ contains($expression, 'FLOOR(') or
+ contains($expression, 'IF(') or
+ contains($expression, 'ROUND('))">
+ <!-- simply translate possily exisiting column & row references -->
+ <xsl:call-template name="translate-oooc-expression">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="$expression"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- functions to be mapped -->
+ <xsl:otherwise>
+ <xsl:variable name="functionPrefix" select="substring-before($expression, '(')" />
+ <xsl:variable name="expressionSuffix" select="substring-after($expression, '(')" />
+
+ <!-- translate in case the expression contains row/cell references aside of the function name -->
+ <xsl:call-template name="translate-oooc-expression">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="$functionPrefix"/>
+ </xsl:call-template>
+ <!-- Prefix do not include the bracket -->
+ <xsl:text>(</xsl:text>
+ <xsl:choose>
+ <xsl:when test="not(contains($functionPrefix, 'ADDRESS') or
+ contains($functionPrefix, 'CEILING') or
+ contains($functionPrefix, 'FLOOR') or
+ (contains($functionPrefix, 'IF') and not(
+ contains($functionPrefix, 'COUNTIF') or
+ contains($functionPrefix, 'SUMIF'))) or
+ contains($functionPrefix, 'ROUND'))">
+ <xsl:call-template name="function-parameter-mapping">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="$expressionSuffix"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="contains($functionPrefix, 'ADDRESS')">
+ <xsl:call-template name="find-parameters">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expressionSuffix" select="$expressionSuffix"/>
+ <xsl:with-param name="parameterRemoval" select="4" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains($functionPrefix, 'CEILING') or
+ contains($functionPrefix, 'FLOOR')">
+ <xsl:call-template name="find-parameters">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expressionSuffix" select="$expressionSuffix"/>
+ <xsl:with-param name="parameterRemoval" select="3" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains($functionPrefix, 'IF')">
+ <xsl:if test="not(contains($functionPrefix, 'COUNTIF') or
+ contains($functionPrefix, 'SUMIF'))">
+ <xsl:call-template name="find-parameters">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expressionSuffix" select="$expressionSuffix"/>
+ <xsl:with-param name="parameterAddition" select="'true'" />
+ <xsl:with-param name="additonAfterLastParameter" select="2" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="contains($functionPrefix, 'ROUND')">
+ <xsl:call-template name="find-parameters">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expressionSuffix" select="$expressionSuffix"/>
+ <xsl:with-param name="parameterAddition" select="'null'" />
+ <xsl:with-param name="additonAfterLastParameter" select="1" />
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Each parameter of the argumentlist have to be determined.
+ Due to the low level string functionlity in XSLT it becomes a clumsy task -->
+ <xsl:template name="find-parameters">
+ <!-- used for mapping of row/column reference -->
+ <xsl:param name="rowPos" /> <!-- the position in row (vertical of cell) -->
+ <xsl:param name="columnPos" /> <!-- the position in column (horizontal of cell) -->
+ <!-- used for mapping of parameter -->
+ <xsl:param name="parameterRemoval" />
+ <xsl:param name="parameterAddition" />
+ <xsl:param name="additonAfterLastParameter" />
+ <!-- used as helper to find a parameter -->
+ <xsl:param name="expressionSuffix" />
+ <xsl:param name="parameterNumber" select="1" />
+
+ <xsl:variable name="parameter">
+ <xsl:call-template name="getParameter">
+ <xsl:with-param name="expressionSuffix" select="$expressionSuffix"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <!-- if it is not the last parameter -->
+ <xsl:when test="starts-with(substring-after($expressionSuffix, $parameter), ',')">
+ <!-- searches the argument for functions to be mapped -->
+ <xsl:if test="not($parameterRemoval = $parameterNumber)">
+ <xsl:call-template name="function-parameter-mapping">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression">
+ <xsl:choose>
+ <!-- in case a character will be removed the preceding won't make a comma -->
+ <xsl:when test="$parameterRemoval = ($parameterNumber + 1)">
+ <xsl:value-of select="$parameter" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($parameter, ',')" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <!-- searches for the next parameter -->
+ <xsl:call-template name="find-parameters">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expressionSuffix" select="substring-after(substring-after($expressionSuffix, $parameter),',')"/>
+ <xsl:with-param name="parameterAddition" select="$parameterAddition" />
+ <xsl:with-param name="parameterRemoval" select="$parameterRemoval" />
+ <xsl:with-param name="additonAfterLastParameter" select="$additonAfterLastParameter" />
+ <xsl:with-param name="parameterNumber" select="$parameterNumber + 1" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- the last parameter -->
+ <xsl:choose>
+ <xsl:when test="$parameterRemoval = $parameterNumber">
+ <!-- searches the rest of the expression for functions to be mapped -->
+ <xsl:call-template name="function-parameter-mapping">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="substring-after($expressionSuffix, $parameter)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$parameterAddition and ($parameterNumber = $additonAfterLastParameter)">
+ <!-- searches the rest of the expression for functions to be mapped -->
+ <xsl:call-template name="function-parameter-mapping">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="$parameter" />
+ </xsl:call-template>
+ <!-- searches last parameter and additional parameters for functions to be mapped -->
+ <xsl:call-template name="function-parameter-mapping">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <!-- for the final parameter the latter substring is the ')' -->
+ <xsl:with-param name="expression" select="concat(',', $parameterAddition, substring-after($expressionSuffix, $parameter))"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- searches the argument for functions to be mapped -->
+ <xsl:call-template name="function-parameter-mapping">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="$parameter" />
+ </xsl:call-template>
+ <!-- searches the rest of the expression for functions to be mapped -->
+ <xsl:call-template name="function-parameter-mapping">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="substring-after($expressionSuffix, $parameter)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="getParameter">
+ <xsl:param name="closingBracketCount" select="0" />
+ <xsl:param name="openingBracketCount" select="0" />
+ <xsl:param name="expressionSuffix" />
+ <xsl:param name="parameterCandidate">
+ <xsl:choose>
+ <!-- if there are multiple parameter -->
+ <xsl:when test="contains(substring-before($expressionSuffix, ')'), ',')">
+ <xsl:value-of select="substring-before($expressionSuffix, ',')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($expressionSuffix, ')')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="earlierCandidate" select="$parameterCandidate" />
+
+ <xsl:choose>
+ <xsl:when test="contains($parameterCandidate, '(') or contains($parameterCandidate, ')')">
+ <xsl:choose>
+ <!-- contains only closing bracket(s) -->
+ <xsl:when test="contains($parameterCandidate, '(') and not(contains($parameterCandidate, ')'))">
+ <xsl:call-template name="getParameter">
+ <xsl:with-param name="openingBracketCount" select="$openingBracketCount + 1" />
+ <xsl:with-param name="closingBracketCount" select="$closingBracketCount" />
+ <xsl:with-param name="parameterCandidate" select="substring-after($parameterCandidate, '(')" />
+ <xsl:with-param name="earlierCandidate" select="$earlierCandidate" />
+ <xsl:with-param name="expressionSuffix" select="$expressionSuffix"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- contains only opening bracket(s) -->
+ <xsl:when test="not(contains($parameterCandidate, '(')) and contains($parameterCandidate, ')')">
+ <xsl:call-template name="getParameter">
+ <xsl:with-param name="openingBracketCount" select="$openingBracketCount" />
+ <xsl:with-param name="closingBracketCount" select="$closingBracketCount + 1" />
+ <xsl:with-param name="parameterCandidate" select="substring-after($parameterCandidate, ')')" />
+ <xsl:with-param name="earlierCandidate" select="$earlierCandidate" />
+ <xsl:with-param name="expressionSuffix" select="$expressionSuffix"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="string-length(substring-before($parameterCandidate, '(')) &lt;
+ string-length(substring-before($parameterCandidate, ')'))">
+ <xsl:call-template name="getParameter">
+ <xsl:with-param name="openingBracketCount" select="$openingBracketCount + 1" />
+ <xsl:with-param name="closingBracketCount" select="$closingBracketCount" />
+ <xsl:with-param name="parameterCandidate" select="substring-after($parameterCandidate, '(')" />
+ <xsl:with-param name="earlierCandidate" select="$earlierCandidate" />
+ <xsl:with-param name="expressionSuffix" select="$expressionSuffix"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="getParameter">
+ <xsl:with-param name="openingBracketCount" select="$openingBracketCount" />
+ <xsl:with-param name="closingBracketCount" select="$closingBracketCount + 1" />
+ <xsl:with-param name="parameterCandidate" select="substring-after($parameterCandidate, ')')" />
+ <xsl:with-param name="earlierCandidate" select="$earlierCandidate" />
+ <xsl:with-param name="expressionSuffix" select="$expressionSuffix"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$openingBracketCount = $closingBracketCount">
+ <xsl:value-of select="$earlierCandidate" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$earlierCandidate" />
+ <xsl:variable name="parameterCandidate2">
+ <xsl:variable name="formularAfterCandidate" select="substring-after($expressionSuffix, $earlierCandidate)" />
+ <xsl:variable name="parameterTillBracket" select="concat(substring-before($formularAfterCandidate,')'),')')" />
+ <xsl:variable name="parameterTillComma" select="substring-before(substring-after($expressionSuffix, $parameterTillBracket),',')" />
+ <xsl:choose>
+ <xsl:when test="string-length($parameterTillComma) &gt; 0 and
+ not(contains($parameterTillComma, '('))">
+ <xsl:choose>
+ <xsl:when test="starts-with($formularAfterCandidate, ',')">
+ <xsl:value-of select="concat(',',substring-before(substring-after($formularAfterCandidate,','),','))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($formularAfterCandidate,',')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$parameterTillBracket"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="getParameter">
+ <xsl:with-param name="closingBracketCount" select="$closingBracketCount" />
+ <xsl:with-param name="openingBracketCount" select="$openingBracketCount" />
+ <xsl:with-param name="parameterCandidate" select="$parameterCandidate2" />
+ <xsl:with-param name="earlierCandidate" select="$parameterCandidate2" />
+ <xsl:with-param name="expressionSuffix" select="$expressionSuffix" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Mapping table-cell definitions by exchangomg all table cell definitions:
+ a) a pair of cells e.g. "[.E14:.F21]" to "R[-17]C[3]:R[-10]C[4]"
+ b) a single cell e.g. "[.F14]" to "R[-17]"-->
+ <xsl:template name="translate-oooc-expression">
+ <xsl:param name="rowPos" /> <!-- the position in row (vertical of cell) -->
+ <xsl:param name="columnPos" /> <!-- the position in column (horizontal of cell) -->
+ <xsl:param name="expression" /> <!-- expression to be exchanged -->
+
+ <xsl:choose>
+ <xsl:when test="contains($expression, '[')">
+
+ <!-- Giving out the part before '[.' -->
+ <xsl:value-of select="substring-before($expression, '[')" />
+
+ <!-- Mapping cell definitions
+ 1) a pair of cells e.g. "[.E14:.F21]" to "R[-17]C[3]:R[-10]C[4]"
+ 2) a single cell e.g. "[.F14]" to "R[-17]"-->
+ <xsl:variable name="remainingExpression" select="substring-after($expression, '[')"/>
+ <xsl:choose>
+ <xsl:when test="contains(substring-before($remainingExpression, ']'), ':')">
+ <xsl:call-template name="translate-cell-expression">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="substring-before($remainingExpression, ':')" />
+ </xsl:call-template>
+ <xsl:value-of select="':'" />
+ <xsl:call-template name="translate-cell-expression">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="substring-after(substring-before($remainingExpression, ']'), ':')" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="translate-cell-expression">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="substring-before($remainingExpression, ']')" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="translate-oooc-expression">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="substring-after($remainingExpression,']')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Giving out the remaining part -->
+ <xsl:value-of select="$expression" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- A cell expression has usually starts with a '.' otherwise it references to a sheet -->
+ <xsl:template name="translate-cell-expression">
+ <xsl:param name="rowPos" /> <!-- the vertical position of the current cell -->
+ <xsl:param name="columnPos" /> <!-- the horizontal position of the current cell -->
+ <xsl:param name="targetRowPos" select="0"/> <!-- the vertical position of the target cell -->
+ <xsl:param name="targetColumnPos" select="0"/> <!-- the horizontal position of the target cell -->
+ <xsl:param name="charPos" select="0"/> <!-- current column position (needed for multiplying) -->
+ <xsl:param name="digitPos" select="0"/> <!-- current row position (needed for multiplying) -->
+ <xsl:param name="expression" /> <!-- expression to be parsed by character -->
+ <xsl:param name="isRow" select="true()"/> <!-- the string (e.g. $D39 is parsed character per character from the back,
+ first the row, later the column is parsed -->
+
+ <xsl:choose>
+ <xsl:when test="starts-with($expression, '.')">
+ <xsl:variable name="expLength" select="string-length($expression)" />
+ <xsl:choose>
+ <!-- parsing from the end, till only the '.' remains -->
+ <xsl:when test="$expLength != 1">
+ <xsl:variable name="token" select="substring($expression, $expLength)" />
+ <xsl:choose>
+ <xsl:when test="$token='0' or $token='1' or $token='2' or $token='3' or $token='4' or $token='5' or $token='6' or $token='7' or $token='8' or $token='9'">
+ <xsl:variable name="multiplier">
+ <xsl:call-template name="calculate-square-numbers">
+ <xsl:with-param name="base" select="10" />
+ <xsl:with-param name="exponent" select="$digitPos"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="translate-cell-expression">
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="targetColumnPos" select="$targetColumnPos" />
+ <xsl:with-param name="targetRowPos" select="$targetRowPos + $multiplier * $token" />
+ <xsl:with-param name="digitPos" select="$digitPos + 1" />
+ <xsl:with-param name="charPos" select="$charPos" />
+ <!-- removing the last character-->
+ <xsl:with-param name="expression" select="substring($expression, 1, $expLength - 1)" />
+ <xsl:with-param name="isRow" select="true()" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$token = '$'">
+ <xsl:choose>
+ <!-- if this is the first '$' after '.' (column-->
+ <xsl:when test="$expLength = 2">
+ <xsl:text>C</xsl:text><xsl:value-of select="$targetColumnPos"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>R</xsl:text><xsl:value-of select="$targetRowPos"/>
+ <xsl:call-template name="translate-cell-expression">
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="targetColumnPos" select="$targetColumnPos" />
+ <xsl:with-param name="targetRowPos" select="$targetRowPos" />
+ <xsl:with-param name="charPos" select="$charPos" />
+ <!-- removing the last character-->
+ <xsl:with-param name="expression" select="substring($expression, 1, $expLength - 1)" />
+ <xsl:with-param name="isRow" select="false()" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- in case of a letter -->
+ <xsl:otherwise>
+ <xsl:if test="$isRow">
+ <xsl:text>R</xsl:text>
+ <xsl:if test="$targetRowPos != $rowPos">
+ <xsl:text>[</xsl:text><xsl:value-of select="$targetRowPos - $rowPos"/><xsl:text>]</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ <xsl:variable name="multiplier">
+ <xsl:call-template name="calculate-square-numbers">
+ <xsl:with-param name="base" select="26" />
+ <xsl:with-param name="exponent" select="$charPos"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="tokenNumber">
+ <xsl:call-template name="character-to-number">
+ <xsl:with-param name="character" select="$token" />
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:call-template name="translate-cell-expression">
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="targetColumnPos" select="$targetColumnPos + $multiplier * $tokenNumber" />
+ <xsl:with-param name="targetRowPos" select="$targetRowPos" />
+ <xsl:with-param name="digitPos" select="$digitPos" />
+ <xsl:with-param name="charPos" select="$charPos + 1" />
+ <!-- removing the last character-->
+ <xsl:with-param name="expression" select="substring($expression, 1, $expLength - 1)" />
+ <xsl:with-param name="isRow" select="false()" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>C</xsl:text>
+ <xsl:if test="$targetColumnPos != $columnPos">
+ <xsl:text>[</xsl:text><xsl:value-of select="$targetColumnPos - $columnPos"/><xsl:text>]</xsl:text>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="sheetName" select="substring-before($expression, '.')" />
+ <xsl:value-of select="$sheetName"/><xsl:text>!</xsl:text>
+ <xsl:call-template name="translate-cell-expression">
+ <xsl:with-param name="rowPos" select="$rowPos" />
+ <xsl:with-param name="columnPos" select="$columnPos" />
+ <xsl:with-param name="expression" select="substring-after($expression, $sheetName)" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="calculate-square-numbers">
+ <xsl:param name="base" />
+ <xsl:param name="exponent" />
+ <xsl:param name="return" select="1" />
+
+ <xsl:choose>
+ <xsl:when test="$exponent > '1'">
+ <xsl:call-template name="calculate-square-numbers">
+ <xsl:with-param name="base" select="$base" />
+ <xsl:with-param name="exponent" select="$exponent - 1"/>
+ <xsl:with-param name="return" select="$return * $base" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$exponent = '1'">
+ <xsl:value-of select="$return * $base"/>
+ </xsl:when>
+ <!-- if exponent is equal '0' -->
+ <xsl:otherwise>
+ <xsl:value-of select="1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="character-to-number">
+ <xsl:param name="character" />
+ <xsl:choose>
+ <xsl:when test="$character = 'A'">1</xsl:when>
+ <xsl:when test="$character = 'B'">2</xsl:when>
+ <xsl:when test="$character = 'C'">3</xsl:when>
+ <xsl:when test="$character = 'D'">4</xsl:when>
+ <xsl:when test="$character = 'E'">5</xsl:when>
+ <xsl:when test="$character = 'F'">6</xsl:when>
+ <xsl:when test="$character = 'G'">7</xsl:when>
+ <xsl:when test="$character = 'H'">8</xsl:when>
+ <xsl:when test="$character = 'I'">9</xsl:when>
+ <xsl:when test="$character = 'J'">10</xsl:when>
+ <xsl:when test="$character = 'K'">11</xsl:when>
+ <xsl:when test="$character = 'L'">12</xsl:when>
+ <xsl:when test="$character = 'M'">13</xsl:when>
+ <xsl:when test="$character = 'N'">14</xsl:when>
+ <xsl:when test="$character = 'O'">15</xsl:when>
+ <xsl:when test="$character = 'P'">16</xsl:when>
+ <xsl:when test="$character = 'Q'">17</xsl:when>
+ <xsl:when test="$character = 'R'">18</xsl:when>
+ <xsl:when test="$character = 'S'">19</xsl:when>
+ <xsl:when test="$character = 'T'">20</xsl:when>
+ <xsl:when test="$character = 'U'">21</xsl:when>
+ <xsl:when test="$character = 'V'">22</xsl:when>
+ <xsl:when test="$character = 'W'">23</xsl:when>
+ <xsl:when test="$character = 'X'">24</xsl:when>
+ <xsl:when test="$character = 'Y'">25</xsl:when>
+ <xsl:when test="$character = 'Z'">26</xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/spreadsheetml/ooo2spreadsheetml.xsl b/test/user-template/user/xslt/export/spreadsheetml/ooo2spreadsheetml.xsl
new file mode 100644
index 000000000000..420d06474a3a
--- /dev/null
+++ b/test/user-template/user/xslt/export/spreadsheetml/ooo2spreadsheetml.xsl
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xlink">
+
+
+ <!--+++++ INCLUDED XSL MODULES +++++-->
+
+ <!-- helper collection, to convert measures (e.g. inch to pixel using DPI (dots per inch) parameter)-->
+ <xsl:import href="../../common/measure_conversion.xsl" />
+
+ <!-- excel table handling -->
+ <xsl:include href="table.xsl" />
+
+ <!-- mapping rules of office style properties to Excel style properties -->
+ <xsl:include href="style_mapping.xsl" />
+
+ <!-- creating the Excel styles element -->
+ <xsl:include href="styles.xsl" />
+
+ <!-- mapping formalar Expressions -->
+ <xsl:include href="formular.xsl" />
+
+ <xsl:output method = "xml"
+ indent = "no"
+ encoding = "UTF-8"
+ omit-xml-declaration = "no" />
+
+ <xsl:strip-space elements="ss:Data html:Data" />
+
+
+ <!-- common table handling -->
+ <xsl:variable name="namespace" select="'urn:schemas-microsoft-com:office:spreadsheet'" />
+
+ <!--+++++ PARAMETER SECTION +++++-->
+
+ <!-- OPTIONAL: (MANDATORY: for all input document with relative external links): parameter is a (relative) URL to the target directory.
+ Relative links from the office document (e.g. to external graphics) will get this parameter as a prefix -->
+ <xsl:param name="targetBaseURL" select="'./'" />
+
+ <!-- OPTIONAL: (MANDATORY: for input document with relative internal links)
+ To access contents of a office file (content like the meta.xml, styles.xml file or graphics) a URL could be choosen.
+ This could be even a JAR URL. The sourceBase of the content URL "jar:file:/C:/temp/Test.sxw!/content.xml" would be
+ "jar:file:/C:/temp/Test.sxw!/" for example.
+ When working with OpenOffice API a Package-URL encoded over HTTP can be used to access the jared contents of the the jared document. -->
+ <xsl:param name="sourceBaseURL" select="'./'" />
+
+ <!-- OPTIONAL: (MANDATORY: for session management by URL rewriting)
+ Useful for WebApplications: if a HTTP session is not cookie based, URL rewriting is beeing used (the session is appended to the URL).
+ This URL session is used for example when links to graphics are created by XSLT. Otherwise the user havt to log again in for every graphic he liks to see. -->
+ <xsl:param name="optionalURLSuffix" />
+
+ <!-- OPTIONAL: URL to office meta file (flat xml use the URL to the input file) -->
+ <xsl:param name="metaFileURL" />
+
+ <!-- OPTIONAL: URL to office meta file (flat xml use the URL to the input file) -->
+ <xsl:param name="stylesFileURL" />
+
+ <!-- OPTIONAL: in case of using a different processor than a JAVA XSLT, you can unable the Java functionality
+ (e.g. encoding chapter names for the content-table as href and anchors ) -->
+ <xsl:param name="java" select="true()" />
+ <xsl:param name="javaEnabled" select="boolean($java)" />
+
+ <!-- OPTIONAL: for activating the debug mode set the variable here to 'true()' or give any value from outside -->
+ <xsl:param name="debug" select="false()" />
+ <xsl:param name="debugEnabled" select="boolean($debug)" />
+
+ <!-- matching configuration entries -->
+ <xsl:key name="config" use="@config:name"
+ match="/*/office:settings/config:config-item-set/config:config-item-map-indexed/config:config-item-map-entry/config:config-item |
+ /*/office:settings/config:config-item-set/config:config-item-map-indexed/config:config-item-map-entry/config:config-item-map-named/config:config-item-map-entry/config:config-item" />
+
+ <xsl:key name="colors" match="/*/office:styles//@*[name() = 'fo:background-color' or name() = 'fo:color'] |
+ /*/office:automatic-styles//@*[name() = 'fo:background-color' or name() = 'fo:color']" use="/" />
+ <xsl:key name="colorRGB" match="@fo:background-color | @fo:color" use="." />
+ <!-- *************************** -->
+ <!-- *** Built up Excel file *** -->
+ <!-- *************************** -->
+ <xsl:template match="/">
+ <xsl:processing-instruction name="mso-application">progid="Excel.Sheet"</xsl:processing-instruction>
+ <!-- Note: for debugging purpose include schema location
+ <Workbook xsi:schemaLocation="urn:schemas-microsoft-com:office:spreadsheet <YOUR_SCHEMA_URL>/excelss.xsd"> -->
+ <Workbook>
+ <!-- adding some default settings -->
+ <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
+ <Colors>
+ <xsl:for-each select="key('colors', /)
+ [generate-id(.) =
+ generate-id(key('colorRGB', .)[1]) and starts-with(., '#')] ">
+ <xsl:sort select="." />
+ <Color>
+ <Index><xsl:value-of select="position() + 2" /></Index>
+ <RGB><xsl:value-of select="." /></RGB>
+ </Color>
+ </xsl:for-each>
+ <xsl:for-each select="key('config', 'TabColor')[not(.=preceding::config:config-item)]">
+ <xsl:sort select="." />
+ <Color>
+ <Index><xsl:value-of select="56 - position()" /></Index>
+ <RGB>
+ <xsl:call-template name="colordecimal2rgb">
+ <xsl:with-param name="colordecimal" select="."/>
+ </xsl:call-template>
+ </RGB>
+ </Color>
+ </xsl:for-each>
+ </Colors>
+ </OfficeDocumentSettings>
+ <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
+ <xsl:if test="key('config', 'HasSheetTabs') = 'false'">
+ <xsl:element name="HideWorkbookTabs" />
+ </xsl:if>
+ <WindowHeight>9000</WindowHeight>
+ <WindowWidth>13860</WindowWidth>
+ <WindowTopX>240</WindowTopX>
+ <WindowTopY>75</WindowTopY>
+ <ProtectStructure>False</ProtectStructure>
+ <ProtectWindows>False</ProtectWindows>
+ </ExcelWorkbook>
+ <!-- Note: the following handling will exchange the default, later
+ <x:ExcelWorkbook>
+ <xsl:apply-templates select="table:calculation-settings" />
+ </x:ExcelWorkbook>
+ -->
+ <xsl:element name="Styles">
+ <!-- our application default will not be used for export to Excel
+ <xsl:apply-templates select="/*/office:styles/style:default-style" mode="styles" />-->
+ <xsl:apply-templates select="/*/office:styles/style:style" mode="styles" />
+ <xsl:apply-templates select="/*/office:automatic-styles/style:style" mode="styles" >
+ <xsl:with-param name="isAutomatic" select="true()" />
+ </xsl:apply-templates>
+ </xsl:element>
+ <xsl:apply-templates select="/*/office:body" />
+ </Workbook>
+ </xsl:template>
+
+ <xsl:template name="colordecimal2rgb">
+ <xsl:param name="colordecimal"/>
+ <xsl:choose>
+ <xsl:when test="$colordecimal &lt;= 16777215 and $colordecimal &gt;= 65536">
+ <xsl:variable name="redValue" select="floor(($colordecimal) div 65536)"/>
+ <xsl:variable name="greenValue" select="floor(($colordecimal - ($redValue*65536)) div 256)"/>
+ <xsl:variable name="blueValue" select="$colordecimal - ($redValue*65536) - ($greenValue*256)"/>
+ <xsl:call-template name="dec_rgb2Hex">
+ <xsl:with-param name="decRedValue" select="$redValue"/>
+ <xsl:with-param name="decGreenValue" select="$greenValue"/>
+ <xsl:with-param name="decBlueValue" select="$blueValue"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$colordecimal &lt;= 65535 and $colordecimal &gt;= 256">
+ <xsl:variable name="redValue" select="0"/>
+ <xsl:variable name="greenValue" select="$colordecimal div 256"/>
+ <xsl:variable name="blueValue" select="$colordecimal - ($greenValue*256)"/>
+ <xsl:call-template name="dec_rgb2Hex">
+ <xsl:with-param name="decRedValue" select="$redValue"/>
+ <xsl:with-param name="decGreenValue" select="$greenValue"/>
+ <xsl:with-param name="decBlueValue" select="$blueValue"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$colordecimal &lt;= 255 and $colordecimal &gt;= 0">
+ <xsl:variable name="redValue" select="0"/>
+ <xsl:variable name="greenValue" select="0"/>
+ <xsl:variable name="blueValue" select="$colordecimal"/>
+ <xsl:call-template name="dec_rgb2Hex">
+ <xsl:with-param name="decRedValue" select="$redValue"/>
+ <xsl:with-param name="decGreenValue" select="$greenValue"/>
+ <xsl:with-param name="decBlueValue" select="$blueValue"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="dec_rgb2Hex">
+ <xsl:param name="decRedValue"/>
+ <xsl:param name="decGreenValue"/>
+ <xsl:param name="decBlueValue"/>
+ <xsl:variable name="hexRedValue">
+ <xsl:variable name="tmpHexRedValue">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="$decRedValue"/>
+ <xsl:with-param name="last-value" select="'H'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($tmpHexRedValue) = 1">
+ <xsl:value-of select="concat('0',$tmpHexRedValue)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$tmpHexRedValue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="hexGreenValue">
+ <xsl:variable name="tmpHexGreenValue">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="$decGreenValue"/>
+ <xsl:with-param name="last-value" select="'H'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($tmpHexGreenValue) = 1">
+ <xsl:value-of select="concat('0',$tmpHexGreenValue)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$tmpHexGreenValue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="hexBlueValue">
+ <xsl:variable name="tmpHexBlueValue">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="$decBlueValue"/>
+ <xsl:with-param name="last-value" select="'H'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($tmpHexBlueValue) = 1">
+ <xsl:value-of select="concat('0',$tmpHexBlueValue)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$tmpHexBlueValue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat('#',$hexRedValue,$hexGreenValue,$hexBlueValue)"/>
+ </xsl:template>
+ <xsl:template name="decimal2hex">
+ <!-- transforms a decimal number to a hex number,only for two-bit hex(less than 256 in decimal) currently -->
+ <xsl:param name="dec-number"/>
+ <xsl:param name="last-value"/>
+ <xsl:variable name="current-value">
+ <xsl:call-template name="decNumber2hex">
+ <xsl:with-param name="dec-value">
+ <xsl:if test="$dec-number &gt; 15">
+ <xsl:value-of select="floor($dec-number div 16)"/>
+ </xsl:if>
+ <xsl:if test="$dec-number &lt; 16">
+ <xsl:value-of select="$dec-number"/>
+ </xsl:if>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$dec-number &gt; 15">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="$dec-number mod 16"/>
+ <xsl:with-param name="last-value" select="concat($last-value,$current-value)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$dec-number &lt; 16">
+ <xsl:value-of select="substring-after(concat($last-value,$current-value),'H')"/>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="decNumber2hex">
+ <!-- return a hex number for a decimal character -->
+ <xsl:param name="dec-value"/>
+ <xsl:choose>
+ <xsl:when test="$dec-value = 10">
+ <xsl:value-of select="'A'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 11">
+ <xsl:value-of select="'B'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 12">
+ <xsl:value-of select="'C'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 13">
+ <xsl:value-of select="'D'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 14">
+ <xsl:value-of select="'E'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 15">
+ <xsl:value-of select="'F'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$dec-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="GetTabColorIndex">
+ <xsl:param name="SheetColor"/>
+ <xsl:for-each select="key('config', 'TabColor')[not(.=preceding::config:config-item)]">
+ <xsl:sort select="." />
+ <xsl:variable name="tmpColor" select="."/>
+ <xsl:if test=". = $SheetColor" >
+ <xsl:value-of select="56 - position()"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="office:body">
+ <!-- office:body table:table children are spreadsheets -->
+ <xsl:apply-templates />
+ </xsl:template>
+
+ <xsl:template match="office:spreadsheet">
+ <xsl:apply-templates />
+ </xsl:template>
+
+ <!-- office:body table:table children are spreadsheets -->
+ <xsl:template match="office:spreadsheet/table:table">
+ <xsl:element name="ss:Worksheet">
+ <xsl:variable name="TableName">
+ <xsl:value-of select="@table:name" />
+ </xsl:variable>
+ <xsl:attribute name="ss:Name">
+ <xsl:value-of select="$TableName" />
+ </xsl:attribute>
+ <xsl:call-template name="table:table" />
+ <xsl:element name="x:WorksheetOptions">
+ <xsl:if test="key('config', 'ShowGrid') = 'false'">
+ <xsl:element name="x:DoNotDisplayGridlines" />
+ </xsl:if>
+ <xsl:if test="key('config', 'HasColumnRowHeaders') = 'false'">
+ <xsl:element name="x:DoNotDisplayHeadings" />
+ </xsl:if>
+ <xsl:if test="key('config', 'IsOutlineSymbolsSet') = 'false'">
+ <xsl:element name="x:DoNotDisplayOutline" />
+ </xsl:if>
+ <xsl:if test="key('config', 'ShowZeroValues') = 'false'">
+ <xsl:element name="x:DoNotDisplayZeros" />
+ </xsl:if>
+ <xsl:if test="/*/office:settings/config:config-item-set/config:config-item-map-indexed/config:config-item-map-entry/config:config-item-map-named/config:config-item-map-entry[@config:name=$TableName]/config:config-item[@config:name='TabColor']">
+ <xsl:element name="x:TabColorIndex">
+ <xsl:variable name="TabColorIndex">
+ <xsl:call-template name="GetTabColorIndex">
+ <xsl:with-param name="SheetColor" select="/*/office:settings/config:config-item-set/config:config-item-map-indexed/config:config-item-map-entry/config:config-item-map-named/config:config-item-map-entry[@config:name=$TableName]/config:config-item[@config:name='TabColor']"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$TabColorIndex"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="table:decls" mode="ExcelWorkbook">
+ <xsl:apply-templates mode="ExcelWorkbook" />
+ </xsl:template>
+
+ <xsl:template match="table:calculation-settings" mode="ExcelWorkbook">
+ <xsl:if test="table:precision-as-shown">
+ <x:PrecisionAsDisplayed/>
+ </xsl:if>
+ <xsl:if test="table:null-date/@office:date-value='1904-01-01'">
+ <x:Date1904/>
+ </xsl:if>
+ <xsl:apply-templates select="table:iteration" />
+ </xsl:template>
+
+ <xsl:template match="table:iteration" mode="ExcelWorkbook">
+ <xsl:element name="x:ExcelWorkbook">
+ <xsl:if test="@table:status = 'enable'">
+ <x:Iteration/>
+ </xsl:if>
+ <xsl:if test="@table:steps">
+ <xsl:element name="x:MaxIterations">
+ <xsl:value-of select="@table:steps" />
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@table:maximum-difference">
+ <xsl:element name="x:MaxChange">
+ <xsl:value-of select="@table:maximum-difference" />
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/spreadsheetml/style_mapping.xsl b/test/user-template/user/xslt/export/spreadsheetml/style_mapping.xsl
new file mode 100644
index 000000000000..a3396f1f9ac3
--- /dev/null
+++ b/test/user-template/user/xslt/export/spreadsheetml/style_mapping.xsl
@@ -0,0 +1,390 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xt="http://www.jclark.com/xt"
+ xmlns:common="http://exslt.org/common"
+ xmlns:xalan="http://xml.apache.org/xalan"
+ xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xlink xt common xalan">
+
+ <xsl:variable name="namespace-html" select="'http://www.w3.org/TR/REC-html40'" />
+
+ <xsl:template match="@table:style-name | @table:default-cell-style-name">
+ <xsl:if test="not(name() = 'Default')">
+ <xsl:attribute name="ss:StyleID">
+ <xsl:value-of select="." />
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:key match="table:table-cell" name="getCellByStyle" use="@table:style-name"/>
+ <xsl:template match="@table:style-name" mode="table-row">
+ <!-- only row styles used by cells are exported,
+ as usual row style properties are already written as row attributes -->
+ <xsl:if test="key('getCellByStyle', '.')">
+ <xsl:attribute name="ss:StyleID">
+ <xsl:value-of select="." />
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="style-and-contents">
+ <xsl:param name="cellStyleName" />
+
+ <!-- WorkAround of Excel2003 issue:
+ Styles from the CellStyle will not be inherited to HTML content (e.g. Colour style).
+ -->
+ <xsl:choose>
+ <xsl:when test="@text:style-name">
+ <xsl:variable name="styles">
+ <xsl:copy-of select="key('styles', @text:style-name)/*" />
+ <xsl:copy-of select="key('styles', $cellStyleName)/*" />
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="create-nested-format-tags">
+ <xsl:with-param name="styles" select="xalan:nodeset($styles)" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="create-nested-format-tags">
+ <xsl:with-param name="styles" select="xt:node-set($styles)" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="create-nested-format-tags">
+ <xsl:with-param name="styles" select="common:node-set($styles)" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">The required node-set function was not found!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@table:style-name">
+ <xsl:variable name="styles">
+ <xsl:copy-of select="key('styles', @text:style-name)/*" />
+ <xsl:copy-of select="key('styles', $cellStyleName)/*" />
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="create-nested-format-tags">
+ <xsl:with-param name="styles" select="xalan:nodeset($styles)" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="create-nested-format-tags">
+ <xsl:with-param name="styles" select="xt:node-set($styles)" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="create-nested-format-tags">
+ <xsl:with-param name="styles" select="common:node-set($styles)" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">The required node-set function was not found!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- *********************************** -->
+ <!-- *** creating nested format tags *** -->
+ <!-- *********************************** -->
+
+ <!-- Bold -->
+ <xsl:template name="create-nested-format-tags">
+ <xsl:param name="styles" />
+ <xsl:param name="cellStyleName" />
+
+ <xsl:choose>
+ <xsl:when test="$styles/*/@fo:font-weight = 'bold' or $styles/*/@fo:font-weight = 'bolder'">
+ <xsl:element namespace="{$namespace-html}" name="B">
+ <xsl:call-template name="italic">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="italic">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- Italic -->
+ <xsl:template name="italic">
+ <xsl:param name="styles" />
+ <xsl:param name="cellStyleName" />
+
+ <xsl:choose>
+ <xsl:when test="$styles/*/@fo:font-style = 'italic' or $styles/*/@fo:font-style = 'oblique'">
+ <xsl:element namespace="{$namespace-html}" name="I">
+ <xsl:call-template name="underline">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="underline">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- Underline -->
+ <xsl:template name="underline">
+ <xsl:param name="styles" />
+ <xsl:param name="cellStyleName" />
+
+ <xsl:choose>
+ <xsl:when test="$styles/*/@style:text-underline-type and not($styles/*/@style:text-underline-type = 'none')">
+ <xsl:element namespace="{$namespace-html}" name="U">
+ <xsl:call-template name="strikethrough">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="strikethrough">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:template>
+
+
+ <!-- strikethrough -->
+ <xsl:template name="strikethrough">
+ <xsl:param name="styles" />
+ <xsl:param name="cellStyleName" />
+
+ <xsl:choose>
+ <xsl:when test="$styles/*/@style:text-line-through-style and not($styles/*/@style:text-line-through-style = 'none')">
+ <xsl:element namespace="{$namespace-html}" name="S">
+ <xsl:call-template name="super-subscript">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="super-subscript">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+
+ <!-- superscript & subscript -->
+ <xsl:template name="super-subscript">
+ <xsl:param name="styles" />
+ <xsl:param name="cellStyleName" />
+
+ <xsl:choose>
+ <xsl:when test="$styles/*/@style:text-position">
+ <xsl:variable name="textPosition" select="number(substring-before($styles/*/@style:text-position, '% '))" />
+ <xsl:choose>
+ <xsl:when test="$textPosition &gt; 0">
+ <xsl:element namespace="{$namespace-html}" name="Sup">
+ <xsl:call-template name="align">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="$textPosition &lt; 0">
+ <xsl:element namespace="{$namespace-html}" name="Sub">
+ <xsl:call-template name="align">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="align">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="align">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- Alignment - normally called by strikethrough, but no DIV elements in HTML -->
+ <xsl:template name="align">
+ <xsl:param name="styles" />
+ <xsl:param name="cellStyleName" />
+
+ <xsl:choose>
+ <xsl:when test="$styles/*/@fo:font-align">
+ <xsl:element namespace="{$namespace-html}" name="DIV">
+ <xsl:attribute name="html:style">
+ <xsl:choose>
+ <xsl:when test="$styles/*/@fo:font-align = 'start'">
+ <xsl:text>text-align:left;</xsl:text>
+ </xsl:when>
+ <xsl:when test="$styles/*/@fo:font-align = 'end'">
+ <xsl:text>text-align:right;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>text-align:center;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:call-template name="font">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="font">
+ <xsl:with-param name="styles" select="$styles" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- Font (size and color) -->
+ <xsl:template name="font">
+ <xsl:param name="styles" />
+ <xsl:param name="cellStyleName" />
+
+ <xsl:choose>
+ <xsl:when test="$styles/*/@style:font-name or
+ $styles/*/@fo:font-size or
+ $styles/*/@fo:color">
+ <xsl:element namespace="{$namespace-html}" name="Font">
+ <xsl:if test="$styles/*/@style:font-name">
+ <xsl:attribute name="html:Face">
+ <xsl:value-of select="$styles/*/@style:font-name" />
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styles/*/@fo:color">
+ <xsl:attribute name="html:Color">
+ <xsl:value-of select="$styles/*/@fo:color" />
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styles/*/@fo:font-size">
+ <!-- WORKAROUND TO EXCEL2003 issue where nested FONT elements with size attributes result in unloadable documents -->
+ <!-- Only create size attribute if parent do not have already one -->
+
+ <!--<xsl:choose>
+ <xsl:when test="not(key('styles', parent::*/@text:style-name)/*/@fo:font-size)"> -->
+ <xsl:if test="not(key('styles', parent::*/@text:style-name)/*/@fo:font-size)">
+ <xsl:attribute name="html:Size">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$styles/*/@fo:font-size" />
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <!--</xsl:when>
+ <xsl:otherwise>
+ <xsl:message>Due Excel issue we have to neglect size from @text:style-name '<xsl:value-of select="@text:style-name"/>'!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>-->
+ </xsl:if>
+ <!-- get the embedded content -->
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- get the embedded content -->
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/spreadsheetml/styles.xsl b/test/user-template/user/xslt/export/spreadsheetml/styles.xsl
new file mode 100644
index 000000000000..8b8875d0de61
--- /dev/null
+++ b/test/user-template/user/xslt/export/spreadsheetml/styles.xsl
@@ -0,0 +1,695 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xt="http://www.jclark.com/xt"
+ xmlns:common="http://exslt.org/common"
+ xmlns:xalan="http://xml.apache.org/xalan"
+ xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xlink xt common xalan">
+
+ <!-- Used in case of 'style:map', conditional formatting, where a style references to another -->
+ <xsl:key name="styles" match="/*/office:styles/style:style | /*/office:automatic-styles/style:style" use="@style:name" />
+ <!--
+ Mapping of OOo style:name and style:family to excel ss:ID
+ Styles form style:style map from style:name to ss:Name
+ style:parent-style map to ss:Parent
+ -->
+ <!-- default styles of the application
+ <xsl:template match="style:default-style" mode="styles" >
+ <xsl:call-template name="style:style">
+ <xsl:with-param name="styleName" select="'Default'" />
+ </xsl:call-template>
+ </xsl:template>
+ -->
+
+ <xsl:template match="style:style" mode="styles">
+ <xsl:param name="isAutomatic" />
+ <xsl:param name="styleName" select="@style:name" />
+ <xsl:param name="styleParentName" select="@style:parent-style-name" />
+
+ <!-- only row styles used by cells are exported,
+ as usual row style properties are already exported as row attributes -->
+ <xsl:if test="not(@style:family='table-row') or @style:family='table-row' and key('getCellByStyle', '.')">
+ <xsl:element name="Style">
+ <xsl:attribute name="ss:ID">
+ <!-- neglecting that a style is only unique in conjunction with it's family name -->
+ <xsl:value-of select="@style:name" />
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="not($isAutomatic)">
+ <xsl:choose>
+ <xsl:when test="@style:display-name">
+ <xsl:attribute name="ss:Name"><xsl:value-of select="@style:display-name"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="ss:Name"><xsl:value-of select="@style:name" /></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <!-- when a non-allowed parent style is found
+ (in spreadsheetml no style with ss:Name is able to have a ss:Parent) -->
+ <xsl:when test="@style:parent-style-name">
+ <!-- styles have to be merged (flatting heritance tree) -->
+ <xsl:variable name="stylePropertiesContainer">
+ <xsl:call-template name="merge-all-parent-styles">
+ <xsl:with-param name="currentStyle" select="." />
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="write-style-properties">
+ <xsl:with-param name="styleProperties" select="xalan:nodeset($stylePropertiesContainer)/*" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="write-style-properties">
+ <xsl:with-param name="styleProperties" select="common:node-set($stylePropertiesContainer)/*" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="write-style-properties">
+ <xsl:with-param name="styleProperties" select="xt:node-set($stylePropertiesContainer)/*" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">WARNING: The required node set function was not found!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="write-style-properties" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- automatic styles are implicit inherting from a style called 'Default',
+ furthermore nor in spreadsheetml nor in OpenDocument automatic styles are able to inherit from each other -->
+ <xsl:choose>
+ <xsl:when test="@style:parent-style-name and not(@style:parent-style-name = 'Default')">
+ <xsl:attribute name="ss:Parent"><xsl:value-of select="@style:parent-style-name" /></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:call-template name="write-style-properties" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- resolving the style inheritance by starting from uppermost parent and
+ overriding exisiting style properties by new found child properties -->
+ <xsl:template name="merge-all-parent-styles">
+ <xsl:param name="currentStyle" />
+
+ <xsl:choose>
+ <!-- in case of a parent, styles have to be merged (flatting heritance tree) -->
+ <xsl:when test="$currentStyle/@style:parent-style-name">
+ <!-- collect parent style properties -->
+ <xsl:variable name="parentStyleContainer">
+ <!-- take a look if the parent style has a parent himself -->
+ <xsl:call-template name="merge-all-parent-styles" >
+ <xsl:with-param name="currentStyle" select="key('styles', $currentStyle/@style:parent-style-name)" />
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="merge-style-properties">
+ <xsl:with-param name="childStyleContainer" select="$currentStyle" />
+ <xsl:with-param name="parentStyleContainer" select="xalan:nodeset($parentStyleContainer)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="merge-style-properties">
+ <xsl:with-param name="childStyleContainer" select="$currentStyle" />
+ <xsl:with-param name="parentStyleContainer" select="common:node-set($parentStyleContainer)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="merge-style-properties">
+ <xsl:with-param name="childStyleContainer" select="$currentStyle" />
+ <xsl:with-param name="parentStyleContainer" select="xt:node-set($parentStyleContainer)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">WARNING: The required node-set function was not found!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- called for top parents (or styles without parents) -->
+ <xsl:otherwise>
+ <xsl:copy-of select="$currentStyle/*"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="merge-style-properties">
+ <xsl:param name="childStyleContainer" />
+ <xsl:param name="parentStyleContainer" />
+
+ <xsl:choose>
+ <xsl:when test="$parentStyleContainer/*">
+ <xsl:apply-templates select="$parentStyleContainer/*" mode="inheritance">
+ <xsl:with-param name="childStyleContainer" select="$childStyleContainer" />
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$childStyleContainer/*"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="*" mode="inheritance">
+ <xsl:param name="childStyleContainer" />
+
+ <!-- create an element named equal to the current properties parent element (e.g. style:table-cell-properties) -->
+ <xsl:element name="{name()}" namespace="urn:oasis:names:tc:opendocument:xmlns:style:1.0">
+ <!-- attributes will be automatically replaced -->
+ <xsl:copy-of select="@*" />
+ <xsl:copy-of select="$childStyleContainer/*[name() = name(current() )]/@*"/>
+
+ <!-- elements are not needed yet, will be neglected for simplicity reasons -->
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:key match="/*/office:styles/number:date-style |
+ /*/office:styles/number:time-style |
+ /*/office:styles/number:number-style |
+ /*/office:styles/number:percentage-style |
+ /*/office:styles/number:currency-style |
+ /*/office:automatic-styles/number:date-style |
+ /*/office:automatic-styles/number:time-style |
+ /*/office:automatic-styles/number:number-style |
+ /*/office:automatic-styles/number:percentage-style |
+ /*/office:automatic-styles/number:currency-style" name="number-style" use="@style:name" />
+
+
+ <xsl:template name="write-style-properties">
+ <xsl:param name="styleProperties" select="key('styles', @style:name)/*" />
+
+ <xsl:call-template name="Alignment">
+ <xsl:with-param name="styleProperties" select="$styleProperties" />
+ </xsl:call-template>
+ <xsl:call-template name="Border">
+ <xsl:with-param name="styleProperties" select="$styleProperties" />
+ </xsl:call-template>
+ <xsl:call-template name="Font">
+ <xsl:with-param name="styleProperties" select="$styleProperties" />
+ <xsl:with-param name="styleParentName" select="@style:parent-style-name" />
+ </xsl:call-template>
+ <xsl:call-template name="Interior">
+ <xsl:with-param name="styleProperties" select="$styleProperties" />
+ </xsl:call-template>
+ <xsl:call-template name="NumberFormat">
+ <xsl:with-param name="styleProperties" select="$styleProperties" />
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- context is element 'style:style' -->
+ <xsl:template name="NumberFormat">
+ <xsl:if test="@style:data-style-name">
+ <xsl:variable name="numberStyleName" select="@style:data-style-name" />
+ <xsl:variable name="numberStyle" select="key('number-style', $numberStyleName)" />
+
+ <xsl:element name="NumberFormat">
+ <xsl:attribute name="ss:Format">
+ <xsl:choose>
+ <xsl:when test="not($numberStyle/node())">
+ <!-- Excel2003sp1 issue: 'General' and 'General Number' is not supported -->
+ <xsl:text>General</xsl:text>
+ </xsl:when>
+ <xsl:when test="name($numberStyle) = 'number:number-style'">
+ <xsl:choose>
+ <xsl:when test="$numberStyle/number:scientific-number">
+ <xsl:text>Scientific</xsl:text>
+ </xsl:when>
+ <!-- Excel2003sp1 issue: 'General Number' not supported -->
+ <xsl:when test="$numberStyle/number:number/@number:decimal-places and
+ $numberStyle/number:number/@number:decimal-places='0'">
+ <xsl:text>General</xsl:text>
+ </xsl:when>
+ <xsl:when test="$numberStyle/number:text">
+ <xsl:choose>
+ <xsl:when test="$numberStyle/number:text = 'No' or $numberStyle/number:text = 'Nein'">
+ <xsl:text>Yes/No</xsl:text>
+ </xsl:when>
+ <xsl:when test="$numberStyle/number:text = 'False' or $numberStyle/number:text = 'Falsch'">
+ <xsl:text>True/False</xsl:text>
+ </xsl:when>
+ <xsl:when test="$numberStyle/number:text = 'Off' or $numberStyle/number:text = 'Aus'">
+ <xsl:text>On/Off</xsl:text>
+ </xsl:when>
+ <!-- Excel2003sp1 issue: currency is saved as 'float' -->
+ <xsl:when test="$numberStyle/number:currency-symbol">
+ <xsl:choose>
+ <xsl:when test="contains($numberStyle/number:currency-symbol, '€')">
+ <xsl:text>Euro Currency</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Currency</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- Excel2003sp1 issue: 'Currency' is saved as 'float' -->
+ <xsl:when test="contains($numberStyle/number:text, '$')">
+ <xsl:text>Currency</xsl:text>
+ </xsl:when>
+ <!-- OASIS XML adapation -->
+ <xsl:otherwise>
+ <xsl:text>General</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$numberStyle/number:grouping">
+ <xsl:text>Standard</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Fixed</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name($numberStyle) = 'number:time-style'">
+ <xsl:choose>
+ <xsl:when test="$numberStyle/number:am-pm">
+ <xsl:choose>
+ <xsl:when test="$numberStyle/number:seconds">
+ <xsl:text>Long Time</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Medium Time</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Short Time</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name($numberStyle) = 'number:percentage-style'">
+ <xsl:text>Percent</xsl:text>
+ </xsl:when>
+ <xsl:when test="name($numberStyle) = 'number:currency-style'">
+ <xsl:choose>
+ <xsl:when test="contains($numberStyle/number:currency-symbol, '€')">
+ <xsl:text>Euro Currency</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Currency</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$numberStyle/number:month">
+ <xsl:choose>
+ <xsl:when test="$numberStyle/number:month/@number:textual and
+ $numberStyle/number:month/@number:textual=true()">
+ <xsl:text>Medium Date</xsl:text>
+ <!-- Excel2003 sp1 issue: No difference between 'Long Date' and 'Medium Date' -->
+ </xsl:when>
+ <xsl:when test="$numberStyle/number:hours">
+ <xsl:text>General Date</xsl:text>
+ </xsl:when>
+ <xsl:when test="$numberStyle/number:year/@number:style and
+ $numberStyle/number:year/@number:style='long'">
+ <xsl:text>Short Date</xsl:text>
+ </xsl:when>
+ <!-- OASIS XML adapation -->
+ <xsl:otherwise>
+ <xsl:text>Short Date</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- OASIS XML adapation -->
+ <xsl:otherwise>
+ <xsl:text>General</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="Alignment">
+ <xsl:param name="styleProperties" />
+
+ <!-- An empty Alignment element, might overwrite parents setting by
+ the default attributes -->
+ <xsl:if test="$styleProperties/@fo:text-align or
+ $styleProperties/@style:vertical-align or
+ $styleProperties/@fo:wrap-option or
+ $styleProperties/@fo:margin-left or
+ $styleProperties/@style:rotation-angle or
+ $styleProperties/@style:direction">
+ <xsl:element name="Alignment">
+ <xsl:if test="$styleProperties/@fo:text-align">
+ <xsl:attribute name="ss:Horizontal">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@fo:text-align = 'center'">Center</xsl:when>
+ <xsl:when test="$styleProperties/@fo:text-align = 'end'">Right</xsl:when>
+ <xsl:when test="$styleProperties/@fo:text-align = 'justify'">Justify</xsl:when>
+ <xsl:otherwise>Left</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:vertical-align">
+ <xsl:attribute name="ss:Vertical">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:vertical-align = 'top'">Top</xsl:when>
+ <xsl:when test="$styleProperties/@style:vertical-align = 'bottom'">Bottom</xsl:when>
+ <xsl:when test="$styleProperties/@style:vertical-align = 'middle'">Center</xsl:when>
+ <xsl:otherwise>Automatic</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@fo:wrap-option = 'wrap'">
+ <xsl:attribute name="ss:WrapText">1</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@fo:margin-left">
+ <xsl:attribute name="ss:Indent">
+ <xsl:variable name="margin">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$styleProperties/@fo:margin-left" />
+ <xsl:with-param name="rounding-factor" select="1" />
+ </xsl:call-template>
+ </xsl:variable>
+ <!-- one ss:Indent is equal to 10 points -->
+ <xsl:value-of select="number($margin) div 10"/>
+ </xsl:attribute>
+ </xsl:if>
+ <!-- Excel is only able to rotate between 90 and -90 degree (inclusive).
+ Other degrees will be mapped by 180 degrees -->
+ <xsl:if test="$styleProperties/@style:rotation-angle">
+ <xsl:attribute name="ss:Rotate">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:rotation-angle &gt; 90">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:rotation-angle &gt;= 270">
+ <xsl:value-of select="$styleProperties/@style:rotation-angle - 360" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$styleProperties/@style:rotation-angle - 180" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$styleProperties/@style:rotation-angle &lt; -90">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:rotation-angle &lt;= -270">
+ <xsl:value-of select="$styleProperties/@style:rotation-angle + 360" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$styleProperties/@style:rotation-angle + 180" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$styleProperties/@style:rotation-angle" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:direction = 'ttb'">
+ <xsl:attribute name="ss:VerticalText">1</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+
+ <xsl:template name="Border">
+ <xsl:param name="styleProperties" />
+
+ <!-- An empty border element, might overwrite parents setting by
+ the default attributes -->
+ <xsl:if test="$styleProperties/@fo:border or
+ $styleProperties/@fo:border-bottom or
+ $styleProperties/@fo:border-left or
+ $styleProperties/@fo:border-right or
+ $styleProperties/@fo:border-top">
+ <xsl:element name="Borders">
+ <xsl:if test="$styleProperties/@fo:border-bottom and not($styleProperties/@fo:border-bottom = 'none')">
+ <xsl:element name="Border">
+ <xsl:attribute name="ss:Position">Bottom</xsl:attribute>
+ <xsl:call-template name="border-attributes">
+ <xsl:with-param name="border_properties" select="$styleProperties/@fo:border-bottom" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@fo:border-left and not($styleProperties/@fo:border-left = 'none')">
+ <xsl:element name="Border">
+ <xsl:attribute name="ss:Position">Left</xsl:attribute>
+ <xsl:call-template name="border-attributes">
+ <xsl:with-param name="border_properties" select="$styleProperties/@fo:border-left" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@fo:border-right and not($styleProperties/@fo:border-right = 'none')">
+ <xsl:element name="Border">
+ <xsl:attribute name="ss:Position">Right</xsl:attribute>
+ <xsl:call-template name="border-attributes">
+ <xsl:with-param name="border_properties" select="$styleProperties/@fo:border-right" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@fo:border-top and not($styleProperties/@fo:border-top = 'none')">
+ <xsl:element name="Border">
+ <xsl:attribute name="ss:Position">Top</xsl:attribute>
+ <xsl:call-template name="border-attributes">
+ <xsl:with-param name="border_properties" select="$styleProperties/@fo:border-top" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <!-- write out all table border -->
+ <xsl:if test="$styleProperties/@fo:border and not($styleProperties/@fo:border = 'none')">
+ <xsl:element name="Border">
+ <xsl:attribute name="ss:Position">Bottom</xsl:attribute>
+ <xsl:call-template name="border-attributes">
+ <xsl:with-param name="border_properties" select="$styleProperties/@fo:border" />
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:element name="Border">
+ <xsl:attribute name="ss:Position">Left</xsl:attribute>
+ <xsl:call-template name="border-attributes">
+ <xsl:with-param name="border_properties" select="$styleProperties/@fo:border" />
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:element name="Border">
+ <xsl:attribute name="ss:Position">Right</xsl:attribute>
+ <xsl:call-template name="border-attributes">
+ <xsl:with-param name="border_properties" select="$styleProperties/@fo:border" />
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:element name="Border">
+ <xsl:attribute name="ss:Position">Top</xsl:attribute>
+ <xsl:call-template name="border-attributes">
+ <xsl:with-param name="border_properties" select="$styleProperties/@fo:border" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+
+ <xsl:template name="border-attributes">
+ <xsl:param name="border_properties" />
+
+ <xsl:variable name="border-width">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="substring-before($border_properties, ' ')" />
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="border-style" select="substring-before(substring-after($border_properties, ' '), ' ')" />
+ <xsl:variable name="border-color" select="substring-after(substring-after($border_properties, ' '), ' ')" />
+<!--
+ <xsl:message>border-width:<xsl:value-of select="$border-width" /></xsl:message>
+ <xsl:message>border-style:<xsl:value-of select="$border-style" /></xsl:message>
+ <xsl:message>border-color:<xsl:value-of select="$border-color" /></xsl:message>
+ -->
+
+ <!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
+ <xsl:attribute name="ss:LineStyle">
+ <xsl:choose>
+ <xsl:when test="$border-style = 'none'">None</xsl:when>
+ <xsl:when test="$border-style = 'double'">Double</xsl:when>
+ <xsl:otherwise>Continuous</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+
+ <xsl:attribute name="ss:Weight">
+ <xsl:choose>
+ <!-- 0: Hairline -->
+ <xsl:when test="$border-width &lt;= 0.002">0</xsl:when>
+ <!-- 1: Thin -->
+ <xsl:when test="$border-width &lt;= 0.035">1</xsl:when>
+ <!-- 2: Medium -->
+ <xsl:when test="$border-width &lt;= 0.088">2</xsl:when>
+ <!-- 3: Thick -->
+ <xsl:otherwise>3</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+
+ <xsl:attribute name="ss:Color">
+ <xsl:choose>
+ <xsl:when test="$border-color"><xsl:value-of select="$border-color" /></xsl:when>
+ <xsl:otherwise>Automatic</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:template>
+
+
+ <xsl:template name="Font">
+ <xsl:param name="styleProperties" />
+ <xsl:param name="styleParentName" />
+
+ <!-- An empty font element, might overwrite parents setting by
+ the default attributes -->
+ <xsl:if test="$styleProperties/@style:font-weight or
+ $styleProperties/@fo:color or
+ $styleProperties/@style:font-name or
+ $styleProperties/@fo:font-style or
+ $styleProperties/@style:text-outline or
+ $styleProperties/@style:text-shadow or
+ $styleProperties/@style:font-size or
+ $styleProperties/@style:text-line-through-style or
+ $styleProperties/@style:text-underline-type or
+ $styleProperties/@style:text-underline-style or
+ $styleProperties/@style:text-position">
+
+
+ <xsl:element name="Font">
+ <xsl:call-template name="getParentBold">
+ <xsl:with-param name="styleProperties" select="$styleProperties" />
+ <xsl:with-param name="styleParentName" select="$styleParentName" />
+ </xsl:call-template>
+ <xsl:if test="$styleProperties/@fo:color">
+ <xsl:attribute name="ss:Color"><xsl:value-of select="$styleProperties/@fo:color" /></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:font-name">
+ <xsl:attribute name="ss:FontName"><xsl:value-of select="$styleProperties/@style:font-name" /></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@fo:font-style = 'italic'">
+ <xsl:attribute name="ss:Italic">1</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:text-outline = 'true'">
+ <xsl:attribute name="ss:Outline">1</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:text-shadow = 'shadow'">
+ <xsl:attribute name="ss:Shadow">1</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@fo:font-size">
+ <xsl:attribute name="ss:Size">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$styleProperties/@fo:font-size" />
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:text-line-through-style and $styleProperties/@style:text-line-through-style != 'none'">
+ <xsl:attribute name="ss:StrikeThrough">1</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="($styleProperties/@style:text-underline-type and $styleProperties/@style:text-underline-type != 'none') or
+ ($styleProperties/@style:text-underline-style and $styleProperties/@style:text-underline-style != 'none')">
+ <xsl:attribute name="ss:Underline">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:text-underline-type = 'double'">Double</xsl:when>
+ <xsl:otherwise>Single</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:text-position">
+ <xsl:attribute name="ss:VerticalAlign">
+ <xsl:choose>
+ <xsl:when test="substring-before($styleProperties/@style:text-position, '% ') &gt; 0">Superscript</xsl:when>
+ <xsl:otherwise>Subscript</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="Interior">
+ <xsl:param name="styleProperties" />
+ <xsl:if test="$styleProperties/@fo:background-color and not($styleProperties/@fo:background-color = 'transparent')">
+ <xsl:element name="Interior">
+ <xsl:attribute name="ss:Color">
+ <xsl:value-of select="$styleProperties/@fo:background-color" />
+ </xsl:attribute>
+ <!-- Background color (i.e. Interior/ss:Color) not shown without ss:Pattern (or with 'none')
+ Therefore a default is set -->
+ <xsl:attribute name="ss:Pattern">Solid</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- Excel issue workaround: <Font ss:Bold="1"> is not inherited -->
+ <xsl:template name="getParentBold">
+ <xsl:param name="styleProperties" />
+ <xsl:param name="styleParentName" />
+ <xsl:param name="styleName" />
+
+ <xsl:if test="$styleParentName and $styleParentName != $styleName">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@fo:font-weight = 'bold'">
+ <xsl:attribute name="ss:Bold">1</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="getParentBold">
+ <xsl:with-param name="styleProperties" select="key('styles', $styleParentName)/*" />
+ <xsl:with-param name="styleParentName" select="key('styles', $styleParentName)/@style:parent-style-name" />
+ <xsl:with-param name="styleName" select="$styleParentName" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/spreadsheetml/table.xsl b/test/user-template/user/xslt/export/spreadsheetml/table.xsl
new file mode 100644
index 000000000000..6813b2510e1c
--- /dev/null
+++ b/test/user-template/user/xslt/export/spreadsheetml/table.xsl
@@ -0,0 +1,937 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xt="http://www.jclark.com/xt"
+ xmlns:common="http://exslt.org/common"
+ xmlns:xalan="http://xml.apache.org/xalan"
+ xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xlink xt common xalan">
+
+
+ <!-- ************** -->
+ <!-- *** Table *** -->
+ <!-- ************** -->
+
+ <!-- check existence of default cell style -->
+ <xsl:variable name="firstDefaultCellStyle" select="descendant::table:table-column/@table:default-cell-style-name" />
+
+
+ <xsl:template match="table:table" name="table:table">
+ <xsl:element name="Table">
+ <xsl:apply-templates select="@table:style-name" />
+
+ <!-- find all columns in the table -->
+ <xsl:variable name="columnNodes" select="descendant::table:table-column" />
+ <!-- calculate the overall column amount -->
+ <xsl:variable name="maxColumnNo">
+ <xsl:choose>
+ <xsl:when test="$columnNodes/@table:number-columns-repeated">
+ <xsl:value-of select="count($columnNodes)
+ + number(sum($columnNodes/@table:number-columns-repeated))
+ - count($columnNodes/@table:number-columns-repeated)" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="count($columnNodes)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- create columns -->
+ <xsl:apply-templates select="$columnNodes[1]">
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ <xsl:with-param name="maxColumnNo" select="$maxColumnNo" />
+ </xsl:apply-templates>
+
+ <!-- create rows -->
+ <xsl:choose>
+ <xsl:when test="not($columnNodes/@table:number-columns-repeated)">
+ <xsl:call-template name="optimized-row-handling">
+ <xsl:with-param name="rowNodes" select="descendant::table:table-row" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- To be able to match from a cell to the corresponding column to match @table:default-cell-style-name,
+ the repeated columns are being resolved by copying them in a helper variable -->
+ <xsl:variable name="columnNodes-RTF">
+ <xsl:for-each select="$columnNodes">
+ <xsl:call-template name="adding-column-styles-entries" />
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="optimized-row-handling">
+ <xsl:with-param name="rowNodes" select="descendant::table:table-row" />
+ <xsl:with-param name="columnNodes" select="xalan:nodeset($columnNodes-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="optimized-row-handling">
+ <xsl:with-param name="rowNodes" select="descendant::table:table-row" />
+ <xsl:with-param name="columnNodes" select="common:node-set($columnNodes-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="optimized-row-handling">
+ <xsl:with-param name="rowNodes" select="descendant::table:table-row" />
+ <xsl:with-param name="columnNodes" select="xt:node-set($columnNodes-RTF)" />
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+
+
+ <!-- **************** -->
+ <!-- *** Columns *** -->
+ <!-- **************** -->
+
+ <xsl:template match="table:table-column">
+ <xsl:param name="columnNodes" />
+ <xsl:param name="currentColumnNumber" select="1" />
+ <xsl:param name="setIndex" select="false()" />
+ <xsl:param name="maxColumnNo" />
+
+ <xsl:element name="Column">
+ <xsl:if test="@table:visibility = 'collapse' or @table:visibility = 'filter'">
+ <xsl:attribute name="ss:Hidden">1</xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="@table:number-columns-repeated">
+ <xsl:attribute name="ss:Span">
+ <xsl:value-of select="@table:number-columns-repeated - 1" />
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:if test="$setIndex">
+ <xsl:attribute name="ss:Index">
+ <xsl:value-of select="$currentColumnNumber" />
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="@style:use-optimal-column-width = 'true'">
+ <xsl:attribute name="ss:AutoFitWidth">1</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="width" select="key('styles', @table:style-name)/style:table-column-properties/@style:column-width" />
+ <xsl:if test="$width">
+ <xsl:attribute name="ss:Width">
+ <!-- using the absolute width in point -->
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$width" />
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="@table:number-columns-repeated">
+ <xsl:attribute name="ss:Span">
+ <xsl:value-of select="@table:number-columns-repeated - 1" />
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+
+ <xsl:variable name="columnNumber">
+ <xsl:choose>
+ <xsl:when test="@table:number-columns-repeated">
+ <xsl:value-of select="$currentColumnNumber + @table:number-columns-repeated"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$currentColumnNumber"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$columnNumber &lt; $maxColumnNo">
+ <xsl:variable name="nextColumnNodes" select="$columnNodes[position() != 1]" />
+ <xsl:choose>
+ <xsl:when test="@table:number-columns-repeated">
+ <xsl:apply-templates select="$nextColumnNodes[1]">
+ <xsl:with-param name="columnNodes" select="$nextColumnNodes" />
+ <xsl:with-param name="currentColumnNumber" select="$columnNumber" />
+ <xsl:with-param name="maxColumnNo" select="$maxColumnNo" />
+ <xsl:with-param name="setIndex" select="true()" />
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$nextColumnNodes[1]">
+ <xsl:with-param name="columnNodes" select="$nextColumnNodes" />
+ <xsl:with-param name="currentColumnNumber" select="$columnNumber + 1" />
+ <xsl:with-param name="maxColumnNo" select="$maxColumnNo" />
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- current node is a table:table-column -->
+ <xsl:template name="adding-column-styles-entries">
+ <xsl:choose>
+ <xsl:when test="not(@table:number-columns-repeated and @table:number-columns-repeated > 1)">
+ <!-- writes an entry of a column in the columns-variable -->
+ <xsl:copy-of select="." />
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- repeated colums will be written explicit several times in the variable-->
+ <xsl:call-template name="repeat-adding-table-column">
+ <xsl:with-param name="numberColumnsRepeated" select="@table:number-columns-repeated" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- current node is a table:table-column -->
+ <!-- dublicates column elements in case of column-repeated attribute -->
+ <xsl:template name="repeat-adding-table-column">
+ <xsl:param name="table:table-column" />
+ <xsl:param name="numberColumnsRepeated" />
+
+ <xsl:choose>
+ <xsl:when test="$numberColumnsRepeated > 1">
+ <!-- writes an entry of a column in the columns-variable -->
+ <xsl:copy-of select="." />
+ <!-- repeat calling this method until all elements written out -->
+ <xsl:call-template name="repeat-adding-table-column">
+ <xsl:with-param name="numberColumnsRepeated" select="$numberColumnsRepeated - 1" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- writes an entry of a column in the columns-variable -->
+ <xsl:copy-of select="." />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- ************* -->
+ <!-- *** Rows *** -->
+ <!-- ************* -->
+
+
+ <!-- Recursions are much faster when the stack size is small -->
+ <xsl:template name="optimized-row-handling">
+ <xsl:param name="rowNodes" />
+ <xsl:param name="columnNodes" />
+ <xsl:param name="offset" select="0"/>
+ <xsl:param name="threshold" select="10"/>
+
+ <xsl:variable name="rowCount" select="count($rowNodes)"/>
+ <xsl:choose>
+ <xsl:when test="$rowCount &lt;= $threshold">
+ <xsl:apply-templates select="$rowNodes[1]">
+ <xsl:with-param name="rowNodes" select="$rowNodes" />
+ <xsl:with-param name="offset" select="$offset" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="rowCountHalf" select="floor($rowCount div 2)"/>
+ <xsl:variable name="rowNodesSetA" select="$rowNodes[position() &lt;= $rowCountHalf]"/>
+ <xsl:variable name="rowNodesSetB" select="$rowNodes[position() &gt; $rowCountHalf]"/>
+ <!-- to keep track of the rownumber, the repeteated rows have to kept into accounts -->
+ <xsl:variable name="rowsCreatedByRepetition">
+ <xsl:choose>
+ <xsl:when test="$rowNodesSetA/@table:number-rows-repeated">
+ <xsl:value-of select="number(sum($rowNodesSetA/@table:number-rows-repeated))
+ - count($rowNodesSetA/@table:number-rows-repeated)" />
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$rowCountHalf &gt; $threshold">
+ <xsl:call-template name="optimized-row-handling">
+ <xsl:with-param name="rowNodes" select="$rowNodesSetA"/>
+ <xsl:with-param name="offset" select="$offset" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ <xsl:call-template name="optimized-row-handling">
+ <xsl:with-param name="rowNodes" select="$rowNodesSetB"/>
+ <xsl:with-param name="offset" select="$offset + $rowCountHalf + $rowsCreatedByRepetition" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$rowNodesSetA[1]">
+ <xsl:with-param name="rowNodes" select="$rowNodesSetA"/>
+ <xsl:with-param name="offset" select="$offset" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ <xsl:apply-templates select="$rowNodesSetB[1]">
+ <xsl:with-param name="rowNodes" select="$rowNodesSetB" />
+ <xsl:with-param name="offset" select="$offset + $rowCountHalf + $rowsCreatedByRepetition" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!--
+ Rows as "table:table-row" might be grouped in
+ "table:table-header-rows" or "table:table-row-group"
+ This row-tree will be traversed providing each Row with it's
+ calculatedRowPosition and earlierRowNumber.
+ By this repeated empty rows might be neglected in the spreadsheetml output,
+ as the following row will notice the 'gap' and provide @ss:Index,
+ which results in filling up the gap by a row without style and content.
+
+ In Excel created rows by ss:Index are 'default' rows.
+ -->
+ <xsl:template match="table:table-row">
+ <xsl:param name="earlierRowNumber" select="0" />
+ <xsl:param name="offset" />
+ <xsl:param name="calculatedRowPosition" select="$offset + 1" />
+ <xsl:param name="rowNodes" />
+ <xsl:param name="columnNodes" />
+
+ <xsl:choose>
+ <xsl:when test="@table:number-rows-repeated &gt; 1">
+ <xsl:call-template name="write-table-row">
+ <xsl:with-param name="earlierRowNumber" select="$earlierRowNumber" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ <xsl:if test="@table:number-rows-repeated &gt; 2 and (table:table-cell/@office:value-type or $firstDefaultCellStyle != '')">
+ <!-- In case a cell is being repeated, the cell will be created
+ in a variabel, which is as many times given out, as being repeated -->
+ <xsl:variable name="tableRow">
+ <xsl:call-template name="write-table-row">
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="optimized-row-repeating">
+ <xsl:with-param name="tableRow" select="$tableRow" />
+ <xsl:with-param name="repetition" select="@table:number-rows-repeated - 1" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="write-table-row">
+ <xsl:with-param name="earlierRowNumber" select="$earlierRowNumber" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:variable name="nextRowNodes" select="$rowNodes[position()!=1]" />
+ <xsl:choose>
+ <xsl:when test="@table:number-rows-repeated &gt; 1">
+ <xsl:apply-templates select="$nextRowNodes[1]">
+ <xsl:with-param name="earlierRowNumber" select="$calculatedRowPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition + @table:number-rows-repeated" />
+ <xsl:with-param name="rowNodes" select="$nextRowNodes" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$nextRowNodes[1]">
+ <xsl:with-param name="earlierRowNumber" select="$calculatedRowPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition + 1" />
+ <xsl:with-param name="rowNodes" select="$nextRowNodes" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="write-table-row">
+ <xsl:param name="earlierRowNumber" select="0" />
+ <xsl:param name="calculatedRowPosition" select="1" />
+ <xsl:param name="columnNodes" />
+
+ <xsl:element name="Row">
+ <xsl:if test="@table:visibility = 'collapse' or @table:visibility = 'filter'">
+ <xsl:attribute name="ss:Hidden">1</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not($earlierRowNumber + 1 = $calculatedRowPosition)">
+ <xsl:attribute name="ss:Index"><xsl:value-of select="$calculatedRowPosition" /></xsl:attribute>
+ </xsl:if>
+
+ <!-- writing the style of the row -->
+ <xsl:apply-templates select="@table:style-name" mode="table-row" />
+
+ <xsl:variable name="rowProperties" select="key('styles', @table:style-name)/*" />
+ <xsl:if test="$rowProperties/@style:use-optimal-row-height = 'false'">
+ <!-- default is '1', therefore write only '0' -->
+ <xsl:attribute name="ss:AutoFitHeight">0</xsl:attribute>
+ </xsl:if>
+
+ <xsl:variable name="height" select="$rowProperties/@style:row-height" />
+ <xsl:if test="$height">
+ <xsl:attribute name="ss:Height">
+ <!-- using the absolute height in point -->
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$height" />
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="table:table-cell[1]">
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="cellNodes" select="table:table-cell" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:template>
+
+
+ <!-- Recursions are much faster when the stack size is small -->
+ <xsl:template name="optimized-row-repeating">
+ <xsl:param name="tableRow" />
+ <xsl:param name="repetition" />
+ <!-- resource optimation: instead of '1' it will be '1000' and the column is not full -->
+ <xsl:param name="thresholdmax" select="512"/>
+ <xsl:param name="thresholdmin" select="256"/>
+
+ <xsl:choose>
+ <xsl:when test="$repetition &lt;= $thresholdmax">
+ <xsl:copy-of select="$tableRow" />
+ <xsl:if test="$repetition &lt;= $thresholdmin">
+ <xsl:call-template name="optimized-row-repeating">
+ <xsl:with-param name="repetition" select="$repetition - 1"/>
+ <xsl:with-param name="tableRow" select="$tableRow" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$repetition mod 2 = 1">
+ <xsl:copy-of select="$tableRow" />
+ </xsl:if>
+ <xsl:variable name="repetitionHalf" select="floor($repetition div 2)"/>
+ <xsl:call-template name="optimized-row-repeating">
+ <xsl:with-param name="repetition" select="$repetitionHalf"/>
+ <xsl:with-param name="tableRow" select="$tableRow" />
+ </xsl:call-template>
+ <xsl:call-template name="optimized-row-repeating">
+ <xsl:with-param name="repetition" select="$repetitionHalf"/>
+ <xsl:with-param name="tableRow" select="$tableRow" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+
+ <!-- ************** -->
+ <!-- *** Cells *** -->
+ <!-- ************** -->
+
+ <!-- Table cells are able to be repeated by attribute in StarOffice,
+ but not in Excel. If more cells are repeated -->
+ <xsl:template name="table:table-cell" match="table:table-cell">
+ <xsl:param name="calculatedCellPosition" select="1" /><!-- the later table position of the current cell -->
+ <xsl:param name="calculatedRowPosition" /><!-- the later table position of the current row -->
+ <xsl:param name="setIndex" select="false()" /> <!-- if not '0' @ss:Index used for neglecting repeteated empty cells -->
+ <xsl:param name="repetition" select="@table:number-columns-repeated" /> <!-- used for explicit writen out cells -->
+ <xsl:param name="repetitionCellPosition" select="$calculatedCellPosition" /><!-- during repetition formula needs exact cell positioning -->
+ <xsl:param name="nextMatchedCellPosition"><!-- the later table position of the next cell -->
+ <xsl:choose>
+ <xsl:when test="not(@table:number-columns-repeated) and not(@table:number-columns-spanned)">
+ <xsl:value-of select="$calculatedCellPosition + 1" />
+ </xsl:when>
+ <xsl:when test="not(@table:number-columns-spanned)">
+ <xsl:value-of select="$calculatedCellPosition + @table:number-columns-repeated" />
+ </xsl:when>
+ <xsl:when test="not(@table:number-columns-repeated)">
+ <xsl:value-of select="$calculatedCellPosition + @table:number-columns-spanned" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$calculatedCellPosition + @table:number-columns-spanned * @table:number-columns-repeated" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+ <xsl:param name="cellNodes" /><!-- cells to be handled -->
+ <xsl:param name="columnNodes" />
+
+ <xsl:choose>
+ <!-- in case a repetition took place -->
+ <xsl:when test="$repetition &gt; 0">
+ <xsl:choose>
+ <!-- In case of no cell content (text, subelements, attribute, except repeated style) the ss:Index could be used -->
+ <xsl:when test="not(text()) and not(*) and not(@*[name() != 'table:number-columns-repeated'])">
+ <xsl:choose>
+ <xsl:when test="count($cellNodes) = 1">
+ <xsl:call-template name="create-table-cell">
+ <xsl:with-param name="setIndex" select="true()" />
+ <xsl:with-param name="calculatedCellPosition" select="$nextMatchedCellPosition - 1" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$cellNodes[2]">
+ <xsl:with-param name="calculatedCellPosition" select="$nextMatchedCellPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="setIndex" select="true()" />
+ <xsl:with-param name="cellNodes" select="$cellNodes[position() != 1]" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- Fastest cell repetition by creating cell once and copying, works not for
+ a) cells with formula (need of actual cell postition)
+ b) cells, which start with ss:Index (as ss:Index is not allowed to be repeated) -->
+ <xsl:when test="not(@table:formula) and not($setIndex)">
+ <!-- In case a non-empty cell is being repeated, the cell will be created
+ in a variabel, which is as many times given out, as being repeated -->
+ <xsl:variable name="tableCell">
+ <xsl:call-template name="create-table-cell">
+ <xsl:with-param name="setIndex" select="false()" /><!-- copied cells may not have indices -->
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="repeat-copy-table-cell">
+ <xsl:with-param name="tableCell" select="$tableCell" />
+ <xsl:with-param name="repetition" select="$repetition" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ <xsl:apply-templates select="$cellNodes[2]">
+ <xsl:with-param name="calculatedCellPosition" select="$nextMatchedCellPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="cellNodes" select="$cellNodes[position() != 1]" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ </xsl:when>
+ <!-- explicit writing (instead of copying) of cell for the cases mentioned above -->
+ <xsl:otherwise>
+ <xsl:call-template name="create-table-cell">
+ <xsl:with-param name="setIndex" select="$setIndex" /><!-- a possible Index will be created -->
+ <xsl:with-param name="calculatedCellPosition" select="$repetitionCellPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ <xsl:choose>
+ <!-- as long there is a repetition (higher '1') stay on the same cell node -->
+ <xsl:when test="$repetition &gt; 1">
+ <xsl:call-template name="table:table-cell">
+ <xsl:with-param name="calculatedCellPosition" select="$nextMatchedCellPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="repetitionCellPosition">
+ <xsl:choose>
+ <xsl:when test="@table:number-columns-spanned">
+ <xsl:value-of select="$repetitionCellPosition + @table:number-columns-spanned" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$repetitionCellPosition + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="nextMatchedCellPosition" select="$nextMatchedCellPosition" />
+ <xsl:with-param name="repetition" select="$repetition - 1" />
+ <xsl:with-param name="cellNodes" select="$cellNodes" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$cellNodes[2]">
+ <xsl:with-param name="calculatedCellPosition" select="$nextMatchedCellPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="cellNodes" select="$cellNodes[position() != 1]" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- in case no repetition took place -->
+ <xsl:choose>
+ <!-- neglect en empty cells by using ss:Index Attribut -->
+ <xsl:when test="not(text()) and not(*) and not(@*)">
+ <xsl:choose>
+ <!-- if it is the last cell, write this cell -->
+ <xsl:when test="count($cellNodes) = 1">
+ <xsl:call-template name="create-table-cell">
+ <xsl:with-param name="setIndex" select="true()" />
+ <xsl:with-param name="calculatedCellPosition" select="$nextMatchedCellPosition - 1" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$cellNodes[2]">
+ <xsl:with-param name="setIndex" select="true()" />
+ <xsl:with-param name="calculatedCellPosition" select="$nextMatchedCellPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="cellNodes" select="$cellNodes[position() != 1]" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- create cell and use/unset the ss:Index -->
+ <xsl:call-template name="create-table-cell">
+ <xsl:with-param name="setIndex" select="$setIndex" />
+ <xsl:with-param name="calculatedCellPosition" select="$calculatedCellPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:call-template>
+ <xsl:apply-templates select="$cellNodes[2]">
+ <xsl:with-param name="calculatedCellPosition" select="$nextMatchedCellPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ <xsl:with-param name="cellNodes" select="$cellNodes[position() != 1]" />
+ <xsl:with-param name="columnNodes" select="$columnNodes" />
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Copies the variable 'tableCell' to the output as often as 'repetition' -->
+ <xsl:template name="repeat-copy-table-cell">
+ <xsl:param name="tableCell" />
+ <xsl:param name="repetition" />
+
+ <xsl:if test="$repetition &gt; 0">
+ <xsl:copy-of select="$tableCell"/>
+ <xsl:call-template name="repeat-copy-table-cell">
+ <xsl:with-param name="tableCell" select="$tableCell" />
+ <xsl:with-param name="repetition" select="$repetition - 1" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="create-table-cell">
+ <xsl:param name="setIndex" select="false()" />
+ <xsl:param name="calculatedCellPosition" />
+ <xsl:param name="calculatedRowPosition" />
+ <xsl:param name="columnNodes" />
+
+ <xsl:element name="Cell" namespace="urn:schemas-microsoft-com:office:spreadsheet">
+ <xsl:if test="$setIndex">
+ <xsl:attribute name="ss:Index">
+ <xsl:value-of select="$calculatedCellPosition"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@table:number-columns-spanned &gt; 1">
+ <xsl:attribute name="ss:MergeAcross">
+ <xsl:value-of select="@table:number-columns-spanned - 1" />
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@table:number-rows-spanned &gt; 1">
+ <xsl:attribute name="ss:MergeDown">
+ <xsl:value-of select="@table:number-rows-spanned - 1" />
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="link" select="descendant::text:a/@xlink:href" />
+ <xsl:if test="$link">
+ <xsl:attribute name="ss:HRef">
+ <xsl:value-of select="$link" />
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@table:style-name">
+ <xsl:apply-templates select="@table:style-name" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$firstDefaultCellStyle != ''">
+ <xsl:variable name="defaultCellStyle" select="$columnNodes/table:table-column[position() = $calculatedCellPosition]/@table:default-cell-style-name" />
+ <xsl:if test="$defaultCellStyle">
+ <xsl:if test="not($defaultCellStyle = 'Default')">
+ <xsl:attribute name="ss:StyleID"><xsl:value-of select="$defaultCellStyle"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates select="@table:formula">
+ <xsl:with-param name="calculatedCellPosition" select="$calculatedCellPosition" />
+ <xsl:with-param name="calculatedRowPosition" select="$calculatedRowPosition" />
+ </xsl:apply-templates>
+ <xsl:choose>
+ <xsl:when test="*">
+ <!-- in case it is not an empty cell
+
+ As the sequence of comment and data is opposite in Excel and Calc no match work here, in both comments exist only once
+ Possible Table Content of interest: text:h|text:p|text:list -->
+ <xsl:if test="text:h | text:p | text:list">
+ <xsl:variable name="valueType">
+ <xsl:choose>
+ <xsl:when test="@office:value-type">
+ <xsl:value-of select="@office:value-type" />
+ </xsl:when>
+ <xsl:otherwise>string</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="ss:Data">
+ <xsl:with-param name="valueType" select="$valueType" />
+ <xsl:with-param name="cellStyleName" select="@table:style-name" />
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="office:annotation">
+ <xsl:element name="Comment">
+ <xsl:if test="office:annotation/@office:author">
+ <xsl:attribute name="ss:Author"><xsl:value-of select="office:annotation/@office:author" /></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="office:annotation/@office:display = 'true'">
+ <xsl:attribute name="ss:ShowAlways">1</xsl:attribute>
+ </xsl:if>
+ <!-- ss:Data is oblicatory, but not the same as the ss:Cell ss:Data child, as it has no attributes -->
+ <ss:Data xmlns="http://www.w3.org/TR/REC-html40">
+ <xsl:for-each select="office:annotation/text:p">
+ <xsl:choose>
+ <xsl:when test="*">
+ <!-- paragraph style have to be neglected due to Excel error,
+ which does not allow shadowing their HTML attributes -->
+ <xsl:for-each select="*">
+ <xsl:call-template name="style-and-contents" />
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="@text:style-name">
+ <xsl:call-template name="style-and-contents" />
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- if no style is set, BOLD is set as default -->
+ <B>
+ <xsl:call-template name="style-and-contents" />
+ </B>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </ss:Data>
+ </xsl:element>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- comments are handled separately in the cell -->
+ <xsl:template match="office:annotation" />
+ <xsl:template match="dc:date" />
+
+ <xsl:template name="ss:Data">
+ <!-- the default value is 'String' in the office -->
+ <xsl:param name="valueType" select="'string'" />
+ <xsl:param name="cellStyleName" />
+
+ <xsl:choose>
+ <xsl:when test="descendant::*/@text:style-name">
+ <xsl:choose>
+ <xsl:when test="$valueType = 'string'">
+ <ss:Data ss:Type="String" xmlns="http://www.w3.org/TR/REC-html40">
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:apply-templates>
+ </ss:Data>
+ </xsl:when>
+ <xsl:when test="$valueType = 'boolean'">
+ <ss:Data ss:Type="Boolean" xmlns="http://www.w3.org/TR/REC-html40">
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:apply-templates>
+ </ss:Data>
+ </xsl:when>
+ <xsl:when test="$valueType = 'date'">
+ <ss:Data ss:Type="DateTime" xmlns="http://www.w3.org/TR/REC-html40">
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:apply-templates>
+ </ss:Data>
+ </xsl:when>
+ <!-- float, time, percentage, currency (no 'Error' setting) -->
+ <xsl:otherwise>
+ <ss:Data ss:Type="Number" xmlns="http://www.w3.org/TR/REC-html40">
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:apply-templates>
+ </ss:Data>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="Data">
+ <xsl:call-template name="ss:Type">
+ <xsl:with-param name="valueType" select="$valueType" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="ss:Type">
+ <xsl:param name="valueType" select="'string'" />
+
+ <xsl:choose>
+ <xsl:when test="$valueType = 'string'">
+ <xsl:attribute name="ss:Type">String</xsl:attribute>
+ <xsl:apply-templates select="*"/>
+ </xsl:when>
+ <xsl:when test="$valueType = 'boolean'">
+ <xsl:attribute name="ss:Type">Boolean</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@office:boolean-value = 'true'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$valueType = 'date' or $valueType = 'time'">
+ <!-- issue in Excel: can not have an empty 'DateTime' cell -->
+ <xsl:attribute name="ss:Type">DateTime</xsl:attribute>
+ <!-- Gathering information of two StarOffice date/time attributes
+ Excel always needs both informations in one attribute -->
+ <xsl:choose>
+ <xsl:when test="@office:date-value">
+ <!-- office:date-value may contain time (after 'T')-->
+ <xsl:choose>
+ <xsl:when test="contains(@office:date-value, 'T')">
+ <!-- in case time is also part of the date -->
+ <xsl:value-of select="substring-before(@office:date-value, 'T')" />
+ <xsl:text>T</xsl:text>
+ <xsl:value-of select="substring-after(@office:date-value,'T')" />
+ <xsl:if test="not(contains(@office:date-value,'.'))">
+ <xsl:text>.</xsl:text>
+ </xsl:if>
+ <xsl:text>000</xsl:text>
+ </xsl:when>
+ <xsl:when test="@office:time-value">
+ <!-- conatains date and time (time will be evaluated later -->
+ <xsl:value-of select="@office:date-value" />
+ <xsl:text>T</xsl:text>
+ <xsl:choose>
+ <xsl:when test="@table:formula or contains(@office:time-value,',')">
+ <!-- customized number types not implemented yet -->
+ <xsl:text>00:00:00.000</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate(substring-after(@office:time-value,'PT'),'HMS','::.')" />
+ <xsl:if test="not(contains(@office:time-value,'S'))">
+ <xsl:text>.</xsl:text>
+ </xsl:if>
+ <xsl:text>000</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@office:date-value" />
+ <xsl:text>T00:00:00.000</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="@office:time-value">
+ <xsl:text>1899-12-31T</xsl:text>
+ <xsl:choose>
+ <xsl:when test="@table:formula or contains(@office:time-value,',')">
+ <!-- customized number types not implemented yet -->
+ <xsl:text>00:00:00.000</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate(substring-after(@office:time-value,'PT'),'HMS','::.')" />
+ <xsl:if test="not(contains(@office:time-value,'S'))">
+ <xsl:text>.</xsl:text>
+ </xsl:if>
+ <xsl:text>000</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- float, percentage, currency (no 'Error' setting) -->
+ <xsl:otherwise>
+ <xsl:attribute name="ss:Type">Number</xsl:attribute>
+ <xsl:value-of select="@office:value" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- ******************** -->
+ <!-- *** Common Rules *** -->
+ <!-- ******************** -->
+
+ <xsl:template match="*">
+ <xsl:param name="cellStyleName" />
+
+<!-- LineBreak in Cell -->
+ <xsl:if test="preceding-sibling::text:p[1]"><xsl:text>&#10;</xsl:text></xsl:if>
+ <xsl:call-template name="style-and-contents">
+ <xsl:with-param name="cellStyleName" select="$cellStyleName" />
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- disabling draw:frames -->
+ <xsl:template match="draw:frame" />
+
+ <xsl:template match="text:s">
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="@text:c" />
+ </xsl:call-template>
+ </xsl:template>
+
+ <!--write the number of 'whitespaces' -->
+ <xsl:template name="write-breakable-whitespace">
+ <xsl:param name="whitespaces" />
+
+ <xsl:text> </xsl:text>
+ <xsl:if test="$whitespaces >= 1">
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="$whitespaces - 1" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- allowing all matched text nodes -->
+ <xsl:template match="text()"><xsl:value-of select="." /></xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/test/user-template/user/xslt/export/uof/odf2uof_presentation.xsl b/test/user-template/user/xslt/export/uof/odf2uof_presentation.xsl
new file mode 100644
index 000000000000..4cc71aea5d8c
--- /dev/null
+++ b/test/user-template/user/xslt/export/uof/odf2uof_presentation.xsl
@@ -0,0 +1,3375 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:uof="http://schemas.uof.org/cn/2003/uof" xmlns:表="http://schemas.uof.org/cn/2003/uof-spreadsheet" xmlns:演="http://schemas.uof.org/cn/2003/uof-slideshow" xmlns:字="http://schemas.uof.org/cn/2003/uof-wordproc" xmlns:数="http://www.w3.org/1998/Math/MathML" xmlns:图="http://schemas.uof.org/cn/2003/graph" exclude-result-prefixes="office style text table draw fo xlink dc meta number presentation svg chart dr3d math form script config ooo ooow oooc dom xforms smil anim">
+ <xsl:output method="xml" indent="no" encoding="UTF-8" version="1.0" standalone="no" omit-xml-declaration="no"/>
+ <xsl:variable name="impresswithUnit">
+ <xsl:value-of select="/office:document/office:styles/style:style[@style:family='graphic']/style:graphic-properties/@svg:stroke-width"/>
+ </xsl:variable>
+ <xsl:variable name="uofUnit">
+ <xsl:choose>
+ <xsl:when test="contains($impresswithUnit,'inch')">inch</xsl:when>
+ <xsl:when test="contains($impresswithUnit,'cm')">cm</xsl:when>
+ <xsl:when test="contains($impresswithUnit,'mm')">mm</xsl:when>
+ <xsl:when test="contains($impresswithUnit,'pt')">pt</xsl:when>
+ <xsl:otherwise>cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="cm-to-other">
+ <xsl:choose>
+ <xsl:when test="$uofUnit='cm'">1</xsl:when>
+ <xsl:when test="$uofUnit='inch'">0.394</xsl:when>
+ <xsl:when test="$uofUnit='pt'">28.346</xsl:when>
+ <xsl:when test="$uofUnit='mm'">10</xsl:when>
+ <xsl:when test="$uofUnit='pica'">2.364</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:key match="/office:document/office:automatic-styles/style:style | /office:document/office:styles/style:style" name="graphicset" use="@style:name"/>
+ <xsl:template match="/">
+ <xsl:apply-templates select="office:document"/>
+ </xsl:template>
+ <xsl:template match="office:document">
+ <uof:UOF xmlns:uof="http://schemas.uof.org/cn/2003/uof" xmlns:图="http://schemas.uof.org/cn/2003/graph" xmlns:数="http://www.w3.org/1998/Math/MathML" xmlns:字="http://schemas.uof.org/cn/2003/uof-wordproc" xmlns:演="http://schemas.uof.org/cn/2003/uof-slideshow" xmlns:表="http://schemas.uof.org/cn/2003/uof-spreadsheet" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" uof:language="cn" uof:version="1.0" uof:locID="u0000" uof:mimetype="vnd.uof.presentation">
+ <xsl:apply-templates select="office:meta"/>
+ <xsl:if test="//text:bookmark|//text:bookmark-start">
+ <uof:书签集 uof:locID="u0027">
+ <xsl:for-each select="//text:bookmark|//text:bookmark-start">
+ <uof:书签 uof:å称="{@text:name}" uof:locID="u0028" uof:attrList="å称">
+ <uof:文本ä½ç½® uof:区域引用="{generate-id(.)}" uof:locID="u0029" uof:attrList="区域引用"/>
+ </uof:书签>
+ </xsl:for-each>
+ </uof:书签集>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/text:p/text:a | /office:document/office:body/text:p/draw:a">
+ <uof:链接集 uof:locID="u0031">
+ <xsl:for-each select="/office:document/office:body/text:p/text:a | /office:document/office:body/text:p/draw:a">
+ <xsl:variable name="hyperStr" select="@xlink:href"/>
+ <uof:超级链接 uof:locID="u0032" uof:attrList="标识符 目标 书签 å¼æ ·å¼•ç”¨ 已访问å¼æ ·å¼•ç”¨ æ示 链æº">
+ <xsl:if test="contains($hyperStr,'#')">
+ <xsl:attribute name="uof:书签"><xsl:value-of select="substring-after($hyperStr,'#')"/></xsl:attribute>
+ <xsl:attribute name="uof:æ示"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="num">
+ <xsl:number from="/office:document/office:body" level="any" count="text:p[text:a]"/>
+ </xsl:variable>
+ <xsl:attribute name="uof:链æº"><xsl:value-of select="concat('hlnk',$num)"/></xsl:attribute>
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat('hyk_','hlnk',$num)"/></xsl:attribute>
+ <xsl:if test="not(contains($hyperStr,'#'))">
+ <xsl:attribute name="uof:目标"><xsl:value-of select="$hyperStr"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="contains($hyperStr,'@')">
+ <xsl:attribute name="uof:æ示">链接到邮件地å€</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="uof:æ示">链接文件</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@text:style-name">
+ <xsl:attribute name="uof:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@text:visited-style-name">
+ <xsl:attribute name="uof:已访问å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:visited-style-name"/></xsl:attribute>
+ </xsl:if>
+ </uof:超级链接>
+ </xsl:for-each>
+ </uof:链接集>
+ </xsl:if>
+ <uof:对象集 uof:locID="u0033">
+ <xsl:apply-templates select="office:master-styles/style:handout-master" mode="styles"/>
+ <xsl:apply-templates select="office:master-styles/style:master-page" mode="styles"/>
+ <xsl:apply-templates select="office:body/office:presentation/draw:page" mode="styles"/>
+ <xsl:apply-templates select="office:styles/style:presentation-page-layout/presentation:placeholder" mode="graphic"/>
+ <xsl:apply-templates select="office:body/office:presentation/draw:page/presentation:notes" mode="styles"/>
+ <xsl:for-each select="(/office:document/office:styles/draw:fill-image) | (/office:document/office:automatic-styles/draw:fill-image)">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="@draw:name"/></xsl:attribute>
+ <xsl:attribute name="uof:公共类型">jpg</xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="office:binary-data"/>
+ </uof:æ•°æ®>
+ </uof:其他对象>
+ </xsl:for-each>
+ <xsl:for-each select="(/office:document/office:styles/style:style/style:graphic-properties/text:list-style/text:list-level-style-image) | (/office:document/office:automatic-styles/style:style/style:graphic-properties/text:list-style/text:list-level-style-image)">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat('image_numbering_',count(preceding::text:list-level-style-image))"/></xsl:attribute>
+ <xsl:attribute name="uof:公共类型">jpg</xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="office:binary-data"/>
+ </uof:æ•°æ®>
+ </uof:其他对象>
+ </xsl:for-each>
+ </uof:对象集>
+ <uof:å¼æ ·é›† uof:locID="u0039">
+ <xsl:apply-templates select="office:font-face-decls"/>
+ <xsl:element name="uof:自动编å·é›†">
+ <xsl:attribute name="uof:locID">u0042</xsl:attribute>
+ <xsl:for-each select="/office:document//text:list-style">
+ <xsl:element name="å­—:自动编å·">
+ <xsl:attribute name="uof:locID">t0169</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 父编å·å¼•ç”¨ 多级编å·</xsl:attribute>
+ <xsl:attribute name="字:标识符">
+ <xsl:variable name="count1" select="count(preceding::text:list-style)"/>
+ <xsl:choose><xsl:when test="@style:name"><xsl:value-of select="concat(@style:name,$count1)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat(../../@style:name,$count1)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:多级编å·">true</xsl:attribute>
+ <xsl:for-each select="./* ">
+ <xsl:if test="number(@text:level) &lt; 10">
+ <xsl:element name="字:级别">
+ <xsl:attribute name="uof:locID">t0159</xsl:attribute>
+ <xsl:attribute name="uof:attrList">级别值 ç¼–å·å¯¹é½æ–¹å¼ å°¾éšå­—符</xsl:attribute>
+ <xsl:attribute name="字:级别值"><xsl:value-of select="number(@text:level)"/></xsl:attribute>
+ <xsl:if test="style:list-level-properties/@fo:text-align">
+ <xsl:attribute name="å­—:ç¼–å·å¯¹é½æ–¹å¼"><xsl:value-of select="style:list-level-properties/@fo:text-align"/></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="level">
+ <xsl:value-of select="@text:level"/>
+ </xsl:variable>
+ <xsl:if test="office:binary-data">
+ <xsl:element name="å­—:图片符å·å¼•ç”¨" uof:locID="t0164" uof:attrList="宽度 高度">
+ <xsl:attribute name="字:宽度"><xsl:value-of select="substring-before(style:list-level-properties/@fo:width,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="字:高度"><xsl:value-of select="substring-before(style:list-level-properties/@fo:height,$uofUnit)"/></xsl:attribute>
+ <xsl:value-of select="concat('image_numbering_',count(preceding::text:list-level-style-image))"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:bullet-char">
+ <xsl:element name="å­—:项目符å·">
+ <xsl:attribute name="uof:locID">t0171</xsl:attribute>
+ <xsl:value-of select="@text:bullet-char"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:符å·å­—体">
+ <xsl:attribute name="uof:locID">t0160</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:element>
+ <xsl:if test="@style:num-format">
+ <xsl:choose>
+ <xsl:when test="string(@style:num-format)='a'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼" uof:locID="t0162">lower-letter</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='A'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼" uof:locID="t0162">upper-letter</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='i'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼" uof:locID="t0162">lower-roman</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='I'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼" uof:locID="t0162">upper-roman</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='â‘ , â‘¡, â‘¢, ...'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼" uof:locID="t0162">decimal-enclosed-circle</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='甲, 乙, 丙, ...'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼" uof:locID="t0162">ideograph-traditional</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='å­, 丑, 寅, ...'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼" uof:locID="t0162">ideograph-zodiac</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='一, 二, 三, ...'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼" uof:locID="t0162">chinese-counting</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='壹, è´°, å, ...'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼" uof:locID="t0162">chinese-legal-simplified</xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼" uof:locID="t0162">decimal</xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:variable name="jibie">
+ <xsl:value-of select="position()"/>
+ </xsl:variable>
+ <xsl:variable name="xianshijibie">
+ <xsl:choose>
+ <xsl:when test="@text:display-levels">
+ <xsl:value-of select="@text:display-levels"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <å­—:ç¼–å·æ ¼å¼è¡¨ç¤º uof:locID="t0163">
+ <xsl:call-template name="å­—:ç¼–å·æ ¼å¼è¡¨ç¤º">
+ <xsl:with-param name="bubianjibie" select="$jibie"/>
+ <xsl:with-param name="jibie" select="$jibie"/>
+ <xsl:with-param name="xianshijibie" select="$xianshijibie"/>
+ <xsl:with-param name="biaoshi" select="concat(string(@style:num-prefix),'%',$jibie,string(@style:num-suffix))"/>
+ </xsl:call-template>
+ </å­—:ç¼–å·æ ¼å¼è¡¨ç¤º>
+ <xsl:element name="字:缩进">
+ <xsl:attribute name="uof:locID">t0165</xsl:attribute>
+ <xsl:call-template name="字:缩进类型"/>
+ </xsl:element>
+ <xsl:element name="å­—:制表符ä½ç½®">
+ <xsl:attribute name="uof:locID">t0166</xsl:attribute>
+ <xsl:value-of select="substring-before(style:list-level-properties/@text:min-label-width,$uofUnit)"/>
+ </xsl:element>
+ <xsl:if test="@text:start-value">
+ <xsl:element name="å­—:起始编å·">
+ <xsl:value-of select="@text:start-value"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:num-regular-exp">
+ <xsl:element name="å­—:正规格å¼" uof:locID="t0168" uof:attrList="值">
+ <xsl:attribute name="值"><xsl:value-of select="@text:num-regular-exp"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:for-each select="/office:document//text:list-style/*">
+ <xsl:if test="style:text-properties/@fo:font-family">
+ <xsl:element name="uof:å¥å¼æ ·">
+ <xsl:attribute name="uof:locID">u0043</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:variable name="count"><xsl:value-of select="count(preceding::node())"/></xsl:variable>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="concat('ID',$count)"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="concat(ancestor::style:style/@style:name,@text:level)"/></xsl:attribute>
+ <xsl:attribute name="字:类型">auto</xsl:attribute>
+ <xsl:if test="ancestor::style:style/@style:parent-style-name">
+ <xsl:attribute name="å­—:基å¼æ ·å¼•ç”¨"><xsl:value-of select="ancestor::style:style/@style:parent-style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates select="office:styles | office:automatic-styles" mode="style"/>
+ <xsl:for-each select="/office:document/office:master-styles/style:master-page">
+ <xsl:for-each select="child::draw:frame">
+ <xsl:variable name="stylename" select="@presentation:style-name"/>
+ <xsl:variable name="parent" select="/office:document/office:automatic-styles/style:style[@style:name=$stylename]/@style:parent-style-name"/>
+ <xsl:for-each select="/office:document/*/style:style[@style:name=$parent]">
+ <xsl:if test="not(contains(@style:name,'outline'))">
+ <xsl:call-template name="段è½å¼æ ·"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:for-each>
+ <xsl:for-each select="/office:document/office:styles/style:style[contains(@style:name,'outline')]">
+ <xsl:call-template name="段è½å¼æ ·"/>
+ </xsl:for-each>
+ </uof:å¼æ ·é›†>
+ <uof:演示文稿 uof:locID="u0048">
+ <æ¼”:公用处ç†è§„则 uof:locID="p0000">
+ <xsl:element name="æ¼”:度é‡å•ä½">
+ <xsl:attribute name="uof:locID">p0055</xsl:attribute>
+ <xsl:value-of select="$uofUnit"/>
+ </xsl:element>
+ <æ¼”:页é¢è®¾ç½®é›† uof:locID="p0001">
+ <xsl:apply-templates select="office:automatic-styles/style:page-layout"/>
+ </æ¼”:页é¢è®¾ç½®é›†>
+ <æ¼”:é…色方案集 uof:locID="p0007">
+ <xsl:for-each select="/office:document/office:master-styles/*[@draw:style-name]">
+ <xsl:call-template name="é…色方案"/>
+ </xsl:for-each>
+ <xsl:for-each select="/office:document/office:body/office:presentation/draw:page">
+ <xsl:call-template name="é…色方案"/>
+ </xsl:for-each>
+ </æ¼”:é…色方案集>
+ <æ¼”:页é¢ç‰ˆå¼é›† uof:locID="p0017">
+ <xsl:apply-templates select="office:styles/style:presentation-page-layout" mode="pagestyle"/>
+ </æ¼”:页é¢ç‰ˆå¼é›†>
+ <xsl:if test="office:styles/style:style='标准-title' or office:styles/style:style='标准-outline'" >
+ <æ¼”:文本å¼æ ·é›† uof:locID="p0131">
+ <xsl:for-each select="office:styles/style:style">
+ <xsl:variable name="name"><xsl:value-of select="@style:name"/></xsl:variable>
+ <xsl:if test="$name='标准-title' or contains($name,'标准-outline')">
+ <æ¼”:文本å¼æ · uof:locID="p0132" uof:attrList="标识符 å称">
+ <xsl:attribute name="演:标识符">text-style</xsl:attribute>
+ <xsl:attribute name="æ¼”:å称">文本å¼æ ·</xsl:attribute>
+ <xsl:element name="æ¼”:段è½å¼æ ·">
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="字:类型">auto</xsl:attribute>
+ <xsl:if test="@style:parent-style-name">
+ <xsl:attribute name="å­—:基å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:parent-style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:别å"><xsl:value-of select="@style:class"/></xsl:attribute>
+ <xsl:call-template name="ParaAttribute">
+ <xsl:with-param name="text-style-name" select="@text:style-name"/>
+ </xsl:call-template>
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:element>
+ </æ¼”:文本å¼æ ·>
+ </xsl:if>
+ </xsl:for-each>
+ </æ¼”:文本å¼æ ·é›†>
+ </xsl:if>
+ <演:显示比例 uof:locID="p0020">
+ <xsl:variable name="VisibleAreaWidth">
+ <xsl:value-of select="/office:document/office:settings/config:config-item-set/config:config-item-map-indexed/config:config-item-map-entry/config:config-item[@config:name='VisibleAreaWidth']"/>
+ </xsl:variable>
+ <xsl:value-of select="substring-before((13997 div $VisibleAreaWidth)*100,'.')"/>
+ </演:显示比例>
+ <演:放映设置 uof:locID="p0021">
+ <æ¼”:å¹»ç¯ç‰‡åºåˆ— uof:locID="p0022" uof:attrList="标识符 å称 自定义">
+ <xsl:attribute name="演:标识符">customList</xsl:attribute>
+ <xsl:attribute name="æ¼”:å称">å¹»ç¯ç‰‡åºåˆ—</xsl:attribute>
+ <xsl:attribute name="演:自定义">true</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="office:body/office:presentation/presentation:settings/@presentation:start-page">
+ <xsl:variable name="start-page">
+ <xsl:value-of select="office:body/office:presentation/presentation:settings/@presentation:start-page"/>
+ </xsl:variable>
+ <xsl:variable name="before-slides">
+ <xsl:call-template name="å¹»ç¯ç‰‡åºåˆ—">
+ <xsl:with-param name="start-node" select="office:body/office:presentation/draw:page[@draw:name=$start-page]"/>
+ <xsl:with-param name="end-node" select="office:body/office:presentation/draw:page[last()]"/>
+ <xsl:with-param name="value"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="after-slides">
+ <xsl:for-each select="office:body/office:presentation/draw:page[@draw:name=$start-page]">
+ <xsl:call-template name="å¹»ç¯ç‰‡åºåˆ—">
+ <xsl:with-param name="start-node" select="/office:document/office:body/office:presentation/draw:page[1]"/>
+ <xsl:with-param name="end-node" select="preceding-sibling::node()[1]"/>
+ <xsl:with-param name="value"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:value-of select="concat($before-slides,' ',$after-slides)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="å¹»ç¯ç‰‡åºåˆ—">
+ <xsl:with-param name="start-node" select="office:body/office:presentation/draw:page[1]"/>
+ <xsl:with-param name="end-node" select="office:body/office:presentation/draw:page[last()]"/>
+ <xsl:with-param name="value"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </æ¼”:å¹»ç¯ç‰‡åºåˆ—>
+ <æ¼”:æ”¾æ˜ é¡ºåº uof:locID="p0023" uof:attrList="å称 åºåˆ—引用">
+ <xsl:attribute name="æ¼”:å称">放映顺åº</xsl:attribute>
+ <xsl:attribute name="æ¼”:åºåˆ—引用">customList</xsl:attribute>
+ </æ¼”:放映顺åº>
+ <æ¼”:å…¨å±æ”¾æ˜  uof:locID="p0024">
+ <xsl:choose>
+ <xsl:when test="office:body/office:presentation/presentation:settings/@presentation:full-screen='false'">false</xsl:when>
+ <xsl:otherwise>true</xsl:otherwise>
+ </xsl:choose>
+ </æ¼”:å…¨å±æ”¾æ˜ >
+ <演:循环放映 uof:locID="p0025">
+ <xsl:choose>
+ <xsl:when test="office:body/office:presentation/presentation:settings/@presentation:endless='true'">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </演:循环放映>
+ <xsl:if test="office:body/office:presentation/presentation:settings/@presentation:pause">
+ <演:放映间隔 uof:locID="p0026">
+ <xsl:variable name="hms">
+ <xsl:value-of select="substring-after(office:body/office:presentation/presentation:settings/@presentation:pause,'PT')"/>
+ </xsl:variable>
+ <xsl:value-of select="concat('P0Y0M0DT',$hms)"/>
+ </演:放映间隔>
+ </xsl:if>
+ <æ¼”:æ‰‹åŠ¨æ–¹å¼ uof:locID="p0027">
+ <xsl:choose>
+ <xsl:when test="office:body/office:presentation/presentation:settings/@presentation:force-manual='true'">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </æ¼”:手动方å¼>
+ <演:导航帮助 uof:locID="p0029">
+ <xsl:choose>
+ <xsl:when test="office:body/office:presentation/presentation:settings/@presentation:start-with-navigator='true'">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </演:导航帮助>
+ <演:放映动画 uof:locID="p0030">
+ <xsl:choose>
+ <xsl:when test="office:body/office:presentation/presentation:settings/@presentation:animations='disabled'">false</xsl:when>
+ <xsl:otherwise>true</xsl:otherwise>
+ </xsl:choose>
+ </演:放映动画>
+ <æ¼”:å‰ç«¯æ˜¾ç¤º uof:locID="p0031">
+ <xsl:choose>
+ <xsl:when test="office:body/office:presentation/presentation:settings/@presentation:stay-on-top='true'">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </æ¼”:å‰ç«¯æ˜¾ç¤º>
+ </演:放映设置>
+ </æ¼”:公用处ç†è§„则>
+ <演:主体 uof:locID="p0034">
+ <æ¼”:æ¯ç‰ˆé›† uof:locID="p0035">
+ <xsl:apply-templates select="office:master-styles"/>
+ </æ¼”:æ¯ç‰ˆé›†>
+ <æ¼”:å¹»ç¯ç‰‡é›† uof:locID="p0039">
+ <xsl:apply-templates select="office:body/office:presentation/draw:page"/>
+ </æ¼”:å¹»ç¯ç‰‡é›†>
+ </演:主体>
+ </uof:演示文稿>
+ </uof:UOF>
+ </xsl:template>
+<xsl:template name="é…色方案">
+ <xsl:variable name="page-name"><xsl:value-of select="@draw:style-name"/></xsl:variable>
+ <æ¼”:é…色方案 uof:locID="p0008" uof:attrList="标识符 å称 类型">
+ <xsl:attribute name="演:标识符">
+ <xsl:choose>
+ <xsl:when test="@draw:name"><xsl:value-of select="@draw:name"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="@draw:style-name"/></xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:attribute>
+ <xsl:for-each select="/office:document/office:automatic-styles/style:style[@style:name = $page-name]">
+ <xsl:attribute name="æ¼”:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="演:类型"><xsl:choose><xsl:when test="not(contains(@style:name,'color'))">custom</xsl:when><xsl:otherwise>standard</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="style:drawing-page-properties/@draw:fill-color">
+ <演:背景色 uof:locID="p0009">
+ <xsl:value-of select="style:drawing-page-properties/@draw:fill-color"/>
+ </演:背景色>
+ </xsl:if>
+ <xsl:if test="style:drawing-page-properties/@svg:stroke-color">
+ <æ¼”:æ–‡æœ¬å’Œçº¿æ¡ uof:locID="p0010">
+ <xsl:value-of select="style:drawing-page-properties/@svg:stroke-color"/>
+ </æ¼”:文本和线æ¡>
+ </xsl:if>
+ <xsl:if test="style:drawing-page-properties/@draw:shadow-color">
+ <演:阴影 uof:locID="p0011">
+ <xsl:value-of select="style:drawing-page-properties/@draw:shadow-color"/>
+ </演:阴影>
+ </xsl:if>
+ <xsl:if test="style:drawing-page-properties/@svg:stroke-color">
+ <演:标题文本 uof:locID="p0012">
+ <xsl:value-of select="style:drawing-page-properties/@svg:stroke-color"/>
+ </演:标题文本>
+ </xsl:if>
+ <xsl:if test="style:drawing-page-properties/@draw:fill-color">
+ <æ¼”:å¡«å…… uof:locID="p0013">
+ <xsl:value-of select="style:drawing-page-properties/@draw:fill-color"/>
+ </æ¼”:å¡«å……>
+ </xsl:if>
+ <演:强调 uof:locID="p0014">#FFFFFF</演:强调>
+ <演:强调和超级链接 uof:locID="p0015">#FF0000</演:强调和超级链接>
+ <æ¼”:强调和尾éšè¶…级链接 uof:locID="p0016">#FF00FF</æ¼”:强调和尾éšè¶…级链接>
+ </xsl:for-each>
+ </æ¼”:é…色方案>
+</xsl:template>
+ <xsl:template name="å¹»ç¯ç‰‡åºåˆ—">
+ <xsl:param name="start-node"/>
+ <xsl:param name="end-node"/>
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="not($start-node/@draw:name = $end-node/@draw:name)">
+ <xsl:for-each select="$start-node">
+ <xsl:variable name="value1">
+ <xsl:value-of select="concat($value,@draw:name,'_',@draw:style-name,' ')"/>
+ </xsl:variable>
+ <xsl:call-template name="å¹»ç¯ç‰‡åºåˆ—">
+ <xsl:with-param name="start-node" select="following-sibling::node()[1]"/>
+ <xsl:with-param name="end-node" select="$end-node"/>
+ <xsl:with-param name="value" select="$value1"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($value,$start-node/@draw:name)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="å­—:ç¼–å·æ ¼å¼è¡¨ç¤º">
+ <xsl:param name="bubianjibie"/>
+ <xsl:param name="jibie"/>
+ <xsl:param name="xianshijibie"/>
+ <xsl:param name="biaoshi"/>
+ <xsl:choose>
+ <xsl:when test="number($xianshijibie)= 1">
+ <xsl:value-of select="$biaoshi"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="num-prefix">
+ <xsl:value-of select="preceding-sibling::*[number($bubianjibie -$jibie +1)]/@style:num-prefix"/>
+ </xsl:variable>
+ <xsl:variable name="num-suffix">
+ <xsl:value-of select="preceding-sibling::*[number($bubianjibie -$jibie +1)]/@style:num-suffix"/>
+ </xsl:variable>
+ <xsl:call-template name="å­—:ç¼–å·æ ¼å¼è¡¨ç¤º">
+ <xsl:with-param name="bubianjibie" select="$bubianjibie"/>
+ <xsl:with-param name="jibie" select="$jibie -1"/>
+ <xsl:with-param name="xianshijibie" select="$xianshijibie -1"/>
+ <xsl:with-param name="biaoshi" select="concat($num-prefix,'%',number($jibie -1),$num-suffix,'.',$biaoshi)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="å­—:å¥å±žæ€§">
+ <xsl:element name="字:字体">
+ <xsl:attribute name="uof:locID">t0088</xsl:attribute>
+ <xsl:attribute name="uof:attrList">西文字体引用 中文字体引用 特殊字体引用 西文绘制 å­—å· ç›¸å¯¹å­—å· é¢œè‰²</xsl:attribute>
+ <xsl:if test=".//@fo:font-size or .//@style:font-size-asian or .//@style:font-size-complex">
+ <xsl:choose>
+ <xsl:when test="contains(.//@fo:font-size,'%') or contains(.//@style:font-size-asian,'%')">
+ <xsl:attribute name="å­—:相对字å·"><xsl:choose><xsl:when test=".//@fo:font-size"><xsl:value-of select="substring-before(.//@fo:font-size,'%')"/></xsl:when><xsl:when test=".//@style:font-size-asian"><xsl:value-of select="substring-before(.//@style:font-size-asian,'%')"/></xsl:when></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:å­—å·"><xsl:choose><xsl:when test=".//@fo:font-size"><xsl:value-of select="substring-before(.//@fo:font-size,'pt')"/></xsl:when><xsl:when test=".//@style:font-size-asian"><xsl:value-of select="substring-before(.//@style:font-size-asian,'pt')"/></xsl:when><xsl:when test=".//@style:font-size-complex"><xsl:value-of select="substring-before(.//@style:font-size-complex,'pt')"/></xsl:when></xsl:choose></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test=".//@style:font-name">
+ <xsl:attribute name="字:西文字体引用"><xsl:value-of select=".//@style:font-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test=".//@style:font-name-asian">
+ <xsl:attribute name="字:中文字体引用"><xsl:value-of select=".//@style:font-name-asian"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test=".//@fo:color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select=".//@fo:color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test=".//@style:text-background-color and not(.//@style:text-background-color='transparent')">
+ <xsl:element name="å­—:å¡«å……">
+ <xsl:element name="图:图案">
+ <xsl:attribute name="uof:locID">g0036</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 图形引用 å‰æ™¯è‰² 背景色</xsl:attribute>
+ <xsl:if test=".//@style:text-background-color">
+ <xsl:attribute name="图:å‰æ™¯è‰²"><xsl:value-of select=".//@style:text-background-color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:font-weight or .//@style:font-weight-asian">
+ <xsl:element name="字:粗体">
+ <xsl:attribute name="uof:locID">t0089</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test=".//@style:font-weight-asian='bold' or .//@fo:font-weight='bold'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:font-style or .//@style:font-style-asian">
+ <xsl:element name="字:斜体">
+ <xsl:attribute name="uof:locID">t0090</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test=".//@fo:font-style='italic' or .//@style:font-style-asian='italic'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:text-crossing-out">
+ <xsl:element name="字:删除线">
+ <xsl:attribute name="uof:locID">t0094</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:call-template name="uof:线型类型"><xsl:with-param name="lineType" select=".//@style:text-crossing-out"/></xsl:call-template></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:text-underline">
+ <xsl:element name="字:下划线">
+ <xsl:attribute name="字:类型"><xsl:call-template name="uof:线型类型"><xsl:with-param name="lineType" select=".//@style:text-underline"/></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0095</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:if test=".//@style:text-underline-color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select=".//@style:text-underline-color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:text-shadow and not(.//@fo:text-shadow='none')">
+ <xsl:element name="字:阴影">
+ <xsl:attribute name="uof:locID">t0100</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test=".//@fo:text-shadow='none'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:text-emphasize">
+ <xsl:element name="å­—:ç€é‡å·">
+ <xsl:attribute name="uof:locID">t0096</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 颜色 å­—ç€é‡å·</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test=".//@style:text-emphasize='none'">
+ <xsl:attribute name="å­—:å­—ç€é‡å·">false</xsl:attribute>
+ <xsl:attribute name="字:类型">none</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:å­—ç€é‡å·">true</xsl:attribute>
+ <xsl:attribute name="字:类型">dot</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test=".//@fo:color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select=".//@fo:color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@text:display and not(.//@text:display='none')">
+ <xsl:element name="å­—:éšè—文字">
+ <xsl:attribute name="uof:locID">t0097</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:text-outline and not(.//@style:text-outline='none')">
+ <xsl:element name="字:空心">
+ <xsl:attribute name="uof:locID">t0098</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select=".//@style:text-outline"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:font-relief and not(.//@style:font-relief='none')">
+ <xsl:element name="字:浮雕">
+ <xsl:attribute name="uof:locID">t0099</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:choose><xsl:when test=".//@style:font-relief='embossed'">emboss</xsl:when><xsl:when test=".//@style:font-relief='engraved'">engrave</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:text-transform or .//@fo:font-variant">
+ <xsl:element name="字:醒目字体">
+ <xsl:attribute name="uof:locID">t0101</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:choose><xsl:when test=".//@fo:text-transform='uppercase'">uppercase</xsl:when><xsl:when test=".//@fo:text-transform='lowercase'">lowercase</xsl:when><xsl:when test=".//@fo:text-transform='capitalize'">capital</xsl:when><xsl:when test=".//@fo:font-variant='small-caps'">small-caps</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:text-position">
+ <xsl:element name="å­—:ä½ç½®">
+ <xsl:attribute name="uof:locID">t0102</xsl:attribute>
+ <xsl:value-of select=".//@style:text-position"/>
+ </xsl:element>
+ <字:上下标 uof:locID="t0205" uof:attrList="值">
+ <xsl:attribute name="字:值">none</xsl:attribute>
+ </字:上下标>
+ </xsl:if>
+ <xsl:if test=".//@style:text-scale">
+ <xsl:element name="字:缩放">
+ <xsl:attribute name="uof:locID">t0103</xsl:attribute>
+ <xsl:value-of select=".//@style:text-scale"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:letter-spacing">
+ <xsl:element name="å­—:字符间è·">
+ <xsl:attribute name="uof:locID">t0104</xsl:attribute>
+ <xsl:value-of select=".//@fo:letter-spacing"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:letter-kerning">
+ <xsl:element name="å­—:调整字间è·">
+ <xsl:attribute name="uof:locID">t015</xsl:attribute>
+ <xsl:value-of select=".//@style:letter-kerning"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:字符对é½ç½‘æ ¼">
+ <xsl:attribute name="字:值">false</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0106</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="style:presentation-page-layout" mode="pagestyle">
+ <æ¼”:页é¢ç‰ˆå¼ uof:locID="p0018" uof:attrList="标识符 å称">
+ <xsl:attribute name="演:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="æ¼”:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <演:布局 uof:locID="p0129" uof:attrList="类型">
+ <xsl:attribute name="演:类型">
+ <xsl:variable name="layout" select="substring-after(@style:name,'T')"/>
+ <xsl:choose>
+ <xsl:when test="$layout='0'">title-subtitle</xsl:when><xsl:when test="$layout='1'">title-body</xsl:when><xsl:when test="$layout='19'">title-only</xsl:when><xsl:when test="$layout='12'">column-2-rows</xsl:when><xsl:when test="$layout='15'">2-rows-column</xsl:when><xsl:when test="$layout='16'">2-columns-row</xsl:when><xsl:when test="$layout='17'">2-rows</xsl:when><xsl:when test="$layout='18'">4-objects</xsl:when><xsl:when test="$layout='27'">v-2-rows</xsl:when><xsl:when test="$layout='28'">v-title-body</xsl:when><xsl:when test="$layout='29'">big-object</xsl:when><xsl:when test="$layout='30'">2-columns</xsl:when>
+ <xsl:otherwise>title-only</xsl:otherwise>
+ </xsl:choose></xsl:attribute>
+ </演:布局>
+ <xsl:apply-templates select="presentation:placeholder" mode="anchor"/>
+ </æ¼”:页é¢ç‰ˆå¼>
+ </xsl:template>
+ <xsl:template match="presentation:placeholder" mode="anchor">
+ <æ¼”:å ä½ç¬¦ uof:locID="p0130" uof:attrList="类型">
+ <xsl:attribute name="演:类型"><xsl:choose><xsl:when test="@presentation:object = 'vertical_outline'">vertical_text</xsl:when><xsl:when test="@presentation:object = 'date-time'">date</xsl:when><xsl:when test="@presentation:object = 'page_number'">number</xsl:when><xsl:otherwise><xsl:value-of select="@presentation:object"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <uof:锚点 uof:locID="u0064" uof:attrList="xåæ ‡ yåæ ‡ 宽度 高度 图形引用 éšåŠ¨æ–¹å¼ 缩略图 å ä½ç¬¦">
+ <xsl:attribute name="uof:xåæ ‡"><xsl:value-of select="substring-before(@svg:x,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:yåæ ‡"><xsl:value-of select="substring-before(@svg:y,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(@svg:width,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:高度"><xsl:value-of select="substring-before(@svg:height,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:图形引用"><xsl:variable name="number"><xsl:value-of select="concat('_',count(preceding-sibling::presentation:placeholder))"/></xsl:variable><xsl:value-of select="concat(parent::style:presentation-page-layout/@style:name,$number)"/></xsl:attribute>
+ </uof:锚点>
+ </æ¼”:å ä½ç¬¦>
+ </xsl:template>
+ <xsl:template match="presentation:placeholder" mode="graphic">
+ <图:图形 uof:locID="g0000" uof:attrList="层次 标识符 组åˆåˆ—表 其他对象" 图:层次="3">
+ <xsl:attribute name="图:标识符"><xsl:variable name="number"><xsl:value-of select="concat('_',count(preceding-sibling::presentation:placeholder))"/></xsl:variable><xsl:value-of select="concat(parent::style:presentation-page-layout/@style:name,$number)"/></xsl:attribute>
+ </图:图形>
+ </xsl:template>
+ <xsl:template match="office:master-styles">
+ <xsl:apply-templates select="style:handout-master"/>
+ <xsl:apply-templates select="style:master-page"/>
+ <xsl:if test="style:master-page/presentation:notes">
+ <xsl:apply-templates select="style:master-page/presentation:notes"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="style:handout-master">
+ <æ¼”:æ¯ç‰ˆ uof:locID="p0036" uof:attrList="标识符 å称 类型 页é¢è®¾ç½®å¼•ç”¨ é…色方案引用 页é¢ç‰ˆå¼å¼•ç”¨ 文本å¼æ ·å¼•ç”¨" æ¼”:å称="handoutæ¯ç‰ˆ" æ¼”:类型="handout">
+ <xsl:attribute name="æ¼”:页é¢è®¾ç½®å¼•ç”¨"><xsl:value-of select="@style:page-layout-name"/></xsl:attribute>
+ <xsl:if test="@draw:style-name">
+ <xsl:attribute name="æ¼”:é…色方案引用"><xsl:value-of select="@draw:style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@presentation:presentation-page-layout-name">
+ <xsl:attribute name="æ¼”:页é¢ç‰ˆå¼å¼•ç”¨"><xsl:value-of select="@presentation:presentation-page-layout-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="产生锚点"/>
+ </æ¼”:æ¯ç‰ˆ>
+ </xsl:template>
+ <xsl:template match="style:master-page">
+ <æ¼”:æ¯ç‰ˆ uof:locID="p0036" uof:attrList="标识符 å称 类型 页é¢è®¾ç½®å¼•ç”¨ é…色方案引用 页é¢ç‰ˆå¼å¼•ç”¨ 文本å¼æ ·å¼•ç”¨" æ¼”:å称="slideæ¯ç‰ˆ" æ¼”:类型="slide">
+ <xsl:attribute name="演:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="æ¼”:页é¢è®¾ç½®å¼•ç”¨"><xsl:value-of select="@style:page-layout-name"/></xsl:attribute>
+ <xsl:if test="@draw:style-name">
+ <xsl:attribute name="æ¼”:é…色方案引用"><xsl:value-of select="@draw:style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@presentation:presentation-page-layout-name">
+ <xsl:attribute name="æ¼”:页é¢ç‰ˆå¼å¼•ç”¨"><xsl:value-of select="@presentation:presentation-page-layout-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="产生锚点"/>
+ <xsl:variable name="stylename">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="name">
+ <xsl:value-of select="name(.)"/>
+ </xsl:variable>
+ <xsl:for-each select="/office:document/*/style:style[@style:name=$stylename]/style:drawing-page-properties">
+ <xsl:if test="@draw:fill and not(@draw:fill='none')">
+ <演:背景 uof:locID="p0057">
+ <xsl:call-template name="å¡«å……">
+ <xsl:with-param name="picname" select="$stylename"/>
+ <xsl:with-param name="nodename" select="$name"/>
+ </xsl:call-template>
+ </演:背景>
+ </xsl:if>
+ </xsl:for-each>
+ </æ¼”:æ¯ç‰ˆ>
+ </xsl:template>
+ <xsl:template match="presentation:notes">
+ <æ¼”:æ¯ç‰ˆ uof:locID="p0036" uof:attrList="标识符 å称 类型 页é¢è®¾ç½®å¼•ç”¨ é…色方案引用 页é¢ç‰ˆå¼å¼•ç”¨ 文本å¼æ ·å¼•ç”¨" æ¼”:å称="notesæ¯ç‰ˆ" æ¼”:类型="notes">
+ <xsl:attribute name="演:标识符"><xsl:value-of select="concat('note-',parent::style:master-page/@style:name)"/></xsl:attribute>
+ <xsl:attribute name="æ¼”:页é¢è®¾ç½®å¼•ç”¨"><xsl:value-of select="@style:page-layout-name"/></xsl:attribute>
+ <xsl:if test="@draw:style-name">
+ <xsl:attribute name="æ¼”:é…色方案引用"><xsl:value-of select="@draw:style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@presentation:presentation-page-layout-name">
+ <xsl:attribute name="æ¼”:页é¢ç‰ˆå¼å¼•ç”¨"><xsl:value-of select="@presentation:presentation-page-layout-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="产生锚点"/>
+ </æ¼”:æ¯ç‰ˆ>
+ </xsl:template>
+ <xsl:template match="draw:page">
+ <æ¼”:å¹»ç¯ç‰‡ uof:locID="p0040" uof:attrList="å称 标识符 æ¯ç‰ˆå¼•ç”¨ é…色方案引用 页é¢ç‰ˆå¼å¼•ç”¨ 显示 显示背景 显示背景对象">
+ <xsl:attribute name="演:标识符"><xsl:value-of select="concat(@draw:name,'_',@draw:style-name)"/></xsl:attribute>
+ <xsl:attribute name="æ¼”:å称"><xsl:value-of select="@draw:name"/></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ¯ç‰ˆå¼•ç”¨"><xsl:value-of select="@draw:master-page-name"/></xsl:attribute>
+ <xsl:if test="@presentation:presentation-page-layout-name">
+ <xsl:attribute name="æ¼”:页é¢ç‰ˆå¼å¼•ç”¨"><xsl:value-of select="@presentation:presentation-page-layout-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="产生锚点"/>
+ <xsl:apply-templates select="presentation:notes" mode="page"/>
+ <xsl:variable name="stylename">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="name">
+ <xsl:value-of select="name(.)"/>
+ </xsl:variable>
+ <xsl:for-each select="/office:document/*/style:style[@style:name=$stylename]/style:drawing-page-properties">
+ <xsl:if test="@draw:fill and not(@draw:fill='none')">
+ <演:背景 uof:locID="p0057">
+ <xsl:call-template name="å¡«å……">
+ <xsl:with-param name="picname" select="$stylename"/>
+ <xsl:with-param name="nodename" select="$name"/>
+ </xsl:call-template>
+ </演:背景>
+ </xsl:if>
+ </xsl:for-each>
+ <æ¼”:åˆ‡æ¢ uof:locID="p0058" uof:attrList="效果 速度">
+ <xsl:for-each select="key('graphicset',$stylename)/style:drawing-page-properties">
+ <xsl:attribute name="演:速度"><xsl:choose><xsl:when test="@presentation:transition-speed='slow'">slow</xsl:when><xsl:otherwise>fast</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="演:效果"><xsl:variable name="type"><xsl:value-of select="@smil:type"/></xsl:variable><xsl:variable name="subtype"><xsl:value-of select="@smil:subtype"/></xsl:variable><xsl:choose><xsl:when test="$type='irisWipe' and $subtype='rectangle' and @smil:direction='reverse'">box in</xsl:when><xsl:when test="$type='irisWipe' and $subtype='rectangle'">box out</xsl:when><xsl:when test="$type='checkerBoardWipe' and $subtype='across'">checkerboard across</xsl:when><xsl:when test="$type='checkerBoardWipe' and $subtype='down'">checkerboard down</xsl:when><xsl:when test="$type='pushWipe' and $subtype='combHorizontal'">comb horizontal</xsl:when><xsl:when test="$type='pushWipe' and $subtype='combVertical'">comb vertical</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromTop' and @smil:direction='reverse'">uncover down</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromRight' and @smil:direction='reverse'">uncover left</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromLeft' and @smil:direction='reverse'">uncover right</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromBottom' and @smil:direction='reverse'">uncover up</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromTopRight' and @smil:direction='reverse'">uncover left-down</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromBottomRight' and @smil:direction='reverse'">uncover left-up</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromTopLeft' and @smil:direction='reverse'">uncover right-down</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromBottomLeft' and @smil:direction='reverse'">uncover right-up</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromTop'">cover down</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromRight'">cover left</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromLeft'">cover right</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromBottom'">cover up</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromTopRight'">cover left-down</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromBottomRight'">cover left-up</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromTopLeft'">cover right-down</xsl:when><xsl:when test="$type='slideWipe' and $subtype='fromBottomLeft'">cover right-up</xsl:when><xsl:when test="$type='fade' and $subtype='fadeOverColor'">fade through black</xsl:when><xsl:when test="$type='pushWipe' and $subtype='fromTop'">push down</xsl:when><xsl:when test="$type='pushWipe' and $subtype='fromRight'">push left</xsl:when><xsl:when test="$type='pushWipe' and $subtype='fromLeft'">push right</xsl:when><xsl:when test="$type='pushWipe' and $subtype='fromBottom'">push up</xsl:when><xsl:when test="$type='randomBarWipe' and $subtype='horizontal'">random bars horizontal</xsl:when><xsl:when test="$type='randomBarWipe' and $subtype='vertical'">random bars vertical</xsl:when><xsl:when test="$type='ellipseWipe' and $subtype='circle'">shape circle</xsl:when><xsl:when test="$type='irisWipe' and $subtype='diamond'">shape diamond</xsl:when><xsl:when test="$type='fourBoxWipe' and $subtype='cornersOut'">shape plus</xsl:when><xsl:when test="$type='barnDoorWipe' and $subtype='horizontal' and @smil:direction='reverse'">split horizontal in</xsl:when><xsl:when test="$type='barnDoorWipe' and $subtype='horizontal'">split horizontal out</xsl:when><xsl:when test="$type='barnDoorWipe' and $subtype='vertical' and @smil:direction='reverse'">split vertical in</xsl:when><xsl:when test="$type='barnDoorWipe' and $subtype='vertical'">split vertical out</xsl:when><xsl:when test="$type='fanWipe' and $subtype='centerTop'">wedge</xsl:when><xsl:when test="$type='pinWheelWipe' and $subtype='oneBlade'">wheel clockwise – 1 spoke</xsl:when><xsl:when test="$type='pinWheelWipe' and $subtype='twoBladeVertical'">wheel clockwise – 2 spoke</xsl:when><xsl:when test="$type='pinWheelWipe' and $subtype='threeBlade'">wheel clockwise – 3 spoke</xsl:when><xsl:when test="$type='pinWheelWipe' and $subtype='fourBlade'">wheel clockwise – 4 spoke</xsl:when><xsl:when test="$type='pinWheelWipe' and $subtype='eightBlade'">wheel clockwise – 8 spoke</xsl:when><xsl:when test="$type='barWipe' and $subtype='leftToRight' and @smil:direction='reverse'">wipe left</xsl:when><xsl:when test="$type='barWipe' and $subtype='leftToRight'">wipe right</xsl:when><xsl:when test="$type='barWipe' and $subtype='topToBottom' and @smil:direction='reverse'">wipe up</xsl:when><xsl:when test="$type='barWipe' and $subtype='topToBottom'">wipe down</xsl:when><xsl:when test="$type='blindsWipe' and $subtype='vertical'">blinds vertical</xsl:when><xsl:when test="$type='blindsWipe' and $subtype='horizontal'">blinds horizontal</xsl:when><xsl:when test="$type='dissolve'">dissolve</xsl:when><xsl:when test="$type='random'">random transition</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <演:声音 uof:locID="p0061" uof:attrList="预定义声音 自定义声音">
+ <xsl:choose>
+ <xsl:when test="not(presentation:sound)">
+ <xsl:attribute name="演:预定义声音">none</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="lujing">
+ <xsl:value-of select="substring-after(presentation:sound/@xlink:href,'share/gallery/sounds/')"/>
+ </xsl:variable>
+ <xsl:variable name="ming">
+ <xsl:value-of select="substring-before($lujing,'.wav')"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$ming='applause'">
+ <xsl:attribute name="演:预定义声音">applause</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$ming='explos'">
+ <xsl:attribute name="演:预定义声音">explosion</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$ming='laser'">
+ <xsl:attribute name="演:预定义声音">laser</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="演:自定义声音"><xsl:value-of select="presentation:sound/@xlink:href"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </演:声音>
+ <æ¼”:æ–¹å¼ uof:locID="p0062">
+ <æ¼”:å•å‡»é¼ æ ‡ uof:locID="p0065">
+ <xsl:choose>
+ <xsl:when test="@presentation:transition-type='automatic'">false</xsl:when>
+ <xsl:otherwise>true</xsl:otherwise>
+ </xsl:choose>
+ </æ¼”:å•å‡»é¼ æ ‡>
+ <xsl:if test="@presentation:duration">
+ <演:时间间隔 uof:locID="p0066">
+ <xsl:variable name="hms">
+ <xsl:value-of select="substring-after(@presentation:duration,'PT')"/>
+ </xsl:variable>
+ <xsl:variable name="h">
+ <xsl:value-of select="number(substring-before($hms,'H'))"/>
+ </xsl:variable>
+ <xsl:variable name="ms">
+ <xsl:value-of select="substring-after($hms,'H')"/>
+ </xsl:variable>
+ <xsl:variable name="m">
+ <xsl:value-of select="number(substring-before($ms,'M'))"/>
+ </xsl:variable>
+ <xsl:variable name="s">
+ <xsl:value-of select="number(substring-before(substring-after($ms,'M'),'S'))"/>
+ </xsl:variable>
+ <xsl:value-of select="$h *3600 + $m * 60 + $s"/>
+ </演:时间间隔>
+ </xsl:if>
+ </æ¼”:æ–¹å¼>
+ </xsl:for-each>
+ </æ¼”:切æ¢>
+ </æ¼”:å¹»ç¯ç‰‡>
+ </xsl:template>
+ <xsl:template match="presentation:notes" mode="page">
+ <æ¼”:å¹»ç¯ç‰‡å¤‡æ³¨ uof:locID="p0054" uof:attrList="备注æ¯ç‰ˆå¼•ç”¨">
+ <xsl:attribute name="æ¼”:备注æ¯ç‰ˆå¼•ç”¨"><xsl:variable name="cute"><xsl:value-of select="parent::node()/@draw:master-page-name"/></xsl:variable><xsl:value-of select="concat('note-',$cute)"/></xsl:attribute>
+ <xsl:call-template name="产生锚点"/>
+ <演:背景 uof:locID="p0057">
+ <图:颜色 uof:locID="g0034">#ffffff</图:颜色>
+ </演:背景>
+ </æ¼”:å¹»ç¯ç‰‡å¤‡æ³¨>
+ </xsl:template>
+ <xsl:template name="产生锚点">
+ <xsl:for-each select="child::node( )">
+ <xsl:choose>
+ <xsl:when test="substring-before(name(),':')='draw'">
+ <uof:锚点 uof:locID="u0064" uof:attrList="xåæ ‡ yåæ ‡ 宽度 高度 图形引用 éšåŠ¨æ–¹å¼ 缩略图 å ä½ç¬¦">
+ <xsl:variable name="nodename">
+ <xsl:value-of select="name(.)"/>
+ </xsl:variable>
+ <xsl:variable name="refpicname">
+ <xsl:choose>
+ <xsl:when test="@draw:style-name">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@presentation:style-name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="picnumber">
+ <xsl:choose>
+ <xsl:when test="@draw:style-name">
+ <xsl:value-of select="count(preceding::*[@draw:style-name=$refpicname])"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="count(preceding::*[@presentation:style-name=$refpicname])"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="uof:xåæ ‡"><xsl:choose><xsl:when test="name(.)='draw:g'"><xsl:call-template name="groupminx"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:x][1]/@svg:x,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:when><xsl:otherwise><xsl:choose><xsl:when test="@svg:x"><xsl:value-of select="substring-before(@svg:x,$uofUnit)"/></xsl:when><xsl:when test="@svg:x1"><xsl:value-of select="substring-before(@svg:x1,$uofUnit)"/></xsl:when></xsl:choose></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:yåæ ‡"><xsl:choose><xsl:when test="name(.)='draw:g'"><xsl:call-template name="groupminx"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:y][1]/@svg:y,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:when><xsl:otherwise><xsl:choose><xsl:when test="@svg:y"><xsl:value-of select="substring-before(@svg:y,$uofUnit)"/></xsl:when><xsl:when test="@svg:y1"><xsl:value-of select="substring-before(@svg:y1,$uofUnit)"/></xsl:when></xsl:choose></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:choose><xsl:when test="@svg:width"><xsl:value-of select="substring-before(@svg:width,$uofUnit)"/></xsl:when><xsl:when test="@svg:x1"><xsl:value-of select="substring-before(@svg:x2,$uofUnit) - substring-before(@svg:x1,$uofUnit)"/></xsl:when><xsl:when test="name(.)='draw:g'"><xsl:variable name="minx"><xsl:call-template name="groupminx"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:x][1]/@svg:x,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:variable name="svgx"><xsl:value-of select="number(substring-before(descendant::node()[@svg:x][1]/@svg:x,$uofUnit))"/></xsl:variable><xsl:variable name="width"><xsl:value-of select="number(substring-before(descendant::node()[@svg:x][1]/@svg:width,$uofUnit))"/></xsl:variable><xsl:variable name="maxx"><xsl:call-template name="groupmaxx"><xsl:with-param name="value" select="$svgx + $width"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:value-of select="$maxx - $minx"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:高度"><xsl:choose><xsl:when test="@svg:height"><xsl:value-of select="substring-before(@svg:height,$uofUnit)"/></xsl:when><xsl:when test="@svg:x1"><xsl:value-of select="substring-before(@svg:y2,$uofUnit) - substring-before(@svg:y1,$uofUnit)"/></xsl:when><xsl:when test="name(.)='draw:g'"><xsl:variable name="miny"><xsl:call-template name="groupminy"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:y][1]/@svg:y,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:variable name="svgy"><xsl:value-of select="number(substring-before(descendant::node()[@svg:y][1]/@svg:y,$uofUnit))"/></xsl:variable><xsl:variable name="height"><xsl:value-of select="number(substring-before(descendant::node()[@svg:y][1]/@svg:height,$uofUnit))"/></xsl:variable><xsl:variable name="maxy"><xsl:call-template name="groupmaxy"><xsl:with-param name="value" select="$svgy + $height"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:value-of select="$maxy - $miny"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:图形引用"><xsl:choose><xsl:when test="@draw:id"><xsl:value-of select="@draw:id"/></xsl:when><xsl:when test="not(@draw:style-name) and name()='draw:g'"><xsl:value-of select="concat(child::node()[1]/@draw:style-name,'_',$picnumber)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat($refpicname,'_',$picnumber)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:éšåŠ¨æ–¹å¼"><xsl:choose><xsl:when test="key('graphicset',$refpicname)/node()/@style:protect"><xsl:for-each select="key('graphicset',$refpicname)/node()"><xsl:choose><xsl:when test="@style:protect='size'">move</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:for-each></xsl:when><xsl:otherwise>movesize</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="name(.)='draw:page-thumbnail'">
+ <xsl:attribute name="uof:缩略图">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(name(parent::node())='style:handout-master')">
+ <xsl:attribute name="uof:å ä½ç¬¦"><xsl:choose><xsl:when test="@presentation:object"><xsl:value-of select="@presentation:object"/></xsl:when><xsl:when test=".//draw:image">graphic</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:if test="@presentation:class">
+ <xsl:attribute name="uof:å ä½ç¬¦"><xsl:value-of select="@presentation:class"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </uof:锚点>
+ </xsl:when>
+ <xsl:when test="name()= 'anim:par'">
+ <演:动画 uof:locID="p0042">
+ <xsl:apply-templates select="anim:seq"/>
+ </演:动画>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="anim:seq">
+ <xsl:apply-templates select="anim:par/anim:par/anim:par"/>
+ <xsl:apply-templates select="anim:par/anim:par/anim:iterate"/>
+ </xsl:template>
+ <xsl:template match="anim:par | anim:iterate">
+ <æ¼”:åºåˆ— uof:locID="p0043" uof:attrList="段è½å¼•ç”¨ 动画对象">
+ <xsl:attribute name="演:动画对象"><xsl:choose>
+ <xsl:when test=".//@smil:targetElement"><xsl:value-of select=".//@smil:targetElement"/></xsl:when><xsl:when test="@anim:id"><xsl:value-of select="@anim:id"/></xsl:when><xsl:otherwise><xsl:value-of select="../@smil:targetElement"/></xsl:otherwise></xsl:choose></xsl:attribute>
+
+ <æ¼”:定时 uof:locID="p0067" uof:attrList="事件 延时 速度 é‡å¤ 回å·">
+ <xsl:attribute name="演:事件">
+ <xsl:choose>
+ <xsl:when test="@presentation:node-type='on-click'">on click</xsl:when>
+ <xsl:when test="@presentation:node-type='with-previous'">with previous</xsl:when>
+ <xsl:otherwise><xsl:value-of select="@presentation:node-type"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="演:延时"><xsl:value-of select="substring-before(@smil:begin,'s')"/></xsl:attribute>
+ <xsl:attribute name="演:速度"><xsl:choose><xsl:when test="anim:animate/@smil:dur='0.5s'">very fast</xsl:when><xsl:when test="anim:animate/@smil:dur='1s'">fast</xsl:when><xsl:when test="anim:animate/@smil:dur='2s'">medium</xsl:when><xsl:when test="anim:animate/@smil:dur='3s'">slow</xsl:when><xsl:when test="anim:animate/@smil:dur='5s'">very slow</xsl:when><xsl:otherwise>medium</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="æ¼”:é‡å¤"><xsl:choose><xsl:when test="@smil:repeatCount = 'indefinite' "><xsl:choose><xsl:when test="@smil:end='next'">until next click</xsl:when><xsl:otherwise>until next slide</xsl:otherwise></xsl:choose></xsl:when><xsl:when test="@smil:repeatCount ='2' or @smil:repeatCount ='3' or @smil:repeatCount ='4' or @smil:repeatCount ='5' or @smil:repeatCount ='10' "><xsl:value-of select="@smil:repeatCount"/></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="æ¼”:回å·"><xsl:choose><xsl:when test="@smil:fill='remove'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </演:定时>
+ <演:增强 uof:locID="p0068">
+ <æ¼”:åŠ¨ç”»æ’­æ”¾åŽ uof:locID="p0070" uof:attrList="颜色 å˜æš— 播放åŽéšè— å•å‡»åŽéšè—">
+ <xsl:if test="../anim:animateColor">
+ <xsl:attribute name="演:颜色"><xsl:value-of select="../anim:animateColor/@smil:to"/></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="../anim:animateColor">
+ <xsl:attribute name="æ¼”:å˜æš—">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="æ¼”:å˜æš—">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@presentation:preset-property='Direction;Accelerate;Decelerate' ">
+ <xsl:attribute name="æ¼”:播放åŽéšè—">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="æ¼”:播放åŽéšè—">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="../anim:set/@smil:to">
+ <xsl:attribute name="æ¼”:å•å‡»åŽéšè—">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="æ¼”:å•å‡»åŽéšè—">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </æ¼”:动画播放åŽ>
+ <æ¼”:动画文本 uof:locID="p0071" uof:attrList="å‘é€ é—´éš” 动画形状 相å顺åº">
+ <xsl:attribute name="æ¼”:å‘é€"><xsl:choose><xsl:when test="@anim:iterate-type = 'by-word' ">by word</xsl:when><xsl:when test="@anim:iterate-type = 'by-letter' ">by letter</xsl:when><xsl:otherwise>all at once</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="æ¼”:é—´éš”"><xsl:choose><xsl:when test="@anim:iterate-interval"><xsl:value-of select="substring-before(@anim:iterate-interval,'s')"/>
+</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="演:动画形状">false</xsl:attribute>
+ <xsl:attribute name="æ¼”:相å顺åº">false</xsl:attribute>
+ </演:动画文本>
+ <xsl:if test="anim:audio">
+ <演:声音 uof:locID="p0061" uof:attrList="预定义声音 自定义声音">
+ <xsl:variable name="audioname">
+ <xsl:value-of select="substring-after(anim:audio/@xlink:href,'gallery/sounds/')"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="not($audioname='')">
+ <xsl:attribute name="演:预定义声音"><xsl:choose><xsl:when test="anim:audio/@xlink:href"><xsl:value-of select="anim:audio/@xlink:href"/></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="演:自定义声音"><xsl:value-of select="anim:audio/@xlink:href"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </演:声音>
+ </xsl:if>
+ </演:增强>
+ <演:效果 uof:locID="p0069">
+ <xsl:choose>
+ <xsl:when test="./@presentation:preset-class = 'entrance'">
+ <演:进入 uof:locID="p0073">
+ <xsl:apply-templates select="@presentation:preset-id"/>
+ </演:进入>
+ </xsl:when>
+ <xsl:when test="./@presentation:preset-class = 'exit'">
+ <演:退出 uof:locID="p0074">
+ <xsl:apply-templates select="@presentation:preset-id"/>
+ </演:退出>
+ </xsl:when>
+ <xsl:when test="./@presentation:preset-class = 'emphasis' ">
+ <演:强调 uof:locID="p0075">
+ <xsl:apply-templates select="@presentation:preset-id"/>
+ </演:强调>
+ </xsl:when>
+ <xsl:otherwise>
+ <演:动作路径 uof:locID="p0133" uof:attrList="路径">
+ <xsl:attribute name="演:路径">
+ <xsl:value-of select="anim:animateMotion/@svg:path"/>
+ </xsl:attribute>
+ </演:动作路径>
+ </xsl:otherwise>
+ </xsl:choose>
+ </演:效果>
+ </æ¼”:åºåˆ—>
+ </xsl:template>
+ <xsl:template name="anim_speed">
+ <xsl:param name="speed"/>
+ <xsl:choose>
+ <xsl:when test="$speed='0.5s' or $speed='0.25s'">very fast</xsl:when>
+ <xsl:when test="$speed='1s'">fast</xsl:when>
+ <xsl:when test="$speed='2s'">medium</xsl:when>
+ <xsl:when test="$speed='3s'">slow</xsl:when>
+ <xsl:when test="$speed='5s'">very slow</xsl:when>
+ <xsl:otherwise>medium</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-venetian-blinds']">
+ <æ¼”:百å¶çª— uof:locID="p0080" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </æ¼”:百å¶çª—>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-appear']">
+ <演:出现 uof:locID="p0081">
+ </演:出现>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-box']">
+ <æ¼”:盒状 uof:locID="p0082" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </演:盒状>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-diagonal-squares']">
+ <æ¼”:阶梯状 uof:locID="p0083" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'left-to-bottom' ">left down</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'left-to-top' ">left up</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'right-to-bottom' ">right down</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'right-to-top' ">right up</xsl:when></xsl:choose></xsl:attribute>
+ </演:阶梯状>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-wheel']">
+ <æ¼”:è½®å­ uof:locID="p0084" uof:attrList="速度 è¾å°„状">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:è¾å°„状"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </æ¼”:è½®å­>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-checkerboard']">
+ <æ¼”:棋盘 uof:locID="p0085" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:subtype"/></xsl:attribute>
+ </演:棋盘>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-flash-once']">
+ <æ¼”:é—ªçƒä¸€æ¬¡ uof:locID="p0086" uof:attrList="速度">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:set/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ </æ¼”:é—ªçƒä¸€æ¬¡>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-plus']">
+ <æ¼”:å字形扩展 uof:locID="p0087" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </æ¼”:å字形扩展>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-random']">
+ <æ¼”:éšæœºæ•ˆæžœ uof:locID="p0088">
+ </æ¼”:éšæœºæ•ˆæžœ>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-circle']">
+ <æ¼”:圆形扩展 uof:locID="p0089" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </演:圆形扩展>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-wipe']">
+ <æ¼”:擦除 uof:locID="p0090" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'from-right'">from right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-left'">from left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top'">from top</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-bottom'">from bottom</xsl:when></xsl:choose></xsl:attribute>
+ </演:擦除>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-fly-in']">
+ <æ¼”:飞入 uof:locID="p0091" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:animate/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'from-bottom'">from bottom</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top-right'">from top-right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top-left'">from top-left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-bottom-left'">from bottom-left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-bottom-right'">from bottom-right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-right'">from right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-left'">from left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top'">from top</xsl:when></xsl:choose></xsl:attribute>
+ </演:飞入>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-fly-in-slow']">
+ <æ¼”:缓慢飞入 uof:locID="p0092" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:animate/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'from-right'">from right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-left'">from left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top'">from top</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-bottom'">from bottom</xsl:when></xsl:choose></xsl:attribute>
+ </演:缓慢飞入>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-diamond']">
+ <æ¼”:è±å½¢ uof:locID="p0093" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </æ¼”:è±å½¢>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-split']">
+ <æ¼”:劈裂 uof:locID="p0094" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'horizontal-out'">horizontal out</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'horizontal-in'">horizontal in</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'vertical-in'">vertical in</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'vertical-out'">vertical out</xsl:when></xsl:choose></xsl:attribute>
+ </演:劈裂>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-peek-in']">
+ <æ¼”:切入 uof:locID="p0095" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'from-right'">from right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-left'">from left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top'">from top</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-bottom'">from bottom</xsl:when></xsl:choose></xsl:attribute>
+ </演:切入>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-wedge']">
+ <演:扇形展开 uof:locID="p0096" uof:attrList="速度">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ </演:扇形展开>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-random-bars']">
+ <æ¼”:éšæœºçº¿æ¡ uof:locID="p0097" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </æ¼”:éšæœºçº¿æ¡>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-dissolve-in']">
+ <æ¼”:å‘内溶解 uof:locID="p0098" uof:attrList="速度">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ </æ¼”:å‘内溶解>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-boomerang']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-bounce']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-curve-up']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-falling-in']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-flip']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-float']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-fold']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-glide']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-magnify']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-movie-credits']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-pinwheel']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-breaks']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-sling']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-spiral-in']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-swivel']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-thread']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-whip']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'oooo-entrance-ascend']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-center-revolve']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-colored-lettering']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-compress']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-descend']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-ease-in']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-rise-up']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-spin-in']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-stretchy']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-turn-and-grow']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-unfold']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-colored-lettering']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-expand']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-fade-in']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-fade-in-and-swivel']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-entrance-fade-in-and-zoom']">
+ <演:其他 uof:locID="p0099">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-fill-color']">
+ <演:更改填充颜色 uof:locID="p0124" uof:attrList="速度 颜色">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="../anim:animateColor/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="演:颜色"><xsl:value-of select="../anim:animateColor/@smil:to"/></xsl:attribute>
+ </演:更改填充颜色>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-font-color']">
+ <演:更改字体颜色 uof:locID="p0126" uof:attrList="速度 颜色">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="../anim:animateColor/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="演:颜色"><xsl:value-of select="../anim:animateColor/@smil:to"/></xsl:attribute>
+ </演:更改字体颜色>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-grow-and-shrink']">
+ <æ¼”:缩放 uof:locID="p0120" uof:attrList="速度 æ–¹å‘ é¢„å®šä¹‰å°ºå¯¸ 自定义尺寸">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="../anim:animateTransform/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘">horizontal</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="../anim:animateTransform/@smil:to='0.25,1' ">
+ <xsl:attribute name="演:预定义尺寸">tiny</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../anim:animateTransform/@smil:to='0.5,1' ">
+ <xsl:attribute name="演:预定义尺寸">smaller</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../anim:animateTransform/@smil:to='1.5,1' ">
+ <xsl:attribute name="演:预定义尺寸">larger</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../anim:animateTransform/@smil:to='4,1' ">
+ <xsl:attribute name="演:预定义尺寸">huge</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="演:自定义尺寸"><xsl:choose><xsl:when test="../anim:animateTransform/@smil:to"><xsl:value-of select="../anim:animateTransform/@smil:to"/></xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </演:缩放>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-font-size']">
+ <æ¼”:æ›´æ”¹å­—å· uof:locID="p0125" uof:attrList="速度 预定义尺寸 自定义尺寸">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="../anim:animate/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="parent::anim:par/anim:animate/@smil:to='0.25,1' ">
+ <xsl:attribute name="演:预定义尺寸">tiny</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::anim:par/anim:animate/@smil:to='0.5,1' ">
+ <xsl:attribute name="演:预定义尺寸">smaller</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::anim:par/anim:animate/@smil:to='1.5,1' ">
+ <xsl:attribute name="演:预定义尺寸">larger</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::anim:par/anim:animate/@smil:to='4,1' ">
+ <xsl:attribute name="演:预定义尺寸">huge</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="演:自定义尺寸"><xsl:choose><xsl:when test="parent::anim:par/anim:animate/@smil:to"><xsl:value-of select="parent::anim:par/anim:animate/@smil:to"/></xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </æ¼”:更改字å·>
+ </xsl:template>
+ <xsl:template name="getfontstyle_emphasis">
+ <xsl:value-of select="concat(@smil:to,' ')"/>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-font-style']">
+ <演:更改字形 uof:locID="p0122" uof:attrList="字形 期间">
+ <xsl:attribute name="æ¼”:å­—å½¢"><xsl:variable name="fontstyle"><xsl:for-each select="../anim:set"><xsl:call-template name="getfontstyle_emphasis"/></xsl:for-each></xsl:variable><xsl:value-of select="$fontstyle"/></xsl:attribute>
+ <xsl:attribute name="演:期间"><xsl:choose><xsl:when test="../@smil:repeatCount = 'indefinite' "><xsl:choose><xsl:when test="../@smil:end='next'">until next click</xsl:when><xsl:otherwise>until next slide</xsl:otherwise></xsl:choose></xsl:when><xsl:when test="../@smil:repeatCount ='2' or ../@smil:repeatCount ='3' or ../@smil:repeatCount ='4' or ../@smil:repeatCount ='5' or ../@smil:repeatCount ='10'"><xsl:value-of select="../@smil:repeatCount"/></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </演:更改字形>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-line-color']">
+ <æ¼”:更改线æ¡é¢œè‰² uof:locID="p0121" uof:attrList="速度 颜色">
+ <xsl:attribute name="演:速度">medium</xsl:attribute>
+ <xsl:attribute name="演:颜色"><xsl:value-of select="../anim:animateColor/@smil:to"/></xsl:attribute>
+ </æ¼”:更改线æ¡é¢œè‰²>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-spin']">
+ <æ¼”:陀螺旋 uof:locID="p0123" uof:attrList="速度 é¡ºæ—¶é’ˆæ–¹å‘ é¢„å®šä¹‰è§’åº¦ 自定义角度">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:animateTransform/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:顺时针方å‘">true</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="parent::anim:par/anim:animateTransform/@smil:by='90'">
+ <xsl:attribute name="演:预定义角度">quarter spin</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::anim:par/anim:animateTransform/@smil:by='180'">
+ <xsl:attribute name="演:预定义角度">half spin</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::anim:par/anim:animateTransform/@smil:by='360'">
+ <xsl:attribute name="演:预定义角度">full spin</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::anim:par/anim:animateTransform/@smil:by='720'">
+ <xsl:attribute name="演:预定义角度">two spins</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="演:自定义角度"><xsl:value-of select="parent::anim:par/anim:animateTransform/@smil:by"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </演:陀螺旋>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-transparency']">
+ <æ¼”:é€æ˜Ž uof:locID="p0127" uof:attrList="预定义é€æ˜Žåº¦ 自定义é€æ˜Žåº¦ 期间">
+ <xsl:choose>
+ <xsl:when test="../anim:set/@smil:to='0.25' ">
+ <xsl:attribute name="æ¼”:预定义é€æ˜Žåº¦">25</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../anim:set/@smil:to='0.5' ">
+ <xsl:attribute name="æ¼”:预定义é€æ˜Žåº¦">50</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../anim:set/@smil:to='0.75' ">
+ <xsl:attribute name="æ¼”:预定义é€æ˜Žåº¦">75</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="../anim:set/@smil:to='1' ">
+ <xsl:attribute name="æ¼”:预定义é€æ˜Žåº¦">100</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="æ¼”:自定义é€æ˜Žåº¦"><xsl:value-of select="../anim:set/@smil:to"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="演:期间"><xsl:choose><xsl:when test="../@smil:repeatCount = 'indefinite' "><xsl:choose><xsl:when test="../@smil:end='next'">until next click</xsl:when><xsl:otherwise>until next slide</xsl:otherwise></xsl:choose></xsl:when><xsl:when test="../@smil:repeatCount ='2' or ../@smil:repeatCount ='3' or ../@smil:repeatCount ='4' or ../@smil:repeatCount ='5' or ../@smil:repeatCount ='10'"><xsl:value-of select="../@smil:repeatCount"/></xsl:when><xsl:otherwise>until next click</xsl:otherwise></xsl:choose></xsl:attribute>
+ </æ¼”:é€æ˜Ž>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-font']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-blast']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-blink']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-bold-reveal']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-style-emphasis']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-wave']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-flicker']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-grow-with-color']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-shimmer']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-teeter']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-bold-flash']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-color-blend']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-color-over-by-letter']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-color-over-by-word']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-complementary-color']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-complementary-color-2']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-contrasting-color']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-darken']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-desaturate']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-flash-bulb']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-lighten']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-emphasis-reveal-underline']">
+ <演:其他 uof:locID="p0128">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-box']">
+ <æ¼”:盒状 uof:locID="p0111" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </演:盒状>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-checkerboard']">
+ <æ¼”:棋盘 uof:locID="p0114" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:subtype"/></xsl:attribute>
+ </演:棋盘>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-circle']">
+ <æ¼”:圆形扩展 uof:locID="p0109" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </演:圆形扩展>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-crawl-out']">
+ <æ¼”:缓慢移出 uof:locID="p0102" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="../anim:animate/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'from-right'">to right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-left'">to left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top'">to top</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-bottom'">to bottom</xsl:when></xsl:choose></xsl:attribute>
+ </演:缓慢移出>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-diagonal-squares']">
+ <æ¼”:阶梯状 uof:locID="p0112" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'left-to-bottom' ">left down</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'left-to-top' ">left up</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'right-to-bottom' ">right down</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'right-to-top' ">right up</xsl:when></xsl:choose></xsl:attribute>
+ </演:阶梯状>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-diamond']">
+ <æ¼”:è±å½¢ uof:locID="p0103" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </æ¼”:è±å½¢>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-disappear']">
+ <演:消失 uof:locID="p0118">
+ </演:消失>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-dissolve']">
+ <æ¼”:å‘外溶解 uof:locID="p0108" uof:attrList="速度">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ </æ¼”:å‘外溶解>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-flash-once']">
+ <æ¼”:é—ªçƒä¸€æ¬¡ uof:locID="p0115" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="../anim:animate/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ </æ¼”:é—ªçƒä¸€æ¬¡>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-fly-out']">
+ <æ¼”:飞出 uof:locID="p0101" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="../anim:animate/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'from-bottom'">to bottom</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top-right'">to top-right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top-left'">to top-left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-bottom-left'">to bottom-left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-bottom-right'">to bottom-right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-right'">to right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-left'">to left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top'">to top</xsl:when></xsl:choose></xsl:attribute>
+ </演:飞出>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-peek-out']">
+ <æ¼”:切出 uof:locID="p0105" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'from-right'">to right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-left'">to left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top'">to top</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-bottom'">to bottom</xsl:when></xsl:choose></xsl:attribute>
+ </演:切出>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-plus']">
+ <æ¼”:å字形扩展 uof:locID="p0116" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </æ¼”:å字形扩展>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-random-bars']">
+ <æ¼”:éšæœºçº¿æ¡ uof:locID="p0107" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </æ¼”:éšæœºçº¿æ¡>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-random']">
+ <æ¼”:éšæœºæ•ˆæžœ uof:locID="p0117">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:choose><xsl:when test="parent::anim:par/anim:transitionFilter/@smil:dur"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:when><xsl:otherwise><xsl:value-of select="../anim:animate/@smil:dur"/></xsl:otherwise></xsl:choose></xsl:with-param></xsl:call-template></xsl:attribute>
+ </æ¼”:éšæœºæ•ˆæžœ>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-split']">
+ <æ¼”:劈裂 uof:locID="p0104" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'horizontal-out'">horizontal out</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'horizontal-in'">horizontal in</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'vertical-in'">vertical in</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'vertical-out'">vertical out</xsl:when></xsl:choose></xsl:attribute>
+ </演:劈裂>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-venetian-blinds']">
+ <æ¼”:百å¶çª— uof:locID="p0100" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </æ¼”:百å¶çª—>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-wedge']">
+ <演:扇形展开 uof:locID="p0106" uof:attrList="速度">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ </演:扇形展开>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-wheel']">
+ <æ¼”:è½®å­ uof:locID="p0113" uof:attrList="速度 è½®è¾">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:è½®è¾"><xsl:value-of select="../@presentation:preset-sub-type"/></xsl:attribute>
+ </æ¼”:è½®å­>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-wipe']">
+ <æ¼”:擦除 uof:locID="p0110" uof:attrList="速度 æ–¹å‘">
+ <xsl:attribute name="演:速度"><xsl:call-template name="anim_speed"><xsl:with-param name="speed"><xsl:value-of select="parent::anim:par/anim:transitionFilter/@smil:dur"/></xsl:with-param></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="æ¼”:æ–¹å‘"><xsl:choose><xsl:when test="../@presentation:preset-sub-type = 'from-right'">from right</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-left'">from left</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-top'">from top</xsl:when><xsl:when test="../@presentation:preset-sub-type = 'from-bottom'">from bottom</xsl:when></xsl:choose></xsl:attribute>
+ </演:擦除>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-boomerang']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-bounce']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-curve-down']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-flip']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-float']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-fold']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-glide']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-magnify']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-movie-credits']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-pinwheel']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-breaks']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-sling']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-swish']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-swivel']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-thread']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-whip']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-ascend']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-center-revolve']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-collapse']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-colored-lettering']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-descend']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-ease-out']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-sink-down']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-spin-out']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-stretchy']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-turn-and-grow ']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-unfold']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-zoom']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-contract']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-fade-out']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-fade-out-and-swivel']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="@presentation:preset-id[. = 'ooo-exit-fade-out-and-zoom']">
+ <演:其他 uof:locID="p0119">
+ <xsl:copy-of select="parent::node()"/>
+ </演:其他>
+ </xsl:template>
+ <xsl:template match="draw:page" mode="styles">
+ <xsl:call-template name="creategraphicstyles"/>
+ </xsl:template>
+ <xsl:template match="style:handout-master" mode="styles">
+ <xsl:call-template name="creategraphicstyles"/>
+ </xsl:template>
+ <xsl:template match="style:master-page" mode="styles">
+ <xsl:apply-templates select="presentation:notes" mode="styles"/>
+ <xsl:call-template name="creategraphicstyles"/>
+ </xsl:template>
+ <xsl:template match="presentation:notes" mode="styles">
+ <xsl:call-template name="creategraphicstyles"/>
+ </xsl:template>
+ <xsl:template name="creategraphicstyles">
+ <xsl:for-each select="node()">
+ <xsl:variable name="nodename1">
+ <xsl:value-of select="name()"/>
+ </xsl:variable>
+ <xsl:if test="(substring-before($nodename1,':') = 'draw')">
+ <xsl:call-template name="draw">
+ <xsl:with-param name="nodename1" select="$nodename1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="draw">
+ <xsl:param name="nodename1"/>
+ <xsl:choose>
+ <xsl:when test="substring-after($nodename1,':') = 'a'">
+ <xsl:for-each select="child::*">
+ <xsl:call-template name="draw">
+ <xsl:with-param name="nodename">
+ <xsl:value-of select="name()"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="substring-after($nodename1,':') = 'g'">
+ <xsl:call-template name="draw:g"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="creategraphic"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="draw:g">
+ <xsl:for-each select="child::*">
+ <xsl:choose>
+ <xsl:when test="name()='draw:g'">
+ <xsl:call-template name="draw:g"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="creategraphic"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:call-template name="creategraphic"/>
+ </xsl:template>
+ <xsl:template name="zuheliebiao">
+ <xsl:param name="allnode"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="../child::*[$pos]">
+ <xsl:for-each select="../child::*[$pos]">
+ <xsl:variable name="nodepos">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="picnumber1">
+ <xsl:value-of select="count(preceding::*[@draw:style-name=$nodepos])"/>
+ </xsl:variable>
+ <xsl:variable name="pic-name1">
+ <xsl:value-of select="concat($nodepos,'_',$picnumber1)"/>
+ </xsl:variable>
+ <xsl:variable name="allnode1">
+ <xsl:value-of select="concat($allnode,',',$pic-name1)"/>
+ </xsl:variable>
+ <xsl:call-template name="zuheliebiao">
+ <xsl:with-param name="allnode" select="$allnode1"/>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$allnode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="creategraphic">
+ <xsl:variable name="nodename">
+ <xsl:value-of select="name()"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="@draw:style-name or name()='draw:g'">
+ <xsl:variable name="pic-name">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="pic-num">
+ <xsl:value-of select="count(/descendant::*[@draw:style-name=$pic-name])"/>
+ </xsl:variable>
+ <xsl:variable name="picnumber">
+ <xsl:value-of select="count(preceding::*[@draw:style-name=$pic-name])"/>
+ </xsl:variable>
+ <xsl:call-template name="pic-process">
+ <xsl:with-param name="pic-name" select="$pic-name"/>
+ <xsl:with-param name="nodename" select="$nodename"/>
+ <xsl:with-param name="picnumber" select="$picnumber"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="@presentation:style-name">
+ <xsl:variable name="pic-name">
+ <xsl:value-of select="@presentation:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="pic-num">
+ <xsl:value-of select="count(/descendant::*[@presentation:style-name=$pic-name])"/>
+ </xsl:variable>
+ <xsl:variable name="picnumber">
+ <xsl:value-of select="count(preceding::*[@presentation:style-name=$pic-name])"/>
+ </xsl:variable>
+ <xsl:call-template name="pic-process">
+ <xsl:with-param name="pic-name" select="$pic-name"/>
+ <xsl:with-param name="picnumber" select="$picnumber"/>
+ <xsl:with-param name="nodename" select="$nodename"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="pic-process">
+ <xsl:param name="pic-name"/>
+ <xsl:param name="nodename"/>
+ <xsl:param name="picnumber"/>
+ <图:图形 uof:locID="g0000" uof:attrList="层次 标识符 组åˆåˆ—表 其他对象">
+ <xsl:attribute name="图:标识符"><xsl:choose><xsl:when test="@draw:id"><xsl:value-of select="@draw:id"/></xsl:when><xsl:when test="not(@draw:style-name) and name()='draw:g'"><xsl:value-of select="concat(child::node()[1]/@draw:style-name,'-',$picnumber)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat($pic-name,'_',$picnumber)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:层次"><xsl:choose><xsl:when test="name(parent::node())='draw:g'"><xsl:value-of select="position()"/></xsl:when><xsl:when test="@draw:z-index"><xsl:value-of select="@draw:z-index"/></xsl:when>
+ <xsl:otherwise><xsl:value-of select="position()"/></xsl:otherwise>
+ </xsl:choose></xsl:attribute>
+ <xsl:if test="$nodename='draw:g'">
+ <xsl:attribute name="图:组åˆåˆ—表"><xsl:for-each select="child::*[1]"><xsl:variable name="node1"><xsl:value-of select="@draw:style-name"/></xsl:variable><xsl:variable name="picnumber2"><xsl:value-of select="count(preceding::*[@draw:style-name=$node1])"/></xsl:variable><xsl:call-template name="zuheliebiao"><xsl:with-param name="allnode"><xsl:value-of select="concat($node1,'_',$picnumber2)"/></xsl:with-param><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:for-each></xsl:attribute>
+ </xsl:if>
+ <xsl:if test=".//office:binary-data">
+ <xsl:attribute name="图:其他对象"><xsl:choose><xsl:when test="@draw:name"><xsl:value-of select="@draw:name"/></xsl:when><xsl:otherwise><xsl:value-of select="concat($pic-name,'_b1')"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="arrow-sign">
+ <xsl:choose>
+ <xsl:when test="key('graphicset',$pic-name)/style:graphic-properties/@draw:marker-start or key('graphicset',$pic-name)/style:graphic-properties/@draw:marker-end">
+ <xsl:value-of select="'1'"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$nodename='draw:line' or $nodename='draw:rect' or $nodename='draw:circle' or $nodename='draw:polygon' or $nodename='draw:polyline' or $nodename='draw:ellipse' or $nodename='draw:page-thumbnail' or $nodename='draw:frame' or $nodename='draw:path'or $nodename='draw:g'">
+ <图:预定义图形 uof:locID="g0005">
+ <图:类别 uof:locID="g0006">
+ <xsl:choose>
+ <xsl:when test="$nodename='draw:rect'">11</xsl:when>
+ <xsl:when test="$nodename='draw:line'">61</xsl:when>
+ <xsl:when test="$nodename='draw:circle'">19</xsl:when>
+ <xsl:when test="$nodename='draw:polygon'">65</xsl:when>
+ <xsl:when test="$nodename='draw:polyline'">66</xsl:when>
+ <xsl:when test="$nodename='draw:ellipse'">19</xsl:when>
+ <xsl:when test="$nodename='draw:page-thumbnail'">67</xsl:when>
+ <xsl:when test="$nodename='draw:frame'">3</xsl:when>
+ <xsl:when test="$nodename='draw:path'">64</xsl:when>
+ <xsl:when test="$nodename='draw:g'">4</xsl:when>
+ </xsl:choose>
+ </图:类别>
+ <图:å称 uof:locID="g0007">
+ <xsl:choose>
+ <xsl:when test="$nodename='draw:rect'">Rectangle</xsl:when>
+ <xsl:when test="$nodename='draw:line'">Line</xsl:when>
+ <xsl:when test="$nodename='draw:circle'">Oval</xsl:when>
+ <xsl:when test="$nodename='draw:polygon'">Freeform</xsl:when>
+ <xsl:when test="$nodename='draw:polyline'">Scribble</xsl:when>
+ <xsl:when test="$nodename='draw:ellipse'">Oval</xsl:when>
+ <xsl:when test="$nodename='draw:page-thumbnail'">缩略图</xsl:when>
+ <xsl:when test="$nodename='draw:frame'">文本框</xsl:when>
+ <xsl:when test="$nodename='draw:path'">Curve</xsl:when>
+ <xsl:when test="$nodename='draw:g'">group</xsl:when>
+ </xsl:choose>
+ </图:å称>
+ <图:生æˆè½¯ä»¶ uof:locID="g0008">PNG</图:生æˆè½¯ä»¶>
+ <xsl:if test="./@draw:points or ./@svg:d">
+ <图:关键点åæ ‡ uof:locID="g0009" uofattrList="路径">
+ <xsl:attribute name="图:路径"><xsl:choose><xsl:when test="@svg:d"><xsl:value-of select="@svg:d"/></xsl:when><xsl:when test="@draw:points"><xsl:call-template name="draw:points"><xsl:with-param name="point" select="@draw:points"/><xsl:with-param name="lujing"/></xsl:call-template></xsl:when></xsl:choose></xsl:attribute>
+ </图:关键点åæ ‡>
+ </xsl:if>
+ <图:属性 uof:locID="g0011">
+ <xsl:for-each select="(/office:document/office:styles/descendant::*[@style:name=$pic-name]) | (/office:document/*/style:style[@style:name=$pic-name]) ">
+ <xsl:for-each select="style:graphic-properties">
+ <xsl:if test="not(@draw:fill='none')">
+ <图:填充 uof:locID="g0012">
+ <xsl:call-template name="å¡«å……">
+ <xsl:with-param name="nodename" select="$nodename"/>
+ <xsl:with-param name="picname" select="$pic-name"/>
+ </xsl:call-template>
+ </图:填充>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="style:graphic-properties/@svg:stroke-color">
+ <图:线颜色 uof:locID="g0013">
+ <xsl:value-of select="style:graphic-properties/@svg:stroke-color"/>
+ </图:线颜色>
+ </xsl:if>
+ <图:线型 uof:locID="g0014">
+ <xsl:variable name="linetype" select="style:graphic-properties/@draw:stroke-dash"/>
+ <xsl:choose>
+ <xsl:when test="not(style:graphic-properties/@draw:stroke)">
+ <xsl:choose>
+ <xsl:when test="not(style:graphic-properties/@svg:stroke-width)">single</xsl:when>
+ <xsl:otherwise>thick</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:stroke = 'none'">none</xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$linetype='Fine_20_Dashed' and style:graphic-properties/@svg:stroke-width">dash-long-heavy</xsl:when>
+ <xsl:when test="$linetype='Fine_20_Dashed'">dash-long</xsl:when>
+ <xsl:when test="$linetype='_32__20_Dots_20_1_20_Dash' and style:graphic-properties/@svg:stroke-width">dash-dot-dot-heavy</xsl:when>
+ <xsl:when test="$linetype='_32__20_Dots_20_1_20_Dash'">dot-dot-dash</xsl:when>
+ <xsl:when test="$linetype='Ultrafine_20_Dashed' and style:graphic-properties/@svg:stroke-width">dashed-heavy</xsl:when>
+ <xsl:when test="$linetype='Ultrafine_20_Dotted_20__28_var_29_'and style:graphic-properties/@svg:stroke-width">dotted-heavy</xsl:when>
+ <xsl:when test="$linetype='Ultrafine_20_Dotted_20__28_var_29_'">dotted</xsl:when>
+ <xsl:when test="$linetype='Line_20_with_20_Fine_20_Dots'">double</xsl:when>
+ <xsl:when test="$linetype='_33__20_Dashes_20_3_20_Dots_20__28_var_29_' and style:graphic-properties/@svg:stroke-width">dash-dot-heavy</xsl:when>
+ <xsl:when test="$linetype='_33__20_Dashes_20_3_20_Dots_20__28_var_29_'">dot-dash</xsl:when>
+ <xsl:when test="$linetype='Ultrafine_20_2_20_Dots_20_3_20_Dashes'and style:graphic-properties/@svg:stroke-width">wavy-heavy</xsl:when>
+ <xsl:when test="$linetype='Ultrafine_20_2_20_Dots_20_3_20_Dashes'">wave</xsl:when>
+ <xsl:when test="$linetype='Fine_20_Dashed_20__28_var_29_'">wavy-double</xsl:when>
+ <xsl:otherwise>dash</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </图:线型>
+ <xsl:if test="style:graphic-properties/@svg:stroke-width">
+ <图:线粗细 uof:locID="g0016">
+ <xsl:value-of select="substring-before(style:graphic-properties/@svg:stroke-width,$uofUnit)"/>
+ </图:线粗细>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:marker-start and string-length(style:graphic-properties/@draw:marker-start)&gt;0">
+ <图:å‰ç«¯ç®­å¤´ uof:locID="g0017">
+ <图:å¼æ · uof:locID="g0018">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Arrow'">normal</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Line_20_Arrow'">open</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Arrow_20_concave'">stealth</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Circle'">oval</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Square_20_45'">diamond</xsl:when>
+ <xsl:otherwise>normal</xsl:otherwise>
+ </xsl:choose>
+ </图:å¼æ ·>
+ <xsl:if test="style:graphic-properties/@draw:marker-start-width">
+ <图:å¤§å° uof:locID="g0019">
+ <xsl:variable name="width">
+ <xsl:value-of select="substring-before(style:graphic-properties/@draw:marker-start-width,$uofUnit)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="($width&lt;0.05 and 0&lt;$width) or $width=0.05">1</xsl:when>
+ <xsl:when test="($width&lt;0.10 and 0.05&lt;$width) or $width=0.10">2</xsl:when>
+ <xsl:when test="($width&lt;0.15 and 0.10&lt;$width) or $width=0.15">3</xsl:when>
+ <xsl:when test="($width&lt;0.20 and 0.15&lt;$width) or $width=0.20">4</xsl:when>
+ <xsl:when test="($width&lt;0.25 and 0.20&lt;$width) or $width=0.25">5</xsl:when>
+ <xsl:when test="($width&lt;0.30 and 0.25&lt;$width) or $width=0.30">6</xsl:when>
+ <xsl:when test="($width&lt;0.35 and 0.30&lt;$width) or $width=0.35">7</xsl:when>
+ <xsl:when test="($width&lt;0.40 and 0.35&lt;$width) or $width=0.40">8</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </图:大å°>
+ </xsl:if>
+ </图:å‰ç«¯ç®­å¤´>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:marker-end">
+ <图:åŽç«¯ç®­å¤´ uof:locID="g0020">
+ <图:å¼æ · uof:locID="g0021">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Arrow'">normal</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Line_20_Arrow'">open</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Arrow_20_concave'">stealth</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Circle'">oval</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Square_20_45'">diamond</xsl:when>
+ <xsl:otherwise>normal</xsl:otherwise>
+ </xsl:choose>
+ </图:å¼æ ·>
+ <xsl:if test="style:graphic-properties/@draw:marker-end-width">
+ <图:å¤§å° uof:locID="g0022">
+ <xsl:variable name="width">
+ <xsl:value-of select="number(substring-before(style:graphic-properties/@draw:marker-end-width,$uofUnit))"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="($width&lt;0.05 and 0&lt;$width) or $width=0.05">1</xsl:when>
+ <xsl:when test="($width&lt;0.10 and 0.05&lt;$width) or $width=0.10">2</xsl:when>
+ <xsl:when test="($width&lt;0.15 and 0.10&lt;$width) or $width=0.15">3</xsl:when>
+ <xsl:when test="($width&lt;0.20 and 0.15&lt;$width) or $width=0.20">4</xsl:when>
+ <xsl:when test="($width&lt;0.25 and 0.20&lt;$width) or $width=0.25">5</xsl:when>
+ <xsl:when test="($width&lt;0.30 and 0.25&lt;$width) or $width=0.30">6</xsl:when>
+ <xsl:when test="($width&lt;0.35 and 0.30&lt;$width) or $width=0.35">7</xsl:when>
+ <xsl:when test="($width&lt;0.40 and 0.35&lt;$width) or $width=0.40">8</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </图:大å°>
+ </xsl:if>
+ </图:åŽç«¯ç®­å¤´>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:opacity or style:graphic-properties/@svg:stroke-opacity or style:graphic-properties/@svg:stroke-opacity">
+ <图:é€æ˜Žåº¦ uof:locID="g0038">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:opacity">
+ <xsl:variable name="transparency">
+ <xsl:value-of select="substring-before(style:graphic-properties/@draw:opacity,'%')"/>
+ </xsl:variable>
+ <xsl:value-of select="(100 - $transparency) div 100"/>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@svg:stroke-opacity">
+ <xsl:variable name="transparency">
+ <xsl:value-of select="substring-before(style:graphic-properties/@svg:stroke-opacity,'%')"/>
+ </xsl:variable>
+ <xsl:value-of select="(100 - $transparency) div 100"/>
+ </xsl:when>
+ <xsl:when test="style:properties/@svg:stroke-opacity">
+ <xsl:value-of select="substring-before(style:properties/@svg:stroke-opacity,'%')"/>
+ </xsl:when>
+ </xsl:choose>
+ </图:é€æ˜Žåº¦>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="@svg:x1">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:x2,$uofUnit) - substring-before(@svg:x1,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:y2,$uofUnit) - substring-before(@svg:y1,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ <xsl:when test="@svg:x">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:width,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:height,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ <xsl:when test="@svg:width">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:width,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:height,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ </xsl:choose>
+ <图:旋转角度 uof:locID="g0025">
+ <xsl:choose>
+ <xsl:when test="@draw:transform">
+ <xsl:variable name="rotate-angle">
+ <xsl:value-of select="@draw:transform"/>
+ </xsl:variable>
+ <xsl:variable name="rotate-temp">
+ <xsl:value-of select="substring-before(substring-after($rotate-angle,'rotate ('),')')"/>
+ </xsl:variable>
+ <xsl:value-of select="($rotate-temp * 360) div (2 * 3.14159265)"/>
+ </xsl:when>
+ <xsl:otherwise>0.0</xsl:otherwise>
+ </xsl:choose>
+ </图:旋转角度>
+ <图:X-缩放比例 uof:locID="g0026">1</图:X-缩放比例>
+ <图:Y-缩放比例 uof:locID="g0027">1</图:Y-缩放比例>
+ <图:é”定纵横比 uof:locID="g0028">0</图:é”定纵横比>
+ <图:相对原始比例 uof:locID="g0029">1</图:相对原始比例>
+ <图:打å°å¯¹è±¡ uof:locID="g0032">true</图:打å°å¯¹è±¡>
+ <图:Web文字 uof:locID="g0033"/>
+ </图:属性>
+ </图:预定义图形>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="./text:p or ./draw:text-box">
+ <图:文本内容 uof:locID="g0002" uof:attrList="文本框 å·¦è¾¹è· å³è¾¹è· ä¸Šè¾¹è· ä¸‹è¾¹è· æ°´å¹³å¯¹é½ åž‚ç›´å¯¹é½ æ–‡å­—æŽ’åˆ—æ–¹å‘ è‡ªåŠ¨æ¢è¡Œ 大å°é€‚应文字 å‰ä¸€é“¾æŽ¥ åŽä¸€é“¾æŽ¥">
+ <xsl:if test="$nodename='draw:text-box'">
+ <xsl:attribute name="图:文本框">true</xsl:attribute>
+ <xsl:if test="./@draw:name = /office:document/office:body
+//draw:text-box/@draw:chain-next-name">
+ <xsl:attribute name="图:å‰ä¸€é“¾æŽ¥"><xsl:variable name="drawname"><xsl:value-of select="./@draw:name"/></xsl:variable><xsl:variable name="befor-link-name"><xsl:value-of select="/office:document/office:body
+//draw:text-box[@draw:name=$drawname]/@draw:style-name"/></xsl:variable><xsl:value-of select="concat($befor-link-name,'_',$picnumber)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="./@draw:chain-next-name">
+ <xsl:attribute name="图:åŽä¸€é“¾æŽ¥"><xsl:variable name="next-link"><xsl:value-of select="./@draw:chain-next-name"/></xsl:variable><xsl:variable name="link-name"><xsl:value-of select="/office:document/office:body
+//draw:text-box[@draw:name=$next-link]/@draw:style-name"/></xsl:variable><xsl:value-of select="concat($link-name,'_',$picnumber)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:for-each select="(/office:document/office:styles/descendant::*[@style:name=$pic-name]) | (/office:document/office:automatic-styles/descendant::*[@style:name=$pic-name]) ">
+ <xsl:if test="style:graphic-properties/@fo:padding-left">
+ <xsl:attribute name="图:左边è·"><xsl:value-of select="substring-before(style:graphic-properties/@fo:padding-left,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="图:å³è¾¹è·"><xsl:value-of select="substring-before(style:graphic-properties/@fo:padding-right,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="图:上边è·"><xsl:value-of select="substring-before(style:graphic-properties/@fo:padding-top,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="图:下边è·"><xsl:value-of select="substring-before(style:graphic-properties/@fo:padding-bottom,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="图:文字排列方å‘">
+ <xsl:choose>
+ <xsl:when test="style:paragraph-properties/@style:writing-mode">
+ <xsl:choose>
+ <xsl:when test="style:paragraph-properties/@style:writing-mode='tb-rl' and style:graphic-properties/@draw:textarea-vertical-align='bottom'">vert-l2r</xsl:when>
+ <xsl:when test="style:paragraph-properties/@style:writing-mode='tb-rl'">vert-r2l</xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:textarea-horizontal-align='right'">hori-r2l</xsl:when>
+ <xsl:otherwise>hori-l2r</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:if test="style:graphic-properties/@fo:wrap-option">
+ <xsl:attribute name="图:自动æ¢è¡Œ">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:auto-grow-width='true'">
+ <xsl:attribute name="图:大å°é€‚应文字">true</xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="./draw:text-box">
+ <xsl:for-each select="draw:text-box/node( )">
+ <xsl:choose>
+ <xsl:when test="name()='text:list'">
+ <xsl:call-template name="unordered-ordered-list">
+ <xsl:with-param name="currlistlvl" select="number('1')"/>
+ <xsl:with-param name="liststylename" select="@text:style-name"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name()='text:p'or name()='text:h'">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="./text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:if>
+ </图:文本内容>
+ </xsl:if>
+ <图:控制点 uof:locID="g0003" uof:attrList="xåæ ‡ yåæ ‡">
+ <xsl:attribute name="图:xåæ ‡"><xsl:value-of select="substring-before(@svg:x,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="图:yåæ ‡"><xsl:value-of select="substring-before(@svg:y,$uofUnit)"/></xsl:attribute>
+ </图:控制点>
+ <图:翻转 uof:locID="g0040" uof:attrList="æ–¹å‘" 图:æ–¹å‘="x"/>
+ </图:图形>
+ <xsl:if test="name(..)='draw:g'">
+ <图:组åˆä½ç½® uof:locID="g0041" uof:attrList="xåæ ‡ yåæ ‡">
+ <xsl:attribute name="图:xåæ ‡"><xsl:variable name="minx"><xsl:for-each select="parent::node()"><xsl:call-template name="groupminx"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:x][1]/@svg:x,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:for-each></xsl:variable><xsl:choose><xsl:when test="name(.)='draw:g'"><xsl:variable name="current-minx"><xsl:call-template name="groupminx"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:x][1]/@svg:x,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:value-of select="$current-minx - $minx"/></xsl:when><xsl:otherwise><xsl:variable name="current-x" select="number(substring-before(@svg:x,$uofUnit))"/><xsl:value-of select="$current-x - $minx"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:yåæ ‡"><xsl:variable name="miny"><xsl:for-each select="parent::node()"><xsl:call-template name="groupminy"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:y][1]/@svg:y,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:for-each></xsl:variable><xsl:choose><xsl:when test="name(.)='draw:g'"><xsl:variable name="current-miny"><xsl:call-template name="groupminy"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:y][1]/@svg:y,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:value-of select="$current-miny - $miny"/></xsl:when><xsl:otherwise><xsl:variable name="current-y" select="number(substring-before(@svg:y,$uofUnit))"/><xsl:value-of select="$current-y - $miny"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </图:组åˆä½ç½®>
+ </xsl:if>
+ <xsl:if test="name()='draw:frame' and ./draw:image">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:choose><xsl:when test="@draw:id"><xsl:value-of select="@draw:id"/></xsl:when><xsl:otherwise><xsl:value-of select="concat($pic-name,'_',$picnumber)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <xsl:attribute name="uof:公共类型">jpg</xsl:attribute>
+ <xsl:if test="./draw:image/office:binary-data">
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="./draw:image/office:binary-data"/>
+ </uof:æ•°æ®>
+ </xsl:if>
+ <xsl:if test="./draw:image/@xlink:href">
+ <uof:路径 uof:locID="u0038">
+ <xsl:value-of select="./draw:image/@xlink:href"/>
+ </uof:路径>
+ </xsl:if>
+ </uof:其他对象>
+ </xsl:if>
+ <xsl:for-each select="(/office:document/office:styles/descendant::*[@style:name=$pic-name]) | (/office:document/office:automatic-styles/descendant::*[@style:name=$pic-name]) ">
+ <xsl:if test="style:graphic-properties/@draw:fill-image-name and @draw:fill='bitmap'">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:choose><xsl:when test="@draw:id"><xsl:value-of select="@draw:id"/></xsl:when><xsl:otherwise><xsl:value-of select="concat($pic-name,'_',$picnumber)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:公共类型">jpg</xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <xsl:variable name="fill-name">
+ <xsl:value-of select="style:graphic-properties/@draw:fill-image-name"/>
+ </xsl:variable>
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:for-each select="/office:document/office:styles/draw:fill-image[@draw:name=$fill-name]">
+ <xsl:value-of select="office:binary-data"/>
+ </xsl:for-each>
+ </uof:æ•°æ®>
+ <uof:路径 uof:locID="u0038">
+ <xsl:value-of select="@xlink:href"/>
+ </uof:路径>
+ </uof:其他对象>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="unordered-ordered-list">
+ <xsl:param name="currlistlvl"/>
+ <xsl:param name="liststylename"/>
+ <xsl:for-each select="text:list-item">
+ <xsl:if test="text:p">
+ <xsl:for-each select="text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="$currlistlvl"/>
+ <xsl:with-param name="liststylename" select="$liststylename"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:for-each select="node( )">
+ <xsl:if test="name()='text:list'">
+ <xsl:call-template name="unordered-ordered-list">
+ <xsl:with-param name="currlistlvl" select="$currlistlvl +1"/>
+ <xsl:with-param name="liststylename" select="$liststylename"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="groupminx">
+ <xsl:param name="value"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="descendant::node()[@svg:x][position()=$pos]">
+ <xsl:variable name="othervalue" select="number(substring-before(descendant::node()[@svg:x][position()=$pos]/@svg:x,$uofUnit))"/>
+ <xsl:call-template name="groupminx">
+ <xsl:with-param name="value">
+ <xsl:choose>
+ <xsl:when test="$value&gt;$othervalue">
+ <xsl:value-of select="$othervalue"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="groupminy">
+ <xsl:param name="value"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="descendant::node()[@svg:y][position()=$pos]">
+ <xsl:variable name="othervalue" select="number(substring-before(descendant::node()[@svg:y][position()=$pos]/@svg:y,$uofUnit))"/>
+ <xsl:call-template name="groupminy">
+ <xsl:with-param name="value">
+ <xsl:choose>
+ <xsl:when test="$value&gt;$othervalue">
+ <xsl:value-of select="$othervalue"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="groupmaxx">
+ <xsl:param name="value"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="descendant::node()[@svg:x][position()=$pos]">
+ <xsl:variable name="svgx">
+ <xsl:value-of select="number(substring-before(descendant::node()[@svg:x][position()=$pos]/@svg:x,$uofUnit))"/>
+ </xsl:variable>
+ <xsl:variable name="width">
+ <xsl:value-of select="number(substring-before(descendant::node()[@svg:x][position()=$pos]/@svg:width,$uofUnit))"/>
+ </xsl:variable>
+ <xsl:variable name="othervalue" select="$svgx + $width"/>
+ <xsl:call-template name="groupminx">
+ <xsl:with-param name="value">
+ <xsl:choose>
+ <xsl:when test="$value&gt;$othervalue">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$othervalue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="groupmaxy">
+ <xsl:param name="value"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="descendant::node()[@svg:y][position()=$pos]">
+ <xsl:variable name="svgy">
+ <xsl:value-of select="number(substring-before(descendant::node()[@svg:y][position()=$pos]/@svg:y,$uofUnit))"/>
+ </xsl:variable>
+ <xsl:variable name="height">
+ <xsl:value-of select="number(substring-before(descendant::node()[@svg:y][position()=$pos]/@svg:height,$uofUnit))"/>
+ </xsl:variable>
+ <xsl:variable name="othervalue" select="$svgy + $height"/>
+ <xsl:call-template name="groupminy">
+ <xsl:with-param name="value">
+ <xsl:choose>
+ <xsl:when test="$value&gt;$othervalue">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$othervalue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="draw:points">
+ <xsl:param name="point"/>
+ <xsl:param name="lujing"/>
+ <xsl:choose>
+ <xsl:when test="contains($point,' ' )">
+ <xsl:variable name="first-point" select="substring-before($point,' ')"/>
+ <xsl:variable name="other-point" select="substring-after($point,' ')"/>
+ <xsl:variable name="xzuobiao">
+ <xsl:value-of select="substring-before($first-point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:variable name="yzuobiao">
+ <xsl:value-of select="substring-after($first-point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:call-template name="draw:points">
+ <xsl:with-param name="point" select="$other-point"/>
+ <xsl:with-param name="lujing" select="concat($lujing,$xzuobiao,' ',$yzuobiao,'lineto')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="xzuobiao">
+ <xsl:value-of select="substring-before($point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:variable name="yzuobiao">
+ <xsl:value-of select="substring-after($point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:value-of select="concat($lujing,$xzuobiao,' ',$yzuobiao)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="execParagraph">
+ <xsl:param name="currlistlvl"/>
+ <xsl:param name="liststylename"/>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <xsl:if test="@text:id">
+ <xsl:attribute name="字:动画标识"><xsl:value-of select="@text:id"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="å­—:段è½å±žæ€§">
+ <xsl:attribute name="uof:locID">t0052</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:choose><xsl:when test="@text:id"><xsl:value-of select="@text:id"/></xsl:when><xsl:otherwise><xsl:value-of select="@text:style-name"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="not(number($currlistlvl) =number('0'))">
+ <xsl:variable name="parent-position">
+ <xsl:number from="/office:document/office:body/text:ordered-list" level="any" count="text:list-item/text:p" format="1"/>
+ </xsl:variable>
+ <xsl:element name="å­—:自动编å·ä¿¡æ¯">
+ <xsl:attribute name="uof:locID">t0059</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ç¼–å·å¼•ç”¨ ç¼–å·çº§åˆ« é‡æ–°ç¼–å· èµ·å§‹ç¼–å·</xsl:attribute>
+ <xsl:attribute name="å­—:ç¼–å·å¼•ç”¨"><xsl:value-of select="$liststylename"/></xsl:attribute>
+ <xsl:attribute name="å­—:ç¼–å·çº§åˆ«"><xsl:value-of select="$currlistlvl"/></xsl:attribute>
+ <xsl:attribute name="å­—:é‡æ–°ç¼–å·"><xsl:choose><xsl:when test="number($parent-position)=number('1')">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="å­—:起始编å·"><xsl:for-each select="//text:list-style[$liststylename=@style:name]/*[number($currlistlvl)=number(@text:level)]"><xsl:choose><xsl:when test="@text:start-value"><xsl:value-of select="@text:start-value"/></xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose></xsl:for-each></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:variable name="stylename">
+ <xsl:value-of select="@text:style-name"/>
+ </xsl:variable>
+ <xsl:for-each select="(//style:style[@style:name=$stylename])">
+ <xsl:call-template name="ParaAttribute">
+ <xsl:with-param name="text-style-name" select="@text:style-name"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:for-each select="node( )">
+ <xsl:choose>
+ <xsl:when test="self::node( )[name(.)='text:span']">
+ <xsl:call-template name="textspan"/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:time']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:s']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="substring-before(name(.),':')='draw' and not(name(.)='draw:a')">
+ </xsl:when>
+ <xsl:when test="name(.)='text:a'">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <å­—:字体 uof:locID="t0088" uof:attrList="西文字体引用 中文字体引用 å­—å· é¢œè‰²" å­—:颜色="#0000ff"/>
+ <字:下划线 uof:locID="t0095" 字:类型="single" 字:颜色="#0000ff" uof:attrList="类型 颜色 字下划线"/>
+ </xsl:element>
+ <xsl:element name="字:区域开始">
+ <xsl:attribute name="字:标识符">hlnk<xsl:number from="/office:document/office:body" level="any" count="text:p[text:a]"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称">Hyperlink</xsl:attribute>
+ <xsl:attribute name="字:类型">hyperlink</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0121</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型</xsl:attribute>
+ </xsl:element>
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="."/>
+ </字:文本串>
+ <xsl:element name="å­—:区域结æŸ">
+ <xsl:attribute name="字:标识符引用">hlnk<xsl:number from="/office:document/office:body" level="any" count="text:p[text:a]"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0122</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符引用</xsl:attribute>
+ </xsl:element>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="å­—:å¥"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </å­—:段è½>
+ </xsl:template>
+ <xsl:template name="å­—:å¥">
+ <xsl:if test="not(name(.)='text:bookmark-start' or name(.)='text:bookmark-end' or name(.)='draw:image' or name(.)='office:binary-data')">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:choose>
+ <xsl:when test="@text:style-name">
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="parent::node( )/@text:style-name"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:å¥å±žæ€§>
+ <xsl:choose>
+ <xsl:when test="(preceding-sibling::text:bookmark-start) and (following-sibling::text:bookmark-end)">
+ <å­—:区域开始 uof:locID="t0121" uof:attrList="标识符 å称 类型">
+ <xsl:attribute name="字:标识符"><xsl:value-of select="preceding-sibling::text:bookmark-start/@text:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称">Bookmark</xsl:attribute>
+ <xsl:attribute name="字:类型">bookmark</xsl:attribute>
+ </字:区域开始>
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="string(.)"/>
+ </字:文本串>
+ <å­—:åŒºåŸŸç»“æŸ uof:locID="t0122" uof:attrList="标识符引用">
+ <xsl:attribute name="字:标识符引用"><xsl:value-of select="following-sibling::text:bookmark-end/@text:name"/></xsl:attribute>
+ </å­—:区域结æŸ>
+ </xsl:when>
+ <xsl:when test="preceding-sibling::text:bookmark">
+ <å­—:区域开始 uof:locID="t0121" uof:attrList="标识符 å称 类型">
+ <xsl:attribute name="字:标识符"><xsl:value-of select="preceding-sibling::text:bookmark/@text:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称">Bookmark</xsl:attribute>
+ <xsl:attribute name="字:类型">bookmark</xsl:attribute>
+ </字:区域开始>
+ <å­—:åŒºåŸŸç»“æŸ uof:locID="t0122" uof:attrList="标识符引用">
+ <xsl:attribute name="字:标识符引用"><xsl:value-of select="preceding-sibling::text:bookmark/@text:name"/></xsl:attribute>
+ </å­—:区域结æŸ>
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="string(.)"/>
+ </字:文本串>
+ </xsl:when>
+ <xsl:when test="name(.)='draw:a'">
+ <xsl:variable name="link-name">
+ <xsl:value-of select="substring-after(@xlink:href,'#')"/>
+ </xsl:variable>
+ <å­—:区域开始 uof:locID="t0121" uof:attrList="标识符 å称 类型">
+ <xsl:attribute name="字:标识符"><xsl:value-of select="$link-name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称">Bookmark</xsl:attribute>
+ <xsl:attribute name="字:类型">bookmark</xsl:attribute>
+ </字:区域开始>
+ <å­—:åŒºåŸŸç»“æŸ uof:locID="t0122" uof:attrList="标识符引用">
+ <xsl:attribute name="字:标识符引用"><xsl:value-of select="$link-name"/></xsl:attribute>
+ </å­—:区域结æŸ>
+ </xsl:when>
+ <xsl:when test="self::node( )[name(.)='text:tab-stop']">
+ <xsl:element name="字:制表符">
+ <xsl:attribute name="uof:locID">t0123</xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="name(.)='text:bookmark-start' or name(.)='text:bookmark-end' or name(.)='draw:image' or name(.)='office:binary-data'">
+ </xsl:when>
+ <xsl:otherwise>
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="string(.)"/>
+ </字:文本串>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:å¥>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="jiaozhu">
+ <字:脚注 uof:locID="t0107" uof:attrList="引文体">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </字:脚注>
+ </xsl:template>
+ <xsl:template match="text:s">
+ <xsl:param name="bText"/>
+ <xsl:choose>
+ <xsl:when test="$bText='0'">
+ <xsl:variable name="count">
+ <xsl:choose>
+ <xsl:when test="not(@text:c)">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@text:c+1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <å­—:å¥ uof:locID="t0085">
+ <字:空格符 uof:locID="t0126" uof:attrList="个数" 字:个数="{$count}"/>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:otherwise>
+ <字:空格符 uof:locID="t0126" uof:attrList="个数" 字:个数="{@text:c}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="weizhu">
+ <字:尾注 uof:locID="t0108" uof:attrList="引文体">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </字:尾注>
+ </xsl:template>
+ <xsl:template match="text:time">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'TIME'"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <å­—:æ®µè½ uof:locID="t0051">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="timefmt">
+ <xsl:variable name="aa" select="@style:data-style-name"/>
+ <xsl:for-each select="key('geshi',$aa)/number:hours | key('geshi',$aa)/number:minutes | key('geshi',$aa)/number:am-pm | key('geshi',$aa)/number:seconds | key('geshi',$aa)/number:text">
+ <xsl:choose>
+ <xsl:when test="@number:style='long' ">
+ <xsl:if test="self::node( )[name(.)='number:hours']">HH</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:minutes']">MM</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:seconds']">SS</xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="self::node( )[name(.)='number:text']">
+ <xsl:value-of select="."/>
+ </xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:hours']">H</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:minutes']">M</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:seconds']">S</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:am-pm']">AMPM</xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="quote">"</xsl:variable>
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="concat('TIME \@ ',$quote,$timefmt,$quote,' \* MERGEFORMAT ')"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="."/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="ParaAttribute">
+ <xsl:param name="text-style-name"/>
+ <xsl:for-each select="/office:document/office:styles/style:style">
+ <xsl:if test="@style:name=$text-style-name and not($text-style-name='Standard')">
+ <xsl:element name="å­—:æ ¼å¼ä¿®è®¢">
+ <xsl:attribute name="uof:locID">t0053</xsl:attribute>
+ <xsl:attribute name="uof:attrList">修订信æ¯å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:修订信æ¯å¼•ç”¨"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:element name="å­—:段è½å±žæ€§">
+ <xsl:attribute name="uof:locID">t0052</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:name"/></xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="@style:name='Heading'">
+ <xsl:element name="字:大纲级别">
+ <xsl:attribute name="uof:locID">t0054</xsl:attribute>
+ <xsl:value-of select="substring-after(@style:name,'Heading')"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:text-align or .//@style:vertical-align">
+ <xsl:element name="å­—:对é½">
+ <xsl:attribute name="uof:locID">t0055</xsl:attribute>
+ <xsl:attribute name="uof:attrList">æ°´å¹³å¯¹é½ æ–‡å­—å¯¹é½</xsl:attribute>
+ <xsl:attribute name="å­—:水平对é½"><xsl:choose><xsl:when test=".//@fo:text-align='end'">right</xsl:when><xsl:when test=".//@fo:text-align='center'">center</xsl:when><xsl:when test=".//@fo:text-align='justify' and not(.//@fo:text-align-last='justify')">justified</xsl:when><xsl:when test=".//@fo:text-align='justify' and .//@fo:text-align-last='justify'">distributed</xsl:when><xsl:otherwise>left</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="å­—:文字对é½"><xsl:choose><xsl:when test=".//@style:vertical-align='baseline'">base</xsl:when><xsl:when test=".//@style:vertical-align='top'">top</xsl:when><xsl:when test=".//@style:vertical-align='middle'">center</xsl:when><xsl:when test=".//@style:vertical-align='bottom'">bottom</xsl:when><xsl:otherwise>auto</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:margin-left or .//@fo:margin-right or .//@fo:text-indent">
+ <xsl:element name="字:缩进">
+ <xsl:attribute name="uof:locID">t0056</xsl:attribute>
+ <xsl:call-template name="字:缩进类型"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:è¡Œè·">
+ <xsl:attribute name="uof:locID">t0057</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 值</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="contains(.//@fo:line-height,$uofUnit)">
+ <xsl:attribute name="字:类型">fixed</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(.//@fo:line-height,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(.//@fo:line-height,'%')">
+ <xsl:attribute name="字:类型">multi-lines</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(.//@fo:line-height,'%') div 100"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test=".//@style:line-height-at-least">
+ <xsl:attribute name="字:类型">at-least</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(.//@style:line-height-at-least,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test=".//@style:line-spacing">
+ <xsl:attribute name="字:类型">line-space</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(.//@style:line-spacing,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="字:类型">multi-lines</xsl:attribute>
+ <xsl:attribute name="字:值">1.0</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test=".//@fo:orphans">
+ <xsl:element name="字:孤行控制">
+ <xsl:attribute name="uof:locID">t0060</xsl:attribute>
+ <xsl:value-of select=".//@fo:orphans"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:widows">
+ <xsl:element name="字:寡行控制">
+ <xsl:attribute name="uof:locID">t0061</xsl:attribute>
+ <xsl:value-of select=".//@fo:widows"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:break-inside">
+ <xsl:element name="å­—:段中ä¸åˆ†é¡µ">
+ <xsl:attribute name="uof:locID">t0062</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:keep-with-next">
+ <xsl:element name="å­—:与下段åŒé¡µ">
+ <xsl:attribute name="uof:locID">t0063</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:break-before">
+ <xsl:element name="å­—:段å‰åˆ†é¡µ">
+ <xsl:attribute name="uof:locID">t0064</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:snap-to-layout-grid">
+ <xsl:element name="å­—:对é½ç½‘æ ¼">
+ <xsl:attribute name="uof:locID">t0069</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test=".//@style:snap-to-layout-grid='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//style:drop-cap">
+ <xsl:element name="字:首字下沉">
+ <xsl:attribute name="uof:locID">t0070</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 字体引用 字符数 行数 é—´è·</xsl:attribute>
+ <xsl:attribute name="字:类型">dropped</xsl:attribute>
+ <xsl:if test=".//style:drop-cap/@style:style-name">
+ <xsl:attribute name="字:字体引用"><xsl:value-of select=".//style:drop-cap/@style:style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test=".//style:drop-cap/@style:distance">
+ <xsl:attribute name="å­—:é—´è·"><xsl:value-of select="substring-before(.//style:drop-cap/@style:distance,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test=".//style:drop-cap/@style:length">
+ <xsl:attribute name="字:字符数"><xsl:value-of select=".//style:drop-cap/@style:length"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test=".//style:drop-cap/@style:lines">
+ <xsl:attribute name="字:行数"><xsl:value-of select=".//style:drop-cap/@style:lines"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:hyphenate">
+ <xsl:element name="å­—:å–消断字">
+ <xsl:attribute name="uof:locID">t0071</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select=".//@fo:hyphenate"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@text:number-lines">
+ <xsl:element name="å­—:å–消行å·">
+ <xsl:attribute name="字:值"><xsl:value-of select=".//@text:number-lines"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0072</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:å…许å•è¯æ–­å­—">
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0073</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ <xsl:if test=".//@style:punctuation-wrap">
+ <xsl:element name="字:行首尾标点控制">
+ <xsl:attribute name="uof:locID">t0074</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test=".//@style:punctuation-wrap='hanging'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:是å¦è¡Œé¦–标点压缩">
+ <xsl:attribute name="uof:locID">t0075</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">false</xsl:attribute>
+ </xsl:element>
+ <xsl:if test=".//@style:line-break ">
+ <xsl:element name="字:中文习惯首尾字符">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test=".//@style:line-break='strict'">true</xsl:when><xsl:when test=".//@style:line-break='normal'">false</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0076</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:text-autospace">
+ <xsl:element name="å­—:自动调整中英文字符间è·">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test=".//@style:text-autospace='ideograph-alpha'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0077</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@style:text-autospace">
+ <xsl:element name="å­—:自动调整中文与数字间è·">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test=".//@style:text-autospace='ideograph-alpha'">true </xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0078</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:有网格自动调整å³ç¼©è¿›">
+ <xsl:attribute name="字:值">false</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0195</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ <xsl:if test=".//@fo:border or .//@fo:border-top or .//@fo:border-bottom or .//@fo:border-left or .//@fo:border-right or .//@style:shadow[.!='none']">
+ <xsl:element name="字:边框">
+ <xsl:attribute name="uof:locID">t0065</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:background-color">
+ <xsl:element name="å­—:å¡«å……">
+ <xsl:attribute name="uof:locID">t0066</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test=".//@fo:margin-top or .//@fo:margin-bottom">
+ <å­—:æ®µé—´è· uof:locID="t0058">
+ <xsl:if test=".//@fo:margin-top">
+ <å­—:段å‰è· uof:locID="t0196">
+ <å­—:ç»å¯¹å€¼ uof:locID="t0199" uof:attrList="值">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(.//@fo:margin-top,$uofUnit)"/></xsl:attribute>
+ </å­—:ç»å¯¹å€¼>
+ </å­—:段å‰è·>
+ </xsl:if>
+ <xsl:if test=".//@fo:margin-bottom">
+ <å­—:段åŽè· uof:locID="t0196">
+ <å­—:ç»å¯¹å€¼ uof:locID="t0202" uof:attrList="值">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(.//@fo:margin-bottom,$uofUnit)"/></xsl:attribute>
+ </å­—:ç»å¯¹å€¼>
+ </å­—:段åŽè·>
+ </xsl:if>
+ </å­—:段间è·>
+ </xsl:if>
+ <xsl:if test=".//style:tab-stops">
+ <xsl:element name="å­—:制表ä½è®¾ç½®">
+ <xsl:attribute name="uof:locID">t0067</xsl:attribute>
+ <xsl:for-each select=".//style:tab-stops/style:tab-stop">
+ <xsl:element name="å­—:制表ä½">
+ <xsl:attribute name="uof:locID">t0068</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ä½ç½® 类型 å‰å¯¼ç¬¦</xsl:attribute>
+ <xsl:attribute name="å­—:ä½ç½®"><xsl:value-of select="@style:position"/></xsl:attribute>
+ <xsl:variable name="aa">
+ <xsl:value-of select="@style:type"/>
+ </xsl:variable>
+ <xsl:variable name="zbflx">
+ <xsl:choose>
+ <xsl:when test="$aa='right'">right</xsl:when>
+ <xsl:when test="$aa='center'">center</xsl:when>
+ <xsl:when test="$aa='char'and @style:char!=''">decimal</xsl:when>
+ <xsl:otherwise>left</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="字:类型"><xsl:value-of select="$zbflx"/></xsl:attribute>
+ <xsl:if test="$zbflx='decimal'">
+ <xsl:attribute name="å­—:制表ä½å­—符"><xsl:value-of select="@style:char"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@style:leader-char">
+ <xsl:attribute name="å­—:å‰å¯¼ç¬¦"><xsl:value-of select="@style:leader-char"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="textspan">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:choose>
+ <xsl:when test="./text:footnote">
+ <xsl:call-template name="jiaozhu"/>
+ </xsl:when>
+ <xsl:when test="./text:endnote">
+ <xsl:call-template name="weizhu"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:variable name="textstyle">
+ <xsl:value-of select="@text:style-name"/>
+ </xsl:variable>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ <xsl:for-each select="/office:document/office:automatic-styles//style:style[@style:family='text']">
+ <xsl:if test="@style:name=$textstyle and not(@style:parent-style-name='Standard')">
+ <xsl:if test="@style:parent-style-name=/office:document/office:styles/style:style/@style:name">
+ <xsl:call-template name="SentenceXD">
+ <xsl:with-param name="Sentencestyle" select="@style:parent-style-name"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="/office:document/office:styles//style:style[@style:family='text']">
+ <xsl:if test="@style:name=$textstyle">
+ <xsl:call-template name="SentenceXD">
+ <xsl:with-param name="Sentencestyle" select="@style:name"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="string(.)"/>
+ </字:文本串>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:å¥>
+ </xsl:template>
+ <xsl:template name="SentenceXD">
+ <xsl:param name="Sentencestyle"/>
+ <xsl:element name="å­—:æ ¼å¼ä¿®è®¢">
+ <xsl:attribute name="uof:locID">t0087</xsl:attribute>
+ <xsl:attribute name="uof:attrList">修订信æ¯å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:修订信æ¯å¼•ç”¨"><xsl:value-of select="$Sentencestyle"/></xsl:attribute>
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="$Sentencestyle"/></xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="add-space">
+ <xsl:param name="number"/>
+ <xsl:if test="$number &gt; 1">
+ <xsl:call-template name="add-space">
+ <xsl:with-param name="number" select="$number - 1"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="office:styles | office:automatic-styles" mode="style">
+ <xsl:for-each select="style:style[@style:family= 'paragraph' or @style:family= 'text']">
+ <xsl:choose>
+ <xsl:when test="@style:family = 'text'">
+ <xsl:call-template name="å¥å¼æ ·"/>
+ </xsl:when>
+ <xsl:when test="@style:family = 'paragraph'">
+ <xsl:call-template name="段è½å¼æ ·"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="段è½å¼æ ·">
+ <xsl:element name="uof:段è½å¼æ ·">
+ <xsl:attribute name="uof:locID">u0044</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:variable name="count"><xsl:value-of select="count(preceding::style:style)"/></xsl:variable>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="concat(@style:name,$count)"/></xsl:attribute>
+ <xsl:attribute name="字:类型">default</xsl:attribute>
+ <xsl:attribute name="å­—:基å¼æ ·å¼•ç”¨"><xsl:variable name="stylename" select="@style:name"/><xsl:variable name="frame-parent"><xsl:choose><xsl:when test="/office:document/office:master-styles/style:master-page/draw:frame[draw:text-box//text:p/@text:style-name = $stylename]"><xsl:for-each select="/office:document/office:master-styles/style:master-page/draw:frame[draw:text-box//text:p/@text:style-name = $stylename][1]"><xsl:variable name="frame-style" select="@presentation:style-name"/><xsl:value-of select="/office:document/*/style:style[@style:name=$frame-style]/@style:parent-style-name"/></xsl:for-each></xsl:when><xsl:otherwise>not-master</xsl:otherwise></xsl:choose></xsl:variable><xsl:choose><xsl:when test="@style:parent-style-name"><xsl:value-of select="@style:parent-style-name"/></xsl:when><xsl:when test="not($frame-parent='not-master')"><xsl:value-of select="$frame-parent"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:apply-templates select="style:paragraph-properties"/>
+ <xsl:for-each select="style:text-properties">
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="style:paragraph-properties">
+ <xsl:element name="字:缩进">
+ <xsl:attribute name="uof:locID">t0056</xsl:attribute>
+ <xsl:call-template name="字:缩进类型"/>
+ </xsl:element>
+ <xsl:if test="@fo:text-align | @fotext-align-last">
+ <xsl:element name="å­—:对é½">
+ <xsl:attribute name="uof:locID">t0055</xsl:attribute>
+ <xsl:if test="@fo:text-align">
+ <xsl:attribute name="å­—:水平对é½"><xsl:choose><xsl:when test=".//@fo:text-align='end'">right</xsl:when><xsl:when test=".//@fo:text-align='center'">center</xsl:when><xsl:when test=".//@fo:text-align='justify' and not(.//@fo:text-align-last='justify')">justified</xsl:when><xsl:when test=".//@fo:text-align='justify' and .//@fo:text-align-last='justify'">distributed</xsl:when><xsl:otherwise>left</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@style:vertical-align">
+ <xsl:attribute name="å­—:文字对é½"><xsl:choose><xsl:when test=".//@style:vertical-align='baseline'">base</xsl:when><xsl:when test=".//@style:vertical-align='top'">top</xsl:when><xsl:when test=".//@style:vertical-align='middle'">center</xsl:when><xsl:when test=".//@style:vertical-align='bottom'">bottom</xsl:when><xsl:otherwise>auto</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="uof:attrList">æ°´å¹³å¯¹é½ æ–‡å­—å¯¹é½</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="å¥å¼æ ·">
+ <xsl:element name="uof:å¥å¼æ ·">
+ <xsl:attribute name="uof:locID">u0043</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="字:类型">auto</xsl:attribute>
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="style:text-properties">
+ <xsl:element name="字:字体">
+ <xsl:attribute name="uof:locID">t0088</xsl:attribute>
+ <xsl:attribute name="uof:attrList">西文字体引用 中文字体引用 特殊字体引用 西文绘制 å­—å· ç›¸å¯¹å­—å· é¢œè‰²</xsl:attribute>
+ <xsl:if test=".//@fo:font-size or .//@style:font-size-asian or .//@style:font-size-complex">
+ <xsl:choose>
+ <xsl:when test="contains(.//@fo:font-size,'%') or contains(.//@style:font-size-asian,'%')">
+ <xsl:attribute name="å­—:相对字å·"><xsl:choose><xsl:when test=".//@fo:font-size"><xsl:value-of select="substring-before(.//@fo:font-size,'%')"/></xsl:when><xsl:when test=".//@style:font-size-asian"><xsl:value-of select="substring-before(.//@style:font-size-asian,'%')"/></xsl:when></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:å­—å·"><xsl:choose><xsl:when test=".//@fo:font-size"><xsl:value-of select="substring-before(.//@fo:font-size,'pt')"/></xsl:when><xsl:when test=".//@style:font-size-asian"><xsl:value-of select="substring-before(.//@style:font-size-asian,'pt')"/></xsl:when><xsl:when test=".//@style:font-size-complex"><xsl:value-of select="substring-before(.//@style:font-size-complex,'pt')"/></xsl:when></xsl:choose></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test=".//@style:font-name">
+ <xsl:attribute name="字:西文字体引用"><xsl:value-of select=".//@style:font-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test=".//@style:font-name-asian">
+ <xsl:attribute name="字:中文字体引用"><xsl:value-of select=".//@style:font-name-asian"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test=".//@fo:color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select=".//@fo:color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="(@fo:font-weight='bold') or (@fo:font-weight-asian='bold') or (@style:font-weight-asian='bold') or (@style:font-weight-complex='bold')">
+ <xsl:element name="字:粗体">
+ <xsl:attribute name="字:值">1</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0089</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="(@style:font-style-asian='italic') or (@style:font-style-complex='italic') or (@fo:font-style-asian='italic') or (@fo:font-style='italic')">
+ <xsl:element name="字:斜体">
+ <xsl:attribute name="字:值">1</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0090</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="style:page-layout">
+ <xsl:element name="æ¼”:页é¢è®¾ç½®">
+ <xsl:attribute name="uof:locID">p0002</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称</xsl:attribute>
+ <xsl:attribute name="æ¼”:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="演:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="æ¼”:å称">页é¢è®¾ç½®</xsl:attribute>
+ <xsl:element name="演:纸张">
+ <xsl:attribute name="uof:locID">p0003</xsl:attribute>
+ <xsl:attribute name="uof:attrList">宽度 高度 纸型</xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:page-width,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:高度"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:page-height,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:纸型"><xsl:variable name="height"><xsl:value-of select="style:page-layout-properties/@fo:page-height"/></xsl:variable><xsl:variable name="width"><xsl:value-of select="style:page-layout-properties/@fo:page-width"/></xsl:variable><xsl:choose><xsl:when test="$height='29.7cm' and $width='42cm'">A3</xsl:when><xsl:when test="$height='21cm' and $width='29.7cm'">A4</xsl:when><xsl:when test="$height='14.8cm' and $width='21cm'">A5</xsl:when><xsl:when test="$height='25cm' and $width='35.3cm'">B4</xsl:when><xsl:when test="$height='17.6cm' and $width='25cm'">B5</xsl:when><xsl:when test="$height='12.5cm' and $width='17.6cm'">B6</xsl:when><xsl:otherwise>使用者</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="æ¼”:页边è·">
+ <xsl:attribute name="uof:locID">p0004</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å·¦ 上 å³ ä¸‹</xsl:attribute>
+ <xsl:attribute name="uof:å·¦"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:margin-left,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:上"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:margin-top,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:å³"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:margin-right,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:下"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:margin-bottom,$uofUnit)"/></xsl:attribute>
+ </xsl:element>
+ <xsl:variable name="PageNumberFormat">
+ <xsl:value-of select="/office:document/office:settings/config:config-item-set/config:config-item[@config:name='PageNumberFormat']"/>
+ </xsl:variable>
+ <xsl:if test="not($PageNumberFormat='5')">
+ <xsl:element name="æ¼”:页ç æ ¼å¼">
+ <xsl:attribute name="uof:locID">p0005</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$PageNumberFormat='0'">upper-letter</xsl:when>
+ <xsl:when test="$PageNumberFormat='1'">lower-letter</xsl:when>
+ <xsl:when test="$PageNumberFormat='2'">upper-roman</xsl:when>
+ <xsl:when test="$PageNumberFormat='3'">lower-letter</xsl:when>
+ <xsl:when test="$PageNumberFormat='4'">decimal</xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="æ¼”:纸张方å‘">
+ <xsl:attribute name="uof:locID">p0006</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="style:page-layout-properties/@style:print-orientation">
+ <xsl:value-of select="style:page-layout-properties/@style:print-orientation"/>
+ </xsl:when>
+ <xsl:otherwise>portrait</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="obtain_anim_type">
+ <xsl:param name="flytype"/>
+ <xsl:variable name="flytypestr" select="substring-after($flytype,'from-')"/>
+ <xsl:choose>
+ <xsl:when test="contains($flytypestr,'-')">
+ <xsl:value-of select="concat(substring-before($flytypestr,'-'),substring-after($flytypestr,'-'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$flytypestr"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="cm2pt">
+ <xsl:param name="cmval"/>
+ <xsl:value-of select="substring-before($cmval,$uofUnit)* $cm-to-other "/>
+ </xsl:template>
+ <xsl:template match="office:font-face-decls">
+ <uof:字体集 uof:locID="u0040">
+ <uof:默认字体 uof:ascii="Times New Roman" uof:fareast="宋体" uof:h-ansi="宋体" uof:cs="宋体"/>
+ <xsl:for-each select="style:font-face">
+ <xsl:element name="uof:字体声明">
+ <xsl:attribute name="uof:attrList">标识符 å称 字体æ—</xsl:attribute>
+ <xsl:attribute name="uof:locID">u0041</xsl:attribute>
+ <xsl:attribute name="uof:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="uof:字体æ—"><xsl:value-of select="@svg:font-family"/></xsl:attribute>
+ <xsl:if test="@style:font-charset= '02'">
+ <xsl:attribute name="uof:字符集">x-symbol</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@style:font-family-generic">
+ <xsl:choose>
+ <xsl:when test="@style:font-family-generic = 'swiss'">
+ <xsl:attribute name="uof:字体æ—">Swiss</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='modern'">
+ <xsl:attribute name="uof:字符集">Modern</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic='roman'">
+ <xsl:attribute name="uof:字符集">Roman</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='script'">
+ <xsl:attribute name="uof:字符集">Script</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='decorative'">
+ <xsl:attribute name="uof:字符集">Decorative</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='system'">
+ <xsl:attribute name="uof:字符集">System</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="uof:字符集">System</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:apply-templates select="style:font-decl"/>
+ </uof:字体集>
+ </xsl:template>
+ <xsl:template match="office:meta">
+ <uof:å…ƒæ•°æ® uof:locID="u0001">
+ <uof:标题 uof:locID="u0002">
+ <xsl:value-of select="dc:title"/>
+ </uof:标题>
+ <uof:åˆ›å»ºåº”ç”¨ç¨‹åº uof:locID="u0011">
+ <xsl:value-of select="meta:generator"/>
+ </uof:创建应用程åº>
+ <uof:æ‘˜è¦ uof:locID="u0007">
+ <xsl:value-of select="dc:description"/>
+ </uof:摘è¦>
+ <uof:主题 uof:locID="u0003">
+ <xsl:value-of select="dc:subject"/>
+ </uof:主题>
+ <uof:创建者 uof:locID="u0004"/>
+ <uof:作者 uof:locID="u0005">
+ <xsl:value-of select="meta:initial-creator"/>
+ </uof:作者>
+ <uof:创建日期 uof:locID="u0008">
+ <xsl:value-of select="meta:creation-date"/>
+ </uof:创建日期>
+ <uof:最åŽä½œè€… uof:locID="u0006">
+ <xsl:value-of select="dc:creator"/>
+ </uof:最åŽä½œè€…>
+ <uof:关键字集 uof:locID="u0014">
+ <xsl:for-each select=".">
+ <uof:关键字 uof:locID="u0015">
+ <xsl:value-of select="meta:keywords/@meta:keyword"/>
+ </uof:关键字>
+ </xsl:for-each>
+ </uof:关键字集>
+ <uof:编辑次数 uof:locID="u0009">
+ <xsl:value-of select="meta:editing-cycles"/>
+ </uof:编辑次数>
+ <xsl:if test="meta:editing-duration">
+ <uof:编辑时间 uof:locID="u0010">
+ <xsl:value-of select="meta:editing-duration"/>
+ </uof:编辑时间>
+ </xsl:if>
+ <xsl:if test="meta:template/@xlink:href">
+ <uof:æ–‡æ¡£æ¨¡æ¿ uof:locID="u0013">
+ <xsl:value-of select="meta:template/@xlink:href"/>
+ </uof:文档模æ¿>
+ </xsl:if>
+ <xsl:if test="meta:user-defined/@meta:name">
+ <uof:用户自定义元数æ®é›† uof:locID="u0016">
+ <xsl:for-each select="meta:user-defined">
+ <uof:ç”¨æˆ·è‡ªå®šä¹‰å…ƒæ•°æ® uof:locID="u0017" uof:attrList="å称 类型">
+ <xsl:attribute name="uof:å称"><xsl:value-of select="@meta:name"/></xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:value-of select="'string'"/></xsl:attribute>
+ </uof:用户自定义元数æ®>
+ </xsl:for-each>
+ </uof:用户自定义元数æ®é›†>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:page-count">
+ <uof:页数 uof:locID="u0020">
+ <xsl:value-of select="meta:document-statistic/@meta:page-count"/>
+ </uof:页数>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:paragraph-count">
+ <uof:段è½æ•° uof:locID="u0025">
+ <xsl:value-of select="meta:document-statistic/@meta:paragraph-count"/>
+ </uof:段è½æ•°>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:object-count">
+ <uof:对象数 uof:locID="u0026">
+ <xsl:value-of select="meta:document-statistic/@meta:object-count"/>
+ </uof:对象数>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:character-count">
+ <uof:å­—æ•° uof:locID="u0021">
+ <xsl:value-of select="meta:document-statistic/@meta:character-count"/>
+ </uof:å­—æ•°>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:word-count">
+ <uof:中文字符数 uof:locID="u0023">
+ <xsl:value-of select="meta:document-statistic/@meta:word-count"/>
+ </uof:中文字符数>
+ </xsl:if>
+ </uof:元数æ®>
+ </xsl:template>
+ <xsl:template name="å¡«å……">
+ <xsl:param name="picname"/>
+ <xsl:param name="nodename"/>
+ <xsl:choose>
+ <xsl:when test="@draw:fill='gradient'">
+ <xsl:variable name="gradient-name">
+ <xsl:value-of select="@draw:fill-gradient-name"/>
+ </xsl:variable>
+ <xsl:for-each select="/descendant::draw:gradient[@draw:name=$gradient-name]">
+ <图:æ¸å˜ uof:locID="g0037" uof:attrList="起始色 终止色 ç§å­ç±»åž‹ 起始浓度 终止浓度 æ¸å˜æ–¹å‘ 边界 ç§å­Xä½ç½® ç§å­Yä½ç½® 类型">
+ <xsl:attribute name="图:起始色"><xsl:value-of select="@draw:start-color"/></xsl:attribute>
+ <xsl:attribute name="图:终止色"><xsl:value-of select="@draw:end-color"/></xsl:attribute>
+ <xsl:attribute name="图:ç§å­ç±»åž‹"><xsl:choose><xsl:when test="@draw:style='linear' or @draw:style='axial'">linear</xsl:when><xsl:when test="@draw:style='radial'">radar</xsl:when><xsl:when test="@draw:style='ellipsoid'">oval</xsl:when><xsl:when test="@draw:style='square'">square</xsl:when><xsl:when test="@draw:style='rectangular'">rectangle</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:起始浓度"><xsl:value-of select="substring-before(@draw:start-intensity,'%')"/></xsl:attribute>
+ <xsl:attribute name="图:终止浓度"><xsl:value-of select="substring-before(@draw:end-intensity,'%')"/></xsl:attribute>
+ <xsl:variable name="angle">
+ <xsl:value-of select="@draw:angle div 10"/>
+ </xsl:variable>
+ <xsl:attribute name="图:æ¸å˜æ–¹å‘"><xsl:choose><xsl:when test="0&lt;$angle and $angle&lt;25">0</xsl:when><xsl:when test="25&lt;$angle and $angle&lt;70">45</xsl:when><xsl:when test="70&lt;$angle and $angle&lt;115">90</xsl:when><xsl:when test="115&lt;$angle and $angle&lt;160">135</xsl:when><xsl:when test="160&lt;$angle and $angle&lt;205">180</xsl:when><xsl:when test="205&lt;$angle and $angle&lt;250">225</xsl:when><xsl:when test="250&lt;$angle and $angle&lt;295">270</xsl:when><xsl:when test="295&lt;$angle and $angle&lt;340">315</xsl:when><xsl:when test="340&lt;$angle and $angle&lt;360">360</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:边界"><xsl:value-of select="substring-before(@draw:border,'%')"/></xsl:attribute>
+ <xsl:if test="@draw:cx">
+ <xsl:attribute name="图:ç§å­Xä½ç½®"><xsl:value-of select="substring-before(@draw:cx,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@draw:cy">
+ <xsl:attribute name="图:ç§å­Yä½ç½®"><xsl:value-of select="substring-before(@draw:cy,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="图:类型">-2</xsl:attribute>
+ </图:æ¸å˜>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="@draw:fill='bitmap'">
+ <图:图片 uof:locID="g0035" uof:attrList="ä½ç½® 图形引用 类型 å称">
+ <xsl:attribute name="图:ä½ç½®"><xsl:choose><xsl:when test="not(@style:repeat)">title</xsl:when><xsl:otherwise><xsl:choose><xsl:when test="@style:repeat = 'stretch'">stretch</xsl:when><xsl:when test="@style:repeat = 'repeat'">title</xsl:when><xsl:when test="@style:repeat = 'no-repeat'">center</xsl:when></xsl:choose></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:图形引用"><xsl:value-of select="@draw:fill-image-name"/></xsl:attribute>
+ <xsl:attribute name="图:类型">png</xsl:attribute>
+ <xsl:attribute name="图:å称"><xsl:value-of select="concat($picname,'_b1')"/></xsl:attribute>
+ </图:图片>
+ </xsl:when>
+ <xsl:when test="@draw:fill='hatch'">
+ <图:图案 uof:locID="g0036" uof:attrList="类型 图形引用 å‰æ™¯è‰² 背景色">
+ <xsl:attribute name="图:类型"><xsl:value-of select="/office:document/office:styles/draw:hatch/@draw:name"/></xsl:attribute>
+ <xsl:attribute name="图:图形引用"/>
+ <xsl:attribute name="图:å‰æ™¯è‰²"><xsl:value-of select="/office:document/office:styles/draw:hatch/@draw:color"/></xsl:attribute>
+ <xsl:attribute name="图:背景色"><xsl:choose><xsl:when test="@draw:fill-color"><xsl:value-of select="@draw:fill-color"/></xsl:when><xsl:otherwise>#ffffff</xsl:otherwise></xsl:choose></xsl:attribute>
+ </图:图案>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$nodename='draw:frame'">
+ <xsl:if test="@draw:fill='solid'">
+ <图:颜色 uof:locID="g0034">
+ <xsl:value-of select="@draw:fill-color"/>
+ </图:颜色>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <图:颜色 uof:locID="g0034">
+ <xsl:choose>
+ <xsl:when test="@draw:fill-color">
+ <xsl:value-of select="@draw:fill-color"/>
+ </xsl:when>
+ <xsl:otherwise>#99ccff</xsl:otherwise>
+ </xsl:choose>
+ </图:颜色>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="字:缩进类型">
+ <xsl:if test="style:list-level-properties/@text:space-before">
+ <å­—:å·¦ uof:locID="t0182">
+ <å­—:ç»å¯¹ uof:locID="t0185" uof:attrList="值">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(style:list-level-properties/@text:space-before,$uofUnit)"/></xsl:attribute>
+ </å­—:ç»å¯¹>
+ </å­—:å·¦>
+ </xsl:if>
+ <xsl:if test="style:list-level-properties/@text:min-label-width">
+ <å­—:å³ uof:locID="t0183">
+ <å­—:ç»å¯¹ uof:locID="t0187" uof:attrList="值">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(style:list-level-properties/@text:min-label-width,$uofUnit)"/></xsl:attribute>
+ </å­—:ç»å¯¹>
+ </å­—:å³>
+ </xsl:if>
+ <xsl:if test="style:list-level-properties/@text:min-label-distance">
+ <字:首行 uof:locID="t0184">
+ <å­—:ç»å¯¹ uof:locID="t0189" uof:attrList="值">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(style:list-level-properties/@text:min-label-distance,$uofUnit)"/></xsl:attribute>
+ </å­—:ç»å¯¹>
+ </字:首行>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="uof:线型类型">
+ <xsl:param name="lineType"/>
+ <xsl:choose>
+ <xsl:when test="$lineType='single-line'">single</xsl:when>
+ <xsl:when test="$lineType='double-line'">double</xsl:when>
+ <xsl:when test="$lineType='single'">single</xsl:when>
+ <xsl:when test="$lineType='double'">double</xsl:when>
+ <xsl:when test="$lineType='dash'">dash</xsl:when>
+ <xsl:when test="$lineType='long-dash'">dash-long</xsl:when>
+ <xsl:when test="$lineType='dot-dash'">dot-dash</xsl:when>
+ <xsl:when test="$lineType='dot-dot-dash'">dot-dot-dash</xsl:when>
+ <xsl:when test="$lineType='wave'">wave</xsl:when>
+ <xsl:when test="$lineType='bold-dotted'">dotted-heavy</xsl:when>
+ <xsl:when test="$lineType='bold-dash'">dashed-heavy</xsl:when>
+ <xsl:when test="$lineType='bold-long-dash'">dash-long-heavy</xsl:when>
+ <xsl:when test="$lineType='bold-dot-dash'">dash-dot-heavy</xsl:when>
+ <xsl:when test="$lineType='bold-dot-dot-dash'">dash-dot-dot-heavy</xsl:when>
+ <xsl:when test="$lineType='bold-wave'">wavy-heavy</xsl:when>
+ <xsl:when test="$lineType='double-wave'">wavy-double</xsl:when>
+ <xsl:when test="$lineType='bold'">bold</xsl:when>
+ <xsl:when test="$lineType='small-wave'">wave</xsl:when>
+ <xsl:when test="$lineType='dotted'">dotted</xsl:when>
+ <xsl:when test="$lineType='none'">none</xsl:when>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/uof/odf2uof_spreadsheet.xsl b/test/user-template/user/xslt/export/uof/odf2uof_spreadsheet.xsl
new file mode 100644
index 000000000000..78a37f9c9c14
--- /dev/null
+++ b/test/user-template/user/xslt/export/uof/odf2uof_spreadsheet.xsl
@@ -0,0 +1,6194 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:uof="http://schemas.uof.org/cn/2003/uof" xmlns:表="http://schemas.uof.org/cn/2003/uof-spreadsheet" xmlns:演="http://schemas.uof.org/cn/2003/uof-slideshow" xmlns:字="http://schemas.uof.org/cn/2003/uof-wordproc" xmlns:图="http://schemas.uof.org/cn/2003/graph" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0" exclude-result-prefixes="office style text table draw fo xlink dc meta number presentation svg chart dr3d math form script config ooo ooow oooc dom xforms smil anim">
+ <xsl:output method="xml" indent="no" encoding="UTF-8" version="1.0"/>
+ <xsl:variable name="scValueWithUnit">
+ <xsl:value-of select="/office:document/office:automatic-styles/style:style[@style:name='co1']/style:table-column-properties/@style:column-width"/>
+ </xsl:variable>
+ <xsl:variable name="uofUnit">
+ <xsl:choose>
+ <xsl:when test="contains($scValueWithUnit,'in')">inch</xsl:when>
+ <xsl:when test="contains($scValueWithUnit,'cm')">cm</xsl:when>
+ <xsl:when test="contains($scValueWithUnit,'mm')">mm</xsl:when>
+ <xsl:when test="contains($scValueWithUnit,'pt')">pt</xsl:when>
+ <xsl:otherwise>inch</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="ooUnit">
+ <xsl:choose>
+ <xsl:when test="contains($scValueWithUnit,'inch')">inch</xsl:when>
+ <xsl:when test="contains($scValueWithUnit,'cm')">cm</xsl:when>
+ <xsl:when test="contains($scValueWithUnit,'mm')">mm</xsl:when>
+ <xsl:when test="contains($scValueWithUnit,'pt')">pt</xsl:when>
+ <xsl:otherwise>inch</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:template match="office:document">
+ <uof:UOF xmlns:uof="http://schemas.uof.org/cn/2003/uof" xmlns:表="http://schemas.uof.org/cn/2003/uof-spreadsheet" xmlns:演="http://schemas.uof.org/cn/2003/uof-slideshow" xmlns:字="http://schemas.uof.org/cn/2003/uof-wordproc" xmlns:图="http://schemas.uof.org/cn/2003/graph" uof:language="cn" uof:locID="u0000" uof:version="1.0" uof:mimetype="vnd.uof.spreadsheet">
+ <xsl:apply-templates select="/office:document/office:meta"/>
+ <uof:对象集 uof:locID="u0033">
+ <xsl:if test="/office:document/office:body/office:spreadsheet/table:table//table:table-cell/office:annotation">
+ <xsl:for-each select="/office:document/office:body/office:spreadsheet/table:table//table:table-cell/office:annotation">
+ <xsl:variable name="num">
+ <xsl:value-of select="substring-after(@draw:style-name,'gr')"/>
+ </xsl:variable>
+ <图:图形 uof:locID="g0000" uof:attrList="层次 标识符 组åˆåˆ—表 其他对象">
+ <xsl:attribute name="图:标识符"><xsl:value-of select="concat('pz',$num)"/></xsl:attribute>
+ <xsl:variable name="name" select="@draw:style-name"/>
+ <图:预定义图形 uof:locID="g0005">
+ <图:属性 uof:locID="g0011">
+ <xsl:for-each select="/office:document/office:automatic-styles/style:style[@style:name=$name]">
+ <xsl:call-template name="graphicattr"/>
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="@svg:x1">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:x2,$uofUnit) - substring-before(@svg:x1,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:y2,$uofUnit) - substring-before(@svg:y1,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ <xsl:when test="@svg:x">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:width,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:height,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ <xsl:when test="@svg:width">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:width,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:height,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ </xsl:choose>
+ <图:旋转角度 uof:locID="g0025">
+ <xsl:choose>
+ <xsl:when test="@draw:transform">
+ <xsl:variable name="rotate-angle">
+ <xsl:value-of select="@draw:transform"/>
+ </xsl:variable>
+ <xsl:variable name="rotate-temp">
+ <xsl:value-of select="substring-before(substring-after($rotate-angle,'rotate ('),')')"/>
+ </xsl:variable>
+ <xsl:value-of select="($rotate-temp * 360) div (2 * 3.14159265)"/>
+ </xsl:when>
+ <xsl:otherwise>0.0</xsl:otherwise>
+ </xsl:choose>
+ </图:旋转角度>
+ <图:X-缩放比例 uof:locID="g0026">1</图:X-缩放比例>
+ <图:Y-缩放比例 uof:locID="g0027">1</图:Y-缩放比例>
+ <图:é”定纵横比 uof:locID="g0028">0</图:é”定纵横比>
+ <图:相对原始比例 uof:locID="g0029">1</图:相对原始比例>
+ <图:打å°å¯¹è±¡ uof:locID="g0032">true</图:打å°å¯¹è±¡>
+ <图:Web文字 uof:locID="g0033"/>
+ </图:属性>
+ </图:预定义图形>
+ <图:文本内容 uof:locID="g0002" uof:attrList="文本框 å·¦è¾¹è· å³è¾¹è· ä¸Šè¾¹è· ä¸‹è¾¹è· æ°´å¹³å¯¹é½ åž‚ç›´å¯¹é½ æ–‡å­—æŽ’åˆ—æ–¹å‘ è‡ªåŠ¨æ¢è¡Œ 大å°é€‚应文字 å‰ä¸€é“¾æŽ¥ åŽä¸€é“¾æŽ¥">
+ <xsl:for-each select="/office:document/office:automatic-styles/style:style[@style:name=$name]">
+ <xsl:attribute name="图:文字排列方å‘"><xsl:choose><xsl:when test="style:paragraph-properties/@style:writing-mode"><xsl:choose><xsl:when test="style:paragraph-properties/@style:writing-mode='tb-rl'">vert-r2l</xsl:when><xsl:when test="style:paragraph-properties/@style:writing-mode='tb-lr'">vert-l2r</xsl:when></xsl:choose></xsl:when><xsl:when test="style:graphic-properties/@draw:textarea-horizontal-align='right'">hori-r2l</xsl:when><xsl:otherwise>hori-l2r</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="style:graphic-properties/@draw:textarea-horizontal-align">
+ <xsl:attribute name="图:水平对é½"><xsl:value-of select="style:graphic-properties/@draw:textarea-horizontal-align"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:textarea-vertical-align">
+ <xsl:attribute name="图:垂直对é½"><xsl:value-of select="style:graphic-properties/@draw:textarea-vertical-align"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@fo:wrap-option">
+ <xsl:attribute name="图:自动æ¢è¡Œ">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:auto-grow-width='true' and style:graphic-properties/@draw:auto-grow-height='true'">
+ <xsl:attribute name="图:大å°é€‚应文字">true</xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="./text:p">
+ <xsl:call-template name="textp"/>
+ </xsl:for-each>
+ </图:文本内容>
+ </图:图形>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:for-each select="/office:document/office:body/office:spreadsheet/table:table//table:table-cell/office:annotation">
+ <xsl:variable name="name1" select="@draw:style-name"/>
+ <xsl:for-each select="/office:document/office:automatic-styles/style:style[@style:name=$name1]">
+ <xsl:if test="style:graphic-properties/@draw:fill-image-name">
+ <xsl:variable name="bsh">
+ <xsl:value-of select="style:graphic-properties/@draw:fill-image-name"/>
+ </xsl:variable>
+ <xsl:for-each select="/office:document/office:styles/draw:fill-image">
+ <xsl:if test="@draw:name=$bsh">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat($name1,'_b1')"/></xsl:attribute>
+ <xsl:attribute name="uof:公共类型">png</xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="office:binary-data"/>
+ </uof:æ•°æ®>
+ </uof:其他对象>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ <xsl:for-each select="/office:document/office:body/office:spreadsheet/table:table/table:shapes/child::* | /office:document/office:body/office:spreadsheet/table:table/table:table-row/table:table-cell/child::*">
+ <xsl:if test="starts-with(name(.),'draw:')">
+ <xsl:choose>
+ <xsl:when test="name(.)='draw:frame' and self::node()/draw:object">
+ <xsl:for-each select="draw:image">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat('chart_image_',count(preceding::draw:fill-image))"/></xsl:attribute>
+ <xsl:attribute name="uof:公共类型">png</xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="office:binary-data"/>
+ </uof:æ•°æ®>
+ </uof:其他对象>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="draw">
+ <xsl:with-param name="nodename1" select="name(.)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:for-each>
+ </uof:对象集>
+ <xsl:if test="/office:document/office:body//text:bookmark-start">
+ <uof:书签集 uof:locID="u0027">
+ <xsl:for-each select="/office:document/office:body//text:bookmark-start">
+ <xsl:element name="uof:书签">
+ <xsl:attribute name="uof:å称"><xsl:value-of select="@text:name"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">u0028</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å称</xsl:attribute>
+ <xsl:element name="uof:文本ä½ç½®">
+ <xsl:attribute name="字:区域引用"><xsl:value-of select="concat('bk_',@text:name)"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">u0029</xsl:attribute>
+ <xsl:attribute name="uof:attrList">区域引用</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </uof:书签集>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/text:p/text:a">
+ <uof:链接集 uof:locID="u0031">
+ <xsl:for-each select="/office:document/office:body/text:p/text:a">
+ <!--chengxz è¦æ”¹-->
+ <xsl:variable name="hyperStr" select="@xlink:href"/>
+ <xsl:element name="uof:超级链接">
+ <xsl:if test="contains($hyperStr,'#')">
+ <xsl:attribute name="uof:书签"><xsl:value-of select="substring-after($hyperStr,'#')"/></xsl:attribute>
+ </xsl:if>
+ <!--æš‚æ—¶ä¸å†™uof:æ示-->
+ <xsl:attribute name="uof:链æº">hlnk<xsl:number from="/office:document/office:body" level="any" count="text:p[text:a]"/></xsl:attribute>
+ <xsl:if test="contains($hyperStr,'http://') or contains($hyperStr,'mailto')">
+ <xsl:attribute name="uof:目标"><xsl:value-of select="$hyperStr"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="uof:locID">u0032</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 目标 书签 å¼æ ·å¼•ç”¨ 已访问å¼æ ·å¼•ç”¨ æ示 链æº</xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </uof:链接集>
+ </xsl:if>
+ <uof:å¼æ ·é›† uof:locID="u0039">
+ <xsl:apply-templates select="/office:document/office:font-face-decls"/>
+ <xsl:apply-templates select="/office:document/office:styles/style:style" mode="styles"/>
+ <xsl:apply-templates select="/office:document/office:automatic-styles/style:style" mode="styles">
+ <xsl:with-param name="isAutomatic" select="true()"/>
+ </xsl:apply-templates>
+ </uof:å¼æ ·é›†>
+ <uof:电å­è¡¨æ ¼ uof:locID="u0049">
+ <表:公用处ç†è§„则 uof:locID="s0000">
+ <表:度é‡å•ä½ uof:locID="s0001">
+ <xsl:value-of select="$uofUnit"/>
+ </表:度é‡å•ä½>
+ <xsl:apply-templates select="/office:document/office:body/office:spreadsheet/table:calculation-settings" mode="common"/>
+ <xsl:apply-templates select="/office:document/office:body/office:spreadsheet/table:content-validations" mode="common"/>
+ <xsl:if test="/office:document/office:automatic-styles/style:style[@style:family='table-cell' and style:map]">
+ <xsl:element name="表:æ¡ä»¶æ ¼å¼åŒ–集">
+ <xsl:attribute name="uof:locID">s0016</xsl:attribute>
+ <xsl:call-template name="create-condition-format"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/office:spreadsheet/table:database-ranges/table:database-range">
+ <表:区域公å¼é›† uof:locID="s0122">
+ <表:åŒºåŸŸå…¬å¼ uof:locID="s0123" uof:attrList="类型">
+ <xsl:attribute name="表:类型">table</xsl:attribute>
+ <xsl:for-each select="/office:document/office:body/office:spreadsheet/table:database-ranges/table:database-range">
+ <表:区域 uof:locID="s0007">
+ <xsl:value-of select="@table:target-range-address"/>
+ </表:区域>
+ <表:å…¬å¼ uof:locID="s0125"/>
+ </xsl:for-each>
+ </表:区域公å¼>
+ </表:区域公å¼é›†>
+ </xsl:if>
+ <表:是å¦RC引用 uof:locID="s0124" uof:attrList="值" 表:值="false"/>
+ </表:公用处ç†è§„则>
+ <表:主体 uof:locID="s0024">
+ <xsl:apply-templates select="office:body"/>
+ </表:主体>
+ </uof:电å­è¡¨æ ¼>
+ </uof:UOF>
+ </xsl:template>
+ <xsl:template match="office:body">
+ <xsl:apply-templates select="office:spreadsheet"/>
+ </xsl:template>
+ <xsl:template match="office:spreadsheet">
+ <xsl:apply-templates select="./*"/>
+ </xsl:template>
+ <xsl:template match="office:meta">
+ <uof:å…ƒæ•°æ® uof:locID="u0001">
+ <uof:标题 uof:locID="u0002">
+ <xsl:value-of select="dc:title"/>
+ </uof:标题>
+ <uof:åˆ›å»ºåº”ç”¨ç¨‹åº uof:locID="u0011">
+ <xsl:value-of select="meta:generator"/>
+ </uof:创建应用程åº>
+ <uof:æ‘˜è¦ uof:locID="u0007">
+ <xsl:value-of select="dc:description"/>
+ </uof:摘è¦>
+ <uof:主题 uof:locID="u0003">
+ <xsl:value-of select="dc:subject"/>
+ </uof:主题>
+ <uof:创建者 uof:locID="u0004"/>
+ <uof:作者 uof:locID="u0005">
+ <xsl:value-of select="meta:initial-creator"/>
+ </uof:作者>
+ <uof:创建日期 uof:locID="u0008">
+ <xsl:value-of select="meta:creation-date"/>
+ </uof:创建日期>
+ <xsl:if test="dc:creator">
+ <uof:最åŽä½œè€… uof:locID="u0006">
+ <xsl:value-of select="dc:creator"/>
+ </uof:最åŽä½œè€…>
+ </xsl:if>
+ <uof:关键字集 uof:locID="u0014">
+ <uof:关键字 uof:locID="u0015">
+ <xsl:value-of select="meta:keyword"/>
+ </uof:关键字>
+ </uof:关键字集>
+ <uof:编辑次数 uof:locID="u0009">
+ <xsl:value-of select="meta:editing-cycles"/>
+ </uof:编辑次数>
+ <xsl:if test="meta:editing-duration">
+ <uof:编辑时间 uof:locID="u0010">
+ <xsl:value-of select="meta:editing-duration"/>
+ </uof:编辑时间>
+ </xsl:if>
+ <xsl:if test="meta:template/@xlink:href">
+ <uof:æ–‡æ¡£æ¨¡æ¿ uof:locID="u0013">
+ <xsl:value-of select="meta:template/@xlink:href"/>
+ </uof:文档模æ¿>
+ </xsl:if>
+ <xsl:if test="meta:user-defined/@meta:name">
+ <uof:用户自定义元数æ®é›† uof:locID="u0016">
+ <xsl:for-each select="meta:user-defined">
+ <uof:ç”¨æˆ·è‡ªå®šä¹‰å…ƒæ•°æ® uof:locID="u0017" uof:attrList="å称 类型">
+ <xsl:attribute name="uof:å称"><xsl:value-of select="@meta:name"/></xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:value-of select="'string'"/></xsl:attribute>
+ <xsl:value-of select="."/>
+ </uof:用户自定义元数æ®>
+ </xsl:for-each>
+ </uof:用户自定义元数æ®é›†>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:page-count">
+ <uof:页数 uof:locID="u0020">
+ <xsl:value-of select="meta:document-statistic/@meta:page-count"/>
+ </uof:页数>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:paragraph-count">
+ <uof:段è½æ•° uof:locID="u0025">
+ <xsl:value-of select="meta:document-statistic/@meta:paragraph-count"/>
+ </uof:段è½æ•°>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:object-count">
+ <uof:对象数 uof:locID="u0026">
+ <xsl:value-of select="meta:document-statistic/@meta:object-count"/>
+ </uof:对象数>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:character-count">
+ <uof:å­—æ•° uof:locID="u0021">
+ <xsl:value-of select="meta:document-statistic/@meta:character-count"/>
+ </uof:å­—æ•°>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:word-count">
+ <uof:中文字符数 uof:locID="u0023">
+ <xsl:value-of select="meta:document-statistic/@meta:word-count"/>
+ </uof:中文字符数>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:character-count - meta:document-statistic/@meta:word-count">
+ <uof:英文字符数 uof:locID="u0022">
+ <xsl:value-of select="meta:document-statistic/@meta:character-count - meta:document-statistic/@meta:word-count"/>
+ </uof:英文字符数>
+ </xsl:if>
+ <xsl:if test="meta:document-statistic/@meta:character-count">
+ <uof:行数 uof:locID="u0024">
+ <xsl:variable name="quzhi">
+ <xsl:value-of select="(meta:document-statistic/@meta:character-count div 39) + 0.9"/>
+ </xsl:variable>
+ <xsl:value-of select="substring-before($quzhi,'.')"/>
+ </uof:行数>
+ </xsl:if>
+ <xsl:if test="meta:user-defined[@meta:name='Category']">
+ <uof:分类 uof:locID="u0012">
+ <xsl:value-of select="meta:user-defined[@meta:name='Category']"/>
+ </uof:分类>
+ </xsl:if>
+ <xsl:if test="meta:user-defined[@meta:name='Manager']">
+ <uof:ç»ç†å称 uof:locID="u0019">
+ <xsl:value-of select="meta:user-defined[meta:name='Manager']"/>
+ </uof:ç»ç†å称>
+ </xsl:if>
+ <xsl:if test="meta:user-defined[@meta:name='Company']">
+ <uof:å…¬å¸å称 uof:locID="u0018">
+ <xsl:value-of select="meta:user-defined[meta:name='Company']"/>
+ </uof:å…¬å¸å称>
+ </xsl:if>
+ </uof:元数æ®>
+ </xsl:template>
+ <xsl:template match="table:table">
+ <xsl:element name="表:工作表">
+ <xsl:attribute name="uof:locID">s0025</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 éšè— 背景 å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="表:标识符"><xsl:value-of select="@table:name"/></xsl:attribute>
+ <xsl:attribute name="表:å称"><xsl:value-of select="@table:name"/></xsl:attribute>
+ <xsl:attribute name="表:éšè—"><xsl:choose><xsl:when test="@table:style-name='ta1'"><xsl:value-of select="'false'"/></xsl:when><xsl:otherwise><xsl:value-of select="'true'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="表:背景"><xsl:choose><xsl:when test="/office:document/office:automatic-styles/style:page-master/style:table-properties/@fo:background-color"><xsl:value-of select="/office:document/office:automatic-styles/style:page-master/style:table-properties/@fo:background-color"/></xsl:when><xsl:otherwise>#ffffff</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="表:å¼æ ·å¼•ç”¨"><xsl:value-of select="@table:style-name"/></xsl:attribute>
+ <xsl:element name="表:工作表属性">
+ <xsl:attribute name="uof:locID">s0026</xsl:attribute>
+ <表:标签å‰æ™¯è‰² uof:locID="s0027">#000000</表:标签å‰æ™¯è‰²>
+ <表:标签背景色 uof:locID="s0028">#ffffff</表:标签背景色>
+ <xsl:call-template name="creat-page-setting">
+ <xsl:with-param name="master-page" select="/*/office:master-styles/style:master-page"/>
+ <xsl:with-param name="page-master-style" select="/*/office:automatic-styles/style:page-layout/style:page-layout-properties"/>
+ </xsl:call-template>
+ <xsl:call-template name="create-view">
+ <xsl:with-param name="table-name" select="/*/office:body/office:spreadsheet/table:table/@table:name"/>
+ <xsl:with-param name="view-id" select="count(preceding-sibling::table:table) + 1"/>
+ <xsl:with-param name="aaa" select="/*/office:settings/config:config-item-set/config:config-item-map-indexed/config:config-item-map-entry"/>
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:call-template name="table"/>
+ <xsl:variable name="filter" select="/*/office:body/office:spreadsheet/table:database-ranges/table:database-range"/>
+ <xsl:if test="$filter">
+ <xsl:variable name="target-range-address" select="//table:database-range[table:filter]/@table:target-range-address"/>
+ <xsl:element name="表:筛选">
+ <xsl:attribute name="uof:locID">s0101</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="表:类型"><xsl:choose><xsl:when test="$filter/@table:display-filter-buttons">auto</xsl:when><xsl:otherwise>advance</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:element name="表:范围">
+ <xsl:attribute name="uof:locID">s0102</xsl:attribute>
+ <xsl:value-of select="$filter/@table:target-range-address"/>
+ </xsl:element>
+ <xsl:variable name="column-and-row" select="substring-before(substring-after($target-range-address,'.'),':')"/>
+ <xsl:variable name="dd" select="number(substring($column-and-row,2,1))"/>
+ <xsl:variable name="zone-left-column-string">
+ <xsl:choose>
+ <xsl:when test="contains($dd,'NaN') ">
+ <xsl:value-of select="substring($column-and-row,1,2)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring($column-and-row,1,1)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="zone-left-column-num">
+ <xsl:call-template name="translate-column-char-to-number">
+ <xsl:with-param name="string" select="$zone-left-column-string"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="create-filter-conditions">
+ <xsl:with-param name="filter-condition-set" select="$filter//table:filter-condition"/>
+ <xsl:with-param name="zone-left-column-num" select="$zone-left-column-num"/>
+ </xsl:call-template>
+ <xsl:if test="$filter/@table:condition-source-range-address">
+ <xsl:element name="表:æ¡ä»¶åŒºåŸŸ">
+ <xsl:attribute name="uof:locID">s0108</xsl:attribute>
+ <xsl:value-of select="$filter/@table:condition-source-range-address"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$filter/@table:display-duplicates">
+ <xsl:element name="表:结果区域">
+ <xsl:attribute name="uof:locID">s0109</xsl:attribute>
+ <xsl:value-of select="$filter/@table:display-duplicates"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="key('styles', .//@table:style-name)/style:table-row-properties/@fo:break-before = 'page' or key('styles',.//@table:style-name)/style:table-column-properties/@fo:break-before='page'">
+ <xsl:element name="表:分页符集">
+ <xsl:attribute name="uof:locID">s0111</xsl:attribute>
+ <xsl:call-template name="分页符集"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:param name="tableElement" select="'表:工作表内容'"/>
+ <xsl:param name="rowElement" select="'表:行'"/>
+ <!--xsl:param name="cellElement" select="'表:å•å…ƒæ ¼'" /-->
+ <!-- ************** -->
+ <!-- *** Table *** -->
+ <!-- ************** -->
+ <xsl:template name="table">
+ <!-- The table will only be created if the table:scenario is active -->
+ <xsl:if test="not(table:scenario) or table:scenario/@table:is-active">
+ <xsl:call-template name="create-table"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="create-table">
+ <!-- collecting all visible "table:table-row" elements of the table -->
+ <xsl:variable name="allVisibleTableRows" select="table:table-row[not(@table:visibility = 'collapse' or @table:visibility = 'filter')] | table:table-header-rows/descendant::table:table-row[not(@table:visibility = 'collapse' or @table:visibility = 'filter')] | table:table-row-group/descendant::table:table-row[not(@table:visibility = 'collapse' or @table:visibility = 'filter')]"/>
+ <xsl:call-template name="create-table-element">
+ <xsl:with-param name="allVisibleTableRows" select="$allVisibleTableRows"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template name="create-table-element">
+ <xsl:param name="allVisibleTableRows"/>
+ <xsl:element name="表:工作表内容">
+ <xsl:attribute name="uof:locID">s0018</xsl:attribute>
+ <xsl:attribute name="uof:attrList">最大行 最大列 缺çœè¡Œé«˜ 缺çœåˆ—宽</xsl:attribute>
+ <xsl:variable name="group-column" select="./table:table-column-group"/>
+ <xsl:variable name="group-row" select="./table:table-row-group"/>
+ <xsl:apply-templates select="@table:style-name"/>
+ <xsl:for-each select="table:table-column">
+ <表:列 uof:locID="s0048" uof:attrList="åˆ—å· éšè— 列宽 å¼æ ·å¼•ç”¨ 跨度">
+ <xsl:attribute name="表:列å·"><xsl:value-of select="position()"/></xsl:attribute>
+ <xsl:if test="@table:visibility">
+ <xsl:attribute name="表:éšè—"><xsl:choose><xsl:when test="@table:visibility='collapse'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="表:列宽"><xsl:value-of select="substring-before(key('styles',@table:style-name)/style:table-column-properties/@style:column-width,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="表:å¼æ ·å¼•ç”¨"><xsl:value-of select="@table:style-name"/></xsl:attribute>
+ <xsl:attribute name="表:跨度"><xsl:choose><xsl:when test="@table:number-columns-repeated"><xsl:value-of select="@table:number-columns-repeated"/></xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose></xsl:attribute>
+ </表:列>
+ </xsl:for-each>
+ <xsl:variable name="columnNodes" select="table:table-column"/>
+ <xsl:variable name="columnsRepeated" select="table:table-column/@table:number-columns-repeated"/>
+ <xsl:variable name="columnCount">
+ <xsl:choose>
+ <xsl:when test="$columnNodes[last()]/@table:number-columns-repeated &gt; 99">
+ <xsl:value-of select="count($columnNodes)+ number(sum($columnsRepeated))- count($columnsRepeated)- $columnNodes[last()]/@table:number-columns-repeated+ 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="count($columnNodes)+ number(sum($columnsRepeated))- count($columnsRepeated)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="table-name" select="@table:name"/>
+ <xsl:apply-templates select="table:table-row">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ </xsl:apply-templates>
+ <xsl:if test="table:table-row-group//table:table-row">
+ <xsl:apply-templates select="table:table-row-group//table:table-row">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:for-each select="table:shapes/child::*">
+ <xsl:if test="starts-with(name(.),'draw:')">
+ <xsl:choose>
+ <xsl:when test="name(.)='draw:frame' and self::node()/draw:object">
+ <xsl:call-template name="draw:chart-frame">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="uof锚点"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="table:table-row-group or table:table-column-group">
+ <xsl:element name="表:分组集">
+ <xsl:attribute name="uof:locID">s0098</xsl:attribute>
+ <xsl:for-each select="table:table-column-group">
+ <xsl:variable name="numcolumnrep" select="count(descendant::table:table-column[@table:number-columns-repeated])"/>
+ <xsl:variable name="numrep" select="sum(descendant::table:table-column/@table:number-columns-repeated)"/>
+ <xsl:variable name="numcolumn" select="count(descendant::table:table-column)"/>
+ <xsl:call-template name="table:table-column-group">
+ <xsl:with-param name="start" select="count(preceding::table:table-column)"/>
+ <xsl:with-param name="end" select="count(preceding::table:table-column) + $numrep + $numcolumn - $numcolumnrep"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ <xsl:for-each select="table:table-row-group">
+ <xsl:variable name="numrowrep" select="count(descendant::table:table-row[@table:number-rows-repeated])"/>
+ <xsl:variable name="numrep" select="sum(descendant::table:table-row/@table:number-rows-repeated)"/>
+ <xsl:variable name="numrow" select="count(descendant::table:table-row)"/>
+ <xsl:call-template name="table:table-row-group">
+ <xsl:with-param name="start" select="count(preceding::table:table-row)"/>
+ <xsl:with-param name="end" select="count(preceding::table:table-row) + $numrep + $numrow - $numrowrep"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="table:table-row-group">
+ <xsl:param name="start"/>
+ <xsl:param name="end"/>
+ <xsl:element name="表:行">
+ <xsl:attribute name="uof:locID">s0100</xsl:attribute>
+ <xsl:attribute name="uof:attrList">起始 终止 éšè—</xsl:attribute>
+ <xsl:attribute name="表:起始"><xsl:value-of select="$start + 1"/></xsl:attribute>
+ <xsl:attribute name="表:终止"><xsl:value-of select="$end"/></xsl:attribute>
+ <xsl:attribute name="表:éšè—"><xsl:choose><xsl:when test="@table:display"><xsl:value-of select="'true'"/></xsl:when><xsl:otherwise><xsl:value-of select="'false'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:for-each select="table:table-row-group">
+ <xsl:call-template name="table:table-row-group">
+ <xsl:with-param name="start" select="count(preceding::table:table-row) + number(sum(preceding::table:table-row/@table:number-rows-repeated)) - count(preceding::table:table-row[@table:number-rows-repeated])"/>
+ <xsl:with-param name="end" select="count(preceding::table:table-row) + number(sum(preceding::table:table-row/@table:number-rows-repeated)) - count(preceding::table:table-row[@table:number-rows-repeated]) + number(sum(descendant::table:table-row/@table:number-rows-repeated)) + count(descendant::table:table-row) - count(descendant::table:table-row[@table:number-rows-repeated])"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="table:table-column-group">
+ <xsl:param name="start"/>
+ <xsl:param name="end"/>
+ <xsl:element name="表:列">
+ <xsl:attribute name="uof:locID">s0099</xsl:attribute>
+ <xsl:attribute name="uof:attrList">起始 终止 éšè—</xsl:attribute>
+ <xsl:attribute name="表:起始"><xsl:value-of select="$start + 1"/></xsl:attribute>
+ <xsl:attribute name="表:终止"><xsl:value-of select="$end"/></xsl:attribute>
+ <xsl:attribute name="表:éšè—"><xsl:choose><xsl:when test="@table:display"><xsl:value-of select="'true'"/></xsl:when><xsl:otherwise><xsl:value-of select="'false'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:for-each select="table:table-column-group">
+ <xsl:call-template name="table:table-column-group">
+ <xsl:with-param name="start" select="count(preceding::table:table-column) + number(sum(preceding::table:table-column/@table:number-columns-repeated)) - count(preceding::table:table-column[@table:number-columns-repeated])"/>
+ <xsl:with-param name="end" select="count(preceding::table:table-column) + number(sum(preceding::table:table-column/@table:number-columns-repeated)) - count(preceding::table:table-column[@table:number-columns-repeated]) + number(sum(descendant::table:table-column/@table:number-columns-repeated)) + count(descendant::table:table-column) - count(descendant::table:table-column[@table:number-columns-repeated])"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="uof锚点">
+ <xsl:if test="not(name(.)='draw:glue-point')">
+ <xsl:variable name="name">
+ <xsl:value-of select="name(.)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="name='draw:a'">
+ <xsl:for-each select="child::node( )">
+ <xsl:call-template name="uof锚点"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <uof:锚点 uof:locID="u0064" uof:attrList="xåæ ‡ yåæ ‡ 宽度 高度 图形引用 éšåŠ¨æ–¹å¼ 缩略图 å ä½ç¬¦">
+ <xsl:attribute name="uof:xåæ ‡"><xsl:choose><xsl:when test="name(.)='draw:g'"><xsl:call-template name="groupminx"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:x][1]/@svg:x,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:when><xsl:otherwise><xsl:choose><xsl:when test="@svg:x"><xsl:value-of select="substring-before(@svg:x,$uofUnit)"/></xsl:when><xsl:when test="@svg:x1"><xsl:value-of select="substring-before(@svg:x1,$uofUnit)"/></xsl:when></xsl:choose></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:yåæ ‡"><xsl:choose><xsl:when test="name(.)='draw:g'"><xsl:call-template name="groupminx"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:y][1]/@svg:y,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:when><xsl:otherwise><xsl:choose><xsl:when test="@svg:y"><xsl:value-of select="substring-before(@svg:y,$uofUnit)"/></xsl:when><xsl:when test="@svg:y1"><xsl:value-of select="substring-before(@svg:y1,$uofUnit)"/></xsl:when></xsl:choose></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:choose><xsl:when test="@svg:width"><xsl:value-of select="substring-before(@svg:width,$uofUnit)"/></xsl:when><xsl:when test="@svg:x1"><xsl:value-of select="substring-before(@svg:x2,$uofUnit) - substring-before(@svg:x1,$uofUnit)"/></xsl:when><xsl:when test="name(.)='draw:g'"><xsl:variable name="minx"><xsl:call-template name="groupminx"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:x][1]/@svg:x,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:variable name="svgx"><xsl:value-of select="number(substring-before(descendant::node()[@svg:x][1]/@svg:x,$uofUnit))"/></xsl:variable><xsl:variable name="width"><xsl:value-of select="number(substring-before(descendant::node()[@svg:x][1]/@svg:width,$uofUnit))"/></xsl:variable><xsl:variable name="maxx"><xsl:call-template name="groupmaxx"><xsl:with-param name="value" select="$svgx + $width"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:value-of select="$maxx - $minx"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:高度"><xsl:choose><xsl:when test="@svg:height"><xsl:value-of select="substring-before(@svg:height,$uofUnit)"/></xsl:when><xsl:when test="@svg:x1"><xsl:value-of select="substring-before(@svg:y2,$uofUnit) - substring-before(@svg:y1,$uofUnit)"/></xsl:when><xsl:when test="name(.)='draw:g'"><xsl:variable name="miny"><xsl:call-template name="groupminy"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:y][1]/@svg:y,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:variable name="svgy"><xsl:value-of select="number(substring-before(descendant::node()[@svg:y][1]/@svg:y,$uofUnit))"/></xsl:variable><xsl:variable name="height"><xsl:value-of select="number(substring-before(descendant::node()[@svg:y][1]/@svg:height,$uofUnit))"/></xsl:variable><xsl:variable name="maxy"><xsl:call-template name="groupmaxy"><xsl:with-param name="value" select="$svgy + $height"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:value-of select="$maxy - $miny"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:variable name="refpicname">
+ <xsl:choose>
+ <xsl:when test="./@draw:style-name">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:when>
+ <xsl:when test="./@table:end-cell-address">
+ <xsl:value-of select="@table:end-cell-address"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./@draw:id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="uof:图形引用"><xsl:variable name="picnumber"><xsl:value-of select="count(preceding::*[@draw:style-name=$refpicname])"/></xsl:variable><xsl:value-of select="concat($refpicname,'_',$picnumber)"/></xsl:attribute>
+ <xsl:attribute name="uof:éšåŠ¨æ–¹å¼"><xsl:choose><xsl:when test="key('graphicset',$refpicname)/style:graphic-properties/@style:protect"><xsl:for-each select="key('graphicset',$refpicname)/style:graphic-properties"><xsl:choose><xsl:when test="@style:protect='size'">move</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:for-each></xsl:when><xsl:otherwise>movesize</xsl:otherwise></xsl:choose></xsl:attribute>
+ </uof:锚点>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <!--end 06.02.14 -->
+ <!-- **************** -->
+ <!-- *** Columns *** -->
+ <!-- **************** -->
+ <!--Redoffice comment liliang 06.05.23-->
+ <!--xsl:template name="create-table-column">
+ <xsl:param name="columnNodes"/>
+ <xsl:param name="currentColumn"/>
+ <xsl:param name="columnCount"/>
+ <xsl:param name="columnNo"/>
+ <xsl:param name="columnNodeNo"/>
+ <xsl:param name="index"/>
+ <xsl:element name="表:列">
+ <xsl:attribute name="locID">s0048</xsl:attribute>
+ <xsl:attribute name="attrList">åˆ—å· éšè— 列宽 å¼æ ·å¼•ç”¨ 跨度</xsl:attribute>
+ <xsl:if test="$currentColumn/@table:visibility = 'collapse' or $currentColumn/@table:visibility = 'filter'">
+ <xsl:attribute name="表:éšè—">true</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="表:跨度"><xsl:choose><xsl:when test="$currentColumn/@table:number-columns-repeated"><xsl:value-of select="$currentColumn/@table:number-columns-repeated - 1"/></xsl:when><xsl:otherwise><xsl:value-of select="'0'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$index">
+ <xsl:attribute name="表:列å·"><xsl:value-of select="$columnNo"/></xsl:attribute>
+ </xsl:if-->
+ <!--自动列宽没有,暂略 autofitwidth-->
+ <!--Redoffice comment liliang 06.05.22-->
+ <!--xsl:variable name="width">
+ <xsl:value-of select="key('styles', $currentColumn/@table:style-name)/style:properties/@style:column-width"/>
+ </xsl:variable-->
+ <!--end-->
+ <!--xsl:if test="$width">
+ <xsl:attribute name="表:宽度"><xsl:call-template name="convert2pt"><xsl:with-param name="value" select="$width"/></xsl:call-template></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="表:跨度"><xsl:choose><xsl:when test="$currentColumn/@table:number-columns-repeated"><xsl:value-of select="$currentColumn/@table:number-columns-repeated - 1"/></xsl:when><xsl:otherwise><xsl:value-of select="'0'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:if test="$columnNo &lt; $columnCount">
+ <xsl:choose>
+ <xsl:when test="@table:number-columns-repeated">
+ <xsl:call-template name="create-table-column">
+ <xsl:with-param name="columnNodes" select="$columnNodes"/>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="columnNo" select="$columnNo + $currentColumn/@table:number-columns-repeated"/>
+ <xsl:with-param name="columnNodeNo" select="$columnNodeNo + 1"/>
+ <xsl:with-param name="currentColumn" select="$columnNodes[$columnNodeNo + 1]"/>
+ <xsl:with-param name="index" select="true()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create-table-column">
+ <xsl:with-param name="columnNodes" select="$columnNodes"/>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="columnNo" select="$columnNo + 1"/>
+ <xsl:with-param name="columnNodeNo" select="$columnNodeNo + 1"/>
+ <xsl:with-param name="currentColumn" select="$columnNodes[$columnNodeNo + 1]"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template-->
+ <!-- ************* -->
+ <!-- *** Rows *** -->
+ <!-- ************* -->
+ <xsl:template match="table:table-row">
+ <xsl:param name="table-name"/>
+ <xsl:param name="columnCount"/>
+ <xsl:choose>
+ <xsl:when test="@table:number-rows-repeated &gt; 1">
+ <xsl:choose>
+ <xsl:when test="(last() or (last() - 1)) and @table:number-rows-repeated &gt; 99">
+ <xsl:call-template name="write-table-row">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="lastRow" select="true()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- In case a cell is being repeated, the cell will be created
+ in a variabel, which is as many times given out, as being repeated -->
+ <xsl:variable name="tableRow">
+ <xsl:call-template name="write-table-row">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="repeat-write-table-row">
+ <xsl:with-param name="tableRow" select="$tableRow"/>
+ <xsl:with-param name="repetition" select="@table:number-rows-repeated"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="write-table-row">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="write-table-row">
+ <xsl:param name="table-name"/>
+ <xsl:param name="columnCount"/>
+ <xsl:param name="lastRow"/>
+ <xsl:element name="表:行">
+ <xsl:attribute name="uof:locID">s0049</xsl:attribute>
+ <xsl:attribute name="uof:attrList">è¡Œå· éšè— 行高 å¼æ ·å¼•ç”¨ 跨度</xsl:attribute>
+ <xsl:if test="./table:table-cell/@office:value-type">
+ <xsl:attribute name="表:è¡Œå·"><xsl:value-of select="count(preceding::table:table-row[not(@table:number-rows-repeated)])+1+number(sum(preceding::table:table-row[@table:number-rows-repeated]/@table:number-rows-repeated))"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@table:visibility = 'collapse' or @table:visibility = 'filter'">
+ <xsl:attribute name="表:éšè—">true</xsl:attribute>
+ </xsl:if>
+ <!-- although valid, can not be opened with Excel - issue i31949)
+ <xsl:if test="$lastRow">
+ <xsl:attribute name="ss:Span"><xsl:value-of select="@table:number-rows-repeated - 1" /></xsl:attribute>
+ </xsl:if>-->
+ <!-- writing the style of the row -->
+ <xsl:apply-templates select="@table:style-name"/>
+ <xsl:variable name="rowProperties" select="key('styles', @table:style-name)/*"/>
+ <!--xsl:if test="$rowProperties/@style:use-optimal-row-height = 'false'">
+ <! - - default is '1', therefore write only '0' - ->
+ <xsl:attribute name="ss:AutoFitHeight">0</xsl:attribute>
+ </xsl:if-->
+ <xsl:variable name="height" select="$rowProperties/@style:row-height"/>
+ <xsl:if test="$height">
+ <xsl:attribute name="表:行高"><!-- using the absolute height in point --><xsl:call-template name="convert2pt"><xsl:with-param name="value" select="$height"/></xsl:call-template></xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="table:table-cell">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="repeat-write-table-row">
+ <xsl:param name="tableRow"/>
+ <xsl:param name="repetition"/>
+ <xsl:copy-of select="$tableRow"/>
+ <xsl:if test="$repetition &gt; 1">
+ <xsl:call-template name="repeat-write-table-row">
+ <xsl:with-param name="tableRow" select="$tableRow"/>
+ <xsl:with-param name="repetition" select="$repetition - 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <!-- ************** -->
+ <!-- *** Cells *** -->
+ <!-- ************** -->
+ <!-- Table cells are able to be repeated by attribute in StarOffice,
+ but not in Excel. If more cells are repeated
+ (e.g. for emulating background) only as many cells as columns are
+ allowed to be written out. -->
+ <xsl:template match="table:table-cell">
+ <xsl:param name="table-name"/>
+ <xsl:param name="columnCount"/>
+ <!--xsl:choose>
+ <xsl:when test="@table:number-columns-repeated &gt; 1">
+ <xsl:variable name="tableCell">
+ <xsl:call-template name="write-table-cell"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="not(following-sibling::table:table-cell)">
+ <xsl:call-template name="repeat-write-table-cell">
+ <xsl:with-param name="tableCell" select="$tableCell"/>
+ <xsl:with-param name="repetition" select="@table:number-columns-repeated"/>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="cellNo" select="position()+ sum(preceding-sibling::table:table-cell/@table:number-columns-repeated)- count(preceding-sibling::table:table-cell/@table:number-columns-repeated)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="repeat-write-table-cell">
+ <xsl:with-param name="tableCell" select="$tableCell"/>
+ <xsl:with-param name="repetition" select="@table:number-columns-repeated"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="write-table-cell"/>
+ </xsl:otherwise>
+ </xsl:choose-->
+ <xsl:choose>
+ <xsl:when test="@table:number-columns-repeated">
+ <xsl:call-template name="write-table-cell">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="repeat-table-cell-no" select="@table:number-columns-repeated"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="write-table-cell">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="repeat-table-cell-no" select="number(1)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--xsl:template name="repeat-write-table-cell">
+ <xsl:param name="tableCell"/>
+ <xsl:param name="repetition"/>
+ <xsl:param name="columnCount"/>
+ <xsl:param name="cellNo"/>
+ <xsl:copy-of select="$tableCell"/>
+ <xsl:if test="$repetition &gt; 1">
+ <xsl:choose>
+ <xsl:when test="$cellNo">
+ <xsl:if test="$cellNo &lt; $columnCount">
+ <xsl:call-template name="repeat-write-table-cell">
+ <xsl:with-param name="tableCell" select="$tableCell"/>
+ <xsl:with-param name="repetition" select="$repetition - 1"/>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="cellNo" select="$cellNo + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="repeat-write-table-cell">
+ <xsl:with-param name="tableCell" select="$tableCell"/>
+ <xsl:with-param name="repetition" select="$repetition - 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template-->
+ <xsl:template name="write-table-cell">
+ <xsl:param name="table-name"/>
+ <xsl:param name="repeat-table-cell-no"/>
+ <xsl:if test="$repeat-table-cell-no &gt; 0">
+ <表:å•å…ƒæ ¼ uof:locID="s0050" uof:attrList="åˆ—å· å¼æ ·å¼•ç”¨ 超链接引用 åˆå¹¶åˆ—æ•° åˆå¹¶è¡Œæ•°">
+ <xsl:if test="@table:number-columns-spanned &gt; 1">
+ <xsl:attribute name="表:åˆå¹¶åˆ—æ•°"><xsl:value-of select="@table:number-columns-spanned - 1"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@table:number-rows-spanned &gt; 1">
+ <xsl:attribute name="表:åˆå¹¶è¡Œæ•°"><xsl:value-of select="@table:number-rows-spanned - 1"/></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="link" select="descendant::text:a/@xlink:href"/>
+ <xsl:if test="$link">
+ <xsl:attribute name="表:超链接引用"><xsl:value-of select="$link"/></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@table:style-name">
+ <xsl:apply-templates select="@table:style-name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="ancestor::table:table/table:table-column/@table:default-cell-style-name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="*">
+ <xsl:if test="text:p">
+ <xsl:variable name="valueType">
+ <xsl:choose>
+ <xsl:when test="@office:value-type">
+ <xsl:value-of select="@office:value-type"/>
+ </xsl:when>
+ <xsl:otherwise>string</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="表的数æ®">
+ <xsl:with-param name="valueType" select="$valueType"/>
+ <xsl:with-param name="cellStyleName" select="@table:style-name"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="office:annotation">
+ <xsl:element name="表:批注">
+ <xsl:attribute name="uof:locID">s0053</xsl:attribute>
+ <xsl:attribute name="uof:attrList">是å¦æ˜¾ç¤º</xsl:attribute>
+ <xsl:attribute name="表:是å¦æ˜¾ç¤º"><xsl:choose><xsl:when test="office:annotation/@office:display = 'true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <uof:锚点 uof:locID="u0064" uof:attrList="xåæ ‡ yåæ ‡ 宽度 高度 图形引用 éšåŠ¨æ–¹å¼ 缩略图 å ä½ç¬¦">
+ <xsl:variable name="num">
+ <xsl:value-of select="substring-after(office:annotation/@draw:style-name,'gr')"/>
+ </xsl:variable>
+ <xsl:attribute name="uof:图形引用"><xsl:value-of select="concat('pz',$num)"/></xsl:attribute>
+ <xsl:attribute name="uof:xåæ ‡"><xsl:value-of select="substring-before(office:annotation/@svg:x,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:yåæ ‡"><xsl:value-of select="substring-before(office:annotation/@svg:y,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(office:annotation/@svg:width,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:高度"><xsl:value-of select="substring-before(office:annotation/@svg:height,$uofUnit)"/></xsl:attribute>
+ </uof:锚点>
+ </xsl:element>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:for-each select="child::*">
+ <xsl:if test="starts-with(name(.),'draw:')">
+ <xsl:choose>
+ <xsl:when test="name(.)='draw:frame' and self::node()/draw:object">
+ <xsl:call-template name="draw:chart-frame">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="uof锚点"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="/office:document/office:body/office:spreadsheet/table:tracked-changes and not(self::node()/@table:style-name) and self::node()/text:p">
+ <xsl:element name="表:æ•°æ®">
+ <xsl:attribute name="uof:locID">s0051</xsl:attribute>
+ <xsl:attribute name="uof:attrList">æ•°æ®ç±»åž‹</xsl:attribute>
+ <xsl:element name="å­—:å¥">
+ <xsl:attribute name="uof:locID">t0085</xsl:attribute>
+ <xsl:call-template name="table:tracked-changes"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </表:å•å…ƒæ ¼>
+ <xsl:variable name="repeat-table-cell-no1">
+ <xsl:value-of select="$repeat-table-cell-no - 1"/>
+ </xsl:variable>
+ <xsl:call-template name="write-table-cell">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="repeat-table-cell-no" select="$repeat-table-cell-no1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="office:annotation"/>
+ <xsl:template match="dc:date"/>
+ <xsl:template name="表的数æ®">
+ <xsl:param name="valueType"/>
+ <xsl:param name="cellStyleName"/>
+ <xsl:choose>
+ <xsl:when test="descendant::*/@text:style-name">
+ <xsl:choose>
+ <xsl:when test="$valueType = 'string'">
+ <表:æ•°æ® è¡¨:æ•°æ®ç±»åž‹="string" uof:locID="s0051" uof:attrList="æ•°æ®ç±»åž‹">
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName"/>
+ </xsl:apply-templates>
+ </表:æ•°æ®>
+ </xsl:when>
+ <xsl:when test="$valueType = 'boolean'">
+ <表:æ•°æ® è¡¨:æ•°æ®ç±»åž‹="boolean" uof:locID="s0051" uof:attrList="æ•°æ®ç±»åž‹">
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName"/>
+ </xsl:apply-templates>
+ </表:æ•°æ®>
+ </xsl:when>
+ <xsl:when test="$valueType = 'date'">
+ <表:æ•°æ® è¡¨:æ•°æ®ç±»åž‹="date" uof:locID="s0051" uof:attrList="æ•°æ®ç±»åž‹">
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName"/>
+ </xsl:apply-templates>
+ </表:æ•°æ®>
+ </xsl:when>
+ <xsl:otherwise>
+ <表:æ•°æ® è¡¨:æ•°æ®ç±»åž‹="number" uof:locID="s0051" uof:attrList="æ•°æ®ç±»åž‹">
+ <xsl:apply-templates>
+ <xsl:with-param name="cellStyleName" select="$cellStyleName"/>
+ </xsl:apply-templates>
+ </表:æ•°æ®>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <表:æ•°æ® uof:locID="s0051" uof:attrList="æ•°æ®ç±»åž‹">
+ <xsl:choose>
+ <xsl:when test="$valueType = 'string'">
+ <xsl:attribute name="表:æ•°æ®ç±»åž‹">text</xsl:attribute>
+ <!--xsl:attribute name="表:æ•°æ®æ•°å€¼"><xsl:value-of select="@office:string-value"/></xsl:attribute-->
+ <!--chengxz schema no this attr-->
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="text:p"/>
+ </字:文本串>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:when test="$valueType = 'boolean'">
+ <xsl:attribute name="表:æ•°æ®ç±»åž‹">boolean</xsl:attribute>
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:choose>
+ <xsl:when test="@table:boolean-value = 'true'">
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">true</字:文本串>
+ </xsl:when>
+ <xsl:otherwise>
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">false</字:文本串>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:when test="$valueType = 'date'">
+ <xsl:attribute name="表:æ•°æ®ç±»åž‹">date</xsl:attribute>
+ <xsl:attribute name="表:æ•°æ®æ•°å€¼"><xsl:value-of select="@office:date-value"/></xsl:attribute>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="text:p"/>
+ </字:文本串>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:when test="$valueType = 'time'">
+ <xsl:attribute name="表:æ•°æ®ç±»åž‹">time</xsl:attribute>
+ <xsl:attribute name="表:æ•°æ®æ•°å€¼"><xsl:value-of select="@office:time-value"/></xsl:attribute>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="text:p"/>
+ </字:文本串>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="表:æ•°æ®ç±»åž‹">number</xsl:attribute>
+ <xsl:attribute name="表:æ•°æ®æ•°å€¼"><xsl:value-of select="@office:value"/></xsl:attribute>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="text:p"/>
+ </字:文本串>
+ </å­—:å¥>
+ </xsl:otherwise>
+ </xsl:choose>
+ </表:æ•°æ®>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="分页符集">
+ <xsl:for-each select="table:table-row">
+ <xsl:if test="key('styles', @table:style-name)/style:table-row-properties/@fo:break-before">
+ <xsl:variable name="table-break-before">
+ <xsl:value-of select="key('styles', @table:style-name)/style:table-row-properties/@fo:break-before"/>
+ </xsl:variable>
+ <xsl:if test="$table-break-before = 'page'">
+ <xsl:element name="表:分页符">
+ <xsl:attribute name="uof:locID">s0112</xsl:attribute>
+ <xsl:attribute name="uof:attrList">è¡Œå· åˆ—å·</xsl:attribute>
+ <xsl:if test="preceding-sibling::table:table-row/@table:number-rows-repeated">
+ <xsl:attribute name="表:è¡Œå·"><xsl:value-of select="sum(preceding-sibling::table:table-row/@table:number-rows-repeated)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(preceding-sibling::table:table-row/@table:number-rows-repeated)">
+ <xsl:attribute name="表:è¡Œå·">1</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="key('styles', @table:style-name)/style:table-row-properties/@fo:break-after">
+ <xsl:variable name="table-break-after" select="key('styles', @table:style-name)/style:table-row-properties/@fo:break-after"/>
+ <xsl:if test="$table-break-after = 'page'">
+ <xsl:element name="表:分页符">
+ <xsl:attribute name="uof:locID">s0112</xsl:attribute>
+ <xsl:attribute name="uof:attrList">è¡Œå· åˆ—å·</xsl:attribute>
+ <xsl:if test="preceding-sibling::table:table-row/@table:number-rows-repeated">
+ <xsl:attribute name="表:è¡Œå·"><xsl:value-of select="sum(preceding-sibling::table:table-row/@table:number-rows-repeated)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(preceding-sibling::table:table-row/@table:number-rows-repeated)">
+ <xsl:attribute name="表:è¡Œå·">1</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="table:table-column">
+ <xsl:if test="key('styles', @table:style-name)/style:table-column-properties/@fo:break-before">
+ <xsl:variable name="table-break-before" select="key('styles', @table:style-name)/style:table-column-properties/@fo:break-before"/>
+ <xsl:if test="$table-break-before = 'page'">
+ <xsl:element name="表:分页符">
+ <xsl:attribute name="uof:locID">s0112</xsl:attribute>
+ <xsl:attribute name="uof:attrList">è¡Œå· åˆ—å·</xsl:attribute>
+ <xsl:if test="preceding-sibling::table:table-column/@table:number-columns-repeated">
+ <xsl:attribute name="表:列å·"><xsl:value-of select="sum(preceding-sibling::table:table-column/@table:number-columns-repeated)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(preceding-sibling::table:table-column/@table:number-columns-repeated)">
+ <xsl:attribute name="表:列å·">1</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="key('styles', @table:style-name)/style:table-column-properties/@fo:break-after">
+ <xsl:variable name="table-break-after" select="key('styles', @table:style-name)/style:table-column-properties/@fo:break-after"/>
+ <xsl:if test="$table-break-after = 'page'">
+ <xsl:element name="表:分页符">
+ <xsl:attribute name="uof:locID">s0112</xsl:attribute>
+ <xsl:attribute name="uof:attrList">è¡Œå· åˆ—å·</xsl:attribute>
+ <xsl:if test="preceding-sibling::table:table-column/@table:number-columns-repeated">
+ <xsl:attribute name="表:列å·"><xsl:value-of select="sum(preceding-sibling::table:table-column/@table:number-columns-repeated)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(preceding-sibling::table:table-column/@table:number-columns-repeated)">
+ <xsl:attribute name="表:列å·">1</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="text:s">
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="@text:c"/>
+ </xsl:call-template>
+ </xsl:template>
+ <!--write the number of 'whitespaces' -->
+ <xsl:template name="write-breakable-whitespace">
+ <xsl:param name="whitespaces"/>
+ <xsl:text> </xsl:text>
+ <xsl:if test="$whitespaces >= 1">
+ <xsl:call-template name="write-breakable-whitespace">
+ <xsl:with-param name="whitespaces" select="$whitespaces - 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <!-- allowing all matched text nodes -->
+ <!--chengxz0630-->
+ <!--xsl:template match="text()">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="locID">t0109</xsl:attribute>
+
+ <xsl:value-of select="." />
+ </xsl:element>
+ </å­—:å¥>
+ </xsl:template-->
+ <xsl:variable name="namespace-html" select="'http://www.w3.org/TR/REC-html40'"/>
+ <xsl:template match="@table:style-name | @table:default-cell-style-name">
+ <xsl:attribute name="表:å¼æ ·å¼•ç”¨"><!--ss:styleID--><xsl:value-of select="."/><!--chengxz 060114--></xsl:attribute>
+ </xsl:template>
+ <xsl:template name="style-and-contents">
+ <xsl:param name="cellStyleName"/>
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:element name="字:文本串">
+ <!--chengxz0630-->
+ </xsl:element>
+ </å­—:å¥>
+ </xsl:template>
+ <!-- *************88-->
+ <xsl:param name="dpi" select="111"/>
+ <xsl:param name="centimeter-in-mm" select="10"/>
+ <xsl:param name="inch-in-mm" select="25.4"/>
+ <xsl:param name="didot-point-in-mm" select="0.376065"/>
+ <xsl:param name="pica-in-mm" select="4.2333333"/>
+ <xsl:param name="point-in-mm" select="0.3527778"/>
+ <xsl:param name="twip-in-mm" select="0.017636684"/>
+ <xsl:param name="pixel-in-mm" select="$inch-in-mm div $dpi"/>
+ <!-- ***** MEASUREMENT CONVERSIONS *****
+ PARAM 'value'
+ The measure to be converted.
+ The current measure is judged by a substring (e.g. 'mm', 'cm', 'in', 'pica'...)
+ directly added to the number.
+
+ PARAM 'rounding-factor'
+ Is used for the rounding of decimal places.
+ The parameter number is the product of 1 and some '10', where
+ every zero represents a decimal place.
+
+ For example, providing as parameter:
+ <xsl:param name="rounding-factor" select="10000" />
+ Gives by default four decimal places.
+
+ To round two decimal places, basically the following is done:
+ <xsl:value-of select="round(100 * value) div 100"/>
+
+ RETURN The converted number, by default rounded to four decimal places.
+ In case the input measure could not be matched the same value is
+ returned and a warning message is written out.
+
+
+
+ MEASURE LIST:
+ * 1 milimeter (mm), the basic measure
+
+ * 1 centimeter (cm) = 10 mm
+
+ * 1 inch (in) = 25.4 mm
+ While the English have already seen the light (read: the metric system), the US
+ remains loyal to this medieval system.
+
+ * 1 point (pt) = 0.35277777.. mm
+ Sometimes called PostScript point (ppt), as when Adobe created PostScript, they added their own system of points.
+ There are exactly 72 PostScript points in 1 inch.
+
+ * 1 twip = twentieth of a (PostScript) point
+ A twip (twentieth of a point) is a 1/20th of a PostScript point, a traditional measure in printing.
+
+ * 1 didot point (dpt) = 0.376065 mm
+ Didot point after the French typographer Firmin Didot (1764-1836).
+
+ More details under
+ http://www.unc.edu/~rowlett/units/dictP.html:
+ "A unit of length used by typographers and printers. When printing was done
+ from hand-set metal type, one point represented the smallest element of type
+ that could be handled, roughly 1/64 inch. Eventually, the point was standardized
+ in Britain and America as exactly 1/72.27 = 0.013 837 inch, which is
+ about 0.35 mm (351.46 micrometers). In continental Europe, typographers
+ traditionally used a slightly larger point of 0.014 83 inch (about
+ 1/72 pouce, 0.377 mm, or roughly 1/67 English inch), called a Didot point
+ after the French typographer Firmin Didot (1764-1836). In the U.S.,
+ Adobe software defines the point to be exactly 1/72 inch (0.013 888 9 inch
+ or 0.352 777 8 millimeters) and TeX software uses a slightly smaller point
+ of 0.351 459 8035 mm. The German standards agency DIN has proposed that
+ all these units be replaced by multiples of 0.25 millimeters (1/101.6 inch).
+
+ * 1 pica = 4.233333 mm
+ 1/6 inch or 12 points
+
+ * 1 pixel (px) = 0.26458333.. mm (relative to 'DPI', here: 96 dpi)
+ Most pictures have the 96 dpi resolution, but the dpi variable may vary by stylesheet parameter
+
+
+ -->
+ <!-- changing measure to mm -->
+ <xsl:template name="convert2mm">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="substring-before($value, 'mm')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm' ) * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in' ) * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'mm'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to cm -->
+ <xsl:template name="convert2cm">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="substring-before($value, 'cm')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $centimeter-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $centimeter-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $centimeter-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $centimeter-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $centimeter-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $centimeter-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'cm'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to inch (cp. section comment) -->
+ <xsl:template name="convert2in">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $inch-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="substring-before($value, 'in')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $inch-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $inch-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $inch-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $inch-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $inch-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'in'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to dpt (cp. section comment) -->
+ <xsl:template name="convert2dpt">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $didot-point-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $didot-point-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $didot-point-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="substring-before($value, 'dpt')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $didot-point-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $didot-point-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $didot-point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'dpt'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pica (cp. section comment) -->
+ <xsl:template name="convert2pica">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $pica-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $pica-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $pica-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $pica-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="substring-before($value, 'pica')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $pica-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $pica-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pica'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pt (cp. section comment) -->
+ <xsl:template name="convert2pt">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $point-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $point-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="substring-before($value, 'pt')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $point-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $point-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $point-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pt'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pt (cp. section comment) -->
+ <xsl:template name="convert2twip">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $twip-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $twip-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $twip-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $twip-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $twip-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="substring-before($value, 'twip')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $twip-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'twip'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="convert2px">
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round(number(substring-before($value, 'mm')) div $pixel-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round(number(substring-before($value, 'cm')) div $pixel-in-mm * $centimeter-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round(number(substring-before($value, 'in')) div $pixel-in-mm * $inch-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round(number(substring-before($value, 'pt')) div $pixel-in-mm * $point-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round(number(substring-before($value, 'dpt')) div $pixel-in-mm * $didot-point-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round(number(substring-before($value, 'pica')) div $pixel-in-mm * $pica-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round(number(substring-before($value, 'twip')) div $pixel-in-mm * $twip-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'px'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:key match="draw:object/office:document/office:automatic-styles/style:style" name="chart-style-name" use="@style:name"/>
+ <xsl:template name="draw:chart-frame">
+ <xsl:param name="table-name"/>
+ <表:图表 uof:locID="s0055" uof:attrList="类型 å­ç±»åž‹ 宽度 高度 xåæ ‡ yåæ ‡ éšåŠ¨æ–¹å¼">
+ <xsl:variable name="plot-area">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="data-area">
+ <xsl:value-of select="draw:object/@draw:notify-on-update-of-ranges"/>
+ </xsl:variable>
+ <xsl:variable name="series-generate">
+ <xsl:for-each select="key('chart-style-name',$plot-area)">
+ <xsl:choose>
+ <xsl:when test="style:chart-properties/@chart:series-source='columns'">col</xsl:when>
+ <xsl:otherwise>row</xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:call-template name="表:图表">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ </xsl:call-template>
+ <表:图表区 uof:locID="s0056">
+ <xsl:call-template name="表:图表区">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ </xsl:call-template>
+ </表:图表区>
+ <表:绘图区 uof:locID="s0060">
+ <xsl:attribute name="表:宽度"><xsl:value-of select="substring-before(draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/@svg:width,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="表:高度"><xsl:value-of select="substring-before(draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/@svg:height,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="表:xåæ ‡"><xsl:value-of select="substring-before(draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/@svg:x,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="表:yåæ ‡"><xsl:value-of select="substring-before(draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/@svg:y,$uofUnit)"/></xsl:attribute>
+ <xsl:call-template name="表:绘图区">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ </xsl:call-template>
+ </表:绘图区>
+ <表:分类轴 uof:locID="s0061" uof:attrList="主刻度类型 次刻度类型 刻度线标志">
+ <xsl:variable name="axis-style-name">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[child::chart:categories]/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:for-each select="draw:object/office:document/office:automatic-styles/style:style[@style:name=$axis-style-name]">
+ <xsl:attribute name="表:主刻度类型"><xsl:choose><xsl:when test="style:chart-properties/@chart:tick-marks-major-inner='true' and style:chart-properties/@chart:tick-marks-major-outer='true'">cross</xsl:when><xsl:when test="style:chart-properties/@chart:tick-marks-major-inner='false'">inside</xsl:when><xsl:when test="style:chart-properties/@chart:tick-marks-major-inner='true'">outside</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="表:次刻度类型"><xsl:choose><xsl:when test="style:chart-properties/@chart:tick-marks-minor-inner='true' and style:chart-properties/@chart:tick-marks-minor-outer='true'">cross</xsl:when><xsl:when test="style:chart-properties/@chart:tick-marks-minor-inner='true'">inside</xsl:when><xsl:when test="style:chart-properties/@chart:tick-marks-minor-inner='true'">outside</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="表:刻度线标志"><xsl:choose><xsl:when test="style:chart-properties/@chart:display-label='true'">next to axis</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:call-template name="表:å标轴类型">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="axis-type" select="category-axis"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </表:分类轴>
+ <表:数值轴 uof:locID="s0082" uof:attrList="主刻度类型 次刻度类型 刻度线标志">
+ <xsl:variable name="axis-style-name">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[child::chart:grid]/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:for-each select="draw:object/office:document/office:automatic-styles/style:style[@style:name=$axis-style-name]">
+ <xsl:attribute name="表:主刻度类型"><xsl:choose><xsl:when test="style:chart-properties/@chart:tick-marks-major-inner='true' and style:chart-properties/@chart:tick-marks-major-outer='true'">cross</xsl:when><xsl:when test="style:chart-properties/@chart:tick-marks-major-inner='true'">inside</xsl:when><xsl:when test="style:chart-properties/@chart:tick-marks-major-inner='true'">outside</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="表:次刻度类型"><xsl:choose><xsl:when test="style:chart-properties/@chart:tick-marks-minor-inner='true' and style:chart-properties/@chart:tick-marks-minor-outer='true'">cross</xsl:when><xsl:when test="style:chart-properties/@chart:tick-marks-minor-inner='true'">inside</xsl:when><xsl:when test="style:chart-properties/@chart:tick-marks-minor-inner='true'">outside</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="表:刻度线标志"><xsl:choose><xsl:when test="style:chart-properties/@chart:display-label='true'">next to axis</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:call-template name="表:å标轴类型">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="axis-type" select="category-axis"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </表:数值轴>
+ <表:图例 uof:locID="s0083" uof:attrList="ä½ç½®">
+ <xsl:attribute name="表:ä½ç½®"><xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:legend/@chart:legend-position"/></xsl:attribute>
+ <xsl:attribute name="表:xåæ ‡"><xsl:value-of select="substring-before(draw:object/office:document/office:body/office:chart/chart:chart/chart:legend/@svg:x,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="表:yåæ ‡"><xsl:value-of select="substring-before(draw:object/office:document/office:body/office:chart/chart:chart/chart:legend/@svg:y,$uofUnit)"/></xsl:attribute>
+ <xsl:call-template name="表:图例">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ </xsl:call-template>
+ </表:图例>
+ <!--表:æ•°æ®è¡¨ uof:locID="s0085">
+ <xsl:call-template name="表:æ•°æ®è¡¨">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ </xsl:call-template>
+ </表:æ•°æ®è¡¨-->
+ <表:æ•°æ®ç³»åˆ—集 uof:locID="s0086">
+ <xsl:variable name="data-series-path" select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:series"/>
+ <xsl:call-template name="表:æ•°æ®ç³»åˆ—">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="data-series-path" select="$data-series-path"/>
+ </xsl:call-template>
+ </表:æ•°æ®ç³»åˆ—集>
+ <!--0825 by lil -->
+ <xsl:if test="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:series">
+ <表:æ•°æ®ç‚¹é›† uof:locID="s0090">
+ <xsl:variable name="data-series-path" select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:series"/>
+ <xsl:call-template name="表:æ•°æ®ç‚¹">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="data-series-path" select="$data-series-path"/>
+ </xsl:call-template>
+ </表:æ•°æ®ç‚¹é›†>
+ </xsl:if>
+ <!--end-->
+ <表:网格线集 uof:locID="s0092">
+ <xsl:if test="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension='x' and @chart:style-name]/chart:grid">
+ <xsl:call-template name="表:网格线">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="grid-type" select="'category axis'"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension='y']/@chart:style-name">
+ <xsl:call-template name="表:网格线">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="grid-type" select="'value axis'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </表:网格线集>
+ <表:æ•°æ®æº uof:locID="s0094" uof:attrList="æ•°æ®åŒºåŸŸ 系列产生">
+ <xsl:variable name="series-row-start">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring-before(substring(substring-after($data-area,'.'),2),':')"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="series-row-end">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after(substring-after($data-area,'.'),'.'),2)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="series-col-start">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after($data-area,'.'),1,1)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="series-col-end">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after(substring-after($data-area,'.'),'.'),1,1)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="series-value-count">
+ <xsl:choose>
+ <xsl:when test="$series-generate='col'">
+ <xsl:value-of select="$series-col-end -$series-col-start +1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$series-row-end -$series-row-start +1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="表:æ•°æ®åŒºåŸŸ"><xsl:value-of select="draw:object/@draw:notify-on-update-of-ranges"/></xsl:attribute>
+ <xsl:attribute name="表:系列产生"><xsl:choose><xsl:when test="contains($series-generate,'col')">col</xsl:when><xsl:when test="contains($series-generate,'row')">row</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:call-template name="表:系列">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="series-row-start" select="$series-row-start"/>
+ <xsl:with-param name="series-row-end" select="$series-row-end"/>
+ <xsl:with-param name="series-col-start" select="$series-col-start"/>
+ <xsl:with-param name="series-col-end" select="$series-col-end"/>
+ <xsl:with-param name="series-value-current" select="'1'"/>
+ <xsl:with-param name="series-value-count" select="$series-value-count"/>
+ </xsl:call-template>
+ </表:æ•°æ®æº>
+ <表:标题集 uof:locID="s0096">
+ <xsl:if test="draw:object/office:document/office:body/office:chart/chart:chart/chart:title">
+ <xsl:call-template name="表:标题">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="caption-type" select="'chart'"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension='x']">
+ <xsl:call-template name="表:标题">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="caption-type" select="'category axis'"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension='y']">
+ <xsl:call-template name="表:标题">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="caption-type" select="'value axis'"/>
+ </xsl:call-template>
+ </xsl:if>
+ </表:标题集>
+ </表:图表>
+ </xsl:template>
+ <xsl:template name="表:图表">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:variable name="chart-class">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/@chart:class"/>
+ </xsl:variable>
+ <xsl:variable name="chart-area">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="plot-area">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$chart-class='chart:bar'">
+ <xsl:variable name="chart-sub-class">
+ <xsl:value-of select="key('chart-style-name',$plot-area)/style:chart-properties/@chart:vertical"/>
+ </xsl:variable>
+ <xsl:attribute name="表:类型"><xsl:choose><xsl:when test="$chart-sub-class='true'">bar</xsl:when><xsl:when test="$chart-sub-class='false'">column</xsl:when><xsl:otherwise/></xsl:choose></xsl:attribute>
+ <xsl:attribute name="表:å­ç±»åž‹"><xsl:choose><xsl:when test="$chart-sub-class='true'"><xsl:choose><xsl:when test="key('chart-style-name',$plot-area)/style:chart-properties/@chart:percentage">bar_percent</xsl:when><xsl:when test="key('chart-style-name',$plot-area)/style:chart-properties/@chart:stacked">bar_stacked</xsl:when><xsl:otherwise>bar_standard</xsl:otherwise></xsl:choose></xsl:when><xsl:when test="$chart-sub-class='false'"><xsl:choose><xsl:when test="key('chart-style-name',$plot-area)/style:chart-properties/@chart:percentage">column_percent</xsl:when><xsl:when test="key('chart-style-name',$plot-area)/style:chart-properties/@chart:stacked">column_stacked</xsl:when><xsl:otherwise>column_standard</xsl:otherwise></xsl:choose></xsl:when></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$chart-class='chart:line'">
+ <xsl:attribute name="表:类型">line</xsl:attribute>
+ <xsl:attribute name="表:å­ç±»åž‹"><xsl:choose><xsl:when test="key('chart-style-name',$plot-area)/style:chart-properties/@chart:percentage">line_percent</xsl:when><xsl:when test="key('chart-style-name',$plot-area)/style:chart-properties/@chart:stacked">line_stacked</xsl:when><xsl:otherwise>line_standard</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$chart-class='chart:circle'">
+ <xsl:attribute name="表:类型">pie</xsl:attribute>
+ <xsl:variable name="data-point-end" select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:series[1]/chart:data-point"/>
+ <xsl:choose>
+ <xsl:when test="count($data-point-end) &lt;=1">
+ <xsl:attribute name="表:å­ç±»åž‹">pie_standard</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="data-point-position-1">
+ <xsl:for-each select="$data-point-end[position()=1]">
+ <xsl:choose>
+ <xsl:when test="@chart:style-name">
+ <xsl:for-each select="key('chart-style-name',@chart:style-name)">
+ <xsl:choose>
+ <xsl:when test="style:chart-properties/@chart:pie-offset">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$data-point-position-1='0'">
+ <xsl:attribute name="表:å­ç±»åž‹">pie_standard</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="$data-point-end[position()=2]">
+ <xsl:choose>
+ <xsl:when test="@chart:style-name">
+ <xsl:for-each select="key('chart-style-name',@chart:style-name)">
+ <xsl:choose>
+ <xsl:when test="style:chart-properties/@chart:pie-offset">
+ <xsl:attribute name="表:å­ç±»åž‹">pie_offset2</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="表:å­ç±»åž‹">pie_offset1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="表:å­ç±»åž‹">pie_offset1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$chart-class='chart:ring'">
+ <xsl:attribute name="表:类型">pie</xsl:attribute>
+ <xsl:attribute name="表:å­ç±»åž‹">pie_ring</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ <xsl:attribute name="表:宽度"><xsl:value-of select="substring-before(@svg:width,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="表:高度"><xsl:value-of select="substring-before(@svg:height,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="表:xåæ ‡"><xsl:value-of select="substring-before(@svg:x,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="表:yåæ ‡"><xsl:value-of select="substring-before(@svg:y,$uofUnit)"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@draw:style-name">
+ <xsl:variable name="draw-style-name" select="@draw:style-name"/>
+ <xsl:for-each select="draw:object//office:document/office:automatic-styles/style:style[@style:name=$draw-style-name]">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:move-protect='true' and style:graphic-properties/@draw:size-protect='true'">
+ <xsl:attribute name="表:éšåŠ¨æ–¹å¼">none</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:size-protect='true'">
+ <xsl:attribute name="表:éšåŠ¨æ–¹å¼">move</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="表:éšåŠ¨æ–¹å¼">move and re-size</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="表:éšåŠ¨æ–¹å¼">move and re-size</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:图表区">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:variable name="chart-style-name" select="draw:object/office:document/office:body/office:chart/chart:chart/@chart:style-name"/>
+ <xsl:for-each select="draw:object/office:document/office:automatic-styles/style:style[@style:name=$chart-style-name]">
+ <表:边框 uof:locID="s0057" uof:attrList="类型 宽度 è¾¹è· é¢œè‰² 阴影">
+ <xsl:call-template name="表:边框"/>
+ </表:边框>
+ <xsl:if test="style:graphic-properties/@draw:fill-color or (style:graphic-properties/@draw:fill and not(style:graphic-properties/@draw:fill='none'))">
+ <表:填充 uof:locID="s0058">
+ <xsl:call-template name="图:填充类型"/>
+ </表:填充>
+ </xsl:if>
+ <表:字体 uof:locID="s0059" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹">
+ </xsl:call-template>
+ </表:字体>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:绘图区">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:variable name="plot-style-name" select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:wall/@chart:style-name"/>
+ <xsl:for-each select="draw:object/office:document/office:automatic-styles/style:style[@style:name=$plot-style-name]">
+ <表:边框 uof:locID="s0057" uof:attrList="类型 宽度 è¾¹è· é¢œè‰² 阴影">
+ <xsl:call-template name="表:边框"/>
+ </表:边框>
+ <xsl:if test="style:graphic-properties/@draw:fill-color or (style:graphic-properties/@draw:fill and not(style:graphic-properties/@draw:fill='none'))">
+ <表:填充 uof:locID="s0058">
+ <xsl:call-template name="图:填充类型2"/>
+ </表:填充>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:图例">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:variable name="legend">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:legend/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:for-each select="draw:object/office:document/office:automatic-styles/style:style[@style:name=$legend]">
+ <表:边框 uof:locID="s0057" uof:attrList="类型 宽度 è¾¹è· é¢œè‰² 阴影">
+ <xsl:call-template name="表:边框"/>
+ </表:边框>
+ <xsl:if test="style:graphic-properties/@draw:fill-color or (style:graphic-properties/@draw:fill and not(style:graphic-properties/@draw:fill='none'))">
+ <表:填充 uof:locID="s0058">
+ <xsl:call-template name="图:填充类型"/>
+ </表:填充>
+ </xsl:if>
+ <表:字体 uof:locID="s0059" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </表:字体>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:图例项">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <表:图例项 uof:locID="s0084" uof:attrList="系列">
+ <表:字体 uof:locID="s0059" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </表:字体>
+ </表:图例项>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®è¡¨">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:if test="style:graphic-properties/@draw:fill-color or (style:graphic-properties/@draw:fill and not(style:graphic-properties/@draw:fill='none'))">
+ <表:填充 uof:locID="s0058">
+ <xsl:call-template name="图:填充类型"/>
+ </表:填充>
+ </xsl:if>
+ <表:字体 uof:locID="s0059" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </表:字体>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®ç³»åˆ—">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:param name="data-series-path"/>
+ <xsl:for-each select="$data-series-path">
+ <表:æ•°æ®ç³»åˆ— uof:locID="s0087" uof:attrList="系列">
+ <xsl:variable name="data-series-position">
+ <xsl:value-of select="position()"/>
+ </xsl:variable>
+ <xsl:attribute name="表:系列"><xsl:value-of select="$data-series-position"/></xsl:attribute>
+ <xsl:variable name="data-series-point" select="@chart:style-name"/>
+ <xsl:call-template name="表:æ•°æ®ç‚¹ç±»åž‹">
+ <xsl:with-param name="data-series-point" select="$data-series-point"/>
+ <xsl:with-param name="data-series-position" select="$data-series-position"/>
+ </xsl:call-template>
+ </表:æ•°æ®ç³»åˆ—>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®ç‚¹">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:param name="data-series-path"/>
+ <xsl:for-each select="$data-series-path">
+ <xsl:variable name="data-series-position" select="position()"/>
+ <xsl:for-each select="chart:data-point">
+ <!--xsl:if test="@chart:style-name"-->
+ <xsl:variable name="data-point-position">
+ <xsl:call-template name="count-chart-data-point">
+ <xsl:with-param name="data-point-count" select="'1'"/>
+ <xsl:with-param name="data-point-position-temp" select="position() -1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <表:æ•°æ®ç‚¹ uof:locID="s0091" uof:attrList="系列 点">
+ <xsl:attribute name="表:系列"><xsl:value-of select="$data-series-position"/></xsl:attribute>
+ <xsl:attribute name="表:点"><xsl:value-of select="$data-point-position"/></xsl:attribute>
+ <xsl:variable name="data-series-point" select="@chart:style-name"/>
+ <xsl:for-each select="../../../../../office:automatic-styles/style:style[@style:name=$data-series-point]">
+ <表:边框 uof:locID="s0057" uof:attrList="类型 宽度 è¾¹è· é¢œè‰² 阴影">
+ <xsl:call-template name="表:边框"/>
+ </表:边框>
+ <xsl:if test="style:graphic-properties/@draw:fill-color or (style:graphic-properties/@draw:fill and not(style:graphic-properties/@draw:fill='none'))">
+ <表:填充 uof:locID="s0058">
+ <xsl:call-template name="图:填充类型"/>
+ </表:填充>
+ </xsl:if>
+ <表:字体 uof:locID="s0059" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </表:字体>
+ <表:显示标志 uof:locID="s0088" uof:attrList="系列å 类别å 数值 百分数 分隔符 图例标志">
+ <xsl:attribute name="表:系列å"/>
+ <xsl:attribute name="表:分隔符"/>
+ <xsl:if test="style:chart-properties/@chart:data-label-text">
+ <xsl:attribute name="表:类别å"><xsl:value-of select="style:chart-properties/@chart:data-label-text"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:chart-properties/@chart:data-label-number">
+ <xsl:choose>
+ <xsl:when test="style:chart-properties/@chart:data-label-number='value'">
+ <xsl:attribute name="表:数值">true</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="style:chart-properties/@chart:data-label-number='percentage'">
+ <xsl:attribute name="表:百分数">true</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="style:chart-properties/@chart:data-label-symbol">
+ <xsl:attribute name="表:图例标志"><xsl:value-of select="style:chart-properties/@chart:data-label-symbol"/></xsl:attribute>
+ </xsl:if>
+ </表:显示标志>
+ <表:系列å uof:locID="s0089">
+ <xsl:value-of select="concat('系列',$data-series-position)"/>
+ </表:系列å>
+ </xsl:for-each>
+ </表:æ•°æ®ç‚¹>
+ <!--/xsl:if-->
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:网格线">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:param name="grid-type"/>
+ <xsl:if test="$grid-type='category axis'">
+ <xsl:variable name="category-axis-grid">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension='x']/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:for-each select="key('chart-style-name',$category-axis-grid)">
+ <表:网格线 uof:locID="s0093" uof:attrList="类型 宽度 è¾¹è· é¢œè‰² 阴影 ä½ç½®">
+ <xsl:call-template name="表:边框"/>
+ <xsl:attribute name="表:ä½ç½®"><xsl:value-of select="$grid-type"/></xsl:attribute>
+ </表:网格线>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="$grid-type='value axis'">
+ <xsl:variable name="value-axis-grid">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension='y']/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:for-each select="key('chart-style-name',$value-axis-grid)">
+ <表:网格线 uof:locID="s0093" uof:attrList="类型 宽度 è¾¹è· é¢œè‰² 阴影 ä½ç½®">
+ <xsl:call-template name="表:边框"/>
+ <xsl:attribute name="表:ä½ç½®"><xsl:value-of select="$grid-type"/></xsl:attribute>
+ </表:网格线>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="表:系列">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:param name="series-row-start"/>
+ <xsl:param name="series-row-end"/>
+ <xsl:param name="series-col-start"/>
+ <xsl:param name="series-col-end"/>
+ <xsl:param name="series-value-current"/>
+ <xsl:param name="series-value-count"/>
+ <xsl:choose>
+ <xsl:when test="$series-value-current>$series-value-count"/>
+ <xsl:otherwise>
+ <表:系列 uof:locID="s0095" uof:attrList="系列å 系列值 分类å">
+ <xsl:attribute name="表:系列å"><xsl:value-of select="concat('系列',$series-value-current)"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$series-generate='col'">
+ <xsl:variable name="series-col-letter-start">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="$series-col-start +$series-value-current -1"/>
+ <xsl:with-param name="output-type" select="'CHARS_UPPER_LETTER'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="表:系列值"><xsl:value-of select="concat($table-name,'!',$series-col-letter-start,$series-row-start,':',$series-col-letter-start,$series-row-end)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="series-col-letter-start">
+ <xsl:value-of select="substring(substring-after($data-area,'.'),1,1)"/>
+ </xsl:variable>
+ <xsl:variable name="series-col-letter-end">
+ <xsl:value-of select="substring(substring-after(substring-after($data-area,'.'),'.'),1,1)"/>
+ </xsl:variable>
+ <xsl:attribute name="表:系列值"><xsl:value-of select="concat($table-name,'!',$series-col-letter-start,$series-row-start +$series-value-current -1,':',$series-col-letter-end,$series-row-start +$series-value-current -1)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </表:系列>
+ <xsl:call-template name="表:系列">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="data-area" select="$data-area"/>
+ <xsl:with-param name="series-generate" select="$series-generate"/>
+ <xsl:with-param name="series-row-start" select="$series-row-start"/>
+ <xsl:with-param name="series-row-end" select="$series-row-end"/>
+ <xsl:with-param name="series-col-start" select="$series-col-start"/>
+ <xsl:with-param name="series-col-end" select="$series-col-end"/>
+ <xsl:with-param name="series-value-current" select="$series-value-current +1"/>
+ <xsl:with-param name="series-value-count" select="$series-value-count"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:标题">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:param name="caption-type"/>
+ <xsl:if test="$caption-type='chart'">
+ <xsl:variable name="chart-title">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:title/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="chart-title-name">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:title/text:p"/>
+ </xsl:variable>
+ <xsl:for-each select="key('chart-style-name',$chart-title)">
+ <表:标题 uof:locID="s0097" uof:attrList="å称 ä½ç½®">
+ <xsl:attribute name="表:å称"><xsl:value-of select="$chart-title-name"/></xsl:attribute>
+ <xsl:attribute name="表:ä½ç½®"><xsl:value-of select="$caption-type"/></xsl:attribute>
+ <xsl:call-template name="表:标题类型"/>
+ </表:标题>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="$caption-type='category axis'">
+ <xsl:variable name="category-axis-title">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension='x']/chart:title/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="category-axis-title-name">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension='x']/chart:title/text:p"/>
+ </xsl:variable>
+ <xsl:for-each select="key('chart-style-name',$category-axis-title)">
+ <表:标题 uof:locID="s0097" uof:attrList="å称 ä½ç½®">
+ <xsl:attribute name="表:å称"><xsl:value-of select="$category-axis-title-name"/></xsl:attribute>
+ <xsl:attribute name="表:ä½ç½®"><xsl:value-of select="$caption-type"/></xsl:attribute>
+ <xsl:call-template name="表:标题类型"/>
+ </表:标题>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="$caption-type='value axis'">
+ <xsl:variable name="value-axis-title">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension='y']/chart:title/@chart:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="value-axis-title-name">
+ <xsl:value-of select="draw:object/office:document/office:body/office:chart/chart:chart/chart:plot-area/chart:axis[@chart:dimension='y']/chart:title/text:p"/>
+ </xsl:variable>
+ <xsl:for-each select="key('chart-style-name',$value-axis-title)">
+ <表:标题 uof:locID="s0097" uof:attrList="å称 ä½ç½®">
+ <xsl:attribute name="表:å称"><xsl:value-of select="$value-axis-title-name"/></xsl:attribute>
+ <xsl:attribute name="表:ä½ç½®"><xsl:value-of select="$caption-type"/></xsl:attribute>
+ <xsl:call-template name="表:标题类型"/>
+ </表:标题>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="表:å标轴类型">
+ <xsl:param name="table-name"/>
+ <xsl:param name="data-area"/>
+ <xsl:param name="series-generate"/>
+ <xsl:param name="axis-type"/>
+ <表:线型 uof:locID="s0062" uof:attrList="类型 宽度 è¾¹è· é¢œè‰² 阴影">
+ <xsl:attribute name="uof:类型"><xsl:call-template name="表:线型"/></xsl:attribute>
+ </表:线型>
+ <表:数值 uof:locID="s0063" uof:attrList="é“¾æŽ¥åˆ°æº åˆ†ç±»å称 æ ¼å¼ç ">
+ <xsl:attribute name="表:链接到æº"><xsl:choose><xsl:when test="style:chart-properties/@chart:link-data-style-to-source"><xsl:value-of select="style:chart-properties/@chart:link-data-style-to-source"/></xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="@style:data-style-name">
+ <xsl:call-template name="Chart-NumberFormat">
+ <xsl:with-param name="temp-style" select="@style:data-style-name"/>
+ </xsl:call-template>
+ </xsl:if>
+ </表:数值>
+ <表:字体 uof:locID="s0059" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </表:字体>
+ <表:刻度 uof:locID="s0064">
+ <xsl:call-template name="表:刻度类型"/>
+ </表:刻度>
+ <表:å¯¹é½ uof:locID="s0078">
+ <xsl:if test="style:chart-properties/@style:direction">
+ <xsl:element name="表:文字方å‘">
+ <xsl:attribute name="uof:locID">s0079</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="style:chart-properties/@style:direction = 'ttb'">vertical</xsl:when>
+ <xsl:otherwise>horizontal</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:chart-properties/@text:rotation-angle">
+ <表:旋转角度 uof:locID="s0080">
+ <xsl:value-of select="style:chart-properties/@text:rotation-angle"/>
+ </表:旋转角度>
+ </xsl:if>
+ <表:åç§»é‡ uof:locID="s0081"/>
+ </表:对é½>
+ </xsl:template>
+ <xsl:template name="Chart-NumberFormat">
+ <xsl:param name="temp-style"/>
+ <xsl:for-each select="(preceding-sibling::*[@style:name=$temp-style]) | (following-sibling::*[@style:name=$temp-style])">
+ <xsl:attribute name="表:分类å称"><xsl:choose><xsl:when test="name(.)='number:currency-style'">currency</xsl:when><xsl:when test="name(.)='number:percentage-style'">percentage</xsl:when><xsl:when test="name(.)='number:date-style'">date</xsl:when><xsl:when test="name(.)='number:time-style'">time</xsl:when><xsl:when test="name(.)='number:boolean-style'">custom</xsl:when><xsl:when test="name(.)='number:text-style'">text</xsl:when><xsl:when test="name(.)='number:number-style'"><xsl:choose><xsl:when test="number:fraction">fraction</xsl:when><xsl:when test="number:scientific-number">scientific</xsl:when><xsl:otherwise>number</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>general</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="表:æ ¼å¼ç "><xsl:call-template name="element-attribute"/><xsl:for-each select="style:map"><xsl:text>[</xsl:text><xsl:value-of select="@style:condition"/><xsl:text>]</xsl:text><xsl:variable name="apply-style" select="@style:apply-style-name"/><xsl:for-each select="../../child::*[@style:name=$apply-style]/*"><xsl:call-template name="general-number-format"/></xsl:for-each><xsl:text>;</xsl:text></xsl:for-each><xsl:for-each select="*[not(name(.)='style:map')]"><xsl:call-template name="general-number-format"/></xsl:for-each></xsl:attribute>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®ç‚¹ç±»åž‹">
+ <xsl:param name="data-series-point"/>
+ <xsl:param name="data-series-position"/>
+ <xsl:for-each select="ancestor::draw:object/office:document/office:automatic-styles/style:style[@style:name=$data-series-point]">
+ <表:边框 uof:locID="s0057" uof:attrList="类型 宽度 è¾¹è· é¢œè‰² 阴影">
+ <xsl:call-template name="表:边框"/>
+ </表:边框>
+ <xsl:if test="style:graphic-properties/@draw:fill-color or (style:graphic-properties/@draw:fill and not(style:graphic-properties/@draw:fill='none'))">
+ <表:填充 uof:locID="s0058">
+ <xsl:call-template name="图:填充类型"/>
+ </表:填充>
+ </xsl:if>
+ <表:字体 uof:locID="s0059" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </表:字体>
+ <表:显示标志 uof:locID="s0088" uof:attrList="系列å 类别å 数值 百分数 分隔符 图例标志">
+ <xsl:attribute name="表:系列å">true</xsl:attribute>
+ <xsl:if test="style:chart-properties/@chart:data-label-text">
+ <xsl:attribute name="表:类别å"><xsl:value-of select="style:chart-properties/@chart:data-label-text"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:chart-properties/@chart:data-label-number">
+ <xsl:choose>
+ <xsl:when test="style:chart-properties/@chart:data-label-number='value'">
+ <xsl:attribute name="表:数值">true</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="style:chart-properties/@chart:data-label-number='percentage'">
+ <xsl:attribute name="表:百分数">true</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="style:chart-properties/@chart:data-label-symbol">
+ <xsl:attribute name="表:图例标志"><xsl:value-of select="style:chart-properties/@chart:data-label-symbol"/></xsl:attribute>
+ </xsl:if>
+ </表:显示标志>
+ <表:系列å uof:locID="s0089">
+ <xsl:value-of select="concat('系列',$data-series-position)"/>
+ </表:系列å>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:标题类型">
+ <表:边框 uof:locID="s0057" uof:attrList="类型 宽度 è¾¹è· é¢œè‰² 阴影">
+ <xsl:call-template name="表:边框"/>
+ </表:边框>
+ <xsl:if test="style:graphic-properties/@draw:fill-color or (style:graphic-properties/@draw:fill and not(style:graphic-properties/@draw:fill='none'))">
+ <表:填充 uof:locID="s0058">
+ <xsl:call-template name="图:填充类型"/>
+ </表:填充>
+ </xsl:if>
+ <表:字体 uof:locID="s0059" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </表:字体>
+ <表:å¯¹é½ uof:locID="s0020">
+ <xsl:call-template name="表:对é½æ ¼å¼ç±»åž‹"/>
+ </表:对é½>
+ </xsl:template>
+ <xsl:template name="count-chart-data-point">
+ <xsl:param name="data-point-count"/>
+ <xsl:param name="data-point-position-temp"/>
+ <xsl:choose>
+ <xsl:when test="$data-point-position-temp=0">
+ <xsl:value-of select="$data-point-count"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="temp">
+ <xsl:for-each select="../chart:data-point[position()=$data-point-position-temp]">
+ <xsl:choose>
+ <xsl:when test="@chart:repeated">
+ <xsl:value-of select="@chart:repeated"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:call-template name="count-chart-data-point">
+ <xsl:with-param name="data-point-count" select="$data-point-count +$temp"/>
+ <xsl:with-param name="data-point-position-temp" select="$data-point-position-temp -1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:边框">
+ <xsl:attribute name="uof:类型"><xsl:call-template name="表:线型"/></xsl:attribute>
+ <xsl:if test="style:graphic-properties/@svg:stroke-width">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(style:graphic-properties/@svg:stroke-width,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@svg:stroke-color">
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="style:graphic-properties/@svg:stroke-color"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="uof:阴影">false</xsl:attribute>
+ </xsl:template>
+ <xsl:template name="图:填充类型">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:fill='gradient'">
+ <xsl:variable name="gradient-name">
+ <xsl:value-of select="style:graphic-properties/@draw:fill-gradient-name"/>
+ </xsl:variable>
+ <xsl:for-each select="/descendant::draw:gradient[@draw:name=$gradient-name]">
+ <图:æ¸å˜ uof:locID="g0037" uof:attrList="起始色 终止色 ç§å­ç±»åž‹ 起始浓度 终止浓度 æ¸å˜æ–¹å‘ 边界 ç§å­Xä½ç½® ç§å­Yä½ç½® 类型">
+ <xsl:attribute name="图:起始色"><xsl:value-of select="@draw:start-color"/></xsl:attribute>
+ <xsl:attribute name="图:终止色"><xsl:value-of select="@draw:end-color"/></xsl:attribute>
+ <xsl:attribute name="图:ç§å­ç±»åž‹"><xsl:choose><xsl:when test="@draw:style='linear' or @draw:style='axial'">linear</xsl:when><xsl:when test="@draw:style='radial'">radar</xsl:when><xsl:when test="@draw:style='ellipsoid'">oval</xsl:when><xsl:when test="@draw:style='square'">square</xsl:when><xsl:when test="@draw:style='rectangular'">rectangle</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:起始浓度"><xsl:value-of select="substring-before(@draw:start-intensity,'%')"/></xsl:attribute>
+ <xsl:attribute name="图:终止浓度"><xsl:value-of select="substring-before(@draw:end-intensity,'%')"/></xsl:attribute>
+ <xsl:variable name="angle">
+ <xsl:value-of select="@draw:angle div 10"/>
+ </xsl:variable>
+ <xsl:attribute name="图:æ¸å˜æ–¹å‘"><xsl:choose><xsl:when test="0&lt;$angle and $angle&lt;25">0</xsl:when><xsl:when test="25&lt;$angle and $angle&lt;70">45</xsl:when><xsl:when test="70&lt;$angle and $angle&lt;115">90</xsl:when><xsl:when test="115&lt;$angle and $angle&lt;160">135</xsl:when><xsl:when test="160&lt;$angle and $angle&lt;205">180</xsl:when><xsl:when test="205&lt;$angle and $angle&lt;250">225</xsl:when><xsl:when test="250&lt;$angle and $angle&lt;295">270</xsl:when><xsl:when test="295&lt;$angle and $angle&lt;340">315</xsl:when><xsl:when test="340&lt;$angle and $angle&lt;360">360</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:边界"><xsl:value-of select="substring-before(@draw:border,'%')"/></xsl:attribute>
+ <xsl:if test="@draw:cx">
+ <xsl:attribute name="图:ç§å­Xä½ç½®"><xsl:value-of select="substring-before(@draw:cx,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@draw:cy">
+ <xsl:attribute name="图:ç§å­Yä½ç½®"><xsl:value-of select="substring-before(@draw:cy,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="图:类型">-2</xsl:attribute>
+ </图:æ¸å˜>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:fill-image-name">
+ <图:图片 uof:locID="g0035" uof:attrList="ä½ç½® 图形引用 类型 å称">
+ <xsl:attribute name="图:ä½ç½®"><xsl:choose><xsl:when test="not(style:graphic-properties/@style:repeat)">tile</xsl:when><xsl:otherwise><xsl:choose><xsl:when test="style:graphic-properties/@style:repeat = 'stretch'">stretch</xsl:when><xsl:when test="style:graphic-properties/@style:repeat = 'repeat'">tile</xsl:when><xsl:when test="style:graphic-properties/@style:repeat = 'no-repeat'">center</xsl:when></xsl:choose></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:图形引用"><xsl:value-of select="concat('chart_image_',count(preceding::draw:fill-image))"/></xsl:attribute>
+ <xsl:attribute name="图:类型">png</xsl:attribute>
+ <xsl:attribute name="图:å称"><xsl:value-of select="style:graphic-properties/@draw:fill-image-name"/></xsl:attribute>
+ </图:图片>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:fill='hatch'">
+ <图:图案 uof:locID="g0036" uof:attrList="类型 图形引用 å‰æ™¯è‰² 背景色">
+ <xsl:attribute name="图:类型"><xsl:value-of select="../../office:styles/draw:hatch/@draw:name"/></xsl:attribute>
+ <xsl:attribute name="图:图形引用">gr1</xsl:attribute>
+ <xsl:attribute name="图:å‰æ™¯è‰²"><xsl:value-of select="../../office:styles/draw:hatch/@draw:color"/></xsl:attribute>
+ <xsl:attribute name="图:背景色"><xsl:choose><xsl:when test="style:graphic-properties/@draw:fill-color"><xsl:value-of select="style:graphic-properties/@draw:fill-color"/></xsl:when><xsl:otherwise>#ffffff</xsl:otherwise></xsl:choose></xsl:attribute>
+ </图:图案>
+ </xsl:when>
+ <xsl:otherwise>
+ <图:颜色 uof:locID="g0034">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:fill-color">
+ <xsl:value-of select="style:graphic-properties/@draw:fill-color"/>
+ </xsl:when>
+ <xsl:otherwise>#99ccff</xsl:otherwise>
+ </xsl:choose>
+ </图:颜色>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="图:填充类型2">
+ <xsl:if test="style:graphic-properties/@draw:fill-color">
+ <图:颜色 uof:locID="g0034">
+ <xsl:value-of select="style:graphic-properties/@draw:fill-color"/>
+ </图:颜色>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:fill-image-name">
+ <xsl:variable name="chart-image-name" select="style:graphic-properties/@draw:fill-image-name"/>
+ <图:图片 uof:locID="g0035" uof:attrList="ä½ç½® 图形引用 类型 å称">
+ <xsl:attribute name="图:ä½ç½®"><xsl:choose><xsl:when test="not(style:graphic-properties/@style:repeat)">tile</xsl:when><xsl:otherwise><xsl:choose><xsl:when test="style:graphic-properties/@style:repeat = 'stretch'">stretch</xsl:when><xsl:when test="style:graphic-properties/@style:repeat = 'repeat'">tile</xsl:when><xsl:when test="style:graphic-properties/@style:repeat = 'no-repeat'">center</xsl:when></xsl:choose></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:for-each select="../../office:styles/draw:fill-image[@draw:name=$chart-image-name]">
+ <xsl:attribute name="图:图形引用"><xsl:value-of select="concat('chart_image_',count(preceding::draw:fill-image))"/></xsl:attribute>
+ </xsl:for-each>
+ <xsl:attribute name="图:类型">png</xsl:attribute>
+ <xsl:attribute name="图:å称"><xsl:value-of select="$chart-image-name"/></xsl:attribute>
+ </图:图片>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:fill-hatch-name">
+ <xsl:variable name="chart-hatch-name" select="style:graphic-properties/@draw:fill-hatch-name"/>
+ <图:图案 uof:locID="g0036" uof:attrList="类型 图形引用 å‰æ™¯è‰² 背景色">
+ <xsl:for-each select="../../office:styles/draw:hatch[@draw:name=$chart-hatch-name]">
+ <xsl:attribute name="图:类型"><xsl:value-of select="@draw:style"/></xsl:attribute>
+ <xsl:attribute name="图:å‰æ™¯è‰²"><xsl:value-of select="@draw:color"/></xsl:attribute>
+ <xsl:attribute name="图:背景色"/>
+ <xsl:attribute name="图:è·ç¦»"><xsl:value-of select="@draw:distance"/></xsl:attribute>
+ <xsl:attribute name="图:旋转度"><xsl:value-of select="@draw:rotation"/></xsl:attribute>
+ </xsl:for-each>
+ <xsl:attribute name="图:图形引用"><xsl:value-of select="$chart-hatch-name"/></xsl:attribute>
+ </图:图案>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:fill-gradient-name">
+ <xsl:variable name="chart-gradient-name" select="style:graphic-properties/@draw:fill-gradient-name"/>
+ <图:æ¸å˜ uof:locID="g0037" uof:attrList="起始色 终止色 ç§å­ç±»åž‹ 起始浓度 终止浓度 æ¸å˜æ–¹å‘ 边界 ç§å­Xä½ç½® ç§å­Yä½ç½® 类型">
+ <xsl:for-each select="../../office:styles/draw:gradient[@draw:name=$chart-gradient-name]">
+ <xsl:attribute name="图:起始色"><xsl:value-of select="@draw:start-color"/></xsl:attribute>
+ <xsl:attribute name="图:终止色"><xsl:value-of select="@draw:end-color"/></xsl:attribute>
+ <xsl:attribute name="图:ç§å­ç±»åž‹"><xsl:choose><xsl:when test="@draw:style='linear' or @draw:style='axial'">linear</xsl:when><xsl:when test="@draw:style='radial'">radar</xsl:when><xsl:when test="@draw:style='ellipsoid'">oval</xsl:when><xsl:when test="@draw:style='square'">square</xsl:when><xsl:when test="@draw:style='rectangular'">rectangle</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:起始浓度"><xsl:value-of select="substring-before(@draw:start-intensity,'%')"/></xsl:attribute>
+ <xsl:attribute name="图:终止浓度"><xsl:value-of select="substring-before(@draw:end-intensity,'%')"/></xsl:attribute>
+ <xsl:variable name="angle">
+ <xsl:value-of select="@draw:angle div 10"/>
+ </xsl:variable>
+ <xsl:attribute name="图:æ¸å˜æ–¹å‘"><xsl:choose><xsl:when test="0&lt;$angle and $angle&lt;25">0</xsl:when><xsl:when test="25&lt;$angle and $angle&lt;70">45</xsl:when><xsl:when test="70&lt;$angle and $angle&lt;115">90</xsl:when><xsl:when test="115&lt;$angle and $angle&lt;160">135</xsl:when><xsl:when test="160&lt;$angle and $angle&lt;205">180</xsl:when><xsl:when test="205&lt;$angle and $angle&lt;250">225</xsl:when><xsl:when test="250&lt;$angle and $angle&lt;295">270</xsl:when><xsl:when test="295&lt;$angle and $angle&lt;340">315</xsl:when><xsl:when test="340&lt;$angle and $angle&lt;360">360</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:边界"><xsl:value-of select="substring-before(@draw:border,'%')"/></xsl:attribute>
+ <xsl:if test="@draw:cx">
+ <xsl:attribute name="图:ç§å­Xä½ç½®"><xsl:value-of select="substring-before(@draw:cx,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@draw:cy">
+ <xsl:attribute name="图:ç§å­Yä½ç½®"><xsl:value-of select="substring-before(@draw:cy,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="图:类型">-2</xsl:attribute>
+ </xsl:for-each>
+ <xsl:attribute name="图:图形引用"><xsl:value-of select="$chart-gradient-name"/></xsl:attribute>
+ </图:æ¸å˜>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="表:对é½æ ¼å¼ç±»åž‹">
+ <xsl:if test="style:chart-properties/@style:rotation-angle">
+ <表:文字旋转角度 uof:locID="s0080">
+ <xsl:value-of select="style:chart-properties/@style:rotation-angle"/>
+ </表:文字旋转角度>
+ </xsl:if>
+ <xsl:if test="style:chart-properties/@fo:text-align">
+ <xsl:element name="表:水平对é½æ–¹å¼">
+ <xsl:attribute name="uof:locID">s0115</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="style:chart-properties/@fo:text-align = 'center'">center</xsl:when>
+ <xsl:when test="style:chart-properties/@fo:text-align = 'end'">right</xsl:when>
+ <xsl:when test="style:chart-properties/@fo:text-align = 'justify'">justify</xsl:when>
+ <xsl:when test="style:chart-properties/@fo:text-align = 'start'">left</xsl:when>
+ <xsl:otherwise>fill</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="(style:chart-properties/@style:vertical-align) or (style:chart-properties/@fo:vertical-align)">
+ <xsl:element name="表:垂直对é½æ–¹å¼">
+ <xsl:attribute name="uof:locID">s0116</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="style:chart-properties/@fo:vertical-align = 'top'">top</xsl:when>
+ <xsl:when test="style:chart-propeoperties/@fo:vertical-align = 'middle'">center</xsl:when>
+ <xsl:when test="style:charties/@fo:vertical-align = 'bottom'">bottom</xsl:when>
+ <xsl:when test="style:chart-prrt-properties/@fo:vertical-align = 'justify'">justify</xsl:when>
+ <xsl:when test="style:chart-properties/@fo:vertical-align = 'top'">top</xsl:when>
+ <xsl:otherwise>distributed</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@fo:margin-left">
+ <表:缩进 uof:locID="s0117">
+ <xsl:value-of select="substring-before(style:paragraph-properties/@fo:margin-left,$uofUnit)"/>
+ </表:缩进>
+ </xsl:if>
+ <xsl:element name="表:文字方å‘">
+ <xsl:attribute name="uof:locID">s0118</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="style:chart-properties/@style:direction = 'ttb'">vertical</xsl:when>
+ <xsl:otherwise>horizontal</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <表:自动æ¢è¡Œ uof:locID="s0120" uof:attrList="值">
+ <xsl:attribute name="表:值">true</xsl:attribute>
+ </表:自动æ¢è¡Œ>
+ <表:缩å°å­—体填充 uof:locID="s0121" uof:attrList="值">
+ <xsl:attribute name="表:值">true</xsl:attribute>
+ </表:缩å°å­—体填充>
+ </xsl:template>
+ <xsl:template name="表:线型">
+ <xsl:variable name="linetype" select="style:graphic-properties/@draw:stroke-dash"/>
+ <xsl:variable name="stroke" select="style:graphic-properties/@draw:stroke"/>
+ <xsl:choose>
+ <xsl:when test="$stroke='solid'">single</xsl:when>
+ <xsl:when test="$stroke='none'">none</xsl:when>
+ <xsl:when test="$stroke='dash'">
+ <xsl:choose>
+ <xsl:when test="$linetype='Ultrafine_20_Dashed'">dash</xsl:when>
+ <xsl:when test="$linetype='Fine_20_Dashed'">dashed-heavy</xsl:when>
+ <xsl:when test="$linetype='Ultrafine_20_2_20_Dots_20_3_20_Dashes'">dot-dash</xsl:when>
+ <xsl:when test="$linetype='Fine_20_Dotted'">dotted</xsl:when>
+ <xsl:when test="$linetype='Line_20_with_20_Fine_20_Dots'">dash-long-heavy</xsl:when>
+ <xsl:when test="$linetype='Fine_20_Dashed_20__28_var_29_'">dash-long</xsl:when>
+ <xsl:when test="$linetype='_33__20_Dashes_20_3_20_Dots_20__28_var_29_'">dash-dot-dot</xsl:when>
+ <xsl:when test="$linetype='Ultrafine_20_Dotted_20__28_var_29_'">dotted-heavy</xsl:when>
+ <xsl:when test="$linetype='Line_20_Style_20_9'">thick</xsl:when>
+ <xsl:when test="$linetype='_32__20_Dots_20_1_20_Dash'">dot-dot-dash</xsl:when>
+ <xsl:when test="$linetype='Dashed_20__28_var_29_'">dash-dot-dot-heavy</xsl:when>
+ <xsl:when test="$linetype='Dash_20_10'">dash-dot-heavy</xsl:when>
+ <xsl:otherwise>single</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>single</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:刻度类型">
+ <xsl:if test="style:chart-properties/@chart:minimum">
+ <表:最å°å€¼ uof:locID="s0065">
+ <xsl:value-of select="style:chart-properties/@chart:minimum"/>
+ </表:最å°å€¼>
+ </xsl:if>
+ <xsl:if test="style:chart-properties/@chart:maximum">
+ <表:最大值 uof:locID="s0066">
+ <xsl:value-of select="style:chart-properties/@chart:maximum"/>
+ </表:最大值>
+ </xsl:if>
+ <xsl:if test="style:chart-properties/@chart:interval-major">
+ <表:主å•ä½ uof:locID="s0067">
+ <xsl:value-of select="style:chart-properties/@chart:interval-major"/>
+ </表:主å•ä½>
+ </xsl:if>
+ <xsl:if test="style:chart-properties/@chart:interval-minor">
+ <表:次å•ä½ uof:locID="s0068">
+ <xsl:value-of select="style:chart-properties/@chart:interval-minor"/>
+ </表:次å•ä½>
+ </xsl:if>
+ <xsl:if test="style:chart-properties/@chart:origin">
+ <表:分类交å‰ç‚¹ uof:locID="s0069">
+ <xsl:value-of select="style:chart-properties/@chart:origin"/>
+ </表:分类交å‰ç‚¹>
+ </xsl:if>
+ <表:å•ä½ uof:locID="s0070">none</表:å•ä½>
+ <表:显示å•ä½ uof:locID="s0071" uof:attrList="值" 表:值="false"/>
+ <表:对数 uof:locID="s0072" uof:attrList="值" 表:值="false"/>
+ </xsl:template>
+ <xsl:template name="å­—:å¥å±žæ€§ç±»åž‹">
+ <xsl:element name="字:字体">
+ <xsl:attribute name="uof:locID">t0088</xsl:attribute>
+ <xsl:attribute name="uof:attrList">西文字体引用 中文字体引用 特殊字体引用 西文绘制 å­—å· ç›¸å¯¹å­—å· é¢œè‰²</xsl:attribute>
+ <xsl:if test="style:text-properties/@fo:font-size or style:text-properties/@style:font-size-asian or style:text-properties/@style:font-size-complex">
+ <xsl:choose>
+ <xsl:when test="contains(style:text-properties/@fo:font-size,'%') or contains(style:text-properties/@style:font-size-asian,'%')">
+ <xsl:attribute name="å­—:相对字å·"><xsl:choose><xsl:when test="style:text-properties/@fo:font-size"><xsl:value-of select="substring-before(style:text-properties/@fo:font-size,'%')"/></xsl:when><xsl:when test="style:text-properties/@style:font-size-asian"><xsl:value-of select="substring-before(style:text-properties/@style:font-size-asian,'%')"/></xsl:when></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:å­—å·"><xsl:choose><xsl:when test="style:text-properties/@fo:font-size"><xsl:value-of select="substring-before(style:text-properties/@fo:font-size,'pt')"/></xsl:when><xsl:when test="style:text-properties/@style:font-size-asian"><xsl:value-of select="substring-before(style:text-properties/@style:font-size-asian,'pt')"/></xsl:when><xsl:when test="style:text-properties/@style:font-size-complex"><xsl:value-of select="substring-before(style:text-properties/@style:font-size-complex,'pt')"/></xsl:when></xsl:choose></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:font-family">
+ <xsl:attribute name="字:西文字体引用"><xsl:value-of select="style:text-properties/@fo:font-family"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:font-family-asian">
+ <xsl:attribute name="字:中文字体引用"><xsl:value-of select="style:text-properties/@style:font-family-asian"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select="style:text-properties/@fo:color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="style:text-properties/@style:text-background-color and not(style:text-properties/@style:text-background-color='transparent')">
+ <xsl:element name="å­—:å¡«å……">
+ <xsl:element name="图:图案">
+ <xsl:attribute name="uof:locID">g0036</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 图形引用 å‰æ™¯è‰² 背景色</xsl:attribute>
+ <xsl:if test="style:text-properties/@style:text-background-color">
+ <xsl:attribute name="图:å‰æ™¯è‰²"><xsl:value-of select="style:text-properties/@style:text-background-color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:font-weight or style:text-properties/@style:font-weight-asian">
+ <xsl:element name="字:粗体">
+ <xsl:attribute name="uof:locID">t0089</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:text-properties/@style:font-weight-asian='bold' or style:text-properties/@fo:font-weight='bold'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:font-style or style:text-properties/@style:font-style-asian">
+ <xsl:element name="字:斜体">
+ <xsl:attribute name="uof:locID">t0090</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:text-properties/@fo:font-style='italic' or style:text-properties/@style:font-style-asian='italic'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-line-through-style and not(style:text-properties/@style:text-line-through-style='none')">
+ <xsl:element name="字:删除线">
+ <xsl:attribute name="uof:locID">t0094</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:call-template name="uof:delete线型类型"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-underline">
+ <xsl:element name="字:下划线">
+ <xsl:attribute name="字:类型"><xsl:call-template name="uof:线型类型"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0095</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:if test="style:text-properties/@style:text-underline-color">
+ <xsl:attribute name="字:颜色"><xsl:choose><xsl:when test="style:text-properties/@style:text-underline-color='font-color'">auto</xsl:when><xsl:otherwise><xsl:value-of select="style:text-properties/@style:text-underline-color"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:text-shadow">
+ <xsl:element name="字:阴影">
+ <xsl:attribute name="uof:locID">t0100</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:text-properties/@fo:text-shadow='none'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-emphasize">
+ <xsl:element name="å­—:ç€é‡å·">
+ <xsl:attribute name="uof:locID">t0096</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 颜色 å­—ç€é‡å·</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="style:text-properties/@style:text-emphasize='none'">
+ <xsl:attribute name="å­—:å­—ç€é‡å·">false</xsl:attribute>
+ <xsl:attribute name="字:类型">none</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:å­—ç€é‡å·">true</xsl:attribute>
+ <xsl:attribute name="å­—:类型"><xsl:call-template name="uof:ç€é‡å·ç±»åž‹"><xsl:with-param name="te" select="style:text-properties/@style:text-emphasize"/></xsl:call-template></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="style:text-properties/@fo:color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select="style:text-properties/@fo:color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@text:display">
+ <xsl:element name="å­—:éšè—文字">
+ <xsl:attribute name="uof:locID">t0097</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-outline">
+ <xsl:element name="字:空心">
+ <xsl:attribute name="uof:locID">t0098</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="style:text-properties/@style:text-outline"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:font-relief">
+ <xsl:element name="字:浮雕">
+ <xsl:attribute name="uof:locID">t0099</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:choose><xsl:when test="style:text-properties/@style:font-relief='embossed'">emboss</xsl:when><xsl:when test="style:text-properties/@style:font-relief='engraved'">engrave</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:text-transform or style:text-properties/@fo:font-variant">
+ <xsl:element name="字:醒目字体">
+ <xsl:attribute name="uof:locID">t0101</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:choose><xsl:when test="style:text-properties/@fo:text-transform='uppercase'">uppercase</xsl:when><xsl:when test="style:text-properties/@fo:text-transform='lowercase'">lowercase</xsl:when><xsl:when test="style:text-properties/@fo:text-transform='capitalize'">capital</xsl:when><xsl:when test="style:text-properties/@fo:font-variant='small-caps'">small-caps</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-position">
+ <xsl:element name="å­—:ä½ç½®">
+ <xsl:attribute name="uof:locID">t0102</xsl:attribute>
+ <xsl:value-of select="style:text-properties/@style:text-position"/>
+ </xsl:element>
+ <字:上下标 uof:locID="t0205" uof:attrList="值">
+ <xsl:attribute name="字:值">none</xsl:attribute>
+ </字:上下标>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-scale">
+ <xsl:element name="字:缩放">
+ <xsl:attribute name="uof:locID">t0103</xsl:attribute>
+ <xsl:value-of select="style:text-properties/@style:text-scale"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:letter-spacing">
+ <xsl:element name="å­—:字符间è·">
+ <xsl:attribute name="uof:locID">t0104</xsl:attribute>
+ <xsl:value-of select="style:text-properties/@fo:letter-spacing"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:letter-kerning">
+ <xsl:element name="å­—:调整字间è·">
+ <xsl:attribute name="uof:locID">t015</xsl:attribute>
+ <xsl:value-of select="style:text-properties/@style:letter-kerning"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="uof:ç€é‡å·ç±»åž‹">
+ <xsl:param name="te"/>
+ <xsl:choose>
+ <xsl:when test="$te='disc above' ">disc above</xsl:when>
+ <xsl:when test="$te='circle above' ">circle above</xsl:when>
+ <xsl:when test="$te='dot above' ">dot above</xsl:when>
+ <xsl:when test="$te='accent above' ">accent above</xsl:when>
+ <xsl:when test="$te='dot below' ">dot below</xsl:when>
+ <xsl:when test="$te='circle below' ">circle below</xsl:when>
+ <xsl:when test="$te='disc below' ">disc below</xsl:when>
+ <xsl:when test="$te='accent below' ">accent below</xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="uof:线型类型">
+ <xsl:variable name="spath" select="style:text-properties/@style:text-underline-style"/>
+ <xsl:variable name="wpath" select="style:text-properties/@style:text-underline-width"/>
+ <xsl:variable name="tpath" select="style:text-properties/@style:text-underline-type"/>
+ <xsl:choose>
+ <xsl:when test="$spath='solid' and not($tpath='double' ) and $wpath='auto' ">single</xsl:when>
+ <xsl:when test="$spath='solid' and $tpath='double' and $wpath='auto' ">double</xsl:when>
+ <xsl:when test="$spath='solid' and not($tpath='double' )and $wpath='bold' ">thick</xsl:when>
+ <xsl:when test="$spath='dotted' and not($tpath='double' )and $wpath='auto' ">dotted</xsl:when>
+ <xsl:when test="$spath='dotted' and not($tpath='double' )and $wpath='bold' ">dotted-heavy</xsl:when>
+ <xsl:when test="$spath='dash' and not($tpath='double' )and $wpath='auto' ">dash</xsl:when>
+ <xsl:when test="$spath='dash' and not($tpath='double' )and $wpath='bold' ">dashed-heavy</xsl:when>
+ <xsl:when test="$spath='long-dash' and not($tpath='double' )and $wpath='auto' ">dash-long</xsl:when>
+ <xsl:when test="$spath='long-dash' and not($tpath='double' )and $wpath='bold' ">dash-long-heavy</xsl:when>
+ <xsl:when test="$spath='dot-dash' and not($tpath='double' )and $wpath='auto' ">dot-dash</xsl:when>
+ <xsl:when test="$spath='dot-dash' and not($tpath='double' )and $wpath='bold' ">dash-dot-heavy</xsl:when>
+ <xsl:when test="$spath='dot-dot-dash' and not($tpath='double' )and $wpath='auto' ">dot-dot-dash</xsl:when>
+ <xsl:when test="$spath='dot-dot-dash' and not($tpath='double' )and $wpath='bold' ">dash-dot-dot-heavy</xsl:when>
+ <xsl:when test="$spath='wave' and not($tpath='double' )and $wpath='auto' ">wave</xsl:when>
+ <xsl:when test="$spath='wave' and not($tpath='double' )and $wpath='bold' ">wavy-heavy</xsl:when>
+ <xsl:when test="$spath='wave' and $tpath='double' and $wpath='auto' ">wavy-double</xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="uof:delete线型类型">
+ <xsl:variable name="wpath" select="style:text-properties/@style:text-line-through-width"/>
+ <xsl:variable name="textpath" select="style:text-properties/@style:text-line-through-text"/>
+ <xsl:variable name="umpath" select="style:text-properties/@style:text-underline-mode"/>
+ <xsl:variable name="tmpath" select="style:text-properties/@style:text-line-through-mode"/>
+ <xsl:variable name="tpath" select="style:text-properties/@style:text-line-through-type"/>
+ <xsl:choose>
+ <xsl:when test="$umpath='continuous' and $tmpath='continuous'">single</xsl:when>
+ <xsl:when test="$tpath='double'">double</xsl:when>
+ <xsl:when test="$wpath='bold'">bold</xsl:when>
+ <xsl:when test="$textpath='/'">带/</xsl:when>
+ <xsl:when test="$textpath='X'">带X</xsl:when>
+ <xsl:otherwise>none</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--comment: if input char is Roman,please add a prefix 'Roman_'-->
+ <xsl:template name="General-Char-Transition">
+ <xsl:param name="input-char"/>
+ <xsl:param name="output-type"/>
+ <xsl:choose>
+ <xsl:when test="$input-char='A' or $input-char='a' or $input-char='1' or $input-char='Roman_I' or $input-char='Roman_i' or $input-char='一' or $input-char='壹' or $input-char='甲' or $input-char='å­'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">1</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">a</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">A</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">I</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">i</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">1</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">一</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">1</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">壹</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">1</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">甲</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">å­</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='B' or $input-char='b' or $input-char='2' or $input-char='Roman_II' or $input-char='Roman_ii' or $input-char='二' or $input-char='贰' or $input-char='乙' or $input-char='丑'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">2</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">b</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">B</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">II</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">ii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">ï¼’</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">2</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">è´°</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">2</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">ä¹™</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">丑</xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='C' or $input-char='c' or $input-char='3' or $input-char='Roman_III' or $input-char='Roman_iii' or $input-char='三' or $input-char='å' or $input-char='丙' or $input-char='寅'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">3</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">c</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">C</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">III</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">iii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">3</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">三</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">3</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">å</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">3</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">丙</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">寅</xsl:when>
+ <xsl:otherwise>3</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='D' or $input-char='d' or $input-char='4' or $input-char='Roman_IV' or $input-char='Roman_iv' or $input-char='å››' or $input-char='肆' or $input-char='ä¸' or $input-char='å¯'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">4</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">d</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">D</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">IV</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">iv</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">ï¼”</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å››</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">4</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">肆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">4</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">ä¸</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">å¯</xsl:when>
+ <xsl:otherwise>4</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='E' or $input-char='e' or $input-char='5' or $input-char='Roman_V' or $input-char='Roman_v' or $input-char='五' or $input-char='ä¼' or $input-char='戊' or $input-char='è¾°'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">5</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">e</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">E</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">V</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">v</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">5</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">五</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">5</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">ä¼</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">5</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">戊</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">è¾°</xsl:when>
+ <xsl:otherwise>5</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='F' or $input-char='f' or $input-char='6' or $input-char='Roman_VI' or $input-char='Roman_vi' or $input-char='六' or $input-char='陆' or $input-char='己' or $input-char='巳'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">6</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">f</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">F</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">VI</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">vi</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">ï¼–</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å…­</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">ï¼–</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">陆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">ï¼–</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">å·±</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">å·³</xsl:when>
+ <xsl:otherwise>6</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='G' or $input-char='g' or $input-char='7' or $input-char='Roman_VII' or $input-char='Roman_vii' or $input-char='七' or $input-char='柒' or $input-char='庚' or $input-char='åˆ'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">7</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">g</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">G</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">VII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">vii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">ï¼—</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">七</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">7</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">柒</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">7</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">庚</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">åˆ</xsl:when>
+ <xsl:otherwise>7</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='H' or $input-char='h' or $input-char='8' or $input-char='Roman_VIII' or $input-char='Roman_viii' or $input-char='å…«' or $input-char='æŒ' or $input-char='è¾›' or $input-char='未'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">8</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">h</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">H</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">VIII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">viii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">8</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å…«</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">8</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">æŒ</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">8</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">è¾›</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">未</xsl:when>
+ <xsl:otherwise>8</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='I' or $input-char='i' or $input-char='9' or $input-char='Roman_IX' or $input-char='Roman_ix' or $input-char='ä¹' or $input-char='玖' or $input-char='壬' or $input-char='申'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">9</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">i</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">I</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">IX</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">ix</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">ï¼™</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">ä¹</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">ï¼™</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">玖</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">ï¼™</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">壬</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">申</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='J' or $input-char='j' or $input-char='10' or $input-char='Roman_X' or $input-char='Roman_x' or $input-char='å' or $input-char='拾' or $input-char='癸' or $input-char='é…‰'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">10</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">j</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">J</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">X</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">x</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">10</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">10</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">10</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">癸</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">é…‰</xsl:when>
+ <xsl:otherwise>10</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='K' or $input-char='k' or $input-char='11' or $input-char='Roman_XI' or $input-char='Roman_xi' or $input-char='å一' or $input-char='拾壹' or $input-char='戌'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">11</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">k</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">K</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XI</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xi</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">11</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å一</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">11</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾壹</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">11</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">戌</xsl:when>
+ <xsl:otherwise>11</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='L' or $input-char='l' or $input-char='12' or $input-char='Roman_XII' or $input-char='Roman_xii' or $input-char='å二' or $input-char='拾贰' or $input-char='亥'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">12</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">l</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">L</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">12</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å二</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">12</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾贰</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">12</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">亥</xsl:when>
+ <xsl:otherwise>12</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='M' or $input-char='m' or $input-char='13' or $input-char='Roman_XIII' or $input-char='Roman_xiii' or $input-char='å三' or $input-char='拾å'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">13</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">m</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">M</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XIII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xiii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">13</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å三</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">13</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾å</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">13</xsl:when>
+ <xsl:otherwise>13</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='N' or $input-char='n' or $input-char='14' or $input-char='Roman_XIV' or $input-char='Roman_xiv' or $input-char='åå››' or $input-char='拾肆'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">14</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">n</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">N</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XIV</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xiv</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">14</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">åå››</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">14</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾肆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">14</xsl:when>
+ <xsl:otherwise>14</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='O' or $input-char='o' or $input-char='15' or $input-char='Roman_XV' or $input-char='Roman_xv' or $input-char='å五' or $input-char='拾ä¼'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">15</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">o</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">O</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XV</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xv</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">15</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å五</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">15</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾ä¼</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">15</xsl:when>
+ <xsl:otherwise>15</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='P' or $input-char='p' or $input-char='16' or $input-char='Roman_XVI' or $input-char='Roman_xvi' or $input-char='åå…­' or $input-char='拾陆'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">16</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">p</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">P</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XVI</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xvi</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">16</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">åå…­</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">16</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾陆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">16</xsl:when>
+ <xsl:otherwise>16</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='Q' or $input-char='q' or $input-char='17' or $input-char='Roman_XVII' or $input-char='Roman_xvii' or $input-char='å七' or $input-char='拾柒'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">17</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">q</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">Q</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XVII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xvii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">17</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å七</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">17</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾柒</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">17</xsl:when>
+ <xsl:otherwise>17</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='R' or $input-char='r' or $input-char='18' or $input-char='Roman_XVIII' or $input-char='Roman_xviii' or $input-char='åå…«' or $input-char='拾æŒ'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">18</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">r</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">R</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XVIII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xviii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">18</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">åå…«</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">18</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾æŒ</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">18</xsl:when>
+ <xsl:otherwise>18</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='S' or $input-char='s' or $input-char='19' or $input-char='Roman_XIX' or $input-char='Roman_xix' or $input-char='åä¹' or $input-char='拾玖'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">19</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">s</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">S</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XIX</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xix</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">19</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">åä¹</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">19</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾玖</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">19</xsl:when>
+ <xsl:otherwise>19</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='T' or $input-char='t' or $input-char='20' or $input-char='Roman_XX' or $input-char='Roman_xx' or $input-char='二å' or $input-char='贰拾'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">20</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">t</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">T</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XX</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xx</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">20</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二å</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">20</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">20</xsl:when>
+ <xsl:otherwise>20</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='U' or $input-char='u' or $input-char='21' or $input-char='Roman_XXI' or $input-char='Roman_xxi' or $input-char='二å一' or $input-char='贰拾壹'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">21</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">u</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">U</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXI</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxi</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">21</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二å一</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">21</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾壹</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">21</xsl:when>
+ <xsl:otherwise>21</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='V' or $input-char='v' or $input-char='22' or $input-char='Roman_XXII' or $input-char='Roman_xxii' or $input-char='二å二' or $input-char='贰拾贰'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">22</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">v</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">V</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">22</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二å二</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">22</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾贰</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">22</xsl:when>
+ <xsl:otherwise>22</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='W' or $input-char='w' or $input-char='23' or $input-char='Roman_XXIII' or $input-char='Roman_xxiii' or $input-char='二å三' or $input-char='贰拾å'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">23</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">w</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">W</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXIII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxiii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">23</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二å三</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">23</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾å</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">23</xsl:when>
+ <xsl:otherwise>23</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='X' or $input-char='x' or $input-char='24' or $input-char='Roman_XXIV' or $input-char='Roman_xxiv' or $input-char='二åå››' or $input-char='贰拾肆'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">24</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">x</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">X</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXIV</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxiv</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">24</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二åå››</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">24</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾肆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">24</xsl:when>
+ <xsl:otherwise>24</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='Y' or $input-char='y' or $input-char='25' or $input-char='Roman_XXV' or $input-char='Roman_xxv' or $input-char='二å五' or $input-char='贰拾ä¼'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">25</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">y</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">Y</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXV</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxv</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">25</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二å五</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">25</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾ä¼</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">25</xsl:when>
+ <xsl:otherwise>25</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='Z' or $input-char='z' or $input-char='26' or $input-char='Roman_XXVI' or $input-char='Roman_xxvi' or $input-char='二åå…­' or $input-char='贰拾陆'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">26</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">z</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">Z</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXVI</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxvi</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">26</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二åå…­</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">26</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾陆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">26</xsl:when>
+ <xsl:otherwise>26</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">1</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">a</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">A</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">I</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">i</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">1</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">一</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">1</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">壹</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">1</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--RedOffice comment (Zengjh) end charts-->
+ <!-- 以下模æ¿çš„作用是将网格线的R或者G或者B颜色从å进制转æ¢ä¸º16进制-->
+ <xsl:template name="transform-decimal-to-hexadecimal">
+ <xsl:param name="color-decimal"/>
+ <xsl:variable name="first-number" select="floor($color-decimal div 16)"/>
+ <xsl:variable name="first-char">
+ <xsl:call-template name="decimal-to-hex">
+ <xsl:with-param name="number" select="$first-number"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="second-number" select="$color-decimal - ($first-number * 16)"/>
+ <xsl:variable name="second-char">
+ <xsl:call-template name="decimal-to-hex">
+ <xsl:with-param name="number" select="$second-number"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat($first-char,$second-char)"/>
+ </xsl:template>
+ <!-- 以下模æ¿çš„作用为将0到15的整数转æ¢ä¸º16进制数-->
+ <xsl:template name="decimal-to-hex">
+ <xsl:param name="number"/>
+ <xsl:choose>
+ <xsl:when test="$number=0">0</xsl:when>
+ <xsl:when test="$number=1">1</xsl:when>
+ <xsl:when test="$number=2">2</xsl:when>
+ <xsl:when test="$number=3">3</xsl:when>
+ <xsl:when test="$number=4">4</xsl:when>
+ <xsl:when test="$number=5">5</xsl:when>
+ <xsl:when test="$number=6">6</xsl:when>
+ <xsl:when test="$number=7">7</xsl:when>
+ <xsl:when test="$number=8">8</xsl:when>
+ <xsl:when test="$number=9">9</xsl:when>
+ <xsl:when test="$number=10">a</xsl:when>
+ <xsl:when test="$number=11">b</xsl:when>
+ <xsl:when test="$number=12">c</xsl:when>
+ <xsl:when test="$number=13">d</xsl:when>
+ <xsl:when test="$number=14">e</xsl:when>
+ <xsl:when test="$number='15'">f</xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="setDefaultPageWidth">
+ <xsl:choose>
+ <xsl:when test="$uofUnit='inch'">
+ <xsl:value-of select="'7.9'"/>
+ </xsl:when>
+ <xsl:when test="$uofUnit='cm'">
+ <xsl:value-of select="'20.999'"/>
+ </xsl:when>
+ <xsl:when test="$uofUnit='mm'">
+ <xsl:value-of select="'200.99'"/>
+ </xsl:when>
+ <xsl:when test="$uofUnit='pt'">
+ <xsl:value-of select="'7870'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'20.990'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="setDefaultPageHeight">
+ <xsl:choose>
+ <xsl:when test="$uofUnit='inch'">
+ <xsl:value-of select="'10.14'"/>
+ </xsl:when>
+ <xsl:when test="$uofUnit='cm'">
+ <xsl:value-of select="'26.999'"/>
+ </xsl:when>
+ <xsl:when test="$uofUnit='mm'">
+ <xsl:value-of select="'269.99'"/>
+ </xsl:when>
+ <xsl:when test="$uofUnit='pt'">
+ <xsl:value-of select="'1023'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'26.990'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--ro000179 chenjh-->
+ <xsl:template name="create-condition-format">
+ <xsl:variable name="unique-map-cellstyle" select="/office:document/office:automatic-styles/style:style[style:map and not(style:map/@style:condition=preceding-sibling::style:style/style:map/@style:condition and style:map/@style:apply-style-name=preceding-sibling::style:style/style:map/@style:apply-style-name and style:map/@style:base-cell-address=preceding-sibling::style:style/style:map/@style:base-cell-address)]"/>
+ <xsl:for-each select="$unique-map-cellstyle">
+ <xsl:call-template name="create-cell-condition-format"/>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="create-cell-condition-format">
+ <xsl:element name="表:æ¡ä»¶æ ¼å¼åŒ–">
+ <xsl:attribute name="uof:locID">s0017</xsl:attribute>
+ <xsl:element name="表:区域">
+ <xsl:attribute name="uof:locID">s0007</xsl:attribute>
+ <xsl:variable name="cellstylenamelist">
+ <xsl:call-template name="createcellnamelist">
+ <xsl:with-param name="list">
+ <xsl:value-of select="/office:document/office:automatic-styles/style:style[style:map and (style:map/@style:condition=current()/style:map/@style:condition and style:map/@style:apply-style-name=current()/style:map/@style:apply-style-name and style:map/@style:base-cell-address=current()/style:map/@style:base-cell-address)]"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <!-- <xsl:value-of select="concat($cellstylenamelist,'end')"/>-->
+ <xsl:variable name="left-top">
+ <xsl:call-template name="search-left-top">
+ <xsl:with-param name="cellstylenamelist" select="$cellstylenamelist"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <!-- <xsl:value-of select="concat('qqqqqqqq ',$left-top)"/> -->
+ <xsl:variable name="after-tanslated-left-top">
+ <xsl:call-template name="translate-left-top-condition">
+ <xsl:with-param name="left-top" select="$left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat($after-tanslated-left-top,':',style:map/@style:base-cell-address)"/>
+ </xsl:element>
+ <xsl:for-each select="style:map">
+ <xsl:element name="表:æ¡ä»¶">
+ <xsl:attribute name="uof:locID">s0019</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:variable name="conditiontext" select="@style:condition"/>
+ <xsl:attribute name="表:类型"><xsl:choose><xsl:when test="contains($conditiontext,'cell-content')">cell value</xsl:when><xsl:when test="contains($conditiontext,'is-true-formula')">formula</xsl:when><xsl:otherwise>æ¡ä»¶å­—符串错误!</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:element name="表:æ“作ç ">
+ <xsl:attribute name="uof:locID">s0009</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="starts-with($conditiontext,'is-true-formula')">equal to</xsl:when>
+ <xsl:when test="starts-with($conditiontext,'cell-content()')">
+ <xsl:variable name="operatortext" select="substring-after($conditiontext,'cell-content()')"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($operatortext,'&lt;=')">less than or equal to</xsl:when>
+ <xsl:when test="starts-with($operatortext,'&gt;=')">greater than or equal to</xsl:when>
+ <xsl:when test="starts-with($operatortext,'&lt;')">less than</xsl:when>
+ <xsl:when test="starts-with($operatortext,'&gt;')">greater than</xsl:when>
+ <xsl:when test="starts-with($operatortext,'!=')">not equal to</xsl:when>
+ <xsl:when test="starts-with($operatortext,'=')">equal to</xsl:when>
+ <!-- 注æ„:uof有的å¦å‡ ç§æ“作ç åœ¨oo中没有,他们是contain,not contain,start with,not start with, end with,not end with-->
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with($conditiontext,'cell-content-is-between')">between</xsl:when>
+ <xsl:when test="starts-with($conditiontext,'cell-content-is-not-between')">not between</xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="表:第一æ“作数">
+ <xsl:attribute name="uof:locID">s0010</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="starts-with($conditiontext,'is-true-formula')">
+ <xsl:value-of select="substring(substring-after($conditiontext,'is-true-formula('),1,string-length($conditiontext)-1-string-length('is-true-formula('))"/>
+ </xsl:when>
+ <xsl:when test="starts-with($conditiontext,'cell-content-is-between')">
+ <xsl:value-of select="substring-before(substring-after($conditiontext,'cell-content-is-between('),',')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($conditiontext,'cell-content-is-not-between')">
+ <xsl:value-of select="substring-before(substring-after($conditiontext,'cell-content-is-not-between('),',')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($conditiontext,'cell-content()')">
+ <xsl:variable name="operatortext" select="substring-after($conditiontext,'cell-content()')"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($operatortext,'&lt;=')">
+ <xsl:value-of select="substring-after($conditiontext,'&lt;=')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operatortext,'&gt;=')">
+ <xsl:value-of select="substring-after($conditiontext,'&gt;=')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operatortext,'&lt;')">
+ <xsl:value-of select="substring-after($conditiontext,'&lt;')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operatortext,'&gt;')">
+ <xsl:value-of select="substring-after($conditiontext,'&gt;')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operatortext,'!=')">
+ <xsl:value-of select="substring-after($conditiontext,'!=')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operatortext,'=')">
+ <xsl:value-of select="substring-after($conditiontext,'=')"/>
+ </xsl:when>
+ <!-- 注æ„:uof有的å¦å‡ ç§æ“作ç åœ¨oo中没有,他们是contain,not contain,start with,not start with, end with,not end with-->
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="starts-with($conditiontext,'cell-content-is-between') or starts-with($conditiontext,'cell-content-is-not-between')">
+ <xsl:element name="表:第二æ“作数">
+ <xsl:attribute name="uof:locID">s0011</xsl:attribute>
+ <xsl:value-of select="substring(substring-after($conditiontext,','),1,string-length(substring-after($conditiontext,','))-1)"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="表:æ ¼å¼">
+ <xsl:variable name="apply-style-name" select="@style:apply-style-name"/>
+ <xsl:attribute name="uof:locID">s0023</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="表:å¼æ ·å¼•ç”¨"><xsl:value-of select="$apply-style-name"/></xsl:attribute>
+ <!--xsl:attribute name="表:å¼æ ·å¼•ç”¨"><xsl:value-of select="generate-id(//style:style[@style:name=$apply-style-name])"/></xsl:attribute-->
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="createcellnamelist">
+ <xsl:param name="list"/>
+ <xsl:choose>
+ <xsl:when test="$list">
+ <xsl:variable name="first" select="$list[1]"/>
+ <xsl:variable name="stringlist-of-rest">
+ <xsl:call-template name="createcellnamelist">
+ <xsl:with-param name="list" select="$list[position()!=1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat($first/@style:name,' ',$stringlist-of-rest)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="search-left-top">
+ <xsl:param name="cellstylenamelist"/>
+ <xsl:choose>
+ <xsl:when test="$cellstylenamelist!=''">
+ <xsl:variable name="first-cellstylename" select="substring-before($cellstylenamelist, ' ')"/>
+ <xsl:variable name="tableslist" select="/office:document/office:body/office:spreadsheet/table:table"/>
+ <xsl:variable name="first-left-top">
+ <xsl:call-template name="search-left-top-with-one-cellstyle">
+ <xsl:with-param name="cellstylename" select="$first-cellstylename"/>
+ <xsl:with-param name="tableslist" select="$tableslist"/>
+ <xsl:with-param name="return" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="rest-left-top">
+ <xsl:call-template name="search-left-top">
+ <xsl:with-param name="cellstylenamelist" select="substring-after($cellstylenamelist,' ')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="final-left-top">
+ <xsl:choose>
+ <xsl:when test="$rest-left-top =''">
+ <xsl:value-of select="$first-left-top"/>
+ </xsl:when>
+ <xsl:when test="$first-left-top =''">
+ <xsl:value-of select="$rest-left-top"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="after-compared-left-top">
+ <xsl:call-template name="compare-two-left-top">
+ <xsl:with-param name="first" select="$first-left-top"/>
+ <xsl:with-param name="second" select="$rest-left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$after-compared-left-top"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$final-left-top"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="translate-left-top-condition">
+ <xsl:param name="left-top"/>
+ <xsl:variable name="column-number" select="substring-before(substring-after($left-top,'.'),' ')"/>
+ <xsl:variable name="column-number1">
+ <xsl:value-of select="floor( $column-number div 26 )"/>
+ </xsl:variable>
+ <xsl:variable name="column-number2">
+ <xsl:value-of select="$column-number mod 26"/>
+ </xsl:variable>
+ <xsl:variable name="column-character1">
+ <xsl:call-template name="number-to-character">
+ <xsl:with-param name="number" select="$column-number1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="column-character2">
+ <xsl:call-template name="number-to-character">
+ <xsl:with-param name="number" select="$column-number2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat(substring-before($left-top,'.'),'.',$column-character1,$column-character2,substring-after($left-top,' '))"/>
+ </xsl:template>
+ <xsl:template name="search-left-top-with-one-cellstyle">
+ <xsl:param name="cellstylename"/>
+ <xsl:param name="tableslist"/>
+ <xsl:param name="return"/>
+ <xsl:choose>
+ <xsl:when test="$tableslist and $return=''">
+ <xsl:variable name="firsttablerows" select="$tableslist[1]//table:table-row"/>
+ <xsl:variable name="first-left-top">
+ <xsl:call-template name="search-left-top-with-one-cellstyle-inatable">
+ <xsl:with-param name="row-num" select="'1'"/>
+ <xsl:with-param name="firsttablerows" select="$firsttablerows"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="return" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="rest-left-top">
+ <xsl:call-template name="search-left-top-with-one-cellstyle">
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="tableslist" select="$tableslist[position()!=1]"/>
+ <xsl:with-param name="return" select="$first-left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-left-top!=''">
+ <xsl:value-of select="$first-left-top"/>
+ </xsl:when>
+ <xsl:when test="$rest-left-top!=''">
+ <xsl:value-of select="$rest-left-top"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="compare-two-left-top">
+ <xsl:param name="first"/>
+ <xsl:param name="second"/>
+ <xsl:variable name="first-column" select="substring-before(substring-after($first,'.'),' ')"/>
+ <xsl:variable name="first-row" select="substring-after($first,' ')"/>
+ <xsl:variable name="second-column" select="substring-before(substring-after($second,'.'),' ')"/>
+ <xsl:variable name="second-row" select="substring-after($second,' ')"/>
+ <xsl:choose>
+ <xsl:when test="$first-row&lt;$second-row">
+ <xsl:value-of select="$first"/>
+ </xsl:when>
+ <xsl:when test="$first-row=$second-row">
+ <xsl:choose>
+ <xsl:when test="$first-column&lt;=$second-column">
+ <xsl:value-of select="$first"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$second"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$second"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="search-left-top-with-one-cellstyle-inatable">
+ <xsl:param name="row-num"/>
+ <xsl:param name="firsttablerows"/>
+ <xsl:param name="cellstylename"/>
+ <xsl:param name="return"/>
+ <xsl:choose>
+ <xsl:when test="$firsttablerows and $return=''">
+ <xsl:variable name="firstcells" select="$firsttablerows[1]/table:table-cell"/>
+ <xsl:variable name="first-left-top">
+ <xsl:call-template name="search-left-top-with-one-cellstyle-inarow">
+ <xsl:with-param name="row-num" select="$row-num"/>
+ <xsl:with-param name="column-num" select="'1'"/>
+ <xsl:with-param name="firstcells" select="$firstcells"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="return" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="row-num-p">
+ <xsl:choose>
+ <xsl:when test="$firsttablerows[1]/@table:number-rows-repeated">
+ <xsl:value-of select="$row-num+ $firsttablerows[1]/@table:number-rows-repeated"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$row-num+1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="rest-left-top">
+ <xsl:call-template name="search-left-top-with-one-cellstyle-inatable">
+ <xsl:with-param name="row-num" select="$row-num-p"/>
+ <xsl:with-param name="firsttablerows" select="$firsttablerows[position()!=1]"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="return" select="$first-left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-left-top!=''">
+ <xsl:value-of select="$first-left-top"/>
+ </xsl:when>
+ <xsl:when test="$rest-left-top !=''">
+ <xsl:value-of select="$rest-left-top "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="search-left-top-with-one-cellstyle-inarow">
+ <xsl:param name="row-num"/>
+ <xsl:param name="column-num"/>
+ <xsl:param name="firstcells"/>
+ <xsl:param name="cellstylename"/>
+ <xsl:param name="return"/>
+ <xsl:choose>
+ <xsl:when test="$firstcells and $return=''">
+ <xsl:variable name="firstcell" select="$firstcells[1]"/>
+ <xsl:variable name="first-left-top">
+ <xsl:call-template name="search-left-top-with-one-cellstyle-inacell">
+ <xsl:with-param name="row-num" select="$row-num"/>
+ <xsl:with-param name="column-num" select="$column-num"/>
+ <xsl:with-param name="cell" select="$firstcell"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="column-num-p">
+ <xsl:choose>
+ <xsl:when test="$firstcell/@table:number-columns-repeated">
+ <xsl:value-of select="$column-num+ $firstcell/@table:number-columns-repeated"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$column-num+ 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="rest-left-top">
+ <xsl:call-template name="search-left-top-with-one-cellstyle-inarow">
+ <xsl:with-param name="row-num" select="$row-num"/>
+ <xsl:with-param name="column-num" select="$column-num-p"/>
+ <xsl:with-param name="firstcells" select="$firstcells[position()!=1]"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="return" select="$first-left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-left-top!=''">
+ <xsl:value-of select="$first-left-top"/>
+ </xsl:when>
+ <xsl:when test="$rest-left-top !=''">
+ <xsl:value-of select="$rest-left-top "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="search-left-top-with-one-cellstyle-inacell">
+ <xsl:param name="row-num"/>
+ <xsl:param name="column-num"/>
+ <xsl:param name="cell"/>
+ <xsl:param name="cellstylename"/>
+ <xsl:choose>
+ <xsl:when test="$cell/@table:style-name">
+ <xsl:if test="$cell/@table:style-name=$cellstylename">
+ <xsl:value-of select="concat($cell/ancestor::table:table/@table:name,'.',$column-num,' ',$row-num)"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="style-is-default">
+ <xsl:call-template name="is-default-or-not">
+ <xsl:with-param name="column-num" select="$column-num"/>
+ <xsl:with-param name="cell" select="$cell"/>
+ <xsl:with-param name="preceding-cellstylename" select="''"/>
+ <xsl:with-param name="temp-num" select="'0'"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="table-collumns" select="$cell/ancestor::table:table//table:table-column "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$style-is-default='yes' ">
+ <xsl:value-of select="concat($cell/ancestor::table:table/@table:name,'.',$column-num,' ',$row-num)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="is-default-or-not">
+ <xsl:param name="column-num"/>
+ <xsl:param name="cell"/>
+ <xsl:param name="preceding-cellstylename"/>
+ <xsl:param name="temp-num"/>
+ <xsl:param name="cellstylename"/>
+ <xsl:param name="table-collumns"/>
+ <xsl:choose>
+ <xsl:when test="$temp-num&lt;$column-num">
+ <xsl:variable name="firstcolumn">
+ <xsl:choose>
+ <xsl:when test="$table-collumns[1]/@table:number-columns-repeated">
+ <xsl:value-of select="$table-collumns[1]/@table:number-columns-repeated"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'1'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="preceding-cellstylename-to-param">
+ <xsl:choose>
+ <xsl:when test="$table-collumns[1]/@table:default-cell-style-name">
+ <xsl:value-of select="$table-collumns[1]/@table:default-cell-style-name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="is-default-or-not">
+ <xsl:with-param name="column-num" select="$column-num"/>
+ <xsl:with-param name="temp-num" select="$temp-num + $firstcolumn"/>
+ <xsl:with-param name="preceding-cellstylename" select="$preceding-cellstylename-to-param"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="table-collumns" select="$table-collumns[position()!=1]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$cellstylename=$preceding-cellstylename">
+ <xsl:value-of select="'yes'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'no'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="table:tracked-changes">
+ <xsl:for-each select="/office:document/office:body/office:spreadsheet/table:tracked-changes">
+ <xsl:if test="table:cell-content-change/table:cell-address">
+ <xsl:variable name="row" select="table:cell-content-change/table:cell-address/@table:row"/>
+ <xsl:variable name="column" select="table:cell-content-change/table:cell-address/@table:column"/>
+ <xsl:element name="字:修订开始">
+ <xsl:attribute name="uof:locID">t0206</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 类型 修订信æ¯å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="concat($row,'-',$column)"/></xsl:attribute>
+ <xsl:attribute name="字:类型">format</xsl:attribute>
+ <xsl:if test="table:cell-content-change/office:change-info and table:cell-content-change/table:previous">
+ <xsl:variable name="creator" select="table:cell-content-change/office:change-info/dc:creator"/>
+ <xsl:variable name="date" select="table:cell-content-change/office:change-info/dc:date"/>
+ <xsl:variable name="text" select="table:cell-content-change/table:previous/table:change-track-table-cell/text:p"/>
+ <xsl:attribute name="å­—:修订信æ¯å¼•ç”¨"><xsl:value-of select="concat($creator,'+',$date,'%',$text)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:element name="å­—:修订结æŸ">
+ <xsl:attribute name="uof:locID">t0207</xsl:attribute>
+ <xsl:attribute name="uof:attrList">开始标识引用</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="office:font-face-decls">
+ <uof:字体集 uof:locID="u0040">
+ <xsl:for-each select="style:font-face">
+ <xsl:element name="uof:字体声明">
+ <xsl:attribute name="uof:attrList">标识符 å称 字体æ—</xsl:attribute>
+ <xsl:attribute name="uof:locID">u0041</xsl:attribute>
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="translate(@style:name,' ','_')"/></xsl:attribute>
+ <xsl:attribute name="uof:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="uof:字体æ—"><xsl:value-of select="@svg:font-family"/></xsl:attribute>
+ <!-- added by glu, for process special fonts e.g. Marlett, -->
+ <!--chengxz 060821 delete uof:字符集,because there is no this attr-->
+ <!--xsl:if test="@style:font-charset= '02'">
+ <xsl:attribute name="uof:字符集">x-symbol</xsl:attribute>
+ </xsl:if-->
+ <!--xsl:if test="@style:font-family-generic">
+ <xsl:choose>
+ <xsl:when test="@style:font-family-generic = 'swiss'">
+ <xsl:attribute name="uof:字体æ—">Swiss</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='modern'">
+ <xsl:attribute name="uof:字体æ—">Modern</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic='roman'">
+ <xsl:attribute name="uof:字体æ—">Roman</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='script'">
+ <xsl:attribute name="uof:字体æ—">Script</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='decorative'">
+ <xsl:attribute name="uof:字体æ—">Decorative</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='system'">
+ <xsl:attribute name="uof:字体æ—">System</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="uof:字体æ—">System</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if-->
+ <!--xsl:if test="@style:font-pitch">
+ <xsl:attribute name="uof:å­—å·">12</xsl:attribute>
+ </xsl:if-->
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:apply-templates select="style:font-face"/>
+ </uof:字体集>
+ </xsl:template>
+ <xsl:key name="styles" match="/*/office:styles/style:style | /*/office:automatic-styles/style:style" use="@style:name"/>
+ <xsl:template match="style:style" mode="styles">
+ <xsl:param name="isAutomatic"/>
+ <xsl:param name="styleName" select="@style:name"/>
+ <xsl:choose>
+ <xsl:when test="@style:family='text'">
+ <xsl:element name="uof:å¥å¼æ ·">
+ <xsl:attribute name="uof:locID">u0043</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="字:类型">auto</xsl:attribute>
+ <xsl:call-template name="字:字体"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@style:family='paragraph'">
+ <xsl:element name="uof:段è½å¼æ ·">
+ <xsl:attribute name="uof:locID">u0044</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨ åŽç»§å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="字:类型">auto</xsl:attribute>
+ <xsl:attribute name="å­—:基å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:parent-style-name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ </xsl:element>
+ <xsl:if test="style:text-properties">
+ <xsl:element name="uof:å¥å¼æ ·">
+ <xsl:attribute name="uof:locID">u0043</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="字:类型">custum</xsl:attribute>
+ <xsl:attribute name="å­—:基å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:parent-style-name"/></xsl:attribute>
+ <xsl:call-template name="字:字体"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="uof:å•å…ƒæ ¼å¼æ ·">
+ <xsl:attribute name="uof:locID">u0046</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型</xsl:attribute>
+ <xsl:attribute name="表:标识符"><xsl:value-of select="$styleName"/></xsl:attribute>
+ <xsl:attribute name="表:类型"><xsl:choose><xsl:when test="ancestor::office:automatic-styles">auto</xsl:when><xsl:when test="ancestor::office:styles">custom</xsl:when><xsl:otherwise>default</xsl:otherwise></xsl:choose></xsl:attribute>
+ <!--xsl:attribute name="表:基å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:parent-style-name"/></xsl:attribute-->
+ <xsl:choose>
+ <xsl:when test="style:map">
+ <xsl:attribute name="表:å称"><xsl:value-of select="style:map/@style:apply-style-name"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="表:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="not($isAutomatic)">
+ <xsl:choose>
+ <xsl:when test="$styleName='Default'">
+ <xsl:attribute name="表:å称"><xsl:value-of select="'Normal'"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="表:å称"><xsl:value-of select="$styleName"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <!--xsl:if test="@style:parent-style-name">
+ <xsl:attribute name="表:基å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:parent-style-name"/></xsl:attribute>
+ </xsl:if-->
+ <!--chengxz chang the order-->
+ <xsl:variable name="styleProperties" select="key('styles', $styleName)/*"/>
+ <xsl:call-template name="Font">
+ <xsl:with-param name="styleProperties" select="$styleProperties"/>
+ </xsl:call-template>
+ <xsl:call-template name="Alignment">
+ <xsl:with-param name="styleProperties" select="$styleProperties"/>
+ </xsl:call-template>
+ <!--chenjh changed 1103-->
+ <!--xsl:if test="/*/office:automatic-styles/style:style[@style:name=/*/office:body/table:table/table:table-row/table:table-cell/@table:style-name]/style:properties/@fo:border"-->
+ <xsl:if test="@style:data-style-name">
+ <!--RedOffice Comment from Zengjh:UOF0020 2006-04-26-->
+ <xsl:call-template name="NumberFormat">
+ <xsl:with-param name="temp-style" select="@style:data-style-name"/>
+ </xsl:call-template>
+ <!--RedOffice comment (Zengjh) end-->
+ </xsl:if>
+ <xsl:call-template name="Border">
+ <xsl:with-param name="styleProperties" select="$styleProperties"/>
+ <!--xsl:with-param name="styleProperties" select="/*/office:automatic-styles/style:style"/-->
+ </xsl:call-template>
+ <!--/xsl:if-->
+ <!--chenjh end 1103-->
+ <xsl:call-template name="Interior">
+ <xsl:with-param name="styleProperties" select="$styleProperties"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="字:字体">
+ <xsl:element name="字:字体">
+ <xsl:attribute name="uof:locID">t0088</xsl:attribute>
+ <xsl:attribute name="uof:attrList">西文字体引用 中文字体引用 特殊字体引用 西文绘制 å­—å· ç›¸å¯¹å­—å· é¢œè‰²</xsl:attribute>
+ <xsl:if test="style:text-properties/@fo:font-size or style:text-properties/@fo:font-size-asian or style:text-properties/@style:font-size-asian or style:text-properties/@style:font-size">
+ <xsl:attribute name="å­—:å­—å·"><xsl:choose><xsl:when test="style:text-properties/@fo:font-size"><xsl:value-of select="substring-before(style:text-properties/@fo:font-size,'pt')"/></xsl:when><xsl:when test="style:text-properties/@fo:font-size-asian"><xsl:value-of select="substring-before(style:text-properties/@fo:font-size-asian,'pt')"/></xsl:when><xsl:when test="style:text-properties/@style:font-size-asian"><xsl:value-of select="substring-before(style:text-properties/@style:font-size-asian,'pt')"/></xsl:when><xsl:when test="style:text-properties/@style:font-size"><xsl:value-of select="substring-before(style:text-properties/@style:font-size,'pt')"/></xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:font-name">
+ <xsl:attribute name="字:西文字体引用"><xsl:value-of select="style:text-properties/@style:font-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:font-name-complex">
+ <xsl:attribute name="字:中文字体引用"><xsl:value-of select="style:text-properties/@style:font-name-complex"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select="style:text-properties/@fo:color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="style:text-properties/@fo:font-weight or style:text-properties/@style:font-weight-asian">
+ <xsl:element name="字:粗体">
+ <xsl:attribute name="uof:locID">t0089</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:text-properties/@style:font-weight-asian='bold' or style:text-properties/@fo:font-weight='bold'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:font-style or style:text-properties/@style:font-style-asian">
+ <xsl:element name="字:斜体">
+ <xsl:attribute name="uof:locID">t0090</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:text-properties/@fo:font-style='italic' or style:text-properties/@style:font-style-asian='italic'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-line-through-style and not(style:text-properties/@style:text-line-through-style='none')">
+ <xsl:element name="字:删除线">
+ <xsl:attribute name="uof:locID">t0094</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:call-template name="uof:delete线型类型"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-underline-style">
+ <xsl:element name="字:下划线">
+ <xsl:attribute name="字:类型"><xsl:call-template name="uof:线型类型"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0095</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:if test="style:text-properties/@style:text-underline-color">
+ <xsl:attribute name="字:颜色"><xsl:choose><xsl:when test="style:text-properties/@style:text-underline-color='font-color'">auto</xsl:when><xsl:otherwise><xsl:value-of select="style:text-properties/@style:text-underline-color"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:text-shadow">
+ <xsl:element name="字:阴影">
+ <xsl:attribute name="uof:locID">t0100</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:text-properties/@fo:text-shadow='none'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-position">
+ <xsl:element name="å­—:ä½ç½®">
+ <xsl:attribute name="uof:locID">t0102</xsl:attribute>
+ <xsl:value-of select="style:text-properties/@style:text-position"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <!--RedOffice Comment from Zengjh:UOF0020 2006-04-01 Based on Original-->
+ <xsl:template name="NumberFormat">
+ <xsl:param name="temp-style"/>
+ <xsl:for-each select="(/*/office:styles/child::*[@style:name=$temp-style]) | (/*/office:automatic-styles/child::*[@style:name=$temp-style])">
+ <表:æ•°å­—æ ¼å¼ uof:locID="s0021" uof:attrList="分类å称 æ ¼å¼ç ">
+ <xsl:attribute name="表:分类å称"><xsl:choose><xsl:when test="name(.)='number:currency-style'">currency</xsl:when><xsl:when test="name(.)='number:percentage-style'">percentage</xsl:when><xsl:when test="name(.)='number:date-style'">date</xsl:when><xsl:when test="name(.)='number:time-style'">time</xsl:when><xsl:when test="name(.)='number:boolean-style'">custom</xsl:when><xsl:when test="name(.)='number:text-style'">text</xsl:when><xsl:when test="name(.)='number:number-style'"><xsl:choose><xsl:when test="number:fraction">fraction</xsl:when><xsl:when test="number:scientific-number">scientific</xsl:when><xsl:otherwise>number</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>general</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="表:æ ¼å¼ç "><xsl:call-template name="element-attribute"/><xsl:for-each select="style:map"><xsl:text>[</xsl:text><xsl:value-of select="@style:condition"/><xsl:text>]</xsl:text><xsl:variable name="apply-style" select="@style:apply-style-name"/><xsl:for-each select="../../child::*[@style:name=$apply-style]/*"><xsl:call-template name="general-number-format"/></xsl:for-each><xsl:text>;</xsl:text></xsl:for-each><xsl:for-each select="*[not(name(.)='style:map')]"><xsl:call-template name="general-number-format"/></xsl:for-each></xsl:attribute>
+ </表:æ•°å­—æ ¼å¼>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="general-number-format">
+ <xsl:choose>
+ <xsl:when test="name(.)='style:text-properties'">
+ <xsl:call-template name="general-color-format"/>
+ </xsl:when>
+ <xsl:when test="name(.)='number:text'">&quot;<xsl:value-of select="text()"/>&quot;</xsl:when>
+ <xsl:when test="name(.)='number:text-content' ">@</xsl:when>
+ <xsl:when test="name(.)='number:boolean'">boolean</xsl:when>
+ <xsl:when test="name(.)='number:currency-symbol'">
+ <xsl:call-template name="general-currency-format"/>
+ </xsl:when>
+ <xsl:when test="name(.)='number:fraction' or name(.)='number:number' or name(.)='number:scientific-number'">
+ <xsl:if test="@number:min-integer-digits and not(@number:grouping)">
+ <xsl:choose>
+ <xsl:when test="@number:min-integer-digits='0'">#</xsl:when>
+ <xsl:when test="@number:min-integer-digits='1'">0</xsl:when>
+ <xsl:when test="@number:min-integer-digits='2'">00</xsl:when>
+ <xsl:when test="@number:min-integer-digits='3'">000</xsl:when>
+ <xsl:when test="@number:min-integer-digits='4'">0000</xsl:when>
+ <xsl:when test="@number:min-integer-digits='5'">00000</xsl:when>
+ <xsl:when test="@number:min-integer-digits='6'">000000</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@number:min-integer-digits and @number:grouping">
+ <xsl:choose>
+ <xsl:when test="@number:min-integer-digits='0'">#,###</xsl:when>
+ <xsl:when test="@number:min-integer-digits='1'">#,##0</xsl:when>
+ <xsl:when test="@number:min-integer-digits='2'">#,#00</xsl:when>
+ <xsl:when test="@number:min-integer-digits='3'">#,000</xsl:when>
+ <xsl:when test="@number:min-integer-digits='4'">##0,000</xsl:when>
+ <xsl:when test="@number:min-integer-digits='5'">#00,000</xsl:when>
+ <xsl:when test="@number:min-integer-digits='6'">#,000,000</xsl:when>
+ <xsl:when test="@number:min-integer-digits='7'">##0,000,000</xsl:when>
+ <xsl:when test="@number:min-integer-digits='8'">#,#00,000,000</xsl:when>
+ <xsl:otherwise>#,##0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@number:decimal-places and not(@number:decimal-replacement)">
+ <xsl:choose>
+ <xsl:when test="@number:decimal-places='0'"/>
+ <xsl:when test="@number:decimal-places='1'">.0</xsl:when>
+ <xsl:when test="@number:decimal-places='2'">.00</xsl:when>
+ <xsl:when test="@number:decimal-places='3'">.000</xsl:when>
+ <xsl:when test="@number:decimal-places='4'">.0000</xsl:when>
+ <xsl:when test="@number:decimal-places='5'">.00000</xsl:when>
+ <xsl:when test="@number:decimal-places='6'">.000000</xsl:when>
+ <xsl:otherwise>.00</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@number:decimal-places and @number:decimal-replacement">
+ <xsl:choose>
+ <xsl:when test="@number:decimal-places='0'"/>
+ <xsl:when test="@number:decimal-places='1'">.#</xsl:when>
+ <xsl:when test="@number:decimal-places='2'">.##</xsl:when>
+ <xsl:when test="@number:decimal-places='3'">.###</xsl:when>
+ <xsl:when test="@number:decimal-places='4'">.####</xsl:when>
+ <xsl:when test="@number:decimal-places='5'">.#####</xsl:when>
+ <xsl:when test="@number:decimal-places='6'">.######</xsl:when>
+ <xsl:otherwise>.##</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@number:display-factor">
+ <xsl:choose>
+ <xsl:when test="@number:display-factor='1000'">,</xsl:when>
+ <xsl:when test="@number:display-factor='1000000'">,,</xsl:when>
+ <xsl:when test="@number:display-factor='1000000000'">,,,</xsl:when>
+ <xsl:when test="@number:display-factor='1000000000000000'">,,,,</xsl:when>
+ <xsl:when test="@number:display-factor='1000000000000000000'">,,,,,</xsl:when>
+ <xsl:when test="@number:display-factor='1000000000000000000000'">,,,,,</xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@number:min-exponent-digits">
+ <xsl:choose>
+ <xsl:when test="@number:min-exponent-digits='1'">E+0</xsl:when>
+ <xsl:when test="@number:min-exponent-digits='2'">E+00</xsl:when>
+ <xsl:when test="@number:min-exponent-digits='3'">E+000</xsl:when>
+ <xsl:when test="@number:min-exponent-digits='4'">E+0000</xsl:when>
+ <xsl:when test="@number:min-exponent-digits='5'">E+00000</xsl:when>
+ <xsl:when test="@number:min-exponent-digits='6'">E+000000</xsl:when>
+ <xsl:otherwise>E+00</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@number:min-numerator-digits">
+ <xsl:choose>
+ <xsl:when test="@number:min-numerator-digits='1' "> ?</xsl:when>
+ <xsl:when test="@number:min-numerator-digits='2' "> ??</xsl:when>
+ <xsl:when test="@number:min-numerator-digits='3' "> ???</xsl:when>
+ <xsl:when test="@number:min-numerator-digits='4' "> ????</xsl:when>
+ <xsl:when test="@number:min-numerator-digits='5' "> ?????</xsl:when>
+ <xsl:when test="@number:min-numerator-digits='6' "> ??????</xsl:when>
+ <xsl:otherwise> ???</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@number:min-denominator-digits">
+ <xsl:choose>
+ <xsl:when test="@number:min-denominator-digits='1' ">/?</xsl:when>
+ <xsl:when test="@number:min-denominator-digits='2' ">/??</xsl:when>
+ <xsl:when test="@number:min-denominator-digits='3' ">/???</xsl:when>
+ <xsl:when test="@number:min-denominator-digits='4' ">/????</xsl:when>
+ <xsl:when test="@number:min-denominator-digits='5' ">/?????</xsl:when>
+ <xsl:when test="@number:min-denominator-digits='6' ">/??????</xsl:when>
+ <xsl:otherwise>/???</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="name(.)='number:year'">
+ <xsl:choose>
+ <xsl:when test="@number:style='long'">YYYY</xsl:when>
+ <xsl:otherwise>YY</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name(.)='number:month'">
+ <xsl:choose>
+ <xsl:when test="@number:style='long' and @number:textual='true'">MMMM</xsl:when>
+ <xsl:when test="not(@number:style='long') and @number:textual='true'">MMM</xsl:when>
+ <xsl:when test="@number:style='long' and not(@number:textual)">MM</xsl:when>
+ <xsl:when test="not(@number:style='long') and not(@number:textual)">M</xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name(.)='number:day'">
+ <xsl:choose>
+ <xsl:when test="@number:style='long'">DD</xsl:when>
+ <xsl:otherwise>D</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name(.)='number:day-of-week'">
+ <xsl:choose>
+ <xsl:when test="@number:style='long'">NNNN</xsl:when>
+ <xsl:otherwise>NNN</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name(.)='number:quarter'">
+ <xsl:choose>
+ <xsl:when test="@number:style='long'">QQ</xsl:when>
+ <xsl:otherwise>Q</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name(.)='number:hours'">
+ <xsl:choose>
+ <xsl:when test="@number:style='long' and ../@number:truncate-on-overflow='false'">[HH]</xsl:when>
+ <xsl:when test="@number:style='long'">HH</xsl:when>
+ <xsl:otherwise>H</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name(.)='number:minutes'">
+ <xsl:choose>
+ <xsl:when test="@number:style='long'">MM</xsl:when>
+ <xsl:otherwise>M</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name(.)='number:seconds'">
+ <xsl:choose>
+ <xsl:when test="@number:style='long' and @number:decimal-places='2'">SS.00</xsl:when>
+ <xsl:when test="@number:style='long'">SS</xsl:when>
+ <xsl:otherwise>S</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name(.)='number:am-pm'">AM/PM</xsl:when>
+ <xsl:when test="name(.)='number:week-of-year'">
+ <xsl:choose>
+ <xsl:when test="@number:style='long'">WW</xsl:when>
+ <xsl:otherwise>WW</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="general-color-format">
+ <xsl:choose>
+ <xsl:when test="@fo:color='#000000'">[Black]</xsl:when>
+ <xsl:when test="@fo:color='#0000ff'">[Blue]</xsl:when>
+ <xsl:when test="@fo:color='#00ffff'">[Cyan]</xsl:when>
+ <xsl:when test="@fo:color='#00ff00'">[Green]</xsl:when>
+ <xsl:when test="@fo:color='#ff00ff'">[Magenta]</xsl:when>
+ <xsl:when test="@fo:color='#ff0000'">[Red]</xsl:when>
+ <xsl:when test="@fo:color='#ffffff'">[White]</xsl:when>
+ <xsl:when test="@fo:color='#ffff00'">[Yellow]</xsl:when>
+ <xsl:otherwise>[Black]</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="general-currency-format">
+ <xsl:choose>
+ <xsl:when test="text()='ï¿¥' and @number:language='zh' and @number:country='CN'">[$ï¿¥-804]</xsl:when>
+ <xsl:when test="text()='$' and @number:language='en' and @number:country='US'">[$$-409]</xsl:when>
+ <xsl:when test="text()='$' and @number:language='es' and @number:country='AR'">[$$-2C0A]</xsl:when>
+ <xsl:when test="text()='$' and @number:language='fr' and @number:country='CA'">[$$-C0C]</xsl:when>
+ <xsl:when test="text()='CNY'">[$CNY]</xsl:when>
+ <xsl:when test="text()='AFA'">[$AFA]</xsl:when>
+ <xsl:when test="text()='CCC'">CCC</xsl:when>
+ <xsl:otherwise>ï¿¥</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="element-attribute">
+ <xsl:if test="@number:transliteration-format='一' and @number:transliteration-style='short'">[NatNum1]</xsl:if>
+ <xsl:if test="@number:transliteration-format='一' and @number:transliteration-style='medium'">[NatNum7]</xsl:if>
+ <xsl:if test="@number:transliteration-format='一' and @number:transliteration-style='long'">[NatNum4]</xsl:if>
+ <xsl:if test="@number:transliteration-format='壹' and @number:transliteration-style='short'">[NatNum2]</xsl:if>
+ <xsl:if test="@number:transliteration-format='壹' and @number:transliteration-style='medium'">[NatNum8]</xsl:if>
+ <xsl:if test="@number:transliteration-format='壹' and @number:transliteration-style='long'">[NatNum5]</xsl:if>
+ <xsl:if test="@number:transliteration-format='1' and @number:transliteration-style='short'">[NatNum3]</xsl:if>
+ <xsl:if test="@number:transliteration-format='1' and @number:transliteration-style='medium'">[NatNum0]</xsl:if>
+ <xsl:if test="@number:transliteration-format='1' and @number:transliteration-style='long'">[NatNum6]</xsl:if>
+ <xsl:if test="@number:transliteration-format='1' and @number:transliteration-style='short'">[NatNum0]</xsl:if>
+ <xsl:if test="@number:transliteration-format='1' and @number:transliteration-style='medium'">[NatNum0]</xsl:if>
+ <xsl:if test="@number:transliteration-format='1' and @number:transliteration-style='long'">[NatNum0]</xsl:if>
+ <xsl:if test="@number:transliteration-language='zh' and @number:transliteration-country='CN'">[$-804]</xsl:if>
+ </xsl:template>
+ <!--RedOffice comment (Zengjh) end-->
+ <!--huangzf0715-->
+ <xsl:template name="Alignment">
+ <xsl:param name="styleProperties"/>
+ <xsl:if test="($styleProperties/@fo:text-align) or ($styleProperties/@style:vertical-align) or ($styleProperties/@fo:wrap-option) or($styleProperties/@fo:margin-left) or ($styleProperties/@style:rotation-angle) or ($styleProperties/@style:direction)">
+ <xsl:element name="表:对é½æ ¼å¼">
+ <xsl:attribute name="uof:locID">s0114</xsl:attribute>
+ <xsl:if test="$styleProperties/@fo:margin-left">
+ <xsl:attribute name="表:缩进"><xsl:variable name="margin"><xsl:call-template name="convert2pt"><xsl:with-param name="value" select="$styleProperties/@fo:margin-left"/><xsl:with-param name="rounding-factor" select="1"/></xsl:call-template></xsl:variable><xsl:value-of select="number($margin) div 10"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="表:水平对é½æ–¹å¼">
+ <xsl:attribute name="uof:locID">s0115</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@fo:text-align">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@fo:text-align = 'center'">center</xsl:when>
+ <xsl:when test="$styleProperties/@fo:text-align = 'end'">right</xsl:when>
+ <xsl:when test="$styleProperties/@fo:text-align = 'justify'">justify</xsl:when>
+ <xsl:when test="$styleProperties/@fo:text-align = 'start'">left</xsl:when>
+ <xsl:otherwise>fill</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>general</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="($styleProperties/@style:vertical-align) or ($styleProperties/@fo:vertical-align)">
+ <xsl:element name="表:垂直对é½æ–¹å¼">
+ <xsl:attribute name="uof:locID">s0116</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@fo:vertical-align = 'top'">top</xsl:when>
+ <xsl:when test="$styleProperties/@fo:vertical-align = 'bottom'">bottom</xsl:when>
+ <xsl:when test="$styleProperties/@fo:vertical-align = 'middle'">center</xsl:when>
+ <xsl:when test="$styleProperties/@fo:vertical-align = 'justify'">justify</xsl:when>
+ <xsl:when test="$styleProperties/@fo:vertical-align = 'top'">top</xsl:when>
+ <xsl:otherwise>distributed</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="表:文字方å‘">
+ <xsl:attribute name="uof:locID">s0118</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:direction = 'ttb'">vertical</xsl:when>
+ <xsl:otherwise>horizontal</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="$styleProperties/@style:rotation-angle">
+ <xsl:element name="表:文字旋转角度">
+ <xsl:attribute name="uof:locID">s0119</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:rotation-angle &gt; 90">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:rotation-angle &gt;= 270">
+ <xsl:value-of select="$styleProperties/@style:rotation-angle - 360"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$styleProperties/@style:rotation-angle - 180"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$styleProperties/@style:rotation-angle &lt; -90">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:rotation-angle &lt;= -270">
+ <xsl:value-of select="$styleProperties/@style:rotation-angle + 360"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$styleProperties/@style:rotation-angle + 180"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$styleProperties/@style:rotation-angle"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@fo:wrap-option = 'wrap'">
+ <xsl:element name="表:自动æ¢è¡Œ">
+ <xsl:attribute name="uof:locID">s0120</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="表:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:shrink-to-fit">
+ <xsl:element name="表:缩å°å­—体填充">
+ <xsl:attribute name="uof:locID">s0121</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="表:值"><xsl:value-of select="$styleProperties/@style:shrink-to-fit"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="Font">
+ <xsl:param name="styleProperties"/>
+ <!--xsl:if test="(style:text-properties/@fo:font-weight) or (style:text-properties/@fo:color) or ($styleProperties/@style:font-name) or ($styleProperties/@fo:font-style) or ($styleProperties/@style:text-outline) or ($styleProperties/@style:text-shadow) or ($styleProperties/@style:font-size) or ($styleProperties/@style:text-crossing-out) or ($styleProperties/@style:text-underline) or ($styleProperties/@style:text-underline-style) or ($styleProperties/@style:text-position)"-->
+ <xsl:if test="not(@style:name='Default')">
+ <xsl:element name="表:字体格å¼">
+ <xsl:attribute name="uof:locID">s0113</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:if test="$styleProperties/@fo:font-weight or $styleProperties/@style:font-weight-asian">
+ <xsl:element name="字:粗体">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="$styleProperties/@style:font-weight-asian='bold' or $styleProperties/@fo:font-weight='bold'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0089</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@fo:font-style or $styleProperties/@style:font-style-asian">
+ <xsl:element name="字:斜体">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="$styleProperties/@fo:font-style='italic' or $styleProperties/@style:font-style-asian='italic'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0090</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:text-outline = 'true'">
+ <字:空心 uof:locID="t0098" uof:attrList="值" 字:值="true"/>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:text-shadow = 'shadow'">
+ <字:阴影 uof:locID="t0100" uof:attrList="值" 字:值="true"/>
+ </xsl:if>
+ <xsl:if test="(style:text-properties/@style:text-underline-style) and ($styleProperties/@style:text-underline-style != 'none')">
+ <xsl:element name="字:下划线">
+ <xsl:attribute name="uof:locID">t0095</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 颜色 字下划线</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:call-template name="uof:线型类型"/></xsl:attribute>
+ <xsl:attribute name="字:字下划线">true</xsl:attribute>
+ <xsl:if test="$styleProperties/@style:text-underline-color">
+ <xsl:attribute name="字:颜色"><xsl:choose><xsl:when test="$styleProperties/@style:text-underline-color='font-color'">auto</xsl:when><xsl:otherwise><xsl:value-of select="$styleProperties/@style:text-underline-color"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:text-line-through-style and not($styleProperties/@style:text-line-through-style='none')">
+ <xsl:element name="字:删除线">
+ <xsl:attribute name="uof:locID">t0094</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:call-template name="uof:delete线型类型"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:text-emphasize">
+ <xsl:element name="å­—:ç€é‡å·">
+ <xsl:attribute name="uof:locID">t0096</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 颜色 å­—ç€é‡å·</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:text-emphasize='none'">
+ <xsl:attribute name="å­—:å­—ç€é‡å·">false</xsl:attribute>
+ <xsl:attribute name="字:类型">none</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:å­—ç€é‡å·">true</xsl:attribute>
+ <xsl:attribute name="å­—:类型"><xsl:call-template name="uof:ç€é‡å·ç±»åž‹"><xsl:with-param name="te" select="$styleProperties/@style:text-emphasize"/></xsl:call-template></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$styleProperties/@fo:color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select="$styleProperties/@fo:color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:text-position">
+ <xsl:element name="字:上下标">
+ <xsl:choose>
+ <xsl:when test="substring-before($styleProperties/@style:text-position, '% ') &gt; 0">
+ <xsl:attribute name="字:上下标">sup</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="字:上下标">sub</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="字:字体">
+ <xsl:attribute name="uof:locID">t0088</xsl:attribute>
+ <xsl:attribute name="uof:attrList">西文字体引用 中文字体引用 特殊字体引用 西文绘制 å­—å· ç›¸å¯¹å­—å· é¢œè‰²</xsl:attribute>
+ <xsl:if test="$styleProperties/@style:font-name-asian">
+ <xsl:attribute name="字:中文字体引用"><xsl:value-of select="translate($styleProperties/@style:font-name-asian,' ','_')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@style:font-name or $styleProperties/@fo:font-family">
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@style:font-name">
+ <xsl:attribute name="字:西文字体引用"><xsl:value-of select="translate($styleProperties/@style:font-name,' ','_')"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="字:西文字体引用"><xsl:value-of select="translate($styleProperties/@fo:font-family,' ','_')"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$styleProperties/@fo:color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select="$styleProperties/@fo:color"/></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@fo:font-size">
+ <xsl:attribute name="å­—:å­—å·"><xsl:call-template name="convert2pt"><xsl:with-param name="value" select="$styleProperties/@fo:font-size"/></xsl:call-template></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$styleProperties/@style:font-size-asian">
+ <xsl:attribute name="å­—:å­—å·"><xsl:call-template name="convert2pt"><xsl:with-param name="value" select="$styleProperties/@style:font-size-asian"/></xsl:call-template></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$styleProperties/@style:font-size-complex">
+ <xsl:attribute name="å­—:å­—å·"><xsl:call-template name="convert2pt"><xsl:with-param name="value" select="$styleProperties/@style:font-size-complex"/></xsl:call-template></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="style:text-properties/@style:font-relief">
+ <xsl:element name="字:浮雕">
+ <xsl:attribute name="uof:locID">t0099</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:choose><xsl:when test="style:text-properties/@style:font-relief='embossed'">emboss</xsl:when><xsl:when test="style:text-properties/@style:font-relief='engraved'">engrave</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:text-transform or style:text-properties/@fo:font-variant">
+ <xsl:element name="字:醒目字体">
+ <xsl:attribute name="uof:locID">t0101</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:choose><xsl:when test="style:text-properties/@fo:text-transform='uppercase'">uppercase</xsl:when><xsl:when test="style:text-properties/@fo:text-transform='lowercase'">lowercase</xsl:when><xsl:when test="style:text-properties/@fo:text-transform='capitalize'">capital</xsl:when><xsl:when test="style:text-properties/@fo:font-variant='small-caps'">small-caps</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:text-shadow">
+ <xsl:element name="字:阴影">
+ <xsl:attribute name="uof:locID">t0100</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:text-properties/@fo:text-shadow='none'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="Border">
+ <xsl:param name="styleProperties"/>
+ <xsl:if test="style:table-cell-properties/@fo:border and not($styleProperties/@fo:border-top or $styleProperties/@fo:border-left or $styleProperties/@fo:border-bottom or $styleProperties/@fo:border-right)">
+ <xsl:element name="表:边框">
+ <xsl:attribute name="uof:locID">s0022</xsl:attribute>
+ <xsl:variable name="border">
+ <xsl:value-of select="$styleProperties/@fo:border"/>
+ </xsl:variable>
+ <xsl:element name="uof:å·¦">
+ <xsl:attribute name="uof:locID">u0057</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$border!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains(substring-before(substring-after($styleProperties/@style:shadow,' '),' '),'-')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:element name="uof:上">
+ <xsl:attribute name="uof:locID">u0058</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$border!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains(substring-after(substring-after($styleProperties/@style:shadow,' '),' '),'-')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:element name="uof:å³">
+ <xsl:attribute name="uof:locID">u0059</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$border!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="substring-before(substring-before(substring-after($styleProperties/@style:shadow,' '),' '),$uofUnit) &gt;0 or contains(substring-before(substring-after($styleProperties/@style:shadow,' '),' '),'+')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:element name="uof:下">
+ <xsl:attribute name="uof:locID">u0060</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$border!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="substring-before(substring-after(substring-after($styleProperties/@style:shadow,' '),' '),$uofUnit) &gt;0 or contains(substring-after(substring-after($styleProperties/@style:shadow,' '),' '),'+')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="$styleProperties/@style:diagonal-bl-tr">
+ <xsl:element name="uof:对角线1">
+ <xsl:attribute name="uof:locID">u0061</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:variable name="border-width">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="substring-before($styleProperties/@style:diagonal-bl-tr, ' ')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="border-style" select="substring-before(substring-after($styleProperties/@style:diagonal-bl-tr, ' '), ' ')"/>
+ <xsl:variable name="border-color" select="substring-after(substring-after($styleProperties/@style:diagonal-bl-tr, ' '), ' ')"/>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border-style = 'none'">none</xsl:when><xsl:when test="$border-style = 'none'">none</xsl:when><xsl:when test="$border-style='solid'">single</xsl:when><xsl:when test="$border-style='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="$border-width"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:choose><xsl:when test="$border-color"><xsl:value-of select="$border-color"/></xsl:when><xsl:otherwise>Automatic</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <!--end of uo:对角线1-->
+ <!--xsl:if test="$styleProperties/@fo:border and $styleProperties/@style:diagonal-tl-br"-->
+ <xsl:if test="$styleProperties/@style:diagonal-tl-br">
+ <xsl:element name="uof:对角线2">
+ <xsl:attribute name="uof:locID">u0062</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:variable name="border-width">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="substring-before($styleProperties/@style:diagonal-tl-br, ' ')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="border-style" select="substring-before(substring-after($styleProperties/@style:diagonal-tl-br, ' '), ' ')"/>
+ <xsl:variable name="border-color" select="substring-after(substring-after($styleProperties/@style:diagonal-tl-br, ' '), ' ')"/>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border-style = 'none'">none</xsl:when><xsl:when test="$border-style = 'none'">none</xsl:when><xsl:when test="$border-style='solid'">single</xsl:when><xsl:when test="$border-style='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="$border-width"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:choose><xsl:when test="$border-color"><xsl:value-of select="$border-color"/></xsl:when><xsl:otherwise>Automatic</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <!--end of uo:对角线2-->
+ </xsl:element>
+ </xsl:if>
+ <!--end of fo:border-->
+ <xsl:if test="$styleProperties/@fo:border-top or $styleProperties/@fo:border-left or $styleProperties/@fo:border-bottom or $styleProperties/@fo:border-right or $styleProperties/@style:diagonal-tl-br or $styleProperties/@style:diagonal-bl-tr">
+ <xsl:element name="表:边框">
+ <xsl:attribute name="uof:locID">s0022</xsl:attribute>
+ <xsl:if test="$styleProperties/@fo:border-left or $styleProperties/@style:shadow">
+ <xsl:element name="uof:å·¦">
+ <xsl:attribute name="uof:locID">u0057</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:variable name="borderleft">
+ <xsl:value-of select="$styleProperties/@fo:border-left"/>
+ </xsl:variable>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$borderleft!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($borderleft,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($borderleft,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$borderleft!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($borderleft,' '),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($borderleft,' '),' ')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains(substring-before(substring-after($styleProperties/@style:shadow,' '),' '),'-')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <!--end of uof:å·¦-->
+ <xsl:if test="$styleProperties/@fo:border-top or $styleProperties/@style:shadow">
+ <xsl:element name="uof:上">
+ <xsl:attribute name="uof:locID">u0058</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:variable name="bordertop">
+ <xsl:value-of select="$styleProperties/@fo:border-top"/>
+ </xsl:variable>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$bordertop!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($bordertop,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($bordertop,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$bordertop!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($bordertop,' '),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($bordertop,' '),' ')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains(substring-after(substring-after($styleProperties/@style:shadow,' '),' '),'-')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <!--end of uof:上-->
+ <xsl:if test="$styleProperties/@fo:border-right or $styleProperties/@style:shadow">
+ <xsl:element name="uof:å³">
+ <xsl:attribute name="uof:locID">u0059</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:variable name="borderright">
+ <xsl:value-of select="$styleProperties/@fo:border-right"/>
+ </xsl:variable>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$borderright!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($borderright,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($borderright,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$borderright!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($borderright,' '),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($borderright,' '),' ')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="substring-before(substring-before(substring-after($styleProperties/@style:shadow,' '),' '),$uofUnit)&gt;0 or contains(substring-before(substring-after($styleProperties/@style:shadow,' '),' '),'+')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <!--end of uof:å³-->
+ <xsl:if test="$styleProperties/@fo:border-bottom or $styleProperties/@style:shadow">
+ <xsl:element name="uof:下">
+ <xsl:attribute name="uof:locID">u0060</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:variable name="borderbottom">
+ <xsl:value-of select="$styleProperties/@fo:border-bottom"/>
+ </xsl:variable>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$borderbottom!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($borderbottom,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($borderbottom,' '),' ')='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$borderbottom!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($borderbottom,' '),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($borderbottom,' '),' ')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="substring-before(substring-after(substring-after($styleProperties/@style:shadow,' '),' '),$uofUnit) &gt;0 or contains(substring-after(substring-after($styleProperties/@style:shadow,' '),' '),'+')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <!--end of uof:下-->
+ <xsl:if test="$styleProperties/@style:diagonal-bl-tr">
+ <xsl:element name="uof:对角线1">
+ <xsl:attribute name="uof:locID">u0061</xsl:attribute>
+ <xsl:attribute name="attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:variable name="border-width">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="substring-before($styleProperties/@style:diagonal-bl-tr, ' ')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="border-style" select="substring-before(substring-after($styleProperties/@style:diagonal-bl-tr, ' '), ' ')"/>
+ <xsl:variable name="border-color" select="substring-after(substring-after($styleProperties/@style:diagonal-bl-tr, ' '), ' ')"/>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border-style = 'none'">none</xsl:when><xsl:when test="$border-style='solid'">single</xsl:when><xsl:when test="$border-style='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="$border-width"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:choose><xsl:when test="$border-color"><xsl:value-of select="$border-color"/></xsl:when><xsl:otherwise>Automatic</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <!--end of uo:对角线1-->
+ <xsl:if test="$styleProperties/@style:diagonal-tl-br">
+ <xsl:element name="uof:对角线2">
+ <xsl:attribute name="uof:locID">u0062</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:variable name="border-width">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="substring-before($styleProperties/@style:diagonal-tl-br, ' ')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="border-style" select="substring-before(substring-after($styleProperties/@style:diagonal-tl-br, ' '), ' ')"/>
+ <xsl:variable name="border-color" select="substring-after(substring-after($styleProperties/@style:diagonal-tl-br, ' '), ' ')"/>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border-style = 'none'">none</xsl:when><xsl:when test="$border-style='solid'">single</xsl:when><xsl:when test="$border-style='double'">double</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="$border-width"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:choose><xsl:when test="$border-color"><xsl:value-of select="$border-color"/></xsl:when><xsl:otherwise>Automatic</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <!--end of uo:对角线2-->
+ </xsl:element>
+ <!--end of 表:边框-->
+ </xsl:if>
+ <!--chenjh 边框 E -->
+ </xsl:template>
+ <xsl:template name="border-attributes">
+ <xsl:param name="border_properties"/>
+ <xsl:attribute name="attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:variable name="border-width">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="substring-before($border_properties, ' ')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="border-style" select="substring-before(substring-after($border_properties, ' '), ' ')"/>
+ <xsl:variable name="border-color" select="substring-after(substring-after($border_properties, ' '), ' ')"/>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border-style = 'none'">none</xsl:when><xsl:otherwise><xsl:value-of select="$border-style"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="$border-width"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:choose><xsl:when test="$border-color"><xsl:value-of select="$border-color"/></xsl:when><xsl:otherwise>Automatic</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:template>
+ <xsl:template name="Interior">
+ <xsl:param name="styleProperties"/>
+ <xsl:if test="style:table-cell-properties/@fo:background-color and not($styleProperties/@fo:background-color = 'transparent')">
+ <xsl:element name="表:填充">
+ <!--chenp modify redo0000047-->
+ <xsl:attribute name="uof:locID">s0058</xsl:attribute>
+ <!--0821 by lil -->
+ <xsl:choose>
+ <xsl:when test="$styleProperties/@fo:background-color">
+ <xsl:element name="图:颜色">
+ <xsl:attribute name="uof:locID">g0034</xsl:attribute>
+ <xsl:value-of select="$styleProperties/@fo:background-color"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="表:图案">
+ <xsl:value-of select="' Solid'"/>
+ <xsl:attribute name="xsl:lodID">g0036</xsl:attribute>
+ <xsl:attribute name="attrList">类型 图形引用 å‰æ™¯è‰² 背景色</xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--end-->
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <!--chengxz 0621 E-->
+ <!--xsl:template name="image">
+
+ <xsl:element name="图:图形">
+ <xsl:attribute name="图:标识符"><xsl:value-of select="@draw:name"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">g0000</xsl:attribute>
+ <xsl:attribute name="uof:attrList">层次 标识符 组åˆåˆ—表 其他对象</xsl:attribute>
+ <xsl:element name="图:预定义图形">
+ <xsl:attribute name="uof:locID">g0005</xsl:attribute>
+ <xsl:element name="图:类别">图片</xsl:element>
+ <xsl:element name="图:生æˆè½¯ä»¶"><xsl:value-of select="office:binary-data" ></xsl:value-of></xsl:element>
+ <xsl:element name="图:属性">
+ <xsl:element name="图:宽度"><xsl:value-of select="substring-before(@svg:width,'cm')"/></xsl:element>
+ <xsl:element name="图:高度"><xsl:value-of select="substring-before(@svg:height,'cm')"/></xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template-->
+ <!--1新增内容-->
+ <xsl:key match="/office:document/office:automatic-styles/style:style | /office:document/office:styles/style:style" name="graphicset" use="@style:name"/>
+ <xsl:template name="draw">
+ <xsl:param name="nodename1"/>
+ <xsl:choose>
+ <xsl:when test="substring-after($nodename1,':') = 'a'">
+ <xsl:for-each select="child::*">
+ <xsl:call-template name="draw">
+ <xsl:with-param name="nodename">
+ <xsl:value-of select="name()"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="substring-after($nodename1,':') = 'g'">
+ <xsl:call-template name="draw:g"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="creategraphicstyles"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="draw:g">
+ <!--xsl:variable name="picnumber1">
+ <xsl:value-of select="count(preceding::draw:g)"/>
+ </xsl:variable>
+ <图:图形 uof:locID="g0000" uof:attrList="层次 标识符 组åˆåˆ—表 其他对象">
+ <xsl:attribute name="图:标识符"><xsl:value-of select="concat(@draw:style-name,'_',$picnumber1)"/></xsl:attribute>
+ <xsl:attribute name="图:层次"><xsl:value-of select="@draw:z-index"/></xsl:attribute>
+ <xsl:attribute name="图:组åˆåˆ—表"><xsl:for-each select="child::*[1]"><xsl:variable name="node1"><xsl:value-of select="@draw:style-name"/></xsl:variable><xsl:variable name="picnumber2"><xsl:value-of select="count(preceding::*[@draw:style-name=$node1])"/></xsl:variable><xsl:call-template name="zuheliebiao"><xsl:with-param name="allnode"><xsl:value-of select="concat($node1,'_',$picnumber2)"/></xsl:with-param><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:for-each></xsl:attribute>
+ </图:图形>
+ <xsl:for-each select="child::*">
+ <xsl:choose>
+ <xsl:when test="name()='draw:g'">
+ <xsl:call-template name="draw:g"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="creategraphicstyles"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each-->
+ <!--æ ¹æ®æ–°ä¿®æ”¹çš„Schemaåšçš„修改-->
+ <xsl:for-each select="child::*">
+ <xsl:choose>
+ <xsl:when test="name()='draw:g'">
+ <xsl:call-template name="draw:g"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="creategraphicstyles"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:call-template name="creategraphicstyles"/>
+ </xsl:template>
+ <xsl:template name="zuheliebiao">
+ <xsl:param name="allnode"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="../child::*[$pos]">
+ <xsl:for-each select="../child::*[$pos]">
+ <xsl:variable name="nodepos">
+ <!--add by lvxg -->
+ <xsl:choose>
+ <xsl:when test="./@draw:style-name">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@draw:id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--end-->
+ </xsl:variable>
+ <xsl:variable name="picnumber1">
+ <xsl:value-of select="count(preceding::*[@draw:style-name=$nodepos])"/>
+ </xsl:variable>
+ <xsl:variable name="pic-name1">
+ <xsl:value-of select="concat($nodepos,'_',$picnumber1)"/>
+ </xsl:variable>
+ <xsl:variable name="allnode1">
+ <xsl:value-of select="concat($allnode,',',$pic-name1)"/>
+ </xsl:variable>
+ <xsl:call-template name="zuheliebiao">
+ <xsl:with-param name="allnode" select="$allnode1"/>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$allnode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="creategraphicstyles">
+ <xsl:variable name="nodename">
+ <xsl:value-of select="name()"/>
+ </xsl:variable>
+ <xsl:variable name="pic-name">
+ <xsl:choose>
+ <xsl:when test="./@draw:style-name">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:when>
+ <xsl:when test="./@table:end-cell-address">
+ <xsl:value-of select="@table:end-cell-address"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./@draw:id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--end -->
+ </xsl:variable>
+ <xsl:variable name="pic-num">
+ <xsl:value-of select="count(/descendant::*[@draw:style-name=$pic-name])"/>
+ </xsl:variable>
+ <xsl:variable name="picnumber">
+ <xsl:value-of select="count(preceding::*[@draw:style-name=$pic-name])"/>
+ </xsl:variable>
+ <xsl:call-template name="pic-process">
+ <xsl:with-param name="pic-name" select="$pic-name"/>
+ <xsl:with-param name="nodename" select="$nodename"/>
+ <xsl:with-param name="picnumber" select="$picnumber"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template name="pic-process">
+ <xsl:param name="pic-name"/>
+ <xsl:param name="nodename"/>
+ <xsl:param name="picnumber"/>
+ <xsl:variable name="aa">
+ <xsl:choose>
+ <xsl:when test="./@draw:style-name">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:when>
+ <xsl:when test="./@table:end-cell-address">
+ <xsl:value-of select="@table:end-cell-address"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./@draw:id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <图:图形 uof:locID="g0000" uof:attrList="层次 标识符 组åˆåˆ—表 其他对象">
+ <xsl:attribute name="图:标识符"><xsl:value-of select="concat($pic-name,'_',$picnumber)"/></xsl:attribute>
+ <xsl:attribute name="图:层次"><xsl:choose><xsl:when test="name(parent::node())='draw:g'"><xsl:value-of select="position()"/></xsl:when><xsl:when test="@draw:z-index"><xsl:value-of select="@draw:z-index"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:if test="$nodename='draw:g'">
+ <xsl:attribute name="图:组åˆåˆ—表"><xsl:for-each select="child::*[1]"><xsl:variable name="node1"><xsl:value-of select="@draw:style-name | @draw:id"/></xsl:variable><xsl:variable name="picnumber2"><xsl:value-of select="count(preceding::*[@draw:style-name=$node1 or @draw:id=$node1])"/></xsl:variable><xsl:call-template name="zuheliebiao"><xsl:with-param name="allnode"><xsl:value-of select="concat($node1,'_',$picnumber2)"/></xsl:with-param><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:for-each></xsl:attribute>
+ </xsl:if>
+ <xsl:if test=".//office:binary-data">
+ <xsl:attribute name="图:其他对象"><xsl:choose><xsl:when test="@draw:name"><xsl:value-of select="@draw:name"/></xsl:when><xsl:otherwise><xsl:value-of select="concat($pic-name,'_b1')"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="arrow-sign">
+ <xsl:choose>
+ <xsl:when test="key('graphicset',$pic-name)/style:graphic-properties/@draw:marker-start or key('graphicset',$pic-name)/style:graphic-properties/@draw:marker-end">
+ <xsl:value-of select="'1'"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$nodename='draw:line' or $nodename='draw:rect' or $nodename='draw:circle' or $nodename='draw:polygon' or $nodename='draw:polyline' or $nodename='draw:ellipse' or $nodename='draw:path'or $nodename='draw:g'">
+ <图:预定义图形 uof:locID="g0005">
+ <图:类别 uof:locID="g0006">
+ <xsl:choose>
+ <xsl:when test="$nodename='draw:line' and $arrow-sign='1'">62</xsl:when>
+ <xsl:when test="$nodename='draw:rect'">11</xsl:when>
+ <xsl:when test="$nodename='draw:line'">61</xsl:when>
+ <xsl:when test="$nodename='draw:circle'">19</xsl:when>
+ <xsl:when test="$nodename='draw:polygon'">65</xsl:when>
+ <xsl:when test="$nodename='draw:polyline'">66</xsl:when>
+ <xsl:when test="$nodename='draw:ellipse'">19</xsl:when>
+ <xsl:when test="$nodename='draw:path'">64</xsl:when>
+ <xsl:when test="$nodename='draw:g'">4</xsl:when>
+ </xsl:choose>
+ </图:类别>
+ <图:å称 uof:locID="g0007">
+ <xsl:choose>
+ <xsl:when test="$nodename='draw:rect'">Rectangle</xsl:when>
+ <xsl:when test="$nodename='draw:line'">Line</xsl:when>
+ <xsl:when test="$nodename='draw:circle'">Oval</xsl:when>
+ <xsl:when test="$nodename='draw:polygon'">Freeform</xsl:when>
+ <xsl:when test="$nodename='draw:polyline'">Scribble</xsl:when>
+ <xsl:when test="$nodename='draw:ellipse'">Oval</xsl:when>
+ <xsl:when test="$nodename='draw:path'">Curve</xsl:when>
+ <xsl:when test="$nodename='draw:g'">group</xsl:when>
+ </xsl:choose>
+ </图:å称>
+ <图:生æˆè½¯ä»¶ uof:locID="g0008">PNG</图:生æˆè½¯ä»¶>
+ <xsl:if test="./@draw:points or ./@svg:d">
+ <图:关键点åæ ‡ uof:locID="g0009" uofattrList="路径">
+ <!--xsl:call-template name="draw:points">
+ <xsl:with-param name="point" select="./@draw:points"/>
+ </xsl:call-template-->
+ <xsl:attribute name="图:路径"><xsl:choose><xsl:when test="@svg:d"><xsl:value-of select="@svg:d"/></xsl:when><xsl:when test="@draw:points"><xsl:call-template name="draw:points"><xsl:with-param name="point" select="@draw:points"/><xsl:with-param name="lujing"/></xsl:call-template></xsl:when></xsl:choose></xsl:attribute>
+ </图:关键点åæ ‡>
+ </xsl:if>
+ <图:属性 uof:locID="g0011">
+ <xsl:for-each select="(/office:document/office:styles/descendant::*[@style:name=$aa]) | (/office:document/office:automatic-styles/descendant::*[@style:name=$aa]) ">
+ <xsl:call-template name="graphicattr"/>
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="@svg:x1">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:x2,$uofUnit) - substring-before(@svg:x1,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:y2,$uofUnit) - substring-before(@svg:y1,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ <xsl:when test="@svg:x">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:width,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:height,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ <xsl:when test="@svg:width">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:width,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:height,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ </xsl:choose>
+ <图:旋转角度 uof:locID="g0025">
+ <xsl:choose>
+ <xsl:when test="@draw:transform">
+ <xsl:variable name="rotate-angle">
+ <xsl:value-of select="@draw:transform"/>
+ </xsl:variable>
+ <xsl:variable name="rotate-temp">
+ <xsl:value-of select="substring-before(substring-after($rotate-angle,'rotate ('),')')"/>
+ </xsl:variable>
+ <xsl:value-of select="($rotate-temp * 360) div (2 * 3.14159265)"/>
+ </xsl:when>
+ <xsl:otherwise>0.0</xsl:otherwise>
+ </xsl:choose>
+ </图:旋转角度>
+ <图:X-缩放比例 uof:locID="g0026">1</图:X-缩放比例>
+ <图:Y-缩放比例 uof:locID="g0027">1</图:Y-缩放比例>
+ <图:é”定纵横比 uof:locID="g0028">0</图:é”定纵横比>
+ <图:相对原始比例 uof:locID="g0029">1</图:相对原始比例>
+ <图:打å°å¯¹è±¡ uof:locID="g0032">true</图:打å°å¯¹è±¡>
+ <图:Web文字 uof:locID="g0033"/>
+ <!--0820 by lil -->
+ </图:属性>
+ </图:预定义图形>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="string(.//text:p)">
+ <图:文本内容 uof:locID="g0002" uof:attrList="文本框 å·¦è¾¹è· å³è¾¹è· ä¸Šè¾¹è· ä¸‹è¾¹è· æ°´å¹³å¯¹é½ åž‚ç›´å¯¹é½ æ–‡å­—æŽ’åˆ—æ–¹å‘ è‡ªåŠ¨æ¢è¡Œ 大å°é€‚应文字 å‰ä¸€é“¾æŽ¥ åŽä¸€é“¾æŽ¥">
+ <xsl:if test="$nodename='draw:text-box'">
+ <xsl:attribute name="图:文本框">true</xsl:attribute>
+ <xsl:if test="./@draw:name = /office:document/office:body
+//draw:text-box/@draw:chain-next-name">
+ <xsl:attribute name="图:å‰ä¸€é“¾æŽ¥"><xsl:variable name="drawname"><xsl:value-of select="./@draw:name"/></xsl:variable><xsl:variable name="befor-link-name"><xsl:value-of select="/office:document/office:body
+//draw:text-box[@draw:name=$drawname]/@draw:style-name"/></xsl:variable><xsl:value-of select="concat($befor-link-name,'_',$picnumber)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="./@draw:chain-next-name">
+ <xsl:attribute name="图:åŽä¸€é“¾æŽ¥"><xsl:variable name="next-link"><xsl:value-of select="./@draw:chain-next-name"/></xsl:variable><xsl:variable name="link-name"><xsl:value-of select="/office:document/office:body
+//draw:text-box[@draw:name=$next-link]/@draw:style-name"/></xsl:variable><xsl:value-of select="concat($link-name,'_',$picnumber)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:for-each select="(/office:document/office:styles/descendant::*[@style:name=$pic-name]) | (/office:document/office:automatic-styles/descendant::*[@style:name=$pic-name]) ">
+ <xsl:if test="style:graphic-properties/@fo:padding-left">
+ <xsl:attribute name="图:左边è·"><xsl:value-of select="substring-before(style:graphic-properties/@fo:padding-left,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="图:å³è¾¹è·"><xsl:value-of select="substring-before(style:graphic-properties/@fo:padding-right,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="图:上边è·"><xsl:value-of select="substring-before(style:graphic-properties/@fo:padding-top,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="图:下边è·"><xsl:value-of select="substring-before(style:graphic-properties/@fo:padding-bottom,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="图:文字排列方å‘"><xsl:choose><xsl:when test="style:paragraph-properties/@style:writing-mode"><xsl:choose><xsl:when test="style:paragraph-properties/@style:writing-mode='tb-lr'">vert-l2r</xsl:when><xsl:when test="style:paragraph-properties/@style:writing-mode='tb-rl'">vert-r2l</xsl:when></xsl:choose></xsl:when><xsl:when test="style:graphic-properties/@draw:textarea-horizontal-align='right'">hori-r2l</xsl:when><xsl:otherwise>hori-l2r</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="style:graphic-properties/@fo:wrap-option">
+ <xsl:attribute name="图:自动æ¢è¡Œ">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:auto-grow-width='true' or style:graphic-properties/@draw:auto-grow-height='true'">
+ <xsl:attribute name="图:大å°é€‚应文字">true</xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="text:p">
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ <xsl:if test="style:paragraph-properties">
+ <xsl:apply-templates select="style:paragraph-properties"/>
+ </xsl:if>
+ <xsl:call-template name="textp"/>
+ </xsl:for-each>
+ </图:文本内容>
+ </xsl:if>
+ <图:控制点 uof:locID="g0003" uof:attrList="xåæ ‡ yåæ ‡">
+ <xsl:attribute name="图:xåæ ‡"><xsl:value-of select="substring-before(@svg:x,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="图:yåæ ‡"><xsl:value-of select="substring-before(@svg:y,$uofUnit)"/></xsl:attribute>
+ </图:控制点>
+ <!--新增内容-->
+ <xsl:if test="name(..)='draw:g'">
+ <图:组åˆä½ç½® uof:locID="g0041" uof:attrList="xåæ ‡ yåæ ‡">
+ <xsl:attribute name="图:xåæ ‡"><xsl:variable name="minx"><xsl:for-each select="parent::node()"><xsl:call-template name="groupminx"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:x][1]/@svg:x,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:for-each></xsl:variable><xsl:choose><xsl:when test="name(.)='draw:g'"><xsl:variable name="current-minx"><xsl:call-template name="groupminx"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:x][1]/@svg:x,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:value-of select="$current-minx - $minx"/></xsl:when><xsl:otherwise><xsl:variable name="current-x" select="number(substring-before(@svg:x,$uofUnit))"/><xsl:value-of select="$current-x - $minx"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:yåæ ‡"><xsl:variable name="miny"><xsl:for-each select="parent::node()"><xsl:call-template name="groupminy"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:y][1]/@svg:y,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:for-each></xsl:variable><xsl:choose><xsl:when test="name(.)='draw:g'"><xsl:variable name="current-miny"><xsl:call-template name="groupminy"><xsl:with-param name="value" select="number(substring-before(descendant::node()[@svg:y][1]/@svg:y,$uofUnit))"/><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:variable><xsl:value-of select="$current-miny - $miny"/></xsl:when><xsl:otherwise><xsl:variable name="current-y" select="number(substring-before(@svg:y,$uofUnit))"/><xsl:value-of select="$current-y - $miny"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </图:组åˆä½ç½®>
+ </xsl:if>
+ <!--Redoffice comment liliang 06.03.28 end-->
+ </图:图形>
+ <xsl:if test="name()='draw:image'">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat($pic-name,'_',$picnumber)"/></xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <xsl:attribute name="uof:公共类型">png</xsl:attribute>
+ <xsl:if test="./office:binary-data">
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="./office:binary-data"/>
+ </uof:æ•°æ®>
+ </xsl:if>
+ <xsl:if test="@xlink:href">
+ <uof:路径 uof:locID="u0038">
+ <xsl:value-of select="@xlink:href"/>
+ </uof:路径>
+ </xsl:if>
+ </uof:其他对象>
+ </xsl:if>
+ <xsl:if test="name()='draw:frame'">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat($pic-name,'_',$picnumber)"/></xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <xsl:attribute name="uof:公共类型">png</xsl:attribute>
+ <xsl:if test="draw:image/office:binary-data">
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="draw:image/office:binary-data"/>
+ </uof:æ•°æ®>
+ </xsl:if>
+ <xsl:if test="@xlink:href">
+ <uof:路径 uof:locID="u0038">
+ <xsl:value-of select="@xlink:href"/>
+ </uof:路径>
+ </xsl:if>
+ </uof:其他对象>
+ </xsl:if>
+ <xsl:for-each select="(/office:document/office:styles/descendant::*[@style:name=$pic-name]) | (/office:document/office:automatic-styles/descendant::*[@style:name=$pic-name]) ">
+ <xsl:if test="style:graphic-properties/@draw:fill-image-name">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat($pic-name,'_b1')"/></xsl:attribute>
+ <xsl:attribute name="uof:公共类型">png</xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <xsl:variable name="fill-name">
+ <xsl:value-of select="style:graphic-properties/@draw:fill-image-name"/>
+ </xsl:variable>
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:for-each select="/office:document/office:styles/draw:fill-image[@draw:name=$fill-name]">
+ <xsl:value-of select="office:binary-data"/>
+ </xsl:for-each>
+ </uof:æ•°æ®>
+ <uof:路径 uof:locID="u0038">
+ <xsl:value-of select="@xlink:href"/>
+ </uof:路径>
+ </uof:其他对象>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <!--Redoffice comment liliang 06.03.29-->
+ <!--新增内容-->
+ <xsl:template name="graphicattr">
+ <xsl:variable name="aa" select="@style:name"/>
+ <xsl:if test="not(style:graphic-properties/@draw:fill='none')">
+ <图:填充 uof:locID="g0012">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:fill='gradient'">
+ <xsl:variable name="gradient-name">
+ <xsl:value-of select="style:graphic-properties/@draw:fill-gradient-name"/>
+ </xsl:variable>
+ <xsl:for-each select="/descendant::draw:gradient[@draw:name=$gradient-name]">
+ <图:æ¸å˜ uof:locID="g0037" uof:attrList="起始色 终止色 ç§å­ç±»åž‹ 起始浓度 终止浓度 æ¸å˜æ–¹å‘ 边界 ç§å­Xä½ç½® ç§å­Yä½ç½® 类型">
+ <xsl:attribute name="图:起始色"><xsl:value-of select="@draw:start-color"/></xsl:attribute>
+ <xsl:attribute name="图:终止色"><xsl:value-of select="@draw:end-color"/></xsl:attribute>
+ <xsl:attribute name="图:ç§å­ç±»åž‹"><xsl:choose><xsl:when test="@draw:style='linear' or @draw:style='axial'">linear</xsl:when><xsl:when test="@draw:style='radial'">radar</xsl:when><xsl:when test="@draw:style='ellipsoid'">oval</xsl:when><xsl:when test="@draw:style='square'">square</xsl:when><xsl:when test="@draw:style='rectangular'">rectangle</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:起始浓度"><xsl:value-of select="substring-before(@draw:start-intensity,'%')"/></xsl:attribute>
+ <xsl:attribute name="图:终止浓度"><xsl:value-of select="substring-before(@draw:end-intensity,'%')"/></xsl:attribute>
+ <xsl:variable name="angle">
+ <xsl:value-of select="@draw:angle div 10"/>
+ </xsl:variable>
+ <xsl:attribute name="图:æ¸å˜æ–¹å‘"><xsl:choose><xsl:when test="0&lt;$angle and $angle&lt;25">0</xsl:when><xsl:when test="25&lt;$angle and $angle&lt;70">45</xsl:when><xsl:when test="70&lt;$angle and $angle&lt;115">90</xsl:when><xsl:when test="115&lt;$angle and $angle&lt;160">135</xsl:when><xsl:when test="160&lt;$angle and $angle&lt;205">180</xsl:when><xsl:when test="205&lt;$angle and $angle&lt;250">225</xsl:when><xsl:when test="250&lt;$angle and $angle&lt;295">270</xsl:when><xsl:when test="295&lt;$angle and $angle&lt;340">315</xsl:when><xsl:when test="340&lt;$angle and $angle&lt;360">360</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:边界"><xsl:value-of select="substring-before(@draw:border,'%')"/></xsl:attribute>
+ <xsl:if test="@draw:cx">
+ <xsl:attribute name="图:ç§å­Xä½ç½®"><xsl:value-of select="substring-before(@draw:cx,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@draw:cy">
+ <xsl:attribute name="图:ç§å­Yä½ç½®"><xsl:value-of select="substring-before(@draw:cy,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="图:类型">-2</xsl:attribute>
+ </图:æ¸å˜>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:fill-image-name">
+ <图:图片 uof:locID="g0035" uof:attrList="ä½ç½® 图形引用 类型 å称">
+ <xsl:attribute name="图:ä½ç½®"><xsl:choose><xsl:when test="not(style:graphic-properties/@style:repeat)">tile</xsl:when><xsl:otherwise><xsl:choose><xsl:when test="style:graphic-properties/@style:repeat = 'stretch'">stretch</xsl:when><xsl:when test="style:graphic-properties/@style:repeat = 'repeat'">tile</xsl:when><xsl:when test="style:graphic-properties/@style:repeat = 'no-repeat'">center</xsl:when></xsl:choose></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:图形引用"><xsl:value-of select="concat($aa,'_b1')"/></xsl:attribute>
+ <xsl:attribute name="图:类型">png</xsl:attribute>
+ <xsl:attribute name="图:å称"><xsl:value-of select="style:graphic-properties/@draw:fill-image-name"/></xsl:attribute>
+ </图:图片>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:fill='hatch'">
+ <图:图案 uof:locID="g0036" uof:attrList="类型 图形引用 å‰æ™¯è‰² 背景色">
+ <xsl:if test="/office:document/office:styles/draw:hatch/@draw:name">
+ <xsl:attribute name="图:类型"><xsl:value-of select="/office:document/office:styles/draw:hatch/@draw:name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="图:图形引用">rogr1</xsl:attribute>
+ <xsl:if test="/office:document/office:styles/draw:hatch/@draw:color">
+ <xsl:attribute name="图:å‰æ™¯è‰²"><xsl:value-of select="/office:document/office:styles/draw:hatch/@draw:color"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="图:背景色"><xsl:choose><xsl:when test="style:graphic-properties/@draw:fill-color"><xsl:value-of select="style:graphic-properties/@draw:fill-color"/></xsl:when><xsl:otherwise>#ffffff</xsl:otherwise></xsl:choose></xsl:attribute>
+ </图:图案>
+ </xsl:when>
+ <xsl:otherwise>
+ <图:颜色 uof:locID="g0034">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:fill-color">
+ <xsl:value-of select="style:graphic-properties/@draw:fill-color"/>
+ </xsl:when>
+ <xsl:otherwise>#99ccff</xsl:otherwise>
+ </xsl:choose>
+ </图:颜色>
+ </xsl:otherwise>
+ </xsl:choose>
+ </图:填充>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@svg:stroke-color">
+ <图:线颜色 uof:locID="g0013">
+ <xsl:value-of select="style:graphic-properties/@svg:stroke-color"/>
+ </图:线颜色>
+ </xsl:if>
+ <图:线型 uof:locID="g0014">
+ <xsl:call-template name="表:线型"/>
+ </图:线型>
+ <xsl:if test="style:graphic-properties/@svg:stroke-width">
+ <图:线粗细 uof:locID="g0016">
+ <xsl:value-of select="substring-before(style:graphic-properties/@svg:stroke-width,$uofUnit)"/>
+ </图:线粗细>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:marker-start and string-length(style:graphic-properties/@draw:marker-start)&gt;0">
+ <图:å‰ç«¯ç®­å¤´ uof:locID="g0017">
+ <图:å¼æ · uof:locID="g0018">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Arrow'">normal</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Line Arrow'">open</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Arrow concave'">stealth</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Circle'">oval</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Square 45'">diamond</xsl:when>
+ <xsl:otherwise>normal</xsl:otherwise>
+ </xsl:choose>
+ </图:å¼æ ·>
+ <xsl:if test="style:graphic-properties/@draw:marker-start-width">
+ <图:å¤§å° uof:locID="g0019">
+ <xsl:variable name="width">
+ <xsl:value-of select="substring-before(style:graphic-properties/@draw:marker-start-width,$uofUnit)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="($width&lt;0.05 and 0&lt;$width) or $width=0.05">1</xsl:when>
+ <xsl:when test="($width&lt;0.10 and 0.05&lt;$width) or $width=0.10">2</xsl:when>
+ <xsl:when test="($width&lt;0.15 and 0.10&lt;$width) or $width=0.15">3</xsl:when>
+ <xsl:when test="($width&lt;0.20 and 0.15&lt;$width) or $width=0.20">4</xsl:when>
+ <xsl:when test="($width&lt;0.25 and 0.20&lt;$width) or $width=0.25">5</xsl:when>
+ <xsl:when test="($width&lt;0.30 and 0.25&lt;$width) or $width=0.30">6</xsl:when>
+ <xsl:when test="($width&lt;0.35 and 0.30&lt;$width) or $width=0.35">7</xsl:when>
+ <xsl:when test="($width&lt;0.40 and 0.35&lt;$width) or $width=0.40">8</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </图:大å°>
+ </xsl:if>
+ </图:å‰ç«¯ç®­å¤´>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:marker-end">
+ <!--0820 by lil -->
+ <图:åŽç«¯ç®­å¤´ uof:locID="g0020">
+ <图:å¼æ · uof:locID="g0021">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Arrow'">normal</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Line Arrow'">open</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Arrow concave'">stealth</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Circle'">oval</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Square 45'">diamond</xsl:when>
+ <xsl:otherwise>normal</xsl:otherwise>
+ </xsl:choose>
+ </图:å¼æ ·>
+ <xsl:if test="style:graphic-properties/@draw:marker-end-width">
+ <图:å¤§å° uof:locID="g0022">
+ <xsl:variable name="width">
+ <xsl:value-of select="number(substring-before(style:graphic-properties/@draw:marker-end-width,$uofUnit))"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="($width&lt;0.05 and 0&lt;$width) or $width=0.05">1</xsl:when>
+ <xsl:when test="($width&lt;0.10 and 0.05&lt;$width) or $width=0.10">2</xsl:when>
+ <xsl:when test="($width&lt;0.15 and 0.10&lt;$width) or $width=0.15">3</xsl:when>
+ <xsl:when test="($width&lt;0.20 and 0.15&lt;$width) or $width=0.20">4</xsl:when>
+ <xsl:when test="($width&lt;0.25 and 0.20&lt;$width) or $width=0.25">5</xsl:when>
+ <xsl:when test="($width&lt;0.30 and 0.25&lt;$width) or $width=0.30">6</xsl:when>
+ <xsl:when test="($width&lt;0.35 and 0.30&lt;$width) or $width=0.35">7</xsl:when>
+ <xsl:when test="($width&lt;0.40 and 0.35&lt;$width) or $width=0.40">8</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </图:大å°>
+ </xsl:if>
+ </图:åŽç«¯ç®­å¤´>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:opacity">
+ <xsl:variable name="trans" select="style:graphic-properties/@draw:opacity"/>
+ <图:é€æ˜Žåº¦ uof:locID="g0038">
+ <xsl:value-of select="substring($trans,1,2)"/>
+ </图:é€æ˜Žåº¦>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="groupminx">
+ <xsl:param name="value"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="descendant::node()[@svg:x][position()=$pos]">
+ <xsl:variable name="othervalue" select="number(substring-before(descendant::node()[@svg:x][position()=$pos]/@svg:x,$uofUnit))"/>
+ <xsl:call-template name="groupminx">
+ <xsl:with-param name="value">
+ <xsl:choose>
+ <xsl:when test="$value&gt;$othervalue">
+ <xsl:value-of select="$othervalue"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--Redoffice comment liliang end 06.03.29-->
+ <!--Redoffice comment liliang 06.03.29-->
+ <!--新增内容-->
+ <xsl:template name="groupminy">
+ <xsl:param name="value"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="descendant::node()[@svg:y][position()=$pos]">
+ <xsl:variable name="othervalue" select="number(substring-before(descendant::node()[@svg:y][position()=$pos]/@svg:y,$uofUnit))"/>
+ <xsl:call-template name="groupminy">
+ <xsl:with-param name="value">
+ <xsl:choose>
+ <xsl:when test="$value&gt;$othervalue">
+ <xsl:value-of select="$othervalue"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="groupmaxx">
+ <xsl:param name="value"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="descendant::node()[@svg:x][position()=$pos]">
+ <xsl:variable name="svgx">
+ <xsl:value-of select="number(substring-before(descendant::node()[@svg:x][position()=$pos]/@svg:x,$uofUnit))"/>
+ </xsl:variable>
+ <xsl:variable name="width">
+ <xsl:value-of select="number(substring-before(descendant::node()[@svg:x][position()=$pos]/@svg:width,$uofUnit))"/>
+ </xsl:variable>
+ <xsl:variable name="othervalue" select="$svgx + $width"/>
+ <xsl:call-template name="groupminx">
+ <xsl:with-param name="value">
+ <xsl:choose>
+ <xsl:when test="$value&gt;$othervalue">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$othervalue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="groupmaxy">
+ <xsl:param name="value"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="descendant::node()[@svg:y][position()=$pos]">
+ <xsl:variable name="svgy">
+ <xsl:value-of select="number(substring-before(descendant::node()[@svg:y][position()=$pos]/@svg:y,$uofUnit))"/>
+ </xsl:variable>
+ <xsl:variable name="height">
+ <xsl:value-of select="number(substring-before(descendant::node()[@svg:y][position()=$pos]/@svg:height,$uofUnit))"/>
+ </xsl:variable>
+ <xsl:variable name="othervalue" select="$svgy + $height"/>
+ <xsl:call-template name="groupminy">
+ <xsl:with-param name="value">
+ <xsl:choose>
+ <xsl:when test="$value&gt;$othervalue">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$othervalue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--Redoffice comment liliang end 06.03.29-->
+ <xsl:template name="draw:points">
+ <xsl:param name="point"/>
+ <xsl:param name="lujing"/>
+ <xsl:choose>
+ <xsl:when test="contains($point,' ' )">
+ <xsl:variable name="first-point" select="substring-before($point,' ')"/>
+ <xsl:variable name="other-point" select="substring-after($point,' ')"/>
+ <xsl:variable name="xzuobiao">
+ <xsl:value-of select="substring-before($first-point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:variable name="yzuobiao">
+ <xsl:value-of select="substring-after($first-point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:call-template name="draw:points">
+ <xsl:with-param name="point" select="$other-point"/>
+ <xsl:with-param name="lujing" select="concat($lujing,$xzuobiao,' ',$yzuobiao,'lineto')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="xzuobiao">
+ <xsl:value-of select="substring-before($point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:variable name="yzuobiao">
+ <xsl:value-of select="substring-after($point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:value-of select="concat($lujing,$xzuobiao,' ',$yzuobiao)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--Redoffice comment end liliang-->
+ <!--chenjh add 20050624-->
+ <xsl:template name="creat-page-setting">
+ <xsl:param name="master-page"/>
+ <xsl:param name="page-master-style"/>
+ <xsl:element name="表:页é¢è®¾ç½®">
+ <xsl:attribute name="uof:locID">s0029</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å称</xsl:attribute>
+ <xsl:attribute name="表:å称"><xsl:value-of select="$master-page/@style:name"/></xsl:attribute>
+ <xsl:element name="表:纸张">
+ <xsl:attribute name="uof:locID">s0030</xsl:attribute>
+ <xsl:attribute name="uof:attrList">纸型 宽度 高度</xsl:attribute>
+ <xsl:attribute name="uof:纸型"><xsl:variable name="height"><xsl:value-of select="$page-master-style/@fo:page-height"/></xsl:variable><xsl:variable name="width"><xsl:value-of select="$page-master-style/@fo:page-width"/></xsl:variable><xsl:choose><xsl:when test="$width='29.699cm' and $height='42cm'">A3</xsl:when><xsl:when test="not($page-master-style/@fo:page-height) and not($page-master-style/@fo:page-width)">A4</xsl:when><xsl:when test="$width='14.799cm' and $height='20.999cm'">A5</xsl:when><xsl:when test="$width='25cm' and $height='35.299cm'">B4</xsl:when><xsl:when test="$width='17.598cm' and $height='25cm'">B5</xsl:when><xsl:when test="$width='12.499cm' and $height='17.598cm'">B6</xsl:when><xsl:otherwise>使用者</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:choose><xsl:when test="$page-master-style/@fo:page-width"><xsl:value-of select="substring-before($page-master-style/@fo:page-width,$uofUnit)"/></xsl:when><xsl:otherwise><xsl:call-template name="setDefaultPageWidth"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:高度"><xsl:choose><xsl:when test="$page-master-style/@fo:page-height"><xsl:value-of select="substring-before($page-master-style/@fo:page-height,$uofUnit)"/></xsl:when><xsl:otherwise><xsl:call-template name="setDefaultPageHeight"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="表:纸张方å‘">
+ <xsl:attribute name="uof:locID">s0031</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$page-master-style/@style:print-orientation">
+ <xsl:value-of select="$page-master-style/@style:print-orientation"/>
+ </xsl:when>
+ <xsl:otherwise>portrait</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="表:缩放">
+ <xsl:attribute name="uof:locID">s0032</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$page-master-style/@style:scale-to">
+ <xsl:value-of select="$page-master-style/@style:scale-to"/>
+ </xsl:when>
+ <xsl:otherwise>100</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="$page-master-style/@fo:margin-left or $page-master-style/@fo:margin-top or $page-master-style/@fo:margin-right or $page-master-style/@fo:margin-bottom">
+ <xsl:element name="表:页边è·">
+ <xsl:attribute name="uof:locID">s0033</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å·¦ 上 å³ ä¸‹</xsl:attribute>
+ <xsl:attribute name="uof:å·¦"><xsl:value-of select="substring-before($page-master-style/@fo:margin-left,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:上"><xsl:value-of select="substring-before($page-master-style/@fo:margin-top,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:å³"><xsl:value-of select="substring-before($page-master-style/@fo:margin-right,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:下"><xsl:value-of select="substring-before($page-master-style/@fo:margin-bottom,$uofUnit)"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:for-each select="$master-page[@style:page-layout-name='pm1']/style:header/child::*">
+ <表:页眉页脚 uof:locID="s0034" uof:attrList="ä½ç½®">
+ <xsl:attribute name="表:ä½ç½®"><xsl:choose><xsl:when test="name()='style:region-left'">headerleft</xsl:when><xsl:when test="name()='style:region-right'">headerright</xsl:when><xsl:otherwise>headercenter</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:call-template name="create-page-header-footer-paragraph">
+ <xsl:with-param name="paragraph-set" select="text:p"/>
+ </xsl:call-template>
+ </表:页眉页脚>
+ </xsl:for-each>
+ <xsl:for-each select="$master-page[@style:page-layout-name='pm1']/style:footer/child::*">
+ <表:页眉页脚 uof:locID="s0034" uof:attrList="ä½ç½®">
+ <xsl:attribute name="表:ä½ç½®"><xsl:choose><xsl:when test="name()='style:region-left'">footerleft</xsl:when><xsl:when test="name()='style:region-right'">footerright</xsl:when><xsl:otherwise>footercenter</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:call-template name="create-page-header-footer-paragraph">
+ <xsl:with-param name="paragraph-set" select="text:p"/>
+ </xsl:call-template>
+ </表:页眉页脚>
+ </xsl:for-each>
+ <xsl:if test="$page-master-style/@style:print-page-order or $page-master-style/@style:print">
+ <表:æ‰“å° uof:locID="s126" uof:attrList="网格线 è¡Œå·åˆ—æ ‡ 按è‰ç¨¿æ–¹å¼ 先列åŽè¡Œ">
+ <xsl:if test="$page-master-style/@style:print-page-order='ltr'">
+ <xsl:attribute name="表:先列åŽè¡Œ">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains($page-master-style/@style:print,'grid')">
+ <xsl:attribute name="表:网格线">true</xsl:attribute>
+ </xsl:if>
+ </表:打å°>
+ </xsl:if>
+ <xsl:if test="$page-master-style/@style:table-centering='vertical' or $page-master-style/@style:table-centering='both'">
+ <表:åž‚ç›´å¯¹é½ uof:locID="s0128" uof:attrList="对é½æ–¹å¼">
+ <xsl:attribute name="表:对é½æ–¹å¼">center</xsl:attribute>
+ </表:垂直对é½>
+ </xsl:if>
+ <xsl:if test="$page-master-style/@style:table-centering='horizontal' or $page-master-style/@style:table-centering='both'">
+ <表:æ°´å¹³å¯¹é½ uof:locID="s0129" uof:attrList="对é½æ–¹å¼">
+ <xsl:attribute name="表:对é½æ–¹å¼">center</xsl:attribute>
+ </表:水平对é½>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="create-page-header-footer-paragraph">
+ <xsl:param name="paragraph-set"/>
+ <xsl:choose>
+ <xsl:when test="$paragraph-set">
+ <xsl:element name="å­—:段è½">
+ <xsl:attribute name="uof:locID">t0051</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:element name="å­—:å¥">
+ <xsl:attribute name="uof:locID">t0085</xsl:attribute>
+ <xsl:apply-templates select="$paragraph-set//text()">
+ <xsl:with-param name="bText" select="'0'"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:element>
+ <xsl:call-template name="create-page-header-footer-paragraph">
+ <xsl:with-param name="paragraph-set" select="$paragraph-set[position()!=1]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="text:p" name="textp">
+ <xsl:apply-templates select="text()|text:span|text:tab-stop|text:line-break|text:s|text:ruby|text:bookmark|text:bookmark-start|text:bookmark-end|text:a|text:footnote|text:endnote">
+ <xsl:with-param name="bText" select="'1'"/>
+ <xsl:with-param name="sText" select="'1'"/>
+ </xsl:apply-templates>
+ </xsl:template>
+ <xsl:template match="text:a">
+ <xsl:param name="bText"/>
+ <xsl:choose>
+ <xsl:when test="$bText='0'">
+ <xsl:element name="å­—:å¥">
+ <xsl:attribute name="uof:locID">t0085</xsl:attribute>
+ <xsl:element name="字:区域开始">
+ <xsl:attribute name="字:标识符"><xsl:value-of select="generate-id(.)"/></xsl:attribute>
+ <xsl:attribute name="字:类型">hyperlink</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0121</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="字:区域开始">
+ <xsl:attribute name="字:标识符"><xsl:value-of select="generate-id(.)"/></xsl:attribute>
+ <xsl:attribute name="字:类型">hyperlink</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0121</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型</xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="text()">
+ <xsl:param name="bText"/>
+ <xsl:param name="sText"/>
+ <xsl:if test="normalize-space(.)!=''">
+ <xsl:choose>
+ <xsl:when test="$bText='1' and $sText='1'">
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="."/>
+ </字:文本串>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:otherwise>
+ <字:文本串 uof:locID="t0109" uof:attrList="udsPath">
+ <xsl:value-of select="."/>
+ </字:文本串>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="text:span">
+ <xsl:param name="bText"/>
+ <xsl:choose>
+ <xsl:when test="$bText='0'">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </å­—:å¥å±žæ€§>
+ <xsl:apply-templates select="text:s|text()|text:line-break|text:tab-stop| text:a | text:footnote|text:endnote|draw:image|office:annotation|draw:frame">
+ <xsl:with-param name="bText" select="1"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨" å­—:å¼æ ·å¼•ç”¨="{@text:style-name}"/>
+ <xsl:apply-templates select="text:s|text()|text:line-break|text:tab-stop| text:a |text:footnote|text:endnote|draw:image|office:annotation|draw:frame">
+ <xsl:with-param name="bText" select="1"/>
+ </xsl:apply-templates>
+ </å­—:å¥>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="text:s">
+ <xsl:param name="bText"/>
+ <xsl:choose>
+ <xsl:when test="$bText='0'">
+ <xsl:variable name="count">
+ <xsl:choose>
+ <xsl:when test="not(@text:c)">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@text:c"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <å­—:å¥ uof:locID="t0085">
+ <字:空格符 uof:locID="t0126" uof:attrList="个数" 字:个数="{$count}"/>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:otherwise>
+ <字:空格符 uof:locID="t0126" uof:attrList="个数" 字:个数="{@text:c}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="text:line-break">
+ <xsl:param name="bText"/>
+ <xsl:choose>
+ <xsl:when test="$bText='0'">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:æ¢è¡Œç¬¦ uof:locID="t0124"/>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:otherwise>
+ <å­—:æ¢è¡Œç¬¦ uof:locID="t0124"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="text:tab-stop">
+ <xsl:param name="bText"/>
+ <xsl:choose>
+ <xsl:when test="$bText='0'">
+ <å­—:å¥ uof:locID="t0085">
+ <字:制表符 uof:locID="t0123"/>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:otherwise>
+ <字:制表符 uof:locID="t0123"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--chenjh0713-->
+ <!--chenjh0629E-->
+ <!--chenjh add 20050629 -->
+ <!--字符串转æ¢ä¸ºæ•°å­—-->
+ <xsl:template name="translate-column-char-to-number">
+ <xsl:param name="string"/>
+ <xsl:choose>
+ <xsl:when test="string-length($string)=1">
+ <xsl:call-template name="char-to-number">
+ <xsl:with-param name="char" select="$string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="tens-place">
+ <xsl:call-template name="char-to-number">
+ <xsl:with-param name="char" select="substring($string,1,1)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="units-place">
+ <xsl:call-template name="char-to-number">
+ <xsl:with-param name="char" select="substring($string,2,1)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$tens-place * 26 + $units-place"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="char-to-number">
+ <xsl:param name="char"/>
+ <xsl:choose>
+ <xsl:when test="$char='A'">1</xsl:when>
+ <xsl:when test="$char='B'">2</xsl:when>
+ <xsl:when test="$char='C'">3</xsl:when>
+ <xsl:when test="$char='D'">4</xsl:when>
+ <xsl:when test="$char='E'">5</xsl:when>
+ <xsl:when test="$char='F'">6</xsl:when>
+ <xsl:when test="$char='G'">7</xsl:when>
+ <xsl:when test="$char='H'">8</xsl:when>
+ <xsl:when test="$char='I'">9</xsl:when>
+ <xsl:when test="$char='J'">10</xsl:when>
+ <xsl:when test="$char='K'">11</xsl:when>
+ <xsl:when test="$char='L'">12</xsl:when>
+ <xsl:when test="$char='M'">13</xsl:when>
+ <xsl:when test="$char='N'">14</xsl:when>
+ <xsl:when test="$char='O'">15</xsl:when>
+ <xsl:when test="$char='P'">16</xsl:when>
+ <xsl:when test="$char='Q'">17</xsl:when>
+ <xsl:when test="$char='R'">18</xsl:when>
+ <xsl:when test="$char='S'">19</xsl:when>
+ <xsl:when test="$char='T'">20</xsl:when>
+ <xsl:when test="$char='U'">21</xsl:when>
+ <xsl:when test="$char='V'">22</xsl:when>
+ <xsl:when test="$char='W'">23</xsl:when>
+ <xsl:when test="$char='X'">24</xsl:when>
+ <xsl:when test="$char='Y'">25</xsl:when>
+ <xsl:when test="$char='Z'">26</xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="create-filter-conditions">
+ <xsl:param name="filter-condition-set"/>
+ <xsl:param name="zone-left-column-num"/>
+ <xsl:if test="$filter-condition-set">
+ <xsl:variable name="first-condition" select="$filter-condition-set"/>
+ <xsl:element name="表:æ¡ä»¶">
+ <xsl:attribute name="uof:locID">s0103</xsl:attribute>
+ <xsl:attribute name="uof:attrList">列å·</xsl:attribute>
+ <xsl:attribute name="表:列å·"><xsl:value-of select="$zone-left-column-num + $first-condition/@table:field-number"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$first-condition/@table:operator ='top values'">
+ <xsl:element name="表:普通">
+ <xsl:attribute name="uof:locID">s0104</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 值</xsl:attribute>
+ <xsl:attribute name="表:类型">topitem</xsl:attribute>
+ <xsl:attribute name="表:值"><xsl:value-of select="$first-condition/@table:value"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="表:自定义">
+ <xsl:attribute name="uof:locID">s0105</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:element name="表:æ“作æ¡ä»¶">
+ <xsl:attribute name="uof:locID">s0106</xsl:attribute>
+ <!--redoffice comment from lvxg 8.27-->
+ <xsl:if test="$first-condition/@table:operator">
+ <xsl:element name="表:æ“作ç ">
+ <xsl:attribute name="uof:locID">s0009</xsl:attribute>
+ <xsl:variable name="operator-text" select="$first-condition/@table:operator"/>
+ <xsl:choose>
+ <xsl:when test="$operator-text ='&lt;' ">less than</xsl:when>
+ <xsl:when test="$operator-text ='&gt;' ">greater than</xsl:when>
+ <xsl:when test="$operator-text ='=' ">equal to</xsl:when>
+ <xsl:when test="$operator-text ='&gt;=' ">greater than or equal to</xsl:when>
+ <xsl:when test="$operator-text ='&lt;=' ">less than or equal to</xsl:when>
+ <xsl:when test="$operator-text ='!=' ">not equal to</xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="表:值">
+ <xsl:attribute name="uof:locID">s0107</xsl:attribute>
+ <xsl:value-of select="$first-condition/@table:value"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:call-template name="create-filter-conditions">
+ <xsl:with-param name="filter-condition-set" select="$filter-condition-set[position()!=1]"/>
+ <xsl:with-param name="zone-left-column-num" select="$zone-left-column-num"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="create-view">
+ <xsl:param name="table-name"/>
+ <xsl:param name="view-id"/>
+ <!--xsl:param name="ActiveTable"/-->
+ <xsl:param name="aaa"/>
+ <!--xsl:variable name="aaa" select="/*/office:settings/config:config-item-set/config:config-item-map-indexed"-->
+ <xsl:element name="表:视图">
+ <xsl:attribute name="uof:locID">s0035</xsl:attribute>
+ <xsl:attribute name="uof:attrList">窗å£æ ‡è¯†ç¬¦</xsl:attribute>
+ <xsl:attribute name="表:窗å£æ ‡è¯†ç¬¦"><xsl:value-of select="$view-id"/></xsl:attribute>
+ <xsl:if test="$table-name='ActiveTable'">
+ <xsl:element name="表:选中">
+ <xsl:attribute name="uof:locID">s0036</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="表:值">1</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:variable name="name" select="./@table:name"/>
+ <xsl:choose>
+ <xsl:when test="$aaa/config:config-item-map-named/config:config-item-map-entry[@config:name=$name]/config:config-item[@config:name='HorizontalSplitMode']/text()='2' or $aaa/config:config-item-map-named/config:config-item-map-entry[@config:name=name]/config:config-item[@config:name='VerticalSplitMode']/text()='2' ">
+ <xsl:element name="表:冻结">
+ <xsl:attribute name="uof:locID">s0038</xsl:attribute>
+ <xsl:attribute name="uof:attrList">è¡Œå· åˆ—å·</xsl:attribute>
+ <xsl:attribute name="表:è¡Œå·"><xsl:value-of select="$aaa/config:config-item-map-named/config:config-item-map-entry[@config:name=$name]/config:config-item[@config:name='VerticalSplitPosition']/text()"/></xsl:attribute>
+ <xsl:attribute name="表:列å·"><xsl:value-of select="$aaa/config:config-item-map-named/config:config-item-map-entry[@config:name=$name]/config:config-item[@config:name='HorizontalSplitPosition']/text()"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="表:拆分">
+ <xsl:attribute name="uof:locID">s0037</xsl:attribute>
+ <xsl:attribute name="uof:attrList">宽度 高度</xsl:attribute>
+ <xsl:attribute name="表:宽度"><xsl:choose><xsl:when test="$aaa/config:config-item-map-named/config:config-item-map-entry[@config:name=$name]/config:config-item[@config:name='HorizontalSplitMode']/text()='1'"><xsl:value-of select="$aaa/config:config-item-map-named/config:config-item-map-entry[@config:name=$name]/config:config-item[@config:name='HorizontalSplitPosition']/text()"/></xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="表:高度"><xsl:choose><xsl:when test="$aaa/config:config-item-map-named/config:config-item-map-entry[@config:name=$name]/config:config-item[@config:name='VerticalSplitMode']/text()='1'"><xsl:value-of select="$aaa/config:config-item-map-named/config:config-item-map-entry[@config:name=$name]/config:config-item[@config:name='VerticalSplitPosition']/text()"/></xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:element name="表:最上行">
+ <xsl:attribute name="uof:locID">s0039</xsl:attribute>
+ <!--xsl:value-of select="$aaa/config:config-item-map-named/config:config-item-map-entry[@config:name=$table-name]/config:config-item[@config:name='PositionBottom']/text()+1"/-->
+ <xsl:choose>
+ <xsl:when test="$aaa/config:config-item-map-named/config:config-item-map-entry/config:config-item[@config:name='PositionBottom']/text()">
+ <xsl:value-of select="$aaa/config:config-item-map-named/config:config-item-map-entry/config:config-item[@config:name='PositionBottom']/text()"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="表:最左列">
+ <xsl:attribute name="uof:locID">s0040</xsl:attribute>
+ <!--xsl:value-of select="$aaa/config:config-item-map-named/config:config-item-map-entry[@config:name=$table-name]/config:config-item[@config:name='PositionLeft']/text() + 1"/-->
+ <xsl:choose>
+ <xsl:when test="$aaa/config:config-item-map-named/config:config-item-map-entry/config:config-item[@config:name='PositionRight']/text()">
+ <xsl:value-of select="$aaa/config:config-item-map-named/config:config-item-map-entry/config:config-item[@config:name='PositionRight']/text()"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="表:当å‰è§†å›¾">
+ <xsl:attribute name="uof:locID">s0041</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="表:类型"><xsl:choose><xsl:when test="$aaa/config:config-item[@config:name='ShowPageBreakPreview']/text()='true'">page</xsl:when><xsl:otherwise>normal</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="表:网格">
+ <xsl:attribute name="uof:locID">s0043</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="表:值"><xsl:choose><xsl:when test="/*/office:settings/config:config-item-set[@config:name='ooo:view-settings']//config:config-item[@config:name='ShowGrid']/text()='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="表:网格颜色">
+ <xsl:attribute name="uof:locID">s0044</xsl:attribute>
+ <xsl:variable name="GridColor-text">
+ <xsl:value-of select="//config:config-item-set[@config:name='ooo:view-settings']//config:config-item[@config:name='GridColor']/text()"/>
+ </xsl:variable>
+ <xsl:variable name="R-color" select="floor($GridColor-text div 65536)"/>
+ <xsl:variable name="G-color" select="floor(($GridColor-text - ($R-color * 65536)) div 256)"/>
+ <xsl:variable name="B-color" select="$GridColor-text - ($R-color * 65536)- ($G-color * 256)"/>
+ <xsl:variable name="R-color-in-16">
+ <xsl:call-template name="transform-decimal-to-hexadecimal">
+ <xsl:with-param name="color-decimal" select="$R-color"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="G-color-in-16">
+ <xsl:call-template name="transform-decimal-to-hexadecimal">
+ <xsl:with-param name="color-decimal" select="$G-color"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="B-color-in-16">
+ <xsl:call-template name="transform-decimal-to-hexadecimal">
+ <xsl:with-param name="color-decimal" select="$B-color"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat('#',$R-color-in-16,$G-color-in-16,$B-color-in-16)"/>
+ </xsl:element>
+ <xsl:if test="/*/office:settings/config:config-item-set[@config:name='ooo:view-settings']//config:config-item[@config:name='ZoomType']/text()=0">
+ <xsl:element name="表:缩放">
+ <xsl:attribute name="uof:locID">s0045</xsl:attribute>
+ <xsl:value-of select="/*/office:settings/config:config-item-set[@config:name='ooo:view-settings']//config:config-item[@config:name='ZoomValue']/text()"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="/*/office:settings/config:config-item-set[@config:name='ooo:view-settings']//config:config-item[@config:name='ZoomType']/text()=1">
+ <xsl:element name="表:分页缩放">
+ <xsl:attribute name="uof:locID">s0046</xsl:attribute>
+ <xsl:value-of select="/*/office:settings/config:config-item-set[@config:name='ooo:view-settings']//config:config-item[@config:name='ZoomValue']/text()"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="hexNumber2dec">
+ <xsl:param name="hex-value"/>
+ <xsl:choose>
+ <xsl:when test="$hex-value = 'A' or ($hex-value = 'a')">
+ <xsl:value-of select="10"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'B' or ($hex-value = 'b')">
+ <xsl:value-of select="11"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'C' or ($hex-value = 'c')">
+ <xsl:value-of select="12"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'D' or ($hex-value = 'd')">
+ <xsl:value-of select="13"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'E' or ($hex-value = 'e')">
+ <xsl:value-of select="14"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'F' or ($hex-value = 'f')">
+ <xsl:value-of select="15"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$hex-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="hex2decimal">
+ <xsl:param name="hex-number"/>
+ <xsl:param name="index"/>
+ <xsl:param name="str-length"/>
+ <xsl:param name="last-value"/>
+ <xsl:variable name="dec-char">
+ <xsl:call-template name="hexNumber2dec">
+ <xsl:with-param name="hex-value" select="substring($hex-number, $index ,1)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="current-value" select="$last-value * 16 + $dec-char"/>
+ <xsl:if test="$index &lt; $str-length">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="$hex-number"/>
+ <xsl:with-param name="index" select="$index + 1"/>
+ <xsl:with-param name="str-length" select="$str-length"/>
+ <xsl:with-param name="last-value" select="$current-value"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$index = $str-length">
+ <xsl:value-of select="$current-value"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="table:calculation-settings" mode="common">
+ <xsl:if test="@table:precision-as-shown">
+ <xsl:element name="表:精确度以显示值为准">
+ <xsl:attribute name="uof:locID">s0002</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="表:值"><xsl:value-of select="@table:precision-as-shown"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="表:日期系统-1904">
+ <xsl:attribute name="uof:locID">s0003</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="表:值"><xsl:choose><xsl:when test="table:null-date/@table:date-value='1904-01-01'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:if test="table:iteration/@table:status='enable'">
+ <表:计算设置 uof:locID="s0004" uof:attrList="迭代次数 å差值">
+ <xsl:attribute name="表:迭代次数"><xsl:value-of select="table:iteration/@table:steps"/></xsl:attribute>
+ <xsl:attribute name="表:å差值"><xsl:choose><xsl:when test="table:iteration/@table:maximum-difference"><xsl:value-of select="table:iteration/@table:maximum-difference"/></xsl:when><xsl:otherwise>0.001</xsl:otherwise></xsl:choose><!--xsl:value-of select="table:iteration/@table:maximum-difference"/--></xsl:attribute>
+ </表:计算设置>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="office:automatic-styles" mode="common">
+ <xsl:element name="表:æ¡ä»¶æ ¼å¼åŒ–集">
+ <xsl:attribute name="uof:locID">s0016</xsl:attribute>
+ <xsl:variable name="temp-path" select="../office:automatic-styles/style:style"/>
+ <xsl:for-each select="$temp-path/style:map">
+ <xsl:element name="表:æ¡ä»¶æ ¼å¼åŒ–">
+ <xsl:attribute name="uof:locID">s0017</xsl:attribute>
+ <xsl:element name="表:区域">
+ <xsl:attribute name="uof:locID">s0007</xsl:attribute>
+ <xsl:variable name="range-name">
+ <xsl:value-of select="substring-before(@style:base-cell-address,'.')"/>
+ </xsl:variable>
+ <xsl:variable name="range-value">
+ <xsl:value-of select="substring-after(@style:base-cell-address,'.')"/>
+ </xsl:variable>
+ <xsl:value-of select="concat(&quot;&apos;&quot;,$range-name,&quot;&apos;&quot;,'!$',substring($range-value,1,1),'$',substring($range-value,2))"/>
+ </xsl:element>
+ <xsl:element name="表:æ¡ä»¶">
+ <xsl:attribute name="uof:locID">s0019</xsl:attribute>
+ <xsl:attribute name="表:类型"><xsl:choose><xsl:when test="contains(@style:condition,'formula')"><xsl:value-of select="'formula'"/></xsl:when><xsl:otherwise><xsl:value-of select="'cell value'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:element name="表:æ“作ç ">
+ <xsl:attribute name="uof:locID">s0009</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="contains(@style:condition,'!=')">
+ <xsl:value-of select="'not equal to'"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'&lt;=')">
+ <xsl:value-of select="'less than or equal to'"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'&gt;=')">
+ <xsl:value-of select="'greater than or equal to'"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'&lt;')">
+ <xsl:value-of select="'less than'"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'&gt;')">
+ <xsl:value-of select="'greater than'"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'=')">
+ <xsl:value-of select="'equal to'"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'not-between')">
+ <xsl:value-of select="'not-between'"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'between')">
+ <xsl:value-of select="'between'"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="表:第一æ“作数">
+ <xsl:attribute name="uof:locID">s0010</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="contains(@style:condition,'formula')">
+ <xsl:value-of select="substring-after(substring-before(@style:condition,')'),'(')"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'=')">
+ <xsl:value-of select="substring-after(@style:condition,'=')"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'&lt;') and not(contains(@style:condition,'&lt;='))">
+ <xsl:value-of select="substring-after(@style:condition,'&lt;')"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'&gt;') and not(contains(@style:condition,'&gt;='))">
+ <xsl:value-of select="substring-after(@style:condition,'&gt;')"/>
+ </xsl:when>
+ <xsl:when test="contains(@style:condition,'between')">
+ <xsl:value-of select="substring-before(substring-after(@style:condition,'('),',')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="contains(@style:condition,',')">
+ <xsl:element name="表:第二æ“作数">
+ <xsl:attribute name="uof:locID">s0011</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="contains(@style:condition,'between')">
+ <xsl:value-of select="substring-before(substring-after(@style:condition,','),')')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="表:æ ¼å¼">
+ <xsl:attribute name="uof:locID">s0023</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="表:å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:apply-style-name"/></xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="table:content-validations" mode="common">
+ <xsl:element name="表:æ•°æ®æœ‰æ•ˆæ€§é›†">
+ <xsl:attribute name="uof:locID">s0005</xsl:attribute>
+ <xsl:call-template name="create-validation-set">
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="create-validation-set">
+ <xsl:for-each select="//table:content-validation">
+ <xsl:element name="表:æ•°æ®æœ‰æ•ˆæ€§">
+ <xsl:attribute name="uof:locID">s0006</xsl:attribute>
+ <xsl:variable name="conditiontext" select="@table:condition"/>
+ <xsl:variable name="operatortext" select="substring-after($conditiontext,'and ')"/>
+ <xsl:element name="表:区域">
+ <xsl:attribute name="uof:locID">s0007</xsl:attribute>
+ <xsl:variable name="left-top">
+ <xsl:call-template name="search-left-top-validation">
+ <xsl:with-param name="validation-name" select="@table:name"/>
+ <xsl:with-param name="tableslist" select="/*/office:body/office:spreadsheet/table:table"/>
+ <xsl:with-param name="return" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="after-translated-left-top">
+ <xsl:call-template name="translate-left-top">
+ <xsl:with-param name="left-top" select="$left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="base" select="@table:base-cell-address"/>
+ <xsl:variable name="base-column-and-row" select="substring-after($base,'.')"/>
+ <xsl:variable name="dd" select="number(substring($base-column-and-row,2,1))"/>
+ <xsl:variable name="base-column">
+ <xsl:choose>
+ <xsl:when test="contains($dd,'NaN') ">
+ <xsl:value-of select="substring($base-column-and-row,1,2)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring($base-column-and-row,1,1)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="base-row" select="substring-after($base,$base-column)"/>
+ <xsl:variable name="after-translated-base-left-top">
+ <xsl:value-of select="concat('$',substring-before($base,'.'),'.$',$base-column,'$',$base-row)"/>
+ </xsl:variable>
+ <xsl:value-of select="concat('$',$after-translated-left-top,':',$after-translated-base-left-top)"/>
+ </xsl:element>
+ <xsl:element name="表:校验类型">
+ <xsl:attribute name="uof:locID">s0008</xsl:attribute>
+ <xsl:variable name="listtest">cell-content-is-in-list("</xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($conditiontext,'cell-content-is-whole-number()')">whole number</xsl:when>
+ <xsl:when test="contains($conditiontext,'cell-content-is-decimal-number()')">decimal</xsl:when>
+ <xsl:when test="contains($conditiontext,'cell-content-is-date()')">date</xsl:when>
+ <xsl:when test="contains($conditiontext,'cell-content-is-time()')">time</xsl:when>
+ <xsl:when test="contains($conditiontext,'cell-content-is-in-list') and not(contains($conditiontext,$listtest))">cell range</xsl:when>
+ <xsl:when test="contains($conditiontext,'cell-content-is-in-list') and contains($conditiontext,$listtest)">list</xsl:when>
+ <xsl:when test="contains($conditiontext,'cell-content-text-length')">text length</xsl:when>
+ <xsl:otherwise>any value</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="表:æ“作ç ">
+ <xsl:attribute name="uof:locID">s0009</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="starts-with($operatortext,'cell-content()&lt;=')">less than or equal to</xsl:when>
+ <xsl:when test="starts-with($operatortext,'cell-content()&gt;=')">greater than or equal to</xsl:when>
+ <xsl:when test="starts-with($operatortext,'cell-content()&lt;')">less than</xsl:when>
+ <xsl:when test="starts-with($operatortext,'cell-content()&gt;')">greater than</xsl:when>
+ <xsl:when test="starts-with($operatortext,'cell-content()!=')">not equal to</xsl:when>
+ <xsl:when test="starts-with($operatortext,'cell-content()=')">equal to</xsl:when>
+ <xsl:when test="starts-with($conditiontext,'oooc:cell-content-text-length()')">
+ <xsl:variable name="operator" select="substring-after($conditiontext,'oooc:cell-content-text-length()')"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($operator,'&lt;=')">less than or equal to</xsl:when>
+ <xsl:when test="starts-with($operator,'&gt;=')">greater than or equal to</xsl:when>
+ <xsl:when test="starts-with($operator,'&lt;')">less than</xsl:when>
+ <xsl:when test="starts-with($operator,'&gt;')">greater than</xsl:when>
+ <xsl:when test="starts-with($operator,'!=')">not equal to</xsl:when>
+ <xsl:when test="starts-with($operator,'=')">equal to</xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="contains($conditiontext,'is-between')">between</xsl:when>
+ <xsl:when test="contains($conditiontext,'is-not-between')">not between</xsl:when>
+ <!-- 注æ„:uof有的å¦å‡ ç§æ“作ç åœ¨oo中没有,他们是contain,not contain,start with,not start with, end with,not end with-->
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="表:第一æ“作数">
+ <xsl:attribute name="uof:locID">s0010</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="starts-with($operatortext,'cell-content-is-between')">
+ <xsl:value-of select="substring-before(substring-after($operatortext,'cell-content-is-between('),',')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operatortext,'cell-content-is-not-between')">
+ <xsl:value-of select="substring-before(substring-after($operatortext,'cell-content-is-not-between('),',')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($conditiontext,'oooc:cell-content-text-length()')">
+ <xsl:variable name="operator" select="substring-after($conditiontext,'cell-content-text-length()')"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($operator,'&lt;=')">
+ <xsl:value-of select="substring-after($operator,'&lt;=')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operator,'&gt;=')">
+ <xsl:value-of select="substring-after($operator,'&gt;=')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operator,'&lt;')">
+ <xsl:value-of select="substring-after($operator,'&lt;')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operator,'&gt;')">
+ <xsl:value-of select="substring-after($operator,'&gt;')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operator,'!=')">
+ <xsl:value-of select="substring-after($operator,'!=')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operator,'=')">
+ <xsl:value-of select="substring-after($operator,'=')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with($conditiontext,'oooc:cell-content-is-in-list')">
+ <xsl:value-of select="substring-after($conditiontext,'oooc:cell-content-is-in-list')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($conditiontext,'oooc:cell-content-text-length-is-not-between')">
+ <xsl:value-of select="substring-before(substring-after($conditiontext,'oooc:cell-content-text-length-is-not-between('),',')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($conditiontext,'oooc:cell-content-text-length-is-between')">
+ <xsl:value-of select="substring-before(substring-after($conditiontext,'oooc:cell-content-text-length-is-between('),',')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operatortext,'cell-content()')">
+ <xsl:variable name="operator" select="substring-after($conditiontext,'oooc:cell-content()')"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($operator,'&lt;=')">
+ <xsl:value-of select="substring-after($operator,'&lt;=')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operator,'&gt;=')">
+ <xsl:value-of select="substring-after($operator,'&gt;=')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operator,'&lt;')">
+ <xsl:value-of select="substring-after($operator,'&lt;')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operator,'&gt;')">
+ <xsl:value-of select="substring-after($operator,'&gt;')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operator,'!=')">
+ <xsl:value-of select="substring-after($operator,'!=')"/>
+ </xsl:when>
+ <xsl:when test="starts-with($operator,'=')">
+ <xsl:value-of select="substring-after($operator,'=')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="starts-with($operatortext,'cell-content-is-between') or starts-with($operatortext,'cell-content-is-not-between')">
+ <xsl:element name="表:第二æ“作数">
+ <xsl:attribute name="uof:locID">s0011</xsl:attribute>
+ <xsl:value-of select="substring-before(substring-after($operatortext,','),')')"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="starts-with($conditiontext,'oooc:cell-content-text-length-is-not-between') or starts-with($conditiontext,'oooc:cell-content-text-length-is-between')">
+ <xsl:element name="表:第二æ“作数">
+ <xsl:attribute name="uof:locID">s0011</xsl:attribute>
+ <xsl:value-of select="substring-before(substring-after($conditiontext,','),')')"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="表:忽略空格">
+ <xsl:attribute name="uof:locID">s0012</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="表:值"><xsl:value-of select="@table:allow-empty-cell"/></xsl:attribute>
+ </xsl:element>
+ <xsl:if test="contains($conditiontext,'cell-content-is-in-list') ">
+ <xsl:element name="表:下拉箭头">
+ <xsl:attribute name="uof:locID">s0013</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="表:值">false</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="table:help-message">
+ <xsl:element name="表:输入æ示">
+ <xsl:attribute name="uof:locID">s0014</xsl:attribute>
+ <xsl:attribute name="uof:attrList">显示 标题 内容</xsl:attribute>
+ <xsl:attribute name="表:显示"><xsl:value-of select="table:help-message/@table:display"/></xsl:attribute>
+ <xsl:attribute name="表:标题"><xsl:choose><xsl:when test="table:help-message/@table:title"><xsl:value-of select="table:help-message/@table:title"/></xsl:when><xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:variable name="content">
+ <xsl:call-template name="create-help-error-message-content">
+ <xsl:with-param name="text-p-set" select="table:help-message/text:p"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="表:内容"><xsl:value-of select="$content"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="table:error-message">
+ <xsl:element name="表:错误æ示">
+ <xsl:attribute name="uof:locID">s0015</xsl:attribute>
+ <xsl:attribute name="uof:attrList">显示 类型 标题 内容</xsl:attribute>
+ <xsl:attribute name="表:显示"><xsl:value-of select="table:error-message/@table:display"/></xsl:attribute>
+ <xsl:attribute name="表:类型"><xsl:value-of select="table:error-message/@table:message-type"/></xsl:attribute>
+ <xsl:attribute name="表:标题"><xsl:choose><xsl:when test="table:error-message/@table:title"><xsl:value-of select="table:error-message/@table:title"/></xsl:when><xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:variable name="content">
+ <xsl:call-template name="create-help-error-message-content">
+ <xsl:with-param name="text-p-set" select="table:error-message/text:p"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="表:内容"><xsl:value-of select="$content"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="search-left-top-validation">
+ <xsl:param name="validation-name"/>
+ <xsl:param name="tableslist"/>
+ <xsl:param name="return"/>
+ <xsl:choose>
+ <xsl:when test="$tableslist and $return=''">
+ <xsl:variable name="firsttablerows" select="$tableslist[1]//table:table-row"/>
+ <xsl:variable name="first-left-top">
+ <xsl:call-template name="search-left-top-validation-inatable">
+ <xsl:with-param name="row-num" select="'1'"/>
+ <xsl:with-param name="firsttablerows" select="$firsttablerows"/>
+ <xsl:with-param name="validation-name" select="$validation-name"/>
+ <xsl:with-param name="return" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="rest-left-top">
+ <xsl:call-template name="search-left-top-validation">
+ <xsl:with-param name="validation-name" select="$validation-name"/>
+ <xsl:with-param name="tableslist" select="$tableslist[position()!=1]"/>
+ <xsl:with-param name="return" select="$first-left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-left-top!=''">
+ <xsl:value-of select="$first-left-top"/>
+ </xsl:when>
+ <xsl:when test="$rest-left-top!=''">
+ <xsl:value-of select="$rest-left-top"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="translate-left-top">
+ <xsl:param name="left-top"/>
+ <xsl:variable name="column-number" select="substring-before(substring-after($left-top,'.'),' ')"/>
+ <xsl:variable name="column-number1">
+ <xsl:value-of select="floor( $column-number div 26 )"/>
+ </xsl:variable>
+ <xsl:variable name="column-number2">
+ <xsl:value-of select="$column-number mod 26"/>
+ </xsl:variable>
+ <xsl:variable name="column-character1">
+ <xsl:call-template name="number-to-character">
+ <xsl:with-param name="number" select="$column-number1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="column-character2">
+ <xsl:call-template name="number-to-character">
+ <xsl:with-param name="number" select="$column-number2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat(substring-before($left-top,'.'),'.','$',$column-character1,$column-character2,'$',substring-after($left-top,' '))"/>
+ </xsl:template>
+ <xsl:template name="create-help-error-message-content">
+ <xsl:param name="text-p-set"/>
+ <xsl:if test="$text-p-set">
+ <!--此处有问题ï¼ï¼ï¼ï¼åº”该是有一个模å—调用等-->
+ <!--xsl:value-of select="'&#10;'"/-->
+ <xsl:value-of select="$text-p-set"/>
+ <xsl:call-template name="create-help-error-message-content">
+ <xsl:with-param name="text-p-set" select="$text-p-set[position()!=1]"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="search-left-top-validation-inatable">
+ <xsl:param name="row-num"/>
+ <xsl:param name="firsttablerows"/>
+ <xsl:param name="validation-name"/>
+ <xsl:param name="return"/>
+ <xsl:choose>
+ <xsl:when test="$firsttablerows and $return=''">
+ <xsl:variable name="firstcells" select="$firsttablerows[1]/table:table-cell"/>
+ <xsl:variable name="first-left-top">
+ <xsl:call-template name="search-left-top-validation-inarow">
+ <xsl:with-param name="row-num" select="$row-num"/>
+ <xsl:with-param name="column-num" select="'1'"/>
+ <xsl:with-param name="firstcells" select="$firstcells"/>
+ <xsl:with-param name="validation-name" select="$validation-name"/>
+ <xsl:with-param name="return" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="row-num-p">
+ <xsl:choose>
+ <xsl:when test="$firsttablerows[1]/@table:number-rows-repeated">
+ <xsl:value-of select="$row-num+ $firsttablerows[1]/@table:number-rows-repeated"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$row-num+1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="rest-left-top">
+ <xsl:call-template name="search-left-top-validation-inatable">
+ <xsl:with-param name="row-num" select="$row-num-p"/>
+ <xsl:with-param name="firsttablerows" select="$firsttablerows[position()!=1]"/>
+ <xsl:with-param name="validation-name" select="$validation-name"/>
+ <xsl:with-param name="return" select="$first-left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-left-top!=''">
+ <xsl:value-of select="$first-left-top"/>
+ </xsl:when>
+ <xsl:when test="$rest-left-top !=''">
+ <xsl:value-of select="$rest-left-top "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="number-to-character">
+ <xsl:param name="number"/>
+ <xsl:choose>
+ <xsl:when test="$number = 0"/>
+ <xsl:when test="$number = 1">A</xsl:when>
+ <xsl:when test="$number = 2">B</xsl:when>
+ <xsl:when test="$number = 3">C</xsl:when>
+ <xsl:when test="$number = 4">D</xsl:when>
+ <xsl:when test="$number = 5">E</xsl:when>
+ <xsl:when test="$number = 6">F</xsl:when>
+ <xsl:when test="$number = 7">G</xsl:when>
+ <xsl:when test="$number = 8">H</xsl:when>
+ <xsl:when test="$number = 9">I</xsl:when>
+ <xsl:when test="$number = 10">J</xsl:when>
+ <xsl:when test="$number = 11">K</xsl:when>
+ <xsl:when test="$number = 12">L</xsl:when>
+ <xsl:when test="$number = 13">M</xsl:when>
+ <xsl:when test="$number = 14">N</xsl:when>
+ <xsl:when test="$number = 15">O</xsl:when>
+ <xsl:when test="$number = 16">P</xsl:when>
+ <xsl:when test="$number = 17">Q</xsl:when>
+ <xsl:when test="$number = 18">R</xsl:when>
+ <xsl:when test="$number = 19">S</xsl:when>
+ <xsl:when test="$number = 20">T</xsl:when>
+ <xsl:when test="$number = 21">U</xsl:when>
+ <xsl:when test="$number = 22">V</xsl:when>
+ <xsl:when test="$number = 23">W</xsl:when>
+ <xsl:when test="$number = 24">X</xsl:when>
+ <xsl:when test="$number = 25">Y</xsl:when>
+ <xsl:when test="$number = 26">Z</xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="search-left-top-validation-inacell">
+ <xsl:param name="row-num"/>
+ <xsl:param name="column-num"/>
+ <xsl:param name="cell"/>
+ <xsl:param name="validation-name"/>
+ <xsl:choose>
+ <xsl:when test="$cell/@table:content-validation-name=$validation-name">
+ <xsl:value-of select="concat($cell/ancestor::table:table/@table:name,'.',$column-num,' ',$row-num)"/>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="search-left-top-validation-inarow">
+ <xsl:param name="row-num"/>
+ <xsl:param name="column-num"/>
+ <xsl:param name="firstcells"/>
+ <xsl:param name="validation-name"/>
+ <xsl:param name="return"/>
+ <xsl:choose>
+ <xsl:when test="$firstcells and $return=''">
+ <xsl:variable name="firstcell" select="$firstcells[1]"/>
+ <xsl:variable name="first-left-top">
+ <xsl:call-template name="search-left-top-validation-inacell">
+ <xsl:with-param name="row-num" select="$row-num"/>
+ <xsl:with-param name="column-num" select="$column-num"/>
+ <xsl:with-param name="cell" select="$firstcell"/>
+ <xsl:with-param name="validation-name" select="$validation-name"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="column-num-p">
+ <xsl:choose>
+ <xsl:when test="$firstcell/@table:number-columns-repeated">
+ <xsl:value-of select="$column-num+ $firstcell/@table:number-columns-repeated"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$column-num+ 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="rest-left-top">
+ <xsl:call-template name="search-left-top-validation-inarow">
+ <xsl:with-param name="row-num" select="$row-num"/>
+ <xsl:with-param name="column-num" select="$column-num-p"/>
+ <xsl:with-param name="firstcells" select="$firstcells[position()!=1]"/>
+ <xsl:with-param name="validation-name" select="$validation-name"/>
+ <xsl:with-param name="return" select="$first-left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-left-top!=''">
+ <xsl:value-of select="$first-left-top"/>
+ </xsl:when>
+ <xsl:when test="$rest-left-top !=''">
+ <xsl:value-of select="$rest-left-top "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/uof/odf2uof_text.xsl b/test/user-template/user/xslt/export/uof/odf2uof_text.xsl
new file mode 100644
index 000000000000..b02108e76dbe
--- /dev/null
+++ b/test/user-template/user/xslt/export/uof/odf2uof_text.xsl
@@ -0,0 +1,4439 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:uof="http://schemas.uof.org/cn/2003/uof" xmlns:表="http://schemas.uof.org/cn/2003/uof-spreadsheet" xmlns:演="http://schemas.uof.org/cn/2003/uof-slideshow" xmlns:字="http://schemas.uof.org/cn/2003/uof-wordproc" xmlns:图="http://schemas.uof.org/cn/2003/graph" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0" exclude-result-prefixes="office style text table draw fo xlink dc meta number presentation svg chart dr3d math form script config ooo ooow oooc dom xforms smil anim">
+ <xsl:output method="xml" indent="no" encoding="UTF-8" version="1.0"/>
+ <!--xsl:key name="colWidth" match="/office:automatic/style:style/" use="@style:column-width"/-->
+ <xsl:variable name="swValueWithUnit">
+ <xsl:value-of select="/office:document/office:automatic-styles/style:page-layout/style:page-layout-properties/@fo:page-width"/>
+ </xsl:variable>
+ <xsl:variable name="uofUnit">
+ <xsl:choose>
+ <xsl:when test="contains($swValueWithUnit,'in')">inch</xsl:when>
+ <xsl:when test="contains($swValueWithUnit,'cm')">cm</xsl:when>
+ <xsl:when test="contains($swValueWithUnit,'mm')">mm</xsl:when>
+ <xsl:when test="contains($swValueWithUnit,'pt')">pt</xsl:when>
+ <xsl:otherwise>inch</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="ooUnit">
+ <xsl:choose>
+ <xsl:when test="contains($swValueWithUnit,'in')">inch</xsl:when>
+ <xsl:when test="contains($swValueWithUnit,'cm')">cm</xsl:when>
+ <xsl:when test="contains($swValueWithUnit,'mm')">mm</xsl:when>
+ <xsl:when test="contains($swValueWithUnit,'pt')">pt</xsl:when>
+ <xsl:otherwise>inch</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:template match="/">
+ <xsl:apply-templates select="office:document"/>
+ </xsl:template>
+ <xsl:template match="office:document">
+ <uof:UOF xmlns:uof="http://schemas.uof.org/cn/2003/uof" xmlns:表="http://schemas.uof.org/cn/2003/uof-spreadsheet" xmlns:演="http://schemas.uof.org/cn/2003/uof-slideshow" xmlns:字="http://schemas.uof.org/cn/2003/uof-wordproc" xmlns:图="http://schemas.uof.org/cn/2003/graph" uof:language="cn" uof:locID="u0000" uof:version="1.0" uof:mimetype="vnd.uof.text">
+ <xsl:apply-templates select="office:meta"/>
+ <xsl:if test="/office:document/office:body/office:text/text:p/text:bookmark-start|/office:document/office:body/office:text/text:p/text:bookmark">
+ <uof:书签集 uof:locID="u0027">
+ <xsl:for-each select="/office:document/office:body/office:text/text:p/text:bookmark-start|/office:document/office:body/office:text/text:p/text:bookmark">
+ <uof:书签 uof:locID="u0028" uof:attrList="å称">
+ <xsl:attribute name="uof:å称"><xsl:value-of select="@text:name"/></xsl:attribute>
+ <uof:文本ä½ç½® uof:locID="u0029" uof:attrList="区域引用">
+ <xsl:attribute name="字:区域引用"><xsl:value-of select="generate-id()"/></xsl:attribute>
+ </uof:文本ä½ç½®>
+ </uof:书签>
+ </xsl:for-each>
+ </uof:书签集>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/office:text/text:p/text:a | /office:document/office:body/office:text/text:p/draw:a | /office:document/office:body/office:text/table:table/table:table-row/table:table-cell/text:p/text:a | /office:document/office:body/office:text/text:table-of-content/text:index-body/text:p/text:a">
+ <uof:链接集 uof:locID="u0031">
+ <xsl:for-each select="/office:document/office:body/office:text/text:p/text:a | /office:document/office:body/office:text/text:p/draw:a | /office:document/office:body/office:text/table:table/table:table-row/table:table-cell/text:p/text:a | /office:document/office:body/office:text/text:table-of-content/text:index-body/text:p/text:a">
+ <xsl:variable name="hyperStr" select="@xlink:href"/>
+ <uof:超级链接 uof:locID="u0032" uof:attrList="标识符 目标 书签 å¼æ ·å¼•ç”¨ 已访问å¼æ ·å¼•ç”¨ æ示 链æº">
+ <xsl:if test="contains($hyperStr,'#')">
+ <xsl:attribute name="uof:书签"><xsl:value-of select="substring-after($hyperStr,'#')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="num">
+ <xsl:number from="/office:document/office:body/office:text" level="any" count="text:a | table:table/table:table-row/table:table-cell/text:a"/>
+ </xsl:variable>
+ <xsl:attribute name="uof:链æº"><xsl:value-of select="concat('hlnk',$num)"/></xsl:attribute>
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat('hyk_','hlnk',$num)"/></xsl:attribute>
+ <xsl:if test="not(contains($hyperStr,'#'))">
+ <xsl:attribute name="uof:目标"><xsl:value-of select="$hyperStr"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@office:name">
+ <xsl:attribute name="uof:æ示"><xsl:value-of select="@office:name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@text:style-name">
+ <xsl:attribute name="uof:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@text:visited-style-name">
+ <xsl:attribute name="uof:已访问å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:visited-style-name"/></xsl:attribute>
+ </xsl:if>
+ </uof:超级链接>
+ </xsl:for-each>
+ </uof:链接集>
+ </xsl:if>
+ <uof:å¼æ ·é›† uof:locID="u0039">
+ <xsl:apply-templates select="office:font-face-decls"/>
+ <xsl:call-template name="自动编å·é›†"/>
+ <xsl:call-template name="shiyang"/>
+ <xsl:apply-templates select="office:automatic-styles/style:style" mode="style"/>
+ </uof:å¼æ ·é›†>
+ <uof:对象集 uof:locID="u0033">
+ <xsl:for-each select="/office:document/office:body/office:text/draw:*">
+ <xsl:variable name="nodename1">
+ <xsl:value-of select="name()"/>
+ </xsl:variable>
+ <xsl:call-template name="draw">
+ <xsl:with-param name="nodename1" select="$nodename1"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ <xsl:apply-templates select="/office:document/office:body/office:text//text:p" mode="styles"/>
+ <xsl:apply-templates select="/office:document/office:master-styles/style:master-page/style:header/text:p" mode="styles"/>
+ <xsl:apply-templates select="/office:document/office:master-styles/style:master-page/style:footer/text:p" mode="styles"/>
+ <xsl:for-each select="(/office:document/office:styles/style:style/style:paragraph-properties/style:background-image) | (/office:document/office:automatic-styles/style:style/style:paragraph-properties/style:background-image) | (/office:document/office:automatic-styles/style:page-layout/style:page-layout-properties/style:background-image) | /office:document/office:automatic-styles/style:style/style:table-cell-properties/style:background-image | /office:document/office:automatic-styles/style:style/style:table-properties/style:background-image | /office:document/office:automatic-styles/style:style/style:graphic-properties/style:background-image">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat('background-image_',count(preceding::style:background-image))"/></xsl:attribute>
+ <xsl:attribute name="uof:公共类型">png</xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="office:binary-data"/>
+ </uof:æ•°æ®>
+ </uof:其他对象>
+ </xsl:for-each>
+ <xsl:for-each select="(/office:document/office:styles/text:list-style/text:list-level-style-image) | (/office:document/office:automatic-styles/text:list-style/text:list-level-style-image)">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat('image_numbering_',count(preceding::text:list-level-style-image))"/></xsl:attribute>
+ <xsl:attribute name="uof:公共类型">png</xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="office:binary-data"/>
+ </uof:æ•°æ®>
+ </uof:其他对象>
+ </xsl:for-each>
+ <xsl:for-each select="/office:document/office:styles/draw:fill-image">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="@draw:name"/></xsl:attribute>
+ <xsl:attribute name="uof:公共类型">png</xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="office:binary-data"/>
+ </uof:æ•°æ®>
+ </uof:其他对象>
+ </xsl:for-each>
+ <!--xsl:apply-templates select="/office:document/office:automatic-styles/style:style[@style:family = 'graphics']"/>
+ <xsl:apply-templates select="office:styles/style:style[@style:family = 'graphics']"/>
+ <xsl:apply-templates select="office:styles/style:default-style [@style:family = 'graphics']"/-->
+ </uof:对象集>
+ <uof:æ–‡å­—å¤„ç† uof:locID="u0047">
+ <å­—:公用处ç†è§„则 uof:locID="t0000">
+ <xsl:apply-templates select="office:settings"/>
+ <xsl:call-template name="GetUsers"/>
+ <xsl:call-template name="GetTrackChanges"/>
+ <xsl:call-template name="GetAnnotations"/>
+ </å­—:公用处ç†è§„则>
+ <字:主体 uof:locID="t0016">
+ <xsl:for-each select="office:automatic-styles/style:page-layout[@style:name='pm1']">
+ <xsl:call-template name="style:page-layout"/>
+ </xsl:for-each>
+ <!--xsl:call-template name="office:automatic-styles/style:page-layout[@style:name='pm1']"/-->
+ <!--xsl:apply-templates select="office:automatic-styles/style:page-layout[@style:name='pm1']"/-->
+ <xsl:apply-templates select="office:body/office:text"/>
+ <xsl:call-template name="logic-chapter"/>
+ </字:主体>
+ </uof:文字处ç†>
+ </uof:UOF>
+ </xsl:template>
+ <xsl:template name="logic-chapter">
+ <xsl:element name="字:逻辑章节">
+ <xsl:attribute name="uof:locID">t0050</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="GetAnnotations">
+ <xsl:if test="/*/office:body/office:text//office:annotation ">
+ <字:批注集 uof:locID="t0014">
+ <xsl:for-each select="/*/office:body/office:text//office:annotation">
+ <字:批注 uof:locID="t0015" uof:attrList="区域引用 作者 日期 作者缩写">
+ <xsl:attribute name="字:作者"><xsl:value-of select="generate-id()"/></xsl:attribute>
+ <xsl:attribute name="字:日期"><xsl:value-of select="dc:date"/></xsl:attribute>
+ <xsl:attribute name="字:区域引用">cmt<xsl:number from="/office:document/office:body/office:text" level="any" count="office:annotation"/></xsl:attribute>
+ <xsl:for-each select="./node()">
+ <xsl:choose>
+ <xsl:when test="name()='text:p'">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name()='table:table'">
+ <xsl:call-template name="exec_table"/>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:for-each>
+ </字:批注>
+ </xsl:for-each>
+ </字:批注集>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="GetTrackChanges">
+ <xsl:if test="/*/office:body/office:text/text:tracked-changes">
+ <å­—:修订信æ¯é›† uof:locID="t0012">
+ <xsl:for-each select="/*/office:body/office:text/text:tracked-changes/text:changed-region">
+ <å­—:ä¿®è®¢ä¿¡æ¯ å­—:标识符="{@text:id}" å­—:作者="{generate-id()}" å­—:日期="{node()//office:change-info/dc:date}" uof:locID="t0013" uof:attrList="标识符 作者 日期"/>
+ </xsl:for-each>
+ </å­—:修订信æ¯é›†>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="GetUsers">
+ <xsl:if test="/*/office:body/office:text/text:tracked-changes//office:change-info/dc:creator or //office:annotation/@office:author or //office:annotation/dc:creator">
+ <字:用户集 uof:locID="t0010">
+ <xsl:for-each select="/*/office:body/office:text/text:tracked-changes/text:changed-region">
+ <å­—:用户 å­—:标识符="{generate-id()}" å­—:姓å="{node()//office:change-info/dc:creator}" uof:locID="t0011" uof:attrList="标识符 姓å"/>
+ </xsl:for-each>
+ <xsl:for-each select="//office:annotation">
+ <å­—:用户 å­—:标识符="{generate-id()}" å­—:姓å="{dc:creator}" uof:locID="t0011" uof:attrList="标识符 姓å"/>
+ </xsl:for-each>
+ </字:用户集>
+ </xsl:if>
+ </xsl:template>
+ <xsl:key match="/office:document/office:automatic-styles/style:style | /office:document/office:styles/style:style" name="graphicset" use="@style:name"/>
+ <xsl:template match="text:p" mode="styles">
+ <xsl:for-each select="child::*">
+ <xsl:variable name="nodename1">
+ <xsl:value-of select="name()"/>
+ </xsl:variable>
+ <xsl:if test="(substring-before($nodename1,':') = 'draw')">
+ <xsl:call-template name="draw">
+ <xsl:with-param name="nodename1" select="$nodename1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="draw">
+ <xsl:param name="nodename1"/>
+ <xsl:choose>
+ <xsl:when test="substring-after($nodename1,':') = 'a'">
+ <xsl:for-each select="child::*">
+ <xsl:call-template name="draw">
+ <xsl:with-param name="nodename">
+ <xsl:value-of select="name()"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="substring-after($nodename1,':') = 'g'">
+ <xsl:call-template name="draw:g"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="creategraphicstyles"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="draw:g">
+ <xsl:variable name="picnumber1">
+ <xsl:value-of select="count(preceding::draw:g)"/>
+ </xsl:variable>
+ <图:图形 uof:locID="g0000" uof:attrList="层次 标识符 组åˆåˆ—表 其他对象">
+ <xsl:attribute name="图:标识符"><xsl:value-of select="concat(@draw:style-name,'_',$picnumber1)"/></xsl:attribute>
+ <xsl:attribute name="图:层次"><xsl:choose><xsl:when test="name(parent::node())='draw:g'"><xsl:value-of select="position()"/></xsl:when><xsl:when test="@draw:z-index"><xsl:value-of select="@draw:z-index"/></xsl:when><xsl:otherwise><xsl:value-of select="position()"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:组åˆåˆ—表"><xsl:for-each select="child::*[1]"><xsl:variable name="node1"><xsl:value-of select="@draw:style-name"/></xsl:variable><xsl:variable name="picnumber2"><xsl:value-of select="count(preceding::*[@draw:style-name=$node1])"/></xsl:variable><xsl:call-template name="zuheliebiao"><xsl:with-param name="allnode"><xsl:value-of select="concat($node1,'_',$picnumber2)"/></xsl:with-param><xsl:with-param name="pos" select="2"/></xsl:call-template></xsl:for-each></xsl:attribute>
+ </图:图形>
+ <xsl:for-each select="child::*">
+ <xsl:choose>
+ <xsl:when test="name()='draw:g'">
+ <xsl:call-template name="draw:g"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="creategraphicstyles"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="zuheliebiao">
+ <xsl:param name="allnode"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="../child::*[$pos]">
+ <xsl:for-each select="../child::*[$pos]">
+ <xsl:variable name="nodepos">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="picnumber1">
+ <xsl:value-of select="count(preceding::*[@draw:style-name=$nodepos])"/>
+ </xsl:variable>
+ <xsl:variable name="pic-name1">
+ <xsl:value-of select="concat($nodepos,'_',$picnumber1)"/>
+ </xsl:variable>
+ <xsl:variable name="allnode1">
+ <xsl:value-of select="concat($allnode,',',$pic-name1)"/>
+ </xsl:variable>
+ <xsl:call-template name="zuheliebiao">
+ <xsl:with-param name="allnode" select="$allnode1"/>
+ <xsl:with-param name="pos" select="$pos+1"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$allnode"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="creategraphicstyles">
+ <xsl:variable name="nodename">
+ <xsl:value-of select="name()"/>
+ </xsl:variable>
+ <xsl:variable name="pic-name">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="pic-num">
+ <xsl:value-of select="count(/descendant::*[@draw:style-name=$pic-name])"/>
+ </xsl:variable>
+ <xsl:variable name="picnumber">
+ <xsl:value-of select="count(preceding::*[@draw:style-name=$pic-name])"/>
+ </xsl:variable>
+ <xsl:call-template name="pic-process">
+ <xsl:with-param name="pic-name" select="$pic-name"/>
+ <xsl:with-param name="nodename" select="$nodename"/>
+ <xsl:with-param name="picnumber" select="$picnumber"/>
+ </xsl:call-template>
+ </xsl:template>
+ <!--xsl:key match="/office:document/office:automatic-styles/style:style" name="graphicset" use="@style:name"/>
+
+ <xsl:template match="style:style[@style:family = 'graphics']">
+ <xsl:variable name="pic-name">
+ <xsl:value-of select="@style:name"/>
+ </xsl:variable>
+ <xsl:variable name="pic-num">
+ <xsl:value-of select="count(/descendant::*[@draw:style-name=$pic-name])"/>
+ </xsl:variable>
+ <xsl:call-template name="pic-process">
+ <xsl:with-param name="pic-name" select="$pic-name"/>
+ <xsl:with-param name="pic-num" select="$pic-num"/>
+ <xsl:with-param name="current-num" select="1"/>
+ </xsl:call-template>
+ </xsl:template-->
+ <xsl:template name="pic-process">
+ <xsl:param name="pic-name"/>
+ <xsl:param name="nodename"/>
+ <xsl:param name="picnumber"/>
+ <图:图形 uof:locID="g0000" uof:attrList="层次 标识符 组åˆåˆ—表 其他对象">
+ <xsl:attribute name="图:标识符"><xsl:value-of select="concat($pic-name,'_',$picnumber)"/></xsl:attribute>
+ <xsl:attribute name="图:层次"><xsl:value-of select="@draw:z-index"/></xsl:attribute>
+ <xsl:if test=".//office:binary-data">
+ <xsl:attribute name="图:其他对象"><xsl:choose><xsl:when test="@draw:name"><xsl:value-of select="@draw:name"/></xsl:when><xsl:otherwise><xsl:value-of select="concat($pic-name,'_b1')"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="arrow-sign">
+ <xsl:choose>
+ <xsl:when test="key('graphicset',$pic-name)/style:graphic-properties/@draw:marker-start or key('graphicset',$pic-name)/style:graphic-properties/@draw:marker-end">
+ <xsl:value-of select="'1'"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$nodename='draw:line' or $nodename='draw:rect' or $nodename='draw:circle' or $nodename='draw:polygon' or $nodename='draw:polyline' or $nodename='draw:ellipse' or $nodename='draw:path'or $nodename='draw:g' or $nodename='draw:text-box' or child::draw:text-box">
+ <图:预定义图形 uof:locID="g0005">
+ <图:类别 uof:locID="g0006">
+ <xsl:choose>
+ <xsl:when test="$nodename='draw:line' and $arrow-sign='1'">62</xsl:when>
+ <xsl:when test="$nodename='draw:rect'">11</xsl:when>
+ <xsl:when test="$nodename='draw:line'">61</xsl:when>
+ <xsl:when test="$nodename='draw:circle'">19</xsl:when>
+ <xsl:when test="$nodename='draw:polygon'">65</xsl:when>
+ <xsl:when test="$nodename='draw:polyline'">66</xsl:when>
+ <xsl:when test="$nodename='draw:ellipse'">19</xsl:when>
+ <xsl:when test="child::draw:text-box[@fo:min-height]">22</xsl:when>
+ <xsl:when test="child::draw:text-box">23</xsl:when>
+ </xsl:choose>
+ </图:类别>
+ <图:å称 uof:locID="g0007">
+ <xsl:choose>
+ <xsl:when test="$nodename='draw:rect'">Rectangle</xsl:when>
+ <xsl:when test="$nodename='draw:line'">Line</xsl:when>
+ <xsl:when test="$nodename='draw:circle'">Oval</xsl:when>
+ <xsl:when test="$nodename='draw:polygon'">Freeform</xsl:when>
+ <xsl:when test="$nodename='draw:polyline'">Scribble</xsl:when>
+ <xsl:when test="$nodename='draw:ellipse'">Oval</xsl:when>
+ <xsl:when test="$nodename='draw:frame' and child::draw:text-box[@fo:min-height]">排版框</xsl:when>
+ <xsl:when test="$nodename='draw:frame' and child::draw:text-box">排版框</xsl:when>
+ </xsl:choose>
+ </图:å称>
+ <图:生æˆè½¯ä»¶ uof:locID="g0008">PNG</图:生æˆè½¯ä»¶>
+ <xsl:if test="./@draw:points or ./@svg:d">
+ <图:关键点åæ ‡ uof:locID="g0009" uof:attrList="路径">
+ <xsl:attribute name="图:路径"><xsl:choose><xsl:when test="@svg:d"><xsl:value-of select="@svg:d"/></xsl:when><xsl:when test="@draw:points"><xsl:call-template name="draw:points"><xsl:with-param name="point" select="@draw:points"/><xsl:with-param name="lujing"/></xsl:call-template></xsl:when></xsl:choose></xsl:attribute>
+ </图:关键点åæ ‡>
+ </xsl:if>
+ <图:属性 uof:locID="g0011">
+ <xsl:for-each select="(/office:document/office:styles/descendant::*[@style:name=$pic-name]) | (/office:document/office:automatic-styles/descendant::*[@style:name=$pic-name]) ">
+ <xsl:if test="style:graphic-properties/@draw:fill-color or style:graphic-properties/@fo:background-color or style:graphic-properties/@draw:fill-image-name or style:graphic-properties/@draw:fill-gradient-name">
+ <图:填充 uof:locID="g0012">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:fill='gradient'">
+ <xsl:variable name="gradient-name">
+ <xsl:value-of select="style:graphic-properties/@draw:fill-gradient-name"/>
+ </xsl:variable>
+ <xsl:for-each select="/descendant::draw:gradient[@draw:name=$gradient-name]">
+ <图:æ¸å˜ uof:locID="g0037" uof:attrList="起始色 终止色 ç§å­ç±»åž‹ 起始浓度 终止浓度 æ¸å˜æ–¹å‘ 边界 ç§å­Xä½ç½® ç§å­Yä½ç½® 类型">
+ <xsl:attribute name="图:起始色"><xsl:value-of select="@draw:start-color"/></xsl:attribute>
+ <xsl:attribute name="图:终止色"><xsl:value-of select="@draw:end-color"/></xsl:attribute>
+ <xsl:attribute name="图:ç§å­ç±»åž‹"><xsl:choose><xsl:when test="@draw:style='linear' or @draw:style='axial'">linear</xsl:when><xsl:when test="@draw:style='radial'">radar</xsl:when><xsl:when test="@draw:style='ellipsoid'">oval</xsl:when><xsl:when test="@draw:style='square'">square</xsl:when><xsl:when test="@draw:style='rectangular'">rectangle</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:起始浓度"><xsl:value-of select="substring-before(@draw:start-intensity,'%')"/></xsl:attribute>
+ <xsl:attribute name="图:终止浓度"><xsl:value-of select="substring-before(@draw:end-intensity,'%')"/></xsl:attribute>
+ <xsl:variable name="angle">
+ <xsl:value-of select="@draw:angle div 10"/>
+ </xsl:variable>
+ <xsl:attribute name="图:æ¸å˜æ–¹å‘"><xsl:choose><xsl:when test="0&lt;$angle and $angle&lt;25">0</xsl:when><xsl:when test="25&lt;$angle and $angle&lt;70">45</xsl:when><xsl:when test="70&lt;$angle and $angle&lt;115">90</xsl:when><xsl:when test="115&lt;$angle and $angle&lt;160">135</xsl:when><xsl:when test="160&lt;$angle and $angle&lt;205">180</xsl:when><xsl:when test="205&lt;$angle and $angle&lt;250">225</xsl:when><xsl:when test="250&lt;$angle and $angle&lt;295">270</xsl:when><xsl:when test="295&lt;$angle and $angle&lt;340">315</xsl:when><xsl:when test="340&lt;$angle and $angle&lt;360">360</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:边界"><xsl:value-of select="substring-before(@draw:border,'%')"/></xsl:attribute>
+ <xsl:if test="@draw:cx">
+ <xsl:attribute name="图:ç§å­Xä½ç½®"><xsl:value-of select="substring-before(@draw:cx,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@draw:cy">
+ <xsl:attribute name="图:ç§å­Yä½ç½®"><xsl:value-of select="substring-before(@draw:cy,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="图:类型">-2</xsl:attribute>
+ </图:æ¸å˜>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:fill-image-name or style:graphic-properties/style:background-image/office:binary-data">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:fill-image-name">
+ <图:图片 uof:locID="g0035" uof:attrList="ä½ç½® 图形引用 类型 å称">
+ <xsl:attribute name="图:ä½ç½®"><xsl:choose><xsl:when test="not(style:graphic-properties/@style:repeat)">tile</xsl:when><xsl:otherwise><xsl:choose><xsl:when test="style:graphic-properties/@style:repeat = 'stretch'">stretch</xsl:when><xsl:when test="style:graphic-properties/@style:repeat = 'repeat'">tile</xsl:when><xsl:when test="style:graphic-properties/@style:repeat = 'no-repeat'">center</xsl:when></xsl:choose></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:图形引用"><xsl:value-of select="concat($pic-name,'_b1')"/></xsl:attribute>
+ <xsl:attribute name="图:类型">png</xsl:attribute>
+ <xsl:attribute name="图:å称"><xsl:value-of select="style:graphic-properties/@draw:fill-image-name"/></xsl:attribute>
+ </图:图片>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/style:background-image/office:binary-data">
+ <xsl:for-each select="style:graphic-properties">
+ <xsl:call-template name="图:填充"/>
+ </xsl:for-each>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:fill='hatch'">
+ <图:图案 uof:locID="g0036" uof:attrList="类型 图形引用 å‰æ™¯è‰² 背景色">
+ <xsl:attribute name="图:类型"><xsl:value-of select="/office:document/office:styles/draw:hatch/@draw:name"/></xsl:attribute>
+ <xsl:attribute name="图:图形引用"/>
+ <xsl:attribute name="图:å‰æ™¯è‰²"><xsl:value-of select="/office:document/office:styles/draw:hatch/@draw:color"/></xsl:attribute>
+ <xsl:attribute name="图:背景色"><xsl:choose><xsl:when test="style:graphic-properties/@draw:fill-color"><xsl:value-of select="style:graphic-properties/@draw:fill-color"/></xsl:when><xsl:otherwise>#ffffff</xsl:otherwise></xsl:choose></xsl:attribute>
+ </图:图案>
+ </xsl:when>
+ <xsl:otherwise>
+ <图:颜色 uof:locID="g0034">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:fill-color">
+ <xsl:value-of select="style:graphic-properties/@draw:fill-color"/>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@fo:background-color">
+ <xsl:value-of select="style:graphic-properties/@fo:background-color"/>
+ </xsl:when>
+ <xsl:otherwise>#99ccff</xsl:otherwise>
+ </xsl:choose>
+ </图:颜色>
+ </xsl:otherwise>
+ </xsl:choose>
+ </图:填充>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@svg:stroke-color">
+ <图:线颜色 uof:locID="g0013">
+ <xsl:value-of select="style:graphic-properties/@svg:stroke-color"/>
+ </图:线颜色>
+ </xsl:if>
+ <图:线型 uof:locID="g0014">
+ <xsl:variable name="linetype" select="style:graphic-properties/@draw:stroke-dash"/>
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@fo:border='none'">none</xsl:when>
+ <xsl:when test="not(style:graphic-properties/@draw:stroke)">
+ <xsl:choose>
+ <xsl:when test="not(style:graphic-properties/@svg:stroke-width)">single</xsl:when>
+ <xsl:otherwise>thick</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:stroke = 'none'">none</xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$linetype='Fine_20_Dashed' and style:graphic-properties/@svg:stroke-width">dash-long-heavy</xsl:when>
+ <xsl:when test="$linetype='Fine_20_Dashed'">dash-long</xsl:when>
+ <xsl:when test="$linetype='2 Dots 1 Dash' and style:graphic-properties/@svg:stroke-width">dash-dot-dot-heavy</xsl:when>
+ <xsl:when test="$linetype='2 Dots 1 Dash'">dot-dot-dash</xsl:when>
+ <xsl:when test="$linetype='Ultrafine Dashed' and style:graphic-properties/@svg:stroke-width">dashed-heavy</xsl:when>
+ <xsl:when test="$linetype='Ultrafine Dotted (var)'and style:graphic-properties/@svg:stroke-width">dotted-heavy</xsl:when>
+ <xsl:when test="$linetype='Ultrafine Dotted (var)'">dotted</xsl:when>
+ <xsl:when test="$linetype='Line with Fine Dots'">double</xsl:when>
+ <xsl:when test="$linetype='3 Dashes 3 Dots (var)' and style:graphic-properties/@svg:stroke-width">dash-dot-heavy</xsl:when>
+ <xsl:when test="$linetype='3 Dashes 3 Dots (var)'">dot-dash</xsl:when>
+ <xsl:when test="$linetype='Ultrafine 2 Dots 3 Dashes'and style:graphic-properties/@svg:stroke-width">wavy-heavy</xsl:when>
+ <xsl:when test="$linetype='Ultrafine 2 Dots 3 Dashes'">wave</xsl:when>
+ <xsl:when test="$linetype='Fine Dashed (var)'">wavy-double</xsl:when>
+ <xsl:otherwise>dash</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </图:线型>
+ <xsl:if test="style:graphic-properties/@svg:stroke-width">
+ <图:线粗细 uof:locID="g0016">
+ <xsl:value-of select="substring-before(style:graphic-properties/@svg:stroke-width,$uofUnit)"/>
+ </图:线粗细>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:marker-start and string-length(style:graphic-properties/@draw:marker-start)&gt;0">
+ <图:å‰ç«¯ç®­å¤´ uof:locID="g0017">
+ <图:å¼æ · uof:locID="g0018">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Arrow'">normal</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Line Arrow'">open</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Arrow concave'">stealth</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Circle'">oval</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-start='Square 45'">diamond</xsl:when>
+ <xsl:otherwise>normal</xsl:otherwise>
+ </xsl:choose>
+ </图:å¼æ ·>
+ <图:å¤§å° uof:locID="g0019">
+ <xsl:choose>
+ <xsl:when test="not(style:graphic-properties/@draw:marker-start-width)">4</xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="graphsize">
+ <xsl:with-param name="width" select="substring-before(style:graphic-properties/@draw:marker-start-width,$uofUnit)"/>
+ <xsl:with-param name="Unitofsize" select="$uofUnit"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </图:大å°>
+ </图:å‰ç«¯ç®­å¤´>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:marker-end">
+ <图:åŽç«¯ç®­å¤´ uof:locID="g0017">
+ <图:å¼æ · uof:locID="g0018">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Arrow'">normal</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Line Arrow'">open</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Arrow concave'">stealth</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Circle'">oval</xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:marker-end='Square 45'">diamond</xsl:when>
+ <xsl:otherwise>normal</xsl:otherwise>
+ </xsl:choose>
+ </图:å¼æ ·>
+ <图:å¤§å° uof:locID="g0022">
+ <xsl:choose>
+ <xsl:when test="not(style:properties/@draw:marker-start-width)">4</xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="width">
+ <xsl:value-of select="substring-before(style:graphic-properties/@draw:marker-end-width,$uofUnit)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="(not($width&gt;0.05) and 0&lt;$width) or $width=0.05">1</xsl:when>
+ <xsl:when test="(not($width&gt;0.10) and 0.05&lt;$width) or $width=0.10">2</xsl:when>
+ <xsl:when test="(not($width&gt;0.15) and 0.10&lt;$width) or $width=0.15">3</xsl:when>
+ <xsl:when test="(not($width&gt;0.20) and 0.15&lt;$width) or $width=0.20">4</xsl:when>
+ <xsl:when test="(not($width&gt;0.25) and 0.20&lt;$width) or $width=0.25">5</xsl:when>
+ <xsl:when test="(not($width&gt;0.30) and 0.25&lt;$width) or $width=0.30">6</xsl:when>
+ <xsl:when test="(not($width&gt;0.35) and 0.30&lt;$width) or $width=0.35">7</xsl:when>
+ <xsl:when test="(not($width&gt;0.40) and 0.35&lt;$width) or $width=0.40">8</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </图:大å°>
+ </图:åŽç«¯ç®­å¤´>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:opacity or style:graphic-properties/@draw:transparency">
+ <图:é€æ˜Žåº¦ uof:locID="g0038">
+ <xsl:choose>
+ <xsl:when test="style:graphic-properties/@draw:transparency">
+ <xsl:value-of select="substring-before(style:graphic-properties/@draw:transparency,'%')"/>
+ </xsl:when>
+ <xsl:when test="style:graphic-properties/@draw:opacity">
+ <xsl:value-of select="100 - substring-before(style:graphic-properties/@draw:opacity,'%')"/>
+ </xsl:when>
+ </xsl:choose>
+ </图:é€æ˜Žåº¦>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="@svg:x1">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:x2,$uofUnit) - substring-before(@svg:x1,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:y2,$uofUnit) - substring-before(@svg:y1,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ <xsl:when test="@svg:x">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:width,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:height,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ <xsl:when test="child::draw:text-box/@fo:min-height">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:width,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(child::draw:text-box/@fo:min-height,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ <xsl:when test="@svg:width">
+ <图:宽度 uof:locID="g0023">
+ <xsl:value-of select="substring-before(@svg:width,$uofUnit)"/>
+ </图:宽度>
+ <图:高度 uof:locID="g0024">
+ <xsl:value-of select="substring-before(@svg:height,$uofUnit)"/>
+ </图:高度>
+ </xsl:when>
+ </xsl:choose>
+ <图:旋转角度 uof:locID="g0025">
+ <xsl:choose>
+ <xsl:when test="@draw:transform">
+ <xsl:variable name="rotate-angle">
+ <xsl:value-of select="@draw:transform"/>
+ </xsl:variable>
+ <xsl:variable name="rotate-temp">
+ <xsl:value-of select="substring-before(substring-after($rotate-angle,'rotate ('),')')"/>
+ </xsl:variable>
+ <xsl:value-of select="($rotate-temp * 360) div (2 * 3.14159265)"/>
+ </xsl:when>
+ <xsl:otherwise>0.0</xsl:otherwise>
+ </xsl:choose>
+ </图:旋转角度>
+ <图:X-缩放比例 uof:locID="g0026">1</图:X-缩放比例>
+ <图:Y-缩放比例 uof:locID="g0027">1</图:Y-缩放比例>
+ <图:é”定纵横比 uof:locID="g0028">0</图:é”定纵横比>
+ <图:相对原始比例 uof:locID="g0029">1</图:相对原始比例>
+ <图:打å°å¯¹è±¡ uof:locID="g0032">true</图:打å°å¯¹è±¡>
+ <图:Web文字 uof:locID="g0033"/>
+ </图:属性>
+ </图:预定义图形>
+ </xsl:when>
+ <xsl:when test="name()='draw:path'">
+ <图:svg图形对象 图:version="1.1" 图:xmlns_xlink="http://www.w3.org/1999/xlink">
+ <xsl:attribute name="图:x"><xsl:value-of select="@svg:x"/></xsl:attribute>
+ <xsl:attribute name="图:y"><xsl:value-of select="@svg:y"/></xsl:attribute>
+ <xsl:attribute name="图:width"><xsl:value-of select="@svg:width"/></xsl:attribute>
+ <xsl:attribute name="图:height"><xsl:value-of select="@svg:height"/></xsl:attribute>
+ <xsl:attribute name="图:viewBox"><xsl:value-of select="@svg:viewBox"/></xsl:attribute>
+ <图:path>
+ <xsl:attribute name="图:d"><xsl:value-of select="@svg:d"/></xsl:attribute>
+ </图:path>
+ </图:svg图形对象>
+ </xsl:when>
+ </xsl:choose>
+ <图:文本内容 uof:locID="g0002" uof:attrList="文本框 å·¦è¾¹è· å³è¾¹è· ä¸Šè¾¹è· ä¸‹è¾¹è· æ°´å¹³å¯¹é½ åž‚ç›´å¯¹é½ æ–‡å­—æŽ’åˆ—æ–¹å‘ è‡ªåŠ¨æ¢è¡Œ 大å°é€‚应文字 å‰ä¸€é“¾æŽ¥ åŽä¸€é“¾æŽ¥">
+ <xsl:if test="./draw:text-box">
+ <xsl:attribute name="图:文本框">true</xsl:attribute>
+ <xsl:if test="./@draw:name = /office:document/office:body/office:text//draw:text-box/@draw:chain-next-name">
+ <xsl:attribute name="图:å‰ä¸€é“¾æŽ¥"><xsl:variable name="drawname"><xsl:value-of select="./@draw:name"/></xsl:variable><xsl:variable name="befor-link-name"><xsl:value-of select="/office:document/office:body/office:text//draw:text-box[@draw:name=$drawname]/@draw:style-name"/></xsl:variable><xsl:value-of select="concat($befor-link-name,'_',$picnumber)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="./@draw:chain-next-name">
+ <xsl:attribute name="图:åŽä¸€é“¾æŽ¥"><xsl:variable name="next-link"><xsl:value-of select="./@draw:chain-next-name"/></xsl:variable><xsl:variable name="link-name"><xsl:value-of select="/office:document/office:body/office:text//draw:text-box[@draw:name=$next-link]/@draw:style-name"/></xsl:variable><xsl:value-of select="concat($link-name,'_',$picnumber)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:for-each select="(/office:document/office:styles/descendant::*[@style:name=$pic-name]) | (/office:document/office:automatic-styles/descendant::*[@style:name=$pic-name]) ">
+ <xsl:if test="style:text-properties/@fo:padding-left">
+ <xsl:attribute name="图:左边è·"><xsl:value-of select="style:text-properties/@fo:padding-left"/></xsl:attribute>
+ <xsl:attribute name="图:å³è¾¹è·"><xsl:value-of select="style:text-properties/@fo:padding-right"/></xsl:attribute>
+ <xsl:attribute name="图:上边è·"><xsl:value-of select="style:text-properties/@fo:padding-top"/></xsl:attribute>
+ <xsl:attribute name="图:下边è·"><xsl:value-of select="style:text-properties/@fo:padding-bottom"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="图:文字排列方å‘"><xsl:choose><xsl:when test="style:paragraph-properties/@style:writing-mode"><xsl:choose><xsl:when test="style:paragraph-properties/@style:writing-mode='tb-lr'">vert-l2r</xsl:when><xsl:when test="style:paragraph-properties/@style:writing-mode='tb-rl'">vert-r2l</xsl:when></xsl:choose></xsl:when><xsl:when test="style:graphic-properties/@style:writing-mode='tb-lr'">vert-l2r</xsl:when><xsl:when test="style:graphic-properties/@style:writing-mode='tb-rl'">vert-r2l</xsl:when><xsl:when test="style:paragraph-properties/@draw:textarea-horizontal-align='right'">hori-r2l</xsl:when><xsl:otherwise>hori-l2r</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="style:text-properties/@fo:wrap-option">
+ <xsl:attribute name="图:自动æ¢è¡Œ">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:textarea-horizontal-align">
+ <xsl:attribute name="图:水平对é½"><xsl:value-of select="style:graphic-properties/@draw:textarea-horizontal-align"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:textarea-vertical-align">
+ <xsl:attribute name="图:垂直对é½"><xsl:value-of select="style:graphic-properties/@draw:textarea-vertical-align"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:graphic-properties/@draw:auto-grow-width='true' and style:graphic-properties/@draw:auto-grow-height='true'">
+ <xsl:attribute name="图:大å°é€‚应文字"><xsl:choose><xsl:when test="style:graphic-properties/@draw:auto-grow-width='true' and style:graphic-properties/@draw:auto-grow-height='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="text:p">
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <xsl:if test="style:paragraph-properties">
+ <å­—:段è½å±žæ€§ uof:locID="t0052" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:apply-templates select="style:paragraph-properties"/>
+ </å­—:段è½å±žæ€§>
+ </xsl:if>
+ <xsl:call-template name="textp"/>
+ </å­—:段è½>
+ </xsl:for-each>
+ <xsl:for-each select="draw:text-box/text:p">
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <xsl:if test="style:paragraph-properties">
+ <å­—:段è½å±žæ€§ uof:locID="t0052" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:apply-templates select="style:paragraph-properties"/>
+ </å­—:段è½å±žæ€§>
+ </xsl:if>
+ <xsl:call-template name="textp"/>
+ </å­—:段è½>
+ </xsl:for-each>
+ </图:文本内容>
+ <xsl:if test="@svg:x and @svg:y">
+ <图:控制点 uof:locID="g0003" uof:attrList="xåæ ‡ yåæ ‡">
+ <xsl:attribute name="图:xåæ ‡"><xsl:value-of select="substring-before(@svg:x,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="图:yåæ ‡"><xsl:value-of select="substring-before(@svg:y,$uofUnit)"/></xsl:attribute>
+ </图:控制点>
+ </xsl:if>
+ </图:图形>
+ <xsl:if test="name()='draw:frame' and ./draw:image">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat($pic-name,'_',$picnumber)"/></xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <xsl:variable name="pic">
+ <xsl:choose>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.png')">png</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.jpg')">jpg</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.gif')">gif</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.bmp')">bmp</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.pbm')">pbm</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.ras')">ras</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.txt')">text</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.xml')">xml</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.htm')">html</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.html')">html</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.wav')">wav</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.mid')">midi</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.ra')">ra</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.au')">au</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.mp3')">mp3</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.snd')">snd</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.svg')">svg</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.avi')">avi</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.mpeg')">mpeg4</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.qt')">qt</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.rm')">rm</xsl:when>
+ <xsl:when test="contains(./draw:image/@xlink:href,'.asf')">asf</xsl:when>
+ <xsl:otherwise>图片</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$pic!='图片'">
+ <xsl:attribute name="uof:公共类型"><xsl:value-of select="$pic"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="uof:ç§æœ‰ç±»åž‹">图片</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="./draw:image/office:binary-data">
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:value-of select="./draw:image/office:binary-data"/>
+ </uof:æ•°æ®>
+ </xsl:if>
+ <xsl:if test="./draw:image/@xlink:href">
+ <uof:路径 uof:locID="u0038">
+ <xsl:value-of select="./draw:image/@xlink:href"/>
+ </uof:路径>
+ </xsl:if>
+ </uof:其他对象>
+ </xsl:if>
+ <xsl:for-each select="(/office:document/office:styles/descendant::*[@style:name=$pic-name]) | (/office:document/office:automatic-styles/descendant::*[@style:name=$pic-name]) ">
+ <xsl:if test="style:text-properties/@draw:fill-image-name">
+ <uof:其他对象 uof:locID="u0036" uof:attrList="标识符 内嵌 公共类型 ç§æœ‰ç±»åž‹">
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="concat($pic-name,'-b1')"/></xsl:attribute>
+ <xsl:attribute name="uof:公共类型">png</xsl:attribute>
+ <xsl:attribute name="uof:内嵌">true</xsl:attribute>
+ <xsl:variable name="fill-name">
+ <xsl:value-of select="style:text-properties/@draw:fill-image-name"/>
+ </xsl:variable>
+ <uof:æ•°æ® uof:locID="u0037">
+ <xsl:for-each select="/office:document/office:styles/draw:fill-image[@draw:name=$fill-name]">
+ <xsl:value-of select="office:binary-data"/>
+ </xsl:for-each>
+ </uof:æ•°æ®>
+ <uof:路径 uof:locID="u0038">
+ <xsl:value-of select="@xlink:href"/>
+ </uof:路径>
+ </uof:其他对象>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="draw:points">
+ <xsl:param name="point"/>
+ <xsl:param name="lujing"/>
+ <xsl:choose>
+ <xsl:when test="contains($point,' ' )">
+ <xsl:variable name="first-point" select="substring-before($point,' ')"/>
+ <xsl:variable name="other-point" select="substring-after($point,' ')"/>
+ <xsl:variable name="xzuobiao">
+ <xsl:value-of select="substring-before($first-point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:variable name="yzuobiao">
+ <xsl:value-of select="substring-after($first-point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:call-template name="draw:points">
+ <xsl:with-param name="point" select="$other-point"/>
+ <xsl:with-param name="lujing" select="concat($lujing,$xzuobiao,' ',$yzuobiao,'lineto')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="xzuobiao">
+ <xsl:value-of select="substring-before($point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:variable name="yzuobiao">
+ <xsl:value-of select="substring-after($point,',') div 1000"/>
+ </xsl:variable>
+ <xsl:value-of select="concat($lujing,$xzuobiao,' ',$yzuobiao)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="office:meta">
+ <uof:å…ƒæ•°æ® uof:locID="u0001">
+ <uof:标题 uof:locID="u0002">
+ <xsl:value-of select="dc:title"/>
+ </uof:标题>
+ <uof:åˆ›å»ºåº”ç”¨ç¨‹åº uof:locID="u0011">
+ <xsl:value-of select="meta:generator"/>
+ </uof:创建应用程åº>
+ <uof:æ‘˜è¦ uof:locID="u0007">
+ <xsl:value-of select="dc:description"/>
+ </uof:摘è¦>
+ <uof:主题 uof:locID="u0003">
+ <xsl:value-of select="dc:subject"/>
+ </uof:主题>
+ <uof:创建者 uof:locID="u0004">
+ <xsl:value-of select="meta:initial-creator"/>
+ </uof:创建者>
+ <!--uof:作者 uof:locID="u0005">
+ <xsl:value-of select="meta:initial-creator"/>
+ </uof:作者-->
+ <uof:创建日期 uof:locID="u0008">
+ <xsl:value-of select="meta:creation-date"/>
+ </uof:创建日期>
+ <uof:最åŽä½œè€… uof:locID="u0006">
+ <xsl:value-of select="dc:creator"/>
+ </uof:最åŽä½œè€…>
+ <uof:关键字集 uof:locID="u0014">
+ <xsl:for-each select=".">
+ <uof:关键字 uof:locID="u0015">
+ <xsl:value-of select="meta:keywords/@meta:keyword"/>
+ </uof:关键字>
+ </xsl:for-each>
+ </uof:关键字集>
+ <uof:编辑次数 uof:locID="u0009">
+ <xsl:value-of select="meta:editing-cycles"/>
+ </uof:编辑次数>
+ <xsl:if test="meta:editing-duration">
+ <uof:编辑时间 uof:locID="u0010">
+ <xsl:value-of select="meta:editing-duration"/>
+ </uof:编辑时间>
+ </xsl:if>
+ <xsl:if test="meta:template/@xlink:href">
+ <uof:æ–‡æ¡£æ¨¡æ¿ uof:locID="u0013">
+ <xsl:value-of select="meta:template/@xlink:href"/>
+ </uof:文档模æ¿>
+ </xsl:if>
+ <xsl:if test="meta:user-defined/@meta:name">
+ <uof:用户自定义元数æ®é›† uof:locID="u0016">
+ <xsl:for-each select="meta:user-defined">
+ <uof:ç”¨æˆ·è‡ªå®šä¹‰å…ƒæ•°æ® uof:locID="u0017" uof:attrList="å称 类型">
+ <xsl:attribute name="uof:å称"><xsl:value-of select="@meta:name"/></xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:value-of select="'string'"/></xsl:attribute>
+ </uof:用户自定义元数æ®>
+ </xsl:for-each>
+ </uof:用户自定义元数æ®é›†>
+ </xsl:if>
+ <!--xsl:if test="meta:document-statistic/@meta:page-count"-->
+ <uof:页数 uof:locID="u0020">
+ <xsl:value-of select="meta:document-statistic/@meta:page-count"/>
+ </uof:页数>
+ <!--/xsl:if-->
+ <!--xsl:if test="meta:document-statistic/@meta:paragraph-count"-->
+ <uof:段è½æ•° uof:locID="u0025">
+ <xsl:value-of select="meta:document-statistic/@meta:paragraph-count"/>
+ </uof:段è½æ•°>
+ <!--/xsl:if-->
+ <!--xsl:if test="meta:document-statistic/@meta:object-count"-->
+ <uof:对象数 uof:locID="u0026">
+ <xsl:value-of select="meta:document-statistic/@meta:object-count"/>
+ </uof:对象数>
+ <!--/xsl:if-->
+ <!--xsl:if test="meta:document-statistic/@meta:character-count"-->
+ <uof:å­—æ•° uof:locID="u0021">
+ <xsl:value-of select="meta:document-statistic/@meta:character-count"/>
+ </uof:å­—æ•°>
+ <!--/xsl:if-->
+ <!--xsl:if test="meta:document-statistic/@meta:word-count"-->
+ <uof:中文字符数 uof:locID="u0023">
+ <xsl:value-of select="meta:document-statistic/@meta:word-count"/>
+ </uof:中文字符数>
+ <!--/xsl:if-->
+ <uof:英文字符数 uof:locID="u0022">
+ <xsl:value-of select="meta:document-statistic/@meta:character-count - meta:document-statistic/@meta:word-count"/>
+ </uof:英文字符数>
+ <uof:行数 uof:locID="u0024">
+ <xsl:variable name="quzhi">
+ <xsl:value-of select="(meta:document-statistic/@meta:character-count div 39) + 0.9"/>
+ </xsl:variable>
+ <xsl:value-of select="substring-before($quzhi,'.')"/>
+ </uof:行数>
+ <uof:分类 uof:locID="u0012">
+ <xsl:value-of select="meta:user-defined[@meta:name='Category']"/>
+ </uof:分类>
+ <uof:ç»ç†å称 uof:locID="u0019">
+ <xsl:value-of select="meta:user-defined[meta:name='Manager']"/>
+ </uof:ç»ç†å称>
+ <uof:å…¬å¸å称 uof:locID="u0018">
+ <xsl:value-of select="meta:user-defined[meta:name='Company']"/>
+ </uof:å…¬å¸å称>
+ </uof:元数æ®>
+ </xsl:template>
+ <xsl:template match="office:font-face-decls">
+ <uof:字体集 uof:locID="u0040">
+ <xsl:for-each select="style:font-face">
+ <xsl:element name="uof:字体声明">
+ <xsl:attribute name="uof:attrList">标识符 å称 字体æ—</xsl:attribute>
+ <xsl:attribute name="uof:locID">u0041</xsl:attribute>
+ <xsl:attribute name="uof:å称"><xsl:value-of select="@svg:font-family"/></xsl:attribute>
+ <xsl:attribute name="uof:标识符"><xsl:value-of select="translate(@style:name,' ','_')"/></xsl:attribute>
+ <xsl:if test="@style:font-charset= '02'">
+ <xsl:attribute name="uof:字符集">x-symbol</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@style:font-family-generic">
+ <xsl:choose>
+ <xsl:when test="@style:font-family-generic = 'swiss'">
+ <xsl:attribute name="uof:字体æ—">Swiss</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='modern'">
+ <xsl:attribute name="uof:字体æ—">Modern</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic='roman'">
+ <xsl:attribute name="uof:字体æ—">Roman</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='script'">
+ <xsl:attribute name="uof:字体æ—">Script</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='decorative'">
+ <xsl:attribute name="uof:字体æ—">Decorative</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic ='system'">
+ <xsl:attribute name="uof:字体æ—">System</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="uof:字体æ—">System</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:apply-templates select="style:font-decl"/>
+ </uof:字体集>
+ </xsl:template>
+ <xsl:template name="自动编å·é›†">
+ <xsl:element name="uof:自动编å·é›†">
+ <xsl:attribute name="uof:locID">u0042</xsl:attribute>
+ <xsl:for-each select="/office:document//text:list-style">
+ <xsl:element name="å­—:自动编å·">
+ <xsl:attribute name="uof:locID">t0169</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 父编å·å¼•ç”¨ 多级编å·</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:if test=".//@text:style-name">
+ <xsl:attribute name="å­—:å称"><xsl:value-of select=".//@text:style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="å­—:多级编å·">true</xsl:attribute>
+ <xsl:for-each select="./* ">
+ <xsl:if test="not(number(@text:level)=10)">
+ <xsl:element name="字:级别">
+ <xsl:attribute name="uof:locID">t0159</xsl:attribute>
+ <xsl:attribute name="uof:attrList">级别值 ç¼–å·å¯¹é½æ–¹å¼ å°¾éšå­—符</xsl:attribute>
+ <xsl:attribute name="字:级别值"><xsl:value-of select="number(@text:level) - 1"/></xsl:attribute>
+ <xsl:if test="@style:num-suffix">
+ <xsl:attribute name="å­—:å°¾éšå­—符"><xsl:choose><xsl:when test="@style:num-suffix=' '">space</xsl:when><xsl:when test="@style:num-suffix=' '">tab</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:list-level-properties/@fo:text-align">
+ <xsl:attribute name="å­—:ç¼–å·å¯¹é½æ–¹å¼"><xsl:variable name="vv"><xsl:value-of select="style:list-level-properties/@fo:text-align"/></xsl:variable><xsl:choose><xsl:when test="$vv='center' ">center</xsl:when><xsl:when test="$vv='end' ">right</xsl:when><xsl:otherwise>left</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@text:bullet-char">
+ <xsl:element name="å­—:项目符å·">
+ <xsl:attribute name="uof:locID">t0171</xsl:attribute>
+ <xsl:value-of select="@text:bullet-char"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:style-name">
+ <xsl:element name="å­—:符å·å­—体">
+ <xsl:attribute name="uof:locID">t0160</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@style:num-format">
+ <xsl:choose>
+ <xsl:when test="string(@style:num-format)='a'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼">
+ <xsl:attribute name="uof:locID">t0162</xsl:attribute>lower-letter</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='A'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼">
+ <xsl:attribute name="uof:locID">t0162</xsl:attribute>upper-letter</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='i'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼">
+ <xsl:attribute name="uof:locID">t0162</xsl:attribute>lower-roman</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='I'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼">
+ <xsl:attribute name="uof:locID">t0162</xsl:attribute>upper-roman</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='â‘ , â‘¡, â‘¢, ...'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼">
+ <xsl:attribute name="uof:locID">t0162</xsl:attribute>decimal-enclosed-circle</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='甲, 乙, 丙, ...'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼">
+ <xsl:attribute name="uof:locID">t0162</xsl:attribute>ideograph-traditional</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='å­, 丑, 寅, ...'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼">
+ <xsl:attribute name="uof:locID">t0162</xsl:attribute>ideograph-zodiac</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='一, 二, 三, ...'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼">
+ <xsl:attribute name="uof:locID">t0162</xsl:attribute>chinese-counting</xsl:element>
+ </xsl:when>
+ <xsl:when test="string(@style:num-format)='壹, è´°, å, ...'">
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼">
+ <xsl:attribute name="uof:locID">t0162</xsl:attribute>chinese-legal-simplified</xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼">
+ <xsl:attribute name="uof:locID">t0162</xsl:attribute>decimal</xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:variable name="jibie">
+ <xsl:value-of select="position()"/>
+ </xsl:variable>
+ <xsl:variable name="xianshijibie">
+ <xsl:choose>
+ <xsl:when test="@text:display-levels">
+ <xsl:value-of select="@text:display-levels"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="å­—:ç¼–å·æ ¼å¼è¡¨ç¤º">
+ <xsl:attribute name="uof:locID">t0163</xsl:attribute>
+ <xsl:call-template name="å­—:ç¼–å·æ ¼å¼è¡¨ç¤º">
+ <xsl:with-param name="bubianjibie" select="$jibie"/>
+ <xsl:with-param name="jibie" select="$jibie"/>
+ <xsl:with-param name="xianshijibie" select="$xianshijibie"/>
+ <xsl:with-param name="biaoshi" select="concat(string(@style:num-prefix),'%',$jibie,string(@style:num-suffix))"/>
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:if test="office:binary-data">
+ <xsl:element name="å­—:图片符å·å¼•ç”¨">
+ <xsl:attribute name="uof:locID">t0164</xsl:attribute>
+ <xsl:attribute name="uof:attrList">宽度 高度</xsl:attribute>
+ <xsl:if test="style:list-level-properties/@fo:width">
+ <xsl:attribute name="字:宽度"><xsl:value-of select="substring-before(style:list-level-properties/@fo:width,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:list-level-properties/@fo:height">
+ <xsl:attribute name="字:高度"><xsl:value-of select="substring-before(style:list-level-properties/@fo:height,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="concat('image_numbering_',count(preceding::text:list-level-style-image))"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@fo:margin-left or style:paragraph-properties/@fo:margin-right or style:paragraph-properties/@fo:text-indent">
+ <xsl:element name="字:缩进">
+ <xsl:attribute name="uof:locID">t0165</xsl:attribute>
+ <xsl:for-each select="style:paragraph-properties">
+ <xsl:call-template name="字:缩进类型"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:list-level-properties/@text:min-label-width">
+ <xsl:element name="å­—:制表符ä½ç½®">
+ <xsl:attribute name="uof:locID">t0166</xsl:attribute>
+ <xsl:value-of select="substring-before(style:list-level-properties/@text:min-label-width,$uofUnit)"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:start-value">
+ <xsl:element name="å­—:起始编å·">
+ <xsl:attribute name="uof:locID">t0167</xsl:attribute>
+ <xsl:value-of select="@text:start-value"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:num-regular-exp">
+ <xsl:element name="å­—:正规格å¼">
+ <xsl:attribute name="uof:locID">t0168</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="@text:num-regular-exp"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="shiyang">
+ <xsl:for-each select="office:styles/style:style">
+ <xsl:choose>
+ <xsl:when test="@style:family='text'">
+ <xsl:element name="uof:å¥å¼æ ·">
+ <xsl:attribute name="uof:locID">u0043</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨ åŽç»§å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="字:类型">auto</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@style:parent-style-name">
+ <xsl:attribute name="å­—:基å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:parent-style-name"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:基å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:name"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:for-each select="office:automatic-styles/style:style">
+ <xsl:choose>
+ <xsl:when test="@style:family='text'">
+ <xsl:element name="uof:å¥å¼æ ·">
+ <xsl:attribute name="uof:locID">u0043</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨ åŽç»§å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="字:类型">custom</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@style:parent-style-name">
+ <xsl:attribute name="å­—:基å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:parent-style-name"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@style:parent-style-name and not(@style:parent-style-name='Standard')">
+ <xsl:variable name="stylename" select="@style:parent-style-name"/>
+ <xsl:for-each select="/office:document/office:styles/style:style[@style:name=$stylename]">
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:for-each select="office:styles/style:style">
+ <xsl:choose>
+ <xsl:when test="@style:family='paragraph'">
+ <xsl:element name="uof:段è½å¼æ ·">
+ <xsl:attribute name="uof:locID">u0044</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨ åŽç»§å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="字:类型">auto</xsl:attribute>
+ <xsl:if test="@style:parent-style-name">
+ <xsl:attribute name="å­—:基å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:parent-style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:if test="@style:display-name">
+ <xsl:attribute name="å­—:别å"><xsl:value-of select="@style:display-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:element>
+ <xsl:call-template name="ParaAttribute"/>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:for-each select="office:automatic-styles/style:style">
+ <xsl:choose>
+ <xsl:when test="@style:family='paragraph'">
+ <xsl:element name="uof:段è½å¼æ ·">
+ <xsl:attribute name="uof:locID">u0044</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨ åŽç»§å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="字:类型">custom</xsl:attribute>
+ <xsl:if test="@style:parent-style-name">
+ <xsl:attribute name="å­—:基å¼æ ·å¼•ç”¨"><xsl:value-of select="@style:parent-style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:element>
+ <xsl:call-template name="ParaAttribute"/>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="å­—:ç¼–å·æ ¼å¼è¡¨ç¤º">
+ <xsl:param name="bubianjibie"/>
+ <xsl:param name="jibie"/>
+ <xsl:param name="xianshijibie"/>
+ <xsl:param name="biaoshi"/>
+ <xsl:choose>
+ <xsl:when test="number($xianshijibie)= 1">
+ <xsl:value-of select="$biaoshi"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="num-prefix">
+ <xsl:value-of select="preceding-sibling::*[number($bubianjibie -$jibie +1)]/@style:num-prefix"/>
+ </xsl:variable>
+ <xsl:variable name="num-suffix">
+ <xsl:value-of select="preceding-sibling::*[number($bubianjibie -$jibie +1)]/@style:num-suffix"/>
+ </xsl:variable>
+ <xsl:call-template name="å­—:ç¼–å·æ ¼å¼è¡¨ç¤º">
+ <xsl:with-param name="bubianjibie" select="$bubianjibie"/>
+ <xsl:with-param name="jibie" select="$jibie -1"/>
+ <xsl:with-param name="xianshijibie" select="$xianshijibie -1"/>
+ <xsl:with-param name="biaoshi" select="concat($num-prefix,'%',number($jibie -1),$num-suffix,'.',$biaoshi)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="style:style[ancestor::office:automatic-styles]" mode="style">
+ <xsl:for-each select=".">
+ <xsl:choose>
+ <xsl:when test="@style:family='table' ">
+ <xsl:element name="uof:文字表å¼æ ·">
+ <xsl:attribute name="uof:locID">u0045</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型 别å 基å¼æ ·å¼•ç”¨ åŽç»§å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:别å"><xsl:value-of select="@style:name"/></xsl:attribute>
+ <xsl:attribute name="字:类型">auto</xsl:attribute>
+ <xsl:if test="style:table-properties">
+ <xsl:element name="字:宽度">
+ <xsl:attribute name="å­—:ç»å¯¹å®½åº¦"><xsl:value-of select="substring-before(style:table-properties/@style:width,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0130</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ç»å¯¹å®½åº¦ 相对宽度</xsl:attribute>
+ </xsl:element>
+ <å­—:å¯¹é½ uof:locID="t0133">
+ <xsl:choose>
+ <xsl:when test="style:table-properties/@table:align='right'">right</xsl:when>
+ <xsl:when test="style:table-properties/@table:align='center'">center</xsl:when>
+ <xsl:otherwise>left</xsl:otherwise>
+ </xsl:choose>
+ </å­—:对é½>
+ </xsl:if>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="office:settings">
+ <字:文档设置 uof:locID="t0001">
+ <å­—:度é‡å•ä½ uof:locID="t0006">
+ <xsl:value-of select="$ooUnit"/>
+ </å­—:度é‡å•ä½>
+ <å­—:默认制表ä½ä½ç½® uof:locID="t0004">
+ <xsl:variable name="aa" select="substring-before(/office:document/office:styles/style:default-style[@style:family='paragraph']/style:paragraph-properties/@style:tab-stop-distance,$ooUnit)"/>
+ <xsl:variable name="bb" select="$aa - 0.74"/>
+ <xsl:value-of select="substring($bb,1,4)"/>
+ </å­—:默认制表ä½ä½ç½®>
+ <å­—:当å‰è§†å›¾ uof:locID="t0002">
+ <xsl:choose>
+ <xsl:when test="config:config-item-set[@config:name='ooo:view-settings']/config:config-item[@config:name='InBrowseMode']='false'">page</xsl:when>
+ <xsl:when test="config:config-item-set[@config:name='ooo:view-settings']/config:config-item[@config:name='InBrowseMode']='true'">web</xsl:when>
+ <xsl:otherwise>page</xsl:otherwise>
+ </xsl:choose>
+ </å­—:当å‰è§†å›¾>
+ <xsl:if test="config:config-item-set[@config:name='ooo:view-settings']/config:config-item-map-indexed[@config:name='Views']/config:config-item-map-entry/config:config-item[@config:name='ZoomFactor']">
+ <字:缩放 uof:locID="t0003">
+ <xsl:value-of select="config:config-item-set[@config:name='ooo:view-settings']/config:config-item-map-indexed[@config:name='Views']/config:config-item-map-entry/config:config-item[@config:name='ZoomFactor']"/>
+ </字:缩放>
+ </xsl:if>
+ <字:修订 uof:locID="t0005">
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="/office:document/office:body/office:text/text:tracked-changes">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </字:修订>
+ <xsl:if test="config:config-item-set[@config:name='configuration-settings']/config:config-item-map-indexed[@config:name='ForbiddenCharacters']/config:config-item-map-entry[config:config-item='CN']">
+ <å­—:标点ç¦åˆ™ uof:locID="t0007">
+ <字:行首字符 uof:locID="t0008">
+ <xsl:value-of select="config:config-item-set[@config:name='configuration-settings']/config:config-item-map-indexed[@config:name='ForbiddenCharacters']/config:config-item-map-entry[config:config-item='CN']/config:config-item[@config:name='BeginLine']"/>
+ </字:行首字符>
+ <字:行尾字符 uof:locID="t0009">
+ <xsl:value-of select="config:config-item-set[@config:name='configuration-settings']/config:config-item-map-indexed[@config:name='ForbiddenCharacters']/config:config-item-map-entry[config:config-item='CN']/config:config-item[@config:name='EndLine']"/>
+ </字:行尾字符>
+ </å­—:标点ç¦åˆ™>
+ <xsl:if test="/office:document/office:styles/text:notes-configuration[@text:note-class='endnote']">
+ <å­—:尾注ä½ç½® uof:locID="t0210" uof:attrList="ä½ç½®">
+ <xsl:attribute name="å­—:ä½ç½®">doc-end</xsl:attribute>
+ </å­—:尾注ä½ç½®>
+ </xsl:if>
+ </xsl:if>
+ </字:文档设置>
+ </xsl:template>
+ <xsl:template name="style:page-layout">
+ <å­—:分节 uof:locID="t0017" uof:attrList="å称">
+ <xsl:attribute name="å­—:å称"><xsl:variable name="stylename"><xsl:value-of select="@style:name"/></xsl:variable><xsl:value-of select="/office:document/office:master-styles/style:master-page[@style:page-layout-name=$stylename]/@style:name"/></xsl:attribute>
+ <字:节属性 uof:locID="t0018">
+ <字:节类型 uof:locID="t0020">new-page</字:节类型>
+ <xsl:element name="å­—:页边è·">
+ <xsl:attribute name="uof:locID">t0021</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å·¦ 上 å³ ä¸‹</xsl:attribute>
+ <xsl:attribute name="uof:上"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:margin-top,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:å·¦"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:margin-left,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:下"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:margin-bottom,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:å³"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:margin-right,$ooUnit)"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="字:纸张">
+ <xsl:attribute name="uof:locID">t0022</xsl:attribute>
+ <xsl:attribute name="uof:attrList">纸型 宽度 高度</xsl:attribute>
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:page-width,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:高度"><xsl:value-of select="substring-before(style:page-layout-properties/@fo:page-height,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="uof:纸型"><xsl:variable name="height"><xsl:value-of select="style:page-layout-properties/@fo:page-height"/></xsl:variable><xsl:variable name="width"><xsl:value-of select="style:page-layout-properties/@fo:page-width"/></xsl:variable><xsl:choose><xsl:when test="$width='29.702cm' and $height='42cm'">A3</xsl:when><xsl:when test="$width='21.001cm' and $height='29.7cm'">A4</xsl:when><xsl:when test="$width='14.799cm' and $height='20.999cm'">A5</xsl:when><xsl:when test="$width='25cm' and $height='35.3cm'">B4</xsl:when><xsl:when test="$width='17.598cm' and $height='25cm'">B5</xsl:when><xsl:when test="$width='12.5cm' and $height='17.6cm'">B6</xsl:when><xsl:otherwise>使用者</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:if test="/office:document/office:master-styles/style:master-page/style:header-left">
+ <xsl:element name="å­—:奇å¶é¡µé¡µçœ‰é¡µè„šä¸åŒ">
+ <xsl:attribute name="uof:locID">t0023</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:首页页眉页脚ä¸åŒ">
+ <xsl:attribute name="uof:locID">t0024</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">false</xsl:attribute>
+ </xsl:element>
+ <xsl:if test="style:header-style/style:header-footer-properties">
+ <xsl:element name="å­—:页眉ä½ç½®">
+ <xsl:attribute name="uof:locID">t0025</xsl:attribute>
+ <xsl:attribute name="uof:attrList">è·è¾¹ç•Œ è·ç‰ˆèŠ¯</xsl:attribute>
+ <xsl:attribute name="å­—:è·è¾¹ç•Œ"><xsl:value-of select="substring-before(style:header-style/style:header-footer-properties/@fo:margin-bottom,$ooUnit)"/></xsl:attribute>
+ <xsl:variable name="long1" select="substring-before(style:header-style/style:header-footer-properties/@fo:margin-bottom,$ooUnit)"/>
+ <xsl:variable name="long2" select="substring-before(style:header-style/style:header-footer-properties/@svg:height,$ooUnit)"/>
+ <xsl:attribute name="å­—:è·ç‰ˆèŠ¯"><xsl:value-of select="$long2 - $long1"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:footer-style/style:header-footer-properties">
+ <xsl:element name="å­—:页脚ä½ç½®">
+ <xsl:attribute name="uof:locID">t0026</xsl:attribute>
+ <xsl:attribute name="uof:attrList">è·è¾¹ç•Œ è·ç‰ˆèŠ¯</xsl:attribute>
+ <xsl:attribute name="å­—:è·è¾¹ç•Œ"><xsl:value-of select="substring-before(style:footer-style/style:header-footer-properties/@fo:margin-top,$ooUnit)"/></xsl:attribute>
+ <xsl:variable name="long1" select="substring-before(style:footer-style/style:header-footer-properties/@fo:margin-top,$ooUnit)"/>
+ <xsl:variable name="long2" select="substring-before(style:footer-style/style:header-footer-properties/@svg:height,$ooUnit)"/>
+ <xsl:attribute name="å­—:è·ç‰ˆèŠ¯"><xsl:value-of select="$long2 - $long1"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:variable name="masterPages" select="'Standard'"/>
+ <xsl:variable name="mp">
+ <xsl:value-of select="@style:name"/>
+ </xsl:variable>
+ <xsl:for-each select="/office:document/office:master-styles/style:master-page[@style:page-layout-name=$mp and @style:name=$masterPages]">
+ <xsl:if test="style:header-left or style:header">
+ <字:页眉 uof:locID="t0027">
+ <xsl:choose>
+ <xsl:when test="style:header-left">
+ <xsl:for-each select="style:header">
+ <字:首页页眉 uof:locID="t0030">
+ <xsl:if test="text:p">
+ <xsl:for-each select="text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="table:table">
+ <xsl:for-each select="table:table">
+ <xsl:call-template name="exec_table"/>
+ </xsl:for-each>
+ </xsl:if>
+ </字:首页页眉>
+ </xsl:for-each>
+ <xsl:for-each select="style:header-left">
+ <å­—:å¶æ•°é¡µé¡µçœ‰ uof:locID="t0029">
+ <xsl:if test="text:p">
+ <xsl:for-each select="text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="table:table">
+ <xsl:for-each select="table:table">
+ <xsl:call-template name="exec_table"/>
+ </xsl:for-each>
+ </xsl:if>
+ </å­—:å¶æ•°é¡µé¡µçœ‰>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="style:header">
+ <字:奇数页页眉 uof:locID="t0028">
+ <xsl:if test="text:p">
+ <xsl:for-each select="text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="table:table">
+ <xsl:for-each select="table:table">
+ <xsl:call-template name="exec_table"/>
+ </xsl:for-each>
+ </xsl:if>
+ </字:奇数页页眉>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </字:页眉>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="/office:document/office:master-styles/style:master-page[@style:page-layout-name=$mp and @style:name=$masterPages]">
+ <xsl:if test="style:footer-left or style:footer">
+ <字:页脚 uof:locID="t0031">
+ <xsl:choose>
+ <xsl:when test="style:footer-left">
+ <xsl:for-each select="style:footer">
+ <字:首页页脚 uof:locID="t0034">
+ <xsl:if test="text:p">
+ <xsl:for-each select="text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="table:table">
+ <xsl:for-each select="table:table">
+ <xsl:call-template name="exec_table"/>
+ </xsl:for-each>
+ </xsl:if>
+ </字:首页页脚>
+ </xsl:for-each>
+ <xsl:for-each select="style:footer-left">
+ <å­—:å¶æ•°é¡µé¡µè„š uof:locID="t0033">
+ <xsl:if test="text:p">
+ <xsl:for-each select="text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="table:table">
+ <xsl:for-each select="table:table">
+ <xsl:call-template name="exec_table"/>
+ </xsl:for-each>
+ </xsl:if>
+ </å­—:å¶æ•°é¡µé¡µè„š>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="style:footer">
+ <字:奇数页页脚 uof:locID="t0032">
+ <xsl:if test="text:p">
+ <xsl:for-each select="text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="table:table">
+ <xsl:for-each select="table:table">
+ <xsl:call-template name="exec_table"/>
+ </xsl:for-each>
+ </xsl:if>
+ </字:奇数页页脚>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </字:页脚>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="@style:page-usage">
+ <å­—:å¯¹ç§°é¡µè¾¹è· uof:locID="t0036" uof:attrList="值">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="@style:page-usage='mirrored'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </å­—:对称页边è·>
+ </xsl:if>
+ <xsl:if test="@style:page-usage='mirrored'">
+ <xsl:element name="字:拼页">
+ <xsl:attribute name="uof:locID">t0037</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">1</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:纸张方å‘">
+ <xsl:attribute name="uof:locID">t0038</xsl:attribute>
+ <xsl:value-of select="style:page-layout-properties/@style:print-orientation"/>
+ </xsl:element>
+ <xsl:if test="style:page-layout-properties/@style:paper-tray-name">
+ <å­—:纸张æ¥æº uof:locID="t0039" uof:attrList="首页 其他页" å­—:首页="false" å­—:其他页="style:page-layout-properties/@style:paper-tray-name"/>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@style:num-format">
+ <xsl:element name="å­—:页ç è®¾ç½®">
+ <xsl:attribute name="uof:locID">t0042</xsl:attribute>
+ <xsl:attribute name="uof:attrList">首页显示 æ ¼å¼ åŒ…å«ç« èŠ‚å· ç« èŠ‚èµ·å§‹æ ·å¼å¼•ç”¨ 分隔符 起始编å·</xsl:attribute>
+ <xsl:attribute name="字:首页显示">1</xsl:attribute>
+ <xsl:attribute name="å­—:æ ¼å¼"><xsl:variable name="format"><xsl:value-of select="style:page-layout-properties/@style:num-format"/></xsl:variable><xsl:call-template name="ooæ•°å­—æ ¼å¼"><xsl:with-param name="oo_format" select="$format"/></xsl:call-template></xsl:attribute>
+ <xsl:if test="style:text-properties/@style:first-page-number">
+ <xsl:attribute name="å­—:起始编å·"><xsl:value-of select="style:text-properties/@style:first-page-number"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="å­—:包å«ç« èŠ‚å·">false</xsl:attribute>
+ <!--xsl:attribute name="å­—:章节起始样å¼å¼•ç”¨">false</xsl:attribute-->
+ <xsl:attribute name="字:分隔符">hyphen</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="/office:document/office:styles/text:notes-configuration[@text:note-class='footnote']">
+ <xsl:element name="字:脚注设置">
+ <xsl:attribute name="uof:locID">t0040</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ä½ç½® æ ¼å¼ èµ·å§‹ç¼–å· ç¼–å·æ–¹å¼</xsl:attribute>
+ <xsl:for-each select="/office:document/office:styles/text:notes-configuration[@text:note-class='footnote']">
+ <xsl:attribute name="å­—:ä½ç½®"><xsl:choose><xsl:when test="@text:footnotes-position='page'">page-bottom</xsl:when><xsl:when test="@text:footnotes-position='document'">below-text</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="å­—:ç¼–å·æ–¹å¼"><xsl:choose><xsl:when test="@text:start-numbering-at='document'">continuous</xsl:when><xsl:when test="@text:start-numbering-at='chapter'">section</xsl:when><xsl:when test="@text:start-numbering-at='page'">page</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="å­—:起始编å·"><xsl:value-of select="@text:start-value + 1"/></xsl:attribute>
+ <xsl:attribute name="å­—:æ ¼å¼"><xsl:variable name="format"><xsl:value-of select="@style:num-format"/></xsl:variable><xsl:call-template name="ooæ•°å­—æ ¼å¼"><xsl:with-param name="oo_format" select="$format"/></xsl:call-template></xsl:attribute>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="/office:document/office:styles/text:notes-configuration[@text:note-class='endnote']">
+ <å­—:尾注设置 uof:locID="t0041" uof:attrList="æ ¼å¼ èµ·å§‹ç¼–å· ç¼–å·æ–¹å¼">
+ <xsl:for-each select="/office:document/office:styles/text:notes-configuration[@text:note-class='endnote']">
+ <xsl:attribute name="å­—:æ ¼å¼"><xsl:variable name="format"><xsl:value-of select="@style:num-format"/></xsl:variable><xsl:call-template name="ooæ•°å­—æ ¼å¼"><xsl:with-param name="oo_format" select="$format"/></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="å­—:起始编å·"><xsl:value-of select="@text:start-value + 1"/></xsl:attribute>
+ </xsl:for-each>
+ </字:尾注设置>
+ </xsl:if>
+ <xsl:if test="/office:document/office:styles/text:linenumbering-configuration">
+ <å­—:è¡Œå·è®¾ç½® uof:locID="t0043" uof:attrList="ä½¿ç”¨è¡Œå· ç¼–å·æ–¹å¼ èµ·å§‹ç¼–å· è·è¾¹ç•Œ è¡Œå·é—´éš”">
+ <xsl:for-each select="/office:document/office:styles/text:linenumbering-configuration">
+ <xsl:choose>
+ <xsl:when test="@text:number-lines='false'">
+ <xsl:attribute name="å­—:使用行å·">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:使用行å·">true</xsl:attribute>
+ <xsl:attribute name="å­—:ç¼–å·æ–¹å¼"><xsl:choose><xsl:when test="@text:count-in-floating-frames='true'">section</xsl:when><xsl:when test="@text:restart-on-page='true'">page</xsl:when><xsl:when test="@text:count-empty-lines='false'"/><xsl:otherwise>continuous</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@style:num-format">
+ <xsl:attribute name="å­—:起始编å·"><xsl:value-of select="@style:num-format"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@text:offset">
+ <xsl:attribute name="å­—:è·è¾¹ç•Œ"><xsl:value-of select="substring-before(@text:offset,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@text:increment">
+ <xsl:attribute name="å­—:è¡Œå·é—´éš”"><xsl:value-of select="@text:increment"/></xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ </å­—:è¡Œå·è®¾ç½®>
+ </xsl:if>
+ <xsl:variable name="aa">
+ <xsl:value-of select="substring-before(style:page-layout-properties/@style:layout-grid-ruby-height,$ooUnit)"/>
+ </xsl:variable>
+ <xsl:if test="style:page-layout-properties/@style:layout-grid-display and $aa='0' ">
+ <å­—:网格设置 uof:locID="t0044" uof:attrList="网格类型 宽度 高度 显示网格 打å°ç½‘æ ¼">
+ <xsl:if test="style:page-layout-properties/@style:layout-grid-mode">
+ <xsl:attribute name="字:网格类型"><xsl:choose><xsl:when test="style:page-layout-properties/@style:layout-grid-mode='both-nosnap'">line-char</xsl:when><xsl:when test="style:page-layout-properties/@style:layout-grid-mode='both'">char</xsl:when><xsl:when test="style:page-layout-properties/@style:layout-grid-mode='line'">line</xsl:when><xsl:when test="style:page-layout-properties/@style:layout-grid-mode='none'">none</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@style:layout-grid-base-width">
+ <xsl:attribute name="字:宽度"><xsl:value-of select="substring-before(style:page-layout-properties/@style:layout-grid-base-width,$ooUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@style:layout-grid-base-height">
+ <xsl:attribute name="字:高度"><xsl:value-of select="substring-before(style:page-layout-properties/@style:layout-grid-base-height,$ooUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@style:layout-grid-display">
+ <xsl:attribute name="字:显示网格"><xsl:choose><xsl:when test="style:page-layout-properties/@style:layout-grid-display='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@style:layout-grid-print">
+ <xsl:attribute name="å­—:打å°ç½‘æ ¼"><xsl:choose><xsl:when test="style:page-layout-properties/@style:layout-grid-print='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </字:网格设置>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@style:layout-grid-display and not($aa = '0')">
+ <å­—:稿纸设置 uof:locID="t0211" uof:attrList="类型 æ ¼å¼ çº¿åž‹ 颜色 æ–¹å‘">
+ <xsl:variable name="mode">
+ <xsl:value-of select="style:page-layout-properties/@style:layout-grid-mode"/>
+ </xsl:variable>
+ <xsl:variable name="ruby">
+ <xsl:value-of select="substring-before(style:page-layout-properties/@style:layout-grid-ruby-height,$ooUnit)"/>
+ </xsl:variable>
+ <xsl:variable name="width">
+ <xsl:value-of select="substring-before(style:page-layout-properties/@style:layout-grid-base-width,$ooUnit)"/>
+ </xsl:variable>
+ <xsl:variable name="height">
+ <xsl:value-of select="substring-before(style:page-layout-properties/@style:layout-grid-base-height,$ooUnit)"/>
+ </xsl:variable>
+ <xsl:attribute name="字:类型"><xsl:choose><xsl:when test="style:page-layout-properties/@style:layout-grid-mode='line'">letter-paper</xsl:when><xsl:when test="style:page-layout-properties/@style:layout-grid-mode='both'">draft-paper</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="style:page-layout-properties/@style:layout-grid-mode">
+ <xsl:attribute name="å­—:æ ¼å¼"><xsl:choose><xsl:when test="$mode='both' and $width='0.728' and $height='0.728' and $ruby='0.496' ">fourth-gear</xsl:when><xsl:when test="$mode='both' and $width='0.584' and $height='0.584' and $ruby='0.64' ">third-gear</xsl:when><xsl:when test="$mode='both' and $width='0.728' and $height='0.728' and $ruby='0.905' ">second-gear</xsl:when><xsl:when test="$mode='both' and $width='0.728' and $height='0.728' and $ruby='1.633' ">first-gear</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@style:layout-grid-color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select="style:page-layout-properties/@style:layout-grid-color"/></xsl:attribute>
+ </xsl:if>
+ </字:稿纸设置>
+ </xsl:if>
+ <xsl:if test="/office:document/office:automatic-styles/style:page-layout/style:page-layout-properties/@style:writing-mode='lr-tb' or style:text-properties/@style:writing-mode='rl-tb'">
+ <å­—:垂直对é½æ–¹å¼ uof:locID="t0045">
+ <xsl:variable name="path" select="/office:document/office:automatic-styles/style:style/style:paragraph-properties"/>
+ <xsl:choose>
+ <xsl:when test="$path/@fo:text-align='start'">top</xsl:when>
+ <xsl:when test="$path/@fo:text-align='end'">bottom</xsl:when>
+ <xsl:when test="$path/@fo:text-align='center'">center</xsl:when>
+ <xsl:otherwise>justified</xsl:otherwise>
+ </xsl:choose>
+ </å­—:垂直对é½æ–¹å¼>
+ </xsl:if>
+ <å­—:æ–‡å­—æŽ’åˆ—æ–¹å‘ uof:locID="t0046">
+ <xsl:variable name="writing_mode">
+ <xsl:value-of select="style:page-layout-properties/@style:writing-mode"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$writing_mode='lr-tb' or $writing_mode='lr'">hori-l2r</xsl:when>
+ <xsl:when test="$writing_mode='rl-tb' or $writing_mode='rl'">hori-r2l</xsl:when>
+ <xsl:when test="$writing_mode='tb-rl'">vert-r2l</xsl:when>
+ <xsl:when test="$writing_mode='tb-lr'">vert-l2r</xsl:when>
+ <xsl:otherwise>hori-l2r</xsl:otherwise>
+ </xsl:choose>
+ </å­—:文字排列方å‘>
+ <xsl:if test="style:page-layout-properties/@fo:border or style:page-layout-properties/@fo:border-top or style:page-layout-properties/@fo:border-bottom or style:page-layout-properties/@fo:border-left or style:page-layout-properties/@fo:border-right or style:page-layout-properties/@style:shadow[.!='none']">
+ <xsl:element name="字:边框">
+ <xsl:attribute name="uof:locID">t0047</xsl:attribute>
+ <xsl:for-each select="style:page-layout-properties">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@fo:background-color">
+ <xsl:element name="å­—:å¡«å……">
+ <xsl:attribute name="uof:locID">t0048</xsl:attribute>
+ <xsl:for-each select="style:page-layout-properties">
+ <xsl:call-template name="图:填充"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/style:columns">
+ <xsl:element name="å­—:分æ ">
+ <xsl:attribute name="uof:locID">t0049</xsl:attribute>
+ <xsl:attribute name="uof:attrList">æ æ•° 等宽 分隔线 分隔线宽度 分隔线颜色</xsl:attribute>
+ <xsl:if test="//@fo:column-count">
+ <xsl:attribute name="å­—:æ æ•°"><xsl:choose><xsl:when test="//@fo:column-count='0'">1</xsl:when><xsl:otherwise><xsl:value-of select="//@fo:column-count"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="第一宽度">
+ <xsl:value-of select="style:page-layout-properties/style:columns/style:column/@style:rel-width"/>
+ </xsl:variable>
+ <xsl:variable name="dkm">
+ <xsl:for-each select="style:page-layout-properties/style:columns/style:column">
+ <xsl:if test="$第一宽度 != @style:rel-width">
+ <xsl:value-of select="boolean($第一宽度 = @style:rel-width)"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="style:page-layout-properties/style:columns/@fo:column-gap">
+ <xsl:attribute name="字:等宽">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="字:等宽">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="style:page-layout-properties/style:columns/style:column-sep">
+ <xsl:attribute name="字:分隔线宽度"><xsl:value-of select="substring-before(style:page-layout-properties/style:columns/style:column-sep/@style:width,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="字:分隔线颜色"><xsl:value-of select="style:page-layout-properties/style:columns/style:column-sep/@style:color"/></xsl:attribute>
+ <xsl:attribute name="字:分隔线">single</xsl:attribute>
+ </xsl:if>
+ <xsl:for-each select="style:page-layout-properties/style:columns/style:column">
+ <xsl:element name="å­—:æ ">
+ <xsl:variable name="left">
+ <xsl:value-of select="substring-before(@fo:start-indent,$uofUnit)"/>
+ </xsl:variable>
+ <xsl:variable name="right">
+ <xsl:value-of select="substring-before(@fo:end-indent,$uofUnit)"/>
+ </xsl:variable>
+ <xsl:if test="@style:rel-width">
+ <xsl:attribute name="字:宽度"><xsl:value-of select="substring-before(@style:rel-width,'*')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@fo:start-indent or @fo:end-indent">
+ <xsl:choose>
+ <xsl:when test="parent::style:columns/@fo:column-gap">
+ <xsl:attribute name="å­—:é—´è·"><xsl:choose><xsl:when test="$left - $right &gt;0 "><xsl:value-of select="$left - $right"/></xsl:when><xsl:when test="$right - $left &gt; 0 "><xsl:value-of select="$right - $left"/></xsl:when><xsl:otherwise><xsl:value-of select="$right"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é—´è·"><xsl:value-of select="$right"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:attribute name="uof:locID">t0050</xsl:attribute>
+ <xsl:attribute name="uof:attrList">宽度 é—´è·</xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ </字:节属性>
+ </字:分节>
+ </xsl:template>
+ <xsl:template match="office:text">
+ <xsl:for-each select="node( )">
+ <xsl:choose>
+ <xsl:when test="name()='text:list'or name()='text:ordered-list'">
+ <xsl:call-template name="unordered-ordered-list">
+ <xsl:with-param name="currlistlvl" select="number('1')"/>
+ <xsl:with-param name="liststylename" select="@text:style-name"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name()='text:p'or name()='text:h'">
+ <xsl:variable name="bs" select="./@text:style-name"/>
+ <xsl:if test="/office:document/office:automatic-styles/style:style[@style:name=$bs]/@style:master-page-name">
+ <xsl:variable name="bs1" select="/office:document/office:automatic-styles/style:style[@style:name=$bs]/@style:master-page-name"/>
+ <xsl:if test="/office:document/office:master-styles/style:master-page[@style:name=$bs1]/@style:page-layout-name">
+ <xsl:variable name="bs2" select="/office:document/office:master-styles/style:master-page[@style:name=$bs1]/@style:page-layout-name"/>
+ <xsl:for-each select="/office:document/office:automatic-styles/style:page-layout[@style:name=$bs2]">
+ <xsl:call-template name="style:page-layout"/>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:if>
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name()='table:table'">
+ <xsl:variable name="tbs" select="./@table:style-name"/>
+ <xsl:if test="/office:document/office:automatic-styles/style:style[@style:name=$tbs]/@style:master-page-name">
+ <xsl:variable name="tbs1" select="/office:document/office:automatic-styles/style:style[@style:name=$tbs]/@style:master-page-name"/>
+ <xsl:if test="/office:document/office:master-styles/style:master-page[@style:name=$tbs1]/@style:page-layout-name">
+ <xsl:variable name="tbs2" select="/office:document/office:master-styles/style:master-page[@style:name=$tbs1]/@style:page-layout-name"/>
+ <xsl:for-each select="/office:document/office:automatic-styles/style:page-layout[@style:name=$tbs2]">
+ <xsl:call-template name="style:page-layout"/>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:if>
+ <xsl:call-template name="exec_table"/>
+ </xsl:when>
+ <xsl:when test="name()='text:table-of-content'">
+ <xsl:call-template name="text:table-of-content"/>
+ </xsl:when>
+ <xsl:when test="name()='text:alphabetical-index'">
+ <xsl:call-template name="text:alphabetical-index"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="jiaozhu">
+ <字:脚注 uof:locID="t0107" uof:attrList="引文体">
+ <xsl:for-each select="text:note-citation">
+ <xsl:attribute name="字:引文体"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:for-each>
+ <xsl:for-each select="text:note-body/text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </字:脚注>
+ </xsl:template>
+ <xsl:template name="weizhu">
+ <字:尾注 uof:locID="t0108" uof:attrList="引文体">
+ <xsl:for-each select="text:note-citation">
+ <xsl:attribute name="字:引文体"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:for-each>
+ <xsl:for-each select="text:note-body/text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </字:尾注>
+ </xsl:template>
+ <xsl:template name="unordered-ordered-list">
+ <xsl:param name="currlistlvl"/>
+ <xsl:param name="liststylename"/>
+ <xsl:for-each select="text:list-item">
+ <xsl:if test="text:p">
+ <xsl:for-each select="text:p">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="$currlistlvl"/>
+ <xsl:with-param name="liststylename" select="$liststylename"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:for-each select="node( )">
+ <xsl:if test="name()='text:list'">
+ <xsl:call-template name="unordered-ordered-list">
+ <xsl:with-param name="currlistlvl" select="$currlistlvl +1"/>
+ <xsl:with-param name="liststylename" select="$liststylename"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="execParagraph">
+ <xsl:param name="currlistlvl"/>
+ <xsl:param name="liststylename"/>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <xsl:element name="å­—:段è½å±žæ€§">
+ <xsl:attribute name="uof:locID">t0052</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:if test="@text:style-name">
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(number($currlistlvl) =number('0'))">
+ <xsl:variable name="parent-position">
+ <xsl:number from="/office:document/office:body/office:text/text:list" level="any" count="text:list-item/text:p" format="1"/>
+ </xsl:variable>
+ <xsl:element name="å­—:自动编å·ä¿¡æ¯">
+ <xsl:attribute name="uof:locID">t0059</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ç¼–å·å¼•ç”¨ ç¼–å·çº§åˆ« é‡æ–°ç¼–å· èµ·å§‹ç¼–å·</xsl:attribute>
+ <xsl:attribute name="å­—:ç¼–å·å¼•ç”¨"><xsl:value-of select="$liststylename"/></xsl:attribute>
+ <xsl:attribute name="å­—:ç¼–å·çº§åˆ«"><xsl:value-of select="$currlistlvl - 1"/></xsl:attribute>
+ <xsl:attribute name="å­—:é‡æ–°ç¼–å·"><xsl:choose><xsl:when test="number($parent-position)=number('1')">1</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="å­—:起始编å·"><xsl:for-each select="/office:document//text:list-style[$liststylename=@style:name]/*[number($currlistlvl)=number(@text:level)]"><xsl:choose><xsl:when test="@text:start-value"><xsl:value-of select="@text:start-value"/></xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose></xsl:for-each></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:variable name="stylename">
+ <xsl:value-of select="@text:style-name"/>
+ </xsl:variable>
+ <xsl:for-each select="/office:document//style:style">
+ <xsl:if test="@style:name=$stylename">
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="$stylename"/></xsl:attribute>
+ <xsl:call-template name="å­—:å¥å±žæ€§"/>
+ </xsl:element>
+ <xsl:call-template name="ParaAttribute">
+ <xsl:with-param name="text-style-name" select="@style:name"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:call-template name="textp"/>
+ <xsl:if test="parent::office:text and not(preceding-sibling::text:p) and preceding-sibling::*[substring-before(name(),':')='draw']">
+ <xsl:for-each select="preceding-sibling::*[substring-before(name(),':')='draw']">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:call-template name="字:锚点"/>
+ </å­—:å¥>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="draw:frame/draw:text-box/text:p">
+ <xsl:for-each select="draw:frame/draw:text-box/text:p">
+ <xsl:for-each select="child::*[substring-before(name(),':')='draw']">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:call-template name="字:锚点"/>
+ </å­—:å¥>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:variable name="aa">
+ <xsl:value-of select="@text:style-name"/>
+ </xsl:variable>
+ <xsl:if test="//office:document/office:automatic-styles/style:style[@style:name=$aa]/style:paragraph-properties/@fo:break-before='column'">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:element name="å­—:分æ ç¬¦">
+ <xsl:attribute name="uof:locID">t0125</xsl:attribute>
+ </xsl:element>
+ </å­—:å¥>
+ </xsl:if>
+ <xsl:if test="//office:document/office:automatic-styles/style:style[@style:name=$aa]/style:paragraph-properties/@fo:break-before='page'">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:element name="字:分页符">
+ <xsl:attribute name="uof:locID">t0127</xsl:attribute>
+ </xsl:element>
+ </å­—:å¥>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/office:text/text:p/text:initial-creator">
+ <xsl:apply-templates select="text:initial-creator"/>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/office:text/text:p/text:title">
+ <xsl:apply-templates select="text:title"/>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/office:text/text:p/text:subject">
+ <xsl:apply-templates select="text:subject"/>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/office:text/text:p/text:file-name">
+ <xsl:apply-templates select="text:file-name"/>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/office:text/text:p/text:author-name">
+ <xsl:apply-templates select="text:author-name"/>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/office:text/text:p/text:author-initials">
+ <xsl:apply-templates select="text:author-initials"/>
+ </xsl:if>
+ <xsl:if test="/office:document/office:body/office:text/text:p/text:span/text:date">
+ <xsl:apply-templates select="text:date"/>
+ </xsl:if>
+ </å­—:段è½>
+ </xsl:template>
+ <xsl:template name="ParaAttribute">
+ <xsl:param name="text-style-name"/>
+ <xsl:if test="substring-after(@style:display-name,'Heading')">
+ <xsl:element name="字:大纲级别">
+ <xsl:attribute name="uof:locID">t0054</xsl:attribute>
+ <xsl:value-of select="substring-after(@style:display-name,'Heading ')"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@fo:text-align or style:paragraph-properties/@style:vertical-align">
+ <xsl:element name="å­—:对é½">
+ <xsl:attribute name="uof:locID">t0055</xsl:attribute>
+ <xsl:attribute name="uof:attrList">æ°´å¹³å¯¹é½ æ–‡å­—å¯¹é½</xsl:attribute>
+ <xsl:attribute name="å­—:水平对é½"><xsl:choose><xsl:when test="style:paragraph-properties/@fo:text-align='end'">right</xsl:when><xsl:when test="style:paragraph-properties/@fo:text-align='center'">center</xsl:when><xsl:when test="style:paragraph-properties/@fo:text-align='justify' and not(style:paragraph-properties/@fo:text-align-last='justify')">justified</xsl:when><xsl:when test="style:paragraph-properties/@fo:text-align='justify' and style:paragraph-properties/@fo:text-align-last='justify'">distributed</xsl:when><xsl:otherwise>left</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="å­—:文字对é½"><xsl:choose><xsl:when test="style:paragraph-properties/@style:vertical-align='baseline'">base</xsl:when><xsl:when test="style:paragraph-properties/@style:vertical-align='top'">top</xsl:when><xsl:when test="style:paragraph-properties/@style:vertical-align='middle'">center</xsl:when><xsl:when test="style:paragraph-properties/@style:vertical-align='bottom'">bottom</xsl:when><xsl:otherwise>auto</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@fo:margin-left or style:paragraph-properties/@fo:margin-right or style:paragraph-properties/@fo:text-indent">
+ <xsl:element name="字:缩进">
+ <xsl:attribute name="uof:locID">t0056</xsl:attribute>
+ <xsl:for-each select="style:paragraph-properties">
+ <xsl:call-template name="字:缩进类型"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:è¡Œè·">
+ <xsl:attribute name="uof:locID">t0057</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 值</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="contains(style:paragraph-properties/@fo:line-height,$ooUnit)">
+ <xsl:attribute name="字:类型">fixed</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(style:paragraph-properties/@fo:line-height,$ooUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(style:paragraph-properties/@fo:line-height,'%')">
+ <xsl:attribute name="字:类型">multi-lines</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(style:paragraph-properties/@fo:line-height,'%') div 100"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="style:paragraph-properties/@style:line-height-at-least">
+ <xsl:attribute name="字:类型">at-least</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(style:paragraph-properties/@style:line-height-at-least,$ooUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="style:paragraph-properties/@style:line-spacing">
+ <xsl:attribute name="字:类型">line-space</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(style:paragraph-properties/@style:line-spacing,$ooUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="字:类型">multi-lines</xsl:attribute>
+ <xsl:attribute name="字:值">1.0</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="style:paragraph-properties/@fo:widows">
+ <xsl:element name="字:孤行控制">
+ <xsl:attribute name="uof:locID">t0060</xsl:attribute>
+ <xsl:value-of select="style:paragraph-properties/@fo:widows"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@fo:orphans">
+ <xsl:element name="字:寡行控制">
+ <xsl:attribute name="uof:locID">t0061</xsl:attribute>
+ <xsl:value-of select="style:paragraph-properties/@fo:orphans"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:段中ä¸åˆ†é¡µ">
+ <xsl:attribute name="uof:locID">t0062</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:paragraph-properties/@fo:keep-together='always'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:if test="style:paragraph-properties/@fo:keep-with-next">
+ <xsl:element name="å­—:与下段åŒé¡µ">
+ <xsl:attribute name="uof:locID">t0063</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@fo:break-before">
+ <xsl:element name="å­—:段å‰åˆ†é¡µ">
+ <xsl:attribute name="uof:locID">t0064</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@style:snap-to-layout-grid">
+ <xsl:element name="å­—:对é½ç½‘æ ¼">
+ <xsl:attribute name="uof:locID">t0069</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:paragraph-properties/@style:snap-to-layout-grid='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/style:drop-cap/@style:lines">
+ <xsl:element name="字:首字下沉">
+ <xsl:attribute name="uof:locID">t0070</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 字体引用 字符数 行数 é—´è·</xsl:attribute>
+ <xsl:attribute name="字:类型">dropped</xsl:attribute>
+ <xsl:if test="style:paragraph-properties/style:drop-cap/@style:style-name">
+ <xsl:attribute name="字:字体引用"><xsl:value-of select="translate(style:paragraph-properties/style:drop-cap/@style:style-name,' ','_')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="å­—:é—´è·"><xsl:choose><xsl:when test="style:paragraph-properties/style:drop-cap/@style:distance"><xsl:value-of select="substring-before(style:paragraph-properties/style:drop-cap/@style:distance,$ooUnit)"/></xsl:when><xsl:otherwise>0.00</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="style:paragraph-properties/style:drop-cap/@style:length">
+ <xsl:attribute name="字:字符数"><xsl:value-of select="style:paragraph-properties/style:drop-cap/@style:length"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/style:drop-cap/@style:lines">
+ <xsl:attribute name="字:行数"><xsl:value-of select="style:paragraph-properties/style:drop-cap/@style:lines"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:å–消断字">
+ <xsl:attribute name="uof:locID">t0071</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:paragraph-properties/@fo:hyphenate"><xsl:value-of select="style:paragraph-properties/@fo:hyphenate"/></xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:å–消行å·">
+ <xsl:attribute name="uof:locID">t0072</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:variable name="aa">
+ <xsl:value-of select="style:paragraph-properties/@text:number-lines"/>
+ </xsl:variable>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="$aa='false'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:å…许å•è¯æ–­å­—">
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0073</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ <xsl:if test="style:paragraph-properties/@style:punctuation-wrap">
+ <xsl:element name="字:行首尾标点控制">
+ <xsl:attribute name="uof:locID">t0074</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:paragraph-properties/@style:punctuation-wrap='hanging'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:是å¦è¡Œé¦–标点压缩">
+ <xsl:attribute name="uof:locID">t0075</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">false</xsl:attribute>
+ </xsl:element>
+ <xsl:if test="style:paragraph-properties/@style:line-break ">
+ <xsl:element name="字:中文习惯首尾字符">
+ <xsl:attribute name="uof:locID">t0076</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:paragraph-properties/@style:line-break='strict'">true</xsl:when><xsl:when test="style:paragraph-properties/@style:line-break='normal'">false</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@style:text-autospace">
+ <xsl:element name="å­—:自动调整中英文字符间è·">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:paragraph-properties/@style:text-autospace='ideograph-alpha'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0077</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@style:text-autospace">
+ <xsl:element name="å­—:自动调整中文与数字间è·">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:paragraph-properties/@style:text-autospace='ideograph-alpha'">true </xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0078</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:有网格自动调整å³ç¼©è¿›">
+ <xsl:attribute name="字:值">false</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0195</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ <xsl:if test="style:paragraph-properties/@fo:border or style:paragraph-properties/@fo:border-top or style:paragraph-properties/@fo:border-bottom or style:paragraph-properties/@fo:border-left or style:paragraph-properties/@fo:border-right or style:paragraph-properties/@style:shadow[.!='none']">
+ <xsl:element name="字:边框">
+ <xsl:attribute name="uof:locID">t0065</xsl:attribute>
+ <xsl:for-each select="style:paragraph-properties">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@fo:background-color">
+ <xsl:element name="å­—:å¡«å……">
+ <xsl:attribute name="uof:locID">t0066</xsl:attribute>
+ <xsl:for-each select="style:paragraph-properties">
+ <xsl:call-template name="图:填充"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@fo:margin-top or style:paragraph-properties/@fo:margin-bottom">
+ <å­—:æ®µé—´è· uof:locID="t0058">
+ <xsl:if test="style:paragraph-properties/@fo:margin-top">
+ <å­—:段å‰è· uof:locID="t0196">
+ <å­—:ç»å¯¹å€¼ uof:locID="t0199" uof:attrList="值">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(style:paragraph-properties/@fo:margin-top,$ooUnit)"/></xsl:attribute>
+ </å­—:ç»å¯¹å€¼>
+ </å­—:段å‰è·>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/@fo:margin-bottom">
+ <å­—:段åŽè· uof:locID="t0197">
+ <å­—:ç»å¯¹å€¼ uof:locID="t0202" uof:attrList="值">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(style:paragraph-properties/@fo:margin-bottom,$ooUnit)"/></xsl:attribute>
+ </å­—:ç»å¯¹å€¼>
+ </å­—:段åŽè·>
+ </xsl:if>
+ </å­—:段间è·>
+ </xsl:if>
+ <xsl:if test="style:paragraph-properties/style:tab-stops">
+ <xsl:element name="å­—:制表ä½è®¾ç½®">
+ <xsl:attribute name="uof:locID">t0067</xsl:attribute>
+ <xsl:for-each select="style:paragraph-properties/style:tab-stops/style:tab-stop">
+ <xsl:element name="å­—:制表ä½">
+ <xsl:attribute name="uof:locID">t0068</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ä½ç½® 类型 å‰å¯¼ç¬¦ 制表ä½å­—符</xsl:attribute>
+ <xsl:attribute name="å­—:ä½ç½®"><xsl:value-of select="substring-before(@style:position,$ooUnit)"/></xsl:attribute>
+ <xsl:variable name="aa">
+ <xsl:value-of select="@style:type"/>
+ </xsl:variable>
+ <xsl:variable name="zbflx">
+ <xsl:choose>
+ <xsl:when test="$aa='right'">right</xsl:when>
+ <xsl:when test="$aa='center'">center</xsl:when>
+ <xsl:when test="$aa='char'and @style:char!=''">decimal</xsl:when>
+ <xsl:otherwise>left</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="字:类型"><xsl:value-of select="$zbflx"/></xsl:attribute>
+ <xsl:attribute name="å­—:制表ä½å­—符"><xsl:value-of select="@style:leader-text"/></xsl:attribute>
+ <xsl:if test="@style:leader-style">
+ <xsl:attribute name="å­—:å‰å¯¼ç¬¦"><xsl:value-of select="@style:leader-style"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="text:s">
+ <xsl:param name="bText"/>
+ <xsl:choose>
+ <xsl:when test="$bText='0'">
+ <xsl:variable name="count">
+ <xsl:choose>
+ <xsl:when test="not(@text:c)">1</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@text:c"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <å­—:å¥ uof:locID="t0085">
+ <字:空格符 uof:locID="t0126" uof:attrList="个数" 字:个数="{$count}"/>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:otherwise>
+ <字:空格符 uof:locID="t0126" uof:attrList="个数" 字:个数="{@text:c}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="textp" match="text:p">
+ <xsl:variable name="parentstyle">
+ <xsl:value-of select="@text:style-name"/>
+ </xsl:variable>
+ <xsl:for-each select="node( )">
+ <xsl:choose>
+ <xsl:when test="self::node()[name(.)='text:span']">
+ <xsl:call-template name="textspan"/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:sequence']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()/draw:text-box/text:p/text:sequence">
+ <xsl:for-each select="draw:text-box/text:p/node()">
+ <xsl:choose>
+ <xsl:when test="self::node()[name(.)='text:sequence']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="not(self::node()[substring-before(name(.),':')='draw'])">
+ <xsl:call-template name="å­—:å¥">
+ <xsl:with-param name="parentstyle" select="$parentstyle"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:date']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:time']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:s']">
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="bText" select="0"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:file-name']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:chapter']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:editing-duration']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:creation-time']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:creation-date']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:character-count']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:page-count']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:page-number']">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="substring-before(name(.),':')='draw' and not(name(.)='draw:a')">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:call-template name="字:锚点"/>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:note']/@text:note-class='footnote'">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:call-template name="jiaozhu"/>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:note']/@text:note-class='endnote'">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:call-template name="weizhu"/>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:when test="name(.)='text:alphabetical-index-mark-start'">
+ <xsl:element name="å­—:å¥">
+ <xsl:element name="字:区域开始">
+ <xsl:attribute name="uof:locId">t0121</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型</xsl:attribute>
+ <xsl:attribute name="字:类型">user-data</xsl:attribute>
+ <xsl:attribute name="å­—:å称"><xsl:value-of select="@text:string-value-phonetic"/></xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@text:id"/></xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="name(.)='text:alphabetical-index-mark-end'">
+ <xsl:element name="å­—:å¥">
+ <xsl:element name="å­—:区域结æŸ" uof:locID="t0122" uof:attrList="标识符引用">
+ <xsl:attribute name="字:标识符引用"><xsl:value-of select="@text:id"/></xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="name(.)='text:bookmark' ">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ </xsl:element>
+ <å­—:区域开始 uof:locID="t0121" uof:attrList="标识符 å称 类型" å­—:å称="{@text:name}" å­—:类型="bookmark" å­—:标识符="{generate-id()}"/>
+ <å­—:åŒºåŸŸç»“æŸ uof:locID="t0122" uof:attrList="标识符引用" å­—:标识符引用="{generate-id()}"/>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:when test="name(.)='text:a'">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="字:区域开始">
+ <xsl:attribute name="字:标识符">hlnk<xsl:number from="/office:document/office:body/office:text" level="any" count="text:a"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称">Hyperlink</xsl:attribute>
+ <xsl:attribute name="字:类型">hyperlink</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0121</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="."/>
+ </xsl:element>
+ <xsl:element name="å­—:区域结æŸ">
+ <xsl:attribute name="字:标识符引用">hlnk<xsl:number from="/office:document/office:body/office:text" level="any" count="text:a"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0122</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符引用</xsl:attribute>
+ </xsl:element>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:when test="name(.)='office:annotation'">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="字:区域开始">
+ <xsl:attribute name="字:标识符">cmt<xsl:number from="/office:document/office:body/office:text" level="any" count="office:annotation"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称">Comment</xsl:attribute>
+ <xsl:attribute name="字:类型">annotation</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0121</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:区域结æŸ">
+ <xsl:attribute name="字:标识符引用">cmt<xsl:number from="/office:document/office:body/office:text" level="any" count="office:annotation"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0122</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符引用</xsl:attribute>
+ </xsl:element>
+ </å­—:å¥>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:change-start'] or self::node()[name(.)='text:change'] or self::node()[name(.)='text:change-end']">
+ <xsl:call-template name="xiuding"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="å­—:å¥">
+ <xsl:with-param name="parentstyle" select="$parentstyle"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="xiuding">
+ <xsl:choose>
+ <xsl:when test="self::node()[name(.)='text:change-start']or self::node()[name(.)='text:change']">
+ <xsl:variable name="changeID">
+ <xsl:value-of select="@text:change-id"/>
+ </xsl:variable>
+ <xsl:for-each select="/office:document/office:body/office:text/text:tracked-changes/text:changed-region">
+ <xsl:if test="$changeID=@text:id">
+ <xsl:choose>
+ <xsl:when test="text:insertion">
+ <xsl:element name="字:修订开始">
+ <xsl:attribute name="uof:locID">t0206</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 类型 修订信æ¯å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@text:id"/></xsl:attribute>
+ <xsl:attribute name="字:类型">insert</xsl:attribute>
+ <xsl:attribute name="å­—:修订信æ¯å¼•ç”¨"><xsl:value-of select="@text:id"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="text:format-change">
+ <xsl:element name="字:修订开始">
+ <xsl:attribute name="uof:locID">t0206</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 类型 修订信æ¯å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@text:id"/></xsl:attribute>
+ <xsl:attribute name="字:类型">format</xsl:attribute>
+ <xsl:attribute name="å­—:修订信æ¯å¼•ç”¨"><xsl:value-of select="@text:id"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="text:deletion">
+ <xsl:element name="字:修订开始">
+ <xsl:attribute name="uof:locID">t0206</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 类型 修订信æ¯å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="字:标识符"><xsl:value-of select="@text:id"/></xsl:attribute>
+ <xsl:attribute name="字:类型">delete</xsl:attribute>
+ <xsl:attribute name="å­—:修订信æ¯å¼•ç”¨"><xsl:value-of select="@text:id"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="self::node()[name(.)='text:change-end']">
+ <xsl:variable name="changeendID">
+ <xsl:value-of select="@text:change-id"/>
+ </xsl:variable>
+ <xsl:for-each select="/office:document/office:body/office:text/text:tracked-changes/text:changed-region">
+ <xsl:if test="$changeendID=@text:id">
+ <xsl:choose>
+ <xsl:when test="text:insertion">
+ <xsl:element name="å­—:修订结æŸ">
+ <xsl:attribute name="uof:locID">t0207</xsl:attribute>
+ <xsl:attribute name="uof:attrList">开始标识引用</xsl:attribute>
+ <xsl:attribute name="字:开始标识引用"><xsl:value-of select="@text:id"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="text:deletion">
+ <xsl:element name="å­—:修订结æŸ">
+ <xsl:attribute name="uof:locID">t0207</xsl:attribute>
+ <xsl:attribute name="uof:attrList">开始标识引用</xsl:attribute>
+ <xsl:attribute name="字:开始标识引用"><xsl:value-of select="@text:id"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="text:format-change">
+ <xsl:element name="å­—:修订结æŸ">
+ <xsl:attribute name="uof:locID">t0207</xsl:attribute>
+ <xsl:attribute name="uof:attrList">开始标识引用</xsl:attribute>
+ <xsl:attribute name="字:开始标识引用"><xsl:value-of select="@text:id"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="å­—:å¥">
+ <xsl:param name="parentstyle"/>
+ <xsl:if test="not(name(.)='text:bookmark-start' or name(.)='text:bookmark-end' or name(.)='draw:image' or name(.)='office:binary-data' or name(.)='text:page-number' or name(.)='text:page-count' or name(.)='text:initial-creator' or name(.)='text:author-name' or name(.)='text:author-initials' or name(.)='text:creation-time' or name(.)='text:creation-date' or name(.)='text:title' or name(.)='text:subject' or name(.)='text:file-name' or name(.)='text:editing-duration' or name(.)='text:character-count' or name(.)='text:chapter')">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:choose>
+ <xsl:when test="@text:style-name">
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::text:h/@text:outline-level">
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="concat('Heading_20_',parent::text:h/@text:outline-level)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="parent::node()/@text:style-name">
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="parent::node( )/@text:style-name"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </å­—:å¥å±žæ€§>
+ <xsl:if test="ancestor::text:note-body">
+ <å­—:引文符å·>
+ <xsl:value-of select="ancestor::text:note/text:note-citation"/>
+ </å­—:引文符å·>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="(preceding-sibling::text:bookmark-start) and (following-sibling::text:bookmark-end)">
+ <å­—:区域开始 uof:locID="t0121" uof:attrList="标识符 å称 类型">
+ <xsl:attribute name="字:标识符"><xsl:value-of select="preceding-sibling::text:bookmark-start/@text:name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称">Bookmark</xsl:attribute>
+ <xsl:attribute name="字:类型">bookmark</xsl:attribute>
+ </字:区域开始>
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="string(.)"/>
+ </xsl:element>
+ <å­—:åŒºåŸŸç»“æŸ uof:locID="t0122" uof:attrList="标识符引用">
+ <xsl:attribute name="字:标识符引用"><xsl:value-of select="following-sibling::text:bookmark-end/@text:name"/></xsl:attribute>
+ </å­—:区域结æŸ>
+ </xsl:when>
+ <xsl:when test="name(.)='draw:a'">
+ <xsl:variable name="link-name">
+ <xsl:value-of select="substring-after(@xlink:href,'#')"/>
+ </xsl:variable>
+ <å­—:区域开始 uof:locID="t0121" uof:attrList="标识符 å称 类型">
+ <xsl:attribute name="字:标识符"><xsl:value-of select="$link-name"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称">Bookmark</xsl:attribute>
+ <xsl:attribute name="字:类型">bookmark</xsl:attribute>
+ </字:区域开始>
+ <xsl:call-template name="字:锚点"/>
+ <å­—:åŒºåŸŸç»“æŸ uof:locID="t0122" uof:attrList="标识符引用">
+ <xsl:attribute name="字:标识符引用"><xsl:value-of select="$link-name"/></xsl:attribute>
+ </å­—:区域结æŸ>
+ </xsl:when>
+ <xsl:when test="self::node( )[name(.)='text:tab']">
+ <xsl:element name="字:制表符">
+ <xsl:attribute name="uof:locID">t0123</xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="self::node( )[name(.)='text:line-break']">
+ <xsl:element name="å­—:æ¢è¡Œç¬¦">
+ <xsl:attribute name="uof:locID">t0124</xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="name(.)='text:bookmark-start' or name(.)='text:bookmark-end' or name(.)='draw:image' or name(.)='office:binary-data'">
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="string(.)"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:å¥>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="draw:text-box">
+ <xsl:apply-templates/>
+ </xsl:template>
+ <xsl:template name="text">
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="parent::node( )/@text:style-name"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="string(.)"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="textspan">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:choose>
+ <xsl:when test="./text:note/@text:note-class='footnote'">
+ <xsl:for-each select="text:note">
+ <xsl:call-template name="jiaozhu"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="./text:note/@text:note-class='endnote'">
+ <xsl:for-each select="text:note">
+ <xsl:call-template name="weizhu"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="å­—:å¥å±žæ€§">
+ <xsl:attribute name="uof:locID">t0086</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:variable name="textstyle">
+ <xsl:value-of select="@text:style-name"/>
+ </xsl:variable>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ <xsl:for-each select="/office:document/office:automatic-styles//style:style[@style:family='text']">
+ <xsl:if test="@style:name=$textstyle and not(@style:parent-style-name='Standard')">
+ <xsl:if test="@style:parent-style-name=/office:document/office:styles/style:style/@style:name">
+ <xsl:call-template name="SentenceXD">
+ <xsl:with-param name="Sentencestyle" select="@style:parent-style-name"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="/office:document/office:automatic-styles//style:style[@style:family='text']">
+ <xsl:if test="@style:name=$textstyle">
+ <xsl:call-template name="SentenceXD">
+ <xsl:with-param name="Sentencestyle" select="@style:name"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="string(.)"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:å¥>
+ </xsl:template>
+ <xsl:template name="SentenceXD">
+ <xsl:param name="Sentencestyle"/>
+ </xsl:template>
+ <xsl:template name="字:锚点">
+ <xsl:if test="not(name(.)='draw:glue-point')">
+ <xsl:variable name="name">
+ <xsl:value-of select="name(.)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="name='draw:a'">
+ <xsl:for-each select="child::node( )">
+ <xsl:call-template name="字:锚点"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$name = 'draw:g'">
+ <xsl:for-each select="child::*">
+ <xsl:call-template name="字:锚点"/>
+ </xsl:for-each>
+ </xsl:if>
+ <字:锚点 uof:locID="t0110" uof:attrList="标识符 类型">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='as-char'">
+ <xsl:attribute name="字:类型">inline</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="字:类型">normal</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <字:锚点属性 uof:locID="t0111">
+ <字:宽度 uof:locID="t0112">
+ <xsl:choose>
+ <xsl:when test="@svg:width">
+ <xsl:value-of select="substring-before(@svg:width,$uofUnit)"/>
+ </xsl:when>
+ <xsl:when test="@svg:x1">
+ <xsl:value-of select="substring-before(@svg:x2,$uofUnit) - substring-before(@svg:x1,$uofUnit)"/>
+ </xsl:when>
+ </xsl:choose>
+ </字:宽度>
+ <字:高度 uof:locID="t0113">
+ <xsl:choose>
+ <xsl:when test="@svg:height">
+ <xsl:value-of select="substring-before(@svg:height,$uofUnit)"/>
+ </xsl:when>
+ <xsl:when test="@svg:x1">
+ <xsl:value-of select="substring-before(@svg:y2,$uofUnit) - substring-before(@svg:y1,$uofUnit)"/>
+ </xsl:when>
+ <xsl:when test="child::draw:text-box/@fo:min-height">
+ <xsl:value-of select="substring-before(child::draw:text-box/@fo:min-height,$uofUnit)"/>
+ </xsl:when>
+ </xsl:choose>
+ </字:高度>
+ <xsl:if test="not(@text:anchor-type='as-char')">
+ <å­—:ä½ç½® uof:locID="t0114">
+ <字:水平 uof:locID="t0176" uof:attrList="相对于">
+ <xsl:for-each select="key('graphicset',@draw:style-name)/style:graphic-properties">
+ <xsl:attribute name="字:相对于"><xsl:choose><xsl:when test="@style:horizontal-rel='page'">page</xsl:when><xsl:when test="@style:horizontal-rel='paragraph'">margin</xsl:when><xsl:when test="@style:horizontal-rel='page-content'">margin</xsl:when><xsl:when test="@style:horizontal-rel='paragraph-content'">margin</xsl:when><xsl:when test="@style:horizontal-rel='char'">char</xsl:when><xsl:otherwise>paragraph</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="@svg:x or @svg:x1">
+ <å­—:ç»å¯¹ uof:locID="t0177" uof:attrList="值">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="@svg:x"><xsl:value-of select="substring-before(@svg:x,$uofUnit)"/></xsl:when><xsl:when test="@svg:x1"><xsl:value-of select="substring-before(@svg:x1,$uofUnit)"/></xsl:when></xsl:choose></xsl:attribute>
+ </å­—:ç»å¯¹>
+ </xsl:when>
+ <xsl:otherwise>
+ <å­—:相对 uof:locID="t0178" uof:attrList="å‚考点 值">
+ <xsl:for-each select="key('graphicset',@draw:style-name)/style:graphic-properties">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="@style:horizontal-pos='left'">left</xsl:when><xsl:when test="@style:horizontal-pos='right'">right</xsl:when><xsl:when test="@style:horizontal-pos='center'">center</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:for-each>
+ </字:相对>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:æ°´å¹³>
+ <字:垂直 uof:locID="t0179" uof:attrList="相对于">
+ <xsl:for-each select="key('graphicset',@draw:style-name)/style:graphic-properties">
+ <xsl:attribute name="字:相对于"><xsl:choose><xsl:when test="@style:vertical-rel='page'">page</xsl:when><xsl:when test="@style:vertical-rel='paragraph'">paragraph</xsl:when><xsl:when test="@style:vertical-rel='page-content'">margin</xsl:when><xsl:when test="@style:vertical-rel='paragraph-content'">margin</xsl:when><xsl:when test="@style:vertical-rel='line'">line</xsl:when><xsl:otherwise>paragraph</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="@svg:y or @svg:y1">
+ <å­—:ç»å¯¹ uof:locID="t0180" uof:attrList="值">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="@svg:y"><xsl:value-of select="substring-before(@svg:y,$uofUnit)"/></xsl:when><xsl:when test="@svg:y1"><xsl:value-of select="substring-before(@svg:y1,$uofUnit)"/></xsl:when></xsl:choose></xsl:attribute>
+ </å­—:ç»å¯¹>
+ </xsl:when>
+ <xsl:otherwise>
+ <å­—:相对 uof:locID="t0181" uof:attrList="å‚考点 值">
+ <xsl:for-each select="key('graphicset',@draw:style-name)/style:graphic-properties">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="@style:vertical-pos='bottom'">bottom</xsl:when><xsl:when test="@style:vertical-pos='top'">top</xsl:when><xsl:when test="@style:vertical-pos='middle'">center</xsl:when><xsl:when test="@style:vertical-pos='below'">inside</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:for-each>
+ </字:相对>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:åž‚ç›´>
+ </å­—:ä½ç½®>
+ </xsl:if>
+ <xsl:for-each select="key('graphicset',@draw:style-name)/style:graphic-properties">
+ <å­—:绕排 uof:locID="t0115" uof:attrList="ç»•æŽ’æ–¹å¼ çŽ¯ç»•æ–‡å­— 绕排顶点">
+ <xsl:variable name="wrap_type1">
+ <xsl:value-of select="@style:wrap"/>
+ </xsl:variable>
+ <xsl:variable name="wrap_type2">
+ <xsl:value-of select="@style:run-through"/>
+ </xsl:variable>
+ <xsl:variable name="a">
+ <xsl:value-of select="@style:number-wrapped-paragraphs"/>
+ </xsl:variable>
+ <xsl:if test="$wrap_type1">
+ <xsl:attribute name="å­—:绕排方å¼"><xsl:choose><xsl:when test="$wrap_type1='run-through' and $wrap_type2='background' ">behindtext</xsl:when><xsl:when test="$wrap_type1='run-through' and $a='1'">infrontoftext</xsl:when><xsl:when test="$wrap_type1='run-through'">through</xsl:when><xsl:when test="$wrap_type1='dynamic' ">top-bottom</xsl:when><xsl:when test="$wrap_type1='parallel' ">square</xsl:when><xsl:when test="$wrap_type1='left' or $wrap_type1='right'">tight</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$wrap_type1='left' or $wrap_type1='right'">
+ <xsl:attribute name="字:环绕文字"><xsl:choose><xsl:when test="$wrap_type1='left'">left</xsl:when><xsl:when test="$wrap_type1='right'">right</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </字:绕排>
+ <å­—:è¾¹è· uof:locID="t0116" uof:attrList="上 å·¦ å³ ä¸‹">
+ <xsl:choose>
+ <xsl:when test="@fo:margin-top">
+ <xsl:attribute name="字:上"><xsl:value-of select="substring-before(@fo:margin-top,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="字:下"><xsl:value-of select="substring-before(@fo:margin-bottom,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="字:上">0.0</xsl:attribute>
+ <xsl:attribute name="字:下">0.0</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@fo:margin-right">
+ <xsl:attribute name="å­—:å³"><xsl:value-of select="substring-before(@fo:margin-right,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="å­—:å·¦"><xsl:value-of select="substring-before(@fo:margin-left,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:å³">0.0</xsl:attribute>
+ <xsl:attribute name="å­—:å·¦">0.0</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:è¾¹è·>
+ <å­—:é”定 uof:attrList="值" uof:locID="t0117">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="@draw:move-protect='false'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ </å­—:é”定>
+ <å­—:ä¿æŠ¤ uof:locID="t0118" uof:attrList="值">
+ <xsl:choose>
+ <xsl:when test="$name='draw:image' or $name='draw:text-box'">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="@style:protect = 'content size position' or @style:protect = 'content' or @style:protect = 'content size' or @style:protect = 'size position' or @style:protect = 'size' or @style:protect = 'position' or @style:protect = 'content position' and @draw:size-protect= 'true'and @draw:move-protect= 'true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="@style:protect = 'position size'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:ä¿æŠ¤>
+ </xsl:for-each>
+ <å­—:å…许é‡å  uof:locID="t0119" uof:attrList="值" å­—:值="true"/>
+ </字:锚点属性>
+ <字:图形 uof:locID="t0120" uof:attrList="图形引用">
+ <xsl:variable name="refpicname">
+ <xsl:if test="@draw:style-name">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="picnumber">
+ <xsl:if test="@draw:style-name">
+ <xsl:value-of select="count(preceding::*[@draw:style-name=$refpicname])"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:attribute name="字:图形引用"><xsl:value-of select="concat($refpicname,'_',$picnumber)"/></xsl:attribute>
+ </字:图形>
+ </字:锚点>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="liekuan">
+ <xsl:param name="count"/>
+ <xsl:param name="width"/>
+ <xsl:if test="$count &gt; 0">
+ <字:列宽 uof:locID="t0132">
+ <xsl:value-of select="$width"/>
+ </字:列宽>
+ <xsl:call-template name="liekuan">
+ <xsl:with-param name="count" select="$count -1"/>
+ <xsl:with-param name="width" select="$width"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="exec_table" match="table:table">
+ <xsl:param name="tabletype"/>
+ <字:文字表 uof:locID="t0128" uof:attrList="类型">
+ <xsl:choose>
+ <xsl:when test="@table:is-sub-table='true'">
+ <xsl:attribute name="字:类型">sub-table</xsl:attribute>
+ <xsl:element name="字:文字表属性">
+ <xsl:attribute name="uof:locID">t0129</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:element name="字:列宽集">
+ <xsl:attribute name="uof:locID">t0131</xsl:attribute>
+ <xsl:for-each select="table:table-column">
+ <xsl:variable name="tableColName" select="@table:style-name"/>
+ <xsl:variable name="colWidth" select="substring-before(//style:style[@style:name=$tableColName and @style:family='table-column']/style:table-column-properties/@style:column-width,$ooUnit)"/>
+ <xsl:choose>
+ <xsl:when test="@table:number-columns-repeated">
+ <xsl:call-template name="liekuan">
+ <xsl:with-param name="count" select="@table:number-columns-repeated"/>
+ <xsl:with-param name="width" select="$colWidth"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <字:列宽 uof:locID="t0132">
+ <xsl:value-of select="$colWidth"/>
+ </字:列宽>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="字:类型">table</xsl:attribute>
+ <xsl:element name="字:文字表属性">
+ <xsl:attribute name="uof:locID">t0129</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@table:style-name"/></xsl:attribute>
+ <xsl:variable name="tableName" select="@table:style-name"/>
+ <xsl:element name="字:列宽集">
+ <xsl:attribute name="uof:locID">t0131</xsl:attribute>
+ <xsl:for-each select="table:table-column">
+ <xsl:variable name="tableColName" select="@table:style-name"/>
+ <xsl:variable name="colWidth" select="substring-before(//style:style[@style:name=$tableColName and @style:family='table-column']/style:table-column-properties/@style:column-width,$ooUnit)"/>
+ <xsl:choose>
+ <xsl:when test="@table:number-columns-repeated">
+ <xsl:call-template name="liekuan">
+ <xsl:with-param name="count" select="@table:number-columns-repeated"/>
+ <xsl:with-param name="width" select="$colWidth"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <字:列宽 uof:locID="t0132">
+ <xsl:value-of select="$colWidth"/>
+ </字:列宽>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:for-each select="key('set_styleStyle',$tableName)">
+ <xsl:element name="字:宽度">
+ <xsl:attribute name="uof:locID">t0130</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ç»å¯¹å®½åº¦ 相对宽度</xsl:attribute>
+ <xsl:attribute name="å­—:ç»å¯¹å®½åº¦"><xsl:value-of select="substring-before(style:table-properties/@style:width,$ooUnit)"/></xsl:attribute>
+ <xsl:if test="style:table-properties/@style:rel-width">
+ <xsl:attribute name="字:相对宽度"><xsl:value-of select="substring-before(style:table-properties/@style:rel-width,'%') div 100"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:element name="å­—:对é½">
+ <xsl:attribute name="uof:locID">t0133</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="style:table-properties/@table:align='right'">right</xsl:when>
+ <xsl:when test="style:table-properties/@table:align='center'">center</xsl:when>
+ <xsl:otherwise>left</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="style:table-properties/@fo:margin-left">
+ <xsl:element name="字:左缩进">
+ <xsl:attribute name="uof:locID">t0134</xsl:attribute>
+ <xsl:value-of select="substring-before(style:table-properties/@fo:margin-left,$ooUnit)"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="字:绕排">
+ <xsl:attribute name="uof:locID">t0135</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">around</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="字:边框">
+ <xsl:attribute name="uof:locID">t0137</xsl:attribute>
+ <xsl:for-each select="style:table-properties">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:if test="style:table-properties/style:background-image/office:binary-data or style:table-properties/@fo:background-color or style:page-layout-properties/@fo:background-color">
+ <å­—:å¡«å…… uof:locID="t0138">
+ <xsl:for-each select="style:table-properties">
+ <xsl:call-template name="图:填充">
+ <xsl:with-param name="style-name" select="$tableName"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </å­—:å¡«å……>
+ </xsl:if>
+ <xsl:element name="å­—:绕排边è·">
+ <xsl:attribute name="uof:locID">t0139</xsl:attribute>
+ <xsl:attribute name="uof:attrList">上 å·¦ å³ ä¸‹</xsl:attribute>
+ <xsl:if test="style:table-properties/@fo:margin-top">
+ <xsl:attribute name="字:上"><xsl:value-of select="substring-before(style:table-properties/@fo:margin-top,$ooUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:table-properties/@fo:margin-left">
+ <xsl:attribute name="å­—:å·¦"><xsl:value-of select="substring-before(style:table-properties/@fo:margin-left,$ooUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:table-properties/@fo:margin-right">
+ <xsl:attribute name="å­—:å³"><xsl:value-of select="substring-before(style:table-properties/@fo:margin-right,$ooUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:table-properties/@fo:margin-bottom">
+ <xsl:attribute name="字:下"><xsl:value-of select="substring-before(style:table-properties/@fo:margin-bottom,$ooUnit)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:element name="å­—:自动调整大å°">
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0140</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:默认å•å…ƒæ ¼è¾¹è·">
+ <xsl:attribute name="uof:locID">t0141</xsl:attribute>
+ <xsl:attribute name="uof:attrList">上 å·¦ å³ ä¸‹</xsl:attribute>
+ <xsl:attribute name="字:上">0.10</xsl:attribute>
+ <xsl:attribute name="å­—:å·¦">0.10</xsl:attribute>
+ <xsl:attribute name="å­—:å³">0.10</xsl:attribute>
+ <xsl:attribute name="字:下">0.10</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:默认å•å…ƒæ ¼é—´è·">
+ <xsl:attribute name="uof:locID">t0142</xsl:attribute>
+ <xsl:value-of select="'0.00'"/>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates select="table:table-header-rows/table:table-row"/>
+ <xsl:apply-templates select="table:table-row"/>
+ </字:文字表>
+ </xsl:template>
+ <xsl:key name="set_colWidth" match="//office:automatic-styles/style:style[@style:family='table-column']" use="@style:name"/>
+ <xsl:key name="set_styleStyle" match="//office:automatic-styles/style:style" use="@style:name"/>
+ <xsl:template match="table:table-row">
+ <xsl:element name="字:行">
+ <xsl:attribute name="uof:locID">t0143</xsl:attribute>
+ <xsl:variable name="rowStyleName" select="@table:style-name|table:table-row/@table:style-name"/>
+ <xsl:element name="字:表行属性">
+ <xsl:attribute name="uof:locID">t0144</xsl:attribute>
+ <xsl:for-each select="key('set_styleStyle',$rowStyleName)/style:table-row-properties[@style:row-height or @style:min-row-height]">
+ <xsl:element name="字:高度">
+ <xsl:if test="@style:row-height">
+ <xsl:attribute name="字:固定值"><xsl:value-of select="substring-before(@style:row-height,$ooUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@style:min-row-height">
+ <xsl:attribute name="å­—:最å°å€¼"><xsl:value-of select="substring-before(@style:min-row-height,$ooUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="uof:locID">t0145</xsl:attribute>
+ <xsl:attribute name="uof:attrList">固定值 最å°å€¼</xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:if test="key('set_styleStyle',$rowStyleName)/style:table-row-properties[@style:keep-together]">
+ <xsl:element name="字:跨页">
+ <xsl:attribute name="uof:locID">t0146</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:for-each select="key('set_styleStyle',$rowStyleName)/style:table-row-properties[@style:keep-together]">
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="@style:keep-together='false'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="name(..)='table:table-header-rows'">
+ <xsl:element name="字:表头行">
+ <xsl:attribute name="uof:locID">t0147</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ <xsl:for-each select="node()">
+ <xsl:choose>
+ <xsl:when test="name()='table:table-cell'">
+ <xsl:element name="å­—:å•å…ƒæ ¼">
+ <xsl:attribute name="uof:locID">t0148</xsl:attribute>
+ <xsl:call-template name="execTableCellAttribute"/>
+ <xsl:for-each select="node( )">
+ <xsl:choose>
+ <xsl:when test="name()='text:p'">
+ <xsl:call-template name="execParagraph">
+ <xsl:with-param name="currlistlvl" select="number('0')"/>
+ <xsl:with-param name="liststylename" select="string('00000')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name()='table:table' or name()='table:sub-table' or self::node()/@table:is-sub-table='true'">
+ <xsl:call-template name="exec_table">
+ <xsl:with-param name="tabletype" select="name()"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="execTableCellAttribute">
+ <xsl:element name="å­—:å•å…ƒæ ¼å±žæ€§">
+ <xsl:attribute name="uof:locID">t0149</xsl:attribute>
+ <xsl:variable name="StyleName" select="@table:style-name"/>
+ <xsl:element name="字:宽度">
+ <xsl:attribute name="uof:locID">t0150</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ç»å¯¹å€¼ 相对值</xsl:attribute>
+ <xsl:variable name="sn">
+ <xsl:number from="/office:document/office:body/office:text" level="single" count="table:table-cell" format="1"/>
+ </xsl:variable>
+ <xsl:variable name="sn1">
+ <xsl:choose>
+ <xsl:when test="../../table:table-column[number($sn)]/@table:style-name">
+ <xsl:value-of select="$sn"/>
+ </xsl:when>
+ <xsl:when test=" name(../..)='table:table-header-rows' and ../../../table:table-column[number($sn)]/@table:style-name">
+ <xsl:value-of select="$sn"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'1'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="KuanDu">
+ <xsl:choose>
+ <xsl:when test=" name(../..)='table:table-header-rows' and ../../../table:table-column[number($sn)]/@table:style-name">
+ <xsl:value-of select="../../../table:table-column[number($sn1)]/@table:style-name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="../../table:table-column[number($sn1)]/@table:style-name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="å­—:ç»å¯¹å€¼"><xsl:value-of select="substring-before(key('set_colWidth',$KuanDu)/style:table-column-properties/@style:column-width,$ooUnit)"/></xsl:attribute>
+ <xsl:if test="key('set_colWidth',$KuanDu)/style:table-column-properties/@style:rel-column-width">
+ <xsl:attribute name="字:相对值"><xsl:value-of select="substring-before(key('set_colWidth',$KuanDu)/style:table-column-properties/@style:rel-column-width,'*')"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="@table:number-columns-spanned">
+ <xsl:element name="字:跨列">
+ <xsl:attribute name="uof:locID">t0156</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="@table:number-columns-spanned"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:for-each select="key('set_styleStyle',$StyleName)">
+ <xsl:element name="å­—:å•å…ƒæ ¼è¾¹è·">
+ <xsl:attribute name="uof:locID">t0151</xsl:attribute>
+ <xsl:attribute name="uof:attrList">上 å·¦ å³ ä¸‹</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="style:table-cell-properties/@fo:padding">
+ <xsl:attribute name="字:上"><xsl:value-of select="substring-before(style:table-cell-properties/@fo:padding,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="å­—:å·¦"><xsl:value-of select="substring-before(style:table-cell-properties/@fo:padding,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="å­—:å³"><xsl:value-of select="substring-before(style:table-cell-properties/@fo:padding,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="字:下"><xsl:value-of select="substring-before(style:table-cell-properties/@fo:padding,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="字:上"><xsl:value-of select="substring-before(style:table-cell-properties/@fo:padding-top,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="å­—:å·¦"><xsl:value-of select="substring-before(style:table-cell-properties/@fo:padding-left,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="å­—:å³"><xsl:value-of select="substring-before(style:table-cell-properties/@fo:padding-right,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="字:下"><xsl:value-of select="substring-before(style:table-cell-properties/@fo:padding-bottom,$uofUnit)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="style:table-cell-properties/@fo:border or style:table-cell-properties/@fo:border-top or style:table-cell-properties/@fo:border-bottom or style:table-cell-properties/@fo:border-left or style:table-cell-properties/@fo:border-right or style:table-cell-properties/@style:shadow">
+ <xsl:element name="字:边框">
+ <xsl:attribute name="uof:locID">t0152</xsl:attribute>
+ <xsl:for-each select="style:table-cell-properties">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:table-cell-properties/style:background-image/office:binary-data or style:table-cell-properties/@fo:background-color">
+ <å­—:å¡«å…… uof:locID="t0153">
+ <xsl:for-each select="style:table-cell-properties">
+ <xsl:call-template name="图:填充"/>
+ </xsl:for-each>
+ </å­—:å¡«å……>
+ </xsl:if>
+ <å­—:垂直对é½æ–¹å¼ uof:locID="t0154">
+ <xsl:choose>
+ <xsl:when test="style:table-cell-properties/@style:vertical-align='middle'">center</xsl:when>
+ <xsl:when test="style:table-cell-properties/@style:vertical-align='bottom'">bottom</xsl:when>
+ <xsl:otherwise>top</xsl:otherwise>
+ </xsl:choose>
+ </å­—:垂直对é½æ–¹å¼>
+ <xsl:element name="å­—:自动æ¢è¡Œ">
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0157</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="字:适应文字">
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0158</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:key name="bpath" match="//office:document/office:body/office:text/text:p/text:span" use="@text:style-name"/>
+ <xsl:template name="å­—:å¥å±žæ€§">
+ <xsl:element name="字:字体">
+ <xsl:attribute name="uof:locID">t0088</xsl:attribute>
+ <xsl:attribute name="uof:attrList">西文字体引用 中文字体引用 特殊字体引用 西文绘制 å­—å· ç›¸å¯¹å­—å· é¢œè‰²</xsl:attribute>
+ <xsl:if test="contains(@style:parent-style-name,'Header') or contains(@style:parent-style-name,'Foot') or contains(@style:parent-style-name,'Endnote')">
+ <xsl:attribute name="å­—:å­—å·">9</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:font-size or style:text-properties/@style:font-size-asian or style:text-properties/@style:font-size-complex">
+ <xsl:choose>
+ <xsl:when test="contains(style:text-properties/@fo:font-size,'%') or contains(style:text-properties/@style:font-size-asian,'%')">
+ <xsl:attribute name="å­—:相对字å·"><xsl:choose><xsl:when test="style:text-properties/@fo:font-size"><xsl:value-of select="substring-before(style:text-properties/@fo:font-size,'%')"/></xsl:when><xsl:when test="style:text-properties/@style:font-size-asian"><xsl:value-of select="substring-before(style:text-properties/@style:font-size-asian,'%')"/></xsl:when></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:å­—å·"><xsl:choose><xsl:when test="style:text-properties/@fo:font-size"><xsl:value-of select="substring-before(style:text-properties/@fo:font-size,'pt')"/></xsl:when><xsl:when test="style:text-properties/@style:font-size-asian"><xsl:value-of select="substring-before(style:text-properties/@style:font-size-asian,'pt')"/></xsl:when><xsl:when test="style:text-properties/@style:font-size-complex"><xsl:value-of select="substring-before(style:text-properties/@style:font-size-complex,'pt')"/></xsl:when></xsl:choose></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:font-name">
+ <xsl:variable name="xiwen" select="style:text-properties/@style:font-name"/>
+ <xsl:attribute name="字:西文字体引用"><xsl:value-of select="translate($xiwen,' ','_')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:font-name-asian">
+ <xsl:attribute name="字:中文字体引用"><xsl:value-of select="style:text-properties/@style:font-name-asian"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select="style:text-properties/@fo:color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="style:text-properties/@fo:background-color and not(style:text-properties/@style:text-background-color='transparent')">
+ <xsl:element name="å­—:å¡«å……">
+ <xsl:attribute name="uof:locID">t0093</xsl:attribute>
+ <xsl:element name="图:图案">
+ <xsl:attribute name="uof:locID">g0036</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 图形引用 å‰æ™¯è‰² 背景色</xsl:attribute>
+ <xsl:if test="style:text-properties/@fo:background-color">
+ <xsl:attribute name="图:å‰æ™¯è‰²"><xsl:choose><xsl:when test="style:text-properties/@fo:background-color='transparent'">auto</xsl:when><xsl:otherwise><xsl:value-of select="style:text-properties/@fo:background-color"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:font-weight or style:text-properties/@style:font-weight-asian">
+ <xsl:element name="字:粗体">
+ <xsl:attribute name="uof:locID">t0089</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:text-properties/@style:font-weight-asian='bold' or style:text-properties/@fo:font-weight='bold'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:font-style or style:text-properties/@style:font-style-asian">
+ <xsl:element name="字:斜体">
+ <xsl:attribute name="uof:locID">t0090</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:text-properties/@fo:font-style='italic' or style:text-properties/@style:font-style-asian='italic'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:background-color|style:text-properties/@style:text-background-color">
+ <xsl:element name="å­—:çªå‡ºæ˜¾ç¤º">
+ <xsl:attribute name="字:颜色"><xsl:choose><xsl:when test="style:text-properties/@fo:background-color='transparent' or style:text-properties/@style:text-background-color='transparent'">auto</xsl:when><xsl:otherwise><xsl:value-of select="style:text-properties/@fo:background-color|style:text-properties/@style:text-background-color"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0091</xsl:attribute>
+ <xsl:attribute name="uof:attrList">颜色</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-line-through-style">
+ <xsl:element name="字:删除线">
+ <xsl:attribute name="uof:locID">t0094</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:call-template name="uof:删除线类型"><xsl:with-param name="lineType" select="style:text-properties/@style:text-line-through-style"/></xsl:call-template></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-underline-style">
+ <xsl:element name="字:下划线">
+ <xsl:attribute name="uof:locID">t0095</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 颜色 字下划线</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:call-template name="uof:线型类型"/></xsl:attribute>
+ <xsl:if test="style:text-properties/@style:text-underline-color">
+ <xsl:attribute name="字:颜色"><xsl:choose><xsl:when test="style:text-properties/@style:text-underline-color='font-color'">auto</xsl:when><xsl:otherwise><xsl:value-of select="style:text-properties/@style:text-underline-color"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:text-shadow">
+ <xsl:element name="字:阴影">
+ <xsl:attribute name="uof:locID">t0100</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:choose><xsl:when test="style:text-properties/@fo:text-shadow='none'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-emphasize">
+ <xsl:element name="å­—:ç€é‡å·">
+ <xsl:attribute name="uof:locID">t0096</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 颜色 å­—ç€é‡å·</xsl:attribute>
+ <xsl:attribute name="å­—:类型"><xsl:call-template name="uof:ç€é‡å·ç±»åž‹"><xsl:with-param name="te" select="style:text-properties/@style:text-emphasize"/></xsl:call-template></xsl:attribute>
+ <xsl:if test="style:text-properties/@fo:color">
+ <xsl:attribute name="字:颜色"><xsl:value-of select="style:text-properties/@fo:color"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@text:display">
+ <xsl:element name="å­—:éšè—文字">
+ <xsl:attribute name="uof:locID">t0097</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-outline">
+ <xsl:element name="字:空心">
+ <xsl:attribute name="uof:locID">t0098</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值"><xsl:value-of select="style:text-properties/@style:text-outline"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:font-relief">
+ <xsl:element name="字:浮雕">
+ <xsl:attribute name="uof:locID">t0099</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:choose><xsl:when test="style:text-properties/@style:font-relief='embossed'">emboss</xsl:when><xsl:when test="style:text-properties/@style:font-relief='engraved'">engrave</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:text-transform or style:text-properties/@fo:font-variant">
+ <xsl:element name="字:醒目字体">
+ <xsl:attribute name="uof:locID">t0101</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型</xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:choose><xsl:when test="style:text-properties/@fo:text-transform='uppercase'">uppercase</xsl:when><xsl:when test="style:text-properties/@fo:text-transform='lowercase'">lowercase</xsl:when><xsl:when test="style:text-properties/@fo:text-transform='capitalize'">capital</xsl:when><xsl:when test="style:text-properties/@fo:font-variant='small-caps'">small-caps</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-position">
+ <xsl:element name="å­—:ä½ç½®">
+ <xsl:attribute name="uof:locID">t0102</xsl:attribute>
+ <xsl:variable name="aa">
+ <xsl:value-of select="style:text-properties/@style:text-position"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($aa,'sub')">
+ <xsl:value-of select="substring-before($aa,' ')"/>
+ </xsl:when>
+ <xsl:when test="contains($aa,'super')">
+ <xsl:value-of select="substring-before($aa,' ')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate($aa,'%','')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:text-scale">
+ <xsl:element name="字:缩放">
+ <xsl:attribute name="uof:locID">t0103</xsl:attribute>
+ <xsl:variable name="scale" select="style:text-properties/@style:text-scale"/>
+ <xsl:choose>
+ <xsl:when test="contains($scale,'%')">
+ <xsl:value-of select="substring-before($scale,'%')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="style:text-properties/@style:text-scale"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@fo:letter-spacing">
+ <xsl:element name="å­—:字符间è·">
+ <xsl:attribute name="uof:locID">t0104</xsl:attribute>
+ <xsl:value-of select="substring-before(style:text-properties/@fo:letter-spacing,$uofUnit)"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="style:text-properties/@style:letter-kerning">
+ <xsl:element name="å­—:调整字间è·">
+ <xsl:variable name="tt" select="style:text-properties/@style:letter-kerning"/>
+ <xsl:attribute name="uof:locID">t0105</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$tt='true'">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="å­—:字符对é½ç½‘æ ¼">
+ <xsl:attribute name="字:值">false</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0106</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="uof:线型类型">
+ <xsl:variable name="spath" select="style:text-properties/@style:text-underline-style"/>
+ <xsl:variable name="wpath" select="style:text-properties/@style:text-underline-width"/>
+ <xsl:variable name="tpath" select="style:text-properties/@style:text-underline-type"/>
+ <xsl:choose>
+ <xsl:when test="$spath='solid' and not($tpath='double' ) and $wpath='auto' ">single</xsl:when>
+ <xsl:when test="$spath='solid' and $tpath='double' and $wpath='auto' ">double</xsl:when>
+ <xsl:when test="$spath='solid' and not($tpath='double' )and $wpath='bold' ">thick</xsl:when>
+ <xsl:when test="$spath='dotted' and not($tpath='double' )and $wpath='auto' ">dotted</xsl:when>
+ <xsl:when test="$spath='dotted' and not($tpath='double' )and $wpath='bold' ">dotted-heavy</xsl:when>
+ <xsl:when test="$spath='dash' and not($tpath='double' )and $wpath='auto' ">dash</xsl:when>
+ <xsl:when test="$spath='dash' and not($tpath='double' )and $wpath='bold' ">dashed-heavy</xsl:when>
+ <xsl:when test="$spath='long-dash' and not($tpath='double' )and $wpath='auto' ">dash-long</xsl:when>
+ <xsl:when test="$spath='long-dash' and not($tpath='double' )and $wpath='bold' ">dash-long-heavy</xsl:when>
+ <xsl:when test="$spath='dot-dash' and not($tpath='double' )and $wpath='auto' ">dot-dash</xsl:when>
+ <xsl:when test="$spath='dot-dash' and not($tpath='double' )and $wpath='bold' ">dash-dot-heavy</xsl:when>
+ <xsl:when test="$spath='dot-dot-dash' and not($tpath='double' )and $wpath='auto' ">dot-dot-dash</xsl:when>
+ <xsl:when test="$spath='dot-dot-dash' and not($tpath='double' )and $wpath='bold' ">dash-dot-dot-heavy</xsl:when>
+ <xsl:when test="$spath='wave' and not($tpath='double' )and $wpath='auto' ">wave</xsl:when>
+ <xsl:when test="$spath='wave' and not($tpath='double' )and $wpath='bold' ">wavy-heavy</xsl:when>
+ <xsl:when test="$spath='wave' and $tpath='double' and $wpath='auto' ">wavy-double</xsl:when>
+ <xsl:otherwise>none</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="uof:删除线类型">
+ <xsl:param name="lineType"/>
+ <xsl:variable name="tw" select="style:text-properties/@style:text-line-through-width"/>
+ <xsl:variable name="tt" select="style:text-properties/@style:text-line-through-text"/>
+ <xsl:variable name="ttp" select="style:text-properties/@style:text-line-through-type"/>
+ <xsl:choose>
+ <xsl:when test="$lineType='solid'and $ttp='double'">double</xsl:when>
+ <xsl:when test="$lineType='solid'and $tw='bold'">bold</xsl:when>
+ <xsl:when test="$lineType='solid'and $tt='X'">xl</xsl:when>
+ <xsl:when test="$lineType='solid'and $tt='/'">/l</xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="not($lineType='none') ">single</xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="uof:ç€é‡å·ç±»åž‹">
+ <xsl:param name="te"/>
+ <xsl:choose>
+ <xsl:when test="$te='disc above' ">disc above</xsl:when>
+ <xsl:when test="$te='circle above' ">circle above</xsl:when>
+ <xsl:when test="$te='dot above' ">dot above</xsl:when>
+ <xsl:when test="$te='accent above' ">accent above</xsl:when>
+ <xsl:when test="$te='dot below' ">dot</xsl:when>
+ <xsl:when test="$te='circle below' ">circle below</xsl:when>
+ <xsl:when test="$te='disc below' ">disc below</xsl:when>
+ <xsl:when test="$te='accent below' ">accent below</xsl:when>
+ <xsl:otherwise>none</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="uof:边框">
+ <xsl:choose>
+ <xsl:when test="@fo:border">
+ <xsl:call-template name="uof:左边框">
+ <xsl:with-param name="border" select="@fo:border"/>
+ </xsl:call-template>
+ <xsl:call-template name="uof:上边框">
+ <xsl:with-param name="border" select="@fo:border"/>
+ </xsl:call-template>
+ <xsl:call-template name="uof:å³è¾¹æ¡†">
+ <xsl:with-param name="border" select="@fo:border"/>
+ </xsl:call-template>
+ <xsl:call-template name="uof:下边框">
+ <xsl:with-param name="border" select="@fo:border"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="@fo:border-left or contains(substring-before(substring-after(@style:shadow,' '),' '),'-')">
+ <xsl:call-template name="uof:左边框">
+ <xsl:with-param name="border" select="@fo:border-left"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="@fo:border-top or contains(substring-after(substring-after(@style:shadow,' '),' '),'-')">
+ <xsl:call-template name="uof:上边框">
+ <xsl:with-param name="border" select="@fo:border-top"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="@fo:border-right or substring-before(substring-before(substring-after(@style:shadow,' '),' '),$ooUnit) &gt;0 or contains(substring-before(substring-after(@style:shadow,' '),' '),'+')">
+ <xsl:call-template name="uof:å³è¾¹æ¡†">
+ <xsl:with-param name="border" select="@fo:border-right"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="@fo:border-bottom or substring-before(substring-after(substring-after(@style:shadow,' '),' '),$ooUnit) &gt;0 or contains(substring-after(substring-after(@style:shadow,' '),' '),'+')">
+ <xsl:call-template name="uof:下边框">
+ <xsl:with-param name="border" select="@fo:border-bottom"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="uof:左边框">
+ <xsl:param name="border"/>
+ <xsl:element name="uof:å·¦">
+ <xsl:attribute name="uof:locID">u0057</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$border!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),substring($ooUnit,1,2))"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
+ <xsl:if test="@fo:padding or @fo:padding-left">
+ <xsl:attribute name="uof:è¾¹è·"><xsl:choose><xsl:when test="@fo:padding-left"><xsl:value-of select="substring-before(@fo:padding-left,$ooUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="substring-before(@fo:padding,$ooUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="contains(substring-before(substring-after(@style:shadow,' '),' '),'-')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="uof:上边框">
+ <xsl:param name="border"/>
+ <xsl:element name="uof:上">
+ <xsl:attribute name="uof:locID">u0058</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$border!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),substring($ooUnit,1,2))"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
+ <xsl:if test="@fo:padding or @fo:padding-top">
+ <xsl:attribute name="uof:è¾¹è·"><xsl:choose><xsl:when test="@fo:padding-top"><xsl:value-of select="substring-before(@fo:padding-top,$ooUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="substring-before(@fo:padding,$ooUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="contains(substring-after(substring-after(@style:shadow,' '),' '),'-')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="uof:å³è¾¹æ¡†">
+ <xsl:param name="border"/>
+ <xsl:element name="uof:å³">
+ <xsl:attribute name="uof:locID">u0059</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$border!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),substring($ooUnit,1,2))"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
+ <xsl:if test="@fo:padding or @fo:padding-right">
+ <xsl:attribute name="uof:è¾¹è·"><xsl:choose><xsl:when test="@fo:padding-right"><xsl:value-of select="substring-before(@fo:padding-right,$ooUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="substring-before(@fo:padding,$ooUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="substring-before(substring-before(substring-after(@style:shadow,' '),' '),$ooUnit) &gt;0 or contains(substring-before(substring-after(@style:shadow,' '),' '),'+')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="uof:下边框">
+ <xsl:param name="border"/>
+ <xsl:element name="uof:下">
+ <xsl:attribute name="uof:locID">u0060</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 宽度 è¾¹è· é¢œè‰² 阴影</xsl:attribute>
+ <xsl:attribute name="uof:类型"><xsl:choose><xsl:when test="$border!='none'"><xsl:choose><xsl:when test="substring-before(substring-after($border,' '),' ')='solid'">single</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='double'">double</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dashed'">dash</xsl:when><xsl:when test="substring-before(substring-after($border,' '),' ')='dotted'">dotted</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$border!='none'">
+ <xsl:attribute name="uof:宽度"><xsl:value-of select="substring-before(substring-before($border,' '),substring($ooUnit,1,2))"/></xsl:attribute>
+ <xsl:attribute name="uof:颜色"><xsl:value-of select="substring-after(substring-after($border,' '),' ')"/></xsl:attribute>
+ <xsl:if test="@fo:padding or @fo:padding-bottom">
+ <xsl:attribute name="uof:è¾¹è·"><xsl:choose><xsl:when test="@fo:padding-bottom"><xsl:value-of select="substring-before(@fo:padding-bottom,$ooUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="substring-before(@fo:padding,$ooUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="substring-before(substring-after(substring-after(@style:shadow,' '),' '),$ooUnit) &gt;0 or contains(substring-after(substring-after(@style:shadow,' '),' '),'+')">
+ <xsl:attribute name="uof:阴影">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:key name="geshi" match="//office:document/office:automatic-styles/number:date-style | //office:document/office:automatic-styles/number:time-style" use="@style:name"/>
+ <xsl:template name="inline-text">
+ <xsl:param name="pStyleName"/>
+ <xsl:param name="bText"/>
+ <xsl:apply-templates select="text()|textspan|jiaozhu|weizhu|office:annotation|text:sequence|text:date|text:time|text:page-number|text:page-count|text:subject|text:title|text:initial-creator|text:author-name|text:author-initials|text:file-name|text:change-start|text:change-end|text:change">
+ <xsl:with-param name="pStyleName" select="$pStyleName"/>
+ <xsl:with-param name="bText" select="$bText"/>
+ </xsl:apply-templates>
+ </xsl:template>
+ <xsl:template match="text:sequence">
+ <xsl:param name="tStyle"/>
+ <xsl:if test="@text:name='Illustration' or @text:name='Text' or @text:name='Drawing' or @text:name='Table'">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'seq'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:if test="$tStyle!=''">
+ <å­—:å¥å±žæ€§ å­—:å¼æ ·å¼•ç”¨="{$tStyle}" uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ </xsl:if>
+ <xsl:variable name="fmt">
+ <xsl:call-template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:with-param name="oo_format" select="@style:num-format"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="concat('SEQ ',@text:name,' \* ',$fmt,' \f ',@text:formula)"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="string(.)"/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="text:time">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'time'"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="timefmt">
+ <xsl:variable name="aa" select="@style:data-style-name"/>
+ <xsl:for-each select="key('geshi',$aa)/number:hours | key('geshi',$aa)/number:minutes | key('geshi',$aa)/number:am-pm | key('geshi',$aa)/number:seconds | key('geshi',$aa)/number:text">
+ <xsl:choose>
+ <xsl:when test="@number:style='long' ">
+ <xsl:if test="self::node( )[name(.)='number:hours']">HH</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:minutes']">MM</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:seconds']">SS</xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="self::node( )[name(.)='number:text']">
+ <xsl:value-of select="."/>
+ </xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:hours']">H</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:minutes']">M</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:seconds']">S</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:am-pm']">am/pm</xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="quote">"</xsl:variable>
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="concat('TIME \@ ',$quote,$timefmt,$quote)"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="string(.)"/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="text:date">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'date'"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="datefmt">
+ <xsl:variable name="bb" select="@style:data-style-name"/>
+ <xsl:for-each select="key('geshi',$bb)/number:year | key('geshi',$bb)/number:month | key('geshi',$bb)/number:day | key('geshi',$bb)/number:hours | key('geshi',$bb)/number:minutes | key('geshi',$bb)/number:seconds | key('geshi',$bb)/number:quarter | key('geshi',$bb)/number:day-of-week | key('geshi',$bb)/number:week-of-year | key('geshi',$bb)/number:text | key('geshi',$bb)/number:am-pm">
+ <xsl:choose>
+ <xsl:when test="@number:style='long' ">
+ <xsl:if test="self::node( )[name(.)='number:year']">yyyy</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:month']">MM</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:day']">dd</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:hours']">hh</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:minutes']">mm</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:seconds']">ss</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:quarter']">第QQ季度</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:day-of-week']">星期N</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:week-of-year']">WW</xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="self::node( )[name(.)='number:text']">
+ <xsl:value-of select="."/>
+ </xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:year']">yy</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:month']">M</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:day']">d</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:hours']">h</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:minutes']">m</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:seconds']">s</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:quarter']">Qå­£</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:day-of-week']">星期N</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:week-of-year']">WW</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:am-pm']">am/pm</xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="quote">"</xsl:variable>
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="concat('CREATEDATE \@ ',$quote,$datefmt,$quote)"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="string(.)"/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:param name="oo_format"/>
+ <xsl:choose>
+ <xsl:when test="$oo_format='1'">Arabic</xsl:when>
+ <xsl:when test="$oo_format='I'">ROMAN</xsl:when>
+ <xsl:when test="$oo_format='i'">roman</xsl:when>
+ <xsl:when test="$oo_format='A'">ALPHABETIC</xsl:when>
+ <xsl:when test="$oo_format='a'">alphabetic</xsl:when>
+ <xsl:when test="$oo_format='1, 2, 3, ...'">GB1</xsl:when>
+ <xsl:when test="$oo_format='â‘ , â‘¡, â‘¢, ...'">GB3</xsl:when>
+ <xsl:when test="$oo_format='一, 二, 三, ...'">CHINESENUM3</xsl:when>
+ <xsl:when test="$oo_format='壹, è´°, å, ...'">CHINESENUM2</xsl:when>
+ <xsl:when test="$oo_format='甲, 乙, 丙, ...'">ZODIAC1</xsl:when>
+ <xsl:when test="$oo_format='å­, 丑, 寅, ...'">ZODIAC2</xsl:when>
+ <xsl:otherwise>Arabic</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="text:page-number">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'page'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="fmt">
+ <xsl:call-template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:with-param name="oo_format" select="@style:num-format"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@style:num-format">
+ <xsl:value-of select="concat('PAGE \* ',$fmt)"/>
+ </xsl:when>
+ <xsl:otherwise>PAGE</xsl:otherwise>
+ </xsl:choose>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="string(.)"/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="text:page-count">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'numpages'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'or text:fixed='true'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="fmt">
+ <xsl:call-template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:with-param name="oo_format" select="@style:num-format"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@style:num-format">
+ <xsl:value-of select="concat('NumPages \* ',$fmt,' \* Upper')"/>
+ </xsl:when>
+ <xsl:otherwise>NumPages</xsl:otherwise>
+ </xsl:choose>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="string(.)"/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="text:initial-creator">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'author'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'or text:fixed='true'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <!--xsl:value-of select="concat('AUTHOR \* ','Caps',' \* MERGEFORMAT')"/-->
+ <xsl:value-of select="'AUTHOR'"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="string(.)"/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="text:author-name">
+ <xsl:param name="tStyle"/>
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'username'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'or text:fixed='true'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:if test="$tStyle!=''">
+ <å­—:å¥å±žæ€§ å­—:å¼æ ·å¼•ç”¨="{$tStyle}" uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ </xsl:if>
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">AUTHOR</字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">
+ <xsl:value-of select="."/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="text:author-initials">
+ <xsl:param name="tStyle"/>
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'userinitials'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'or text:fixed='true'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:if test="$tStyle!=''">
+ <å­—:å¥å±žæ€§ å­—:å¼æ ·å¼•ç”¨="{$tStyle}" uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ </xsl:if>
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">AUTHOR</字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">
+ <xsl:value-of select="."/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="text:title">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'title'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'or text:fixed='true'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="titlename" select="/office:document/office:meta/dc:title"/>
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">
+ <xsl:value-of select="concat('TITLE',' \* Upper')"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">
+ <xsl:value-of select="."/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="text:subject">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'subject'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'or text:fixed='true'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">
+ <xsl:value-of select="concat('SUBJECT \* ','Caps',' \* MERGEFORMAT')"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">
+ <xsl:value-of select="."/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="text:file-name">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'filename'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'or text:fixed='true'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">
+ <!--xsl:value-of select="concat('FILENAME \* ','Caps',' \* MERGEFORMAT')"/-->
+ <xsl:value-of select="concat('FILENAME',' \p')"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">
+ <xsl:value-of select="."/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="text:editing-duration">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'edittime'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'or text:fixed='true'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="timefmt">
+ <xsl:variable name="aa" select="@style:data-style-name"/>
+ <xsl:for-each select="key('geshi',$aa)/number:hours | key('geshi',$aa)/number:minutes | key('geshi',$aa)/number:am-pm | key('geshi',$aa)/number:seconds | key('geshi',$aa)/number:text">
+ <xsl:choose>
+ <xsl:when test="@number:style='long' ">
+ <xsl:if test="self::node( )[name(.)='number:hours']">HH</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:minutes']">MM</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:seconds']">SS</xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="self::node( )[name(.)='number:text']">
+ <xsl:value-of select="."/>
+ </xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:hours']">H</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:minutes']">M</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:seconds']">S</xsl:if>
+ <xsl:if test="self::node( )[name(.)='number:am-pm']">am/pm</xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="quote">"</xsl:variable>
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="concat('EDITTIME \@ ',$quote,$timefmt,$quote,' \* MERGEFORMAT ')"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="."/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:key name="path" match="//office:document/office:automatic-styles/style:style" use="@style:name"/>
+ <xsl:template name="text:table-of-content">
+ <xsl:element name="å­—:段è½">
+ <xsl:attribute name="uof:locID">t0051</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:element name="å­—:段è½å±žæ€§">
+ <xsl:attribute name="uof:locID">t0052</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="text:index-body/text:p/@text:style-name"/></xsl:attribute>
+ <xsl:element name="å­—:制表ä½è®¾ç½®">
+ <xsl:attribute name="uof:locID">t0067</xsl:attribute>
+ <xsl:element name="å­—:制表ä½">
+ <xsl:attribute name="uof:locID">t0068</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ä½ç½® 类型 å‰å¯¼ç¬¦ 制表ä½å­—符</xsl:attribute>
+ <xsl:variable name="aa" select="text:index-body/text:p/@text:style-name"/>
+ <xsl:attribute name="å­—:ä½ç½®"><xsl:value-of select="substring-before(key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:position,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:type"/></xsl:attribute>
+ <xsl:attribute name="å­—:制表ä½å­—符"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-text"/></xsl:attribute>
+ <xsl:if test="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-style">
+ <xsl:attribute name="å­—:å‰å¯¼ç¬¦"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-style"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="å­—:是å¦è¡Œé¦–标点压缩">
+ <xsl:attribute name="uof:locID">t0075</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="字:中文习惯首尾字符">
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0076</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'REF'"/></xsl:attribute>
+ <xsl:if test="@text:protected">
+ <xsl:attribute name="å­—:é”定"><xsl:value-of select="@text:protected"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="'TOC \o 1-10 \h \z'"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ <xsl:for-each select="text:index-body/text:index-title/text:p">
+ <xsl:element name="å­—:段è½" uof:locID="t0051" uof:attrList="标识符">
+ <xsl:element name="å­—:段è½å±žæ€§">
+ <xsl:attribute name="uof:locID">t0052</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:å¥">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </å­—:å¥å±žæ€§>
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="self::node()"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="text:index-body/text:p">
+ <xsl:element name="å­—:段è½" uof:locID="t0051" uof:attrList="标识符">
+ <xsl:element name="å­—:段è½å±žæ€§">
+ <xsl:attribute name="uof:locID">t0052</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ <xsl:element name="å­—:制表ä½è®¾ç½®">
+ <xsl:attribute name="uof:locID">t0067</xsl:attribute>
+ <xsl:element name="å­—:制表ä½">
+ <xsl:attribute name="uof:locID">t0068</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ä½ç½® 类型 å‰å¯¼ç¬¦</xsl:attribute>
+ <xsl:variable name="aa" select="@text:style-name"/>
+ <xsl:attribute name="å­—:ä½ç½®"><xsl:value-of select="substring-before(key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:position,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:type"/></xsl:attribute>
+ <xsl:attribute name="å­—:制表ä½å­—符"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-text"/></xsl:attribute>
+ <xsl:if test="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-style">
+ <xsl:attribute name="å­—:å‰å¯¼ç¬¦"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-style"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="å­—:是å¦è¡Œé¦–标点压缩">
+ <xsl:attribute name="uof:locID">t0075</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="字:中文习惯首尾字符">
+ <xsl:attribute name="字:值">true</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0076</xsl:attribute>
+ <xsl:attribute name="uof:attrList">值</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ <xsl:if test="self::node()/text:a">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:variable name="num">
+ <xsl:number from="/office:document/office:body/office:text" level="any" count="text:a"/>
+ </xsl:variable>
+ <xsl:element name="字:区域开始">
+ <xsl:attribute name="字:标识符"><xsl:value-of select="concat('hlnk',$num + 1)"/></xsl:attribute>
+ <xsl:attribute name="å­—:å称">Hyperlink</xsl:attribute>
+ <xsl:attribute name="字:类型">hyperlink</xsl:attribute>
+ <xsl:attribute name="uof:locID">t0121</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符 å称 类型</xsl:attribute>
+ </xsl:element>
+ <xsl:for-each select="text:a/node()">
+ <xsl:choose>
+ <xsl:when test="name(.)='text:tab-stop' or name(.)='text:tab'">
+ <xsl:element name="字:制表符" uof:locID="t0123"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <xsl:element name="å­—:区域结æŸ">
+ <xsl:attribute name="字:标识符引用"><xsl:value-of select="concat('hlnk',$num + 1)"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0122</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符引用</xsl:attribute>
+ </xsl:element>
+ <xsl:variable name="stt">
+ <xsl:value-of select="./text:a"/>
+ </xsl:variable>
+ <xsl:variable name="end">
+ <xsl:value-of select="."/>
+ </xsl:variable>
+ <xsl:variable name="bijiao">
+ <xsl:value-of select="substring-after($end,$stt)"/>
+ </xsl:variable>
+ <xsl:if test="not($bijiao='')">
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="$bijiao"/>
+ </xsl:element>
+ </xsl:if>
+ </å­—:å¥>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="text:alphabetical-index">
+ <xsl:element name="å­—:段è½">
+ <xsl:attribute name="uof:locID">t0051</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:element name="å­—:段è½å±žæ€§">
+ <xsl:attribute name="uof:locID">t0052</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="text:index-body/text:p/@text:style-name"/></xsl:attribute>
+ <xsl:element name="å­—:制表ä½è®¾ç½®">
+ <xsl:attribute name="uof:locID">t0067</xsl:attribute>
+ <xsl:element name="å­—:制表ä½">
+ <xsl:attribute name="uof:locID">t0068</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ä½ç½® 类型 å‰å¯¼ç¬¦ 制表ä½å­—符</xsl:attribute>
+ <xsl:variable name="aa" select="text:index-body/text:p/@text:style-name"/>
+ <xsl:attribute name="å­—:ä½ç½®"><xsl:value-of select="substring-before(key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:position,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:type"/></xsl:attribute>
+ <xsl:attribute name="å­—:制表ä½å­—符"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-text"/></xsl:attribute>
+ <xsl:if test="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-style">
+ <xsl:attribute name="å­—:å‰å¯¼ç¬¦"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-style"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'INDEX'"/></xsl:attribute>
+ <xsl:if test="@text:protected">
+ <xsl:attribute name="å­—:é”定"><xsl:value-of select="@text:protected"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串>
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="'TOC \o 1-10 \h \z'"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ <xsl:for-each select="text:index-body/text:index-title/text:p">
+ <xsl:element name="å­—:段è½" uof:locID="t0051" uof:attrList="标识符">
+ <xsl:element name="å­—:段è½å±žæ€§">
+ <xsl:attribute name="uof:locID">t0052</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="å­—:å¥">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ </å­—:å¥å±žæ€§>
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="self::node()"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="text:index-body/text:p">
+ <xsl:element name="å­—:段è½" uof:locID="t0051" uof:attrList="标识符">
+ <xsl:element name="å­—:段è½å±žæ€§">
+ <xsl:attribute name="uof:locID">t0052</xsl:attribute>
+ <xsl:attribute name="uof:attrList">å¼æ ·å¼•ç”¨</xsl:attribute>
+ <xsl:attribute name="å­—:å¼æ ·å¼•ç”¨"><xsl:value-of select="@text:style-name"/></xsl:attribute>
+ <xsl:element name="å­—:制表ä½è®¾ç½®">
+ <xsl:attribute name="uof:locID">t0067</xsl:attribute>
+ <xsl:element name="å­—:制表ä½">
+ <xsl:attribute name="uof:locID">t0068</xsl:attribute>
+ <xsl:attribute name="uof:attrList">ä½ç½® 类型 å‰å¯¼ç¬¦ 制表ä½å­—符</xsl:attribute>
+ <xsl:variable name="aa" select="@text:style-name"/>
+ <xsl:attribute name="å­—:ä½ç½®"><xsl:value-of select="substring-before(key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:position,$ooUnit)"/></xsl:attribute>
+ <xsl:attribute name="字:类型"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:type"/></xsl:attribute>
+ <xsl:attribute name="å­—:制表ä½å­—符"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-text"/></xsl:attribute>
+ <xsl:if test="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-style">
+ <xsl:attribute name="å­—:å‰å¯¼ç¬¦"><xsl:value-of select="key('path',$aa)/style:paragraph-properties/style:tab-stops/style:tab-stop/@style:leader-style"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ <xsl:for-each select="node()">
+ <å­—:å¥ uof:locID="t0085">
+ <xsl:choose>
+ <xsl:when test="name(.)='text:tab-stop' or name(.)='text:tab'">
+ <xsl:element name="字:制表符" uof:locID="t0123"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="字:文本串">
+ <xsl:attribute name="uof:locID">t0109</xsl:attribute>
+ <xsl:attribute name="uof:attrList">标识符</xsl:attribute>
+ <xsl:value-of select="."/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </å­—:å¥>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="ooæ•°å­—æ ¼å¼">
+ <xsl:param name="oo_format"/>
+ <xsl:choose>
+ <xsl:when test="$oo_format='1'">decimal</xsl:when>
+ <xsl:when test="$oo_format='I'">upper-roman</xsl:when>
+ <xsl:when test="$oo_format='i'">lower-roman</xsl:when>
+ <xsl:when test="$oo_format='A'">upper-letter</xsl:when>
+ <xsl:when test="$oo_format='a'">lower-letter</xsl:when>
+ <xsl:when test="$oo_format='1, 2, 3, ...'">decimal-full-width</xsl:when>
+ <xsl:when test="$oo_format='â‘ , â‘¡, â‘¢, ...'">decimal-enclosed-circle</xsl:when>
+ <xsl:when test="$oo_format='一, 二, 三, ...'">chinese-counting</xsl:when>
+ <xsl:when test="$oo_format='壹, è´°, å, ...'">chinese-legal-simplified</xsl:when>
+ <xsl:when test="$oo_format='甲, 乙, 丙, ...'">ideograph-traditional</xsl:when>
+ <xsl:when test="$oo_format='å­, 丑, 寅, ...'">ideograph-zodiac</xsl:when>
+ <xsl:otherwise>decimal</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="图:填充">
+ <xsl:param name="style-name"/>
+ <xsl:choose>
+ <xsl:when test="style:background-image/office:binary-data">
+ <图:图片 uof:locID="g0035" uof:attrList="ä½ç½® 图形引用 类型 å称">
+ <xsl:attribute name="图:ä½ç½®"><xsl:choose><xsl:when test="not(style:background-image/@style:repeat)">tile</xsl:when><xsl:otherwise><xsl:choose><xsl:when test="style:background-image/@style:repeat = 'stretch'">stretch</xsl:when><xsl:when test="style:background-image/@style:repeat = 'repeat'">tile</xsl:when><xsl:when test="style:background-image/@style:repeat = 'no-repeat'">center</xsl:when></xsl:choose></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="图:图形引用"><xsl:value-of select="concat('background-image_',count(preceding::style:background-image))"/></xsl:attribute>
+ <xsl:attribute name="图:类型">png</xsl:attribute>
+ <xsl:attribute name="图:å称">background-image</xsl:attribute>
+ </图:图片>
+ </xsl:when>
+ <xsl:when test="@fo:background-color">
+ <图:颜色 uof:locID="g0034">
+ <xsl:choose>
+ <xsl:when test="@fo:background-color='transparent' ">auto</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@fo:background-color"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </图:颜色>
+ </xsl:when>
+ <xsl:when test="@draw:fill='gradient'">
+ </xsl:when>
+ <xsl:when test="@draw:fill='hatch'">
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="字:缩进类型">
+ <xsl:if test="@text:space-before or @fo:margin-left">
+ <å­—:å·¦ uof:locID="t0182">
+ <å­—:ç»å¯¹ uof:locID="t0185" uof:attrList="值">
+ <xsl:if test="@text:space-before">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(@text:space-before,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@fo:margin-left">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(@fo:margin-left,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ </å­—:ç»å¯¹>
+ </å­—:å·¦>
+ </xsl:if>
+ <xsl:if test="@text:min-label-width or @fo:margin-right">
+ <å­—:å³ uof:locID="t0183">
+ <å­—:ç»å¯¹ uof:locID="t0187" uof:attrList="值">
+ <xsl:if test="@text:min-label-width">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(@text:min-label-width,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@fo:margin-right">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(@fo:margin-right,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ </å­—:ç»å¯¹>
+ </å­—:å³>
+ </xsl:if>
+ <xsl:if test="@text:min-label-distance or @fo:text-indent">
+ <字:首行 uof:locID="t0184">
+ <å­—:ç»å¯¹ uof:locID="t0189" uof:attrList="值">
+ <xsl:if test="@text:min-label-distance">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(@text:min-label-distance,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@fo:text-indent">
+ <xsl:attribute name="字:值"><xsl:value-of select="substring-before(@fo:text-indent,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ </å­—:ç»å¯¹>
+ </字:首行>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="graphsize">
+ <xsl:param name="width"/>
+ <xsl:param name="Unitofsize"/>
+ <xsl:if test="$Unitofsize='pt'">
+ <xsl:choose>
+ <xsl:when test="(not($width&gt;1.42) and 0&lt;$width)">1</xsl:when>
+ <xsl:when test="(not($width&gt;2.84) and 1.42&lt;$width)">2</xsl:when>
+ <xsl:when test="(not($width&gt;4.26) and 2.84&lt;$width)">3</xsl:when>
+ <xsl:when test="(not($width&gt;5.68) and 4.26&lt;$width)">4</xsl:when>
+ <xsl:when test="(not($width&gt;7.10) and 5.68&lt;$width)">5</xsl:when>
+ <xsl:when test="(not($width&gt;8.52) and 7.10&lt;$width)">6</xsl:when>
+ <xsl:when test="(not($width&gt;9.94) and 8.52&lt;$width)">7</xsl:when>
+ <xsl:when test="(not($width&gt;11.36) and 9.94&lt;$width)">8</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$uofUnit='in'">
+ <xsl:choose>
+ <xsl:when test="(not($width&gt;0.02) and 0&lt;$width)">1</xsl:when>
+ <xsl:when test="(not($width&gt;0.04) and 0.02&lt;$width)">2</xsl:when>
+ <xsl:when test="(not($width&gt;0.06) and 0.04&lt;$width)">3</xsl:when>
+ <xsl:when test="(not($width&gt;0.08) and 0.06&lt;$width)">4</xsl:when>
+ <xsl:when test="(not($width&gt;0.10) and 0.08&lt;$width)">5</xsl:when>
+ <xsl:when test="(not($width&gt;0.12) and 0.10&lt;$width)">6</xsl:when>
+ <xsl:when test="(not($width&gt;0.14) and 0.12&lt;$width)">7</xsl:when>
+ <xsl:when test="(not($width&gt;0.16) and 0.14&lt;$width)">8</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$uofUnit='mm'">
+ <xsl:choose>
+ <xsl:when test="(not($width&gt;0.5) and 0&lt;$width) or $width=0.5">1</xsl:when>
+ <xsl:when test="(not($width&gt;1.0) and 0.5&lt;$width) or $width=1.0">2</xsl:when>
+ <xsl:when test="(not($width&gt;1.5) and 0.10&lt;$width) or $width=1.5">3</xsl:when>
+ <xsl:when test="(not($width&gt;2.0) and 1.5&lt;$width) or $width=2.0">4</xsl:when>
+ <xsl:when test="(not($width&gt;2.5) and 2.0&lt;$width) or $width=2.5">5</xsl:when>
+ <xsl:when test="(not($width&gt;3.0) and 2.5&lt;$width) or $width=3.0">6</xsl:when>
+ <xsl:when test="(not($width&gt;3.5) and 3.0&lt;$width) or $width=3.5">7</xsl:when>
+ <xsl:when test="(not($width&gt;4.0) and 3.5&lt;$width) or $width=4.0">8</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$uofUnit='cm'">
+ <xsl:choose>
+ <xsl:when test="(not($width&gt;0.05) and 0&lt;$width) or $width=0.05">1</xsl:when>
+ <xsl:when test="(not($width&gt;0.10) and 0.05&lt;$width) or $width=0.10">2</xsl:when>
+ <xsl:when test="(not($width&gt;0.15) and 0.10&lt;$width) or $width=0.15">3</xsl:when>
+ <xsl:when test="(not($width&gt;0.20) and 0.15&lt;$width) or $width=0.20">4</xsl:when>
+ <xsl:when test="(not($width&gt;0.25) and 0.20&lt;$width) or $width=0.25">5</xsl:when>
+ <xsl:when test="(not($width&gt;0.30) and 0.25&lt;$width) or $width=0.30">6</xsl:when>
+ <xsl:when test="(not($width&gt;0.35) and 0.30&lt;$width) or $width=0.35">7</xsl:when>
+ <xsl:when test="(not($width&gt;0.40) and 0.35&lt;$width) or $width=0.40">8</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="text:character-count">
+ <xsl:element name="字:域开始">
+ <xsl:attribute name="字:类型"><xsl:value-of select="'numchars'"/></xsl:attribute>
+ <xsl:attribute name="uof:locID">t0079</xsl:attribute>
+ <xsl:attribute name="uof:attrList">类型 é”定</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="text:fixed='1'or text:fixed='true'">
+ <xsl:attribute name="å­—:é”定">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="å­—:é”定">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="å­—:域代ç ">
+ <xsl:attribute name="uof:locID">t0080</xsl:attribute>
+ <å­—:æ®µè½ uof:locID="t0051" uof:attrList="标识符">
+ <å­—:å¥ uof:locID="t0085">
+ <å­—:å¥å±žæ€§ uof:locID="t0086" uof:attrList="å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="quote" select="'&quot;'"/>
+ <xsl:variable name="fmt">
+ <xsl:call-template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:with-param name="oo_format" select="@style:num-format"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">
+ <xsl:value-of select="concat('NUMCHARS \* ',$fmt,' \# ',$quote,0,$quote)"/>
+ </字:文本串>
+ </å­—:å¥>
+ </å­—:段è½>
+ </xsl:element>
+ <å­—:å¥ uof:locID="t0085">
+ <字:文本串 uof:locID="t0109" uof:attrList="标识符">
+ <xsl:value-of select="."/>
+ </字:文本串>
+ </å­—:å¥>
+ <xsl:element name="å­—:域结æŸ">
+ <xsl:attribute name="uof:locID">t0081</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <!-- measure_conversion.xsl Begin-->
+ <!--xsl:param name="dpi" select="111"/>
+ <xsl:param name="centimeter-in-mm" select="10"/>
+ <xsl:param name="inch-in-mm" select="25.4"/>
+ <xsl:param name="didot-point-in-mm" select="0.376065"/>
+ <xsl:param name="pica-in-mm" select="4.2333333"/>
+ <xsl:param name="point-in-mm" select="0.3527778"/>
+ <xsl:param name="twip-in-mm" select="0.017636684"/>
+ <xsl:param name="pixel-in-mm" select="$inch-in-mm div $dpi"/-->
+ <!-- ***** MEASUREMENT CONVERSIONS *****
+ PARAM 'value'
+ The measure to be converted.
+ The current measure is judged by a substring (e.g. 'mm', 'cm', 'in', 'pica'...)
+ directly added to the number.
+
+ PARAM 'rounding-factor'
+ Is used for the rounding of decimal places.
+ The parameter number is the product of 1 and some '10', where
+ every zero represents a decimal place.
+
+ For example, providing as parameter:
+ <xsl:param name="rounding-factor" select="10000" />
+ Gives by default four decimal places.
+
+ To round two decimal places, basically the following is done:
+ <xsl:value-of select="round(100 * value) div 100"/>
+
+ RETURN The converted number, by default rounded to four decimal places.
+ In case the input measure could not be matched the same value is
+ returned and a warning message is written out.
+
+
+
+ MEASURE LIST:
+ * 1 milimeter (mm), the basic measure
+
+ * 1 centimeter (cm) = 10 mm
+
+ * 1 inch (in) = 25.4 mm
+ While the English have already seen the light (read: the metric system), the US
+ remains loyal to this medieval system.
+
+ * 1 point (pt) = 0.35277777.. mm
+ Sometimes called PostScript point (ppt), as when Adobe created PostScript, they added their own system of points.
+ There are exactly 72 PostScript points in 1 inch.
+
+ * 1 twip = twentieth of a (PostScript) point
+ A twip (twentieth of a point) is a 1/20th of a PostScript point, a traditional measure in printing.
+
+ * 1 didot point (dpt) = 0.376065 mm
+ Didot point after the French typographer Firmin Didot (1764-1836).
+
+ More details under
+ http://www.unc.edu/~rowlett/units/dictP.html:
+ "A unit of length used by typographers and printers. When printing was done
+ from hand-set metal type, one point represented the smallest element of type
+ that could be handled, roughly 1/64 inch. Eventually, the point was standardized
+ in Britain and America as exactly 1/72.27 = 0.013 837 inch, which is
+ about 0.35 mm (351.46 micrometers). In continental Europe, typographers
+ traditionally used a slightly larger point of 0.014 83 inch (about
+ 1/72 pouce, 0.377 mm, or roughly 1/67 English inch), called a Didot point
+ after the French typographer Firmin Didot (1764-1836). In the U.S.,
+ Adobe software defines the point to be exactly 1/72 inch (0.013 888 9 inch
+ or 0.352 777 8 millimeters) and TeX software uses a slightly smaller point
+ of 0.351 459 8035 mm. The German standards agency DIN has proposed that
+ all these units be replaced by multiples of 0.25 millimeters (1/101.6 inch).
+
+ * 1 pica = 4.233333 mm
+ 1/6 inch or 12 points
+
+ * 1 pixel (px) = 0.26458333.. mm (relative to 'DPI', here: 96 dpi)
+ Most pictures have the 96 dpi resolution, but the dpi variable may vary by stylesheet parameter
+
+
+ -->
+ <!-- changing measure to mm -->
+ <!--xsl:template name="convert2cm">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, $uofUnit)">
+ <xsl:value-of select="substring-before($value, $uofUnit)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $centimeter-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $centimeter-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $centimeter-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $centimeter-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $centimeter-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $centimeter-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'cm'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template-->
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml.xsl
new file mode 100644
index 000000000000..416581b5e3ed
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml.xsl
@@ -0,0 +1,218 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <xsl:output method="xml" indent="no" encoding="UTF-8" version="1.0" standalone="yes"/>
+ <xsl:include href="../../common/measure_conversion.xsl"/>
+ <xsl:include href="../common/ooo2ms_docpr.xsl"/>
+ <xsl:include href="ooo2wordml_settings.xsl"/>
+ <xsl:include href="ooo2wordml_border.xsl"/>
+ <xsl:include href="ooo2wordml_page.xsl"/>
+ <xsl:include href="ooo2wordml_text.xsl"/>
+ <xsl:include href="ooo2wordml_list.xsl"/>
+ <xsl:include href="ooo2wordml_field.xsl"/>
+ <xsl:include href="ooo2wordml_table.xsl"/>
+ <xsl:include href="ooo2wordml_draw.xsl"/>
+ <xsl:include href="ooo2wordml_path.xsl"/>
+ <xsl:key name="paragraph-style" match="style:style[@style:family='paragraph']" use="@style:name"/>
+ <xsl:key name="text-style" match="style:style[@style:family='text']" use="@style:name"/>
+ <xsl:key name="section-style" match="style:style[@style:family='section']" use="@style:name"/>
+ <xsl:key name="master-page" match="style:master-page" use="@style:name"/>
+ <xsl:key name="page-layout" match="style:page-layout" use="@style:name"/>
+ <xsl:key name="slave-style" match="style:style[string-length(normalize-space(@style:master-page-name)) &gt; 0]" use="@style:name"/>
+ <xsl:key name="list-style" match="office:styles/text:list-style | office:automatic-styles/text:list-style" use="@style:name"/>
+ <xsl:key name="graphics-style" match="style:style[@style:family='graphic']" use="@style:name"/>
+ <xsl:template match="/">
+ <xsl:apply-templates select="office:document"/>
+ </xsl:template>
+ <xsl:template match="office:document">
+ <xsl:processing-instruction name="mso-application">progid="Word.Document"</xsl:processing-instruction>
+ <xsl:variable name="embeddedObjPresent">
+ <xsl:choose>
+ <xsl:when test="//draw:object-ole[1]">yes</xsl:when>
+ <xsl:otherwise>no</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <w:wordDocument xml:space="preserve" w:embeddedObjPresent="{$embeddedObjPresent}">
+ <xsl:apply-templates select="office:meta"/>
+ <xsl:apply-templates select="office:font-face-decls"/>
+ <xsl:if test="office:styles/text:outline-style | office:styles/text:list-style | office:automatic-styles/text:list-style">
+ <xsl:call-template name="ListStyles"/>
+ </xsl:if>
+ <w:styles>
+ <xsl:apply-templates select="office:styles"/>
+ <xsl:apply-templates select="office:automatic-styles"/>
+ <xsl:call-template name="add_hyperlink_style"/>
+ <!--add for hyperlink character style G.Y.-->
+ <xsl:call-template name="add_comments_style"/>
+ <!--add for comments style G.Y.-->
+ </w:styles>
+ <xsl:call-template name="export-oledata"/>
+ <xsl:apply-templates select="office:settings"/>
+ <xsl:apply-templates select="office:body"/>
+ </w:wordDocument>
+ </xsl:template>
+ <xsl:template match="office:body">
+ <xsl:call-template name="page-background"/>
+ <xsl:apply-templates select="office:text"/>
+ </xsl:template>
+ <xsl:template match="office:font-face-decls">
+ <!-- get default font from default paragraph properties -->
+ <w:fonts>
+ <xsl:variable name="default-paragraph-properties" select="/office:document/office:styles/style:default-style[@style:family = 'paragraph']/style:paragraph-properties"/>
+ <w:defaultFonts w:ascii="{$default-paragraph-properties/@style:font-name}" w:h-ansi="{$default-paragraph-properties/@style:font-name}" w:fareast="{$default-paragraph-properties/@style:font-name-asian}" w:cs="{$default-paragraph-properties/@style:font-name-complex}"/>
+ <xsl:for-each select="style:font-face">
+ <w:font w:name="{@style:name}">
+ <xsl:if test="@style:font-charset = 'x-symbol'">
+ <w:charset w:val="02"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@style:font-family-generic = 'swiss'">
+ <w:family w:val="Swiss"/>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic = 'modern'">
+ <w:family w:val="Modern"/>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic = 'roman'">
+ <w:family w:val="Roman"/>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic = 'script'">
+ <w:family w:val="Script"/>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic = 'decorative'">
+ <w:family w:val="Decorative"/>
+ </xsl:when>
+ <xsl:when test="@style:font-family-generic = 'system'">
+ <w:family w:val="System"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:family w:val="System"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <w:pitch w:val="{@style:font-pitch}"/>
+ </w:font>
+ </xsl:for-each>
+ </w:fonts>
+ </xsl:template>
+ <xsl:template match="office:styles | office:automatic-styles">
+ <xsl:for-each select="*[(name()='style:style' or name()='style:default-style') and (@style:family= 'paragraph' or @style:family= 'text' or @style:family='table')]">
+ <xsl:variable name="style-name">
+ <xsl:choose>
+ <xsl:when test="name() = 'style:default-style'">
+ <xsl:value-of select="concat('default-', @style:family, '-style')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@style:name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <w:style w:styleId="{$style-name}">
+ <xsl:choose>
+ <xsl:when test="@style:family = 'paragraph'">
+ <xsl:attribute name="w:type">paragraph</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:family = 'text'">
+ <xsl:attribute name="w:type">character</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:family = 'table'">
+ <xsl:attribute name="w:type">table</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="name() = 'style:default-style'">
+ <xsl:attribute name="w:default">on</xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@style:parent-style-name">
+ <w:basedOn w:val="{@style:parent-style-name}"/>
+ </xsl:when>
+ <xsl:when test="name() = 'style:style' and @style:family= 'paragraph'">
+ <w:basedOn w:val="{concat('default-', @style:family, '-style')}"/>
+ </xsl:when>
+ </xsl:choose>
+ <w:name w:val="{$style-name}"/>
+ <xsl:if test="parent::office:automatic-styles">
+ <w:hidden w:val="on"/>
+ </xsl:if>
+ <xsl:if test="@style:next-style-name">
+ <w:next w:val="{@style:next-style-name}"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@style:family = 'paragraph'">
+ <xsl:apply-templates select="style:paragraph-properties" mode="paragraph"/>
+ </xsl:when>
+ <xsl:when test="@style:family = 'table'">
+ <w:tblPr>
+ <xsl:apply-templates select="style:table-properties" mode="table"/>
+ </w:tblPr>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:apply-templates select="style:text-properties" mode="character"/>
+ </w:style>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="office:text">
+ <w:body>
+ <xsl:apply-templates select="text:p | text:h | text:section | text:unordered-list | text:ordered-list | text:list |table:table"/>
+ <xsl:variable name="paragraph-heading-table" select=".//*[name() = 'text:p' or name() = 'text:h' or name() = 'table:table']"/>
+ <xsl:variable name="page" select="$paragraph-heading-table[key( 'slave-style', @*[name()='text:style-name' or name()='table:style-name'])]"/>
+ <w:sectPr>
+ <!--w:type w:val="continuous"/ -->
+ <xsl:apply-templates select="/office:document/office:styles/text:footnotes-configuration">
+ <xsl:with-param name="within-section" select="'yes'"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="/office:document/office:styles/text:endnotes-configuration">
+ <xsl:with-param name="within-section" select="'yes'"/>
+ </xsl:apply-templates>
+ <xsl:choose>
+ <xsl:when test="count($page) &gt; 0">
+ <xsl:apply-templates select="key('master-page', key( 'slave-style', $page[last()]/@*[name()='text:style-name' or name()='table:style-name'])/@style:master-page-name)"/>
+ <xsl:if test="key( 'slave-style', $page[last()]/@*[name()='text:style-name' or name()='table:style-name'])/style:paragraph-properties/@style:page-number">
+ <!-- in M$ word the header and footer associate with the w:sectPr, but in StarOffice writer the header and footer associate with the style:master-page -->
+ <xsl:variable name="pagenumber_start">
+ <xsl:value-of select=" key( 'slave-style', $page[last()]/@*[name()='text:style-name' or name()='table:style-name'])/style:paragraph-properties/@style:page-number"/>
+ </xsl:variable>
+ <xsl:if test=" number($pagenumber_start) &gt; 0 ">
+ <w:pgNumType w:start="{$pagenumber_start}"/>
+ </xsl:if>
+ <!-- comment out the below line to enable the header and footer display normally when style:page-number =0 -->
+ <!-- w:pgNumType w:start="{key( 'slave-style', $page[last()]/@*[name()='text:style-name' or name()='table:style-name'])/style:paragraph-properties/@style:page-number}"/-->
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="/office:document/office:master-styles/style:master-page[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$paragraph-heading-table[last()]/ancestor::text:section">
+ <xsl:apply-templates select="key('section-style',$paragraph-heading-table[last()]/ancestor::text:section[1]/@text:style-name)" mode="section"/>
+ </xsl:if>
+ </w:sectPr>
+ </w:body>
+ </xsl:template>
+ <xsl:template match="text:section">
+ <xsl:apply-templates select="text:p | text:h | text:section | text:unordered-list | text:ordered-list | text:list | table:table"/>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml_border.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml_border.xsl
new file mode 100644
index 000000000000..9eb2fd4dcbd1
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml_border.xsl
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <!-- multiple usage: get size, type, color of table-cell, paragraph, and page borders. -->
+ <xsl:template name="get-border-size">
+ <xsl:param name="border"/>
+ <xsl:param name="border-line-width"/>
+ <xsl:choose>
+ <xsl:when test="$border = 'none' or $border = 'hidden'">
+ <xsl:text>none;0</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="border-value">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$border"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="border-style">
+ <xsl:choose>
+ <xsl:when test="contains($border,'solid')">solid</xsl:when>
+ <xsl:when test="contains($border,'double')">double</xsl:when>
+ <xsl:otherwise>none</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- MS word and SO wirter borders Mapping
+ MS word Borders SO borders
+ w:val="single" w:sz="0" 0.05pt(0.002cm);solid
+ w:val="single" w:sz="12" 1.00pt(0.035cm);solid
+ w:val="single" w:sz="18" 2.50pt(0.088cm);solid
+ w:val="single" w:sz="36" 4.00pt(0.141cm);solid
+ w:val="single" w:sz="48" 5.00pt(0.176cm);solid
+ w:val="double" w:sz="2" 1.10pt(0.039cm);double
+ w:val="double" w:sz="6" 2.60pt(0.092cm);double
+ w:val="thin-thick-small-gap" w:sz="12" 3.00pt(0.105cm);double
+ w:val="thin-thick-large-gap" w:sz="18" 3.55pt(0.125cm);double
+ w:val="thick-thin-medium-gap" w:sz="24" 4.50pt(0.158cm);double
+ w:val="thin-thick-medium-gap" w:sz="24" 5.05pt(0.178cm);double
+ w:val="thin-thick-small-gap" w:sz="24" 6.00pt(0.211cm);double
+ w:val="thin-thick-medium-gap" w:sz="36 " 6.55pt(0.231cm);double
+ w:val="double" w:sz="18" 7.50pt(0.264cm);double
+ w:val="thin-thick-medium-gap" w:sz="48" 9.00pt(0.317cm);double;style:border-line-width="0.088cm 0.088cm 0.141cm"
+ w:val="double" w:sz="24" 9.00pt(0.317cm);double;style:border-line-width="0.141cm 0.088cm 0.088cm"
+ we adjust the criteria by adding about 1/2 range of this current criteria and next criteria. Gary. Yang -->
+ <xsl:variable name="microsoft-border-style-size">
+ <xsl:choose>
+ <xsl:when test=" $border-style = 'solid'">
+ <xsl:choose>
+ <xsl:when test="$border-value &lt;= 0.018">single;0</xsl:when>
+ <xsl:when test="$border-value &lt;= 0.055">single;12</xsl:when>
+ <xsl:when test="$border-value &lt;= 0.110">single;18</xsl:when>
+ <xsl:when test="$border-value &lt;= 0.155">single;36</xsl:when>
+ <xsl:when test="$border-value &lt;= 0.198">single;48</xsl:when>
+ <xsl:otherwise>single;48</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$border-style = 'double'">
+ <xsl:choose>
+ <xsl:when test="$border-value &lt; 0.064">double;2</xsl:when>
+ <xsl:when test="$border-value &lt; 0.098">double;6</xsl:when>
+ <xsl:when test="$border-value &lt; 0.115">thin-thick-small-gap;12</xsl:when>
+ <xsl:when test="$border-value &lt; 0.135">thin-thick-large-gap;18</xsl:when>
+ <xsl:when test="$border-value &lt; 0.168">thick-thin-medium-gap;24</xsl:when>
+ <xsl:when test="$border-value &lt; 0.190">thin-thick-medium-gap;24</xsl:when>
+ <xsl:when test="$border-value &lt; 0.221">thin-thick-small-gap;24</xsl:when>
+ <xsl:when test="$border-value &lt; 0.241">thin-thick-medium-gap;36</xsl:when>
+ <xsl:when test="$border-value &lt; 0.300">double;18</xsl:when>
+ <xsl:when test="$border-value &lt; 0.430">
+ <xsl:variable name="border-inner-line-value">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$border-line-width"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$border-inner-line-value &lt; 0.10">thin-thick-medium-gap;48</xsl:if>
+ <xsl:if test="$border-inner-line-value &gt; 0.10">double;24</xsl:if>
+ </xsl:when>
+ <xsl:otherwise>double;24</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>none;0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$microsoft-border-style-size"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- get bottom and right border style, size, color -->
+ <xsl:template name="get-border">
+ <xsl:param name="so-border"/>
+ <xsl:param name="so-border-line-width"/>
+ <xsl:param name="so-border-position"/>
+ <xsl:variable name="ms-style-width">
+ <xsl:call-template name="get-border-size">
+ <xsl:with-param name="border" select="$so-border"/>
+ <xsl:with-param name="border-line-width" select="$so-border-line-width"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$so-border-position = 'bottom' or $so-border-position = 'right'">
+ <!-- if border style is bottom or right border we need to change the thin-thick to thick-thin; Vice Versa -->
+ <xsl:choose>
+ <xsl:when test="substring-before($ms-style-width, '-')='thin'">
+ <xsl:attribute name="w:val"><xsl:value-of select="concat( 'thick-thin', substring-after(substring-before($ms-style-width, ';'), 'k' ))"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="substring-before($ms-style-width, '-')='thick'">
+ <xsl:attribute name="w:val"><xsl:value-of select="concat( 'thin-thick', substring-after(substring-before($ms-style-width, ';'), 'n' ))"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:val"><xsl:value-of select="substring-before($ms-style-width, ';')"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="w:sz"><xsl:value-of select="substring-after($ms-style-width,';')"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$so-border-position = 'top' or $so-border-position = 'left'">
+ <xsl:attribute name="w:val"><xsl:value-of select="substring-before($ms-style-width,';')"/></xsl:attribute>
+ <xsl:attribute name="w:sz"><xsl:value-of select="substring-after($ms-style-width,';')"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <!--get border color -->
+ <xsl:choose>
+ <xsl:when test="contains($so-border,'#')">
+ <xsl:attribute name="w:color"><xsl:value-of select="substring-after($so-border, '#')"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:color">auto</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml_custom_draw.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml_custom_draw.xsl
new file mode 100644
index 000000000000..0548e2525d46
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml_custom_draw.xsl
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <xsl:template name="ooo_custom_draw2ms_word_draw_map">
+ <xsl:param name="ooo_predefined_type"/>
+ <!-- all ooo draw names are get from EnhancedCustomShapeGeometry.idl-->
+ <xsl:choose>
+ <xsl:when test="$ooo_predefined_type = 'isosceles-triangle' ">
+ <xsl:value-of select=" '#_x0000_t5' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'right-triangle' ">
+ <xsl:value-of select=" '#_x0000_t6' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'trapezoid' ">
+ <xsl:value-of select=" '#_x0000_t8' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'diamond' ">
+ <xsl:value-of select=" '#_x0000_t4' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'hexagon' ">
+ <xsl:value-of select=" '#_x0000_t9' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'parallelogram' ">
+ <xsl:value-of select=" '#_x0000_t7' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'pentagon' ">
+ <xsl:value-of select=" '#_x0000_t56' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'octagon' ">
+ <xsl:value-of select=" '#_x0000_t10' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'cross' ">
+ <xsl:value-of select=" '#_x0000_t11' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'ring' ">
+ <xsl:value-of select=" '#_x0000_t23' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'block-arc' ">
+ <xsl:value-of select=" '#_x0000_t95' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'can' ">
+ <xsl:value-of select=" '#_x0000_t22' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'cube' ">
+ <xsl:value-of select=" '#_x0000_t16' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'paper' ">
+ <xsl:value-of select=" '#_x0000_t65' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'smiley' ">
+ <xsl:value-of select=" '#_x0000_t96' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'sun' ">
+ <xsl:value-of select=" '#_x0000_t183' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'moon' ">
+ <xsl:value-of select=" '#_x0000_t184' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'heart' ">
+ <xsl:value-of select=" '#_x0000_t74' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'forbidden' ">
+ <xsl:value-of select=" '#_x0000_t57' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'left-bracket' ">
+ <xsl:value-of select=" '#_x0000_t85' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'right-bracket' ">
+ <xsl:value-of select=" '#_x0000_t86' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'left-brace' ">
+ <xsl:value-of select=" '#_x0000_t87' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'right-brace' ">
+ <xsl:value-of select=" '#_x0000_t88' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'bracket-pair' ">
+ <xsl:value-of select=" '#_x0000_t185' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'brace-pair' ">
+ <xsl:value-of select=" '#_x0000_t186' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'quad-bevel' ">
+ <xsl:value-of select=" '#_x0000_t189' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'left-arrow' ">
+ <xsl:value-of select=" '#_x0000_t66' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'down-arrow' ">
+ <xsl:value-of select=" '#_x0000_t67' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'up-arrow' ">
+ <xsl:value-of select=" '#_x0000_t68' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'right-arrow' ">
+ <xsl:value-of select=" '#_x0000_t13' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'left-right-arrow' ">
+ <xsl:value-of select=" '#_x0000_t69' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'up-down-arrow' ">
+ <xsl:value-of select=" '#_x0000_t70' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'mso-spt89' ">
+ <xsl:value-of select=" '#_x0000_t89' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'quad-arrow' ">
+ <xsl:value-of select=" '#_x0000_t76' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'notched-right-arrow' ">
+ <xsl:value-of select=" '#_x0000_t94' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'pentagon-right' ">
+ <xsl:value-of select=" '#_x0000_t177' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'chevron' ">
+ <xsl:value-of select=" '#_x0000_t55' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'up-arrow-callout' ">
+ <xsl:value-of select=" '#_x0000_t79' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'down-arrow-callout' ">
+ <xsl:value-of select=" '#_x0000_t80' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'up-down-arrow-callout' ">
+ <xsl:value-of select=" '#_x0000_t82' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'circular-arrow' ">
+ <xsl:value-of select=" '#_x0000_t103' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-process' ">
+ <xsl:value-of select=" '#_x0000_t109' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-alternate-process' ">
+ <xsl:value-of select=" '#_x0000_t116' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-decision' ">
+ <xsl:value-of select=" '#_x0000_t110' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-data' ">
+ <xsl:value-of select=" '#_x0000_t111' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-predefined-process' ">
+ <xsl:value-of select=" '#_x0000_t112' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-internal-storage' ">
+ <xsl:value-of select=" '#_x0000_t113' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-document' ">
+ <xsl:value-of select=" '#_x0000_t114' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-multidocument' ">
+ <xsl:value-of select=" '#_x0000_t115' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-terminator' ">
+ <xsl:value-of select=" '#_x0000_t116' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-preparation' ">
+ <xsl:value-of select=" '#_x0000_t117' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-manual-input' ">
+ <xsl:value-of select=" '#_x0000_t118' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-manual-operation' ">
+ <xsl:value-of select=" '#_x0000_t119' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-connector' ">
+ <xsl:value-of select=" '#_x0000_t120' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-off-page-connector' ">
+ <xsl:value-of select=" '#_x0000_t177' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-card' ">
+ <xsl:value-of select=" '#_x0000_t121' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-punched-tape' ">
+ <xsl:value-of select=" '#_x0000_t122' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-summing-junction' ">
+ <xsl:value-of select=" '#_x0000_t123' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-or' ">
+ <xsl:value-of select=" '#_x0000_t124' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-collate' ">
+ <xsl:value-of select=" '#_x0000_t125' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-sort' ">
+ <xsl:value-of select=" '#_x0000_t126' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-extract' ">
+ <xsl:value-of select=" '#_x0000_t127' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-merge' ">
+ <xsl:value-of select=" '#_x0000_t128' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-stored-data' ">
+ <xsl:value-of select=" '#_x0000_t130' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-delay' ">
+ <xsl:value-of select=" '#_x0000_t135' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-sequential-access' ">
+ <xsl:value-of select=" '#_x0000_t131' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-magnetic-disk' ">
+ <xsl:value-of select=" '#_x0000_t132' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-direct-access-storage' ">
+ <xsl:value-of select=" '#_x0000_t133' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'flowchart-display' ">
+ <xsl:value-of select=" '#_x0000_t134' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'rectangular-callout' ">
+ <xsl:value-of select=" '#_x0000_t61' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'round-rectangular-callout' ">
+ <xsl:value-of select=" '#_x0000_t62' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'round-callout' ">
+ <xsl:value-of select=" '#_x0000_t63' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'cloud-callout' ">
+ <xsl:value-of select=" '#_x0000_t106' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'line-callout-1' ">
+ <xsl:value-of select=" '#_x0000_t50' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'line-callout-2' ">
+ <xsl:value-of select=" '#_x0000_t51' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'line-callout-3' ">
+ <xsl:value-of select=" '#_x0000_t47' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'bang' ">
+ <xsl:value-of select=" '#_x0000_t72' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'star4' ">
+ <xsl:value-of select=" '#_x0000_t187' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'star5' ">
+ <xsl:value-of select=" '#_x0000_t12' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'star8' ">
+ <xsl:value-of select=" '#_x0000_t58' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'star24' ">
+ <xsl:value-of select=" '#_x0000_t92' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'vertical-scroll' ">
+ <xsl:value-of select=" '#_x0000_t97' "/>
+ </xsl:when>
+ <xsl:when test="$ooo_predefined_type = 'horizontal-scroll' ">
+ <xsl:value-of select=" '#_x0000_t98' "/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml_draw.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml_draw.xsl
new file mode 100644
index 000000000000..b978e99d8882
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml_draw.xsl
@@ -0,0 +1,1769 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:ole="http://libreoffice.org/2011/xslt/ole" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow ole">
+ <xsl:include href="ooo2wordml_custom_draw.xsl"/>
+
+ <xsl:key name="stroke-dash-style" match="draw:stroke-dash" use="@draw:name"/>
+ <xsl:key name="fill-image" match="draw:fill-image" use="@draw:name"/>
+ <xsl:key name="draw-gradient" match="draw:gradient " use="@draw:name"/>
+ <xsl:template name="PageLevelGraphic">
+ <xsl:for-each select="//draw:*[@text:anchor-type='page']">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="draw:*">
+ <xsl:param name="TargetMeasure" select="'pt'"/>
+ <xsl:param name="x-adjust" select="0"/>
+ <xsl:param name="y-adjust" select="0"/>
+ <xsl:param name="force-draw" select="'false'"/>
+ <xsl:variable name="MeasureMark">
+ <xsl:choose>
+ <xsl:when test="$TargetMeasure = 'twip'"/>
+ <xsl:otherwise>
+ <xsl:value-of select="$TargetMeasure"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <!--
+ deal with captions and frames first. draw:text-box is a powerfull element in OOo, its GUI name is frame. And OOo use it to contain Captions
+ Since there is not a corresponding object in word, so we draw the text-box itself and its children separately. If it look like a Caption only frame
+ we'll adjust the text-box position to make it look pretty
+ -->
+ <!-- skip all not force draw children , must be first case -->
+ <xsl:when test="ancestor::draw:text-box and $force-draw='false' "/>
+ <xsl:when test="name() = 'draw:text-box'">
+ <!-- draw the text-box itself -->
+ <w:r>
+ <w:pict>
+ <xsl:variable name="text-y-adjust">
+ <xsl:choose>
+ <xsl:when test="count(text:p/draw:*) = 1 and (string-length(text:p/draw:*[position()=1]/@svg:x) =0 or number(concat('0',translate(text:p/draw:*[position()=1]/@svg:x,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','') ))=0) and (string-length(text:p/draw:*[position()=1]/@svg:y)=0 or number(concat('0',translate(text:p/draw:*[position()=1]/@svg:x,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','') ))=0 ) ">
+ <xsl:variable name="pic-height">
+ <xsl:choose>
+ <xsl:when test="name(text:p/draw:*[position()=1]) = 'draw:g' or name(text:p/draw:*[position()=1]) = 'draw:a'">
+ <xsl:variable name="BigestWindow">
+ <xsl:call-template name="GetWindowSize">
+ <xsl:with-param name="nodeSet" select="text:p/draw:*[position()=1]/draw:*"/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="number(substring-after($BigestWindow,'y2:')) - number(substring-after(substring-before($BigestWindow,';x2'), 'y1:')) + number(concat('0',translate($y-adjust,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','')))"/>
+ </xsl:when>
+ <xsl:when test="text:p/draw:*[position()=1]/@svg:height">
+ <xsl:call-template name="Add-With-Measure">
+ <xsl:with-param name="value1" select="text:p/draw:*[position()=1]/@svg:height"/>
+ <xsl:with-param name="value2" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="text:p/draw:*[position()=1]/@fo:min-height">
+ <xsl:call-template name="Add-With-Measure">
+ <xsl:with-param name="value1" select="text:p/draw:*[position()=1]/@fo:min-height"/>
+ <xsl:with-param name="value2" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="ancestor::draw:frame">
+ <xsl:call-template name="Add-With-Measure">
+ <xsl:with-param name="value1" select="ancestor::draw:frame/@svg:height"/>
+ <xsl:with-param name="value2" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="min-height">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="@fo:min-height"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$min-height - $pic-height &lt; 0.001">
+ <!-- If control goes here, it much like that this text-box is used for containt graphic caption only -->
+ <xsl:value-of select="$pic-height - 0.1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$y-adjust"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$y-adjust"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="shape-type">
+ <xsl:choose>
+ <xsl:when test="$text-y-adjust = $y-adjust">
+ <xsl:value-of select="'#_x0000_t202'"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="DrawElements">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$text-y-adjust"/>
+ <xsl:with-param name="force-draw" select="'true'"/>
+ <xsl:with-param name="shape-type" select="$shape-type"/>
+ </xsl:call-template>
+ </w:pict>
+ </w:r>
+ <!-- draw the real object first -->
+ <xsl:if test="./text:p/draw:*">
+ <xsl:apply-templates select="./text:p/draw:*">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="x-adjust">
+ <xsl:call-template name="Add-With-Measure">
+ <xsl:with-param name="value1" select="@svg:x"/>
+ <xsl:with-param name="value2" select="$x-adjust"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="y-adjust">
+ <xsl:call-template name="Add-With-Measure">
+ <xsl:with-param name="value1" select="@svg:y"/>
+ <xsl:with-param name="value2" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="force-draw" select="'true'"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:when>
+ <!-- end deal with captions and frames -->
+ <xsl:when test=" name() = 'draw:frame' ">
+ <xsl:variable name="BigestWindow">
+ <xsl:call-template name="GetWindowSize">
+ <xsl:with-param name="nodeSet" select="."/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:apply-templates select="draw:* ">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="x-adjust" select="concat(substring-after(substring-before($BigestWindow,';y1'), 'x1:'), 'in')"/>
+ <xsl:with-param name="y-adjust" select="concat(substring-after(substring-before($BigestWindow,';x2'), 'y1:') , 'in')"/>
+ <xsl:with-param name="force-draw" select="$force-draw"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="name() = 'draw:g'">
+ <w:r>
+ <w:pict>
+ <xsl:element name="v:group">
+ <xsl:variable name="BigestWindow">
+ <xsl:choose>
+ <xsl:when test="name() = 'draw:g'">
+ <xsl:call-template name="GetWindowSize">
+ <xsl:with-param name="nodeSet" select="draw:*"/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'draw:frame'">
+ <xsl:call-template name="GetWindowSize">
+ <xsl:with-param name="nodeSet" select="."/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="x">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="concat(substring-after(substring-before($BigestWindow,';y1'), 'x1:'), 'in')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="y">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="concat(substring-after(substring-before($BigestWindow,';x2'), 'y1:') , 'in')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="width">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="concat(number(substring-after(substring-before($BigestWindow,';y2'), 'x2:')) - number(substring-after(substring-before($BigestWindow,';y1'), 'x1:')) , 'in')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="height">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="concat(number(substring-after($BigestWindow,'y2:')) - number(substring-after(substring-before($BigestWindow,';x2'), 'y1:')), 'in')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="id">
+ <xsl:value-of select="generate-id()"/>
+ </xsl:attribute>
+ <xsl:variable name="absolute">
+ <xsl:choose>
+ <xsl:when test="ancestor::draw:a"/>
+ <xsl:when test="@text:anchor-type = 'as-char' or @text:anchor-type = 'to-char'"/>
+ <xsl:otherwise>position:absolute</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$TargetMeasure= 'pt'">
+ <xsl:attribute name="style">
+ <xsl:if test="string-length($absolute) &gt; 0">
+ <xsl:value-of select="concat($absolute, ';')"/>
+ </xsl:if>
+ <xsl:value-of select="concat('margin-left:',$x ,$MeasureMark,';margin-top:', $y,$MeasureMark ,';width:', $width ,$MeasureMark , ';height:', $height,$MeasureMark)"/>
+ </xsl:attribute>
+ <xsl:attribute name="coordorigin">
+ <xsl:choose>
+ <!-- if we are in a text-box then oo will use comparative positions on us-->
+ <xsl:when test="name() = 'draw:frame' ">
+ <xsl:value-of select=" '0 0' "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat(round($x * 20), ',' , round($y * 20))"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="coordsize">
+ <xsl:value-of select="concat(round($width * 20),',', round($height * 20) )"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$TargetMeasure= 'twip' ">
+ <xsl:attribute name="style">
+ <xsl:if test="string-length($absolute) &gt; 0">
+ <xsl:value-of select="concat($absolute, ';')"/>
+ </xsl:if>
+ <xsl:value-of select="concat('left:',$x ,$MeasureMark,';top:', $y,$MeasureMark ,';width:', $width ,$MeasureMark , ';height:', $height,$MeasureMark)"/>
+ </xsl:attribute>
+ <xsl:attribute name="coordorigin">
+ <xsl:choose>
+ <!-- if we are in a text-box then oo will use comparative positions on us-->
+ <xsl:when test="name() = 'draw:frame' ">
+ <xsl:value-of select=" '0 0' "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($x , ',' , $y)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="coordsize">
+ <xsl:value-of select="concat($width,',', $height )"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <!-- if we are in a text-box then oo will use comparative positions on us-->
+ <xsl:when test="ancestor::draw:text-box">
+ <xsl:apply-templates select="draw:*">
+ <xsl:with-param name="TargetMeasure" select="'twip'"/>
+ <xsl:with-param name="x-adjust" select="concat(substring-after(substring-before($BigestWindow,';y1'), 'x1:'), 'in')"/>
+ <xsl:with-param name="y-adjust" select="concat(substring-after(substring-before($BigestWindow,';x2'), 'y1:') , 'in')"/>
+ <xsl:with-param name="force-draw" select="$force-draw"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="draw:*">
+ <xsl:with-param name="TargetMeasure" select="'twip'"/>
+ <xsl:with-param name="force-draw" select="$force-draw"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </w:pict>
+ </w:r>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="name() = 'draw:a'">
+ <xsl:call-template name="export_hyoerlink">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ <xsl:with-param name="force-draw" select="$force-draw"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:r>
+ <w:pict>
+ <xsl:call-template name="DrawElements">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ <xsl:with-param name="force-draw" select="$force-draw"/>
+ </xsl:call-template>
+ </w:pict>
+ </w:r>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="GetWindowSize">
+ <xsl:param name="CurrPos" select="1"/>
+ <xsl:param name="nodeSet"/>
+ <xsl:param name="x-adjust" select="0"/>
+ <xsl:param name="y-adjust" select="0"/>
+ <xsl:variable name="CurrNodeWindow">
+ <xsl:call-template name="GetNodeWindow">
+ <xsl:with-param name="CurrNode" select=" $nodeSet[ $CurrPos ]"/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- if we got to the last node, return it directly, or return the max window of current one and follwing ones -->
+ <xsl:when test="$CurrPos = count($nodeSet)">
+ <xsl:value-of select="$CurrNodeWindow"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="CurrentWindow">
+ <xsl:variable name="FollowingWindow">
+ <xsl:call-template name="GetWindowSize">
+ <xsl:with-param name="nodeSet" select="$nodeSet"/>
+ <xsl:with-param name="CurrPos" select="$CurrPos + 1"/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="GetBigestWindows">
+ <xsl:with-param name="Window1" select="$CurrNodeWindow"/>
+ <xsl:with-param name="Window2" select="$FollowingWindow"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$CurrentWindow"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="GetNodeWindow">
+ <xsl:param name="CurrNode"/>
+ <xsl:param name="x-adjust" select="0"/>
+ <xsl:param name="y-adjust" select="0"/>
+ <xsl:choose>
+ <xsl:when test="name($CurrNode)='draw:g'">
+ <xsl:call-template name="GetWindowSize">
+ <xsl:with-param name="nodeSet" select="$CurrNode/draw:*"/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="x">
+ <xsl:call-template name="Add-With-Measure">
+ <xsl:with-param name="value1" select="$CurrNode/@svg:x"/>
+ <xsl:with-param name="value2" select="$x-adjust"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="y">
+ <xsl:call-template name="Add-With-Measure">
+ <xsl:with-param name="value1" select="$CurrNode/@svg:y"/>
+ <xsl:with-param name="value2" select="$y-adjust"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="width">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="$CurrNode/@svg:width"/>
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="height">
+ <xsl:choose>
+ <xsl:when test="$CurrNode/@svg:height">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="$CurrNode/@svg:height"/>
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$CurrNode/@fo:min-height">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="$CurrNode/@fo:min-height"/>
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat('x1:' , $x, ';y1:' , $y, ';x2:' , string($x + $width), ';y2:', string($y + $height) ) "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="GetBigestWindows">
+ <xsl:param name="Window1"/>
+ <xsl:param name="Window2"/>
+ <xsl:variable name="w1x1" select="substring-after( substring-before($Window1,';y1'),'x1:') "/>
+ <xsl:variable name="w2x1" select="substring-after( substring-before($Window2,';y1'),'x1:') "/>
+ <xsl:variable name="w1y1" select="substring-after( substring-before($Window1,';x2'),'y1:') "/>
+ <xsl:variable name="w2y1" select="substring-after( substring-before($Window2,';x2'),'y1:') "/>
+ <xsl:variable name="w1x2" select="substring-after( substring-before($Window1,';y2'),'x2:') "/>
+ <xsl:variable name="w2x2" select="substring-after( substring-before($Window2,';y2'),'x2:') "/>
+ <xsl:variable name="w1y2" select="substring-after( $Window1,';y2:') "/>
+ <xsl:variable name="w2y2" select="substring-after( $Window2,';y2:') "/>
+ <xsl:variable name="x1">
+ <xsl:choose>
+ <xsl:when test="$w1x1 &gt; $w2x1">
+ <xsl:value-of select="$w2x1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$w1x1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="y1">
+ <xsl:choose>
+ <xsl:when test="$w1y1 &gt; $w2y1">
+ <xsl:value-of select="$w2y1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$w1y1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="x2">
+ <xsl:choose>
+ <xsl:when test="$w1x2 &gt; $w2x2">
+ <xsl:value-of select="$w1x2"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$w2x2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="y2">
+ <xsl:choose>
+ <xsl:when test="$w1y2 &gt; $w2y2">
+ <xsl:value-of select="$w1y2"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$w2y2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat('x1:' , $x1 , ';y1:' , $y1 , ';x2:' , $x2, ';y2:' , $y2)"/>
+ </xsl:template>
+ <!-- convert percent value to x% numeric x/100 -->
+ <xsl:template name="ValueOfPercent">
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, '%')">
+ <xsl:value-of select="substring-before($value, '%') div 100"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="points2points">
+ <xsl:param name="input_points"/>
+ <xsl:param name="input_x"/>
+ <xsl:param name="input_y"/>
+ <xsl:param name="input_width"/>
+ <xsl:param name="input_height"/>
+ <xsl:param name="input_boxwidth"/>
+ <xsl:param name="input_boxheight"/>
+ <xsl:variable name="onepoint" select="substring($input_points,1,string-length($input_points) - string-length(substring-after($input_points,' ')) )"/>
+ <xsl:if test="substring-before($input_points,' ')">
+ <xsl:value-of select="round($input_x + (($input_boxwidth - number(substring-before($onepoint,','))) ) * $input_width div $input_boxwidth)"/>
+ <xsl:value-of select="'pt,'"/>
+ <xsl:value-of select="round($input_y + ((number(substring-after($onepoint,',')) ) ) * $input_height div $input_boxheight)"/>
+ <xsl:value-of select="'pt'"/>
+ </xsl:if>
+ <xsl:if test="string-length(substring($input_points,string-length($onepoint) + 1)) &gt; 0">
+ <xsl:value-of select="','"/>
+ <xsl:call-template name="points2points">
+ <xsl:with-param name="input_points" select="substring($input_points,string-length($onepoint) + 1)"/>
+ <xsl:with-param name="input_x" select="$input_x"/>
+ <xsl:with-param name="input_y" select="$input_y"/>
+ <xsl:with-param name="input_width" select="$input_width"/>
+ <xsl:with-param name="input_height" select="$input_height"/>
+ <xsl:with-param name="input_boxwidth" select="$input_boxwidth"/>
+ <xsl:with-param name="input_boxheight" select="$input_boxheight"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="path2path">
+ <xsl:param name="input_points"/>
+ <xsl:param name="x_or_y" select="'x'"/>
+ <xsl:param name="input_x"/>
+ <xsl:param name="input_y"/>
+ <xsl:param name="input_width"/>
+ <xsl:param name="input_height"/>
+ <xsl:param name="input_boxwidth"/>
+ <xsl:param name="input_boxheight"/>
+ <xsl:variable name="space-pos" select="string-length($input_points) - string-length(substring-after($input_points,' '))"/>
+ <xsl:variable name="minus-pos" select="string-length($input_points) - string-length(substring-after($input_points,'-'))"/>
+ <xsl:variable name="m-pos" select="string-length($input_points) - string-length(substring-after($input_points,'m'))"/>
+ <xsl:variable name="c-pos" select="string-length($input_points) - string-length(substring-after($input_points,'c'))"/>
+ <xsl:variable name="e-pos" select="string-length($input_points) - string-length(substring-after($input_points,'e'))"/>
+ <xsl:variable name="min1">
+ <xsl:choose>
+ <xsl:when test="$space-pos &lt; $minus-pos">
+ <xsl:value-of select="$space-pos"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$minus-pos"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="min2">
+ <xsl:choose>
+ <xsl:when test="$m-pos &lt; $min1">
+ <xsl:value-of select="$m-pos"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$min1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="min3">
+ <xsl:choose>
+ <xsl:when test="$c-pos &lt; $min2">
+ <xsl:value-of select="$c-pos"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$min2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="min4">
+ <xsl:choose>
+ <xsl:when test="$e-pos &lt; $min3">
+ <xsl:value-of select="$e-pos"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$min3"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="min-special-char-pos" select="$min4"/>
+ <xsl:variable name="special-char" select="substring($input_points,$min-special-char-pos,1)"/>
+ <xsl:variable name="one-value" select="substring($input_points,1,$min-special-char-pos - 1)"/>
+ <xsl:variable name="left-points" select="substring($input_points,$min-special-char-pos + 1)"/>
+ <xsl:if test="not($special-char = 'm')">
+ <xsl:if test="$x_or_y = 'x'">
+ <xsl:value-of select="round($input_x + $one-value * $input_width div $input_boxwidth)"/>
+ </xsl:if>
+ <xsl:if test="$x_or_y = 'y'">
+ <xsl:value-of select="round($input_y + $one-value * $input_height div $input_boxheight)"/>
+ </xsl:if>
+ </xsl:if>
+ <!-- output the separator-->
+ <xsl:choose>
+ <xsl:when test="$special-char = '-' or $special-char = ' ' ">
+ <xsl:value-of select="','"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$special-char"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="next-xy">
+ <xsl:if test="$x_or_y = 'x'">
+ <xsl:value-of select="'y'"/>
+ </xsl:if>
+ <xsl:if test="$x_or_y = 'y'">
+ <xsl:value-of select="'x'"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:if test="string-length($left-points) &gt; 0">
+ <xsl:call-template name="path2path">
+ <xsl:with-param name="input_points" select="$left-points"/>
+ <xsl:with-param name="x_or_y" select="$next-xy"/>
+ <xsl:with-param name="input_x" select="$input_x"/>
+ <xsl:with-param name="input_y" select="$input_y"/>
+ <xsl:with-param name="input_width" select="$input_width"/>
+ <xsl:with-param name="input_height" select="$input_height"/>
+ <xsl:with-param name="input_boxwidth" select="$input_boxwidth"/>
+ <xsl:with-param name="input_boxheight" select="$input_boxheight"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="get_dashstyle">
+ <xsl:param name="stroke-width" select="0.1"/>
+ <xsl:param name="style-name" select="@draw:style-name"/>
+ <xsl:variable name="graph-style" select="key('graphics-style', $style-name)/style:graphic-properties"/>
+ <xsl:variable name="dash-style" select="key('stroke-dash-style', $graph-style/@draw:stroke-dash)"/>
+ <xsl:variable name="stroke">
+ <xsl:choose>
+ <xsl:when test="$graph-style/@draw:stroke">
+ <xsl:value-of select="$graph-style/@draw:stroke"/>
+ </xsl:when>
+ <xsl:when test="$dash-style/@draw:stroke">
+ <xsl:value-of select="$dash-style/@draw:stroke"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$stroke = 'solid' ">
+ <xsl:value-of select="$stroke"/>
+ </xsl:when>
+ <xsl:when test="$stroke = 'dash'">
+ <xsl:variable name="dots1">
+ <xsl:choose>
+ <xsl:when test="$graph-style/@draw:dots1">
+ <xsl:value-of select="$graph-style/@draw:dots1"/>
+ </xsl:when>
+ <xsl:when test="$dash-style/@draw:dots1">
+ <xsl:value-of select="$dash-style/@draw:dots1"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="dots2">
+ <xsl:choose>
+ <xsl:when test="$graph-style/@draw:dots1">
+ <xsl:value-of select="$graph-style/@draw:dots2"/>
+ </xsl:when>
+ <xsl:when test="$dash-style/@draw:dots1">
+ <xsl:value-of select="$dash-style/@draw:dots2"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="dots1-length">
+ <xsl:choose>
+ <xsl:when test="$graph-style/@draw:dots1-length">
+ <xsl:value-of select="$graph-style/@draw:dots1-length"/>
+ </xsl:when>
+ <xsl:when test="$dash-style/@draw:dots1-length">
+ <xsl:value-of select="$dash-style/@draw:dots1-length"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="dots2-length">
+ <xsl:choose>
+ <xsl:when test="$graph-style/@draw:dots2-length">
+ <xsl:value-of select="$graph-style/@draw:dots2-length"/>
+ </xsl:when>
+ <xsl:when test="$dash-style/@draw:dots2-length">
+ <xsl:value-of select="$dash-style/@draw:dots2-length"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="distance">
+ <xsl:choose>
+ <xsl:when test="$graph-style/@draw:distance">
+ <xsl:value-of select="$graph-style/@draw:distance"/>
+ </xsl:when>
+ <xsl:when test="$dash-style/@draw:distance">
+ <xsl:value-of select="$dash-style/@draw:distance"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="dot1-step">
+ <xsl:choose>
+ <xsl:when test="contains($dots1-length,'%')">
+ <xsl:variable name="dots-percent">
+ <xsl:call-template name="ValueOfPercent">
+ <xsl:with-param name="value" select="$dots1-length"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="round($dots-percent)"/>
+ </xsl:when>
+ <xsl:when test="contains($dots1-length , 'in' ) and $stroke-width &gt; 0">
+ <xsl:value-of select="round( number(substring-before($dots1-length,'in' )) div $stroke-width )"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="dot2-step">
+ <xsl:choose>
+ <xsl:when test="contains($dots2-length,'%')">
+ <xsl:variable name="dots-percent">
+ <xsl:call-template name="ValueOfPercent">
+ <xsl:with-param name="value" select="$dots2-length"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="round($dots-percent)"/>
+ </xsl:when>
+ <xsl:when test="contains($dots2-length,'in') and $stroke-width &gt; 0">
+ <xsl:value-of select="round(number(substring-before($dots2-length,'in')) div $stroke-width)"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="distance-step">
+ <xsl:choose>
+ <xsl:when test="contains($distance,'%')">
+ <xsl:variable name="dots-percent">
+ <xsl:call-template name="ValueOfPercent">
+ <xsl:with-param name="value" select="$distance"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="round($dots-percent)"/>
+ </xsl:when>
+ <xsl:when test="contains($distance,'in') and $stroke-width &gt; 0">
+ <xsl:value-of select="round(number(substring-before($distance,'in')) div $stroke-width)"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="dashstyle">
+ <xsl:choose>
+ <xsl:when test="$dots1 = 1 and $dots2 = 1 and $dot1-step = 0 and $dot2-step = 0 and $distance-step = 0">
+ <xsl:value-of select="'ShortDot'"/>
+ </xsl:when>
+ <xsl:when test="$dots2 = 0 and $dot1-step = 0 and $dot2-step = 0 and $distance-step &gt; 0">
+ <xsl:value-of select="concat('0 ', $distance-step)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create_dashstyle">
+ <xsl:with-param name="dot-count" select="$dots1"/>
+ <xsl:with-param name="dot-step" select="$dot1-step"/>
+ <xsl:with-param name="distance-step" select="$distance-step"/>
+ </xsl:call-template>
+ <xsl:value-of select="' '"/>
+ <xsl:call-template name="create_dashstyle">
+ <xsl:with-param name="dot-count" select="$dots2"/>
+ <xsl:with-param name="dot-step" select="$dot2-step"/>
+ <xsl:with-param name="distance-step" select="$distance-step"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$dashstyle"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="create_dashstyle">
+ <xsl:param name="dot-count"/>
+ <xsl:param name="dot-step"/>
+ <xsl:param name="distance-step"/>
+ <xsl:if test="$dot-count &gt; 0">
+ <xsl:value-of select="concat($dot-step, ' ' , $distance-step )"/>
+ <xsl:if test="$dot-count - 1 &gt; 0">
+ <xsl:value-of select="' '"/>
+ <xsl:call-template name="create_dashstyle">
+ <xsl:with-param name="dot-count" select="$dot-count - 1"/>
+ <xsl:with-param name="dot-step" select="$dot-step"/>
+ <xsl:with-param name="distance-step" select="$distance-step"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="get_borderstyle">
+ <xsl:param name="border"/>
+ <xsl:param name="border-line-width"/>
+ <xsl:choose>
+ <xsl:when test="contains($border,'solid')">
+ <xsl:variable name="strokeweight">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="substring-before($border, ' ')"/>
+ <xsl:with-param name="TargetMeasure" select="'pt'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat ( 'strokeweight:', $strokeweight)"/>
+ </xsl:when>
+ <xsl:when test="contains($border,'double')">
+ <xsl:variable name="outside">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="substring-after(substring-after($border-line-width, ' ') , ' ')"/>
+ <xsl:with-param name="TargetMeasure" select="'pt'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="inside">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="substring-before($border-line-width, ' ')"/>
+ <xsl:with-param name="TargetMeasure" select="'pt'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="space">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="substring-before(substring-after($border-line-width, ' ') , ' ')"/>
+ <xsl:with-param name="TargetMeasure" select="'pt'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="linestyle">
+ <xsl:choose>
+ <xsl:when test="$outside = $inside">
+ <xsl:value-of select="'thinThin'"/>
+ </xsl:when>
+ <xsl:when test="$outside &gt; $inside">
+ <xsl:value-of select="'thickThin'"/>
+ </xsl:when>
+ <xsl:when test="$outside &lt; $inside">
+ <xsl:value-of select="'thinThick'"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="strokeweight" select="$inside + $outside + $space"/>
+ <xsl:value-of select="concat( 'linestyle:' , $linestyle , ';' , 'strokeweight:' , $strokeweight )"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="DrawElements">
+ <xsl:param name="TargetMeasure" select="pt"/>
+ <xsl:param name="x-adjust" select="0"/>
+ <xsl:param name="y-adjust" select="0"/>
+ <xsl:param name="force-draw" select="'false'"/>
+ <xsl:param name="shape-type"/>
+ <xsl:variable name="MeasureMark">
+ <xsl:choose>
+ <xsl:when test="$TargetMeasure = 'twip'"/>
+ <xsl:otherwise>
+ <xsl:value-of select="$TargetMeasure"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="drawtextstyle" select="@draw:text-style-name"/>
+ <xsl:variable name="org-z-index">
+ <xsl:choose>
+ <xsl:when test="@draw:z-index">
+ <xsl:value-of select="number(concat('0',@draw:z-index))"/>
+ </xsl:when>
+ <xsl:when test="parent::draw:frame/@draw:z-index">
+ <xsl:value-of select="number(concat('0',parent::draw:frame/@draw:z-index))"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="run-though" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@style:run-through"/>
+ <xsl:variable name="org-wrap" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@style:wrap"/>
+ <xsl:variable name="draw-name">
+ <xsl:choose>
+ <xsl:when test="string-length(@draw:name) = 0">
+ <xsl:value-of select="translate(ancestor::draw:frame[1]/@draw:name, ':/', '__')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate(@draw:name, ':/', '__')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="style_name2key">
+ <xsl:choose>
+ <xsl:when test="@draw:style-name">
+ <xsl:value-of select="@draw:style-name"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="ancestor::draw:frame/@draw:style-name">
+ <xsl:value-of select="ancestor::draw:frame/@draw:style-name"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="draw-fill-type" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fill"/>
+ <xsl:variable name="draw-gradient-name" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fill-gradient-name"/>
+ <xsl:variable name="horizontal-pos" select="key('graphics-style', $style_name2key)/style:graphic-properties/@style:horizontal-pos"/>
+ <!--horizontal-pos attribute is for the placement of all the drawing elements-->
+ <xsl:variable name="fill-image-name" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fill-image-name"/>
+ <xsl:if test="$draw-fill-type = 'bitmap' ">
+ <xsl:element name="w:binData">
+ <xsl:attribute name="w:name">
+ <xsl:value-of select="concat( 'wordml://', $fill-image-name)"/>
+ </xsl:attribute>
+ <xsl:value-of select="translate(key('fill-image',$fill-image-name)/office:binary-data/text(),'&#9;&#10;&#13;&#32;','' ) "/>
+ <!-- xsl:value-of select="office:binary-data/text()"/ -->
+ </xsl:element>
+ </xsl:if>
+ <xsl:variable name="z-index">
+ <xsl:choose>
+ <xsl:when test="$run-though='foreground'">
+ <!-- make sure z-index >=0 -->
+ <xsl:choose>
+ <xsl:when test="$org-z-index &lt; 0">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$org-z-index"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$run-though='background'">
+ <!-- make sure z-index < 0 -->
+ <xsl:choose>
+ <xsl:when test="$org-z-index &lt; 0">
+ <xsl:value-of select="$org-z-index"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$org-z-index - 10"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="wrap">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='as-char' ">none</xsl:when>
+ <xsl:when test="$org-wrap='dynamic'">tight</xsl:when>
+ <xsl:when test="$org-wrap='parallel'">square</xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="ooshapename" select="substring-after(name(),':')"/>
+ <xsl:variable name="element-name">
+ <xsl:choose>
+ <xsl:when test="$ooshapename='rect'">v:rect</xsl:when>
+ <xsl:when test="$ooshapename='ellipse' and not(string-length(@draw:kind) &gt; 0)">v:oval</xsl:when>
+ <xsl:when test="$ooshapename='ellipse' and string-length(@draw:kind) &gt; 0">v:arc</xsl:when>
+ <xsl:when test="$ooshapename='circle' and string-length(@draw:kind) &gt; 0">v:arc</xsl:when>
+ <xsl:when test="$ooshapename='line'">v:line</xsl:when>
+ <xsl:when test="$ooshapename='polyline'">v:polyline</xsl:when>
+ <xsl:when test="$ooshapename='polygon'">v:polyline</xsl:when>
+ <xsl:when test="$ooshapename='text-box'">v:shape</xsl:when>
+ <xsl:when test="$ooshapename='image'">v:shape</xsl:when>
+ <xsl:when test="$ooshapename='frame'">v:shape</xsl:when>
+ <xsl:when test="$ooshapename='path'">v:shape</xsl:when>
+ <!-- This caption is not the "Caption", it's GUI name is Callouts-->
+ <xsl:when test="$ooshapename='caption'">v:shape</xsl:when>
+ <xsl:when test="$ooshapename='custom-shape' and draw:enhanced-geometry[1]/@draw:predefined-type = 'non-primitive' ">v:shape</xsl:when>
+ <xsl:when test="$ooshapename='custom-shape' and draw:enhanced-geometry[1]/@draw:predefined-type = 'round-rectangle' ">v:roundrect</xsl:when>
+ <xsl:when test="$ooshapename='custom-shape' and draw:enhanced-geometry[1]/@draw:predefined-type = 'rectangle' ">v:rect</xsl:when>
+ <xsl:when test="$ooshapename='custom-shape' and draw:enhanced-geometry[1]/@draw:predefined-type = 'ellipse' ">v:oval</xsl:when>
+ <xsl:when test="$ooshapename='custom-shape'">v:shape</xsl:when>
+ <!-- some wild guess -->
+ <xsl:otherwise>v:shape</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="ms-shape-type">
+ <xsl:choose>
+ <xsl:when test="string-length($shape-type) &gt; 0">
+ <xsl:value-of select="$shape-type"/>
+ </xsl:when>
+ <xsl:when test="$ooshapename='custom-shape' ">
+ <xsl:call-template name="ooo_custom_draw2ms_word_draw_map">
+ <xsl:with-param name="ooo_predefined_type" select="draw:enhanced-geometry[1]/@draw:predefined-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="real-x-adjust">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="concat($x-adjust,'in')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="real-y-adjust">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="concat($y-adjust,'in')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="org-x">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="@svg:x"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="org-y">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="@svg:y"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="pagemaster" select="key('master-page','Standard')/@style:page-layout-name"/>
+ <xsl:variable name="leftmargin-pt">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="key('page-layout',$pagemaster)/style:page-layout-properties/@fo:margin-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="topmargin-pt">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="key('page-layout',$pagemaster)/style:page-layout-properties/@fo:margin-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <!-- addjust the x and y values of the page archored objects-->
+ <xsl:variable name="x">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='page' or ancestor::draw:*/@text:anchor-type='page'">
+ <xsl:value-of select="$org-x + $real-x-adjust - $leftmargin-pt"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$org-x + $real-x-adjust"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="y">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='page' or ancestor::draw:*/@text:anchor-type='page'">
+ <xsl:value-of select="$org-y + $real-y-adjust - $topmargin-pt"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$org-y + $real-y-adjust"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="width">
+ <xsl:variable name="width-tmp">
+ <xsl:choose>
+ <xsl:when test="@svg:width">
+ <xsl:value-of select="@svg:width"/>
+ </xsl:when>
+ <xsl:when test="not(string-length(parent::draw:frame/@svg:width) = 0)">
+ <xsl:value-of select="parent::draw:frame/@svg:width"/>
+ </xsl:when>
+ <xsl:when test="string-length(@svg:width) = 0 and ancestor::draw:frame">
+ <xsl:value-of select="ancestor::draw:frame/@svg:width"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@svg:width"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="$width-tmp"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="height">
+ <xsl:choose>
+ <xsl:when test="@svg:height">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="@svg:height"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="not(string-length(parent::draw:frame/@svg:height) = 0)">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="parent::draw:frame/@svg:height"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="@fo:min-height and string-length(text:p/text()) = 0 and not(text:p/draw:*)">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="@fo:min-height"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="borderstyle">
+ <xsl:call-template name="get_borderstyle">
+ <xsl:with-param name="border" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@fo:border"/>
+ <xsl:with-param name="border-line-width" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@style:border-line-width"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="stroke-weight-in-inch" select="number(concat('0',translate(key('graphics-style', @draw:style-name)/style:graphic-properties/@svg:stroke-width ,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','') ))"/>
+ <xsl:variable name="stroke-weight">
+ <xsl:choose>
+ <xsl:when test="contains($borderstyle , 'strokeweight')">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="concat( substring-after($borderstyle, 'strokeweight:') , 'pt')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@svg:stroke-width"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="linestyle">
+ <xsl:if test="contains($borderstyle , 'strokeweight')">
+ <xsl:value-of select="substring-before( substring-after($borderstyle, 'linestyle:') , ';strokeweight')"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="stroked">
+ <xsl:if test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:stroke = 'none'">
+ <xsl:value-of select="'f'"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="dashstyle">
+ <xsl:call-template name="get_dashstyle">
+ <xsl:with-param name="stroke-width" select="$stroke-weight-in-inch"/>
+ <xsl:with-param name="style-name" select="@draw:style-name"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="start-arrow">
+ <xsl:choose>
+ <xsl:when test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-end">
+ <xsl:call-template name="MapArrowStyle">
+ <xsl:with-param name="arrow-name" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-end"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="end-arrow">
+ <xsl:choose>
+ <xsl:when test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-start">
+ <xsl:call-template name="MapArrowStyle">
+ <xsl:with-param name="arrow-name" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-start"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="start-arrow-length">
+ <xsl:choose>
+ <xsl:when test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-end">
+ <xsl:call-template name="GetArrowLength">
+ <xsl:with-param name="arrow-name" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-end"/>
+ <xsl:with-param name="arrow-width" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-end-width"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="start-arrow-width">
+ <xsl:choose>
+ <xsl:when test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-end">
+ <xsl:call-template name="GetArrowWidth">
+ <xsl:with-param name="arrow-name" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-end"/>
+ <xsl:with-param name="arrow-width" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-end-width"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="end-arrow-length">
+ <xsl:choose>
+ <xsl:when test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-start">
+ <xsl:call-template name="GetArrowLength">
+ <xsl:with-param name="arrow-name" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-start"/>
+ <xsl:with-param name="arrow-width" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-start-width"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="end-arrow-width">
+ <xsl:choose>
+ <xsl:when test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-start">
+ <xsl:call-template name="GetArrowWidth">
+ <xsl:with-param name="arrow-name" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-start"/>
+ <xsl:with-param name="arrow-width" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:marker-start-width"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="stroke-color">
+ <xsl:choose>
+ <xsl:when test="key('graphics-style', @draw:style-name)/style:graphic-properties/@svg:stroke-color">
+ <xsl:value-of select="key('graphics-style', @draw:style-name)/style:graphic-properties/@svg:stroke-color"/>
+ </xsl:when>
+ <xsl:when test="contains(key('graphics-style', @draw:style-name)/style:graphic-properties/@fo:border, '#')">
+ <xsl:value-of select="concat('#', substring-after(key('graphics-style', @draw:style-name)/style:graphic-properties/@fo:border, '#') )"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="stroke-opacity">
+ <xsl:call-template name="ValueOfPercent">
+ <xsl:with-param name="value" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@svg:stroke-opacity"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="fill-color">
+ <xsl:choose>
+ <xsl:when test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fill-color">
+ <xsl:value-of select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fill-color"/>
+ </xsl:when>
+ <xsl:when test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fontwork-style">black</xsl:when>
+ <xsl:when test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fill = 'none'"/>
+ <xsl:when test="$draw-fill-type = 'gradient' ">
+ <xsl:value-of select="key('draw-gradient',$draw-gradient-name)/@draw:end-color "/>
+ </xsl:when>
+ <!-- for these need fill, set the default color we used in oo-->
+ <xsl:when test="name()='draw:polygon' or name()='draw:custom-shape' or name() = 'draw:rect' or (name() = 'draw:ellipse' and not( @draw:kind='arc') )">#00B8FF</xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="position">
+ <xsl:value-of select="concat('left:', $x ,$MeasureMark , ';top:' , $y ,$MeasureMark , ';width:', $width ,$MeasureMark )"/>
+ <xsl:if test="not($height = 0)">
+ <xsl:value-of select="concat(';height:', $height ,$MeasureMark )"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="flip">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='as-char' and $ooshapename='line'"/>
+ <xsl:when test="$ooshapename='image'"/>
+ <xsl:when test="$ooshapename='path'"/>
+ <xsl:when test="$ooshapename='caption'"/>
+ <xsl:when test="@draw:kind = 'arc' or @draw:kind = 'cut' or @draw:kind = 'section'"/>
+ <xsl:when test="$ooshapename='custom-shape'"/>
+ <xsl:otherwise>flip:x</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="absolute">
+ <xsl:choose>
+ <xsl:when test="ancestor::draw:a"/>
+ <xsl:when test="@text:anchor-type = 'as-char' or @text:anchor-type = 'to-char'"/>
+ <xsl:when test="parent::draw:frame/@text:anchor-type = 'as-char' or parent::draw:frame/@text:anchor-type = 'to-char'"/>
+ <xsl:otherwise>position:absolute</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="anchorlock">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type = 'as-char' or @text:anchor-type = 'to-char'">has</xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- start line special -->
+ <xsl:variable name="org-x1">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="@svg:x1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="org-y1">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="@svg:y1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="org-x2">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="@svg:x2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="org-y2">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="value" select="@svg:y2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="x1">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='page' or ancestor::draw:*/@text:anchor-type='page'">
+ <xsl:value-of select="$org-x1 + $real-x-adjust - $leftmargin-pt"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$org-x1 + $real-x-adjust"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="y1">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='page' or ancestor::draw:*/@text:anchor-type='page'">
+ <xsl:value-of select="$org-y1 + $real-y-adjust - $topmargin-pt"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$org-y1 + $real-y-adjust"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="x2">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='page' or ancestor::draw:*/@text:anchor-type='page'">
+ <xsl:value-of select="$org-x2 + $real-x-adjust - $leftmargin-pt"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$org-x2 + $real-x-adjust"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="y2">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='page' or ancestor::draw:*/@text:anchor-type='page'">
+ <xsl:value-of select="$org-y2 + $real-y-adjust - $topmargin-pt"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$org-y2 + $real-y-adjust"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- end line special -->
+ <xsl:variable name="relative">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type = 'as-char' or @text:anchor-type = 'to-char'">mso-position-horizontal-relative:char;mso-position-vertical-relative:line</xsl:when>
+ <xsl:when test="parent::draw:frame/@text:anchor-type = 'as-char' or parent::draw:frame/@text:anchor-type = 'to-char'">mso-position-horizontal-relative:char;mso-position-vertical-relative:line</xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="style">
+ <xsl:choose>
+ <xsl:when test="$wrap='none'"/>
+ <xsl:otherwise>
+ <xsl:if test="string-length($absolute) &gt; 0">
+ <xsl:value-of select="concat($absolute, ';')"/>
+ </xsl:if>
+ <xsl:value-of select="concat('z-index:', $z-index, ';')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="string-length($flip) &gt; 0">
+ <xsl:value-of select="concat($flip,';')"/>
+ </xsl:if>
+ <xsl:if test="not($ooshapename = 'line')">
+ <xsl:value-of select="concat($position,';')"/>
+ </xsl:if>
+ <xsl:if test="ancestor::draw:frame and name()='draw:text-box'">
+ <xsl:if test="string-length($horizontal-pos) &gt; 0">
+ <xsl:value-of select="concat('mso-position-horizontal:',$horizontal-pos,';')"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="string-length($relative) &gt; 0">
+ <xsl:value-of select="concat($relative,';')"/>
+ </xsl:if>
+ </xsl:variable>
+ <!-- image special: convert oo base64 binary data (77char/line) to word base64 binary data(73char/line) , a workthrough is removing all line breaks -->
+ <xsl:if test="$ooshapename = 'image'">
+ <xsl:element name="w:binData">
+ <xsl:attribute name="w:name">
+ <xsl:value-of select="concat( 'wordml://', $draw-name )"/>
+ </xsl:attribute>
+ <xsl:value-of select="translate(office:binary-data/text(),'&#9;&#10;&#13;&#32;','' ) "/>
+ <!-- xsl:value-of select="office:binary-data/text()"/ -->
+ </xsl:element>
+ </xsl:if>
+ <!-- all element goes here -->
+ <xsl:variable name="id">
+ <xsl:choose>
+ <xsl:when test="$ooshapename='line'">
+ <xsl:value-of select="concat('_x',$x1 , '_' ,$y1, '_' , $x2, '_' ,$y2 )"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('_x',$x , '_' ,$y, '_' , $width, '_' ,$height )"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="{$element-name}">
+ <xsl:attribute name="id">
+ <xsl:value-of select="$id"/>
+ </xsl:attribute>
+ <xsl:if test="string-length($ms-shape-type) &gt; 0">
+ <xsl:attribute name="type">
+ <xsl:value-of select="$ms-shape-type"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style">
+ <xsl:value-of select="$style"/>
+ </xsl:attribute>
+ <xsl:if test="$stroke-weight &gt; 0">
+ <xsl:attribute name="strokeweight">
+ <xsl:value-of select="concat($stroke-weight,$MeasureMark)"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($stroked) &gt; 0">
+ <xsl:attribute name="stroked">
+ <xsl:value-of select="$stroked"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($stroke-color) &gt; 0">
+ <xsl:attribute name="strokecolor">
+ <xsl:value-of select="$stroke-color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($fill-color) &gt; 0">
+ <xsl:attribute name="fillcolor">
+ <xsl:value-of select="$fill-color"/>
+ </xsl:attribute>
+ <xsl:attribute name="filled">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="parent::draw:frame/draw:object-ole[1]">
+ <xsl:attribute name="filled">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($stroke-opacity) &gt; 0">
+ <xsl:attribute name="opacity">
+ <xsl:value-of select="$stroke-opacity"/>
+ </xsl:attribute>
+ </xsl:if>
+ <!-- arc special attribute -->
+ <xsl:if test="@draw:kind = 'arc' or @draw:kind = 'cut' or @draw:kind = 'section'">
+ <xsl:choose>
+ <xsl:when test="@draw:start-angle &gt; @draw:end-angle">
+ <xsl:attribute name="startangle">
+ <xsl:value-of select="round( 450 - (@draw:end-angle + 360) )"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="startangle">
+ <xsl:value-of select="round( 450 - @draw:end-angle )"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="endangle">
+ <xsl:value-of select="round(450 - @draw:start-angle)"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@draw:kind = 'cut'">
+ <xsl:attribute name="fill">
+ <xsl:value-of select="'true'"/>
+ </xsl:attribute>
+ </xsl:if>
+ <!-- end arc special attribute -->
+ <!-- line special attribute-->
+ <xsl:if test="$ooshapename='line'">
+ <xsl:attribute name="from">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='as-char'">0,0</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($x1,$MeasureMark, ',',$y2,$MeasureMark )"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="to">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='as-char'">
+ <xsl:value-of select="concat($x2,$MeasureMark ,',',$y2,$MeasureMark )"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($x2,$MeasureMark ,',' ,$y1,$MeasureMark)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ <!-- end line special attribute-->
+ <!-- polyline and polygon special attribute-->
+ <xsl:if test="$ooshapename='polyline' or $ooshapename='polygon' ">
+ <!-- translate ' ' to in ' tranclate ',' to 'in,' -->
+ <xsl:variable name="points">
+ <xsl:call-template name="points2points">
+ <xsl:with-param name="input_x" select="$x"/>
+ <xsl:with-param name="input_y" select="$y"/>
+ <xsl:with-param name="input_width" select="$width"/>
+ <xsl:with-param name="input_height" select="$height"/>
+ <xsl:with-param name="input_boxwidth" select="substring-before(substring-after(@svg:viewBox,'0 0 '),' ')"/>
+ <xsl:with-param name="input_boxheight" select="substring-after(substring-after(@svg:viewBox,'0 0 '),' ')"/>
+ <xsl:with-param name="input_points" select="concat(@draw:points,' ')"/>
+ <!-- add a space to the end of input_points -->
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="points">
+ <xsl:value-of select="$points"/>
+ </xsl:attribute>
+ </xsl:if>
+ <!-- end polyline and polygon special attribute-->
+ <!-- callouts special attribute-->
+ <xsl:if test="$ooshapename='caption'">
+ <xsl:variable name="caption-point-x">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'twip'"/>
+ <xsl:with-param name="value" select="@draw:caption-point-x"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="caption-point-y">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'twip'"/>
+ <xsl:with-param name="value" select="@draw:caption-point-y"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="type">
+ <!-- map to word line label 3-->
+ <xsl:value-of select="'#_x0000_t48'"/>
+ </xsl:attribute>
+ <xsl:attribute name="adj">
+ <xsl:value-of select=" concat($caption-point-x * 20 , ',' , $caption-point-y * 20 , ',' , $caption-point-x * 10 , ',,,,' , $caption-point-x * 20, ',' , $caption-point-y * 20) "/>
+ </xsl:attribute>
+ </xsl:if>
+ <!-- end callouts special attribute-->
+ <!-- path special attribute-->
+ <xsl:if test="$ooshapename='path' or string-length(@svg:d) &gt; 0 or ( $ooshapename='custom-shape' and draw:enhanced-geometry[1]/@draw:predefined-type = 'non-primitive') ">
+ <xsl:variable name="path">
+ <xsl:choose>
+ <xsl:when test="$ooshapename='path' or string-length(@svg:d) &gt; 0 ">
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="@svg:d"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="draw:enhanced-geometry[1]/@draw:enhanced-path"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="coordorigin">
+ <xsl:value-of select=" '0 0' "/>
+ </xsl:attribute>
+ <xsl:attribute name="coordsize">
+ <xsl:choose>
+ <xsl:when test="string-length(@svg:viewBox) &gt; 0 ">
+ <xsl:value-of select="substring-after(@svg:viewBox,'0 0 ')"/>
+ </xsl:when>
+ <xsl:when test="string-length(draw:enhanced-geometry[1]/@svg:viewBox) &gt; 0 ">
+ <xsl:value-of select="substring-after(draw:enhanced-geometry[1]/@svg:viewBox,'0 0 ')"/>
+ </xsl:when>
+ <!-- for custom shape use a default viewbox. right? -->
+ <xsl:otherwise>
+ <xsl:value-of select=" '21600 21600' "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="path">
+ <xsl:value-of select="$path"/>
+ </xsl:attribute>
+ </xsl:if>
+ <!-- end path special attribute-->
+ <!-- image special element -->
+ <xsl:if test="$ooshapename='image'">
+ <xsl:element name="v:imagedata">
+ <xsl:attribute name="src">
+ <xsl:value-of select="concat('wordml://', $draw-name)"/>
+ </xsl:attribute>
+ <xsl:attribute name="o:title">
+ <xsl:value-of select="$draw-name"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <!-- end image special element -->
+ <!-- start dash style , line style and arrow style-->
+ <xsl:if test="string-length($dashstyle) &gt; 0 or string-length($linestyle) &gt; 0 or string-length($start-arrow) &gt; 0 or string-length($end-arrow) &gt; 0 ">
+ <xsl:element name="v:stroke">
+ <xsl:if test="string-length($dashstyle) &gt; 0">
+ <xsl:attribute name="dashstyle">
+ <xsl:value-of select="$dashstyle"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($linestyle) &gt; 0">
+ <xsl:attribute name="linestyle">
+ <xsl:value-of select="$linestyle"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($start-arrow) &gt; 0 ">
+ <xsl:attribute name="startarrow">
+ <xsl:value-of select="$start-arrow"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($end-arrow) &gt; 0 ">
+ <xsl:attribute name="endarrow">
+ <xsl:value-of select="$end-arrow"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($start-arrow-length) &gt; 0 ">
+ <xsl:attribute name="startarrowlength">
+ <xsl:value-of select="$start-arrow-length"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($start-arrow-width) &gt; 0 ">
+ <xsl:attribute name="startarrowwidth">
+ <xsl:value-of select="$start-arrow-width"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($end-arrow-length) &gt; 0 ">
+ <xsl:attribute name="endarrowlength">
+ <xsl:value-of select="$end-arrow-length"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($end-arrow-width) &gt; 0 ">
+ <xsl:attribute name="endarrowwidth">
+ <xsl:value-of select="$end-arrow-width"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <!-- end dash style , line style and arrow style -->
+ <!-- start wrap type -->
+ <xsl:if test="string-length($wrap) &gt; 0">
+ <xsl:element name="w10:wrap">
+ <xsl:attribute name="type">
+ <xsl:value-of select="$wrap"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <!-- end wrap type -->
+ <!-- start anchor to char specific element -->
+ <xsl:if test="string-length($anchorlock) &gt; 0">
+ <xsl:element name="w10:anchorlock"/>
+ </xsl:if>
+ <!-- end wrap type -->
+ <!-- start fill image -->
+ <xsl:if test="string-length($draw-fill-type ) &gt; 0">
+ <xsl:element name="v:fill">
+ <xsl:choose>
+ <xsl:when test="$draw-fill-type = 'bitmap'">
+ <xsl:attribute name="src">
+ <xsl:value-of select="concat( 'wordml://', $fill-image-name)"/>
+ </xsl:attribute>
+ <xsl:attribute name="o:titile">
+ <xsl:value-of select="$fill-image-name"/>
+ </xsl:attribute>
+ <xsl:attribute name="recolor">
+ <xsl:value-of select=" 'true' "/>
+ </xsl:attribute>
+ <xsl:attribute name="rotate">
+ <xsl:value-of select=" 'true' "/>
+ </xsl:attribute>
+ <xsl:attribute name="type">
+ <xsl:value-of select=" 'frame' "/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$draw-fill-type = 'gradient'">
+ <xsl:attribute name="type">
+ <xsl:value-of select=" 'gradient' "/>
+ </xsl:attribute>
+ <xsl:attribute name="color2">
+ <xsl:value-of select="key('draw-gradient',$draw-gradient-name)/@draw:start-color "/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <!-- end fill image -->
+ <xsl:if test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fontwork-style">
+ <xsl:call-template name="FontWork"/>
+ </xsl:if>
+ <xsl:if test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:shadow = 'visible'">
+ <xsl:call-template name="Shadow"/>
+ </xsl:if>
+ <!-- only draw:g can have child graphic -->
+ <xsl:choose>
+ <xsl:when test="name() = 'draw:g'">
+ <xsl:apply-templates select="draw:*">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ <xsl:with-param name="force-draw" select="$force-draw"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="text:*/* | text:*/text()">
+ <xsl:element name="v:textbox">
+ <xsl:if test="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:writing-mode = 'tb-rl'">
+ <xsl:attribute name="style">
+ <xsl:value-of select="'layout-flow:vertical'"/>
+ </xsl:attribute>
+ </xsl:if>
+ <w:txbxContent>
+ <xsl:apply-templates select="text() | text:*"/>
+ </w:txbxContent>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:apply-templates select="parent::draw:frame/draw:object-ole" mode="output">
+ <xsl:with-param name="ShapeID" select="$id"/>
+ </xsl:apply-templates>
+ </xsl:template>
+ <xsl:template name="Shadow">
+ <xsl:element name="v:shadow">
+ <xsl:variable name="key-node" select="key('graphics-style', @draw:style-name)/style:graphic-properties"/>
+ <xsl:attribute name="on">true</xsl:attribute>
+ <xsl:attribute name="offset">
+ <xsl:value-of select="concat($key-node/@draw:shadow-offset-x,',' , $key-node/@draw:shadow-offset-y)"/>
+ </xsl:attribute>
+ <xsl:attribute name="color">
+ <xsl:value-of select="$key-node/@draw:shadow-color"/>
+ </xsl:attribute>
+ <xsl:attribute name="opacity">
+ <xsl:value-of select="$key-node/@draw:shadow-opacity"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="FontWork">
+ <xsl:element name="v:path">
+ <xsl:attribute name="textpathok">true</xsl:attribute>
+ </xsl:element>
+ <xsl:if test="not(key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fontwork-shadow) or not(key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fontwork-shadow = 'normal')">
+ <xsl:element name="v:shadow">
+ <xsl:attribute name="on">true</xsl:attribute>
+ <xsl:attribute name="type">perspective</xsl:attribute>
+ <xsl:attribute name="color">
+ <xsl:value-of select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fontwork-shadow-color"/>
+ </xsl:attribute>
+ <xsl:variable name="offset-x">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'twip'"/>
+ <xsl:with-param name="value" select="key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fontwork-shadow-offset-x"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="offset-y" select="substring-before(key('graphics-style', @draw:style-name)/style:graphic-properties/@draw:fontwork-shadow-offset-y, 'in')"/>
+ <xsl:attribute name="matrix">
+ <xsl:value-of select="concat(',,,' , round($offset-y div 0.000693) div 100, ',,')"/>
+ </xsl:attribute>
+ <xsl:attribute name="origin">-30%, -30%</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="v:textpath">
+ <xsl:attribute name="on">true</xsl:attribute>
+ <xsl:attribute name="fitpath">true</xsl:attribute>
+ <xsl:attribute name="fitshape">true</xsl:attribute>
+ <xsl:attribute name="style">
+ <xsl:choose>
+ <xsl:when test="key('paragraph-style', text:p[1]/@text:style-name )/style:graphic-properties/@svg:font-family">
+ <xsl:value-of select="concat('font-family:&quot;' , key('paragraph-style', text:p[1]/@text:style-name )/style:graphic-properties/@svg:font-family , '&quot;') "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="default-graphics-properties" select="/office:document/office:styles/style:default-style[@style:family = 'graphics']/style:graphic-properties"/>
+ <xsl:value-of select="concat('font-family:&quot;' , $default-graphics-properties/@style:font-name , '&quot;') "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="string">
+ <xsl:value-of select="text:p"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="MapArrowStyle">
+ <xsl:param name="arrow-name"/>
+ <xsl:choose>
+ <xsl:when test="$arrow-name = 'Arrow' ">Block</xsl:when>
+ <xsl:when test="$arrow-name = 'Square' ">Diamond</xsl:when>
+ <xsl:when test="$arrow-name = 'Small arrow' ">Block</xsl:when>
+ <xsl:when test="$arrow-name = 'Dimension lines' ">Diamond</xsl:when>
+ <xsl:when test="$arrow-name = 'Double Arrow' ">Block</xsl:when>
+ <xsl:when test="$arrow-name = 'Rounded short arrow' ">Block</xsl:when>
+ <xsl:when test="$arrow-name = 'Symmetric arrow' ">Block</xsl:when>
+ <xsl:when test="$arrow-name = 'Line Arrow' ">Open</xsl:when>
+ <xsl:when test="$arrow-name = 'Rounded large arrow' ">Block</xsl:when>
+ <xsl:when test="$arrow-name = 'Circle' ">Oval</xsl:when>
+ <xsl:when test="$arrow-name = 'Square 45' ">Diamond</xsl:when>
+ <xsl:when test="$arrow-name = 'Arrow concave' ">Classic</xsl:when>
+ <xsl:otherwise>Block</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="GetArrowLength">
+ <xsl:param name="arrow-name"/>
+ <xsl:param name="arrow-width"/>
+ <xsl:variable name="arrow-size">
+ <xsl:choose>
+ <xsl:when test="$arrow-width">
+ <xsl:value-of select="round(number(substring-before($arrow-width, 'in')) div 0.02) "/>
+ </xsl:when>
+ <xsl:otherwise>3</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$arrow-size &gt; 2">Long</xsl:when>
+ <xsl:when test="$arrow-size &gt; 1">Medium</xsl:when>
+ <xsl:when test="$arrow-size &gt; 0">Short</xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="GetArrowWidth">
+ <xsl:param name="arrow-name"/>
+ <xsl:param name="arrow-width"/>
+ <xsl:variable name="arrow-size">
+ <xsl:choose>
+ <xsl:when test="$arrow-width">
+ <xsl:value-of select="round(number(substring-before($arrow-width, 'in')) div 0.02) "/>
+ </xsl:when>
+ <xsl:otherwise>3</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$arrow-size &gt; 2">Wide</xsl:when>
+ <xsl:when test="$arrow-size &gt; 1">Medium</xsl:when>
+ <xsl:when test="$arrow-size &gt; 0">Narrow</xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="export-oledata">
+ <xsl:if test="//draw:object-ole[1]">
+ <xsl:apply-templates select="//draw:object-ole" mode="oledata.mso"/>
+ <w:docOleData>
+ <w:binData w:name="oledata.mso">
+ <xsl:if test="function-available('ole:getByName')">
+ <xsl:value-of select="translate(ole:getByName('oledata.mso'),'&#10;&#13;&#32;','')"/>
+ </xsl:if>
+ </w:binData>
+ </w:docOleData>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="draw:object-ole" mode="oledata.mso">
+ <xsl:variable name="stream-name">
+ <xsl:apply-templates select="." mode="get-number"/>
+ </xsl:variable>
+ <xsl:variable name="tmp" select="ole:insertByName($stream-name, translate(office:binary-data/text(),'&#10;&#13;&#32;','' ) )"/>
+ </xsl:template>
+ <xsl:template match="draw:object-ole" mode="output">
+ <xsl:param name="ShapeID"/>
+ <xsl:variable name="stream-name">
+ <xsl:apply-templates select="." mode="get-number"/>
+ </xsl:variable>
+ <o:OLEObject Type="Embed" DrawAspect="Content" ObjectID="{$stream-name}" ShapeID="{$ShapeID}" ProgID=""/>
+ </xsl:template>
+ <xsl:template match="draw:object-ole" mode="get-number">
+ <xsl:number from="/office:document" level="any" count="draw:object-ole" format="1"/>
+ </xsl:template>
+ <xsl:template match="draw:object-ole"/>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml_field.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml_field.xsl
new file mode 100644
index 000000000000..48a5e4e7342c
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml_field.xsl
@@ -0,0 +1,733 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <!-- the following are common used fields -->
+ <xsl:template match="text:page-number | text:page-count | text:subject | text:initial-creator | text:title | text:date
+ | text:time | text:page-variable-get | text:author-name | text:author-initials | text:file-name | text:sender-company
+ | text:sender-initials | text:sender-phone-work | text:word-count | text:paragraph-count | text:character-count
+ | text:description | text:creation-time | text:creation-date | text:editing-cycles | text:editing-duration
+ | text:keywords | text:print-time | text:print-date | text:creator | text:modification-time | text:modification-date
+ | text:user-defined | text:variable-get | text:user-field-get | text:sequence | text:database-name ">
+ <w:fldSimple>
+ <xsl:variable name="attribute_value1">
+ <xsl:choose>
+ <xsl:when test="name() = 'text:page-number' or name() = 'text:page-variable-get' ">
+ <xsl:text> PAGE </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:page-count' ">
+ <xsl:text> NUMPAGES </xsl:text>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:subject' ">
+ <xsl:text> SUBJECT </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:initial-creator' ">
+ <xsl:text> AUTHOR </xsl:text>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:title' ">
+ <xsl:text> TITLE </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:date' ">
+ <xsl:text> DATE </xsl:text>
+ <!-- ATM, this template just return null date format, it might be developed in the future -->
+ <xsl:call-template name="field_get_date_format">
+ <xsl:with-param name="field_date_stylename" select="@style:data-style-name"/>
+ <xsl:with-param name="field_date_value" select="@text:date-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:time' ">
+ <xsl:text> TIME </xsl:text>
+ <!-- ATM, this template just return null time format, it might be developed in the future -->
+ <xsl:call-template name="field_get_time_format">
+ <xsl:with-param name="field_time_stylename" select="@style:data-style-name"/>
+ <xsl:with-param name="field_time_value" select="@text:time-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'text:author-name' ">
+ <xsl:text> AUTHOR </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:author-initials' ">
+ <xsl:text> USERINITIALS </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:file-name' ">
+ <xsl:choose>
+ <xsl:when test="@text:display='name-and-extension' or @text:display='name' ">
+ <xsl:text> FILENAME </xsl:text>
+ </xsl:when>
+ <xsl:when test=" @text:display='full' or @text:display='path' ">
+ <xsl:text>FILENAME \p </xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:sender-company' ">
+ <xsl:text> DOCPROPERTY Company </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:sender-initials' ">
+ <xsl:text> USERINITIALS </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:sender-phone-work' ">
+ <xsl:text> DOCPROPERTY &quot;Telephone number&quot; </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:word-count' ">
+ <xsl:text> DOCPROPERTY Words </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:paragraph-count' ">
+ <xsl:text> DOCPROPERTY Paragraphs </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:character-count' ">
+ <xsl:text> DOCPROPERTY CharactersWithSpaces </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:description' ">
+ <xsl:text> COMMENTS </xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:creation-time' ">
+ <xsl:text> DOCPROPERTY CreateTime </xsl:text>
+ <!-- ATM, this template just return null time format, it might be developed in the future -->
+ <xsl:call-template name="field_get_time_format">
+ <xsl:with-param name="field_time_stylename" select="@style:data-style-name"/>
+ <xsl:with-param name="field_time_value" select="@text:time-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test=" name()= 'text:creation-date' ">
+ <xsl:text> CREATEDATE </xsl:text>
+ <!-- ATM, this template just return null date format, it might be developed in the future -->
+ <xsl:call-template name="field_get_date_format">
+ <xsl:with-param name="field_date_stylename" select="@style:data-style-name"/>
+ <xsl:with-param name="field_date_value" select="@text:date-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:editing-cycles' ">
+ <xsl:text> REVNUM \* Arabic </xsl:text>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:editing-duration' ">
+ <xsl:text> EDITTIME </xsl:text>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:keywords' ">
+ <xsl:text> KEYWORDS </xsl:text>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:print-time' ">
+ <xsl:text>DOCPROPERTY LastPrinted </xsl:text>
+ <!-- ATM, this template just return null time format, it might be developed in the future -->
+ <xsl:call-template name="field_get_time_format">
+ <xsl:with-param name="field_time_stylename" select="@style:data-style-name"/>
+ <xsl:with-param name="field_time_value" select="@text:time-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:print-date' ">
+ <xsl:text>DOCPROPERTY LastPrinted </xsl:text>
+ <!-- ATM, this template just return null date format, it might be developed in the future -->
+ <xsl:call-template name="field_get_date_format">
+ <xsl:with-param name="field_date_stylename" select="@style:data-style-name"/>
+ <xsl:with-param name="field_date_value" select="@text:date-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:creator' ">
+ <xsl:text> LASTSAVEDBY </xsl:text>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:modification-time' ">
+ <xsl:text> DOCPROPERTY LastSavedTime </xsl:text>
+ <!-- ATM, this template just return null time format, it might be developed in the future -->
+ <xsl:call-template name="field_get_time_format">
+ <xsl:with-param name="field_time_stylename" select="@style:data-style-name"/>
+ <xsl:with-param name="field_time_value" select="@text:time-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:modification-date' ">
+ <xsl:text> SAVEDATE </xsl:text>
+ <!-- ATM, this template just return null date format, it might be developed in the future -->
+ <xsl:call-template name="field_get_date_format">
+ <xsl:with-param name="field_date_stylename" select="@style:data-style-name"/>
+ <xsl:with-param name="field_date_value" select="@text:date-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:user-defined' ">
+ <xsl:text> DOCPROPERTY </xsl:text>
+ <xsl:text>&quot;</xsl:text>
+ <xsl:value-of select="translate(string(@text:name), ' ', '')"/>
+ <xsl:text>&quot;</xsl:text>
+ </xsl:when>
+ <xsl:when test="name() = 'text:variable-get' or name() = 'text:user-field-get' ">
+ <xsl:value-of select="concat ('DOCVARIABLE ', @text:name)"/>
+ </xsl:when>
+ <xsl:when test=" name() = 'text:sequence' ">
+ <xsl:value-of select="concat(' SEQ &quot;',@text:name, '&quot;') "/>
+ </xsl:when>
+ <xsl:when test="name() = 'text:database-name' ">
+ <xsl:value-of select="concat (' DATABASE ', @text:database-name, '.' , @text:table-name)"/>
+ </xsl:when>
+ </xsl:choose>
+ <!-- Get number style format for number fields -->
+ <xsl:if test="@style:num-format">
+ <xsl:call-template name="field_get_number_format">
+ <xsl:with-param name="field_number_format_style" select="@style:num-format"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:text> \* MERGEFORMAT </xsl:text>
+ </xsl:variable>
+ <xsl:attribute name="w:instr">
+ <xsl:value-of select="$attribute_value1"/>
+ </xsl:attribute>
+ <w:r>
+ <w:rPr>
+ <xsl:choose>
+ <xsl:when test="@style:num-format = 'ê°€, 나, 다, ...' or @style:num-format ='ì¼, ì´, 삼, ...' or @style:num-format ='ㄱ, ã„´, ã„·, ...' ">
+ <w:rFonts w:fareast="Batang" w:hint="fareast"/>
+ <!--wx:font wx:val="Batang"/ -->
+ <w:lang w:fareast="KO"/>
+ </xsl:when>
+ <xsl:when test="@style:num-format = 'ã‚¢, イ, ウ, ...' or @style:num-format = 'ï½±, ï½², ï½³, ...' or @style:num-format = 'イ, ロ, ãƒ, ...' or @style:num-format = 'ï½², ï¾›, ハ, ...' or @style:num-format ='壱, å¼, å‚, ...' ">
+ <w:rFonts w:fareast="MS Mincho" w:hint="fareast"/>
+ <!--wx:font wx:val="MS Mincho"/ -->
+ <w:lang w:fareast="JA"/>
+ </xsl:when>
+ <xsl:when test=" @style:num-format ='壹, è²³, åƒ, ...' or @style:num-format ='壹, è²³, åƒ, ...' or @style:num-format ='壹, è´°, å, ...'or @style:num-format = '一, 二, 三, ...' ">
+ <w:rFonts w:hint="fareast"/>
+ <!--wx:font wx:val="宋体"/ -->
+ </xsl:when>
+ </xsl:choose>
+ <w:noProof/>
+ </w:rPr>
+ <w:t>
+ <xsl:value-of select="."/>
+ </w:t>
+ </w:r>
+ </w:fldSimple>
+ </xsl:template>
+ <xsl:template name="field_get_number_format">
+ <!-- this template get the various of number formats for number type field-->
+ <xsl:param name="field_number_format_style"/>
+ <xsl:choose>
+ <xsl:when test=" $field_number_format_style = '1, 2, 3, ...' or $field_number_format_style = '1' ">
+ <xsl:text> \* Arabic </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = 'â‘ , â‘¡, â‘¢, ...' ">
+ <xsl:text> \* CircleNum </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = 'i' ">
+ <xsl:text> \* roman </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = 'I' ">
+ <xsl:text> \* ROMAN </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = '一, 二, 三, ...'">
+ <xsl:text> \* CHINESENUM3 </xsl:text>
+ </xsl:when>
+ <xsl:when test=" $field_number_format_style ='壹, è²³, åƒ, ...' or $field_number_format_style ='壹, è²³, åƒ, ...' or
+$field_number_format_style ='壹, è´°, å, ...' ">
+ <xsl:text> \* CHINESENUM2 </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = '壱, å¼, å‚, ...' ">
+ <xsl:text> \* DBNUM3 </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = 'å­, 丑, 寅, ...' ">
+ <xsl:text> \* ZODIAC2 </xsl:text>
+ </xsl:when>
+ <xsl:when test=" $field_number_format_style ='甲, 乙, 丙, ...' ">
+ <xsl:text> \* ZODIAC1 </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = 'イ, ロ, ãƒ, ...' or $field_number_format_style = 'ï½², ï¾›, ハ, ...' ">
+ <xsl:text> \* Iroha </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style ='ア, イ, ウ, ...' or $field_number_format_style ='ア, イ, ウ, ...' ">
+ <xsl:text> \* Aiueo </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = 'ì¼, ì´, 삼, ...' ">
+ <xsl:text> \* DBNUM1 </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style ='ㄱ, ㄴ, ㄷ, ...' or $field_number_format_style = '㉠, ㉡, ㉢, ...' ">
+ <xsl:text> \* Chosung </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = '가, 나, 다, ...' or $field_number_format_style = '㉮, ㉯, ㉰, ...' ">
+ <xsl:text> \* Ganada </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = 'ア, イ, ウ, ...' or $field_number_format_style = 'ア, イ, ウ, ...' ">
+ <xsl:text> \* Aiueo </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style ='a' ">
+ <xsl:text> \* alphabetic </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style ='A' ">
+ <xsl:text> \* ALPHABETIC </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = '×, ב, ×’, ...' ">
+ <xsl:text> \* hebrew2 </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = 'أ, ب, ت, ...' ">
+ <xsl:text> \* ArabicAlpha </xsl:text>
+ </xsl:when>
+ <xsl:when test="$field_number_format_style = 'à¸, ข, ฃ, ...' ">
+ <xsl:text> \* ThaiLetter </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="field_get_date_format">
+ <xsl:param name="field_date_stylename"/>
+ <xsl:param name="field_date_value"/>
+ <!-- this template retun null date format ATM-->
+ <xsl:text/>
+ </xsl:template>
+ <xsl:template name="field_get_time_format">
+ <xsl:param name="field_time_stylename"/>
+ <xsl:param name="field_time_value"/>
+ <!-- this template retun null date format ATM-->
+ <xsl:text/>
+ </xsl:template>
+ <xsl:template match="text:template-name">
+ <xsl:choose>
+ <xsl:when test="@text:display='title' or @text:display= 'area' ">
+ <!-- directly export the content -->
+ <w:r>
+ <w:rPr>
+ <w:noProof/>
+ </w:rPr>
+ <w:t>
+ <xsl:value-of select="."/>
+ </w:t>
+ </w:r>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:fldSimple>
+ <xsl:variable name="template_attribute_value">
+ <xsl:choose>
+ <xsl:when test="@text:display='name-and-extension' or @text:display= 'name' ">
+ <xsl:text> TEMPLATE </xsl:text>
+ </xsl:when>
+ <xsl:when test=" @text:display='full' or @text:display='path' ">
+ <xsl:text>TEMPLATE \p </xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:text>\* MERGEFORMAT </xsl:text>
+ </xsl:variable>
+ <xsl:attribute name="w:instr">
+ <xsl:value-of select="$template_attribute_value"/>
+ </xsl:attribute>
+ <w:r>
+ <w:rPr>
+ <w:noProof/>
+ </w:rPr>
+ <w:t>
+ <xsl:value-of select="."/>
+ </w:t>
+ </w:r>
+ </w:fldSimple>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="text:text-input | text:variable-input | text:user-field-input">
+ <w:fldSimple>
+ <xsl:variable name="text-input-attribute">
+ <xsl:text>FILLIN </xsl:text>
+ <xsl:if test="@text:description">
+ <xsl:value-of select="@text:description"/>
+ </xsl:if>
+ <xsl:text> \* MERGEFORMAT</xsl:text>
+ </xsl:variable>
+ <xsl:attribute name="w:instr">
+ <xsl:value-of select="$text-input-attribute"/>
+ </xsl:attribute>
+ <w:r>
+ <w:rPr>
+ <w:noProof/>
+ </w:rPr>
+ <xsl:call-template name="field_convert_linebreak">
+ <xsl:with-param name="field_input_text" select="text()"/>
+ </xsl:call-template>
+ </w:r>
+ </w:fldSimple>
+ </xsl:template>
+ <xsl:template name="field_convert_linebreak">
+ <!-- this template convert the linebreak (&#x0A; and &#x0D;) in continous text to Ms word element<w:br/> -->
+ <xsl:param name="field_input_text"/>
+ <xsl:if test="not (contains($field_input_text,'&#x0A;'))">
+ <w:t>
+ <xsl:value-of select="$field_input_text"/>
+ </w:t>
+ </xsl:if>
+ <xsl:if test="contains($field_input_text,'&#x0A;')">
+ <w:t>
+ <xsl:value-of select="translate(substring-before($field_input_text,'&#x0A;'),'&#x0D;','')"/>
+ </w:t>
+ <w:br/>
+ <xsl:call-template name="field_convert_linebreak">
+ <xsl:with-param name="field_input_text" select="substring-after($field_input_text,'&#x0A;')"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="field_declare">
+ <!-- this template export the field declaration to w:docpr -->
+ <xsl:param name="simple_field_variable_declares"/>
+ <xsl:param name="user_field_variable_declares"/>
+ <xsl:param name="field_sequence_declares"/>
+ <w:docVars>
+ <xsl:if test="$simple_field_variable_declares/text:variable-decl">
+ <xsl:for-each select="$simple_field_variable_declares/text:variable-decl">
+ <w:docVar w:name="{@text:name}" w:val="default value"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="$user_field_variable_declares/text:user-field-decl">
+ <xsl:for-each select="$user_field_variable_declares/text:user-field-decl">
+ <w:docVar w:name="{@text:name}" w:val="{@text:string-value}"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="$field_sequence_declares/text:sequence-decl">
+ <!-- do nothing for sequence declares when exporting to MS word-->
+ </xsl:if>
+ </w:docVars>
+ </xsl:template>
+ <xsl:template match="text:reference-ref | text:bookmark-ref | text:footnote-ref
+ | text:endnote-ref ">
+ <!-- this template is for reference fields -->
+ <w:r>
+ <w:fldChar w:fldCharType="begin"/>
+ </w:r>
+ <xsl:variable name="complicate_field_instruction">
+ <xsl:choose>
+ <xsl:when test=" name() = 'text:reference-ref' ">
+ <xsl:choose>
+ <xsl:when test=" string(@text:reference-format) = 'page' ">
+ <xsl:value-of select="concat(' PAGEREF ', @text:ref-name, '\h') "/>
+ </xsl:when>
+ <xsl:when test="string(@text:reference-format) = 'chapter' ">
+ <xsl:value-of select="concat(' REF ', @text:ref-name, '\n \h') "/>
+ </xsl:when>
+ <xsl:when test="string(@text:reference-format) = 'text' ">
+ <xsl:value-of select="concat ( ' REF ' , @text:ref-name, ' \h') "/>
+ </xsl:when>
+ <xsl:when test="string(@text:reference-format) = 'direction' ">
+ <xsl:value-of select="concat(' REF ', @text:ref-name, ' \p \h' ) "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat ( ' PAGEREF ', @text:ref-name, '\h')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name() = 'text:footnote-ref' or name() = 'text:endnote-ref' ">
+ <xsl:choose>
+ <xsl:when test=" string(@text:reference-format) = 'page' ">
+ <xsl:value-of select="concat(' PAGEREF ', @text:ref-name, '\h') "/>
+ </xsl:when>
+ <xsl:when test="string(@text:reference-format) = 'chapter' ">
+ <xsl:value-of select="concat(' REF ', @text:ref-name, '\n \h') "/>
+ </xsl:when>
+ <xsl:when test="string(@text:reference-format) = 'text' ">
+ <xsl:value-of select="concat ( ' NOTEREF ' , @text:ref-name, ' \h') "/>
+ </xsl:when>
+ <xsl:when test="string(@text:reference-format) = 'direction' ">
+ <xsl:value-of select="concat(' PAGEREF ', @text:ref-name, ' \p \h' ) "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat ( ' PAGEREF ', @text:ref-name, '\h')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="name() = 'text:bookmark-ref' ">
+ <xsl:choose>
+ <xsl:when test=" string(@text:reference-format) = 'page' ">
+ <xsl:value-of select="concat(' PAGEREF ', @text:ref-name, '\h') "/>
+ </xsl:when>
+ <xsl:when test="string(@text:reference-format) = 'chapter' ">
+ <xsl:value-of select="concat(' PAGEREF ', @text:ref-name, ' \h') "/>
+ </xsl:when>
+ <xsl:when test="string(@text:reference-format) = 'text' ">
+ <xsl:value-of select="concat ( ' REF ' , @text:ref-name, ' \h') "/>
+ </xsl:when>
+ <xsl:when test="string(@text:reference-format) = 'direction' ">
+ <xsl:value-of select="concat(' REF ', @text:ref-name, ' \p \h' ) "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat ( ' PAGEREF ', @text:ref-name, '\h')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <!--start to combine the complicate field instruction -->
+ <w:r>
+ <w:instrText>
+ <xsl:value-of select="$complicate_field_instruction"/>
+ </w:instrText>
+ </w:r>
+ <w:r>
+ <w:fldChar w:fldCharType="separate"/>
+ </w:r>
+ <w:r>
+ <w:rPr>
+ <w:noProof/>
+ </w:rPr>
+ <w:t>
+ <xsl:value-of select="."/>
+ </w:t>
+ </w:r>
+ <w:r>
+ <w:fldChar w:fldCharType="end"/>
+ </w:r>
+ </xsl:template>
+ <xsl:template match="text:chapter | text:sender-firstname | text:sender-lastname
+ | text:sender-street | text:sender-country | text:sender-postal-code
+ | text:sender-city | text:sender-title | text:sender-position
+ | text:sender-phone-private | text:sender-email | text:sender-fax
+ | text:sender-state-or-province | text:table-count | text:image-count
+ | text:object-count | text:printed-by | text:hidden-paragraph
+ | text:placeholder | text:drop-down | text:conditional-text
+ | text:variable-set | text:table-formula | text:database-display
+ | text:database-next | text:database-select | text:database-row-number
+ | text:sequence-ref | text:expression | text:sheet-name | text:dde-connection">
+ <!-- this template just export content of staroffice fields that do not have the corresponding fields in MS word ATM -->
+ <w:r>
+ <w:rPr>
+ <w:noProof/>
+ </w:rPr>
+ <w:t>
+ <xsl:value-of select="."/>
+ </w:t>
+ </w:r>
+ </xsl:template>
+ <xsl:template match="text:execute-macro | text:variable-decls | text:variable-decl | text:user-field-decls | text:variable-decl | text:sequence-decls | text:sequence-decl | text:page-variable-set | text:bibliography-mark | text:script | text:page-continuation ">
+ <!-- this template is to ignore matched elements when exporting writer to word -->
+ </xsl:template>
+ <xsl:template match="text:a ">
+ <xsl:call-template name="export_hyoerlink"/>
+ </xsl:template>
+ <xsl:template name="export_hyoerlink">
+ <!-- all params are useed by draw -->
+ <xsl:param name="TargetMeasure"/>
+ <xsl:param name="x-adjust"/>
+ <xsl:param name="y-adjust"/>
+ <xsl:param name="force-draw"/>
+ <!-- this template processes the hyperlink in writer -->
+ <xsl:variable name="hyperlink_filename">
+ <xsl:choose>
+ <xsl:when test="contains(@xlink:href, '#')">
+ <xsl:value-of select="substring-before(@xlink:href, '#')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@xlink:href"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="hyperlink_bookmark">
+ <xsl:if test="contains(@xlink:href, '#')">
+ <xsl:choose>
+ <xsl:when test="contains(@xlink:href, '%7C')">
+ <xsl:call-template name="translate_string">
+ <xsl:with-param name="t_input_string" select="substring-before( substring-after(@xlink:href, '#'), '%7C')"/>
+ <xsl:with-param name="t_pattern_string" select=" '%20' "/>
+ <xsl:with-param name="t_substitute_string" select=" ' ' "/>
+ <xsl:with-param name="t_output_string" select=" '' "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="translate_string">
+ <xsl:with-param name="t_input_string" select="substring-after(@xlink:href, '#')"/>
+ <xsl:with-param name="t_pattern_string" select=" '%20' "/>
+ <xsl:with-param name="t_substitute_string" select=" ' ' "/>
+ <xsl:with-param name="t_output_string" select=" '' "/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:variable>
+ <w:hlink>
+ <xsl:if test="@xlink:href">
+ <xsl:attribute name="w:dest">
+ <xsl:value-of select="$hyperlink_filename"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains(@xlink:href, '#')">
+ <xsl:attribute name="w:bookmark">
+ <xsl:value-of select="$hyperlink_bookmark"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@office:target-frame-name">
+ <xsl:attribute name="w:target">
+ <xsl:value-of select="@office:target-frame-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@office:name">
+ <xsl:attribute name="w:screenTip">
+ <xsl:value-of select="@office:name"/>
+ </xsl:attribute>
+ </xsl:if>
+ <w:r>
+ <w:rPr>
+ <w:rStyle w:val="Hyperlink"/>
+ </w:rPr>
+ <!--apply inline-text-elements, many many many ... -->
+ <xsl:apply-templates select="text:a | text:span | text() | text:hidden-text
+ | text:line-break | text:tab-stop | text:s | text:page-number | text:page-count | text:subject
+ | text:initial-creator | text:title | text:date | text:time | text:author-name
+ | text:author-initials | text:chapter | text:file-name | text:sender-company
+ | text:sender-firstname | text:sender-lastname | text:sender-initials | text:sender-street
+ | text:sender-country | text:sender-postal-code | text:sender-city | text:sender-title
+ | text:sender-position | text:sender-phone-private | text:sender-phone-work
+ | text:sender-email | text:sender-fax | text:sender-state-or-province | text:word-count
+ | text:paragraph-count | text:character-count | text:table-count | text:image-count
+ | text:object-count | text:template-name | text:description | text:creation-time
+ | text:creation-date | text:editing-cycles | text:editing-duration | text:keywords
+ | text:print-time | text:print-date | text:creator | text:modification-time
+ | text:modification-date | text:user-defined | text:printed-by | text:hidden-paragraph
+ | text:placeholder | text:drop-down | text:conditional-text | text:text-input
+ | text:execute-macro | text:variable-set | text:variable-input
+ | text:user-field-input | text:variable-get | text:user-field-get | text:sequence
+ | text:page-variable-set | text:page-variable-get | text:table-formula
+ | text:database-display | text:database-next| text:database-select
+ | text:database-row-number | text:database-name | text:reference-ref
+ | text:bookmark-ref | text:footnote-ref | text:endnote-ref | text:sequence-ref
+ | text:expression | text:measure | text:dde-connection | text:sheet-name
+ | text:bibliography-mark | text:script | text:page-continuation | office:annotation
+ | draw:*">
+ <xsl:with-param name="TargetMeasure" select="$TargetMeasure"/>
+ <xsl:with-param name="x-adjust" select="$x-adjust"/>
+ <xsl:with-param name="y-adjust" select="$y-adjust"/>
+ <xsl:with-param name="force-draw" select="$force-draw"/>
+ </xsl:apply-templates>
+ </w:r>
+ </w:hlink>
+ </xsl:template>
+ <xsl:template name="translate_string">
+ <!-- this template is to replace the substring matched t_pattern_string in t_t_input_string with t_substitute_string G.Y.-->
+ <xsl:param name="t_input_string"/>
+ <xsl:param name="t_pattern_string"/>
+ <xsl:param name="t_substitute_string"/>
+ <xsl:param name="t_output_string"/>
+ <xsl:variable name="t_temp_output_string">
+ <xsl:if test="contains($t_input_string, $t_pattern_string) ">
+ <xsl:value-of select="concat($t_output_string, substring-before($t_input_string,$t_pattern_string), $t_substitute_string) "/>
+ </xsl:if>
+ <xsl:if test="not (contains($t_input_string, $t_pattern_string)) ">
+ <xsl:value-of select="$t_output_string"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:if test="contains($t_input_string, $t_pattern_string) ">
+ <xsl:call-template name="translate_string">
+ <xsl:with-param name="t_input_string" select="substring-after($t_input_string,$t_pattern_string)"/>
+ <xsl:with-param name="t_pattern_string" select="$t_pattern_string"/>
+ <xsl:with-param name="t_substitute_string" select="$t_substitute_string"/>
+ <xsl:with-param name="t_output_string" select="$t_temp_output_string"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="not (contains($t_input_string, $t_pattern_string))">
+ <xsl:value-of select="concat($t_temp_output_string, $t_input_string)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="add_hyperlink_style">
+ <!--this template is to add the hyperlink related style -->
+ <w:style w:type="character" w:styleId="Hyperlink">
+ <w:name w:val="Hyperlink"/>
+ <w:rsid w:val="006A55B0"/>
+ <w:rPr>
+ <w:color w:val="000080"/>
+ <w:u w:val="single"/>
+ </w:rPr>
+ </w:style>
+ <w:style w:type="character" w:styleId="FollowedHyperlink">
+ <w:name w:val="FollowedHyperlink"/>
+ <w:rsid w:val="006A55B0"/>
+ <w:rPr>
+ <w:color w:val="800000"/>
+ <w:u w:val="single"/>
+ </w:rPr>
+ </w:style>
+ </xsl:template>
+ <xsl:template match="office:annotation">
+ <!-- this template export writer note to word comments -->
+ <xsl:variable name="comments_aml_id">
+ <xsl:call-template name="unique_amlid_generator"/>
+ </xsl:variable>
+ <aml:annotation w:type="Word.Comment.Start">
+ <xsl:attribute name="aml:id">
+ <xsl:value-of select="$comments_aml_id"/>
+ </xsl:attribute>
+ </aml:annotation>
+ <aml:annotation w:type="Word.Comment.End">
+ <xsl:attribute name="aml:id">
+ <xsl:value-of select="$comments_aml_id"/>
+ </xsl:attribute>
+ </aml:annotation>
+ <!-- export aml:annotation content-->
+ <w:r>
+ <w:rPr>
+ <w:rStyle w:val="CommentReference"/>
+ </w:rPr>
+ <aml:annotation aml:author="{@office:author}" aml:createdate="{@office:create-date}" w:type="Word.Comment" w:initials="{@office:author}">
+ <xsl:attribute name="aml:id">
+ <xsl:value-of select="$comments_aml_id"/>
+ </xsl:attribute>
+ <aml:content>
+ <xsl:apply-templates select="text:p"/>
+ </aml:content>
+ </aml:annotation>
+ </w:r>
+ <!-- end of export aml:annotation content-->
+ </xsl:template>
+ <xsl:template name="unique_amlid_generator">
+ <!-- this template generate unique id for aml:id, ATM it only counts the office:annotation, some other elements might be added later -->
+ <xsl:number count="office:annotation" from="/office:document/office:body" level="any" format="1"/>
+ </xsl:template>
+ <xsl:template name="add_comments_style">
+ <w:style w:type="character" w:styleId="CommentReference">
+ <w:name w:val="annotation reference"/>
+ <w:basedOn w:val="DefaultParagraphFont"/>
+ <w:semiHidden/>
+ <w:rsid w:val="007770B7"/>
+ <w:rPr>
+ <w:sz w:val="16"/>
+ <w:sz-cs w:val="16"/>
+ </w:rPr>
+ </w:style>
+ <w:style w:type="paragraph" w:styleId="CommentText">
+ <w:name w:val="annotation text"/>
+ <w:basedOn w:val="Normal"/>
+ <w:semiHidden/>
+ <w:rsid w:val="007770B7"/>
+ <w:pPr>
+ <w:pStyle w:val="CommentText"/>
+ </w:pPr>
+ <w:rPr>
+ <w:sz w:val="20"/>
+ <w:sz-cs w:val="20"/>
+ </w:rPr>
+ </w:style>
+ <w:style w:type="paragraph" w:styleId="CommentSubject">
+ <w:name w:val="annotation subject"/>
+ <w:basedOn w:val="CommentText"/>
+ <w:next w:val="CommentText"/>
+ <w:semiHidden/>
+ <w:rsid w:val="007770B7"/>
+ <w:pPr>
+ <w:pStyle w:val="CommentSubject"/>
+ </w:pPr>
+ <w:rPr>
+ <w:b/>
+ <w:b-cs/>
+ </w:rPr>
+ </w:style>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml_list.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml_list.xsl
new file mode 100644
index 000000000000..2762e1cd159f
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml_list.xsl
@@ -0,0 +1,340 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <xsl:template name="ListStyles">
+ <w:lists>
+ <xsl:if test="descendant::text:list-level-style-image">
+ <xsl:call-template name="PicLists"/>
+ </xsl:if>
+ <xsl:apply-templates select="office:styles/text:outline-style | office:styles/text:list-style | office:automatic-styles/text:list-style" mode="style"/>
+ <xsl:for-each select="office:styles/text:outline-style | office:styles/text:list-style | office:automatic-styles/text:list-style">
+ <w:list w:ilfo="{position()}">
+ <w:ilst w:val="{position()-1}"/>
+ </w:list>
+ </xsl:for-each>
+ </w:lists>
+ </xsl:template>
+ <xsl:template match="text:list-style | text:outline-style" mode="style">
+ <w:listDef w:listDefId="{position()-1}">
+ <xsl:if test="name(..)='office:styles' and name()!='text:outline-style'">
+ <w:styleLink w:val="{@style:name}"/>
+ </xsl:if>
+ <xsl:for-each select="text:list-level-style-number | text:list-level-style-bullet | text:list-level-style-image | text:outline-level-style">
+ <xsl:if test="@text:level &lt; 10">
+ <w:lvl w:ilvl="{ @text:level - 1 }">
+ <xsl:if test="name()='text:outline-level-style'">
+ <xsl:variable name="headinglevel">
+ <xsl:value-of select="@text:level"/>
+ </xsl:variable>
+ <xsl:if test="/office:document/office:body//text:h[@text:level=$headinglevel and @text:style-name]">
+ <xsl:element name="w:pStyle">
+ <xsl:attribute name="w:val"><xsl:value-of select="/office:document/office:body//text:h[@text:level=$headinglevel]/@text:style-name"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@text:start-value">
+ <w:start w:val="{@text:start-value}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:start w:val="1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@text:bullet-char">
+ <w:nfc w:val="23"/>
+ </xsl:when>
+ <xsl:when test="@style:num-format">
+ <xsl:call-template name="convert_list_number">
+ <xsl:with-param name="number-format" select="@style:num-format"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="name()='text:list-level-style-image'">
+ <w:lvlText w:val="."/>
+ <w:lvlPicBulletId>
+ <xsl:attribute name="w:val"><xsl:value-of select="count(preceding::text:list-level-style-image)"/></xsl:attribute>
+ </w:lvlPicBulletId>
+ </xsl:when>
+ <xsl:when test="@text:bullet-char">
+ <w:lvlText w:val="{@text:bullet-char}"/>
+ </xsl:when>
+ <xsl:when test="@text:display-levels and not(../@text:consecutive-numbering='true')">
+ <xsl:variable name="levelText">
+ <xsl:call-template name="displaylevel">
+ <xsl:with-param name="number" select="@text:display-levels"/>
+ <xsl:with-param name="textlevel" select="@text:level"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <w:lvlText w:val="{concat(@style:num-prefix, substring-after($levelText, '.'), @style:num-suffix)}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:lvlText w:val="{concat(@style:num-prefix, '%', @text:level, @style:num-suffix)}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="style:list-level-properties/@fo:text-align = 'end'">
+ <w:lvlJc w:val="right"/>
+ </xsl:when>
+ <xsl:when test="style:list-level-properties/@fo:text-align = 'center'">
+ <w:lvlJc w:val="center"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:lvlJc w:val="left"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="style:list-level-properties/@text:space-before | style:list-level-properties/@text:min-label-width | style:list-level-properties/@text:min-label-distance">
+ <xsl:call-template name="list_position"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:suff w:val="Nothing"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates select="key('text-style',@text:style-name)/style:text-properties" mode="character"/>
+ <xsl:apply-templates select="style:text-properties" mode="character"/>
+ </w:lvl>
+ </xsl:if>
+ </xsl:for-each>
+ </w:listDef>
+ </xsl:template>
+ <xsl:template match="text:list-style" mode="count">
+ <xsl:value-of select="count(preceding::text:list-style | preceding::text:outline-style)+1"/>
+ </xsl:template>
+ <xsl:template match="text:unordered-list | text:ordered-list | text:list">
+ <xsl:apply-templates select="text:unordered-list | text:ordered-list | text:list-item | text:list-header | text:list"/>
+ </xsl:template>
+ <xsl:template match="text:list-item | text:list-header">
+ <xsl:apply-templates select="text:unordered-list | text:ordered-list | text:list | text:p | text:h"/>
+ </xsl:template>
+ <xsl:template name="displaylevel">
+ <xsl:param name="number"/>
+ <xsl:param name="textlevel"/>
+ <xsl:if test="$number &gt; 1">
+ <xsl:call-template name="displaylevel">
+ <xsl:with-param name="number" select="$number -1"/>
+ <xsl:with-param name="textlevel" select="number($textlevel)-1"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:value-of select="concat('.','%',$textlevel)"/>
+ </xsl:template>
+ <xsl:template name="list_position">
+ <xsl:variable name="spacebefore">
+ <xsl:choose>
+ <xsl:when test="style:list-level-properties/@text:space-before">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:list-level-properties/@text:space-before"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="space2text">
+ <xsl:choose>
+ <xsl:when test="style:list-level-properties/@text:min-label-width">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:list-level-properties/@text:min-label-width"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="spacedistance">
+ <xsl:choose>
+ <xsl:when test="style:list-level-properties/@text:min-label-distance">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:list-level-properties/@text:min-label-distance"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$spacedistance='0' and $space2text='0'">
+ <w:suff w:val="Nothing"/>
+ </xsl:if>
+ <w:pPr>
+ <xsl:if test="$spacedistance!='0' or $space2text!='0'">
+ <w:tabs>
+ <w:tab>
+ <xsl:attribute name="w:val">list</xsl:attribute>
+ <xsl:attribute name="w:pos"><xsl:choose><xsl:when test="number($spacedistance) &gt; number($space2text)"><xsl:value-of select="number($spacebefore)+number($spacedistance)+150"/></xsl:when><xsl:otherwise><xsl:value-of select="number($spacebefore)+number($space2text)+150"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <!-- Since SO MinSpaceDistance is width after number or bullet, MS TabSpaceAfter include the number or bullet width. So +150 -->
+ </w:tab>
+ </w:tabs>
+ </xsl:if>
+ <w:ind w:left="{number($space2text)+number($spacebefore)}" w:hanging="{$space2text}"/>
+ <!-- w:pos(MS TabSpaceAfter) = text:space-before + MAX(text:min-label-distance,text:min-label-width) + ( Symbol width ); w:left(MS IndentAt)= text:space-before + text:min-label-width; w:hanging(MS IndentAt - MS AlignedAt)=text:min-label-width -->
+ </w:pPr>
+ </xsl:template>
+ <xsl:template name="PicLists">
+ <xsl:for-each select="descendant::text:list-level-style-image">
+ <w:listPicBullet w:listPicBulletId="{position()-1}">
+ <w:pict>
+ <v:shape>
+ <xsl:variable name="Picwidth">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="style:list-level-properties/@fo:width"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="Picheight">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="style:list-level-properties/@fo:height"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style"><xsl:value-of select="concat('width:', number($Picwidth*1), 'pt;height:', number($Picheight*1), 'pt')"/></xsl:attribute>
+ <xsl:attribute name="o:bullet">t</xsl:attribute>
+ <v:stroke joinstyle="miter"/>
+ <w:binData w:name="{concat('wordml://SOpicbullet', position(), '.gif')}">
+ <xsl:value-of select="office:binary-data"/>
+ </w:binData>
+ <v:imagedata src="{concat('wordml://SOpicbullet', position(), '.gif')}" o:title="{concat('SOpicbullet', position())}"/>
+ </v:shape>
+ </w:pict>
+ </w:listPicBullet>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="convert_list_number">
+ <xsl:param name="number-format"/>
+ <xsl:choose>
+ <xsl:when test="$number-format = 'a'">
+ <!-- nfcLCLetter: Lowercase alpah -->
+ <w:nfc w:val="4"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'A'">
+ <!-- nfcUCLetter: Uppercase alpha -->
+ <w:nfc w:val="3"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'i'">
+ <!-- nfcLCRoman: Lowercase roman -->
+ <w:nfc w:val="2"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'I'">
+ <!-- nfcUCRoman: Uppercase roman -->
+ <w:nfc w:val="1"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '1, 2, 3, ...'">
+ <!-- '1, 2, 3, ...' also seems: decimal-full-width2 -->
+ <w:nfc w:val="14"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'â‘ , â‘¡, â‘¢, ...'">
+ <w:nfc w:val="18"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '一, 二, 三, ...'">
+ <!-- '一, 二, 三, ...' also seems: ideograph-digital, japanese-counting, japanese-digital-ten-thousand,
+ taiwanese-counting, taiwanese-counting-thousand, taiwanese-digital, chinese-counting, korean-digital2 -->
+ <w:nfc w:val="10"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '壹, è´°, å, ...'">
+ <w:nfc w:val="38"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '壹, è²³, åƒ, ...'">
+ <w:nfc w:val="34"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '甲, 乙, 丙, ...'">
+ <w:nfc w:val="30"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'å­, 丑, 寅, ...'">
+ <w:nfc w:val="31"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '壱, å¼, å‚, ...'">
+ <w:nfc w:val="16"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ア, イ, ウ, ...'">
+ <w:nfc w:val="12"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ï½±, ï½², ï½³, ...'">
+ <w:nfc w:val="20"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'イ, ロ, ãƒ, ...'">
+ <w:nfc w:val="13"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'イ, ロ, ハ, ...'">
+ <w:nfc w:val="21"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ì¼, ì´, 삼, ...'">
+ <!-- 'ì¼, ì´, 삼, ...' also seems: korean-counting -->
+ <w:nfc w:val="41"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ㄱ, ㄴ, ㄷ, ...' or $number-format = '㉠, ㉡, ㉢, ...'">
+ <!-- mapping circled to uncirled -->
+ <w:nfc w:val="25"/>
+ </xsl:when>
+ <xsl:when test='$number-format = "가, 나, 다, ..." or $number-format = "㉮, ㉯, ㉰, ..."'>
+ <!-- mapping circled to uncirled -->
+ <w:nfc w:val="24"/>
+ </xsl:when>
+ <xsl:when test="$number-format ='أ, ب, ت, ...'">
+ <!-- 46. hebrew-1-->
+ <w:nfc w:val="46"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'à¸, ข, ฃ, ...'">
+ <!--53. thai-letters not match well !-->
+ <w:nfc w:val="53"/>
+ </xsl:when>
+ <xsl:when test="$number-format='×, ב, ×’, ...'">
+ <!--45. arabic-alpha-->
+ <w:nfc w:val="45"/>
+ </xsl:when>
+ <xsl:when test="string-length($number-format)=0">
+ <w:nfc w:val="255"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'Native Numbering'">
+ <xsl:variable name="locale" select="/office:document/office:meta/dc:language"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($locale, 'th-')">
+ <!-- for Thai, mapping thai-numbers, thai-counting to thai-numbers -->
+ <w:nfc w:val="54"/>
+ </xsl:when>
+ <xsl:when test="starts-with($locale, 'hi-')">
+ <!-- for Hindi, mapping hindi-vowels, hindi-consonants, hindi-counting to hindi-numbers -->
+ <w:nfc w:val="51"/>
+ </xsl:when>
+ <xsl:when test="starts-with($locale, 'ar-')">
+ <!-- for Arabic, mapping arabic-abjad to arabic-alpha -->
+ <w:nfc w:val="45"/>
+ </xsl:when>
+ <xsl:when test="starts-with($locale, 'he-')">
+ <!-- for Hebrew, mapping hebrew-2 to -->
+ <w:nfc w:val="46"/>
+ </xsl:when>
+ <xsl:when test="starts-with($locale, 'ru-')">
+ <!-- for Russian, mapping russian-upper to russian-lower -->
+ <w:nfc w:val="58"/>
+ </xsl:when>
+ <xsl:when test="starts-with($locale, 'vi-')">
+ <!-- for Vietnamese -->
+ <w:nfc w:val="56"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <!-- unsupported: ordinal, cardinal-text, ordinal-text, hex, chicago, bullet, ideograph-zodiac-traditional,
+ chinese-not-impl, korean-legal, none -->
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml_page.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml_page.xsl
new file mode 100644
index 000000000000..477ee0b109f0
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml_page.xsl
@@ -0,0 +1,401 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <xsl:template name="page-background">
+ <xsl:choose>
+ <xsl:when test="/office:document/office:automatic-styles/style:page-layout/style:page-layout-properties/style:background-image[string-length(office:binary-data/text()) &gt; 0]">
+ <w:bgPict>
+ <xsl:apply-templates select="/office:document/office:automatic-styles/style:page-layout/style:page-layout-properties/style:background-image[string-length(office:binary-data/text()) &gt; 0]" mode="bgPict"/>
+ </w:bgPict>
+ </xsl:when>
+ <xsl:when test="/office:document/office:automatic-styles/style:page-layout/style:page-layout-properties[string-length(@fo:background-color) &gt; 0]">
+ <w:bgPict>
+ <xsl:apply-templates select="/office:document/office:automatic-styles/style:page-layout/style:page-layout-properties[string-length(@fo:background-color) &gt; 0]" mode="bgPict"/>
+ </w:bgPict>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="style:background-image" mode="bgPict">
+ <xsl:variable name="binName" select="concat('wordml://',generate-id(.))"/>
+ <w:binData w:name="{$binName}">
+ <xsl:value-of select="translate(office:binary-data/text(),'&#9;&#10;&#13;&#32;','' ) "/>
+ </w:binData>
+ <w:background w:bgcolor="{parent::style:page-layout-propertie/@fo:background-color}" w:background="{$binName}"/>
+ </xsl:template>
+ <xsl:template match="style:page-layout-properties" mode="bgPict">
+ <w:background w:bgcolor="{@fo:background-color}"/>
+ </xsl:template>
+ <xsl:template match="style:master-page">
+ <xsl:apply-templates select="key( 'page-layout', @style:page-layout-name)"/>
+ <xsl:if test="style:header">
+ <w:hdr w:type="odd">
+ <xsl:apply-templates select="style:header/text:p | style:header/table:table"/>
+ <!-- change style:header//text:p to style:header/text:p and add table:table here, fix for Issue 32035 -->
+ </w:hdr>
+ </xsl:if>
+ <xsl:if test="style:header-left">
+ <w:hdr w:type="even">
+ <xsl:apply-templates select="style:header-left/text:p | style:header-left/table:table"/>
+ <!-- change style:header//text:p to style:header/text:p and add table:table here, fix for Issue 32035 -->
+ </w:hdr>
+ </xsl:if>
+ <xsl:if test="style:footer">
+ <w:ftr w:type="odd">
+ <xsl:apply-templates select="style:footer/text:p | style:footer/table:table"/>
+ <!-- change style:header//text:p to style:header/text:p and add table:table here, fix for Issue 32035 -->
+ </w:ftr>
+ </xsl:if>
+ <xsl:if test="style:footer-left">
+ <w:ftr w:type="even">
+ <xsl:apply-templates select="style:footer-left/text:p | style:footer-left/table:table"/>
+ <!-- change style:header//text:p to style:header/text:p and add table:table here, fix for Issue 32035 -->
+ </w:ftr>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="style:page-layout">
+ <xsl:choose>
+ <xsl:when test="@style:page-usage = 'left'">
+ <w:type w:val="even-page"/>
+ </xsl:when>
+ <xsl:when test="@style:page-usage = 'right'">
+ <w:type w:val="odd-page"/>
+ </xsl:when>
+ <xsl:when test="@style:page-usage = 'all'">
+ <w:type w:val="next-page"/>
+ </xsl:when>
+ <!-- for mirrored, and default -->
+ <xsl:otherwise>
+ <w:type w:val="next-page"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="page-width">
+ <xsl:if test="style:page-layout-properties/@fo:page-width">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:page-layout-properties/@fo:page-width"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="margin-left">
+ <xsl:if test="style:page-layout-properties/@fo:margin-left">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:page-layout-properties/@fo:margin-left"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="margin-right">
+ <xsl:if test="style:page-layout-properties/@fo:margin-right">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:page-layout-properties/@fo:margin-right"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <w:pgSz>
+ <xsl:if test="style:page-layout-properties/@fo:page-width">
+ <xsl:attribute name="w:w">
+ <xsl:value-of select="$page-width"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@fo:page-height">
+ <xsl:attribute name="w:h">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:page-layout-properties/@fo:page-height"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@style:print-orientation">
+ <xsl:attribute name="w:orient">
+ <xsl:value-of select="style:page-layout-properties/@style:print-orientation"/>
+ </xsl:attribute>
+ </xsl:if>
+ </w:pgSz>
+ <w:pgMar>
+ <xsl:if test="style:page-layout-properties/@fo:margin-top">
+ <xsl:variable name="top-margin">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:page-layout-properties/@fo:margin-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:top">
+ <xsl:value-of select="$top-margin"/>
+ </xsl:attribute>
+ <xsl:if test="style:header-style/style:page-layout-properties/@fo:min-height">
+ <xsl:variable name="header-height">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:header-style/style:page-layout-properties/@fo:min-height"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:header">
+ <xsl:value-of select="$top-margin - $header-height"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@fo:margin-bottom">
+ <xsl:variable name="bottom-margin">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:page-layout-properties/@fo:margin-bottom"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:bottom">
+ <xsl:value-of select="$bottom-margin"/>
+ </xsl:attribute>
+ <xsl:if test="style:footer-style/style:page-layout-properties/@fo:min-height">
+ <xsl:variable name="footer-height">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="style:footer-style/style:page-layout-properties/@fo:min-height"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:footer">
+ <xsl:value-of select="$bottom-margin - $footer-height"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@fo:margin-left">
+ <xsl:attribute name="w:left">
+ <xsl:value-of select="$margin-left"/>
+ </xsl:attribute>
+ <xsl:attribute name="w:gutter">
+ <xsl:value-of select="'0'"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:page-layout-properties/@fo:margin-right">
+ <xsl:attribute name="w:right">
+ <xsl:value-of select="$margin-right"/>
+ </xsl:attribute>
+ </xsl:if>
+ </w:pgMar>
+ <xsl:variable name="border-top" select="style:page-layout-properties/@fo:border-top | style:page-layout-properties/@fo:border"/>
+ <xsl:variable name="border-bottom" select="style:page-layout-properties/@fo:border-bottom | style:page-layout-properties/@fo:border"/>
+ <xsl:variable name="border-left" select="style:page-layout-properties/@fo:border-left | style:page-layout-properties/@fo:border"/>
+ <xsl:variable name="border-right" select="style:page-layout-properties/@fo:border-right | style:page-layout-properties/@fo:border"/>
+ <xsl:variable name="border-line-width-top" select="style:page-layout-properties/@style:border-line-width-top | style:page-layout-properties/@style:border-line-width "/>
+ <xsl:variable name="border-line-width-bottom" select="style:page-layout-properties/@style:border-line-width-bottom | style:page-layout-properties/@style:border-line-width"/>
+ <xsl:variable name="border-line-width-left" select="style:page-layout-properties/@style:border-line-width-left | style:page-layout-properties/@style:border-line-width"/>
+ <xsl:variable name="border-line-width-right" select="style:page-layout-properties/@style:border-line-width-right | style:page-layout-properties/@style:border-line-width"/>
+ <xsl:variable name="padding-top" select="style:page-layout-properties/@fo:padding-top | style:page-layout-properties/@fo:padding"/>
+ <xsl:variable name="padding-bottom" select="style:page-layout-properties/@fo:padding-bottom | style:page-layout-properties/@fo:padding"/>
+ <xsl:variable name="padding-left" select="style:page-layout-properties/@fo:padding-left | style:page-layout-properties/@fo:padding"/>
+ <xsl:variable name="padding-right" select="style:page-layout-properties/@fo:padding-right | style:page-layout-properties/@fo:padding"/>
+ <w:pgBorders w:offset-from="text">
+ <xsl:if test="$border-top">
+ <xsl:element name="w:top">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-top"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-top"/>
+ <xsl:with-param name="so-border-position" select=" 'top' "/>
+ </xsl:call-template>
+ <xsl:attribute name="w:space">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$padding-top"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="style:page-layout-properties/@style:shadow!='none'">
+ <xsl:attribute name="w:shadow">on</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$border-bottom">
+ <xsl:element name="w:bottom">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-bottom"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-bottom"/>
+ <xsl:with-param name="so-border-position" select=" 'bottom' "/>
+ </xsl:call-template>
+ <xsl:attribute name="w:space">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$padding-bottom"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="style:page-layout-properties/@style:shadow!='none'">
+ <xsl:attribute name="w:shadow">on</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$border-left">
+ <xsl:element name="w:left">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-left"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-left"/>
+ <xsl:with-param name="so-border-position" select=" 'left' "/>
+ </xsl:call-template>
+ <xsl:attribute name="w:space">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$padding-left"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="style:page-layout-properties/@style:shadow!='none'">
+ <xsl:attribute name="w:shadow">on</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$border-right">
+ <xsl:element name="w:right">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-right"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-right"/>
+ <xsl:with-param name="so-border-position" select=" 'right' "/>
+ </xsl:call-template>
+ <xsl:attribute name="w:space">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$padding-right"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="style:page-layout-properties/@style:shadow!='none'">
+ <xsl:attribute name="w:shadow">on</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </w:pgBorders>
+ <xsl:variable name="valid-width">
+ <xsl:value-of select="$page-width - $margin-left - $margin-right"/>
+ </xsl:variable>
+ <xsl:apply-templates select="style:page-layout-properties/style:columns">
+ <xsl:with-param name="page-width" select="$valid-width"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="/office:document/office:styles/text:linenumbering-configuration"/>
+ </xsl:template>
+ <xsl:template match="text:linenumbering-configuration">
+ <xsl:if test="not(@text:number-lines = 'false')">
+ <xsl:element name="w:lnNumType">
+ <xsl:if test="@text:increment">
+ <xsl:attribute name="w:count-by">
+ <xsl:value-of select="@text:increment"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@text:offset">
+ <xsl:attribute name="w:distance">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@text:offset"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="w:restart">continuous</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="style:style" mode="section">
+ <xsl:param name="master-page"/>
+ <xsl:variable name="page-width">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$master-page/style:page-layout-properties/@fo:page-width"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="margin-left">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$master-page/style:page-layout-properties/@fo:margin-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="margin-right">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$master-page/style:page-layout-properties/@fo:margin-right"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="valid-width">
+ <xsl:value-of select="$page-width - $margin-left - $margin-right"/>
+ </xsl:variable>
+ <w:type w:val="continuous"/>
+ <xsl:apply-templates select="style:section-properties/style:columns">
+ <xsl:with-param name="page-width" select="$valid-width"/>
+ </xsl:apply-templates>
+ </xsl:template>
+ <xsl:template match="style:columns">
+ <xsl:param name="page-width"/>
+ <w:cols w:num="{@fo:column-count}">
+ <xsl:if test="@fo:column-gap">
+ <xsl:attribute name="w:space">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@fo:column-gap"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="style:column-sep">
+ <xsl:attribute name="w:sep">on</xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="not(style:column)">
+ <xsl:attribute name="w:equalWidth">on</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:equalWidth">off</xsl:attribute>
+ <xsl:variable name="column-relative-width">
+ <xsl:call-template name="get-sum-column-width">
+ <xsl:with-param name="current-column" select="style:column[1]"/>
+ <xsl:with-param name="current-width" select="'0'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:for-each select="style:column">
+ <xsl:element name="w:col">
+ <xsl:attribute name="w:w">
+ <xsl:value-of select="floor(substring-before(@style:rel-width,'*') * $page-width div $column-relative-width)"/>
+ </xsl:attribute>
+ <xsl:if test="@fo:margin-right">
+ <xsl:variable name="margin-right">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@fo:margin-right"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="following-sibling::style:column">
+ <xsl:variable name="margin-left">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@fo:margin-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:space">
+ <xsl:value-of select="$margin-right + $margin-left"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:space">
+ <xsl:value-of select="$margin-right"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </w:cols>
+ </xsl:template>
+ <xsl:template name="get-sum-column-width">
+ <xsl:param name="current-column"/>
+ <xsl:param name="current-width"/>
+ <xsl:variable name="new-width" select="$current-width + substring-before($current-column/@style:rel-width,'*')"/>
+ <xsl:choose>
+ <xsl:when test="$current-column/following-sibling::style:column">
+ <xsl:call-template name="get-sum-column-width">
+ <xsl:with-param name="current-column" select="$current-column/following-sibling::style:column[1]"/>
+ <xsl:with-param name="current-width" select="$new-width"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$new-width"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml_path.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml_path.xsl
new file mode 100644
index 000000000000..695bbb0c3ef8
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml_path.xsl
@@ -0,0 +1,858 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <xsl:include href="../../common/math.xsl"/>
+ <xsl:template name="test-arc">
+ <xsl:call-template name="svg-arc2vml-arc">
+ <!-- M 125,75 a100,50 0 ?,? 100,50 -->
+ <xsl:with-param name="x0" select="125"/>
+ <xsl:with-param name="y0" select="75"/>
+ <xsl:with-param name="rx" select="100"/>
+ <xsl:with-param name="ry" select="50"/>
+ <xsl:with-param name="x-axis-rotation" select="0"/>
+ <xsl:with-param name="large-arc-flag" select="0"/>
+ <xsl:with-param name="sweep-flag" select="0"/>
+ <xsl:with-param name="x" select="225"/>
+ <xsl:with-param name="y" select="125"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template name="test">
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="'M 36.0 162.0 C 38.0 168.0 39.0-172.0 40.0 176.0 S 42.0 184.0 144.0 188.0'"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template name="svgpath2vmlpath">
+ <xsl:param name="svg-path"/>
+ <xsl:param name="vml-path" select="''"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:param name="last-command" select="'M'"/>
+ <xsl:param name="current-x" select="'0'"/>
+ <xsl:param name="current-y" select="'0'"/>
+ <xsl:variable name="command-and-newpos">
+ <xsl:call-template name="get-path-command">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="last-command" select="$last-command"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="command" select="substring-before($command-and-newpos , ':')"/>
+ <xsl:variable name="newpos" select="substring-after($command-and-newpos , ':')"/>
+ <xsl:choose>
+ <xsl:when test="$command = 'M' ">
+ <!-- absolute moveto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' m ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="'L'"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'm' ">
+ <!-- relative moveto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' t ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="'l'"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x"/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'L' ">
+ <!-- absolute lineto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' l ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'l' ">
+ <!-- relative lineto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' r ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'H' ">
+ <!-- absolute horizontal lineto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' l ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , substring-before( $num-and-pos , ':') , ' ' , $current-y , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( $num-and-pos , ':') "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'h' ">
+ <!-- relative horizontal lineto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' l ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , substring-before( $num-and-pos , ':') + $current-x , ' ' , $current-y , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( $num-and-pos , ':') + $current-x"/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'V' ">
+ <!-- absolute vertical lineto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' l ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , $current-x , ' ' , substring-before( $num-and-pos , ':') , ' ' ) "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x"/>
+ <xsl:with-param name="current-y" select=" substring-before( $num-and-pos , ':') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'v' ">
+ <!-- relative horizontal lineto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' l ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , $current-x , ' ' , substring-before( $num-and-pos , ':') + $current-y , ' ' ) "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x"/>
+ <xsl:with-param name="current-y" select=" substring-before( $num-and-pos , ':') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'C' ">
+ <!-- absolute curveto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' c ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="4"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'c' ">
+ <!-- relative curveto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' v ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="4"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'S' ">
+ <!-- absolute shorthand/smooth curveto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' c ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="control-1">
+ <xsl:choose>
+ <xsl:when test="string-length(translate($last-command, 'CcSs','') )= 0 ">
+ <xsl:variable name="previous-control-2">
+ <xsl:call-template name="get-number-before">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="count" select="2"/>
+ <xsl:with-param name="skipcount" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="substring-before($previous-control-2 , ':') "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($control-and-pos, ':') "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , $control-1 , ' ' , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 's' ">
+ <!-- absolute shorthand/smooth curveto -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' v ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="control-1">
+ <xsl:choose>
+ <xsl:when test="string-length(translate($last-command, 'CcSs' , '')) = 0 ">
+ <xsl:variable name="previous-control-2">
+ <xsl:call-template name="get-number-before">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="count" select="2"/>
+ <xsl:with-param name="skipcount" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="substring-before($previous-control-2 , ':') "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($control-and-pos, ':') "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , $control-1 , ' ' , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'Q' ">
+ <!-- absolute quadratic bézier curves -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' qb ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'q' ">
+ <!-- relative quadratic bézier curves -->
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="control" select="substring-before( $control-and-pos , ':') "/>
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' qb ' , substring-before($control,' ') + $current-x , ' ' , substring-after($control , ' ') + $current-y ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="number" select="substring-before($num-and-pos, ':')"/>
+ <xsl:variable name="absolute-number" select="concat(substring-before($number, ' ') + $current-x , ' ' , substring-after($number, ' ') + $current-y)"/>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , ' ' , $absolute-number , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( $absolute-number , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( $absolute-number , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'Z' or $command = 'z' ">
+ <!-- closepath -->
+ <xsl:variable name="new-vml-path" select="concat($vml-path ,' x ' ) "/>
+ <xsl:call-template name="svgpath2vmlpath">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="vml-path" select=" concat($new-vml-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$vml-path"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-number-before">
+ <!-- get $count number of number before current position , output format:number1 number2 ... numberN:newpostion
+ skip $skipcount of numbers
+ -->
+ <xsl:param name="svg-path"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:param name="count" select="1"/>
+ <xsl:param name="skipcount" select="0"/>
+ <xsl:param name="number" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$count = 0">
+ <xsl:value-of select=" concat($number , ':' , $position) "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="num-pos">
+ <xsl:call-template name="get-number-position">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="direction" select="-1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="previous-num-and-pos">
+ <xsl:call-template name="get-previous-number">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$num-pos"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$skipcount &gt; 0">
+ <xsl:call-template name="get-number-before">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="substring-after($previous-num-and-pos , ':')"/>
+ <xsl:with-param name="count" select="$count"/>
+ <xsl:with-param name="skipcount" select="$skipcount - 1"/>
+ <xsl:with-param name="number" select="$number"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$skipcount = 0">
+ <xsl:variable name="new-number">
+ <xsl:if test="not($count = 1)">
+ <xsl:value-of select="' '"/>
+ </xsl:if>
+ <xsl:value-of select=" concat( substring-before($previous-num-and-pos , ':') , $number ) "/>
+ </xsl:variable>
+ <xsl:call-template name="get-number-before">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="substring-after($previous-num-and-pos , ':')"/>
+ <xsl:with-param name="count" select="$count - 1"/>
+ <xsl:with-param name="skipcount" select="0"/>
+ <xsl:with-param name="number" select="$new-number"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-number-after">
+ <!-- get $count number of number after current position, output format:number1 number2 ... numberN:newpostion
+ skip $skipcount of numbers
+ -->
+ <xsl:param name="svg-path"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:param name="count" select="1"/>
+ <xsl:param name="skipcount" select="0"/>
+ <xsl:param name="number" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$count = 0">
+ <xsl:value-of select=" concat($number , ':' , $position) "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="num-pos">
+ <xsl:call-template name="get-number-position">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="direction" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="next-num-and-pos">
+ <xsl:call-template name="get-next-number">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$num-pos"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$skipcount &gt; 0">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="substring-after($next-num-and-pos , ':')"/>
+ <xsl:with-param name="count" select="$count"/>
+ <xsl:with-param name="skipcount" select="$skipcount - 1"/>
+ <xsl:with-param name="number" select="$number"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$skipcount = 0">
+ <xsl:variable name="new-number">
+ <xsl:value-of select=" concat( $number , substring-before($next-num-and-pos , ':') ) "/>
+ <xsl:if test="not($count = 1)">
+ <xsl:value-of select="' '"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="substring-after($next-num-and-pos , ':')"/>
+ <xsl:with-param name="count" select="$count - 1"/>
+ <xsl:with-param name="skipcount" select="0"/>
+ <xsl:with-param name="number" select="$new-number"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-number-position">
+ <!-- get the next number start position, direction should be 1 or -1-->
+ <xsl:param name="svg-path"/>
+ <xsl:param name="position"/>
+ <xsl:param name="direction" select="1"/>
+ <xsl:choose>
+ <xsl:when test="$direction = 1 and $position &gt; string-length($svg-path) ">0</xsl:when>
+ <xsl:when test="$direction = -1 and not($position &gt; 0)">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="curr-char">
+ <xsl:if test="$direction = 1">
+ <xsl:value-of select="substring($svg-path, $position , 1)"/>
+ </xsl:if>
+ <xsl:if test="$direction = -1">
+ <xsl:value-of select="substring($svg-path, $position -1 , 1)"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length(translate($curr-char , '+-.0123456789' ,'')) = 0 ">
+ <!-- number start-->
+ <xsl:value-of select="$position"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-number-position">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position + $direction"/>
+ <xsl:with-param name="direction" select="$direction"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-next-number">
+ <!-- get the next number from current position-->
+ <xsl:param name="svg-path"/>
+ <xsl:param name="position"/>
+ <xsl:param name="number" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$position &gt; string-length($svg-path) ">
+ <xsl:value-of select=" concat(round($number) , ':' , $position) "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="curr-char" select="substring($svg-path, $position , 1)"/>
+ <xsl:choose>
+ <xsl:when test="string-length(translate($curr-char , '.0123456789' ,'')) = 0 ">
+ <!-- is number -->
+ <xsl:call-template name="get-next-number">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position +1"/>
+ <xsl:with-param name="number" select="concat( $number, $curr-char) "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , '+-' ,'') ) = 0 and string-length($number) = 0">
+ <!-- is number -->
+ <xsl:call-template name="get-next-number">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position +1"/>
+ <xsl:with-param name="number" select="concat( $number, $curr-char) "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat( round($number) , ':' , $position)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-previous-number">
+ <!-- get the previous number from current position-->
+ <xsl:param name="svg-path"/>
+ <xsl:param name="position"/>
+ <xsl:param name="number" select="''"/>
+ <xsl:choose>
+ <xsl:when test="not($position &gt; 0)">
+ <xsl:value-of select="concat( round($number ), ':0')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="curr-char" select="substring($svg-path, $position -1 , 1)"/>
+ <xsl:choose>
+ <xsl:when test="string-length(translate($curr-char , '.0123456789' ,'')) = 0 ">
+ <!-- is number -->
+ <xsl:call-template name="get-previous-number">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position -1"/>
+ <xsl:with-param name="number" select="concat($curr-char , $number) "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , '+-' ,'') ) = 0 and string-length($number) = 0">
+ <!-- skip it -->
+ <xsl:call-template name="get-previous-number">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position -1"/>
+ <xsl:with-param name="number" select="$number "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , '+-' ,'') ) = 0 and string-length($number) &gt; 0">
+ <!-- finsh it with +/- -->
+ <xsl:value-of select="concat( round( concat( $curr-char, $number)) , ':' , $position)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat( round($number) , ':' , $position)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-path-command">
+ <xsl:param name="svg-path"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:param name="last-command"/>
+ <xsl:choose>
+ <xsl:when test="$position &gt; string-length($svg-path) "/>
+ <xsl:otherwise>
+ <xsl:variable name="curr-char" select="substring($svg-path, $position , 1)"/>
+ <xsl:choose>
+ <xsl:when test="string-length(translate($curr-char , 'MmZzLlHhVvCcSsQqTtAa' ,'')) = 0 ">
+ <!-- "MmZzLlHhVvCcSsQqTtAa" are all possiable command chars -->
+ <xsl:value-of select="concat( $curr-char , ':' , $position +1)"/>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , '+-.0123456789' ,'')) = 0 ">
+ <!-- number start, use last command -->
+ <xsl:if test="string-length($last-command) = 0">
+ <xsl:message>ooo2wordml_path.xsl: Find undefined command</xsl:message>
+ </xsl:if>
+ <xsl:value-of select="concat( $last-command , ':' , $position )"/>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , ',&#9;&#10;&#13;&#32;' ,'')) = 0 ">
+ <!-- space or ',' should be skip -->
+ <xsl:call-template name="get-path-command">
+ <xsl:with-param name="svg-path" select="$svg-path"/>
+ <xsl:with-param name="position" select="$position +1"/>
+ <xsl:with-param name="last-command" select="$last-command"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>ooo2wordml_path.xsl: Find undefined command:<xsl:value-of select="$curr-char"/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="svg-arc2vml-arc">
+ <xsl:param name="x0"/>
+ <xsl:param name="y0"/>
+ <xsl:param name="rx"/>
+ <xsl:param name="ry"/>
+ <xsl:param name="x-axis-rotation" select="0"/>
+ <xsl:param name="large-arc-flag" select="0"/>
+ <xsl:param name="sweep-flag" select="0"/>
+ <xsl:param name="x"/>
+ <xsl:param name="y"/>
+ <!-- Compute 1/2 distance between current and final point -->
+ <xsl:variable name="dx2" select="($x0 - $x) div 2"/>
+ <xsl:variable name="dy2" select="($y0 - $y) div 2"/>
+ <!-- Convert from degrees to radians -->
+ <xsl:variable name="rotation-radian" select="$x-axis-rotation * $pi div 180"/>
+ <!-- Compute (x1, y1). What are x1,y1?-->
+ <xsl:variable name="cos-rotation">
+ <xsl:call-template name="cos">
+ <xsl:with-param name="x" select="$rotation-radian"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="sin-rotation">
+ <xsl:call-template name="sin">
+ <xsl:with-param name="x" select="$rotation-radian"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="x1" select="$cos-rotation * $dx2 + $sin-rotation * $dy2"/>
+ <xsl:variable name="y1" select="-1 * $sin-rotation * $dx2 + $cos-rotation * $dy2"/>
+ <!-- Make sure radii are large enough -->
+ <xsl:variable name="rx-abs">
+ <xsl:call-template name="abs">
+ <xsl:with-param name="x" select="$rx"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="ry-abs">
+ <xsl:call-template name="abs">
+ <xsl:with-param name="x" select="$ry"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="rx-sq" select="$rx-abs * $rx-abs"/>
+ <xsl:variable name="ry-sq" select="$ry-abs * $ry-abs"/>
+ <xsl:variable name="x1-sq" select="$x1 * $x1"/>
+ <xsl:variable name="y1-sq" select="$y1 * $y1"/>
+ <xsl:variable name="radius-check" select=" $x1-sq div $rx-sq + $y1-sq div $ry-sq "/>
+ <xsl:variable name="radius-check-sqrt">
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select="$radius-check"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="new-rx">
+ <xsl:choose>
+ <xsl:when test="$radius-check &gt; 1">
+ <xsl:value-of select="$rx-abs * $radius-check-sqrt"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$rx-abs"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="new-ry">
+ <xsl:choose>
+ <xsl:when test="$radius-check &gt; 1">
+ <xsl:value-of select="$ry-abs * $radius-check-sqrt"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$ry-abs"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="new-ry-sq">
+ <xsl:choose>
+ <xsl:when test="$radius-check &gt; 1">
+ <xsl:value-of select="$new-ry * $new-ry"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$ry-sq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="new-rx-sq">
+ <xsl:choose>
+ <xsl:when test="$radius-check &gt; 1">
+ <xsl:value-of select="$new-rx * $new-rx"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$rx-sq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- Step 2: Compute (cx1, cy1) -->
+ <xsl:variable name="sign">
+ <xsl:choose>
+ <xsl:when test="$large-arc-flag = $sweep-flag">-1</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="unchecked-sq" select=" (($new-rx-sq * $new-ry-sq) - ($new-rx-sq * $y1-sq) - ($new-ry-sq * $x1-sq)) div (($new-rx-sq * $y1-sq) + ($new-ry-sq * $x1-sq)) "/>
+ <xsl:variable name="sq">
+ <xsl:choose>
+ <xsl:when test=" $unchecked-sq &lt; 0">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$unchecked-sq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="sq-sqrt">
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select="$sq"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="coef" select="$sign * $sq-sqrt "/>
+ <xsl:variable name="cx1" select="$coef * $new-rx * $y1 div $new-ry"/>
+ <xsl:variable name="cy1" select=" -1 * $coef * $new-ry * $x1 div $new-rx"/>
+ <!-- Step 3: Compute (cx, cy) from (cx1, cy1) -->
+ <xsl:variable name="sx2" select="($x0 +$x) div 2 "/>
+ <xsl:variable name="sy2" select="($y0 +$y) div 2 "/>
+ <xsl:variable name="tmp1" select="$cos-rotation * $cx1 "/>
+ <xsl:variable name="tmp2" select="$cos-rotation * $cx1 "/>
+ <xsl:variable name="cx" select=" $sx2 + ( $cos-rotation * $cx1 - $sin-rotation * $cy1 ) "/>
+ <xsl:variable name="cy" select=" $sy2 + ( $sin-rotation * $cx1 + $cos-rotation * $cy1 ) "/>
+ <!-- Step 4: Compute angle start and angle extent -->
+ <xsl:variable name="ux" select="( $x1 - $cx1) div $new-rx"/>
+ <xsl:variable name="uy" select="( $y1 - $cy1) div $new-ry"/>
+ <xsl:variable name="vx" select="( - 1 * $x1 - $cx1) div $new-rx"/>
+ <xsl:variable name="vy" select="(- 1 * $y1 - $cy1) div $new-ry"/>
+ <xsl:variable name="n">
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select=" ($ux * $ux) + ($uy * $uy) "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <!-- 1 * ux + 0 * uy -->
+ <xsl:variable name="p" select="$ux"/>
+ <xsl:variable name="uy-sign">
+ <xsl:choose>
+ <xsl:when test=" $uy &lt; 0 ">-1</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="acos-pn">
+ <xsl:call-template name="acos">
+ <xsl:with-param name="x" select="$p div $n"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="theta" select="( $uy-sign * $acos-pn * 180 div $pi ) mod 360 "/>
+ <xsl:variable name="n-delta">
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select="($ux * $ux + $uy * $uy) * ($vx * $vx + $vy * $vy)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="p-delta" select="$ux * $vx + $uy * $vy"/>
+ <xsl:variable name="vy-sign">
+ <xsl:choose>
+ <xsl:when test="($ux * $vy - $uy * $vx) &lt; 0 ">-1</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="acos-pn-delta">
+ <xsl:call-template name="acos">
+ <xsl:with-param name="x" select="$p-delta div $n-delta"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="unchecked-delta" select="$vy-sign * $acos-pn-delta * 180 div $pi "/>
+ <xsl:variable name="delta">
+ <xsl:choose>
+ <xsl:when test=" $sweep-flag = 0 and $unchecked-delta &gt; 0 ">
+ <xsl:value-of select=" ($unchecked-delta - 360) mod 360 "/>
+ </xsl:when>
+ <xsl:when test=" $sweep-flag = 1 and $unchecked-delta &lt; 0 ">
+ <xsl:value-of select=" ($unchecked-delta + 360) mod 360 "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" $unchecked-delta mod 360 "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat ($cx, ' ' , $cy, ' ' , $rx, ' ' , $ry, ' ' , $theta, ' ' , $delta, ' ' , $x-axis-rotation) "/>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml_settings.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml_settings.xsl
new file mode 100644
index 000000000000..71312d57ed5e
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml_settings.xsl
@@ -0,0 +1,312 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <xsl:template match="office:settings">
+ <w:docPr>
+ <w:displayBackgroundShape/>
+ <xsl:variable name="view-settings" select="config:config-item-set[@config:name = 'view-settings']"/>
+ <xsl:choose>
+ <xsl:when test="$view-settings/config:config-item[@config:name = 'InBrowseMode'] = 'true'">
+ <w:view w:val="outline"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:view w:val="print"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="views" select="$view-settings/config:config-item-map-indexed[@config:name = 'Views']"/>
+ <w:zoom w:percent="{$views/config:config-item-map-entry/config:config-item[@config:name = 'ZoomFactor']}">
+ <xsl:variable name="zoom-type" select="$views/config:config-item-map-entry/config:config-item[@config:name = 'ZoomType']"/>
+ <xsl:choose>
+ <xsl:when test="$zoom-type = '3'">
+ <xsl:attribute name="w:val">best-fit</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$zoom-type = '2'">
+ <xsl:attribute name="w:val">full-page</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$zoom-type = '1'">
+ <xsl:attribute name="w:val">text-fit</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </w:zoom>
+ <w:defaultTabStop>
+ <xsl:attribute name="w:val"><xsl:call-template name="convert2twip"><xsl:with-param name="value" select="/office:document/office:styles/style:default-style[@style:family='paragraph']/style:paragraph-properties/@style:tab-stop-distance"/></xsl:call-template></xsl:attribute>
+ </w:defaultTabStop>
+ <xsl:if test="../office:master-styles/style:master-page/style:header-left">
+ <w:evenAndOddHeaders/>
+ </xsl:if>
+ <xsl:apply-templates select="/office:document/office:styles/text:footnotes-configuration"/>
+ <xsl:apply-templates select="/office:document/office:styles/text:endnotes-configuration"/>
+ <!-- add the variables declaration in w:docpr G.Y. Begin-->
+ <xsl:if test="/office:document/office:body/office:text/text:variable-decls | /office:document/office:body/office:text/text:user-field-decls |/office:document/office:body/office:text/text:sequence-decls ">
+ <xsl:call-template name="field_declare">
+ <xsl:with-param name="simple_field_variable_declares" select="/office:document/office:body/office:text/text:variable-decls"/>
+ <xsl:with-param name="user_field_variable_declares" select=" /office:document/office:body/office:text/text:user-field-decls"/>
+ <xsl:with-param name="field_sequence_declares" select="/office:document/office:body/office:text/text:sequence-decls"/>
+ </xsl:call-template>
+ </xsl:if>
+ <!--add the variables declaration in w:docpr G.Y. End-->
+ </w:docPr>
+ </xsl:template>
+ <xsl:template match="text:footnotes-configuration">
+ <xsl:param name="within-section"/>
+ <w:footnotePr>
+ <xsl:choose>
+ <xsl:when test="@text:footnotes-position = 'document'">
+ <w:pos w:val="beneath-text"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:pos w:val="page-bottom"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@text:start-value">
+ <w:numStart w:val="{@text:start-value + 1}"/>
+ </xsl:if>
+ <xsl:if test="@style:num-format">
+ <xsl:call-template name="convert-number-format">
+ <xsl:with-param name="number-format" select="@style:num-format"/>
+ <xsl:with-param name="number-prefix" select="@style:num-prefix"/>
+ <xsl:with-param name="number-suffix" select="@style:num-suffix"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="@text:start-numbering-at">
+ <xsl:choose>
+ <xsl:when test="@text:start-numbering-at = 'document'">
+ <w:numRestart w:val="continuous"/>
+ </xsl:when>
+ <xsl:when test="@text:start-numbering-at = 'page'">
+ <w:numRestart w:val="each-page"/>
+ </xsl:when>
+ <!-- convert "chapter" to "section" -->
+ <xsl:otherwise>
+ <w:numRestart w:val="each-sect"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$within-section != 'yes'">
+ <!-- because in SO/OOo footnote-sep is defined within every page-layout, but in Word XML footnote separator
+ is defined solely in docPr, so not trouble to find the proper footnote-sep definition. -->
+ <w:footnote w:type="separator">
+ <w:p>
+ <w:r>
+ <w:separator/>
+ </w:r>
+ </w:p>
+ </w:footnote>
+ <w:footnote w:type="continuation-separator">
+ <w:p>
+ <w:r>
+ <w:continuationSeparator/>
+ <xsl:if test="text:footnote-continuation-notice-backward">
+ <w:t>
+ <xsl:value-of select="text:footnote-continuation-notice-backward"/>
+ </w:t>
+ </xsl:if>
+ </w:r>
+ </w:p>
+ </w:footnote>
+ <xsl:if test="text:footnote-continuation-notice-forward">
+ <w:footnote w:type="continuation-notice">
+ <w:p>
+ <w:r>
+ <w:t>
+ <xsl:value-of select="text:footnote-continuation-notice-forward"/>
+ </w:t>
+ </w:r>
+ </w:p>
+ </w:footnote>
+ </xsl:if>
+ </xsl:if>
+ </w:footnotePr>
+ </xsl:template>
+ <xsl:template match="text:endnotes-configuration">
+ <xsl:param name="within-section"/>
+ <w:endnotePr>
+ <w:pos w:val="sect-end"/>
+ <xsl:if test="@text:start-value">
+ <w:numStart w:val="{@text:start-value + 1}"/>
+ </xsl:if>
+ <xsl:if test="@style:num-format">
+ <xsl:call-template name="convert-number-format">
+ <xsl:with-param name="number-format" select="@style:num-format"/>
+ <xsl:with-param name="number-prefix" select="@style:num-prefix"/>
+ <xsl:with-param name="number-suffix" select="@style:num-suffix"/>
+ </xsl:call-template>
+ </xsl:if>
+ <w:numRestart w:val="each-sect"/>
+ <xsl:if test="$within-section != 'yes'">
+ <w:endnote w:type="separator">
+ <w:p>
+ <w:r>
+ <w:separator/>
+ </w:r>
+ </w:p>
+ </w:endnote>
+ <w:endnote w:type="continuation-separator">
+ <w:p>
+ <w:r>
+ <w:continuationSeparator/>
+ </w:r>
+ </w:p>
+ </w:endnote>
+ </xsl:if>
+ </w:endnotePr>
+ </xsl:template>
+ <xsl:template name="convert-number-format">
+ <xsl:param name="number-format"/>
+ <xsl:param name="number-prefix"/>
+ <xsl:param name="number-suffix"/>
+ <xsl:choose>
+ <xsl:when test="$number-format = '1' and normalize-space($number-prefix) = '0'">
+ <w:numFmt w:val="decimal-zero"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '1' and normalize-space($number-suffix) = '.'">
+ <w:numFmt w:val="decimal-enclosed-fullstop"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '1' and normalize-space($number-prefix) = '(' and normalize-space($number-prefix) = ')'">
+ <w:numFmt w:val="decimal-enclosed-paren"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '1' and normalize-space($number-prefix) = '-' and normalize-space($number-prefix) = '-'">
+ <w:numFmt w:val="number-in-dash"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '1'">
+ <!-- '1' also seems: decimal-half-width -->
+ <w:numFmt w:val="decimal"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'a'">
+ <w:numFmt w:val="lower-letter"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'A'">
+ <w:numFmt w:val="upper-letter"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'i'">
+ <w:numFmt w:val="lower-roman"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'I'">
+ <w:numFmt w:val="upper-roman"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '1, 2, 3, ...'">
+ <!-- '1, 2, 3, ...' also seems: decimal-full-width2 -->
+ <w:numFmt w:val="decimal-full-width"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'â‘ , â‘¡, â‘¢, ...'">
+ <!-- decimal-enclosed-circle seems same -->
+ <w:numFmt w:val="decimal-enclosed-circle-chinese"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '一, 二, 三, ...' and normalize-space($number-prefix) = '(' and normalize-space($number-suffix) = ')'">
+ <w:numFmt w:val="ideograph-enclosed-circle"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '一, 二, 三, ...'">
+ <!-- '一, 二, 三, ...' also seems: ideograph-digital, japanese-counting, japanese-digital-ten-thousand,
+ taiwanese-counting, taiwanese-counting-thousand, taiwanese-digital, chinese-counting, korean-digital2 -->
+ <w:numFmt w:val="chinese-counting-thousand"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '壹, è´°, å, ...'">
+ <w:numFmt w:val="chinese-legal-simplified"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '壹, è²³, åƒ, ...'">
+ <w:numFmt w:val="ideograph-legal-traditional"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '甲, 乙, 丙, ...'">
+ <w:numFmt w:val="ideograph-traditional"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'å­, 丑, 寅, ...'">
+ <w:numFmt w:val="ideograph-zodiac"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '壱, å¼, å‚, ...'">
+ <w:numFmt w:val="japanese-legal"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ア, イ, ウ, ...'">
+ <w:numFmt w:val="aiueo-full-width"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ï½±, ï½², ï½³, ...'">
+ <w:numFmt w:val="aiueo"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'イ, ロ, ãƒ, ...'">
+ <w:numFmt w:val="iroha-full-width"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'イ, ロ, ハ, ...'">
+ <w:numFmt w:val="iroha"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ì¼, ì´, 삼, ...'">
+ <!-- 'ì¼, ì´, 삼, ...' also seems: korean-counting -->
+ <w:numFmt w:val="korean-digital"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ㄱ, ㄴ, ㄷ, ...' or $number-format = '㉠, ㉡, ㉢, ...'">
+ <!-- mapping circled to uncirled -->
+ <w:numFmt w:val="chosung"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '가, 나, 다, ...' or $number-format = '㉮, ㉯, ㉰, ...'">
+ <!-- mapping circled to uncirled -->
+ <w:numFmt w:val="ganada"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'أ, ب, ت, ...'">
+ <w:numFmt w:val="arabic-alpha"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'à¸, ข, ฃ, ...'">
+ <w:numFmt w:val="thai-letters"/>
+ </xsl:when>
+ <xsl:when test="$number-format = '×, ב, ×’, ...'">
+ <w:numFmt w:val="hebrew-1"/>
+ </xsl:when>
+ <xsl:when test="$number-format = 'Native Numbering'">
+ <xsl:variable name="locale" select="/office:document/office:meta/dc:language"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($locale, 'th-')">
+ <!-- for Thai, mapping thai-numbers, thai-counting to thai-letters -->
+ <w:numFmt w:val="thai-letters"/>
+ </xsl:when>
+ <xsl:when test="starts-with($locale, 'hi-')">
+ <!-- for Hindi, mapping hindi-vowels, hindi-consonants, hindi-counting to hindi-numbers -->
+ <w:numFmt w:val="hindi-numbers"/>
+ </xsl:when>
+ <xsl:when test="starts-with($locale, 'ar-')">
+ <!-- for Arabic, mapping arabic-abjad to arabic-alpha -->
+ <w:numFmt w:val="arabic-alpha"/>
+ </xsl:when>
+ <xsl:when test="starts-with($locale, 'he-')">
+ <!-- for Hebrew, mapping hebrew-2 to -->
+ <w:numFmt w:val="hebrew-1"/>
+ </xsl:when>
+ <xsl:when test="starts-with($locale, 'ru-')">
+ <!-- for Russian, mapping russian-upper to russian-lower -->
+ <w:numFmt w:val="russian-lower"/>
+ </xsl:when>
+ <xsl:when test="starts-with($locale, 'vi-')">
+ <!-- for Vietnamese -->
+ <w:numFmt w:val="vietnamese-counting"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <!-- unsupported: ordinal, cardinal-text, ordinal-text, hex, chicago, bullet, ideograph-zodiac-traditional,
+ chinese-not-impl, korean-legal -->
+ <xsl:otherwise>
+ <w:numFmt w:val="decimal"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml_table.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml_table.xsl
new file mode 100644
index 000000000000..67e4eafe01d7
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml_table.xsl
@@ -0,0 +1,416 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <xsl:key name="table-style" match="style:style[@style:family='table']" use="@style:name"/>
+ <xsl:key name="table-column-style" match="style:style[@style:family='table-column']" use="@style:name"/>
+ <xsl:key name="table-row-style" match="style:style[@style:family='table-row']" use="@style:name"/>
+ <xsl:key name="table-cell-style" match="style:style[@style:family='table-cell']" use="@style:name"/>
+ <xsl:template match="style:table-properties" mode="table">
+ <xsl:param name="within-body"/>
+ <xsl:if test="$within-body = 'yes'">
+ <w:tblW>
+ <xsl:choose>
+ <xsl:when test="@style:rel-width">
+ <xsl:attribute name="w:w"><xsl:value-of select="substring-before(@style:rel-width, '%') * 50"/></xsl:attribute>
+ <xsl:attribute name="w:type">pct</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:width">
+ <xsl:attribute name="w:w"><xsl:call-template name="convert2twip"><xsl:with-param name="value" select="@style:width"/></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="w:type">dxa</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:w">0</xsl:attribute>
+ <xsl:attribute name="w:type">auto</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </w:tblW>
+ </xsl:if>
+ <w:tblInd>
+ <xsl:choose>
+ <xsl:when test="@fo:margin-left">
+ <xsl:attribute name="w:w"><xsl:call-template name="convert2twip"><xsl:with-param name="value" select="@fo:margin-left"/></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="w:type">dxa</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:w">0</xsl:attribute>
+ <xsl:attribute name="w:type">auto</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </w:tblInd>
+ <xsl:if test="@table:align">
+ <w:jc>
+ <xsl:choose>
+ <xsl:when test="@table:align = 'left' or @table:align= 'center' or @table:align = 'right'">
+ <xsl:attribute name="w:val"><xsl:value-of select="@table:align"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:val">left</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </w:jc>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="table:table">
+ <!--fix for issue i32030 pagebreak before-->
+ <xsl:if test="key('table-style', @table:style-name)/style:table-properties/@fo:break-before">
+ <xsl:variable name="table-break-before" select="key('table-style', @table:style-name)/style:table-properties/@fo:break-before"/>
+ <xsl:choose>
+ <xsl:when test="$table-break-before = 'page' ">
+ <w:p>
+ <w:r>
+ <w:br w:type="page"/>
+ </w:r>
+ </w:p>
+ </xsl:when>
+ <xsl:when test="$table-break-before = 'column' ">
+ <w:p>
+ <w:r>
+ <w:br w:type="column"/>
+ </w:r>
+ </w:p>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <w:tbl>
+ <w:tblPr>
+ <xsl:if test="not (@table:is-sub-table) or (@table:is-sub-table = 'false' )">
+ <w:tblStyle w:val="{@table:style-name}"/>
+ <xsl:apply-templates select="key('table-style', @table:style-name)/style:table-properties" mode="table">
+ <xsl:with-param name="within-body" select="'yes'"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:if test="@table:is-sub-table ='true' ">
+ <w:tblW w:type="dxa">
+ <xsl:variable name="sub-table-width">
+ <xsl:call-template name="caculate-sub-table-width">
+ <xsl:with-param name="sub-table-column-node" select="table:table-column[1]"/>
+ <xsl:with-param name="total-sub-table-width" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:w"><xsl:value-of select="$sub-table-width"/></xsl:attribute>
+ </w:tblW>
+ <!--w:tblLayout w:type="Fixed"/-->
+ </xsl:if>
+ </w:tblPr>
+ <w:tblGrid>
+ <xsl:apply-templates select="table:table-column"/>
+ </w:tblGrid>
+ <xsl:apply-templates select="table:table-header-rows/table:table-row | table:table-row"/>
+ </w:tbl>
+ <!--fix for issue i32030 pagebreak after-->
+ <xsl:if test="key('table-style', @table:style-name)/style:table-properties/@fo:break-after">
+ <xsl:variable name="table-break-after" select=" key('table-style', @table:style-name)/style:table-properties/@fo:break-after"/>
+ <xsl:choose>
+ <xsl:when test="$table-break-after = 'page' ">
+ <w:p>
+ <w:r>
+ <w:br w:type="page"/>
+ </w:r>
+ </w:p>
+ </xsl:when>
+ <xsl:when test="$table-break-after = 'column' ">
+ <w:p>
+ <w:r>
+ <w:br w:type="column"/>
+ </w:r>
+ </w:p>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="name(..)= 'table:table-cell' ">
+ <w:p/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="caculate-sub-table-width">
+ <xsl:param name="sub-table-column-node"/>
+ <xsl:param name="total-sub-table-width"/>
+ <xsl:variable name="column-width" select="key('table-column-style', $sub-table-column-node/@table:style-name)/style:table-column-properties/@style:column-width"/>
+ <xsl:variable name="column-width-in-twip">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$column-width"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$sub-table-column-node/following-sibling::table:table-column">
+ <xsl:choose>
+ <xsl:when test="$sub-table-column-node/@table:number-columns-repeated">
+ <xsl:call-template name="caculate-sub-table-width">
+ <xsl:with-param name="sub-table-column-node" select="$sub-table-column-node/following-sibling::table:table-column[ 1]"/>
+ <xsl:with-param name="total-sub-table-width" select="$total-sub-table-width + $column-width-in-twip * $sub-table-column-node/@table:number-columns-repeated"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="caculate-sub-table-width">
+ <xsl:with-param name="sub-table-column-node" select="$sub-table-column-node/following-sibling::table:table-column[1]"/>
+ <xsl:with-param name="total-sub-table-width" select="$total-sub-table-width + $column-width-in-twip "/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$sub-table-column-node/@table:number-columns-repeated">
+ <xsl:value-of select="$total-sub-table-width + $column-width-in-twip * $sub-table-column-node/@table:number-columns-repeated"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$total-sub-table-width + $column-width-in-twip "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="table:table-column">
+ <xsl:variable name="column-width" select="key('table-column-style', @table:style-name)/style:table-column-properties/@style:column-width"/>
+ <xsl:variable name="column-width-in-twip">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$column-width"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- if table:table-column has attribute table:number-columns-repeated, then call the recursion
+ temple repeat-gridcol to produce multiple w:gridCol in MS word. Gary.Yang -->
+ <xsl:when test="@table:number-columns-repeated">
+ <xsl:call-template name="repeat-gridcol">
+ <xsl:with-param name="grid-repeat-count" select="@table:number-columns-repeated"/>
+ <xsl:with-param name="column-width" select="$column-width-in-twip"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:gridCol w:w="{$column-width-in-twip}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--recursion template for produce multiple w:gridCol Gary.Yang-->
+ <xsl:template name="repeat-gridcol">
+ <xsl:param name="grid-repeat-count"/>
+ <xsl:param name="column-width"/>
+ <xsl:if test="$grid-repeat-count &gt; 0">
+ <w:gridCol w:w="{$column-width}"/>
+ <xsl:call-template name="repeat-gridcol">
+ <xsl:with-param name="grid-repeat-count" select="$grid-repeat-count - 1"/>
+ <xsl:with-param name="column-width" select="$column-width"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="table:table-row">
+ <xsl:element name="w:tr">
+ <xsl:element name="w:trPr">
+ <xsl:if test="parent::table:table-header-rows">
+ <!-- fix for Issue 32034-->
+ <w:tblHeader>on</w:tblHeader>
+ </xsl:if>
+ <xsl:variable name="row-height" select="key('table-row-style', @table:style-name)/style:table-row-properties/@style:row-height"/>
+ <xsl:if test="$row-height">
+ <w:trHeight>
+ <xsl:attribute name="w:val"><xsl:call-template name="convert2twip"><xsl:with-param name="value" select="$row-height"/></xsl:call-template></xsl:attribute>
+ </w:trHeight>
+ </xsl:if>
+ </xsl:element>
+ <!--end of w:trPr-->
+ <xsl:apply-templates select="table:table-cell "/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="table:table-cell ">
+ <xsl:element name="w:tc">
+ <xsl:element name="w:tcPr">
+ <!-- to caclate the table-cell width Gary.Yang -->
+ <xsl:choose>
+ <!--when the table-cell contains the sub-table -->
+ <xsl:when test="table:table/@table:is-sub-table= 'true' ">
+ <xsl:variable name="table-cell-width">
+ <xsl:call-template name="caculate-sub-table-width">
+ <xsl:with-param name="sub-table-column-node" select="table:table/table:table-column[1]"/>
+ <xsl:with-param name="total-sub-table-width" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <w:tcW w:type="dxa">
+ <xsl:attribute name="w:w"><xsl:value-of select="$table-cell-width"/></xsl:attribute>
+ </w:tcW>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- when the table-cell doesn't contain the sub-table -->
+ <xsl:variable name="table-cell-width">
+ <xsl:call-template name="caculate-table-cell-width">
+ <xsl:with-param name="table-cell-position" select="position()"/>
+ <xsl:with-param name="table-column" select="ancestor::table:table[1]/table:table-column[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <w:tcW w:type="dxa">
+ <xsl:attribute name="w:w"><xsl:value-of select="$table-cell-width"/></xsl:attribute>
+ </w:tcW>
+ <!-- for performance issue, we can set w:type to auto that makes the cell width auto fit the content. -->
+ <!--w:tcW w:w="0" w:type="auto"/-->
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@table:number-columns-spanned">
+ <w:gridSpan w:val="{@table:number-columns-spanned}"/>
+ </xsl:if>
+ <xsl:variable name="cell-style-properties" select="key('table-cell-style', @table:style-name)/style:table-cell-properties"/>
+ <xsl:if test="$cell-style-properties/@fo:background-color">
+ <w:shd w:val="solid" w:color="{substring-after($cell-style-properties/@fo:background-color,'#')}"/>
+ </xsl:if>
+ <xsl:if test="$cell-style-properties/@fo:vertical-align">
+ <xsl:choose>
+ <xsl:when test="$cell-style-properties/@fo:vertical-align = 'middle'">
+ <w:vAlign w:val="center"/>
+ </xsl:when>
+ <xsl:when test="$cell-style-properties/@fo:vertical-align = 'Automatic'">
+ <w:vAlign w:val="both"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:vAlign w:val="{$cell-style-properties/@fo:vertical-align}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <w:tcMar>
+ <xsl:if test="$cell-style-properties/@fo:padding-top">
+ <w:top w:type="dxa">
+ <xsl:attribute name="w:w"><xsl:call-template name="convert2twip"><xsl:with-param name="value" select="$cell-style-properties/@fo:padding-top"/></xsl:call-template></xsl:attribute>
+ </w:top>
+ </xsl:if>
+ <xsl:if test="$cell-style-properties/@fo:padding-bottom">
+ <w:bottom w:type="dxa">
+ <xsl:attribute name="w:w"><xsl:call-template name="convert2twip"><xsl:with-param name="value" select="$cell-style-properties/@fo:padding-bottom"/></xsl:call-template></xsl:attribute>
+ </w:bottom>
+ </xsl:if>
+ <xsl:if test="$cell-style-properties/@fo:padding-left">
+ <w:left w:type="dxa">
+ <xsl:attribute name="w:w"><xsl:call-template name="convert2twip"><xsl:with-param name="value" select="$cell-style-properties/@fo:padding-left"/></xsl:call-template></xsl:attribute>
+ </w:left>
+ </xsl:if>
+ <xsl:if test="$cell-style-properties/@fo:padding-right">
+ <w:right w:type="dxa">
+ <xsl:attribute name="w:w"><xsl:call-template name="convert2twip"><xsl:with-param name="value" select="$cell-style-properties/@fo:padding-right"/></xsl:call-template></xsl:attribute>
+ </w:right>
+ </xsl:if>
+ </w:tcMar>
+ <!-- the following code is to get the cell borders if they exsits Gary.Yang-->
+ <xsl:variable name="border-top" select="$cell-style-properties/@fo:border-top | $cell-style-properties/@fo:border"/>
+ <xsl:variable name="border-bottom" select="$cell-style-properties/@fo:border-bottom | $cell-style-properties/@fo:border"/>
+ <xsl:variable name="border-left" select="$cell-style-properties/@fo:border-left | $cell-style-properties/@fo:border"/>
+ <xsl:variable name="border-right" select="$cell-style-properties/@fo:border-right | $cell-style-properties/@fo:border"/>
+ <xsl:variable name="border-line-width-top" select="$cell-style-properties/@style:border-line-width-top | $cell-style-properties/@style:border-line-width "/>
+ <xsl:variable name="border-line-width-bottom" select="$cell-style-properties/@style:border-line-width-bottom | $cell-style-properties/@style:border-line-width"/>
+ <xsl:variable name="border-line-width-left" select="$cell-style-properties/@style:border-line-width-left | $cell-style-properties/@style:border-line-width"/>
+ <xsl:variable name="border-line-width-right" select="$cell-style-properties/@style:border-line-width-right | $cell-style-properties/@style:border-line-width"/>
+ <xsl:element name="w:tcBorders">
+ <xsl:if test="$border-top">
+ <xsl:element name="w:top">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-top"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-top"/>
+ <xsl:with-param name="so-border-position" select=" 'top' "/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$border-bottom">
+ <xsl:element name="w:bottom">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-bottom"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-bottom"/>
+ <xsl:with-param name="so-border-position" select=" 'bottom' "/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$border-left">
+ <xsl:element name="w:left">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-left"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-left"/>
+ <xsl:with-param name="so-border-position" select=" 'left' "/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$border-right">
+ <xsl:element name="w:right">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-right"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-right"/>
+ <xsl:with-param name="so-border-position" select=" 'right' "/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ <xsl:if test="not (*) ">
+ <w:p/>
+ </xsl:if>
+ <xsl:apply-templates select=" text:p | table:table | text:h | office:annotation"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="caculate-table-cell-width">
+ <xsl:param name="table-cell-position"/>
+ <xsl:param name="table-column"/>
+ <xsl:choose>
+ <xsl:when test="$table-column/@table:number-columns-repeated">
+ <xsl:choose>
+ <xsl:when test="($table-cell-position - $table-column/@table:number-columns-repeated) &lt;= 0">
+ <xsl:variable name="table-cell-width" select="key('table-column-style', $table-column/@table:style-name)/style:table-column-properties/@style:column-width"/>
+ <xsl:variable name="table-cell-width-in-twip">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$table-cell-width"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$table-cell-width-in-twip"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="caculate-table-cell-width">
+ <xsl:with-param name="table-cell-position" select="$table-cell-position - $table-column/@table:number-columns-repeated"/>
+ <xsl:with-param name="table-column" select="$table-column/following-sibling::table:table-column[1]"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- if the $table-column doesn't contain the table:number-columns-repeated attribute -->
+ <xsl:choose>
+ <xsl:when test="($table-cell-position - 1) = 0">
+ <xsl:variable name="table-cell-width" select="key('table-column-style', $table-column/@table:style-name)/style:table-column-properties/@style:column-width"/>
+ <xsl:variable name="table-cell-width-in-twip">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$table-cell-width"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$table-cell-width-in-twip"/>
+ </xsl:when>
+ <xsl:when test="($table-cell-position - 1) &gt; 0">
+ <xsl:call-template name="caculate-table-cell-width">
+ <xsl:with-param name="table-cell-position" select=" $table-cell-position - 1 "/>
+ <xsl:with-param name="table-column" select="$table-column/following-sibling::table:table-column[1]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ <xsl:value-of select=" 'caculate table cell width wrong ' "/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/wordml/ooo2wordml_text.xsl b/test/user-template/user/xslt/export/wordml/ooo2wordml_text.xsl
new file mode 100644
index 000000000000..5ba97699d4fa
--- /dev/null
+++ b/test/user-template/user/xslt/export/wordml/ooo2wordml_text.xsl
@@ -0,0 +1,1279 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="office table style text draw svg dc config xlink meta oooc dom ooo chart math dr3d form script ooow draw">
+ <xsl:template match="style:paragraph-properties" mode="paragraph">
+ <w:pPr>
+ <w:adjustRightInd w:val="off"/>
+ <xsl:if test="@fo:break-before = 'page'">
+ <w:pageBreakBefore w:val="on"/>
+ </xsl:if>
+ <xsl:if test="contains(@style:writing-mode, 'rl')">
+ <w:bidi/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@fo:text-align-last = 'start'">
+ <xsl:choose>
+ <xsl:when test="contains(@style:writing-mode, 'rl')">
+ <w:jc w:val="right"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:jc w:val="left"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@fo:text-align-last = 'justify'">
+ <w:jc w:val="distribute"/>
+ </xsl:when>
+ <xsl:when test="@fo:text-align-last = 'center'">
+ <w:jc w:val="center"/>
+ </xsl:when>
+ <xsl:when test="@fo:text-align = 'start'">
+ <xsl:choose>
+ <xsl:when test="contains(@style:writing-mode, 'rl')">
+ <w:jc w:val="right"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:jc w:val="left"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@fo:text-align = 'end'">
+ <xsl:choose>
+ <xsl:when test="contains(@style:writing-mode, 'rl')">
+ <w:jc w:val="left"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:jc w:val="right"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@fo:text-align = 'justify'">
+ <w:jc w:val="distribute"/>
+ </xsl:when>
+ <xsl:when test="@fo:text-align = 'center'">
+ <w:jc w:val="center"/>
+ </xsl:when>
+ </xsl:choose>
+ <w:spacing>
+ <xsl:choose>
+ <xsl:when test="@fo:line-height">
+ <xsl:choose>
+ <xsl:when test="contains(@fo:line-height, '%')">
+ <xsl:attribute name="w:line-rule">auto</xsl:attribute>
+ <xsl:attribute name="w:line">
+ <xsl:value-of select="round(substring-before(@fo:line-height, '%') div 100 * 240)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:line-rule">exact</xsl:attribute>
+ <xsl:attribute name="w:line">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@fo:line-height"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@style:line-height-at-least">
+ <xsl:attribute name="w:line-rule">at-least</xsl:attribute>
+ <xsl:attribute name="w:line">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@style:line-height-at-least"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:line-spacing">
+ <xsl:attribute name="w:line-rule">auto</xsl:attribute>
+ <xsl:variable name="spacing">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@style:line-spacing"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:line">
+ <xsl:value-of select="round($spacing div 0.567)"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="@fo:margin-top">
+ <xsl:choose>
+ <xsl:when test="contains(@fo:margin-top, '%')">
+ <xsl:if test="../@style:parent-style-name">
+ <xsl:variable name="parent-size">
+ <xsl:value-of select="key('paragraph-style', ../@style:parent-style-name)/style:paragraph-properties/@fo:margin-top"/>
+ </xsl:variable>
+ <xsl:variable name="w-number">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$parent-size"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:before">
+ <xsl:value-of select="round($w-number div 100 * substring-before(@fo:margin-top, '%'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:before">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@fo:margin-top"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@fo:margin-bottom">
+ <xsl:choose>
+ <xsl:when test="contains(@fo:margin-bottom, '%')">
+ <xsl:if test="../@style:parent-style-name">
+ <xsl:variable name="parent-size">
+ <xsl:value-of select="key('paragraph-style', ../@style:parent-style-name)/style:paragraph-properties/@fo:margin-bottom"/>
+ </xsl:variable>
+ <xsl:variable name="w-number">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$parent-size"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:after">
+ <xsl:value-of select="round($w-number div 100 * substring-before(@fo:margin-bottom, '%'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:after">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@fo:margin-bottom"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </w:spacing>
+ <w:ind>
+ <xsl:if test="@fo:margin-left">
+ <xsl:choose>
+ <xsl:when test="contains(@fo:margin-left, '%')">
+ <xsl:if test="../@style:parent-style-name">
+ <xsl:variable name="parent-size">
+ <xsl:value-of select="key('paragraph-style', ../@style:parent-style-name)/style:paragraph-properties/@fo:margin-left"/>
+ </xsl:variable>
+ <xsl:variable name="w-number">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$parent-size"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:left">
+ <xsl:value-of select="round($w-number div 100 * substring-before(@fo:margin-left, '%'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:left">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@fo:margin-left"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@fo:margin-right">
+ <xsl:choose>
+ <xsl:when test="contains(@fo:margin-right, '%')">
+ <xsl:if test="../@style:parent-style-name">
+ <xsl:variable name="parent-size">
+ <xsl:value-of select="key('paragraph-style', ../@style:parent-style-name)/style:paragraph-properties/@fo:margin-right"/>
+ </xsl:variable>
+ <xsl:variable name="w-number">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$parent-size"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:right">
+ <xsl:value-of select="round($w-number div 100 * substring-before(@fo:margin-right, '%'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:right">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@fo:margin-right"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@fo:text-indent">
+ <xsl:choose>
+ <!-- When @style:auto-text-indent='true' @fo:text-indent ignored, use 283 for all font size -->
+ <xsl:when test="@style:auto-text-indent='true'">
+ <xsl:attribute name="w:first-line">283</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(@fo:text-indent, '%')">
+ <xsl:if test="../@style:parent-style-name">
+ <xsl:variable name="parent-size">
+ <xsl:value-of select="key('paragraph-style', ../@style:parent-style-name)/style:paragraph-properties/@fo:text-indent"/>
+ </xsl:variable>
+ <xsl:variable name="w-number">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$parent-size"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$w-number &lt; 0">
+ <xsl:attribute name="w:hanging">
+ <xsl:value-of select="round($w-number div -100 * substring-before(@fo:text-indent, '%'))"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:first-line">
+ <xsl:value-of select="round($w-number div 100 * substring-before(@fo:text-indent, '%'))"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="starts-with(@fo:text-indent,'-')">
+ <xsl:attribute name="w:hanging">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="substring-after(@fo:text-indent,'-')"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:first-line">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@fo:text-indent"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </w:ind>
+ <xsl:if test="contains(@fo:background-color, '#')">
+ <w:shd w:val="clear" w:color="auto" w:fill="{substring-after(@fo:background-color, '#')}"/>
+ </xsl:if>
+ <xsl:if test="@fo:keep-with-next='true'">
+ <w:keepNext/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@fo:widows | @fo:orphans">
+ <w:widowControl w:val="on"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:widowControl w:val="off"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@style:break-inside = 'avoid'">
+ <w:keepLines/>
+ </xsl:if>
+ <xsl:if test="@fo:hyphenate = 'false'">
+ <w:suppressAutoHyphens/>
+ </xsl:if>
+ <xsl:if test="@style:snap-to-layout-grid='false'">
+ <w:snapToGrid w:val="off"/>
+ </xsl:if>
+ <xsl:if test="style:tab-stops">
+ <w:tabs>
+ <xsl:for-each select="style:tab-stops/style:tab-stop">
+ <w:tab>
+ <xsl:choose>
+ <xsl:when test="@style:type='char'">
+ <xsl:attribute name="w:val">decimal</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:type">
+ <xsl:attribute name="w:val">
+ <xsl:value-of select="@style:type"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:val">left</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@style:leader-char">
+ <xsl:choose>
+ <xsl:when test="@style:leader-char='-'">
+ <xsl:attribute name="w:leader">hyphen</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:leader-char='_'">
+ <xsl:attribute name="w:leader">underscore</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@style:leader-char='.'">
+ <xsl:attribute name="w:leader">dot</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:leader">dot</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@style:position">
+ <xsl:attribute name="w:pos">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@style:position"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </w:tab>
+ </xsl:for-each>
+ </w:tabs>
+ </xsl:if>
+ <xsl:if test="@style:line-break='normal'">
+ <w:kinsoku w:val="off"/>
+ </xsl:if>
+ <xsl:if test="@style:punctuation-wrap='simple'">
+ <w:overflowPunct w:val="off"/>
+ </xsl:if>
+ <xsl:if test="@style:text-autospace='none'">
+ <w:autoSpaceDE w:val="off"/>
+ <w:autoSpaceDN w:val="off"/>
+ </xsl:if>
+ <xsl:if test="@style:vertical-align">
+ <xsl:element name="w:textAlignment">
+ <xsl:choose>
+ <xsl:when test="@style:vertical-align='middle'">
+ <xsl:attribute name="w:val">center</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:val">
+ <xsl:value-of select="@style:vertical-align"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@text:number-lines='false'">
+ <w:supressLineNumbers/>
+ </xsl:if>
+ <xsl:variable name="border-top" select="@fo:border-top | @fo:border"/>
+ <xsl:variable name="border-bottom" select="@fo:border-bottom | @fo:border"/>
+ <xsl:variable name="border-left" select="@fo:border-left | @fo:border"/>
+ <xsl:variable name="border-right" select="@fo:border-right | @fo:border"/>
+ <xsl:variable name="border-line-width-top" select="@style:border-line-width-top | @style:border-line-width "/>
+ <xsl:variable name="border-line-width-bottom" select="@style:border-line-width-bottom | @style:border-line-width"/>
+ <xsl:variable name="border-line-width-left" select="@style:border-line-width-left | @style:border-line-width"/>
+ <xsl:variable name="border-line-width-right" select="@style:border-line-width-right | @style:border-line-width"/>
+ <xsl:variable name="padding-top" select="@fo:padding-top | @fo:padding"/>
+ <xsl:variable name="padding-bottom" select="@fo:padding-bottom | @fo:padding"/>
+ <xsl:variable name="padding-left" select="@fo:padding-left | @fo:padding"/>
+ <xsl:variable name="padding-right" select="@fo:padding-right | @fo:padding"/>
+ <w:pBdr>
+ <xsl:if test="$border-top">
+ <xsl:element name="w:top">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-top"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-top"/>
+ <xsl:with-param name="so-border-position" select=" 'top' "/>
+ </xsl:call-template>
+ <xsl:attribute name="w:space">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$padding-top"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="@style:shadow!='none'">
+ <xsl:attribute name="w:shadow">on</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$border-bottom">
+ <xsl:element name="w:bottom">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-bottom"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-bottom"/>
+ <xsl:with-param name="so-border-position" select=" 'bottom' "/>
+ </xsl:call-template>
+ <xsl:attribute name="w:space">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$padding-bottom"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="@style:shadow!='none'">
+ <xsl:attribute name="w:shadow">on</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$border-left">
+ <xsl:element name="w:left">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-left"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-left"/>
+ <xsl:with-param name="so-border-position" select=" 'left' "/>
+ </xsl:call-template>
+ <xsl:attribute name="w:space">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$padding-left"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="@style:shadow!='none'">
+ <xsl:attribute name="w:shadow">on</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$border-right">
+ <xsl:element name="w:right">
+ <xsl:call-template name="get-border">
+ <xsl:with-param name="so-border" select="$border-right"/>
+ <xsl:with-param name="so-border-line-width" select="$border-line-width-right"/>
+ <xsl:with-param name="so-border-position" select=" 'right' "/>
+ </xsl:call-template>
+ <xsl:attribute name="w:space">
+ <xsl:call-template name="convert2pt">
+ <xsl:with-param name="value" select="$padding-right"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="@style:shadow!='none'">
+ <xsl:attribute name="w:shadow">on</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="@style:shadow!='none' and not(@fo:border-top | @fo:border-bottom | @fo:border-left | @fo:border-right | @fo:border)">
+ <xsl:element name="w:right">
+ <xsl:attribute name="w:shadow">on</xsl:attribute>
+ <xsl:attribute name="w:val">single</xsl:attribute>
+ <xsl:variable name="shadow-size">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="substring-after(substring-after(@style:shadow, ' '), ' ')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:sz">
+ <xsl:choose>
+ <xsl:when test="$shadow-size &lt;= 0.08">12</xsl:when>
+ <xsl:when test="$shadow-size &lt;= 0.14">18</xsl:when>
+ <xsl:when test="$shadow-size &lt;= 0.20">24</xsl:when>
+ <xsl:when test="$shadow-size &lt;= 0.25">36</xsl:when>
+ <xsl:otherwise>48</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:element>
+ <xsl:element name="w:bottom">
+ <xsl:attribute name="w:shadow">on</xsl:attribute>
+ <xsl:attribute name="w:val">single</xsl:attribute>
+ <xsl:variable name="shadow-size">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="substring-after(substring-after(@style:shadow, ' '), ' ')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="w:sz">
+ <xsl:choose>
+ <xsl:when test="$shadow-size &lt;= 0.08">12</xsl:when>
+ <xsl:when test="$shadow-size &lt;= 0.14">18</xsl:when>
+ <xsl:when test="$shadow-size &lt;= 0.20">24</xsl:when>
+ <xsl:when test="$shadow-size &lt;= 0.25">36</xsl:when>
+ <xsl:otherwise>48</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </w:pBdr>
+ <w:ind>
+ <xsl:if test="$padding-left!=''">
+ <xsl:attribute name="w:left">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$padding-left"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$padding-right!='' ">
+ <xsl:attribute name="w:right">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="$padding-right"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </w:ind>
+ <xsl:variable name="stylename">
+ <xsl:value-of select="../@style:name"/>
+ </xsl:variable>
+ <xsl:if test="/office:document/office:body//text:h[@text:style-name = $stylename]">
+ <xsl:variable name="headinglevel">
+ <xsl:value-of select="/office:document/office:body//text:h[@text:style-name = $stylename]/@text:level"/>
+ </xsl:variable>
+ <xsl:if test="/office:document/office:styles/text:outline-style/text:outline-level-style[@text:level = $headinglevel]">
+ <w:listPr>
+ <w:ilvl w:val="{$headinglevel -1}"/>
+ <w:ilfo w:val="1"/>
+ </w:listPr>
+ </xsl:if>
+ </xsl:if>
+ </w:pPr>
+ </xsl:template>
+ <xsl:template match="style:text-properties" mode="character">
+ <w:rPr>
+ <xsl:if test="@svg:font-family | @style:font-name | @style:font-name-asian | @style:font-name-complex">
+ <w:rFonts>
+ <xsl:variable name="fontname">
+ <xsl:choose>
+ <xsl:when test='starts-with(@svg:font-family,"&apos;")'>
+ <xsl:value-of select='substring-before(substring-after(@svg:font-family,"&apos;"),"&apos;")'/>
+ </xsl:when>
+ <xsl:when test="@svg:font-family">
+ <xsl:value-of select="@svg:font-family"/>
+ </xsl:when>
+ <xsl:when test="@style:font-name">
+ <xsl:value-of select="@style:font-name"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="string-length($fontname)!=0">
+ <xsl:attribute name="w:ascii">
+ <xsl:value-of select="$fontname"/>
+ </xsl:attribute>
+ <xsl:attribute name="w:h-ansi">
+ <xsl:value-of select="$fontname"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@style:font-name-asian">
+ <xsl:attribute name="w:fareast">
+ <xsl:value-of select="@style:font-name-asian"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@style:font-name-complex">
+ <xsl:attribute name="w:cs">
+ <xsl:value-of select="@style:font-name-complex"/>
+ </xsl:attribute>
+ </xsl:if>
+ </w:rFonts>
+ </xsl:if>
+ <!-- relative font sizes not supported yet. -->
+ <xsl:if test="contains(@fo:font-size, 'pt')">
+ <w:sz w:val="{substring-before(@fo:font-size,'pt') * 2}"/>
+ </xsl:if>
+ <xsl:if test="contains(@fo:font-size-complex, 'pt')">
+ <w:sz-cs w:val="{substring-before(@fo:font-size-complex, 'pt') * 2}"/>
+ </xsl:if>
+ <xsl:if test="@fo:font-style = 'italic' or @fo:font-style-asian = 'italic'">
+ <w:i/>
+ </xsl:if>
+ <xsl:if test="@fo:font-style-complex = 'italic'">
+ <w:i-cs/>
+ </xsl:if>
+ <xsl:if test="@fo:font-weight = 'bold' or @fo:font-weight-asian = 'bold'">
+ <w:b/>
+ </xsl:if>
+ <xsl:if test="@fo:font-weight-complex = 'bold'">
+ <w:b-cs/>
+ </xsl:if>
+ <xsl:if test="@style:text-underline-style">
+ <w:u>
+ <xsl:variable name="w-u">
+ <xsl:choose>
+ <xsl:when test="@style:text-underline-style = 'solid'">
+ <xsl:choose>
+ <xsl:when test="@style:text-underline-type = 'double'">double</xsl:when>
+ <xsl:when test="@style:text-underline-width = 'bold'">thick</xsl:when>
+ <xsl:otherwise>single</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@style:text-underline-style = 'dotted'">
+ <xsl:choose>
+ <xsl:when test="@style:text-underline-type = 'double'">dotted-double</xsl:when>
+ <xsl:when test="@style:text-underline-width = 'bold'">dotted-heavy</xsl:when>
+ <xsl:otherwise>dotted</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@style:text-underline-style = 'dash'">
+ <xsl:choose>
+ <xsl:when test="@style:text-underline-type = 'double'">dashed-double</xsl:when>
+ <xsl:when test="@style:text-underline-width = 'bold'">dashed-heavy</xsl:when>
+ <xsl:otherwise>dash</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@style:text-underline-style = 'long-dash'">
+ <xsl:choose>
+ <xsl:when test="@style:text-underline-type = 'double'">dash-long-double</xsl:when>
+ <xsl:when test="@style:text-underline-width = 'bold'">dash-long-heavy</xsl:when>
+ <xsl:otherwise>dash-long</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@style:text-underline-style = 'dot-dash'">
+ <xsl:choose>
+ <xsl:when test="@style:text-underline-type = 'double'">dot-dash-double</xsl:when>
+ <xsl:when test="@style:text-underline-width = 'bold'">dash-dot-heavy</xsl:when>
+ <xsl:otherwise>dot-dash</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@style:text-underline-style = 'dot-dot-dash'">
+ <xsl:choose>
+ <xsl:when test="@style:text-underline-type = 'double'">dot-dot-dash-double</xsl:when>
+ <xsl:when test="@style:text-underline-width = 'bold'">dash-dot-dot-heavy</xsl:when>
+ <xsl:otherwise>dot-dot-dash</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@style:text-underline-style = 'wave'">
+ <xsl:choose>
+ <xsl:when test="@style:text-underline-type = 'double'">wavy-double</xsl:when>
+ <xsl:when test="@style:text-underline-width = 'bold'">wavy-heavy</xsl:when>
+ <xsl:otherwise>wave</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@style:text-underline-style"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="w:val">
+ <xsl:value-of select="$w-u"/>
+ </xsl:attribute>
+ <xsl:if test="contains(@style:text-underline-color,'#')">
+ <xsl:attribute name="w:color">
+ <xsl:value-of select="substring-after(@style:text-underline-color,'#')"/>
+ </xsl:attribute>
+ </xsl:if>
+ </w:u>
+ </xsl:if>
+ <xsl:if test="@style:text-shadow | @fo:text-shadow">
+ <w:shadow/>
+ </xsl:if>
+ <xsl:if test="string-length(@style:text-line-through-style) &gt; 0">
+ <xsl:choose>
+ <xsl:when test="@style:text-line-through-type = 'double'">
+ <w:dstrike/>
+ </xsl:when>
+ <xsl:when test="@style:text-line-through-style = 'solid'">
+ <w:strike/>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:strike/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@fo:color">
+ <w:color>
+ <xsl:choose>
+ <xsl:when test="@fo:color != '#000000'">
+ <xsl:attribute name="w:val">
+ <xsl:value-of select="substring-after(@fo:color,'#')"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="w:val">auto</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </w:color>
+ </xsl:if>
+ <xsl:if test="@fo:font-variant = 'small-caps'">
+ <w:smallCaps/>
+ </xsl:if>
+ <xsl:if test="@fo:text-transform = 'uppercase'">
+ <w:caps/>
+ </xsl:if>
+ <xsl:if test="@style:font-relief = 'engraved'">
+ <w:imprint/>
+ </xsl:if>
+ <xsl:if test="@style:font-relief = 'embossed'">
+ <w:emboss/>
+ </xsl:if>
+ <xsl:if test="@style:text-outline = 'true'">
+ <w:outline/>
+ </xsl:if>
+ <xsl:if test="contains(@style:text-scale,'%')">
+ <w:w w:val="{substring-before(@style:text-scale,'%')}"/>
+ </xsl:if>
+ <xsl:if test="@style:text-emphasize">
+ <w:em>
+ <xsl:choose>
+ <xsl:when test="contains(@style:text-emphasize, 'accent')">
+ <xsl:attribute name="w:val">comma</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(@style:text-emphasize, 'disc')">
+ <xsl:attribute name="w:val">under-dot</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(@style:text-emphasize, 'none')">
+ <xsl:attribute name="w:val">none</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(@style:text-emphasize, 'dot below')">
+ <xsl:attribute name="w:val">under-dot</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(@style:text-emphasize, 'dot above')">
+ <xsl:attribute name="w:val">dot</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(@style:text-emphasize, 'circle')">
+ <xsl:attribute name="w:val">dot</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </w:em>
+ </xsl:if>
+ <xsl:if test="@fo:letter-spacing != 'normal'">
+ <w:spacing>
+ <xsl:attribute name="w:val">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="@fo:letter-spacing"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </w:spacing>
+ </xsl:if>
+ <xsl:if test="@style:text-blinking = 'true'">
+ <w:effect w:val="blink-background"/>
+ </xsl:if>
+ <xsl:if test="@fo:language | @fo:language-asian | @fo:language-complex">
+ <w:lang>
+ <xsl:if test="@fo:language and @fo:country">
+ <xsl:attribute name="w:val">
+ <xsl:value-of select="concat(@fo:language, '-', @fo:country)"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@fo:language-asian and @fo:country-asian">
+ <xsl:attribute name="w:fareast">
+ <xsl:value-of select="concat(@fo:language-asian, '-', @fo:country-asian)"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@fo:language-complex and @fo:language-complex">
+ <xsl:attribute name="w:bidi">
+ <xsl:value-of select="concat(@fo:language-complex, '-', @fo:language-complex)"/>
+ </xsl:attribute>
+ </xsl:if>
+ </w:lang>
+ </xsl:if>
+ <xsl:if test="@style:text-position">
+ <xsl:variable name="position">
+ <xsl:choose>
+ <xsl:when test="starts-with(@style:text-position, 'super')">superscript_0</xsl:when>
+ <xsl:when test="starts-with(@style:text-position, 'sub')">subscript_0</xsl:when>
+ <xsl:when test="starts-with(@style:text-position, '-')">
+ <xsl:value-of select="concat('subscript_', substring-before(@style:text-position,'%'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('superscript_', substring-before(@style:text-position,'%'))"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <w:vertAlign>
+ <xsl:attribute name="w:val">
+ <xsl:value-of select="substring-before($position,'_')"/>
+ </xsl:attribute>
+ </w:vertAlign>
+ <!-- Raised/Lowed position is difficult to map to MSWord w:position, Writer use %, but Word use half-point(not relative position). Since it's difficult to get font-size, use 12pt as default font-size -->
+ <w:position>
+ <xsl:attribute name="w:val">
+ <xsl:choose>
+ <xsl:when test="substring-after($position, '_') = 0">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="round(substring-after($position, '_') div 6)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </w:position>
+ </xsl:if>
+ <xsl:if test="@text:display = 'true'">
+ <w:vanish/>
+ </xsl:if>
+ <xsl:if test="contains(@fo:background-color, '#')">
+ <w:shd w:val="clear" w:color="auto" w:fill="{substring-after(@fo:background-color, '#')}"/>
+ </xsl:if>
+ </w:rPr>
+ </xsl:template>
+ <xsl:template match="text:p | text:h">
+ <w:p>
+ <w:pPr>
+ <xsl:if test="@text:style-name">
+ <w:pStyle w:val="{@text:style-name}"/>
+ </xsl:if>
+ <xsl:if test="@text:level">
+ <w:outlineLvl w:val="{@text:level - 1}"/>
+ </xsl:if>
+ <xsl:variable name="following-paragraph-heading-table" select="following::*[(name()= 'text:p' or name()= 'text:h' or name()= 'table:table')]"/>
+ <xsl:variable name="following-section" select="following::text:section[1]"/>
+ <xsl:variable name="ancestor-section" select="ancestor::text:section"/>
+ <!-- if the following neighbour paragraph/heading are slave of one master style, or new section starts,
+ then a new page will start -->
+ <xsl:variable name="next-is-new-page" select="boolean(key( 'slave-style', $following-paragraph-heading-table[1]/@*[name()='text:style-name' or name()='table:style-name']))"/>
+ <xsl:variable name="next-is-new-section">
+ <xsl:if test="$following-section and generate-id($following-section/descendant::*[(name()= 'text:p' or name()= 'text:h' or name()= 'table:table') and position() =1]) = generate-id($following-paragraph-heading-table[1])">
+ <xsl:value-of select="'yes'"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="next-is-section-end">
+ <xsl:if test="$ancestor-section and generate-id($ancestor-section[1]/following::*[(name()= 'text:p' or name()= 'text:h' or name()= 'table:table') and position() =1]) = generate-id($following-paragraph-heading-table[1])">
+ <xsl:value-of select="'yes'"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:if test="ancestor::office:body and not(ancestor::text:footnote or ancestor::text:endnote) and ($next-is-new-page or $next-is-new-section = 'yes' or $next-is-section-end = 'yes')">
+ <w:sectPr>
+ <xsl:apply-templates select="/office:document/office:styles/text:footnotes-configuration">
+ <xsl:with-param name="within-section" select="'yes'"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="/office:document/office:styles/text:endnotes-configuration">
+ <xsl:with-param name="within-section" select="'yes'"/>
+ </xsl:apply-templates>
+ <xsl:choose>
+ <xsl:when test="key( 'slave-style', @*[name()='text:style-name' or name()='table:style-name'])">
+ <xsl:apply-templates select="key('master-page', key( 'slave-style', @*[name()='text:style-name' or name()='table:style-name'])[1]/@style:master-page-name)"/>
+ <xsl:if test="$ancestor-section">
+ <xsl:apply-templates select="key('section-style',$ancestor-section[1]/@text:style-name)" mode="section">
+ <xsl:with-param name="master-page" select="key( 'page-layout', key('master-page', key( 'slave-style', @*[name()='text:style-name' or name()='table:style-name'])[1]/@style:master-page-name)/@style:page-layout-name)"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:if test="key( 'slave-style', @*[name()='text:style-name' or name()='table:style-name'])/style:paragraph-properties/@style:page-number">
+ <!-- in M$ word the header and footer associate with the w:sectPr, but in StarOffice writer the header and footer associate with the style:master-page -->
+ <xsl:variable name="pagenumber_start">
+ <xsl:value-of select=" key( 'slave-style', @*[name()='text:style-name' or name()='table:style-name'])/style:paragraph-properties/@style:page-number"/>
+ </xsl:variable>
+ <xsl:if test=" number($pagenumber_start) &gt; 0 ">
+ <w:pgNumType w:start="{$pagenumber_start}"/>
+ </xsl:if>
+ <!-- comment out the below line to enable the header and footer display normally when style:page-number =0 -->
+ <!--w:pgNumType w:start="{key( 'slave-style', @*[name()='text:style-name' or name()='table:style-name'])/style:paragraph-properties/@style:page-number}"/ -->
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="preceding-style" select="preceding::*[(name()= 'text:p' or name()= 'text:h' or name()= 'table:table') and key( 'slave-style', @*[name()='text:style-name' or name()='table:style-name'])]"/>
+ <xsl:choose>
+ <xsl:when test="$preceding-style">
+ <xsl:apply-templates select="key('master-page', key( 'slave-style', $preceding-style[1]/@*[name()='text:style-name' or name()='table:style-name'])[1]/@style:master-page-name)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="/office:document/office:master-styles/style:master-page[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$ancestor-section">
+ <xsl:choose>
+ <xsl:when test="$preceding-style">
+ <xsl:apply-templates select="key('section-style',$ancestor-section[1]/@text:style-name)" mode="section">
+ <xsl:with-param name="master-page" select="key( 'page-layout', key('master-page', key( 'slave-style', $preceding-style[1]/@*[name()='text:style-name' or name()='table:style-name'])[1]/@style:master-page-name)/@style:page-layout-name)"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="key('section-style',$ancestor-section[1]/@text:style-name)" mode="section">
+ <xsl:with-param name="master-page" select="/office:document/office:automatic-styles/style:page-layout[1]"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </w:sectPr>
+ </xsl:if>
+ <!-- add for office:annotation style G.Y. -->
+ <xsl:if test="name(..)= 'office:annotation' ">
+ <w:pStyle w:val="CommentText"/>
+ </xsl:if>
+ <!-- add by wym for listPr -->
+ <xsl:if test="ancestor::text:ordered-list | ancestor::text:unordered-list | ancestor::text:list">
+ <xsl:variable name="listname">
+ <xsl:value-of select="ancestor::text:ordered-list/@text:style-name | ancestor::text:unordered-list/@text:style-name | ancestor::text:list/@text:style-name"/>
+ </xsl:variable>
+ <xsl:variable name="currlevel">
+ <xsl:value-of select="count(ancestor::text:list-item|ancestor::text:list-header)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($listname)!=0 and $currlevel &lt; 10">
+ <xsl:variable name="currlist">
+ <xsl:apply-templates select="key('list-style', $listname)" mode="count"/>
+ </xsl:variable>
+ <w:listPr>
+ <w:ilvl w:val="{number($currlevel)-1}"/>
+ <w:ilfo w:val="{$currlist}"/>
+ </w:listPr>
+ </xsl:when>
+ <xsl:when test="string-length($listname)!=0">
+ <xsl:for-each select="key('list-style', $listname)">
+ <xsl:variable name="spacebefore">
+ <xsl:choose>
+ <xsl:when test="*[@text:level=$currlevel]/style:list-level-properties/@text:space-before">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="*[@text:level=$currlevel]/style:list-level-properties/@text:space-before"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="space2text">
+ <xsl:choose>
+ <xsl:when test="*[@text:level=$currlevel]/style:list-level-properties/@text:min-label-width">
+ <xsl:call-template name="convert2twip">
+ <xsl:with-param name="value" select="*[@text:level=$currlevel]/style:list-level-properties/@text:min-label-width"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <w:ind w:left="{number($space2text)+number($spacebefore)}" w:hanging="{$space2text}"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:listPr>
+ <w:ilvl w:val="{number($currlevel)-1}"/>
+ <w:ilfo w:val="1"/>
+ </w:listPr>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <!-- end of listPr -->
+ </w:pPr>
+ <!-- get break column from style -->
+ <xsl:variable name="style" select="key('paragraph-style', @text:style-name)/style:paragraph-properties"/>
+ <xsl:if test="$style/@fo:break-before = 'column'">
+ <w:r>
+ <w:br w:type="column"/>
+ </w:r>
+ </xsl:if>
+ <xsl:if test="parent::office:text and not(preceding-sibling::text:p)">
+ <xsl:call-template name="PageLevelGraphic"/>
+ </xsl:if>
+ <xsl:if test="parent::text:footnote-body and not(preceding-sibling::*)">
+ <w:r>
+ <w:rPr>
+ <w:rStyle w:val="{/office:document/office:styles/text:footnotes-configuration/@text:citation-style-name}"/>
+ </w:rPr>
+ <xsl:choose>
+ <xsl:when test="../../text:footnote-citation/@text:label">
+ <w:t>
+ <xsl:value-of select="../../text:footnote-citation/@text:label"/>
+ </w:t>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:footnoteRef/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </w:r>
+ <w:r>
+ <w:tab/>
+ </w:r>
+ </xsl:if>
+ <xsl:if test="parent::text:endnote-body and not(preceding-sibling::*)">
+ <w:r>
+ <w:rPr>
+ <w:rStyle w:val="{/office:document/office:styles/text:endnotes-configuration/@text:citation-style-name}"/>
+ </w:rPr>
+ <xsl:choose>
+ <xsl:when test="../../text:endnote-citation/@text:label">
+ <w:t>
+ <xsl:value-of select="../../text:endnote-citation/@text:label"/>
+ </w:t>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:endnoteRef/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </w:r>
+ <w:r>
+ <w:tab/>
+ </w:r>
+ </xsl:if>
+ <!-- newly added the endnote , footnote templates -->
+ <xsl:if test="../../@text:note-class='endnote' and not(preceding-sibling::*)">
+ <xsl:message>
+ <xsl:value-of select=" 'enter into ext:note-class= endnote' "/>
+ </xsl:message>
+ <w:r>
+ <w:rPr>
+ <w:rStyle w:val="Endnote_20_Symbol"/>
+ </w:rPr>
+ <xsl:choose>
+ <xsl:when test="../../text:note-citation/@text:label">
+ <w:t>
+ <xsl:value-of select="../../text:note-citation/@text:label"/>
+ </w:t>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:footnoteRef/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </w:r>
+ <w:r>
+ <w:tab/>
+ </w:r>
+ </xsl:if>
+ <xsl:if test="../../@text:note-class='footnote' and not(preceding-sibling::*)">
+ <xsl:message>
+ <xsl:value-of select=" 'enter into ext:note-class= footnote' "/>
+ </xsl:message>
+ <w:r>
+ <w:rPr>
+ <w:rStyle w:val="Footnote_20_Symbol"/>
+ </w:rPr>
+ <xsl:choose>
+ <xsl:when test="../../text:note-citation/@text:label">
+ <w:t>
+ <xsl:value-of select="../../text:note-citation/@text:label"/>
+ </w:t>
+ </xsl:when>
+ <xsl:otherwise>
+ <w:footnoteRef/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </w:r>
+ <w:r>
+ <w:tab/>
+ </w:r>
+ </xsl:if>
+ <!-- apply inline-text-elements, many many many ... :( glu -->
+ <xsl:apply-templates select="text:a | text:span | text() | text:hidden-text | text:line-break | text:tab-stop
+ | text:s | text:note | draw:*
+ | text:page-number | text:page-count | text:subject | text:initial-creator | text:title | text:date | text:time
+ | text:author-name | text:author-initials | text:chapter | text:file-name | text:sender-company
+ | text:sender-firstname | text:sender-lastname | text:sender-initials | text:sender-street
+ | text:sender-country | text:sender-postal-code | text:sender-city | text:sender-title | text:sender-position
+ | text:sender-phone-private | text:sender-phone-work | text:sender-email | text:sender-fax
+ | text:sender-state-or-province | text:word-count | text:paragraph-count | text:character-count
+ | text:table-count | text:image-count | text:object-count | text:template-name | text:description
+ | text:creation-time | text:creation-date | text:editing-cycles | text:editing-duration | text:keywords
+ | text:print-time | text:print-date | text:creator | text:modification-time | text:modification-date
+ | text:user-defined | text:printed-by | text:hidden-paragraph | text:placeholder | text:drop-down
+ | text:conditional-text | text:text-input | text:execute-macro | text:variable-set | text:variable-input
+ | text:user-field-input | text:variable-get | text:user-field-get | text:sequence | text:page-variable-set
+ | text:page-variable-get | text:table-formula | text:database-display | text:database-next
+ | text:database-select | text:database-row-number | text:database-name | text:reference-ref
+ | text:bookmark-ref | text:footnote-ref | text:endnote-ref | text:sequence-ref | text:expression
+ | text:measure | text:dde-connection | text:sheet-name | text:bibliography-mark | text:script
+ | text:page-continuation | office:annotation | text:bookmark-start | text:bookmark-end | text:bookmark
+ "/>
+ <!-- comment out the following line to replace the text:footnote , text:endnote with text:note in OASIS format -->
+ <!--xsl:apply-templates select="text:a | text:span | text() | text:hidden-text | text:line-break | text:tab-stop
+ | text:s | text:footnote | text:endnote | draw:*
+ | text:page-number | text:page-count | text:subject | text:initial-creator | text:title | text:date | text:time
+ | text:author-name | text:author-initials | text:chapter | text:file-name | text:sender-company
+ | text:sender-firstname | text:sender-lastname | text:sender-initials | text:sender-street
+ | text:sender-country | text:sender-postal-code | text:sender-city | text:sender-title | text:sender-position
+ | text:sender-phone-private | text:sender-phone-work | text:sender-email | text:sender-fax
+ | text:sender-state-or-province | text:word-count | text:paragraph-count | text:character-count
+ | text:table-count | text:image-count | text:object-count | text:template-name | text:description
+ | text:creation-time | text:creation-date | text:editing-cycles | text:editing-duration | text:keywords
+ | text:print-time | text:print-date | text:creator | text:modification-time | text:modification-date
+ | text:user-defined | text:printed-by | text:hidden-paragraph | text:placeholder | text:drop-down
+ | text:conditional-text | text:text-input | text:execute-macro | text:variable-set | text:variable-input
+ | text:user-field-input | text:variable-get | text:user-field-get | text:sequence | text:page-variable-set
+ | text:page-variable-get | text:table-formula | text:database-display | text:database-next
+ | text:database-select | text:database-row-number | text:database-name | text:reference-ref
+ | text:bookmark-ref | text:footnote-ref | text:endnote-ref | text:sequence-ref | text:expression
+ | text:measure | text:dde-connection | text:sheet-name | text:bibliography-mark | text:script
+ | text:page-continuation | office:annotation | text:bookmark-start | text:bookmark-end | text:bookmark
+ "/-->
+ <xsl:if test="$style/@fo:break-after">
+ <w:r>
+ <w:br w:type="{$style/@fo:break-after}"/>
+ </w:r>
+ </xsl:if>
+ </w:p>
+ </xsl:template>
+ <xsl:template match="text:span">
+ <!-- apply inline-text-elements, many many many ... :( glu -->
+ <xsl:apply-templates select="text:a | text() | text:hidden-text | text:line-break | text:tab-stop | text:s
+ | text:note
+ | text:page-number | text:page-count | text:subject | text:initial-creator | text:title | text:date | text:time
+ | text:author-name | text:author-initials | text:chapter | text:file-name | text:sender-company
+ | text:sender-firstname | text:sender-lastname | text:sender-initials | text:sender-street
+ | text:sender-country | text:sender-postal-code | text:sender-city | text:sender-title | text:sender-position
+ | text:sender-phone-private | text:sender-phone-work | text:sender-email | text:sender-fax
+ | text:sender-state-or-province | text:word-count | text:paragraph-count | text:character-count
+ | text:table-count | text:image-count | text:object-count | text:template-name | text:description
+ | text:creation-time | text:creation-date | text:editing-cycles | text:editing-duration | text:keywords
+ | text:print-time | text:print-date | text:creator | text:modification-time | text:modification-date
+ | text:user-defined | text:printed-by | text:hidden-paragraph | text:placeholder | text:drop-down
+ | text:conditional-text | text:text-input | text:execute-macro | text:variable-set | text:variable-input
+ | text:user-field-input | text:variable-get | text:user-field-get | text:sequence | text:page-variable-set
+ | text:page-variable-get | text:table-formula | text:database-display | text:database-next
+ | text:database-select | text:database-row-number | text:database-name | text:reference-ref
+ | text:bookmark-ref | text:footnote-ref | text:endnote-ref | text:sequence-ref | text:expression
+ | text:measure | text:dde-connection | text:sheet-name | text:bibliography-mark | text:script
+ | text:page-continuation | office:annotation | text:bookmark-start | text:bookmark-end | text:bookmark
+"/>
+ <!-- comment out the following line to replace the text:footnote , text:endnote with text:note in OASIS format -->
+ <!-- xsl:apply-templates select="text:a | text() | text:hidden-text | text:line-break | text:tab-stop | text:s
+ | text:footnote | text:endnote
+ | text:page-number | text:page-count | text:subject | text:initial-creator | text:title | text:date | text:time
+ | text:author-name | text:author-initials | text:chapter | text:file-name | text:sender-company
+ | text:sender-firstname | text:sender-lastname | text:sender-initials | text:sender-street
+ | text:sender-country | text:sender-postal-code | text:sender-city | text:sender-title | text:sender-position
+ | text:sender-phone-private | text:sender-phone-work | text:sender-email | text:sender-fax
+ | text:sender-state-or-province | text:word-count | text:paragraph-count | text:character-count
+ | text:table-count | text:image-count | text:object-count | text:template-name | text:description
+ | text:creation-time | text:creation-date | text:editing-cycles | text:editing-duration | text:keywords
+ | text:print-time | text:print-date | text:creator | text:modification-time | text:modification-date
+ | text:user-defined | text:printed-by | text:hidden-paragraph | text:placeholder | text:drop-down
+ | text:conditional-text | text:text-input | text:execute-macro | text:variable-set | text:variable-input
+ | text:user-field-input | text:variable-get | text:user-field-get | text:sequence | text:page-variable-set
+ | text:page-variable-get | text:table-formula | text:database-display | text:database-next
+ | text:database-select | text:database-row-number | text:database-name | text:reference-ref
+ | text:bookmark-ref | text:footnote-ref | text:endnote-ref | text:sequence-ref | text:expression
+ | text:measure | text:dde-connection | text:sheet-name | text:bibliography-mark | text:script
+ | text:page-continuation | office:annotation | text:bookmark-start | text:bookmark-end | text:bookmark
+"/-->
+ </xsl:template>
+ <xsl:template match="text()">
+ <xsl:if test="string-length(normalize-space(.)) &gt; 0">
+ <w:r>
+ <xsl:if test="parent::text:span">
+ <w:rPr>
+ <w:rStyle w:val="{parent::text:span/@text:style-name}"/>
+ </w:rPr>
+ </xsl:if>
+ <w:t>
+ <xsl:value-of select="."/>
+ </w:t>
+ </w:r>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="text:hidden-text">
+ <w:r>
+ <w:rPr>
+ <xsl:if test="parent::text:span">
+ <w:rStyle w:val="{parent::text:span/@text:style-name}"/>
+ </xsl:if>
+ <w:vanish/>
+ </w:rPr>
+ <w:t>
+ <xsl:value-of select="@text:string-value"/>
+ </w:t>
+ </w:r>
+ </xsl:template>
+ <xsl:template match="text:line-break">
+ <w:r>
+ <xsl:if test="parent::text:span">
+ <w:rPr>
+ <w:rStyle w:val="{parent::text:span/@text:style-name}"/>
+ </w:rPr>
+ </xsl:if>
+ <w:br w:type="text-wrapping" w:clear="all"/>
+ </w:r>
+ </xsl:template>
+ <xsl:template match="text:tab-stop">
+ <w:r>
+ <xsl:if test="parent::text:span">
+ <w:rPr>
+ <w:rStyle w:val="{parent::text:span/@text:style-name}"/>
+ </w:rPr>
+ </xsl:if>
+ <w:tab/>
+ </w:r>
+ </xsl:template>
+ <xsl:template match="text:s">
+ <w:r>
+ <xsl:if test="parent::text:span">
+ <w:rPr>
+ <w:rStyle w:val="{parent::text:span/@text:style-name}"/>
+ </w:rPr>
+ </xsl:if>
+ <w:t>
+ <xsl:if test="@text:c">
+ <xsl:call-template name="add-space">
+ <xsl:with-param name="number" select="@text:c"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:text> </xsl:text>
+ </w:t>
+ </w:r>
+ </xsl:template>
+ <xsl:template name="add-space">
+ <xsl:param name="number"/>
+ <xsl:if test="$number &gt; 1">
+ <xsl:call-template name="add-space">
+ <xsl:with-param name="number" select="$number - 1"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="text:footnote">
+ <w:r>
+ <w:rPr>
+ <w:rStyle w:val="{/office:document/office:styles/text:footnotes-configuration/@text:citation-body-style-name}"/>
+ </w:rPr>
+ <xsl:apply-templates select="text:footnote-body"/>
+ </w:r>
+ </xsl:template>
+ <xsl:template match="text:footnote-body">
+ <w:footnote>
+ <xsl:if test="../text:footnote-citation/@text:label">
+ <xsl:attribute name="w:suppressRef">on</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="text:h | text:p | text:ordered-list | text:unordered-list | text:list"/>
+ </w:footnote>
+ </xsl:template>
+ <xsl:template match="text:endnote">
+ <w:r>
+ <w:rPr>
+ <w:rStyle w:val="{/office:document/office:styles/text:endnotes-configuration/@text:citation-body-style-name}"/>
+ </w:rPr>
+ <xsl:apply-templates select="text:endnote-body"/>
+ </w:r>
+ </xsl:template>
+ <xsl:template match="text:endnote-body">
+ <w:endnote>
+ <xsl:if test="../text:endnote-citation/@text:label">
+ <xsl:attribute name="w:suppressRef">on</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="text:h | text:p | text:ordered-list | text:unordered-list | text:list"/>
+ </w:endnote>
+ </xsl:template>
+ <xsl:template match="text:bookmark-start">
+ <xsl:variable name="bookmark-id">
+ <xsl:number from="/office:document/office:body" count="text:bookmark | text:bookmark-start" level="any" format="1"/>
+ </xsl:variable>
+ <aml:annotation aml:id="{$bookmark-id}" w:type="Word.Bookmark.Start" w:name="{@text:name}"/>
+ </xsl:template>
+ <xsl:template match="text:bookmark-end">
+ <xsl:variable name="bookmark-id">
+ <xsl:number from="/office:document/office:body" count="text:bookmark | text:bookmark-start" level="any" format="1"/>
+ </xsl:variable>
+ <aml:annotation aml:id="{$bookmark-id}" w:type="Word.Bookmark.End"/>
+ </xsl:template>
+ <xsl:template match="text:bookmark">
+ <xsl:variable name="bookmark-id">
+ <xsl:number from="/office:document/office:body" count="text:bookmark | text:bookmark-start" level="any" format="1"/>
+ </xsl:variable>
+ <aml:annotation aml:id="{$bookmark-id}" w:type="Word.Bookmark.Start" w:name="{@text:name}"/>
+ <aml:annotation aml:id="{$bookmark-id}" w:type="Word.Bookmark.End"/>
+ </xsl:template>
+ <!-- newly added the endnote , footnote templates -->
+ <xsl:template match="text:note">
+ <xsl:choose>
+ <xsl:when test="@text:note-class = 'endnote' ">
+ <w:r>
+ <w:rPr>
+ <w:rStyle w:val="Endnote"/>
+ </w:rPr>
+ <xsl:apply-templates select="text:note-body"/>
+ </w:r>
+ </xsl:when>
+ <xsl:when test="@text:note-class = 'footnote' ">
+ <w:r>
+ <w:rPr>
+ <w:rStyle w:val="Footnote"/>
+ </w:rPr>
+ <xsl:apply-templates select="text:note-body"/>
+ </w:r>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="text:note-body">
+ <xsl:choose>
+ <xsl:when test="../@text:note-class='endnote' ">
+ <w:endnote>
+ <xsl:if test="../text:note-citation/@text:label">
+ <xsl:attribute name="w:suppressRef">on</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="text:h | text:p | text:ordered-list | text:unordered-list | text:list"/>
+ </w:endnote>
+ </xsl:when>
+ <xsl:when test="../@text:note-class='footnote' ">
+ <w:footnote>
+ <xsl:if test="../text:note-citation/@text:label">
+ <xsl:attribute name="w:suppressRef">on</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="text:h | text:p | text:ordered-list | text:unordered-list | text:list"/>
+ </w:footnote>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/xhtml/body.xsl b/test/user-template/user/xslt/export/xhtml/body.xsl
new file mode 100644
index 000000000000..a4ed3c0d312c
--- /dev/null
+++ b/test/user-template/user/xslt/export/xhtml/body.xsl
@@ -0,0 +1,2962 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xt="http://www.jclark.com/xt" xmlns:common="http://exslt.org/common" xmlns:xalan="http://xml.apache.org/xalan" exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi xt common xalan" xmlns="http://www.w3.org/1999/xhtml">
+
+
+ <!--+++++ INCLUDED XSL MODULES +++++-->
+
+ <!-- helper collection, to convert measures (e.g. inch to pixel using DPI (dots per inch) parameter)-->
+ <xsl:import href="../../common/measure_conversion.xsl"/>
+
+ <!-- common office body element handling -->
+ <xsl:import href="../common/body.xsl"/>
+
+ <!-- common table handling -->
+ <xsl:import href="../common/table/table.xsl"/>
+
+ <!-- xhtml table handling -->
+ <xsl:include href="table.xsl"/>
+
+ <!-- Useful in case of 'style:map', conditional formatting, where a style references to another -->
+ <xsl:key name="styles" match="/*/office:styles/style:style | /*/office:automatic-styles/style:style" use="@style:name"/>
+
+
+ <!-- ************ -->
+ <!-- *** body *** -->
+ <!-- ************ -->
+
+ <xsl:key match="style:style/@style:master-page-name" name="masterPage" use="'count'"/>
+ <xsl:key match="style:master-page" name="masterPageElements" use="@style:name"/>
+ <xsl:key match="style:page-layout" name="pageLayoutElements" use="@style:name"/>
+ <xsl:key name="writingModeStyles" match="/*/office:styles/style:style/style:paragraph-properties/@style:writing-mode | /*/office:automatic-styles/style:style/style:paragraph-properties/@style:writing-mode" use="'test'"/>
+ <xsl:template name="create-body">
+ <xsl:param name="globalData"/>
+ <xsl:call-template name="create-body.collect-page-properties">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template name="create-body.collect-page-properties">
+ <xsl:param name="globalData"/>
+
+ <!-- approximation to find the correct master page style (with page dimensions) -->
+ <xsl:variable name="masterPageNames">
+ <!-- Loop over every style:style containing a @style:master-page-name attribute -->
+ <xsl:for-each select="key('masterPage','count')">
+ <!-- Check if this style is being used in the body -->
+ <xsl:if test="key('elementUsingStyle', ../@style:name)">
+ <!-- Check every master-page-name if it is not emtpy and return as ';' separated list -->
+ <xsl:if test="string-length(../@style:master-page-name) &gt; 0">
+ <xsl:value-of select="../@style:master-page-name"/>;
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <!-- Take the first of the masterpage list and get the according style:master-page element and find the @style:page-layout-name -->
+ <xsl:variable name="pageLayoutName" select="key('masterPageElements', substring-before($masterPageNames,';'))/@style:page-layout-name"/>
+ <xsl:variable name="pagePropertiesRTF">
+ <xsl:choose>
+ <xsl:when test="not($pageLayoutName) or $pageLayoutName = ''">
+ <xsl:copy-of select="$globalData/styles-file/*/office:automatic-styles/style:page-layout[1]/style:page-layout-properties"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Find the according style:page-layout and store the properties in a variable -->
+ <xsl:copy-of select="key('pageLayoutElements', $pageLayoutName)/style:page-layout-properties"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="create-body.create">
+ <xsl:with-param name="globalData" select="common:node-set($globalData)"/>
+ <xsl:with-param name="pageProperties" select="common:node-set($pagePropertiesRTF)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="create-body.create">
+ <xsl:with-param name="globalData" select="xalan:nodeset($globalData)"/>
+ <xsl:with-param name="pageProperties" select="xalan:nodeset($pagePropertiesRTF)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="create-body.create">
+ <xsl:with-param name="globalData" select="xt:node-set($globalData)"/>
+ <xsl:with-param name="pageProperties" select="xt:node-set($pagePropertiesRTF)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">The required node-set function was not found!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="create-body.create">
+ <xsl:param name="globalData"/>
+ <xsl:param name="pageProperties"/>
+
+ <xsl:element name="body">
+ <!-- direction of text flow -->
+ <xsl:variable name="writingMode" select="$pageProperties/style:page-layout-properties/@style:writing-mode"/>
+ <xsl:choose>
+ <xsl:when test="$writingMode">
+ <xsl:choose>
+ <xsl:when test="contains($writingMode, 'lr')">
+ <xsl:attribute name="dir">ltr</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains($writingMode, 'rl')">
+ <xsl:attribute name="dir">rtl</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- As CSS writing-mode is not implemented by all browsers, a heuristic is done -->
+ <xsl:variable name="writingModeTest" select="key('writingModeStyles', 'test')"/>
+ <xsl:if test="contains($writingModeTest, 'rl')">
+ <xsl:attribute name="dir">rtl</xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- adapt page size -->
+ <xsl:variable name="pageWidth" select="$pageProperties/style:page-layout-properties/@fo:page-width"/>
+
+ <!-- multiple backgroundimages for different page styles (never used in html) -->
+ <xsl:variable name="backgroundImage" select="$pageProperties/style:page-layout-properties/style:background-image"/>
+ <!-- page margins & background image -->
+ <xsl:if test="$pageWidth or $pageProperties/style:page-layout-properties/@fo:* or $backgroundImage/@xlink:href">
+ <xsl:attribute name="style">
+ <xsl:if test="$pageWidth">
+ <xsl:text>max-width:</xsl:text>
+ <xsl:value-of select="$pageWidth"/>
+ <xsl:text>;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$pageProperties/style:page-layout-properties/@fo:* or $backgroundImage/@xlink:href">
+ <xsl:apply-templates select="$pageProperties/style:page-layout-properties/@fo:*"/>
+ <xsl:if test="$backgroundImage/@xlink:href">
+ <xsl:text>background-image:url(</xsl:text>
+ <xsl:call-template name="create-href">
+ <xsl:with-param name="href" select="$backgroundImage/@xlink:href"/>
+ </xsl:call-template>
+ <xsl:text>);</xsl:text>
+
+ <xsl:if test="$backgroundImage/@style:repeat">
+ <xsl:choose>
+ <xsl:when test="$backgroundImage/@style:repeat = 'no-repeat'">
+ <xsl:text>background-repeat:no-repeat;</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>background-repeat:repeat;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$backgroundImage/@style:position">
+ <xsl:text>background-position:</xsl:text>
+ <xsl:value-of select="$backgroundImage/@style:position"/>
+ <xsl:text>;</xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+ <!-- processing the content of the OpenDocument content file -->
+ <xsl:apply-templates select="/*/office:body/*">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+
+ </xsl:element>
+ </xsl:template>
+
+ <!-- processing the content of the OpenDocument content file -->
+ <xsl:template match="office:body/*">
+ <xsl:param name="globalData"/>
+
+ <!-- not using of 'apply-styles-and-content' as the content table information migth have been added to 'globalData' variable -->
+ <xsl:apply-templates select="@text:style-name | @draw:style-name | @draw:text-style-name | @table:style-name"><!-- | @presentation:style-name -->
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+
+ <!-- writing the footer- and endnotes beyond the body -->
+ <xsl:call-template name="write-text-nodes">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- ******************************* -->
+ <!-- *** User Field Declarations *** -->
+ <!-- ******************************* -->
+
+ <xsl:template match="text:user-field-get | text:user-field-input">
+ <xsl:param name="globalData"/>
+
+ <xsl:value-of select="."/>
+ </xsl:template>
+
+ <xsl:template match="text:conditional-text">
+ <xsl:param name="globalData"/>
+
+ <xsl:value-of select="."/>
+ </xsl:template>
+
+ <!-- ODF text fields -->
+ <xsl:template match="text:author-initials | text:author-name | text:chapter | text:character-count | text:creation-date | text:creation-time | text:creator | text:date | text:description | text:editing-cycles | text:editing-duration | text:file-name | text:image-count | text:initial-creator | text:keywords | text:modification-date | text:modification-time | text:object-count | text:page-continuation | text:page-count | text:page-number | text:paragraph-count | text:print-date | text:print-time | text:printed-by | text:sender-city | text:sender-company | text:sender-country | text:sender-email | text:sender-fax | text:sender-firstname | text:sender-initials | text:sender-lastname | text:sender-phone-private | text:sender-phone-work | text:sender-position | text:sender-postal-code | text:sender-state-or-province | text:sender-street | text:sender-title | text:sheet-name | text:subject | text:table-count | text:time | text:title | text:user-defined | text:word-count">
+ <xsl:param name="globalData"/>
+
+ <xsl:element name="span">
+ <xsl:attribute name="title">
+ <xsl:value-of select="local-name()"/>
+ </xsl:attribute>
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:template>
+
+
+
+ <!-- *************** -->
+ <!-- *** Textbox *** -->
+ <!-- *************** -->
+
+ <xsl:template match="draw:text-box">
+ <xsl:param name="globalData"/>
+
+ <xsl:comment>Next 'div' was a 'draw:text-box'.</xsl:comment>
+ <xsl:element name="div">
+ <xsl:variable name="dimension">
+ <xsl:apply-templates select="@fo:min-width"/>
+ <xsl:apply-templates select="@fo:max-width"/>
+ <xsl:apply-templates select="@fo:min-height"/>
+ <xsl:apply-templates select="@fo:max-height"/>
+ </xsl:variable>
+ <xsl:if test="$dimension">
+ <xsl:attribute name="style">
+ <xsl:value-of select="$dimension"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="@draw:name">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+
+ <xsl:apply-templates select="node()">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="@fo:min-width">
+ <xsl:text>min-width:</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>;</xsl:text>
+ </xsl:template>
+ <xsl:template match="@fo:max-width">
+ <xsl:text>max-width:</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>;</xsl:text>
+ </xsl:template>
+ <xsl:template match="@fo:min-height">
+ <xsl:text>min-height:</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>;</xsl:text>
+ </xsl:template>
+ <xsl:template match="@fo:max-height">
+ <xsl:text>max-height:</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>;</xsl:text>
+ </xsl:template>
+
+
+ <!-- inline style helper for the 'div' boxes -->
+ <xsl:template name="svg:height">
+ <xsl:text>height:</xsl:text>
+ <xsl:choose>
+ <!-- changing the distance measure: inch to in -->
+ <xsl:when test="contains(@svg:height, 'inch')">
+ <xsl:value-of select="substring-before(@svg:height, 'ch')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@svg:height"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>;</xsl:text>
+ </xsl:template>
+
+ <!-- inline style helper for the 'div' boxes -->
+ <xsl:template name="svg:width">
+ <xsl:text>width:</xsl:text>
+ <xsl:choose>
+ <!-- changing the distance measure: inch to in -->
+ <xsl:when test="contains(@svg:width, 'inch')">
+ <xsl:value-of select="substring-before(@svg:width, 'ch')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@svg:width"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>;</xsl:text>
+ </xsl:template>
+
+
+
+ <!-- ****************** -->
+ <!-- *** Paragraphs *** -->
+ <!-- ****************** -->
+
+ <xsl:template match="text:p | draw:page">
+ <xsl:param name="globalData"/>
+ <!-- The footnote symbol is the prefix for a footnote in the footer -->
+ <xsl:param name="footnotePrefix"/>
+ <!-- 1) In ODF sometimes the followig children are nested
+ <text:p>
+ <draw:frame>
+ <draw:text-box>
+ <text:p>
+ Which results in a paragraphs (the last text:p) having a paragraph as its anchestor.
+ In HTML a 'p' can only have inline documents (no other 'p' as children'),
+ a 'div' will be given for the ancestors instead.
+ 2) ODF images are embedded in a paragraph, but CSS is not able to express a horizontal alignment for an HTML image (text:align is only valid for block elements).
+ A surrounding 'div' element taking over the image style solves that problem, but the div is invalid as child of a paragraph
+ Therefore the paragraph has to be exchanged with a HTML div element
+ -->
+ <!-- 2DO page alignment fix - PART1 -->
+ <xsl:variable name="childText"><xsl:apply-templates mode="getAllTextChildren"/></xsl:variable>
+ <xsl:choose>
+ <xsl:when test="name() = 'text:p' and not(*) and (normalize-space($childText) = '')">
+ <!-- WorkAround: Test if the empty paragraph was added after an image, which OOO often does -->
+ <xsl:variable name="isFollowingImage">
+ <xsl:call-template name="follows-empty-paragraphs-and-image">
+ <xsl:with-param name="precedingElement" select="preceding-sibling::node()[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$isFollowingImage = 'no'">
+ <xsl:call-template name="create-paragraph">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="footnotePrefix" select="$footnotePrefix" />
+ </xsl:call-template>
+ </xsl:if>
+
+ </xsl:when>
+ <xsl:when test="draw:frame and ((normalize-space($childText) != '') or (((count(*) - count(text:soft-page-break)) &gt; 1)))">
+ <!-- If there is a 'draw:frame' child with text (not being whitespace alone) and more than the draw:frame alone and
+ not the draw:frame and a soft-page-break alone (which is quite often) -->
+
+ <!-- If there is a frame within the text:p or draw:page, its siblings are surrounded as well by a div and are floating (CSS float) -->
+ <!-- But it makes no sense to create floating if the frame is alone or only together with a soft-page-break not usable for HTML -->
+ <!-- The paragraph is written as DIV as there might be nested paragraphs (see above choose block) -->
+ <xsl:choose>
+ <xsl:when test="name() = 'text:p'">
+ <xsl:comment>Next 'div' was a 'text:p'.</xsl:comment>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:comment>Next 'div' was a 'draw:page'.</xsl:comment>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:element name="div">
+ <xsl:apply-templates select="@*">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ <!-- the footnote symbol is the prefix for a footnote in the footer -->
+ <xsl:copy-of select="$footnotePrefix"/>
+ <!-- start floating of frame (and siblings) -->
+ <xsl:apply-templates select="node()[1]" mode="frameFloating">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="previousFrameWidths" select="0"/>
+ <xsl:with-param name="previousFrameHeights" select="0"/>
+ <!-- 2DO for me (Svante) - Not used, uncertain 4now..
+ <xsl:with-param name="pageMarginLeft">
+ <xsl:call-template name="getPageMarginLeft"/>
+ </xsl:with-param>-->
+ </xsl:apply-templates>
+ </xsl:element>
+ <!-- after the last draw:frame sibling the CSS float is disabled
+ &#160; is an unbreakable whitespace to give conent to the element and force a browser not to ignore the element -->
+ <div style="clear:both; line-height:0; width:0; height:0; margin:0; padding:0;">&#160;</div>
+ </xsl:when>
+ <xsl:when test="text:tab and not(ancestor::text:index-body)">
+ <!-- If there is a tabulator (ie. text:tab) within a paragraph, a heuristic for ODF tabulators creates a
+ span for every text:tab embracing the following text nodes aligning them according to the tabulator.
+ A line break or another text:tab starts a new text:span, line break even the tab counter for the line.
+ -->
+ <xsl:element name="p">
+ <xsl:apply-templates select="@*">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+ <!-- start with first child of the paragraph -->
+ <xsl:variable name="firstChildNode" select="node()[1]" />
+ <xsl:apply-templates select="$firstChildNode" mode="tabHandling">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="tabStops" select="$globalData/all-doc-styles/style[@style:name = current()/@text:style-name]/*/style:tab-stops"/>
+ <xsl:with-param name="parentMarginLeft">
+ <!-- Styles of first paragraph in list item, including ancestor styles (inheritance) -->
+ <xsl:variable name="paragraphName" select="@text:style-name" />
+ <xsl:variable name="imageParagraphStyle" select="$globalData/all-styles/style[@style:name = $paragraphName]/final-properties"/>
+ <!-- Only the left margin of the first paragraph of a list item will be added to the margin of the complete list (all levels)-->
+<!-- 2DO: left-margin in order with bidirectional -->
+ <xsl:choose>
+ <xsl:when test="contains($imageParagraphStyle, 'margin-left:')">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="normalize-space(substring-before(substring-after($imageParagraphStyle, 'margin-left:'), ';'))"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="pageMarginLeft">
+ <xsl:call-template name="getPageMarginLeft"/>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <!-- !!Check if paragraph is empty!!
+ OOo writes out empty paragraphs layouted behind an image (= draw:image within draw:frame)
+ those have to be neglected in HTML -->
+ <xsl:when test="name() = 'text:p' and not($childText) and not(*)">
+ <xsl:variable name="isFollowingImage">
+ <xsl:call-template name="follows-empty-paragraphs-and-image">
+ <xsl:with-param name="precedingElement" select="preceding-sibling::node()[1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$isFollowingImage = 'no'">
+ <xsl:call-template name="create-paragraph">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="footnotePrefix" select="$footnotePrefix" />
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create-paragraph">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="footnotePrefix" select="$footnotePrefix" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Return the text -->
+ <xsl:template match="text()" mode="getAllTextChildren">
+ <xsl:value-of select="."/>
+ </xsl:template>
+
+ <!-- A span will be created for every text:tab embracing the following text nodes.
+ A line break or another text:tab starts a new text:span -->
+ <xsl:template match="* | text()" mode="tabHandling">
+ <xsl:param name="globalData"/>
+ <xsl:param name="tabStops"/>
+ <!-- there can be multiple tabs in one line, tabNo guesses the one to apply. By default the first i.e. "1" -->
+ <xsl:param name="tabCount" select="0"/>
+ <xsl:param name="parentMarginLeft" />
+ <xsl:param name="pageMarginLeft" />
+
+<!-- 2DO: EXCHANGE FOLLOING SIBLING BY VARIABLE -->
+ <xsl:variable name="followingSiblingNode" select="following-sibling::node()[1]"/>
+
+
+ <!--
+ Every tabulator indents its following content, encapuslated in a span
+ element.
+
+ This template have two modes:
+
+ 1) Before the first tabulator it will match as usually paragraph content
+ to HTML.
+ 2) After the first paragraph it will always triggers two recursions.
+ One embraces the following content of a paragraph element into a span.
+ (tabContentHandling)
+ The other calls this template and will now ignore anything else than
+ TAB and LINE-BREAK.
+
+
+ The tabulators and linebreaks are being iterated, one by one to keep track of the tab number
+ -->
+
+
+ <xsl:choose>
+ <xsl:when test="name() = 'text:tab'">
+ <!-- every frame sibling have to be incapuslated within a div with left indent -->
+ <xsl:element name="span">
+ <xsl:choose>
+ <xsl:when test="count($tabStops/style:tab-stop) &gt; 0 and count($tabStops/style:tab-stop) &lt; 3">
+ <!-- only allow the heuristic when the style has less than 3 TABS -->
+ <!-- ignore heuristics if no TABS are defined -->
+ <xsl:attribute name="style">
+ <xsl:call-template name="createTabIndent">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="tabStops" select="$tabStops"/>
+ <xsl:with-param name="tabCount" select="$tabCount + 1"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeft"/>
+ <xsl:with-param name="pageMarginLeft" select="$pageMarginLeft"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- if there are more than 3 TABS in the style, create a none-breakable-space as whitespace -->
+ <xsl:text>&#160;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="tabContentHandling">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="tabHandling">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="tabStops" select="$tabStops"/>
+ <xsl:with-param name="tabCount" select="$tabCount + 1"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeft"/>
+ <xsl:with-param name="pageMarginLeft" select="$pageMarginLeft"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="name() = 'text:line-break'">
+ <!-- A line-break resets the tabCount to '0' -->
+ <br/>
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="tabHandling">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="tabStops" select="$tabStops"/>
+ <xsl:with-param name="tabCount" select="0"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeft"/>
+ <xsl:with-param name="pageMarginLeft" select="$pageMarginLeft"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- only before the first tab all content is written out -->
+ <xsl:if test="$tabCount = 0">
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="tabHandling">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="tabStops" select="$tabStops"/>
+ <xsl:with-param name="tabCount" select="$tabCount"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeft"/>
+ <xsl:with-param name="pageMarginLeft" select="$pageMarginLeft"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!--
+ This recursion creates the content of a tab (i.e. following siblings
+ till next TAB or LINE BREAK) and ends with the next
+ TAB, LINE-BREAK or with the end of the paragraph.
+ -->
+ <xsl:template match="* | text()" mode="tabContentHandling">
+ <xsl:param name="globalData"/>
+
+ <xsl:if test="(name() != 'text:tab') and (name() != 'text:line-break')">
+ <!-- Write out content -->
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ <!-- Apply for the next node -->
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="tabContentHandling">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="createTabIndent">
+ <xsl:param name="globalData"/>
+ <xsl:param name="tabStops"/>
+ <xsl:param name="tabCount"/>
+ <xsl:param name="parentMarginLeft" />
+ <xsl:param name="pageMarginLeft" />
+
+ <xsl:text>position:absolute;left:</xsl:text>
+ <xsl:variable name="tabPosition">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$tabStops/style:tab-stop[$tabCount]/@style:position"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="tabIndent">
+ <xsl:choose>
+ <xsl:when test="$tabStops/style:tab-stop[$tabCount]/@style:type = 'center'">
+ <!-- in case of style:type 'center' the text is even before the tab stop,
+ centered around the beginning. As I see currently no way in mapping this,
+ therefore I do some HEURISTIC (minus -2.5cm) -->
+ <xsl:value-of select="$tabPosition + $parentMarginLeft + $pageMarginLeft - 2.5"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$tabPosition + $parentMarginLeft + $pageMarginLeft"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!--<xsl:message>TAB: tabCount=
+ <xsl:value-of select="$tabCount"/>, tabPosition=
+ <xsl:value-of select="$tabPosition"/>, tabIndent=
+ <xsl:value-of select="$tabIndent"/>
+ </xsl:message>-->
+ <xsl:choose>
+ <xsl:when test="$tabIndent='NaN'">
+ <xsl:variable name="tabPositionTmp">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$tabStops/style:tab-stop[last()]/@style:position"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <!-- Heuristic: for every tab that is more than specified give a further 1 cm -->
+ <xsl:value-of select="$parentMarginLeft + $tabPositionTmp + count($tabStops/style:tab-stop) - $tabCount"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$tabIndent"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>cm;</xsl:text>
+ <xsl:apply-templates select="$tabStops/style:tab-stop[$tabCount]/@style:type"/>
+ </xsl:template>
+
+ <!-- OOo writes out empty paragraphs layouted behind an image,
+ those have to be neglected in HTML
+ This method checks if an empty paragraph is of that kind! -->
+ <xsl:template name="follows-empty-paragraphs-and-image">
+ <xsl:param name="precedingElement" />
+ <xsl:param name="elementToCheck" select="1"/>
+ <xsl:choose>
+ <!-- OOo writes out empty paragraphs layouted behind the image,
+ those have to be neglected in HTML
+ <xsl:when test="name() = 'text:p' and (normalize-space($childText) = '')"> -->
+ <!-- WorkAround: Test if the empty paragraph was added after an image, which OOO often does -->
+ <xsl:when test="(name($precedingElement) = 'text:p' and not($precedingElement/text()) and not($precedingElement/*))">
+ <xsl:call-template name="follows-empty-paragraphs-and-image">
+ <xsl:with-param name="precedingElement" select="preceding-sibling::*[$elementToCheck]"/>
+ <xsl:with-param name="elementToCheck" select="$elementToCheck +1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$precedingElement/draw:frame">yes</xsl:when>
+ <xsl:otherwise>no</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="create-paragraph">
+ <xsl:param name="globalData"/>
+ <!-- the footnote symbol is the prefix for a footnote in the footer -->
+ <xsl:param name="footnotePrefix"/>
+
+ <!-- xhtml:p may only contain inline elements.
+ If there is one frame beyond, div must be used! -->
+ <xsl:variable name="elementName">
+ <xsl:choose>
+ <xsl:when test="descendant::draw:frame[1] or descendant::text:p[1]">div</xsl:when>
+ <xsl:otherwise>p</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$elementName}">
+ <xsl:choose>
+ <!-- in ODF borders of paragraphs will be merged by default. Merging means the adjactend paragraphs are building a unit,
+ where only the first and the last will have have a border to the surrounding (top / bottom border)
+ <xsl:variable name="precedingParagraphStyle" select="preceding-sibling::*[1][name() = 'text:p']/@text:style-name"/>
+ <xsl:variable name="followingParagraphStyle" select="following-sibling::*[1][name() = 'text:p']/@text:style-name"/>
+ -->
+ <xsl:when test="$globalData/all-styles/style[@style:name = current()/@text:style-name]/@mergedBorders">
+ <xsl:variable name="precedingParagraphStyle" select="preceding-sibling::*[1][name() = 'text:p']/@text:style-name"/>
+ <xsl:variable name="followingParagraphStyle" select="following-sibling::*[1][name() = 'text:p']/@text:style-name"/>
+ <xsl:choose>
+ <xsl:when test="$precedingParagraphStyle or $followingParagraphStyle">
+ <xsl:variable name="isPrecedingBorderParagraph" select="$globalData/all-styles/style[@style:name = $precedingParagraphStyle]/@mergedBorders"/>
+ <xsl:variable name="isFollowingBorderParagraph" select="$globalData/all-styles/style[@style:name = $followingParagraphStyle]/@mergedBorders"/>
+ <xsl:choose>
+ <xsl:when test="not($isPrecedingBorderParagraph) and $isFollowingBorderParagraph">
+ <xsl:attribute name="class">
+ <xsl:value-of select="concat(translate(@text:style-name, '.,;: %()[]/\+', '_____________'), '_borderStart')"/>
+ </xsl:attribute>
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$isPrecedingBorderParagraph and not($isFollowingBorderParagraph)">
+ <xsl:attribute name="class">
+ <xsl:value-of select="concat(translate(@text:style-name, '.,;: %()[]/\+', '_____________'), '_borderEnd')"/>
+ </xsl:attribute>
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate(@text:style-name, '.,;: %()[]/\+', '_____________')"/>
+ </xsl:attribute>
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="write-paragraph">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="write-paragraph">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="footnotePrefix" select="$footnotePrefix" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template name="write-paragraph">
+ <xsl:param name="globalData"/>
+ <!-- the footnote symbol is the prefix for a footnote in the footer -->
+ <xsl:param name="footnotePrefix" />
+
+ <!-- empty paragraph tags does not provoke an carridge return,
+ therefore an non breakable space (&nbsp) have been inserted.-->
+ <xsl:choose>
+ <xsl:when test="node()">
+ <xsl:call-template name="apply-styles-and-content">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="footnotePrefix" select="$footnotePrefix" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="apply-styles-and-content">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="footnotePrefix" select="$footnotePrefix" />
+ </xsl:call-template>
+ <xsl:text>&#160;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="style:tab-stop/@style:type">
+ <xsl:text>text-align:</xsl:text>
+ <xsl:choose>
+ <xsl:when test=". = 'left'">left</xsl:when>
+ <xsl:when test=". = 'right'">right</xsl:when>
+ <xsl:when test=". = 'center'">center</xsl:when>
+ <xsl:otherwise>justify</xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>;</xsl:text>
+ </xsl:template>
+
+ <!-- As soon a frame is within a paragraph (text:p) or page:frame, every child element is floating (CSS) and worked out in sequence.
+ Accumulating prior frame width and adding parent's left margin -->
+ <!-- Matching all elements and text beyond a paragraph/text:page which are sibling of a draw:frame -->
+ <xsl:template match="* | text()" mode="frameFloating">
+ <xsl:param name="globalData"/>
+ <xsl:param name="previousFrameWidths" select="0"/>
+ <xsl:param name="previousFrameHeights" select="0" />
+ <!-- it becomes true for siblings after a draw:frame -->
+ <xsl:param name="createDiv" select="false()"/>
+ <xsl:param name="noDivBefore" select="true()"/>
+ <xsl:param name="leftPosition" />
+ <xsl:param name="parentMarginLeft" />
+ <xsl:param name="frameAlignedToParagraphWithSvgY" />
+
+ <xsl:choose>
+ <xsl:when test="name() = 'draw:frame'">
+ <xsl:copy-of select="$frameAlignedToParagraphWithSvgY"/>
+
+ <!-- if the first node is a draw:frame create a div -->
+ <xsl:call-template name="createDrawFrame">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="previousFrameWidths" select="$previousFrameWidths"/>
+ <xsl:with-param name="previousFrameHeights" select="$previousFrameHeights"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeft"/>
+ </xsl:call-template>
+ <!-- next elements will be called after the creation with the new indent (plus width of frame) -->
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="nextSiblingIsFrame" select="name(following-sibling::node()[1]) = 'draw:frame'"/>
+ <xsl:choose>
+ <xsl:when test="$createDiv and normalize-space(.) != ''">
+ <!-- every following frame sibling till the next draw:frame
+ have to be incapuslated within a div with left indent.
+ To be moved alltogether arcording the indent (usually right) -->
+ <xsl:comment>Next 'div' added for floating.</xsl:comment>
+ <xsl:element name="div">
+ <xsl:attribute name="style">
+ <xsl:text>position:relative; left:</xsl:text>
+ <xsl:value-of select="$leftPosition"/>
+ <xsl:text>cm;</xsl:text>
+ </xsl:attribute>
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ <!-- if it is a frame sibling it will be NOT incapuslated within the div (as already within one) -->
+ <xsl:if test="not($nextSiblingIsFrame)">
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="frameFloating">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="previousFrameWidths" select="$previousFrameWidths"/>
+ <xsl:with-param name="previousFrameHeights" select="$previousFrameHeights"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeft"/>
+ <xsl:with-param name="leftPosition" select="$leftPosition"/>
+ <xsl:with-param name="createDiv" select="false()"/>
+ <xsl:with-param name="noDivBefore" select="$noDivBefore"/>
+ <xsl:with-param name="frameAlignedToParagraphWithSvgY" select="$frameAlignedToParagraphWithSvgY"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:element>
+ <xsl:copy-of select="$frameAlignedToParagraphWithSvgY"/>
+
+ <!-- Other draw:frame will be created outside of the div element -->
+ <xsl:apply-templates select="following-sibling::draw:frame[1]" mode="frameFloating">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="previousFrameWidths" select="$previousFrameWidths"/>
+ <xsl:with-param name="previousFrameHeights" select="$previousFrameHeights"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeft"/>
+ <xsl:with-param name="leftPosition" select="$leftPosition"/>
+ <xsl:with-param name="frameAlignedToParagraphWithSvgY" select="$frameAlignedToParagraphWithSvgY"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="not($createDiv)">
+ <xsl:apply-templates select=".">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="frameAlignedToParagraphWithSvgY" select="$frameAlignedToParagraphWithSvgY"/>
+ </xsl:apply-templates>
+ <xsl:if test="not($nextSiblingIsFrame) or $noDivBefore">
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="frameFloating">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="previousFrameWidths" select="$previousFrameWidths"/>
+ <xsl:with-param name="previousFrameHeights" select="$previousFrameHeights"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeft"/>
+ <xsl:with-param name="leftPosition" select="$leftPosition"/>
+ <xsl:with-param name="createDiv" select="false()"/>
+ <xsl:with-param name="noDivBefore" select="$noDivBefore"/>
+ <xsl:with-param name="frameAlignedToParagraphWithSvgY" select="$frameAlignedToParagraphWithSvgY"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- A XML node other than text or element (e.g. commment) should not stop the recursion -->
+ <xsl:template match="comment()" mode="frameFloating">
+ <xsl:param name="globalData"/>
+ <xsl:param name="previousFrameWidths" select="0"/>
+ <xsl:param name="previousFrameHeights" select="0" />
+ <!-- it becomes true for siblings after a draw:frame -->
+ <xsl:param name="createDiv" select="false()"/>
+ <xsl:param name="noDivBefore" select="true()"/>
+ <xsl:param name="leftPosition" />
+ <xsl:param name="parentMarginLeft" />
+ <xsl:param name="frameAlignedToParagraphWithSvgY" />
+
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="frameFloating">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="previousFrameWidths" select="$previousFrameWidths"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeft"/>
+ <xsl:with-param name="leftPosition" select="$leftPosition"/>
+ <xsl:with-param name="createDiv" select="$createDiv"/>
+ <xsl:with-param name="noDivBefore" select="$noDivBefore"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+
+
+ <!-- As draw:frame may occur within more elements than in text:p and draw:page -->
+ <xsl:template match="draw:frame">
+ <xsl:param name="globalData"/>
+ <xsl:param name="previousFrameWidths" select="0"/>
+ <xsl:param name="previousFrameHeights" select="0" />
+
+ <xsl:call-template name="createDrawFrame">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="previousFrameWidths" select="$previousFrameWidths"/>
+ <xsl:with-param name="previousFrameHeights" select="$previousFrameHeights"/>
+ </xsl:call-template>
+ <!-- after the last draw:frame sibling the CSS float is disabled -->
+ <xsl:if test="@text:anchor-type!='as-char'">
+ <div style="clear:both; line-height:0; width:0; height:0; margin:0; padding:0;">&#160;</div>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="getPageMarginLeft">
+ <!-- approximation to find the correct master page style (with page dimensions) -->
+ <xsl:variable name="masterPageNames">
+ <!-- Loop over every style:style containing a @style:master-page-name attribute -->
+ <xsl:for-each select="key('masterPage','count')">
+ <!-- Check if this style is being used in the body -->
+ <xsl:if test="key('elementUsingStyle', ../@style:name)">
+ <!-- Check every master-page-name if it is not emtpy and return as ';' separated list -->
+ <xsl:if test="string-length(../@style:master-page-name) &gt; 0">
+ <xsl:value-of select="../@style:master-page-name"/>;
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <!-- Take the first of the masterpage list and get the according style:master-page element and find the @style:page-layout-name -->
+ <xsl:variable name="pageLayoutName" select="key('masterPageElements', substring-before($masterPageNames,';'))/@style:page-layout-name"/>
+ <!-- Find the according style:page-layout and store the properties in a variable -->
+ <xsl:variable name="pageMarginLeftAttr" select="key('pageLayoutElements', $pageLayoutName)/style:page-layout-properties/@fo:margin-left"/>
+ <xsl:choose>
+ <xsl:when test="$pageMarginLeftAttr">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$pageMarginLeftAttr"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Elements and text aside of a draw:frame are floating, here a div is being created.
+ Either for a draw:frame or for text and other elements floating aside -->
+ <xsl:template name="createDrawFrame">
+ <xsl:param name="globalData"/>
+ <xsl:param name="previousFrameWidths" select="0"/>
+ <xsl:param name="previousFrameHeights" select="0" />
+ <xsl:param name="parentMarginLeft"/>
+
+ <xsl:variable name="parentMarginLeftNew">
+ <xsl:choose>
+ <xsl:when test="string-length(normalize-space($parentMarginLeft)) &lt; 1">
+ <!-- Styles of first paragraph in list item, including ancestor styles (inheritance) -->
+ <xsl:variable name="paragraphName" select="parent::*/@text:style-name" />
+ <xsl:variable name="imageParagraphStyle" select="$globalData/all-styles/style[@style:name = $paragraphName]/final-properties"/>
+ <!-- Only the left margin of the first paragraph of a list item will be added to the margin of the complete list (all levels)-->
+ <xsl:choose>
+ <xsl:when test="contains($imageParagraphStyle, 'margin-left:')">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="normalize-space(substring-before(substring-after($imageParagraphStyle, 'margin-left:'), ';'))"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$parentMarginLeft"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="svgWidth">
+ <xsl:choose>
+ <xsl:when test="@svg:width">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="@svg:width"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="svgX">
+ <xsl:choose>
+ <xsl:when test="@svg:x">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="@svg:x"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="leftPosition" select="$svgX - $parentMarginLeftNew - $previousFrameWidths"/>
+ <xsl:variable name="svgY">
+ <xsl:choose>
+ <xsl:when test="@svg:y">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="@svg:y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- if the frame is anchored on a paragraph -->
+ <xsl:if test="@text:anchor-type='paragraph'">
+ <xsl:comment>Next 'div' is emulating the top hight of a draw:frame.</xsl:comment>
+ <!-- When the svg:y is set relative to the paragraph content, the best way to emulate a positive height,
+ is to add an invisbile division inbetween with a height.
+ Often text will flow into this 'gap', which is handled separately!
+ -->
+ <xsl:if test="$svgY &gt; 0">
+ <xsl:element name="div">
+ <xsl:attribute name="style">
+ <xsl:text>height:</xsl:text>
+ <xsl:value-of select="$svgY"/>
+ <xsl:text>cm;</xsl:text>
+ </xsl:attribute>
+ <xsl:text>&#160;</xsl:text>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+
+
+ <!--
+ <xsl:variable name="followingSibling" select="following-sibling::node()[1]"/>
+ <xsl:choose>
+ HEURISTIC: if the frame is anchored on a paragraph and the above gab is big enough to hold a text line,
+ move it behind the text
+ <xsl:when test="@text:anchor-type='paragraph' and
+ (
+ ($svgY &gt; 0.5) or
+ ($svgX &gt; 4)
+ ) and normalize-space($followingSibling) != ''">
+ <xsl:apply-templates select="$followingSibling" mode="frameFloating">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="previousFrameWidths" select="$previousFrameWidths + $svgWidth"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeftNew"/>
+ <xsl:with-param name="leftPosition" select="$leftPosition"/>
+ <xsl:with-param name="createDiv" select="true()"/>
+ <xsl:with-param name="noDivBefore" select="false()"/>
+ <xsl:with-param name="frameAlignedToParagraphWithSvgY">
+ <xsl:call-template name="createDrawFrame2">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="previousFrameWidths" select="$previousFrameWidths + $svgWidth"/>
+ <xsl:with-param name="parentMarginLeftNew" select="$parentMarginLeftNew"/>
+ <xsl:with-param name="leftPosition" select="$leftPosition"/>
+ <xsl:with-param name="svgY" select="$svgY"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>-->
+ <xsl:call-template name="createDrawFrame2">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="previousFrameWidths" select="$previousFrameWidths + $svgWidth"/>
+ <xsl:with-param name="parentMarginLeftNew" select="$parentMarginLeftNew"/>
+ <xsl:with-param name="leftPosition" select="$leftPosition"/>
+ <xsl:with-param name="svgY" select="$svgY"/>
+ </xsl:call-template>
+ <xsl:apply-templates select="following-sibling::node()[1]" mode="frameFloating">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="previousFrameWidths" select="$previousFrameWidths + $svgWidth"/>
+ <xsl:with-param name="parentMarginLeft" select="$parentMarginLeftNew"/>
+ <xsl:with-param name="leftPosition" select="$leftPosition"/>
+ <xsl:with-param name="createDiv" select="true()"/>
+ <xsl:with-param name="noDivBefore" select="false()"/>
+ </xsl:apply-templates>
+ <!--
+
+ </xsl:otherwise>
+ </xsl:choose> -->
+ </xsl:template>
+
+ <xsl:template name="createDrawFrame2">
+ <xsl:param name="globalData"/>
+ <xsl:param name="previousFrameWidths" />
+ <xsl:param name="parentMarginLeftNew"/>
+ <xsl:param name="leftPosition" />
+ <xsl:param name="svgY" />
+
+ <xsl:variable name="elem-name">
+ <xsl:choose>
+ <xsl:when test="@text:anchor-type='as-char'">span</xsl:when>
+ <xsl:otherwise>div</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:comment>Next '
+ <xsl:value-of select="$elem-name"/>' is a draw:frame.
+ </xsl:comment>
+ <xsl:element name="{$elem-name}">
+ <xsl:attribute name="style">
+ <xsl:call-template name="widthAndHeight"/>
+ <xsl:text> padding:0; </xsl:text>
+ <xsl:if test="@text:anchor-type!='as-char'">
+ <!-- all images float (CSS float reltaive) with a left position calculated by svg:x - parentMarginLeft - previousFrameWidths -->
+ <xsl:text> float:left; position:relative; left:</xsl:text>
+ <xsl:value-of select="$leftPosition"/>
+ <xsl:text>cm; </xsl:text>
+ <!-- if the frame is anchored on a char -->
+ <xsl:if test="@text:anchor-type='char'">
+ <xsl:text>top:</xsl:text>
+ <xsl:value-of select="$svgY"/>
+ <xsl:text>cm; </xsl:text>
+ </xsl:if>
+ </xsl:if>
+ </xsl:attribute>
+ <xsl:apply-templates select="@*">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="node()">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="svg:desc"/>
+
+ <xsl:template name="widthAndHeight">
+ <xsl:if test="@svg:height | @svg:width">
+ <xsl:choose>
+ <xsl:when test="not(@svg:width)">
+ <xsl:call-template name="svg:height"/>
+ </xsl:when>
+ <xsl:when test="not(@svg:height)">
+ <xsl:call-template name="svg:width"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="svg:height"/>
+ <xsl:call-template name="svg:width"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- ***************** -->
+ <!-- *** Text Span *** -->
+ <!-- ***************** -->
+
+ <xsl:template match="text:span">
+ <xsl:param name="globalData"/>
+
+ <xsl:choose>
+ <xsl:when test="draw:frame">
+ <!-- sometimes an ODF image is anchored as character and the
+ image frame appears within a span (which is not valid for HTML)
+ Heuristic: Neglecting the span assuming no text content aside
+ of frame within span -->
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="span">
+ <xsl:call-template name="apply-styles-and-content">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+
+ <!-- **************** -->
+ <!-- *** Headings *** -->
+ <!-- **************** -->
+
+ <xsl:template match="text:h">
+ <xsl:param name="globalData"/>
+
+ <!-- no creation of empty headings (without text content) -->
+ <xsl:if test="text() or descendant::text()">
+ <!-- The URL linking of an table-of-content is due to a bug (cp. bug id# 102311) not mapped as URL in the XML.
+ Linking of the table-of-content can therefore only be archieved by a work-around in HTML -->
+ <xsl:call-template name="create-heading">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- default matching for header elements -->
+ <xsl:template name="create-heading">
+ <xsl:param name="globalData"/>
+
+ <xsl:variable name="headingLevel">
+ <xsl:choose>
+ <xsl:when test="@text:outline-level &lt; 6">
+ <xsl:value-of select="@text:outline-level"/>
+ </xsl:when>
+ <xsl:otherwise>6</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="headertyp" select="concat('h', $headingLevel)"/>
+ <xsl:element name="{$headertyp}">
+ <!-- outline style 'text:min-label-width' is interpreted as a CSS 'margin-right' attribute
+ NOTE: Should be handled as CSS style in style header -->
+ <xsl:variable name="min-label" select="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:outline-level]/*/@text:min-label-width"/>
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate(@text:style-name, '.,;: %()[]/\+', '_____________')"/>
+ </xsl:attribute>
+
+ <xsl:call-template name="create-heading-anchor">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:element>
+
+ </xsl:template>
+
+ <xsl:template name="create-heading-anchor">
+ <xsl:param name="globalData"/>
+
+ <!-- writing out a heading number if desired.-->
+ <!-- if a corresponding 'text:outline-style' exist or is not empty -->
+ <xsl:choose>
+ <xsl:when test="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:outline-level]/@style:num-format != ''">
+
+ <!-- Every heading element will get an unique anchor for its file, from its hiearchy level and name:
+ For example: The heading title 'My favorite heading' might get <a name="1_2_2_My_favorite_heading" /> -->
+ <!-- creating an anchor for referencing the heading (e.g. from content table) -->
+ <xsl:variable name="headingNumber">
+ <xsl:call-template name="get-heading-number">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="create-heading-anchor2">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="headingNumber" select="$headingNumber"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create-heading-anchor2">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template name="get-heading-number">
+ <xsl:param name="globalData"/>
+
+ <!-- write number prefix -->
+ <xsl:value-of select="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:outline-level]/@style:num-prefix"/>
+ <xsl:call-template name="write-heading-number">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ <!-- write number suffix -->
+ <xsl:value-of select="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:outline-level]/@style:num-suffix"/>
+ </xsl:template>
+
+ <!-- creating an anchor for referencing the heading -->
+ <xsl:template name="create-heading-anchor2">
+ <xsl:param name="globalData"/>
+ <xsl:param name="headingNumber" />
+
+ <xsl:variable name="title">
+ <xsl:apply-templates mode="concatenate"/>
+ </xsl:variable>
+ <!-- REFERENCE HANDLING - ANCHOR -->
+ <xsl:element namespace="{$namespace}" name="a">
+ <xsl:attribute name="id">
+ <xsl:value-of select="translate(concat('a_',$headingNumber, '_', normalize-space($title)), '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________')"/>
+ </xsl:attribute>
+
+ <xsl:element name="span">
+ <!-- outline style 'text:min-label-distance' is interpreted as a CSS 'margin-right' attribute
+ NOTE: Should be handled as CSS style in style header -->
+ <xsl:variable name="minLabelDistance" select="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:outline-level]/*/@text:min-label-distance"/>
+ <xsl:variable name="minLabelWidth" select="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:outline-level]/*/@text:min-label-width"/>
+
+ <xsl:if test="$minLabelDistance | $minLabelWidth">
+ <xsl:attribute name="style">
+ <xsl:if test="$minLabelDistance">
+ <xsl:text>margin-right:</xsl:text>
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$minLabelDistance"/>
+ </xsl:call-template>
+ <xsl:text>cm;</xsl:text>
+ </xsl:if>
+ <xsl:if test="$minLabelWidth">
+ <xsl:text>min-width:</xsl:text>
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$minLabelWidth"/>
+ </xsl:call-template>
+ <xsl:text>cm;</xsl:text>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:copy-of select="$headingNumber"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template name="write-heading-number">
+ <xsl:param name="globalData"/>
+
+ <!-- By default heading start with '1', the parameter 'textStartValue' will only be set, if the attribute @text:start-value exist -->
+ <xsl:choose>
+ <xsl:when test="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:outline-level]/@text:start-value">
+ <xsl:call-template name="calc-heading-number">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="outlineLevel" select="@text:outline-level"/>
+ <xsl:with-param name="textStartValue" select="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:outline-level]/@text:start-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="calc-heading-number">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="outlineLevel" select="@text:outline-level"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!--
+ Find the correct heading no., which is the sum of 'text:start-value'
+ and preceding siblings of 'text:h' with the same 'text:outline-level' (until a text:outline-level with lower value is found).
+ If the 'text:start-value is not set the default value of '1' has to be taken.
+ If a heading number is found (e.g. text:outline-level='3') all heading numbers
+ for the higher levels have to be written out -->
+ <xsl:template name="calc-heading-number">
+ <xsl:param name="globalData"/>
+ <xsl:param name="outlineLevel"/><!-- text level of the heading -->
+ <xsl:param name="iOutlineLevel" select="1"/><!-- iterator, counts from 1 to the text level of the heading -->
+ <xsl:param name="textStartValue" select="1"/><!-- text level to start with, default is '1' -->
+
+ <xsl:choose>
+ <!-- iText levels counts up from '1' to outlineLevel
+ Which means writing a heading number from left to right -->
+ <xsl:when test="$iOutlineLevel &lt; $outlineLevel">
+
+ <!-- Write preceding heading numbers -->
+ <xsl:call-template name="writeNumber">
+ <xsl:with-param name="numberDigit">
+ <xsl:call-template name="calc-heading-digit">
+ <xsl:with-param name="value" select="0"/>
+ <xsl:with-param name="currentoutlineLevel" select="$iOutlineLevel"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="numberFormat" select="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = ($outlineLevel)]/@style:num-format"/>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = ($iOutlineLevel + 1)]/@text:start-value">
+ <xsl:call-template name="calc-heading-number">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="outlineLevel" select="$outlineLevel"/>
+ <xsl:with-param name="iOutlineLevel" select="$iOutlineLevel + 1"/>
+ <xsl:with-param name="textStartValue" select="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = ($iOutlineLevel + 1)]/@text:start-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="calc-heading-number">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="outlineLevel" select="$outlineLevel"/>
+ <xsl:with-param name="iOutlineLevel" select="$iOutlineLevel + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Write preceding heading numbers -->
+ <xsl:call-template name="writeNumber">
+ <xsl:with-param name="numberDigit">
+ <xsl:call-template name="calc-heading-digit">
+ <xsl:with-param name="value" select="$textStartValue"/>
+ <xsl:with-param name="currentoutlineLevel" select="$iOutlineLevel"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="numberFormat" select="$globalData/office:styles/text:outline-style/text:outline-level-style[@text:level = $outlineLevel]/@style:num-format"/>
+ <xsl:with-param name="last" select="true()"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="writeNumber">
+ <xsl:param name="numberDigit"/>
+ <xsl:param name="numberFormat"/>
+ <xsl:param name="last"/>
+
+ <xsl:choose>
+ <xsl:when test="not($numberFormat)">
+ <xsl:number value="$numberDigit" format="1."/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$last">
+ <xsl:number value="$numberDigit" format="{$numberFormat}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:number value="$numberDigit" format="{$numberFormat}."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="calc-heading-digit">
+ <xsl:param name="value"/>
+ <xsl:param name="currentoutlineLevel"/>
+ <xsl:param name="i" select="1"/>
+
+ <xsl:variable name="precedingoutlineLevel" select="preceding-sibling::text:h[$i]/@text:outline-level"/>
+ <xsl:choose>
+ <xsl:when test="$currentoutlineLevel = $precedingoutlineLevel">
+ <xsl:call-template name="calc-heading-digit">
+ <xsl:with-param name="value" select="$value + 1"/>
+ <xsl:with-param name="currentoutlineLevel" select="$currentoutlineLevel"/>
+ <xsl:with-param name="i" select="$i + 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$currentoutlineLevel &lt; $precedingoutlineLevel">
+ <xsl:call-template name="calc-heading-digit">
+ <xsl:with-param name="value" select="$value"/>
+ <xsl:with-param name="currentoutlineLevel" select="$currentoutlineLevel"/>
+ <xsl:with-param name="i" select="$i + 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Neglect Annotations -->
+ <xsl:template match="office:annotation" mode="concatenate"/>
+
+ <!-- Match text:placeholder child nodes (e.g. text) -->
+ <xsl:template match="text:placeholder">
+ <xsl:param name="globalData"/>
+
+ <xsl:call-template name="apply-styles-and-content">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- ************* -->
+ <!-- *** Link *** -->
+ <!-- ************* -->
+
+ <xsl:template match="text:a | draw:a">
+ <xsl:param name="globalData"/>
+
+ <xsl:call-template name="create-common-anchor-link">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:template>
+
+
+ <xsl:template name="create-common-anchor-link">
+ <xsl:param name="globalData"/>
+
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:call-template name="create-href">
+ <xsl:with-param name="href" select="@xlink:href"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="apply-styles-and-content">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+
+
+
+ <!-- ******************* -->
+ <!-- *** Image Link *** -->
+ <!-- ******************* -->
+
+ <!-- currently suggesting that all draw:object-ole elements are images -->
+ <xsl:template match="draw:image | draw:object-ole">
+ <xsl:param name="globalData"/>
+
+ <xsl:choose>
+ <xsl:when test="ancestor::text:p or parent::text:span or parent::text:h or parent::draw:a or parent::text:a or text:ruby-base">
+ <!-- XHTML does not allow the mapped elements to contain paragraphs -->
+ <xsl:call-template name="create-image-element">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- images are embedded in a paragraph, but are in CSS not able to express a horizontal alignment for themself.
+ A 'div' element taking over the image style would solve that problem, but is invalid as child of a paragraph -->
+ <xsl:element name="p">
+ <xsl:apply-templates select="@draw:style-name">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+
+ <xsl:call-template name="create-image-element">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="create-image-element">
+ <xsl:param name="globalData"/>
+
+ <xsl:element name="img">
+ <xsl:if test="../@svg:width or ../@svg:height">
+ <xsl:attribute name="style">
+ <xsl:if test="../@svg:height">
+ <xsl:text>height:</xsl:text>
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="../@svg:height"/>
+ </xsl:call-template>
+ <xsl:text>cm;</xsl:text>
+ </xsl:if>
+ <xsl:if test="../@svg:width">
+ <xsl:text>width:</xsl:text>
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="../@svg:width"/>
+ </xsl:call-template>
+ <xsl:text>cm;</xsl:text>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="alt">
+ <xsl:choose>
+ <xsl:when test="../svg:title">
+ <xsl:value-of select="../svg:title"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>
+ Accessibility Warning:
+ No alternate text ('svg:title' element) set for
+ image '
+ <xsl:value-of select="@xlink:href"/>'!
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+
+ <xsl:attribute name="src">
+ <xsl:call-template name="create-href">
+ <xsl:with-param name="href" select="@xlink:href"/>
+ </xsl:call-template>
+ </xsl:attribute>
+
+ <!-- style interpretation only, as no subelements are allowed for img in XHTML -->
+ <xsl:apply-templates select="@draw:style-name">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- ************ -->
+ <!-- *** list *** -->
+ <!-- ************ -->
+ <!--
+ Due to the requirements below the ODF list functionality is not handled by CSS, but the list labels calculated and written by XSLT.
+
+ REQUIREMENTS:
+ =============
+
+ A)
+ One significant difference between XHTML and Office List elements is that a list without text nodes but only further list children
+ would not show a list symbol in the Office, but in the browser from XHTML.
+
+ B)
+ Since OASIS Open Document XML (implemented in OOo2.0) only one parent type exists for list items
+ the 'text:list' element. The XHTML element 'ol', 'ul' will be choosen upon the list style type.
+
+ C)
+ An Office list may be spread over the whole document. Linked by their style and text:continue-numbering='true'.
+
+ D)
+ An Office list can use characters or images as list label.
+
+ E)
+ An Office list can have a prefix and suffix around the list label.
+
+ F)
+ An Office list style may have the attribute consecutive numbering, which resolves in a list counting for all levels
+
+ G)
+ An Office list may (re)start on any arbitrary value by using @text:start-value on the text:list-item
+
+ INDENDATION:
+ ============
+
+ The indent of a list label is not only calculated by using the text:space-before of the list level (listLevelStyle), but
+ as well taking the left margin of the first paragraph (or heading) of the list into account as loy match="" name="" use=""/>ng it is not negative.
+
+ | MARGIN LEFT | LABEL |
+
+ | text:space-before (listlevelstyle) | text:min-label-width |
+ | + fo:left-margin (firstParagraph) | |
+
+ Further details beyond text:list-list..
+ -->
+ <xsl:key name="listStyles" match=" /*/office:styles/text:list-style | /*/office:automatic-styles/text:list-style | /*/office:styles/style:graphic-properties/text:list-style | /*/office:automatic-styles/style:graphic-properties/text:list-style | /*/office:styles/text:list-style | /*/office:automatic-styles/text:list-style | /*/office:styles/style:graphic-properties/text:list-style | /*/office:automatic-styles/style:graphic-properties/text:list-style" use="@style:name"/>
+
+ <!--
+ A text list may only have text:list-item and text:list-header as children.
+ -->
+ <xsl:template match="text:list">
+ <xsl:param name="globalData"/>
+ <xsl:param name="isListNumberingReset"/>
+ <xsl:param name="isNextLevelNumberingReset"/>
+ <xsl:param name="listLevel" select="1"/>
+ <xsl:param name="listRestart" select="false()"/>
+ <xsl:param name="itemLabel" select="''"/>
+ <xsl:param name="listStyle"/>
+ <xsl:param name="listStyleName" select="@text:style-name"/>
+
+ <!-- To choose list type - get the list style, with the same 'text:style-name' and same 'text:level' >-->
+ <xsl:variable name="listStyleRTF">
+ <xsl:variable name="listStyleInContentFile" select="key('listStyles', $listStyleName)"/>
+ <xsl:choose>
+ <xsl:when test="$listStyleInContentFile">
+ <xsl:copy-of select="$listStyleInContentFile"/>
+ </xsl:when>
+ <xsl:when test="$globalData/office:styles/text:list-style[@style:name = $listStyleName]">
+ <xsl:copy-of select="$globalData/office:styles/text:list-style[@style:name = $listStyleName]"/>
+ </xsl:when>
+ <xsl:when test="$globalData/office:styles/style:graphic-properties/text:list-style[@style:name = $listStyleName]">
+ <xsl:copy-of select="$globalData/office:styles/style:graphic-properties/text:list-style[@style:name = $listStyleName]"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="function-available('common:node-set')">
+ <xsl:call-template name="create-list-type">
+ <xsl:with-param name="listStyle" select="common:node-set($listStyleRTF)" />
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isListNumberingReset" select="$isListNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listRestart" select="$listRestart"/>
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xalan:nodeset')">
+ <xsl:call-template name="create-list-type">
+ <xsl:with-param name="listStyle" select="xalan:nodeset($listStyleRTF)" />
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isListNumberingReset" select="$isListNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listRestart" select="$listRestart"/>
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="function-available('xt:node-set')">
+ <xsl:call-template name="create-list-type">
+ <xsl:with-param name="listStyle" select="xt:node-set($listStyleRTF)" />
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isListNumberingReset" select="$isListNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listRestart" select="$listRestart"/>
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">The required node-set function was not found!</xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="create-list-type">
+ <xsl:param name="globalData"/>
+ <xsl:param name="isListNumberingReset"/>
+ <xsl:param name="isNextLevelNumberingReset"/>
+ <xsl:param name="listLevel" />
+ <xsl:param name="listRestart" />
+ <xsl:param name="itemLabel"/>
+ <xsl:param name="listStyle"/>
+ <xsl:param name="listStyleName" />
+
+ <!-- $globalData/styles-file/*/office:styles/ -->
+ <xsl:variable name="listLevelStyle" select="$listStyle/*/*[@text:level = number($listLevel)]"/>
+ <xsl:variable name="listIndent">
+ <xsl:call-template name="getListIndent">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="firstPara" select="*[1]/*[name() = 'text:p' or name() = 'text:h'][1]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="isEmptyList" select="not(*[1]/*[name() = 'text:h' or name() = 'text:p' or name() = 'text:name'])"/>
+ <xsl:variable name="listType">
+ <xsl:choose>
+ <!-- ordered list -->
+ <xsl:when test="name($listLevelStyle) = 'text:list-level-style-number'">
+ <xsl:text>ol</xsl:text>
+ </xsl:when>
+ <!-- unordered list (bullet or image) -->
+ <xsl:otherwise>
+ <xsl:text>ul</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="{$listType}">
+ <xsl:apply-templates select="*[1]" mode="listItemSibling">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isEmptyList" select="$isEmptyList"/>
+ <xsl:with-param name="isListNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset">
+ <xsl:choose>
+ <xsl:when test="$isListNumberingReset">
+ <xsl:value-of select="true()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- A list is empty if a text:list does not have a text:list-header or text:list-item (wildcard as only those can exist beyond a text:list), which contains a text:h or text:p -->
+ <xsl:value-of select="not($isEmptyList)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="listIndent" select="$listIndent"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listRestart">
+ <xsl:choose>
+ <xsl:when test="$listRestart">
+ <xsl:value-of select="$listRestart"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- descdendants restart their list numbering, when an ancestor is not empty -->
+ <xsl:value-of select="not($isEmptyList)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="minLabelDist">
+ <xsl:choose>
+ <xsl:when test="$listLevelStyle/*/@text:min-label-distance">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$listLevelStyle/*/@text:min-label-distance"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="minLabelWidth">
+ <xsl:choose>
+ <xsl:when test="$listLevelStyle/*/@text:min-label-width">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$listLevelStyle/*/@text:min-label-width"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:template>
+
+ <!-- See comment before text:list template -->
+ <xsl:template name="getListIndent">
+ <xsl:param name="globalData"/>
+ <xsl:param name="listLevelStyle"/>
+ <!-- The first paragraph of the list item (heading is special paragraph in ODF) -->
+ <xsl:param name="firstPara" />
+
+ <!-- Styles of first paragraph in list item, including ancestor styles (inheritance) -->
+ <xsl:variable name="firstParaStyles" select="$globalData/all-styles/style[@style:name = $firstPara/@text:style-name]/final-properties"/>
+
+ <!-- Only the left margin of the first paragraph of a list item will be added to the margin of the complete list (all levels)-->
+ <xsl:variable name="firstParaLeftMargin">
+ <xsl:choose>
+ <xsl:when test="contains($firstParaStyles, 'margin-left:')">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="normalize-space(substring-before(substring-after($firstParaStyles, 'margin-left:'), ';'))"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="spaceBefore">
+ <xsl:choose>
+ <xsl:when test="$listLevelStyle/*/@text:space-before">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="$listLevelStyle/*/@text:space-before"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- Only if the left-margin of the first paragraph is positive the sum
+ text:space-before and fo:left-margin is taken as list indent -->
+ <xsl:choose>
+ <xsl:when test="$firstParaLeftMargin &gt; 0">
+ <xsl:value-of select="$firstParaLeftMargin + $spaceBefore"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$spaceBefore"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- ****************** -->
+ <!-- *** list item *** -->
+ <!-- ****************** -->
+<!--
+ Left margin of the complete list:
+ The space between left page and the list symbol (left-margin) is in the Office implemented by
+ the sum of three values:
+ 1) 'text:space-before', which is part of the 'text:list-style' element.
+ 2) 'margin:left' from the style of the first child (e.g. paragraph).
+ 3) 'fo:text-indent' the indent of the first line of some child (e.g. paragraph) (applied by CSS class style)
+
+ Possible list children:
+ <!ELEMENT text:list-item (text:p|text:h|text:list)+>
+
+ In the Office the list label before the text depends on two attributes:
+ - 'text:min-label-width': the distance between list label and all text of the list item.
+ - 'text:min-label-distance': the distance between list label and text of the first line,
+ only used, when text does not fit in text:min-label-width (ignored)
+
+-->
+ <xsl:template match="text:list-item | text:list-header" mode="listItemSibling">
+ <xsl:param name="globalData"/>
+ <xsl:param name="firstitemLabelWidth"/>
+ <xsl:param name="isEmptyList" select="not(*[name() = 'text:h' or name() = 'text:p' or name() = 'text:name'])"/>
+ <xsl:param name="isListNumberingReset"/>
+ <xsl:param name="isNextLevelNumberingReset"/>
+ <xsl:param name="itemNumber"/>
+ <xsl:param name="itemLabel"/>
+ <xsl:param name="listLevel"/>
+ <xsl:param name="listLevelStyle"/>
+ <xsl:param name="listRestart"/>
+ <xsl:param name="listStyle"/>
+ <xsl:param name="listStyleName"/>
+ <xsl:param name="minLabelDist"/>
+ <xsl:param name="minLabelWidth"/>
+ <xsl:param name="listIndent" />
+
+ <!-- The text:list-header shall not be labeled. According to ODF specification (sect. 4.3.2):
+ "The <text:list-header> element represents a list header and is a special kind of list item. It
+ contains one or more paragraphs that are displayed before a list. The paragraphs are formatted
+ like list items but they do not have a preceding number or bullet." -->
+ <xsl:variable name="isListHeader" select="boolean(self::text:list-header)"/>
+
+ <xsl:variable name="listIndentNew">
+ <xsl:choose>
+ <xsl:when test="$listIndent">
+ <xsl:value-of select="$listIndent"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="getListIndent">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="firstPara" select="*[name() = 'text:p' or name() = 'text:h'][1]" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="itemNumberNew">
+ <xsl:if test="$listStyle/text:list-style/text:list-level-style-number">
+ <xsl:choose>
+ <xsl:when test="$isListHeader">0</xsl:when>
+ <xsl:when test="$isEmptyList">
+ <!-- An empty list item (no text:h/text:p as child), will not count as item and does not increment the count. -->
+ <xsl:variable name="tempItemNumber">
+ <xsl:choose>
+ <!-- siblings will be incremented by one -->
+ <xsl:when test="$itemNumber">
+ <xsl:if test="not($isListHeader)">
+ <xsl:value-of select="$itemNumber + 1"/>
+ </xsl:if>
+ </xsl:when>
+ <!-- if a higher list level had content the numbering starts with 1 -->
+ <xsl:when test="$isListNumberingReset and $listLevel &gt; 1">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="getItemNumber">
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- in case the empty list-item is the first list-item in document -->
+ <xsl:when test="$tempItemNumber = 1">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$tempItemNumber - 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="@text:start-value">
+ <xsl:value-of select="@text:start-value"/>
+ </xsl:when>
+ <!-- text:start-value from list level style will only be taken on the first list-item of a list -->
+ <xsl:when test="$listLevelStyle/@text:start-value and count(preceding-sibling::text:list-item) = 0">
+ <xsl:value-of select="$listLevelStyle/@text:start-value"/>
+ </xsl:when>
+ <!-- siblings will be incremented by one -->
+ <xsl:when test="$itemNumber">
+ <xsl:value-of select="$itemNumber + 1"/>
+ </xsl:when>
+ <!-- if a higher list level had content the numbering starts with 1 -->
+ <xsl:when test="$isListNumberingReset and $listLevel &gt; 1">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="getItemNumber">
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="itemLabelNew">
+ <xsl:if test="$listStyle/text:list-style/text:list-level-style-number">
+ <!--
+ A numbered label (e.g. 2.C.III) is created for every text:list-item/header.
+ Above list levels are listed in the label, if the list-style requires this. Levels are separated by a '.'
+ Formatation is dependent for every list level depth.
+ The label is passed from anchestor text:list-item/header and if requrired truncated.
+ The prefix/suffix (as well list level dependent) comes before and after the complete label (after truncation)
+ -->
+ <!-- Numbered label will be generated -->
+ <xsl:call-template name="createItemLabel">
+ <xsl:with-param name="itemNumber" select="$itemNumberNew"/>
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="listLevelsToDisplay">
+ <xsl:variable name="display" select="$listLevelStyle/@text:display-levels"/>
+ <xsl:choose>
+ <xsl:when test="$display">
+ <xsl:value-of select="$display"/>
+ </xsl:when>
+ <xsl:when test="$isListHeader">0</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:element name="li">
+ <xsl:choose>
+ <xsl:when test="$isEmptyList or $isListHeader">
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="itemLabel" select="$itemLabelNew"/>
+ <xsl:with-param name="listLevel" select="$listLevel + 1"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Possible following children are text:h, text:p, list:text, text:soft-page-break -->
+ <xsl:apply-templates mode="list-item-children" select="*[1]">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isEmptyList" select="$isEmptyList"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isListHeader or $isNextLevelNumberingReset"/>
+ <!-- The new created label is given to the children -->
+ <xsl:with-param name="itemLabel" select="$itemLabelNew"/>
+ <xsl:with-param name="listLabelElement">
+ <xsl:choose>
+ <xsl:when test="name() = 'text:list-header'"/>
+ <xsl:otherwise>
+ <xsl:variable name="listLabelWidth">
+ <xsl:choose>
+ <xsl:when test="$minLabelWidth &gt; $minLabelDist">
+ <xsl:value-of select="$minLabelWidth"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$minLabelDist"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- Numbering is being done by this transformation creating a HTML span representing the number label
+ The html:span represents the list item/header label (e.g. 1.A.III)
+ As the html:span is usually a inline element is formated by CSS as block element to use width upon it,
+ to disable the caridge return float:left is used and later neglected -->
+ <xsl:element name="span">
+ <xsl:if test="$listLevelStyle/@text:style-name">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$listLevelStyle/@text:style-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style">
+ <xsl:text>display:block;float:</xsl:text>
+ <!-- 2DO: Svante - copy this functionality for other used margin:left (in western country 'left') -->
+ <xsl:call-template name="getOppositeWritingDirection">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="paraStyleName" select="descendant-or-self::*/@text:style-name"/>
+ </xsl:call-template>
+ <xsl:text>;min-width:</xsl:text>
+ <xsl:value-of select="$listLabelWidth"/>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ <xsl:variable name="labelContent">
+ <xsl:choose>
+ <xsl:when test="text:number">
+ <xsl:apply-templates select="text:number" mode="listnumber"/>
+ </xsl:when>
+ <xsl:when test="name($listLevelStyle) = 'text:list-level-style-bullet'">
+ <xsl:value-of select="$listLevelStyle/@style:num-prefix"/>
+ <xsl:value-of select="$listLevelStyle/@text:bullet-char"/>
+ <xsl:value-of select="$listLevelStyle/@style:num-suffix"/>
+ </xsl:when>
+ <xsl:when test="name($listLevelStyle) = 'text:list-level-style-number'">
+ <xsl:value-of select="$listLevelStyle/@style:num-prefix"/>
+ <xsl:value-of select="$itemLabelNew"/>
+ <xsl:value-of select="$listLevelStyle/@style:num-suffix"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Listing with image as bullets, taken from the list style's href -->
+ <xsl:value-of select="$listLevelStyle/@xlink:href"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- Some browsers have problem with stand-alone elements (e.g. <span/>)
+ Therefore a comment is being inserted into an empty label -->
+ <xsl:choose>
+ <xsl:when test="$labelContent != ''">
+ <xsl:value-of select="$labelContent"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:comment>&#160;</xsl:comment>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="listLabelEmptyElement">
+ <xsl:variable name="listLabelWidth">
+ <xsl:choose>
+ <xsl:when test="$minLabelWidth &gt; $minLabelDist">
+ <xsl:value-of select="$minLabelWidth"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$minLabelDist"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="span">
+ <xsl:if test="$listLevelStyle/@text:style-name">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$listLevelStyle/@text:style-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style">
+ <xsl:text>display:block;float:</xsl:text>
+ <xsl:call-template name="getOppositeWritingDirection">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="paraStyleName" select="descendant-or-self::*/@text:style-name"/>
+ </xsl:call-template>
+ <xsl:text>;min-width:</xsl:text>
+ <xsl:value-of select="$listLabelWidth"/>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ <xsl:comment>&#160;</xsl:comment>
+ </xsl:element>
+ </xsl:with-param>
+ <xsl:with-param name="listLevel" select="$listLevel + 1"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listRestart" select="$listRestart"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="listIndent" select="$listIndentNew"/>
+ <xsl:with-param name="minLabelWidth" select="$minLabelWidth"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:apply-templates select="following-sibling::*[1]" mode="listItemSibling">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isListNumberingReset" select="$isListNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="itemNumber" select="$itemNumberNew"/>
+ <xsl:with-param name="listIndent">
+ <xsl:choose>
+ <xsl:when test="not($isEmptyList)">
+ <xsl:value-of select="$listIndentNew"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:with-param>
+ <!-- Receives the same parent label -->
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="minLabelDist" select="$minLabelDist"/>
+ <xsl:with-param name="minLabelWidth" select="$minLabelWidth"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template name="getOppositeWritingDirection">
+ <xsl:param name="globalData"/>
+ <xsl:param name="paraStyleName"/>
+
+ <xsl:variable name="imageParagraphStyle" select="$globalData/all-styles/style[@style:name = $paraStyleName]/final-properties"/>
+
+ <xsl:choose>
+ <xsl:when test="contains($imageParagraphStyle, 'writing-mode:')">
+ <xsl:choose>
+ <xsl:when test="contains(substring-before(substring-after($imageParagraphStyle, 'writing-mode:'), ';'), 'rl')">right</xsl:when>
+ <xsl:otherwise>left</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>left</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="text:number" mode="listnumber">
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="text:number" mode="list-item-children">
+ <xsl:param name="globalData"/>
+ <xsl:param name="listLabelElement"/>
+ <xsl:param name="listLabelEmptyElement"/>
+ <xsl:param name="isEmptyList"/>
+ <xsl:param name="isListNumberingReset"/>
+ <xsl:param name="isNextLevelNumberingReset"/>
+ <xsl:param name="itemLabel"/>
+ <xsl:param name="itemNumber"/>
+ <xsl:param name="listIndent"/>
+ <xsl:param name="listLevel"/>
+ <xsl:param name="listLevelStyle" />
+ <xsl:param name="listRestart"/>
+ <xsl:param name="listStyle"/>
+ <xsl:param name="listStyleName"/>
+ <xsl:param name="minLabelWidth"/>
+
+ <xsl:apply-templates mode="list-item-children" select="following-sibling::*[1]">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isEmptyList" select="$isEmptyList"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="listLabelElement" select="$listLabelElement"/>
+ <xsl:with-param name="listLabelEmptyElement" select="$listLabelEmptyElement"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listRestart" select="$listRestart"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="listIndent" select="$listIndent"/>
+ <xsl:with-param name="minLabelWidth" select="$minLabelWidth"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <!-- Each key element holds the set of all text:list-item/text:list-header of a certain level and a certain style -->
+ <xsl:key name="getListItemsByLevelAndStyle" use="concat(count(ancestor::text:list), ancestor::text:list/@text:style-name)" match="text:list-item | text:list-header"/>
+ <!-- Each key element holds the set of all text:list-item/text:list-header of a certain style -->
+ <xsl:key name="getListItemsByStyle" use="ancestor::text:list/@text:style-name" match="text:list-item | text:list-header"/>
+
+
+ <!-- The Numbering start value (or offset from regular counteing) is used at the first item of offset,
+ but have to be reused on following items with no text:start-value -->
+ <xsl:template name="getItemNumber">
+ <xsl:param name="listLevel"/>
+ <xsl:param name="listLevelStyle"/>
+ <xsl:param name="listStyleName"/>
+ <xsl:param name="listStyle"/>
+
+ <xsl:call-template name="countListItemTillStartValue">
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyle" select="preceding::text:list-item[generate-id(key('getListItemsByLevelAndStyle', concat($listLevel, $listStyleName))) = generate-id(key('getListItemsByLevelAndStyle', concat(count(ancestor::text:list), ancestor::text:list/@text:style-name)))]"/>
+
+ <xsl:with-param name="precedingListItemsOfSameStyle" select="preceding::text:list-item[generate-id(key('getListItemsByStyle', $listStyleName)) = generate-id(key('getListItemsByStyle', ancestor::text:list/@text:style-name))]"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <!-- When there is a text:start-value the last have to be found and added to the number -->
+ <xsl:template name="countListItemTillStartValue">
+ <xsl:param name="IteratorSameLevelAndStyle" select="1"/>
+ <xsl:param name="IteratorSameStyle" select="1"/>
+ <xsl:param name="itemNumber" select="1"/>
+ <xsl:param name="listLevel"/>
+ <xsl:param name="listLevelStyle"/>
+ <xsl:param name="listStyle"/>
+ <xsl:param name="listStyleName"/>
+ <xsl:param name="precedingListItemsOfSameLevelAndStyle" />
+ <xsl:param name="precedingListItemsOfSameLevelAndStyleCount" select="count($precedingListItemsOfSameLevelAndStyle)"/>
+ <xsl:param name="precedingListItemsOfSameStyle" />
+ <xsl:param name="precedingListItemsOfSameStyleCount" select="count($precedingListItemsOfSameStyle)"/>
+ <!-- E.g.: If a list level 2 number is searched, a level 3 with content found with only a level 1 parent with content,
+ the level 3 gets a 'pseudoLevel' -->
+ <xsl:param name="pseudoLevel" select="0" />
+
+ <xsl:variable name="isListHeader" select="boolean(self::text:list-header)"/>
+ <xsl:variable name="isEmptyList" select="not(*[name() = 'text:h' or name() = 'text:p'])"/>
+
+ <!-- set the next of preceding list items. Starting from the current to the next previous text:list-item -->
+ <xsl:variable name="precedingListItemOfSameLevelAndStyle" select="$precedingListItemsOfSameLevelAndStyle[$precedingListItemsOfSameLevelAndStyleCount - $IteratorSameLevelAndStyle + 1]"/>
+ <xsl:variable name="precedingListItemOfSameStyle" select="$precedingListItemsOfSameStyle[$precedingListItemsOfSameStyleCount - $IteratorSameStyle + 1]"/>
+ <xsl:choose>
+ <xsl:when test="($precedingListItemOfSameStyle and $precedingListItemOfSameLevelAndStyle) or ($precedingListItemOfSameStyle and $listStyle/text:list-style/@text:consecutive-numbering)">
+ <xsl:for-each select="$precedingListItemOfSameStyle">
+ <xsl:choose>
+ <!-- if it is a higher list level element -->
+ <xsl:when test="$listStyle/text:list-style/@text:consecutive-numbering">
+
+ <xsl:call-template name="countListItem">
+ <xsl:with-param name="IteratorSameLevelAndStyle" select="$IteratorSameLevelAndStyle" />
+ <xsl:with-param name="IteratorSameStyle" select="$IteratorSameStyle"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyle" select="$precedingListItemsOfSameLevelAndStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyleCount" select="$precedingListItemsOfSameLevelAndStyleCount"/>
+ <xsl:with-param name="precedingListItemsOfSameStyle" select="$precedingListItemsOfSameStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameStyleCount" select="$precedingListItemsOfSameStyleCount"/>
+ <xsl:with-param name="pseudoLevel" select="$pseudoLevel" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- NOT CONSECUTIVE NUMBERING -->
+ <xsl:variable name="currentListLevel" select="count(ancestor::text:list)"/>
+ <xsl:choose>
+ <!-- IF IT IS A HIGHER LIST LEVEL ELEMENT -->
+ <xsl:when test="$currentListLevel &lt; $listLevel">
+ <xsl:choose>
+ <!-- if it has content the counting is ended -->
+ <xsl:when test="*[name() = 'text:h' or name() = 'text:p'] or $isListHeader">
+ <!-- 2DO: Perhaps the children still have to be processed -->
+ <xsl:value-of select="$itemNumber + $pseudoLevel"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- if it is empty the counting continues -->
+ <xsl:call-template name="countListItemTillStartValue">
+ <xsl:with-param name="IteratorSameLevelAndStyle" select="$IteratorSameLevelAndStyle" />
+ <xsl:with-param name="IteratorSameStyle" select="$IteratorSameStyle + 1"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyle" select="$precedingListItemsOfSameLevelAndStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyleCount" select="$precedingListItemsOfSameLevelAndStyleCount"/>
+ <xsl:with-param name="precedingListItemsOfSameStyle" select="$precedingListItemsOfSameStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameStyleCount" select="$precedingListItemsOfSameStyleCount"/>
+ <xsl:with-param name="pseudoLevel" select="$pseudoLevel" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- IF IT IS A LIST LEVEL ELEMENT OF THE COUNTING LEVEL -->
+ <xsl:when test="$currentListLevel = $listLevel">
+ <xsl:call-template name="countListItem">
+ <xsl:with-param name="IteratorSameLevelAndStyle" select="$IteratorSameLevelAndStyle" />
+ <xsl:with-param name="IteratorSameStyle" select="$IteratorSameStyle"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyle" select="$precedingListItemsOfSameLevelAndStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyleCount" select="$precedingListItemsOfSameLevelAndStyleCount"/>
+ <xsl:with-param name="precedingListItemsOfSameStyle" select="$precedingListItemsOfSameStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameStyleCount" select="$precedingListItemsOfSameStyleCount"/>
+ <xsl:with-param name="pseudoLevel" select="$pseudoLevel" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- list item below the current level does not count -->
+ <xsl:call-template name="countListItemTillStartValue">
+ <xsl:with-param name="IteratorSameLevelAndStyle" select="$IteratorSameLevelAndStyle" />
+ <xsl:with-param name="IteratorSameStyle" select="$IteratorSameStyle + 1"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyle" select="$precedingListItemsOfSameLevelAndStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyleCount" select="$precedingListItemsOfSameLevelAndStyleCount"/>
+ <xsl:with-param name="precedingListItemsOfSameStyle" select="$precedingListItemsOfSameStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameStyleCount" select="$precedingListItemsOfSameStyleCount"/>
+ <xsl:with-param name="pseudoLevel">
+ <xsl:choose>
+ <!-- empty list item does not count -->
+ <xsl:when test="not(*[name() = 'text:h' or name() = 'text:p']) or $isListHeader">
+ <xsl:value-of select="$pseudoLevel"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$itemNumber"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="countListItem">
+ <xsl:param name="IteratorSameLevelAndStyle"/>
+ <xsl:param name="IteratorSameStyle"/>
+ <xsl:param name="itemNumber"/>
+ <xsl:param name="listLevel"/>
+ <xsl:param name="listLevelStyle"/>
+ <xsl:param name="listStyle"/>
+ <xsl:param name="listStyleName"/>
+ <xsl:param name="precedingListItemsOfSameLevelAndStyle"/>
+ <xsl:param name="precedingListItemsOfSameLevelAndStyleCount"/>
+ <xsl:param name="precedingListItemsOfSameStyle"/>
+ <xsl:param name="precedingListItemsOfSameStyleCount"/>
+ <xsl:param name="pseudoLevel" />
+
+ <xsl:variable name="isListHeader" select="boolean(self::text:list-header)"/>
+ <xsl:variable name="isEmptyList" select="not(*[name() = 'text:h' or name() = 'text:p'])"/>
+
+ <xsl:choose>
+ <xsl:when test="@text:start-value">
+ <xsl:choose>
+ <xsl:when test="$isEmptyList or $isListHeader">
+ <!-- empty list item does not count. neither does list header -->
+ <xsl:call-template name="countListItemTillStartValue">
+ <xsl:with-param name="IteratorSameLevelAndStyle" select="$IteratorSameLevelAndStyle + 1" />
+ <xsl:with-param name="IteratorSameStyle" select="$IteratorSameStyle + 1"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyle" select="$precedingListItemsOfSameLevelAndStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyleCount" select="$precedingListItemsOfSameLevelAndStyleCount"/>
+ <xsl:with-param name="precedingListItemsOfSameStyle" select="$precedingListItemsOfSameStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameStyleCount" select="$precedingListItemsOfSameStyleCount"/>
+ <xsl:with-param name="pseudoLevel" select="$pseudoLevel" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$itemNumber + @text:start-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$listLevelStyle/@text:start-value">
+ <xsl:choose>
+ <xsl:when test="$isEmptyList or $isListHeader">
+ <!-- empty list item does not count. neither does list header -->
+ <xsl:call-template name="countListItemTillStartValue">
+ <xsl:with-param name="IteratorSameLevelAndStyle" select="$IteratorSameLevelAndStyle + 1" />
+ <xsl:with-param name="IteratorSameStyle" select="$IteratorSameStyle + 1"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyle" select="$precedingListItemsOfSameLevelAndStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyleCount" select="$precedingListItemsOfSameLevelAndStyleCount"/>
+ <xsl:with-param name="precedingListItemsOfSameStyle" select="$precedingListItemsOfSameStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameStyleCount" select="$precedingListItemsOfSameStyleCount"/>
+ <xsl:with-param name="pseudoLevel" select="$pseudoLevel" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$itemNumber + $listLevelStyle/@text:start-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$isEmptyList or $isListHeader">
+ <!-- empty list item does not count. neither does list header -->
+ <xsl:call-template name="countListItemTillStartValue">
+ <xsl:with-param name="IteratorSameLevelAndStyle" select="$IteratorSameLevelAndStyle + 1" />
+ <xsl:with-param name="IteratorSameStyle" select="$IteratorSameStyle + 1"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyle" select="$precedingListItemsOfSameLevelAndStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyleCount" select="$precedingListItemsOfSameLevelAndStyleCount"/>
+ <xsl:with-param name="precedingListItemsOfSameStyle" select="$precedingListItemsOfSameStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameStyleCount" select="$precedingListItemsOfSameStyleCount"/>
+ <xsl:with-param name="pseudoLevel" select="$pseudoLevel" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- count on till you find a start-value or the end is reached -->
+ <xsl:call-template name="countListItemTillStartValue">
+ <xsl:with-param name="IteratorSameLevelAndStyle" select="$IteratorSameLevelAndStyle + 1" />
+ <xsl:with-param name="IteratorSameStyle" select="$IteratorSameStyle + 1"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber + 1"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyle" select="$precedingListItemsOfSameLevelAndStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameLevelAndStyleCount" select="$precedingListItemsOfSameLevelAndStyleCount"/>
+ <xsl:with-param name="precedingListItemsOfSameStyle" select="$precedingListItemsOfSameStyle"/>
+ <xsl:with-param name="precedingListItemsOfSameStyleCount" select="$precedingListItemsOfSameStyleCount"/>
+ <xsl:with-param name="pseudoLevel" select="0" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- Creates the list label containing the number, which is separated by '.' between the levels.
+ Depending on the levels to display (listLevelsToDisplay) -->
+ <xsl:template name="createItemLabel">
+ <xsl:param name="itemLabel" select="''"/>
+ <xsl:param name="itemNumber" />
+ <xsl:param name="listLevel" />
+ <xsl:param name="listLevelStyle" />
+ <xsl:param name="listLevelsToDisplay" />
+
+ <xsl:choose>
+ <xsl:when test="$listLevelsToDisplay &lt; $listLevel">
+ <xsl:call-template name="truncLabel">
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber" />
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle" />
+ <xsl:with-param name="listLevelsToDisplay" select="$listLevelsToDisplay"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="numberedSymbol">
+ <xsl:comment>&#160;</xsl:comment>
+ <!-- only give out a number when number format is not empty -->
+ <xsl:if test="$listLevelStyle/@style:num-format != ''">
+ <xsl:number value="$itemNumber" format="{$listLevelStyle/@style:num-format}"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$listLevelsToDisplay != 1">
+ <xsl:value-of select="concat($itemLabel, '.' , $numberedSymbol)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$numberedSymbol"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="truncLabel">
+ <xsl:param name="itemLabel" />
+ <xsl:param name="itemNumber" />
+ <xsl:param name="listLevel" />
+ <xsl:param name="listLevelStyle" />
+ <xsl:param name="listLevelsToDisplay" />
+ <xsl:param name="listStyle" />
+ <xsl:param name="listStyleName" />
+
+ <xsl:call-template name="createItemLabel">
+ <xsl:with-param name="itemLabel">
+ <xsl:if test="contains($itemLabel, '.')">
+ <xsl:value-of select="substring-after($itemLabel, '.')"/>
+ </xsl:if>
+ </xsl:with-param>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLevel" select="$listLevel - 1"/>
+ <xsl:with-param name="listLevelStyle" select="$listLevelStyle"/>
+ <xsl:with-param name="listLevelsToDisplay" select="$listLevelsToDisplay"/>
+ </xsl:call-template>
+ </xsl:template>
+
+
+ <xsl:template match="text:p" mode="list-item-children">
+ <xsl:param name="globalData"/>
+ <xsl:param name="listLabelElement"/>
+ <xsl:param name="listLabelEmptyElement"/>
+ <xsl:param name="isEmptyList"/>
+ <xsl:param name="isListNumberingReset"/>
+ <xsl:param name="isNextLevelNumberingReset"/>
+ <xsl:param name="itemLabel"/>
+ <xsl:param name="itemNumber"/>
+ <xsl:param name="listIndent"/>
+ <xsl:param name="listLevel"/>
+ <xsl:param name="listRestart"/>
+ <xsl:param name="listStyle"/>
+ <xsl:param name="listStyleName"/>
+ <xsl:param name="minLabelWidth"/>
+
+ <!-- 2DO page alignment fix - PART1 -->
+
+ <!-- xhtml:p may only contain inline elements.
+ If there is one frame beyond, div must be used! -->
+ <xsl:variable name="elementName">
+ <xsl:choose>
+ <xsl:when test="descendant::draw:frame[1] or descendant::text:p[1]">div</xsl:when>
+ <xsl:otherwise>p</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="{$elementName}">
+ <xsl:call-template name="create-list-style">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="listIndent" select="$listIndent"/>
+ <xsl:with-param name="styleName" select="@text:style-name"/>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="$listLabelElement">
+ <xsl:copy-of select="$listLabelElement"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$listLabelEmptyElement"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="listIndent" select="$minLabelWidth"/>
+ </xsl:apply-templates>
+ <!-- this span disables the float necessary to bring two block elements on one line. It contains a space as IE6 bug workaround -->
+ <span class="odfLiEnd"></span>
+ <xsl:text>&#160;</xsl:text>
+ </xsl:element>
+
+ <xsl:apply-templates mode="list-item-children" select="following-sibling::*[1]">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isEmptyList" select="$isEmptyList"/>
+ <xsl:with-param name="isListNumberingReset" select="$isListNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLabelEmptyElement" select="$listLabelEmptyElement"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listRestart" select="$listRestart"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="listIndent" select="$listIndent"/>
+ <xsl:with-param name="minLabelWidth" select="$minLabelWidth"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+
+ <!-- Neglecting the left margin behavior for headings for now -->
+ <xsl:template match="text:h" mode="list-item-children">
+ <xsl:param name="globalData"/>
+ <xsl:param name="listLabelElement"/>
+ <xsl:param name="listLabelEmptyElement"/>
+ <xsl:param name="isEmptyList"/>
+ <xsl:param name="isListNumberingReset"/>
+ <xsl:param name="isNextLevelNumberingReset"/>
+ <xsl:param name="itemLabel"/>
+ <xsl:param name="itemNumber"/>
+ <xsl:param name="listIndent"/>
+ <xsl:param name="listLevel"/>
+ <xsl:param name="listRestart"/>
+ <xsl:param name="listStyle"/>
+ <xsl:param name="listStyleName"/>
+ <xsl:param name="minLabelWidth"/>
+
+ <xsl:element name="h">
+ <xsl:call-template name="create-list-style">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="listIndent" select="$listIndent"/>
+ <xsl:with-param name="styleName" select="@text:style-name"/>
+ </xsl:call-template>
+ <xsl:variable name="title">
+ <xsl:apply-templates mode="concatenate"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$listLabelElement">
+ <xsl:copy-of select="$listLabelElement"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$listLabelEmptyElement"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <!-- REFERENCE HANDLING - ANCHOR -->
+ <xsl:element namespace="{$namespace}" name="a">
+ <xsl:attribute name="id">
+ <xsl:value-of select="translate(concat('a_',$listLabelElement, '_', normalize-space($title)), '&#xA;&amp;&lt;&gt;.,;: %()[]/\+', '___________________________')"/>
+ </xsl:attribute>
+ <xsl:apply-templates>
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="listIndent" select="$minLabelWidth"/>
+ </xsl:apply-templates>
+ </xsl:element>
+
+ <!-- this span disables the float necessary to bring two block elements on one line. It contains a space as IE6 bug workaround -->
+ <span class="odfLiEnd"></span>
+ <xsl:text>&#160;</xsl:text>
+ </xsl:element>
+
+ <xsl:apply-templates mode="list-item-children" select="following-sibling::*[1]">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isEmptyList" select="$isEmptyList"/>
+ <xsl:with-param name="isListNumberingReset" select="$isListNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLabelEmptyElement" select="$listLabelEmptyElement"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listRestart" select="$listRestart"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="listIndent" select="$listIndent"/>
+ <xsl:with-param name="minLabelWidth" select="$minLabelWidth"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+
+ <xsl:template match="*" mode="list-item-children">
+ <xsl:param name="globalData"/>
+ <xsl:param name="isEmptyList"/>
+ <xsl:param name="listLabelEmptyElement"/>
+ <xsl:param name="isListNumberingReset"/>
+ <xsl:param name="isNextLevelNumberingReset"/>
+ <xsl:param name="itemLabel"/>
+ <xsl:param name="itemNumber"/>
+ <xsl:param name="listIndent"/>
+ <xsl:param name="listLevel"/>
+ <xsl:param name="listRestart"/>
+ <xsl:param name="listStyle"/>
+ <xsl:param name="listStyleName"/>
+ <xsl:param name="minLabelWidth"/>
+
+ <xsl:apply-templates select="self::*">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isEmptyList" select="$isEmptyList"/>
+ <xsl:with-param name="isListNumberingReset" select="$isListNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="listLabelEmptyElement" select="$listLabelEmptyElement"/>
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listIndent" select="$listIndent"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listRestart" select="$listRestart"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ </xsl:apply-templates>
+
+ <xsl:apply-templates mode="list-item-children" select="following-sibling::*[1]">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isEmptyList" select="$isEmptyList"/>
+ <xsl:with-param name="isListNumberingReset" select="$isListNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listLabelEmptyElement" select="$listLabelEmptyElement"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listRestart" select="$listRestart"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ <xsl:with-param name="listIndent" select="$listIndent"/>
+ <xsl:with-param name="minLabelWidth" select="$minLabelWidth"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="*" mode="listItemSibling">
+ <xsl:param name="globalData"/>
+ <xsl:param name="isEmptyList"/>
+ <xsl:param name="isListNumberingReset"/>
+ <xsl:param name="isNextLevelNumberingReset"/>
+ <xsl:param name="itemLabel"/>
+ <xsl:param name="itemNumber"/>
+ <xsl:param name="listIndent"/>
+ <xsl:param name="listLevel"/>
+ <xsl:param name="listRestart"/>
+ <xsl:param name="listStyle"/>
+ <xsl:param name="listStyleName"/>
+
+ <xsl:apply-templates select="self::*">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isEmptyList" select="$isEmptyList"/>
+ <xsl:with-param name="isListNumberingReset" select="$isListNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listIndent" select="$listIndent"/>
+ <!-- receives the same parent label, only with a different itemNumber -->
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="following-sibling::*[1]" mode="listItemSibling">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="isEmptyList" select="$isEmptyList"/>
+ <xsl:with-param name="isListNumberingReset" select="$isListNumberingReset"/>
+ <xsl:with-param name="isNextLevelNumberingReset" select="$isNextLevelNumberingReset"/>
+ <xsl:with-param name="itemNumber" select="$itemNumber"/>
+ <xsl:with-param name="listIndent" select="$listIndent"/>
+ <!-- receives the same parent label, only with a different itemNumber -->
+ <xsl:with-param name="itemLabel" select="$itemLabel"/>
+ <xsl:with-param name="listLevel" select="$listLevel"/>
+ <xsl:with-param name="listStyle" select="$listStyle"/>
+ <xsl:with-param name="listStyleName" select="$listStyleName"/>
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <xsl:template match="text()" mode="list-item-children">
+ <xsl:value-of select="."/>
+ </xsl:template>
+
+
+ <xsl:template name="create-list-style">
+ <xsl:param name="globalData"/>
+ <xsl:param name="listIndent" select="0"/>
+ <xsl:param name="styleName"/>
+
+ <xsl:if test="$styleName">
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate($styleName, '.,;: %()[]/\+', '_____________')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style">
+ <xsl:text>margin-</xsl:text>
+ <xsl:call-template name="getOppositeWritingDirection">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="paraStyleName" select="descendant-or-self::*/@text:style-name"/>
+ </xsl:call-template>
+ <xsl:text>:</xsl:text>
+ <xsl:value-of select="$listIndent"/>
+ <xsl:text>cm;</xsl:text>
+ </xsl:attribute>
+ </xsl:template>
+
+
+ <!-- ********************************************** -->
+ <!-- *** Text Section (contains: draw:text-box) *** -->
+ <!-- ********************************************** -->
+
+ <xsl:template match="text:section">
+ <xsl:param name="globalData"/>
+
+ <xsl:if test="not(contains(@text:display, 'none'))">
+ <xsl:comment>Next 'div' was a 'text:section'.</xsl:comment>
+ <xsl:element name="div">
+ <xsl:call-template name="apply-styles-and-content">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+
+ <!-- Hidden text dependend on Office variables:
+ The text is not shown, if condition is 'true'.
+ Implemented solely for conditons as '<VARIABLE>==0' or '<VARIABLE>==1'
+ -->
+ <xsl:key match="text:variable-set" name="varSet" use="@text:name"/>
+ <xsl:template match="text:hidden-text">
+ <xsl:param name="globalData"/>
+
+ <xsl:variable name="varName" select="substring-before(@text:condition, '==')"/>
+ <xsl:variable name="varValue" select="substring-after(@text:condition, '==')"/>
+ <xsl:choose>
+ <xsl:when test="key('varSet', $varName)/@text:value != $varValue">
+ <xsl:value-of select="@text:string-value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:comment>
+ <xsl:value-of select="$varName"/>
+ <xsl:value-of select="@text:string-value"/>
+ <xsl:value-of select="$varName"/>
+ </xsl:comment>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="@text:style-name | @draw:style-name | @draw:text-style-name | @table:style-name"><!-- | @presentation:style-name-->
+ <xsl:param name="globalData"/>
+
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate(., '.,;: %()[]/\+', '_____________')"/>
+ </xsl:attribute>
+ </xsl:template>
+
+
+ <!-- ***************** -->
+ <!-- *** Footnotes *** -->
+ <!-- ***************** -->
+
+ <xsl:template match="text:note">
+ <xsl:param name="globalData"/>
+
+ <!-- get style configuration -->
+ <xsl:variable name="footnoteConfig" select="$globalData/office:styles/text:notes-configuration[@text:note-class=current()/@text:note-class]" />
+
+ <xsl:variable name="titlePrefix">
+ <xsl:choose>
+ <xsl:when test="@text:note-class = 'footnote'">
+ <xsl:text>Footnote: </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Endnote: </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- write anchor -->
+ <xsl:element name="span">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$footnoteConfig/@text:citation-body-style-name"/>
+ </xsl:attribute>
+ <xsl:attribute name="title">
+ <xsl:value-of select="$titlePrefix"/>
+ <xsl:apply-templates mode="textOnly" select="text:note-body"/>
+ </xsl:attribute>
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:value-of select="concat('#', @text:id)"/>
+ </xsl:attribute>
+ <xsl:attribute name="id">
+ <xsl:value-of select="concat('body_', @text:id)"/>
+ </xsl:attribute>
+ <xsl:apply-templates mode="textOnly" select="text:note-citation"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="*" mode="textOnly">
+ <xsl:apply-templates select="* | text()" mode="textOnly" />
+ </xsl:template>
+
+ <xsl:template match="text()" mode="textOnly">
+ <xsl:value-of select="."/>
+ </xsl:template>
+
+ <!-- Useful in case of 'style:map', conditional formatting, where a style references to another -->
+ <xsl:key name="textNotes" match="text:note" use="@text:note-class"/>
+
+ <!-- writing the footer- and endnotes beyond the body -->
+ <xsl:template name="write-text-nodes">
+ <xsl:param name="globalData"/>
+
+ <!-- write footnote body -->
+ <xsl:for-each select="key('textNotes', 'footnote')">
+ <xsl:call-template name="write-text-node">
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="footnoteConfig" select="$globalData/office:styles/text:notes-configuration[@text:note-class=current()/@text:note-class]" />
+ </xsl:call-template>
+ </xsl:for-each>
+
+ <!-- write endnote body -->
+ <xsl:for-each select="key('textNotes', 'endnote')">
+ <xsl:call-template name="write-text-node">
+
+ <xsl:with-param name="globalData" select="$globalData"/>
+ <xsl:with-param name="footnoteConfig" select="$globalData/office:styles/text:notes-configuration[@text:note-class=current()/@text:note-class]" />
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="write-text-node">
+ <xsl:param name="globalData"/>
+ <xsl:param name="footnoteConfig"/>
+
+ <xsl:apply-templates select="text:note-body/*[1]">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="footnotePrefix">
+ <xsl:element name="span">
+ <xsl:attribute name="class">footnodeNumber</xsl:attribute>
+ <xsl:element name="a">
+ <xsl:attribute name="class">
+ <xsl:value-of select="$footnoteConfig/@text:citation-style-name"/>
+ </xsl:attribute>
+ <xsl:attribute name="id">
+ <xsl:value-of select="@text:id"/>
+ </xsl:attribute>
+ <xsl:attribute name="href">
+ <xsl:value-of select="concat('#body_', @text:id)"/>
+ </xsl:attribute>
+ <xsl:apply-templates mode="textOnly" select="text:note-citation"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:with-param>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="text:note-body/*[position()&gt;1]">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:apply-templates>
+ </xsl:template>
+
+ <!-- ***************** -->
+ <!-- *** Bookmarks *** -->
+ <!-- ***************** -->
+
+ <xsl:template match="text:bookmark|text:bookmark-start">
+ <xsl:element name="a">
+ <xsl:attribute name="name">
+ <xsl:value-of select="@text:name"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="text:bookmark-end"/>
+
+ <!-- DISABLING this tab handling as the tab width is only relative
+ <xsl:template match="text:tab">
+ <xsl:param name="globalData"/>
+
+ <xsl:variable name="tabNo">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::text:line-break">
+ <xsl:call-template name="countTextTab"/>
+ </xsl:when>
+ <xsl:when test="preceding-sibling::text:tab">
+ <xsl:value-of select="count(preceding-sibling::text:tab)"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="span">
+ <xsl:attribute name="style">margin-left:<xsl:value-of select="$globalData/all-doc-styles/style[@style:name = current()/parent::*/@text:style-name]/*/style:tab-stops/style:tab-stop[$tabNo]/@style:position"/>;</xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template name="countTextTab">
+ <xsl:param name="tabCount" select="1"/>
+ <xsl:param name="context" select="."/>
+
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::*[1]">
+ <xsl:for-each select="preceding-sibling::*[1]">
+ <xsl:call-template name="countTextTab">
+ <xsl:with-param name="tabCout">
+ <xsl:choose>
+ <xsl:when test="name(.) = 'text:tab'">
+ <xsl:value-of select="$tabCount + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$tabCount"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="context" select="preceding-sibling::*[1]" />
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$tabCount"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+-->
+ <!-- MathML -->
+ <xsl:template match="draw:object[math:math]">
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
+ <xsl:apply-templates select="math:math/math:semantics/*" mode="math"/>
+ </math>
+ </xsl:template>
+
+ <xsl:template match="*" mode="math">
+ <xsl:element name="{local-name()}" namespace="http://www.w3.org/1998/Math/MathML">
+ <xsl:apply-templates select="@*|node()" mode="math"/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="@*" mode="math">
+ <xsl:attribute name="{local-name()}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+
+ <xsl:template match="math:annotation" mode="math"/>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/xhtml/header.xsl b/test/user-template/user/xslt/export/xhtml/header.xsl
new file mode 100644
index 000000000000..7e834862c2d6
--- /dev/null
+++ b/test/user-template/user/xslt/export/xhtml/header.xsl
@@ -0,0 +1,485 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi xforms xsd xsi"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+
+ <!-- ************** -->
+ <!-- *** header *** -->
+ <!-- ************** -->
+
+ <xsl:template name="create-header">
+ <xsl:param name="globalData" />
+
+ <xsl:element name="head">
+ <xsl:attribute name="profile">http://dublincore.org/documents/dcmi-terms/</xsl:attribute>
+ <xsl:if test="$debugEnabled"><xsl:message>CSS helper variable will be created....</xsl:message></xsl:if>
+ <xsl:call-template name='xhtml-header-properties'>
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+
+ <xsl:if test="$debugEnabled"><xsl:message>CSS variable ready, header will be created....</xsl:message></xsl:if>
+ <!-- constructing the css header simulating inheritance of style-families by style order -->
+ <xsl:call-template name='create-css-styleheader'>
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+ <xsl:if test="$debugEnabled"><xsl:message>CSS header creation finished!</xsl:message></xsl:if>
+ </xsl:element>
+
+ </xsl:template>
+
+
+ <!-- Creating a CSS style header from the collected styles of the 'globalData' parameter -->
+ <xsl:template name='create-css-styleheader'>
+ <xsl:param name="globalData" />
+
+ <xsl:element name="style">
+ <xsl:attribute name="type">text/css</xsl:attribute>
+<xsl:text>
+ </xsl:text>
+ <xsl:call-template name='create-page-layout'>
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+<xsl:text>table { border-collapse:collapse; border-spacing:0; empty-cells:show }
+ </xsl:text>
+ <xsl:choose>
+ <xsl:when test="/*/office:body/office:spreadsheet"><xsl:text>td, th { vertical-align:top; font-size:10pt;}
+ </xsl:text></xsl:when>
+ <xsl:otherwise><xsl:text>td, th { vertical-align:top; font-size:12pt;}
+ </xsl:text></xsl:otherwise>
+ </xsl:choose>
+<xsl:text>h1, h2, h3, h4, h5, h6 { clear:both }
+ </xsl:text>
+<xsl:text>ol, ul { margin:0; padding:0;}
+ </xsl:text>
+<xsl:text>li { list-style: none; margin:0; padding:0;}
+ </xsl:text>
+<xsl:comment> "li span.odfLiEnd" - IE 7 issue</xsl:comment>
+<xsl:text>
+ </xsl:text>
+<xsl:text>li span. { clear: both; line-height:0; width:0; height:0; margin:0; padding:0; }
+ </xsl:text>
+<xsl:text>span.footnodeNumber { padding-right:1em; }
+ </xsl:text>
+<xsl:text>span.annotation_style_by_filter { font-size:95%; font-family:Arial; background-color:#fff000; margin:0; border:0; padding:0; }
+ </xsl:text>
+<xsl:text>* { margin:0;}
+ </xsl:text>
+ <xsl:call-template name="write-mapped-CSS-styles">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template name="write-mapped-CSS-styles">
+ <xsl:param name="globalData" />
+ <xsl:param name="styleNo" select="1"/>
+ <xsl:param name="emptyStyles"/>
+
+ <xsl:choose>
+ <xsl:when test="$globalData/all-styles/style[$styleNo]">
+ <!-- If there is still a style to be written -->
+ <!-- setting the context -->
+ <xsl:for-each select="$globalData/all-styles/style[$styleNo]">
+ <xsl:choose>
+ <xsl:when test="final-properties != ''">
+ <!-- NOTE: easy process, as only the style family in conjunction with the style name, makes the style unambigous -->
+ <xsl:text>.</xsl:text><!--<xsl:value-of select="@style:family" /><xsl:text>:</xsl:text>--><xsl:value-of select="translate(@style:name, '.,;: %()[]/\+', '_____________')"/><xsl:text> { </xsl:text> <xsl:value-of select="final-properties" /><xsl:text>}
+ </xsl:text>
+ <xsl:call-template name="write-mapped-CSS-styles">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="emptyStyles" select="$emptyStyles"/>
+ <xsl:with-param name="styleNo" select="$styleNo + 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="write-mapped-CSS-styles">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="emptyStyles" select="concat($emptyStyles, '.', @style:name, ' ')"/>
+ <xsl:with-param name="styleNo" select="$styleNo + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Otherwise all styles have been processed and the empty styles have to be given out -->
+ <xsl:comment> ODF styles with no properties representable as CSS </xsl:comment><xsl:text>
+ </xsl:text><xsl:value-of select="$emptyStyles"/><xsl:text>{ }
+ </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <!-- Creating CSS page layout based on first office master style -->
+ <xsl:template name='create-page-layout'>
+ <xsl:param name="globalData" />
+
+ <!-- approximation to find the correct master page style (with page dimensions) -->
+ <xsl:variable name="masterPageNames">
+ <!-- set context to styles.xml -->
+ <xsl:for-each select="$globalData/all-doc-styles/style">
+ <!-- Loop over every style:style containing a @style:master-page-name attribute -->
+ <xsl:for-each select="key('masterPage','count')">
+ <!-- set context to styles.xml -->
+ <xsl:for-each select="/*/office:body">
+ <!-- Check if this style is being used in the body -->
+ <xsl:if test="key('elementUsingStyle', ../@style:name)">
+ <!-- Check every master-page-name if it is not emtpy and return as ';' separated list -->
+ <xsl:if test="string-length(../@style:master-page-name) &gt; 0"><xsl:value-of select="../@style:master-page-name"/>;</xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:variable>
+ <!-- Take the first of the masterpage list and get the according style:master-page element and find the @style:page-layout-name -->
+ <xsl:variable name="pageLayoutName" select="key('masterPageElements', substring-before($masterPageNames,';'))/@style:page-layout-name"/>
+ <!-- Find the according style:page-layout and store the properties in a variable -->
+ <xsl:variable name="pageProperties" select="key('pageLayoutElements', $pageLayoutName)/style:page-layout-properties"/>
+
+<xsl:text>@page { </xsl:text>
+
+ <xsl:call-template name="page-size">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="pageProperties" select="$pageProperties" />
+ </xsl:call-template>
+ <xsl:call-template name="page-margin">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="pageProperties" select="$pageProperties" />
+ </xsl:call-template>
+
+<xsl:text> }
+ </xsl:text>
+
+ </xsl:template>
+
+
+ <xsl:template name="page-size">
+ <xsl:param name="globalData" />
+ <xsl:param name="pageProperties" />
+
+ <xsl:variable name="printOrientation" select="$pageProperties/@style:print-orientation" />
+ <xsl:variable name="pageWidth" select="$pageProperties/@fo:page-width" />
+ <xsl:variable name="pageHeight" select="$pageProperties/@fo:page-height" />
+ <xsl:choose>
+ <xsl:when test="$pageWidth and $pageHeight">
+ <xsl:text>size: </xsl:text>
+ <xsl:value-of select="$pageWidth" />
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$pageHeight" />
+ <xsl:text>; </xsl:text>
+ </xsl:when>
+ <xsl:when test="$printOrientation">
+ <xsl:text>size: </xsl:text>
+ <xsl:value-of select="$printOrientation" />
+ <xsl:text>; </xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+
+
+ <xsl:template name="page-margin">
+ <xsl:param name="globalData" />
+ <xsl:param name="pageProperties" />
+
+ <xsl:variable name="marginTop" select="$pageProperties/@fo:margin-top" />
+ <xsl:if test="$marginTop">
+ <xsl:text>margin-top: </xsl:text>
+ <xsl:value-of select="$marginTop" />
+ <xsl:text>; </xsl:text>
+ </xsl:if>
+ <xsl:variable name="marginBottom" select="$pageProperties/@fo:margin-bottom" />
+ <xsl:if test="$marginBottom">
+ <xsl:text>margin-bottom: </xsl:text>
+ <xsl:value-of select="$marginBottom" />
+ <xsl:text>; </xsl:text>
+ </xsl:if>
+ <xsl:variable name="marginLeft" select="$pageProperties/@fo:margin-left" />
+ <xsl:if test="$marginLeft">
+ <xsl:text>margin-left: </xsl:text>
+ <xsl:value-of select="$marginLeft" />
+ <xsl:text>; </xsl:text>
+ </xsl:if>
+ <xsl:variable name="marginRight" select="$pageProperties/@fo:margin-right" />
+ <xsl:if test="$marginRight">
+ <xsl:text>margin-right: </xsl:text>
+ <xsl:value-of select="$marginRight" />
+ </xsl:if>
+ </xsl:template>
+
+
+ <!-- *************************** -->
+ <!-- *** Common XHTML header *** -->
+ <!-- *************************** -->
+
+ <xsl:template name='xhtml-header-properties'>
+ <xsl:param name="globalData" />
+
+ <xsl:variable name="netloc">
+ <xsl:for-each select="$globalData/meta-file/*/office:meta/meta:user-defined">
+ <xsl:if test="./@meta:name='ODF.base'">
+ <xsl:value-of select="." />
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="$globalData/meta-file/*/office:meta/meta:user-defined">
+ <xsl:if test="./@meta:name='ODF.filename'">
+ <xsl:value-of select="." />
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <xsl:variable name="lang">
+ <xsl:choose>
+ <xsl:when test="$globalData/meta-file/*/office:meta/dc:language">
+ <xsl:value-of select="$globalData/meta-file/*/office:meta/dc:language" />
+ </xsl:when>
+ <xsl:otherwise>en-US</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="prov">
+ <xsl:choose>
+ <xsl:when test="$globalData/meta-file/*/office:meta/meta:printed-by">
+ <xsl:value-of select="concat('Printed by &quot;',$globalData/meta-file/*/office:meta/meta:printed-by,'&quot;[dc:publisher] on &quot;',$globalData/meta-file/*/office:meta/meta:print-date,'&quot;[dc:date] in &quot;',$lang,'&quot;[dc:language]')" />
+ </xsl:when>
+ <xsl:otherwise />
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:variable name="keywords">
+ <xsl:for-each select="$globalData/meta-file/*/office:meta/meta:keyword">
+ <xsl:value-of select="." />
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+
+ <!-- explicit output content-type for low-tech browser (e.g. IE6) -->
+ <xsl:element name="meta">
+ <xsl:attribute name="http-equiv">Content-Type</xsl:attribute>
+ <xsl:attribute name="content">application/xhtml+xml; charset=utf-8</xsl:attribute>
+ </xsl:element>
+
+ <!-- title of document for browser frame title -->
+ <xsl:element name="title">
+ <xsl:attribute name="lang" namespace="http://www.w3.org/XML/1998/namespace">
+ <xsl:value-of select="$lang" />
+ </xsl:attribute>
+
+ <xsl:choose>
+ <xsl:when test="$globalData/meta-file/*/office:meta/dc:title">
+ <xsl:value-of select="$globalData/meta-file/*/office:meta/dc:title" />
+ </xsl:when>
+ <!-- providing the mandatory title is a workaround for an IE bug-->
+ <xsl:otherwise>
+ <xsl:text>- no title specified</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+
+ <!-- title, in DC syntax -->
+ <xsl:element name="meta">
+ <xsl:attribute name="name">DCTERMS.title</xsl:attribute>
+ <xsl:attribute name="content">
+ <xsl:value-of select="$globalData/meta-file/*/office:meta/dc:title" />
+ </xsl:attribute>
+ <xsl:attribute name="lang" namespace="http://www.w3.org/XML/1998/namespace">
+ <xsl:value-of select="$lang" />
+ </xsl:attribute>
+ </xsl:element>
+
+ <!-- the identifier for source (identifier) -->
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="'DCTERMS.identifier'" />
+ <xsl:with-param name="meta-data" select="translate($netloc, ' ','')" />
+ <xsl:with-param name="meta-enc" select="'DCTERMS.URI'" />
+ </xsl:call-template>
+
+ <!-- the language for source (language) -->
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="'DCTERMS.language'" />
+ <xsl:with-param name="meta-data" select="$lang" />
+ <xsl:with-param name="meta-enc" select="'DCTERMS.RFC4646'" />
+ </xsl:call-template>
+
+ <!-- a bit commercial (generator) -->
+ <xsl:element name="meta">
+ <xsl:attribute name="name">DCTERMS.source</xsl:attribute>
+ <xsl:attribute name="content">http://xml.openoffice.org/odf2xhtml</xsl:attribute>
+ </xsl:element>
+
+ <!-- the author of the input source (author) -->
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="'DCTERMS.creator'" />
+ <xsl:with-param name="meta-data" select="$globalData/meta-file/*/office:meta/meta:initial-creator" />
+ </xsl:call-template>
+
+ <!-- creation-date of the input source (issued) -->
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="'DCTERMS.issued'" />
+ <xsl:with-param name="meta-data" select="$globalData/meta-file/*/office:meta/meta:creation-date" />
+ <xsl:with-param name="meta-enc" select="'DCTERMS.W3CDTF'" />
+ </xsl:call-template>
+
+ <!-- name of last changing person of the input source (changedby) -->
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="'DCTERMS.contributor'" />
+ <xsl:with-param name="meta-data" select="$globalData/meta-file/*/office:meta/dc:creator" />
+ </xsl:call-template>
+
+ <!-- last changing date of the input source (changed) -->
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="'DCTERMS.modified'" />
+ <xsl:with-param name="meta-data" select="$globalData/meta-file/*/office:meta/dc:date" />
+ <xsl:with-param name="meta-enc" select="'DCTERMS.W3CDTF'" />
+ </xsl:call-template>
+
+ <!-- Last print, as provenance -->
+ <xsl:if test="$prov">
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="'DCTERMS.provenance'" />
+ <xsl:with-param name="meta-data" select="$prov" />
+ <xsl:with-param name="meta-lang" select="$lang" />
+ </xsl:call-template>
+ </xsl:if>
+
+ <!-- keywords about the input source (keywords) -->
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="'DCTERMS.subject'" />
+ <xsl:with-param name="meta-data" select="normalize-space(concat($globalData/meta-file/*/office:meta/dc:subject,', ',$keywords))" />
+ <xsl:with-param name="meta-lang" select="$lang" />
+ </xsl:call-template>
+
+ <!-- detailed description about the input source (description) -->
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="'DCTERMS.description'" />
+ <xsl:with-param name="meta-data" select="$globalData/meta-file/*/office:meta/dc:description" />
+ <xsl:with-param name="meta-lang" select="$lang" />
+ </xsl:call-template>
+
+
+ <!-- user defined use of DCTERM tags -->
+ <xsl:for-each select="$globalData/meta-file/*/office:meta/meta:user-defined[starts-with(@meta:name,'DCTERMS.')][not(.='')]">
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="@meta:name" />
+ <xsl:with-param name="meta-data" select="." />
+ <!-- <xsl:with-param name="meta-lang" select="$lang" /> -->
+ </xsl:call-template>
+ </xsl:for-each>
+ <!-- user defined use of DC tags (legacy) -->
+ <xsl:for-each select="$globalData/meta-file/*/office:meta/meta:user-defined[starts-with(@meta:name,'DC.')][not(.='')]">
+ <xsl:call-template name="add-meta-tag">
+ <xsl:with-param name="meta-name" select="@meta:name" />
+ <xsl:with-param name="meta-data" select="." />
+ <!-- <xsl:with-param name="meta-lang" select="$lang" /> -->
+ </xsl:call-template>
+ </xsl:for-each>
+
+ <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" hreflang="en" />
+ <link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" hreflang="en" />
+ <link rel="schema.DCTYPE" href="http://purl.org/dc/dcmitype/" hreflang="en" />
+ <link rel="schema.DCAM" href="http://purl.org/dc/dcam/" hreflang="en" />
+ <!-- W3C GRDDL Profile -->
+ <!--
+ <link rel="transformation" href="http://xml.openoffice.org/odf2xhtml/rdf-extract.xsl" />
+ -->
+
+ <!-- base URL of document for resolving relative links
+ NOTE: CHROME has a problem, with relative references as from content table, referencing to root directory instead of document
+ <xsl:element name="base">
+ <xsl:attribute name="href">-->
+ <!-- earlier 'targetURL' was used for an absoulte reference of base provided by the Office (file URL)
+ <xsl:value-of select="$targetURL" />
+ now '.' let relative links work, even if document has been moved -->
+ <!--<xsl:text>.</xsl:text>
+ </xsl:attribute>
+ </xsl:element>-->
+ </xsl:template>
+
+ <!-- generic template for adding common meta tags -->
+ <xsl:template name="add-meta-tag">
+ <xsl:param name="meta-name" />
+ <xsl:param name="meta-data" />
+ <xsl:param name="meta-enc" />
+ <xsl:param name="meta-lang" />
+
+ <xsl:if test="$meta-data">
+ <xsl:element name="meta">
+ <xsl:attribute name="name">
+ <xsl:value-of select="$meta-name" />
+ </xsl:attribute>
+ <xsl:attribute name="content">
+ <xsl:value-of select="$meta-data" />
+ </xsl:attribute>
+ <xsl:if test="$meta-enc">
+ <xsl:attribute name="scheme">
+ <xsl:value-of select="$meta-enc" />
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$meta-lang">
+ <xsl:attribute name="lang" namespace="http://www.w3.org/XML/1998/namespace">
+ <xsl:value-of select="$meta-lang" />
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/xhtml/opendoc2xhtml.xsl b/test/user-template/user/xslt/export/xhtml/opendoc2xhtml.xsl
new file mode 100644
index 000000000000..3d2cd7881bed
--- /dev/null
+++ b/test/user-template/user/xslt/export/xhtml/opendoc2xhtml.xsl
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi xforms xsd xsi"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+
+ <!--+++++ INCLUDED XSL MODULES +++++-->
+
+ <!-- inheritance of office style properties is resolved into absolute styles. Office properties gathered as elements -->
+ <xsl:include href="../common/styles/style_collector.xsl" />
+
+ <!-- mapping rules of office style properties to CSS/HTML properties -->
+ <xsl:include href="../common/styles/style_mapping_css.xsl" />
+
+ <!-- office header element handling especially for XHTML -->
+ <xsl:include href="header.xsl" />
+
+ <!-- office body element handling especially for XHTML -->
+ <xsl:include href="body.xsl" />
+
+
+ <xsl:output method = "xml"
+ encoding = "UTF-8"
+ media-type = "application/xhtml+xml"
+ indent = "no"
+ omit-xml-declaration = "no"
+ doctype-public = "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN"
+ doctype-system = "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd" />
+
+
+
+ <xsl:variable name="namespace" select="'http://www.w3.org/1999/xhtml'" />
+
+ <!--+++++ PARAMETER SECTION +++++-->
+
+ <!-- OPTIONAL: if the document content is provided in a directory structure. Opposite to a single flat XML stream -->
+ <xsl:param name="isPackageFormat" />
+
+ <!-- OPTIONAL: (MANDATORY: for all input document with relative external links): parameter is a absolute file URL to the target directory.
+ Relative links from the office document (e.g. to external graphics) will get this parameter as a prefix -->
+ <xsl:param name="targetBaseURL" select="'./'" />
+
+ <!-- OPTIONAL: (MANDATORY: for all input document with content table) : parameter is a absolute file URL to the target document.
+ Relative links to this office document (e.g. to internal anchor) will get this parameter as a prefix -->
+ <xsl:param name="targetURL" select="'./'" />
+
+ <!-- OPTIONAL: (MANDATORY: for input document with relative internal links)
+ To access contents of a office file (content like the meta.xml, styles.xml file or graphics) a URL could be choosen.
+ This could be even a JAR URL. The sourceBase of the content URL "jar:file:/C:/temp/Test.sxw!/content.xml" would be
+ "jar:file:/C:/temp/Test.sxw!/" for example.
+ When working with OpenOffice API a Package-URL encoded over HTTP can be used to access the jared contents of the the jared document. -->
+ <xsl:param name="sourceBaseURL" select="'./'" />
+
+ <!-- OPTIONAL: (MANDATORY: for session management by URL rewriting)
+ Useful for WebApplications: if a HTTP session is not cookie based, URL rewriting is beeing used (the session is appended to the URL).
+ This URL session is used for example when links to graphics are created by XSLT. Otherwise the user havt to log again in for every graphic he liks to see. -->
+ <xsl:param name="optionalURLSuffix" />
+
+ <!-- OPTIONAL: URL to office meta file (flat xml use the URL to the input file) -->
+ <xsl:param name="metaFileURL" />
+
+ <!-- OPTIONAL: URL to office meta file (flat xml use the URL to the input file) -->
+ <xsl:param name="stylesFileURL" />
+
+ <!-- OPTIONAL: DPI (dots per inch) the standard resolution of given pictures (necessary for the conversion of 'cm' into 'pixel')-->
+ <!-- Although many pictures have a 96 dpi resolution, a higher resoltion give better results for common browsers -->
+ <!-- Cp. measure_conversion.xsl:
+ <xsl:param name="dpi" select="111" /> -->
+
+
+ <!-- OPTIONAL: in case of using a different processor than a JAVA XSLT, you can unable the Java functionality
+ (e.g. encoding chapter names for the content-table as href and anchors ) -->
+ <xsl:param name="java" select="true()" />
+ <xsl:param name="javaEnabled" select="boolean($java)" />
+
+ <!-- OPTIONAL: for activating the debug mode set the variable here to 'true()' or give any value from outside -->
+ <xsl:param name="debug" select="false()" />
+ <xsl:param name="debugEnabled" select="boolean($debug)" />
+ <xsl:param name="onlyStyleOutput" select="false()" />
+ <xsl:param name="onlyStyleOutputEnabled" select="boolean($onlyStyleOutput)" />
+
+ <!-- ************************************* -->
+ <!-- *** build the propriate HTML file *** -->
+ <!-- ************************************* -->
+ <xsl:template match="/">
+ <!-- debug output of parameter value set -->
+ <xsl:if test="$debugEnabled">
+ <xsl:call-template name="debug-check-paramter" />
+ </xsl:if>
+ <!-- gathers style properties and
+ returns them as globalData parameter to the 'start-main' template -->
+ <xsl:call-template name="collect-global-odf-properties" />
+ </xsl:template>
+
+
+ <!-- *************************** -->
+ <!-- *** Built up XHTML file *** -->
+ <!-- *************************** -->
+ <xsl:template name="start-main">
+ <xsl:param name="globalData" />
+
+ <xsl:element name="html">
+ <xsl:comment>This file was converted to xhtml by OpenOffice.org - see http://xml.openoffice.org/odf2xhtml for more info.</xsl:comment>
+ <xsl:call-template name='create-header'>
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+
+ <xsl:call-template name='create-body'>
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+
+
+ <!-- debug purpose only:
+ verbose checking of the parameters of this template-->
+ <xsl:template name="debug-check-paramter">
+ <xsl:message>Parameter dpi: <xsl:value-of select="$dpi" /></xsl:message>
+ <xsl:message>Parameter metaFileURL: <xsl:value-of select="$metaFileURL" /></xsl:message>
+ <xsl:message>Parameter stylesFileURL: <xsl:value-of select="$stylesFileURL" /></xsl:message>
+ <xsl:message>Parameter sourceBaseURL: <xsl:value-of select="$sourceBaseURL" /></xsl:message>
+ <xsl:message>Parameter targetBaseURL: <xsl:value-of select="$targetBaseURL" /></xsl:message>
+ <xsl:message>Parameter onlyStyleOutputEnabled: <xsl:value-of select="$onlyStyleOutputEnabled" /></xsl:message>
+ <xsl:message>Parameter debugEnabled: <xsl:value-of select="$debugEnabled" /></xsl:message>
+ <xsl:message>Parameter java: <xsl:value-of select="$java" /></xsl:message>
+ <xsl:message>Parameter javaEnabled: <xsl:value-of select="$javaEnabled" /></xsl:message>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/export/xhtml/table.xsl b/test/user-template/user/xslt/export/xhtml/table.xsl
new file mode 100644
index 000000000000..a63c6d1af3ce
--- /dev/null
+++ b/test/user-template/user/xslt/export/xhtml/table.xsl
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<!--
+ For further documentation and updates visit http://xml.openoffice.org/odf2xhtml
+-->
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+ xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:dom="http://www.w3.org/2001/xml-events"
+ xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+ xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+ xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+ xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+ xmlns:math="http://www.w3.org/1998/Math/MathML"
+ xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+ xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+ xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+ xmlns:ooo="http://openoffice.org/2004/office"
+ xmlns:oooc="http://openoffice.org/2004/calc"
+ xmlns:ooow="http://openoffice.org/2004/writer"
+ xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+ xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+ xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+ xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+ xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+ xmlns:xforms="http://www.w3.org/2002/xforms"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ exclude-result-prefixes="chart config dc dom dr3d draw fo form math meta number office ooo oooc ooow script style svg table text xforms xlink xsd xsi"
+ xmlns="http://www.w3.org/1999/xhtml">
+
+
+
+ <!-- current node is a table:table -->
+ <xsl:template name="create-table-children">
+ <xsl:param name="globalData" />
+ <xsl:param name="allVisibleTableRows" />
+ <xsl:param name="allTableColumns" />
+
+ <xsl:element name="colgroup">
+ <xsl:for-each select="$allTableColumns/table:table-column">
+ <xsl:if test="not(@table:visibility = 'collapse' or @table:visibility = 'filter')">
+ <xsl:element name="col">
+ <xsl:variable name="value" select="$globalData/all-doc-styles/style[@style:name = current()/@table:style-name]/*/@style:column-width" />
+ <xsl:if test="$value">
+ <xsl:attribute name="width">
+ <!-- using the absolute width, problems with the relative in browser (in OOo style:rel-column-width) -->
+ <xsl:call-template name="convert2px">
+ <xsl:with-param name="value" select="$globalData/all-doc-styles/style[@style:name = current()/@table:style-name]/*/@style:column-width" />
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <!-- *** the column-style ***
+ <xsl:attribute name="width">
+ <xsl:variable name="currentColumnStyleName" select="$allTableColumns/table:table-column[position() = $columnPosition]/@table:style-name" />
+ <xsl:value-of select="$globalData/all-doc-styles/style[@style:name = $currentColumnStyleName]/*/@style:column-width" />
+ </xsl:attribute>-->
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+
+ <xsl:call-template name="create-table-rows">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="allVisibleTableRows" select="$allVisibleTableRows" />
+ <xsl:with-param name="allTableColumns" select="$allTableColumns" />
+ </xsl:call-template>
+ </xsl:template>
+
+
+
+ <!-- Creating the content of a table content using CSS styles -->
+ <xsl:template name="create-table-cell-content">
+ <xsl:param name="tableDataType" />
+ <xsl:param name="globalData" />
+ <xsl:param name="allTableColumns" />
+ <xsl:param name="columnPosition" />
+ <xsl:param name="currentTableColumn" />
+
+ <xsl:element name="{$tableDataType}">
+
+ <!-- if parser reads DTD the default is set to '1' -->
+ <xsl:if test="@table:number-columns-spanned and @table:number-columns-spanned > 1">
+ <xsl:attribute name="colspan">
+ <xsl:value-of select="@table:number-columns-spanned" />
+ </xsl:attribute>
+ </xsl:if>
+ <!-- if parser reads DTD the default is set to '1' -->
+ <xsl:if test="@table:number-rows-spanned and @table:number-rows-spanned > 1">
+ <xsl:attribute name="rowspan">
+ <xsl:value-of select="@table:number-rows-spanned" />
+ </xsl:attribute>
+ </xsl:if>
+
+
+ <!-- *** the cell-style *** -->
+ <!-- The cell style has no conclusion with the column style, so we switch the order/priorities due to browser issues
+
+ The cell-style depends on two attributes:
+
+ 1) table:style-name - the style properties of cell. When they exist, a default alignement (cp. below) will be added for the
+ case of no alignment in the style exist.
+
+ 2) office:value-type - the value type of the table-cell giving the default alignments.
+ By default a string value is left aligned, all other are aligned:right.
+ -->
+ <xsl:choose>
+ <xsl:when test="@table:style-name">
+ <xsl:call-template name="set-styles">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="styleName" select="@table:style-name" />
+ <xsl:with-param name="currentTableColumn" select="$currentTableColumn" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- Cells without a style use the 'table:default-cell-style-name'
+ when there is no default cell style specified for the current column. -->
+ <xsl:variable name="defaultCellStyleName" select="$currentTableColumn/@table:default-cell-style-name" />
+ <xsl:choose>
+ <xsl:when test="$defaultCellStyleName">
+ <xsl:call-template name="set-styles">
+ <xsl:with-param name="globalData" select="$globalData" />
+ <xsl:with-param name="styleName" select="$defaultCellStyleName" />
+ <xsl:with-param name="currentTableColumn" select="$currentTableColumn" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- No cell style exists, nor a default table cell style for the column -->
+ <xsl:attribute name="style">
+ <!-- sets cell alignment dependent of cell value type -->
+ <xsl:call-template name="set-cell-alignment" />
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="$debugEnabled">
+ <xsl:message>A table cell '<xsl:value-of select="$tableDataType" />' element has been added!</xsl:message>
+ </xsl:if>
+
+ <!-- empty cell tags produce problems with width CSS style on itself other table cells as well
+ therefore an non breakable space (&nbsp;/&#160;) have been inserted.-->
+ <xsl:choose>
+ <xsl:when test="node()">
+ <xsl:call-template name="apply-styles-and-content">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="apply-styles-and-content">
+ <xsl:with-param name="globalData" select="$globalData" />
+ </xsl:call-template>
+ <xsl:text>&#160;</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:element>
+ </xsl:template>
+
+
+ <!-- Sets the cell alignment by the 'office:value-type' of the 'table:table-cell'.
+ Strings have a left alignment, other values right -->
+ <xsl:template name="set-cell-alignment">
+ <xsl:choose>
+ <xsl:when test="@office:value-type and not(@office:value-type = 'string')">text-align:right; </xsl:when>
+ <xsl:otherwise>text-align:left;</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+
+ <!-- Sets styles of a cell -->
+ <xsl:template name="set-styles">
+ <xsl:param name="globalData" />
+ <xsl:param name="styleName" />
+ <xsl:param name="currentTableColumn" />
+
+ <xsl:attribute name="style">
+ <!-- sets cell alignment dependent of cell value type -->
+ <xsl:call-template name="set-cell-alignment" />
+
+ <!-- set column style (disjunct of cell style) -->
+ <xsl:value-of select="$globalData/all-styles/style[@style:name = $currentTableColumn/@table:style-name]/final-properties" />
+
+ </xsl:attribute>
+
+ <!-- cell style header -->
+ <xsl:attribute name="class">
+ <xsl:value-of select="translate($styleName, '.,;: %()[]/\+', '_____________')"/>
+ </xsl:attribute>
+ </xsl:template>
+</xsl:stylesheet>
+
diff --git a/test/user-template/user/xslt/import/common/ms2ooo_docpr.xsl b/test/user-template/user/xslt/import/common/ms2ooo_docpr.xsl
new file mode 100644
index 000000000000..77d21306b7b7
--- /dev/null
+++ b/test/user-template/user/xslt/import/common/ms2ooo_docpr.xsl
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt fo v">
+ <xsl:template match="o:DocumentProperties">
+ <office:meta>
+ <meta:generator>Microsoft Word 2003</meta:generator>
+ <dc:title>
+ <xsl:value-of select="o:Title"/>
+ </dc:title>
+ <dc:description>
+ <xsl:value-of select="o:Description"/>
+ </dc:description>
+ <dc:subject>
+ <xsl:value-of select="o:Subject"/>
+ </dc:subject>
+ <meta:initial-creator>
+ <xsl:value-of select="o:Author"/>
+ </meta:initial-creator>
+ <meta:creation-date>
+ <xsl:value-of select="substring-before( o:Created, 'Z')"/>
+ </meta:creation-date>
+ <dc:creator>
+ <xsl:value-of select="o:LastAuthor"/>
+ </dc:creator>
+ <xsl:if test="string-length(substring-before( o:LastSaved, 'Z')) &gt; 0">
+ <dc:date>
+ <xsl:value-of select="substring-before( o:LastSaved, 'Z')"/>
+ </dc:date>
+ </xsl:if>
+ <!-- comment out the below line now because Oasis format doesn't allow the meta:print-by to be empty element -->
+ <!--meta:printed-by /-->
+ <xsl:if test="string-length(substring-before( o:LastPrinted, 'Z')) &gt; 0">
+ <!--
+ <meta:print-date>
+ <xsl:value-of select="substring-before( o:LastPrinted, 'Z')"/>
+ </meta:print-date>
+ -->
+ </xsl:if>
+ <meta:keyword>
+ <xsl:value-of select="o:Keywords"/>
+ </meta:keyword>
+ <meta:editing-cycles>
+ <xsl:value-of select="o:Revision"/>
+ </meta:editing-cycles>
+ <meta:editing-duration>
+ <xsl:if test="o:TotalTime">
+ <xsl:value-of select="concat('PT', floor(o:TotalTime div 60), 'H', o:TotalTime mod 60, 'M0S')"/>
+ </xsl:if>
+ </meta:editing-duration>
+ <meta:user-defined meta:name="Category" meta:value-type="string">
+ <xsl:value-of select="o:Category"/>
+ </meta:user-defined>
+ <meta:user-defined meta:name="Manager" meta:value-type="string">
+ <xsl:value-of select="o:Manager"/>
+ </meta:user-defined>
+ <meta:user-defined meta:name="Company" meta:value-type="string">
+ <xsl:value-of select="o:Company"/>
+ </meta:user-defined>
+ <meta:user-defined meta:name="Version" meta:value-type="string">
+ <xsl:value-of select="o:Version"/>
+ </meta:user-defined>
+ <meta:user-defined meta:name="HyperlinkBase" meta:value-type="string">
+ <xsl:value-of select="o:HyperlinkBase"/>
+ </meta:user-defined>
+ <xsl:apply-templates select="../o:CustomDocumentProperties"/>
+ <meta:document-statistic meta:page-count="{o:Pages}" meta:paragraph-count="{o:Paragraphs}" meta:word-count="{o:Words}" meta:character-count="{o:Characters}"/>
+ </office:meta>
+ </xsl:template>
+ <xsl:template match="o:CustomDocumentProperties">
+ <xsl:for-each select="node()[@dt:dt]">
+ <meta:user-defined meta:name="{local-name()}" meta:value-type="{@dt:dt}">
+ <xsl:value-of select="."/>
+ </meta:user-defined>
+ </xsl:for-each>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/spreadsheetml/spreadsheetml2ooo.xsl b/test/user-template/user/xslt/import/spreadsheetml/spreadsheetml2ooo.xsl
new file mode 100644
index 000000000000..71f1baa492d0
--- /dev/null
+++ b/test/user-template/user/xslt/import/spreadsheetml/spreadsheetml2ooo.xsl
@@ -0,0 +1,9173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:SL="http://schemas.microsoft.com/schemaLibrary/2003/core" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xlink="http://www.w3.org/1999/xlink" exclude-result-prefixes="aml dt html o ss SL v w10 w wx x">
+ <!--+++++ INCLUDED XSL MODULES +++++-->
+ <!-- helper collection, to convert measures (e.g. inch to pixel using DPI (dots per inch) parameter)-->
+ <xsl:import href="../../common/measure_conversion.xsl"/>
+ <xsl:output indent="no" version="1.0" encoding="UTF-8" method="xml"/>
+ <xsl:template match="/">
+ <office:document office:mimetype="application/vnd.oasis.opendocument.spreadsheet" office:version="1.0">
+ <xsl:apply-templates select="ss:Workbook/o:DocumentProperties"/>
+ <xsl:apply-templates select="ss:Workbook/x:ExcelWorkbook"/>
+ <xsl:call-template name="font-declaration"/>
+ <xsl:apply-templates select="ss:Workbook/ss:Worksheet[1]" mode="styles"/>
+ <xsl:element name="office:body">
+ <xsl:element name="office:spreadsheet">
+ <xsl:call-template name="set-calculation"/>
+ <!-- for DataValidation -->
+ <xsl:if test="ss:Workbook/ss:Worksheet/x:DataValidation">
+ <xsl:element name="table:content-validations">
+ <xsl:apply-templates select="ss:Workbook/ss:Worksheet/x:DataValidation"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:apply-templates select="ss:Workbook/ss:Worksheet"/>
+ <xsl:call-template name="Names"/>
+ <xsl:element name="table:database-ranges">
+ <!-- these descriptions located in every Worksheet in Excel, but at the same path in Calc -->
+ <xsl:for-each select="ss:Workbook/ss:Worksheet">
+ <xsl:apply-templates select="./x:Sorting"/>
+ <xsl:apply-templates select="./x:AutoFilter"/>
+ <!-- for Advanced Filter.the position is same as AutoFilter -->
+ <xsl:if test="./ss:Names/ss:NamedRange and ./ss:Names/ss:NamedRange/@ss:Name='_FilterDatabase'">
+ <xsl:call-template name="transform-advanced-filter">
+ <xsl:with-param name="target-value" select="substring-after(./ss:Names/ss:NamedRange[@ss:Name='_FilterDatabase']/@ss:RefersTo, '=')"/>
+ <xsl:with-param name="condition-pos" select="substring-after(./ss:Names/ss:NamedRange[@ss:Name='Criteria']/@ss:RefersTo, '=')"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </office:document>
+ </xsl:template>
+ <xsl:template match="o:DocumentProperties">
+ <office:meta>
+ <meta:generator>Microsoft Excel 2003</meta:generator>
+ <xsl:if test="o:Title">
+ <dc:title>
+ <xsl:value-of select="o:Title"/>
+ </dc:title>
+ </xsl:if>
+ <xsl:if test="o:Description">
+ <dc:description>
+ <xsl:value-of select="o:Description"/>
+ </dc:description>
+ </xsl:if>
+ <xsl:if test="o:Subject">
+ <dc:subject>
+ <xsl:value-of select="o:Subject"/>
+ </dc:subject>
+ </xsl:if>
+ <xsl:if test="o:Author">
+ <meta:initial-creator>
+ <xsl:value-of select="o:Author"/>
+ </meta:initial-creator>
+ </xsl:if>
+ <xsl:if test="o:Created">
+ <meta:creation-date>
+ <xsl:value-of select="substring-before( o:Created, 'Z')"/>
+ </meta:creation-date>
+ </xsl:if>
+ <xsl:if test="o:LastAuthor">
+ <dc:creator>
+ <xsl:value-of select="o:LastAuthor"/>
+ </dc:creator>
+ </xsl:if>
+ <xsl:if test="o:LastSaved">
+ <dc:date>
+ <xsl:value-of select="substring-before( o:LastSaved, 'Z')"/>
+ </dc:date>
+ </xsl:if>
+ <!--
+ <meta:printed-by/>
+ <meta:print-date/>
+ <!~~ removed in OASIS Open Office XML
+ <meta:keywords>
+ <meta:keyword>
+ <xsl:value-of select="o:Keywords" />
+ </meta:keyword>
+ </meta:keywords>
+ ~~>
+ <dc:language/>
+ -->
+ <xsl:if test="o:Revision">
+ <meta:editing-cycles>
+ <xsl:value-of select="o:Revision"/>
+ </meta:editing-cycles>
+ </xsl:if>
+ <xsl:if test="o:TotalTime">
+ <meta:editing-duration>
+ <xsl:value-of select="concat('PT', floor(o:TotalTime div 60), 'H', o:TotalTime mod 60, 'M0S')"/>
+ </meta:editing-duration>
+ </xsl:if>
+ <xsl:if test="o:Category">
+ <meta:user-defined meta:name="Category">
+ <xsl:value-of select="o:Category"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:if test="o:Manager">
+ <meta:user-defined meta:name="Manager">
+ <xsl:value-of select="o:Manager"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:if test="o:Company">
+ <meta:user-defined meta:name="Company">
+ <xsl:value-of select="o:Company"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:if test="o:Version">
+ <meta:user-defined meta:name="Version">
+ <xsl:value-of select="o:Version"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:if test="o:HyperlinkBase">
+ <meta:user-defined meta:name="HyperlinkBase">
+ <xsl:value-of select="o:HyperlinkBase"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:apply-templates select="../o:CustomDocumentProperties"/>
+ <!--Note: <meta:document-statistic/>-->
+ </office:meta>
+ </xsl:template>
+ <xsl:template match="o:CustomDocumentProperties">
+ <xsl:for-each select="node()[@dt:dt]">
+ <meta:user-defined meta:name="{name()}">
+ <xsl:value-of select="."/>
+ </meta:user-defined>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="x:ExcelWorkbook">
+ <!-- Configuration in 'ooo:view-settings' and 'ooo:configuration-settings'
+ "GridColor"
+ "HasColumnRowHeaders"
+ "HasSheetTabs"
+ "IsOutlineSymbolsSet"
+ "IsRasterAxisSynchronized"
+ "IsSnapToRaster"
+ "RasterIsVisible"
+ "RasterResolutionX"
+ "RasterResolutionY"
+ "RasterSubdivisionX"
+ "RasterSubdivisionY"
+ "ShowGrid"
+ "ShowNotes"
+ "ShowPageBreaks"
+ "ShowZeroValues"
+ -->
+ <xsl:variable name="sharedConfiguration">
+ <xsl:if test="../ss:Worksheet/x:WorksheetOptions/x:GridlineColor">
+ <config:config-item config:name="GridColor" config:type="long">
+ <xsl:variable name="temp-code" select="substring-after(normalize-space(../ss:Worksheet/x:WorksheetOptions/x:GridlineColor), '#')"/>
+ <xsl:variable name="temp-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="$temp-code"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="string-length($temp-code)"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$temp-value"/>
+ </config:config-item>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="../ss:Worksheet/x:WorksheetOptions/x:DoNotDisplayHeadings">
+ <config:config-item config:name="HasColumnRowHeaders" config:type="boolean">false</config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="x:HideWorkbookTabs">
+ <config:config-item config:name="HasSheetTabs" config:type="boolean">false</config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="../ss:Worksheet/x:WorksheetOptions/x:DoNotDisplayOutline">
+ <config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">false</config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="../ss:Worksheet/x:WorksheetOptions/x:DoNotDisplayGridlines">
+ <config:config-item config:name="ShowGrid" config:type="boolean">false</config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="../ss:Worksheet/x:WorksheetOptions/x:DoNotDisplayZeros">
+ <config:config-item config:name="ShowZeroValues" config:type="boolean">false</config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <office:settings>
+ <config:config-item-set config:name="ooo:view-settings">
+ <config:config-item config:type="int" config:name="VisibleAreaTop">
+ <xsl:value-of select="x:WindowTopY"/>
+ </config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">
+ <xsl:value-of select="x:WindowTopX"/>
+ </config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">
+ <xsl:value-of select="x:WindowWidth"/>
+ </config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">
+ <xsl:value-of select="x:WindowHeight"/>
+ </config:config-item>
+ <xsl:variable name="ratio" select="15"/>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <config:config-item config:name="ViewId" config:type="string">View1</config:config-item>
+ <config:config-item-map-named config:name="Tables">
+ <!-- The panes of a table is like 3 | 1 or 3 | 1, or 3 , while 3 is the default one. glu
+ - - - - - - -
+ 2 | 0 2 -->
+ <xsl:for-each select="../ss:Worksheet">
+ <config:config-item-map-entry config:name="{@ss:Name}">
+ <xsl:variable name="active-pane">
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:ActivePane">
+ <xsl:value-of select="x:WorksheetOptions/x:ActivePane"/>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="not( $active-pane = '' ) and ( x:WorksheetOptions/x:SplitVertical or x:WorksheetOptions/x:SplitHorizontal )">
+ <config:config-item config:name="ActiveSplitRange" config:type="short">
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:SplitVertical and not(x:WorksheetOptions/x:SplitHorizontal)">
+ <xsl:value-of select="'3'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$active-pane"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </config:config-item>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="not( $active-pane = '')">
+ <config:config-item config:name="CursorPositionX" config:type="int">
+ <xsl:value-of select="x:WorksheetOptions/x:Panes/x:Pane[x:Number = $active-pane ]/x:ActiveCol"/>
+ </config:config-item>
+ <config:config-item config:name="CursorPositionY" config:type="int">
+ <xsl:value-of select="x:WorksheetOptions/x:Panes/x:Pane[x:Number = $active-pane ]/x:ActiveRow"/>
+ </config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="CursorPositionX" config:type="int">
+ <xsl:value-of select="x:WorksheetOptions/x:Panes/x:Pane/x:ActiveCol"/>
+ </config:config-item>
+ <config:config-item config:name="CursorPositionY" config:type="int">
+ <xsl:value-of select="x:WorksheetOptions/x:Panes/x:Pane/x:ActiveRow"/>
+ </config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="position-left">
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:LeftColumnVisible">
+ <xsl:value-of select="x:WorksheetOptions/x:LeftColumnVisible"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <config:config-item config:name="PositionLeft" config:type="int">
+ <xsl:value-of select="$position-left"/>
+ </config:config-item>
+ <xsl:variable name="position-top">
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:TopRowVisible">
+ <xsl:value-of select="x:WorksheetOptions/x:TopRowVisible"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:SplitVertical and not(x:WorksheetOptions/x:SplitHorizontal)">
+ <config:config-item config:name="PositionBottom" config:type="int">
+ <xsl:value-of select="$position-top"/>
+ </config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="PositionTop" config:type="int">
+ <xsl:value-of select="$position-top"/>
+ </config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:SplitVertical">
+ <config:config-item config:name="HorizontalSplitMode" config:type="short">
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:FreezePanes">2</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </config:config-item>
+ <config:config-item config:name="HorizontalSplitPosition" config:type="int">
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:FreezePanes">
+ <xsl:value-of select="x:WorksheetOptions/x:SplitVertical + $position-left"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="floor( x:WorksheetOptions/x:SplitVertical div $ratio )"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </config:config-item>
+ <config:config-item config:name="PositionRight" config:type="int">
+ <xsl:value-of select="x:WorksheetOptions/x:LeftColumnRightPane"/>
+ </config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="HorizontalSplitMode" config:type="short">0</config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:SplitHorizontal">
+ <config:config-item config:name="VerticalSplitMode" config:type="short">
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:FreezePanes">2</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </config:config-item>
+ <config:config-item config:name="VerticalSplitPosition" config:type="int">
+ <xsl:choose>
+ <xsl:when test="x:WorksheetOptions/x:FreezePanes">
+ <xsl:value-of select="x:WorksheetOptions/x:SplitHorizontal + $position-top"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="floor( x:WorksheetOptions/x:SplitHorizontal div $ratio )"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </config:config-item>
+ <config:config-item config:name="PositionBottom" config:type="int">
+ <xsl:value-of select="x:WorksheetOptions/x:TopRowBottomPane"/>
+ </config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="VerticalSplitMode" config:type="short">0</config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:copy-of select="$sharedConfiguration"/>
+ <xsl:if test="x:WorksheetOptions/x:TabColorIndex">
+ <config:config-item config:name="TabColor" config:type="int">
+ <xsl:variable name="temp-value">
+ <xsl:call-template name="colorindex2decimal">
+ <xsl:with-param name="colorindex" select="x:WorksheetOptions/x:TabColorIndex"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$temp-value"/>
+ </config:config-item>
+ </xsl:if>
+ </config:config-item-map-entry>
+ </xsl:for-each>
+ </config:config-item-map-named>
+ <xsl:if test="x:ActiveSheet">
+ <config:config-item config:name="ActiveTable" config:type="string">
+ <xsl:value-of select="../ss:Worksheet[/ss:Workbook/x:ExcelWorkbook/x:ActiveSheet+1]/@ss:Name"/>
+ </config:config-item>
+ </xsl:if>
+ <config:config-item config:name="HorizontalScrollbarWidth" config:type="int">555</config:config-item>
+ <!-- following are some table setting from Excel, but transformed to global setting, due to limit of Calc -->
+ <xsl:if test="../ss:Worksheet/x:WorksheetOptions/x:ShowPageBreakZoom">
+ <config:config-item config:name="ShowPageBreakPreview" config:type="boolean">true</config:config-item>
+ </xsl:if>
+ <xsl:if test="../ss:Worksheet/x:WorksheetOptions/x:PageBreakZoom">
+ <config:config-item config:name="PageViewZoomValue" config:type="int">
+ <xsl:value-of select="../ss:Worksheet/x:WorksheetOptions/x:PageBreakZoom"/>
+ </config:config-item>
+ </xsl:if>
+ <xsl:if test="../ss:Worksheet/x:WorksheetOptions/x:Zoom">
+ <config:config-item config:name="ZoomValue" config:type="int">
+ <xsl:value-of select="../ss:Worksheet/x:WorksheetOptions/x:Zoom"/>
+ </config:config-item>
+ </xsl:if>
+ <!-- several properties are not saved in Calc XML but setting, whereas vice versa. :( So just to be expanded, glu -->
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ <config:config-item-set config:name="ooo:configuration-settings">
+ <xsl:copy-of select="$sharedConfiguration"/>
+ </config:config-item-set>
+ <!-- printer setting, not finished yet. glu
+ <config:config-item-set config:name="configuration-settings" />
+ -->
+ </office:settings>
+ </xsl:template>
+ <!-- Key all attributes with the same name and same value -->
+ <xsl:key name="same-named-font" match="/ss:Workbook/ss:Styles/ss:Style/ss:Font" use="concat(@ss:FontName, @x:Family)"/>
+ <xsl:key name="same-named-face" match="/ss:Workbook/ss:Worksheet/ss:Table/ss:Row/ss:Cell//html:Font[@html:Face]" use="concat(@html:Face, @x:Family)"/>
+ <xsl:template name="font-declaration">
+ <office:font-face-decls>
+ <xsl:if test="/ss:Workbook/ss:Styles/ss:Style/ss:Font">
+ <xsl:for-each select="/ss:Workbook/ss:Styles/ss:Style/ss:Font[ generate-id(.) = generate-id(key('same-named-font', concat(@ss:FontName, @x:Family))[1])]">
+ <xsl:sort select="name()"/>
+ <xsl:element name="style:font-face">
+ <xsl:if test="@ss:FontName">
+ <xsl:attribute name="style:name">
+ <xsl:value-of select="@ss:FontName"/>
+ </xsl:attribute>
+ <xsl:attribute name="svg:font-family">
+ <xsl:value-of select="@ss:FontName"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@x:Family">
+ <xsl:attribute name="style:font-family-generic">
+ <xsl:call-template name="translate-font-family-generic">
+ <xsl:with-param name="family" select="@x:Family"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:for-each select="/ss:Workbook/ss:Worksheet/ss:Table/ss:Row/ss:Cell/descendant::html:Font[@html:Face][ generate-id(.) = generate-id(key('same-named-face', concat(@html:Face, @x:Family))[1])]">
+ <xsl:sort select="name()"/>
+ <xsl:element name="style:font-face">
+ <xsl:attribute name="style:name">
+ <xsl:value-of select="@html:Face"/>
+ </xsl:attribute>
+ <xsl:attribute name="svg:font-family">
+ <xsl:value-of select="@html:Face"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:font-family-generic">
+ <xsl:call-template name="translate-font-family-generic">
+ <xsl:with-param name="family" select="@x:Family"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </office:font-face-decls>
+ </xsl:template>
+ <xsl:template name="translate-font-family-generic">
+ <xsl:param name="family"/>
+ <xsl:choose>
+ <xsl:when test="$family='Swiss'">swiss</xsl:when>
+ <xsl:when test="$family='Modern'">modern</xsl:when>
+ <xsl:when test="$family='Roman'">roman</xsl:when>
+ <xsl:when test="$family='Script'">script</xsl:when>
+ <xsl:when test="$family='Decorative'">decorative</xsl:when>
+ <!-- change 'System' to 'Automatic' for Excel -->
+ <xsl:when test="$family='Automatic'">system</xsl:when>
+ <xsl:otherwise>system</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="ss:Workbook/ss:Worksheet" mode="styles">
+ <office:styles>
+ <xsl:apply-templates select="/ss:Workbook/ss:Styles/ss:Style[@ss:Name]"/>
+ <xsl:apply-templates select="/ss:Workbook/ss:Styles/ss:Style/ss:NumberFormat[@ss:Format]"/>
+ <!-- if ConditionalFormatting exists,it should generate some styles for style:style -->
+ <xsl:if test="/ss:Workbook/ss:Worksheet/x:ConditionalFormatting">
+ <xsl:call-template name="CondFormat_office_style"/>
+ </xsl:if>
+ </office:styles>
+ <office:automatic-styles>
+ <xsl:apply-templates select="/ss:Workbook/ss:Worksheet/ss:Table"/>
+ <xsl:apply-templates select="/ss:Workbook/ss:Styles/ss:Style[not(@ss:Name)]"/>
+ <xsl:apply-templates select="/ss:Workbook/ss:Styles/ss:Style/ss:Font[@ss:VerticalAlign]"/>
+ <!-- applying to ss:Data (but *, as also ss:Data nested in ss:Comments -->
+ <xsl:apply-templates select="/ss:Workbook/ss:Worksheet/ss:Table/ss:Row/ss:Cell/*[descendant-or-self::*[namespace-uri()='http://www.w3.org/TR/REC-html40']]"/>
+ <xsl:apply-templates select="/ss:Workbook/ss:Worksheet/x:WorksheetOptions/x:PageSetup//@x:Data"/>
+ <!-- if ConditionalFormatting exists,transforing the styles -->
+ <xsl:if test="/ss:Workbook/ss:Worksheet/x:ConditionalFormatting">
+ <xsl:call-template name="CondFormat_automatic_style"/>
+ </xsl:if>
+ <xsl:call-template name="create-page-master">
+ <xsl:with-param name="worksheetoptions" select="/ss:Workbook/ss:Worksheet/x:WorksheetOptions"/>
+ </xsl:call-template>
+ </office:automatic-styles>
+ <office:master-styles>
+ <xsl:call-template name="create-master-styles">
+ <xsl:with-param name="worksheetoptions" select="/ss:Workbook/ss:Worksheet/x:WorksheetOptions"/>
+ </xsl:call-template>
+ </office:master-styles>
+ </xsl:template>
+ <xsl:template name="CondFormat_office_style">
+ <!-- translate the ConditionalFormatting style,including font,size,color,etc -->
+ <xsl:for-each select="/ss:Workbook/ss:Worksheet/x:ConditionalFormatting">
+ <xsl:variable name="table-pos" select="count(../preceding-sibling::ss:Worksheet)+1"/>
+ <xsl:variable name="conditions" select="count(preceding-sibling::x:ConditionalFormatting)+1"/>
+ <!-- Matching multiple styles, but automatic styles are not allowed to inherit from another automatic style
+ <xsl:for-each select="key('tableStyleIDs', key('tableWithConditional', .))
+ [generate-id(.) =
+ generate-id(key('styleId', .)[1])] ">
+ <xsl:sort select="." />
+
+ <xsl:apply-templates select="/ss:Workbook/ss:Styles/ss:Style[@ss:ID = current()/.]"/>
+ </xsl:for-each>
+ -->
+ <xsl:for-each select="x:Condition">
+ <xsl:variable name="condition-number" select="count(preceding-sibling::x:Condition)+1"/>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">
+ <xsl:call-template name="encode-as-nc-name">
+ <xsl:with-param name="string" select="concat('Excel_CondFormat_',$table-pos,'_',$conditions,'_',$condition-number)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">table-cell</xsl:attribute>
+ <xsl:apply-templates select="@ss:Name" />
+ <xsl:element name="style:table-cell-properties">
+ <xsl:choose>
+ <xsl:when test="x:Format/@Style">
+ <xsl:variable name="stylevalue" select="./x:Format/@Style"/>
+ <xsl:call-template name="recursion-condformat-style-table-cell">
+ <xsl:with-param name="style-value-t">
+ <xsl:choose>
+ <xsl:when test="substring($stylevalue,string-length($stylevalue),1) != ';'">
+ <xsl:value-of select="concat($stylevalue,';')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$stylevalue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="style:text-properties">
+ <xsl:choose>
+ <xsl:when test="x:Format/@Style">
+ <xsl:variable name="stylevalue" select="./x:Format/@Style"/>
+ <xsl:call-template name="recursion-condformat-style-text">
+ <xsl:with-param name="style-value-t">
+ <xsl:choose>
+ <xsl:when test="substring($stylevalue,string-length($stylevalue),1) != ';'">
+ <xsl:value-of select="concat($stylevalue,';')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$stylevalue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:font-style">
+ <xsl:value-of select="'italic'"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:text-underline-type">
+ <xsl:value-of select="'single'"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:text-underline-color">
+ <xsl:value-of select="'font-color'"/>
+ </xsl:attribute>
+ <xsl:attribute name="fo:font-weight">
+ <xsl:value-of select="'bold'"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="@ss:Name">
+ <xsl:attribute name="style:display-name">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:template>
+ <xsl:template name="recursion-condformat-style-table-cell">
+ <!-- generates style:style for ConditionalFormatting -->
+ <xsl:param name="style-value-t"/>
+ <xsl:variable name="style-value" select="normalize-space($style-value-t)"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($style-value,'background')">
+ <xsl:choose>
+ <xsl:when test="contains($style-value,'mso-pattern')">
+ <xsl:variable name="color-value">
+ <xsl:call-template name="translate-color-style">
+ <xsl:with-param name="source-str" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="mso-value">
+ <xsl:call-template name="translate-color-style">
+ <xsl:with-param name="source-str" select="normalize-space(substring-after($style-value,'mso-pattern'))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="mso-color" select="substring-after($mso-value,'#')"/>
+ <xsl:variable name="pattern-color-value" select="substring($mso-color,1,6)"/>
+ <xsl:variable name="pattern" select="concat('0.',normalize-space(substring-before(substring-after($mso-color,'gray-'),';')))"/>
+ <xsl:variable name="pattern-color">
+ <xsl:call-template name="cell-pattern-color">
+ <xsl:with-param name="pattern" select="$pattern"/>
+ <xsl:with-param name="color-value" select="$color-value"/>
+ <xsl:with-param name="pattern-color-value" select="concat('#',$pattern-color-value)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="fo:background-color">
+ <xsl:value-of select="normalize-space($pattern-color)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:background-color">
+ <xsl:call-template name="translate-color-style">
+ <xsl:with-param name="source-str" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with($style-value,'border')">
+ <xsl:attribute name="fo:border">
+ <xsl:value-of select="'0.002cm solid #000000'"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="contains($style-value,':')">
+ <xsl:call-template name="recursion-condformat-style-table-cell">
+ <xsl:with-param name="style-value-t" select="substring-after($style-value,';')"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="recursion-condformat-style-text">
+ <!-- generates style:style for ConditionalFormatting -->
+ <xsl:param name="style-value-t"/>
+ <xsl:variable name="style-value" select="normalize-space($style-value-t)"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($style-value,'color')">
+ <xsl:attribute name="fo:color">
+ <xsl:call-template name="translate-color-style">
+ <xsl:with-param name="source-str" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="starts-with($style-value,'font-style')">
+ <xsl:attribute name="fo:font-style">
+ <xsl:value-of select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="starts-with($style-value,'font-weight')">
+ <xsl:variable name="font-weight" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/>
+ <xsl:attribute name="fo:font-weight">
+ <xsl:choose>
+ <xsl:when test="($font-weight &gt; 300) and ($font-weight &lt; 500)">
+ <xsl:value-of select="'normal'"/>
+ </xsl:when>
+ <xsl:when test="($font-weight &gt; 500) or ($font-weight = 500)">
+ <xsl:value-of select="'bold'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'0'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="starts-with($style-value,'text-underline-style')">
+ <xsl:attribute name="style:text-underline-type">
+ <xsl:value-of select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:text-underline-color">
+ <xsl:value-of select="'#000000'"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="contains($style-value,':')">
+ <xsl:call-template name="recursion-condformat-style-text">
+ <xsl:with-param name="style-value-t" select="substring-after($style-value,';')"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="translate-color-style">
+ <!-- translate the word of color to hex code of color -->
+ <xsl:param name="source-str"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($source-str,'#')">
+ <xsl:value-of select="$source-str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="starts-with($source-str,'black')">
+ <xsl:value-of select="'#000000'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'maroon')">
+ <xsl:value-of select="'#800000'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'red')">
+ <xsl:value-of select="'#FF0000'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'fuchsia')">
+ <xsl:value-of select="'#FF00FF'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'olive')">
+ <xsl:value-of select="'#808000'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'yellow')">
+ <xsl:value-of select="'#FFFF00'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'green')">
+ <xsl:value-of select="'#008000'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'lime')">
+ <xsl:value-of select="'#00FF00'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'teal')">
+ <xsl:value-of select="'#008080'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'aqua')">
+ <xsl:value-of select="'#00FFFF'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'navy')">
+ <xsl:value-of select="'#000080'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'blue')">
+ <xsl:value-of select="'#0000FF'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'purple')">
+ <xsl:value-of select="'#800080'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'gray')">
+ <xsl:value-of select="'#808080'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'silver')">
+ <xsl:value-of select="'#C0C0C0'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'white')">
+ <xsl:value-of select="'#FFFFFF'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'#FFFFFF'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:key match="/ss:Workbook/ss:Worksheet/ss:Table" name="tableWithConditional" use="following-sibling::x:ConditionalFormatting"/>
+ <xsl:key match="ss:Table/ss:Row/ss:Cell/@ss:StyleID" name="tableStyleIDs" use="ancestor::ss:Table"/>
+ <xsl:key name="styleId" match="@ss:StyleID" use="."/>
+ <xsl:template name="CondFormat_automatic_style">
+ <!-- For each conditionalFormatting We inject a new style, which is a child of the current found style -->
+ <xsl:for-each select="/ss:Workbook/ss:Worksheet/x:ConditionalFormatting">
+ <xsl:variable name="table-pos" select="count(../preceding-sibling::ss:Worksheet)+1"/>
+ <xsl:variable name="conditions" select="count(preceding-sibling::x:ConditionalFormatting)+1"/>
+ <xsl:variable name="conditionalFormatting" select="."/>
+ <!-- for all 'ssStyle/@ss:ID's, which are in tables connected within this conditional formatting -->
+ <xsl:for-each select="key('tableStyleIDs', key('tableWithConditional', .)) [generate-id(.) = generate-id(key('styleId', .)[1])] ">
+ <!-- sort the style ID by their naming -->
+ <xsl:sort select="."/>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">
+ <xsl:call-template name="encode-as-nc-name">
+ <xsl:with-param name="string" select="concat(.,'-ce',$table-pos,'-',$conditions)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">table-cell</xsl:attribute>
+ <xsl:variable name="style" select="key('Style', .)" />
+ <xsl:choose>
+ <xsl:when test="$style/@ss:Name">
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:call-template name="encode-as-nc-name">
+ <xsl:with-param name="string" select="."/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:when>
+ <!-- as we create an automatic style, the parent is not allowed to be an automatic style as well
+ if the parent would be a automatic (unnamed) style, the style information have to be embedded to this style -->
+ <xsl:otherwise>
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:call-template name="encode-as-nc-name">
+ <xsl:with-param name="string" select="$style/@ss:Parent"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="$style/ss:NumberFormat/@ss:Format">
+ <xsl:attribute name="style:data-style-name">
+ <xsl:value-of select="concat($style/@ss:ID, 'F')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="$style" mode="style-style-content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:for-each select="$conditionalFormatting/x:Condition">
+ <xsl:variable name="condition-number" select="count(preceding-sibling::x:Condition)+1"/>
+ <xsl:variable name="base-address">
+ <xsl:choose>
+ <xsl:when test="contains(../x:Range,',')">
+ <xsl:choose>
+ <xsl:when test="contains(substring-before(../x:Range,','),':')">
+ <xsl:value-of select="substring-before(substring-after(../x:Range,':'),',')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before(../x:Range,',')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="../x:Range"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="columnNumber">
+ <xsl:choose>
+ <xsl:when test="contains($base-address, ':')">
+ <xsl:value-of select="substring-after(substring-after($base-address, ':'),'C')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after($base-address,'C')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="rowNumber">
+ <xsl:choose>
+ <xsl:when test="contains($base-address, ':')">
+ <xsl:value-of select="substring-before(substring-after(substring-after($base-address, ':'),'R'),'C')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before(substring-after($base-address,'R'),'C')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="base-cell-address">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="$columnNumber"/>
+ <xsl:with-param name="row-number" select="$rowNumber"/>
+ <xsl:with-param name="column-pos-style" select="'relative'"/>
+ <xsl:with-param name="row-pos-style" select="'relative'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="condition-value">
+ <xsl:call-template name="translate-condition">
+ <xsl:with-param name="cell-column-pos" select="$columnNumber"/>
+ <xsl:with-param name="cell-row-pos" select="$rowNumber"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:element name="style:map">
+ <xsl:attribute name="style:condition">
+ <xsl:value-of select="$condition-value"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:apply-style-name">
+ <xsl:value-of select="concat('Excel_CondFormat_',$table-pos,'_',$conditions,'_',$condition-number)"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:base-cell-address">
+ <xsl:value-of select="concat(../../@ss:Name,'.',$base-cell-address)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="translate-condition">
+ <xsl:param name="cell-row-pos"/>
+ <xsl:param name="cell-column-pos"/>
+ <!-- translates the condition to generate formula -->
+ <xsl:variable name="address-value">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="x:Value1"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="x:Qualifier">
+ <xsl:variable name="qualifier" select="x:Qualifier"/>
+ <xsl:variable name="first-value" select="x:Value1"/>
+ <xsl:choose>
+ <xsl:when test="$qualifier = 'Equal'">
+ <xsl:choose>
+ <xsl:when test="starts-with($first-value,'&quot;')">
+ <xsl:value-of select="concat('cell-content()=',$address-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('cell-content()=[',$address-value,']')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'Less'">
+ <xsl:value-of select="concat('cell-content()&lt;[',$address-value,']')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'Greater'">
+ <xsl:value-of select="concat('cell-content()&gt;[',$address-value,']')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'LessOrEqual'">
+ <xsl:value-of select="concat('cell-content()&lt;=[',$address-value,']')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'GreaterOrEqual'">
+ <xsl:value-of select="concat('cell-content()&gt;=[',$address-value,']')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'NotEqual'">
+ <xsl:value-of select="concat('cell-content()!=[',$address-value,']')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'Between'">
+ <xsl:variable name="second-value">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="x:Value2"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat('cell-content-is-between([',$address-value,'],[',$second-value,'])')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'NotBetween'">
+ <xsl:variable name="second-value">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="x:Value2"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat('cell-content-is-not-between([',$address-value,'],[',$second-value,'])')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('is-true-formula(',$address-value,')')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- Used in case of 'style:map', conditional formatting, where a style references to another -->
+ <xsl:key match="/ss:Workbook/ss:Worksheet/ss:Table/ss:Row/ss:Cell" name="cells" use="@ss:StyleID"/>
+ <xsl:template match="ss:NumberFormat">
+ <xsl:variable name="unit-count" select="string-length(@ss:Format) - string-length(translate(@ss:Format,';','')) + 1"/>
+ <xsl:variable name="proto-style-id" select="../@ss:ID"/>
+ <xsl:call-template name="process-number-format-unit">
+ <xsl:with-param name="number-format-unit" select="@ss:Format"/>
+ <xsl:with-param name="style-id" select="concat($proto-style-id,'F')"/>
+ <xsl:with-param name="format-type" select="key('cells', $proto-style-id)/ss:Data/@ss:Type"/>
+ <xsl:with-param name="total-unit" select="$unit-count"/>
+ <xsl:with-param name="current-unit" select="0"/>
+ </xsl:call-template>
+ </xsl:template>
+ <!-- Note: conditions appearing only once at the beginning are mixed with others -->
+ <xsl:template name="process-number-format-unit">
+ <xsl:param name="number-format-unit"/>
+ <xsl:param name="style-id"/>
+ <xsl:param name="format-type"/>
+ <xsl:param name="total-unit"/>
+ <xsl:param name="current-unit"/>
+ <xsl:choose>
+ <!-- if total-unit > 1 and the last unit is just @, delete it -->
+ <xsl:when test="$current-unit = 0 and $total-unit &gt; 1 and substring( $number-format-unit, string-length($number-format-unit) - 1) = ';@'">
+ <xsl:call-template name="process-number-format-unit">
+ <xsl:with-param name="number-format-unit" select="substring( $number-format-unit, 1, string-length($number-format-unit) - 2)"/>
+ <xsl:with-param name="style-id" select="$style-id"/>
+ <xsl:with-param name="format-type" select="$format-type"/>
+ <xsl:with-param name="total-unit" select="$total-unit - 1"/>
+ <xsl:with-param name="current-unit" select="0"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- $number-format-unit enum values: General, General Number, General Date, Long Date, Medium Date, Short Date, Long Time,
+ Medium Time, Short Time, Currency, Euro Currency, Fixed, Standard, Percent, Scientific, Yes/No, True/False, On/Off -->
+ <xsl:when test="$number-format-unit = 'Currency'">
+ <number:currency-style style:name="{concat( $style-id, 'P1')}" style:volatile="true">
+ <number:text>$</number:text>
+ <number:number number:decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="{$style-id}">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>$-</number:text>
+ <number:number number:decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="{concat( $style-id, 'P1')}"/>
+ </number:currency-style>
+ </xsl:when>
+ <xsl:when test="$number-format-unit = 'Euro Currency'">
+ <number:currency-style style:name="{concat( $style-id, 'P1')}" style:volatile="true">
+ <number:text>€ </number:text>
+ <number:number number:decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="{$style-id}">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>(€ </number:text>
+ <number:number number:decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="{concat( $style-id, 'P1')}"/>
+ </number:currency-style>
+ </xsl:when>
+ <xsl:when test="$number-format-unit = 'Yes/No' or $number-format-unit = 'True/False' or $number-format-unit = 'On/Off'">
+ <xsl:variable name="left-code" select="substring-before( $number-format-unit, '/')"/>
+ <xsl:variable name="right-code" select="substring-after( $number-format-unit, '/')"/>
+ <number:number-style style:name="{concat( $style-id, 'P1')}" style:volatile="true">
+ <number:text>
+ <xsl:value-of select="$left-code"/>
+ </number:text>
+ </number:number-style>
+ <number:number-style style:name="{concat( $style-id, 'P2')}" style:volatile="true">
+ <number:text>
+ <xsl:value-of select="$left-code"/>
+ </number:text>
+ </number:number-style>
+ <number:number-style style:name="{$style-id}">
+ <number:text>
+ <xsl:value-of select="$right-code"/>
+ </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="{concat( $style-id, 'P1')}"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="{concat( $style-id, 'P2')}"/>
+ </number:number-style>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$total-unit &gt; 1 and $current-unit = 0">
+ <!-- still complete number format string of multiple sub-formats, split them out -->
+ <xsl:call-template name="process-number-format-unit">
+ <xsl:with-param name="number-format-unit" select="substring-before($number-format-unit,';')"/>
+ <xsl:with-param name="style-id" select="concat($style-id,'P1')"/>
+ <xsl:with-param name="format-type" select="$format-type"/>
+ <xsl:with-param name="total-unit" select="$total-unit"/>
+ <xsl:with-param name="current-unit" select="1"/>
+ </xsl:call-template>
+ <xsl:if test="$total-unit &gt; 2">
+ <xsl:call-template name="process-number-format-unit">
+ <xsl:with-param name="number-format-unit" select="substring-before(substring-after($number-format-unit,';'),';')"/>
+ <xsl:with-param name="style-id" select="concat($style-id,'P2')"/>
+ <xsl:with-param name="format-type" select="$format-type"/>
+ <xsl:with-param name="total-unit" select="$total-unit"/>
+ <xsl:with-param name="current-unit" select="2"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$total-unit &gt; 3">
+ <!-- four sub number format -->
+ <xsl:call-template name="process-number-format-unit">
+ <xsl:with-param name="number-format-unit" select="substring-before(substring-after(substring-after($number-format-unit,';'),';'),';')"/>
+ <xsl:with-param name="style-id" select="concat($style-id,'P3')"/>
+ <xsl:with-param name="format-type" select="$format-type"/>
+ <xsl:with-param name="total-unit" select="$total-unit"/>
+ <xsl:with-param name="current-unit" select="3"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <!-- symbol number format converted, below deal with ordinary number formatting -->
+ <xsl:variable name="current-number-format-unit">
+ <xsl:choose>
+ <xsl:when test="$total-unit = 1 and $current-unit = 0">
+ <xsl:value-of select="$number-format-unit"/>
+ </xsl:when>
+ <xsl:when test="$total-unit = 2 and $current-unit = 0">
+ <xsl:value-of select="substring-after($number-format-unit,';')"/>
+ </xsl:when>
+ <xsl:when test="$total-unit = 3 and $current-unit = 0">
+ <xsl:value-of select="substring-after(substring-after($number-format-unit,';'),';')"/>
+ </xsl:when>
+ <xsl:when test="$current-unit = 0">
+ <!-- the forth sub number format -->
+ <xsl:value-of select="substring-after(substring-after(substring-after($number-format-unit,';'),';'),';')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- not the default sub number format, glu -->
+ <xsl:value-of select="$number-format-unit"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="style-type-name">
+ <xsl:choose>
+ <xsl:when test="($format-type = 'Number' and contains($current-number-format-unit,'[$') and not(contains($current-number-format-unit,'[$-') ) ) or contains($current-number-format-unit,'Currency') ">number:currency-style</xsl:when>
+ <xsl:when test="($format-type = 'Number' and (contains($current-number-format-unit,'%') or contains($current-number-format-unit, 'Percent') ) ) or contains($current-number-format-unit,'Percent') ">number:percentage-style</xsl:when>
+ <xsl:when test="($format-type = 'DateTime' or $format-type = 'String') and (contains($current-number-format-unit,'y') or contains($current-number-format-unit,'g') or contains($current-number-format-unit,'d') or contains($current-number-format-unit, 'Date') )">number:date-style</xsl:when>
+ <xsl:when test="($format-type = 'DateTime' or $format-type = 'String') and ( contains($current-number-format-unit,'h') or contains($current-number-format-unit,'m') or contains($current-number-format-unit,'s') or contains($current-number-format-unit, 'Time') )">number:time-style</xsl:when>
+ <xsl:when test="contains($current-number-format-unit, 'Number') or contains($current-number-format-unit, 'General') or contains($current-number-format-unit, 'Fixed') or contains($current-number-format-unit, 'Standard') or contains($current-number-format-unit, 'Scientific') or ( contains($current-number-format-unit,'#') or contains($current-number-format-unit,'0') or contains($current-number-format-unit,'?') )">number:number-style</xsl:when>
+ <xsl:when test="$format-type = 'Boolean'">number:boolean-style</xsl:when>
+ <xsl:otherwise>number:text-style</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="{$style-type-name}">
+ <xsl:attribute name="style:name">
+ <xsl:value-of select="$style-id"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="@ss:Name" />
+ <!-- removed in OASIS XML
+ <xsl:attribute name="style:family">data-style</xsl:attribute>-->
+ <xsl:if test="$current-unit &gt; 0">
+ <xsl:attribute name="style:volatile">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains ( $current-number-format-unit, '[h]') or contains ( $current-number-format-unit, '[m]') or contains ( $current-number-format-unit, '[s]')">
+ <xsl:attribute name="number:truncate-on-overflow">false</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains($current-number-format-unit,'[$') or contains($current-number-format-unit, '[DBNum')">
+ <xsl:call-template name="create-language-country-attribute">
+ <xsl:with-param name="attribute-code" select="substring-before(substring-after(substring-after($current-number-format-unit,'[$'),'-'),']')"/>
+ <xsl:with-param name="number-code-style" select="substring-before( substring-after($current-number-format-unit,'[DBNum'),']')"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="contains( $current-number-format-unit, '[')">
+ <xsl:element name="style:text-properties">
+ <xsl:choose>
+ <xsl:when test="contains( $current-number-format-unit, '[Red')">
+ <xsl:attribute name="fo:color">#ff0000</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains( $current-number-format-unit, '[Black')">
+ <xsl:attribute name="fo:color">#000000</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains( $current-number-format-unit, '[Blue')">
+ <xsl:attribute name="fo:color">#0000ff</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains( $current-number-format-unit, '[Cyan')">
+ <xsl:attribute name="fo:color">#00ffff</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains( $current-number-format-unit, '[Green')">
+ <xsl:attribute name="fo:color">#00ff00</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains( $current-number-format-unit, '[Magenta')">
+ <xsl:attribute name="fo:color">#ff00ff</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains( $current-number-format-unit, '[White')">
+ <xsl:attribute name="fo:color">#ffffff</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains( $current-number-format-unit, '[Yellow')">
+ <xsl:attribute name="fo:color">#ffff00</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <!-- the type of condition-pos:1,the former third part of General; 2, the last General. the methods handling diffirent -->
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$current-number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="1"/>
+ <xsl:with-param name="condition-pos">
+ <xsl:choose>
+ <xsl:when test="$current-unit = 1 or $current-unit = 2 or $current-unit = 3">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:when test="$current-unit = 0 and not(contains($number-format-unit, ';'))">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ <!-- creat style:map for other sub number formats -->
+ <xsl:if test="$current-unit = 0 and $total-unit &gt; 1">
+ <xsl:variable name="style-condition1">
+ <xsl:call-template name="get-number-format-condition">
+ <xsl:with-param name="number-format-unit" select="substring-before($number-format-unit,';')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($style-condition1) &gt; 0">
+ <style:map style:condition="{concat('value()',$style-condition1)}" style:apply-style-name="{concat($style-id,'P1')}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$total-unit = 2">
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="{concat($style-id,'P1')}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="{concat($style-id,'P1')}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$total-unit &gt; 2">
+ <xsl:variable name="style-condition2">
+ <xsl:call-template name="get-number-format-condition">
+ <xsl:with-param name="number-format-unit" select="substring-before(substring-after($number-format-unit,';'),';')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($style-condition2) &gt; 0">
+ <style:map style:condition="{concat('value()',$style-condition2)}" style:apply-style-name="{concat($style-id,'P2')}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="{concat($style-id,'P2')}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$total-unit &gt; 3">
+ <!-- four sub number formats, glu -->
+ <xsl:variable name="style-condition3">
+ <xsl:call-template name="get-number-format-condition">
+ <xsl:with-param name="number-format-unit" select="substring-before(substring-after(substring-after($number-format-unit,';'),';'),';')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($style-condition3) &gt; 0">
+ <style:map style:condition="{concat('value()',$style-condition3)}" style:apply-style-name="{concat($style-id,'P3')}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <style:map style:condition="value()=0" style:apply-style-name="{concat($style-id,'P3')}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:if>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="create-language-country-attribute">
+ <xsl:param name="attribute-code"/>
+ <xsl:param name="number-code-style"/>
+ <!-- convert Microsoft List of Locale ID (LCID) to language and country codes according to ISO-639 and ISO-3166.
+ Reference:
+ http://www.loc.gov/standards/iso639-2/langcodes.html
+ http://etext.lib.virginia.edu/tei/iso639.html
+ http://nl.ijs.si/gnusl/cee/std/ISO_3166.html
+ http://xml.coverpages.org/ripe3166.txt
+ http://www.worldlanguage.com/
+ http://www.ethnologue.com/
+ glu -->
+ <!-- the variables of language-country-code and number-shape-code transformed to decimal format -->
+ <xsl:variable name="language-country-code">
+ <xsl:variable name="temp-code">
+ <xsl:choose>
+ <xsl:when test="string-length($attribute-code) &lt;= 4">
+ <xsl:value-of select="$attribute-code"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring($attribute-code,string-length($attribute-code) - 3)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="$temp-code"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="string-length($temp-code)"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="string-length($attribute-code) &gt; 4 or string-length($number-code-style) &gt; 0">
+ <xsl:variable name="number-shape-code">
+ <xsl:variable name="temp-code">
+ <xsl:choose>
+ <xsl:when test="string-length($attribute-code) &gt; 4">
+ <xsl:value-of select="substring($attribute-code, 1, string-length($attribute-code) - 6)"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="$temp-code"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="string-length($temp-code)"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="number:transliteration-style">long</xsl:attribute>
+ <xsl:choose>
+ <!-- Western, #01 -->
+ <xsl:when test="$number-shape-code = 1"/>
+ <!-- Arabic Indic, #02 -->
+ <xsl:when test="$number-shape-code = 2"/>
+ <!-- Extended Arabic Indic, #03 -->
+ <xsl:when test="$number-shape-code = 3"/>
+ <!-- Devanagari (Sanskrit - India), #04-->
+ <xsl:when test="$number-shape-code = 4">
+ <xsl:attribute name="number:transliteration-language">sa</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">IN</xsl:attribute>
+ </xsl:when>
+ <!-- Bengali (India), #05 -->
+ <xsl:when test="$number-shape-code = 5">
+ <xsl:attribute name="number:transliteration-language">bn</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">IN</xsl:attribute>
+ </xsl:when>
+ <!-- Gurmukhi (Punjabi - India), #06 -->
+ <xsl:when test="$number-shape-code = 6">
+ <xsl:attribute name="number:transliteration-language">pa</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">IN</xsl:attribute>
+ </xsl:when>
+ <!-- Gujarati (India), #07 -->
+ <xsl:when test="$number-shape-code = 7">
+ <xsl:attribute name="number:transliteration-language">gu</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">IN</xsl:attribute>
+ </xsl:when>
+ <!-- Oriya (India), #08 -->
+ <xsl:when test="$number-shape-code = 8">
+ <xsl:attribute name="number:transliteration-language">or</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">IN</xsl:attribute>
+ </xsl:when>
+ <!-- Tamil (India), #09 -->
+ <xsl:when test="$number-shape-code = 9">
+ <xsl:attribute name="number:transliteration-language">ta</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">IN</xsl:attribute>
+ </xsl:when>
+ <!-- Telugu (India), #0a -->
+ <xsl:when test="$number-shape-code = 10">
+ <xsl:attribute name="number:transliteration-language">te</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">IN</xsl:attribute>
+ </xsl:when>
+ <!-- Kannada (India), #0b -->
+ <xsl:when test="$number-shape-code = 11">
+ <xsl:attribute name="number:transliteration-language">kn</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">IN</xsl:attribute>
+ </xsl:when>
+ <!-- Malayalam (India), #0c -->
+ <xsl:when test="$number-shape-code = 12">
+ <xsl:attribute name="number:transliteration-language">ml</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">IN</xsl:attribute>
+ </xsl:when>
+ <!-- Thai, #0d -->
+ <xsl:when test="$number-shape-code = 13">
+ <xsl:attribute name="number:transliteration-language">th</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">TH</xsl:attribute>
+ </xsl:when>
+ <!-- Lao, #0e -->
+ <xsl:when test="$number-shape-code = 14">
+ <xsl:attribute name="number:transliteration-language">lo</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">LA</xsl:attribute>
+ </xsl:when>
+ <!-- Tibetan (China), #0f -->
+ <xsl:when test="$number-shape-code = 15">
+ <xsl:attribute name="number:transliteration-language">bo</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">CN</xsl:attribute>
+ </xsl:when>
+ <!-- Myanmar (Burma), #10 -->
+ <xsl:when test="$number-shape-code = 16">
+ <xsl:attribute name="number:transliteration-language">my</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">MM</xsl:attribute>
+ </xsl:when>
+ <!-- Ethiopic (Geez), #11 -->
+ <xsl:when test="$number-shape-code = 17">
+ <xsl:attribute name="number:transliteration-language">gez</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">ET</xsl:attribute>
+ </xsl:when>
+ <!-- Khmer (Cambodian), #12-->
+ <xsl:when test="$number-shape-code = 18">
+ <xsl:attribute name="number:transliteration-language">km</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">KH</xsl:attribute>
+ </xsl:when>
+ <!-- Mongolian, #13 -->
+ <xsl:when test="$number-shape-code = 19">
+ <xsl:attribute name="number:transliteration-language">mn</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">CN</xsl:attribute>
+ </xsl:when>
+ <!-- Japanese 1 ([DBNum1]) , #1b, #0411 -->
+ <xsl:when test="$number-shape-code = 27 or ($number-code-style = '1' and $language-country-code = 1041)">
+ <xsl:attribute name="number:transliteration-format">一</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">ja</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">JP</xsl:attribute>
+ </xsl:when>
+ <!-- Japanese 2 ([DBNum2]) ,#1c, #0411 -->
+ <xsl:when test="$number-shape-code = 28 or ($number-code-style = '2' and $language-country-code = 1041 )">
+ <xsl:attribute name="number:transliteration-format">壹</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">ja</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">JP</xsl:attribute>
+ </xsl:when>
+ <!-- Japanese 3 ([DBNum3]), #1d, #0411 -->
+ <xsl:when test="$number-shape-code = 29 or ($number-code-style = '3' and $language-country-code = 1041 )">
+ <xsl:attribute name="number:transliteration-format">1</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">ja</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">JP</xsl:attribute>
+ </xsl:when>
+ <!-- Simplified Chinese 1 ([DBNum1]), #1e, #0804 -->
+ <xsl:when test="$number-shape-code = 30 or ($number-code-style = '1' and $language-country-code = 2052 )">
+ <xsl:attribute name="number:transliteration-format">一</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">zh</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">CN</xsl:attribute>
+ </xsl:when>
+ <!-- Simplified Chinese 2 ([DBNum2]),#1f,#0804 -->
+ <xsl:when test="$number-shape-code = 31 or ($number-code-style = '2' and $language-country-code = 2052 )">
+ <xsl:attribute name="number:transliteration-format">壹</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">zh</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">CN</xsl:attribute>
+ </xsl:when>
+ <!-- Simplified Chinese 3 ([DBNum3]), #20,#0804 -->
+ <xsl:when test="$number-shape-code = 32 or ($number-code-style = '3' and $language-country-code = 2052 )">
+ <xsl:attribute name="number:transliteration-format">1</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">zh</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">CN</xsl:attribute>
+ </xsl:when>
+ <!-- Traditional Chinese 1 ([DBNum1]), #21, #0404 -->
+ <xsl:when test="$number-shape-code = 33 or ($number-code-style = '1' and $language-country-code = 1028 )">
+ <xsl:attribute name="number:transliteration-format">一</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">zh</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">TW</xsl:attribute>
+ </xsl:when>
+ <!-- Traditional Chinese 2 ([DBNum2]), #22, #0404 -->
+ <xsl:when test="$number-shape-code = 34 or ($number-code-style = '2' and $language-country-code = 1028 )">
+ <xsl:attribute name="number:transliteration-format">壹</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">zh</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">TW</xsl:attribute>
+ </xsl:when>
+ <!-- Traditional Chinese 3 ([DBNum3]),#23, #0404 -->
+ <xsl:when test="$number-shape-code = 35 or ($number-code-style = '3' and $language-country-code = 1028 )">
+ <xsl:attribute name="number:transliteration-format">1</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">zh</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">TW</xsl:attribute>
+ </xsl:when>
+ <!-- Korean 1 ([DBNum1]), #24, #0412 -->
+ <xsl:when test="$number-shape-code = 36 or ($number-code-style = '1' and $language-country-code = 1042 )">
+ <xsl:attribute name="number:transliteration-format">一</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">ko</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">KR</xsl:attribute>
+ </xsl:when>
+ <!-- Korean 2 ([DBNum2]), #25, #0412 -->
+ <xsl:when test="$number-shape-code = 37 or ($number-code-style = '2' and $language-country-code = 1042 )">
+ <xsl:attribute name="number:transliteration-format">壹</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">ko</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">KR</xsl:attribute>
+ </xsl:when>
+ <!-- Korean 3 ([DBNum3]), #26, #0412 -->
+ <xsl:when test="$number-shape-code = 38 or ($number-code-style = '3' and $language-country-code = 1042 )">
+ <xsl:attribute name="number:transliteration-format">1</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">ko</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">KR</xsl:attribute>
+ </xsl:when>
+ <!-- Korean 4 ([DBNum4]), #27, #0412 -->
+ <xsl:when test="$number-shape-code = 39 or ($number-code-style = '4' and $language-country-code = 1042 )">
+ <xsl:attribute name="number:transliteration-format">1</xsl:attribute>
+ <xsl:attribute name="number:transliteration-language">ko</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">KR</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <!-- components of a format code: two digits for number shape codes, two for calendar types, four for LCID -->
+ <xsl:choose>
+ <!-- totally 223 language-country LCID codes, manually created, among which MS Office 2003 supports 134, OOo supports 91 -->
+ <xsl:when test="$language-country-code = 1078">
+ <!-- Afrikaans - South Africa, #0436 -->
+ <xsl:attribute name="number:language">af</xsl:attribute>
+ <xsl:attribute name="number:country">ZA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1052">
+ <!-- Albanian - Albania, #041c -->
+ <xsl:attribute name="number:language">sq</xsl:attribute>
+ <xsl:attribute name="number:country">AL</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1118">
+ <!-- Amharic - Ethiopia, #045e -->
+ <xsl:attribute name="number:language">am</xsl:attribute>
+ <xsl:attribute name="number:country">ET</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1025">
+ <!-- Arabic - Saudi Arabia, #0401 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">SA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 5121">
+ <!-- Arabic - Algeria, #1401 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">DZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 15361">
+ <!-- Arabic - Bahrain, #3c01 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">BH</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 3073">
+ <!-- Arabic - Egypt, #0c01 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">EG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2049">
+ <!-- Arabic - Iraq, #0801 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">IQ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 11265">
+ <!-- Arabic - Jordan, #2c01 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">JO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 13313">
+ <!-- Arabic - Kuwait, #3401 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">KW</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 12289">
+ <!-- Arabic - Lebanon, #3001 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">LB</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 4097">
+ <!-- Arabic - Libya, #1001 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">LY</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 6145">
+ <!-- Arabic - Morocco, #1801 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">MA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 8193">
+ <!-- Arabic - Oman, #2001 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">OM</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 16385">
+ <!-- Arabic - Qatar, #4001 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">QA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 10241">
+ <!-- Arabic - Syria, #2801 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">SY</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 7169">
+ <!-- Arabic - Tunisia, #1c01 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">TN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 14337">
+ <!-- Arabic - U.A.E., #3801 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">AE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 9217">
+ <!-- Arabic - Yemen, #2401 -->
+ <xsl:attribute name="number:language">ar</xsl:attribute>
+ <xsl:attribute name="number:country">YE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1067">
+ <!-- Armenian - Armenia, #042b -->
+ <xsl:attribute name="number:language">hy</xsl:attribute>
+ <xsl:attribute name="number:country">AM</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1101">
+ <!-- Assamese, #044d -->
+ <xsl:attribute name="number:language">as</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2092">
+ <!-- Azeri - Cyrillic, #082c -->
+ <xsl:attribute name="number:language">az</xsl:attribute>
+ <xsl:attribute name="number:country">AZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1068">
+ <!-- Azeri - Latin, #042c -->
+ <xsl:attribute name="number:language">az</xsl:attribute>
+ <xsl:attribute name="number:country">AZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1069">
+ <!-- Basque - France/Spain, #042d -->
+ <xsl:attribute name="number:language">eu</xsl:attribute>
+ <xsl:attribute name="number:country">ES</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1059">
+ <!-- Belarusian - Belarus, #0423 -->
+ <xsl:attribute name="number:language">be</xsl:attribute>
+ <xsl:attribute name="number:country">BY</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1093">
+ <!-- Bengali (India), #0445 -->
+ <xsl:attribute name="number:language">bn</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2117">
+ <!-- Bengali (Bangladesh), #0845 -->
+ <xsl:attribute name="number:language">bn</xsl:attribute>
+ <xsl:attribute name="number:country">BD</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 5146">
+ <!-- Bosnian (Bosnia/Herzegovina), #141a -->
+ <xsl:attribute name="number:language">bs</xsl:attribute>
+ <xsl:attribute name="number:country">BA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1026">
+ <!-- Bulgarian, #0402 -->
+ <xsl:attribute name="number:language">bg</xsl:attribute>
+ <xsl:attribute name="number:country">BG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1109">
+ <!-- Burmese (Burma/Myanmar), #0455 -->
+ <xsl:attribute name="number:language">my</xsl:attribute>
+ <xsl:attribute name="number:country">MM</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1027">
+ <!-- Catalan - Spain, #0403 -->
+ <xsl:attribute name="number:language">ca</xsl:attribute>
+ <xsl:attribute name="number:country">ES</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1116">
+ <!-- Cherokee - United States, #045c -->
+ <xsl:attribute name="number:language">chr</xsl:attribute>
+ <xsl:attribute name="number:country">US</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2052">
+ <!-- Chinese - People's Republic of China, #0804 -->
+ <xsl:attribute name="number:language">zh</xsl:attribute>
+ <xsl:attribute name="number:country">CN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 4100">
+ <!-- Chinese - Singapore, #1004 -->
+ <xsl:attribute name="number:language">zh</xsl:attribute>
+ <xsl:attribute name="number:country">SG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1028">
+ <!-- Chinese - Taiwan, #0404 -->
+ <xsl:attribute name="number:language">zh</xsl:attribute>
+ <xsl:attribute name="number:country">TW</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 3076">
+ <!-- Chinese - Hong Kong SAR, #0c04 -->
+ <xsl:attribute name="number:language">zh</xsl:attribute>
+ <xsl:attribute name="number:country">HK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 5124">
+ <!-- Chinese - Macao SAR, #1404 -->
+ <xsl:attribute name="number:language">zh</xsl:attribute>
+ <xsl:attribute name="number:country">MO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1050">
+ <!-- Croatian (Croatia), #041a -->
+ <xsl:attribute name="number:language">hr</xsl:attribute>
+ <xsl:attribute name="number:country">HR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 4122">
+ <!-- Croatian (Bosnia/Herzegovina), #101a -->
+ <xsl:attribute name="number:language">hr</xsl:attribute>
+ <xsl:attribute name="number:country">BA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1029">
+ <!-- Czech, #0405 -->
+ <xsl:attribute name="number:language">cs</xsl:attribute>
+ <xsl:attribute name="number:country">CZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1030">
+ <!-- Danish, #0406 -->
+ <xsl:attribute name="number:language">da</xsl:attribute>
+ <xsl:attribute name="number:country">DK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1125">
+ <!-- Divehi, #0465 -->
+ <xsl:attribute name="number:language">dv</xsl:attribute>
+ <xsl:attribute name="number:country">MV</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1043">
+ <!-- Dutch - Netherlands, #0413 -->
+ <xsl:attribute name="number:language">nl</xsl:attribute>
+ <xsl:attribute name="number:country">NL</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2067">
+ <!-- Dutch - Belgium, #0813 -->
+ <xsl:attribute name="number:language">nl</xsl:attribute>
+ <xsl:attribute name="number:country">BE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1126">
+ <!-- Edo (Bini - Nigeria), #0466 -->
+ <xsl:attribute name="number:language">bin</xsl:attribute>
+ <xsl:attribute name="number:country">NG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1033">
+ <!-- English - United States, #0409 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">US</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2057">
+ <!-- English - United Kingdom, #0809 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">GB</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 3081">
+ <!-- English - Australia, #0c09 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">AU</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 10249">
+ <!-- English - Belize, #2809 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">BZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 4105">
+ <!-- English - Canada, #1009 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">CA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 9225">
+ <!-- English - Caribbean (Cuba), #2409 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">CU</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 15369">
+ <!-- English - Hong Kong SAR, #3c09 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">HK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 16393">
+ <!-- English - India, #4009 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 14345">
+ <!-- English - Indonesia, #3809 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">ID</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 6153">
+ <!-- English - Ireland, #1809 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">IE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 8201">
+ <!-- English - Jamaica, #2009 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">JM</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 17417">
+ <!-- English - Malaysia, #4409 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">MY</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 5129">
+ <!-- English - New Zealand, #1409 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">NZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 13321">
+ <!-- English - Philippines, #3409 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">PH</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 18441">
+ <!-- English - Singapore, #4809 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">SG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 7177">
+ <!-- English - South Africa, #1c09 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">ZA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 11273">
+ <!-- English - Trinidad, #2c09 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">TT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 12297">
+ <!-- English - Zimbabwe, #3009 -->
+ <xsl:attribute name="number:language">en</xsl:attribute>
+ <xsl:attribute name="number:country">ZW</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1061">
+ <!-- Estonian (Estonia), #0425 -->
+ <xsl:attribute name="number:language">et</xsl:attribute>
+ <xsl:attribute name="number:country">EE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1080">
+ <!-- Faroese (Faroe Islands), #0438 -->
+ <xsl:attribute name="number:language">fo</xsl:attribute>
+ <xsl:attribute name="number:country">FO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1065">
+ <!-- Farsi (Persian/Iran), #0429 -->
+ <xsl:attribute name="number:language">fa</xsl:attribute>
+ <xsl:attribute name="number:country">IR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1124">
+ <!-- Filipino (Philippine), #0464 -->
+ <xsl:attribute name="number:language">phi</xsl:attribute>
+ <xsl:attribute name="number:country">PH</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1035">
+ <!-- Finnish, #040b -->
+ <xsl:attribute name="number:language">fi</xsl:attribute>
+ <xsl:attribute name="number:country">FI</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1036">
+ <!-- French - France, #040c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">FR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2060">
+ <!-- French - Belgium, #080c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">BE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 11276">
+ <!-- French - Cameroon, #2c0c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">CM</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 3084">
+ <!-- French - Canada, #0c0c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">CA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 9228">
+ <!-- French - Congo, #240c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">CG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 12300">
+ <!-- French - Cote d'Ivoire, #300c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">CI</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 15372">
+ <!-- French - Haiti, #3c0c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">HT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 5132">
+ <!-- French - Luxembourg, #140c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">LU</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 13324">
+ <!-- French - Mali, #340c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">ML</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 6156">
+ <!-- French - Monaco, #180c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">MC</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 14348">
+ <!-- French - Morocco, #380c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">MA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 58380">
+ <!-- French - North Africa (Algeria), #e40c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">DZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 8204">
+ <!-- French - Reunion, #200c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">RE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 10252">
+ <!-- French - Senegal, #280c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">SN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 4108">
+ <!-- French - Switzerland, #100c -->
+ <xsl:attribute name="number:language">fr</xsl:attribute>
+ <xsl:attribute name="number:country">CH</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1122">
+ <!-- Frisian - Netherlands, #0462 -->
+ <xsl:attribute name="number:language">fy</xsl:attribute>
+ <xsl:attribute name="number:country">NL</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1127">
+ <!-- Fulfude (Fulah) - Nigeria, #0467 -->
+ <xsl:attribute name="number:language">ff</xsl:attribute>
+ <xsl:attribute name="number:country">NG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1071">
+ <!-- FYRO Macedonian, #042f -->
+ <xsl:attribute name="number:language">mk</xsl:attribute>
+ <xsl:attribute name="number:country">MK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2108">
+ <!-- Gaelic (Ireland), #083c -->
+ <xsl:attribute name="number:language">gd</xsl:attribute>
+ <xsl:attribute name="number:country">IE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1084">
+ <!-- Gaelic (Scotland), #043c -->
+ <xsl:attribute name="number:language">gd</xsl:attribute>
+ <xsl:attribute name="number:country">GB</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1110">
+ <!-- Galician (Gallegan) - Spain, #0456 -->
+ <xsl:attribute name="number:language">gl</xsl:attribute>
+ <xsl:attribute name="number:country">ES</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1079">
+ <!-- Georgian - Georgia, #0437 -->
+ <xsl:attribute name="number:language">ka</xsl:attribute>
+ <xsl:attribute name="number:country">GE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1031">
+ <!-- German - Germany, #0407 -->
+ <xsl:attribute name="number:language">de</xsl:attribute>
+ <xsl:attribute name="number:country">DE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 3079">
+ <!-- German - Austria, #0c07 -->
+ <xsl:attribute name="number:language">de</xsl:attribute>
+ <xsl:attribute name="number:country">AT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 5127">
+ <!-- German - Liechtenstein, #1407 -->
+ <xsl:attribute name="number:language">de</xsl:attribute>
+ <xsl:attribute name="number:country">LI</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 4103">
+ <!-- German - Luxembourg, #1007 -->
+ <xsl:attribute name="number:language">de</xsl:attribute>
+ <xsl:attribute name="number:country">LU</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2055">
+ <!-- German - Switzerland, #0807 -->
+ <xsl:attribute name="number:language">de</xsl:attribute>
+ <xsl:attribute name="number:country">CH</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1032">
+ <!-- Greek, #0408 -->
+ <xsl:attribute name="number:language">el</xsl:attribute>
+ <xsl:attribute name="number:country">GR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1140">
+ <!-- Guarani - Paraguay, #0474 -->
+ <xsl:attribute name="number:language">gn</xsl:attribute>
+ <xsl:attribute name="number:country">PY</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1095">
+ <!-- Gujarati - India, #0447 -->
+ <xsl:attribute name="number:language">gu</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1128">
+ <!-- Hausa - Nigeria, #0468 -->
+ <xsl:attribute name="number:language">ha</xsl:attribute>
+ <xsl:attribute name="number:country">NG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1141">
+ <!-- Hawaiian - US, #0475 -->
+ <xsl:attribute name="number:language">haw</xsl:attribute>
+ <xsl:attribute name="number:country">US</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1037">
+ <!-- Hebrew, #040d -->
+ <xsl:attribute name="number:language">he</xsl:attribute>
+ <xsl:attribute name="number:country">IL</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1081">
+ <!-- Hindi (India), #0439 -->
+ <xsl:attribute name="number:language">hi</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1038">
+ <!-- Hungarian - Hungary, #040e -->
+ <xsl:attribute name="number:language">hu</xsl:attribute>
+ <xsl:attribute name="number:country">HU</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1129">
+ <!-- Ibibio (Niger-Kordofanian) - Nigeria, #0469 -->
+ <xsl:attribute name="number:language">nic</xsl:attribute>
+ <xsl:attribute name="number:country">NG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1039">
+ <!-- Icelandic, #040f -->
+ <xsl:attribute name="number:language">is</xsl:attribute>
+ <xsl:attribute name="number:country">IS</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1136">
+ <!-- Igbo - Nigeria, #0470 -->
+ <xsl:attribute name="number:language">ig</xsl:attribute>
+ <xsl:attribute name="number:country">NG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1057">
+ <!-- Indonesian, #0421 -->
+ <xsl:attribute name="number:language">id</xsl:attribute>
+ <xsl:attribute name="number:country">ID</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1117">
+ <!-- Inuktitut - US, #045d -->
+ <xsl:attribute name="number:language">iu</xsl:attribute>
+ <xsl:attribute name="number:country">US</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1040">
+ <!-- Italian - Italy, #0410 -->
+ <xsl:attribute name="number:language">it</xsl:attribute>
+ <xsl:attribute name="number:country">IT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2064">
+ <!-- Italian - Switzerland, #0810 -->
+ <xsl:attribute name="number:language">it</xsl:attribute>
+ <xsl:attribute name="number:country">CH</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1041">
+ <!-- Japanese, #0411 -->
+ <xsl:attribute name="number:language">ja</xsl:attribute>
+ <xsl:attribute name="number:country">JP</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1099">
+ <!-- Kannada (India), #044b -->
+ <xsl:attribute name="number:language">kn</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1137">
+ <!-- Kanuri - Nigeria, #0471 -->
+ <xsl:attribute name="number:language">kr</xsl:attribute>
+ <xsl:attribute name="number:country">NG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2144">
+ <!-- Kashmiri (India), #0860 -->
+ <xsl:attribute name="number:language">ks</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1120">
+ <!-- Kashmiri (Arabic), #0460 -->
+ <xsl:attribute name="number:language">ks</xsl:attribute>
+ <xsl:attribute name="number:country">PK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1087">
+ <!-- Kazakh, #043f -->
+ <xsl:attribute name="number:language">kk</xsl:attribute>
+ <xsl:attribute name="number:country">KZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1107">
+ <!-- Khmer (Cambodian), #0453 -->
+ <xsl:attribute name="number:language">km</xsl:attribute>
+ <xsl:attribute name="number:country">KH</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1111">
+ <!-- Konkani (India), #0457 -->
+ <xsl:attribute name="number:language">kok</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1042">
+ <!-- Korean, #0412 -->
+ <xsl:attribute name="number:language">ko</xsl:attribute>
+ <xsl:attribute name="number:country">KR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1088">
+ <!-- Kyrgyz ( Kirgiz / Cyrillic), #0440 -->
+ <xsl:attribute name="number:language">ky</xsl:attribute>
+ <xsl:attribute name="number:country">KG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1108">
+ <!-- Lao, #0454 -->
+ <xsl:attribute name="number:language">lo</xsl:attribute>
+ <xsl:attribute name="number:country">LA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1142">
+ <!-- Latin, #0476 -->
+ <xsl:attribute name="number:language">la</xsl:attribute>
+ <xsl:attribute name="number:country">IT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1062">
+ <!-- Latvian, #0426 -->
+ <xsl:attribute name="number:language">lv</xsl:attribute>
+ <xsl:attribute name="number:country">LV</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1063">
+ <!-- Lithuanian, #0427 -->
+ <xsl:attribute name="number:language">lt</xsl:attribute>
+ <xsl:attribute name="number:country">LT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1086">
+ <!-- Malay - Malaysia, #043e -->
+ <xsl:attribute name="number:language">ms</xsl:attribute>
+ <xsl:attribute name="number:country">MY</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2110">
+ <!-- Malay - Brunei Darussalam, #083e -->
+ <xsl:attribute name="number:language">ms</xsl:attribute>
+ <xsl:attribute name="number:country">BN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1071">
+ <!-- Macedonian (FYROM), #042f -->
+ <xsl:attribute name="number:language">mk</xsl:attribute>
+ <xsl:attribute name="number:country">MK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1100">
+ <!-- Malayalam (India), #044c -->
+ <xsl:attribute name="number:language">ml</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1082">
+ <!-- Maltese, #043a -->
+ <xsl:attribute name="number:language">mt</xsl:attribute>
+ <xsl:attribute name="number:country">MT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1112">
+ <!-- Manipuri (India), #0458 -->
+ <xsl:attribute name="number:language">mni</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1153">
+ <!-- Maori - New Zealand, #0481 -->
+ <xsl:attribute name="number:language">mi</xsl:attribute>
+ <xsl:attribute name="number:country">NZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1102">
+ <!-- Marathi (India), #044e -->
+ <xsl:attribute name="number:language">mr</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1104">
+ <!-- Mongolian (Cyrillic), #0450 -->
+ <xsl:attribute name="number:language">mn</xsl:attribute>
+ <xsl:attribute name="number:country">MN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2128">
+ <!-- Mongolian (Mongolian), #0850 -->
+ <xsl:attribute name="number:language">mn</xsl:attribute>
+ <xsl:attribute name="number:country">CN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1121">
+ <!-- Nepali, #0461 -->
+ <xsl:attribute name="number:language">ne</xsl:attribute>
+ <xsl:attribute name="number:country">NP</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2145">
+ <!-- Nepali (India), #0861 -->
+ <xsl:attribute name="number:language">ne</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1044">
+ <!-- Norwegian (Bokmal), #0414 -->
+ <xsl:attribute name="number:language">nb</xsl:attribute>
+ <xsl:attribute name="number:country">NO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2068">
+ <!-- Norwegian (Nynorsk), #0814 -->
+ <xsl:attribute name="number:language">nn</xsl:attribute>
+ <xsl:attribute name="number:country">NO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1096">
+ <!-- Oriya (India), #0448 -->
+ <xsl:attribute name="number:language">or</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1138">
+ <!-- Oromo (Ethiopia), #0472 -->
+ <xsl:attribute name="number:language">om</xsl:attribute>
+ <xsl:attribute name="number:country">ET</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1145">
+ <!-- Papiamentu (Netherlands Antilles), #0479 -->
+ <xsl:attribute name="number:language">pap</xsl:attribute>
+ <xsl:attribute name="number:country">AN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1123">
+ <!-- Pashto (Afghanistan), #0463 -->
+ <xsl:attribute name="number:language">ps</xsl:attribute>
+ <xsl:attribute name="number:country">AF</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1045">
+ <!-- Polish, #0415 -->
+ <xsl:attribute name="number:language">pl</xsl:attribute>
+ <xsl:attribute name="number:country">PL</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1046">
+ <!-- Portuguese - Brazil, #0416 -->
+ <xsl:attribute name="number:language">pt</xsl:attribute>
+ <xsl:attribute name="number:country">BR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2070">
+ <!-- Portuguese - Portugal, #0816 -->
+ <xsl:attribute name="number:language">pt</xsl:attribute>
+ <xsl:attribute name="number:country">PT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1094">
+ <!-- Punjabi, #0446 -->
+ <xsl:attribute name="number:language">pa</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2118">
+ <!-- Punjabi (Pakistan), #0846 -->
+ <xsl:attribute name="number:language">pa</xsl:attribute>
+ <xsl:attribute name="number:country">PK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1131">
+ <!-- Quecha - Blivia, #046b -->
+ <xsl:attribute name="number:language">qu</xsl:attribute>
+ <xsl:attribute name="number:country">BO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2155">
+ <!-- Quecha - Ecuador, #086b -->
+ <xsl:attribute name="number:language">qu</xsl:attribute>
+ <xsl:attribute name="number:country">EC</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 3179">
+ <!-- Quecha - peru, #0c6b -->
+ <xsl:attribute name="number:language">qu</xsl:attribute>
+ <xsl:attribute name="number:country">PE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1047">
+ <!-- Rhaeto-Romanic (Italy), #0417 -->
+ <xsl:attribute name="number:language">rm</xsl:attribute>
+ <xsl:attribute name="number:country">IT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1048">
+ <!-- Romanian, #0418 -->
+ <xsl:attribute name="number:language">ro</xsl:attribute>
+ <xsl:attribute name="number:country">RO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2072">
+ <!-- Romanian - Moldova, #0818 -->
+ <xsl:attribute name="number:language">ro</xsl:attribute>
+ <xsl:attribute name="number:country">MD</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1049">
+ <!-- Russian, #0419 -->
+ <xsl:attribute name="number:language">ru</xsl:attribute>
+ <xsl:attribute name="number:country">RU</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2073">
+ <!-- Russian - Moldova, #0819 -->
+ <xsl:attribute name="number:language">ru</xsl:attribute>
+ <xsl:attribute name="number:country">MD</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1083">
+ <!-- Sami (Lappish), # (Northern Sami - Sweden), #043b -->
+ <xsl:attribute name="number:language">se</xsl:attribute>
+ <xsl:attribute name="number:country">SE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1103">
+ <!-- Sanskrit (India), #044f -->
+ <xsl:attribute name="number:language">sa</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1132">
+ <!-- Sepedi (Northern Sotho - South Africa), #046c -->
+ <xsl:attribute name="number:language">nso</xsl:attribute>
+ <xsl:attribute name="number:country">ZA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 3098">
+ <!-- Serbian (Cyrillic - Serbia Yugoslavia), #0c1a -->
+ <xsl:attribute name="number:language">sr</xsl:attribute>
+ <xsl:attribute name="number:country">YU</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2074">
+ <!-- Serbian (Latin - Croatia), #081a -->
+ <xsl:attribute name="number:language">sr</xsl:attribute>
+ <xsl:attribute name="number:country">HR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1113">
+ <!-- Sindhi - India,#0459 -->
+ <xsl:attribute name="number:language">sd</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2137">
+ <!-- Sindhi - Pakistan, #0859 -->
+ <xsl:attribute name="number:language">sd</xsl:attribute>
+ <xsl:attribute name="number:country">PK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1115">
+ <!-- Sinhalese - Sri Lanka, #045b -->
+ <xsl:attribute name="number:language">si</xsl:attribute>
+ <xsl:attribute name="number:country">LK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1051">
+ <!-- Slovak, #041b -->
+ <xsl:attribute name="number:language">sk</xsl:attribute>
+ <xsl:attribute name="number:country">SK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1060">
+ <!-- Slovenian, #0424 -->
+ <xsl:attribute name="number:language">sl</xsl:attribute>
+ <xsl:attribute name="number:country">SI</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1143">
+ <!-- Somali, #0477 -->
+ <xsl:attribute name="number:language">so</xsl:attribute>
+ <xsl:attribute name="number:country">SO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1070">
+ <!-- Sorbian, #042e -->
+ <xsl:attribute name="number:language">wen</xsl:attribute>
+ <xsl:attribute name="number:country">DE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 3082">
+ <!-- Spanish - Spain (Modern/International Sort), #0c0a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">ES</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1034">
+ <!-- Spanish - Spain (Traditional Sort), #040a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">ES</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 11274">
+ <!-- Spanish - Argentina, #2c0a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">AR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 16394">
+ <!-- Spanish - Bolivia, #400a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">BO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 13322">
+ <!-- Spanish - Chile, #340a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">CL</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 9226">
+ <!-- Spanish - Colombia, #240a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">CO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 5130">
+ <!-- Spanish - Costa Rica, #140a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">CR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 7178">
+ <!-- Spanish - Dominican Republic, #1c0a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">DO</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 12298">
+ <!-- Spanish - Ecuador, #300a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">EC</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 17418">
+ <!-- Spanish - EL Salvador, #440a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">SV</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 4106">
+ <!-- Spanish - Guatemala, #100a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">GT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 18442">
+ <!-- Spanish - Honduras, #480a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">HN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 58378">
+ <!-- Spanish - Latin America (Argentina), #e40a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">AR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2058">
+ <!-- Spanish - Mexico, #080a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">MX</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 19466">
+ <!-- Spanish - Nicaragua, #4c0a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">NI</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 6154">
+ <!-- Spanish - Panama, #180a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">PA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 15370">
+ <!-- Spanish - Paraguay, #3c0a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">PY</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 10250">
+ <!-- Spanish - Peru, #280a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">PE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 20490">
+ <!-- Spanish - Puerto Rico, #500a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">PR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 21514">
+ <!-- Spanish - US, #540a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">US</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 14346">
+ <!-- Spanish - Uruguay, #380a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">UY</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 8202">
+ <!-- Spanish - Venezuela, #200a -->
+ <xsl:attribute name="number:language">es</xsl:attribute>
+ <xsl:attribute name="number:country">VE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1072">
+ <!-- Sutu (Ngoni - Tanzania), #0430 -->
+ <xsl:attribute name="number:language">bnt</xsl:attribute>
+ <xsl:attribute name="number:country">TZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1089">
+ <!-- Swahili (Tanzania), #0441 -->
+ <xsl:attribute name="number:language">sw</xsl:attribute>
+ <xsl:attribute name="number:country">TZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1053">
+ <!-- Swedish (Sweden), #041d -->
+ <xsl:attribute name="number:language">sv</xsl:attribute>
+ <xsl:attribute name="number:country">SE</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2077">
+ <!-- Swedish - Finland, #081d -->
+ <xsl:attribute name="number:language">sv</xsl:attribute>
+ <xsl:attribute name="number:country">FI</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1114">
+ <!-- Syriac (Syria), #045a -->
+ <xsl:attribute name="number:language">syr</xsl:attribute>
+ <xsl:attribute name="number:country">SY</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1064">
+ <!-- Tajik, #0428 -->
+ <xsl:attribute name="number:language">tg</xsl:attribute>
+ <xsl:attribute name="number:country">TJ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1119">
+ <!-- Tamazight (Arabic), #045f -->
+ <xsl:attribute name="number:language">ber</xsl:attribute>
+ <xsl:attribute name="number:country">ML</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2143">
+ <!-- Tamazight (Latin), #085f -->
+ <xsl:attribute name="number:language">ber</xsl:attribute>
+ <xsl:attribute name="number:country">MA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1097">
+ <!-- Tamil (India), #0449 -->
+ <xsl:attribute name="number:language">ta</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1092">
+ <!-- Tatar (Russia), #0444 -->
+ <xsl:attribute name="number:language">tt</xsl:attribute>
+ <xsl:attribute name="number:country">RU</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1098">
+ <!-- Telugu (India), #044a -->
+ <xsl:attribute name="number:language">te</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1054">
+ <!-- Thai, #041e -->
+ <xsl:attribute name="number:language">th</xsl:attribute>
+ <xsl:attribute name="number:country">TH</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2129">
+ <!-- Tibetan - Bhutan, #0851 -->
+ <xsl:attribute name="number:language">bo</xsl:attribute>
+ <xsl:attribute name="number:country">BT</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1105">
+ <!-- Tibetan - Peoples' Republic of China, #0451 -->
+ <xsl:attribute name="number:language">bo</xsl:attribute>
+ <xsl:attribute name="number:country">CN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2163">
+ <!-- Tigrigna (Tigrinya) - Eritrea, #0873 -->
+ <xsl:attribute name="number:language">ti</xsl:attribute>
+ <xsl:attribute name="number:country">ER</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1139">
+ <!-- Tigrigna (Tigrinya) - Ethiopia, #0473 -->
+ <xsl:attribute name="number:language">ti</xsl:attribute>
+ <xsl:attribute name="number:country">ET</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1073">
+ <!-- Tsonga (South Africa), #0431 -->
+ <xsl:attribute name="number:language">ts</xsl:attribute>
+ <xsl:attribute name="number:country">ZA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1074">
+ <!-- Tswana (South Africa), #0432 -->
+ <xsl:attribute name="number:language">tn</xsl:attribute>
+ <xsl:attribute name="number:country">ZA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1055">
+ <!-- Turkish, #041f -->
+ <xsl:attribute name="number:language">tr</xsl:attribute>
+ <xsl:attribute name="number:country">TR</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1090">
+ <!-- Turkmen, #0442 -->
+ <xsl:attribute name="number:language">tk</xsl:attribute>
+ <xsl:attribute name="number:country">TM</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1152">
+ <!-- Uighur - China, #0480 -->
+ <xsl:attribute name="number:language">ug</xsl:attribute>
+ <xsl:attribute name="number:country">CN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1058">
+ <!-- Ukrainian, #0422 -->
+ <xsl:attribute name="number:language">uk</xsl:attribute>
+ <xsl:attribute name="number:country">UA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1056">
+ <!-- Urdu (Pakistan), #0420 -->
+ <xsl:attribute name="number:language">ur</xsl:attribute>
+ <xsl:attribute name="number:country">PK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2080">
+ <!-- Urdu - India, #0820 -->
+ <xsl:attribute name="number:language">ur</xsl:attribute>
+ <xsl:attribute name="number:country">IN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 2115">
+ <!-- Uzbek (Cyrillic), #0843 -->
+ <xsl:attribute name="number:language">uz</xsl:attribute>
+ <xsl:attribute name="number:country">UZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1091">
+ <!-- Uzbek (Latin), #0443 -->
+ <xsl:attribute name="number:language">uz</xsl:attribute>
+ <xsl:attribute name="number:country">UZ</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1075">
+ <!-- Venda (South Africa), #0433 -->
+ <xsl:attribute name="number:language">ve</xsl:attribute>
+ <xsl:attribute name="number:country">ZA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1066">
+ <!-- Vietnamese, #042a -->
+ <xsl:attribute name="number:language">vi</xsl:attribute>
+ <xsl:attribute name="number:country">VN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1106">
+ <!-- Welsh (UK), #0452 -->
+ <xsl:attribute name="number:language">cy</xsl:attribute>
+ <xsl:attribute name="number:country">UK</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1076">
+ <!-- Xhosa (South Africa), #0434 -->
+ <xsl:attribute name="number:language">xh</xsl:attribute>
+ <xsl:attribute name="number:country">ZA</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1144">
+ <!-- Yi (Sino-Tibetan - China), #0478 -->
+ <xsl:attribute name="number:language">sit</xsl:attribute>
+ <xsl:attribute name="number:country">CN</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1085">
+ <!-- Yiddish (Jews - Israel), #043d -->
+ <xsl:attribute name="number:language">yi</xsl:attribute>
+ <xsl:attribute name="number:country">IL</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1130">
+ <!-- Yoruba (Nigeria), #046a -->
+ <xsl:attribute name="number:language">yo</xsl:attribute>
+ <xsl:attribute name="number:country">NG</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$language-country-code = 1077">
+ <!-- Zulu (South Africa), #0435 -->
+ <xsl:attribute name="number:language">zu</xsl:attribute>
+ <xsl:attribute name="number:country">ZA</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-number-format-condition">
+ <xsl:param name="number-format-unit"/>
+ <xsl:choose>
+ <xsl:when test="contains($number-format-unit, '[&gt;')">
+ <xsl:value-of select="concat('&gt;', substring-before( substring-after($number-format-unit,'[&gt;'), ']'))"/>
+ </xsl:when>
+ <xsl:when test="contains($number-format-unit, '[&lt;')">
+ <xsl:value-of select="concat('&lt;', substring-before( substring-after($number-format-unit,'[&lt;'), ']'))"/>
+ </xsl:when>
+ <xsl:when test="contains($number-format-unit, '[=')">
+ <xsl:value-of select="concat('=', substring-before( substring-after($number-format-unit,'[='), ']'))"/>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="add-number-text-value">
+ <xsl:param name="style-type-name"/>
+ <xsl:param name="number-format-unit"/>
+ <xsl:param name="unit-pos"/>
+ <xsl:param name="condition-pos"/>
+ <xsl:param name="isNumberTextElementOpened" select="false()"/>
+ <xsl:param name="numberTextValue"/>
+ <xsl:param name="posed-number-format-unit"/>
+ <xsl:param name="finished" select="false()"/>
+ <xsl:choose>
+ <xsl:when test="not($finished)">
+ <xsl:choose>
+<!-- <xsl:when test="$style-type-name='number:text-style' or $style-type-name='number:date-style'"> -->
+ <xsl:when test="$style-type-name='number:text-style'">
+ <xsl:choose>
+ <xsl:when test="$isNumberTextElementOpened">
+ <number:text-content/>
+ <number:text>
+ <xsl:copy-of select="$numberTextValue"/>
+ </number:text>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="isNumberTextElementOpened" select="true()"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <number:text>
+ <xsl:copy-of select="$numberTextValue"/>
+ </number:text>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="isNumberTextElementOpened" select="true()"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ </xsl:call-template>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="finished" select="true()"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$style-type-name='number:number-style'">
+ <xsl:choose>
+ <xsl:when test="$isNumberTextElementOpened">
+ <xsl:copy-of select="$numberTextValue"/>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="isNumberTextElementOpened" select="true()"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <number:text>
+ <xsl:copy-of select="$numberTextValue"/>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="isNumberTextElementOpened" select="true()"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ </xsl:call-template>
+ </number:text>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="finished" select="true()"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <number:text>
+ <xsl:copy-of select="$numberTextValue"/>
+ </number:text>
+ <xsl:choose>
+ <xsl:when test="starts-with($posed-number-format-unit, '\')">
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="finished" select="false()" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="finished" select="true()" />
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-number-text-content">
+ <xsl:param name="style-type-name"/>
+ <xsl:param name="number-format-unit"/>
+ <xsl:param name="unit-pos"/>
+ <xsl:param name="condition-pos"/>
+ <xsl:param name="isNumberTextElementOpened" select="false()"/>
+ <xsl:param name="finished" select="false()"/>
+ <xsl:param name="posed-number-format-unit"/>
+ <!-- process number-format-unit by character string parser -->
+ <xsl:choose>
+ <xsl:when test="starts-with( $posed-number-format-unit, '\') or starts-with( $posed-number-format-unit, '*')">
+ <xsl:choose>
+ <xsl:when test="not($finished)">
+ <xsl:call-template name="add-number-text-value">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="isNumberTextElementOpened" select="$isNumberTextElementOpened"/>
+ <xsl:with-param name="posed-number-format-unit" select="substring($number-format-unit,$unit-pos + 2)"/>
+ <!-- place '*' temparily here, because now StarCalc doesn't support variable filling character definition -->
+ <xsl:with-param name="numberTextValue" select="substring($posed-number-format-unit,2,1)"/>
+ <xsl:with-param name="finished" select="$finished"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="posed-number-format-unit" select="substring($number-format-unit,$unit-pos +2)"/>
+ <xsl:with-param name="finished" select="true()"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '_')">
+ <xsl:choose>
+ <xsl:when test="not($finished)">
+ <xsl:call-template name="add-number-text-value">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="isNumberTextElementOpened" select="$isNumberTextElementOpened"/>
+ <xsl:with-param name="posed-number-format-unit" select="substring($number-format-unit,$unit-pos + 2)"/>
+ <!-- adding an empty string -->
+ <xsl:with-param name="numberTextValue" select="' '"/>
+ <xsl:with-param name="finished" select="$finished"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="posed-number-format-unit" select="substring($number-format-unit,$unit-pos + 2)"/>
+ <xsl:with-param name="finished" select="true()"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '&quot;')">
+ <xsl:choose>
+ <xsl:when test="not($finished)">
+ <!-- creating a pre-character string -->
+ <xsl:variable name="pre-character-string" select="substring-before(substring($posed-number-format-unit,2), '&quot;')"/>
+ <xsl:call-template name="add-number-text-value">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + string-length($pre-character-string) + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="posed-number-format-unit" select="substring($number-format-unit,$unit-pos + string-length($pre-character-string) + 2)"/>
+ <xsl:with-param name="isNumberTextElementOpened" select="$isNumberTextElementOpened"/>
+ <xsl:with-param name="numberTextValue" select="$pre-character-string"/>
+ <xsl:with-param name="finished" select="$finished"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- creating a pre-character string -->
+ <xsl:variable name="pre-character-string" select="substring-before(substring($posed-number-format-unit,2), '&quot;')"/>
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + string-length($pre-character-string) + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="posed-number-format-unit" select="substring($number-format-unit,$unit-pos + string-length($pre-character-string) + 2)"/>
+ <xsl:with-param name="finished" select="true()"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$finished">
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="create-number-format-content">
+ <xsl:param name="style-type-name"/>
+ <xsl:param name="number-format-unit"/>
+ <xsl:param name="unit-pos"/>
+ <xsl:param name="condition-pos"/>
+ <xsl:param name="isNumberTextElementOpened" select="false()"/>
+ <xsl:variable name="posed-number-format-unit" select="substring($number-format-unit,$unit-pos)"/>
+ <xsl:variable name="calendar-type-name">
+ <xsl:if test="contains( $number-format-unit, '[$')">
+ <xsl:variable name="format-code" select="substring-before( substring-after( substring-after( $number-format-unit, '[$'), '-'), ']')"/>
+ <xsl:if test="string-length( $format-code) &gt; 4">
+ <xsl:call-template name="get-calendar-type-name">
+ <xsl:with-param name="calendar-type" select="substring( $format-code, string-length($format-code) -5, 2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:variable>
+ <!-- process number-format-unit by character string parser -->
+ <xsl:choose>
+ <xsl:when test="starts-with( $posed-number-format-unit, '[$') and (not(starts-with($posed-number-format-unit, '[$-') ) )">
+ <xsl:element name="number:currency-symbol">
+ <xsl:call-template name="create-language-country-attribute">
+ <xsl:with-param name="attribute-code" select="substring-before(substring-after(substring-after($posed-number-format-unit,'[$'),'-'),']')"/>
+ </xsl:call-template>
+ <xsl:value-of select="substring-before( substring-after( $posed-number-format-unit, '[$'), '-')"/>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + string-length( substring-before( $posed-number-format-unit, ']') ) + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '\') or starts-with( $posed-number-format-unit, '*') or starts-with( $posed-number-format-unit, '_') or starts-with( $posed-number-format-unit, '&quot;')">
+ <xsl:call-template name="get-number-text-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="(starts-with( $posed-number-format-unit, '0') or starts-with( $posed-number-format-unit, '#') or starts-with( $posed-number-format-unit, '?') ) and (not ( contains( $posed-number-format-unit, 's.00') ) )">
+ <xsl:variable name="valid-number-format-string">
+ <xsl:call-template name="get-valid-number-format-string">
+ <xsl:with-param name="number-format-unit" select="$posed-number-format-unit"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains( $valid-number-format-string, '/')">
+ <xsl:element name="number:fraction">
+ <xsl:attribute name="number:min-integer-digits">
+ <xsl:value-of select="string-length( substring-before($valid-number-format-string, '/') ) - string-length(translate( substring-before($valid-number-format-string, '/'), '0', '') )"/>
+ </xsl:attribute>
+ <xsl:if test="contains( $valid-number-format-string, ',')">
+ <xsl:attribute name="number:grouping">true</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="number:min-numerator-digits">
+ <xsl:value-of select="string-length( substring-before($valid-number-format-string, '/') ) - string-length(translate( substring-before($valid-number-format-string,'/'), '?', '') )"/>
+ </xsl:attribute>
+ <xsl:attribute name="number:min-denominator-digits">
+ <xsl:value-of select="string-length(substring-after($valid-number-format-string, '/') )"/>
+ </xsl:attribute>
+ <!-- deal with number:embedded-text (removed, as SCHEMA demands element to be empty)
+ <xsl:call-template name="create-number-format-embedded-text">
+ <xsl:with-param name="adapted-number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ -->
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="contains( $valid-number-format-string, '%')">
+ <xsl:element name="number:number">
+ <xsl:choose>
+ <xsl:when test="contains( $valid-number-format-string, '.')">
+ <xsl:attribute name="number:decimal-places">
+ <xsl:value-of select="string-length( substring-before( substring-after( $valid-number-format-string, '.'), '%') ) - string-length( translate( substring-before( substring-after( $valid-number-format-string, '.'), '%'), '0', '') )"/>
+ </xsl:attribute>
+ <xsl:attribute name="number:min-integer-digits">
+ <xsl:value-of select="string-length( substring-before($valid-number-format-string, '.') ) - string-length(translate( substring-before($valid-number-format-string, '.'), '0', '') )"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="number:decimal-places">0</xsl:attribute>
+ <xsl:attribute name="number:min-integer-digits">
+ <xsl:value-of select="string-length( substring-before($valid-number-format-string, '%') ) - string-length(translate( substring-before($valid-number-format-string, '%'), '0', '') )"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="contains( $valid-number-format-string, ',') and (substring( $valid-number-format-string,string-length($valid-number-format-string)) = ',')">
+ <xsl:variable name="display-factor">
+ <xsl:call-template name="get-display-factor">
+ <xsl:with-param name="start-number" select="1"/>
+ <xsl:with-param name="thousand-count" select="string-length($valid-number-format-string) - string-length( translate($valid-number-format-string, ',', '') )"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="number:display-factor">
+ <xsl:value-of select="$display-factor"/>
+ </xsl:attribute>
+ <xsl:attribute name="number:grouping">true</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains( $valid-number-format-string, ',')">
+ <xsl:attribute name="number:grouping">true</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <!-- deal with number:embedded-text -->
+ <xsl:call-template name="create-number-format-embedded-text">
+ <xsl:with-param name="adapted-number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:element>
+ <number:text>%</number:text>
+ </xsl:when>
+ <xsl:when test="contains( $valid-number-format-string, 'E') or contains ($valid-number-format-string, 'e')">
+ <xsl:element name="number:scientific-number">
+ <xsl:choose>
+ <xsl:when test="contains( $valid-number-format-string, '.')">
+ <xsl:attribute name="number:decimal-places">
+ <xsl:value-of select="string-length( substring-before( substring-after( $valid-number-format-string, '.'), 'E') ) - string-length( translate( substring-before( substring-after( $valid-number-format-string, '.'), 'E'), '0', '') )"/>
+ </xsl:attribute>
+ <xsl:attribute name="number:min-integer-digits">
+ <xsl:value-of select="string-length( substring-before($valid-number-format-string, '.') ) - string-length(translate( substring-before($valid-number-format-string, '.'), '0', '') )"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="number:decimal-places">0</xsl:attribute>
+ <xsl:attribute name="number:min-integer-digits">
+ <xsl:value-of select="string-length( substring-before($valid-number-format-string, 'E') ) - string-length(translate( substring-before($valid-number-format-string, 'E'), '0', '') )"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="number:min-exponent-digits">
+ <xsl:value-of select="string-length( substring-after( $valid-number-format-string, 'E') ) - string-length( translate( substring-after( $valid-number-format-string, 'E'), '0', '') )"/>
+ </xsl:attribute>
+ <!-- deal with number:embedded-text -->
+ <xsl:call-template name="create-number-format-embedded-text">
+ <xsl:with-param name="adapted-number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- -normal number format, currency, and accounting, e.g -->
+ <xsl:element name="number:number">
+ <xsl:choose>
+ <xsl:when test="contains( $valid-number-format-string, '.')">
+ <xsl:attribute name="number:decimal-places">
+ <xsl:value-of select="string-length( substring-after( $valid-number-format-string, '.') ) - string-length( translate( substring-after( $valid-number-format-string, '.'), '0', '') )"/>
+ </xsl:attribute>
+ <xsl:attribute name="number:min-integer-digits">
+ <xsl:value-of select="string-length( substring-before($valid-number-format-string, '.') ) - string-length(translate( substring-before($valid-number-format-string, '.'), '0', '') )"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="number:decimal-places">0</xsl:attribute>
+ <xsl:attribute name="number:min-integer-digits">
+ <xsl:value-of select="string-length( $valid-number-format-string ) - string-length(translate( $valid-number-format-string, '0', '') )"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="contains( $valid-number-format-string, ',') and (substring( $valid-number-format-string,string-length($valid-number-format-string)) = ',')">
+ <xsl:variable name="display-factor">
+ <xsl:call-template name="get-display-factor">
+ <xsl:with-param name="start-number" select="1"/>
+ <xsl:with-param name="thousand-count">
+ <xsl:call-template name="thousand-count-temp">
+ <xsl:with-param name="format-unit" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="number:display-factor">
+ <xsl:value-of select="$display-factor"/>
+ </xsl:attribute>
+ <xsl:attribute name="number:grouping">true</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains( $valid-number-format-string, ',')">
+ <xsl:attribute name="number:grouping">true</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <!-- deal with number:embedded-text -->
+ <xsl:call-template name="create-number-format-embedded-text">
+ <xsl:with-param name="adapted-number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- deal with post number:text -->
+ <xsl:variable name="post-number-format-text">
+ <xsl:call-template name="get-post-number-format-text">
+ <xsl:with-param name="adapted-number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$post-number-format-text"/>
+ <xsl:with-param name="unit-pos" select="1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'ggg')">
+ <xsl:element name="number:era">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 3"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'gg')">
+ <xsl:element name="number:era">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'g')">
+ <xsl:element name="number:era">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'ee')">
+ <xsl:element name="number:year">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'r')">
+ <xsl:element name="number:year">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'yyyy')">
+ <xsl:element name="number:year">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 4"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'yy')">
+ <xsl:element name="number:year">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'e') or starts-with( $posed-number-format-unit, 'y')">
+ <xsl:element name="number:year">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'mmmmm')">
+ <xsl:element name="number:month">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ <xsl:attribute name="number:textual">true</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 5"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'mmmm')">
+ <xsl:element name="number:month">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ <xsl:attribute name="number:textual">true</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 4"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'mmm')">
+ <xsl:element name="number:month">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ <xsl:attribute name="number:textual">true</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 3"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '[mm]')">
+ <xsl:element name="number:minutes">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 4"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '[m]')">
+ <xsl:element name="number:minutes">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 3"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'mm') and ( contains( $number-format-unit, 'h') or contains( $posed-number-format-unit, 's') )">
+ <xsl:element name="number:minutes">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'mm')">
+ <xsl:element name="number:month">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'm') and ( contains( $number-format-unit, 'h') or contains( $posed-number-format-unit, 's') )">
+ <xsl:element name="number:minutes">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'm')">
+ <xsl:element name="number:month">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'dddd') or starts-with( $posed-number-format-unit, 'aaaa')">
+ <xsl:element name="number:day-of-week">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 4"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'ddd') or starts-with( $posed-number-format-unit, 'aaa')">
+ <xsl:element name="number:day-of-week">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 3"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'dd')">
+ <xsl:element name="number:day">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'd')">
+ <xsl:element name="number:day">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ <xsl:if test="string-length($calendar-type-name) &gt; 0">
+ <xsl:attribute name="number:calendar">
+ <xsl:value-of select="$calendar-type-name"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'hh')">
+ <xsl:element name="number:hours">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 2"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '[hh]')">
+ <xsl:element name="number:hours">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 4"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'h')">
+ <xsl:element name="number:hours">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '[h]')">
+ <xsl:element name="number:hours">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 3"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'AM/PM') or starts-with( $posed-number-format-unit, 'am/pm')">
+ <number:am-pm/>
+ <!-- long: am-pm doesn't support long style yet -->
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 5"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'a/p'or starts-with( $posed-number-format-unit, 'A/P'))">
+ <number:am-pm/>
+ <!-- short: am-pm doesn't support short style yet -->
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 3"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'ss')">
+ <xsl:variable name="decimal-places">
+ <xsl:choose>
+ <xsl:when test="starts-with( $posed-number-format-unit, 'ss.0')">
+ <xsl:value-of select="string-length( $posed-number-format-unit) - string-length( translate( $posed-number-format-unit, '0', '') )"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="number:seconds">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ <xsl:if test="$decimal-places &gt; 0">
+ <xsl:attribute name="number:decimal-places">
+ <xsl:value-of select="$decimal-places"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:variable name="second-length">
+ <xsl:choose>
+ <xsl:when test="$decimal-places &gt; 0">
+ <xsl:value-of select="$decimal-places + 3"/>
+ </xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + $second-length"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '[ss]')">
+ <xsl:element name="number:seconds">
+ <xsl:attribute name="number:style">long</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 4"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, 's')">
+ <xsl:variable name="decimal-places">
+ <xsl:choose>
+ <xsl:when test="starts-with( $posed-number-format-unit, 's.0')">
+ <xsl:value-of select="string-length( $posed-number-format-unit) - string-length( translate( $posed-number-format-unit, '0', '') )"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="number:seconds">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ <xsl:if test="$decimal-places &gt; 0">
+ <xsl:attribute name="number:decimal-places">
+ <xsl:value-of select="$decimal-places"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:variable name="second-length">
+ <xsl:choose>
+ <xsl:when test="$decimal-places &gt; 0">
+ <xsl:value-of select="$decimal-places + 2"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + $second-length"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '[s]')">
+ <xsl:element name="number:seconds">
+ <xsl:attribute name="number:style">short</xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 3"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '@')">
+ <number:text-content/>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'General Number'">
+ <number:number number:decimal-places="0" number:min-integer-digits="1"/>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'General Date'">
+ <number:year number:style="long"/>
+ <number:text>-</number:text>
+ <number:month number:style="short"/>
+ <number:text>-</number:text>
+ <number:day number:style="short"/>
+ <number:text>
+ <xsl:text> </xsl:text>
+ </number:text>
+ <number:hours number:style="short"/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ </xsl:when>
+ <!-- special for General number:text-content output -->
+ <xsl:when test="starts-with($posed-number-format-unit , 'General')">
+ <xsl:choose>
+ <xsl:when test="$posed-number-format-unit = 'General' and $condition-pos = 1">
+ <number:number number:decimal-places="0" number:min-integer-digits="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="8"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'Fixed'">
+ <number:number number:decimal-places="2" number:min-integer-digits="1"/>
+ <number:text/>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'Standard'">
+ <number:number number:decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'Long Date'">
+ <number:year number:style="long"/>
+ <number:text>-</number:text>
+ <number:month number:style="long"/>
+ <number:text>-</number:text>
+ <number:day number:style="long"/>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'Medium Date'">
+ <number:day number:style="short"/>
+ <number:text>-</number:text>
+ <number:month number:textual="true"/>
+ <number:text>-</number:text>
+ <number:year number:style="short"/>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'Short Date'">
+ <number:day number:style="short"/>
+ <number:text>-</number:text>
+ <number:month number:style="short"/>
+ <number:text>-</number:text>
+ <number:year number:style="short"/>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'Long Time'">
+ <number:hours number:style="long"/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ <number:text>:</number:text>
+ <number:seconds number:style="long"/>
+ <number:text>
+ <xsl:text> </xsl:text>
+ </number:text>
+ <number:am-pm/>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'Medium Time'">
+ <number:hours number:style="short"/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ <number:text>
+ <xsl:text> </xsl:text>
+ </number:text>
+ <number:am-pm/>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'Short Time'">
+ <number:hours number:style="short"/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ <number:text>
+ <xsl:text> </xsl:text>
+ </number:text>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'Percent'">
+ <number:number number:decimal-places="2" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </xsl:when>
+ <xsl:when test="$posed-number-format-unit = 'Scientific'">
+ <number:scientific-number number:decimal-places="2" number:min-integer-digits="1" number:min-exponent-digits="2"/>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '[')">
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + string-length( substring-before( $posed-number-format-unit, ']') ) + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="isNumberTextElementOpened" select="$isNumberTextElementOpened"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, '/')">
+ <number:text>/</number:text>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( $posed-number-format-unit, ':')">
+ <number:text>:</number:text>
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="string-length( $posed-number-format-unit ) &gt; 0">
+ <xsl:call-template name="create-number-format-content">
+ <xsl:with-param name="style-type-name" select="$style-type-name"/>
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ <xsl:with-param name="unit-pos" select="$unit-pos + 1"/>
+ <xsl:with-param name="condition-pos" select="$condition-pos"/>
+ <xsl:with-param name="isNumberTextElementOpened" select="$isNumberTextElementOpened"/>
+ <xsl:with-param name="posed-number-format-unit" select="$posed-number-format-unit"/>
+ <xsl:with-param name="numberTextValue" select="substring( $posed-number-format-unit, 1, 1)"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="thousand-count-temp">
+ <!-- thousand count for char ',' at the latter of format-unit by recursion -->
+ <xsl:param name="format-unit"/>
+ <xsl:choose>
+ <xsl:when test="contains($format-unit, ',#')">
+ <xsl:call-template name="thousand-count-temp">
+ <xsl:with-param name="format-unit" select="substring-after($format-unit, ',#')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains($format-unit, ',0')">
+ <xsl:call-template name="thousand-count-temp">
+ <xsl:with-param name="format-unit" select="substring-after($format-unit, ',0')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="string-length($format-unit) - string-length( translate($format-unit, ',', ''))"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-calendar-type-name">
+ <xsl:param name="calendar-type"/>
+ <xsl:variable name="temp-type">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="$calendar-type"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="string-length($calendar-type)"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- Japanese (Emperor era), #03 -->
+ <xsl:when test="$temp-type = 3">gengou</xsl:when>
+ <!-- Taiwanese, #04 -->
+ <xsl:when test="$temp-type = 4">ROC</xsl:when>
+ <!-- Korean (Tangun era) hanja_yoil is ok too. #05 -->
+ <xsl:when test="$temp-type = 5">hanja</xsl:when>
+ <!-- Hijri (Arabic lunar), #06 -->
+ <xsl:when test="$temp-type = 6">hijri</xsl:when>
+ <!-- Thai, #07 -->
+ <xsl:when test="$temp-type = 7">buddhist</xsl:when>
+ <!-- 01: Gregorian (Localized), 02: Gregorian (United States), 09: Gregorian (Middle East French), 0A: Gregorian (Arabic), 0B: Gregorian (Transliterated English) -->
+ <xsl:otherwise>gregorian</xsl:otherwise>
+ <!-- not found jewish yet -->
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-valid-number-format-string">
+ <xsl:param name="number-format-unit"/>
+ <xsl:choose>
+ <xsl:when test="contains( $number-format-unit, '\')">
+ <xsl:call-template name="get-valid-number-format-string">
+ <xsl:with-param name="number-format-unit" select="concat( substring-before( $number-format-unit, '\'), substring( substring-after( $number-format-unit, '\'), 2) )"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains( $number-format-unit, '*')">
+ <xsl:call-template name="get-valid-number-format-string">
+ <xsl:with-param name="number-format-unit" select="concat( substring-before( $number-format-unit, '*'), substring( substring-after( $number-format-unit, '*'), 2) )"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains( $number-format-unit, '_')">
+ <xsl:call-template name="get-valid-number-format-string">
+ <xsl:with-param name="number-format-unit" select="concat( substring-before( $number-format-unit, '_'), substring( substring-after( $number-format-unit, '_'), 2) )"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains( $number-format-unit, '&quot;')">
+ <xsl:call-template name="get-valid-number-format-string">
+ <xsl:with-param name="number-format-unit" select="concat( substring-before( $number-format-unit, '&quot;'), substring-after( substring-after( $number-format-unit, '&quot;'), '&quot;') )"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$number-format-unit"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-display-factor">
+ <xsl:param name="start-number"/>
+ <xsl:param name="thousand-count"/>
+ <xsl:choose>
+ <xsl:when test="$thousand-count = 0">
+ <xsl:value-of select="$start-number"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-display-factor">
+ <xsl:with-param name="start-number" select="$start-number * 1000"/>
+ <xsl:with-param name="thousand-count" select="$thousand-count -1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-post-number-format-text">
+ <xsl:param name="adapted-number-format-unit"/>
+ <xsl:param name="valid-number-format-string"/>
+ <xsl:variable name="first-embedded-character-pos">
+ <xsl:choose>
+ <xsl:when test="contains( $adapted-number-format-unit, '\')">
+ <xsl:value-of select="string-length( substring-before($adapted-number-format-unit, '\') ) + 1"/>
+ </xsl:when>
+ <xsl:when test="contains( $adapted-number-format-unit, '_')">
+ <xsl:value-of select="string-length( substring-before($adapted-number-format-unit, '_') ) + 1"/>
+ </xsl:when>
+ <xsl:when test="contains( $adapted-number-format-unit, '*')">
+ <xsl:value-of select="string-length( substring-before($adapted-number-format-unit, '*') ) + 1"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="first-embedded-string-pos">
+ <xsl:choose>
+ <xsl:when test="contains( $adapted-number-format-unit, '&quot;')">
+ <xsl:value-of select="string-length( substring-before($adapted-number-format-unit, '&quot;') ) + 1"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="first-embedded-text-pos">
+ <xsl:choose>
+ <xsl:when test="$first-embedded-character-pos &lt; $first-embedded-string-pos and $first-embedded-character-pos &gt; 0">
+ <xsl:value-of select="$first-embedded-character-pos"/>
+ </xsl:when>
+ <xsl:when test="$first-embedded-character-pos &lt; $first-embedded-string-pos and $first-embedded-character-pos = 0">
+ <xsl:value-of select="$first-embedded-string-pos"/>
+ </xsl:when>
+ <xsl:when test="$first-embedded-character-pos &gt; $first-embedded-string-pos and $first-embedded-string-pos &gt; 0">
+ <xsl:value-of select="$first-embedded-string-pos"/>
+ </xsl:when>
+ <xsl:when test="$first-embedded-character-pos &gt; $first-embedded-string-pos and $first-embedded-string-pos = 0">
+ <xsl:value-of select="$first-embedded-character-pos"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-embedded-text-pos &gt; string-length( $valid-number-format-string )">
+ <xsl:value-of select="substring( $adapted-number-format-unit, $first-embedded-text-pos)"/>
+ </xsl:when>
+ <xsl:when test="$first-embedded-text-pos &gt; 0 and $first-embedded-text-pos &lt; string-length( $valid-number-format-string )">
+ <xsl:choose>
+ <xsl:when test="starts-with( substring( $adapted-number-format-unit, $first-embedded-text-pos, 1), '\')">
+ <xsl:call-template name="get-post-number-format-text">
+ <xsl:with-param name="adapted-number-format-unit" select="concat( substring-before( $adapted-number-format-unit, '\'), substring( $adapted-number-format-unit, $first-embedded-text-pos + 2) )"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( substring( $adapted-number-format-unit, $first-embedded-text-pos, 1), '_')">
+ <xsl:call-template name="get-post-number-format-text">
+ <xsl:with-param name="adapted-number-format-unit" select="concat( substring-before( $adapted-number-format-unit, '_'), substring( $adapted-number-format-unit, $first-embedded-text-pos + 2) )"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( substring( $adapted-number-format-unit, $first-embedded-text-pos, 1), '*')">
+ <xsl:call-template name="get-post-number-format-text">
+ <xsl:with-param name="adapted-number-format-unit" select="concat( substring-before( $adapted-number-format-unit, '*'), substring( $adapted-number-format-unit, $first-embedded-text-pos + 2) )"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( substring( $adapted-number-format-unit, $first-embedded-text-pos, 1), '&quot;')">
+ <xsl:call-template name="get-post-number-format-text">
+ <xsl:with-param name="adapted-number-format-unit" select="concat( substring-before( $adapted-number-format-unit, '&quot;'), substring-after( substring-after( $adapted-number-format-unit, '&quot;'), '&quot;') )"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="create-number-format-embedded-text">
+ <xsl:param name="adapted-number-format-unit"/>
+ <xsl:param name="valid-number-format-string"/>
+ <xsl:variable name="first-embedded-character-pos">
+ <xsl:choose>
+ <xsl:when test="contains( $adapted-number-format-unit, '\')">
+ <xsl:value-of select="string-length( substring-before($adapted-number-format-unit, '\') ) + 1"/>
+ </xsl:when>
+ <xsl:when test="contains( $adapted-number-format-unit, '_')">
+ <xsl:value-of select="string-length( substring-before($adapted-number-format-unit, '_') ) + 1"/>
+ </xsl:when>
+ <xsl:when test="contains( $adapted-number-format-unit, '*')">
+ <xsl:value-of select="string-length( substring-before($adapted-number-format-unit, '*') ) + 1"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="first-embedded-string-pos">
+ <xsl:choose>
+ <xsl:when test="contains( $adapted-number-format-unit, '&quot;')">
+ <xsl:value-of select="string-length( substring-before($adapted-number-format-unit, '&quot;') ) + 1"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="first-embedded-text-pos">
+ <xsl:choose>
+ <xsl:when test="$first-embedded-character-pos &lt; $first-embedded-string-pos and $first-embedded-character-pos &gt; 0">
+ <xsl:value-of select="$first-embedded-character-pos"/>
+ </xsl:when>
+ <xsl:when test="$first-embedded-character-pos &lt; $first-embedded-string-pos and $first-embedded-character-pos = 0">
+ <xsl:value-of select="$first-embedded-string-pos"/>
+ </xsl:when>
+ <xsl:when test="$first-embedded-character-pos &gt; $first-embedded-string-pos and $first-embedded-string-pos &gt; 0">
+ <xsl:value-of select="$first-embedded-string-pos"/>
+ </xsl:when>
+ <xsl:when test="$first-embedded-character-pos &gt; $first-embedded-string-pos and $first-embedded-string-pos = 0">
+ <xsl:value-of select="$first-embedded-character-pos"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$first-embedded-text-pos &gt; 0 and $first-embedded-text-pos &lt; string-length( $valid-number-format-string )">
+ <xsl:variable name="text-pos">
+ <xsl:choose>
+ <xsl:when test="contains( $valid-number-format-string, '.')">
+ <xsl:variable name="right-text-pos" select="substring( substring-before( $valid-number-format-string, '.'), $first-embedded-text-pos)"/>
+ <xsl:value-of select="string-length($right-text-pos) - string-length( translate( $right-text-pos, '0#?', '') )"/>
+ </xsl:when>
+ <xsl:when test="contains( $valid-number-format-string, '/')">
+ <xsl:variable name="right-text-pos" select="substring( substring-before( $valid-number-format-string, '/'), $first-embedded-text-pos)"/>
+ <xsl:value-of select="string-length($right-text-pos) - string-length( translate( $right-text-pos, '0#?', '') )"/>
+ </xsl:when>
+ <xsl:when test="contains( $valid-number-format-string, '%')">
+ <xsl:variable name="right-text-pos" select="substring( substring-before( $valid-number-format-string, '%'), $first-embedded-text-pos)"/>
+ <xsl:value-of select="string-length($right-text-pos) - string-length( translate( $right-text-pos, '0#?', '') )"/>
+ </xsl:when>
+ <xsl:when test="contains( $valid-number-format-string, 'E')">
+ <xsl:variable name="right-text-pos" select="substring( substring-before( $valid-number-format-string, 'E'), $first-embedded-text-pos)"/>
+ <xsl:value-of select="string-length($right-text-pos) - string-length( translate( $right-text-pos, '0#?', '') )"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="right-text-pos" select="substring( $valid-number-format-string, $first-embedded-text-pos)"/>
+ <xsl:value-of select="string-length($right-text-pos) - string-length( translate( $right-text-pos, '0#?', '') )"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="starts-with( substring( $adapted-number-format-unit, $first-embedded-text-pos, 1), '\')">
+ <number:embedded-text number:position="{$text-pos}">
+ <xsl:value-of select="substring( $adapted-number-format-unit, $first-embedded-text-pos + 1, 1)"/>
+ </number:embedded-text>
+ <xsl:call-template name="create-number-format-embedded-text">
+ <xsl:with-param name="adapted-number-format-unit" select="concat( substring-before( $adapted-number-format-unit, '\'), substring( $adapted-number-format-unit, $first-embedded-text-pos + 2) )"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( substring( $adapted-number-format-unit, $first-embedded-text-pos, 1), '_')">
+ <number:embedded-text number:position="{$text-pos}">
+ <xsl:value-of select="substring( $adapted-number-format-unit, $first-embedded-text-pos + 1, 1)"/>
+ </number:embedded-text>
+ <xsl:call-template name="create-number-format-embedded-text">
+ <xsl:with-param name="adapted-number-format-unit" select="concat( substring-before( $adapted-number-format-unit, '_'), substring( $adapted-number-format-unit, $first-embedded-text-pos + 2) )"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( substring( $adapted-number-format-unit, $first-embedded-text-pos, 1), '*')">
+ <number:embedded-text number:position="{$text-pos}">
+ <xsl:value-of select="substring( $adapted-number-format-unit, $first-embedded-text-pos + 1, 1)"/>
+ </number:embedded-text>
+ <xsl:call-template name="create-number-format-embedded-text">
+ <xsl:with-param name="adapted-number-format-unit" select="concat( substring-before( $adapted-number-format-unit, '*'), substring( $adapted-number-format-unit, $first-embedded-text-pos + 2) )"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with( substring( $adapted-number-format-unit, $first-embedded-text-pos, 1), '&quot;')">
+ <number:embedded-text number:position="{$text-pos}">
+ <xsl:value-of select="substring-before( substring( $adapted-number-format-unit, $first-embedded-text-pos + 1), '&quot;')"/>
+ </number:embedded-text>
+ <xsl:call-template name="create-number-format-embedded-text">
+ <xsl:with-param name="adapted-number-format-unit" select="concat( substring-before( $adapted-number-format-unit, '&quot;'), substring-after( substring-after( $adapted-number-format-unit, '&quot;'), '&quot;') )"/>
+ <xsl:with-param name="valid-number-format-string" select="$valid-number-format-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="create-master-styles">
+ <xsl:param name="worksheetoptions"/>
+ <xsl:for-each select="$worksheetoptions">
+ <xsl:element name="style:master-page">
+ <xsl:attribute name="style:name">
+ <xsl:call-template name="encode-as-nc-name">
+ <xsl:with-param name="string" select="concat( 'TAB_', ../@ss:Name)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="style:display-name">
+ <xsl:value-of select="concat( 'PageStyle_', ../@ss:Name)"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:page-layout-name">
+ <xsl:call-template name="encode-as-nc-name">
+ <xsl:with-param name="string" select="concat( 'pm_', ../@ss:Name)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="x:PageSetup/x:Header/@x:Data">
+ <style:header>
+ <xsl:call-template name="translate-header-footer">
+ <xsl:with-param name="content" select="x:PageSetup/x:Header/@x:Data"/>
+ <xsl:with-param name="style-name-header" select="concat(../@ss:Name, substring(name(x:PageSetup/x:Header),1,1))"/>
+ </xsl:call-template>
+ </style:header>
+ </xsl:when>
+ <xsl:otherwise>
+ <style:header style:display="false"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="x:PageSetup/x:Footer/@x:Data">
+ <style:footer>
+ <xsl:call-template name="translate-header-footer">
+ <xsl:with-param name="content" select="x:PageSetup/x:Footer/@x:Data"/>
+ <xsl:with-param name="style-name-header" select="concat(../@ss:Name, substring(name(x:PageSetup/x:Footer),1,1))"/>
+ </xsl:call-template>
+ </style:footer>
+ </xsl:when>
+ <xsl:otherwise>
+ <style:footer style:display="false"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="translate-header-footer">
+ <xsl:param name="content"/>
+ <xsl:param name="style-name-header"/>
+ <style:region-left>
+ <text:p>
+ <xsl:variable name="left-content">
+ <xsl:call-template name="get-pos-content">
+ <xsl:with-param name="content" select="$content"/>
+ <xsl:with-param name="pos" select="'left'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="locate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="$left-content"/>
+ <xsl:with-param name="style-name-header" select="concat($style-name-header,'L')"/>
+ <xsl:with-param name="index" select="0"/>
+ <xsl:with-param name="current-pos" select="1"/>
+ </xsl:call-template>
+ </text:p>
+ </style:region-left>
+ <style:region-center>
+ <text:p>
+ <xsl:variable name="center-content">
+ <xsl:call-template name="get-pos-content">
+ <xsl:with-param name="content" select="$content"/>
+ <xsl:with-param name="pos" select="'center'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="locate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="$center-content"/>
+ <xsl:with-param name="style-name-header" select="concat($style-name-header,'C')"/>
+ <xsl:with-param name="index" select="0"/>
+ <xsl:with-param name="current-pos" select="1"/>
+ </xsl:call-template>
+ </text:p>
+ </style:region-center>
+ <style:region-right>
+ <text:p>
+ <xsl:variable name="right-content">
+ <xsl:call-template name="get-pos-content">
+ <xsl:with-param name="content" select="$content"/>
+ <xsl:with-param name="pos" select="'right'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="locate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="$right-content"/>
+ <xsl:with-param name="style-name-header" select="concat($style-name-header,'R')"/>
+ <xsl:with-param name="index" select="0"/>
+ <xsl:with-param name="current-pos" select="1"/>
+ </xsl:call-template>
+ </text:p>
+ </style:region-right>
+ </xsl:template>
+ <xsl:template name="locate-header-footer-data">
+ <xsl:param name="header-footer-data"/>
+ <xsl:param name="style-name-header"/>
+ <xsl:param name="index"/>
+ <xsl:param name="current-pos"/>
+ <xsl:variable name="current-style-data">
+ <xsl:value-of select="substring($header-footer-data,$current-pos)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="starts-with($current-style-data,'&amp;X') or starts-with($current-style-data,'&amp;Y') or starts-with($current-style-data,'&amp;S') or starts-with($current-style-data,'&amp;U') or starts-with($current-style-data,'&amp;E') or starts-with($current-style-data,'&amp;B')">
+ <xsl:call-template name="locate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="$header-footer-data"/>
+ <xsl:with-param name="style-name-header" select="$style-name-header"/>
+ <xsl:with-param name="index" select="$index"/>
+ <xsl:with-param name="current-pos" select="$current-pos+2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;0') or starts-with($current-style-data,'&amp;1') or starts-with($current-style-data,'&amp;2') or starts-with($current-style-data,'&amp;3') or starts-with($current-style-data,'&amp;4') or starts-with($current-style-data,'&amp;5') or starts-with($current-style-data,'&amp;6') or starts-with($current-style-data,'&amp;7') or starts-with($current-style-data,'&amp;8') or starts-with($current-style-data,'&amp;9')">
+ <xsl:variable name="font-size-length">
+ <xsl:call-template name="get-digit-length">
+ <xsl:with-param name="complexive-string" select="substring-after($current-style-data,'&amp;')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="locate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="$header-footer-data"/>
+ <xsl:with-param name="style-name-header" select="$style-name-header"/>
+ <xsl:with-param name="index" select="$index"/>
+ <xsl:with-param name="current-pos" select="$current-pos+1+$font-size-length"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;&quot;')">
+ <xsl:call-template name="locate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="$header-footer-data"/>
+ <xsl:with-param name="style-name-header" select="$style-name-header"/>
+ <xsl:with-param name="index" select="$index"/>
+ <xsl:with-param name="current-pos" select="string-length(substring-before(substring($header-footer-data,$current-pos+2),'&quot;'))+$current-pos+3"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="current-content-last-pos">
+ <xsl:call-template name="get-current-content-last-pos">
+ <xsl:with-param name="style-data" select="$header-footer-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$current-pos &gt; 1">
+ <text:span text:style-name="{concat($style-name-header,$index)}">
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring($header-footer-data,$current-pos,$current-content-last-pos+1-$current-pos)"/>
+ </xsl:call-template>
+ </text:span>
+ <xsl:if test="$current-content-last-pos &lt; string-length($header-footer-data)">
+ <xsl:call-template name="locate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="$header-footer-data"/>
+ <xsl:with-param name="style-name-header" select="$style-name-header"/>
+ <xsl:with-param name="index" select="$index+1"/>
+ <xsl:with-param name="current-pos" select="$current-content-last-pos+1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring($header-footer-data,$current-pos,$current-content-last-pos+1-$current-pos)"/>
+ </xsl:call-template>
+ <xsl:if test="$current-content-last-pos &lt; string-length($header-footer-data)">
+ <xsl:call-template name="locate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="$header-footer-data"/>
+ <xsl:with-param name="style-name-header" select="$style-name-header"/>
+ <xsl:with-param name="index" select="$index"/>
+ <xsl:with-param name="current-pos" select="$current-content-last-pos+1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-current-content-last-pos">
+ <xsl:param name="style-data"/>
+ <xsl:param name="current-pos"/>
+ <xsl:variable name="current-style-data">
+ <xsl:value-of select="substring($style-data,$current-pos)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="starts-with($current-style-data,'&amp;&quot;') or starts-with($current-style-data,'&amp;X') or starts-with($current-style-data,'&amp;Y') or starts-with($current-style-data,'&amp;S') or starts-with($current-style-data,'&amp;U') or starts-with($current-style-data,'&amp;E') or starts-with($current-style-data,'&amp;B')or starts-with($current-style-data,'&amp;0') or starts-with($current-style-data,'&amp;1') or starts-with($current-style-data,'&amp;2') or starts-with($current-style-data,'&amp;3') or starts-with($current-style-data,'&amp;4') or starts-with($current-style-data,'&amp;5') or starts-with($current-style-data,'&amp;6') or starts-with($current-style-data,'&amp;7') or starts-with($current-style-data,'&amp;8') or starts-with($current-style-data,'&amp;9')">
+ <xsl:value-of select="$current-pos - 1"/>
+ </xsl:when>
+ <xsl:when test="contains($current-style-data,'&amp;&quot;') or contains($current-style-data,'&amp;X') or contains($current-style-data,'&amp;Y') or contains($current-style-data,'&amp;S') or contains($current-style-data,'&amp;U') or contains($current-style-data,'&amp;E') or contains($current-style-data,'&amp;B')or contains($current-style-data,'&amp;0') or contains($current-style-data,'&amp;1') or contains($current-style-data,'&amp;2') or contains($current-style-data,'&amp;3') or contains($current-style-data,'&amp;4') or contains($current-style-data,'&amp;5') or contains($current-style-data,'&amp;6') or contains($current-style-data,'&amp;7') or contains($current-style-data,'&amp;8') or contains($current-style-data,'&amp;9')">
+ <xsl:variable name="temp" select="substring-before(substring($current-style-data,2),'&amp;')"/>
+ <xsl:variable name="next-amp-pos">
+ <xsl:value-of select="$current-pos+string-length($temp)+1"/>
+ </xsl:variable>
+ <xsl:call-template name="get-current-content-last-pos">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$next-amp-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="string-length($style-data)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="translate-header-footer-data">
+ <xsl:param name="header-footer-data"/>
+ <xsl:choose>
+ <xsl:when test="contains( $header-footer-data, '&amp;D')">
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-before( $header-footer-data, '&amp;D')"/>
+ </xsl:call-template>
+ <text:date/>
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-after( $header-footer-data, '&amp;D')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains( $header-footer-data, '&amp;T')">
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-before( $header-footer-data, '&amp;T')"/>
+ </xsl:call-template>
+ <text:time/>
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-after( $header-footer-data, '&amp;T')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains( $header-footer-data, '&amp;P')">
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-before( $header-footer-data, '&amp;P')"/>
+ </xsl:call-template>
+ <text:page-number/>
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-after( $header-footer-data, '&amp;P')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains( $header-footer-data, '&amp;N')">
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-before( $header-footer-data, '&amp;N')"/>
+ </xsl:call-template>
+ <text:page-count/>
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-after( $header-footer-data, '&amp;N')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains( $header-footer-data, '&amp;A')">
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-before( $header-footer-data, '&amp;A')"/>
+ </xsl:call-template>
+ <text:sheet-name/>
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-after( $header-footer-data, '&amp;A')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains( $header-footer-data, '&amp;Z&amp;F')">
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-before( $header-footer-data, '&amp;Z&amp;F')"/>
+ </xsl:call-template>
+ <text:file-name text:display="full"/>
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-after( $header-footer-data, '&amp;Z&amp;F')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains( $header-footer-data, '&amp;Z')">
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-before( $header-footer-data, '&amp;Z')"/>
+ </xsl:call-template>
+ <text:file-name text:display="path"/>
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-after( $header-footer-data, '&amp;Z')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains( $header-footer-data, '&amp;F')">
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-before( $header-footer-data, '&amp;F')"/>
+ </xsl:call-template>
+ <text:file-name text:display="name"/>
+ <xsl:call-template name="translate-header-footer-data">
+ <xsl:with-param name="header-footer-data" select="substring-after( $header-footer-data, '&amp;F')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$header-footer-data"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="create-page-master">
+ <xsl:param name="worksheetoptions"/>
+ <xsl:for-each select="$worksheetoptions">
+ <xsl:element name="style:page-layout">
+ <xsl:attribute name="style:name">
+ <xsl:call-template name="encode-as-nc-name">
+ <xsl:with-param name="string" select="concat( 'pm_', ../@ss:Name)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:element name="style:page-layout-properties">
+ <xsl:choose>
+ <xsl:when test="x:PageSetup/x:Layout/@x:Orientation = 'Landscape'">
+ <xsl:attribute name="style:print-orientation">landscape</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:print-orientation">portrait</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="x:PageSetup/x:Layout/@x:StartPageNumber">
+ <xsl:attribute name="style:first-page-number">
+ <xsl:value-of select="x:PageSetup/x:Layout/@x:StartPageNumber"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:first-page-number">continue</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="x:PageSetup/x:PageMargins">
+ <xsl:attribute name="fo:margin-top">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(x:PageSetup/x:PageMargins/@x:Top,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="fo:margin-bottom">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(x:PageSetup/x:PageMargins/@x:Bottom,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="fo:margin-left">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(x:PageSetup/x:PageMargins/@x:Left,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="fo:margin-right">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(x:PageSetup/x:PageMargins/@x:Right,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="x:PageSetup/x:Header">
+ <style:header-style>
+ <xsl:element name="style:header-footer-properties">
+ <xsl:attribute name="fo:min-height">0.75cm</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="x:PageSetup/x:Header/@x:Margin">
+ <xsl:attribute name="fo:margin-bottom">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(x:PageSetup/x:Header/@x:Margin,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:margin-bottom">0.25cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </style:header-style>
+ </xsl:if>
+ <xsl:if test="x:PageSetup/x:Footer">
+ <style:footer-style>
+ <xsl:element name="style:header-footer-properties">
+ <xsl:attribute name="fo:min-height">0.75cm</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="x:PageSetup/x:Footer/@x:Margin">
+ <xsl:attribute name="fo:margin-top">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(x:PageSetup/x:Footer/@x:Margin,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:margin-top">0.25cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </style:footer-style>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="ss:Style" name="style-style-content" mode="style-style-content">
+ <xsl:element name="style:table-cell-properties">
+ <xsl:if test="ss:Alignment">
+ <xsl:if test="ss:Alignment/@ss:Vertical">
+ <xsl:variable name="vertical-align">
+ <xsl:choose>
+ <xsl:when test="ss:Alignment/@ss:Vertical = 'Top'">top</xsl:when>
+ <xsl:when test="ss:Alignment/@ss:Vertical = 'Center'">middle</xsl:when>
+ <xsl:when test="ss:Alignment/@ss:Vertical = 'Bottom'">bottom</xsl:when>
+ <xsl:when test="ss:Alignment/@ss:Vertical = 'Automatic'">middle</xsl:when>
+ <!-- actually for vertical writen characters, not supported by StarOffice/OpenOffice now yet -->
+ <xsl:otherwise>middle</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:vertical-align">
+ <xsl:value-of select="$vertical-align"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ss:Alignment/@ss:WrapText = '1'">
+ <xsl:attribute name="fo:wrap-option">wrap</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ss:Alignment/@ss:Indent">
+ <xsl:attribute name="fo:padding-left"><!-- Indent is ten times of a point -->
+ <xsl:variable name="indent" select="ss:Alignment/@ss:Indent * 10"/>
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat($indent,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ss:Alignment/@ss:Rotate">
+ <xsl:attribute name="style:rotation-angle">
+ <xsl:choose>
+ <xsl:when test="ss:Alignment/@ss:Rotate &lt; 0">
+ <xsl:value-of select="360 + ss:Alignment/@ss:Rotate"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="ss:Alignment/@ss:Rotate"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="style:rotation-align">none</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ss:Alignment/@ss:VerticalText = '1'">
+ <xsl:attribute name="style:direction">ttb</xsl:attribute>
+ <!-- The horizontal align default for vertical text in Excel is 'center' -->
+ <xsl:if test="not(ss:Alignment/@ss:Horizontal)">
+ <!-- OASIS XML removal
+ <xsl:attribute name="fo:text-align">center</xsl:attribute>-->
+ <xsl:attribute name="style:text-align-source">fix</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ss:Borders">
+ <xsl:if test="ss:Borders/ss:Border">
+ <xsl:apply-templates select="ss:Borders/ss:Border"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates select="ss:Interior" mode="style-style-content"/>
+ <xsl:if test="ss:Protection">
+ <xsl:choose>
+ <xsl:when test="ss:Protection/@ss:Protected = '0'">
+ <xsl:choose>
+ <xsl:when test="ss:Protection/@ss:HideFormula = '1'">
+ <xsl:attribute name="style:cell-protect">hidden-and-protected</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:cell-protect">none</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="ss:Protection/@x:HideFormula = '1'">
+ <xsl:attribute name="style:cell-protect">protected formula-hidden</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:cell-protect">none</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <!-- fix means the horizontal alignment is dependent on ss:Horizontal,
+ but set on paragaraph properties not cell paragraphs -->
+ <xsl:if test="ss:Alignment/@ss:Horizontal">
+ <xsl:attribute name="style:text-align-source">fix</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:choose>
+ <xsl:when test="ss:Alignment/@ss:Horizontal">
+ <xsl:element name="style:paragraph-properties">
+ <xsl:variable name="text-align">
+ <xsl:choose>
+ <xsl:when test="ss:Alignment/@ss:Horizontal = 'Left'">start</xsl:when>
+ <xsl:when test="ss:Alignment/@ss:Horizontal = 'Center'">center</xsl:when>
+ <xsl:when test="ss:Alignment/@ss:Horizontal = 'Right'">end</xsl:when>
+ <xsl:when test="ss:Alignment/@ss:Horizontal = 'Justify'">justify</xsl:when>
+ <!-- many other text-align not supported yet -->
+ <xsl:otherwise>start</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="fo:text-align">
+ <xsl:value-of select="$text-align"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- The horizontal align default for vertical text in Excel is 'center' -->
+ <xsl:element name="style:paragraph-properties">
+ <xsl:if test="ss:Alignment/@ss:VerticalText = '1'">
+ <xsl:attribute name="fo:text-align">center</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="ss:Font">
+ <xsl:element name="style:text-properties">
+ <xsl:choose>
+ <xsl:when test="ss:Font/@ss:FontName">
+ <xsl:attribute name="style:font-name">
+ <xsl:value-of select="ss:Font/@ss:FontName"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:font-name-asian">
+ <xsl:value-of select="ss:Font/@ss:FontName"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:font-name-complex">
+ <xsl:value-of select="ss:Font/@ss:FontName"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:font-name">Arial</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- "ss:Font/@x:Family" is useless here, so can't map to "svg:font-family" attribute -->
+ <xsl:if test="ss:Font/@ss:Bold = '1'">
+ <xsl:attribute name="fo:font-weight">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-asian">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-complex">bold</xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="ss:Font/@ss:Color">
+ <xsl:attribute name="fo:color">
+ <xsl:value-of select="ss:Font/@ss:Color"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:use-window-font-color">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="ss:Font/@ss:Italic = '1'">
+ <!-- omit font-style oblique -->
+ <xsl:attribute name="fo:font-style">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-asian">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-complex">italic</xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="ss:Font/@ss:Size">
+ <xsl:attribute name="fo:font-size">
+ <xsl:value-of select="concat( ss:Font/@ss:Size, 'pt')"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:font-size-asian">
+ <xsl:value-of select="concat( ss:Font/@ss:Size, 'pt')"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:font-size-complex">
+ <xsl:value-of select="concat( ss:Font/@ss:Size, 'pt')"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:font-size">10pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian">10pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-complex">10pt</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="ss:Font/@ss:Outline = '1'">
+ <xsl:attribute name="style:text-outline">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ss:Font/@ss:Shadow = '1'">
+ <!-- Not in DTD nor in docu <xsl:attribute name="style:text-shadow">shadow</xsl:attribute> -->
+ <xsl:attribute name="fo:text-shadow">1pt 1pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ss:Font/@ss:StrikeThrough = '1'">
+ <xsl:attribute name="style:text-line-through-style">solid</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ss:Font/@ss:Underline">
+ <xsl:choose>
+ <xsl:when test="ss:Font/@ss:Underline = 'None'">
+ <xsl:attribute name="style:text-underline-type">none</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="ss:Font/@ss:Underline = 'Single'">
+ <xsl:attribute name="style:text-underline-type">single</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="ss:Font/@ss:Underline = 'Double'">
+ <xsl:attribute name="style:text-underline-type">double</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="ss:Font/@ss:Underline = 'SingleAccounting'">
+ <xsl:attribute name="style:text-underline-type">single</xsl:attribute>"</xsl:when>
+ <xsl:when test="ss:Font/@ss:Underline = 'DoubleAccounting'">
+ <xsl:attribute name="style:text-underline-type">double</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:text-underline-type">none</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="ss:Font/@x:Charset">
+ <!-- quite unclear till now, -->
+ <xsl:attribute name="style:font-charset">x-symbol</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="ss:Interior" mode="style-style-content">
+ <xsl:choose>
+ <xsl:when test="@ss:Pattern = 'Solid'">
+ <xsl:if test="@ss:Color">
+ <xsl:attribute name="fo:background-color">
+ <xsl:value-of select="@ss:Color"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="@ss:PatternColor">
+ <xsl:variable name="pattern-value">
+ <xsl:call-template name="cell-pattern-color">
+ <xsl:with-param name="pattern" select="concat('0.',substring-after(@ss:Pattern,'y'))"/>
+ <xsl:with-param name="color-value" select="@ss:Color"/>
+ <xsl:with-param name="pattern-color-value" select="@ss:PatternColor"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="fo:background-color">
+ <xsl:value-of select="$pattern-value"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+
+ <xsl:template match="ss:Style">
+ <!-- style:default-style is meant for application defaults
+ <xsl:when test="@ss:ID = 'Default'">
+ <xsl:element name="style:default-style">
+ <xsl:call-template name="style-style-content" />
+ </xsl:element>
+ </xsl:when> -->
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">
+ <xsl:value-of select="@ss:ID"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="@ss:Name" />
+ <xsl:choose>
+ <xsl:when test="@ss:Parent">
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:value-of select="@ss:Parent"/>
+ </xsl:attribute>
+ </xsl:when>
+ <!-- no parent, but automatic style are automatically inheriting from a style called 'Default'
+ not necessary named style -->
+ <xsl:when test="not(key('Style', @ss:ID)/@ss:Name)">
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:text>Default</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="ss:NumberFormat/@ss:Format">
+ <xsl:attribute name="style:data-style-name">
+ <xsl:value-of select="concat( @ss:ID, 'F')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style:family">table-cell</xsl:attribute>
+ <xsl:call-template name="style-style-content"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="cell-pattern-color">
+ <!-- generates a new color from cell-pattern-color -->
+ <xsl:param name="pattern"/>
+ <xsl:param name="color-value"/>
+ <xsl:param name="pattern-color-value"/>
+ <xsl:variable name="rev-pattern" select="1 - $pattern"/>
+ <xsl:variable name="color-R-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($color-value,2,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="color-G-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($color-value,4,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="color-B-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($color-value,6,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="pattern-R-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($pattern-color-value,2,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="pattern-G-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($pattern-color-value,4,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="pattern-B-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($pattern-color-value,6,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="R-value">
+ <xsl:variable name="combined-R-value">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="floor($color-R-value * $rev-pattern + $pattern-R-value * $pattern)"/>
+ <xsl:with-param name="last-value" select="'H'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($combined-R-value) = 1">
+ <xsl:value-of select="concat('0',$combined-R-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$combined-R-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="G-value">
+ <xsl:variable name="combined-G-value">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="floor($color-G-value * $rev-pattern + $pattern-G-value * $pattern)"/>
+ <xsl:with-param name="last-value" select="'H'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($combined-G-value) = 1">
+ <xsl:value-of select="concat('0',$combined-G-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$combined-G-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="B-value">
+ <xsl:variable name="combined-B-value">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="floor($color-B-value * $rev-pattern + $pattern-B-value * $pattern)"/>
+ <xsl:with-param name="last-value" select="'H'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($combined-B-value) = 1">
+ <xsl:value-of select="concat('0',$combined-B-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$combined-B-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat('#',$R-value,$G-value,$B-value)"/>
+ </xsl:template>
+ <xsl:template name="colorindex2decimal">
+ <xsl:param name="colorindex"/>
+ <xsl:variable name="colorIndexLookup">
+ <xsl:value-of select="$colorindex - 8"/>
+ </xsl:variable>
+ <xsl:variable name="tempColorValue">
+ <xsl:choose>
+ <!-- Grab the color from the custom color index if it exists... -->
+ <xsl:when test="/ss:Workbook/o:OfficeDocumentSettings/o:Colors/o:Color/o:Index=$colorIndexLookup">
+ <xsl:value-of select="substring-after(normalize-space(/ss:Workbook/o:OfficeDocumentSettings/o:Colors/o:Color/o:RGB[/ss:Workbook/o:OfficeDocumentSettings/o:Colors/o:Color/o:Index=$colorIndexLookup]), '#')"/>
+ </xsl:when >
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$colorindex=8">
+ <xsl:value-of select="'000000'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=9">
+ <xsl:value-of select="'FFFFFF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=10">
+ <xsl:value-of select="'FF0000'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=11">
+ <xsl:value-of select="'00FF00'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=12">
+ <xsl:value-of select="'0000FF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=13">
+ <xsl:value-of select="'FFFF00'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=14">
+ <xsl:value-of select="'FF00FF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=15">
+ <xsl:value-of select="'00FFFF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=16">
+ <xsl:value-of select="'800000'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=17">
+ <xsl:value-of select="'008000'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=18">
+ <xsl:value-of select="'000080'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=19">
+ <xsl:value-of select="'808000'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=20">
+ <xsl:value-of select="'800080'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=21">
+ <xsl:value-of select="'008080'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=22">
+ <xsl:value-of select="'C0C0C0'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=23">
+ <xsl:value-of select="'808080'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=24">
+ <xsl:value-of select="'9999FF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=25">
+ <xsl:value-of select="'993366'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=26">
+ <xsl:value-of select="'FFFFCC'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=27">
+ <xsl:value-of select="'CCFFFF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=28">
+ <xsl:value-of select="'660066'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=29">
+ <xsl:value-of select="'FF8080'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=30">
+ <xsl:value-of select="'0066CC'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=31">
+ <xsl:value-of select="'CCCCFF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=32">
+ <xsl:value-of select="'000080'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=33">
+ <xsl:value-of select="'FF00FF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=34">
+ <xsl:value-of select="'FFFF00'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=35">
+ <xsl:value-of select="'00FFFF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=36">
+ <xsl:value-of select="'800080'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=37">
+ <xsl:value-of select="'800000'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=38">
+ <xsl:value-of select="'008080'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=39">
+ <xsl:value-of select="'0000FF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=40">
+ <xsl:value-of select="'00CCFF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=41">
+ <xsl:value-of select="'CCFFFF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=42">
+ <xsl:value-of select="'CCFFCC'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=43">
+ <xsl:value-of select="'FFFF99'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=44">
+ <xsl:value-of select="'99CCFF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=45">
+ <xsl:value-of select="'FF99CC'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=46">
+ <xsl:value-of select="'CC99FF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=47">
+ <xsl:value-of select="'FFCC99'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=48">
+ <xsl:value-of select="'3366FF'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=49">
+ <xsl:value-of select="'33CCCC'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=50">
+ <xsl:value-of select="'99CC00'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=51">
+ <xsl:value-of select="'FFCC00'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=52">
+ <xsl:value-of select="'FF9900'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=53">
+ <xsl:value-of select="'FF6600'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=54">
+ <xsl:value-of select="'666699'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=55">
+ <xsl:value-of select="'969696'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=56">
+ <xsl:value-of select="'003366'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=57">
+ <xsl:value-of select="'339966'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=58">
+ <xsl:value-of select="'003300'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=59">
+ <xsl:value-of select="'333300'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=60">
+ <xsl:value-of select="'993300'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=61">
+ <xsl:value-of select="'993366'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=62">
+ <xsl:value-of select="'333399'"/>
+ </xsl:when>
+ <xsl:when test="$colorindex=63">
+ <xsl:value-of select="'333333'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'NOTFOUND'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="tempColorDecimal">
+ <xsl:choose>
+ <xsl:when test="not($tempColorValue = 'NOTFOUND')">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="$tempColorValue"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="6"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="4294967295"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$tempColorDecimal"/>
+ </xsl:template>
+ <xsl:template name="hex2decimal">
+ <!-- transforms a hex number to a decimal number.parses the string from left to right -->
+ <xsl:param name="hex-number"/>
+ <xsl:param name="index"/>
+ <xsl:param name="str-length"/>
+ <xsl:param name="last-value"/>
+ <xsl:variable name="dec-char">
+ <xsl:call-template name="hexNumber2dec">
+ <xsl:with-param name="hex-value" select="substring($hex-number, $index ,1)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="current-value" select="$last-value * 16 + $dec-char"/>
+ <xsl:if test="$index &lt; $str-length">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="$hex-number"/>
+ <xsl:with-param name="index" select="$index + 1"/>
+ <xsl:with-param name="str-length" select="$str-length"/>
+ <xsl:with-param name="last-value" select="$current-value"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$index = $str-length">
+ <xsl:value-of select="$current-value"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="hexNumber2dec">
+ <!-- return a decimal number for a hex character -->
+ <xsl:param name="hex-value"/>
+ <xsl:choose>
+ <xsl:when test="$hex-value = 'A' or ($hex-value = 'a')">
+ <xsl:value-of select="10"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'B' or ($hex-value = 'b')">
+ <xsl:value-of select="11"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'C' or ($hex-value = 'c')">
+ <xsl:value-of select="12"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'D' or ($hex-value = 'd')">
+ <xsl:value-of select="13"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'E' or ($hex-value = 'e')">
+ <xsl:value-of select="14"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'F' or ($hex-value = 'f')">
+ <xsl:value-of select="15"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$hex-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="decimal2hex">
+ <!-- transforms a decimal number to a hex number,only for two-bit hex(less than 256 in decimal) currently -->
+ <xsl:param name="dec-number"/>
+ <xsl:param name="last-value"/>
+ <xsl:variable name="current-value">
+ <xsl:call-template name="decNumber2hex">
+ <xsl:with-param name="dec-value">
+ <xsl:if test="$dec-number &gt; 15">
+ <xsl:value-of select="floor($dec-number div 16)"/>
+ </xsl:if>
+ <xsl:if test="$dec-number &lt; 16">
+ <xsl:value-of select="$dec-number"/>
+ </xsl:if>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$dec-number &gt; 15">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="$dec-number mod 16"/>
+ <xsl:with-param name="last-value" select="concat($last-value,$current-value)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$dec-number &lt; 16">
+ <xsl:value-of select="substring-after(concat($last-value,$current-value),'H')"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="decNumber2hex">
+ <!-- return a hex number for a decimal character -->
+ <xsl:param name="dec-value"/>
+ <xsl:choose>
+ <xsl:when test="$dec-value = 10">
+ <xsl:value-of select="'A'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 11">
+ <xsl:value-of select="'B'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 12">
+ <xsl:value-of select="'C'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 13">
+ <xsl:value-of select="'D'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 14">
+ <xsl:value-of select="'E'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 15">
+ <xsl:value-of select="'F'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$dec-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="ss:Border">
+ <xsl:variable name="position">
+ <xsl:choose>
+ <xsl:when test="@ss:Position = 'Top'">fo:border-top</xsl:when>
+ <xsl:when test="@ss:Position = 'Bottom'">fo:border-bottom</xsl:when>
+ <xsl:when test="@ss:Position = 'Left'">fo:border-left</xsl:when>
+ <xsl:when test="@ss:Position = 'Right'">fo:border-right</xsl:when>
+ <!-- DiagonalLeft & DiagonalRight are not supported yet, -->
+ <xsl:otherwise>fo:border-left</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="width">
+ <xsl:choose>
+ <!-- 0: Hairline -->
+ <xsl:when test="@ss:Weight = '0'">0.002cm</xsl:when>
+ <!-- 1: Thin -->
+ <xsl:when test="@ss:Weight = '1'">0.035cm</xsl:when>
+ <!-- 2: Medium -->
+ <xsl:when test="@ss:Weight = '2'">0.088cm</xsl:when>
+ <!-- 3: Thick -->
+ <xsl:when test="@ss:Weight = '3'">
+ <xsl:choose>
+ <xsl:when test="@ss:LineStyle = 'Double'">0.105cm</xsl:when>
+ <xsl:otherwise>0.141cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <!-- invalid value, or parameter not exist at all -->
+ <xsl:otherwise>0.002cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="linestyle">
+ <xsl:choose>
+ <xsl:when test="@ss:LineStyle = 'None'">none</xsl:when>
+ <xsl:when test="@ss:LineStyle = 'Continuous'">solid</xsl:when>
+ <xsl:when test="@ss:LineStyle = 'Double'">double</xsl:when>
+ <!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
+ <xsl:otherwise>solid</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="color">
+ <xsl:choose>
+ <xsl:when test="@ss:Color">
+ <xsl:value-of select="@ss:Color"/>
+ </xsl:when>
+ <!-- default border color is black -->
+ <xsl:otherwise>#000000</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="{$position}">
+ <xsl:value-of select="concat( $width, ' ', $linestyle, ' ', $color)"/>
+ </xsl:attribute>
+ <xsl:if test="@ss:LineStyle = 'Double'">
+ <xsl:variable name="widthposition">
+ <xsl:choose>
+ <xsl:when test="@ss:Position = 'Top'">style:border-line-width-top</xsl:when>
+ <xsl:when test="@ss:Position = 'Bottom'">style:border-line-width-bottom</xsl:when>
+ <xsl:when test="@ss:Position = 'Left'">style:border-line-width-left</xsl:when>
+ <xsl:when test="@ss:Position = 'Right'">style:border-line-width-right</xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="{$widthposition}">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="ss:Font">
+ <xsl:choose>
+ <xsl:when test="@ss:VerticalAlign = 'Superscript'">
+ <style:style style:name="{concat(../@ss:ID,'T0')}" style:family="text">
+ <style:text-properties style:text-position="33% 58%"/>
+ </style:style>
+ </xsl:when>
+ <xsl:when test="@ss:VerticalAlign = 'Subscript'">
+ <style:style style:name="{concat(../@ss:ID,'T0')}" style:family="text">
+ <style:text-properties style:text-position="-33% 58%"/>
+ </style:style>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="ss:Table">
+ <xsl:variable name="default-column-width">
+ <xsl:choose>
+ <xsl:when test="@ss:DefaultColumnWidth">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(@ss:DefaultColumnWidth,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:when>
+ <!-- Note: Specify where this value come from.. -->
+ <xsl:otherwise>2.096cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="table-pos">
+ <xsl:value-of select="count(../preceding-sibling::ss:Worksheet)+1"/>
+ </xsl:variable>
+ <!-- naming convention the default column style is name co<NumberOfSheet> e.g. co1 for the first sheet -->
+ <style:style style:family="table-column" style:name="{concat('co', $table-pos)}">
+ <style:table-column-properties fo:break-before="auto" style:column-width="{$default-column-width}"/>
+ </style:style>
+ <xsl:choose>
+ <xsl:when test="ss:Column">
+ <xsl:call-template name="get-column-style-name">
+ <xsl:with-param name="finishedColumns" select="0"/>
+ <xsl:with-param name="columnCount" select="count(./ss:Column)"/>
+ <xsl:with-param name="currentCount" select="1"/>
+ <xsl:with-param name="table-pos" select="$table-pos"/>
+ <xsl:with-param name="default-column-width" select="$default-column-width"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="../x:PageBreaks/x:ColBreaks">
+ <style:style style:name="{concat('cob',$table-pos)}" style:family="table-column">
+ <xsl:element name="style:table-column-properties">
+ <xsl:attribute name="style:column-width">
+ <xsl:value-of select="$default-column-width"/>
+ </xsl:attribute>
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:element>
+ </style:style>
+ </xsl:if>
+ <xsl:variable name="default-row-height">
+ <xsl:choose>
+ <xsl:when test="@ss:DefaultRowHeight">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(@ss:DefaultRowHeight,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:when>
+ <!-- Note: This is the default row hight value in spec it is written 255 point, this seems wrong -->
+ <!-- <xsl:otherwise>0.503cm</xsl:otherwise> -->
+ <xsl:otherwise>0.45cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <style:style style:family="table-row" style:name="{concat('ro', $table-pos)}">
+ <style:table-row-properties style:row-height="{$default-row-height}" style:use-optimal-row-height="false"/>
+ </style:style>
+ <xsl:if test="ss:Row">
+ <xsl:call-template name="get-row-style-name">
+ <xsl:with-param name="earlierRowNo" select="0"/>
+ <xsl:with-param name="rowNodeCount" select="count(./ss:Row)"/>
+ <xsl:with-param name="rowNodeIndex" select="1"/>
+ <xsl:with-param name="table-pos" select="$table-pos"/>
+ <xsl:with-param name="default-row-height" select="$default-row-height"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="../x:PageBreaks/x:RowBreaks">
+ <style:style style:name="{concat('rob',$table-pos)}" style:family="table-row">
+ <xsl:element name="style:table-row-properties">
+ <xsl:attribute name="style:row-height">
+ <xsl:value-of select="$default-row-height"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:element>
+ </style:style>
+ </xsl:if>
+ <!-- create table-style -->
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">
+ <xsl:value-of select="concat( 'ta', $table-pos)"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">table</xsl:attribute>
+ <!-- ss:Name have to be from type 'NCNameChar' ::= Letter | Digit | '.' | '-' | '_' | CombiningChar | Extender -->
+ <xsl:attribute name="style:master-page-name">
+ <xsl:call-template name="encode-as-nc-name">
+ <xsl:with-param name="string" select="../@ss:Name"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:element name="style:table-properties">
+ <xsl:choose>
+ <xsl:when test="../x:WorksheetOptions/x:Visible = 'SheetHidden'">
+ <xsl:attribute name="table:display">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:display">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="get-column-style-name">
+ <!-- generate stylename of colbreak after matching the column number and the colbreak number -->
+ <xsl:param name="finishedColumns"/>
+ <xsl:param name="columnCount"/>
+ <xsl:param name="currentCount"/>
+ <xsl:param name="table-pos"/>
+ <xsl:param name="default-column-width"/>
+ <xsl:if test="$currentCount &lt; ($columnCount + 1)">
+ <xsl:variable name="span-value">
+ <xsl:choose>
+ <xsl:when test="./ss:Column[position() = $currentCount]/@ss:Span">
+ <xsl:value-of select="./ss:Column[position() = $currentCount]/@ss:Span + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="current-index">
+ <xsl:choose>
+ <xsl:when test="./ss:Column[position() = $currentCount]/@ss:Index">
+ <xsl:value-of select="./ss:Column[position() = $currentCount]/@ss:Index - 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$finishedColumns"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="column-break">
+ <xsl:choose>
+ <xsl:when test="$span-value = 0">
+ <xsl:if test="../x:PageBreaks/x:ColBreaks/x:ColBreak/x:Column = $current-index">
+ <xsl:value-of select="1"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="../x:PageBreaks/x:ColBreaks[(x:ColBreak/x:Column &gt; $finishedColumns) and (x:ColBreak/x:Column &lt; ($finishedColumns + $span-value))]">
+ <xsl:value-of select="1"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$column-break = 1">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">
+ <xsl:call-template name="encode-as-nc-name">
+ <xsl:with-param name="string" select="concat('cob', $table-pos, '-',$currentCount)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">table-column</xsl:attribute>
+ <xsl:element name="style:table-column-properties">
+ <xsl:choose>
+ <xsl:when test="./ss:Column[position() = $currentCount]/@ss:Width">
+ <xsl:attribute name="style:column-width">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(./ss:Column[position() = $currentCount]/@ss:Width,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:column-width">
+ <xsl:value-of select="$default-column-width"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="./ss:Column[position() = $currentCount]/@ss:AutoFitWidth = '0'">
+ <xsl:attribute name="style:use-optimal-column-width">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./ss:Column[position() = $currentCount]/@ss:Width &gt; 0">
+ <xsl:attribute name="style:use-optimal-column-width">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:use-optimal-column-width">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ <style:style style:name="{concat('co', $table-pos, '-',$currentCount)}" style:family="table-column">
+ <xsl:element name="style:table-column-properties">
+ <xsl:choose>
+ <xsl:when test="./ss:Column[position() = $currentCount]/@ss:Width">
+ <xsl:attribute name="style:column-width">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(./ss:Column[position() = $currentCount]/@ss:Width,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:column-width">
+ <xsl:value-of select="$default-column-width"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:break-before">auto</xsl:attribute>
+ </xsl:element>
+ </style:style>
+ <xsl:if test="$currentCount &lt; $columnCount">
+ <xsl:call-template name="get-column-style-name">
+ <xsl:with-param name="finishedColumns">
+ <xsl:choose>
+ <xsl:when test="./ss:Column[position() = $currentCount]/@ss:Index">
+ <xsl:choose>
+ <xsl:when test="./ss:Column[position() = $currentCount]/@ss:Span">
+ <xsl:value-of select="./ss:Column[position() = $currentCount]/@ss:Index + ./ss:Column[position() = $currentCount]/@ss:Span"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./ss:Column[position() = $currentCount]/@ss:Index"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./ss:Column[position() = $currentCount]/@ss:Span">
+ <xsl:value-of select="$finishedColumns + ./ss:Column[position() = $currentCount]/@ss:Span + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$finishedColumns + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="currentCount" select="$currentCount + 1"/>
+ <xsl:with-param name="table-pos" select="$table-pos"/>
+ <xsl:with-param name="default-column-width" select="$default-column-width"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="get-row-style-name">
+ <!-- generate stylename of rowbreak after matching the row number and the rowbreak number -->
+ <xsl:param name="earlierRowNo"/>
+ <xsl:param name="rowNodeCount"/>
+ <xsl:param name="rowNodeIndex"/>
+ <xsl:param name="table-pos"/>
+ <xsl:param name="default-row-height"/>
+ <xsl:if test="$rowNodeIndex &lt; ($rowNodeCount + 1)">
+ <xsl:variable name="span-value">
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Index">
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Span">
+ <xsl:value-of select="./ss:Row[position() = $rowNodeIndex]/@ss:Index - $earlierRowNo+ ./ss:Row[position() = $rowNodeIndex]/@ss:Span"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Span">
+ <xsl:value-of select="./ss:Row[position() = $rowNodeIndex]/@ss:Span + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="current-index">
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Index">
+ <xsl:value-of select="./ss:Row[position() = $rowNodeIndex]/@ss:Index - 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$earlierRowNo"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="row-break">
+ <xsl:choose>
+ <xsl:when test="$span-value = 0">
+ <xsl:if test="../x:PageBreaks/x:RowBreaks/x:RowBreak/x:Row = $current-index">
+ <xsl:value-of select="1"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="../x:PageBreaks/x:RowBreaks[(x:RowBreak/x:Row &gt; $earlierRowNo) and (x:RowBreak/x:Row &lt; ($earlierRowNo + $span-value))]">
+ <xsl:value-of select="1"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$row-break = 1">
+ <xsl:element name="style:style">
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:StyleID">
+ <xsl:attribute name="style:name"><xsl:value-of select="concat('ro', $table-pos, '-',$rowNodeIndex,'-',ss:Row[position() = $rowNodeIndex]/@ss:StyleID)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:name"><xsl:value-of select="concat('ro', $table-pos, '-',$rowNodeIndex)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="style:family">table-row</xsl:attribute>
+
+
+ <xsl:element name="style:table-row-properties">
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Height">
+ <xsl:attribute name="style:row-height">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(./ss:Row[position() = $rowNodeIndex]/@ss:Height,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:row-height">
+ <xsl:value-of select="$default-row-height"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:AutoFitHeight = '0'">
+ <xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Height &gt; 0">
+ <xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:use-optimal-row-height">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ <xsl:apply-templates select="key('Style', ss:Row[position() = $rowNodeIndex]/@ss:StyleID)/ss:Interior" mode="style-style-content"/>
+ </xsl:element>
+ <!--
+ <xsl:apply-templates select="key('Style', ss:Row[position() = $rowNodeIndex]/@ss:StyleID)" mode="style-style-content" />
+ -->
+ </xsl:element>
+ </xsl:if>
+ <!--
+ <style:style style:name="{concat('ro', $table-pos, '-',$rowNodeIndex)}" style:family="table-row">
+ -->
+ <xsl:element name="style:style">
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:StyleID">
+ <xsl:attribute name="style:name"><xsl:value-of select="concat('ro', $table-pos, '-',$rowNodeIndex,'-',ss:Row[position() = $rowNodeIndex]/@ss:StyleID)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:name"><xsl:value-of select="concat('ro', $table-pos, '-',$rowNodeIndex)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="style:family">table-row</xsl:attribute>
+
+
+ <xsl:element name="style:table-row-properties">
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Height">
+ <xsl:attribute name="style:row-height">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(./ss:Row[position() = $rowNodeIndex]/@ss:Height,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:row-height">
+ <xsl:value-of select="$default-row-height"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:AutoFitHeight">
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:AutoFitHeight = '0'">
+ <xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:use-optimal-row-height">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Height &gt; 0">
+ <xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:use-optimal-row-height">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:break-before">auto</xsl:attribute>
+ <!-- apply to background -->
+ <xsl:apply-templates select="key('Style', ss:Row[position() = $rowNodeIndex]/@ss:StyleID)/ss:Interior" mode="style-style-content"/>
+ </xsl:element>
+ <!--
+ <xsl:apply-templates select="key('Style', ss:Row[position() = $rowNodeIndex]/@ss:StyleID)" mode="style-style-content" />
+ -->
+ </xsl:element>
+ <xsl:if test="$rowNodeIndex &lt; $rowNodeCount">
+ <xsl:call-template name="get-row-style-name">
+ <xsl:with-param name="earlierRowNo">
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Index">
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Span">
+ <xsl:value-of select="./ss:Row[position() = $rowNodeIndex]/@ss:Index + ./ss:Row[position() = $rowNodeIndex]/@ss:Span"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./ss:Row[position() = $rowNodeIndex]/@ss:Index"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./ss:Row[position() = $rowNodeIndex]/@ss:Span">
+ <xsl:value-of select="$earlierRowNo + ./ss:Row[position() = $rowNodeIndex]/@ss:Span + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$earlierRowNo + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="rowNodeCount" select="$rowNodeCount"/>
+ <xsl:with-param name="rowNodeIndex" select="$rowNodeIndex + 1"/>
+ <xsl:with-param name="table-pos" select="$table-pos"/>
+ <xsl:with-param name="default-row-height" select="$default-row-height"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="count-spanned-columns">
+ <xsl:param name="expandedColumnCount" select="0"/>
+ <xsl:param name="columns"/>
+ <xsl:param name="columnsCount" select="count($columns)"/>
+ <xsl:param name="columnIndex" select="1"/>
+ <xsl:choose>
+ <xsl:when test="$columnIndex &lt;= $columnsCount">
+ <xsl:call-template name="count-spanned-columns">
+ <xsl:with-param name="columns" select="$columns"/>
+ <xsl:with-param name="columnsCount" select="$columnsCount"/>
+ <xsl:with-param name="columnIndex" select="$columnIndex + 1"/>
+ <xsl:with-param name="expandedColumnCount" select="$expandedColumnCount + $columns[$columnIndex]/@ss:Span"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$expandedColumnCount"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="ss:Worksheet">
+ <xsl:element name="table:table">
+ <xsl:attribute name="table:name">
+ <xsl:value-of select="@ss:Name"/>
+ </xsl:attribute>
+ <!-- other attributes aren't suitable to apply yet -->
+ <xsl:if test="ss:Table">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat( 'ta', count(preceding-sibling::ss:Worksheet)+1)"/>
+ </xsl:attribute>
+ <xsl:if test="@ss:Protected = '1'">
+ <xsl:attribute name="table:protected">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="descendant::ss:NamedRange[@ss:Name = 'Print_Area' and contains( @ss:RefersTo, '!R')]">
+ <xsl:variable name="referto">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="descendant::ss:NamedRange/@ss:RefersTo"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="table:print-ranges">
+ <xsl:value-of select="translate( $referto, '=', '$')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="table-pos">
+ <xsl:value-of select="count(../preceding-sibling::ss:Worksheet)+1"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="ss:Table/@ss:ExpandedColumnCount">
+ <xsl:choose>
+ <xsl:when test="not(ss:Table/ss:Column)">
+ <!-- no columns exist -->
+ <xsl:call-template name="create-columns-without-input">
+ <xsl:with-param name="table-pos" select="$table-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create-columns">
+ <xsl:with-param name="columnCount" select="ss:Table/@ss:ExpandedColumnCount"/>
+ <xsl:with-param name="currentColumnNode" select="ss:Table/ss:Column[1]"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="ss:Table/ss:Column/@ss:Span">
+ <!-- No absolute column number (ss:ExpandedColumnCount) is add the nodes and spanned columns -->
+ <xsl:variable name="spannedColumns">
+ <xsl:call-template name="count-spanned-columns">
+ <xsl:with-param name="columns" select="ss:Table/ss:Column[@ss:Span]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="create-columns">
+ <xsl:with-param name="columnCount" select="count(ss:Table/ss:Column) + number($spannedColumns)"/>
+ <xsl:with-param name="currentColumnNode" select="ss:Table/ss:Column[1]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- No absolute column number (ss:ExpandedColumnCount) is add the nodes -->
+ <xsl:call-template name="create-columns">
+ <xsl:with-param name="columnCount" select="count(ss:Table/ss:Column)"/>
+ <xsl:with-param name="currentColumnNode" select="ss:Table/ss:Column[1]"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- generates the string of row\column position if ConditionalFormatting exists -->
+ <xsl:variable name="condition-pos-str1">
+ <xsl:if test="./x:ConditionalFormatting">
+ <xsl:call-template name="condition-row-column-string">
+ <xsl:with-param name="last" select="''"/>
+ <xsl:with-param name="total" select="count(./x:ConditionalFormatting)"/>
+ <xsl:with-param name="index" select="1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="condition-pos-str2">
+ <xsl:if test="./x:DataValidation">
+ <xsl:call-template name="validation-row-column-string">
+ <xsl:with-param name="last" select="''"/>
+ <xsl:with-param name="total" select="count(./x:DataValidation)"/>
+ <xsl:with-param name="index" select="1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="condition-pos-str" select="concat($condition-pos-str1, $condition-pos-str2)"/>
+ <xsl:choose>
+ <xsl:when test="./ss:Table/ss:Row">
+ <xsl:call-template name="create-rows">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./x:PageBreaks/x:RowBreaks">
+ <xsl:for-each select="./x:PageBreaks/x:RowBreaks/x:RowBreak">
+ <xsl:variable name="number-repeated">
+ <xsl:choose>
+ <xsl:when test="position() = 1">
+ <xsl:value-of select="./x:Row"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=". - preceding::x:RowBreak[position()=count(.)]/x:Row - 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$number-repeated &gt; 0">
+ <xsl:element name="table:table-row">
+ <xsl:if test="@ss:Hidden = '1'">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('ro',$table-pos)"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:number-rows-repeated">
+ <xsl:value-of select="$number-repeated"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="ss:Table/@ss:ExpandedColumnCount">
+ <table:table-cell table:number-columns-repeated="{ss:Table/@ss:ExpandedColumnCount}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- OASIS XML row can not be empty -->
+ <table:table-cell table:number-columns-repeated="256"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="table:table-row">
+ <xsl:if test="@ss:Hidden = '1'">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('rob',$table-pos)"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="ss:Table/@ss:ExpandedColumnCount">
+ <table:table-cell table:number-columns-repeated="{ss:Table/@ss:ExpandedColumnCount}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- OASIS XML row can not be empty -->
+ <table:table-cell table:number-columns-repeated="256"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- in case no table row exists (empty spreadsheet) -->
+ <xsl:element name="table:table-row">
+ <xsl:choose>
+ <xsl:when test="ss:Table/@ss:StyleID">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="ss:Table/@ss:StyleID"/>
+ </xsl:attribute>
+ <xsl:element name="table:table-cell">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="ss:Table/@ss:StyleID"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('ro',$table-pos)"/>
+ </xsl:attribute>
+ <xsl:element name="table:table-cell"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="./x:ConditionalFormatting">
+ <xsl:variable name="condition-row-max">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="div-value" select="'R'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="condition-col-max">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="div-value" select="'C'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="break-row-max">
+ <xsl:call-template name="break-row-beyond-max">
+ <xsl:with-param name="pos" select="1"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="count-value" select="count(./x:PageBreaks/x:RowBreaks/x:RowBreak)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="end-value">
+ <xsl:choose>
+ <xsl:when test="$condition-row-max &lt; $break-row-max">
+ <xsl:value-of select="$break-row-max"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$condition-row-max"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="get-row-beyond-last">
+ <xsl:with-param name="index-value" select="1"/>
+ <xsl:with-param name="worksheetNo" select="count(preceding-sibling::ss:Worksheet)+1"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="end-pos" select="$end-value"/>
+ <xsl:with-param name="total-col" select="$condition-col-max"/>
+ </xsl:call-template>
+ </xsl:if>
+ <!-- if exists attribute of StyleID in tag of ss:Table but no Row/Column -->
+ <xsl:if test="./ss:Table/@ss:StyleID">
+ <table:table-row table:style-name="{concat('ro',$table-pos)}" table:number-rows-repeated="65564">
+ <table:table-cell table:number-columns-repeated="256"/>
+ </table:table-row>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <!-- Note: Need to be refactored -->
+ <xsl:template name="create-columns-without-input">
+ <xsl:param name="table-pos"/>
+ <xsl:choose>
+ <xsl:when test="./x:PageBreaks/x:ColBreaks">
+ <xsl:for-each select="./x:PageBreaks/x:ColBreaks/x:ColBreak">
+ <xsl:variable name="number-repeated">
+ <xsl:choose>
+ <xsl:when test="position() = 1">
+ <xsl:value-of select="./x:Column"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=". - preceding::x:ColBreak[position()=count(.)]/x:Column - 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$number-repeated &gt; 0">
+ <xsl:element name="table:table-column">
+ <xsl:if test="ancestor::ss:Worksheet/ss:Table/@ss:StyleID">
+ <xsl:attribute name="table:default-cell-style-name">
+ <xsl:value-of select="ancestor::ss:Worksheet/ss:Table/@ss:StyleID"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@ss:Hidden = '1'">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('co',$table-pos)"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="$number-repeated"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="table:table-column">
+ <!-- column style be made out beforehead -->
+ <xsl:if test="ancestor::ss:Worksheet/ss:Table/@ss:StyleID">
+ <xsl:attribute name="table:default-cell-style-name">
+ <xsl:value-of select="ancestor::ss:Worksheet/ss:Table/@ss:StyleID"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@ss:Hidden = '1'">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('cob',$table-pos)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="table:table-column">
+ <xsl:choose>
+ <xsl:when test="ss:Table/@ss:StyleID">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="ss:Table/@ss:StyleID"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name">
+ <xsl:text>co1</xsl:text>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="ss:Table/@ss:ExpandedColumnCount and ss:Table/@ss:ExpandedColumnCount > 0">
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="ss:Table/@ss:ExpandedColumnCount"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:default-cell-style-name">
+ <xsl:text>Default</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--
+ Example:
+ <ss:Table>
+ <ss:Column ss:Index="4" ss:Width="500" ss:Span="3" />
+ <ss:Column ss:Width="200" />
+ </ss:Table>
+
+ Prior column (ss:Index - 1) is written
+ The given fourth cell (ss:Index="4") is handled as repeated three times (ss:Span="3").
+ The eight column got a width of "200"
+
+ ContextNode: ss:Worksheet
+ -->
+ <xsl:key match="/ss:Workbook/ss:Worksheet/x:PageBreaks/x:ColBreaks/x:ColBreak" name="ColBreak" use="Column"/>
+ <xsl:template name="create-columns">
+ <xsl:param name="columnCount"/>
+ <xsl:param name="currentColumn" select="1"/>
+ <xsl:param name="finishedColumns" select="0"/>
+ <xsl:param name="worksheetNo" select="count(preceding-sibling::ss:Worksheet)+1"/>
+ <xsl:param name="currentColumnNode"/>
+ <xsl:choose>
+ <xsl:when test="$finishedColumns &lt; $columnCount">
+ <xsl:choose>
+ <xsl:when test="$currentColumnNode">
+ <xsl:choose>
+ <xsl:when test="$currentColumnNode/@ss:Index - $finishedColumns &gt; 1">
+ <!-- found column with index.
+ filling up table with empty columns until Index is reached -->
+ <xsl:call-template name="create-default-column">
+ <xsl:with-param name="currentColumn" select="$currentColumn"/>
+ <xsl:with-param name="currentColumnNode" select="$currentColumnNode"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ <xsl:call-template name="create-columns">
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="currentColumn" select="$currentColumn"/>
+ <xsl:with-param name="currentColumnNode" select="$currentColumnNode"/>
+ <xsl:with-param name="finishedColumns" select="$finishedColumns + 1"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="table:table-column">
+ <xsl:if test="$currentColumnNode/@ss:Hidden = '1'">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$currentColumnNode/@ss:Span">
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="$currentColumnNode/@ss:Span + 1"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="key('ColBreak', $currentColumn)">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('cob', $worksheetNo, '-', $currentColumn)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('co', $worksheetNo, '-', $currentColumn)"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$currentColumnNode/@ss:StyleID">
+ <xsl:attribute name="table:default-cell-style-name">
+ <xsl:value-of select="$currentColumnNode/@ss:StyleID"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:default-cell-style-name">
+ <xsl:text>Default</xsl:text>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:call-template name="create-columns">
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="currentColumn" select="$currentColumn + 1"/>
+ <xsl:with-param name="finishedColumns">
+ <xsl:choose>
+ <xsl:when test="$currentColumnNode/@ss:Span">
+ <xsl:value-of select="$finishedColumns + $currentColumnNode/@ss:Span + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$finishedColumns + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="currentColumnNode" select="ss:Table/ss:Column[$currentColumn + 1]"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- <xsl:if test="not($finishedColumns + 1 = $columnCount)"> -->
+ <xsl:call-template name="create-default-column">
+ <xsl:with-param name="currentColumn" select="$currentColumn"/>
+ <xsl:with-param name="currentColumnNode" select="$currentColumnNode"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ <xsl:call-template name="create-columns">
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="currentColumn" select="$currentColumn"/>
+ <xsl:with-param name="finishedColumns" select="$finishedColumns + 1"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$currentColumn = $columnCount">
+ <!-- Note: name test document for this case and refactor the template -->
+ <xsl:if test="x:PageBreaks/x:ColBreaks/x:ColBreak/x:Column &gt; $finishedColumns">
+ <xsl:call-template name="get-column-beyond-last">
+ <xsl:with-param name="index-value" select="$finishedColumns"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ </xsl:if>
+ <!--Note: Test Scenario for this case: generates some special tags for whole row style
+ <xsl:if test="(./ss:Table[@ss:StyleID] or ./ss:Table/ss:Row[@ss:StyleID]) and (256 - $finishedColumns &gt; 0)">
+ <xsl:element name="table:table-column">
+ <xsl:attribute name="table:default-cell-style-name"><xsl:choose><xsl:when test="./ss:Table[@ss:StyleID]"><xsl:value-of select="./ss:Table/@ss:StyleID" /></xsl:when><xsl:otherwise><xsl:value-of select="'Default'" /></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="'co1'" /></xsl:attribute>
+ <xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="256 - $finishedColumns" /></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ -->
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="create-default-column">
+ <xsl:param name="currentColumn"/>
+ <xsl:param name="currentColumnNode"/>
+ <xsl:param name="worksheetNo"/>
+ <xsl:param name="nextColumnNo"/>
+ <xsl:element name="table:table-column">
+ <xsl:attribute name="table:default-cell-style-name">
+ <xsl:call-template name="get-default-cell-style">
+ <xsl:with-param name="currentColumnNode" select="$currentColumnNode"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <!-- <xsl:attribute name="table:default-cell-style-name"><xsl:value-of select="$nextColumnNo - $currentColumn"/></xsl:attribute> -->
+ <xsl:choose>
+ <xsl:when test="key('ColBreak', $currentColumn)">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('cob',$worksheetNo)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('co',$worksheetNo)"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="create-rows">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:apply-templates select="ss:Table/ss:Row[1]" mode="create-rows">
+ <xsl:with-param name="worksheetNo" select="count(preceding-sibling::ss:Worksheet)+1"/>
+ <xsl:with-param name="rowNodeCount" select="count(ss:Table/ss:Row)"/>
+ <xsl:with-param name="rowNodeIndex" select="1"/>
+ <xsl:with-param name="expandedRowCount">
+ <xsl:call-template name="get-expanded-row-count"/>
+ </xsl:with-param>
+ <xsl:with-param name="expandedRowCountIndex" select="1"/>
+ <xsl:with-param name="expandedColumnCount">
+ <xsl:call-template name="get-expanded-column-count"/>
+ </xsl:with-param>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:apply-templates>
+ </xsl:template>
+ <xsl:template match="ss:Row" mode="create-rows">
+ <xsl:param name="worksheetNo"/>
+ <xsl:param name="rowNodeCount"/>
+ <xsl:param name="rowNodeIndex" select="1"/>
+ <xsl:param name="expandedRowCount"/>
+ <xsl:param name="expandedRowCountIndex" select="1"/>
+ <xsl:param name="expandedColumnCount"/>
+ <xsl:param name="condition-pos-str"/>
+ <xsl:variable name="currentRowNo">
+ <xsl:choose>
+ <xsl:when test="@ss:Index">
+ <xsl:value-of select="@ss:Index"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$expandedRowCountIndex"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="@ss:Index - $expandedRowCountIndex &gt; 0">
+ <!-- create the precding missing rows -->
+ <xsl:element name="table:table-row">
+ <!-- fill the preceding gap with rows without a cell -->
+ <xsl:attribute name="table:number-rows-repeated">
+ <xsl:value-of select="@ss:Index - $expandedRowCountIndex"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$expandedColumnCount != 0">
+ <table:table-cell table:number-columns-repeated="{$expandedColumnCount}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- OASIS XML row can not be empty -->
+ <table:table-cell table:number-columns-repeated="256"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="table:table-row">
+ <xsl:attribute name="table:style-name">
+ <xsl:choose>
+ <xsl:when test="@ss:StyleID">
+ <xsl:value-of select="concat('ro',$worksheetNo, '-',$rowNodeIndex,'-', @ss:StyleID)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('ro',$worksheetNo,'-',$rowNodeIndex)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:if test="@ss:Hidden = '1'">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@ss:Span">
+ <xsl:attribute name="table:number-rows-repeated">
+ <xsl:value-of select="@ss:Span + 1"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <!-- Excel row without content -->
+ <xsl:when test="not(*)">
+ <!-- OASIS OpenDocument Format does not allow rows without a cell -->
+ <xsl:choose>
+ <xsl:when test="$expandedColumnCount != 0">
+ <table:table-cell table:number-columns-repeated="{$expandedColumnCount}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- OASIS XML row can not be empty -->
+ <table:table-cell table:number-columns-repeated="256"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create-cells">
+ <xsl:with-param name="row-pos" select="$currentRowNo"/>
+ <xsl:with-param name="expandedColumnCount" select="$expandedColumnCount"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <!-- columns are painting over the expanded RowCount -->
+ <xsl:choose>
+ <xsl:when test="count(following-sibling::ss:Row) != 0">
+ <xsl:apply-templates select="following-sibling::ss:Row[1]" mode="create-rows">
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ <xsl:with-param name="rowNodeCount" select="$rowNodeCount"/>
+ <xsl:with-param name="rowNodeIndex" select="$rowNodeIndex + 1"/>
+ <xsl:with-param name="expandedRowCount" select="$expandedRowCount"/>
+ <xsl:with-param name="expandedRowCountIndex">
+ <xsl:choose>
+ <xsl:when test="@ss:Index and @ss:Span">
+ <xsl:value-of select="@ss:Index + @ss:Span + 1"/>
+ </xsl:when>
+ <xsl:when test="@ss:Index">
+ <xsl:value-of select="@ss:Index + 1"/>
+ </xsl:when>
+ <xsl:when test="@ss:Span">
+ <xsl:value-of select="$expandedRowCountIndex + @ss:Span + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$expandedRowCountIndex + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="expandedColumnCount" select="$expandedColumnCount"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:when test="$currentRowNo &lt; 65536">
+ <xsl:element name="table:table-row">
+ <!-- fill the preceding gap with rows without a cell -->
+ <xsl:attribute name="table:number-rows-repeated">
+ <xsl:value-of select="65536 - $currentRowNo"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$expandedColumnCount != 0">
+ <table:table-cell table:number-columns-repeated="{$expandedColumnCount}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- OASIS XML row can not be empty -->
+ <table:table-cell table:number-columns-repeated="256"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-expanded-column-count">
+ <xsl:choose>
+ <xsl:when test="ss:Table/@ss:ExpandedColumnCount">
+ <xsl:value-of select="ss:Table/@ss:ExpandedColumnCount"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="ss:Table/ss:Column/@ss:Span">
+ <!-- No absolute column number (ss:ExpandedColumnCount) is add the nodes and spanned columns -->
+ <xsl:variable name="spannedColumns">
+ <xsl:call-template name="count-spanned-columns">
+ <xsl:with-param name="columns" select="ss:Table/ss:Column[@ss:Span]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="count(ss:Table/ss:Column) + number($spannedColumns)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- No absolute column number (ss:ExpandedColumnCount) is add the nodes -->
+ <xsl:value-of select="count(ss:Table/ss:Column)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-expanded-row-count">
+ <xsl:choose>
+ <xsl:when test="ss:Table/@ss:ExpandedRowCount">
+ <xsl:value-of select="ss:Table/@ss:ExpandedRowCount"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="ss:Table/ss:Row/@ss:Index and not(ss:Table/ss:Row/@ss:Span)">
+ <xsl:variable name="lastIndexedRow" select="ss:Table/ss:Row[@ss:Index][last()]"/>
+ <xsl:value-of select="number($lastIndexedRow/@ss:Index) + count($lastIndexedRow/following-sibling::ss:Row)"/>
+ </xsl:when>
+ <xsl:when test="ss:Table/ss:Row/@ss:Index and ss:Table/ss:Row/@ss:Span">
+ <xsl:variable name="lastIndexedRow" select="ss:Table/ss:Row[@ss:Index][last()]"/>
+ <xsl:variable name="spannedRows">
+ <xsl:call-template name="count-spanned-rows">
+ <xsl:with-param name="rows" select="$lastIndexedRow/following-sibling::ss:Row[@ss:Span]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="number($lastIndexedRow/@ss:Index) + count($lastIndexedRow/following-sibling::ss:Row) + number($spannedRows)"/>
+ </xsl:when>
+ <xsl:when test="not(ss:Table/ss:Row/@ss:Index) and ss:Table/ss:Row/@ss:Span">
+ <xsl:variable name="spannedRows">
+ <xsl:call-template name="count-spanned-rows">
+ <xsl:with-param name="rows" select="ss:Table/ss:Rows[@ss:Span]"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="count(ss:Table/ss:Row + number($spannedRows))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="count(ss:Table/ss:Row)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="count-spanned-rows">
+ <xsl:param name="expandedRowCount" select="0"/>
+ <xsl:param name="rows"/>
+ <xsl:param name="rowsCount" select="count($rows)"/>
+ <xsl:param name="rowIndex" select="1"/>
+ <xsl:choose>
+ <xsl:when test="$rowIndex &lt;= $rowsCount">
+ <xsl:call-template name="count-spanned-rows">
+ <xsl:with-param name="rows" select="$rows"/>
+ <xsl:with-param name="rowsCount" select="$rowsCount"/>
+ <xsl:with-param name="rowIndex" select="$rowIndex + 1"/>
+ <xsl:with-param name="expandedRowCount" select="$expandedRowCount + $rows[$rowIndex]/@ss:Span"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$expandedRowCount"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-default-cell-style">
+ <xsl:param name="currentColumnNode"/>
+ <xsl:choose>
+ <xsl:when test="$currentColumnNode">
+ <xsl:choose>
+ <xsl:when test="$currentColumnNode/@ss:StyleID">
+ <xsl:value-of select="$currentColumnNode/@ss:StyleID"/>
+ </xsl:when>
+ <xsl:otherwise>Default</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./ss:Table[@ss:StyleID]">
+ <xsl:value-of select="./ss:Table/@ss:StyleID"/>
+ </xsl:when>
+ <xsl:otherwise>Default</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-row-beyond-last">
+ <!-- dealing the RowBreak after last row by recursion -->
+ <xsl:param name="index-value"/>
+ <xsl:param name="worksheetNo"/>
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="end-pos"/>
+ <xsl:param name="total-col"/>
+ <xsl:variable name="current" select="concat('R',$index-value)"/>
+ <xsl:element name="table:table-row">
+ <xsl:choose>
+ <xsl:when test="./x:PageBreaks/x:RowBreaks/x:RowBreak/x:Row = ($index-value - 1)">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('rob',$worksheetNo)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('ro',$worksheetNo)"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <!-- Note: 2 be refactored
+ <xsl:when test="./ss:Table/ss:Column[@ss:StyleID] or ./ss:Table[@ss:StyleID]">
+ <xsl:if test="256 - count(ss:Table/ss:Column) &gt; 0">
+ <table:table-cell table:number-columns-repeated="{256 - count(ss:Table/ss:Column)}" />
+ </xsl:if>
+ </xsl:when>-->
+ <xsl:when test="contains($condition-pos-str,$current)">
+ <xsl:call-template name="create-spanning-cells">
+ <xsl:with-param name="row-pos" select="$index-value"/>
+ <xsl:with-param name="c-start" select="1"/>
+ <xsl:with-param name="c-end" select="$total-col"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- OASIS XML does not allow rows without a cell -->
+ <table:table-cell/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="$index-value &lt; ($end-pos + 1)">
+ <xsl:call-template name="get-row-beyond-last">
+ <xsl:with-param name="index-value" select="$index-value + 1"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="end-pos" select="$end-pos"/>
+ <xsl:with-param name="total-col" select="$total-col"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="break-row-beyond-max">
+ <!-- returns the max position of the row from condition-pos-str -->
+ <xsl:param name="pos"/>
+ <xsl:param name="last-value"/>
+ <xsl:param name="count-value"/>
+ <xsl:variable name="pre-value" select="./x:PageBreaks/x:RowBreaks/x:RowBreak[position() = $pos]/x:Row"/>
+ <xsl:variable name="end-value">
+ <xsl:choose>
+ <xsl:when test="$last-value &lt; $pre-value">
+ <xsl:value-of select="$pre-value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$last-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$pos &lt; $count-value">
+ <xsl:call-template name="break-row-beyond-max">
+ <xsl:with-param name="pos" select="$pos + 1"/>
+ <xsl:with-param name="last-value" select="$end-value"/>
+ <xsl:with-param name="count-value" select="$count-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$end-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-column-beyond-last">
+ <!-- dealing the ColBreak after last column by recursion -->
+ <xsl:param name="index-value"/>
+ <xsl:param name="worksheetNo"/>
+ <xsl:for-each select="./x:PageBreaks/x:ColBreaks/x:ColBreak">
+ <xsl:variable name="each-column-value" select="./x:Column"/>
+ <xsl:choose>
+ <xsl:when test="$each-column-value + 1 &gt; $index-value">
+ <xsl:variable name="number-repeated">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::x:ColBreak[position()=count(.)]/x:Column + 1 = $index-value">
+ <xsl:value-of select="$each-column-value - preceding-sibling::x:ColBreak[position()=count(.)]/x:Column - 1"/>
+ </xsl:when>
+ <xsl:when test="preceding-sibling::x:ColBreak[position()=count(.)]/x:Column + 1 &gt; $index-value">
+ <xsl:value-of select="$each-column-value - preceding-sibling::x:ColBreak[position()=count(.)]/x:Column - 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$each-column-value - $index-value + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$number-repeated &gt; 0">
+ <xsl:element name="table:table-column">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="'co1'"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="$number-repeated"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="table:table-column">
+ <xsl:if test="./../../../ss:Table[@ss:StyleID]">
+ <xsl:attribute name="table:default-cell-style-name">
+ <xsl:value-of select="./ss:Table/@ss:StyleID"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('cob',$worksheetNo)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="$each-column-value + 1 = $index-value">
+ <xsl:element name="table:table-column">
+ <xsl:if test="./../../../ss:Table[@ss:StyleID]">
+ <xsl:attribute name="table:default-cell-style-name">
+ <xsl:value-of select="./../../../ss:Table/@ss:StyleID"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="concat('cob',$worksheetNo)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="create-spanning-cells">
+ <!-- judge the position of the Cell in the condition-pos-str -->
+ <xsl:param name="row-pos"/>
+ <xsl:param name="c-start"/>
+ <xsl:param name="c-end"/>
+ <xsl:param name="condition-pos-str"/>
+
+ <xsl:variable name="current" select="concat('R',$row-pos,'C',$c-start,',')"/>
+ <xsl:variable name="style-name">
+ <xsl:choose>
+ <xsl:when test="contains($condition-pos-str,$current)">
+ <xsl:variable name="temp-str">
+ <xsl:call-template name="condition-str">
+ <xsl:with-param name="param-str" select="substring-before($condition-pos-str,$current)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="starts-with($temp-str, 'c')">
+ <xsl:value-of select="concat('ce', substring-after($temp-str, 'c'))"/>
+ </xsl:when>
+ <xsl:when test="starts-with($temp-str, 'v')">
+ <xsl:value-of select="concat('val', substring-after($temp-str, 'v'))"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- as for the spanned cells no style is taken.. -->
+ <xsl:choose>
+ <!-- inherit style from parent row style-->
+ <xsl:when test="../@ss:StyleID">
+ <xsl:value-of select="../@ss:StyleID"/>
+ </xsl:when>
+ <!-- if no correspondent column style exisit.. -->
+ <!-- inherit style from parent table style -->
+ <xsl:when test="../../@ss:StyleID">
+ <!-- function to give in col-pos and get back column style -->
+ <xsl:variable name="relatedColumnStyle">
+ <xsl:call-template name="get-related-column-style">
+ <!-- the given position of the cell in the table, a column style is searched -->
+ <xsl:with-param name="calculatedCellPosition" select="$c-start" />
+ <!-- all columns in XML -->
+ <xsl:with-param name="columnXMLNodes" select="../../ss:Column"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$relatedColumnStyle = ''">
+ <xsl:value-of select="../../@ss:StyleID"/>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="table:table-cell">
+ <xsl:if test="not($style-name = '')">
+ <xsl:choose>
+ <xsl:when test="starts-with($style-name, 'val')">
+ <xsl:attribute name="table:content-validation-name">
+ <xsl:value-of select="$style-name"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="starts-with($style-name, 'ce')">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="$style-name"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="$style-name"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$c-start &lt; $c-end">
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="$c-end - $c-start + 1"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="condition-row-col-pos-max">
+ <!-- returns the max position of the column or row from condition-pos-str -->
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="last-value"/>
+ <xsl:param name="div-value"/>
+ <xsl:variable name="pre-value">
+ <xsl:choose>
+ <xsl:when test="$div-value = 'R'">
+ <xsl:value-of select="substring-before(substring-after($condition-pos-str,$div-value),'C')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before(substring-after($condition-pos-str,$div-value),',')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="end-value">
+ <xsl:choose>
+ <xsl:when test="$last-value &lt; $pre-value">
+ <xsl:value-of select="$pre-value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$last-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($condition-pos-str,$div-value)">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="substring-after($condition-pos-str,$div-value)"/>
+ <xsl:with-param name="last-value" select="$end-value"/>
+ <xsl:with-param name="div-value" select="$div-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$end-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="condition-str">
+ <!-- returns the string of style name of condition-pos-str -->
+ <xsl:param name="param-str"/>
+ <xsl:choose>
+ <xsl:when test="contains($param-str,'(')">
+ <xsl:call-template name="condition-str">
+ <xsl:with-param name="param-str" select="substring-after($param-str,'(')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($param-str,':')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:key name="Style" match="/ss:Workbook/ss:Styles/ss:Style" use="@ss:ID"/>
+ <xsl:template name="create-cells">
+ <xsl:param name="row-pos"/>
+ <xsl:param name="expandedColumnCount"/>
+ <xsl:param name="condition-pos-str"/>
+ <xsl:choose>
+ <xsl:when test="ss:Cell">
+ <xsl:apply-templates select="ss:Cell[1]" mode="selected">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$expandedColumnCount"/>
+ <!--
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str" />
+ <xsl:with-param name="last-value" select="0" />
+ <xsl:with-param name="div-value" select="'C'" />
+ </xsl:call-template>
+ </xsl:with-param> -->
+ <xsl:with-param name="col-pos-written" select="0"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="current" select="concat('R',$row-pos,'C')"/>
+ <xsl:choose>
+ <xsl:when test="contains($condition-pos-str,$current)">
+ <xsl:call-template name="create-spanning-cells">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="c-start" select="1"/>
+ <xsl:with-param name="c-end">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="div-value" select="'C'"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos" select="1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- OASIS XML does not allow an empty row -->
+ <xsl:choose>
+ <xsl:when test="$expandedColumnCount != 0">
+ <table:table-cell table:number-columns-repeated="{$expandedColumnCount}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- OASIS XML row can not be empty -->
+ <table:table-cell table:number-columns-repeated="256"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="ss:Cell" name="ss:Cell" mode="selected">
+ <!-- Contains the max position of the column or row from the concatenation from
+ x:ConditionalFormatting
+ and
+ x:DataValidation -->
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="col-pos-max"/>
+ <xsl:param name="col-pos-written" select="0"/>
+ <xsl:param name="col-pos-current" select="0"/>
+ <xsl:param name="row-pos"/>
+ <xsl:param name="col-repeated" select="1"/>
+
+ <!-- The column position of the cell (might jumped by ss:Index) -->
+ <xsl:variable name="col-pos">
+ <xsl:choose>
+ <xsl:when test="@ss:Index">
+ <xsl:choose>
+ <xsl:when test="@ss:MergeAcross">
+ <xsl:value-of select="@ss:MergeAcross + @ss:Index"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@ss:Index"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="@ss:MergeAcross">
+ <xsl:value-of select="1 + @ss:MergeAcross + $col-pos-current"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="1 + $col-pos-current"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="nextCell" select="following-sibling::ss:Cell[1]"/>
+ <!-- Multiple empty cells with the same or no style will be moved to one cell with a 'table:number-columns-repeated' attribute -->
+ <xsl:variable name="cell-is-repeatable" select="
+ not(current()/*)
+ and
+ not(current()/text())
+ and
+ (
+ not($nextCell)
+ and $col-pos &gt; $col-pos-written + 1
+ or
+ (
+ $nextCell
+ and
+ not($nextCell/*)
+ and
+ not($nextCell/text())
+ and
+ (
+ (current()/@ss:StyleID = $nextCell/@ss:StyleID)
+ or
+ (not(current()/@ss:StyleID) and not($nextCell/@ss:StyleID))
+ )
+ and
+ (
+ not($nextCell/@ss:Index)
+ or
+ ($nextCell/@ss:Index = $col-pos + 1)
+ )
+ )
+ ) "/>
+ <xsl:choose>
+ <!-- Scenario: The missing cells scipped by using the ss:Index attribute will be added -->
+ <xsl:when test="@ss:Index and @ss:Index &gt; $col-pos-written + 1">
+ <!-- In Open Document nothing comparable to Index exists,
+ the missing cells might have to be created, if they had content as only style will be repeated-->
+ <xsl:call-template name="create-spanning-cells">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="c-start" select="$col-pos-current + 1"/>
+ <xsl:with-param name="c-end" select="@ss:Index - 1"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ <xsl:call-template name="ss:Cell">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-written" select="@ss:Index - 1"/>
+ <xsl:with-param name="col-pos-current" select="$col-pos"/>
+ <xsl:with-param name="col-repeated" select="$col-repeated"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- Scenario: A sequence of cells can be put together as one cell -->
+ <xsl:when test="$cell-is-repeatable">
+ <xsl:apply-templates select="$nextCell" mode="selected">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-written" select="$col-pos-written"/>
+ <xsl:with-param name="col-pos-current" select="$col-pos"/>
+ <xsl:with-param name="col-repeated" select="$col-repeated"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- if the cell wasn't repeated yet, created first -->
+ <xsl:if test="$col-repeated = 1">
+ <xsl:element name="table:table-cell">
+ <!-- in case the cell has an Index and is repeatable (s.above) and therefore has not been repeated earlier -->
+ <xsl:choose>
+ <xsl:when test="@ss:MergeAcross">
+ <xsl:if test="$col-pos - @ss:MergeAcross &gt; $col-pos-written + 1">
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="$col-pos - $col-pos-written"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$col-pos &gt; $col-pos-written + 1">
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="$col-pos - $col-pos-written"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="create-table-cell-attributes">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos" select="$col-pos"/>
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ </xsl:call-template>
+ <xsl:call-template name="create-table-cell-content">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos" select="$col-pos"/>
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ </xsl:call-template>
+ </xsl:element>
+ <!-- ss:MergeAcross (column spanned) indicates a covered table-cell in Open Document XML-->
+ <xsl:if test="@ss:MergeAcross">
+ <xsl:element name="table:covered-table-cell">
+ <xsl:if test="@ss:MergeAcross &gt; 1">
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="@ss:MergeAcross"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ <xsl:choose>
+ <!-- the following block is not used, if the cell had been repeated earlier -->
+ <xsl:when test="$nextCell and not($cell-is-repeatable and $col-repeated = 1)">
+ <xsl:choose>
+ <!-- After cells can not longer be repeated write out the attribute -->
+ <xsl:when test="not($cell-is-repeatable) and $col-repeated > 1">
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="$col-repeated"/>
+ </xsl:attribute>
+ </xsl:when>
+ <!-- At the end of the row -->
+ <xsl:when test="not($nextCell)">
+ <xsl:if test="../../../x:ConditionalFormatting">
+ <!-- at the last position of the Cell tag,inspecting the following cell before condition-row-col-pos-max -->
+ <xsl:call-template name="create-spanning-cells">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="c-start" select="$col-pos"/>
+ <xsl:with-param name="c-end" select="$col-pos-max"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <!-- If the cells can not be repeated (default) -->
+ <xsl:when test="not($cell-is-repeatable)">
+ <!-- Traverse the following Cell -->
+ <xsl:apply-templates select="$nextCell" mode="selected">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-written" select="$col-pos"/>
+ <xsl:with-param name="col-pos-current" select="$col-pos"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <!-- Go on with started repetition -->
+ <xsl:otherwise>
+ <xsl:apply-templates select="$nextCell" mode="selected">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-written" select="$col-pos"/>
+ <xsl:with-param name="col-pos-current" select="$col-pos"/>
+ <xsl:with-param name="col-repeated" select="$col-repeated + 1"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="not($nextCell)">
+ <xsl:choose>
+ <xsl:when test="$col-repeated = 1 and ($col-pos &lt; $col-pos-max)">
+ <table:table-cell table:number-columns-repeated="{$col-pos-max - $col-pos}"/>
+ </xsl:when>
+ <xsl:when test="$col-repeated &gt; 1">
+ <xsl:attribute name="table:number-columns-repeated">
+ <xsl:value-of select="$col-repeated"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$nextCell" mode="skip">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-written" select="$col-pos"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="ss:Cell" mode="skip">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="col-pos-max"/>
+ <xsl:param name="col-pos-written"/>
+ <xsl:param name="row-pos"/>
+
+ <xsl:variable name="nextCell" select="following-sibling::ss:Cell[1]"/>
+ <!-- Multiple empty cells with the same style will be moved to one cell with a 'table:number-columns-repeated' attribute -->
+ <xsl:variable name="cell-is-repeatable" select="not($nextCell/*) and not($nextCell/text()) and ((current()/@ss:StyleID = $nextCell/@ss:StyleID) or (not(current()/@ss:StyleID) and not($nextCell/@ss:StyleID))) and not($nextCell/@ss:Index)"/>
+ <xsl:choose>
+ <xsl:when test="$cell-is-repeatable">
+ <xsl:apply-templates select="$nextCell" mode="skip">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-written" select="$col-pos-written + 1"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$nextCell" mode="selected">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-written" select="$col-pos-written + 1"/>
+ <xsl:with-param name="col-pos-current" select="$col-pos-written + 1"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="create-table-cell-attributes">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="col-pos-max"/>
+ <xsl:param name="col-pos"/>
+ <xsl:param name="row-pos"/>
+
+ <xsl:choose>
+ <xsl:when test="$condition-pos-str">
+ <xsl:call-template name="get-condition-dependent-cell-attributes">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="current-pos-str" select="concat('R',$row-pos,'C',$col-pos,',')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="@ss:StyleID">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="@ss:StyleID"/>
+ </xsl:attribute>
+ </xsl:when>
+ <!-- inherit style from parent row style-->
+ <xsl:when test="../@ss:StyleID">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="../@ss:StyleID"/>
+ </xsl:attribute>
+ </xsl:when>
+ <!-- if no correspondent column style exisit.. -->
+ <!-- inherit style from parent table style -->
+ <xsl:when test="../../@ss:StyleID">
+ <!-- function to give in col-pos and get back column style -->
+ <xsl:variable name="relatedColumnStyle">
+ <xsl:call-template name="get-related-column-style">
+ <!-- the given position of the cell in the table, a column style is searched -->
+ <xsl:with-param name="calculatedCellPosition" select="$col-pos" />
+ <!-- all columns in XML -->
+ <xsl:with-param name="columnXMLNodes" select="../../ss:Column"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$relatedColumnStyle = ''">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="../../@ss:StyleID"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@ss:MergeAcross or @ss:MergeDown">
+ <xsl:choose>
+ <xsl:when test="@ss:MergeAcross">
+ <xsl:attribute name="table:number-columns-spanned">
+ <xsl:value-of select="@ss:MergeAcross + 1"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:number-columns-spanned">1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@ss:MergeDown">
+ <xsl:attribute name="table:number-rows-spanned">
+ <xsl:value-of select="@ss:MergeDown+1"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:number-rows-spanned">1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@ss:Formula">
+ <!-- formula translation from Excel to Calc -->
+ <xsl:variable name="calc-formula">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$col-pos"/>
+ <xsl:with-param name="expression" select="@ss:Formula"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="table:formula">
+ <xsl:value-of select="$calc-formula"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ss:Data">
+ <xsl:variable name="data-format">
+ <xsl:value-of select="key('Style', @ss:StyleID)/ss:NumberFormat/@ss:Format"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="ss:Data/@ss:Type = 'Number'">
+ <xsl:choose>
+ <xsl:when test="$data-format = 'Percent' or contains( $data-format, '%')">
+ <xsl:attribute name="office:value-type">percentage</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(key('Style', @ss:StyleID)/ss:NumberFormat/@ss:Format, 'Currency')">
+ <xsl:attribute name="office:value-type">currency</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="office:value-type">float</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="office:value">
+ <xsl:value-of select="ss:Data"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="ss:Data/@ss:Type = 'DateTime'">
+ <xsl:choose>
+ <xsl:when test="(contains( $data-format, 'Date') or contains($data-format,'y') or contains($data-format,'g') or contains($data-format,'d') or contains($data-format,'e') or starts-with( substring( ss:Data, 11), 'T00:00:00.000' ) ) and (not (contains( $data-format, 'Time') ) )">
+ <xsl:attribute name="office:value-type">date</xsl:attribute>
+ <xsl:attribute name="office:date-value">
+ <xsl:value-of select="substring-before(ss:Data, 'T')"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="office:value-type">time</xsl:attribute>
+ <xsl:attribute name="office:time-value">
+ <xsl:value-of select="concat('P',substring(ss:Data, 11, 3), 'H', substring(ss:Data, 15, 2), 'M', substring(ss:Data, 18,2), 'S')"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="ss:Data/@ss:Type = 'Boolean'">
+ <xsl:attribute name="office:value-type">boolean</xsl:attribute>
+ <xsl:attribute name="office:boolean-value">
+ <xsl:choose>
+ <xsl:when test="ss:Data = '1'">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="ss:Data/@ss:Type = 'String'">
+ <xsl:attribute name="office:value-type">string</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="get-related-column-style">
+ <!-- the given position of the cell in the table, a column style is searched -->
+ <xsl:param name="calculatedCellPosition" />
+ <!-- the current position of the column as XML node -->
+ <xsl:param name="columnXMLPosition" select="1" />
+ <!-- all columns in XML -->
+ <xsl:param name="columnXMLNodes" />
+ <!-- the ending column position of the earlier column style in the table -->
+ <xsl:param name="earlierCalculatedColumnEnd" select="0" />
+
+ <!-- the current column as XML node -->
+ <xsl:variable name="columnXMLNode" select="$columnXMLNodes[1]" />
+ <xsl:if test="$columnXMLNodes and count($columnXMLNodes) > 0">
+ <!-- the starting column position of the style in the table -->
+ <xsl:variable name="calculatedColumnStart">
+ <!-- if ss:Index exists, this is the start of the column -->
+ <xsl:choose>
+ <xsl:when test="$columnXMLNode/@ss:Index">
+ <xsl:value-of select="$columnXMLNode/@ss:Index" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$earlierCalculatedColumnEnd + 1" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- the ending column position of the style in the table -->
+ <xsl:variable name="calculatedColumnEnd">
+ <xsl:choose>
+ <xsl:when test="$columnXMLNode/@ss:Span">
+ <xsl:value-of select="$calculatedColumnStart + $columnXMLNode/@ss:Span" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$calculatedColumnStart" />
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$calculatedColumnStart &gt;= $calculatedCellPosition and $calculatedCellPosition &lt;= $calculatedColumnEnd">
+ <xsl:value-of select="$columnXMLNode/@ss:StyleID"/>
+ </xsl:when>
+ <xsl:when test="$calculatedColumnEnd &lt;= $calculatedCellPosition">
+ <xsl:call-template name="get-related-column-style">
+ <!-- the given position of the cell in the table, a column style is searched -->
+ <xsl:with-param name="calculatedCellPosition" select="$calculatedCellPosition" />
+ <!-- all columns in XML -->
+ <xsl:with-param name="columnXMLNodes" select="$columnXMLNodes[position() != 1]"/>
+ <!-- the ending column position of the style in the table -->
+ <xsl:with-param name="earlierCalculatedColumnEnd" select="$calculatedColumnEnd" />
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="create-table-cell-content">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="col-pos-max"/>
+ <xsl:param name="col-pos"/>
+ <xsl:param name="row-pos"/>
+ <xsl:apply-templates select="ss:Comment" mode="body"/>
+ <xsl:if test="ss:Data">
+ <text:p>
+ <xsl:call-template name="create-data-content">
+ <xsl:with-param name="style-id" select="@ss:StyleID"/>
+ </xsl:call-template>
+ </text:p>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="create-data-content">
+ <xsl:param name="style-id" select="@ss:StyleID"/>
+ <!-- collect every HTML 3.2 children, which are not empty -->
+ <xsl:variable name="html-children" select="ss:Data/descendant-or-self::*[namespace-uri()='http://www.w3.org/TR/REC-html40'][string-length(text()) != 0]"/>
+ <xsl:choose>
+ <xsl:when test="$html-children and $html-children != ''">
+ <xsl:for-each select="$html-children">
+ <text:span text:style-name="{concat($style-id, 'T', count(preceding::ss:Data[child::html:*]), '_', position())}">
+ <xsl:copy-of select="text()"/>
+ </text:span>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="contains(key('Style', $style-id)/ss:Font/@ss:VerticalAlign, 'script')">
+ <text:span text:style-name="{concat($style-id, 'T0')}">
+ <xsl:choose>
+ <xsl:when test="@ss:HRef">
+ <text:a xlink:href="{@ss:HRef}">
+ <xsl:value-of select="ss:Data"/>
+ </text:a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="ss:Data"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </text:span>
+ </xsl:when>
+ <xsl:when test="@ss:HRef">
+ <text:a xlink:href="{@ss:HRef}">
+ <xsl:value-of select="ss:Data"/>
+ </text:a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="ss:Data"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-condition-dependent-cell-attributes">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="current-pos-str"/>
+ <xsl:variable name="temp-str">
+ <xsl:call-template name="condition-str">
+ <xsl:with-param name="param-str" select="substring-before($condition-pos-str,$current-pos-str)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="style-name">
+ <xsl:choose>
+ <xsl:when test="contains($condition-pos-str, $current-pos-str) and starts-with($temp-str, 'c')">
+ <xsl:value-of select="concat(@ss:StyleID, '-ce', substring-after($temp-str, 'c'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="@ss:StyleID">
+ <xsl:value-of select="@ss:StyleID"/>
+ </xsl:when>
+ <xsl:when test="../@ss:StyleID">
+ <xsl:value-of select="../@ss:StyleID"/>
+ </xsl:when>
+ <xsl:when test="../../@ss:StyleID">
+ <xsl:value-of select="../../@ss:StyleID"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="starts-with($style-name, 'val')">
+ <xsl:attribute name="table:content-validation-name">
+ <xsl:value-of select="$style-name"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="not($style-name = '')">
+ <xsl:attribute name="table:style-name">
+ <xsl:value-of select="$style-name"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <!-- maybe multi functions occur at same time in the same Cell, such as ConditionalFormatting and DataValidation -->
+ <xsl:if test="contains($condition-pos-str, $current-pos-str)">
+ <xsl:choose>
+ <xsl:when test="starts-with($temp-str, 'v')">
+ <xsl:attribute name="table:content-validation-name">
+ <xsl:value-of select="concat('val', substring-after($temp-str, 'v'))"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="after-str" select="substring-after($condition-pos-str, $current-pos-str)"/>
+ <xsl:if test="contains( $after-str, $current-pos-str)">
+ <xsl:variable name="temp-str-2">
+ <xsl:call-template name="condition-str">
+ <xsl:with-param name="param-str" select="substring-before( $after-str,$current-pos-str)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="starts-with( $temp-str-2, 'v')">
+ <xsl:attribute name="table:content-validation-name">
+ <xsl:value-of select="concat('val', substring-after($temp-str-2, 'v'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="validation-row-column-string">
+ <!-- returns a string with structer,including row\column position by extraction from x:DataValidation -->
+ <xsl:param name="last"/>
+ <xsl:param name="total"/>
+ <xsl:param name="index"/>
+ <xsl:variable name="table-pos" select="count(preceding-sibling::ss:Worksheet)+1"/>
+ <xsl:variable name="current">
+ <xsl:call-template name="parse-range">
+ <xsl:with-param name="range-value" select="./x:DataValidation[position() = $index]/x:Range"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="current-value" select="concat('(v',$index,':', $current,');')"/>
+ <xsl:if test="$index &lt; $total">
+ <xsl:call-template name="validation-row-column-string">
+ <xsl:with-param name="last" select="concat($last, $current-value)"/>
+ <xsl:with-param name="total" select="$total"/>
+ <xsl:with-param name="index" select="$index + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$index = $total">
+ <xsl:value-of select="concat($last, $current-value)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="condition-row-column-string">
+ <!-- returns a string with structer,including row\column position by extraction from x:ConditionalFormatting -->
+ <xsl:param name="last"/>
+ <xsl:param name="total"/>
+ <xsl:param name="index"/>
+ <xsl:variable name="table-pos" select="count(preceding-sibling::ss:Worksheet)+1"/>
+ <xsl:variable name="current">
+ <xsl:call-template name="parse-range">
+ <xsl:with-param name="range-value" select="./x:ConditionalFormatting[position() = $index]/x:Range"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="current-value" select="concat('(c',$table-pos,'-',$index,':', $current,');')"/>
+ <xsl:if test="$index &lt; $total">
+ <xsl:call-template name="condition-row-column-string">
+ <xsl:with-param name="last" select="concat($last, $current-value)"/>
+ <xsl:with-param name="total" select="$total"/>
+ <xsl:with-param name="index" select="$index + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$index = $total">
+ <xsl:value-of select="concat($last, $current-value)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="parse-range">
+ <!-- returns a string,input param:the value of x:Range -->
+ <xsl:param name="range-value"/>
+ <xsl:param name="last"/>
+ <xsl:variable name="first-pit">
+ <xsl:choose>
+ <xsl:when test="contains($range-value,',')">
+ <xsl:value-of select="substring-before($range-value,',')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$range-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="current">
+ <xsl:choose>
+ <xsl:when test="contains($first-pit,':')">
+ <xsl:variable name="R-start" select="substring-before(substring-after($first-pit,'R'),'C')"/>
+ <xsl:variable name="C-start" select="substring-before(substring-after($first-pit,'C'),':')"/>
+ <xsl:variable name="second-pit" select="substring-after($first-pit,':')"/>
+ <xsl:variable name="R-end" select="substring-before(substring-after($second-pit,'R'),'C')"/>
+ <xsl:variable name="C-end" select="substring-after($second-pit,'C')"/>
+ <xsl:variable name="the-str">
+ <xsl:call-template name="condition-rc-str">
+ <xsl:with-param name="r-start" select="$R-start"/>
+ <xsl:with-param name="r-end" select="$R-end"/>
+ <xsl:with-param name="c-start" select="$C-start"/>
+ <xsl:with-param name="c-end" select="$C-end"/>
+ <xsl:with-param name="last" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$the-str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($first-pit,',')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($range-value,',')">
+ <xsl:call-template name="parse-range">
+ <xsl:with-param name="range-value" select="substring-after($range-value,',')"/>
+ <xsl:with-param name="last" select="concat($last,$current)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($last,$current)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="condition-rc-str">
+ <!-- dealing the range of row\column -->
+ <xsl:param name="r-start"/>
+ <xsl:param name="r-end"/>
+ <xsl:param name="c-start"/>
+ <xsl:param name="c-end"/>
+ <xsl:param name="last"/>
+ <xsl:variable name="current">
+ <xsl:call-template name="condition-c-str">
+ <xsl:with-param name="rc-str" select="concat('R',$r-start)"/>
+ <xsl:with-param name="start" select="$c-start"/>
+ <xsl:with-param name="end" select="$c-end"/>
+ <xsl:with-param name="last" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$r-start &lt; $r-end">
+ <xsl:call-template name="condition-rc-str">
+ <xsl:with-param name="r-start" select="$r-start + 1"/>
+ <xsl:with-param name="r-end" select="$r-end"/>
+ <xsl:with-param name="c-start" select="$c-start"/>
+ <xsl:with-param name="c-end" select="$c-end"/>
+ <xsl:with-param name="last" select="concat($last,$current)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$r-start = $r-end">
+ <xsl:value-of select="concat($last,$current)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="condition-c-str">
+ <!-- return value for the template condition-rc-str -->
+ <xsl:param name="rc-str"/>
+ <xsl:param name="start"/>
+ <xsl:param name="end"/>
+ <xsl:param name="last"/>
+ <xsl:variable name="current" select="concat($rc-str,'C',$start,',')"/>
+ <xsl:if test="$start &lt; $end">
+ <xsl:call-template name="condition-c-str">
+ <xsl:with-param name="rc-str" select="$rc-str"/>
+ <xsl:with-param name="start" select="$start + 1"/>
+ <xsl:with-param name="end" select="$end"/>
+ <xsl:with-param name="last" select="concat($last,$current)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$start = $end">
+ <xsl:value-of select="concat($last,$current)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="ss:Data">
+ <xsl:for-each select="descendant-or-self::*[namespace-uri()='http://www.w3.org/TR/REC-html40'][string-length(text()) != 0]">
+ <style:style style:name="{concat(ancestor::ss:Cell/@ss:StyleID,'T',count(preceding::ss:Data[child::html:*]), '_', position())}" style:family="text">
+ <xsl:element name="style:text-properties">
+ <xsl:if test="ancestor-or-self::html:Font/@html:Face">
+ <xsl:attribute name="style:font-name">
+ <xsl:value-of select="ancestor-or-self::html:Font/@html:Face"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::html:Font/@html:Size">
+ <xsl:attribute name="fo:font-size">
+ <xsl:value-of select="concat(ancestor-or-self::html:Font/@html:Size,'pt')"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:font-size-asian">
+ <xsl:value-of select="concat(ancestor-or-self::html:Font/@html:Size,'pt')"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:font-size-complex">
+ <xsl:value-of select="concat(ancestor-or-self::html:Font/@html:Size,'pt')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::html:Font/@html:Color">
+ <xsl:attribute name="fo:color">
+ <xsl:value-of select="ancestor-or-self::html:Font/@html:Color"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::html:B">
+ <xsl:attribute name="fo:font-weight">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-asian">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-complex">bold</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::html:I">
+ <xsl:attribute name="fo:font-style">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-asian">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-complex">italic</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::html:U">
+ <xsl:attribute name="style:text-underline-type">single</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::html:S">
+ <xsl:attribute name="style:text-line-through-style">solid</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::html:Sup">
+ <xsl:attribute name="style:text-position">33% 58%</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="ancestor-or-self::html:Sub">
+ <xsl:attribute name="style:text-position">-33% 58%</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </style:style>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="get-pos-content">
+ <xsl:param name="content"/>
+ <xsl:param name="pos"/>
+ <xsl:choose>
+ <xsl:when test="$pos = 'left'">
+ <xsl:choose>
+ <xsl:when test="contains($content,'&amp;C')">
+ <xsl:value-of select="substring-before( substring-after( $content, '&amp;L'), '&amp;C')"/>
+ </xsl:when>
+ <xsl:when test="contains($content,'&amp;R')">
+ <xsl:value-of select="substring-before( substring-after( $content, '&amp;L'), '&amp;R')"/>
+ </xsl:when>
+ <xsl:when test="contains($content,'&amp;L')">
+ <xsl:value-of select="substring-after( $content, '&amp;L')"/>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$pos = 'center'">
+ <xsl:choose>
+ <xsl:when test="contains($content,'&amp;R')">
+ <xsl:value-of select="substring-before( substring-after( $content, '&amp;C'), '&amp;R')"/>
+ </xsl:when>
+ <xsl:when test="contains($content,'&amp;C')">
+ <xsl:value-of select="substring-after( $content, '&amp;C')"/>
+ </xsl:when>
+ <xsl:when test="contains($content,'&amp;L')"/>
+ <xsl:otherwise>
+ <xsl:value-of select="$content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$pos = 'right'">
+ <xsl:value-of select="substring-after( $content, '&amp;R')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="@x:Data">
+ <xsl:variable name="style-name-header">
+ <xsl:value-of select="concat(ancestor::ss:Worksheet/@ss:Name, substring(name(..),1,1))"/>
+ </xsl:variable>
+ <xsl:variable name="left-style-data">
+ <xsl:call-template name="get-pos-content">
+ <xsl:with-param name="content" select="."/>
+ <xsl:with-param name="pos" select="'left'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="string-length($left-style-data)&gt;0 and contains($left-style-data,'&amp;')">
+ <xsl:call-template name="create-header-footer-style">
+ <xsl:with-param name="style-name-header" select="concat($style-name-header,'L')"/>
+ <xsl:with-param name="style-data" select="$left-style-data"/>
+ <xsl:with-param name="index" select="0"/>
+ <xsl:with-param name="current-pos" select="1"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:variable name="center-style-data">
+ <xsl:call-template name="get-pos-content">
+ <xsl:with-param name="content" select="."/>
+ <xsl:with-param name="pos" select="'center'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="string-length($center-style-data)&gt;0 and contains($center-style-data,'&amp;')">
+ <xsl:call-template name="create-header-footer-style">
+ <xsl:with-param name="style-name-header" select="concat($style-name-header,'C')"/>
+ <xsl:with-param name="style-data" select="$center-style-data"/>
+ <xsl:with-param name="index" select="0"/>
+ <xsl:with-param name="current-pos" select="1"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:variable name="right-style-data">
+ <xsl:call-template name="get-pos-content">
+ <xsl:with-param name="content" select="."/>
+ <xsl:with-param name="pos" select="'right'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="string-length($right-style-data)&gt;0 and contains($right-style-data,'&amp;')">
+ <xsl:call-template name="create-header-footer-style">
+ <xsl:with-param name="style-name-header" select="concat($style-name-header,'R')"/>
+ <xsl:with-param name="style-data" select="$right-style-data"/>
+ <xsl:with-param name="index" select="0"/>
+ <xsl:with-param name="current-pos" select="1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="create-header-footer-style">
+ <xsl:param name="style-name-header"/>
+ <xsl:param name="style-data"/>
+ <xsl:param name="index"/>
+ <xsl:param name="current-pos"/>
+ <xsl:variable name="current-style-data">
+ <xsl:value-of select="substring($style-data,$current-pos)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="starts-with($current-style-data,'&amp;D') or starts-with($current-style-data,'&amp;T') or starts-with($current-style-data,'&amp;P') or starts-with($current-style-data,'&amp;N') or starts-with($current-style-data,'&amp;A') or starts-with($current-style-data,'&amp;F') or starts-with($current-style-data,'&amp;Z')">
+ <xsl:call-template name="create-header-footer-style">
+ <xsl:with-param name="style-name-header" select="$style-name-header"/>
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="index" select="$index"/>
+ <xsl:with-param name="current-pos" select="$current-pos +2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;')">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">
+ <xsl:value-of select="concat($style-name-header,$index)"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ <xsl:element name="style:text-properties">
+ <xsl:call-template name="process-header-footer-style-properties">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ <xsl:variable name="next-style-header-pos">
+ <xsl:call-template name="get-current-content-pos">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="create-header-footer-style">
+ <xsl:with-param name="style-name-header" select="$style-name-header"/>
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="index" select="$index+1"/>
+ <xsl:with-param name="current-pos" select="$next-style-header-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains($current-style-data,'&amp;')">
+ <xsl:variable name="temp" select="substring-before($current-style-data,'&amp;')"/>
+ <xsl:call-template name="create-header-footer-style">
+ <xsl:with-param name="style-name-header" select="$style-name-header"/>
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="index" select="$index"/>
+ <xsl:with-param name="current-pos" select="string-length($temp)+$current-pos"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="process-header-footer-style-properties">
+ <xsl:param name="style-data"/>
+ <xsl:param name="current-pos"/>
+ <xsl:variable name="current-style-data">
+ <xsl:value-of select="substring($style-data,$current-pos)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- stack operations necessary -->
+ <xsl:when test="starts-with($current-style-data,'&amp;&quot;')">
+ <xsl:attribute name="style:font-name">
+ <xsl:value-of select="substring-before(substring-after($current-style-data,'&amp;&quot;'),',')"/>
+ </xsl:attribute>
+ <xsl:if test="contains(substring-before(substring-after($current-style-data,','),'&quot;'),'Bold')">
+ <xsl:attribute name="fo:font-weight">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-asian">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-complex">bold</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains(substring-before(substring-after($current-style-data,','),'&quot;'),'Italic')">
+ <xsl:attribute name="fo:font-style">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-asian">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-complex">italic</xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="temp" select="substring-before(substring($style-data,$current-pos+2),'&quot;')"/>
+ <xsl:call-template name="process-header-footer-style-properties">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="string-length($temp)+$current-pos+3"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;0') or starts-with($current-style-data,'&amp;1') or starts-with($current-style-data,'&amp;2') or starts-with($current-style-data,'&amp;3') or starts-with($current-style-data,'&amp;4') or starts-with($current-style-data,'&amp;5') or starts-with($current-style-data,'&amp;6') or starts-with($current-style-data,'&amp;7') or starts-with($current-style-data,'&amp;8') or starts-with($current-style-data,'&amp;9')">
+ <xsl:variable name="font-size-length">
+ <xsl:call-template name="get-digit-length">
+ <xsl:with-param name="complexive-string" select="substring-after($current-style-data,'&amp;')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="fo:font-size">
+ <xsl:value-of select="concat(substring($current-style-data,2,$font-size-length),'pt')"/>
+ </xsl:attribute>
+ <xsl:call-template name="process-header-footer-style-properties">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos + 1 + $font-size-length"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- dont' consider tangled or adjoined '&X' and '&Y', '&U' & '&E', processing-check is necessary, too complex. :( -->
+ <xsl:when test="starts-with($current-style-data,'&amp;X')">
+ <xsl:variable name="superscript-count-before">
+ <xsl:call-template name="get-substyle-count-in-data">
+ <xsl:with-param name="style-data" select="substring($style-data,1,$current-pos)"/>
+ <xsl:with-param name="substyle" select="'&amp;X'"/>
+ <xsl:with-param name="count" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$superscript-count-before mod 2 = 0">
+ <xsl:attribute name="style:text-position">33% 58%</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="process-header-footer-style-properties">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos + 2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;B')">
+ <xsl:variable name="subscript-count-before">
+ <xsl:call-template name="get-substyle-count-in-data">
+ <xsl:with-param name="style-data" select="substring($style-data,1,$current-pos)"/>
+ <xsl:with-param name="substyle" select="'&amp;B'"/>
+ <xsl:with-param name="count" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$subscript-count-before mod 2 = 0">
+ <xsl:attribute name="fo:font-weight">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-asian">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-complex">bold</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="process-header-footer-style-properties">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos + 2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;Y')">
+ <xsl:variable name="subscript-count-before">
+ <xsl:call-template name="get-substyle-count-in-data">
+ <xsl:with-param name="style-data" select="substring($style-data,1,$current-pos)"/>
+ <xsl:with-param name="substyle" select="'&amp;Y'"/>
+ <xsl:with-param name="count" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$subscript-count-before mod 2 = 0">
+ <xsl:attribute name="style:text-position">-33% 58%</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="process-header-footer-style-properties">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos + 2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;S')">
+ <xsl:variable name="strikethrough-count-before">
+ <xsl:call-template name="get-substyle-count-in-data">
+ <xsl:with-param name="style-data" select="substring($style-data,1,$current-pos)"/>
+ <xsl:with-param name="substyle" select="'&amp;S'"/>
+ <xsl:with-param name="count" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$strikethrough-count-before mod 2 = 0">
+ <xsl:attribute name="style:text-line-through-style">solid</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="process-header-footer-style-properties">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos + 2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;U')">
+ <xsl:variable name="single-underline-count-before">
+ <xsl:call-template name="get-substyle-count-in-data">
+ <xsl:with-param name="style-data" select="substring($style-data,1,$current-pos)"/>
+ <xsl:with-param name="substyle" select="'&amp;U'"/>
+ <xsl:with-param name="count" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$single-underline-count-before mod 2 = 0">
+ <xsl:attribute name="style:text-underline-type">single</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="process-header-footer-style-properties">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos + 2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;E')">
+ <xsl:variable name="double-underline-count-before">
+ <xsl:call-template name="get-substyle-count-in-data">
+ <xsl:with-param name="style-data" select="substring($style-data,1,$current-pos)"/>
+ <xsl:with-param name="substyle" select="'&amp;E'"/>
+ <xsl:with-param name="count" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$double-underline-count-before mod 2 = 0">
+ <xsl:attribute name="style:text-underline-type">double</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="process-header-footer-style-properties">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos + 2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-substyle-count-in-data">
+ <xsl:param name="style-data"/>
+ <xsl:param name="substyle"/>
+ <xsl:param name="count"/>
+ <xsl:choose>
+ <xsl:when test="contains($style-data,$substyle)">
+ <xsl:call-template name="get-substyle-count-in-data">
+ <xsl:with-param name="style-data" select="substring-after($style-data,$substyle)"/>
+ <xsl:with-param name="substyle" select="$substyle"/>
+ <xsl:with-param name="count" select="$count+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$count"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-current-content-pos">
+ <xsl:param name="style-data"/>
+ <xsl:param name="current-pos"/>
+ <xsl:variable name="current-style-data">
+ <xsl:value-of select="substring($style-data,$current-pos)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="starts-with($current-style-data,'&amp;X') or starts-with($current-style-data,'&amp;Y') or starts-with($current-style-data,'&amp;S') or starts-with($current-style-data,'&amp;U') or starts-with($current-style-data,'&amp;E') or starts-with($current-style-data,'&amp;B')">
+ <xsl:call-template name="get-current-content-pos">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos+2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;0') or starts-with($current-style-data,'&amp;1') or starts-with($current-style-data,'&amp;2') or starts-with($current-style-data,'&amp;3') or starts-with($current-style-data,'&amp;4') or starts-with($current-style-data,'&amp;5') or starts-with($current-style-data,'&amp;6') or starts-with($current-style-data,'&amp;7') or starts-with($current-style-data,'&amp;8') or starts-with($current-style-data,'&amp;9')">
+ <xsl:variable name="font-size-length">
+ <xsl:call-template name="get-digit-length">
+ <xsl:with-param name="complexive-string" select="substring-after($current-style-data,'&amp;')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="get-current-content-pos">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="$current-pos+1+$font-size-length"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="starts-with($current-style-data,'&amp;&quot;')">
+ <xsl:variable name="temp" select="substring-before(substring($style-data,$current-pos+2),'&quot;')"/>
+ <xsl:call-template name="get-current-content-pos">
+ <xsl:with-param name="style-data" select="$style-data"/>
+ <xsl:with-param name="current-pos" select="string-length($temp)+$current-pos+3"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$current-pos"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- OASIS OpenDocument Format change:
+ Excel "=RC4*6"
+ OOoXML "=$D22*6"
+ OASIS XML "oooc:=[.$D22]*6" -->
+ <xsl:template name="translate-expression">
+ <!-- return position or range for formula or other -->
+ <xsl:param name="cell-row-pos"/>
+ <!-- the position in row (vertical) of cell -->
+ <xsl:param name="cell-column-pos"/>
+ <!-- the position in column (horizontal of cell -->
+ <xsl:param name="expression"/>
+ <!-- recomposed expression containing cell positions after every conversion -->
+ <xsl:param name="is-range-mode" select="false()"/>
+ <!-- as mode changes a '[.' resp. ']' is written out -->
+ <xsl:param name="return-value"/>
+ <!-- expression of table:cell-range-address is different than formula (e.g. no prefix) -->
+ <xsl:param name="isRangeAddress"/>
+ <!-- determines if the currently processed expression is relative -->
+ <xsl:param name="isRelative" select="false()" />
+
+ <!-- value to be given out later -->
+ <!-- to judge whether this input expression contains any cell position to convert -->
+ <xsl:variable name="temp-range">
+ <xsl:choose>
+ <xsl:when test="$expression != ''">
+ <xsl:call-template name="parse-range-name">
+ <xsl:with-param name="expression" select="$expression"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- if $range-type = 1, then range is representing a sheet, function's name or separated symbol, but not cell position,
+ or if $range-type = 2, range should be handled because it contains certain cell position.
+ The first character marks the type of that expression. -->
+ <xsl:variable name="range-type">
+ <xsl:choose>
+ <xsl:when test="substring($temp-range, 1, 1) = '1'">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:when test="substring($temp-range, 1, 1) = '2'">
+ <xsl:value-of select="2"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- remove that added range type token -->
+ <xsl:variable name="current-range">
+ <xsl:value-of select="substring($temp-range, 2)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$range-type = 1">
+ <!-- Nothing to convert, so just join the front and behind strings. -->
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression">
+ <!-- get current converting position from $temp-token or $current-range, then join the expression. -->
+ <xsl:choose>
+ <xsl:when test="contains($current-range, '#$')">
+ <!-- because of recomposing of string, the $current-range may not be the pit
+ of $expression, so the char #$ should not be used for nominal -->
+ <xsl:variable name="temp-token">
+ <xsl:choose>
+ <xsl:when test="contains($current-range, '\')">
+ <xsl:value-of select="concat(']', substring-after($current-range, '#$'), &quot;&apos;&quot;)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after($current-range, '#$')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="substring-after($expression, $temp-token)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after($expression, $current-range)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="return-value">
+ <!-- react on range mode change (when to insert closing ']' or in case of '!' change the mode to RANGE and create open '[' -->
+ <xsl:choose>
+ <xsl:when test="$current-range = '=' and $return-value = '' and not($isRangeAddress)">
+ <xsl:text>oooc:=</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($current-range, '!') and not($isRangeAddress)">
+ <xsl:value-of select="concat($return-value, '[', $current-range)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$is-range-mode = 'true' and $current-range != ':' and not($isRangeAddress)">
+ <xsl:value-of select="concat($return-value, ']', substring-before($expression, $current-range), $current-range)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($return-value, substring-before($expression, $current-range), $current-range)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="is-range-mode">
+ <xsl:choose>
+ <!-- ! is the separator of worksheet and range
+ : is the separator for a cell range -->
+ <xsl:when test="contains($current-range, '!') or $current-range = ':'">
+ <xsl:value-of select="true()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="false()"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="isRangeAddress" select="$isRangeAddress"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- types of range to handle in $current-range, i.e. the cell position expression to convert
+ 1: special cell including row and column; e.g. R4C5
+ 2: whole row; e.g. R3
+ 3: whole column; e.g. C5
+ 4: other name not for cell or row/column; e.g. RANDOM() or something unknown
+ -->
+ <xsl:variable name="handle-type">
+ <xsl:choose>
+ <xsl:when test="starts-with($current-range, 'R')">
+ <!-- It's type 1 or type 2 or 4/unknown cell position. -->
+ <xsl:choose>
+ <xsl:when test="contains($current-range, 'C')">
+ <!-- It's type 1, specifying the cell position or 4/unknown -->
+ <xsl:variable name="part-type-r">
+ <xsl:call-template name="handle-type-number">
+ <xsl:with-param name="t-part" select="substring-before( substring-after($current-range, 'R'), 'C')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="part-type-c">
+ <xsl:call-template name="handle-type-number">
+ <xsl:with-param name="t-part" select="substring-after($current-range, 'C')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="($part-type-r = 1) and ($part-type-c = 1)">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="4"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- It's type 2 specifying the cell position, or 4/unknown. -->
+ <xsl:variable name="part-type">
+ <xsl:call-template name="handle-type-number">
+ <xsl:with-param name="t-part" select="substring-after($current-range, 'R')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$part-type = 1">
+ <xsl:value-of select="2"/>
+ </xsl:when>
+ <xsl:when test="$part-type = 2">
+ <xsl:value-of select="4"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="4"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with($current-range, 'C')">
+ <!-- It's type 3 of cell position, or 4/unknown -->
+ <xsl:variable name="part-type">
+ <xsl:call-template name="handle-type-number">
+ <xsl:with-param name="t-part" select="substring-after($current-range, 'C')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$part-type = 1">
+ <xsl:value-of select="3"/>
+ </xsl:when>
+ <xsl:when test="$part-type = 2">
+ <xsl:value-of select="4"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="4"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- It's type 4, not cell position -->
+ <xsl:value-of select="4"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- Start to convert that cell position expression, that cell position unit -->
+ <xsl:choose>
+ <xsl:when test="$handle-type = 1">
+ <!-- It's type 1, e.g. R1C2 -->
+ <!-- process the row part -->
+ <xsl:variable name="after-R">
+ <xsl:value-of select="substring(substring-after($current-range,'R'),1,1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <!-- found one cell unit -->
+ <xsl:when test="$after-R='C' or $after-R='[' or $after-R='0' or $after-R='1' or $after-R='2' or $after-R='3' or $after-R='4' or $after-R='5' or $after-R='6' or $after-R='7' or $after-R='8' or $after-R='9'">
+ <xsl:variable name="row-pos">
+ <xsl:choose>
+ <xsl:when test="$after-R='['">
+ <xsl:value-of select="$cell-row-pos+substring-before( substring-after($current-range,'R['),']')"/>
+ </xsl:when>
+ <xsl:when test="$after-R='C'">
+ <xsl:value-of select="$cell-row-pos"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before(substring-after($current-range,'R'),'C')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="row-pos-style">
+ <xsl:choose>
+ <xsl:when test="$after-R='[' or $after-R='C'">relative</xsl:when>
+ <xsl:otherwise>absolute</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- process the column part -->
+ <xsl:variable name="after-C">
+ <xsl:value-of select="substring(substring-after(substring-after($current-range,'R'),'C'),1,1)"/>
+ </xsl:variable>
+ <xsl:variable name="column-digit-length">
+ <xsl:choose>
+ <xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
+ <xsl:call-template name="get-digit-length">
+ <xsl:with-param name="complexive-string" select="substring-after(substring-after($current-range,'R'),'C')"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="column-pos">
+ <xsl:choose>
+ <xsl:when test="$after-C='['">
+ <xsl:value-of select="$cell-column-pos + substring-before(substring-after(substring-after($current-range,'R'),'C['),']')"/>
+ </xsl:when>
+ <xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
+ <xsl:value-of select="substring(substring-after(substring-after($current-range,'R'),'C'),1,$column-digit-length)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$cell-column-pos"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="column-pos-style">
+ <xsl:choose>
+ <xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">absolute</xsl:when>
+ <xsl:otherwise>relative</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="trans-unit">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="$column-pos"/>
+ <xsl:with-param name="row-number" select="$row-pos"/>
+ <xsl:with-param name="column-pos-style" select="$column-pos-style"/>
+ <xsl:with-param name="row-pos-style" select="$row-pos-style"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), $trans-unit)"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
+ <xsl:with-param name="return-value">
+ <xsl:choose>
+ <xsl:when test="$is-range-mode = 'true'">
+ <xsl:value-of select="concat($return-value, $name-unit)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($return-value, '[.', $name-unit)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="is-range-mode" select="true()"/>
+ <xsl:with-param name="isRangeAddress" select="$isRangeAddress"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), translate( substring-before(substring-after($expression, '('),'R'),',!', ';.'))"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($current-range,'R')"/>
+ <xsl:with-param name="return-value">
+ <xsl:choose>
+ <xsl:when test="$is-range-mode = 'true'">
+ <xsl:value-of select="concat($return-value, $name-unit)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($return-value, '[.', $name-unit)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="is-range-mode" select="true()"/>
+ <xsl:with-param name="isRangeAddress" select="$isRangeAddress"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$handle-type = 2">
+ <!-- It's type 2, e.g. R3 -->
+ <!-- process the range only including a whole row -->
+ <xsl:variable name="after-R">
+ <xsl:value-of select="substring(substring-after($current-range,'R'),1,1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$after-R='[' or $after-R='0' or $after-R='1' or $after-R='2' or $after-R='3' or $after-R='4' or $after-R='5' or $after-R='6' or $after-R='7' or $after-R='8' or $after-R='9'">
+ <xsl:variable name="row-number">
+ <xsl:choose>
+ <xsl:when test="$after-R = '['">
+ <xsl:value-of select="substring-before(substring-after($current-range, 'R['), ']')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after($current-range, 'R')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="row-pos">
+ <xsl:choose>
+ <xsl:when test="$after-R='['">
+ <xsl:value-of select="$cell-row-pos + $row-number"/>
+ </xsl:when>
+ <xsl:when test="$after-R='0' or $after-R='1' or $after-R='2' or $after-R='3' or $after-R='4' or $after-R='5' or $after-R='6' or $after-R='7' or $after-R='8' or $after-R='9'">
+ <xsl:value-of select="$row-number"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$cell-row-pos"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="trans-unit1">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="1"/>
+ <xsl:with-param name="row-number" select="$row-pos"/>
+ <xsl:with-param name="column-pos-style" select="'relative'"/>
+ <xsl:with-param name="row-pos-style" select="'relative'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="trans-unit2">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="256"/>
+ <xsl:with-param name="row-number" select="$row-pos"/>
+ <xsl:with-param name="column-pos-style" select="'relative'"/>
+ <xsl:with-param name="row-pos-style" select="'relative'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), $trans-unit1, ':', $trans-unit2)"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
+ <xsl:with-param name="return-value">
+ <xsl:choose>
+ <xsl:when test="$is-range-mode = 'true'">
+ <xsl:value-of select="concat($return-value, $name-unit)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($return-value, '[.', $name-unit)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="is-range-mode" select="true()"/>
+ <xsl:with-param name="isRangeAddress" select="$isRangeAddress"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), translate( substring-before($current-range,'R'),',!', ';.'),'R')"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($current-range,'R')"/>
+ <xsl:with-param name="return-value">
+ <xsl:choose>
+ <xsl:when test="$is-range-mode = 'true'">
+ <xsl:value-of select="concat($return-value, $name-unit)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($return-value, '[.', $name-unit)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="is-range-mode" select="true()"/>
+ <xsl:with-param name="isRangeAddress" select="$isRangeAddress"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$handle-type = 3">
+ <!-- It's type 3, e.g. C4 -->
+ <!-- process the range only including a whole column -->
+ <xsl:variable name="after-C">
+ <xsl:value-of select="substring(substring-after($current-range,'C'),1,1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$after-C='[' or $after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
+ <xsl:variable name="column-number">
+ <xsl:choose>
+ <xsl:when test="$after-C = '['">
+ <xsl:value-of select="substring-before(substring-after($current-range, 'C['), ']')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after($current-range, 'C')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="column-pos">
+ <xsl:choose>
+ <xsl:when test="$after-C='['">
+ <xsl:value-of select="$cell-column-pos + $column-number"/>
+ </xsl:when>
+ <xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
+ <xsl:value-of select="$column-number"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$cell-column-pos"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="trans-unit1">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="$column-pos"/>
+ <xsl:with-param name="row-number" select="1"/>
+ <xsl:with-param name="column-pos-style" select="'relative'"/>
+ <xsl:with-param name="row-pos-style" select="'relative'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="trans-unit2">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="$column-pos"/>
+ <xsl:with-param name="row-number" select="65565"/>
+ <xsl:with-param name="column-pos-style" select="'relative'"/>
+ <xsl:with-param name="row-pos-style" select="'relative'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), $trans-unit1, ':', $trans-unit2)"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
+ <xsl:with-param name="return-value">
+ <xsl:choose>
+ <xsl:when test="$is-range-mode = 'true'">
+ <xsl:value-of select="concat($return-value, $name-unit)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($return-value, '[.', $name-unit)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="is-range-mode" select="true()"/>
+ <xsl:with-param name="isRangeAddress" select="$isRangeAddress"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), translate( substring-before($current-range,'C'),',!', ';.'),'C')"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($current-range,'C')"/>
+ <xsl:with-param name="return-value">
+ <xsl:choose>
+ <xsl:when test="$is-range-mode = 'true'">
+ <xsl:value-of select="concat($return-value, $name-unit)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($return-value, '[.', $name-unit)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="is-range-mode" select="true()"/>
+ <xsl:with-param name="isRangeAddress" select="$isRangeAddress"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- It's unknown, so just jump over it -->
+ <xsl:variable name="next-pit" select="substring-after($expression, $current-range)"/>
+ <xsl:choose>
+ <xsl:when test="contains($next-pit, '+') or contains($next-pit, '-') or contains($next-pit, '*') or contains($next-pit, '/') or contains($next-pit, ')') or contains($next-pit, '^') or contains($next-pit, ':') or contains($next-pit, '&quot;') or contains($next-pit, ';') or contains($next-pit, ',') or contains($next-pit, '[')">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
+ <xsl:with-param name="return-value" select="concat($return-value, substring-before($expression, $current-range), $current-range)"/>
+ <xsl:with-param name="is-range-mode" select="false()"/>
+ <xsl:with-param name="isRangeAddress" select="$isRangeAddress"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- return the final range or formula -->
+ <xsl:choose>
+ <!-- in case the closing bracket of the range wasn't set, do it now -->
+ <xsl:when test="$is-range-mode = 'true' and $current-range = ''">
+ <xsl:value-of select="translate( concat($return-value, ']'),',!', ';.')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate( concat($return-value, substring-before($expression, $current-range), $current-range),',!', ';.')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="parse-range-name">
+ <!-- return the string or name for next handle. the type 1 is names of function, sheet, special separated symbol, not to parse as range; type 2 is the range including R/C to be parsed -->
+ <xsl:param name="expression"/>
+ <xsl:param name="return-value"/>
+ <xsl:variable name="first-one" select="substring($expression,1,1)"/>
+ <xsl:choose>
+ <xsl:when test="$first-one = '='">
+ <xsl:choose>
+ <xsl:when test="string-length(normalize-space($return-value)) &gt; 0">
+ <xsl:value-of select="concat('2', $return-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>1=</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$first-one='(' or $first-one='!' or $first-one='&amp;'">
+ <xsl:value-of select="concat('1', $return-value, $first-one)"/>
+ </xsl:when>
+ <xsl:when test="$first-one='['">
+ <xsl:choose>
+ <xsl:when test="starts-with(substring-after($expression, ']'), 'C')">
+ <xsl:call-template name="parse-range-name">
+ <xsl:with-param name="expression" select="substring-after($expression, ']')"/>
+ <xsl:with-param name="return-value" select="concat($return-value, substring-before($expression, ']'), ']')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains(substring-before($expression, ']'), '.') and contains(substring-after($expression, ']'), '!')">
+ <xsl:value-of select="concat('1', &quot;&apos;&quot;, substring-before(substring-after($expression, '['), ']'), &quot;&apos;&quot;, '#$', substring-before(substring-after($expression, ']'), '!'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('2', $return-value, substring-before($expression, ']'), ']')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$first-one='&quot;'">
+ <xsl:value-of select="concat('1', $first-one, substring-before(substring-after($expression, '&quot;'), '&quot;'), '&quot;')"/>
+ </xsl:when>
+ <xsl:when test="$first-one=&quot;&apos;&quot;">
+ <!-- here the string &quot;&apos;&quot; represents a char &apos; -->
+ <xsl:variable name="str-in" select="substring-before(substring-after($expression, &quot;&apos;&quot;), &quot;&apos;&quot;)"/>
+ <xsl:choose>
+ <!-- for file path transformation -->
+ <xsl:when test="contains($str-in, '\') and contains($str-in, '[') and contains($str-in, ']')">
+ <xsl:variable name="first-pos" select="substring-before($str-in, '[')"/>
+ <xsl:variable name="second-pos" select="substring-before(substring-after($str-in, '['), ']')"/>
+ <xsl:variable name="third-pos" select="substring-after($str-in, ']')"/>
+ <xsl:value-of select="concat('1', &quot;&apos;&quot;, $first-pos, $second-pos, &quot;&apos;&quot;, '#$', $third-pos)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('1', &quot;&apos;&quot;, $str-in, &quot;&apos;&quot;)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$first-one='+' or $first-one='-' or $first-one='*' or $first-one='/' or $first-one=')' or $first-one='^' or $first-one=':' or $first-one='&quot;' or $first-one=';' or $first-one=',' or $first-one='&gt;' or $first-one='&lt;'">
+ <xsl:choose>
+ <xsl:when test="$return-value = ''">
+ <xsl:value-of select="concat('1', $first-one)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('2', $return-value)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$expression = ''">
+ <xsl:value-of select="concat('2', $return-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="parse-range-name">
+ <xsl:with-param name="expression" select="substring($expression, 2, string-length($expression)-1)"/>
+ <xsl:with-param name="return-value" select="concat($return-value, substring($expression, 1, 1))"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="handle-type-number">
+ <!-- to handle the part between R and C, or after C in range string in translate-expression. return type: 1: number or cell range; 2: other, not for next step -->
+ <xsl:param name="t-part"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($t-part, '[')">
+ <xsl:variable name="tt-str" select="substring-before( substring-after( $t-part, '['), ']')"/>
+ <xsl:choose>
+ <xsl:when test="($tt-str &lt; 0) or ($tt-str &gt; 0) or ($tt-str = 0)">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="($t-part &lt; 0) or ($t-part &gt; 0) or ($t-part = 0)">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:when test="$t-part = ''">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="translate-unit">
+ <!-- convert cell position expression unit, R1C1, R3, C4 -->
+ <xsl:param name="column-number"/>
+ <xsl:param name="row-number"/>
+ <xsl:param name="column-pos-style"/>
+ <xsl:param name="row-pos-style"/>
+ <xsl:variable name="column-number1">
+ <xsl:value-of select="floor( $column-number div 26 )"/>
+ </xsl:variable>
+ <xsl:variable name="column-number2">
+ <xsl:value-of select="$column-number mod 26"/>
+ </xsl:variable>
+ <xsl:variable name="column-character1">
+ <xsl:call-template name="number-to-character">
+ <xsl:with-param name="number" select="$column-number1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="column-character2">
+ <xsl:call-template name="number-to-character">
+ <xsl:with-param name="number" select="$column-number2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <!-- position styles are 'absolute' or 'relative', -->
+ <xsl:choose>
+ <xsl:when test="$column-pos-style = 'absolute'">
+ <xsl:value-of select="concat( '$', $column-character1, $column-character2)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat( $column-character1, $column-character2)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$row-pos-style ='absolute'">
+ <xsl:value-of select="concat( '$', $row-number)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$row-number"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="number-to-character">
+ <xsl:param name="number"/>
+ <xsl:choose>
+ <xsl:when test="$number = 0"/>
+ <xsl:when test="$number = 1">A</xsl:when>
+ <xsl:when test="$number = 2">B</xsl:when>
+ <xsl:when test="$number = 3">C</xsl:when>
+ <xsl:when test="$number = 4">D</xsl:when>
+ <xsl:when test="$number = 5">E</xsl:when>
+ <xsl:when test="$number = 6">F</xsl:when>
+ <xsl:when test="$number = 7">G</xsl:when>
+ <xsl:when test="$number = 8">H</xsl:when>
+ <xsl:when test="$number = 9">I</xsl:when>
+ <xsl:when test="$number = 10">J</xsl:when>
+ <xsl:when test="$number = 11">K</xsl:when>
+ <xsl:when test="$number = 12">L</xsl:when>
+ <xsl:when test="$number = 13">M</xsl:when>
+ <xsl:when test="$number = 14">N</xsl:when>
+ <xsl:when test="$number = 15">O</xsl:when>
+ <xsl:when test="$number = 16">P</xsl:when>
+ <xsl:when test="$number = 17">Q</xsl:when>
+ <xsl:when test="$number = 18">R</xsl:when>
+ <xsl:when test="$number = 19">S</xsl:when>
+ <xsl:when test="$number = 20">T</xsl:when>
+ <xsl:when test="$number = 21">U</xsl:when>
+ <xsl:when test="$number = 22">V</xsl:when>
+ <xsl:when test="$number = 23">W</xsl:when>
+ <xsl:when test="$number = 24">X</xsl:when>
+ <xsl:when test="$number = 25">Y</xsl:when>
+ <xsl:when test="$number = 26">Z</xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-digit-length">
+ <xsl:param name="complexive-string"/>
+ <xsl:variable name="first-char">
+ <xsl:value-of select="substring( $complexive-string, 1, 1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-char = '1' or $first-char = '2' or $first-char = '3' or $first-char = '4' or $first-char = '5' or $first-char = '6' or $first-char = '7' or $first-char = '8' or $first-char = '9' or $first-char = '0' ">
+ <xsl:variable name="temp">
+ <xsl:call-template name="get-digit-length">
+ <xsl:with-param name="complexive-string" select="substring( $complexive-string, 2)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$temp+1"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="ss:Comment" mode="body">
+ <xsl:element name="office:annotation">
+ <xsl:if test="@ss:ShowAlways = '1'">
+ <xsl:attribute name="office:display">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@ss:Author">
+ <xsl:element name="dc:creator">
+ <xsl:value-of select="@ss:Author"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="ss:Data">
+ <text:p>
+ <xsl:call-template name="create-data-content">
+ <xsl:with-param name="style-id" select="@ss:StyleID"/>
+ </xsl:call-template>
+ </text:p>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Names">
+ <xsl:variable name="namedRanges" select="/ss:Workbook/ss:Worksheet/ss:Names/ss:NamedRange |
+ /ss:Workbook/ss:Names/ss:NamedRange" />
+ <xsl:if test="$namedRanges">
+ <table:named-expressions>
+ <xsl:for-each select="$namedRanges">
+ <xsl:choose>
+ <xsl:when test="contains( @ss:RefersTo, '!R')">
+ <xsl:variable name="referto">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="isRangeAddress" select="true()"/>
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="@ss:RefersTo"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:element name="table:named-range">
+ <xsl:attribute name="table:name">
+ <xsl:value-of select="@ss:Name"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:base-cell-address">
+ <xsl:variable name="worksheetName" select="translate(substring-before(@ss:RefersTo, '!'), '=', '$')" />
+ <xsl:call-template name="encode-as-cell-address">
+ <xsl:with-param name="string" select="concat($worksheetName,'.$A$1')"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="table:cell-range-address">
+ <xsl:call-template name="encode-as-cell-range-address">
+ <xsl:with-param name="string" select="translate( $referto, '=', '$')"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="@ss:Name = 'Print_Area'">
+ <xsl:attribute name="table:range-usable-as">print-range</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="expression-name">
+ <xsl:value-of select="@ss:Name"/>
+ </xsl:variable>
+ <xsl:element name="table:named-expression">
+ <xsl:attribute name="table:name">
+ <xsl:value-of select="@ss:Name"/>
+ </xsl:attribute>
+ <!-- just set '$Sheet1.$A$1' as named-expressions virtual base-cell-address -->
+ <xsl:attribute name="table:base-cell-address">
+ <xsl:variable name="worksheetName" select="following-sibling::ss:Worksheet/@ss:Name" />
+ <xsl:call-template name="encode-as-cell-address">
+ <xsl:with-param name="string" select="concat('$', $worksheetName,'.$A$1')"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="table:expression">
+ <xsl:value-of select="substring( @ss:RefersTo, 2)"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </table:named-expressions>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="transform-advanced-filter">
+ <!-- transform the params of Advanced Filter.it's different from AutoFilter -->
+ <xsl:param name="target-value"/>
+ <xsl:param name="condition-pos"/>
+ <xsl:element name="table:database-range">
+ <xsl:variable name="target-range">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="$target-value"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="condition-range">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="$condition-pos"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="table:target-range-address">
+ <xsl:value-of select="$target-range"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:name">
+ <xsl:value-of select="concat($target-range, '.filter')"/>
+ </xsl:attribute>
+ <xsl:element name="table:filter">
+ <xsl:attribute name="table:condition-source-range-address">
+ <xsl:value-of select="$condition-range"/>
+ </xsl:attribute>
+ <xsl:element name="table:filter-condition">
+ <xsl:attribute name="table:field-number">0</xsl:attribute>
+ <!-- The two attributes are recommended by OASIS -->
+ <xsl:attribute name="table:value"/>
+ <xsl:attribute name="table:operator"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="x:AutoFilter">
+ <!-- for AutoFilter -->
+ <xsl:element name="table:database-range">
+ <xsl:attribute name="table:name">
+ <xsl:value-of select="concat(../@ss:Name,'_',@x:Range)"/>
+ </xsl:attribute>
+ <xsl:variable name="range">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="@x:Range"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="table:target-range-address">
+ <xsl:value-of select="concat('$',../@ss:Name,'.',$range)"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:display-filter-buttons">true</xsl:attribute>
+ <xsl:element name="table:filter">
+ <xsl:call-template name="auto-filter-condition">
+ <xsl:with-param name="item-pos" select="1"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="total" select="count(./x:AutoFilterColumn)"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="auto-filter-condition">
+ <!--?? generate element of filter-condition for AutoCondition to get position of index -->
+ <xsl:param name="item-pos"/>
+ <xsl:param name="index"/>
+ <xsl:param name="total"/>
+ <xsl:if test="($index - 1 &lt; $total) or ($index - 1 = $total)">
+ <xsl:element name="table:filter-condition">
+ <xsl:attribute name="table:data-type">number</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]/@x:Type = 'TopPercent'">
+ <xsl:attribute name="table:operator">
+ <xsl:value-of select="'top value'"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:value">
+ <xsl:value-of select="./x:AutoFilterColumn[position() = $item-pos]/@x:Value"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]/@x:Type = 'Top'">
+ <xsl:attribute name="table:operator">
+ <xsl:value-of select="'top values'"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:value">
+ <xsl:value-of select="./x:AutoFilterColumn[position() = $item-pos]/@x:Value"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]/@x:Type = 'TopPercent'">
+ <xsl:attribute name="table:operator">
+ <xsl:value-of select="'top percent'"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:value">
+ <xsl:value-of select="./x:AutoFilterColumn[position() = $item-pos]/@x:Value"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]/@x:Type = 'Bottom'">
+ <xsl:attribute name="table:operator">
+ <xsl:value-of select="'bottom values'"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:value">
+ <xsl:value-of select="./x:AutoFilterColumn[position() = $item-pos]/@x:Value"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]/@x:Type = 'BottomPercent'">
+ <xsl:attribute name="table:operator">
+ <xsl:value-of select="'bottom percent'"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:value">
+ <xsl:value-of select="./x:AutoFilterColumn[position() = $item-pos]/@x:Value"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]/@x:Type = 'Custom'">
+ <xsl:choose>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]/x:AutoFilterOr or ./x:AutoFilterColumn[position() = $item-pos]/x:AutoFilterAnd">
+ <xsl:attribute name="table:operator">
+ <xsl:choose>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]//@x:Operator = 'Equals'">
+ <xsl:value-of select="'='"/>
+ </xsl:when>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]//@x:Operator = 'DoesNotEquals'">
+ <xsl:value-of select="'!='"/>
+ </xsl:when>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]//@x:Operator = 'GreaterThan'">
+ <xsl:value-of select="'&gt;'"/>
+ </xsl:when>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]//@x:Operator = 'GreaterThanOrEqual'">
+ <xsl:value-of select="'&gt;='"/>
+ </xsl:when>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]//@x:Operator = 'LessThan'">
+ <xsl:value-of select="'&lt;'"/>
+ </xsl:when>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]//@x:Operator = 'LessThanOrEqual'">
+ <xsl:value-of select="'&lt;='"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'='"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="table:value">
+ <xsl:value-of select="./x:AutoFilterColumn[position() = $item-pos]//@x:Value"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:operator">
+ <xsl:value-of select="'bottom percent'"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:value">
+ <xsl:value-of select="./x:AutoFilterColumn[position() = $item-pos]//@x:Value"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:attribute name="table:field-number">
+ <xsl:choose>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]/@x:Index">
+ <xsl:value-of select="./x:AutoFilterColumn[position() = $item-pos]/@x:Index - 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$index - 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="auto-filter-condition">
+ <xsl:with-param name="item-pos" select="$item-pos + 1"/>
+ <xsl:with-param name="index">
+ <xsl:choose>
+ <xsl:when test="./x:AutoFilterColumn[position() = $item-pos]/@x:Index">
+ <xsl:value-of select="./x:AutoFilterColumn[position() = $item-pos]/@x:Index + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$index + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="total" select="count(./x:AutoFilterColumn)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="x:Sorting">
+ <!-- for Sorting don't contains header row -->
+ <xsl:if test="contains(./x:Sort, 'Column')">
+ <xsl:element name="table:database-range">
+ <xsl:variable name="first-sort-letter" select="normalize-space(substring-after(./x:Sort[position() = 1], 'Column'))"/>
+ <xsl:variable name="second-sort-letter" select="normalize-space(substring-after(./x:Sort[position() = 2], 'Column'))"/>
+ <xsl:variable name="third-sort-letter" select="normalize-space(substring-after(./x:Sort[position() = 3], 'Column'))"/>
+ <xsl:variable name="first-sort-num">
+ <xsl:call-template name="letter-to-number">
+ <xsl:with-param name="source-letter" select="$first-sort-letter"/>
+ <xsl:with-param name="return-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="second-sort-num">
+ <xsl:call-template name="letter-to-number">
+ <xsl:with-param name="source-letter" select="$second-sort-letter"/>
+ <xsl:with-param name="return-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="third-sort-num">
+ <xsl:call-template name="letter-to-number">
+ <xsl:with-param name="source-letter" select="$third-sort-letter"/>
+ <xsl:with-param name="return-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="min-left-num">
+ <xsl:call-template name="min-of-three">
+ <xsl:with-param name="first-num" select="$first-sort-num"/>
+ <xsl:with-param name="second-num" select="$second-sort-num"/>
+ <xsl:with-param name="third-num" select="$third-sort-num"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="max-right-num">
+ <xsl:call-template name="max-of-three">
+ <xsl:with-param name="first-num" select="$first-sort-num"/>
+ <xsl:with-param name="second-num" select="$second-sort-num"/>
+ <xsl:with-param name="third-num" select="$third-sort-num"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="left-column">
+ <xsl:call-template name="number-to-letter">
+ <xsl:with-param name="source-number" select="$min-left-num"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="right-column">
+ <xsl:call-template name="number-to-letter">
+ <xsl:with-param name="source-number" select="$max-right-num"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="table:target-range-address">
+ <xsl:value-of select="concat(../@ss:Name, '.', $left-column, '1:', ../@ss:Name, '.', $right-column, '32000')"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:name">
+ <xsl:value-of select="concat(../@ss:Name, '.sort')"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:contains-header">
+ <xsl:value-of select="'false'"/>
+ </xsl:attribute>
+ <xsl:element name="table:sort">
+ <xsl:for-each select="./x:Sort">
+ <xsl:element name="table:sort-by">
+ <xsl:attribute name="table:field-number">
+ <xsl:value-of select="0"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:data-type">
+ <xsl:value-of select="'automatic'"/>
+ </xsl:attribute>
+ <xsl:variable name="after-sort" select="following-sibling::*"/>
+ <xsl:if test="name($after-sort[position() = 1]) = 'Descending'">
+ <xsl:attribute name="table:order">
+ <xsl:value-of select="'descending'"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="position() = 1">
+ <xsl:attribute name="table:field-number">
+ <xsl:value-of select="$first-sort-num - $min-left-num"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="position() = 2">
+ <xsl:attribute name="table:field-number">
+ <xsl:value-of select="$second-sort-num - $min-left-num"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="position() = 3">
+ <xsl:attribute name="table:field-number">
+ <xsl:value-of select="$third-sort-num - $min-left-num"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="letter-to-number">
+ <!-- convert letter to number for sorting. the string source-letter should be normalize-space and the first return-value should be zero -->
+ <xsl:param name="source-letter"/>
+ <xsl:param name="return-value"/>
+ <xsl:choose>
+ <xsl:when test="string-length($source-letter) &gt; 0">
+ <xsl:variable name="first-pit" select="substring($source-letter, 1, 1)"/>
+ <xsl:variable name="pit-number">
+ <xsl:choose>
+ <xsl:when test="($first-pit = 'A') or ($first-pit = 'a')">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'B') or ($first-pit = 'b')">
+ <xsl:value-of select="2"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'C') or ($first-pit = 'c')">
+ <xsl:value-of select="3"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'D') or ($first-pit = 'd')">
+ <xsl:value-of select="4"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'E') or ($first-pit = 'e')">
+ <xsl:value-of select="5"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'F') or ($first-pit = 'f')">
+ <xsl:value-of select="6"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'G') or ($first-pit = 'g')">
+ <xsl:value-of select="7"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'H') or ($first-pit = 'h')">
+ <xsl:value-of select="8"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'I') or ($first-pit = 'i')">
+ <xsl:value-of select="9"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'J') or ($first-pit = 'j')">
+ <xsl:value-of select="10"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'K') or ($first-pit = 'k')">
+ <xsl:value-of select="11"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'L') or ($first-pit = 'l')">
+ <xsl:value-of select="12"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'M') or ($first-pit = 'm')">
+ <xsl:value-of select="13"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'N') or ($first-pit = 'n')">
+ <xsl:value-of select="14"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'O') or ($first-pit = 'o')">
+ <xsl:value-of select="15"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'P') or ($first-pit = 'p')">
+ <xsl:value-of select="16"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'Q') or ($first-pit = 'q')">
+ <xsl:value-of select="17"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'R') or ($first-pit = 'r')">
+ <xsl:value-of select="18"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'S') or ($first-pit = 's')">
+ <xsl:value-of select="19"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'T') or ($first-pit = 't')">
+ <xsl:value-of select="20"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'U') or ($first-pit = 'u')">
+ <xsl:value-of select="21"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'V') or ($first-pit = 'v')">
+ <xsl:value-of select="22"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'W') or ($first-pit = 'w')">
+ <xsl:value-of select="23"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'X') or ($first-pit = 'x')">
+ <xsl:value-of select="24"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'Y') or ($first-pit = 'y')">
+ <xsl:value-of select="25"/>
+ </xsl:when>
+ <xsl:when test="($first-pit = 'Z') or ($first-pit = 'z')">
+ <xsl:value-of select="26"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="letter-to-number">
+ <xsl:with-param name="source-letter" select="substring($source-letter, 2)"/>
+ <xsl:with-param name="return-value">
+ <xsl:choose>
+ <xsl:when test="string-length($source-letter) &gt;= 2">
+ <xsl:value-of select="$pit-number * 26 + $return-value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$pit-number + $return-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="number-to-letter">
+ <!--?? convert number to letter for sorting -->
+ <xsl:param name="source-number"/>
+ <xsl:param name="return-value"/>
+ <xsl:variable name="current-value">
+ <xsl:call-template name="num-conv-letter">
+ <xsl:with-param name="first-pit">
+ <xsl:choose>
+ <xsl:when test="$source-number &gt; 26">
+ <xsl:value-of select="floor($source-number div 26)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$source-number"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$source-number &gt; 26">
+ <xsl:call-template name="number-to-letter">
+ <xsl:with-param name="source-number" select="$source-number mod 26"/>
+ <xsl:with-param name="return-value" select="concat($return-value,$current-value)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$source-number &lt; 27">
+ <xsl:value-of select="concat($return-value,$current-value)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="num-conv-letter">
+ <!-- convert number to number by pit of 26 -->
+ <xsl:param name="first-pit"/>
+ <xsl:choose>
+ <xsl:when test="$first-pit = 1">
+ <xsl:value-of select="'A'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 2">
+ <xsl:value-of select="'B'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 3">
+ <xsl:value-of select="'C'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 4">
+ <xsl:value-of select="'D'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 5">
+ <xsl:value-of select="'E'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 6">
+ <xsl:value-of select="'F'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 7">
+ <xsl:value-of select="'G'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 8">
+ <xsl:value-of select="'H'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 9">
+ <xsl:value-of select="'I'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 10">
+ <xsl:value-of select="'J'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 11">
+ <xsl:value-of select="'K'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 12">
+ <xsl:value-of select="'L'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 13">
+ <xsl:value-of select="'M'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 14">
+ <xsl:value-of select="'N'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 15">
+ <xsl:value-of select="'O'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 16">
+ <xsl:value-of select="'P'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 17">
+ <xsl:value-of select="'Q'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 18">
+ <xsl:value-of select="'R'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 19">
+ <xsl:value-of select="'S'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 20">
+ <xsl:value-of select="'T'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 21">
+ <xsl:value-of select="'U'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 22">
+ <xsl:value-of select="'V'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 23">
+ <xsl:value-of select="'W'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 24">
+ <xsl:value-of select="'X'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 25">
+ <xsl:value-of select="'Y'"/>
+ </xsl:when>
+ <xsl:when test="$first-pit = 26">
+ <xsl:value-of select="'Z'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'A'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="min-of-three">
+ <!-- return minest of three for sorting -->
+ <xsl:param name="first-num"/>
+ <xsl:param name="second-num"/>
+ <xsl:param name="third-num"/>
+ <xsl:variable name="first-comp">
+ <xsl:choose>
+ <xsl:when test="$first-num = 0">
+ <xsl:value-of select="$second-num"/>
+ </xsl:when>
+ <xsl:when test="($first-num &lt; $second-num) or ($second-num = 0)">
+ <xsl:value-of select="$first-num"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$second-num"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="second-comp">
+ <xsl:choose>
+ <xsl:when test="($first-comp &lt; $third-num) or ($third-num = 0)">
+ <xsl:value-of select="$first-comp"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$third-num"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$second-comp"/>
+ </xsl:template>
+ <xsl:template name="max-of-three">
+ <!-- return maxest of three for sorting -->
+ <xsl:param name="first-num"/>
+ <xsl:param name="second-num"/>
+ <xsl:param name="third-num"/>
+ <xsl:variable name="first-comp">
+ <xsl:choose>
+ <xsl:when test="$first-num &gt; $second-num">
+ <xsl:value-of select="$first-num"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$second-num"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="second-comp">
+ <xsl:choose>
+ <xsl:when test="$first-comp &gt; $third-num">
+ <xsl:value-of select="$first-comp"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$third-num"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$second-comp"/>
+ </xsl:template>
+ <xsl:template name="set-calculation">
+ <xsl:element name="table:calculation-settings">
+ <xsl:if test="/ss:Workbook/x:ExcelWorkbook/x:PrecisionAsDisplayed">
+ <xsl:attribute name="table:precision-as-shown">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/ss:Workbook/x:ExcelWorkbook/x:Date1904">
+ <table:null-date office:date-value="1904-01-01"/>
+ </xsl:if>
+ <xsl:element name="table:iteration">
+ <xsl:if test="/ss:Workbook/x:ExcelWorkbook/x:Iteration">
+ <xsl:attribute name="table:status">enable</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/ss:Workbook/x:ExcelWorkbook/x:MaxIterations">
+ <xsl:attribute name="table:steps">
+ <xsl:value-of select="/ss:Workbook/x:ExcelWorkbook/x:MaxIterations"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/ss:Workbook/x:ExcelWorkbook/x:MaxChange">
+ <xsl:attribute name="table:maximum-difference">
+ <xsl:value-of select="/ss:Workbook/x:ExcelWorkbook/x:MaxChange"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="x:DataValidation">
+ <!-- for DataValidation. don't support the attribute IMEMode currently. -->
+ <xsl:element name="table:content-validation">
+ <xsl:attribute name="table:name">
+ <xsl:value-of select="concat('val', position())"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:condition"><!-- don't support two type of qualifier: List, Custom -->
+ <xsl:variable name="qualifier-content">
+ <xsl:choose>
+ <xsl:when test="./x:Qualifier = 'NotBetween'">
+ <xsl:value-of select="concat('cell-content-is-not-between(', ./x:Min, ',', ./x:Max, ')')"/>
+ </xsl:when>
+ <xsl:when test="./x:Qualifier = 'NotEqual'">
+ <xsl:value-of select="concat('!=', ./x:Value)"/>
+ </xsl:when>
+ <xsl:when test="./x:Qualifier = 'Equal'">
+ <xsl:value-of select="concat('=', ./x:Value)"/>
+ </xsl:when>
+ <xsl:when test="./x:Qualifier = 'Less'">
+ <xsl:value-of select="concat('&lt;', ./x:Value)"/>
+ </xsl:when>
+ <xsl:when test="./x:Qualifier = 'Greater'">
+ <xsl:value-of select="concat('&gt;', ./x:Value)"/>
+ </xsl:when>
+ <xsl:when test="./x:Qualifier = 'GreaterOrEqual'">
+ <xsl:value-of select="concat('&gt;=', ./x:Value)"/>
+ </xsl:when>
+ <xsl:when test="./x:Qualifier = 'LessOrEqual'">
+ <xsl:value-of select="concat('&lt;=', ./x:Value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('cell-content-is-between(', ./x:Min, ',', ./x:Max)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="qualifier-value">
+ <xsl:choose>
+ <xsl:when test="./x:Type = 'Whole'">
+ <xsl:choose>
+ <xsl:when test="(./x:Qualifier = 'NotBetween') or ./x:Max">
+ <xsl:value-of select="concat('cell-content-is-whole-number() and ', $qualifier-content, ')')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('cell-content-is-whole-number() and ', 'cell-content()', $qualifier-content)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="./x:Type = 'Decimal'">
+ <xsl:choose>
+ <xsl:when test="(./x:Qualifier = 'NotBetween') or ./x:Max">
+ <xsl:value-of select="concat('cell-content-is-decimal-number() and ', $qualifier-content, ')')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('cell-content-is-decimal-number() and ', 'cell-content()', $qualifier-content)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="./x:Type = 'Date'">
+ <xsl:choose>
+ <xsl:when test="(./x:Qualifier = 'NotBetween') or ./x:Max">
+ <xsl:value-of select="concat('cell-content-is-date() and ', $qualifier-content, ')')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('cell-content-is-date() and ', 'cell-content()', $qualifier-content)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="./x:Type = 'Time'">
+ <xsl:choose>
+ <xsl:when test="(./x:Qualifier = 'NotBetween') or ./x:Max">
+ <xsl:value-of select="concat('cell-content-is-time() and ', $qualifier-content, ')')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('cell-content-is-time() and ', 'cell-content()', $qualifier-content)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="./x:Type = 'TextLength'">
+ <xsl:choose>
+ <xsl:when test="./x:Qualifier = 'NotBetween'">
+ <xsl:value-of select="concat('cell-content-text-length-is-not-between(', ./x:Min, ',', ./x:Max, ')')"/>
+ </xsl:when>
+ <xsl:when test="./x:Max and ./x:Min">
+ <xsl:value-of select="concat('cell-content-text-length-is-between(', ./x:Min, ',', ./x:Max, ')')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('cell-content-text-length()', $qualifier-content)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./x:Type"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$qualifier-value"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:base-cell-address">
+ <xsl:variable name="first-range">
+ <xsl:choose>
+ <xsl:when test="contains(./x:Range, ',')">
+ <xsl:value-of select="substring-before(./x:Range, ',')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./x:Range"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="range">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="$first-range"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="encode-as-cell-address">
+ <xsl:with-param name="string" select="concat(../../ss:Worksheet/@ss:Name, '.', $range)"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:element name="table:help-message">
+ <xsl:attribute name="table:title">
+ <xsl:value-of select="./x:InputTitle"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:display">
+ <xsl:choose>
+ <xsl:when test="./x:InputHide">
+ <xsl:value-of select="'false'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'true'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:element name="text:p">
+ <xsl:value-of select="./x:InputMessage"/>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="table:error-message">
+ <xsl:attribute name="table:message-type">
+ <xsl:choose>
+ <xsl:when test="./x:ErrorStyle= 'Info'">
+ <xsl:value-of select="'information'"/>
+ </xsl:when>
+ <xsl:when test="./x:ErrorStyle= 'Warn'">
+ <xsl:value-of select="'warning'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'stop'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="table:title">
+ <xsl:value-of select="./x:ErrorTitle"/>
+ </xsl:attribute>
+ <xsl:attribute name="table:display">
+ <xsl:choose>
+ <xsl:when test="./x:ErrorHide">
+ <xsl:value-of select="'false'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'true'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:element name="text:p">
+ <xsl:value-of select="./x:ErrorMessage"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <!-- Note: Move template to common section -->
+ <xsl:template name="encode-as-cell-range-address">
+ <xsl:param name="string"/>
+ <xsl:value-of select="$string"/>
+ </xsl:template>
+ <xsl:template name="encode-as-cell-address">
+ <xsl:param name="string"/>
+ <xsl:value-of select="$string"/>
+ </xsl:template>
+ <xsl:template name="encode-as-nc-name">
+ <xsl:param name="string"/>
+ <xsl:value-of select="translate($string, '.%()/\+[]', '')"/>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/uof/uof2odf_presentation.xsl b/test/user-template/user/xslt/import/uof/uof2odf_presentation.xsl
new file mode 100644
index 000000000000..8e03235c63bc
--- /dev/null
+++ b/test/user-template/user/xslt/import/uof/uof2odf_presentation.xsl
@@ -0,0 +1,3478 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:uof="http://schemas.uof.org/cn/2003/uof" xmlns:表="http://schemas.uof.org/cn/2003/uof-spreadsheet" xmlns:演="http://schemas.uof.org/cn/2003/uof-slideshow" xmlns:字="http://schemas.uof.org/cn/2003/uof-wordproc" xmlns:图="http://schemas.uof.org/cn/2003/graph" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0">
+ <xsl:output method="xml" indent="no" encoding="UTF-8" version="1.0"/>
+ <xsl:template match="uof:UOF">
+ <office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0">
+ <xsl:apply-templates select="uof:元数æ®"/>
+ <office:settings>
+ <xsl:variable name="PageNumberFormat" select="/uof:UOF/uof:演示文稿/æ¼”:公用处ç†è§„则/æ¼”:页é¢è®¾ç½®é›†/æ¼”:页é¢è®¾ç½®/æ¼”:页ç æ ¼å¼[1]"/>
+ <xsl:variable name="proportion">
+ <xsl:value-of select="substring-before(/uof:UOF/uof:演示文稿/æ¼”:公用处ç†è§„则/æ¼”:显示比例,'%')"/>
+ </xsl:variable>
+ <config:config-item-set config:name="ooo:view-settings">
+ <config:config-item config:name="VisibleAreaTop" config:type="int">0</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">0</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">14098</config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">9998</config:config-item>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <config:config-item config:name="ViewId" config:type="string">view1</config:config-item>
+ <config:config-item config:name="GridIsVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="GridIsFront" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToGrid" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToPageMargins" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToSnapLines" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToObjectFrame" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToObjectPoints" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsPlusHandlesAlwaysVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsFrameDragSingles" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EliminatePolyPointLimitAngle" config:type="int">1500</config:config-item>
+ <config:config-item config:name="IsEliminatePolyPoints" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="VisibleLayers" config:type="base64Binary">//////////////////////////////////////////8=</config:config-item>
+ <config:config-item config:name="PrintableLayers" config:type="base64Binary">//////////////////////////////////////////8=</config:config-item>
+ <config:config-item config:name="LockedLayers" config:type="base64Binary"/>
+ <config:config-item config:name="NoAttribs" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="NoColors" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="RulerIsVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PageKind" config:type="short">0</config:config-item>
+ <config:config-item config:name="SelectedPage" config:type="short">0</config:config-item>
+ <config:config-item config:name="IsLayerMode" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsBigHandles" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsDoubleClickTextEdit" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsClickChangeRotation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SlidesPerRow" config:type="short">4</config:config-item>
+ <config:config-item config:name="EditModeStandard" config:type="int">0</config:config-item>
+ <config:config-item config:name="EditModeNotes" config:type="int">0</config:config-item>
+ <config:config-item config:name="EditModeHandout" config:type="int">1</config:config-item>
+ <config:config-item config:name="VisibleAreaTop" config:type="int">-5402</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">-441</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">
+ <xsl:value-of select="(100*13997) div $proportion"/>
+ </config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">
+ <xsl:value-of select="(100*15426) div $proportion"/>
+ </config:config-item>
+ <config:config-item config:name="GridCoarseWidth" config:type="int">1000</config:config-item>
+ <config:config-item config:name="GridCoarseHeight" config:type="int">1000</config:config-item>
+ <config:config-item config:name="GridFineWidth" config:type="int">500</config:config-item>
+ <config:config-item config:name="GridFineHeight" config:type="int">500</config:config-item>
+ <config:config-item config:name="GridSnapWidth" config:type="int">1000</config:config-item>
+ <config:config-item config:name="GridSnapHeight" config:type="int">1000</config:config-item>
+ <config:config-item config:name="GridSnapWidthXNumerator" config:type="int">500</config:config-item>
+ <config:config-item config:name="GridSnapWidthXDenominator" config:type="int">1</config:config-item>
+ <config:config-item config:name="GridSnapWidthYNumerator" config:type="int">500</config:config-item>
+ <config:config-item config:name="GridSnapWidthYDenominator" config:type="int">1</config:config-item>
+ <config:config-item config:name="IsAngleSnapEnabled" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="SnapAngle" config:type="int">1500</config:config-item>
+ <config:config-item config:name="ZoomOnPage" config:type="boolean">true</config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ <config:config-item-set config:name="ooo:configuration-settings">
+ <config:config-item config:name="PageNumberFormat" config:type="int">
+ <xsl:choose>
+ <xsl:when test="/uof:UOF/uof:演示文稿/æ¼”:公用处ç†è§„则/æ¼”:页é¢è®¾ç½®é›†/æ¼”:页é¢è®¾ç½®/æ¼”:页ç æ ¼å¼">
+ <xsl:choose>
+ <xsl:when test="$PageNumberFormat='upper-letter'">0</xsl:when>
+ <xsl:when test="$PageNumberFormat='lower-letter'">1</xsl:when>
+ <xsl:when test="$PageNumberFormat='upper-roman'">2</xsl:when>
+ <xsl:when test="$PageNumberFormat='lower-letter'">3</xsl:when>
+ <xsl:when test="$PageNumberFormat='decimal'">4</xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>5</xsl:otherwise>
+ </xsl:choose>
+ </config:config-item>
+ </config:config-item-set>
+ </office:settings>
+ <office:scripts/>
+ <xsl:element name="office:font-face-decls">
+ <style:font-face style:name="宋体" svg:font-family="宋体" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ <xsl:apply-templates select="uof:å¼æ ·é›†/uof:字体集"/>
+ </xsl:element>
+ <office:styles>
+ <xsl:apply-templates select="uof:演示文稿/æ¼”:公用处ç†è§„则/æ¼”:页é¢ç‰ˆå¼é›†/æ¼”:页é¢ç‰ˆå¼"/>
+ <xsl:call-template name="ç¼–å·å­—体"/>
+ <xsl:for-each select="uof:å¼æ ·é›†/uof:段è½å¼æ ·">
+ <xsl:variable name="outline" select="@字:标识符"/>
+ <xsl:choose>
+ <xsl:when test="/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·[@å­—:标识符=$outline]">
+ <xsl:call-template name="段è½å¼æ ·"/>
+ </xsl:when>
+ <xsl:when test="contains($outline,'outline')">
+ <xsl:call-template name="段è½å¼æ ·"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </office:styles>
+ <office:automatic-styles>
+ <xsl:apply-templates select="uof:演示文稿/æ¼”:公用处ç†è§„则/æ¼”:é…色方案集/æ¼”:é…色方案"/>
+ <xsl:apply-templates select="uof:å¼æ ·é›†/uof:å¥å¼æ ·"/>
+ <xsl:for-each select="uof:å¼æ ·é›†/uof:段è½å¼æ ·">
+ <xsl:variable name="outline" select="@字:标识符"/>
+ <xsl:if test="not(/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·[@å­—:标识符=$outline]) and not(contains($outline,'outline'))">
+ <xsl:call-template name="段è½å¼æ ·"/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:apply-templates select="uof:对象集"/>
+ <xsl:call-template name="create-page-master">
+ <xsl:with-param name="impressoptions" select="uof:演示文稿/æ¼”:公用处ç†è§„则/æ¼”:页é¢è®¾ç½®é›†/æ¼”:页é¢è®¾ç½®"/>
+ </xsl:call-template>
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形/图:文本内容/å­—:段è½/å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯">
+ <xsl:variable name="currlistid" select="@å­—:ç¼–å·å¼•ç”¨"/>
+ <xsl:variable name="currlist" select="."/>
+ <xsl:variable name="rootlist" select="/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·[@å­—:标识符 =$currlistid]"/>
+ <xsl:if test="not(ancestor::å­—:段è½/preceding-sibling::å­—:段è½[1]/å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨= $currlistid)">
+ <xsl:element name="text:list-style">
+ <xsl:attribute name="style:name">List<xsl:value-of select="count(preceding::å­—:自动编å·ä¿¡æ¯)"/></xsl:attribute>
+ <xsl:for-each select="$rootlist">
+ <xsl:call-template name="自动编å·"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ </office:automatic-styles>
+ <office:master-styles>
+ <xsl:apply-templates select="uof:演示文稿/æ¼”:主体/æ¼”:æ¯ç‰ˆé›†"/>
+ </office:master-styles>
+ <office:body>
+ <office:presentation>
+ <xsl:apply-templates select="uof:演示文稿/æ¼”:主体/æ¼”:å¹»ç¯ç‰‡é›†"/>
+ <xsl:apply-templates select="uof:演示文稿/æ¼”:公用处ç†è§„则/æ¼”:放映设置"/>
+ </office:presentation>
+ </office:body>
+ </office:document>
+ </xsl:template>
+ <xsl:template match="演:放映设置">
+ <presentation:settings>
+ <xsl:variable name="start-page">
+ <xsl:choose>
+ <xsl:when test="contains(æ¼”:å¹»ç¯ç‰‡åºåˆ—,' ')">
+ <xsl:value-of select="substring-before(æ¼”:å¹»ç¯ç‰‡åºåˆ—,' ')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="æ¼”:å¹»ç¯ç‰‡åºåˆ—"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="first-page">
+ <xsl:value-of select="/uof:UOF/uof:演示文稿/æ¼”:主体/æ¼”:å¹»ç¯ç‰‡é›†/æ¼”:å¹»ç¯ç‰‡[1]/@æ¼”:å称"/>
+ </xsl:variable>
+ <xsl:if test="not($start-page = $first-page)">
+ <xsl:attribute name="presentation:start-page"><xsl:value-of select="$start-page"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="æ¼”:å…¨å±æ”¾æ˜ ='false'">
+ <xsl:attribute name="presentation:full-screen">false</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="演:循环放映='true'">
+ <xsl:attribute name="presentation:endless">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="演:放映间隔">
+ <xsl:attribute name="presentation:pause"><xsl:variable name="OOtime"><xsl:value-of select="substring-after(演:放映间隔,'P0Y0M0DT')"/></xsl:variable><xsl:value-of select="concat('PT',$OOtime)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="æ¼”:手动方å¼='true'">
+ <xsl:attribute name="presentation:force-manual">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="演:导航帮助='true'">
+ <xsl:attribute name="presentation:start-with-navigator">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="演:放映动画='false'">
+ <xsl:attribute name="presentation:animations">disabled</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="æ¼”:å‰ç«¯æ˜¾ç¤º='true'">
+ <xsl:attribute name="presentation:stay-on-top">true</xsl:attribute>
+ </xsl:if>
+ </presentation:settings>
+ </xsl:template>
+ <xsl:template name="自动编å·">
+ <xsl:for-each select="字:级别">
+ <xsl:choose>
+ <xsl:when test="å­—:项目符å·">
+ <xsl:call-template name="xiangmufuhao">
+ <xsl:with-param name="biaoshifu" select="../@字:标识符"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="å­—:图片符å·å¼•ç”¨">
+ <xsl:call-template name="imagefuhao">
+ <xsl:with-param name="biaoshifu" select="../@字:标识符"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="jibianhao">
+ <xsl:with-param name="biaoshifu" select="../@字:标识符"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="ç¼–å·å­—体">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·">
+ <xsl:if test="å­—:级别/å­—:符å·å­—体">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="concat( @字:标识符,字:级别/@字:级别值)"/></xsl:attribute>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ <xsl:element name="style:text-properties">
+ <xsl:attribute name="fo:color"><xsl:value-of select="å­—:级别/å­—:符å·å­—体/å­—:字体/@å­—:颜色"/></xsl:attribute>
+ <xsl:if test="å­—:级别/å­—:符å·å­—体/å­—:粗体 and å­—:级别/å­—:符å·å­—体/å­—:粗体/@å­—:值='true'">
+ <xsl:attribute name="fo:font-weight">bold</xsl:attribute>
+ <xsl:attribute name="style:font-style-asian">bold</xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="ziti">
+ <xsl:value-of select="å­—:级别/å­—:符å·å­—体/å­—:字体/@å­—:中文字体引用"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:字体集/uof:字体声明">
+ <xsl:if test="@uof:标识符=$ziti">
+ <xsl:attribute name="style:font-name"><xsl:value-of select="@uof:å称"/></xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:attribute name="fo:font-style">normal</xsl:attribute>
+ <xsl:attribute name="style:font-weight-asian">normal</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="uof:对象集">
+ <xsl:apply-templates select="图:图形"/>
+ <xsl:apply-templates select="图:图形/图:文本内容/å­—:段è½/å­—:å¥/å­—:å¥å±žæ€§" mode="style"/>
+ </xsl:template>
+ <xsl:variable name="uofUnit">
+ <xsl:variable name="uu">
+ <xsl:value-of select="/uof:UOF/uof:演示文稿/æ¼”:公用处ç†è§„则/æ¼”:度é‡å•ä½"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$uu='cm'">cm</xsl:when>
+ <xsl:when test="$uu='mm'">mm</xsl:when>
+ <xsl:when test="$uu='pt'">pt</xsl:when>
+ <xsl:when test="$uu='inch'">inch</xsl:when>
+ <xsl:otherwise>pt</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="other-to-cm-conversion-factor">
+ <xsl:choose>
+ <xsl:when test="$uofUnit='cm'">1</xsl:when>
+ <xsl:when test="$uofUnit='mm'">0.1</xsl:when>
+ <xsl:when test="$uofUnit='pt'">0.03527</xsl:when>
+ <xsl:when test="$uofUnit='inch'">2.54</xsl:when>
+ <xsl:when test="$uofUnit='pica'">0.4233</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:key match="/uof:UOF/uof:演示文稿/æ¼”:主体/æ¼”:æ¯ç‰ˆé›†/æ¼”:æ¯ç‰ˆ/uof:锚点 | /uof:UOF/uof:演示文稿/æ¼”:主体/æ¼”:å¹»ç¯ç‰‡é›†/æ¼”:å¹»ç¯ç‰‡/uof:锚点 | /uof:UOF/uof:演示文稿/æ¼”:主体/æ¼”:å¹»ç¯ç‰‡é›†/æ¼”:å¹»ç¯ç‰‡/æ¼”:å¹»ç¯ç‰‡å¤‡æ³¨/uof:锚点" name="rel_graphic_name" use="@uof:图形引用"/>
+ <xsl:template match="图:图形">
+ <xsl:variable name="random-name">
+ <xsl:value-of select="generate-id()"/>
+ </xsl:variable>
+ <xsl:variable name="draw-name">
+ <xsl:value-of select="substring($random-name,string-length($random-name)-1)"/>
+ </xsl:variable>
+ <xsl:call-template name="graphic-fill">
+ <xsl:with-param name="draw-name" select="$draw-name"/>
+ <xsl:with-param name="gradient-name" select="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜"/>
+ </xsl:call-template>
+ <xsl:variable name="biaozhifu" select="@图:标识符"/>
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:family"><xsl:choose><xsl:when test="图:预定义图形/图:类别='3' or 图:预定义图形/图:类别='67'">presentation</xsl:when><xsl:otherwise>graphic</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="/uof:UOF/uof:演示文稿/æ¼”:主体/æ¼”:æ¯ç‰ˆé›†/æ¼”:æ¯ç‰ˆ/uof:锚点[@uof:图形引用=$biaozhifu]">
+ <xsl:variable name="duan" select="图:文本内容/å­—:段è½/å­—:段è½å±žæ€§/@å­—:å¼æ ·å¼•ç”¨"/>
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="/uof:UOF/uof:å¼æ ·é›†/uof:段è½å¼æ ·[@å­—:标识符=$duan]/@å­—:基å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:graphic-properties">
+ <xsl:call-template name="process-graphics">
+ <xsl:with-param name="draw-name" select="$draw-name"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:family"><xsl:choose><xsl:when test="图:预定义图形/图:类别='3' or 图:预定义图形/图:类别='67'">presentation</xsl:when><xsl:otherwise>graphic</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="/uof:UOF/uof:演示文稿/æ¼”:主体/æ¼”:æ¯ç‰ˆé›†/æ¼”:æ¯ç‰ˆ/uof:锚点[@uof:图形引用=$biaozhifu]">
+ <xsl:variable name="duan" select="图:文本内容/å­—:段è½/å­—:段è½å±žæ€§/@å­—:å¼æ ·å¼•ç”¨"/>
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="/uof:UOF/uof:å¼æ ·é›†/uof:段è½å¼æ ·[@å­—:标识符=$duan]/@å­—:基å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:graphic-properties">
+ <xsl:if test="@图:其他对象">
+ <xsl:attribute name="fo:clip">rect(0cm 0cm 0cm 0cm)</xsl:attribute>
+ <xsl:attribute name="draw:color-mode">standard</xsl:attribute>
+ <xsl:attribute name="draw:luminance">0%</xsl:attribute>
+ <xsl:attribute name="draw:contrast">0%</xsl:attribute>
+ <xsl:attribute name="draw:gamma">100%</xsl:attribute>
+ <xsl:attribute name="draw:red">0%</xsl:attribute>
+ <xsl:attribute name="draw:green">0%</xsl:attribute>
+ <xsl:attribute name="draw:blue">0%</xsl:attribute>
+ <xsl:attribute name="draw:image-opacity">100%</xsl:attribute>
+ <xsl:attribute name="style:mirror">none</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="process-graphics"/>
+ </xsl:element>
+ <xsl:if test="图:文本内容/@图:文字排列方å‘='vert-r2l' or 图:文本内容/@图:文字排列方å‘='vert-l2r'">
+ <xsl:element name="style:paragraph-properties">
+ <xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="process-graphics">
+ <xsl:param name="draw-name"/>
+ <xsl:if test="not(key('rel_graphic_name',@图:标识符)/@uof:éšåŠ¨æ–¹å¼='movesize')">
+ <xsl:attribute name="style:protect"><xsl:choose><xsl:when test="key('rel_graphic_name',@图:标识符)/@uof:éšåŠ¨æ–¹å¼='move'">size</xsl:when><xsl:otherwise>position size</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="not(图:预定义图形/图:属性/图:填充)">
+ <xsl:attribute name="draw:fill">none</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图片">
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-image-name"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称"/></xsl:attribute>
+ <xsl:if test="not(图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:ä½ç½®='title')">
+ <xsl:attribute name="style:repeat"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:ä½ç½®='center'">no-repeat</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:ä½ç½®='stretch'">stretch</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图案">
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图案/@图:å‰æ™¯è‰²"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:颜色">
+ <xsl:attribute name="draw:fill">solid</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:填充/图:颜色"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜">
+ <xsl:attribute name="draw:fill">gradient</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜/@图:起始色"/></xsl:attribute>
+ <xsl:attribute name="draw:fill-gradient-name"><xsl:value-of select="concat('Gradient ',$draw-name)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="图:预定义图形/图:属性/图:线颜色">
+ <xsl:attribute name="svg:stroke-color"><xsl:value-of select="图:预定义图形/图:属性/图:线颜色"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:线型 and not(图:预定义图形/图:属性/图:线型 = 'single') and not(图:预定义图形/图:属性/图:线型 = 'thick')">
+ <xsl:variable name="linetype" select="图:预定义图形/图:属性/图:线型"/>
+ <xsl:attribute name="draw:stroke"><xsl:choose><xsl:when test="$linetype='none'">none</xsl:when><xsl:otherwise>dash</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="draw:stroke-dash"><xsl:choose><xsl:when test="$linetype='dot-dot-dash' or $linetype='dash-dot-dot-heavy'">_32__20_Dots_20_1_20_Dash</xsl:when><xsl:when test="$linetype='dash' or $linetype='dashed-heavy'">Ultrafine_20_Dashed</xsl:when><xsl:when test="$linetype='dotted' or $linetype='dotted-heavy'">Ultrafine_20_Dotted_20__28_var_29_</xsl:when><xsl:when test="$linetype='double'">Line_20_with_20_Fine_20_Dots</xsl:when><xsl:when test="$linetype='dot-dash' or $linetype='dash-dot-heavy'">_33__20_Dashes_20_3_20_Dots_20__28_var_29_</xsl:when><xsl:when test="$linetype='wave' or $linetype='wavy-heavy'">Ultrafine_20_2_20_Dots_20_3_20_Dashes</xsl:when><xsl:when test="$linetype='wavy-double'">Fine_20_Dashed_20__28_var_29_</xsl:when><xsl:otherwise>Fine Dashed</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:线粗细">
+ <xsl:attribute name="svg:stroke-width"><xsl:value-of select="concat(图:预定义图形/图:属性/图:线粗细,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´">
+ <xsl:attribute name="draw:marker-start"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='open'">Line_20_Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow_20_concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square_20_45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:大å°">
+ <xsl:attribute name="draw:marker-start-width"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '1'"><xsl:value-of select="concat('0.05',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '2'"><xsl:value-of select="concat('0.10',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '3'"><xsl:value-of select="concat('0.15',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '4'"><xsl:value-of select="concat('0.20',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '5'"><xsl:value-of select="concat('0.25',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '6'"><xsl:value-of select="concat('0.30',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '7'"><xsl:value-of select="concat('0.35',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '8'"><xsl:value-of select="concat('0.40',$uofUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('0.45',$uofUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´">
+ <xsl:attribute name="draw:marker-end"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='open'">Line_20_Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow_20_concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square_20_45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:大å°">
+ <xsl:attribute name="draw:marker-end-width"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '1'"><xsl:value-of select="concat('0.05',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '2'"><xsl:value-of select="concat('0.10',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '3'"><xsl:value-of select="concat('0.15',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '4'"><xsl:value-of select="concat('0.20',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '5'"><xsl:value-of select="concat('0.25',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '6'"><xsl:value-of select="concat('0.30',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '7'"><xsl:value-of select="concat('0.35',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '8'"><xsl:value-of select="concat('0.40',$uofUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('0.45',$uofUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:é€æ˜Žåº¦">
+ <xsl:attribute name="draw:opacity"><xsl:variable name="opacity"><xsl:value-of select="./图:预定义图形/图:属性/图:é€æ˜Žåº¦"/></xsl:variable><xsl:value-of select="concat((1 - $opacity)*100,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:for-each select="图:文本内容">
+ <xsl:if test="@图:上边è·">
+ <xsl:attribute name="fo:padding-top"><xsl:value-of select="concat(@图:上边è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:padding-bottom"><xsl:value-of select="concat(@图:下边è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:padding-left"><xsl:value-of select="concat(@图:左边è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:padding-right"><xsl:value-of select="concat(@图:å³è¾¹è·,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(@图:文字排列方å‘='middle')">
+ <xsl:variable name="hori-or-vert" select="@图:文字排列方å‘"/>
+ <xsl:choose>
+ <xsl:when test="$hori-or-vert='vert-l2r'">
+ <xsl:attribute name="draw:textarea-vertical-align">bottom</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$hori-or-vert='hori-l2r'">
+ <xsl:attribute name="draw:textarea-horizontal-align">left</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$hori-or-vert='hori-r2l'">
+ <xsl:attribute name="draw:textarea-horizontal-align">right</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$hori-or-vert"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@图:自动æ¢è¡Œ">
+ <xsl:attribute name="fo:wrap-option">no-wrap</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="draw:auto-grow-width"><xsl:choose><xsl:when test="@图:大å°é€‚应文字">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="bina_graphic">
+ <xsl:param name="refGraphic"/>
+ <xsl:element name="office:binary-data">
+ <xsl:for-each select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符 = $refGraphic]">
+ <xsl:value-of select="uof:æ•°æ®"/>
+ </xsl:for-each>
+ </xsl:element>
+ <text:p/>
+ </xsl:template>
+ <xsl:template name="graphic-fill">
+ <xsl:param name="draw-name"/>
+ <xsl:param name="gradient-name"/>
+ <xsl:if test="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜">
+ <xsl:element name="draw:gradient">
+ <xsl:attribute name="draw:name"><xsl:value-of select="concat('Gradient ',$draw-name)"/></xsl:attribute>
+ <xsl:attribute name="draw:style"><xsl:choose><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='linear'"><xsl:value-of select="'linear'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='radar'"><xsl:value-of select="'radial'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='oval'"><xsl:value-of select="'ellipsoid'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='square'"><xsl:value-of select="'square'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='rectangle'"><xsl:value-of select="'rectangular'"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="draw:start-color"><xsl:value-of select="$gradient-name/@图:起始色"/></xsl:attribute>
+ <xsl:attribute name="draw:end-color"><xsl:value-of select="$gradient-name/@图:终止色"/></xsl:attribute>
+ <xsl:attribute name="draw:start-intensity"><xsl:value-of select="concat($gradient-name/@图:起始浓度,'%')"/></xsl:attribute>
+ <xsl:attribute name="draw:end-intensity"><xsl:value-of select="concat($gradient-name/@图:终止浓度,'%')"/></xsl:attribute>
+ <xsl:attribute name="draw:angle"><xsl:value-of select="$gradient-name/@图:æ¸å˜æ–¹å‘ * 10"/></xsl:attribute>
+ <xsl:attribute name="draw:border"><xsl:value-of select="concat($gradient-name/@图:边界,'%')"/></xsl:attribute>
+ <xsl:if test="$gradient-name/@图:ç§å­Xä½ç½®">
+ <xsl:attribute name="draw:cx"><xsl:value-of select="concat($gradient-name/@图:ç§å­Xä½ç½®,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$gradient-name/@图:ç§å­Yä½ç½®">
+ <xsl:attribute name="draw:cy"><xsl:value-of select="concat($gradient-name/@图:ç§å­Yä½ç½®,'%')"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´">
+ <xsl:element name="draw:marker">
+ <xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='open'">Line_20_Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow_20_concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square_20_45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='normal'">
+ <xsl:attribute name="svg:viewBox">0 0 20 30</xsl:attribute>
+ <xsl:attribute name="svg:d">m10 0-10 30h20z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='open'">
+ <xsl:attribute name="svg:viewBox">0 0 1122 2243</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='stealth'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1580</xsl:attribute>
+ <xsl:attribute name="svg:d">m1013 1491 118 89-567-1580-564 1580 114-85 136-68 148-46 161-17 161 13 153 46z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='oval'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='diamond'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 564 564 567 567-567-567-564z</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´">
+ <xsl:element name="draw:marker">
+ <xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='open'">Line_20_Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow_20_concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square_20_45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='normal'">
+ <xsl:attribute name="svg:viewBox">0 0 20 30</xsl:attribute>
+ <xsl:attribute name="svg:d">m10 0-10 30h20z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='open'">
+ <xsl:attribute name="svg:viewBox">0 0 1122 2243</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='stealth'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1580</xsl:attribute>
+ <xsl:attribute name="svg:d">m1013 1491 118 89-567-1580-564 1580 114-85 136-68 148-46 161-17 161 13 153 46z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='oval'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='diamond'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 564 564 567 567-567-567-564z</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用 or 图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用">
+ <xsl:element name="draw:fill-image">
+ <xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图案/@图:图形引用"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图案/@图:类型"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:图形引用"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:call-template name="bina_graphic">
+ <xsl:with-param name="refGraphic">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用">
+ <xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用"/>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用">
+ <xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="not(图:预定义图形/图:属性/图:线型='single') and not(图:预定义图形/图:属性/图:线型='thick') and 图:预定义图形/图:属性/图:线型">
+ <xsl:variable name="line" select="图:预定义图形/图:属性/图:线型"/>
+ <xsl:element name="draw:stroke-dash">
+ <xsl:choose>
+ <xsl:when test="$line='dash-long' or $line='dash-long-heavy'">
+ <xsl:attribute name="draw:name">Fine_20_Dashed</xsl:attribute>
+ <xsl:attribute name="draw:display-name">Fine dashed</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">0.508cm</xsl:attribute>
+ <xsl:attribute name="draw:dots2">1</xsl:attribute>
+ <xsl:attribute name="draw:dots2-length">0.508cm</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.508cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='dot-dot-dash' or $line='dash-dot-dot-heavy'">
+ <xsl:attribute name="draw:name">_32__20_Dots_20_1_20_Dash</xsl:attribute>
+ <xsl:attribute name="draw:display-name">2 Dots 1 Dash</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">2</xsl:attribute>
+ <xsl:attribute name="draw:dots2">1</xsl:attribute>
+ <xsl:attribute name="draw:dots2-length">0.203cm</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.203cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='dash' or $line='dashed-heavy'">
+ <xsl:attribute name="draw:name">Ultrafine_20_Dashed</xsl:attribute>
+ <xsl:attribute name="draw:display-name">Ultrafine Dashed</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">0.051cm</xsl:attribute>
+ <xsl:attribute name="draw:dots2">1</xsl:attribute>
+ <xsl:attribute name="draw:dots2-length">0.051cm</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.051cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='dotted' or $line='dotted-heavy'">
+ <xsl:attribute name="draw:name">Ultrafine_20_Dotted_20__28_var_29_</xsl:attribute>
+ <xsl:attribute name="draw:display-name">Ultrafine Dotted (var)</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:distance">50%</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='wave' or $line='wavy-heavy'">
+ <xsl:attribute name="draw:name">Ultrafine_20_2_20_Dots_20_3_20_Dashes</xsl:attribute>
+ <xsl:attribute name="draw:display-name">Ultrafine 2 Dots 3 Dashes</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">2</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">0.051cm</xsl:attribute>
+ <xsl:attribute name="draw:dots2">3</xsl:attribute>
+ <xsl:attribute name="draw:dots2-length">0.254cm</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.127cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='dot-dash' or $line='dash-dot-heavy'">
+ <xsl:attribute name="draw:name">_33__20_Dashes_20_3_20_Dots_20__28_var_29_</xsl:attribute>
+ <xsl:attribute name="draw:display-name">3 Dashes 3 Dots (var)</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">3</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">197%</xsl:attribute>
+ <xsl:attribute name="draw:dots2">3</xsl:attribute>
+ <xsl:attribute name="draw:distance">100%</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='double'">
+ <xsl:attribute name="draw:name">Line_20_with_20_Fine_20_Dots</xsl:attribute>
+ <xsl:attribute name="draw:display-name">Line with Fine Dots</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">2.007cm</xsl:attribute>
+ <xsl:attribute name="draw:dots2">10</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.152cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='wavy-double'">
+ <xsl:attribute name="draw:name">Fine_20_Dashed_20__28_var_29_</xsl:attribute>
+ <xsl:attribute name="draw:display-name">Fine Dashed (var)</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">197%</xsl:attribute>
+ <xsl:attribute name="draw:distance">197%</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="draw:name">Fine Dashed</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">0.508cm</xsl:attribute>
+ <xsl:attribute name="draw:dots2">1</xsl:attribute>
+ <xsl:attribute name="draw:dots2-length">0.508cm</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.508cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="create-page-master">
+ <xsl:param name="impressoptions"/>
+ <xsl:for-each select="$impressoptions">
+ <xsl:element name="style:page-layout">
+ <xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="@演:标识符"/></xsl:call-template></xsl:attribute>
+ <xsl:element name="style:page-layout-properties">
+ <xsl:if test="演:纸张/@uof:宽度">
+ <xsl:attribute name="fo:page-width"><xsl:value-of select="concat(演:纸张/@uof:宽度,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="演:纸张/@uof:高度">
+ <xsl:attribute name="fo:page-height"><xsl:value-of select="concat((演:纸张/@uof:高度),$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="æ¼”:页边è·">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(æ¼”:页边è·/@uof:上,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat(æ¼”:页边è·/@uof:下,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(æ¼”:页边è·/@uof:å·¦,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(æ¼”:页边è·/@uof:å³,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="æ¼”:çº¸å¼ æ–¹å‘ = 'landscape'">
+ <xsl:attribute name="style:print-orientation">landscape</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:print-orientation">portrait</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="encode-as-nc-name">
+ <xsl:param name="string"/>
+ <xsl:value-of select="translate($string, '. %()/\+', '')"/>
+ </xsl:template>
+ <xsl:key name="tianchongmu" match="/uof:UOF/uof:演示文稿/æ¼”:主体/æ¼”:æ¯ç‰ˆé›†/æ¼”:æ¯ç‰ˆ" use="@æ¼”:é…色方案引用"/>
+ <xsl:key name="tianchonghuan" match="/uof:UOF/uof:演示文稿/æ¼”:主体/æ¼”:å¹»ç¯ç‰‡é›†/æ¼”:å¹»ç¯ç‰‡" use="@æ¼”:标识符"/>
+ <xsl:template match="æ¼”:é…色方案">
+ <xsl:if test="key('tianchongmu',@演:标识符)/演:背景">
+ <xsl:for-each select="key('tianchongmu',@演:标识符)/演:背景">
+ <xsl:call-template name="officestyle"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="key('tianchonghuan',@演:标识符)/演:背景">
+ <xsl:for-each select="key('tianchonghuan',@演:标识符)/演:背景">
+ <xsl:call-template name="officestyle"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:family">drawing-page</xsl:attribute>
+ <xsl:attribute name="style:name"><xsl:value-of select="@演:标识符"/></xsl:attribute>
+ <xsl:element name="style:drawing-page-properties">
+ <xsl:if test="æ¼”:å¡«å……">
+ <xsl:attribute name="draw:fill">solid</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="演:背景色"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="演:背景色">
+ <xsl:attribute name="draw:background-size">border</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="演:阴影">
+ <xsl:attribute name="draw:shadow">visible</xsl:attribute>
+ <xsl:attribute name="draw:shadow-color"><xsl:value-of select="演:阴影"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="æ¼”:文本和线æ¡">
+ <xsl:attribute name="svg:stroke-color"><xsl:value-of select="æ¼”:文本和线æ¡"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="key('tianchongmu',@演:标识符)/演:背景">
+ <xsl:for-each select="key('tianchongmu',@演:标识符)/演:背景">
+ <xsl:call-template name="background"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="key('tianchonghuan',@演:标识符)/演:背景">
+ <xsl:for-each select="key('tianchonghuan',@演:标识符)/演:背景">
+ <xsl:call-template name="background"/>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:element>
+ <xsl:variable name="style-name">
+ <xsl:value-of select="@演:标识符"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF/uof:演示文稿/æ¼”:主体/æ¼”:å¹»ç¯ç‰‡é›†/æ¼”:å¹»ç¯ç‰‡[@æ¼”:标识符=$style-name]/æ¼”:切æ¢">
+ <style:drawing-page-properties>
+ <xsl:if test="@演:速度='slow'">
+ <xsl:attribute name="presentation:transition-speed">slow</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(@演:效果 = 'none')">
+ <xsl:variable name="effect">
+ <xsl:value-of select="@演:效果"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$effect='box in'">
+ <xsl:attribute name="smil:type">irisWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">rectangle</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='box out'">
+ <xsl:attribute name="smil:type">irisWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">rectangle</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='checkerboard across'">
+ <xsl:attribute name="smil:type">checkerBoardWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">across</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='checkerboard down'">
+ <xsl:attribute name="smil:type">checkerBoardWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">down</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='comb horizontal'">
+ <xsl:attribute name="smil:type">pushWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">combHorizontal</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='comb vertical'">
+ <xsl:attribute name="smil:type">pushWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">combVertical</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='uncover down'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromTop</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='uncover left'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromRight</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='uncover right'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromLeft</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='uncover up'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromBottom</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='uncover left-down'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromTopRight</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='uncover left-up'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromBottomRight</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='uncover right-down'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromTopLeft</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='uncover right-up'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromBottomLeft</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='cover down'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromTop</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='cover left'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromRight</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='cover right'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromLeft</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='cover up'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromBottom</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='cover left-down'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromTopRight</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='cover left-up'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromBottomRight</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='cover right-down'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromTopLeft</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='cover right-up'">
+ <xsl:attribute name="smil:type">slideWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromBottomLeft</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='fade through black'">
+ <xsl:attribute name="smil:type">fade</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fadeOverColor</xsl:attribute>
+ <xsl:attribute name="smil:fadeColor">#000000</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='push down'">
+ <xsl:attribute name="smil:type">pushWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromTop</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='push left'">
+ <xsl:attribute name="smil:type">pushWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromRight</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='push right'">
+ <xsl:attribute name="smil:type">pushWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromLeft</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='push up'">
+ <xsl:attribute name="smil:type">pushWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fromBottom</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='random bars horizontal'">
+ <xsl:attribute name="smil:type">randomBarWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">horizontal</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='random bars vertical'">
+ <xsl:attribute name="smil:type">randomBarWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">vertical</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='shape circle'">
+ <xsl:attribute name="smil:type">ellipseWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">circle</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='shape diamond'">
+ <xsl:attribute name="smil:type">irisWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">diamond</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='shape plus'">
+ <xsl:attribute name="smil:type">fourBoxWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">cornersOut</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='split horizontal in'">
+ <xsl:attribute name="smil:type">barnDoorWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">horizontal</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='split horizontal out'">
+ <xsl:attribute name="smil:type">barnDoorWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">horizontal</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='split vertical in'">
+ <xsl:attribute name="smil:type">barnDoorWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">vertical</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='split vertical out'">
+ <xsl:attribute name="smil:type">barnDoorWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">vertical</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='wedge'">
+ <xsl:attribute name="smil:type">fanWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">centerTop</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='wheel clockwise – 1 spoke'">
+ <xsl:attribute name="smil:type">pinWheelWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">oneBlade</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='wheel clockwise – 2 spoke'">
+ <xsl:attribute name="smil:type">pinWheelWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">twoBladeVertical</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='wheel clockwise – 3 spoke'">
+ <xsl:attribute name="smil:type">pinWheelWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">threeBlade</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='wheel clockwise – 4 spoke'">
+ <xsl:attribute name="smil:type">pinWheelWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">fourBlade</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='wheel clockwise – 8 spoke'">
+ <xsl:attribute name="smil:type">pinWheelWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">eightBlade</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='wipe left'">
+ <xsl:attribute name="smil:type">barWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">leftToRight</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='wipe right'">
+ <xsl:attribute name="smil:type">barWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">leftToRight</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='wipe up'">
+ <xsl:attribute name="smil:type">barWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">topToBottom</xsl:attribute>
+ <xsl:attribute name="smil:direction">reverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='wipe down'">
+ <xsl:attribute name="smil:type">barWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">topToBottom</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='blinds vertical'">
+ <xsl:attribute name="smil:type">blindsWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">vertical</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='blinds horizontal'">
+ <xsl:attribute name="smil:type">blindsWipe</xsl:attribute>
+ <xsl:attribute name="smil:subtype">horizontal</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='dissolve'">
+ <xsl:attribute name="smil:type">dissolve</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$effect='random transition'">
+ <xsl:attribute name="smil:type">random</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="æ¼”:æ–¹å¼/æ¼”:å•å‡»é¼ æ ‡='false'">
+ <xsl:attribute name="presentation:transition-type">automatic</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="æ¼”:æ–¹å¼/æ¼”:时间间隔">
+ <xsl:attribute name="presentation:duration"><xsl:value-of select="concat('PT00H00M',æ¼”:æ–¹å¼/æ¼”:时间间隔,'S')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="(演:声音/@演:预定义声音 and not(演:声音/@演:预定义声音='none')) or 演:声音/@演:自定义声音">
+ <xsl:choose>
+ <xsl:when test="演:声音/@演:预定义声音">
+ <xsl:variable name="voice">
+ <xsl:value-of select="演:声音/@演:预定义声音"/>
+ </xsl:variable>
+ <presentation:sound xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">
+ <xsl:attribute name="xlink:href"><xsl:choose><xsl:when test="$voice='applause'">../../../../../../../softwware/Redoffcie%203.0/share/gallery/sounds/applause.wav</xsl:when><xsl:when test="$voice='explosion'">../../../../../../../softwware/Redoffcie%203.0/share/gallery/sounds/explos.wav</xsl:when><xsl:when test="$voice='laser'">../../../../../../../softwware/Redoffcie%203.0/share/gallery/sounds/laser.wav</xsl:when><xsl:otherwise><xsl:value-of select="演:声音/@演:预定义声音"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </presentation:sound>
+ </xsl:when>
+ <xsl:otherwise>
+ <presentation:sound xlink:type="simple" xlink:show="new" xlink:actuate="onRequest">
+ <xsl:attribute name="xlink:href"><xsl:value-of select="演:声音/@演:自定义声音"/></xsl:attribute>
+ </presentation:sound>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </style:drawing-page-properties>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="officestyle">
+ <xsl:variable name="random-name">
+ <xsl:value-of select="generate-id()"/>
+ </xsl:variable>
+ <xsl:variable name="draw-name">
+ <xsl:value-of select="substring($random-name,string-length($random-name)-1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="图:æ¸å˜">
+ <xsl:element name="draw:gradient">
+ <xsl:attribute name="draw:name"><xsl:value-of select="concat('Gradient ',$draw-name)"/></xsl:attribute>
+ <xsl:attribute name="draw:style"><xsl:choose><xsl:when test="图:æ¸å˜/@图:ç§å­ç±»åž‹='linear'"><xsl:value-of select="'linear'"/></xsl:when><xsl:when test="图:æ¸å˜/@图:ç§å­ç±»åž‹='radar'"><xsl:value-of select="'radial'"/></xsl:when><xsl:when test="图:æ¸å˜/@图:ç§å­ç±»åž‹='oval'"><xsl:value-of select="'ellipsoid'"/></xsl:when><xsl:when test="图:æ¸å˜/@图:ç§å­ç±»åž‹='square'"><xsl:value-of select="'square'"/></xsl:when><xsl:when test="图:æ¸å˜/@图:ç§å­ç±»åž‹='rectangle'"><xsl:value-of select="'rectangular'"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="draw:start-color"><xsl:value-of select="图:æ¸å˜/@图:起始色"/></xsl:attribute>
+ <xsl:attribute name="draw:end-color"><xsl:value-of select="图:æ¸å˜/@图:终止色"/></xsl:attribute>
+ <xsl:attribute name="draw:start-intensity"><xsl:value-of select="concat(图:æ¸å˜/@图:起始浓度,'%')"/></xsl:attribute>
+ <xsl:attribute name="draw:end-intensity"><xsl:value-of select="concat(图:æ¸å˜/@图:终止浓度,'%')"/></xsl:attribute>
+ <xsl:attribute name="draw:angle"><xsl:value-of select="图:æ¸å˜/@图:æ¸å˜æ–¹å‘ * 10"/></xsl:attribute>
+ <xsl:attribute name="draw:border"><xsl:value-of select="concat(图:æ¸å˜/@图:边界,'%')"/></xsl:attribute>
+ <xsl:if test="图:æ¸å˜/@图:ç§å­Xä½ç½®">
+ <xsl:attribute name="draw:cx"><xsl:value-of select="concat(图:æ¸å˜/@图:ç§å­Xä½ç½®,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:æ¸å˜/@图:ç§å­Yä½ç½®">
+ <xsl:attribute name="draw:cy"><xsl:value-of select="concat(图:æ¸å˜/@图:ç§å­Yä½ç½®,'%')"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="图:图片/@图:图形引用 or 图:图案/@图:图形引用">
+ <xsl:element name="draw:fill-image">
+ <xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:图案/@图:图形引用"><xsl:value-of select="图:图案/@图:类型"/></xsl:when><xsl:when test="图:图片/@图:图形引用"><xsl:value-of select="图:图片/@图:å称"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:call-template name="bina_graphic">
+ <xsl:with-param name="refGraphic">
+ <xsl:choose>
+ <xsl:when test="图:图案/@图:图形引用">
+ <xsl:value-of select="图:图案/@图:图形引用"/>
+ </xsl:when>
+ <xsl:when test="图:图片/@图:图形引用">
+ <xsl:value-of select="图:图片/@图:图形引用"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="background">
+ <xsl:variable name="random-name">
+ <xsl:value-of select="generate-id()"/>
+ </xsl:variable>
+ <xsl:variable name="draw-name">
+ <xsl:value-of select="substring($random-name,string-length($random-name)-1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="图:图片">
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-image-name"><xsl:value-of select="图:图片/@图:å称"/></xsl:attribute>
+ <xsl:if test="not(图:图片/@图:ä½ç½®='title')">
+ <xsl:attribute name="style:repeat"><xsl:choose><xsl:when test="图:图片/@图:ä½ç½®='center'">no-repeat</xsl:when><xsl:when test="图:图片/@图:ä½ç½®='stretch'">stretch</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="图:图案">
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:图案/@图:å‰æ™¯è‰²"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:颜色">
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:颜色"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:æ¸å˜">
+ <xsl:attribute name="draw:fill">gradient</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:æ¸å˜/@图:起始色"/></xsl:attribute>
+ <xsl:attribute name="draw:fill-gradient-name"><xsl:value-of select="concat('Gradient ',$draw-name)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="æ¼”:æ¯ç‰ˆé›†">
+ <draw:layer-set>
+ <draw:layer draw:name="layout"/>
+ <draw:layer draw:name="background"/>
+ <draw:layer draw:name="backgroundobjects"/>
+ <draw:layer draw:name="controls"/>
+ <draw:layer draw:name="measurelines"/>
+ </draw:layer-set>
+ <xsl:apply-templates select="æ¼”:æ¯ç‰ˆ"/>
+ </xsl:template>
+ <xsl:template match="æ¼”:æ¯ç‰ˆ">
+ <xsl:choose>
+ <xsl:when test="@演:类型 = 'handout' ">
+ <xsl:element name="style:handout-master">
+ <xsl:attribute name="style:name"><xsl:value-of select="@演:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:page-layout-name"><xsl:value-of select="@æ¼”:页é¢è®¾ç½®å¼•ç”¨"/></xsl:attribute>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@æ¼”:é…色方案引用"/></xsl:attribute>
+ <xsl:for-each select="uof:锚点[@uof:缩略图='true']">
+ <draw:page-thumbnail draw:layer="backgroundobjects">
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(@uof:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ </draw:page-thumbnail>
+ </xsl:for-each>
+ <xsl:apply-templates select="uof:锚点[not(@uof:缩略图='true')]"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@演:类型 = 'slide'">
+ <xsl:element name="style:master-page">
+ <xsl:attribute name="style:name"><xsl:value-of select="@演:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:page-layout-name"><xsl:value-of select="@æ¼”:页é¢è®¾ç½®å¼•ç”¨"/></xsl:attribute>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@æ¼”:é…色方案引用"/></xsl:attribute>
+ <xsl:apply-templates select="uof:锚点 "/>
+ <xsl:for-each select="/uof:UOF/uof:演示文稿/æ¼”:主体/æ¼”:æ¯ç‰ˆé›†/æ¼”:æ¯ç‰ˆ">
+ <xsl:if test="@演:类型 = 'notes'">
+ <xsl:element name="presentation:notes">
+ <xsl:attribute name="style:page-layout-name"><xsl:value-of select="@æ¼”:页é¢è®¾ç½®å¼•ç”¨"/></xsl:attribute>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@æ¼”:é…色方案引用"/></xsl:attribute>
+ <xsl:apply-templates select="uof:锚点 "/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="uof:å¥å¼æ ·">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="@字:标识符"/></xsl:attribute>
+ <xsl:if test="@å­—:基å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@å­—:基å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="ancestor::å­—:段è½å¼æ ·">
+ <xsl:attribute name="style:family">paragraph</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:element name="style:text-properties">
+ <xsl:apply-templates select="*"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="段è½å¼æ ·">
+ <xsl:element name="style:style">
+ <xsl:variable name="outline" select="@字:标识符"/>
+ <xsl:attribute name="style:family"><xsl:choose><xsl:when test="/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·[@å­—:标识符=$outline]">presentation</xsl:when><xsl:otherwise>paragraph</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:name"><xsl:value-of select="@字:标识符"/></xsl:attribute>
+ <xsl:if test="@å­—:基å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@å­—:基å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·[@å­—:标识符=$outline]">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·[@å­—:标识符=$outline]">
+ <style:graphic-properties draw:stroke="none" draw:fill="none">
+ <xsl:element name="text:list-style">
+ <xsl:call-template name="自动编å·"/>
+ </xsl:element>
+ </style:graphic-properties>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:element name="style:paragraph-properties">
+ <xsl:if test="å­—:自动编å·ä¿¡æ¯">
+ <xsl:attribute name="text:enable-numbering">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains($outline,'title')">
+ <xsl:attribute name="fo:text-align">center</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="paragraph-properties"/>
+ </xsl:element>
+ <xsl:element name="style:text-properties">
+ <xsl:apply-templates select="*"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="paragraph-properties">
+ <xsl:choose>
+ <xsl:when test="descendant::å­—:页边è·[@uof:å·¦]">
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="number(((descendant::å­—:页边è·/@uof:å·¦)div 10) *1)"/>cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:margin-left">0cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="descendant::å­—:页边è·[@uof:å³]">
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="number(((descendant::å­—:页边è·/@uof:å³)div 10) *1)"/>cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:margin-right">0cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:text-indent">0cm</xsl:attribute>
+ <xsl:call-template name="bidi"/>
+ </xsl:template>
+ <xsl:template name="bidi">
+ </xsl:template>
+ <xsl:template name="jibianhao">
+ <xsl:param name="biaoshifu"/>
+ <xsl:element name="text:list-level-style-number">
+ <xsl:variable name="currlevel" select="number(@字:级别值)"/>
+ <xsl:attribute name="text:level"><xsl:value-of select="$currlevel"/></xsl:attribute>
+ <xsl:attribute name="text:style-name">Numbering Symbols</xsl:attribute>
+ <xsl:if test="å­—:起始编å·">
+ <xsl:attribute name="text:start-value"><xsl:value-of select="å­—:起始编å·"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:正规格å¼">
+ <xsl:attribute name="text:num-regular-exp"><xsl:value-of select="å­—:正规格å¼/@值"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="text:display-levels"><xsl:value-of select="string-length(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º) - string-length(translate(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,'%','') )"/></xsl:attribute>
+ <xsl:if test="å­—:ç¼–å·æ ¼å¼">
+ <xsl:call-template name="ç¼–å·æ ¼å¼"/>
+ </xsl:if>
+ <xsl:if test="å­—:ç¼–å·æ ¼å¼è¡¨ç¤º">
+ <xsl:attribute name="style:num-prefix"><xsl:choose><xsl:when test="number($currlevel) =1"><xsl:value-of select="substring-before(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,concat('%',$currlevel))"/></xsl:when><xsl:otherwise><xsl:value-of select="substring-after(substring-after( substring-before(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,concat('%',$currlevel)),concat('%',string(number($currlevel) -1))),'.')"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:num-suffix"><xsl:value-of select="substring-after(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,concat('%',$currlevel))"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:list-level-properties">
+ <xsl:if test="@å­—:ç¼–å·å¯¹é½æ–¹å¼">
+ <xsl:attribute name="fo:text-align"><xsl:value-of select="@å­—:ç¼–å·å¯¹é½æ–¹å¼"/></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="suojinleixing"/>
+ </xsl:element>
+ <xsl:element name="style:text-properties">
+ <xsl:if test="å­—:符å·å­—体">
+ <xsl:variable name="Font-ID">
+ <xsl:value-of select="å­—:符å·å­—体/@å­—:å¼æ ·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·">
+ <xsl:if test="@字:标识符=$Font-ID">
+ <xsl:if test="字:字体/@字:中文字体引用">
+ <xsl:attribute name="fo:font-family"><xsl:value-of select="字:字体/@字:中文字体引用"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="å­—:符å·å­—体">
+ <xsl:apply-templates select="*"/>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="xiangmufuhao">
+ <xsl:param name="biaoshifu"/>
+ <xsl:variable name="currlevel" select="number(@字:级别值)"/>
+ <xsl:element name="text:list-level-style-bullet">
+ <xsl:attribute name="text:level"><xsl:value-of select="$currlevel"/></xsl:attribute>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat( $biaoshifu,$currlevel)"/></xsl:attribute>
+ <xsl:attribute name="style:num-suffix"><xsl:value-of select="substring-after(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,'%1')"/></xsl:attribute>
+ <xsl:attribute name="text:bullet-char"><xsl:value-of select="å­—:项目符å·"/></xsl:attribute>
+ <xsl:element name="style:list-level-properties">
+ <xsl:if test="@å­—:ç¼–å·å¯¹é½æ–¹å¼">
+ <xsl:attribute name="fo:text-align"><xsl:value-of select="@å­—:ç¼–å·å¯¹é½æ–¹å¼"/></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="suojinleixing"/>
+ </xsl:element>
+ <xsl:element name="style:text-properties">
+ <xsl:if test="å­—:符å·å­—体">
+ <xsl:variable name="Font-ID">
+ <xsl:value-of select="å­—:符å·å­—体/@å­—:å¼æ ·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·[@å­—:标识符=$Font-ID]">
+ <xsl:if test="字:字体/@字:中文字体引用">
+ <xsl:attribute name="fo:font-family"><xsl:value-of select="字:字体/@字:中文字体引用"/></xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="å­—:符å·å­—体">
+ <xsl:apply-templates select="*"/>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="suojinleixing">
+ <xsl:if test="å­—:缩进/å­—:å·¦/å­—:ç»å¯¹/@å­—:值">
+ <xsl:attribute name="text:space-before"><xsl:value-of select="concat(number(å­—:缩进/å­—:å·¦/å­—:ç»å¯¹/@å­—:值),$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:缩进/å­—:å³/å­—:ç»å¯¹/@å­—:值">
+ <xsl:attribute name="text:min-label-width"><xsl:value-of select="concat(number(å­—:缩进/å­—:å³/å­—:ç»å¯¹/@å­—:值),$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:缩进/å­—:首行/å­—:ç»å¯¹/@å­—:值">
+ <xsl:attribute name="text:min-label-distance"><xsl:value-of select="concat(number(å­—:缩进/å­—:首行/å­—:ç»å¯¹/@å­—:值),$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="imagefuhao">
+ <xsl:param name="biaoshifu"/>
+ <xsl:variable name="currlevel" select="number(@字:级别值)"/>
+ <xsl:element name="text:list-level-style-image" style:vertical-pos="middle" style:vertical-rel="line" fo:width="0.265cm" fo:height="0.265cm">
+ <xsl:attribute name="text:level"><xsl:value-of select="$currlevel"/></xsl:attribute>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat( $biaoshifu,$currlevel)"/></xsl:attribute>
+ <xsl:attribute name="style:num-suffix"><xsl:value-of select="substring-after(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,'%1')"/></xsl:attribute>
+ <xsl:if test="å­—:图片符å·å¼•ç”¨">
+ <xsl:variable name="gid">
+ <xsl:value-of select="å­—:图片符å·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:element name="office:binary-data">
+ <xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$gid]/uof:æ•°æ®"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="style:list-level-properties">
+ <xsl:attribute name="style:vertical-pos">middle</xsl:attribute>
+ <xsl:attribute name="style:vertical-rel">line</xsl:attribute>
+ <xsl:attribute name="fo:width"><xsl:value-of select="concat(å­—:图片符å·å¼•ç”¨/@å­—:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:height"><xsl:value-of select="concat(å­—:图片符å·å¼•ç”¨/@å­—:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:if test="å­—:符å·å­—体">
+ <xsl:variable name="Font-ID">
+ <xsl:value-of select="å­—:符å·å­—体/@å­—:å¼æ ·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·">
+ <xsl:if test="@字:标识符=$Font-ID">
+ <xsl:if test="字:字体/@字:中文字体引用">
+ <xsl:attribute name="fo:font-family"><xsl:value-of select="字:字体/@字:中文字体引用"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:call-template name="suojinleixing"/>
+ <xsl:if test="@å­—:ç¼–å·å¯¹é½æ–¹å¼">
+ <xsl:attribute name="fo:text-align"><xsl:value-of select="@å­—:ç¼–å·å¯¹é½æ–¹å¼"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:element name="style:text-properties">
+ <xsl:for-each select="å­—:符å·å­—体">
+ <xsl:apply-templates select="*"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="ç¼–å·æ ¼å¼">
+ <xsl:attribute name="style:num-format"><xsl:choose><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='lower-letter'">a</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='upper-letter'">A</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='lower-roman'">i</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='upper-roman'">I</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='decimal-enclosed-circle'">â‘ , â‘¡, â‘¢, ...</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='ideograph-traditional'">甲, ä¹™, 丙, ...</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='ideograph-zodiac'">å­, 丑, 寅, ...</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='chinese-counting'">一, 二, 三, ...</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='chinese-legal-simplified'">壹, è´°, å, ...</xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="æ¼”:å¹»ç¯ç‰‡é›†">
+ <xsl:for-each select="æ¼”:å¹»ç¯ç‰‡">
+ <xsl:element name="draw:page">
+ <xsl:attribute name="draw:name"><xsl:value-of select="@æ¼”:å称"/></xsl:attribute>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@演:标识符"/></xsl:attribute>
+ <xsl:attribute name="draw:master-page-name"><xsl:value-of select="@æ¼”:æ¯ç‰ˆå¼•ç”¨"/></xsl:attribute>
+ <xsl:if test="@æ¼”:页é¢ç‰ˆå¼å¼•ç”¨">
+ <xsl:attribute name="presentation:presentation-page-layout-name"><xsl:value-of select="@æ¼”:页é¢ç‰ˆå¼å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <office:forms form:automatic-focus="false" form:apply-design-mode="false"/>
+ <xsl:apply-templates select="uof:锚点"/>
+ <xsl:apply-templates select="演:动画"/>
+ <xsl:element name="presentation:notes">
+ <xsl:attribute name="draw:style-name">dp2</xsl:attribute>
+ <xsl:apply-templates select="./æ¼”:å¹»ç¯ç‰‡å¤‡æ³¨/uof:锚点"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="演:动画">
+ <xsl:element name="anim:par">
+ <xsl:attribute name="presentation:node-type">timing-root</xsl:attribute>
+ <anim:seq presentation:node-type="main-sequence">
+ <xsl:for-each select="æ¼”:åºåˆ—">
+ <anim:par begin="next">
+ <anim:par smil:begin="0s">
+ <xsl:variable name="animnodename">anim:par</xsl:variable>
+ <xsl:choose>
+ <xsl:when test="演:效果//演:其他">
+ <xsl:copy-of select="演:效果//演:其他/*"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{$animnodename}">
+ <xsl:attribute name="smil:fill"><xsl:choose><xsl:when test="æ¼”:定时/@æ¼”:回å·='true'">remove</xsl:when><xsl:otherwise>hold</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="æ¼”:增强/æ¼”:动画播放åŽ/@æ¼”:播放åŽéšè—='true'">
+ <xsl:attribute name="presentation:preset-property">Direction;Accelerate;Decelerate</xsl:attribute>
+ </xsl:when>
+ <xsl:when test=".//æ¼”:è½®å­">
+ <xsl:attribute name="presentation:preset-property">Spokes</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="演:效果/演:强调/演:更改填充颜色">
+ <xsl:attribute name="presentation:preset-property">FillColor;ColorStyle;Accelerate;Decelerate;AutoReverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="演:效果/演:强调/演:更改字体颜色">
+ <xsl:attribute name="presentation:preset-property">CharColor;ColorStyle;Accelerate;Decelerate;AutoReverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="æ¼”:效果/æ¼”:强调/æ¼”:更改字å·">
+ <xsl:attribute name="presentation:preset-property">CharHeight</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="演:效果/演:强调/演:更改字形">
+ <xsl:attribute name="presentation:preset-property">CharDecoration</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="演:效果/演:强调/演:陀螺旋">
+ <xsl:attribute name="presentation:preset-property">Rotate;Accelerate;Decelerate;AutoReverse</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="æ¼”:效果/æ¼”:强调/æ¼”:é€æ˜Ž">
+ <xsl:attribute name="presentation:preset-property">Transparency</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="æ¼”:效果/æ¼”:强调/æ¼”:更改线æ¡é¢œè‰²">
+ <xsl:attribute name="presentation:preset-property">LineColor;ColorStyle;Accelerate;Decelerate;AutoReverse</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:attribute name="presentation:node-type"><xsl:choose><xsl:when test="演:定时/@演:事件='on click'">on-click</xsl:when><xsl:otherwise><xsl:value-of select="演:定时/@演:事件"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="smil:begin"><xsl:value-of select="演:定时/@演:延时"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="æ¼”:定时/@æ¼”:é‡å¤='until next click' ">
+ <xsl:attribute name="smil:repeatCount">indefinite</xsl:attribute>
+ <xsl:attribute name="smil:end">next</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="æ¼”:定时/@æ¼”:é‡å¤='until next slide' ">
+ <xsl:attribute name="smil:repeatCount ">indefinite</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="æ¼”:定时/@æ¼”:é‡å¤ !='none'">
+ <xsl:attribute name="smil:repeatCount"><xsl:value-of select="æ¼”:定时/@æ¼”:é‡å¤"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="æ¼”:增强/æ¼”:动画文本/@æ¼”:å‘é€">
+ <xsl:attribute name="anim:iterate-type"><xsl:choose><xsl:when test="æ¼”:增强/æ¼”:动画文本/@æ¼”:å‘é€='by word'">by-word</xsl:when><xsl:when test="æ¼”:增强/æ¼”:动画文本/@æ¼”:å‘é€='by letter'">by-letter</xsl:when><xsl:otherwise>all at once</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="演:增强/演:动画文本/@演:间隔">
+ <xsl:attribute name="anim:iterate-interval"><xsl:value-of select="演:增强/演:动画文本/@演:间隔"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$animnodename='anim:iterate' ">
+ <xsl:attribute name="anim:id"><xsl:value-of select="@演:动画对象"/></xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="演:效果"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </anim:par>
+ </anim:par>
+ </xsl:for-each>
+ </anim:seq>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="演:效果">
+ <xsl:apply-templates select="演:进入 "/>
+ <xsl:apply-templates select="演:强调"/>
+ <xsl:apply-templates select="演:退出"/>
+ </xsl:template>
+ <xsl:template match="演:进入">
+ <xsl:attribute name="presentation:preset-class">entrance</xsl:attribute>
+ <xsl:apply-templates select="." mode="entrance"/>
+ </xsl:template>
+ <xsl:template match="演:强调">
+ <xsl:attribute name="presentation:preset-class">emphasis</xsl:attribute>
+ <xsl:apply-templates select="." mode="emphasis"/>
+ </xsl:template>
+ <xsl:template match="演:退出">
+ <xsl:attribute name="presentation:preset-class">exit</xsl:attribute>
+ <xsl:apply-templates select="." mode="exit"/>
+ </xsl:template>
+ <xsl:template name="演速度">
+ <xsl:choose>
+ <xsl:when test="./@演:速度='very fast' ">0.5s</xsl:when>
+ <xsl:when test="./@演:速度='fast'">1s</xsl:when>
+ <xsl:when test="./@演:速度='medium'">2s</xsl:when>
+ <xsl:when test="./@演:速度='slow'">3s</xsl:when>
+ <xsl:when test="./@演:速度='very slow'">5s</xsl:when>
+ <xsl:otherwise>1s</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="演:出现" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-appear</xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.001s" smil:fill="hold" anim:sub-item="text" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:盒状" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-box</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.004s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="irisWipe" smil:subtype="rectangle" smil:direction="reverse">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="演:棋盘" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-checkerboard</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘='down'">downward</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='across'">across</xsl:when></xsl:choose></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.004s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:dur="2s" anim:sub-item="text" smil:type="checkerBoardWipe" smil:subtype="down">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="演:圆形扩展" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-circle</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="ellipseWipe" smil:subtype="horizontal" smil:direction="reverse">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="演:阶梯状" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-diagonal-squares</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘='left down'">left-to-bottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='left up'">left-to-top</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='right down'">right-to-bottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='right up'">right-to-top</xsl:when></xsl:choose></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="waterfallWipe" smil:direction="reverse">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘='left down'">horizontalLeft</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='left up'">horizontalLeft</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='right down'">horizontalRight</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='right up'">horizontalRight</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="æ¼”:è±å½¢" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-diamond</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="irisWipe" smil:subtype="diamond" smil:direction="reverse">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="æ¼”:内å‘溶解" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-dissolve-in</xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="dissolve" smil:direction="reverse">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="æ¼”:é—ªçƒä¸€æ¬¡" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-flash-once</xsl:attribute>
+ <anim:set smil:begin="0s" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:飞入" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-fly-in</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'from bottom'">from-bottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from top-right'">from-top-right</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from top-left'">from-top-left</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from bottom-left'">from-bottom-left</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from bottom-right'">from-bottom-right</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from right'">from-right</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from left'">from-left</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from top'">from-top</xsl:when></xsl:choose></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <xsl:variable name="smilvalueX">
+ <xsl:choose>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'right')">1+width/2;x</xsl:when>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'left')">0-width/2;x</xsl:when>
+ <xsl:otherwise>x;x</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="smilvalueY">
+ <xsl:choose>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'bottom')">1+height/2;y</xsl:when>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'top')">0-height/2;y</xsl:when>
+ <xsl:otherwise>y;y</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <anim:animate smil:fill="hold" smil:attributeName="x" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:values"><xsl:value-of select="$smilvalueX"/></xsl:attribute>
+ </anim:animate>
+ <anim:animate smil:fill="hold" smil:attributeName="y" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:values"><xsl:value-of select="$smilvalueY"/></xsl:attribute>
+ </anim:animate>
+ </xsl:template>
+ <xsl:template match="演:缓慢飞入" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-fly-in-slow</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'from bottom'">from-bottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from right'">from-right</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from left'">from-left</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from top'">from-top</xsl:when></xsl:choose></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <xsl:variable name="smilvalueX">
+ <xsl:choose>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'right')">1+width/2;x</xsl:when>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'left')">0-width/2;x</xsl:when>
+ <xsl:otherwise>x;x</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="smilvalueY">
+ <xsl:choose>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'bottom')">1+height/2;y</xsl:when>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'top')">0-height/2;y</xsl:when>
+ <xsl:otherwise>y;y</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <anim:animate smil:fill="hold" smil:attributeName="x" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:values"><xsl:value-of select="$smilvalueX"/></xsl:attribute>
+ </anim:animate>
+ <anim:animate smil:fill="hold" smil:attributeName="y" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:values"><xsl:value-of select="$smilvalueY"/></xsl:attribute>
+ </anim:animate>
+ </xsl:template>
+ <xsl:template match="演:切入" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-peek-in</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'from bottom'">from-bottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from right'">from-right</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from left'">from-left</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from top'">from-top</xsl:when></xsl:choose></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="slideWipe" smil:direction="reverse">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'from bottom'">fromBottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from right'">fromRight</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from left'">fromLeft</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from top'">fromTop</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="æ¼”:å字形扩展" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-plus</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.00025s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="fourBoxWipe" smil:direction="reverse">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'in'">cornersIn</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'out'">cornersOut</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="æ¼”:éšæœºçº¿æ¡" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-bars</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.001s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="randomBarWipe" smil:direction="reverse">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'horizontal'">vertical</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'vertical'">horizontal</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="演:劈裂" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-split</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘ = 'horizontal out'">horizontal-out</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'horizontal in'">horizontal-in</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'vertical in'">vertical-in</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'vertical out'">vertical-out</xsl:when></xsl:choose></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.001s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:dur="0.5s" smil:type="barnDoorWipe">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘ = 'horizontal out'">horizontal</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'horizontal in'">horizontal</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'vertical in'">vertical</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'vertical out'">vertical</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="æ¼”:百å¶çª—" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-venetian-blinds</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.001s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="blindsWipe" smil:direction="reverse">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'horizontal'">vertical</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'vertical'">horizontal</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="演:扇形展开" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-wedge</xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.0015s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="fanWipe" smil:subtype="centerTop">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="æ¼”:è½®å­" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-wheel</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:è¾å°„状"/></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.00025s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:dur="0.5s" smil:type="pinWheelWipe">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:è¾å°„状='1'">oneBlade</xsl:when><xsl:when test="@æ¼”:è¾å°„状='2'">twoBlade</xsl:when><xsl:when test="@æ¼”:è¾å°„状='3'">threeBlade</xsl:when><xsl:when test="@æ¼”:è¾å°„状='4'">fourBlade</xsl:when><xsl:when test="@æ¼”:è¾å°„状='8'">eightBlade</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="演:擦除" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-wipe</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@演:速度 = 'from right'">from-right</xsl:when><xsl:when test="@演:速度 = 'from left'">from-left</xsl:when><xsl:when test="@演:速度 = 'from top'">from-top</xsl:when><xsl:when test="@演:速度 = 'from bottom'">from-bottom</xsl:when><xsl:otherwise>from-left</xsl:otherwise></xsl:choose></xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.006s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:transitionFilter smil:type="barWipe" smil:subtype="leftToRight" smil:direction="reverse">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="(@演:速度 = 'from right') or (@演:速度 = 'from left')">leftToRight</xsl:when><xsl:when test="(@演:速度 = 'from top') or (@演:速度 = 'from bottom')">topToBottom</xsl:when><xsl:otherwise>leftToRight</xsl:otherwise></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="æ¼”:éšæœºæ•ˆæžœ" mode="entrance">
+ <xsl:attribute name="presentation:preset-id">ooo-entrance-random</xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.001s" smil:fill="hold" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ <anim:animate smil:dur="1s" smil:fill="hold" smil:attributeName="width" smil:values="0;width" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ </anim:animate>
+ <anim:animate smil:fill="hold" smil:attributeName="height" smil:values="0;height" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ </anim:animate>
+ <anim:animate smil:fill="hold" smil:attributeName="rotate" smil:values="90;0" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ </anim:animate>
+ <anim:transitionFilter smil:type="fade" smil:subtype="crossfade">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ </anim:transitionFilter>
+ </xsl:template>
+ <xsl:template match="更改填充颜色" mode="emphasis">
+ <xsl:attribute name="presentation:preset-id">ooo-emphasis-fill-color</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type">2</xsl:attribute>
+ <anim:animateColor smil:fill="hold" smil:attributeName="fill-color" presentation:additive="base" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:to"><xsl:value-of select="@演:颜色"/></xsl:attribute>
+ </anim:animateColor>
+ <anim:set smil:dur="0.5s" smil:fill="hold" smil:attributeName="fill" smil:to="solid">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="更改字体颜色" mode="emphasis">
+ <xsl:attribute name="presentation:preset-id">ooo-emphasis-font-color</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type">2</xsl:attribute>
+ <anim:animateColor smil:fill="hold" smil:attributeName="fill-color" presentation:additive="base" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:to"><xsl:value-of select="@演:颜色"/></xsl:attribute>
+ </anim:animateColor>
+ </xsl:template>
+ <xsl:template match="æ¼”:更改字å·" mode="emphasis">
+ <xsl:attribute name="presentation:preset-id">ooo-emphasis-font-size</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type">2</xsl:attribute>
+ <anim:animate smil:fill="hold" smil:attributeName="font-size" presentation:additive="base">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:to"><xsl:choose><xsl:when test="@演:预定义尺寸='tiny' ">0.25,1</xsl:when><xsl:when test="@演:预定义尺寸='smaller' ">0.5,1</xsl:when><xsl:when test="@演:预定义尺寸='larger' ">1.5,1</xsl:when><xsl:when test="@演:预定义尺寸='huge' ">4,1</xsl:when><xsl:when test="@演:自定义尺寸"><xsl:value-of select="@演:自定义尺寸"/></xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose></xsl:attribute>
+ </anim:animate>
+ </xsl:template>
+ <xsl:template name="emp_font_style">
+ <xsl:param name="fontstyle"/>
+ <xsl:choose>
+ <xsl:when test="contains($fontstyle,' ')">
+ <anim:set smil:dur="indefinite" smil:attributeName="font-style">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:to"><xsl:value-of select="substring-before($fontstyle,' ')"/></xsl:attribute>
+ </anim:set>
+ <xsl:variable name="fontstyle1">
+ <xsl:choose>
+ <xsl:when test="contains($fontstyle,' ')">
+ <xsl:value-of select="substring-after($fontstyle,' ')"/>
+ </xsl:when>
+ <xsl:when test="not($fontstyle=' ')">
+ <xsl:value-of select="$fontstyle"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="emp_font_style">
+ <xsl:with-param name="fontstyle">
+ <xsl:value-of select="$fontstyle1"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="演:更改字形" mode="emphasis">
+ <xsl:attribute name="presentation:preset-id">ooo-emphasis-font-style</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type">1</xsl:attribute>
+ <xsl:call-template name="emp_font_style">
+ <xsl:with-param name="fontstyle">
+ <xsl:value-of select="@æ¼”:å­—å½¢"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template match="æ¼”:更改线æ¡é¢œè‰²" mode="emphasis">
+ <xsl:attribute name="presentation:preset-id">ooo-emphasis-line-color</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type">2</xsl:attribute>
+ <anim:animateColor smil:dur="0s" smil:fill="hold" smil:attributeName="stroke-color" presentation:additive="base" anim:color-interpolation="rgb" anim:color-interpolation-direction="clockwise">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:to"><xsl:value-of select="@演:颜色"/></xsl:attribute>
+ </anim:animateColor>
+ <anim:set smil:dur="0s" smil:fill="hold" anim:sub-item="text" smil:attributeName="stroke" smil:to="solid">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:陀螺旋" mode="emphasis">
+ <xsl:attribute name="presentation:preset-id">ooo-emphasis-spin</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type">2</xsl:attribute>
+ <anim:animateTransform smil:fill="hold" smil:by="180" presentation:additive="base" svg:type="rotate">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:by"><xsl:choose><xsl:when test="@演:预定义角度='quarter spin'">90</xsl:when><xsl:when test="@演:预定义角度='half spin'">180</xsl:when><xsl:when test="@演:预定义角度='full spin'">360</xsl:when><xsl:when test="@演:预定义角度='two spins'">720 </xsl:when><xsl:when test="@演:自定义角度"><xsl:value-of select="@演:自定义角度"/></xsl:when></xsl:choose></xsl:attribute>
+ </anim:animateTransform>
+ </xsl:template>
+ <xsl:template match="æ¼”:é€æ˜Ž" mode="emphasis">
+ <xsl:attribute name="presentation:preset-id">ooo-emphasis-transparency</xsl:attribute>
+ <xsl:attribute name="smil:repeatCount"><xsl:choose><xsl:when test="(@演:期间 = 'until next click') or (@演:期间 ='until next slide') ">indefinite</xsl:when><xsl:when test="@演:期间='2' or @演:期间 ='3' or @演:期间 ='4' or @演:期间 ='5' or @演:期间 ='10'"><xsl:value-of select="@演:期间"/></xsl:when><xsl:otherwise>2</xsl:otherwise></xsl:choose></xsl:attribute>
+ <anim:set smil:dur="indefinite" anim:sub-item="text" smil:attributeName="opacity">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:to"><xsl:choose><xsl:when test="@æ¼”:预定义é€æ˜Žåº¦='25' ">0.25</xsl:when><xsl:when test="@æ¼”:预定义é€æ˜Žåº¦='50' ">0.5</xsl:when><xsl:when test="@æ¼”:预定义é€æ˜Žåº¦='75' ">0.75</xsl:when><xsl:when test="@æ¼”:预定义é€æ˜Žåº¦='100' ">1</xsl:when><xsl:when test="@æ¼”:自定义é€æ˜Žåº¦"><xsl:value-of select="@æ¼”:自定义é€æ˜Žåº¦"/></xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:缩放" mode="emphasis">
+ <xsl:attribute name="presentation:preset-id">ooo-emphasis-grow-and-shrink</xsl:attribute>
+ <anim:animateTransform smil:fill="hold" anim:sub-item="text" presentation:additive="base" svg:type="scale">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:to"><xsl:choose><xsl:when test="@演:预定义尺寸='tiny' ">0.25,1</xsl:when><xsl:when test="@演:预定义尺寸='smaller' ">0.5,1</xsl:when><xsl:when test="@演:预定义尺寸='larger' ">1.5,1</xsl:when><xsl:when test="@演:预定义尺寸='huge' ">4,1</xsl:when><xsl:when test="@演:自定义尺寸"><xsl:value-of select="@演:自定义尺寸"/></xsl:when><xsl:otherwise>0.5,1</xsl:otherwise></xsl:choose></xsl:attribute>
+ </anim:animateTransform>
+ </xsl:template>
+ <xsl:template match="演:盒状" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-box</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:transitionFilter smil:type="irisWipe" smil:subtype="rectangle" smil:direction="reverse" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.004s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:棋盘" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-checkerboard</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘='down'">downward</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='across'">across</xsl:when></xsl:choose></xsl:attribute>
+ <anim:transitionFilter smil:dur="2s" anim:sub-item="text" smil:type="checkerBoardWipe" smil:subtype="down" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.004s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:圆形扩展" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-circle</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:transitionFilter smil:type="ellipseWipe" smil:subtype="horizontal" smil:direction="reverse" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:阶梯状" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-diagonal-squares</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘='left down'">left-to-bottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='left up'">left-to-top</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='right down'">right-to-bottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='right up'">right-to-top</xsl:when></xsl:choose></xsl:attribute>
+ <anim:transitionFilter smil:type="waterfallWipe" smil:direction="reverse" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘='left down'">horizontalLeft</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='left up'">horizontalLeft</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='right down'">horizontalRight</xsl:when><xsl:when test="@æ¼”:æ–¹å‘='right up'">horizontalRight</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="æ¼”:è±å½¢" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-diamond</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:transitionFilter smil:type="irisWipe" smil:subtype="diamond" smil:direction="reverse" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:消失" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-disappear</xsl:attribute>
+ <anim:set smil:begin="0s" smil:dur="0.001s" smil:fill="hold" anim:sub-item="text" smil:attributeName="visibility" smil:to="visible">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="æ¼”:å‘外溶解" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-dissolve</xsl:attribute>
+ <anim:transitionFilter smil:type="dissolve" smil:direction="reverse" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="æ¼”:é—ªçƒä¸€æ¬¡" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-flash-once</xsl:attribute>
+ <anim:animate smil:attributeName="visibility" smil:values="hidden;visible" smil:keyTimes="0;0.5" smil:calcMode="discrete" presentation:additive="base">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:animate>
+ <anim:set smil:dur="0s" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:飞出" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-fly-out</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'to bottom'">from-bottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'to top-right'">from-top-right</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'to top-left'">from-top-left</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'to bottom-left'">from-bottom-left</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'to bottom-right'">from-bottom-right</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'to right'">from-right</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'to left'">from-left</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'to top'">from-top</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:variable name="smilvalueX">
+ <xsl:choose>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'right')">x;1+width/2</xsl:when>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'left')">x;0-width/2</xsl:when>
+ <xsl:otherwise>x;x</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="smilvalueY">
+ <xsl:choose>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'bottom')">y;1+height/2</xsl:when>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'top')">y;0-height/2</xsl:when>
+ <xsl:otherwise>y;y</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <anim:animate smil:fill="hold" smil:attributeName="x" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:values"><xsl:value-of select="$smilvalueX"/></xsl:attribute>
+ </anim:animate>
+ <anim:animate smil:fill="hold" smil:attributeName="y" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:values"><xsl:value-of select="$smilvalueY"/></xsl:attribute>
+ </anim:animate>
+ <anim:set smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:缓慢移出" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-crawl-out</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'to bottom'">from-bottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'to right'">from-right</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'to left'">from-left</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'to top'">from-top</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:variable name="smilvalueX">
+ <xsl:choose>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'right')">x;1+width/2</xsl:when>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'left')">x;0-width/2</xsl:when>
+ <xsl:otherwise>x;x</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="smilvalueY">
+ <xsl:choose>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'bottom')">y;1+height/2</xsl:when>
+ <xsl:when test="contains(@æ¼”:æ–¹å‘,'top')">y;0-height/2</xsl:when>
+ <xsl:otherwise>y;y</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <anim:animate smil:fill="hold" smil:attributeName="x" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:values"><xsl:value-of select="$smilvalueX"/></xsl:attribute>
+ </anim:animate>
+ <anim:animate smil:fill="hold" smil:attributeName="y" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:values"><xsl:value-of select="$smilvalueY"/></xsl:attribute>
+ </anim:animate>
+ <anim:set smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:切出" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-peek-out</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'from bottom'">from-bottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from right'">from-right</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from left'">from-left</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from top'">from-top</xsl:when></xsl:choose></xsl:attribute>
+ <anim:transitionFilter smil:type="slideWipe" smil:direction="reverse" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'from bottom'">fromBottom</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from right'">fromRight</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from left'">fromLeft</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'from top'">fromTop</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.0005s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="æ¼”:å字形扩展" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-plus</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:transitionFilter smil:type="fourBoxWipe" smil:direction="reverse" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'in'">cornersIn</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'out'">cornersOut</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.00025s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="æ¼”:éšæœºçº¿æ¡" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-random-bars</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:transitionFilter smil:type="randomBarWipe" smil:direction="reverse" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'horizontal'">vertical</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'vertical'">horizontal</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.001s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:劈裂" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-split</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘ = 'horizontal out'">horizontal-out</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'horizontal in'">horizontal-in</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'vertical in'">vertical-in</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'vertical out'">vertical-out</xsl:when></xsl:choose></xsl:attribute>
+ <anim:transitionFilter smil:dur="0.5s" smil:type="barnDoorWipe" smil:mode="out">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘ = 'horizontal out'">horizontal</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'horizontal in'">horizontal</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'vertical in'">vertical</xsl:when><xsl:when test="@æ¼”:æ–¹å‘= 'vertical out'">vertical</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.001s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="æ¼”:百å¶çª—" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-venetian-blinds</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:æ–¹å‘"/></xsl:attribute>
+ <anim:transitionFilter smil:type="blindsWipe" smil:direction="reverse" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:æ–¹å‘= 'horizontal'">vertical</xsl:when><xsl:when test="@æ¼”:æ–¹å‘ = 'vertical'">horizontal</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.001s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:扇形展开" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-wedge</xsl:attribute>
+ <anim:transitionFilter smil:type="fanWipe" smil:subtype="centerTop" smil:mode="out">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.0015s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="æ¼”:è½®å­" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-wheel</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:value-of select="@æ¼”:è¾å°„状"/></xsl:attribute>
+ <anim:transitionFilter smil:dur="0.5s" smil:type="pinWheelWipe" smil:mode="out">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="@æ¼”:è¾å°„状='1'">oneBlade</xsl:when><xsl:when test="@æ¼”:è¾å°„状='2'">twoBlade</xsl:when><xsl:when test="@æ¼”:è¾å°„状='3'">threeBlade</xsl:when><xsl:when test="@æ¼”:è¾å°„状='4'">fourBlade</xsl:when><xsl:when test="@æ¼”:è¾å°„状='8'">eightBlade</xsl:when></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.00025s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="演:擦除" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-wipe</xsl:attribute>
+ <xsl:attribute name="presentation:preset-sub-type"><xsl:choose><xsl:when test="@演:速度 = 'from right'">from-right</xsl:when><xsl:when test="@演:速度 = 'from left'">from-left</xsl:when><xsl:when test="@演:速度 = 'from top'">from-top</xsl:when><xsl:when test="@演:速度 = 'from bottom'">from-bottom</xsl:when><xsl:otherwise>from-left</xsl:otherwise></xsl:choose></xsl:attribute>
+ <anim:transitionFilter smil:type="barWipe" smil:subtype="leftToRight" smil:direction="reverse" smil:mode="out">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:subtype"><xsl:choose><xsl:when test="(@演:速度 = 'from right') or (@演:速度 = 'from left')">leftToRight</xsl:when><xsl:when test="(@演:速度 = 'from top') or (@演:速度 = 'from bottom')">topToBottom</xsl:when><xsl:otherwise>leftToRight</xsl:otherwise></xsl:choose></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:set smil:dur="0.006s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="æ¼”:éšæœºæ•ˆæžœ" mode="exit">
+ <xsl:attribute name="presentation:preset-id">ooo-exit-random</xsl:attribute>
+ <anim:transitionFilter smil:type="fade" smil:subtype="crossfade" smil:mode="out">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:transitionFilter>
+ <anim:animate smil:attributeName="x" smil:values="x;x" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:dur"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:animate>
+ <anim:animate smil:dur="0.1s" smil:decelerate="1" smil:attributeName="y" smil:values="y;y-.03" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:animate>
+ <anim:animate smil:begin="0.1s" smil:dur="0.9s" smil:accelerate="1" smil:attributeName="y" smil:values="y;y+1" smil:keyTimes="0;1" presentation:additive="base">
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:animate>
+ <anim:set smil:dur="0.001s" smil:fill="hold" smil:attributeName="visibility" smil:to="hidden">
+ <xsl:attribute name="smil:begin"><xsl:call-template name="演速度"/></xsl:attribute>
+ <xsl:attribute name="smil:targetElement"><xsl:value-of select="ancestor::æ¼”:åºåˆ—/@æ¼”:动画对象"/></xsl:attribute>
+ </anim:set>
+ </xsl:template>
+ <xsl:template match="uof:锚点" name="图形解æž">
+ <xsl:variable name="tuxing1" select="@uof:图形引用"/>
+ <xsl:choose>
+ <xsl:when test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]">
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='png' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='jpg' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='bmp' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='gif'">
+ <xsl:element name="draw:frame">
+ <xsl:attribute name="draw:name"><xsl:variable name="pos"><xsl:value-of select="count(preceding::uof:锚点)"/></xsl:variable><xsl:value-of select="concat('图形',$pos)"/></xsl:attribute>
+ <xsl:attribute name="presentation:class">graphic</xsl:attribute>
+ <xsl:attribute name="presentation:user-transformed">true</xsl:attribute>
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(@uof:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="draw:layer">layout</xsl:attribute>
+ <xsl:if test="../æ¼”:动画/æ¼”:åºåˆ—/@æ¼”:动画对象=$tuxing1">
+ <xsl:attribute name="draw:id"><xsl:value-of select="$tuxing1"/></xsl:attribute>
+ </xsl:if>
+ <draw:image>
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:路径">
+ <xsl:attribute name="xlink:href"><xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:路径"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:路径">
+ <xsl:attribute name="xlink:href"><xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:路径"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:æ•°æ®">
+ <office:binary-data>
+ <xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:æ•°æ®"/>
+ </office:binary-data>
+ </xsl:if>
+ </draw:image>
+ </xsl:element>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="graph">
+ <xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]"/>
+ <xsl:with-param name="groupx" select="0"/>
+ <xsl:with-param name="groupy" select="0"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="graph">
+ <xsl:param name="id"/>
+ <xsl:param name="groupx"/>
+ <xsl:param name="groupy"/>
+ <xsl:for-each select="$id">
+ <xsl:variable name="tuxing1">
+ <xsl:value-of select="图:预定义图形/图:类别"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$tuxing1='11'">
+ <xsl:call-template name="Rectangle">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='19'">
+ <xsl:call-template name="Oval">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='61'">
+ <xsl:call-template name="Line">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='64'">
+ <xsl:call-template name="Curve">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='65'">
+ <xsl:call-template name="Freeform">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='66'">
+ <xsl:call-template name="Scribble">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='3'">
+ <xsl:call-template name="演文本框"/>
+ </xsl:when>
+ <xsl:when test="$tuxing1='67'">
+ <xsl:call-template name="演缩略图"/>
+ </xsl:when>
+ <xsl:when test="$tuxing1='4'">
+ <xsl:element name="draw:g">
+ <xsl:variable name="tu">
+ <xsl:value-of select="@图:标识符"/>
+ </xsl:variable>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="$tu"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:variable name="this-group-x">
+ <xsl:value-of select="key('rel_graphic_name',@图:标识符)/@uof:xåæ ‡"/>
+ </xsl:variable>
+ <xsl:variable name="this-group-y">
+ <xsl:value-of select="key('rel_graphic_name',@图:标识符)/uof:yåæ ‡"/>
+ </xsl:variable>
+ <xsl:variable name="group-x">
+ <xsl:value-of select="number($groupx + $this-group-x)"/>
+ </xsl:variable>
+ <xsl:variable name="group-y">
+ <xsl:value-of select="number($groupy + $this-group-y)"/>
+ </xsl:variable>
+ <xsl:call-template name="组åˆå›¾å½¢">
+ <xsl:with-param name="zuheliebiao" select="@图:组åˆåˆ—表"/>
+ <xsl:with-param name="groupx1" select="$group-x"/>
+ <xsl:with-param name="groupy1" select="$group-y"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="common">
+ <xsl:param name="groupx"/>
+ <xsl:param name="groupy"/>
+ <xsl:variable name="tuxing">
+ <xsl:value-of select="@图:标识符"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="key('rel_graphic_name',@图:标识符)">
+ <xsl:for-each select="key('rel_graphic_name',@图:标识符)">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(@uof:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="draw:layer"><xsl:choose><xsl:when test="parent::æ¼”:æ¯ç‰ˆ">backgroundobjects</xsl:when><xsl:otherwise>layout</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="../æ¼”:动画/æ¼”:åºåˆ—/@æ¼”:动画对象=$tuxing">
+ <xsl:attribute name="draw:id"><xsl:value-of select="$tuxing"/></xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="zuheweizhi-x">
+ <xsl:value-of select="图:组åˆä½ç½®/@图:xåæ ‡"/>
+ </xsl:variable>
+ <xsl:variable name="zuheweizhi-y">
+ <xsl:value-of select="图:组åˆä½ç½®/@图:yåæ ‡"/>
+ </xsl:variable>
+ <xsl:attribute name="text:anchor-type">paragraph</xsl:attribute>
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(($groupx + $zuheweizhi-x),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(($groupy + $zuheweizhi-y),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(图:预定义图形 /图:属性/图:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(图:预定义图形/图:属性 /图:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="draw:layer">layout</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="rotate-angle">
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="图:文本内容/字:文字表"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="组åˆå›¾å½¢">
+ <xsl:param name="zuheliebiao"/>
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:variable name="x">
+ <xsl:value-of select="$groupx1"/>
+ </xsl:variable>
+ <xsl:variable name="y">
+ <xsl:value-of select="$groupy1"/>
+ </xsl:variable>
+ <xsl:variable name="first-pictures">
+ <xsl:value-of select="substring-before($zuheliebiao,',')"/>
+ </xsl:variable>
+ <xsl:variable name="other-pictures">
+ <xsl:value-of select="substring-after($zuheliebiao,',')"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($other-pictures,',')">
+ <xsl:call-template name="graph">
+ <xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $first-pictures]"/>
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ <xsl:call-template name="组åˆå›¾å½¢">
+ <xsl:with-param name="zuheliebiao" select="$other-pictures"/>
+ <xsl:with-param name="groupx1" select="$x"/>
+ <xsl:with-param name="groupy1" select="$y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="graph">
+ <xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $first-pictures]"/>
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ <xsl:call-template name="graph">
+ <xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $other-pictures]"/>
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="Curve">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:path">
+ <xsl:variable name="width" select="number(图:预定义图形/图:属性/图:宽度)*1000"/>
+ <xsl:variable name="height" select="number(图:预定义图形/图:属性/图:高度)*1000"/>
+ <xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
+ <xsl:attribute name="svg:d"><xsl:value-of select="图:预定义图形/图:关键点åæ ‡/@图:路径"/></xsl:attribute>
+ <xsl:call-template name="common">
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Freeform">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:polygon">
+ <xsl:variable name="width" select="number(图:预定义图形/图:属性/图:宽度)*1000"/>
+ <xsl:variable name="height" select="number(图:预定义图形/图:属性/图:高度)*1000"/>
+ <xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
+ <xsl:attribute name="draw:points"><xsl:call-template name="drawpoints"><xsl:with-param name="points" select="图:预定义图形/图:关键点åæ ‡/@图:路径"/><xsl:with-param name="value"/></xsl:call-template></xsl:attribute>
+ <xsl:call-template name="common">
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Scribble">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:polyline">
+ <xsl:variable name="width" select="number(图:预定义图形/图:属性/图:宽度)*1000"/>
+ <xsl:variable name="height" select="number(图:预定义图形/图:属性/图:高度)*1000"/>
+ <xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
+ <xsl:attribute name="draw:points"><xsl:call-template name="drawpoints"><xsl:with-param name="points" select="图:预定义图形/图:关键点åæ ‡/@图:路径"/><xsl:with-param name="value"/></xsl:call-template></xsl:attribute>
+ <xsl:call-template name="common">
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="drawpoints">
+ <xsl:param name="points"/>
+ <xsl:param name="value"/>
+ <xsl:variable name="frist-piont">
+ <xsl:value-of select="substring-before($points,'lineto')"/>
+ </xsl:variable>
+ <xsl:variable name="other-points">
+ <xsl:value-of select="substring-after($points,'lineto')"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($other-points,'lineto')">
+ <xsl:variable name="x-coor">
+ <xsl:value-of select="substring-before($frist-piont,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:variable name="y-coor">
+ <xsl:value-of select="substring-after($frist-piont,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:variable name="all-points">
+ <xsl:value-of select="concat($value,$x-coor,',',$y-coor,' ')"/>
+ </xsl:variable>
+ <xsl:call-template name="drawpoints">
+ <xsl:with-param name="points" select="$other-points"/>
+ <xsl:with-param name="value" select="$all-points"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="q-x-coor">
+ <xsl:value-of select="substring-before($frist-piont,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:variable name="q-y-coor">
+ <xsl:value-of select="substring-after($frist-piont,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:variable name="e-x-coor">
+ <xsl:value-of select="substring-before($other-points,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:variable name="e-y-coor">
+ <xsl:value-of select="substring-after($other-points,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:value-of select="concat($value,$q-x-coor,',',$q-y-coor,' ',$e-x-coor,',',$e-y-coor)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="Oval">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:ellipse">
+ <xsl:call-template name="common">
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Rectangle">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:rect">
+ <xsl:call-template name="common">
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Line">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:line">
+ <xsl:variable name="tuxing1" select="@图:标识符"/>
+ <xsl:choose>
+ <xsl:when test="key('rel_graphic_name',@图:标识符)">
+ <xsl:for-each select="key('rel_graphic_name',@图:标识符)">
+ <xsl:attribute name="svg:x1"><xsl:value-of select="concat(@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y1"><xsl:value-of select="concat(@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:x2"><xsl:value-of select="concat((@uof:xåæ ‡ + @uof:宽度),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y2"><xsl:value-of select="concat((@uof:yåæ ‡ + @uof:高度),$uofUnit)"/></xsl:attribute>
+ <xsl:if test="../æ¼”:动画/æ¼”:åºåˆ—/@æ¼”:动画对象=$tuxing1">
+ <xsl:attribute name="draw:id"><xsl:value-of select="$tuxing1"/></xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="zuheweizhi-x">
+ <xsl:value-of select="图:组åˆä½ç½®/@图:xåæ ‡"/>
+ </xsl:variable>
+ <xsl:variable name="zuheweizhi-y">
+ <xsl:value-of select="图:组åˆä½ç½®/@图:yåæ ‡"/>
+ </xsl:variable>
+ <xsl:variable name="hex">
+ <xsl:value-of select="concat(number($groupx1 + $zuheweizhi-x),$uofUnit)"/>
+ </xsl:variable>
+ <xsl:variable name="hey">
+ <xsl:value-of select="concat(number($groupy1 + $zuheweizhi-y),$uofUnit)"/>
+ </xsl:variable>
+ <xsl:attribute name="svg:x1"><xsl:value-of select="$hex"/></xsl:attribute>
+ <xsl:attribute name="svg:y1"><xsl:value-of select="$hey"/></xsl:attribute>
+ <xsl:attribute name="svg:x2"><xsl:value-of select="concat(($hex + 图:预定义图形/图:属性/图:宽度),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y2"><xsl:value-of select="concat(($hey + 图:预定义图形/图:属性/图:高度),$uofUnit)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="text:anchor-type">paragraph</xsl:attribute>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="$tuxing1"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="rotate-angle">
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="图:文本内容/字:文字表"/>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="演文本框">
+ <xsl:for-each select="key('rel_graphic_name',@图:标识符)">
+ <xsl:variable name="tuxing1" select="@uof:图形引用"/>
+ <xsl:element name="draw:frame">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(@uof:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="draw:layer"><xsl:choose><xsl:when test="parent::æ¼”:æ¯ç‰ˆ">backgroundobjects</xsl:when><xsl:otherwise>layout</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:预定义图形/图:类别 = '3' and (parent::æ¼”:å¹»ç¯ç‰‡/@æ¼”:é…色方案引用) and not(@uof:å ä½ç¬¦ = 'graphic')">
+ <xsl:attribute name="presentation:style-name"><xsl:value-of select="parent::æ¼”:å¹»ç¯ç‰‡/@æ¼”:é…色方案引用"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="../æ¼”:动画/æ¼”:åºåˆ—/@æ¼”:动画对象=$tuxing1">
+ <xsl:attribute name="draw:id"><xsl:value-of select="$tuxing1"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(@uof:å ä½ç¬¦ = 'graphic')">
+ <xsl:attribute name="presentation:style-name"><xsl:value-of select="@uof:图形引用"/></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="placeholdType">
+ <xsl:value-of select="@uof:å ä½ç¬¦"/>
+ </xsl:variable>
+ <xsl:if test="@uof:å ä½ç¬¦">
+ <xsl:attribute name="presentation:class"><xsl:choose><xsl:when test="@uof:å ä½ç¬¦ = 'clipart'">graphic</xsl:when><xsl:when test="@uof:å ä½ç¬¦ = 'media_clip'">graphic</xsl:when><xsl:when test="@uof:å ä½ç¬¦ = 'graphics'">graphic</xsl:when><xsl:when test="@uof:å ä½ç¬¦ = 'number'">page_number</xsl:when><xsl:when test="@uof:å ä½ç¬¦ = 'centertitle'">title</xsl:when><xsl:when test="@uof:å ä½ç¬¦ = 'date'">date-time</xsl:when><xsl:when test="@uof:å ä½ç¬¦ = 'vertical_text'">vertical_outline</xsl:when><xsl:when test="@uof:å ä½ç¬¦ = 'vertical_subtitle'">vertical_outline</xsl:when><xsl:otherwise><xsl:value-of select="@uof:å ä½ç¬¦"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]">
+ <xsl:variable name="leibie">
+ <xsl:value-of select="图:预定义图形/图:类别"/>
+ </xsl:variable>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="rotate-angle">
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="图:文本内容 or @图:其他对象">
+ <xsl:attribute name="presentation:user-transformed">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="presentation:placeholder">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$placeholdType = 'graphic' or $placeholdType = 'clipart' or $placeholdType ='media_clip'">
+ <draw:image/>
+ </xsl:when>
+ <xsl:when test="$placeholdType = 'table' or $placeholdType = 'chart' or $placeholdType ='object'">
+ <draw:object/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="draw:text-box">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="演缩略图">
+ <draw:page-thumbnail>
+ <xsl:call-template name="common"/>
+ <xsl:attribute name="draw:layer">layout</xsl:attribute>
+ <xsl:attribute name="draw:page-number"><xsl:for-each select="../.."><xsl:value-of select="count(preceding-sibling::æ¼”:å¹»ç¯ç‰‡) + 1"/></xsl:for-each></xsl:attribute>
+ <xsl:attribute name="presentation:class">page</xsl:attribute>
+ </draw:page-thumbnail>
+ </xsl:template>
+ <xsl:template match="æ¼”:页é¢ç‰ˆå¼">
+ <xsl:element name="style:presentation-page-layout">
+ <xsl:attribute name="style:name"><xsl:value-of select="@演:标识符"/></xsl:attribute>
+ <xsl:apply-templates select="æ¼”:å ä½ç¬¦" mode="layout"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="æ¼”:å ä½ç¬¦" mode="layout">
+ <presentation:placeholder>
+ <xsl:attribute name="presentation:object"><xsl:choose><xsl:when test="@演:类型='vertical_text'">vertical_outline</xsl:when><xsl:when test="@演:类型='date'">date-time</xsl:when><xsl:when test="@演:类型='number'">page_number</xsl:when><xsl:otherwise><xsl:value-of select="@演:类型"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(uof:锚点/@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(uof:锚点/@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(uof:锚点/@uof:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(uof:锚点/@uof:高度,$uofUnit)"/></xsl:attribute>
+ </presentation:placeholder>
+ </xsl:template>
+ <xsl:template match="å­—:段è½">
+ <xsl:choose>
+ <xsl:when test="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯">
+ <xsl:call-template name="ç¼–å·è§£æž"/>
+ </xsl:when>
+ <xsl:when test="å­—:å¥/å­—:分页符">
+ <xsl:call-template name="processPageBreaks"/>
+ </xsl:when>
+ <xsl:when test="string(parent::node()/@uof:locID)='t0107'">
+ <xsl:call-template name="jiaozhu"/>
+ </xsl:when>
+ <xsl:when test="string(parent::node()/@uof:locID)='t0108'">
+ <xsl:call-template name="weizhu"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="commonParagraph"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="jiaozhu">
+ <xsl:element name="text:footnote">
+ <xsl:element name="text:footnote-body">
+ <xsl:call-template name="commonParagraph"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="weizhu">
+ <xsl:element name="text:endnote">
+ <xsl:element name="text:endnote-body">
+ <xsl:call-template name="commonParagraph"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="processPageBreaks">
+ <xsl:variable name="pageBreak" select="å­—:å¥/å­—:分页符"/>
+ <xsl:call-template name="createSubParagraph">
+ <xsl:with-param name="list" select="$pageBreak[1]/preceding-sibling::å­—:å¥"/>
+ <xsl:with-param name="pageBreak"/>
+ <xsl:with-param name="needsPageBreak">false</xsl:with-param>
+ </xsl:call-template>
+ <xsl:for-each select="$pageBreak">
+ <xsl:call-template name="createSubParagraph">
+ <xsl:with-param name="list" select="./following-sibling::å­—:å¥[preceding::å­—:å¥/å­—:分页符 = '.']"/>
+ <xsl:with-param name="pageBreak" select="."/>
+ <xsl:with-param name="needsPageBreak">true</xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="createSubParagraph">
+ <xsl:param name="list"/>
+ <xsl:param name="pageBreak"/>
+ <xsl:param name="needsPageBreak"/>
+ <xsl:if test="(count($list) &gt; 0) or ($needsPageBreak ='true') ">
+ <xsl:element name="text:p">
+ <xsl:choose>
+ <xsl:when test="$needsPageBreak = 'true'">
+ <xsl:choose>
+ <xsl:when test="ancestor::å­—:段è½/å­—:段è½å±žæ€§">
+ <xsl:attribute name="text:style-name">P<xsl:number from="/uof:UOF/uof:演示文稿/æ¼”:主体" level="any" count="å­—:段è½å±žæ€§"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:style-name">PageBreak</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="$pageBreak">
+ <xsl:apply-templates select="$pageBreak"/>
+ </xsl:if>
+ <xsl:apply-templates select="$list"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:区域开始[@字:类型='bookmark']">
+ <text:bookmark-start text:name="{@字:标识符}"/>
+ </xsl:template>
+ <xsl:template match="å­—:区域结æŸ[preceding::å­—:区域开始[1]/@å­—:类型='bookmark']">
+ <text:bookmark-end text:name="{@字:标识符引用}"/>
+ </xsl:template>
+ <xsl:template match="å­—:段è½/å­—:域开始">
+ <xsl:choose>
+ <xsl:when test="@字:类型='CREATEDATE'">
+ <xsl:variable name="datestr" select="../å­—:å¥/å­—:文本串"/>
+ <xsl:element name="text:date">
+ <xsl:attribute name="style:data-style-name">Time<xsl:number from="/uof:UOF/uof:演示文稿/æ¼”:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'CREATEDATE']"/></xsl:attribute>
+ <xsl:attribute name="text:date-value"><xsl:value-of select="concat(substring-before($datestr,' '),'T',substring-after($datestr,' '))"/></xsl:attribute>
+ <xsl:value-of select="$datestr"/>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="commonParagraph">
+ <xsl:element name="text:p">
+ <xsl:if test="@字:动画标识">
+ <xsl:attribute name="text:id"><xsl:value-of select="@字:动画标识"/></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="commonParagraphAttributes"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="commonParagraphAttributes">
+ <xsl:choose>
+ <xsl:when test="å­—:段è½å±žæ€§">
+ <xsl:attribute name="text:style-name"><xsl:value-of select="å­—:段è½å±žæ€§/@å­—:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="generate-id(ancestor::å­—:主体/descendant::å­—:段è½[1]) = generate-id(.)">
+ <xsl:variable name="paragraph-number">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½[å­—:段è½å±žæ€§]"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name">P<xsl:value-of select="number($paragraph-number)"/>_1</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="not(å­—:段è½å±žæ€§) and (descendant::å­—:分æ ç¬¦ or ancestor::å­—:分节/descendant::å­—:节属性[å­—:分æ /@å­—:æ æ•° &gt; 1])">
+ <xsl:attribute name="text:style-name">ColumnBreakPara</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:å¥">
+ <xsl:apply-templates select="字:文本串"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:段è½å±žæ€§"/>
+ <xsl:template match="å­—:å¥/å­—:å¥å±žæ€§"/>
+ <xsl:template match="å­—:å¥å±žæ€§" mode="style">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">T<xsl:number from="/uof:UOF/uof:对象集" level="any" count="å­—:å¥å±žæ€§" format="1"/></xsl:attribute>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ <xsl:if test="@å­—:å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@å­—:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:text-properties">
+ <xsl:apply-templates select="./*"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="å­—:å¥/å­—:文本串">
+ <xsl:choose>
+ <xsl:when test="string(.) = ' ' ">
+ <xsl:element name="text:s"/>
+ </xsl:when>
+ <xsl:when test="contains(.,' ')">
+ <xsl:call-template name="replace-spaces">
+ <xsl:with-param name="curr-string" select="."/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="replace-spaces">
+ <xsl:param name="curr-string"/>
+ <xsl:if test="contains($curr-string,' ')">
+ <xsl:value-of select="substring-before($curr-string,' ')"/>
+ <text:s text:c="2"/>
+ <xsl:variable name="next-string" select="substring-after($curr-string,' ')"/>
+ <xsl:choose>
+ <xsl:when test="contains($next-string, ' ')">
+ <xsl:call-template name="replace-spaces">
+ <xsl:with-param name="curr-string" select="$next-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$next-string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="å­—:å¥">
+ <xsl:if test="name(following-sibling::*[1])!='å­—:域结æŸ'">
+ <xsl:if test="å­—:æ¢è¡Œç¬¦">
+ <xsl:element name="text:line-break"/>
+ </xsl:if>
+ <xsl:variable name="currently-node" select="./字:锚点"/>
+ <xsl:choose>
+ <xsl:when test="å­—:å¥å±žæ€§//å­—:éšè—文字/@å­—:值='true'">
+ <text:hidden-text text:is-hidden="true" text:string-value="{.}"/>
+ </xsl:when>
+ <xsl:when test="字:区域开始[@字:类型='hyperlink']">
+ <xsl:element name="text:a">
+ <xsl:attribute name="xlink:type">simple</xsl:attribute>
+ <xsl:variable name="hyperDest" select="字:区域开始/@字:标识符"/>
+ <xsl:attribute name="xlink:href"><xsl:for-each select="/uof:UOF/uof:链接集/uof:超级链接"><xsl:if test="@uof:链æº=$hyperDest"><xsl:if test="@uof:目标"><xsl:value-of select="@uof:目标"/></xsl:if><xsl:if test="@uof:书签"><xsl:variable name="bookmarkDest" select="@uof:书签"/><xsl:for-each select="/uof:UOF/uof:书签集/uof:书签"><xsl:if test="@uof:å称=$bookmarkDest"><xsl:value-of select="concat('#',uof:文本ä½ç½®/@å­—:区域引用)"/></xsl:if></xsl:for-each></xsl:if></xsl:if></xsl:for-each></xsl:attribute>
+ <xsl:apply-templates select="字:文本串"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="(preceding-sibling::å­—:å¥) or (å­—:å¥å±žæ€§)or(å­—:区域开始)">
+ <xsl:element name="text:span">
+ <xsl:choose>
+ <xsl:when test="字:区域开始[@字:类型='annotation']">
+ <xsl:variable name="ref_comment">
+ <xsl:value-of select="字:区域开始/@字:标识符"/>
+ </xsl:variable>
+ <xsl:apply-templates/>
+ <xsl:apply-templates select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:批注集/å­—:批注[@å­—:区域引用 = $ref_comment]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="stylenum">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:å¥" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="å­—:å¥å±žæ€§/@å­—:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="node()[name() = 'å­—:ä½ç½®']">
+ <xsl:variable name="height">100% </xsl:variable>
+ <xsl:variable name="position">
+ <xsl:choose>
+ <xsl:when test="parent::å­—:å¥å±žæ€§//å­—:ä½ç½®">
+ <xsl:value-of select="concat( parent::å­—:å¥å±žæ€§//å­—:ä½ç½®, '%')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:text-position"><xsl:value-of select="concat(concat( $position, ' '), $height)"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:字体">
+ <xsl:if test="@å­—:å­—å·">
+ <xsl:attribute name="fo:font-size"><xsl:value-of select="@å­—:å­—å·"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian"><xsl:value-of select="@å­—:å­—å·"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-complex"><xsl:value-of select="@å­—:å­—å·"/>pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@å­—:ç›¸å¯¹å­—å· and self::node( )[not(parent::å­—:å¥å±žæ€§)]">
+ <xsl:variable name="stylename" select="parent::node()/@å­—:基å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="zihao">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†//uof:段è½å¼æ ·[@å­—:标识符=$stylename]">
+ <xsl:value-of select="å­—:字体/@å­—:å­—å·"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="font-size" select="@å­—:相对字å·"/>
+ <xsl:attribute name="fo:font-size"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-complex"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@字:颜色">
+ <xsl:attribute name="fo:color"><xsl:value-of select="string(@字:颜色)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@字:中文字体引用">
+ <xsl:attribute name="style:font-name-asian"><xsl:value-of select="@字:中文字体引用"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@字:西文字体引用">
+ <xsl:attribute name="style:font-name"><xsl:value-of select="@字:西文字体引用"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:斜体">
+ <xsl:if test="@字:值='true'">
+ <xsl:attribute name="fo:font-style">italic</xsl:attribute>
+ <xsl:attribute name="fo:font-style-asian">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-asian">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-complex">italic</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:粗体">
+ <xsl:if test="@字:值='true'">
+ <xsl:attribute name="fo:font-weight">bold</xsl:attribute>
+ <xsl:attribute name="fo:font-weight-asian">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-asian">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-complex">bold</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:下划线">
+ <xsl:choose>
+ <xsl:when test="@字:字下划线 = 'true'">
+ <xsl:attribute name="style:text-underline">single</xsl:attribute>
+ <xsl:attribute name=" style:text-underline-color">font-color</xsl:attribute>
+ <xsl:attribute name="fo:score-spaces">false</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'thick'">
+ <xsl:attribute name="style:text-underline">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dotted-heavy'">
+ <xsl:attribute name="style:text-underline">bold-dotted</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dashed-heavy'">
+ <xsl:attribute name="style:text-underline">bold-dash</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-long'">
+ <xsl:attribute name="style:text-underline">long-dash</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-long-heavy'">
+ <xsl:attribute name="style:text-underline">bold-long-dash</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-dot-heavy'">
+ <xsl:attribute name="style:text-underline">bold-dot-dash</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-dot-dot-heavy'">
+ <xsl:attribute name="style:text-underline">bold-dot-dot-dash</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'wavy-heavy'">
+ <xsl:attribute name="style:text-underline">bold-wave</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'wavy-double'">
+ <xsl:attribute name="style:text-underline">double-wave</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:text-underline"><xsl:value-of select="@字:类型"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@字:颜色 and not(@字:颜色 = 'auto')">
+ <xsl:attribute name="style:text-underline-color"><xsl:value-of select="concat( '#', @字:颜色)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:阴影">
+ <xsl:attribute name="style:text-shadow">1pt 1pt</xsl:attribute>
+ <xsl:attribute name="fo:text-shadow">1pt 1pt</xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:删除线">
+ <xsl:choose>
+ <xsl:when test="@字:类型 = 'single' ">
+ <xsl:attribute name="style:text-crossing-out">single-line</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字类型 = 'double'">
+ <xsl:attribute name="style:text-crossing-out">double-line</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:çªå‡ºæ˜¾ç¤º">
+ <xsl:attribute name="fo:text-transform">uppercase</xsl:attribute>
+ <xsl:attribute name="fo:text-background-color"><xsl:value-of select="string(@字:颜色)"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="@字:颜色[not(.='auto')]">
+ <xsl:attribute name="fo:color">#<xsl:value-of select="."/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:浮雕">
+ <xsl:attribute name="style:font-relief">embossed</xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:外框">
+ <xsl:attribute name="style:text-outline">true</xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:缩放">
+ <xsl:attribute name="style:text-scale"><xsl:value-of select="@å­—:å­—å·"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="å­—:字符间è·[parent::å­—:å¥å±žæ€§]">
+ <xsl:attribute name="fo:letter-spacing"><xsl:value-of select="concat( floor(number(å­—:å­—ç¬¦é—´è· div 1440) * 2540) div 1000, 'cm')"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="uof:字体集">
+ <xsl:if test="not(uof:字体声明[@uof:å称='StarSymbol'])">
+ <style:font-face style:name="StarSymbol" svg:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </xsl:if>
+ <xsl:for-each select="uof:字体声明">
+ <xsl:element name="style:font-face">
+ <xsl:attribute name="style:name"><xsl:value-of select="@uof:å称"/></xsl:attribute>
+ <xsl:attribute name="svg:font-family"><xsl:value-of select="@uof:字体æ—"/></xsl:attribute>
+ <xsl:if test="@uof:字符集 = '02'">
+ <xsl:attribute name="style:font-charset">x-symbol</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@uof:字体æ—">
+ <xsl:choose>
+ <xsl:when test="@uof:å­—ä½“æ— = 'Swiss'">
+ <xsl:attribute name="style:font-family-generic">swiss</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='Modern'">
+ <xsl:attribute name="style:font-family-generic">modern</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:字体æ—='Roman'">
+ <xsl:attribute name="style:font-family-generic">roman</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='Script'">
+ <xsl:attribute name="style:font-family-generic">script</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='Decorative'">
+ <xsl:attribute name="style:font-family-generic">decorative</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='System'">
+ <xsl:attribute name="style:font-family-generic">system</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:font-family-generic">system</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:attribute name="style:font-pitch">12</xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:apply-templates select="uof:字体声明"/>
+ </xsl:template>
+ <xsl:template match="uof:元数æ®">
+ <office:meta>
+ <meta:generator>UOFText 2004</meta:generator>
+ <dc:title>
+ <xsl:value-of select="uof:标题"/>
+ </dc:title>
+ <dc:description>
+ <xsl:value-of select="uof:摘è¦"/>
+ </dc:description>
+ <dc:subject>
+ <xsl:value-of select="uof:主题"/>
+ </dc:subject>
+ <meta:initial-creator>
+ <xsl:value-of select="uof:作者"/>
+ </meta:initial-creator>
+ <meta:creation-date>
+ <xsl:value-of select="substring-before( uof:创建日期, 'Z')"/>
+ </meta:creation-date>
+ <dc:creator>
+ <xsl:value-of select="uof:最åŽä½œè€…"/>
+ </dc:creator>
+ <dc:date>
+ <xsl:value-of select="substring-before( uof:编辑时间, 'Z')"/>
+ </dc:date>
+ <meta:printed-by/>
+ <meta:print-date/>
+ <meta:keywords>
+ <meta:keyword>
+ <xsl:value-of select="uof:关键字集/uof:关键字"/>
+ </meta:keyword>
+ </meta:keywords>
+ <dc:language/>
+ <meta:editing-cycles>
+ <xsl:value-of select="uof:编辑次数"/>
+ </meta:editing-cycles>
+ <meta:editing-duration>
+ <xsl:if test="uof:编辑时间">
+ <xsl:value-of select="concat('PT', floor(uof:编辑时间 div 60), 'H', uof:编辑时间 mod 60, 'M0S')"/>
+ </xsl:if>
+ </meta:editing-duration>
+ <meta:user-defined meta:name="Category">
+ <xsl:value-of select="uof:分类"/>
+ </meta:user-defined>
+ <meta:user-defined meta:name="Manager">
+ <xsl:value-of select="uof:ç»ç†å称"/>
+ </meta:user-defined>
+ <meta:user-defined meta:name="Company">
+ <xsl:value-of select="uof:å…¬å¸å称"/>
+ </meta:user-defined>
+ <meta:user-defined meta:name="Version">
+ <xsl:value-of select="uof:创建应用程åº"/>
+ </meta:user-defined>
+ <xsl:if test="uof:文档模æ¿|child::*[@uof:locID='u0013']">
+ <meta:template xlink:type="simple" xlink:actuate="onRequest" xlink:href="{child::*[@uof:locID='u0013']}"/>
+ </xsl:if>
+ <xsl:if test="uof:用户自定义元数æ®é›†/uof:用户自定义元数æ®|child::*[@uof:locID='u0016']/*[@uof:locID='u0017']">
+ <xsl:for-each select="uof:用户自定义元数æ®é›†/uof:用户自定义元数æ®|child::*[@uof:locID='u0016']/*[@uof:locID='u0017']">
+ <xsl:element name="meta:user-defined">
+ <xsl:attribute name="meta:name"><xsl:value-of select="@uof:å称"/></xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:if>
+ <meta:document-statistic meta:page-count="{child::*[@uof:locID='u0020']}" meta:paragraph-count="{child::*[@uof:locID='u0025']}" meta:word-count="{child::*[@uof:locID='u0023']}" meta:object-count="{child::*[@uof:locID='u0026']}" meta:character-count="{child::*[@uof:locID='u0021']}"/>
+ <meta:document-statistic/>
+ </office:meta>
+ </xsl:template>
+ <xsl:template match="uof:用户自定义元数æ®é›†">
+ <xsl:for-each select="node()[@å称]">
+ <meta:user-defined meta:name="{name()}">
+ <xsl:value-of select="."/>
+ </meta:user-defined>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="parse-range">
+ <xsl:param name="range-value"/>
+ <xsl:param name="last"/>
+ <xsl:variable name="first-pit">
+ <xsl:choose>
+ <xsl:when test="contains($range-value,',')">
+ <xsl:value-of select="substring-before($range-value,',')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$range-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="current">
+ <xsl:choose>
+ <xsl:when test="contains($first-pit,':')">
+ <xsl:variable name="R-start" select="substring-before(substring-after($first-pit,'R'),'C')"/>
+ <xsl:variable name="C-start" select="substring-before(substring-after($first-pit,'C'),':')"/>
+ <xsl:variable name="second-pit" select="substring-after($first-pit,':')"/>
+ <xsl:variable name="R-end" select="substring-before(substring-after($second-pit,'R'),'C')"/>
+ <xsl:variable name="C-end" select="substring-after($second-pit,'C')"/>
+ <xsl:variable name="the-str">
+ <xsl:call-template name="condition-rc-str">
+ <xsl:with-param name="r-start" select="$R-start"/>
+ <xsl:with-param name="r-end" select="$R-end"/>
+ <xsl:with-param name="c-start" select="$C-start"/>
+ <xsl:with-param name="c-end" select="$C-end"/>
+ <xsl:with-param name="last" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$the-str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($first-pit,',')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($range-value,',')">
+ <xsl:call-template name="parse-range">
+ <xsl:with-param name="range-value" select="substring-after($range-value,',')"/>
+ <xsl:with-param name="last" select="concat($last,$current)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($last,$current)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="condition-rc-str">
+ <xsl:param name="r-start"/>
+ <xsl:param name="r-end"/>
+ <xsl:param name="c-start"/>
+ <xsl:param name="c-end"/>
+ <xsl:param name="last"/>
+ <xsl:variable name="current">
+ <xsl:call-template name="condition-c-str">
+ <xsl:with-param name="rc-str" select="concat('R',$r-start)"/>
+ <xsl:with-param name="start" select="$c-start"/>
+ <xsl:with-param name="end" select="$c-end"/>
+ <xsl:with-param name="last" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$r-start &lt; $r-end">
+ <xsl:call-template name="condition-rc-str">
+ <xsl:with-param name="r-start" select="$r-start + 1"/>
+ <xsl:with-param name="r-end" select="$r-end"/>
+ <xsl:with-param name="c-start" select="$c-start"/>
+ <xsl:with-param name="c-end" select="$c-end"/>
+ <xsl:with-param name="last" select="concat($last,$current)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$r-start = $r-end">
+ <xsl:value-of select="concat($last,$current)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="condition-c-str">
+ <xsl:param name="rc-str"/>
+ <xsl:param name="start"/>
+ <xsl:param name="end"/>
+ <xsl:param name="last"/>
+ <xsl:variable name="current" select="concat($rc-str,'C',$start,',')"/>
+ <xsl:if test="$start &lt; $end">
+ <xsl:call-template name="condition-c-str">
+ <xsl:with-param name="rc-str" select="$rc-str"/>
+ <xsl:with-param name="start" select="$start + 1"/>
+ <xsl:with-param name="end" select="$end"/>
+ <xsl:with-param name="last" select="concat($last,$current)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$start = $end">
+ <xsl:value-of select="concat($last,$current)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="condition-str">
+ <xsl:param name="param-str"/>
+ <xsl:choose>
+ <xsl:when test="contains($param-str,'(')">
+ <xsl:call-template name="condition-str">
+ <xsl:with-param name="param-str" select="substring-after($param-str,'(')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($param-str,':')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="encode-as-cell-range-address">
+ <xsl:param name="string"/>
+ <xsl:value-of select="$string"/>
+ </xsl:template>
+ <xsl:template name="encode-as-cell-address">
+ <xsl:param name="string"/>
+ <xsl:value-of select="$string"/>
+ </xsl:template>
+ <xsl:param name="dpi" select="111"/>
+ <xsl:param name="centimeter-in-mm" select="10"/>
+ <xsl:param name="inch-in-mm" select="25.4"/>
+ <xsl:param name="didot-point-in-mm" select="0.376065"/>
+ <xsl:param name="pica-in-mm" select="4.2333333"/>
+ <xsl:param name="point-in-mm" select="0.3527778"/>
+ <xsl:param name="twip-in-mm" select="0.017636684"/>
+ <xsl:param name="pixel-in-mm" select="$inch-in-mm div $dpi"/>
+ <!-- ***** MEASUREMENT CONVERSIONS *****
+ PARAM 'value'
+ The measure to be converted.
+ The current measure is judged by a substring (e.g. 'mm', 'cm', 'in', 'pica'...)
+ directly added to the number.
+
+ PARAM 'rounding-factor'
+ Is used for the rounding of decimal places.
+ The parameter number is the product of 1 and some '10', where
+ every zero represents a decimal place.
+
+ For example, providing as parameter:
+ <xsl:param name="rounding-factor" select="10000" />
+ Gives by default four decimal places.
+
+ To round two decimal places, basically the following is done:
+ <xsl:value-of select="round(100 * value) div 100"/>
+
+ RETURN The converted number, by default rounded to four decimal places.
+ In case the input measure could not be matched the same value is
+ returned and a warning message is written out.
+
+
+
+ MEASURE LIST:
+ * 1 milimeter (mm), the basic measure
+
+ * 1 centimeter (cm) = 10 mm
+
+ * 1 inch (in) = 25.4 mm
+ While the English have already seen the light (read: the metric system), the US
+ remains loyal to this medieval system.
+
+ * 1 point (pt) = 0.35277777.. mm
+ Sometimes called PostScript point (ppt), as when Adobe created PostScript, they added their own system of points.
+ There are exactly 72 PostScript points in 1 inch.
+
+ * 1 twip = twentieth of a (PostScript) point
+ A twip (twentieth of a point) is a 1/20th of a PostScript point, a traditional measure in printing.
+
+ * 1 didot point (dpt) = 0.376065 mm
+ Didot point after the French typographer Firmin Didot (1764-1836).
+
+ More details under
+ http://www.unc.edu/~rowlett/units/dictP.html:
+ "A unit of length used by typographers and printers. When printing was done
+ from hand-set metal type, one point represented the smallest element of type
+ that could be handled, roughly 1/64 inch. Eventually, the point was standardized
+ in Britain and America as exactly 1/72.27 = 0.013 837 inch, which is
+ about 0.35 mm (351.46 micrometers). In continental Europe, typographers
+ traditionally used a slightly larger point of 0.014 83 inch (about
+ 1/72 pouce, 0.377 mm, or roughly 1/67 English inch), called a Didot point
+ after the French typographer Firmin Didot (1764-1836). In the U.S.,
+ Adobe software defines the point to be exactly 1/72 inch (0.013 888 9 inch
+ or 0.352 777 8 millimeters) and TeX software uses a slightly smaller point
+ of 0.351 459 8035 mm. The German standards agency DIN has proposed that
+ all these units be replaced by multiples of 0.25 millimeters (1/101.6 inch).
+
+ * 1 pica = 4.233333 mm
+ 1/6 inch or 12 points
+
+ * 1 pixel (px) = 0.26458333.. mm (relative to 'DPI', here: 96 dpi)
+ Most pictures have the 96 dpi resolution, but the dpi variable may vary by stylesheet parameter
+
+
+ -->
+ <!-- changing measure to mm -->
+ <xsl:template name="convert2mm">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="substring-before($value, 'mm')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm' ) * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in' ) * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'mm'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to cm -->
+ <xsl:template name="convert2cm">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="substring-before($value, 'cm')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $centimeter-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $centimeter-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $centimeter-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $centimeter-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $centimeter-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $centimeter-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'cm'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to inch (cp. section comment) -->
+ <xsl:template name="convert2in">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $inch-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="substring-before($value, 'in')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $inch-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $inch-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $inch-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $inch-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $inch-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'in'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to dpt (cp. section comment) -->
+ <xsl:template name="convert2dpt">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $didot-point-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $didot-point-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $didot-point-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="substring-before($value, 'dpt')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $didot-point-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $didot-point-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $didot-point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'dpt'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pica (cp. section comment) -->
+ <xsl:template name="convert2pica">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $pica-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $pica-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $pica-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $pica-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="substring-before($value, 'pica')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $pica-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $pica-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pica'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pt (cp. section comment) -->
+ <xsl:template name="convert2pt">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $point-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $point-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="substring-before($value, 'pt')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $point-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $point-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $point-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pt'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="ç¼–å·è§£æž">
+ <xsl:variable name="bianhao">
+ <xsl:value-of select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:variable name="bianhaojibie">
+ <xsl:value-of select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·çº§åˆ«"/>
+ </xsl:variable>
+ <xsl:variable name="isxiangmuorisimage">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·">
+ <xsl:choose>
+ <xsl:when test="$bianhao=@字:标识符">
+ <xsl:choose>
+ <xsl:when test="å­—:级别[@å­—:级别值= (number($bianhaojibie))]/å­—:项目符å·">true</xsl:when>
+ <xsl:when test="å­—:级别[@å­—:级别值= (number($bianhaojibie))]/å­—:图片符å·å¼•ç”¨">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$isxiangmuorisimage='true'">
+ <xsl:call-template name="æ— åº"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="有åº"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="有åº">
+ <xsl:variable name="currlistid" select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨"/>
+ <xsl:variable name="currlistlvl" select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·çº§åˆ«"/>
+ <xsl:variable name="firstoccur" select="/descendant::å­—:段è½å±žæ€§[å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨ = $currlistid][1]"/>
+ <xsl:element name="text:list">
+ <xsl:attribute name="text:style-name">List<xsl:value-of select="count($firstoccur/preceding::å­—:自动编å·ä¿¡æ¯)"/></xsl:attribute>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:é‡æ–°ç¼–å·">
+ <xsl:attribute name="text:continue-numbering"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:é‡æ–°ç¼–å·='true'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="ordered-levels">
+ <xsl:with-param name="level" select="$currlistlvl -1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="ordered-levels">
+ <xsl:param name="level"/>
+ <xsl:choose>
+ <xsl:when test="$level = '0'">
+ <xsl:call-template name="commonParagraph"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="text:list">
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="ordered-levels">
+ <xsl:with-param name="level" select="$level -1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="æ— åº">
+ <xsl:variable name="currlistid" select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨"/>
+ <xsl:variable name="currlistlvl" select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·çº§åˆ«"/>
+ <xsl:variable name="firstoccur" select="/descendant::å­—:段è½å±žæ€§[å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨ = $currlistid][1]"/>
+ <xsl:element name="text:list">
+ <xsl:attribute name="text:style-name">List<xsl:value-of select="count($firstoccur/preceding::å­—:自动编å·ä¿¡æ¯)"/></xsl:attribute>
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="unordered-levels">
+ <xsl:with-param name="level" select="$currlistlvl -1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="unordered-levels">
+ <xsl:param name="level"/>
+ <xsl:choose>
+ <xsl:when test="$level = '0'">
+ <xsl:call-template name="commonParagraph"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="text:list">
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="unordered-levels">
+ <xsl:with-param name="level" select="$level -1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pt (cp. section comment) -->
+ <xsl:template name="convert2twip">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $twip-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $twip-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $twip-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $twip-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $twip-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="substring-before($value, 'twip')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $twip-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'twip'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pixel by via parameter provided dpi (dots per inch) standard factor (cp. section comment) -->
+ <xsl:template name="convert2px">
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round(number(substring-before($value, 'mm')) div $pixel-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round(number(substring-before($value, 'cm')) div $pixel-in-mm * $centimeter-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round(number(substring-before($value, 'in')) div $pixel-in-mm * $inch-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round(number(substring-before($value, 'pt')) div $pixel-in-mm * $point-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round(number(substring-before($value, 'dpt')) div $pixel-in-mm * $didot-point-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round(number(substring-before($value, 'pica')) div $pixel-in-mm * $pica-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round(number(substring-before($value, 'twip')) div $pixel-in-mm * $twip-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'px'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/uof/uof2odf_spreadsheet.xsl b/test/user-template/user/xslt/import/uof/uof2odf_spreadsheet.xsl
new file mode 100644
index 000000000000..532561920791
--- /dev/null
+++ b/test/user-template/user/xslt/import/uof/uof2odf_spreadsheet.xsl
@@ -0,0 +1,9054 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:uof="http://schemas.uof.org/cn/2003/uof" xmlns:表="http://schemas.uof.org/cn/2003/uof-spreadsheet" xmlns:演="http://schemas.uof.org/cn/2003/uof-slideshow" xmlns:字="http://schemas.uof.org/cn/2003/uof-wordproc" xmlns:图="http://schemas.uof.org/cn/2003/graph" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0">
+ <xsl:output method="xml" indent="no" encoding="UTF-8" version="1.0"/>
+ <xsl:template match="uof:UOF">
+ <!--chengxz0804 OK-->
+ <!--office:document xmlns:office="http://openoffice.org/2000/office" xmlns:style="http://openoffice.org/2000/style" xmlns:text="http://openoffice.org/2000/text" xmlns:table="http://openoffice.org/2000/table" xmlns:draw="http://openoffice.org/2000/drawing" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="http://openoffice.org/2000/meta" xmlns:number="http://openoffice.org/2000/datastyle" xmlns:svg="http://www.w3.org/2000/svg" xmlns:chart="http://openoffice.org/2000/chart" xmlns:dr3d="http://openoffice.org/2000/dr3d" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="http://openoffice.org/2000/form" xmlns:script="http://openoffice.org/2000/script" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" office:version="1.0" office:class="spreadsheet"-->
+ <office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0">
+ <xsl:apply-templates select="uof:元数æ®"/>
+ <office:settings>
+ <xsl:call-template name="工作表属性"/>
+ </office:settings>
+ <xsl:apply-templates select="uof:å¼æ ·é›†"/>
+ <!--xsl:apply-templates select="表:公用处ç†è§„则"/-->
+ <xsl:apply-templates select="uof:电å­è¡¨æ ¼"/>
+ </office:document>
+ </xsl:template>
+ <!--Redoffice comment lil from chenjh SC0013 06.02.15-->
+ <!--增加内容-->
+ <xsl:variable name="uofUnit">
+ <xsl:variable name="uu">
+ <xsl:value-of select="/uof:UOF/uof:电å­è¡¨æ ¼/表:公用处ç†è§„则/表:度é‡å•ä½"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$uu='cm'">cm</xsl:when>
+ <xsl:when test="$uu='mm'">mm</xsl:when>
+ <xsl:when test="$uu='pt'">pt</xsl:when>
+ <xsl:when test="$uu='inch'">inch</xsl:when>
+ <xsl:otherwise>cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="other-to-cm-conversion-factor">
+ <xsl:choose>
+ <xsl:when test="$uofUnit='cm'">1</xsl:when>
+ <xsl:when test="$uofUnit='mm'">0.1</xsl:when>
+ <xsl:when test="$uofUnit='pt'">0.03527</xsl:when>
+ <xsl:when test="$uofUnit='inch'">2.54</xsl:when>
+ <xsl:when test="$uofUnit='pica'">0.4233</xsl:when>
+ <xsl:otherwise>0.03527</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!--Redoffice comment liliang end 06.02.15-->
+ <xsl:template name="set-calculation">
+ <xsl:element name="table:calculation-settings">
+ <xsl:if test="表:公用处ç†è§„则/表:度é‡å•ä½">
+ <xsl:variable name="uofUnit">
+ <xsl:variable name="uu">
+ <xsl:value-of select="表:公用处ç†è§„则/表:度é‡å•ä½"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$uu='cm'">cm</xsl:when>
+ <xsl:when test="$uu='mm'">mm</xsl:when>
+ <xsl:when test="$uu='pt'">pt</xsl:when>
+ <xsl:when test="$uu='inch'">inch</xsl:when>
+ <xsl:otherwise>cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="other-to-cm-conversion-factor">
+ <xsl:choose>
+ <xsl:when test="$uofUnit='cm'">1</xsl:when>
+ <xsl:when test="$uofUnit='mm'">0.1</xsl:when>
+ <xsl:when test="$uofUnit='pt'">0.03527</xsl:when>
+ <xsl:when test="$uofUnit='inch'">2.54</xsl:when>
+ <xsl:when test="$uofUnit='pica'">0.4233</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ </xsl:if>
+ <xsl:if test="表:公用处ç†è§„则/表:精确度以显示值为准">
+ <xsl:attribute name="table:precision-as-shown">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:公用处ç†è§„则/表:日期系统-1904/@表:值='true'">
+ <table:null-date table:date-value="1904-01-01"/>
+ </xsl:if>
+ <xsl:if test="表:公用处ç†è§„则/表:计算设置">
+ <xsl:element name="table:iteration">
+ <xsl:attribute name="table:status">enable</xsl:attribute>
+ <xsl:attribute name="table:steps"><xsl:value-of select="表:公用处ç†è§„则/表:计算设置/@表:迭代次数"/></xsl:attribute>
+ <xsl:attribute name="table:maximum-difference"><xsl:value-of select="表:公用处ç†è§„则/表:计算设置/@表:å差值"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="uof:字体集">
+ <xsl:if test="not(uof:字体声明[@uof:å称='StarSymbol'])">
+ <style:font-face style:name="StarSymbol" fo:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </xsl:if>
+ <xsl:for-each select="uof:字体声明">
+ <xsl:element name="style:font-face">
+ <xsl:attribute name="style:name"><xsl:value-of select="@uof:å称"/></xsl:attribute>
+ <xsl:attribute name="svg:font-family"><xsl:value-of select="@uof:字体æ—"/></xsl:attribute>
+ <xsl:if test="@uof:字符集 = '02'">
+ <xsl:attribute name="style:font-charset">x-symbol</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@uof:字体æ—">
+ <xsl:choose>
+ <xsl:when test="@uof:å­—ä½“æ— = 'Swiss'">
+ <xsl:attribute name="style:font-family-generic">swiss</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='Modern'">
+ <xsl:attribute name="style:font-family-generic">modern</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:字体æ—='Roman'">
+ <xsl:attribute name="style:font-family-generic">roman</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='Script'">
+ <xsl:attribute name="style:font-family-generic">script</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='Decorative'">
+ <xsl:attribute name="style:font-family-generic">decorative</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='System'">
+ <xsl:attribute name="style:font-family-generic">system</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:font-family-generic">system</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:attribute name="style:font-pitch">12</xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:apply-templates select="uof:字体声明"/>
+ </xsl:template>
+ <xsl:template match="uof:电å­è¡¨æ ¼">
+ <office:body>
+ <office:spreadsheet>
+ <xsl:call-template name="trackchange"/>
+ <xsl:call-template name="set-calculation"/>
+ <xsl:if test="表:公用处ç†è§„则/表:æ•°æ®æœ‰æ•ˆæ€§é›†">
+ <xsl:element name="table:content-validations">
+ <xsl:call-template name="create-content-validations">
+ <xsl:with-param name="validation-set" select="表:公用处ç†è§„则/表:æ•°æ®æœ‰æ•ˆæ€§é›†/表:æ•°æ®æœ‰æ•ˆæ€§"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:apply-templates select="表:主体/表:工作表"/>
+ <!--MSexcel 中的names暂时没有对应的-->
+ <xsl:element name="table:database-ranges">
+ <xsl:for-each select="表:主体/表:工作表">
+ <xsl:if test="./表:筛选">
+ <xsl:variable name="filter" select="./表:筛选"/>
+ <xsl:variable name="column-and-row" select="substring-before(substring-after($filter/表:范围/text(),'.'),':')"/>
+ <xsl:variable name="dd" select="number(substring($column-and-row,2,1))"/>
+ <xsl:variable name="zone-left-column-string">
+ <xsl:choose>
+ <xsl:when test="contains($dd,'NaN') ">
+ <xsl:value-of select="substring($column-and-row,1,2)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring($column-and-row,1,1)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="zone-left-column-num">
+ <xsl:call-template name="translate-column-char-to-number">
+ <xsl:with-param name="string" select="$zone-left-column-string"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:element name="table:database-range">
+ <xsl:attribute name="table:name"><xsl:value-of select="uof:电å­è¡¨æ ¼/表:主体/表:工作表/@表:å称"/></xsl:attribute>
+ <xsl:attribute name="table:target-range-address"><xsl:call-template name="translate-expression2"><xsl:with-param name="expression2" select="translate($filter/表:范围/text(),'$','')"/></xsl:call-template></xsl:attribute>
+ <xsl:if test="$filter/@表:类型='auto'">
+ <xsl:attribute name="table:display-filter-buttons">true</xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$filter/表:æ¡ä»¶åŒºåŸŸ">
+ <xsl:element name="table:filter">
+ <xsl:attribute name="table:condition-source-range-address"><xsl:call-template name="translate-expression2"><xsl:with-param name="expression2" select="translate($filter/表:æ¡ä»¶åŒºåŸŸ/text(),'$','')"/></xsl:call-template></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="table:filter">
+ <xsl:element name="table:filter-and">
+ <xsl:call-template name="auto-filter-condition">
+ <xsl:with-param name="conditon-set" select="$filter/表:æ¡ä»¶"/>
+ <xsl:with-param name="zone-left-column-num" select="$zone-left-column-num"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </office:spreadsheet>
+ </office:body>
+ </xsl:template>
+ <xsl:template name="trackchange">
+ <xsl:for-each select="表:主体/表:工作表/表:工作表内容//字:修订开始">
+ <xsl:variable name="num">
+ <xsl:number level="any" from="表:主体/表:工作表/表:工作表内容//*" count="字:修订开始"/>
+ </xsl:variable>
+ <table:tracked-changes>
+ <table:cell-content-change>
+ <xsl:attribute name="table:id"><xsl:value-of select="concat('ct',$num)"/></xsl:attribute>
+ <table:cell-address>
+ <xsl:attribute name="table:column"><xsl:value-of select="substring-after(@字:标识符,'-')"/></xsl:attribute>
+ <xsl:attribute name="table:row"><xsl:value-of select="substring-before(@字:标识符,'-')"/></xsl:attribute>
+ <xsl:attribute name="table:table">0</xsl:attribute>
+ </table:cell-address>
+ <office:change-info>
+ <dc:creator>
+ <xsl:choose>
+ <xsl:when test="starts-with(@å­—:修订信æ¯å¼•ç”¨,'+')"/>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before(@å­—:修订信æ¯å¼•ç”¨,'+')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </dc:creator>
+ <!--xsl:value-of select="/uof:UOF/uof:元数æ®/uof:作者"/-->
+ <!--xsl:value-of select="/uof:UOF/uof:元数æ®/uof:创建日期"/-->
+ <dc:date>
+ <xsl:value-of select="substring-before(substring-after(@å­—:修订信æ¯å¼•ç”¨,'+'),'%')"/>
+ </dc:date>
+ </office:change-info>
+ <table:previous>
+ <table:change-track-table-cell>
+ <text:p>
+ <xsl:value-of select="substring-after(@å­—:修订信æ¯å¼•ç”¨,'%')"/>
+ </text:p>
+ </table:change-track-table-cell>
+ </table:previous>
+ </table:cell-content-change>
+ </table:tracked-changes>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="uof:å¼æ ·é›†">
+ <xsl:element name="office:font-face-decls">
+ <style:font-face style:name="宋体" svg:font-family="宋体" style:font-family-generic="swiss"/>
+ <xsl:apply-templates select="uof:字体集"/>
+ </xsl:element>
+ <xsl:call-template name="å•å…ƒæ ¼å¼æ ·"/>
+ </xsl:template>
+ <xsl:key match="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/uof:锚点 | /uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:è¡Œ/表:å•å…ƒæ ¼/uof:锚点" name="rel_graphic_name" use="@uof:图形引用"/>
+ <xsl:template match="图:图形">
+ <xsl:variable name="random-name">
+ <xsl:value-of select="generate-id()"/>
+ </xsl:variable>
+ <xsl:variable name="draw-name">
+ <xsl:value-of select="substring($random-name,string-length($random-name)-1)"/>
+ </xsl:variable>
+ <xsl:call-template name="graphic-fill">
+ <xsl:with-param name="draw-name" select="$draw-name"/>
+ <xsl:with-param name="gradient-name" select="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜"/>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:family">graphic</xsl:attribute>
+ <xsl:element name="style:graphic-properties">
+ <xsl:call-template name="process-graphics">
+ <xsl:with-param name="draw-name" select="$draw-name"/>
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:element name="style:paragraph-properties">
+ <xsl:if test="图:文本内容/@图:文字排列方å‘">
+ <xsl:choose>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-l2r'">
+ <xsl:attribute name="style:writing-mode">tb-lr</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-r2l'">
+ <xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:family">graphic</xsl:attribute>
+ <xsl:element name="style:graphic-properties">
+ <xsl:if test="@图:其他对象">
+ <xsl:attribute name="fo:clip">rect(0cm 0cm 0cm 0cm)</xsl:attribute>
+ <xsl:attribute name="draw:color-mode">standard</xsl:attribute>
+ <xsl:attribute name="draw:luminance">0%</xsl:attribute>
+ <xsl:attribute name="draw:contrast">0%</xsl:attribute>
+ <xsl:attribute name="draw:gamma">100%</xsl:attribute>
+ <xsl:attribute name="draw:red">0%</xsl:attribute>
+ <xsl:attribute name="draw:green">0%</xsl:attribute>
+ <xsl:attribute name="draw:blue">0%</xsl:attribute>
+ <xsl:attribute name="draw:image-opacity">100%</xsl:attribute>
+ <xsl:attribute name="style:mirror">none</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="process-graphics"/>
+ </xsl:element>
+ <xsl:element name="style:paragraph-properties">
+ <xsl:if test="图:文本内容/@图:文字排列方å‘">
+ <xsl:choose>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-l2r'">
+ <xsl:attribute name="style:writing-mode">tb-lr</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-r2l'">
+ <xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="process-graphics">
+ <xsl:param name="draw-name"/>
+ <xsl:if test="not(key('rel_graphic_name',@图:标识符)/@uof:éšåŠ¨æ–¹å¼='movesize')">
+ <xsl:attribute name="style:protect"><xsl:choose><xsl:when test="key('rel_graphic_name',@图:标识符)/@uof:éšåŠ¨æ–¹å¼='move'">size</xsl:when><xsl:otherwise>position size</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="not(图:预定义图形/图:属性/图:填充)">
+ <xsl:attribute name="draw:fill">none</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图片">
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-image-name"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称"/></xsl:attribute>
+ <xsl:if test="not(图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:ä½ç½®='tile')">
+ <xsl:attribute name="style:repeat"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:ä½ç½®='center'">no-repeat</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:ä½ç½®='stretch'">stretch</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图案">
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图案/@图:å‰æ™¯è‰²"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:颜色">
+ <xsl:attribute name="draw:fill">solid</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:填充/图:颜色"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜">
+ <xsl:attribute name="draw:fill">gradient</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜/@图:起始色"/></xsl:attribute>
+ <xsl:attribute name="draw:fill-gradient-name"><xsl:value-of select="concat('Gradient ',$draw-name)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="图:预定义图形/图:属性/图:线颜色">
+ <xsl:attribute name="svg:stroke-color"><xsl:value-of select="图:预定义图形/图:属性/图:线颜色"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:线型 and not(图:预定义图形/图:属性/图:线型 = 'single') and not(图:预定义图形/图:属性/图:线型 = 'thick')">
+ <xsl:variable name="type" select="图:预定义图形/图:属性/图:线型"/>
+ <xsl:attribute name="draw:stroke"><xsl:choose><xsl:when test="$type='none'">none</xsl:when><xsl:when test="$type='single'">solid</xsl:when><xsl:otherwise>dash</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="draw:stroke-dash"><xsl:choose><xsl:when test="$type='dash'">Ultrafine_20_Dashed</xsl:when><xsl:when test="$type='dot-dash'">Ultrafine_20_2_20_Dots_20_3_20_Dashes</xsl:when><xsl:when test="$type='dashed-heavy'">Fine_20_Dashed</xsl:when><xsl:when test="$type='dotted' ">Fine_20_Dotted</xsl:when><xsl:when test="$type='dash-long-heavy'">Line_20_with_20_Fine_20_Dots</xsl:when><xsl:when test="$type='dash-long'">Fine_20_Dashed_20__28_var_29_</xsl:when><xsl:when test="$type='dash-dot-dot'">_33__20_Dashes_20_3_20_Dots_20__28_var_29_</xsl:when><xsl:when test="$type='dotted-heavy'">Ultrafine_20_Dotted_20__28_var_29_</xsl:when><xsl:when test="$type='thick'">Line_20_Style_20_9</xsl:when><xsl:when test="$type='dot-dot-dash'">_32__20_Dots_20_1_20_Dash</xsl:when><xsl:when test="$type='dash-dot-dot-heavy'">Dashed_20__28_var_29_</xsl:when><xsl:when test="$type='dash-dot-heavy'">Dash_20_10</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:线粗细">
+ <xsl:attribute name="svg:stroke-width"><xsl:value-of select="concat(图:预定义图形/图:属性/图:线粗细,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´">
+ <xsl:attribute name="draw:marker-start"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:大å°">
+ <xsl:attribute name="draw:marker-start-width"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '1'"><xsl:value-of select="concat('0.05',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '2'"><xsl:value-of select="concat('0.10',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '3'"><xsl:value-of select="concat('0.15',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '4'"><xsl:value-of select="concat('0.20',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '5'"><xsl:value-of select="concat('0.25',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '6'"><xsl:value-of select="concat('0.30',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '7'"><xsl:value-of select="concat('0.35',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '8'"><xsl:value-of select="concat('0.40',$uofUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('0.45',$uofUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´">
+ <xsl:attribute name="draw:marker-end"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:大å°">
+ <xsl:attribute name="draw:marker-end-width"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '1'"><xsl:value-of select="concat('0.05',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '2'"><xsl:value-of select="concat('0.10',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '3'"><xsl:value-of select="concat('0.15',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '4'"><xsl:value-of select="concat('0.20',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '5'"><xsl:value-of select="concat('0.25',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '6'"><xsl:value-of select="concat('0.30',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '7'"><xsl:value-of select="concat('0.35',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '8'"><xsl:value-of select="concat('0.40',$uofUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('0.45',$uofUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:é€æ˜Žåº¦">
+ <xsl:attribute name="draw:opacity"><xsl:value-of select="concat(图:预定义图形/图:属性/图:é€æ˜Žåº¦,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:if test="图:文本内容/@图:上边è·">
+ <xsl:attribute name="fo:padding-top"><xsl:value-of select="concat(图:文本内容/@图:上边è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:padding-bottom"><xsl:value-of select="concat(图:文本内容/@图:下边è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:padding-left"><xsl:value-of select="concat(图:文本内容/@图:左边è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:padding-right"><xsl:value-of select="concat(图:文本内容/@图:å³è¾¹è·,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容/@图:文字排列方å‘">
+ <xsl:choose>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-l2r'">
+ <xsl:attribute name="style:writing-mode">tb-lr</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-r2l'">
+ <xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='hori-r2l'">
+ <xsl:attribute name="draw:textarea-horizontal-align">right</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='hori-12r'">
+ <xsl:attribute name="draw:textarea-horizontal-align">left</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="图:文本内容/@图:水平对é½">
+ <xsl:attribute name="draw:textarea-horizontal-align"><xsl:value-of select="图:文本内容/@图:水平对é½"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容/@图:垂直对é½">
+ <xsl:attribute name="draw:textarea-vertical-align"><xsl:value-of select="图:文本内容/@图:垂直对é½"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容/@图:自动æ¢è¡Œ">
+ <xsl:attribute name="fo:wrap-option">no-wrap</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="draw:auto-grow-width"><xsl:choose><xsl:when test="图:文本内容/@图:大å°é€‚应文字">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="draw:auto-grow-height"><xsl:choose><xsl:when test="图:文本内容/@图:大å°é€‚应文字">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="bina_graphic">
+ <xsl:param name="refGraphic"/>
+ <xsl:element name="office:binary-data">
+ <xsl:for-each select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符 = $refGraphic]">
+ <xsl:value-of select="uof:æ•°æ®"/>
+ </xsl:for-each>
+ </xsl:element>
+ <text:p/>
+ </xsl:template>
+ <xsl:template name="graphic-fill">
+ <xsl:param name="draw-name"/>
+ <xsl:param name="gradient-name"/>
+ <xsl:if test="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜">
+ <xsl:element name="draw:gradient">
+ <xsl:attribute name="draw:name"><xsl:value-of select="concat('Gradient ',$draw-name)"/></xsl:attribute>
+ <xsl:attribute name="draw:style"><xsl:choose><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='linear'"><xsl:value-of select="'linear'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='radar'"><xsl:value-of select="'radial'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='oval'"><xsl:value-of select="'ellipsoid'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='square'"><xsl:value-of select="'square'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='rectangle'"><xsl:value-of select="'rectangular'"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="draw:start-color"><xsl:value-of select="$gradient-name/@图:起始色"/></xsl:attribute>
+ <xsl:attribute name="draw:end-color"><xsl:value-of select="$gradient-name/@图:终止色"/></xsl:attribute>
+ <xsl:attribute name="draw:start-intensity"><xsl:value-of select="concat($gradient-name/@图:起始浓度,'%')"/></xsl:attribute>
+ <xsl:attribute name="draw:end-intensity"><xsl:value-of select="concat($gradient-name/@图:终止浓度,'%')"/></xsl:attribute>
+ <xsl:attribute name="draw:angle"><xsl:value-of select="$gradient-name/@图:æ¸å˜æ–¹å‘ * 10"/></xsl:attribute>
+ <xsl:attribute name="draw:border"><xsl:value-of select="concat($gradient-name/@图:边界,'%')"/></xsl:attribute>
+ <xsl:if test="$gradient-name/@图:ç§å­Xä½ç½®">
+ <xsl:attribute name="draw:cx"><xsl:value-of select="concat($gradient-name/@图:ç§å­Xä½ç½®,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$gradient-name/@图:ç§å­Yä½ç½®">
+ <xsl:attribute name="draw:cy"><xsl:value-of select="concat($gradient-name/@图:ç§å­Yä½ç½®,'%')"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´">
+ <xsl:element name="draw:marker">
+ <xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='normal'">
+ <xsl:attribute name="svg:viewBox">0 0 20 30</xsl:attribute>
+ <xsl:attribute name="svg:d">m10 0-10 30h20z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='open'">
+ <xsl:attribute name="svg:viewBox">0 0 1122 2243</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='stealth'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1580</xsl:attribute>
+ <xsl:attribute name="svg:d">m1013 1491 118 89-567-1580-564 1580 114-85 136-68 148-46 161-17 161 13 153 46z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='oval'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='diamond'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 564 564 567 567-567-567-564z</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´">
+ <xsl:element name="draw:marker">
+ <xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='normal'">
+ <xsl:attribute name="svg:viewBox">0 0 20 30</xsl:attribute>
+ <xsl:attribute name="svg:d">m10 0-10 30h20z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='open'">
+ <xsl:attribute name="svg:viewBox">0 0 1122 2243</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='stealth'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1580</xsl:attribute>
+ <xsl:attribute name="svg:d">m1013 1491 118 89-567-1580-564 1580 114-85 136-68 148-46 161-17 161 13 153 46z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='oval'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='diamond'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 564 564 567 567-567-567-564z</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用 or 图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用">
+ <xsl:element name="draw:fill-image">
+ <xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图案/@图:图形引用"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图案/@图:类型"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:图形引用"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:call-template name="bina_graphic">
+ <xsl:with-param name="refGraphic">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用">
+ <xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用"/>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用">
+ <xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="not(图:预定义图形/图:属性/图:线型='single') and not(图:预定义图形/图:属性/图:线型='thick') and 图:预定义图形/图:属性/图:线型">
+ <draw:stroke-dash draw:name="Ultrafine_20_Dashed" draw:display-name="Ultrafine Dashed" draw:style="rect" draw:dots1="1" draw:dots1-length="0.051cm" draw:dots2="1" draw:dots2-length="0.051cm" draw:distance="0.051cm"/>
+ <draw:stroke-dash draw:name="Fine_20_Dashed" draw:display-name="Fine Dashed" draw:style="rect" draw:dots1="1" draw:dots1-length="0.508cm" draw:dots2="1" draw:dots2-length="0.508cm" draw:distance="0.508cm"/>
+ <draw:stroke-dash draw:name="Ultrafine_20_2_20_Dots_20_3_20_Dashes" draw:display-name="Ultrafine 2 Dots 3 Dashes" draw:style="rect" draw:dots1="2" draw:dots1-length="0.051cm" draw:dots2="3" draw:dots2-length="0.254cm" draw:distance="0.127cm"/>
+ <draw:stroke-dash draw:name="Fine_20_Dashed_20__28_var_29_" draw:display-name="Fine Dashed (var)" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="197%"/>
+ <draw:stroke-dash draw:name="Fine_20_Dotted" draw:display-name="Fine Dotted" draw:style="rect" draw:dots1="1" draw:distance="0.457cm"/>
+ <draw:stroke-dash draw:name="Fine_20_Dashed_20__28_var_29_" draw:display-name="Fine Dashed (var)" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="197%"/>
+ <draw:stroke-dash draw:name="Fine_20_Dotted" draw:display-name="Fine Dotted" draw:style="rect" draw:dots1="1" draw:distance="0.457cm"/>
+ <draw:stroke-dash draw:name="Line_20_with_20_Fine_20_Dots" draw:display-name="Line with Fine Dots" draw:style="rect" draw:dots1="1" draw:dots1-length="2.007cm" draw:dots2="10" draw:distance="0.152cm"/>
+ <draw:stroke-dash draw:name="Line_20_Style_20_9" draw:display-name="Line Style 9" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="120%"/>
+ <draw:stroke-dash draw:name="_33__20_Dashes_20_3_20_Dots_20__28_var_29_" draw:display-name="3 Dashes 3 Dots (var)" draw:style="rect" draw:dots1="3" draw:dots1-length="197%" draw:dots2="3" draw:distance="100%"/>
+ <draw:stroke-dash draw:name="_32__20_Dots_20_1_20_Dash" draw:display-name="2 Dots 1 Dash" draw:style="rect" draw:dots1="2" draw:dots2="1" draw:dots2-length="0.203cm" draw:distance="0.203cm"/>
+ <draw:stroke-dash draw:name="Ultrafine_20_Dotted_20__28_var_29_" draw:display-name="Ultrafine Dotted (var)" draw:style="rect" draw:dots1="1" draw:distance="50%"/>
+ <draw:stroke-dash draw:name="Dash_20_10" draw:display-name="Dash 10" draw:style="rect" draw:dots1="1" draw:dots1-length="0.02cm" draw:dots2="1" draw:dots2-length="0.02cm" draw:distance="0.02cm"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="å•å…ƒæ ¼å¼æ ·">
+ <xsl:variable name="uofSheet" select="/uof:UOF/uof:电å­è¡¨æ ¼"/>
+ <xsl:variable name="uofSheet1" select="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表"/>
+ <xsl:variable name="uofSheetCom" select="$uofSheet/表:公用处ç†è§„则"/>
+ <xsl:variable name="first-style" select="/uof:UOF/uof:å¼æ ·é›†/uof:å•å…ƒæ ¼å¼æ ·"/>
+ <xsl:variable name="quyu" select="/uof:UOF/uof:电å­è¡¨æ ¼/表:公用处ç†è§„则/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–/表:区域"/>
+ <xsl:variable name="condition-format-set" select="/uof:UOF/uof:电å­è¡¨æ ¼/表:公用处ç†è§„则/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–"/>
+ <xsl:variable name="aa">
+ <xsl:for-each select="$first-style">
+ <xsl:if test="@表:标识符!=@表:å称 and @表:å称!='Normal'">
+ <xsl:value-of select="@表:å称"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="bb">
+ <xsl:for-each select="$first-style">
+ <xsl:if test="@表:标识符!=@表:å称 and @表:å称!='Normal'">
+ <xsl:value-of select="@表:标识符"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <office:styles>
+ <!-- if ConditionalFormatting exists,it should generate some styles for style:style -->
+ <!--xsl:if test="$uofSheetCom/表:æ¡ä»¶æ ¼å¼åŒ–集">
+ <xsl:call-template name="CondFormat_office_style"/>
+ </xsl:if-->
+ <!--ro000179 chenjh-->
+ <xsl:for-each select="$first-style[@表:类型='custom' or @表:类型='default']">
+ <xsl:call-template name="å•å…ƒæ ¼å…·ä½“å¼æ ·"/>
+ <xsl:apply-templates select="表:æ•°å­—æ ¼å¼[@表:æ ¼å¼ç ]"/>
+ <xsl:apply-templates select="表:字体格å¼[å­—:上下标]"/>
+ </xsl:for-each>
+ </office:styles>
+ <office:automatic-styles>
+ <xsl:for-each select="$first-style[@表:类型='auto']">
+ <xsl:variable name="apply-style-name" select="@表:å称"/>
+ <xsl:variable name="style-name" select="@表:标识符"/>
+ <xsl:choose>
+ <xsl:when test="$style-name!=$apply-style-name and $apply-style-name!='Normal'">
+ <xsl:for-each select="$condition-format-set/表:æ¡ä»¶">
+ <style:style>
+ <xsl:attribute name="style:name"><xsl:value-of select="//uof:å•å…ƒæ ¼å¼æ ·[@表:å称=current()/表:æ ¼å¼/@表:å¼æ ·å¼•ç”¨ and @表:类型='auto']/@表:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:family">table-cell</xsl:attribute>
+ <xsl:attribute name="style:parent-style-name">Default</xsl:attribute>
+ <xsl:for-each select="parent::表:æ¡ä»¶æ ¼å¼åŒ–/表:æ¡ä»¶">
+ <xsl:variable name="condition-text">
+ <xsl:choose>
+ <xsl:when test="@表:类型='cell value'">
+ <xsl:choose>
+ <xsl:when test="表:æ“作ç /text()='between' ">
+ <xsl:value-of select="concat('cell-content-is-between','(',表:第一æ“作数/text(),',',表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test=" 表:æ“作ç /text()='not between'">
+ <xsl:value-of select="concat('cell-content-is-not-between','(',表:第一æ“作数/text(),',',表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='equal to'">
+ <xsl:value-of select="concat('cell-content()=',表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='not equal to'">
+ <xsl:value-of select="concat('cell-content()!=',表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='greater than'">
+ <xsl:value-of select="concat('cell-content()&gt;',表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='less than'">
+ <xsl:value-of select="concat('cell-content()&lt;',表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='greater than or equal to'">
+ <xsl:value-of select="concat('cell-content()&gt;=',表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='less than or equal to'">
+ <xsl:value-of select="concat('cell-content()&lt;=',表:第一æ“作数/text())"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@表:类型='formula'">
+ <xsl:value-of select="concat('is-true-formula','(',表:第一æ“作数/text(),')')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="style:map">
+ <xsl:variable name="address">
+ <xsl:value-of select="preceding-sibling::表:区域"/>
+ </xsl:variable>
+ <xsl:attribute name="style:condition"><xsl:value-of select="$condition-text"/></xsl:attribute>
+ <xsl:attribute name="style:apply-style-name"><xsl:value-of select="表:æ ¼å¼/@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ <xsl:attribute name="style:base-cell-address"><xsl:value-of select="substring-after($address,':')"/></xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </style:style>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="uof:å•å…ƒæ ¼å¼æ · ">
+ <xsl:if test="@表:类型='auto' and (@表:标识符=@表:å称 or @表:å称='Normal')">
+ <xsl:call-template name="å•å…ƒæ ¼å…·ä½“å¼æ ·"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ <!--Redoffie comment liliang SC0008 06.02.14-->
+ <!--1新增内容-->
+ <xsl:if test="uof:å•å…ƒæ ¼å¼æ ·">
+ <xsl:for-each select="uof:å•å…ƒæ ¼å¼æ ·">
+ <xsl:if test="@表:类型='auto' and (@表:标识符=@表:å称 or @表:å称='Normal')">
+ <xsl:call-template name="å•å…ƒæ ¼å…·ä½“å¼æ ·"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='png' or /uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='ipg' or /uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='bmp' or /uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='gif'">
+ <style:style style:name="Graphics" style:family="graphics">
+ <style:properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" style:wrap="none" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph"/>
+ </style:style>
+ </xsl:if>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形"/>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形/图:文本内容/å­—:段è½/å­—:å¥/å­—:å¥å±žæ€§" mode="style"/>
+ <!--Redoffice comment end 06.02.14-->
+ <xsl:apply-templates select="$uofSheet1/表:工作表内容"/>
+ <xsl:if test="uof:å•å…ƒæ ¼å¼æ ·">
+ <xsl:for-each select="uof:å•å…ƒæ ¼å¼æ ·[@表:类型='auto' and (@表:标识符=@表:å称 or @表:å称='Normal')]">
+ <xsl:call-template name="å•å…ƒæ ¼å…·ä½“å¼æ ·"/>
+ <xsl:apply-templates select="表:æ•°å­—æ ¼å¼[@表:æ ¼å¼ç ]"/>
+ <xsl:apply-templates select="表:字体格å¼[å­—:上下标]"/>
+ </xsl:for-each>
+ </xsl:if>
+ <!-- if ConditionalFormatting exists,transforing the styles -->
+ <!--xsl:if test="$uofSheetCom/表:æ¡ä»¶æ ¼å¼åŒ–集">
+ <xsl:call-template name="CondFormat_automatic_style"/>
+ </xsl:if-->
+ <xsl:if test="$uofSheetCom/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–">
+ <xsl:variable name="style-name" select="$first-style/@表:标识符"/>
+ <xsl:variable name="left-top">
+ <xsl:call-template name="search-left-top-in-tables">
+ <xsl:with-param name="cellstylename" select="$style-name"/>
+ <xsl:with-param name="tableslist" select="$uofSheet1/表:工作表内容"/>
+ <xsl:with-param name="return" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="after-translated-left-top">
+ <xsl:call-template name="translate-left-top">
+ <xsl:with-param name="left-top" select="$left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$after-translated-left-top!=''">
+ <xsl:call-template name="create-the-condition-format-map">
+ <xsl:with-param name="condition-format-set" select="$uofSheetCom/表:æ¡ä»¶æ ¼å¼åŒ–集//表:æ¡ä»¶æ ¼å¼åŒ–"/>
+ <xsl:with-param name="current-left-top" select="$after-translated-left-top"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <xsl:apply-templates select="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:列/表:å•å…ƒæ ¼/*[descendant-or-self::*[namespace-uri()='http://www.w3.org/TR/REC-html40']]"/>
+ <!--xsl:apply-templates select="$uofSheet1/表:工作表属性/表:页é¢è®¾ç½®/表:页眉页脚/å­—:段è½" /-->
+ <xsl:call-template name="create-page-master">
+ <xsl:with-param name="worksheetoptions" select="$uofSheet1/表:工作表属性"/>
+ </xsl:call-template>
+ <xsl:for-each select="uof:å¥å¼æ ·">
+ <style:style>
+ <xsl:attribute name="style:name"><xsl:value-of select="@字:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ <style:text-properties>
+ <xsl:apply-templates select="./*"/>
+ </style:text-properties>
+ </style:style>
+ </xsl:for-each>
+ </office:automatic-styles>
+ <office:master-styles>
+ <xsl:call-template name="create-master-styles">
+ <xsl:with-param name="worksheetoptions" select="$uofSheet1/表:工作表属性"/>
+ </xsl:call-template>
+ </office:master-styles>
+ </xsl:template>
+ <xsl:template match="表:æ•°æ®æœ‰æ•ˆæ€§">
+ <xsl:variable name="range-name-temp">
+ <xsl:value-of select="substring-before(表:区域,'!')"/>
+ </xsl:variable>
+ <xsl:variable name="range-name">
+ <xsl:value-of select="substring($range-name-temp,2,string-length($range-name-temp)-2)"/>
+ </xsl:variable>
+ <xsl:variable name="first-range">
+ <xsl:choose>
+ <xsl:when test="contains(表:区域, ',')">
+ <xsl:value-of select="translate(substring-after(substring-before(表:区域, ','),'!'),'$','')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate(substring-after(表:区域,'!'),'$','')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="value-first">
+ <xsl:value-of select="translate(表:第一æ“作数,'=','')"/>
+ </xsl:variable>
+ <xsl:variable name="value-second">
+ <xsl:value-of select="translate(表:第二æ“作数,'=','')"/>
+ </xsl:variable>
+ <xsl:element name="table:content-validation">
+ <xsl:attribute name="table:name"><xsl:value-of select="concat('val', position())"/></xsl:attribute>
+ <!--æ•°æ®æœ‰æ•ˆæ€§:第一æ“作数ã€ç¬¬äºŒæ“作数-->
+ <!-- don't support two type of qualifier: List, Custom -->
+ <xsl:attribute name="table:condition"><xsl:variable name="qualifier-content"><xsl:choose><xsl:when test="表:æ“ä½œç  = 'between'"><xsl:choose><xsl:when test="(number($value-second))"><xsl:value-of select="concat('cell-content-is-between([',$range-name,'.',$value-first,'],',$value-second)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('cell-content-is-between([',$range-name,'.',$value-first,'],[',$range-name,'.',$value-second,']')"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:æ“ä½œç  = 'not between'"><xsl:choose><xsl:when test="number($value-second)"><xsl:value-of select="concat('cell-content-is-not-between([',$range-name,'.',$value-first,'],',$value-second)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('cell-content-is-not-between([',$range-name,'.',$value-first,'],[',$range-name,'.',$value-second,']')"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:æ“ä½œç  = 'not equal to'"><xsl:value-of select="concat('!=', $value-first)"/></xsl:when><xsl:when test="表:æ“ä½œç  = 'equal to'"><xsl:variable name="range1"><xsl:value-of select="substring-after(substring-before($value-first,':'),'(')"/></xsl:variable><xsl:variable name="range2"><xsl:value-of select="substring-before(substring-after($value-first,':'),')')"/></xsl:variable><xsl:value-of select="concat('=SUM([',$range-name,'.',$range1,':',$range-name,'.',$range2,']')"/></xsl:when><xsl:when test="表:æ“ä½œç  = 'less than'"><xsl:value-of select="concat('&lt;', $value-first)"/></xsl:when><xsl:when test="表:æ“ä½œç  = 'greater than'"><xsl:value-of select="concat('&gt;', $value-first)"/></xsl:when><xsl:when test="表:æ“ä½œç  = 'greater than or equal to'"><xsl:value-of select="concat('&gt;=[',$range-name, '.',$value-first,']')"/></xsl:when><xsl:when test="表:æ“ä½œç  = 'less than or equal to'"><xsl:value-of select="concat('&lt;=[',$range-name,'.', $value-first,']')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('([',$range-name,'.',substring-before($value-first,':'),':',$range-name,'.',substring-after($value-first,':'),'])')"/></xsl:otherwise></xsl:choose></xsl:variable><!--æ“作ç ã€æ ¡éªŒç±»åž‹--><xsl:variable name="qualifier-value"><xsl:choose><xsl:when test="表:校验类型 = 'whole number'"><xsl:choose><xsl:when test="(表:æ“ä½œç  = 'not between') or (表:æ“ä½œç  = 'between')"><xsl:value-of select="concat('oooc:cell-content-is-whole-number() and ', $qualifier-content, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-whole-number() and ', 'cell-content()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'decimal'"><xsl:choose><xsl:when test="(表:æ“ä½œç  = 'not between') or (表:æ“ä½œç  = 'between')"><xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and ', $qualifier-content, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and ', 'cell-content()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'list'"><xsl:choose><xsl:when test="(表:æ“ä½œç  = 'not between') or (表:æ“ä½œç  = 'between')"><xsl:value-of select="concat('oooc:cell-content-is-in-list() and ', $qualifier-content, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-in-list',$qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'date'"><xsl:choose><xsl:when test="(表:æ“ä½œç  = 'not between') or (表:æ“ä½œç  = 'between')"><xsl:value-of select="concat('oooc:cell-content-is-date() and ', $qualifier-content, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-date() and ', 'cell-content()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'time'"><xsl:choose><xsl:when test="(表:æ“ä½œç  = 'not between') or (表:æ“ä½œç  = 'between')"><xsl:value-of select="concat('oooc:cell-content-is-time() and ', $qualifier-content, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-time() and ', 'cell-content()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'text length'"><xsl:choose><xsl:when test="表:æ“ä½œç  = 'not between'"><xsl:choose><xsl:when test="number($value-second)"><xsl:value-of select="concat('oooc:cell-content-text-length-is-not-between([', $range-name,'.',$value-first, '],', $value-second, ')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-text-length-is-not-between([',$range-name,'.', $value-first, '],[',$range-name,'.', $value-second, '])')"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="$value-second and $value-first"><xsl:choose><xsl:when test="number($value-second)"><xsl:value-of select="concat('oooc:cell-content-text-length-is-between([',$range-name,'.',$value-first,'],',$value-second,')')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-text-length-is-between([',$range-name,'.',$value-first,'],[',$range-name,'.',$value-second,'])')"/></xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-text-length()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:when test="表:校验类型 = 'custom'"><xsl:choose><xsl:when test="表:æ“ä½œç  = 'between'"><xsl:value-of select="concat('and cell-content-is-between(',substring-before($value-first,'('),'([',$range-name,'.',substring-after(substring-before($value-first,':'),'('),':',$range-name,'.',substring-before(substring-after($value-first,':'),')'),']),0')"/></xsl:when><xsl:when test="表:æ“ä½œç  = 'not between'"><xsl:value-of select="concat('oooc:and cell-content-is-not-between(',substring-before($value-first,'('),'([',$range-name,'.',substring-after(substring-before($value-first,':'),'('),':',$range-name,'.',substring-before(substring-after($value-first,':'),')'),']),0')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('oooc:cell-content-is-custom() and ', 'cell-content()', $qualifier-content)"/></xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise><xsl:value-of select="表:校验类型"/></xsl:otherwise></xsl:choose></xsl:variable><xsl:value-of select="$qualifier-value"/></xsl:attribute>
+ <!--忽略空格-->
+ <xsl:attribute name="table:allow-empty-cell"><xsl:choose><xsl:when test="表:忽略空格"><xsl:value-of select="'false'"/></xsl:when><xsl:otherwise><xsl:value-of select="'true'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="table:base-cell-address"><xsl:variable name="range"><xsl:value-of select="$first-range"/><!--xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0" />
+ <xsl:with-param name="cell-column-pos" select="0" />
+ <xsl:with-param name="expression" select="$first-range" />
+ <xsl:with-param name="return-value" select="''" />
+ </xsl:call-template--></xsl:variable><xsl:call-template name="encode-as-cell-address"><xsl:with-param name="string" select="concat($range-name, '.', $range)"/></xsl:call-template></xsl:attribute>
+ <!--输入æ示-->
+ <xsl:element name="table:help-message">
+ <xsl:attribute name="table:title"><xsl:value-of select="表:输入æ示/@表:标题"/></xsl:attribute>
+ <xsl:attribute name="table:display"><xsl:choose><xsl:when test="表:输入æ示/@表:显示"><xsl:value-of select="表:输入æ示/@表:显示"/></xsl:when><xsl:otherwise><xsl:value-of select="'false'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:element name="text:p">
+ <xsl:value-of select="表:输入æ示/@表:内容"/>
+ </xsl:element>
+ </xsl:element>
+ <!--错误æ示-->
+ <xsl:element name="table:error-message">
+ <xsl:attribute name="table:message-type"><xsl:choose><xsl:when test="表:错误æ示/@表:类型= 'information'"><xsl:value-of select="'information'"/></xsl:when><xsl:when test="表:错误æ示/@表:类型= 'warning'"><xsl:value-of select="'warning'"/></xsl:when><xsl:otherwise><xsl:value-of select="'stop'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="table:title"><xsl:value-of select="表:错误æ示/@表:标题"/></xsl:attribute>
+ <xsl:attribute name="table:display"><xsl:choose><xsl:when test="表:错误æ示/@表:显示"><xsl:value-of select="表:错误æ示/@表:显示"/></xsl:when><xsl:otherwise><xsl:value-of select="'false'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:element name="text:p">
+ <xsl:value-of select="表:错误æ示/@表:内容"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="CondFormat_office_style">
+ <xsl:for-each select="../../uof:电å­è¡¨æ ¼/表:公用处ç†è§„则/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–">
+ <xsl:variable name="table-pos" select="count(../../../preceding-sibling::表:公用处ç†è§„则)+1"/>
+ <xsl:variable name="conditions" select="count(../preceding-sibling::表:æ¡ä»¶æ ¼å¼åŒ–集)+1"/>
+ <xsl:for-each select="表:æ¡ä»¶">
+ <xsl:variable name="condition-number" select="count(preceding-sibling::表:æ¡ä»¶)+1"/>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat('Excel_CondFormat_',$table-pos,'_',$conditions,'_',$condition-number)"/></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="style:family">table-cell</xsl:attribute>
+ <xsl:element name="style:properties">
+ <xsl:choose>
+ <xsl:when test="表:æ ¼å¼/@表:å¼æ ·å¼•ç”¨">
+ <xsl:variable name="stylevalue" select="表:æ ¼å¼/@表:å¼æ ·å¼•ç”¨"/>
+ <xsl:call-template name="recursion-condformat-style-table-cell">
+ <xsl:with-param name="style-value-t">
+ <xsl:choose>
+ <xsl:when test="substring($stylevalue,string-length($stylevalue),1) != ';'">
+ <xsl:value-of select="concat($stylevalue,';')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$stylevalue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <!--xsl:element name="style:text-properties"-->
+ <!--chengxz0618-->
+ <xsl:element name="style:properties">
+ <xsl:choose>
+ <xsl:when test="表:æ ¼å¼/@表:å¼æ ·å¼•ç”¨">
+ <xsl:variable name="stylevalue" select="表:æ ¼å¼/@表:å¼æ ·å¼•ç”¨"/>
+ <xsl:call-template name="recursion-condformat-style-text">
+ <xsl:with-param name="style-value-t">
+ <xsl:choose>
+ <xsl:when test="substring($stylevalue,string-length($stylevalue),1) != ';'">
+ <xsl:value-of select="concat($stylevalue,';')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$stylevalue"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:font-style"><xsl:value-of select="'italic'"/></xsl:attribute>
+ <xsl:attribute name="style:text-underline-type"><xsl:value-of select="'single'"/></xsl:attribute>
+ <xsl:attribute name="style:text-underline-color"><xsl:value-of select="'font-color'"/></xsl:attribute>
+ <xsl:attribute name="fo:font-weight"><xsl:value-of select="'bold'"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="cell-pattern-color">
+ <xsl:param name="pattern"/>
+ <xsl:param name="color-value"/>
+ <xsl:param name="pattern-color-value"/>
+ <xsl:variable name="rev-pattern" select="1 - $pattern"/>
+ <xsl:variable name="color-R-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($color-value,2,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="color-G-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($color-value,4,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="color-B-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($color-value,6,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="pattern-R-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($pattern-color-value,2,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="pattern-G-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($pattern-color-value,4,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="pattern-B-value">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="substring($pattern-color-value,6,2)"/>
+ <xsl:with-param name="index" select="1"/>
+ <xsl:with-param name="str-length" select="2"/>
+ <xsl:with-param name="last-value" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="R-value">
+ <xsl:variable name="combined-R-value">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="floor($color-R-value * $rev-pattern + $pattern-R-value * $pattern)"/>
+ <xsl:with-param name="last-value" select="'H'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($combined-R-value) = 1">
+ <xsl:value-of select="concat('0',$combined-R-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$combined-R-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="G-value">
+ <xsl:variable name="combined-G-value">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="floor($color-G-value * $rev-pattern + $pattern-G-value * $pattern)"/>
+ <xsl:with-param name="last-value" select="'H'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($combined-G-value) = 1">
+ <xsl:value-of select="concat('0',$combined-G-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$combined-G-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="B-value">
+ <xsl:variable name="combined-B-value">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="floor($color-B-value * $rev-pattern + $pattern-B-value * $pattern)"/>
+ <xsl:with-param name="last-value" select="'H'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($combined-B-value) = 1">
+ <xsl:value-of select="concat('0',$combined-B-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$combined-B-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat('#',$R-value,$G-value,$B-value)"/>
+ </xsl:template>
+ <xsl:template name="hex2decimal">
+ <xsl:param name="hex-number"/>
+ <xsl:param name="index"/>
+ <xsl:param name="str-length"/>
+ <xsl:param name="last-value"/>
+ <xsl:variable name="dec-char">
+ <xsl:call-template name="hexNumber2dec">
+ <xsl:with-param name="hex-value" select="substring($hex-number, $index ,1)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="current-value" select="$last-value * 16 + $dec-char"/>
+ <xsl:if test="$index &lt; $str-length">
+ <xsl:call-template name="hex2decimal">
+ <xsl:with-param name="hex-number" select="$hex-number"/>
+ <xsl:with-param name="index" select="$index + 1"/>
+ <xsl:with-param name="str-length" select="$str-length"/>
+ <xsl:with-param name="last-value" select="$current-value"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$index = $str-length">
+ <xsl:value-of select="$current-value"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="hexNumber2dec">
+ <xsl:param name="hex-value"/>
+ <xsl:choose>
+ <xsl:when test="$hex-value = 'A' or ($hex-value = 'a')">
+ <xsl:value-of select="10"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'B' or ($hex-value = 'b')">
+ <xsl:value-of select="11"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'C' or ($hex-value = 'c')">
+ <xsl:value-of select="12"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'D' or ($hex-value = 'd')">
+ <xsl:value-of select="13"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'E' or ($hex-value = 'e')">
+ <xsl:value-of select="14"/>
+ </xsl:when>
+ <xsl:when test="$hex-value = 'F' or ($hex-value = 'f')">
+ <xsl:value-of select="15"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$hex-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="decimal2hex">
+ <xsl:param name="dec-number"/>
+ <xsl:param name="last-value"/>
+ <xsl:variable name="current-value">
+ <xsl:call-template name="decNumber2hex">
+ <xsl:with-param name="dec-value">
+ <xsl:if test="$dec-number &gt; 15">
+ <xsl:value-of select="floor($dec-number div 16)"/>
+ </xsl:if>
+ <xsl:if test="$dec-number &lt; 16">
+ <xsl:value-of select="$dec-number"/>
+ </xsl:if>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$dec-number &gt; 15">
+ <xsl:call-template name="decimal2hex">
+ <xsl:with-param name="dec-number" select="$dec-number mod 16"/>
+ <xsl:with-param name="last-value" select="concat($last-value,$current-value)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$dec-number &lt; 16">
+ <xsl:value-of select="substring-after(concat($last-value,$current-value),'H')"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="decNumber2hex">
+ <xsl:param name="dec-value"/>
+ <xsl:choose>
+ <xsl:when test="$dec-value = 10">
+ <xsl:value-of select="'A'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 11">
+ <xsl:value-of select="'B'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 12">
+ <xsl:value-of select="'C'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 13">
+ <xsl:value-of select="'D'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 14">
+ <xsl:value-of select="'E'"/>
+ </xsl:when>
+ <xsl:when test="$dec-value = 15">
+ <xsl:value-of select="'F'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$dec-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="recursion-condformat-style-table-cell">
+ <xsl:param name="style-value-t"/>
+ <xsl:variable name="style-value" select="$style-value-t"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($style-value,'background')">
+ <xsl:choose>
+ <xsl:when test="contains($style-value,'mso-pattern')">
+ <xsl:variable name="color-value">
+ <xsl:call-template name="translate-color-style">
+ <xsl:with-param name="source-str" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="mso-value">
+ <xsl:call-template name="translate-color-style">
+ <xsl:with-param name="source-str" select="normalize-space(substring-after($style-value,'mso-pattern'))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="mso-color" select="substring-after($mso-value,'#')"/>
+ <xsl:variable name="pattern-color-value" select="substring($mso-color,1,6)"/>
+ <xsl:variable name="pattern" select="concat('0.',normalize-space(substring-before(substring-after($mso-color,'gray-'),';')))"/>
+ <xsl:variable name="pattern-color">
+ <xsl:call-template name="cell-pattern-color">
+ <xsl:with-param name="pattern" select="$pattern"/>
+ <xsl:with-param name="color-value" select="$color-value"/>
+ <xsl:with-param name="pattern-color-value" select="concat('#',$pattern-color-value)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="fo:background-color"><xsl:value-of select="normalize-space($pattern-color)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:background-color"><xsl:call-template name="translate-color-style"><xsl:with-param name="source-str" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/></xsl:call-template></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with($style-value,'border')">
+ <xsl:attribute name="fo:border"><xsl:value-of select="'0.002cm solid #000000'"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="contains($style-value,':')">
+ <xsl:call-template name="recursion-condformat-style-table-cell">
+ <xsl:with-param name="style-value-t" select="substring-after($style-value,';')"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="recursion-condformat-style-text">
+ <xsl:param name="style-value-t"/>
+ <xsl:variable name="style-value" select="normalize-space($style-value-t)"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($style-value,'color')">
+ <xsl:attribute name="fo:color"><xsl:call-template name="translate-color-style"><xsl:with-param name="source-str" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/></xsl:call-template></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="starts-with($style-value,'font-style')">
+ <xsl:attribute name="fo:font-style"><xsl:value-of select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="starts-with($style-value,'font-weight')">
+ <xsl:variable name="font-weight" select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/>
+ <xsl:attribute name="fo:font-weight"><xsl:choose><xsl:when test="($font-weight &gt; 300) and ($font-weight &lt; 500)"><xsl:value-of select="'normal'"/></xsl:when><xsl:when test="($font-weight &gt; 500) or ($font-weight = 500)"><xsl:value-of select="'bold'"/></xsl:when><xsl:otherwise><xsl:value-of select="'0'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="starts-with($style-value,'text-underline-style')">
+ <xsl:attribute name="style:text-underline-type"><xsl:value-of select="normalize-space(substring-before(substring-after($style-value,':'),';'))"/></xsl:attribute>
+ <xsl:attribute name="style:text-underline-color"><xsl:value-of select="'#000000'"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="contains($style-value,':')">
+ <xsl:call-template name="recursion-condformat-style-text">
+ <xsl:with-param name="style-value-t" select="substring-after($style-value,';')"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="translate-color-style">
+ <xsl:param name="source-str"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($source-str,'#')">
+ <xsl:value-of select="$source-str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="starts-with($source-str,'black')">
+ <xsl:value-of select="'#000000'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'maroon')">
+ <xsl:value-of select="'#800000'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'red')">
+ <xsl:value-of select="'#FF0000'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'fuchsia')">
+ <xsl:value-of select="'#FF00FF'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'olive')">
+ <xsl:value-of select="'#808000'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'yellow')">
+ <xsl:value-of select="'#FFFF00'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'green')">
+ <xsl:value-of select="'#008000'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'lime')">
+ <xsl:value-of select="'#00FF00'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'teal')">
+ <xsl:value-of select="'#008080'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'aqua')">
+ <xsl:value-of select="'#00FFFF'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'navy')">
+ <xsl:value-of select="'#000080'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'blue')">
+ <xsl:value-of select="'#0000FF'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'purple')">
+ <xsl:value-of select="'#800080'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'gray')">
+ <xsl:value-of select="'#808080'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'silver')">
+ <xsl:value-of select="'#C0C0C0'"/>
+ </xsl:when>
+ <xsl:when test="starts-with($source-str,'white')">
+ <xsl:value-of select="'#FFFFFF'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'#FFFFFF'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="CondFormat_automatic_style">
+ <xsl:for-each select="../uof:电å­è¡¨æ ¼/表:公用处ç†è§„则/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–">
+ <xsl:variable name="table-pos" select="count(../../../preceding-sibling::表:公用处ç†è§„则)+1"/>
+ <xsl:variable name="conditions" select="count(../preceding-sibling::表:æ¡ä»¶æ ¼å¼åŒ–集)+1"/>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat('ce',$table-pos,'-',$conditions)"/></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="style:family">table-cell</xsl:attribute>
+ <xsl:for-each select="uof:å•å…ƒæ ¼å¼æ ·/表:æ¡ä»¶">
+ <xsl:variable name="condition-number" select="count(preceding-sibling::表:æ¡ä»¶)+1"/>
+ <xsl:variable name="base-address">
+ <xsl:choose>
+ <xsl:when test="contains(../表:区域,',')">
+ <xsl:choose>
+ <xsl:when test="contains(substring-before(../表:区域,','),':')">
+ <xsl:value-of select="substring-before(substring-after(../表:区域,':'),',')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before(../表:区域,',')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="../表:区域"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="base-cell-address">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="substring-before(substring-after($base-address,'R'),'C')"/>
+ <xsl:with-param name="row-number" select="substring-after($base-address,'C')"/>
+ <xsl:with-param name="column-pos-style" select="absolute"/>
+ <xsl:with-param name="row-pos-style" select="absolute"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="condition-value">
+ <xsl:call-template name="translate-condition">
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:element name="style:map">
+ <xsl:attribute name="style:condition"><xsl:value-of select="$condition-value"/></xsl:attribute>
+ <xsl:attribute name="style:apply-style-name"><xsl:value-of select="concat('Excel_CondFormat_',$table-pos,'_',$conditions,'_',$condition-number)"/></xsl:attribute>
+ <xsl:attribute name="style:base-cell-address"><xsl:value-of select="concat(../../@Name,'.',$base-cell-address)"/></xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="translate-condition">
+ <xsl:variable name="address-value">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="表:第一æ“作数"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="表:æ“作ç ">
+ <xsl:variable name="qualifier" select="表:æ“作ç "/>
+ <xsl:variable name="first-value" select="表:第一æ“作数"/>
+ <xsl:choose>
+ <xsl:when test="$qualifier = 'Equal'">
+ <xsl:choose>
+ <xsl:when test="starts-with($first-value,'&quot;')">
+ <xsl:value-of select="concat('cell-content()=',$address-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('cell-content()=[',$address-value,']')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'Less'">
+ <xsl:value-of select="concat('cell-content()&lt;[',$address-value,']')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'Greater'">
+ <xsl:value-of select="concat('cell-content()&gt;[',$address-value,']')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'LessOrEqual'">
+ <xsl:value-of select="concat('cell-content()&lt;=[',$address-value,']')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'GreaterOrEqual'">
+ <xsl:value-of select="concat('cell-content()&gt;=[',$address-value,']')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'NotEqual'">
+ <xsl:value-of select="concat('cell-content()!=[',$address-value,']')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'Between'">
+ <xsl:variable name="second-value">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="表:第二æ“作数"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat('cell-content-is-between([',$address-value,'],[',$second-value,'])')"/>
+ </xsl:when>
+ <xsl:when test="$qualifier = 'NotBetween'">
+ <xsl:variable name="second-value">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="0"/>
+ <xsl:with-param name="cell-column-pos" select="0"/>
+ <xsl:with-param name="expression" select="表:第二æ“作数"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat('cell-content-is-not-between([',$address-value,'],[',$second-value,'])')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('is-true-formula(',$address-value,')')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="translate-expression">
+ <xsl:param name="cell-row-pos"/>
+ <xsl:param name="cell-column-pos"/>
+ <xsl:param name="expression"/>
+ <xsl:param name="return-value"/>
+ <xsl:variable name="temp-range">
+ <xsl:choose>
+ <xsl:when test="$expression != ''">
+ <xsl:call-template name="parse-range-name">
+ <xsl:with-param name="expression" select="$expression"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="range-type">
+ <xsl:choose>
+ <xsl:when test="substring($temp-range, 1, 1) = '1'">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:when test="substring($temp-range, 1, 1) = '2'">
+ <xsl:value-of select="2"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="current-range">
+ <xsl:value-of select="substring($temp-range, 2)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$range-type = 1">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression">
+ <xsl:choose>
+ <xsl:when test="contains($current-range, '#$')">
+ <xsl:variable name="temp-token">
+ <xsl:choose>
+ <xsl:when test="contains($current-range, '\')">
+ <xsl:value-of select="concat(']', substring-after($current-range, '#$'), &quot;&apos;&quot;)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after($current-range, '#$')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="substring-after($expression, $temp-token)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after($expression, $current-range)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="return-value">
+ <xsl:choose>
+ <xsl:when test="$current-range = '='">
+ <xsl:text>oooc:=</xsl:text>
+ </xsl:when>
+ <xsl:when test="substring($current-range, string-length($current-range)) = '('">
+ <xsl:value-of select="concat($return-value, substring-before($expression, $current-range), $current-range, '[.')"/>
+ </xsl:when>
+ <xsl:when test="$current-range = ','">
+ <xsl:value-of select="concat($return-value, substring-before($expression, $current-range), '];[.')"/>
+ </xsl:when>
+ <xsl:when test="$current-range = ')'">
+ <xsl:value-of select="concat($return-value, substring-before($expression, $current-range), '])')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($return-value, substring-before($expression, $current-range), $current-range)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="handle-type">
+ <xsl:choose>
+ <xsl:when test="starts-with($current-range, 'R')">
+ <xsl:choose>
+ <xsl:when test="contains($current-range, 'C')">
+ <xsl:variable name="part-type-r">
+ <xsl:call-template name="handle-type-number">
+ <xsl:with-param name="t-part" select="substring-before( substring-after($current-range, 'R'), 'C')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="part-type-c">
+ <xsl:call-template name="handle-type-number">
+ <xsl:with-param name="t-part" select="substring-after($current-range, 'C')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="($part-type-r = 1) and ($part-type-c = 1)">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="4"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="part-type">
+ <xsl:call-template name="handle-type-number">
+ <xsl:with-param name="t-part" select="substring-after($current-range, 'R')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$part-type = 1">
+ <xsl:value-of select="2"/>
+ </xsl:when>
+ <xsl:when test="$part-type = 2">
+ <xsl:value-of select="4"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="4"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with($current-range, 'C')">
+ <xsl:variable name="part-type">
+ <xsl:call-template name="handle-type-number">
+ <xsl:with-param name="t-part" select="substring-after($current-range, 'C')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$part-type = 1">
+ <xsl:value-of select="3"/>
+ </xsl:when>
+ <xsl:when test="$part-type = 2">
+ <xsl:value-of select="4"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="4"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="4"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$handle-type = 1">
+ <xsl:variable name="after-R">
+ <xsl:value-of select="substring(substring-after($current-range,'R'),1,1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$after-R='C' or $after-R='[' or $after-R='0' or $after-R='1' or $after-R='2' or $after-R='3' or $after-R='4' or $after-R='5' or $after-R='6' or $after-R='7' or $after-R='8' or $after-R='9'">
+ <xsl:variable name="row-pos">
+ <xsl:choose>
+ <xsl:when test="$after-R='['">
+ <xsl:value-of select="$cell-row-pos+substring-before( substring-after($current-range,'R['),']')"/>
+ </xsl:when>
+ <xsl:when test="$after-R='C'">
+ <xsl:value-of select="$cell-row-pos"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before(substring-after($current-range,'R'),'C')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="row-pos-style">
+ <xsl:choose>
+ <xsl:when test="$after-R='[' or $after-R='C'">relative</xsl:when>
+ <xsl:otherwise>absolute</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="after-C">
+ <xsl:value-of select="substring(substring-after(substring-after($current-range,'R'),'C'),1,1)"/>
+ </xsl:variable>
+ <xsl:variable name="column-digit-length">
+ <xsl:choose>
+ <xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
+ <xsl:call-template name="get-digit-length">
+ <xsl:with-param name="complexive-string" select="substring-after(substring-after($current-range,'R'),'C')"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="column-pos">
+ <xsl:choose>
+ <xsl:when test="$after-C='['">
+ <xsl:value-of select="$cell-column-pos + substring-before(substring-after(substring-after($current-range,'R'),'C['),']')"/>
+ </xsl:when>
+ <xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
+ <xsl:value-of select="substring(substring-after(substring-after($current-range,'R'),'C'),1,$column-digit-length)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$cell-column-pos"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="column-pos-style">
+ <xsl:choose>
+ <xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">absolute</xsl:when>
+ <xsl:otherwise>relative</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="trans-unit">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="$column-pos"/>
+ <xsl:with-param name="row-number" select="$row-pos"/>
+ <xsl:with-param name="column-pos-style" select="$column-pos-style"/>
+ <xsl:with-param name="row-pos-style" select="$row-pos-style"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), $trans-unit)"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
+ <xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), translate( substring-before(substring-after($expression, '('),'R'),',!', ';.'))"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($current-range,'R')"/>
+ <xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$handle-type = 2">
+ <xsl:variable name="after-R">
+ <xsl:value-of select="substring(substring-after($current-range,'R'),1,1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$after-R='[' or $after-R='0' or $after-R='1' or $after-R='2' or $after-R='3' or $after-R='4' or $after-R='5' or $after-R='6' or $after-R='7' or $after-R='8' or $after-R='9'">
+ <xsl:variable name="row-number">
+ <xsl:choose>
+ <xsl:when test="$after-R = '['">
+ <xsl:value-of select="substring-before(substring-after($current-range, 'R['), ']')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after($current-range, 'R')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="row-pos">
+ <xsl:choose>
+ <xsl:when test="$after-R='['">
+ <xsl:value-of select="$cell-row-pos + $row-number"/>
+ </xsl:when>
+ <xsl:when test="$after-R='0' or $after-R='1' or $after-R='2' or $after-R='3' or $after-R='4' or $after-R='5' or $after-R='6' or $after-R='7' or $after-R='8' or $after-R='9'">
+ <xsl:value-of select="$row-number"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$cell-row-pos"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="trans-unit1">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="1"/>
+ <xsl:with-param name="row-number" select="$row-pos"/>
+ <xsl:with-param name="column-pos-style" select="'relative'"/>
+ <xsl:with-param name="row-pos-style" select="'relative'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="trans-unit2">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="256"/>
+ <xsl:with-param name="row-number" select="$row-pos"/>
+ <xsl:with-param name="column-pos-style" select="'relative'"/>
+ <xsl:with-param name="row-pos-style" select="'relative'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), $trans-unit1, ':', $trans-unit2)"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
+ <xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), translate( substring-before($current-range,'R'),',!', ';.'),'R')"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($current-range,'R')"/>
+ <xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$handle-type = 3">
+ <xsl:variable name="after-C">
+ <xsl:value-of select="substring(substring-after($current-range,'C'),1,1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$after-C='[' or $after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
+ <xsl:variable name="column-number">
+ <xsl:choose>
+ <xsl:when test="$after-C = '['">
+ <xsl:value-of select="substring-before(substring-after($current-range, 'C['), ']')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after($current-range, 'C')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="column-pos">
+ <xsl:choose>
+ <xsl:when test="$after-C='['">
+ <xsl:value-of select="$cell-column-pos + $column-number"/>
+ </xsl:when>
+ <xsl:when test="$after-C='0' or $after-C='1' or $after-C='2' or $after-C='3' or $after-C='4' or $after-C='5' or $after-C='6' or $after-C='7' or $after-C='8' or $after-C='9'">
+ <xsl:value-of select="$column-number"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$cell-column-pos"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="trans-unit1">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="$column-pos"/>
+ <xsl:with-param name="row-number" select="1"/>
+ <xsl:with-param name="column-pos-style" select="'relative'"/>
+ <xsl:with-param name="row-pos-style" select="'relative'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="trans-unit2">
+ <xsl:call-template name="translate-unit">
+ <xsl:with-param name="column-number" select="$column-pos"/>
+ <xsl:with-param name="row-number" select="32000"/>
+ <xsl:with-param name="column-pos-style" select="'relative'"/>
+ <xsl:with-param name="row-pos-style" select="'relative'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), $trans-unit1, ':', $trans-unit2)"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
+ <xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="name-unit" select="concat(substring-before($expression, $current-range), translate( substring-before($current-range,'C'),',!', ';.'),'C')"/>
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($current-range,'C')"/>
+ <xsl:with-param name="return-value" select="concat($return-value, $name-unit)"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="next-pit" select="substring-after($expression, $current-range)"/>
+ <xsl:choose>
+ <xsl:when test="contains($next-pit, '+') or contains($next-pit, '-') or contains($next-pit, '*') or contains($next-pit, '/') or contains($next-pit, ')') or contains($next-pit, '^') or contains($next-pit, ':') or contains($next-pit, '&quot;') or contains($next-pit, ';') or contains($next-pit, ',') or contains($next-pit, '[')">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$cell-row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$cell-column-pos"/>
+ <xsl:with-param name="expression" select="substring-after($expression, $current-range)"/>
+ <xsl:with-param name="return-value" select="concat($return-value, substring-before($expression, $current-range), $current-range)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate( concat($return-value, substring-before($expression, $current-range), $current-range),',!', ';.')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="parse-range-name">
+ <xsl:param name="expression"/>
+ <xsl:param name="return-value"/>
+ <xsl:variable name="first-one" select="substring($expression,1,1)"/>
+ <xsl:choose>
+ <xsl:when test="$first-one = '='">
+ <xsl:choose>
+ <xsl:when test="string-length(normalize-space($return-value)) &gt; 0">
+ <xsl:value-of select="concat('2', $return-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>1=</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$first-one='(' or $first-one='!' or $first-one='&amp;'">
+ <xsl:value-of select="concat('1', $return-value, $first-one)"/>
+ </xsl:when>
+ <xsl:when test="$first-one='['">
+ <xsl:choose>
+ <xsl:when test="starts-with(substring-after($expression, ']'), 'C')">
+ <xsl:call-template name="parse-range-name">
+ <xsl:with-param name="expression" select="substring-after($expression, ']')"/>
+ <xsl:with-param name="return-value" select="concat($return-value, substring-before($expression, ']'), ']')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="contains(substring-before($expression, ']'), '.') and contains(substring-after($expression, ']'), '!')">
+ <xsl:value-of select="concat('1', &quot;&apos;&quot;, substring-before(substring-after($expression, '['), ']'), &quot;&apos;&quot;, '#$', substring-before(substring-after($expression, ']'), '!'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('2', $return-value, substring-before($expression, ']'), ']')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$first-one='&quot;'">
+ <xsl:value-of select="concat('1', $first-one, substring-before(substring-after($expression, '&quot;'), '&quot;'), '&quot;')"/>
+ </xsl:when>
+ <xsl:when test="$first-one=&quot;&apos;&quot;">
+ <xsl:variable name="str-in" select="substring-before(substring-after($expression, &quot;&apos;&quot;), &quot;&apos;&quot;)"/>
+ <xsl:choose>
+ <xsl:when test="contains($str-in, '\') and contains($str-in, '[') and contains($str-in, ']')">
+ <xsl:variable name="first-pos" select="substring-before($str-in, '[')"/>
+ <xsl:variable name="second-pos" select="substring-before(substring-after($str-in, '['), ']')"/>
+ <xsl:variable name="third-pos" select="substring-after($str-in, ']')"/>
+ <xsl:value-of select="concat('1', &quot;&apos;&quot;, $first-pos, $second-pos, &quot;&apos;&quot;, '#$', $third-pos)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('1', &quot;&apos;&quot;, $str-in, &quot;&apos;&quot;)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$first-one='+' or $first-one='-' or $first-one='*' or $first-one='/' or $first-one=')' or $first-one='^' or $first-one=':' or $first-one='&quot;' or $first-one=';' or $first-one=',' or $first-one='&gt;' or $first-one='&lt;'">
+ <xsl:choose>
+ <xsl:when test="$return-value = ''">
+ <xsl:value-of select="concat('1', $first-one)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat('2', $return-value)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$expression = ''">
+ <xsl:value-of select="concat('2', $return-value)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="parse-range-name">
+ <xsl:with-param name="expression" select="substring($expression, 2, string-length($expression)-1)"/>
+ <xsl:with-param name="return-value" select="concat($return-value, substring($expression, 1, 1))"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="handle-type-number">
+ <xsl:param name="t-part"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($t-part, '[')">
+ <xsl:variable name="tt-str" select="substring-before( substring-after( $t-part, '['), ']')"/>
+ <xsl:choose>
+ <xsl:when test="($tt-str &lt; 0) or ($tt-str &gt; 0) or ($tt-str = 0)">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="($t-part &lt; 0) or ($t-part &gt; 0) or ($t-part = 0)">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:when test="$t-part = ''">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="2"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="translate-unit">
+ <xsl:param name="column-number"/>
+ <xsl:param name="row-number"/>
+ <xsl:param name="column-pos-style"/>
+ <xsl:param name="row-pos-style"/>
+ <xsl:variable name="column-number1">
+ <xsl:value-of select="floor( $column-number div 26 )"/>
+ </xsl:variable>
+ <xsl:variable name="column-number2">
+ <xsl:value-of select="$column-number mod 26"/>
+ </xsl:variable>
+ <xsl:variable name="column-character1">
+ <xsl:call-template name="number-to-character">
+ <xsl:with-param name="number" select="$column-number1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="column-character2">
+ <xsl:call-template name="number-to-character">
+ <xsl:with-param name="number" select="$column-number2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$column-pos-style = 'absolute'">
+ <xsl:value-of select="concat( '$', $column-character1, $column-character2)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat( $column-character1, $column-character2)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$row-pos-style ='absolute'">
+ <xsl:value-of select="concat( '$', $row-number)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$row-number"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="number-to-character">
+ <xsl:param name="number"/>
+ <xsl:choose>
+ <xsl:when test="$number = 0"/>
+ <xsl:when test="$number = 1">A</xsl:when>
+ <xsl:when test="$number = 2">B</xsl:when>
+ <xsl:when test="$number = 3">C</xsl:when>
+ <xsl:when test="$number = 4">D</xsl:when>
+ <xsl:when test="$number = 5">E</xsl:when>
+ <xsl:when test="$number = 6">F</xsl:when>
+ <xsl:when test="$number = 7">G</xsl:when>
+ <xsl:when test="$number = 8">H</xsl:when>
+ <xsl:when test="$number = 9">I</xsl:when>
+ <xsl:when test="$number = 10">J</xsl:when>
+ <xsl:when test="$number = 11">K</xsl:when>
+ <xsl:when test="$number = 12">L</xsl:when>
+ <xsl:when test="$number = 13">M</xsl:when>
+ <xsl:when test="$number = 14">N</xsl:when>
+ <xsl:when test="$number = 15">O</xsl:when>
+ <xsl:when test="$number = 16">P</xsl:when>
+ <xsl:when test="$number = 17">Q</xsl:when>
+ <xsl:when test="$number = 18">R</xsl:when>
+ <xsl:when test="$number = 19">S</xsl:when>
+ <xsl:when test="$number = 20">T</xsl:when>
+ <xsl:when test="$number = 21">U</xsl:when>
+ <xsl:when test="$number = 22">V</xsl:when>
+ <xsl:when test="$number = 23">W</xsl:when>
+ <xsl:when test="$number = 24">X</xsl:when>
+ <xsl:when test="$number = 25">Y</xsl:when>
+ <xsl:when test="$number = 26">Z</xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-digit-length">
+ <xsl:param name="complexive-string"/>
+ <xsl:variable name="first-char">
+ <xsl:value-of select="substring( $complexive-string, 1, 1)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-char = '1' or $first-char = '2' or $first-char = '3' or $first-char = '4' or $first-char = '5' or $first-char = '6' or $first-char = '7' or $first-char = '8' or $first-char = '9' or $first-char = '0' ">
+ <xsl:variable name="temp">
+ <xsl:call-template name="get-digit-length">
+ <xsl:with-param name="complexive-string" select="substring( $complexive-string, 2)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$temp+1"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:å¥å±žæ€§" mode="style">
+ <!--chengxz 0725-->
+ <xsl:if test="not(@å­—:å¼æ ·å¼•ç”¨)">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">T<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:å¥å±žæ€§" format="1"/></xsl:attribute>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ <xsl:if test="@å­—:å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@å­—:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:text-properties">
+ <xsl:apply-templates select="./*"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="style-style-content">
+ <xsl:variable name="style-name" select="@表:标识符"/>
+ <xsl:variable name="apply-style-name" select="@表:å称"/>
+ <xsl:attribute name="style:family"><xsl:choose><xsl:when test="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:列[@表:å¼æ ·å¼•ç”¨=$style-name]">table-column</xsl:when><xsl:otherwise>table-cell</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:列[@表:å¼æ ·å¼•ç”¨=$style-name]/@表:列宽">
+ <xsl:element name="style:table-column-properties">
+ <xsl:attribute name="style:column-width"><xsl:value-of select="concat(/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:列[@表:å¼æ ·å¼•ç”¨=$style-name]/@表:列宽,$uofUnit)"/></xsl:attribute>
+ <xsl:if test="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:列[@表:å¼æ ·å¼•ç”¨=$style-name]/@表:跨度">
+ <xsl:attribute name="fo:break-before">auto</xsl:attribute>
+ </xsl:if>
+ <xsl:for-each select="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:列[@表:å¼æ ·å¼•ç”¨=$style-name]">
+ <xsl:if test="preceding-sibling::表:列[1]/@表:跨度 and ancestor::表:工作表/表:分页符集/表:分页符/@表:列å·">
+ <xsl:variable name="kuadu">
+ <xsl:value-of select="preceding-sibling::表:列[1]/@表:跨度"/>
+ </xsl:variable>
+ <xsl:if test="not($kuadu='1')">
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$kuadu='1' and not(preceding::表:列[2])">
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="style:table-cell-properties">
+ <xsl:if test="表:对é½æ ¼å¼">
+ <xsl:if test="表:对é½æ ¼å¼/表:垂直对é½æ–¹å¼">
+ <xsl:variable name="vertical-align">
+ <xsl:choose>
+ <xsl:when test="表:对é½æ ¼å¼/表:垂直对é½æ–¹å¼ = 'top'">top</xsl:when>
+ <xsl:when test="表:对é½æ ¼å¼/表:垂直对é½æ–¹å¼ = 'center'">center</xsl:when>
+ <xsl:when test="表:对é½æ ¼å¼/表:垂直对é½æ–¹å¼ = 'bottom'">bottom</xsl:when>
+ <xsl:otherwise>middle</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:vertical-align"><xsl:value-of select="$vertical-align"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:对é½æ ¼å¼/表:自动æ¢è¡Œ/@表:值 = 'true'">
+ <xsl:attribute name="fo:wrap-option">wrap</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:对é½æ ¼å¼/表:缩进">
+ <xsl:attribute name="fo:padding-left"><xsl:variable name="indent" select="表:对é½æ ¼å¼/表:缩进 * 10"/><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat($indent,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:对é½æ ¼å¼/表:文字旋转角度">
+ <xsl:attribute name="style:rotation-angle"><xsl:choose><xsl:when test="表:对é½æ ¼å¼/表:文字旋转角度 &lt; 0"><xsl:value-of select="360 - 表:对é½æ ¼å¼/表:文字旋转角度"/></xsl:when><xsl:otherwise><xsl:value-of select="表:对é½æ ¼å¼/表:文字旋转角度"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:rotation-align">none</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:对é½æ ¼å¼/表:æ–‡å­—æ–¹å‘ = 'vertical'">
+ <xsl:attribute name="style:direction">ttb</xsl:attribute>
+ <xsl:if test="not(表:对é½æ ¼å¼/å­—:水平对é½æ–¹å¼)">
+ <xsl:attribute name="style:text-align-source">fix</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+ <!--xsl:if test="表:边框">
+ <xsl:apply-templates select="表:边框" />
+ </xsl:if-->
+ <!--chenjh add 边框 again-->
+ <xsl:if test="表:边框/uof:上/@uof:宽度 !=''">
+ <xsl:variable name="top-line-width" select="concat(表:边框/uof:上/@uof:宽度,$uofUnit)"/>
+ <xsl:variable name="top-line-tyle">
+ <xsl:choose>
+ <xsl:when test="表:边框/uof:上/@uof:类型='single'">solid</xsl:when>
+ <xsl:when test="表:边框/uof:上/@uof:类型='double'">double</xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="top-line-color" select="表:边框/uof:上/@uof:颜色"/>
+ <xsl:variable name="border-top" select="concat($top-line-width,' ',$top-line-tyle,' ',$top-line-color)"/>
+ <xsl:attribute name="fo:border-top"><xsl:value-of select="$border-top"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:边框/uof:下/@uof:宽度 !=''">
+ <xsl:variable name="bottom-line-width" select="concat(表:边框/uof:下/@uof:宽度,$uofUnit)"/>
+ <xsl:variable name="bottom-line-tyle">
+ <xsl:choose>
+ <xsl:when test="表:边框/uof:下/@uof:类型='single'">solid</xsl:when>
+ <xsl:when test="表:边框/uof:下/@uof:类型='double'">double</xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="bottom-line-color" select="表:边框/uof:下/@uof:颜色"/>
+ <xsl:variable name="border-bottom" select="concat($bottom-line-width,' ',$bottom-line-tyle,' ',$bottom-line-color)"/>
+ <xsl:attribute name="fo:border-bottom"><xsl:value-of select="$border-bottom"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:边框/uof:左/@uof:宽度 !=''">
+ <xsl:variable name="left-line-width" select="concat(表:边框/uof:左/@uof:宽度,$uofUnit)"/>
+ <xsl:variable name="left-line-tyle">
+ <xsl:choose>
+ <xsl:when test="表:边框/uof:左/@uof:类型='single'">solid</xsl:when>
+ <xsl:when test="表:边框/uof:左/@uof:类型='double'">double</xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="left-line-color" select="表:边框/uof:左/@uof:颜色"/>
+ <xsl:variable name="border-left" select="concat($left-line-width,' ',$left-line-tyle,' ',$left-line-color)"/>
+ <xsl:attribute name="fo:border-left"><xsl:value-of select="$border-left"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:边框/uof:å³/@uof:宽度 !=''">
+ <xsl:variable name="right-line-width" select="concat(表:边框/uof:å³/@uof:宽度,$uofUnit)"/>
+ <xsl:variable name="right-line-tyle">
+ <xsl:choose>
+ <xsl:when test="@uof:类型 = 'none'">none</xsl:when>
+ <xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
+ <xsl:when test="@uof:类型 = 'double'">double</xsl:when>
+ <xsl:otherwise>solid</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="right-line-color" select="表:边框/uof:å³/@uof:颜色"/>
+ <xsl:variable name="border-right" select="concat($right-line-width,' ',$right-line-tyle,' ',$right-line-color)"/>
+ <xsl:attribute name="fo:border-right"><xsl:value-of select="$border-right"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:边框/uof:对角线1/@uof:宽度 !=''">
+ <xsl:variable name="diagonal-lr-width" select="concat(表:边框/uof:对角线1/@uof:宽度,$uofUnit)"/>
+ <xsl:variable name="diagonal-lr-tyle">
+ <xsl:choose>
+ <xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'none'">none</xsl:when>
+ <xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'continuous'">solid</xsl:when>
+ <xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'double'">double</xsl:when>
+ <xsl:otherwise>solid</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="diagonal-lr-color" select="表:边框/uof:对角线1/@uof:颜色"/>
+ <xsl:variable name="border-diagonal" select="concat($diagonal-lr-width,' ',$diagonal-lr-tyle,' ',$diagonal-lr-color)"/>
+ <xsl:attribute name="style:diagonal-bl-tr"><xsl:value-of select="$border-diagonal"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:边框/uof:对角线2/@uof:宽度 !=''">
+ <xsl:variable name="diagonal-rl-width" select="concat(表:边框/uof:对角线2/@uof:宽度,$uofUnit)"/>
+ <xsl:variable name="diagonal-rl-tyle">
+ <xsl:choose>
+ <xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'none'">none</xsl:when>
+ <xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'continuous'">solid</xsl:when>
+ <xsl:when test="表:边框/uof:对角线1/@uof:类型 = 'double'">double</xsl:when>
+ <xsl:otherwise>solid</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="diagonal-rl-color" select="表:边框/uof:对角线2/@uof:颜色"/>
+ <xsl:variable name="border-diagonal" select="concat($diagonal-rl-width,' ',$diagonal-rl-tyle,' ',$diagonal-rl-color)"/>
+ <xsl:attribute name="style:diagonal-tl-br"><xsl:value-of select="$border-diagonal"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:边框/*/@uof:阴影">
+ <xsl:choose>
+ <xsl:when test="表:边框/uof:下/@uof:阴影 and 表:边框/uof:å³/@uof:阴影">
+ <xsl:attribute name="style:shadow">#808080 0.18cm 0.18cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:边框/uof:下/@uof:阴影 and 表:边框/uof:左/@uof:阴影">
+ <xsl:attribute name="style:shadow">#808080 -0.18cm 0.18cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:边框/uof:上/@uof:阴影 and 表:边框/uof:å³/@uof:阴影">
+ <xsl:attribute name="style:shadow">#808080 0.18cm -0.18cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:边框/uof:上/@uof:阴影 and 表:边框/uof:左/@uof:阴影">
+ <xsl:attribute name="style:shadow">#808080 -0.18cm -0.18cm</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <!--边框 end -->
+ <xsl:if test="表:填充">
+ <xsl:choose>
+ <xsl:when test="表:填充/图:颜色">
+ <xsl:attribute name="fo:background-color"><xsl:value-of select="表:填充/图:颜色"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="表:å¡«å……/图:图案/@图:å‰æ™¯è‰²">
+ <xsl:variable name="pattern-value">
+ <xsl:call-template name="cell-pattern-color">
+ <xsl:with-param name="pattern" select="concat('0.',substring-after(表:填充/图:图案/图:背景色,'y'))"/>
+ <xsl:with-param name="color-value" select="表:填充/图:颜色"/>
+ <xsl:with-param name="pattern-color-value" select="表:填充/图:图案/图:背景色"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="fo:background-color"><xsl:value-of select="$pattern-value"/></xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="表:字体格å¼/å­—:éšè—文字">
+ <xsl:choose>
+ <xsl:when test="表:字体格å¼/å­—:éšè—文字 = 'true'">
+ <xsl:attribute name="style:cell-protect">protected formula-hidden</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:cell-protect">none</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:attribute name="style:cell-protect">none</xsl:attribute>
+ <xsl:attribute name="style:text-align-source">fix</xsl:attribute>
+ </xsl:element>
+ <xsl:element name="style:paragraph-properties">
+ <xsl:if test="表:对é½æ ¼å¼/表:水平对é½æ–¹å¼">
+ <xsl:variable name="text-align">
+ <xsl:choose>
+ <xsl:when test="表:对é½æ ¼å¼/表:水平对é½æ–¹å¼ = 'left'">start</xsl:when>
+ <xsl:when test="表:对é½æ ¼å¼/表:水平对é½æ–¹å¼ = 'center'">center</xsl:when>
+ <xsl:when test="表:对é½æ ¼å¼/表:水平对é½æ–¹å¼ = 'right'">end</xsl:when>
+ <xsl:when test="表:对é½æ ¼å¼/表:水平对é½æ–¹å¼ = 'justify'">justify</xsl:when>
+ <xsl:otherwise>start</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="fo:text-align"><xsl:value-of select="$text-align"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:element name="style:text-properties">
+ <xsl:if test="表:字体格å¼/å­—:字体">
+ <xsl:choose>
+ <xsl:when test="(表:字体格å¼/å­—:字体/@å­—:中文字体引用)or (表:字体格å¼/å­—:字体/@å­—:西文字体引用)">
+ <xsl:variable name="fontnameZ" select="表:字体格å¼/å­—:字体/@å­—:中文字体引用"/>
+ <xsl:variable name="fontnameX" select="表:字体格å¼/å­—:字体/@å­—:西文字体引用"/>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:字体集/uof:字体声明">
+ <xsl:if test="(./@uof:标识符 = $fontnameZ)or(./@uof:标识符 = $fontnameX)">
+ <xsl:attribute name="style:font-name"><xsl:value-of select="./@uof:å称"/></xsl:attribute>
+ <xsl:attribute name="style:font-name-asian"><xsl:value-of select="./@uof:å称"/></xsl:attribute>
+ <xsl:attribute name="style:font-name-complex"><xsl:value-of select="./@uof:å称"/></xsl:attribute>
+ <xsl:attribute name="style:font-charset"><xsl:value-of select="./@uof:字体æ—"/></xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:font-name">Arial</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="表:字体格å¼/å­—:粗体/@å­—:值">
+ <xsl:attribute name="fo:font-weight"><xsl:choose><xsl:when test="表:字体格å¼/å­—:粗体/@å­—:值=1 or 表:字体格å¼/å­—:粗体/@å­—:值='true'">bold</xsl:when><xsl:when test="表:字体格å¼/å­—:粗体/@å­—:值=0 or 表:字体格å¼/å­—:粗体/@å­—:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:font-weight-asian"><xsl:choose><xsl:when test="表:字体格å¼/å­—:粗体/@å­—:值=1 or 表:字体格å¼/å­—:粗体/@å­—:值='true'">bold</xsl:when><xsl:when test="表:字体格å¼/å­—:粗体/@å­—:值=0 or 表:字体格å¼/å­—:粗体/@å­—:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:font-weight-complex"><xsl:choose><xsl:when test="表:字体格å¼/å­—:粗体/@å­—:值=1 or 表:字体格å¼/å­—:粗体/@å­—:值='true'">bold</xsl:when><xsl:when test="表:字体格å¼/å­—:粗体/@å­—:值=0 or 表:字体格å¼/å­—:粗体/@å­—:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:字体格å¼/å­—:斜体/@å­—:值">
+ <xsl:attribute name="fo:font-style"><xsl:choose><xsl:when test="表:字体格å¼/å­—:斜体/@å­—:值=1 or 表:字体格å¼/å­—:斜体/@å­—:值='true'">italic</xsl:when><xsl:when test="表:字体格å¼/å­—:斜体/@å­—:值=0 or 表:字体格å¼/å­—:斜体/@å­—:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:font-style-asian"><xsl:choose><xsl:when test="表:字体格å¼/å­—:斜体/@å­—:值=1 or 表:字体格å¼/å­—:斜体/@å­—:值='true'">italic</xsl:when><xsl:when test="表:字体格å¼/å­—:斜体/@å­—:值=0 or 表:字体格å¼/å­—:斜体/@å­—:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:font-style-complex"><xsl:choose><xsl:when test="表:字体格å¼/å­—:斜体/@å­—:值=1 or 表:字体格å¼/å­—:斜体/@å­—:值='true'">italic</xsl:when><xsl:when test="表:字体格å¼/å­—:斜体/@å­—:值=0 or 表:字体格å¼/å­—:斜体/@å­—:值='false'">normal</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="表:字体格å¼/å­—:字体/@å­—:颜色">
+ <xsl:attribute name="fo:color"><xsl:value-of select="表:字体格å¼/å­—:字体/@å­—:颜色"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:use-window-font-color">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="表:字体格å¼/å­—:字体/@å­—:å­—å·">
+ <xsl:attribute name="fo:font-size"><xsl:value-of select="concat( 表:字体格å¼/å­—:字体/@å­—:å­—å·, 'pt')"/></xsl:attribute>
+ <xsl:attribute name="style:font-size-asian"><xsl:value-of select="concat( 表:字体格å¼/å­—:字体/@å­—:å­—å·, 'pt')"/></xsl:attribute>
+ <xsl:attribute name="style:font-size-complex"><xsl:value-of select="concat( 表:字体格å¼/å­—:字体/@å­—:å­—å·, 'pt')"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:font-size">12pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian">12pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-complex">12pt</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="表:字体格å¼/å­—:浮雕">
+ <xsl:variable name="aa">
+ <xsl:value-of select="表:字体格å¼/å­—:浮雕/@å­—:类型"/>
+ </xsl:variable>
+ <xsl:attribute name="style:font-relief"><xsl:choose><xsl:when test="$aa='emboss'">embossed</xsl:when><xsl:when test="$aa='engrave'">engraved</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:字体格å¼/å­—:阴影/@å­—:值 = '1' or 表:字体格å¼/å­—:阴影/@å­—:值 = 'true'">
+ <xsl:attribute name="fo:text-shadow">1pt 1pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:字体格å¼/å­—:删除线">
+ <xsl:attribute name="style:text-line-through-style">solid</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="表:字体格å¼/å­—:删除线/@å­—:类型='double'">
+ <xsl:attribute name="style:text-line-through-type">double</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:字体格å¼/å­—:删除线/@å­—:类型='single'">
+ <xsl:attribute name="style:text-underline-mode">continuous</xsl:attribute>
+ <xsl:attribute name="style:text-line-through-mode">continuous</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:字体格å¼/å­—:删除线/@å­—:类型='bold'">
+ <xsl:attribute name="style:text-line-through-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:字体格å¼/å­—:删除线/@å­—:类型='带/'">
+ <xsl:attribute name="style:text-line-through-text">/</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:字体格å¼/å­—:删除线/@å­—:类型='带X'">
+ <xsl:attribute name="style:text-line-through-text">X</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="表:字体格å¼/å­—:下划线">
+ <xsl:apply-templates select="表:字体格å¼/å­—:下划线"/>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="表:字体格å¼/å­—:ç€é‡å·">
+ <xsl:apply-templates select="表:字体格å¼/å­—:ç€é‡å·"/>
+ </xsl:if>
+ <xsl:if test="表:字体格å¼/å­—:空心/@å­—:值='true'">
+ <xsl:attribute name="style:text-outline">true</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="å•å…ƒæ ¼å…·ä½“å¼æ ·">
+ <xsl:choose>
+ <xsl:when test="@表:类型 = 'Default'">
+ <xsl:element name="style:default-style">
+ <xsl:call-template name="style-style-content"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="@表:标识符"/></xsl:attribute>
+ <xsl:if test="表:æ•°å­—æ ¼å¼/@表:æ ¼å¼ç  = 'general'">
+ <xsl:attribute name="style:parent-style-name">Default</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style:parent-style-name">Default</xsl:attribute>
+ <xsl:attribute name="style:data-style-name"><xsl:value-of select="concat( @表:标识符, 'F')"/></xsl:attribute>
+ <!--chengxz这里è¦æ”¹ -->
+ <!--xsl:attribute name="style:data-style-name"><xsl:value-of select="'N2'"/></xsl:attribute-->
+ <xsl:call-template name="style-style-content"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="表:边框">
+ <!--chengxz 0622-->
+ <xsl:if test="not(uof:下)">
+ <xsl:attribute name="fo:border-bottom">none</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(uof:上)">
+ <xsl:attribute name="fo:border-top">none</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(uof:å·¦)">
+ <xsl:attribute name="fo:border-left">none</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(uof:å³)">
+ <xsl:attribute name="fo:border-right">none</xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="uof:对角线1"/>
+ <xsl:apply-templates select="uof:对角线2"/>
+ <xsl:apply-templates select="uof:上"/>
+ <xsl:apply-templates select="uof:下"/>
+ <xsl:apply-templates select="uof:å·¦"/>
+ <xsl:apply-templates select="uof:å³"/>
+ </xsl:template>
+ <xsl:template match="uof:上">
+ <xsl:variable name="bordtype">
+ <xsl:choose>
+ <xsl:when test="@uof:类型 = 'none'">none</xsl:when>
+ <xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
+ <xsl:when test="@uof:类型 = 'double'">double</xsl:when>
+ <!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
+ <xsl:otherwise>solid</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="fo:border-top"><xsl:value-of select="concat(@uof:宽度 div 30,$uofUnit, ' ',$bordtype, ' ', @uof:颜色)"/></xsl:attribute>
+ <xsl:if test="@uof:类型 = 'double'">
+ <xsl:attribute name="style:border-line-width-top">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="uof:下">
+ <xsl:variable name="bordtype">
+ <xsl:choose>
+ <xsl:when test="@uof:类型 = 'none'">none</xsl:when>
+ <xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
+ <xsl:when test="@uof:类型 = 'double'">double</xsl:when>
+ <!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
+ <xsl:otherwise>solid</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="fo:border-bottom"><xsl:value-of select="concat(@uof:宽度 div 30, $uofUnit,' ',$bordtype, ' ',@uof:颜色)"/></xsl:attribute>
+ <xsl:if test="@uof:类型 = 'double'">
+ <xsl:attribute name="style:border-line-width-bottom">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="uof:å·¦">
+ <xsl:variable name="bordtype">
+ <xsl:choose>
+ <xsl:when test="@uof:类型 = 'none'">none</xsl:when>
+ <xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
+ <xsl:when test="@uof:类型 = 'double'">double</xsl:when>
+ <!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
+ <xsl:otherwise>solid</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="fo:border-left"><xsl:value-of select="concat(@uof:宽度 div 30,$uofUnit, ' ',$bordtype, ' ', @uof:颜色)"/></xsl:attribute>
+ <xsl:if test="@uof:类型 = 'double'">
+ <xsl:attribute name="style:border-line-width-left">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="uof:å³">
+ <xsl:variable name="bordtype">
+ <xsl:choose>
+ <xsl:when test="@uof:类型 = 'none'">none</xsl:when>
+ <xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
+ <xsl:when test="@uof:类型 = 'double'">double</xsl:when>
+ <!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
+ <xsl:otherwise>solid</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="fo:border-right"><xsl:value-of select="concat( @uof:宽度 div 30, $uofUnit,' ',$bordtype, ' ', @uof:颜色)"/></xsl:attribute>
+ <xsl:if test="@uof:类型 = 'double'">
+ <xsl:attribute name="style:border-line-width-right">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="uof:对角线1">
+ <xsl:variable name="bordtype">
+ <xsl:choose>
+ <xsl:when test="@uof:类型 = 'none'">none</xsl:when>
+ <xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
+ <xsl:when test="@uof:类型 = 'double'">double</xsl:when>
+ <!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
+ <xsl:otherwise>solid</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:diagonal-bl-tr"><xsl:value-of select="concat( @uof:宽度 div 30, $uofUnit,' ',$bordtype, ' ', @uof:颜色)"/></xsl:attribute>
+ <xsl:if test="@uof:类型 = 'double'">
+ <xsl:attribute name="style:diagonal-bl-tr-width">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="uof:对角线2">
+ <xsl:variable name="bordtype">
+ <xsl:choose>
+ <xsl:when test="@uof:类型 = 'none'">none</xsl:when>
+ <xsl:when test="@uof:类型 = 'continuous'">solid</xsl:when>
+ <xsl:when test="@uof:类型 = 'double'">double</xsl:when>
+ <!-- Dash, Dot, DashDot, DashDotDot, SlantDashDot are not supported yet -->
+ <xsl:otherwise>solid</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:diagonal-tl-br"><xsl:value-of select="concat( @uof:宽度 div 30, $uofUnit,' ',$bordtype, ' ', @uof:颜色)"/></xsl:attribute>
+ <xsl:if test="@uof:类型 = 'double'">
+ <xsl:attribute name="style:diagonal-tl-br-width">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="表:字体格å¼">
+ <xsl:choose>
+ <xsl:when test="字:上下标/@字:上下标 = 'sup'">
+ <style:style style:name="{concat(../@表:标识符,'T0')}" style:family="text">
+ <style:text-properties style:text-position="33% 58%"/>
+ </style:style>
+ </xsl:when>
+ <xsl:when test="字:上下标/@字:上下标 = 'sub'">
+ <style:style style:name="{concat(../@表:标识符,'T0')}" style:family="text">
+ <style:text-properties style:text-position="-33% 58%"/>
+ </style:style>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="tablecolumngroup">
+ <xsl:param name="start"/>
+ <xsl:param name="end"/>
+ <xsl:param name="prestart"/>
+ <xsl:param name="preend"/>
+ <xsl:param name="nextstart"/>
+ <xsl:param name="nextend"/>
+ <table:table-column-group>
+ <table:table-column>
+ <xsl:attribute name="table:style-name">co1</xsl:attribute>
+ <xsl:attribute name="table:table-column-repeated"><xsl:value-of select="@表:终止 - @表:起始 + 1"/></xsl:attribute>
+ </table:table-column>
+ <xsl:if test="$nextstart &gt;= $start and $nextend &lt;= $end">
+ <xsl:for-each select="following-sibling::表:列[1]">
+ <xsl:call-template name="tablecolumngroup"/>
+ </xsl:for-each>
+ </xsl:if>
+ </table:table-column-group>
+ </xsl:template>
+ <xsl:template match="表:工作表">
+ <xsl:variable name="rowpath" select="表:工作表内容/表:行"/>
+ <xsl:variable name="colpath" select="表:工作表内容/表:列"/>
+ <xsl:element name="table:table">
+ <xsl:attribute name="table:name"><xsl:value-of select="@表:å称"/></xsl:attribute>
+ <xsl:if test="表:工作表内容">
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat( 'ta', count(preceding-sibling::表:工作表)+1)"/></xsl:attribute>
+ <xsl:if test="(@表:éšè— = '1')or(@表:éšè— = 'true')">
+ <xsl:attribute name="table:protected">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:工作表内容/uof:锚点 or 表:工作表内容/表:图表">
+ <table:shapes>
+ <xsl:apply-templates select="表:工作表内容/uof:锚点"/>
+ <xsl:apply-templates select="表:工作表内容/表:图表">
+ <xsl:with-param name="table-name" select="@表:å称"/>
+ </xsl:apply-templates>
+ </table:shapes>
+ </xsl:if>
+ <xsl:variable name="table-pos">
+ <xsl:value-of select="count(../preceding-sibling::表:工作表)+1"/>
+ </xsl:variable>
+ <xsl:if test="表:工作表内容/表:分组集/表:列">
+ <xsl:for-each select="表:工作表内容/表:分组集/表:列">
+ <xsl:variable name="start" select="@表:起始"/>
+ <xsl:variable name="end" select="@表:终止"/>
+ <xsl:variable name="prestart" select="preceding-sibling::表:列/@表:起始"/>
+ <xsl:variable name="preend" select="preceding-sibling::表:列/@表:终止"/>
+ <xsl:variable name="nextstart" select="following-sibling::表:列/@表:起始"/>
+ <xsl:variable name="nextend" select="following-sibling::表:列/@表:终止"/>
+ <xsl:call-template name="tablecolumngroup">
+ <xsl:with-param name="start" select="$start"/>
+ <xsl:with-param name="end" select="$end"/>
+ <xsl:with-param name="prestart" select="$prestart"/>
+ <xsl:with-param name="preend" select="$preend"/>
+ <xsl:with-param name="nextstart" select="$nextstart"/>
+ <xsl:with-param name="nextend" select="$nextend"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:for-each select="表:工作表内容/表:列">
+ <table:table-column>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ <xsl:if test="@表:跨度 and not(@表:跨度='1')">
+ <xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="@表:跨度"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@表:éšè—">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ </table:table-column>
+ </xsl:for-each>
+ <xsl:variable name="condition-pos-str1">
+ <xsl:if test="../../表:公用处ç†è§„则/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–">
+ <xsl:call-template name="condition-row-column-string">
+ <xsl:with-param name="last" select="''"/>
+ <xsl:with-param name="total" select="count(../../表:公用处ç†è§„则/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–)"/>
+ <xsl:with-param name="index" select="1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="condition-pos-str2">
+ <xsl:if test="../../表:公用处ç†è§„则/表:æ•°æ®æœ‰æ•ˆæ€§é›†/表:æ•°æ®æœ‰æ•ˆæ€§">
+ <xsl:call-template name="validation-row-column-string">
+ <xsl:with-param name="last" select="''"/>
+ <xsl:with-param name="total" select="count(../../表:公用处ç†è§„则/表:æ•°æ®æœ‰æ•ˆæ€§é›†/表:æ•°æ®æœ‰æ•ˆæ€§)"/>
+ <xsl:with-param name="index" select="1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="condition-pos-str" select="concat($condition-pos-str1, $condition-pos-str2)"/>
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:行">
+ <xsl:call-template name="create-rows">
+ <xsl:with-param name="lastrowpos" select="0"/>
+ <xsl:with-param name="row-count" select="count(表:工作表内容/表:行)"/>
+ <xsl:with-param name="currentRow" select="1"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="tableHasStyle">
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容[@表:å¼æ ·å¼•ç”¨]">
+ <xsl:value-of select="1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="./表:分页符集/表:分页符[@表:è¡Œå·]">
+ <xsl:for-each select="./表:分页符集/表:分页符[@表:è¡Œå·]">
+ <xsl:variable name="number-repeated">
+ <xsl:choose>
+ <xsl:when test="position() = 1">
+ <xsl:value-of select="./@表:è¡Œå·"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./@表:è¡Œå· - preceding::表:分页符[@表:è¡Œå· and (position()=count(.))]/@表:è¡Œå· - 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$number-repeated &gt; 0">
+ <xsl:element name="table:table-row">
+ <xsl:if test="($rowpath/@表:éšè— = '1') or ($rowpath/@表:éšè— = 'true')">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('ro',$table-pos)"/></xsl:attribute>
+ <xsl:attribute name="table:number-rows-repeated"><xsl:value-of select="$number-repeated"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$tableHasStyle = 1">
+ <table:table-cell table:number-columns-repeated="256"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <table:table-cell/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="table:table-row">
+ <xsl:if test="($colpath/@表:éšè— = '1') or ($colpath/@表:éšè— = 'true')">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('rob',$table-pos)"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$tableHasStyle = 1">
+ <table:table-cell table:number-columns-repeated="256"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <table:table-cell/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="table:table-row">
+ <xsl:choose>
+ <xsl:when test="表:工作表内容/@表:å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="table:style-name"><xsl:value-of select="表:工作表内容/@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name"><xsl:text>ro1</xsl:text></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:element name="table:table-cell"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="../../表:公用处ç†è§„则/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–">
+ <xsl:variable name="condition-row-max">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="div-value" select="'R'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="condition-col-max">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="div-value" select="'C'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="break-row-max">
+ <xsl:call-template name="break-row-beyond-max">
+ <xsl:with-param name="pos" select="1"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="count-value" select="count(./表:分页符集/表:分页符[@表:è¡Œå·])"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="end-value">
+ <xsl:choose>
+ <xsl:when test="$condition-row-max &lt; $break-row-max">
+ <xsl:value-of select="$break-row-max"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$condition-row-max"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="get-row-beyond-last">
+ <xsl:with-param name="index-value" select="1"/>
+ <xsl:with-param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="end-pos" select="$end-value"/>
+ <xsl:with-param name="total-col" select="$condition-col-max"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="./表:工作表内容/@表:å¼æ ·å¼•ç”¨">
+ <table:table-row table:style-name="ro1" table:number-rows-repeated="32000">
+ <table:table-cell table:number-columns-repeated="256"/>
+ </table:table-row>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="表:图表">
+ <table:shapes>
+ <xsl:apply-templates select="表:图表">
+ <xsl:with-param name="table-name" select="@表:å称"/>
+ </xsl:apply-templates>
+ </table:shapes>
+ </xsl:if>
+ </xsl:template>
+ <!--xsl:template name="create-columns-without-input"></xsl:template>
+ <xsl:template name="create-columns"></xsl:template>
+ <xsl:template name="condition-row-column-string"></xsl:template>
+<xsl:template name="validation-row-column-string"></xsl:template>
+<xsl:template name="create-rows"></xsl:template>
+<xsl:template name="condition-row-col-pos-max"></xsl:template>
+<xsl:template name="get-row-beyond-last"></xsl:template-->
+ <!--xsl:template name="break-row-beyond-max"></xsl:template-->
+ <!-- chengxz有问题-->
+ <xsl:template name="create-columns-without-input">
+ <xsl:param name="table-pos"/>
+ <xsl:variable name="rowpath" select="表:工作表内容/表:行"/>
+ <xsl:variable name="colpath" select="表:工作表内容/表:列"/>
+ <xsl:choose>
+ <xsl:when test="./表:分页符集/表:分页符[@表:列å·]">
+ <xsl:for-each select="./表:分页符集/表:分页符[@表:列å·]">
+ <xsl:variable name="number-repeated">
+ <xsl:choose>
+ <xsl:when test="position() = 1">
+ <xsl:value-of select="./@表:列å·"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./@表:åˆ—å· - preceding::表:分页符[@表:åˆ—å· and (position()=count(.))]/@表:åˆ—å· - 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$number-repeated &gt; 0">
+ <xsl:element name="table:table-column">
+ <xsl:if test="ancestor::表:工作表/表:工作表内容/@表:å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="table:default-cell-style-name"><xsl:value-of select="ancestor::表:工作表/表:工作表内容/@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="($colpath/@表:éšè— = '1') or ($colpath/@表:éšè— = 'true')">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('co',$table-pos)"/></xsl:attribute>
+ <xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="$number-repeated"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="table:table-column">
+ <xsl:if test="ancestor::表:工作表/表:工作表内容/@表:å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="table:default-cell-style-name"><xsl:value-of select="ancestor::表:工作表/表:工作表内容/@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="($colpath/@表:éšè— = '1') or ($colpath/@表:éšè— = 'true')">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('cob',$table-pos)"/></xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="table:table-column">
+ <xsl:choose>
+ <xsl:when test="表:工作表内容/@表:å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="table:style-name"><xsl:value-of select="表:工作表内容/@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name"><xsl:text>co1</xsl:text></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="表:工作表内容/@表:最大列 and 表:工作表内容/@表:最大列 > 0">
+ <xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="表:工作表内容/@表:最大列"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:default-cell-style-name"><xsl:text>Default</xsl:text></xsl:attribute>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="create-columns">
+ <xsl:param name="columnCount"/>
+ <xsl:param name="currentColumn" select="1"/>
+ <xsl:param name="finishedColumns" select="0"/>
+ <xsl:param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
+ <xsl:param name="currentColumnNode"/>
+ <xsl:choose>
+ <xsl:when test="$finishedColumns &lt; $columnCount">
+ <xsl:choose>
+ <xsl:when test="$currentColumnNode">
+ <xsl:choose>
+ <xsl:when test="$currentColumnNode/@表:åˆ—å· - $finishedColumns &gt; 1">
+ <xsl:call-template name="create-default-column">
+ <xsl:with-param name="currentColumn" select="$currentColumn"/>
+ <xsl:with-param name="currentColumnNode" select="$currentColumnNode"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ <xsl:call-template name="create-columns">
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="currentColumn" select="$currentColumn"/>
+ <xsl:with-param name="currentColumnNode" select="$currentColumnNode"/>
+ <xsl:with-param name="finishedColumns" select="$finishedColumns + 1"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="table:table-column">
+ <xsl:if test="($currentColumnNode/@表:éšè— = '1') or ($currentColumnNode/@表:éšè— = 'true')">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$currentColumnNode/@表:跨度">
+ <xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="$currentColumnNode/@表:跨度 + 1"/></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="key('ColBreak', $currentColumn)">
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('cob', $worksheetNo, '-', $currentColumn)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('co', $worksheetNo, '-', $currentColumn)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:call-template name="create-columns">
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="currentColumn" select="$currentColumn + 1"/>
+ <xsl:with-param name="finishedColumns" select="$finishedColumns + 1"/>
+ <xsl:with-param name="currentColumnNode" select="表:工作表属性/表:列[$currentColumn + 1]"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create-default-column">
+ <xsl:with-param name="currentColumn" select="$currentColumn"/>
+ <xsl:with-param name="currentColumnNode" select="$currentColumnNode"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ <xsl:call-template name="create-columns">
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="currentColumn" select="$currentColumn"/>
+ <xsl:with-param name="finishedColumns" select="$finishedColumns + 1"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$currentColumn = $columnCount">
+ <xsl:if test="表:分页符集/表:分页符/@表:åˆ—å· &gt; $finishedColumns">
+ <xsl:call-template name="get-column-beyond-last">
+ <xsl:with-param name="index-value" select="$finishedColumns"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-column-beyond-last">
+ <xsl:param name="index-value"/>
+ <xsl:param name="worksheetNo"/>
+ <xsl:for-each select="表:分页符集/表:分页符[@表:列å·]">
+ <xsl:variable name="each-column-value" select="@表:列å·"/>
+ <xsl:choose>
+ <xsl:when test="$each-column-value + 1 &gt; $index-value">
+ <xsl:variable name="number-repeated">
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::表:分页符[@表:列å·][position()=count(.)]/@表:åˆ—å· + 1 = $index-value">
+ <xsl:value-of select="$each-column-value - preceding-sibling::表:分页符[@表:åˆ—å· and (position()=count(.))]/@表:åˆ—å· - 1"/>
+ </xsl:when>
+ <xsl:when test="preceding-sibling::表:分页符[@表:åˆ—å· and (position()=count(.))]/@表:åˆ—å· + 1 &gt; $index-value">
+ <xsl:value-of select="$each-column-value - preceding-sibling::表:分页符[@表:列å·][position()=count(.)]/@表:åˆ—å· - 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$each-column-value - $index-value + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$number-repeated &gt; 0">
+ <xsl:element name="table:table-column">
+ <xsl:attribute name="table:style-name"><xsl:value-of select="'co1'"/></xsl:attribute>
+ <xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="$number-repeated"/></xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="table:table-column">
+ <xsl:if test="../../表:工作表内容[@表:å¼æ ·å¼•ç”¨]">
+ <xsl:attribute name="table:default-cell-style-name"><xsl:value-of select="./表:工作表内容/@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('cob',$worksheetNo)"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="$each-column-value + 1 = $index-value">
+ <xsl:element name="table:table-column">
+ <xsl:if test="/../../表:工作表内容[@表:å¼æ ·å¼•ç”¨]">
+ <xsl:attribute name="table:default-cell-style-name"><xsl:value-of select="./../../表:工作表内容/@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('cob',$worksheetNo)"/></xsl:attribute>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="condition-row-column-string">
+ <xsl:param name="last"/>
+ <xsl:param name="total"/>
+ <xsl:param name="index"/>
+ <xsl:variable name="table-pos" select="count(preceding-sibling::表:工作表)+1"/>
+ <xsl:variable name="current">
+ <xsl:call-template name="parse-range">
+ <xsl:with-param name="range-value" select="../../表:公用处ç†è§„则/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–[position() = $index]/表:范围"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="current-value" select="concat('(c',$table-pos,'-',$index,':', $current,');')"/>
+ <xsl:if test="$index &lt; $total">
+ <xsl:call-template name="condition-row-column-string">
+ <xsl:with-param name="last" select="concat($last, $current-value)"/>
+ <xsl:with-param name="total" select="$total"/>
+ <xsl:with-param name="index" select="$index + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$index = $total">
+ <xsl:value-of select="concat($last, $current-value)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="validation-row-column-string">
+ <xsl:param name="last"/>
+ <xsl:param name="total"/>
+ <xsl:param name="index"/>
+ <xsl:variable name="table-pos" select="count(preceding-sibling::表:工作表)+1"/>
+ <xsl:variable name="current">
+ <xsl:call-template name="parse-range">
+ <xsl:with-param name="range-value" select="../../表:公用处ç†è§„则/表:æ•°æ®æœ‰æ•ˆæ€§é›†/表:æ•°æ®æœ‰æ•ˆæ€§[position() = $index]/表:范围"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="current-value" select="concat('(v',$index,':', $current,');')"/>
+ <xsl:if test="$index &lt; $total">
+ <xsl:call-template name="validation-row-column-string">
+ <xsl:with-param name="last" select="concat($last, $current-value)"/>
+ <xsl:with-param name="total" select="$total"/>
+ <xsl:with-param name="index" select="$index + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$index = $total">
+ <xsl:value-of select="concat($last, $current-value)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="create-rows">
+ <xsl:param name="lastrowpos"/>
+ <xsl:param name="row-count"/>
+ <xsl:param name="currentRow"/>
+ <xsl:param name="condition-pos-str"/>
+ <xsl:choose>
+ <xsl:when test="$currentRow &lt; ($row-count + 1)">
+ <xsl:variable name="span-value">
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå·">
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
+ <xsl:value-of select="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå· - $lastrowpos + ./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:跨度"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå· - $lastrowpos"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
+ <xsl:value-of select="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度 + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="current-index">
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå·">
+ <xsl:value-of select="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå·"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lastrowpos + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:分组集/表:行">
+ <xsl:for-each select="./表:工作表内容/表:分组集/表:行[1]">
+ <xsl:call-template name="table:table-row-group"/>
+ </xsl:for-each>
+ <xsl:for-each select="./表:工作表内容/表:è¡Œ[not(@表:è¡Œå·)]">
+ <xsl:call-template name="create-row">
+ <xsl:with-param name="index-value" select="$lastrowpos"/>
+ <xsl:with-param name="span-value" select="$span-value"/>
+ <xsl:with-param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
+ <xsl:with-param name="row-value" select="$currentRow"/>
+ <xsl:with-param name="times" select="1"/>
+ <xsl:with-param name="current-index" select="$current-index"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="./表:工作表内容/表:分组集 and ( ./表:工作表内容/表:分组集/表:行/@表:起始 &gt;= ($currentRow - 1) and ($currentRow - 1) &lt;= ./表:工作表内容/表:分组集/表:行/@表:终止 )">
+ <xsl:element name="table:table-row-group">
+ <xsl:variable name="TempStart">
+ <xsl:value-of select="./表:工作表内容/表:分组集/表:行/@表:起始"/>
+ </xsl:variable>
+ <xsl:variable name="TempEnd">
+ <xsl:value-of select="./表:工作表内容/表:分组集/表:行/@表:终止"/>
+ </xsl:variable>
+ <xsl:for-each select="./表:工作表内容/表:行">
+ <xsl:if test="$TempStart &gt;= ($currentRow - 1) and ($currentRow - 1) &lt;= $TempEnd">
+ <xsl:call-template name="create-row">
+ <xsl:with-param name="index-value" select="$lastrowpos"/>
+ <xsl:with-param name="span-value" select="$span-value"/>
+ <xsl:with-param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
+ <xsl:with-param name="row-value" select="$currentRow"/>
+ <xsl:with-param name="times" select="1"/>
+ <xsl:with-param name="current-index" select="$current-index"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create-row">
+ <xsl:with-param name="index-value" select="$lastrowpos"/>
+ <xsl:with-param name="span-value" select="$span-value"/>
+ <xsl:with-param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
+ <xsl:with-param name="row-value" select="$currentRow"/>
+ <xsl:with-param name="times" select="1"/>
+ <xsl:with-param name="current-index" select="$current-index"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ <xsl:if test="$currentRow &lt; $row-count">
+ <xsl:call-template name="create-rows">
+ <xsl:with-param name="lastrowpos">
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå·">
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
+ <xsl:value-of select="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå· + ./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:跨度"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå·"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
+ <xsl:value-of select="$lastrowpos + ./表:工作表内容/表:行[position() = $currentRow]/@表:跨度 + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lastrowpos + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="row-count" select="$row-count"/>
+ <xsl:with-param name="currentRow" select="$currentRow + 1"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$currentRow = $row-count">
+ <xsl:variable name="last-pos">
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå·">
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
+ <xsl:value-of select="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå· + ./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:跨度"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./表:工作表内容/表:è¡Œ[position() = $currentRow]/@表:è¡Œå·"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:行[position() = $currentRow]/@表:跨度">
+ <xsl:value-of select="$lastrowpos + ./表:工作表内容/表:行[position() = $currentRow]/@表:跨度 + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lastrowpos + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="./表:分页符集/表:分页符/@表:è¡Œå· &gt; ($last-pos - 1) or ../../表:公用处ç†è§„则/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–">
+ <xsl:variable name="condition-row-max">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="div-value" select="'R'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="condition-col-max">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="div-value" select="'C'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="break-row-max">
+ <xsl:call-template name="break-row-beyond-max">
+ <xsl:with-param name="pos" select="1"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="count-value" select="count(./表:分页符集/表:分页符[@表:è¡Œå·])"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="end-value">
+ <xsl:choose>
+ <xsl:when test="$condition-row-max &lt; $break-row-max">
+ <xsl:value-of select="$break-row-max"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$condition-row-max"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="get-row-beyond-last">
+ <xsl:with-param name="index-value" select="$last-pos + 1"/>
+ <xsl:with-param name="worksheetNo" select="count(preceding-sibling::表:工作表)+1"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="end-pos" select="$end-value"/>
+ <xsl:with-param name="total-col" select="$condition-col-max"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="./表:工作表内容/表:列[@表:å¼æ ·å¼•ç”¨] or ./表:工作表内容[@表:å¼æ ·å¼•ç”¨]">
+ <table:table-row table:style-name="ro1" table:number-rows-repeated="31990">
+ <table:table-cell table:number-columns-repeated="256"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro1">
+ <table:table-cell table:number-columns-repeated="256"/>
+ </table:table-row>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <!-- add row-group 2.6-->
+ <xsl:template name="table:table-row-group">
+ <xsl:param name="start"/>
+ <xsl:param name="end"/>
+ <xsl:variable name="start1" select="@表:起始"/>
+ <xsl:variable name="end1" select="@表:终止"/>
+ <xsl:variable name="nextstart" select="following-sibling::表:行/@表:起始"/>
+ <xsl:variable name="nextend" select="following-sibling::表:行/@表:终止"/>
+ <xsl:variable name="prestart" select="preceding-sibling::表:行/@表:起始"/>
+ <xsl:variable name="preend" select="preceding-sibling::表:行/@表:终止"/>
+ <xsl:variable name="numrow" select="$end1 - $start1"/>
+ <xsl:variable name="position" select="position()"/>
+ <xsl:choose>
+ <xsl:when test="$nextstart &gt;= $start1 and $nextend &lt;= $end1">
+ <table:table-row-group>
+ <xsl:call-template name="creategroup"/>
+ </table:table-row-group>
+ </xsl:when>
+ <xsl:when test="$nextstart &gt;= $end1">
+ <xsl:choose>
+ <xsl:when test="$nextend &lt;=$preend">
+ <xsl:call-template name="row">
+ <xsl:with-param name="start1" select="$start1"/>
+ <xsl:with-param name="end1" select="$end1"/>
+ <xsl:with-param name="nextstart" select="$nextstart"/>
+ <xsl:with-param name="nextend" select="$nextend"/>
+ <xsl:with-param name="prestart" select="$prestart"/>
+ <xsl:with-param name="preend" select="$preend"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="levelgroup"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="row">
+ <xsl:with-param name="start1" select="$start1"/>
+ <xsl:with-param name="end1" select="$end1"/>
+ <xsl:with-param name="nextstart" select="$nextstart"/>
+ <xsl:with-param name="nextend" select="$nextend"/>
+ <xsl:with-param name="prestart" select="$prestart"/>
+ <xsl:with-param name="preend" select="$preend"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="levelrowgroup">
+ <xsl:param name="start"/>
+ <xsl:param name="end"/>
+ <xsl:variable name="start1" select="@表:起始"/>
+ <xsl:variable name="end1" select="@表:终止"/>
+ <xsl:variable name="nextstart" select="following-sibling::表:行/@表:起始"/>
+ <xsl:variable name="nextend" select="following-sibling::表:行/@表:终止"/>
+ <xsl:variable name="prestart" select="preceding-sibling::表:行/@表:起始"/>
+ <xsl:variable name="preend" select="preceding-sibling::表:行/@表:终止"/>
+ <xsl:variable name="numrow" select="$end1 - $start1"/>
+ <xsl:variable name="position" select="position()"/>
+ <xsl:call-template name="row">
+ <xsl:with-param name="start1" select="$start1"/>
+ <xsl:with-param name="end1" select="$end1"/>
+ <xsl:with-param name="nextstart" select="$nextstart"/>
+ <xsl:with-param name="nextend" select="$nextend"/>
+ <xsl:with-param name="prestart" select="$prestart"/>
+ <xsl:with-param name="preend" select="$preend"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template name="creategroup">
+ <xsl:for-each select="following-sibling::表:行">
+ <xsl:variable name="start1" select="@表:起始"/>
+ <xsl:variable name="end1" select="@表:终止"/>
+ <xsl:variable name="nextstart" select="following-sibling::表:行/@表:起始"/>
+ <xsl:variable name="nextend" select="following-sibling::表:行/@表:终止"/>
+ <xsl:variable name="prestart" select="preceding-sibling::表:行/@表:起始"/>
+ <xsl:variable name="preend" select="preceding-sibling::表:行/@表:终止"/>
+ <xsl:if test="$start1 &gt;= $prestart and $end1 &lt;= $preend">
+ <xsl:call-template name="table:table-row-group"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="levelgroup">
+ <xsl:for-each select="parent::表:分组集/表:行">
+ <xsl:call-template name="levelrowgroup"/>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="row">
+ <xsl:param name="start1"/>
+ <xsl:param name="end1"/>
+ <xsl:param name="nextstart"/>
+ <xsl:param name="nextend"/>
+ <xsl:param name="prestart"/>
+ <xsl:param name="preend"/>
+ <xsl:for-each select="ancestor::表:工作表内容/表:è¡Œ[@表:è¡Œå·]">
+ <xsl:variable name="rownum" select="@表:è¡Œå·"/>
+ <xsl:variable name="aa" select="$start1 - $prestart"/>
+ <xsl:if test="$rownum &gt;= $prestart and $rownum &lt;= ($prestart + $aa - 1) and $start1 &lt;= $preend">
+ <table:table-row>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ <xsl:call-template name="celldata"/>
+ </table:table-row>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="ancestor::表:工作表内容/表:è¡Œ[@表:è¡Œå·]">
+ <xsl:variable name="rownum" select="@表:è¡Œå·"/>
+ <xsl:variable name="ss" select="$start1 - $preend"/>
+ <xsl:if test="$rownum &gt;= ($preend +1) and $rownum &lt;= ($preend + $ss - 1) and $start1 &gt;= $preend">
+ <table:table-row>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ <xsl:call-template name="celldata"/>
+ </table:table-row>
+ </xsl:if>
+ </xsl:for-each>
+ <table:table-row-group>
+ <xsl:for-each select="ancestor::表:工作表内容/表:è¡Œ[@表:è¡Œå·]">
+ <xsl:variable name="rownum" select="@表:è¡Œå·"/>
+ <xsl:if test="$rownum &lt;= $end1">
+ <xsl:if test="$rownum &gt;= $start1">
+ <table:table-row>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ <xsl:call-template name="celldata"/>
+ </table:table-row>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </table:table-row-group>
+ <xsl:for-each select="ancestor::表:工作表内容/表:è¡Œ[@表:è¡Œå·]">
+ <xsl:variable name="rownum" select="@表:è¡Œå·"/>
+ <xsl:variable name="bb" select="$preend - $end1"/>
+ <xsl:if test="$rownum &gt;= ($end1 + 1) and $rownum &lt;= ($end1 + $bb) and $start1 &lt; $preend">
+ <table:table-row>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="@表:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ <xsl:call-template name="celldata"/>
+ </table:table-row>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="celldata">
+ <xsl:for-each select="./表:å•å…ƒæ ¼">
+ <table:table-cell>
+ <xsl:choose>
+ <xsl:when test="表:æ•°æ®/@表:æ•°æ®ç±»åž‹ = 'number'">
+ <xsl:attribute name="office:value-type">float</xsl:attribute>
+ <xsl:attribute name="office:value"><xsl:choose><xsl:when test="表:æ•°æ®/@表:æ•°æ®æ•°å€¼"><xsl:value-of select="表:æ•°æ®/@表:æ•°æ®æ•°å€¼"/></xsl:when><xsl:otherwise><xsl:value-of select="表:æ•°æ®/å­—:å¥/å­—:文本串"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:æ•°æ®/@表:æ•°æ®ç±»åž‹ = 'date'">
+ <xsl:attribute name="office:value-type">date</xsl:attribute>
+ <xsl:attribute name="table:date-value"><xsl:value-of select="表:æ•°æ®/@表:æ•°æ®æ•°å€¼"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:æ•°æ®/@表:æ•°æ®ç±»åž‹ = 'time'">
+ <xsl:attribute name="office:value-type">time</xsl:attribute>
+ <xsl:attribute name="table:time-value"><xsl:value-of select="表:æ•°æ®/@表:æ•°æ®æ•°å€¼"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:æ•°æ®/@表:æ•°æ®ç±»åž‹ = 'boolean'">
+ <xsl:attribute name="office:value-type">boolean</xsl:attribute>
+ <xsl:attribute name="table:boolean-value"><xsl:choose><xsl:when test="表:æ•°æ®/å­—:å¥/å­—:文本串 = '1'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:æ•°æ®/@表:æ•°æ®ç±»åž‹ = 'text'">
+ <xsl:attribute name="office:value-type">string</xsl:attribute>
+ <xsl:attribute name="table:string-value"><xsl:value-of select="表:æ•°æ®/@表:æ•°æ®æ•°å€¼"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="表:æ•°æ®/å­—:å¥/å­—:文本串">
+ <text:p>
+ <xsl:value-of select="表:æ•°æ®/å­—:å¥/å­—:文本串"/>
+ </text:p>
+ </xsl:if>
+ </table:table-cell>
+ </xsl:for-each>
+ </xsl:template>
+ <!-- add row-group 2.8 -->
+ <xsl:template name="create-row">
+ <xsl:param name="index-value"/>
+ <xsl:param name="span-value"/>
+ <xsl:param name="worksheetNo"/>
+ <xsl:param name="row-value"/>
+ <xsl:param name="times"/>
+ <xsl:param name="current-index"/>
+ <xsl:param name="condition-pos-str"/>
+ <xsl:element name="table:table-row">
+ <xsl:choose>
+ <xsl:when test="./表:分页符集/表:分页符/@表:è¡Œå· = ($index-value + $times - 1)">
+ <xsl:choose>
+ <xsl:when test="($index-value + $times &lt; $current-index) and ($current-index != 0)">
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('rob',$worksheetNo)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('rob', $worksheetNo, '-', $row-value)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="($index-value + $times &lt; $current-index) and ($current-index != 0)">
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('ro',$worksheetNo)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('ro', $worksheetNo, '-', $row-value)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--chengxiuzhi0617-->
+ <xsl:if test="./表:工作表内容/表:è¡Œ[position() = $row-value]/@表:éšè— = 'true'">
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容/表:行[position() = $row-value]/@表:跨度">
+ <xsl:if test="$index-value + $times &gt; ($current-index - 1)">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$index-value + $times = $current-index">
+ <xsl:attribute name="table:visibility">collapse</xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="not(./表:工作表内容/表:行[position() = $row-value]/*)">
+ <table:table-cell>
+ <xsl:for-each select="./表:å•å…ƒæ ¼/表:æ•°æ®">
+ <xsl:choose>
+ <xsl:when test="@表:æ•°æ®ç±»åž‹ = 'number'">
+ <xsl:attribute name="office:value-type">float</xsl:attribute>
+ <xsl:attribute name="office:value"><xsl:choose><xsl:when test="@表:æ•°æ®æ•°å€¼"><xsl:value-of select="@表:æ•°æ®æ•°å€¼"/></xsl:when><xsl:otherwise><xsl:value-of select="å­—:å¥/å­—:文本串"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@表:æ•°æ®ç±»åž‹ = 'date'">
+ <xsl:attribute name="office:value-type">date</xsl:attribute>
+ <xsl:attribute name="table:date-value"><xsl:value-of select="@表:æ•°æ®æ•°å€¼"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@表:æ•°æ®ç±»åž‹ = 'time'">
+ <xsl:attribute name="office:value-type">time</xsl:attribute>
+ <xsl:attribute name="table:time-value"><xsl:value-of select="@表:æ•°æ®æ•°å€¼"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@表:æ•°æ®ç±»åž‹ = 'boolean'">
+ <xsl:attribute name="office:value-type">boolean</xsl:attribute>
+ <xsl:attribute name="table:boolean-value"><xsl:choose><xsl:when test="å­—:å¥/å­—:文本串 = '1'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@表:æ•°æ®ç±»åž‹ = 'text'">
+ <xsl:attribute name="office:value-type">string</xsl:attribute>
+ <xsl:attribute name="table:string-value"><xsl:value-of select="@表:æ•°æ®æ•°å€¼"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="å­—:å¥/å­—:文本串">
+ <text:p>
+ <xsl:value-of select="å­—:å¥/å­—:文本串"/>
+ </text:p>
+ </xsl:if>
+ </xsl:for-each>
+ </table:table-cell>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$index-value + $times &lt; $current-index">
+ <xsl:variable name="current" select="concat('R',($index-value + $times),'C')"/>
+ <xsl:variable name="col-pos-max">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="div-value" select="'C'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($condition-pos-str,$current)">
+ <xsl:call-template name="get-cell-span-in">
+ <xsl:with-param name="row-pos" select="$index-value + $times"/>
+ <xsl:with-param name="c-start" select="1"/>
+ <xsl:with-param name="c-end" select="$col-pos-max"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <table:table-cell/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$index-value + $times = $current-index">
+ <xsl:apply-templates select="表:工作表内容/表:行[position() = $row-value]" mode="selected">
+ <xsl:with-param name="row-pos" select="$index-value + $times"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <table:table-cell/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="$times &lt; $span-value">
+ <xsl:call-template name="create-row">
+ <xsl:with-param name="index-value" select="$index-value"/>
+ <xsl:with-param name="span-value" select="$span-value"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ <xsl:with-param name="row-value" select="$row-value"/>
+ <xsl:with-param name="times" select="$times + 1"/>
+ <xsl:with-param name="current-index" select="$current-index"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="condition-row-col-pos-max">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="last-value"/>
+ <xsl:param name="div-value"/>
+ <xsl:variable name="pre-value">
+ <xsl:choose>
+ <xsl:when test="$div-value = 'R'">
+ <xsl:value-of select="substring-before(substring-after($condition-pos-str,$div-value),'C')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before(substring-after($condition-pos-str,$div-value),',')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="end-value">
+ <xsl:choose>
+ <xsl:when test="$last-value &lt; $pre-value">
+ <xsl:value-of select="$pre-value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$last-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($condition-pos-str,$div-value)">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="substring-after($condition-pos-str,$div-value)"/>
+ <xsl:with-param name="last-value" select="$end-value"/>
+ <xsl:with-param name="div-value" select="$div-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$end-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="break-row-beyond-max">
+ <xsl:param name="pos"/>
+ <xsl:param name="last-value"/>
+ <xsl:param name="count-value"/>
+ <xsl:variable name="pre-value" select="./表:分页符集/表:分页符[@表:åˆ—å· and (position() = $pos)]/@表:列å·"/>
+ <xsl:variable name="end-value">
+ <xsl:choose>
+ <xsl:when test="$last-value &lt; $pre-value">
+ <xsl:value-of select="$pre-value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$last-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$pos &lt; $count-value">
+ <xsl:call-template name="break-row-beyond-max">
+ <xsl:with-param name="pos" select="$pos + 1"/>
+ <xsl:with-param name="last-value" select="$end-value"/>
+ <xsl:with-param name="count-value" select="$count-value"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$end-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-row-beyond-last">
+ <xsl:param name="index-value"/>
+ <xsl:param name="worksheetNo"/>
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="end-pos"/>
+ <xsl:param name="total-col"/>
+ <xsl:variable name="current" select="concat('R',$index-value)"/>
+ <xsl:element name="table:table-row">
+ <xsl:choose>
+ <xsl:when test="./表:分页符集/表:分页符/@è¡Œå· = ($index-value - 1)">
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('rob',$worksheetNo)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('ro',$worksheetNo)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="contains($condition-pos-str,$current)">
+ <xsl:call-template name="get-cell-span-in">
+ <xsl:with-param name="row-pos" select="$index-value"/>
+ <xsl:with-param name="c-start" select="1"/>
+ <xsl:with-param name="c-end" select="$total-col"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <table:table-cell/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="$index-value &lt; ($end-pos + 1)">
+ <xsl:call-template name="get-row-beyond-last">
+ <xsl:with-param name="index-value" select="$index-value + 1"/>
+ <xsl:with-param name="worksheetNo" select="$worksheetNo"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="end-pos" select="$end-pos"/>
+ <xsl:with-param name="total-col" select="$total-col"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="get-cell-span-in">
+ <xsl:param name="row-pos"/>
+ <xsl:param name="c-start"/>
+ <xsl:param name="c-end"/>
+ <xsl:param name="condition-pos-str"/>
+ <xsl:variable name="current" select="concat('R',$row-pos,'C',$c-start,',')"/>
+ <xsl:variable name="style-name">
+ <xsl:choose>
+ <xsl:when test="contains($condition-pos-str,$current)">
+ <xsl:variable name="temp-str">
+ <xsl:call-template name="condition-str">
+ <xsl:with-param name="param-str" select="substring-before($condition-pos-str,$current)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="starts-with($temp-str, 'c')">
+ <xsl:value-of select="concat('ce', substring-after($temp-str, 'c'))"/>
+ </xsl:when>
+ <xsl:when test="starts-with($temp-str, 'v')">
+ <xsl:value-of select="concat('val', substring-after($temp-str, 'v'))"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="../表:å•å…ƒæ ¼[position() = position() - 1]/@表:å¼æ ·å¼•ç”¨">
+ <xsl:value-of select="../表:å•å…ƒæ ¼[position() = position() - 1]/@表:å¼æ ·å¼•ç”¨ "/>
+ </xsl:when>
+ <xsl:when test="../@表:å¼æ ·å¼•ç”¨">
+ <xsl:value-of select="../@表:å¼æ ·å¼•ç”¨"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'Default'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$c-start &lt; $c-end">
+ <xsl:call-template name="get-cell-condition-in">
+ <xsl:with-param name="style-name" select="$style-name"/>
+ </xsl:call-template>
+ <xsl:call-template name="get-cell-span-in">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="c-start" select="$c-start + 1"/>
+ <xsl:with-param name="c-end" select="$c-end"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$c-start = $c-end">
+ <xsl:call-template name="get-cell-condition-in">
+ <xsl:with-param name="style-name" select="$style-name"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <table:table-cell/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-cell-condition-in">
+ <xsl:param name="style-name"/>
+ <xsl:element name="table:table-cell">
+ <xsl:if test="not( contains($style-name, 'Default'))">
+ <xsl:choose>
+ <xsl:when test="starts-with($style-name, 'val')">
+ <xsl:attribute name="table:content-validation-name"><xsl:value-of select="$style-name"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="starts-with($style-name, 'ce')">
+ <xsl:attribute name="table:style-name"><xsl:value-of select="$style-name"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="$style-name"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <!--chengxiuzhi0617 å•å…ƒæ ¼-->
+ </xsl:element>
+ </xsl:template>
+ <xsl:key match="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:分页符集/表:分页符[@表:列å·]" name="ColBreak" use="Column"/>
+ <xsl:template name="create-default-column">
+ <xsl:param name="currentColumn"/>
+ <xsl:param name="currentColumnNode"/>
+ <xsl:param name="worksheetNo"/>
+ <xsl:element name="table:table-column">
+ <xsl:attribute name="table:default-cell-style-name"><xsl:call-template name="get-default-cell-style"><xsl:with-param name="currentColumnNode" select="$currentColumnNode"/></xsl:call-template></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="key('ColBreak', $currentColumn)">
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('cob',$worksheetNo)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('co',$worksheetNo)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--chengxiuzhi0617用key就错-->
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="get-default-cell-style">
+ <xsl:param name="currentColumnNode"/>
+ <xsl:choose>
+ <xsl:when test="$currentColumnNode">
+ <xsl:choose>
+ <xsl:when test="$currentColumnNode/@表:å¼æ ·å¼•ç”¨">
+ <xsl:value-of select="$currentColumnNode/@表:å¼æ ·å¼•ç”¨"/>
+ </xsl:when>
+ <xsl:otherwise>Default</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./表:工作表内容[@表:å¼æ ·å¼•ç”¨]">
+ <xsl:value-of select="./表:工作表内容/@表:å¼æ ·å¼•ç”¨"/>
+ </xsl:when>
+ <xsl:otherwise>Default</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="表:行" mode="selected">
+ <xsl:param name="row-pos"/>
+ <xsl:param name="condition-pos-str"/>
+ <xsl:choose>
+ <xsl:when test="表:å•å…ƒæ ¼">
+ <xsl:apply-templates select="表:å•å…ƒæ ¼[1]" mode="selected">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="div-value" select="'C'"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="col-pos-before" select="0"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="current" select="concat('R',$row-pos,'C')"/>
+ <xsl:choose>
+ <xsl:when test="contains($condition-pos-str,$current)">
+ <xsl:call-template name="get-cell-span-in">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="c-start" select="1"/>
+ <xsl:with-param name="c-end">
+ <xsl:call-template name="condition-row-col-pos-max">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="last-value" select="0"/>
+ <xsl:with-param name="div-value" select="'C'"/>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos" select="1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <table:table-cell/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="表:å•å…ƒæ ¼" mode="selected">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="col-pos-max"/>
+ <xsl:param name="col-pos-before"/>
+ <xsl:param name="row-pos"/>
+ <xsl:param name="col-repeated" select="1"/>
+ <xsl:variable name="col-pos">
+ <xsl:choose>
+ <xsl:when test="@表:列å·">
+ <xsl:choose>
+ <xsl:when test="@表:åˆå¹¶åˆ—æ•°">
+ <xsl:value-of select="@表:åˆå¹¶åˆ—æ•° + @表:列å·"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@表:列å·"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="@表:åˆå¹¶åˆ—æ•°">
+ <xsl:value-of select="1 + @表:åˆå¹¶åˆ—æ•° + $col-pos-before"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="1 + $col-pos-before"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="next-cell" select="following-sibling::表:å•å…ƒæ ¼[1]"/>
+ <xsl:variable name="maodian" select="boolean($next-cell/uof:锚点)"/>
+ <xsl:variable name="cell-is-repeatable" select="not(current()/*) and not($next-cell/*) and not($next-cell/text()) and (@表:å¼æ ·å¼•ç”¨ = $next-cell/@表:å¼æ ·å¼•ç”¨) and not($next-cell/@表:列å·)"/>
+ <xsl:if test="$col-repeated = 1">
+ <xsl:if test="@表:åˆ—å· != ($col-pos-before + 1)">
+ <xsl:call-template name="get-cell-span-in">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="c-start" select="$col-pos-before + 1"/>
+ <xsl:with-param name="c-end" select="@表:åˆ—å· - 1"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:element name="table:table-cell">
+ <xsl:call-template name="create-table-cell-attributes">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos" select="$col-pos"/>
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ </xsl:call-template>
+ <xsl:if test="$cell-is-repeatable">
+ <xsl:apply-templates select="$next-cell" mode="selected">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-before" select="$col-pos + 1"/>
+ <xsl:with-param name="col-repeated" select="$col-repeated + 1"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ <xsl:call-template name="create-table-cell-content">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos" select="$col-pos"/>
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:if test="@表:åˆå¹¶åˆ—æ•°">
+ <xsl:element name="table:covered-table-cell">
+ <xsl:if test="@表:åˆå¹¶åˆ—æ•° &gt; 1">
+ <xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="@表:åˆå¹¶åˆ—æ•°"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="not($cell-is-repeatable and $col-repeated = 1)">
+ <xsl:choose>
+ <xsl:when test="not($cell-is-repeatable) and $col-repeated &gt; 1">
+ <xsl:attribute name="table:number-columns-repeated"><xsl:value-of select="$col-repeated"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="not($next-cell)">
+ <xsl:if test="../../../../../表:公用处ç†è§„则/表:æ¡ä»¶æ ¼å¼åŒ–集/表:æ¡ä»¶æ ¼å¼åŒ–">
+ <xsl:call-template name="get-cell-span-in">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="c-start" select="$col-pos"/>
+ <xsl:with-param name="c-end" select="$col-pos-max"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="not($cell-is-repeatable)">
+ <xsl:apply-templates select="$next-cell" mode="selected">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-before" select="$col-pos"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="$next-cell" mode="selected">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-before" select="$col-pos"/>
+ <xsl:with-param name="col-repeated" select="$col-repeated + 1"/>
+ </xsl:apply-templates>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$next-cell">
+ <xsl:apply-templates select="$next-cell" mode="skip">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-before" select="$col-pos"/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--Redoffice comment liliang sc0012 06.02.15-->
+ <!--新增内容-->
+ <xsl:template match="uof:锚点">
+ <xsl:variable name="tuxing1" select="@uof:图形引用"/>
+ <xsl:choose>
+ <xsl:when test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]">
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='png' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='ipg' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='bmp' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='gif'">
+ <xsl:element name="draw:frame">
+ <xsl:attribute name="draw:name"><xsl:variable name="pos"><xsl:value-of select="count(preceding::uof:锚点)"/></xsl:variable><xsl:value-of select="concat('图形',$pos)"/></xsl:attribute>
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(@uof:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]">
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="rotate-angle">
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="图:文本内容/字:文字表"/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:element name="draw:image">
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:路径">
+ <xsl:attribute name="xlink:href"><xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符= $tuxing1]/uof:路径"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:æ•°æ®">
+ <office:binary-data>
+ <xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:æ•°æ®"/>
+ </office:binary-data>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:文本内容[@图:文本框='true']">
+ <draw:text-box text:anchor-type="paragraph">
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="$tuxing1"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(@uof:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:if test="@uof:xåæ ‡">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@uof:yåæ ‡">
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="/uof:UOF/uof:对象集/图:图形/@图:层次"/></xsl:attribute>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]/图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]/图:文本内容/字:文字表"/>
+ </draw:text-box>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="graph">
+ <xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]"/>
+ <xsl:with-param name="groupx" select="0"/>
+ <xsl:with-param name="groupy" select="0"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="graph">
+ <xsl:param name="id"/>
+ <xsl:param name="groupx"/>
+ <xsl:param name="groupy"/>
+ <xsl:for-each select="$id">
+ <xsl:variable name="tuxing1">
+ <xsl:value-of select="图:预定义图形/图:类别"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$tuxing1='11'">
+ <xsl:call-template name="Rectangle">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='19'">
+ <xsl:call-template name="Oval">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='61'">
+ <xsl:call-template name="Line">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='64'">
+ <xsl:call-template name="Curve">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='65'">
+ <xsl:call-template name="Freeform">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='66'">
+ <xsl:call-template name="Scribble">
+ <xsl:with-param name="groupx1" select="$groupx"/>
+ <xsl:with-param name="groupy1" select="$groupy"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$tuxing1='4'">
+ <xsl:element name="draw:g">
+ <xsl:variable name="tu">
+ <xsl:value-of select="@图:标识符"/>
+ </xsl:variable>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="$tu"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:variable name="this-group-x">
+ <xsl:choose>
+ <xsl:when test="key('rel_graphic_name',@图:标识符)/@uof:xåæ ‡">
+ <xsl:value-of select="key('rel_graphic_name',@图:标识符)/@uof:xåæ ‡"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="number(0)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="this-group-y">
+ <xsl:choose>
+ <xsl:when test="key('rel_graphic_name',@图:标识符)/@uof:yåæ ‡">
+ <xsl:value-of select="key('rel_graphic_name',@图:标识符)/@uof:yåæ ‡"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="number(0)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="group-x">
+ <xsl:value-of select="number($groupx + $this-group-x)"/>
+ </xsl:variable>
+ <xsl:variable name="group-y">
+ <xsl:value-of select="number($groupy + $this-group-y)"/>
+ </xsl:variable>
+ <xsl:call-template name="组åˆå›¾å½¢">
+ <xsl:with-param name="zuheliebiao" select="@图:组åˆåˆ—表"/>
+ <xsl:with-param name="groupx1" select="$group-x"/>
+ <xsl:with-param name="groupy1" select="$group-y"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="common">
+ <xsl:param name="groupx"/>
+ <xsl:param name="groupy"/>
+ <xsl:variable name="tuxing">
+ <xsl:value-of select="@图:标识符"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="key('rel_graphic_name',@图:标识符)/@uof:xåæ ‡">
+ <xsl:for-each select="key('rel_graphic_name',@图:标识符)">
+ <xsl:if test="@uof:xåæ ‡">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@uof:yåæ ‡">
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="tuxing1" select="@uof:图形引用"/>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(@uof:高度,$uofUnit)"/></xsl:attribute>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="zuheweizhi-x">
+ <xsl:value-of select="图:组åˆä½ç½®/@图:xåæ ‡"/>
+ </xsl:variable>
+ <xsl:variable name="zuheweizhi-y">
+ <xsl:value-of select="图:组åˆä½ç½®/@图:yåæ ‡"/>
+ </xsl:variable>
+ <xsl:attribute name="text:anchor-type">paragraph</xsl:attribute>
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(($groupx + $zuheweizhi-x),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(($groupy + $zuheweizhi-y),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(图:预定义图形/图:属性/图:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(图:预定义图形/图:属性 /图:高度,$uofUnit)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="rotate-angle">
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="图:文本内容/字:文字表"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="组åˆå›¾å½¢">
+ <xsl:param name="zuheliebiao"/>
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:variable name="x">
+ <xsl:value-of select="$groupx1"/>
+ </xsl:variable>
+ <xsl:variable name="y">
+ <xsl:value-of select="$groupy1"/>
+ </xsl:variable>
+ <xsl:variable name="first-pictures">
+ <xsl:value-of select="substring-before($zuheliebiao,',')"/>
+ </xsl:variable>
+ <xsl:variable name="other-pictures">
+ <xsl:value-of select="substring-after($zuheliebiao,',')"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($other-pictures,',')">
+ <xsl:call-template name="graph">
+ <xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $first-pictures]"/>
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ <xsl:call-template name="组åˆå›¾å½¢">
+ <xsl:with-param name="zuheliebiao" select="$other-pictures"/>
+ <xsl:with-param name="groupx1" select="$x"/>
+ <xsl:with-param name="groupy1" select="$y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="graph">
+ <xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $first-pictures]"/>
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ <xsl:call-template name="graph">
+ <xsl:with-param name="id" select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $other-pictures]"/>
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="Curve">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:path">
+ <xsl:variable name="width" select="number(图:预定义图形/图:属性/图:宽度)*1000"/>
+ <xsl:variable name="height" select="number(图:预定义图形/图:属性/图:高度)*1000"/>
+ <xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
+ <xsl:attribute name="svg:d"><xsl:value-of select="图:预定义图形/图:关键点åæ ‡/@图:路径"/></xsl:attribute>
+ <xsl:call-template name="common">
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Freeform">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:polygon">
+ <xsl:variable name="width" select="number(图:预定义图形/图:属性/图:宽度)*1000"/>
+ <xsl:variable name="height" select="number(图:预定义图形/图:属性/图:高度)*1000"/>
+ <xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
+ <xsl:attribute name="draw:points"><xsl:call-template name="drawpoints"><xsl:with-param name="points" select="图:预定义图形/图:关键点åæ ‡/@图:路径"/><xsl:with-param name="value"/></xsl:call-template></xsl:attribute>
+ <xsl:call-template name="common">
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Scribble">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:polyline">
+ <xsl:variable name="width" select="number(图:预定义图形/图:属性/图:宽度)*1000"/>
+ <xsl:variable name="height" select="number(图:预定义图形/图:属性/图:高度)*1000"/>
+ <xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
+ <xsl:attribute name="draw:points"><xsl:call-template name="drawpoints"><xsl:with-param name="points" select="图:预定义图形/图:关键点åæ ‡/@图:路径"/><xsl:with-param name="value"/></xsl:call-template></xsl:attribute>
+ <xsl:call-template name="common">
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="drawpoints">
+ <xsl:param name="points"/>
+ <xsl:param name="value"/>
+ <xsl:variable name="frist-piont">
+ <xsl:value-of select="substring-before($points,'lineto')"/>
+ </xsl:variable>
+ <xsl:variable name="other-points">
+ <xsl:value-of select="substring-after($points,'lineto')"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($other-points,'lineto')">
+ <xsl:variable name="x-coor">
+ <xsl:value-of select="substring-before($frist-piont,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:variable name="y-coor">
+ <xsl:value-of select="substring-after($frist-piont,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:variable name="all-points">
+ <xsl:value-of select="concat($value,$x-coor,',',$y-coor,' ')"/>
+ </xsl:variable>
+ <xsl:call-template name="drawpoints">
+ <xsl:with-param name="points" select="$other-points"/>
+ <xsl:with-param name="value" select="$all-points"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="q-x-coor">
+ <xsl:value-of select="substring-before($frist-piont,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:variable name="q-y-coor">
+ <xsl:value-of select="substring-after($frist-piont,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:variable name="e-x-coor">
+ <xsl:value-of select="substring-before($other-points,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:variable name="e-y-coor">
+ <xsl:value-of select="substring-after($other-points,' ') * 1000"/>
+ </xsl:variable>
+ <xsl:value-of select="concat($value,$q-x-coor,',',$q-y-coor,' ',$e-x-coor,',',$e-y-coor)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="Oval">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:ellipse">
+ <xsl:call-template name="common">
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Rectangle">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:rect">
+ <xsl:call-template name="common">
+ <xsl:with-param name="groupx" select="$groupx1"/>
+ <xsl:with-param name="groupy" select="$groupy1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Line">
+ <xsl:param name="groupx1"/>
+ <xsl:param name="groupy1"/>
+ <xsl:element name="draw:line">
+ <xsl:variable name="tuxing1" select="@图:标识符"/>
+ <xsl:choose>
+ <xsl:when test="key('rel_graphic_name',@图:标识符)">
+ <xsl:for-each select="key('rel_graphic_name',@图:标识符)">
+ <xsl:attribute name="svg:x1"><xsl:value-of select="concat(@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y1"><xsl:value-of select="concat(@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:x2"><xsl:value-of select="concat((number(@uof:xåæ ‡) + number(@uof:宽度)),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y2"><xsl:value-of select="concat((number(@uof:yåæ ‡) + number(@uof:高度)),$uofUnit)"/></xsl:attribute>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="zuheweizhi-x">
+ <xsl:value-of select="图:组åˆä½ç½®/@图:xåæ ‡"/>
+ </xsl:variable>
+ <xsl:variable name="zuheweizhi-y">
+ <xsl:value-of select="图:组åˆä½ç½®/@图:yåæ ‡"/>
+ </xsl:variable>
+ <xsl:variable name="hex">
+ <xsl:value-of select="concat(number($groupx1 + $zuheweizhi-x),$uofUnit)"/>
+ </xsl:variable>
+ <xsl:variable name="hey">
+ <xsl:value-of select="concat(number($groupy1 + $zuheweizhi-y),$uofUnit)"/>
+ </xsl:variable>
+ <xsl:attribute name="svg:x1"><xsl:value-of select="$hex"/></xsl:attribute>
+ <xsl:attribute name="svg:y1"><xsl:value-of select="$hey"/></xsl:attribute>
+ <xsl:attribute name="svg:x2"><xsl:value-of select="concat(($hex + 图:预定义图形/图:属性/图:宽度),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y2"><xsl:value-of select="concat(($hey + 图:预定义图形/图:属性/图:高度),$uofUnit)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="text:anchor-type">paragraph</xsl:attribute>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="$tuxing1"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="rotate-angle">
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="图:文本内容/字:文字表"/>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <!--Redoffice comment liliang end 06.02.15-->
+ <xsl:template match="表:å•å…ƒæ ¼" mode="skip">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="col-pos-max"/>
+ <xsl:param name="col-pos-before"/>
+ <xsl:param name="row-pos"/>
+ <xsl:variable name="next-cell" select="following-sibling::表:å•å…ƒæ ¼[1]"/>
+ <xsl:variable name="cell-is-repeatable" select="not($next-cell/*) and not($next-cell/text()) and (@表:å¼æ ·å¼•ç”¨ = $next-cell/@表:å¼æ ·å¼•ç”¨) and not($next-cell/@表:列å·)"/>
+ <xsl:choose>
+ <xsl:when test="$cell-is-repeatable">
+ <xsl:apply-templates select="$next-cell" mode="skip">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-before" select="$col-pos-before + 1"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$next-cell">
+ <xsl:apply-templates select="$next-cell" mode="selected">
+ <xsl:with-param name="row-pos" select="$row-pos"/>
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="col-pos-max" select="$col-pos-max"/>
+ <xsl:with-param name="col-pos-before" select="$col-pos-before +1"/>
+ </xsl:apply-templates>
+ <!--chengxz0925 no otherwise ,some content cells missed -->
+ </xsl:if>
+ <!--chengxz 060418 add if sentence-->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--xsl:template name="create-table-cell-attributes"></xsl:template>
+<xsl:template name="create-table-cell-content"></xsl:template>
+<xsl:template name="create-data-content"></xsl:template>
+<xsl:template name="get-condition-dependent-cell-attributes"></xsl:template-->
+ <xsl:template name="create-table-cell-attributes">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="col-pos-max"/>
+ <xsl:param name="col-pos"/>
+ <xsl:param name="row-pos"/>
+ <xsl:choose>
+ <xsl:when test="$condition-pos-str">
+ <xsl:call-template name="get-condition-dependent-cell-attributes">
+ <xsl:with-param name="condition-pos-str" select="$condition-pos-str"/>
+ <xsl:with-param name="current-pos-str" select="concat('R',$row-pos,'C',$col-pos,',')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name"><xsl:choose><xsl:when test="@表:å¼æ ·å¼•ç”¨"><xsl:value-of select="@表:å¼æ ·å¼•ç”¨"/></xsl:when><xsl:when test="../@表:å¼æ ·å¼•ç”¨ and ../@表:å¼æ ·å¼•ç”¨ != ''"><xsl:value-of select="../@表:å¼æ ·å¼•ç”¨"/></xsl:when><xsl:otherwise><xsl:value-of select="'Default'"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <!--chengxiuzhi-->
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@表:åˆå¹¶åˆ—æ•° or @表:åˆå¹¶è¡Œæ•°">
+ <xsl:choose>
+ <xsl:when test="@表:åˆå¹¶åˆ—æ•°">
+ <xsl:attribute name="table:number-columns-spanned"><xsl:value-of select="@表:åˆå¹¶åˆ—æ•° + 1"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:number-columns-spanned">1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@表:åˆå¹¶è¡Œæ•°">
+ <xsl:attribute name="table:number-rows-spanned"><xsl:value-of select="@表:åˆå¹¶è¡Œæ•°+1"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:number-rows-spanned">1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="表:æ•°æ®">
+ <xsl:if test="表:æ•°æ®/表:å…¬å¼">
+ <xsl:variable name="calc-formula">
+ <xsl:call-template name="translate-expression">
+ <xsl:with-param name="cell-row-pos" select="$row-pos"/>
+ <xsl:with-param name="cell-column-pos" select="$col-pos"/>
+ <xsl:with-param name="expression" select="表:æ•°æ®/表:å…¬å¼"/>
+ <xsl:with-param name="return-value" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="table:formula"><xsl:value-of select="$calc-formula"/></xsl:attribute>
+ </xsl:if>
+ <!--RedOffice Comment from Zengjh:UOF0020 2006-04-17 Based on Original-->
+ <xsl:variable name="table-stylename" select="@表:å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="data-format">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å•å…ƒæ ¼å¼æ ·">
+ <xsl:if test="$table-stylename = ./@ 表:标识符">
+ <xsl:value-of select="表:æ•°å­—æ ¼å¼/@表:分类å称"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="data-formatcode">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å•å…ƒæ ¼å¼æ ·">
+ <xsl:if test="$table-stylename= ./@表:标识符">
+ <xsl:value-of select="表:æ•°å­—æ ¼å¼/@表:æ ¼å¼ç "/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="表:æ•°æ®/@表:æ•°æ®ç±»åž‹ = 'number'">
+ <xsl:choose>
+ <xsl:when test="$data-format = 'percentage' or contains( $data-formatcode, '%')">
+ <xsl:attribute name="office:value-type">percentage</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains($data-format, 'currency')">
+ <xsl:attribute name="office:value-type">currency</xsl:attribute>
+ <xsl:attribute name="office:currency">CNY</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="office:value-type">float</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="office:value"><xsl:choose><xsl:when test="表:æ•°æ®/@表:æ•°æ®æ•°å€¼"><xsl:value-of select="表:æ•°æ®/@表:æ•°æ®æ•°å€¼"/></xsl:when><xsl:otherwise><xsl:value-of select="表:æ•°æ®/å­—:å¥/å­—:文本串"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:æ•°æ®/@表:æ•°æ®ç±»åž‹ = 'date'">
+ <xsl:attribute name="office:value-type">date</xsl:attribute>
+ <xsl:attribute name="office:date-value"><xsl:value-of select="表:æ•°æ®/@表:æ•°æ®æ•°å€¼"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:æ•°æ®/@表:æ•°æ®ç±»åž‹ = 'time'">
+ <xsl:attribute name="office:value-type">time</xsl:attribute>
+ <xsl:attribute name="office:time-value"><xsl:value-of select="表:æ•°æ®/@表:æ•°æ®æ•°å€¼"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:æ•°æ®/@表:æ•°æ®ç±»åž‹ = 'boolean'">
+ <xsl:attribute name="office:value-type">boolean</xsl:attribute>
+ <xsl:attribute name="office:boolean-value"><xsl:choose><xsl:when test="表:æ•°æ®/å­—:å¥/å­—:文本串 = '1'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="表:æ•°æ®/@表:æ•°æ®ç±»åž‹ = 'text'">
+ <xsl:attribute name="office:value-type">string</xsl:attribute>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="表:æ•°æ®/@表:æ•°æ®æ•°å€¼"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <!-- zhangying ok and /uof:UOF/uof:电å­è¡¨æ ¼/表:公共处ç†è§„则/表:æ•°æ®æœ‰æ•ˆæ€§é›†-->
+ <xsl:if test="表:æ•°æ®">
+ <xsl:variable name="validation-name">
+ <xsl:call-template name="zyvalidationtest">
+ <xsl:with-param name="column-num" select="$col-pos"/>
+ <xsl:with-param name="row-num" select="$row-pos"/>
+ <xsl:with-param name="table-name" select="ancestor::表:工作表/@表:å称"/>
+ <xsl:with-param name="validation-set" select="/uof:UOF/uof:电å­è¡¨æ ¼/表:公用处ç†è§„则/表:æ•°æ®æœ‰æ•ˆæ€§é›†/表:æ•°æ®æœ‰æ•ˆæ€§"/>
+ <xsl:with-param name="validation-num" select="'1'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$validation-name!=''">
+ <xsl:attribute name="table:content-validation-name"><xsl:value-of select="$validation-name"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <!-- zhangying mod end -->
+ </xsl:template>
+ <!-- zhangying o -->
+ <xsl:template name="zyvalidationtest">
+ <xsl:param name="row-num"/>
+ <xsl:param name="column-num"/>
+ <xsl:param name="table-name"/>
+ <xsl:param name="validation-set"/>
+ <xsl:param name="validation-num"/>
+ <xsl:if test="$validation-set">
+ <xsl:variable name="zone" select="$validation-set/表:区域/text()"/>
+ <xsl:variable name="success">
+ <xsl:choose>
+ <xsl:when test="$table-name=substring-after(substring-before($zone,'.'),'$')">
+ <xsl:variable name="validation-row-left-top" select="substring-before(substring-after(substring-after(substring-after($zone,'$'),'$'),'$'),':')"/>
+ <xsl:variable name="validation-row-right-bottom" select="substring-after(substring-after(substring-after($zone,':$'),'$'),'$')"/>
+ <xsl:choose>
+ <xsl:when test="($row-num &gt;= $validation-row-left-top and $row-num &lt;= $validation-row-right-bottom) or $validation-row-left-top=$validation-row-right-bottom">
+ <xsl:variable name="validation-column-left-top">
+ <xsl:call-template name="translate-column-char-to-number">
+ <xsl:with-param name="string" select="substring-before(substring-after(substring-after($zone,'$'),'$'),'$')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="validation-column-right-bottom">
+ <xsl:call-template name="translate-column-char-to-number">
+ <xsl:with-param name="string" select="substring-before(substring-after(substring-after($zone,':$'),'$'),'$')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="($column-num &gt;= $validation-column-left-top) and ($column-num &lt;= $validation-column-right-bottom)">yes</xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$success='yes'">
+ <xsl:value-of select="concat('val',$validation-num)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="zyvalidationtest">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="row-num" select="$row-num"/>
+ <xsl:with-param name="column-num" select="$column-num"/>
+ <xsl:with-param name="validation-set" select="$validation-set[position()!=1]"/>
+ <xsl:with-param name="validation-num" select="$validation-num + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <!--zhangying mod end -->
+ <xsl:template name="create-table-cell-content">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="col-pos-max"/>
+ <xsl:param name="col-pos"/>
+ <xsl:param name="row-pos"/>
+ <!--Redoffice comment liliang SC0011 06.02.15 -->
+ <!--新增内容-->
+ <xsl:apply-templates select="uof:锚点"/>
+ <!--Redoffice comment liliang end 06.02.15 -->
+ <xsl:apply-templates select="表:批注" mode="body"/>
+ <!--RedOffice Comment from Zengjh:UOF0020 2006-04-26 charts-->
+ <xsl:apply-templates select="表:图表"/>
+ <xsl:if test="表:æ•°æ®/å­—:å¥">
+ <text:p>
+ <xsl:call-template name="create-data-content">
+ <xsl:with-param name="style-id" select="../../@表:å¼æ ·å¼•ç”¨"/>
+ </xsl:call-template>
+ </text:p>
+ </xsl:if>
+ <!--chengxz0701多个å¥ä¸èƒ½è¯»å…¥-->
+ </xsl:template>
+ <xsl:template name="create-data-content">
+ <xsl:param name="style-id" select="@表:å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="html-children" select="表:å¼æ ·å¼•ç”¨/descendant-or-self::*[namespace-uri()='http://www.w3.org/TR/REC-html40'][string-length(text()) != 0]"/>
+ <xsl:choose>
+ <xsl:when test="$html-children and $html-children != ''">
+ <xsl:for-each select="$html-children">
+ <text:span text:style-name="{concat($style-id, 'T', count(preceding::表:æ•°æ®/å­—:å¥/å­—:文本串[child::html:*]), '_', position())}">
+ <xsl:copy-of select="text()"/>
+ </text:span>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="@表:超链接引用">
+ <text:a xlink:href="{@表:超链接引用}">
+ <xsl:value-of select="表:æ•°æ®/å­—:å¥/å­—:文本串"/>
+ </text:a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="表:æ•°æ®/å­—:å¥">
+ <xsl:choose>
+ <xsl:when test="name(descendant::*[1])='å­—:å¥å±žæ€§'">
+ <text:span>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="descendant::*[1]/@å­—:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ <xsl:value-of select="./字:文本串"/>
+ </text:span>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./字:文本串"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="create-comment-data-content">
+ <xsl:param name="style-id" select="@表:å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="html-children" select="表:å¼æ ·å¼•ç”¨/descendant-or-self::*[namespace-uri()='http://www.w3.org/TR/REC-html40'][string-length(text()) != 0]"/>
+ <xsl:choose>
+ <xsl:when test="$html-children and $html-children != ''">
+ <xsl:for-each select="$html-children">
+ <text:span text:style-name="{concat($style-id, 'T', count(preceding::图:文本内容/å­—:段è½/å­—:å¥/å­—:文本串[child::html:*]), '_', position())}">
+ <xsl:copy-of select="text()"/>
+ </text:span>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:when test="@表:超链接引用">
+ <text:a xlink:href="{@表:超链接引用}">
+ <xsl:value-of select="图:文本内容/å­—:段è½/å­—:å¥/å­—:文本串"/>
+ </text:a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="图:文本内容/å­—:段è½/å­—:å¥/å­—:文本串"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-condition-dependent-cell-attributes">
+ <xsl:param name="condition-pos-str"/>
+ <xsl:param name="current-pos-str"/>
+ <xsl:variable name="temp-str">
+ <xsl:call-template name="condition-str">
+ <xsl:with-param name="param-str" select="substring-before($condition-pos-str,$current-pos-str)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="style-name">
+ <xsl:choose>
+ <xsl:when test="contains($condition-pos-str, $current-pos-str) and starts-with($temp-str, 'c')">
+ <xsl:value-of select="concat('ce', substring-after($temp-str, 'c'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="@表:å¼æ ·å¼•ç”¨">
+ <xsl:value-of select="@表:å¼æ ·å¼•ç”¨"/>
+ </xsl:when>
+ <xsl:when test="../@表:å¼æ ·å¼•ç”¨">
+ <xsl:value-of select="../@表:å¼æ ·å¼•ç”¨"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'Default'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="not( contains($style-name, 'Default'))">
+ <xsl:choose>
+ <xsl:when test="starts-with($style-name, 'val')">
+ <xsl:attribute name="table:content-validation-name"><xsl:value-of select="$style-name"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="$style-name"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="contains($style-name, 'Default')">
+ <xsl:variable name="style-nametemp">
+ <xsl:choose>
+ <xsl:when test="@表:å¼æ ·å¼•ç”¨">
+ <xsl:value-of select="@表:å¼æ ·å¼•ç”¨"/>
+ </xsl:when>
+ <xsl:when test="../@表:å¼æ ·å¼•ç”¨">
+ <xsl:value-of select="../@表:å¼æ ·å¼•ç”¨"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'Default'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="$style-nametemp"/></xsl:attribute>
+ <!--xsl:attribute name="style:data-style-name"><xsl:value-of select="N104" /></xsl:attribute-->
+ </xsl:if>
+ <!--chengxz-->
+ <xsl:if test="contains($condition-pos-str, $current-pos-str)">
+ <xsl:choose>
+ <xsl:when test="starts-with($temp-str, 'v')">
+ <xsl:attribute name="table:content-validation-name"><xsl:value-of select="concat('val', substring-after($temp-str, 'v'))"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="after-str" select="substring-after($condition-pos-str, $current-pos-str)"/>
+ <xsl:if test="contains( $after-str, $current-pos-str)">
+ <xsl:variable name="temp-str-2">
+ <xsl:call-template name="condition-str">
+ <xsl:with-param name="param-str" select="substring-before( $after-str,$current-pos-str)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="starts-with( $temp-str-2, 'v')">
+ <xsl:attribute name="table:content-validation-name"><xsl:value-of select="concat('val', substring-after($temp-str-2, 'v'))"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="表:工作表内容">
+ <xsl:variable name="default-column-width">
+ <xsl:choose>
+ <xsl:when test="@表:缺çœåˆ—宽">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(@表:缺çœåˆ—宽,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>2.096cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="table-pos">
+ <xsl:value-of select="count(../preceding-sibling::表:工作表)+1"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="表:列">
+ <xsl:call-template name="get-column-style-name">
+ <xsl:with-param name="finishedColumns" select="0"/>
+ <xsl:with-param name="columnCount" select="count(./表:列)"/>
+ <xsl:with-param name="currentCount" select="1"/>
+ <xsl:with-param name="table-pos" select="$table-pos"/>
+ <xsl:with-param name="default-column-width" select="$default-column-width"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="../表:分页符集/表:分页符[@表:列å·]">
+ <style:style style:name="{concat('cob',$table-pos)}" style:family="table-column">
+ <xsl:element name="style:table-column-properties">
+ <xsl:attribute name="style:column-width"><xsl:value-of select="$default-column-width"/></xsl:attribute>
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:element>
+ </style:style>
+ </xsl:if>
+ <xsl:variable name="default-row-height">
+ <xsl:choose>
+ <xsl:when test="@表:缺çœè¡Œé«˜">
+ <xsl:call-template name="convert2cm">
+ <xsl:with-param name="value" select="concat(@表:缺çœè¡Œé«˜,'pt')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>0.503cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <style:style style:family="table-row" style:name="{concat('ro', $table-pos)}">
+ <style:table-row-properties style:row-height="{$default-row-height}" style:use-optimal-row-height="false"/>
+ </style:style>
+ <xsl:if test="表:行">
+ <xsl:call-template name="get-row-style-name">
+ <xsl:with-param name="lastrowpos" select="0"/>
+ <xsl:with-param name="row-count" select="count(./表:行)"/>
+ <xsl:with-param name="currentRow" select="1"/>
+ <xsl:with-param name="table-pos" select="$table-pos"/>
+ <xsl:with-param name="default-row-height" select="$default-row-height"/>
+ </xsl:call-template>
+ </xsl:if>
+ <!--RedOffice Comment from Zengjh:UOF0020 2006-06-11 charts-->
+ <xsl:for-each select="//表:图表">
+ <xsl:variable name="chart-current">
+ <xsl:number level="any" count="表:图表" format="1"/>
+ </xsl:variable>
+ <style:style style:family="graphics" style:name="{concat('chart', $chart-current)}">
+ <style:graphic-properties>
+ <xsl:choose>
+ <xsl:when test="@表:éšåŠ¨æ–¹å¼='none'">
+ <xsl:attribute name="draw:move-protect">true</xsl:attribute>
+ <xsl:attribute name="draw:size-protect">true</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@表:éšåŠ¨æ–¹å¼='move'">
+ <xsl:attribute name="draw:size-protect">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </style:graphic-properties>
+ </style:style>
+ </xsl:for-each>
+ <!--RedOffice comment (Zengjh) end charts-->
+ <xsl:if test="../表:分页符集/表:分页符[@è¡Œå·]">
+ <style:style style:name="{concat('rob',$table-pos)}" style:family="table-row">
+ <xsl:element name="style:table-row-properties">
+ <xsl:attribute name="style:row-height"><xsl:value-of select="$default-row-height"/></xsl:attribute>
+ <xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:element>
+ </style:style>
+ </xsl:if>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="concat( 'ta', $table-pos)"/></xsl:attribute>
+ <xsl:attribute name="style:family">table</xsl:attribute>
+ <xsl:attribute name="style:master-page-name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat( 'TAB_',../@表:å称)"/></xsl:call-template></xsl:attribute>
+ <xsl:element name="style:properties">
+ <xsl:choose>
+ <xsl:when test="../@表:éšè— = 'true'">
+ <xsl:attribute name="table:display">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:display">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="get-column-style-name">
+ <xsl:param name="finishedColumns"/>
+ <xsl:param name="columnCount"/>
+ <xsl:param name="currentCount"/>
+ <xsl:param name="table-pos"/>
+ <xsl:param name="default-column-width"/>
+ <xsl:if test="$currentCount &lt; ($columnCount + 1)">
+ <xsl:variable name="span-value">
+ <xsl:choose>
+ <xsl:when test="./表:列[position() = $currentCount]/@表:跨度">
+ <xsl:value-of select="./表:跨度[position() = $currentCount]/@表:跨度 + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="current-index">
+ <xsl:choose>
+ <xsl:when test="./表:列[position() = $currentCount]/@表:列å·">
+ <xsl:value-of select="./表:列[position() = $currentCount]/@表:åˆ—å· - 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$finishedColumns"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="column-break">
+ <xsl:choose>
+ <xsl:when test="$span-value = 0">
+ <xsl:if test="../表:分页符集/表:分页符/表:列 = $current-index">
+ <xsl:value-of select="1"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="../表:分页符集/表:分页符[(@表:åˆ—å· &gt; $finishedColumns) and (@表:åˆ—å· &lt; ($finishedColumns + $span-value))]">
+ <xsl:value-of select="1"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$column-break = 1">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat('cob', $table-pos, '-',$currentCount)"/></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="style:family">table-column</xsl:attribute>
+ <xsl:element name="style:table-column-properties">
+ <xsl:choose>
+ <xsl:when test="./表:列[position() = $currentCount]/@表:列宽">
+ <xsl:attribute name="style:column-width"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(./表:列[position() = $currentCount]/@表:列宽,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:column-width"><xsl:value-of select="$default-column-width"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="./表:列[position() = $currentCount]/@表:列宽 &gt; 0">
+ <xsl:attribute name="style:use-optimal-column-width">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:use-optimal-column-width">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ <style:style style:name="{concat('co', $table-pos, '-',$currentCount)}" style:family="table-column">
+ <xsl:element name="style:table-column-properties">
+ <xsl:choose>
+ <xsl:when test="./表:列[position() = $currentCount]/@表:列宽">
+ <xsl:attribute name="style:column-width"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(./表:列[position() = $currentCount]/@表:列宽,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:column-width"><xsl:value-of select="$default-column-width"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:break-before">auto</xsl:attribute>
+ </xsl:element>
+ </style:style>
+ <xsl:if test="$currentCount &lt; $columnCount">
+ <xsl:call-template name="get-column-style-name">
+ <xsl:with-param name="finishedColumns">
+ <xsl:choose>
+ <xsl:when test="./表:列[position() = $currentCount]/@表:列å·">
+ <xsl:choose>
+ <xsl:when test="./表:列[position() = $currentCount]/@表:跨度">
+ <xsl:value-of select="./表:列[position() = $currentCount]/@表:列宽 + ./表:列[position() = $currentCount]/@表:跨度"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./表:列[position() = $currentCount]/@表:列å·"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./表:列[position() = $currentCount]/@表:跨度">
+ <xsl:value-of select="$finishedColumns + ./表:列[position() = $currentCount]/@表:跨度 + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$finishedColumns + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="columnCount" select="$columnCount"/>
+ <xsl:with-param name="currentCount" select="$currentCount + 1"/>
+ <xsl:with-param name="table-pos" select="$table-pos"/>
+ <xsl:with-param name="default-column-width" select="$default-column-width"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="get-row-style-name">
+ <xsl:param name="lastrowpos"/>
+ <xsl:param name="row-count"/>
+ <xsl:param name="currentRow"/>
+ <xsl:param name="table-pos"/>
+ <xsl:param name="default-row-height"/>
+ <xsl:if test="$currentRow &lt; ($row-count + 1)">
+ <xsl:variable name="span-value">
+ <xsl:choose>
+ <xsl:when test="./表:è¡Œ[position() = $currentRow]/@表:è¡Œå·">
+ <xsl:choose>
+ <xsl:when test="./表:行[position() = $currentRow]/@表:跨度">
+ <xsl:value-of select="./表:è¡Œ[position() = $currentRow]/@表:è¡Œå· - $lastrowpos+ ./表:è¡Œ[position() = $currentRow]/@表:跨度"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./表:行[position() = $currentRow]/@表:跨度">
+ <xsl:value-of select="./表:行[position() = $currentRow]/@表:跨度 + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="current-index">
+ <xsl:choose>
+ <xsl:when test="./表:è¡Œ[position() = $currentRow]/@表:è¡Œå·">
+ <xsl:value-of select="./表:è¡Œ[position() = $currentRow]/@表:è¡Œå· - 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lastrowpos"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="row-break">
+ <xsl:choose>
+ <xsl:when test="$span-value = 0">
+ <xsl:if test="../表:分页符集/表:分页符/@表:è¡Œå· = $current-index">
+ <xsl:value-of select="1"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="../表:分页符集/表:分页符[(@表:è¡Œå· &gt; $lastrowpos) and (@表:è¡Œå· &lt; ($lastrowpos + $span-value))]">
+ <xsl:value-of select="1"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$row-break = 1">
+ <style:style style:name="{concat('rob', $table-pos, '-',$currentRow)}" style:family="table-row">
+ <xsl:element name="style:table-row-properties">
+ <xsl:choose>
+ <xsl:when test="./表:行[position() = $currentRow]/@表:行高">
+ <xsl:attribute name="style:row-height"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(./表:行[position() = $currentRow]/@表:行高,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:row-height"><xsl:value-of select="$default-row-height"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="./表:行[position() = $currentRow]/@表:行高 &gt; 0">
+ <xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:use-optimal-row-height">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:element>
+ </style:style>
+ </xsl:if>
+ <style:style style:name="{concat('ro', $table-pos, '-',$currentRow)}" style:family="table-row">
+ <xsl:element name="style:table-row-properties">
+ <xsl:choose>
+ <xsl:when test="./表:行[position() = $currentRow]/@表:行高">
+ <xsl:attribute name="style:row-height"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(./表:行[position() = $currentRow]/@表:行高,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:row-height"><xsl:value-of select="$default-row-height"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="style:use-optimal-row-height">true</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="./表:行[position() = $currentRow]/@表:行高 &gt; 0">
+ <xsl:attribute name="style:use-optimal-row-height">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:use-optimal-row-height">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:break-before">auto</xsl:attribute>
+ </xsl:element>
+ </style:style>
+ <xsl:if test="$currentRow &lt; $row-count">
+ <xsl:call-template name="get-row-style-name">
+ <xsl:with-param name="lastrowpos">
+ <xsl:choose>
+ <xsl:when test="./表:è¡Œ[position() = $currentRow]/@表:è¡Œå·">
+ <xsl:choose>
+ <xsl:when test="./表:行[position() = $currentRow]/@表:跨度">
+ <xsl:value-of select="./表:è¡Œ[position() = $currentRow]/@表:è¡Œå· + ./表:è¡Œ[position() = $currentRow]/@表:跨度"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="./表:è¡Œ[position() = $currentRow]/@表:è¡Œå·"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="./表:行[position() = $currentRow]/@表:跨度">
+ <xsl:value-of select="$lastrowpos + ./表:行[position() = $currentRow]/@表:跨度 + 1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$lastrowpos + 1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="row-count" select="$row-count"/>
+ <xsl:with-param name="currentRow" select="$currentRow + 1"/>
+ <xsl:with-param name="table-pos" select="$table-pos"/>
+ <xsl:with-param name="default-row-height" select="$default-row-height"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="encode-as-nc-name">
+ <xsl:param name="string"/>
+ <xsl:value-of select="translate($string, '. %()/\+', '')"/>
+ </xsl:template>
+ <xsl:key match="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:è¡Œ/表:å•å…ƒæ ¼" name="cells" use="@表:å¼æ ·å¼•ç”¨"/>
+ <xsl:template match="表:æ•°å­—æ ¼å¼">
+ <xsl:variable name="unit-count" select="string-length(@表:æ ¼å¼ç ) - string-length(translate(@表:æ ¼å¼ç ,';','')) + 1"/>
+ <xsl:variable name="style-id" select="../@表:标识符"/>
+ <xsl:variable name="number-format-name">
+ <xsl:choose>
+ <xsl:when test="@表:分类å称='fraction' or @表:分类å称='scientific'">number</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@表:分类å称"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="process-number-format">
+ <xsl:with-param name="number-format-name" select="$number-format-name"/>
+ <xsl:with-param name="number-format-unit" select="@表:æ ¼å¼ç "/>
+ <xsl:with-param name="style-id" select="concat($style-id,'F')"/>
+ <xsl:with-param name="format-type" select="key('cells', $style-id)/表:æ•°æ®/@表:æ•°æ®ç±»åž‹"/>
+ <xsl:with-param name="total-unit" select="$unit-count"/>
+ <xsl:with-param name="current-unit" select="0"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template name="process-number-format">
+ <xsl:param name="number-format-name"/>
+ <xsl:param name="number-format-unit"/>
+ <xsl:param name="style-id"/>
+ <xsl:param name="format-type"/>
+ <xsl:param name="total-unit"/>
+ <xsl:param name="current-unit"/>
+ <xsl:choose>
+ <xsl:when test="$current-unit &lt; ($total-unit -1)">
+ <xsl:variable name="style-name">
+ <xsl:choose>
+ <xsl:when test="contains(substring-before($number-format-unit,';'),'[$')">currency</xsl:when>
+ <xsl:when test="contains(substring-before($number-format-unit,';'),'%')">percentage</xsl:when>
+ <xsl:otherwise>number</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="{concat('number:',$style-name,'-style')}">
+ <xsl:attribute name="style:name"><xsl:value-of select="concat( $style-id, 'P',$current-unit)"/></xsl:attribute>
+ <xsl:attribute name="style:volatile">true</xsl:attribute>
+ <xsl:call-template name="general-number">
+ <xsl:with-param name="number-format-unit" select="substring-before($number-format-unit,';')"/>
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:call-template name="process-number-format">
+ <xsl:with-param name="number-format-name" select="$number-format-name"/>
+ <xsl:with-param name="number-format-unit" select="substring-after($number-format-unit,';')"/>
+ <xsl:with-param name="style-id" select="$style-id"/>
+ <xsl:with-param name="format-type" select="$format-type"/>
+ <xsl:with-param name="total-unit" select="$total-unit"/>
+ <xsl:with-param name="current-unit" select="$current-unit +1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="{concat('number:',$number-format-name,'-style')}">
+ <xsl:attribute name="style:name"><xsl:value-of select="$style-id"/></xsl:attribute>
+ <xsl:call-template name="element-attribute">
+ <xsl:with-param name="number-format-unit" select="string($number-format-unit)"/>
+ </xsl:call-template>
+ <xsl:call-template name="general-number">
+ <xsl:with-param name="number-format-unit" select="string($number-format-unit)"/>
+ </xsl:call-template>
+ <xsl:call-template name="style-map">
+ <xsl:with-param name="number-format-name" select="@表:分类å称"/>
+ <xsl:with-param name="number-format-unit" select="@表:æ ¼å¼ç "/>
+ <xsl:with-param name="style-id" select="$style-id"/>
+ <xsl:with-param name="format-type" select="$format-type"/>
+ <xsl:with-param name="total-unit" select="$total-unit"/>
+ <xsl:with-param name="current-unit" select="0"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="style-map">
+ <xsl:param name="number-format-name"/>
+ <xsl:param name="number-format-unit"/>
+ <xsl:param name="style-id"/>
+ <xsl:param name="format-type"/>
+ <xsl:param name="total-unit"/>
+ <xsl:param name="current-unit"/>
+ <xsl:if test="$current-unit &lt; ($total-unit -1)">
+ <xsl:variable name="stylecondition" select="substring-after(substring-before($number-format-unit,']'),'[')"/>
+ <style:map style:condition="{$stylecondition}" style:apply-style-name="{concat( $style-id, 'P',$current-unit)}"/>
+ <xsl:call-template name="style-map">
+ <xsl:with-param name="number-format-name" select="$number-format-name"/>
+ <xsl:with-param name="number-format-unit" select="substring-after($number-format-unit,';')"/>
+ <xsl:with-param name="style-id" select="$style-id"/>
+ <xsl:with-param name="format-type" select="$format-type"/>
+ <xsl:with-param name="total-unit" select="$total-unit"/>
+ <xsl:with-param name="current-unit" select="$current-unit +1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="general-number">
+ <xsl:param name="number-format-unit"/>
+ <xsl:call-template name="number-format-color">
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ </xsl:call-template>
+ <xsl:call-template name="number-format-currency">
+ <xsl:with-param name="number-format-unit" select="$number-format-unit"/>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="starts-with($number-format-unit,'&quot;')">
+ <number:text>
+ <xsl:value-of select="substring-before(substring-after($number-format-unit,'&quot;'),'&quot;')"/>
+ </number:text>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'@')">
+ <number:text-content/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'-') or starts-with($number-format-unit,'$') or starts-with($number-format-unit,'ï¿¥')">
+ <number:text>
+ <xsl:value-of select="substring($number-format-unit,1,1)"/>
+ </number:text>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'YYYY')">
+ <number:year number:style="long"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'YY')">
+ <number:year number:style="rolong"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'MMMM')">
+ <number:month number:style="long" number:textual="true"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'MMM')">
+ <number:month number:style="rolong" number:textual="true"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'DD')">
+ <number:day number:style="long"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'D')">
+ <number:day number:style="rolong"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[HH]')">
+ <number:hours number:style="long"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'HH')">
+ <number:hours number:style="long"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'H')">
+ <number:hours/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'SS.00')">
+ <number:seconds number:style="long" number:decimal-places="2"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'SS')">
+ <number:seconds number:style="long"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'S')">
+ <number:seconds/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'AM/PM')">
+ <number:am-pm/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'NNNN')">
+ <number:day-of-week number:style="long"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'NNN')">
+ <number:day-of-week/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'QQ')">
+ <number:quarter number:style="long"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'Q')">
+ <number:quarter/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'WW')">
+ <number:week-of-year/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'MM')">
+ <xsl:choose>
+ <xsl:when test="starts-with(substring($number-format-unit,3),'S') or (starts-with(substring($number-format-unit,3),'&quot;') and starts-with(substring-after(substring-after($number-format-unit,'&quot;'),'&quot;'),'S'))">
+ <number:minutes number:style="long"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <number:month number:style="long"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'M')">
+ <xsl:choose>
+ <xsl:when test="starts-with(substring($number-format-unit,2),'S') or (starts-with(substring($number-format-unit,2),'&quot;') and starts-with(substring-after(substring-after($number-format-unit,'&quot;'),'&quot;'),'S'))">
+ <number:minutes/>
+ </xsl:when>
+ <xsl:otherwise>
+ <number:month/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'#') or starts-with($number-format-unit,'0')">
+ <xsl:variable name="digits-part">
+ <xsl:choose>
+ <xsl:when test="contains($number-format-unit,'&quot;')">
+ <xsl:value-of select="substring-before($number-format-unit,'&quot;')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$number-format-unit"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="decimal-integer-exponent-fraction">
+ <xsl:with-param name="digits-part" select="$digits-part"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:variable name="unit-length">
+ <xsl:choose>
+ <xsl:when test="starts-with($number-format-unit,'[value()')">
+ <xsl:value-of select="string-length(substring-before($number-format-unit,']')) +2"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[NatNum')">
+ <xsl:value-of select="string-length(substring-before($number-format-unit,']')) +2"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$-804]')">8</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'&quot;')">
+ <xsl:value-of select="string-length(substring-before(substring-after($number-format-unit,'&quot;'),'&quot;')) +3"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'@')">2</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'-') or starts-with($number-format-unit,'$') or starts-with($number-format-unit,'ï¿¥')">2</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'YYYY')">5</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'YY')">3</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'MMMM')">5</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'MMM')">4</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'MM')">3</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'M')">2</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'DD')">3</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'D')">2</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[HH]')">5</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'HH')">3</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'H')">2</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'SS.00')">6</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'SS')">3</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'S')">2</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'AM/PM')">6</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'NNNN')">5</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'NNN')">4</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'QQ')">3</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'Q')">2</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'WW')">3</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'#') or starts-with($number-format-unit,'0')">
+ <xsl:choose>
+ <xsl:when test="contains($number-format-unit,'&quot;')">
+ <xsl:value-of select="string-length(substring-before($number-format-unit,'&quot;')) +1"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="string-length($number-format-unit) +1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$unit-length &gt;1 and $unit-length &lt;=string-length($number-format-unit)">
+ <xsl:call-template name="general-number">
+ <xsl:with-param name="number-format-unit" select="substring($number-format-unit,$unit-length)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="decimal-integer-exponent-fraction">
+ <xsl:param name="digits-part"/>
+ <xsl:variable name="decimal-digits">
+ <xsl:choose>
+ <xsl:when test="contains($digits-part,'.')">
+ <xsl:choose>
+ <xsl:when test="contains($digits-part,' ')">
+ <xsl:value-of select="string-length(substring-before(substring-after($digits-part,'.'),' '))"/>
+ </xsl:when>
+ <xsl:when test="contains(substring-after($digits-part,'.'),',')">
+ <xsl:value-of select="string-length(substring-before(substring-after($digits-part,'.'),','))"/>
+ </xsl:when>
+ <xsl:when test="contains($digits-part,'E')">
+ <xsl:value-of select="string-length(substring-before(substring-after($digits-part,'.'),'E'))"/>
+ </xsl:when>
+ <xsl:when test="contains($digits-part,'e')">
+ <xsl:value-of select="string-length(substring-before(substring-after($digits-part,'.'),'e'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="string-length(substring-after($digits-part,'.'))"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="decimal-replacement">
+ <xsl:choose>
+ <xsl:when test="contains($digits-part,'.')">
+ <xsl:choose>
+ <xsl:when test="contains($digits-part,' ') and contains(substring-before(substring-after($digits-part,'.'),' '),'#')">true</xsl:when>
+ <xsl:when test="contains($digits-part,'E') and contains(substring-before(substring-after($digits-part,'.'),'E'),'#')">true</xsl:when>
+ <xsl:when test="contains($digits-part,'e') and contains(substring-before(substring-after($digits-part,'.'),'e'),'#')">true</xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="contains(substring-after($digits-part,'.'),'#')">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="integer-digits">
+ <xsl:choose>
+ <xsl:when test="contains($digits-part,'.')">
+ <xsl:value-of select="string-length(substring-before($digits-part,'.')) - string-length(translate(substring-before($digits-part,'.'),'0',''))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="string-length($digits-part) - string-length(translate($digits-part,'0',''))"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="factor-digits">
+ <xsl:call-template name="display-factor-digits">
+ <xsl:with-param name="digits-part" select="$digits-part"/>
+ <xsl:with-param name="count" select="0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="grouping">
+ <xsl:choose>
+ <xsl:when test="(string-length($digits-part) - string-length(translate($digits-part,',',''))) &gt;$factor-digits">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="exponent-digits">
+ <xsl:choose>
+ <xsl:when test="contains($digits-part,'E')">
+ <xsl:value-of select="string-length(substring-after($digits-part,'E')) -1"/>
+ </xsl:when>
+ <xsl:when test="contains($digits-part,'e')">
+ <xsl:value-of select="string-length(substring-after($digits-part,'e')) -1"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="numerator-digits">
+ <xsl:choose>
+ <xsl:when test="contains($digits-part,' ')">
+ <xsl:value-of select="string-length(substring-before(substring-after($digits-part,' '),'/'))"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="denominator-digits">
+ <xsl:choose>
+ <xsl:when test="contains($digits-part,' ')">
+ <xsl:value-of select="string-length(substring-after(substring-after($digits-part,' '),'/'))"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="number-type">
+ <xsl:choose>
+ <xsl:when test="$exponent-digits &gt;0">number:scientific-number</xsl:when>
+ <xsl:when test="($numerator-digits &gt;0) or ($denominator-digits &gt;0)">number:fraction</xsl:when>
+ <xsl:otherwise>number:number</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="{$number-type}">
+ <xsl:if test="$decimal-digits &gt;=0">
+ <xsl:attribute name="number:decimal-places"><xsl:value-of select="$decimal-digits"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$decimal-replacement='true'">
+ <xsl:attribute name="number:decimal-replacement"/>
+ </xsl:if>
+ <xsl:if test="$integer-digits &gt;=0">
+ <xsl:attribute name="number:min-integer-digits"><xsl:value-of select="$integer-digits"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$grouping='true'">
+ <xsl:attribute name="number:grouping"><xsl:value-of select="$grouping"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$factor-digits &gt;0">
+ <xsl:attribute name="number:display-factor"><xsl:choose><xsl:when test="$factor-digits=1">1000</xsl:when><xsl:when test="$factor-digits=2">1000000</xsl:when><xsl:when test="$factor-digits=3">1000000000</xsl:when><xsl:when test="$factor-digits=4">1000000000000</xsl:when><xsl:when test="$factor-digits=5">1000000000000000</xsl:when><xsl:when test="$factor-digits=6">1000000000000000000</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$exponent-digits &gt;0">
+ <xsl:attribute name="number:min-exponent-digits"><xsl:value-of select="$exponent-digits"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$numerator-digits &gt;0">
+ <xsl:attribute name="number:min-numerator-digits"><xsl:value-of select="$numerator-digits"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$denominator-digits &gt;0">
+ <xsl:attribute name="number:min-denominator-digits"><xsl:value-of select="$denominator-digits"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="number-format-color">
+ <xsl:param name="number-format-unit"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($number-format-unit,'[Black]')">
+ <style:text-properties fo:color="#000000"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Blue]')">
+ <style:text-properties fo:color="#0000ff"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Cyan]')">
+ <style:text-properties fo:color="#00ffff"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Green]')">
+ <style:text-properties fo:color="#00ff00"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Magenta]')">
+ <style:text-properties fo:color="#ff00ff"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Red]')">
+ <style:text-properties fo:color="#ff0000"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[White]')">
+ <style:text-properties fo:color="#ffffff"/>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Yellow]')">
+ <style:text-properties fo:color="#ffff00"/>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:variable name="unit-length">
+ <xsl:choose>
+ <xsl:when test="starts-with($number-format-unit,'[Black]')">8</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Blue]')">7</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Cyan]')">7</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Green]')">8</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Magenta]')">10</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Red]')">6</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[White]')">8</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[Yellow]')">9</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$unit-length &gt;1 and $unit-length &lt;=string-length($number-format-unit)">
+ <xsl:call-template name="general-number">
+ <xsl:with-param name="number-format-unit" select="substring($number-format-unit,$unit-length)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="number-format-currency">
+ <xsl:param name="number-format-unit"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($number-format-unit,'[$ï¿¥-804]')">
+ <number:currency-symbol number:language="zh" number:country="CN">ï¿¥</number:currency-symbol>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$$-409]')">
+ <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$$-2C0A]')">
+ <number:currency-symbol number:language="es" number:country="AR">$</number:currency-symbol>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$$-C0C]')">
+ <number:currency-symbol number:language="fr" number:country="CA">$</number:currency-symbol>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$CNY]')">
+ <number:currency-symbol>CNY</number:currency-symbol>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$AFA]')">
+ <number:currency-symbol>AFA</number:currency-symbol>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'CNY')">
+ <number:currency-symbol>CNY</number:currency-symbol>
+ </xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'CCC')">
+ <number:currency-symbol>CCC</number:currency-symbol>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:variable name="unit-length">
+ <xsl:choose>
+ <xsl:when test="starts-with($number-format-unit,'[$ï¿¥-804]')">9</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$$-409]')">9</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$$-2C0A]')">10</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$$-C0C]')">9</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$CNY]')">7</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'[$AFA]')">7</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'CNY')">4</xsl:when>
+ <xsl:when test="starts-with($number-format-unit,'CCC')">4</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$unit-length &gt;1 and $unit-length &lt;=string-length($number-format-unit)">
+ <xsl:call-template name="general-number">
+ <xsl:with-param name="number-format-unit" select="substring($number-format-unit,$unit-length)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="display-factor-digits">
+ <xsl:param name="digits-part"/>
+ <xsl:param name="count"/>
+ <xsl:choose>
+ <xsl:when test="not(substring($digits-part,string-length($digits-part),1) =',')">
+ <xsl:value-of select="$count"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="display-factor-digits">
+ <xsl:with-param name="digits-part" select="substring($digits-part,1,string-length($digits-part) -1)"/>
+ <xsl:with-param name="count" select="$count +1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="element-attribute">
+ <xsl:param name="number-format-unit"/>
+ <xsl:if test="contains($number-format-unit,'[HH]')">
+ <xsl:attribute name="number:truncate-on-overflow">false</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="starts-with($number-format-unit,'[NatNum1]')">
+ <xsl:attribute name="number:transliteration-format">一</xsl:attribute>
+ <xsl:attribute name="number:transliteration-style">short</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="starts-with($number-format-unit,'[NatNum2]')">
+ <xsl:attribute name="number:transliteration-format">壹</xsl:attribute>
+ <xsl:attribute name="number:transliteration-style">short</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="starts-with($number-format-unit,'[NatNum3]')">
+ <xsl:attribute name="number:transliteration-format">1</xsl:attribute>
+ <xsl:attribute name="number:transliteration-style">short</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="starts-with($number-format-unit,'[NatNum4]')">
+ <xsl:attribute name="number:transliteration-format">一</xsl:attribute>
+ <xsl:attribute name="number:transliteration-style">long</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="starts-with($number-format-unit,'[NatNum5]')">
+ <xsl:attribute name="number:transliteration-format">壹</xsl:attribute>
+ <xsl:attribute name="number:transliteration-style">long</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="starts-with($number-format-unit,'[NatNum6]')">
+ <xsl:attribute name="number:transliteration-format">1</xsl:attribute>
+ <xsl:attribute name="number:transliteration-style">long</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="starts-with($number-format-unit,'[NatNum7]')">
+ <xsl:attribute name="number:transliteration-format">一</xsl:attribute>
+ <xsl:attribute name="number:transliteration-style">medium</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="starts-with($number-format-unit,'[NatNum8]')">
+ <xsl:attribute name="number:transliteration-format">壹</xsl:attribute>
+ <xsl:attribute name="number:transliteration-style">medium</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="starts-with($number-format-unit,'[NatNum0]')">
+ <xsl:attribute name="number:transliteration-format">1</xsl:attribute>
+ <xsl:attribute name="number:transliteration-style">short</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains($number-format-unit,'[$-804]')">
+ <xsl:attribute name="number:transliteration-language">zh</xsl:attribute>
+ <xsl:attribute name="number:transliteration-country">CN</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:key name="pz" match="/uof:UOF/uof:对象集/图:图形" use="@图:标识符"/>
+ <xsl:template match="表:批注" mode="body">
+ <xsl:element name="office:annotation">
+ <xsl:if test="@表:是å¦æ˜¾ç¤º = 'true'">
+ <xsl:attribute name="office:display">true</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="uof:锚点/@uof:图形引用"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(uof:锚点/@uof:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(uof:锚点/@uof:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(uof:锚点/@uof:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(uof:锚点/@uof:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:variable name="w">
+ <xsl:value-of select="./uof:锚点/@uof:图形引用"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="key('pz',$w)/图:文本内容/å­—:å¥/å­—:文本串">
+ <text:p>
+ <xsl:for-each select="key('pz',$w)/图:文本内容/å­—:å¥">
+ <text:span>
+ <xsl:if test="å­—:å¥å±žæ€§/@å­—:å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="text:style-name"><xsl:value-of select="å­—:å¥å±žæ€§/@å­—:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:value-of select="字:文本串"/>
+ </text:span>
+ </xsl:for-each>
+ </text:p>
+ </xsl:when>
+ </xsl:choose>
+ <!--xsl:if test="图:文本内容/å­—:段è½/å­—:å¥/å­—:文本串">
+ <text:p>
+ <xsl:call-template name="create-comment-data-content">
+ <xsl:with-param name="style-id" select="../@表:å¼æ ·å¼•ç”¨"/>
+ </xsl:call-template>
+ </text:p>
+ </xsl:if-->
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="auto-filter-condition">
+ <xsl:param name="conditon-set"/>
+ <xsl:param name="zone-left-column-num"/>
+ <xsl:if test="$conditon-set">
+ <xsl:variable name="first-condition" select="$conditon-set[1]"/>
+ <xsl:element name="table:filter-condition">
+ <xsl:attribute name="table:field-number"><xsl:value-of select="$first-condition/@表:åˆ—å· - $zone-left-column-num"/></xsl:attribute>
+ <xsl:attribute name="office:value"><xsl:choose><xsl:when test="$first-condition/表:普通"><xsl:value-of select="$first-condition/表:普通/@表:值"/></xsl:when><xsl:when test="$first-condition/表:自定义"><xsl:value-of select="$first-condition/表:自定义/表:æ“作æ¡ä»¶/表:值"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:variable name="operator">
+ <xsl:choose>
+ <xsl:when test="$first-condition/表:普通">
+ <xsl:variable name="general" select="$first-condition/表:普通/@表:类型"/>
+ <xsl:choose>
+ <xsl:when test="$general ='topitem'">top values</xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$first-condition/表:自定义">
+ <xsl:variable name="operator-text" select="$first-condition/表:自定义/表:æ“作æ¡ä»¶/表:æ“作ç /text()"/>
+ <xsl:choose>
+ <xsl:when test="$operator-text ='less than'">&lt;</xsl:when>
+ <xsl:when test="$operator-text ='greater than'">&gt;</xsl:when>
+ <xsl:when test="$operator-text ='equal to'">
+ <xsl:value-of select="'='"/>
+ </xsl:when>
+ <xsl:when test="$operator-text ='greater than or equal to'">
+ <xsl:value-of select="'&gt;='"/>
+ </xsl:when>
+ <xsl:when test="$operator-text ='less than or equal to'">
+ <xsl:value-of select="'&lt;='"/>
+ </xsl:when>
+ <xsl:when test="$operator-text ='not equal to'">
+ <xsl:value-of select="'!='"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="table:operator"><xsl:value-of select="$operator"/></xsl:attribute>
+ </xsl:element>
+ <xsl:call-template name="auto-filter-condition">
+ <xsl:with-param name="conditon-set" select="$conditon-set[position()!=1]"/>
+ <xsl:with-param name="zone-left-column-num" select="$zone-left-column-num"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="translate-column-char-to-number">
+ <xsl:param name="string"/>
+ <xsl:choose>
+ <xsl:when test="string-length($string)=1">
+ <xsl:call-template name="char-to-number">
+ <xsl:with-param name="char" select="$string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="tens-place">
+ <xsl:call-template name="char-to-number">
+ <xsl:with-param name="char" select="substring($string,1,1)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="units-place">
+ <xsl:call-template name="char-to-number">
+ <xsl:with-param name="char" select="substring($string,2,1)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$tens-place * 26 + $units-place"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="char-to-number">
+ <xsl:param name="char"/>
+ <xsl:choose>
+ <xsl:when test="$char='A'">1</xsl:when>
+ <xsl:when test="$char='B'">2</xsl:when>
+ <xsl:when test="$char='C'">3</xsl:when>
+ <xsl:when test="$char='D'">4</xsl:when>
+ <xsl:when test="$char='E'">5</xsl:when>
+ <xsl:when test="$char='F'">6</xsl:when>
+ <xsl:when test="$char='G'">7</xsl:when>
+ <xsl:when test="$char='H'">8</xsl:when>
+ <xsl:when test="$char='I'">9</xsl:when>
+ <xsl:when test="$char='J'">10</xsl:when>
+ <xsl:when test="$char='K'">11</xsl:when>
+ <xsl:when test="$char='L'">12</xsl:when>
+ <xsl:when test="$char='M'">13</xsl:when>
+ <xsl:when test="$char='N'">14</xsl:when>
+ <xsl:when test="$char='O'">15</xsl:when>
+ <xsl:when test="$char='P'">16</xsl:when>
+ <xsl:when test="$char='Q'">17</xsl:when>
+ <xsl:when test="$char='R'">18</xsl:when>
+ <xsl:when test="$char='S'">19</xsl:when>
+ <xsl:when test="$char='T'">20</xsl:when>
+ <xsl:when test="$char='U'">21</xsl:when>
+ <xsl:when test="$char='V'">22</xsl:when>
+ <xsl:when test="$char='W'">23</xsl:when>
+ <xsl:when test="$char='X'">24</xsl:when>
+ <xsl:when test="$char='Y'">25</xsl:when>
+ <xsl:when test="$char='Z'">26</xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="translate-expression2">
+ <xsl:param name="expression2"/>
+ <xsl:choose>
+ <xsl:when test="contains($expression2,':')">
+ <xsl:variable name="column-one">
+ <xsl:value-of select="substring(substring-before($expression2,':'),1,1)"/>
+ </xsl:variable>
+ <xsl:variable name="row-one">
+ <xsl:value-of select="substring(substring-before($expression2,':'),2)"/>
+ </xsl:variable>
+ <xsl:variable name="column-two">
+ <xsl:value-of select="substring(substring-after($expression2,':'),1,1)"/>
+ </xsl:variable>
+ <xsl:variable name="row-two">
+ <xsl:value-of select="substring(substring-after($expression2,':'),2)"/>
+ </xsl:variable>
+ <xsl:variable name="column-value1">
+ <xsl:call-template name="character-to-column">
+ <xsl:with-param name="column-value" select="$column-one"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="column-value2">
+ <xsl:call-template name="character-to-column">
+ <xsl:with-param name="column-value" select="$column-two"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat('R',$row-one,'C',$column-value1,':','R',$row-two,'C',$column-value2)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="column-one">
+ <xsl:value-of select="substring($expression2,1,1)"/>
+ </xsl:variable>
+ <xsl:variable name="row-one">
+ <xsl:value-of select="substring($expression2,2)"/>
+ </xsl:variable>
+ <xsl:variable name="column-value1">
+ <xsl:call-template name="character-to-column">
+ <xsl:with-param name="column-value" select="$column-one"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat('R',$row-one,'C',$column-value1)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="character-to-column">
+ <xsl:param name="column-value"/>
+ <xsl:choose>
+ <xsl:when test="$column-value= 'A'">1</xsl:when>
+ <xsl:when test="$column-value= 'B'">2</xsl:when>
+ <xsl:when test="$column-value= 'C'">3</xsl:when>
+ <xsl:when test="$column-value= 'D'">4</xsl:when>
+ <xsl:when test="$column-value= 'E'">5</xsl:when>
+ <xsl:when test="$column-value= 'F'">6</xsl:when>
+ <xsl:when test="$column-value= 'G'">7</xsl:when>
+ <xsl:when test="$column-value= 'H'">8</xsl:when>
+ <xsl:when test="$column-value= 'I'">9</xsl:when>
+ <xsl:when test="$column-value= 'J'">10</xsl:when>
+ <xsl:when test="$column-value= 'K'">11</xsl:when>
+ <xsl:when test="$column-value= 'L'">12</xsl:when>
+ <xsl:when test="$column-value= 'M'">13</xsl:when>
+ <xsl:when test="$column-value= 'N'">14</xsl:when>
+ <xsl:when test="$column-value= 'O'">15</xsl:when>
+ <xsl:when test="$column-value= 'P'">16</xsl:when>
+ <xsl:when test="$column-value= 'Q'">17</xsl:when>
+ <xsl:when test="$column-value= 'R'">18</xsl:when>
+ <xsl:when test="$column-value= 'S'">19</xsl:when>
+ <xsl:when test="$column-value= 'T'">20</xsl:when>
+ <xsl:when test="$column-value= 'U'">21</xsl:when>
+ <xsl:when test="$column-value= 'V'">22</xsl:when>
+ <xsl:when test="$column-value= 'W'">23</xsl:when>
+ <xsl:when test="$column-value= 'X'">24</xsl:when>
+ <xsl:when test="$column-value= 'Y'">25</xsl:when>
+ <xsl:when test="$column-value= 'Z'">26</xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <!--chenjh end 20050611-->
+ <xsl:template name="工作表属性">
+ <!--office:settings-->
+ <xsl:variable name="sheetprop" select="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表"/>
+ <config:config-item-set config:name="ooo:view-settings">
+ <xsl:variable name="ratio" select="15"/>
+ <xsl:if test="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:è¡Œ/表:å•å…ƒæ ¼/表:æ•°æ®/å­—:å¥/å­—:修订开始">
+ <config:config-item-set config:name="TrackedChangesViewSettings">
+ <config:config-item config:name="ShowChanges" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ShowAcceptedChanges" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ShowRejectedChanges" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ShowChangesByDatetime" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ShowChangesByDatetimeMode" config:type="short">0</config:config-item>
+ <config:config-item config:name="ShowChangesByDatetimeFirstDatetime" config:type="datetime">2007-01-17T10:56:46.21</config:config-item>
+ <config:config-item config:name="ShowChangesByDatetimeSecondDatetime" config:type="datetime">2007-01-17T10:56:46.21</config:config-item>
+ <config:config-item config:name="ShowChangesByAuthor" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ShowChangesByAuthorName" config:type="string"/>
+ <config:config-item config:name="ShowChangesByComment" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ShowChangesByCommentText" config:type="string"/>
+ <config:config-item config:name="ShowChangesByRanges" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ShowChangesByRangesList" config:type="string"/>
+ </config:config-item-set>
+ </xsl:if>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <config:config-item config:name="ViewId" config:type="string">View1</config:config-item>
+ <config:config-item-map-named config:name="Tables">
+ <xsl:for-each select="$sheetprop/表:工作表属性/表:视图">
+ <xsl:element name="config:config-item-map-entry">
+ <xsl:attribute name="config:name"><xsl:value-of select="ancestor::表:工作表/@表:å称"/></xsl:attribute>
+ <xsl:element name="config:config-item">
+ <xsl:attribute name="config:name">HorizontalSplitMode</xsl:attribute>
+ <xsl:attribute name="config:type">short</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="表:冻结 and 表:冻结/@表:列å·!=0">2</xsl:when>
+ <xsl:when test="表:冻结 and 表:冻结/@表:列å·=0">0</xsl:when>
+ <xsl:when test="表:拆分 and 表:拆分/@表:宽度!=0">1</xsl:when>
+ <xsl:when test="表:拆分 and 表:拆分/@表:宽度=0">0</xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="config:config-item">
+ <xsl:attribute name="config:name">VerticalSplitMode</xsl:attribute>
+ <xsl:attribute name="config:type">short</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="表:冻结 and 表:冻结/@表:è¡Œå·!=0">2</xsl:when>
+ <xsl:when test="表:冻结 and 表:冻结/@表:è¡Œå·=0">0</xsl:when>
+ <xsl:when test="表:拆分 and 表:拆分/@表:高度!=0">1</xsl:when>
+ <xsl:when test="表:拆分 and 表:拆分/@表:高度=0">0</xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="config:config-item">
+ <xsl:attribute name="config:name">HorizontalSplitPosition</xsl:attribute>
+ <xsl:attribute name="config:type">int</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="表:冻结 and 表:冻结/@表:列å·=0">0</xsl:when>
+ <xsl:when test="表:冻结 and 表:冻结/@表:列å·!=0">
+ <xsl:value-of select="表:冻结/@表:列å·"/>
+ </xsl:when>
+ <xsl:when test="表:拆分 and 表:拆分/@表:宽度=0">0</xsl:when>
+ <xsl:when test="表:拆分 and 表:拆分/@表:宽度!=0">
+ <xsl:value-of select="表:拆分/@表:宽度"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:element name="config:config-item">
+ <xsl:attribute name="config:name">VerticalSplitPosition</xsl:attribute>
+ <xsl:attribute name="config:type">int</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="表:冻结 and 表:冻结/@表:è¡Œå·=0">0</xsl:when>
+ <xsl:when test="表:冻结 and 表:冻结/@表:è¡Œå·!=0">
+ <xsl:value-of select="表:冻结/@表:è¡Œå·"/>
+ </xsl:when>
+ <xsl:when test="表:拆分 and 表:拆分/@表:高度=0">0</xsl:when>
+ <xsl:when test="表:拆分 and 表:拆分/@表:高度!=0">
+ <xsl:value-of select="表:拆分/@表:高度"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:variable name="position-top">
+ <xsl:choose>
+ <xsl:when test="$sheetprop/表:工作表属性/表:视图/表:最上行">
+ <xsl:value-of select="//表:工作表属性/表:视图/表:最上行"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="position-left">
+ <xsl:choose>
+ <xsl:when test="$sheetprop/表:工作表属性/表:视图/表:最左列">
+ <xsl:value-of select="$sheetprop/表:工作表属性/表:视图/表:最左列"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <config:config-item config:name="PositionRight" config:type="int">
+ <xsl:value-of select="$position-left"/>
+ </config:config-item>
+ <config:config-item config:name="PositionBottom" config:type="int">
+ <xsl:value-of select="$position-top"/>
+ </config:config-item>
+ </xsl:element>
+ </xsl:for-each>
+ </config:config-item-map-named>
+ <xsl:if test="$sheetprop/表:工作表属性/表:视图/表:当å‰è§†å›¾">
+ <xsl:element name="config:config-item">
+ <xsl:attribute name="config:name">ShowPageBreakPreview</xsl:attribute>
+ <xsl:attribute name="config:type">boolean</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$sheetprop/表:工作表属性/表:视图/表:当å‰è§†å›¾/@表:类型='normal'">false</xsl:when>
+ <xsl:otherwise>true</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$sheetprop/表:工作表属性/表:视图/表:网格">
+ <xsl:element name="config:config-item">
+ <xsl:attribute name="config:name">ShowGrid</xsl:attribute>
+ <xsl:attribute name="config:type">boolean</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$sheetprop/表:工作表属性/表:视图/表:网格/@表:值=1 or $sheetprop/表:工作表属性/表:视图/表:网格/@表:值='true'">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$sheetprop/表:工作表属性/表:视图/表:网格颜色">
+ <xsl:element name="config:config-item">
+ <xsl:attribute name="config:name">GridColor</xsl:attribute>
+ <xsl:attribute name="config:type">long</xsl:attribute>
+ <xsl:call-template name="transform-hex-to-decimal">
+ <xsl:with-param name="number" select="//表:视图/表:网格颜色/text()"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$sheetprop/表:工作表属性/表:视图/表:选中">
+ <xsl:element name="config:config-item">
+ <xsl:attribute name="config:name">ActiveTable</xsl:attribute>
+ <xsl:attribute name="config:type">string</xsl:attribute>
+ <xsl:value-of select="$sheetprop/表:工作表属性/表:视图[表:选中]/ancestor::表:工作表/@表:å称"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$sheetprop/表:工作表属性/表:视图/表:缩放">
+ <config:config-item config:name="ZoomValue" config:type="int">
+ <xsl:value-of select="$sheetprop/表:工作表属性/表:视图/表:缩放/text()"/>
+ </config:config-item>
+ </xsl:if>
+ <xsl:if test="$sheetprop/表:工作表属性/表:视图/表:分页缩放">
+ <config:config-item config:name="PageViewZoomValue" config:type="int">
+ <xsl:value-of select="$sheetprop/表:工作表属性/表:视图/表:分页缩放/text()"/>
+ </config:config-item>
+ </xsl:if>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ </xsl:template>
+ <xsl:template name="create-page-master">
+ <xsl:param name="worksheetoptions"/>
+ <xsl:for-each select="$worksheetoptions">
+ <xsl:element name="style:page-layout">
+ <xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat( 'pm_', ../@表:å称)"/></xsl:call-template></xsl:attribute>
+ <xsl:element name="style:page-layout-properties">
+ <xsl:if test="表:页é¢è®¾ç½®/表:纸张/@uof:宽度">
+ <xsl:attribute name="fo:page-width"><xsl:value-of select="concat(表:页é¢è®¾ç½®/表:纸张/@uof:宽度,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:页é¢è®¾ç½®/表:纸张/@uof:高度">
+ <xsl:attribute name="fo:page-height"><xsl:value-of select="concat(表:页é¢è®¾ç½®/表:纸张/@uof:高度,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:页é¢è®¾ç½®/表:纸张方å‘">
+ <xsl:attribute name="style:print-orientation"><xsl:value-of select="表:页é¢è®¾ç½®/表:纸张方å‘"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:页é¢è®¾ç½®/表:缩放">
+ <xsl:attribute name="style:scale-to"><xsl:value-of select="concat(表:页é¢è®¾ç½®/表:缩放,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/@表:背景">
+ <xsl:attribute name="fo:background-color"><xsl:value-of select="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/@表:背景"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style:first-page-number">continue</xsl:attribute>
+ <xsl:if test="表:页é¢è®¾ç½®/表:页边è·">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(表:页é¢è®¾ç½®/表:页边è·/@uof:上,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat(表:页é¢è®¾ç½®/表:页边è·/@uof:下,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(表:页é¢è®¾ç½®/表:页边è·/@uof:å·¦,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(表:页é¢è®¾ç½®/表:页边è·/@uof:å³,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:页é¢è®¾ç½®/表:打å°/@表:先列åŽè¡Œ='true'">
+ <xsl:attribute name="style:print-page-order">ltr</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:页é¢è®¾ç½®/表:垂直对é½/@表:对é½æ–¹å¼">
+ <xsl:attribute name="style:table-centering">vertical</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:页é¢è®¾ç½®/表:水平对é½/@表:对é½æ–¹å¼">
+ <xsl:attribute name="style:table-centering">horizontal</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ <xsl:element name="style:header-style">
+ <xsl:element name="style:header-footer-properties">
+ <xsl:attribute name="fo:min-height">0.75cm</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="表:页é¢è®¾ç½®/表:页眉页脚/@uof:è¾¹è·">
+ <xsl:attribute name="fo:margin-bottom"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(表:页é¢è®¾ç½®/表:页眉页脚/@uof:è¾¹è·,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:margin-bottom">0.25cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ <xsl:element name="style:footer-style">
+ <xsl:element name="style:header-footer-properties">
+ <xsl:attribute name="fo:min-height">0.75cm</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="表:页é¢è®¾ç½®/表:页眉页脚/@uof:è¾¹è·">
+ <xsl:attribute name="fo:margin-top"><xsl:call-template name="convert2cm"><xsl:with-param name="value" select="concat(表:页é¢è®¾ç½®/表:页眉页脚/@uof:è¾¹è·,'pt')"/></xsl:call-template><xsl:text>cm</xsl:text></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:margin-top">0.25cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template match="字:文本串">
+ <xsl:value-of select="text()"/>
+ </xsl:template>
+ <xsl:template match="å­—:æ¢è¡Œç¬¦">
+ <xsl:element name="text:line-break"/>
+ </xsl:template>
+ <xsl:template match="字:制表符">
+ <xsl:element name="text:tab-stop"/>
+ </xsl:template>
+ <xsl:template match="字:区域开始">
+ <xsl:if test="@字:类型='hyperlink'">
+ <xsl:variable name="superlink" select="//uof:超级链接[@uof:标识符=current()/@字:标识符]"/>
+ <xsl:element name="text:a">
+ <xsl:attribute name="xlink:href"><xsl:value-of select="$superlink/@uof:目标"/></xsl:attribute>
+ <xsl:value-of select="$superlink/@uof:æ示"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:空格符">
+ <xsl:element name="text:s">
+ <xsl:if test="@字:个数">
+ <xsl:attribute name="text:c"><xsl:value-of select="@字:个数"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="create-page-header-footer-text-p">
+ <xsl:param name="paragragh-set"/>
+ <xsl:choose>
+ <xsl:when test="$paragragh-set">
+ <xsl:element name="text:p">
+ <xsl:for-each select="$paragragh-set[1]/å­—:å¥">
+ <xsl:choose>
+ <xsl:when test="not(å­—:å¥å±žæ€§)">
+ <xsl:apply-templates select="å­—:文本串 | å­—:空格符 | å­—:æ¢è¡Œç¬¦"/>
+ </xsl:when>
+ <xsl:when test="å­—:å¥å±žæ€§">
+ <xsl:element name="text:span">
+ <xsl:attribute name="text:style-name"><xsl:value-of select="//uof:å¥å¼æ ·[@å­—:标识符=current()/å­—:å¥å±žæ€§/@å­—:å¼æ ·å¼•ç”¨]/@å­—:å称"/></xsl:attribute>
+ <xsl:apply-templates select="å­—:空格符 | å­—:文本串 | å­—:æ¢è¡Œç¬¦ | å­—:制表符"/>
+ </xsl:element>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:element>
+ <xsl:call-template name="create-page-header-footer-text-p">
+ <xsl:with-param name="paragragh-set" select="$paragragh-set[position()!=1]"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <!--Redoffice comment lilliang SC0016 06.02.16 -->
+ <!--新增内容-->
+ <xsl:template match="å­—:段è½">
+ <xsl:element name="text:p">
+ <xsl:choose>
+ <xsl:when test="å­—:段è½å±žæ€§">
+ <xsl:attribute name="text:style-name">P<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½[å­—:段è½å±žæ€§]"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="generate-id(ancestor::å­—:主体/descendant::å­—:段è½[1]) = generate-id(.)">
+ <!-- create the leading paragraph style name in one section for master page style application, glu -->
+ <xsl:variable name="paragraph-number">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½[å­—:段è½å±žæ€§]"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name">P<xsl:value-of select="number($paragraph-number)"/>_1</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="not(å­—:段è½å±žæ€§) and (descendant::å­—:分æ ç¬¦ or ancestor::å­—:分节/descendant::å­—:节属性[å­—:分æ /@å­—:æ æ•° &gt; 1])">
+ <xsl:attribute name="text:style-name">ColumnBreakPara</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:å¥">
+ <xsl:apply-templates select="å­—:å¥/å­—:文本串"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+ <!--Redoffice comment liliang end 06.02.16-->
+ <xsl:template name="create-master-styles">
+ <xsl:param name="worksheetoptions"/>
+ <xsl:for-each select="$worksheetoptions">
+ <xsl:element name="style:master-page">
+ <xsl:attribute name="style:name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat( 'TAB_', ../@表:å称)"/></xsl:call-template></xsl:attribute>
+ <!--xsl:attribute name="style:page-layout-name"-->
+ <xsl:attribute name="style:page-layout-name"><xsl:call-template name="encode-as-nc-name"><xsl:with-param name="string" select="concat( 'pm_', ../@表:å称)"/></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="style:display-name"><xsl:value-of select="concat( 'PageStyle_', ../@表:å称)"/></xsl:attribute>
+ <style:header>
+ <xsl:for-each select="表:页é¢è®¾ç½®/表:页眉页脚">
+ <xsl:variable name="temp" select="@表:ä½ç½®"/>
+ <xsl:choose>
+ <xsl:when test="contains($temp,'header')">
+ <xsl:if test="å­—:段è½">
+ <xsl:choose>
+ <xsl:when test="@表:ä½ç½®='headerleft'">
+ <xsl:element name="style:region-left">
+ <xsl:call-template name="create-page-header-footer-text-p">
+ <xsl:with-param name="paragragh-set" select="å­—:段è½"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@表:ä½ç½®='headercenter'">
+ <xsl:element name="style:region-center">
+ <xsl:call-template name="create-page-header-footer-text-p">
+ <xsl:with-param name="paragragh-set" select="å­—:段è½"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@表:ä½ç½®='headerright'">
+ <xsl:element name="style:region-right">
+ <xsl:call-template name="create-page-header-footer-text-p">
+ <xsl:with-param name="paragragh-set" select="å­—:段è½"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:for-each>
+ </style:header>
+ <style:footer>
+ <xsl:for-each select="表:页é¢è®¾ç½®/表:页眉页脚">
+ <xsl:variable name="temp" select="@表:ä½ç½®"/>
+ <xsl:choose>
+ <xsl:when test="contains($temp,'footer')">
+ <xsl:if test="å­—:段è½">
+ <xsl:choose>
+ <xsl:when test="@表:ä½ç½®='footerleft'">
+ <xsl:element name="style:region-left">
+ <xsl:call-template name="create-page-header-footer-text-p">
+ <xsl:with-param name="paragragh-set" select="å­—:段è½"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@表:ä½ç½®='footercenter'">
+ <xsl:element name="style:region-center">
+ <xsl:call-template name="create-page-header-footer-text-p">
+ <xsl:with-param name="paragragh-set" select="å­—:段è½"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@表:ä½ç½®='footerright'">
+ <xsl:element name="style:region-right">
+ <xsl:call-template name="create-page-header-footer-text-p">
+ <xsl:with-param name="paragragh-set" select="å­—:段è½"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:for-each>
+ </style:footer>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <!--xsl:template name="create-page-master">
+ </xsl:template>
+ <xsl:template match="表:页é¢è®¾ç½®">
+ </xsl:template>
+
+ <xsl:template name="create-master-styles">
+ </xsl:template>
+ <xsl:template name="表:工作表属性">
+ </xsl:template-->
+ <!--00000000000-->
+ <xsl:template match="uof:元数æ®">
+ <office:meta>
+ <xsl:if test="uof:创建应用程åº">
+ <meta:generator>
+ <xsl:value-of select="uof:创建应用程åº"/>
+ </meta:generator>
+ </xsl:if>
+ <xsl:if test="uof:标题">
+ <dc:title>
+ <xsl:value-of select="uof:标题"/>
+ </dc:title>
+ </xsl:if>
+ <xsl:if test="uof:摘è¦">
+ <dc:description>
+ <xsl:value-of select="uof:摘è¦"/>
+ </dc:description>
+ </xsl:if>
+ <xsl:if test="uof:主题">
+ <dc:subject>
+ <xsl:value-of select="uof:主题"/>
+ </dc:subject>
+ </xsl:if>
+ <xsl:if test="uof:作者">
+ <meta:initial-creator>
+ <xsl:value-of select="uof:作者"/>
+ </meta:initial-creator>
+ </xsl:if>
+ <xsl:if test="uof:创建日期">
+ <meta:creation-date>
+ <xsl:value-of select="uof:创建日期"/>
+ </meta:creation-date>
+ </xsl:if>
+ <xsl:if test="uof:最åŽä½œè€…">
+ <dc:creator>
+ <xsl:value-of select="uof:最åŽä½œè€…"/>
+ </dc:creator>
+ </xsl:if>
+ <xsl:if test="uof:编辑时间">
+ <meta:editing-duration>
+ <xsl:value-of select="uof:编辑时间"/>
+ </meta:editing-duration>
+ </xsl:if>
+ <dc:language/>
+ <meta:keyword>
+ <xsl:value-of select="uof:关键字集/uof:关键字"/>
+ </meta:keyword>
+ <xsl:if test="uof:编辑次数">
+ <meta:editing-cycles>
+ <xsl:value-of select="uof:编辑次数"/>
+ </meta:editing-cycles>
+ </xsl:if>
+ <xsl:if test="uof:分类">
+ <meta:user-defined meta:name="Category">
+ <xsl:value-of select="uof:分类"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:if test="uof:ç»ç†å称">
+ <meta:user-defined meta:name="Manager">
+ <xsl:value-of select="uof:ç»ç†å称"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:if test="uof:å…¬å¸å称">
+ <meta:user-defined meta:name="Company">
+ <xsl:value-of select="uof:å…¬å¸å称"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:apply-templates select="uof:用户自定义元数æ®é›†"/>
+ </office:meta>
+ </xsl:template>
+ <xsl:template match="uof:用户自定义元数æ®é›†">
+ <xsl:for-each select="uof:用户自定义元数æ®">
+ <meta:user-defined meta:name="{@uof:å称}">
+ <xsl:value-of select="."/>
+ </meta:user-defined>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="parse-range">
+ <xsl:param name="range-value"/>
+ <xsl:param name="last"/>
+ <xsl:variable name="first-pit">
+ <xsl:choose>
+ <xsl:when test="contains($range-value,',')">
+ <xsl:value-of select="substring-before($range-value,',')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$range-value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="current">
+ <xsl:choose>
+ <xsl:when test="contains($first-pit,':')">
+ <xsl:variable name="R-start" select="substring-before(substring-after($first-pit,'R'),'C')"/>
+ <xsl:variable name="C-start" select="substring-before(substring-after($first-pit,'C'),':')"/>
+ <xsl:variable name="second-pit" select="substring-after($first-pit,':')"/>
+ <xsl:variable name="R-end" select="substring-before(substring-after($second-pit,'R'),'C')"/>
+ <xsl:variable name="C-end" select="substring-after($second-pit,'C')"/>
+ <xsl:variable name="the-str">
+ <xsl:call-template name="condition-rc-str">
+ <xsl:with-param name="r-start" select="$R-start"/>
+ <xsl:with-param name="r-end" select="$R-end"/>
+ <xsl:with-param name="c-start" select="$C-start"/>
+ <xsl:with-param name="c-end" select="$C-end"/>
+ <xsl:with-param name="last" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$the-str"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($first-pit,',')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($range-value,',')">
+ <xsl:call-template name="parse-range">
+ <xsl:with-param name="range-value" select="substring-after($range-value,',')"/>
+ <xsl:with-param name="last" select="concat($last,$current)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($last,$current)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="condition-rc-str">
+ <!-- dealing the range of row\column -->
+ <xsl:param name="r-start"/>
+ <xsl:param name="r-end"/>
+ <xsl:param name="c-start"/>
+ <xsl:param name="c-end"/>
+ <xsl:param name="last"/>
+ <xsl:variable name="current">
+ <xsl:call-template name="condition-c-str">
+ <xsl:with-param name="rc-str" select="concat('R',$r-start)"/>
+ <xsl:with-param name="start" select="$c-start"/>
+ <xsl:with-param name="end" select="$c-end"/>
+ <xsl:with-param name="last" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$r-start &lt; $r-end">
+ <xsl:call-template name="condition-rc-str">
+ <xsl:with-param name="r-start" select="$r-start + 1"/>
+ <xsl:with-param name="r-end" select="$r-end"/>
+ <xsl:with-param name="c-start" select="$c-start"/>
+ <xsl:with-param name="c-end" select="$c-end"/>
+ <xsl:with-param name="last" select="concat($last,$current)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$r-start = $r-end">
+ <xsl:value-of select="concat($last,$current)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="condition-c-str">
+ <!-- return value for the template condition-rc-str -->
+ <xsl:param name="rc-str"/>
+ <xsl:param name="start"/>
+ <xsl:param name="end"/>
+ <xsl:param name="last"/>
+ <xsl:variable name="current" select="concat($rc-str,'C',$start,',')"/>
+ <xsl:if test="$start &lt; $end">
+ <xsl:call-template name="condition-c-str">
+ <xsl:with-param name="rc-str" select="$rc-str"/>
+ <xsl:with-param name="start" select="$start + 1"/>
+ <xsl:with-param name="end" select="$end"/>
+ <xsl:with-param name="last" select="concat($last,$current)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$start = $end">
+ <xsl:value-of select="concat($last,$current)"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="condition-str">
+ <xsl:param name="param-str"/>
+ <xsl:choose>
+ <xsl:when test="contains($param-str,'(')">
+ <xsl:call-template name="condition-str">
+ <xsl:with-param name="param-str" select="substring-after($param-str,'(')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($param-str,':')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="encode-as-cell-range-address">
+ <xsl:param name="string"/>
+ <xsl:value-of select="$string"/>
+ </xsl:template>
+ <xsl:template name="encode-as-cell-address">
+ <xsl:param name="string"/>
+ <xsl:value-of select="$string"/>
+ </xsl:template>
+ <!--chengxiuzhi 111111111111111111111111111111111111111111111111111111111111111-->
+ <!-- measure_conversion.xsl Begin-->
+ <xsl:param name="dpi" select="111"/>
+ <xsl:param name="centimeter-in-mm" select="10"/>
+ <xsl:param name="inch-in-mm" select="25.4"/>
+ <xsl:param name="didot-point-in-mm" select="0.376065"/>
+ <xsl:param name="pica-in-mm" select="4.2333333"/>
+ <xsl:param name="point-in-mm" select="0.3527778"/>
+ <xsl:param name="twip-in-mm" select="0.017636684"/>
+ <xsl:param name="pixel-in-mm" select="$inch-in-mm div $dpi"/>
+ <!-- ***** MEASUREMENT CONVERSIONS *****
+ PARAM 'value'
+ The measure to be converted.
+ The current measure is judged by a substring (e.g. 'mm', 'cm', 'in', 'pica'...)
+ directly added to the number.
+
+ PARAM 'rounding-factor'
+ Is used for the rounding of decimal places.
+ The parameter number is the product of 1 and some '10', where
+ every zero represents a decimal place.
+
+ For example, providing as parameter:
+ <xsl:param name="rounding-factor" select="10000" />
+ Gives by default four decimal places.
+
+ To round two decimal places, basically the following is done:
+ <xsl:value-of select="round(100 * value) div 100"/>
+
+ RETURN The converted number, by default rounded to four decimal places.
+ In case the input measure could not be matched the same value is
+ returned and a warning message is written out.
+
+
+
+ MEASURE LIST:
+ * 1 milimeter (mm), the basic measure
+
+ * 1 centimeter (cm) = 10 mm
+
+ * 1 inch (in) = 25.4 mm
+ While the English have already seen the light (read: the metric system), the US
+ remains loyal to this medieval system.
+
+ * 1 point (pt) = 0.35277777.. mm
+ Sometimes called PostScript point (ppt), as when Adobe created PostScript, they added their own system of points.
+ There are exactly 72 PostScript points in 1 inch.
+
+ * 1 twip = twentieth of a (PostScript) point
+ A twip (twentieth of a point) is a 1/20th of a PostScript point, a traditional measure in printing.
+
+ * 1 didot point (dpt) = 0.376065 mm
+ Didot point after the French typographer Firmin Didot (1764-1836).
+
+ More details under
+ http://www.unc.edu/~rowlett/units/dictP.html:
+ "A unit of length used by typographers and printers. When printing was done
+ from hand-set metal type, one point represented the smallest element of type
+ that could be handled, roughly 1/64 inch. Eventually, the point was standardized
+ in Britain and America as exactly 1/72.27 = 0.013 837 inch, which is
+ about 0.35 mm (351.46 micrometers). In continental Europe, typographers
+ traditionally used a slightly larger point of 0.014 83 inch (about
+ 1/72 pouce, 0.377 mm, or roughly 1/67 English inch), called a Didot point
+ after the French typographer Firmin Didot (1764-1836). In the U.S.,
+ Adobe software defines the point to be exactly 1/72 inch (0.013 888 9 inch
+ or 0.352 777 8 millimeters) and TeX software uses a slightly smaller point
+ of 0.351 459 8035 mm. The German standards agency DIN has proposed that
+ all these units be replaced by multiples of 0.25 millimeters (1/101.6 inch).
+
+ * 1 pica = 4.233333 mm
+ 1/6 inch or 12 points
+
+ * 1 pixel (px) = 0.26458333.. mm (relative to 'DPI', here: 96 dpi)
+ Most pictures have the 96 dpi resolution, but the dpi variable may vary by stylesheet parameter
+
+
+ -->
+ <!-- changing measure to mm -->
+ <xsl:template name="convert2mm">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="substring-before($value, 'mm')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm' ) * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in' ) * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'mm'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to cm -->
+ <xsl:template name="convert2cm">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="substring-before($value, 'cm')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $centimeter-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $centimeter-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $centimeter-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $centimeter-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $centimeter-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $centimeter-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'cm'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to inch (cp. section comment) -->
+ <xsl:template name="convert2in">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $inch-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="substring-before($value, 'in')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $inch-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $inch-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $inch-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $inch-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $inch-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'in'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to dpt (cp. section comment) -->
+ <xsl:template name="convert2dpt">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $didot-point-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $didot-point-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $didot-point-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="substring-before($value, 'dpt')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $didot-point-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $didot-point-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $didot-point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'dpt'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pica (cp. section comment) -->
+ <xsl:template name="convert2pica">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $pica-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $pica-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $pica-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $pica-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="substring-before($value, 'pica')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $pica-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $pica-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pica'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pt (cp. section comment) -->
+ <xsl:template name="convert2pt">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $point-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $point-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="substring-before($value, 'pt')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $point-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $point-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $point-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $point-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'pt'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pt (cp. section comment) -->
+ <xsl:template name="convert2twip">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'cm') div $twip-in-mm * $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $twip-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $twip-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $twip-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $twip-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="substring-before($value, 'twip')"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $twip-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'twip'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- changing measure to pixel by via parameter provided dpi (dots per inch) standard factor (cp. section comment) -->
+ <xsl:template name="convert2px">
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round(number(substring-before($value, 'mm')) div $pixel-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'cm')">
+ <xsl:value-of select="round(number(substring-before($value, 'cm')) div $pixel-in-mm * $centimeter-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round(number(substring-before($value, 'in')) div $pixel-in-mm * $inch-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round(number(substring-before($value, 'pt')) div $pixel-in-mm * $point-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round(number(substring-before($value, 'dpt')) div $pixel-in-mm * $didot-point-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round(number(substring-before($value, 'pica')) div $pixel-in-mm * $pica-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round(number(substring-before($value, 'twip')) div $pixel-in-mm * $twip-in-mm)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'px'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- chenjh zhangying-->
+ <xsl:template name="create-content-validations">
+ <xsl:param name="validation-set"/>
+ <xsl:if test="$validation-set">
+ <xsl:variable name="first-validation" select="$validation-set[1]"/>
+ <xsl:variable name="condition-text">
+ <xsl:choose>
+ <xsl:when test="$first-validation/表:校验类型/text()='whole number'">
+ <xsl:choose>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='between' ">
+ <xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content-is-between','(',$first-validation/表:第一æ“作数/text(),',',$first-validation/表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='not between'">
+ <xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content-is-not-between','(',$first-validation/表:第一æ“作数/text(),',',$first-validation/表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='not equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()!=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='greater than'">
+ <xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()&gt;',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='less than'">
+ <xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()&lt;',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='greater than or equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()&gt;=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='less than or equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-whole-number() and cell-content()&lt;=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:校验类型/text()='decimal'">
+ <xsl:choose>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='between' ">
+ <xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content-is-between','(',$first-validation/表:第一æ“作数/text(),',',$first-validation/表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='not between'">
+ <xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content-is-not-between','(',$first-validation/表:第一æ“作数/text(),',',$first-validation/表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='not equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()!=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='greater than'">
+ <xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()&gt;',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='less than'">
+ <xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()&lt;',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='greater than or equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()&gt;=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='less than or equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-decimal-number() and cell-content()&lt;=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:校验类型/text()='date'">
+ <xsl:choose>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='between' ">
+ <xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content-is-between','(',$first-validation/表:第一æ“作数/text(),',',$first-validation/表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='not between'">
+ <xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content-is-not-between','(',$first-validation/表:第一æ“作数/text(),',',$first-validation/表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='not equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()!=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='greater than'">
+ <xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()&gt;',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='less than'">
+ <xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()&lt;',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='greater than or equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()&gt;=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='less than or equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-date() and cell-content()&lt;=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:校验类型/text()='time'">
+ <xsl:choose>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='between' ">
+ <xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content-is-between','(',$first-validation/表:第一æ“作数/text(),',',$first-validation/表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='not between'">
+ <xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content-is-not-between','(',$first-validation/表:第一æ“作数/text(),',',$first-validation/表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='not equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()!=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='greater than'">
+ <xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()&gt;',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='less than'">
+ <xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()&lt;',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='greater than or equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()&gt;=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='less than or equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-is-time() and cell-content()&lt;=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <!-- add 20060317 -->
+ <xsl:when test="$first-validation/表:校验类型/text()='cell range'">
+ <xsl:value-of select="concat('oooc:cell-content-is-in-list',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:校验类型/text()='list'">
+ <xsl:value-of select="concat('oooc:cell-content-is-in-list',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <!-- add 20060317 end -->
+ <xsl:when test="$first-validation/表:校验类型/text()='text length'">
+ <xsl:choose>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='between' ">
+ <xsl:value-of select="concat('oooc:cell-content-text-length-is-between','(',$first-validation/表:第一æ“作数/text(),',',$first-validation/表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='not between'">
+ <xsl:value-of select="concat('oooc:cell-content-text-length-is-not-between','(',$first-validation/表:第一æ“作数/text(),',',$first-validation/表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-text-length()=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='not equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-text-length()!=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='greater than'">
+ <xsl:value-of select="concat('oooc:cell-content-text-length()&gt;',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='less than'">
+ <xsl:value-of select="concat('oooc:cell-content-text-length()&lt;',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='greater than or equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-text-length()&gt;=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="$first-validation/表:æ“作ç /text()='less than or equal to'">
+ <xsl:value-of select="concat('oooc:cell-content-text-length()&lt;=',$first-validation/表:第一æ“作数/text())"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="table:content-validation">
+ <xsl:attribute name="table:name"><xsl:value-of select="concat('val',count($first-validation/preceding-sibling::表:æ•°æ®æœ‰æ•ˆæ€§)+1)"/></xsl:attribute>
+ <xsl:attribute name="table:condition"><xsl:value-of select="$condition-text"/></xsl:attribute>
+ <xsl:attribute name="table:allow-empty-cell"><xsl:value-of select="$first-validation/表:忽略空格/@表:值"/></xsl:attribute>
+ <xsl:attribute name="table:base-cell-address"><xsl:value-of select="translate(substring-after($first-validation/表:区域/text(),':'),'$','')"/></xsl:attribute>
+ <xsl:if test="$first-validation/表:输入æ示">
+ <xsl:element name="table:help-message">
+ <xsl:attribute name="table:title"><xsl:value-of select="$first-validation/表:输入æ示/@表:标题"/></xsl:attribute>
+ <xsl:attribute name="table:display"><xsl:value-of select="$first-validation/表:输入æ示/@表:显示"/></xsl:attribute>
+ <xsl:element name="text:p">
+ <xsl:value-of select="$first-validation/表:输入æ示/@表:内容"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$first-validation/表:错误æ示">
+ <xsl:element name="table:error-message">
+ <xsl:attribute name="table:title"><xsl:value-of select="$first-validation/表:错误æ示/@表:标题"/></xsl:attribute>
+ <xsl:attribute name="table:display"><xsl:value-of select="$first-validation/表:错误æ示/@表:显示"/></xsl:attribute>
+ <xsl:attribute name="table:message-type"><xsl:value-of select="$first-validation/表:错误æ示/@表:类型"/></xsl:attribute>
+ <xsl:element name="text:p">
+ <xsl:value-of select="$first-validation/表:错误æ示/@表:内容"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ <xsl:call-template name="create-content-validations">
+ <xsl:with-param name="validation-set" select="$validation-set[position()!=1]"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <!--RedOffice Comment from Zengjh:UOF0020 2006-04-26 charts-->
+ <xsl:template match="表:图表">
+ <xsl:param name="table-name"/>
+ <xsl:element name="draw:frame">
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="'0'"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(@表:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(@表:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(@表:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(@表:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:variable name="chart-current">
+ <xsl:number level="any" count="表:图表" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="concat('chart', $chart-current)"/></xsl:attribute>
+ <xsl:variable name="series-value-start">
+ <xsl:for-each select="表:æ•°æ®æº/表:系列[position()='1']">
+ <xsl:value-of select="@表:系列值"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="series-value-end">
+ <xsl:for-each select="表:æ•°æ®æº/表:系列[position()=last()]">
+ <xsl:value-of select="@表:系列值"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="series-generate-type">
+ <xsl:choose>
+ <xsl:when test="表:æ•°æ®æº/@表åºå·äº§ç”Ÿ">
+ <xsl:value-of select="表:æ•°æ®æº/@表åºå·äº§ç”Ÿ"/>
+ </xsl:when>
+ <xsl:when test="substring(substring-after($series-value-start,'!'),2,1)=substring(substring-after($series-value-start,':'),2,1)">row</xsl:when>
+ <xsl:otherwise>col</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="draw:object">
+ <xsl:attribute name="draw:notify-on-update-of-ranges"><xsl:value-of select="表:æ•°æ®æº/@表:æ•°æ®åŒºåŸŸ"/></xsl:attribute>
+ <office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" office:version="1.0" office:mimetype="application/vnd.oasis.opendocument.chart">
+ <xsl:call-template name="表:元数æ®">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="@表:类型"/>
+ <xsl:with-param name="table-subtype" select="@表:å­ç±»åž‹"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ <xsl:call-template name="表:å¼æ ·é›†">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="@表:类型"/>
+ <xsl:with-param name="table-subtype" select="@表:å­ç±»åž‹"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ <xsl:call-template name="表:主体">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="@表:类型"/>
+ <xsl:with-param name="table-subtype" select="@表:å­ç±»åž‹"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </office:document>
+ </xsl:element>
+ <xsl:element name="draw:image">
+ <office:binary-data>
+ <xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象/uof:æ•°æ®"/>
+ </office:binary-data>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="表:元数æ®">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:for-each select="/uof:UOF/uof:元数æ®">
+ <office:meta>
+ <meta:generator>OpenOffice.org 1.1.3 (Win32)</meta:generator>
+ <xsl:if test="uof:标题">
+ <dc:title>
+ <xsl:value-of select="uof:标题"/>
+ </dc:title>
+ </xsl:if>
+ <xsl:if test="uof:摘è¦">
+ <dc:description>
+ <xsl:value-of select="uof:摘è¦"/>
+ </dc:description>
+ </xsl:if>
+ <xsl:if test="uof:主题">
+ <dc:subject>
+ <xsl:value-of select="uof:主题"/>
+ </dc:subject>
+ </xsl:if>
+ <xsl:if test="uof:作者">
+ <meta:initial-creator>
+ <xsl:value-of select="uof:作者"/>
+ </meta:initial-creator>
+ </xsl:if>
+ <xsl:if test="uof:创建日期">
+ <meta:creation-date>
+ <xsl:value-of select="uof:创建日期"/>
+ </meta:creation-date>
+ </xsl:if>
+ <xsl:if test="uof:最åŽä½œè€…">
+ <dc:creator>
+ <xsl:value-of select="uof:最åŽä½œè€…"/>
+ </dc:creator>
+ </xsl:if>
+ <xsl:if test="uof:编辑时间">
+ <meta:editing-duration>
+ <xsl:value-of select="uof:编辑时间"/>
+ </meta:editing-duration>
+ </xsl:if>
+ <dc:language/>
+ <meta:keywords>
+ <meta:keyword>
+ <xsl:value-of select="uof:关键字集/uof:关键字"/>
+ </meta:keyword>
+ </meta:keywords>
+ <xsl:if test="uof:编辑次数">
+ <meta:editing-cycles>
+ <xsl:value-of select="uof:编辑次数"/>
+ </meta:editing-cycles>
+ </xsl:if>
+ <xsl:if test="uof:分类">
+ <meta:user-defined meta:name="Category">
+ <xsl:value-of select="uof:分类"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:if test="uof:ç»ç†å称">
+ <meta:user-defined meta:name="Manager">
+ <xsl:value-of select="uof:ç»ç†å称"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:if test="uof:å…¬å¸å称">
+ <meta:user-defined meta:name="Company">
+ <xsl:value-of select="uof:å…¬å¸å称"/>
+ </meta:user-defined>
+ </xsl:if>
+ <xsl:if test="uof:创建应用程åº">
+ <meta:user-defined meta:name="Version">
+ <xsl:value-of select="uof:创建应用程åº"/>
+ </meta:user-defined>
+ </xsl:if>
+ </office:meta>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:å¼æ ·é›†">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <office:styles>
+ <draw:stroke-dash draw:name="Ultrafine_20_Dashed" draw:display-name="Ultrafine Dashed" draw:style="rect" draw:dots1="1" draw:dots1-length="0.051cm" draw:dots2="1" draw:dots2-length="0.051cm" draw:distance="0.051cm"/>
+ <draw:stroke-dash draw:name="Fine_20_Dashed" draw:display-name="Fine Dashed" draw:style="rect" draw:dots1="1" draw:dots1-length="0.508cm" draw:dots2="1" draw:dots2-length="0.508cm" draw:distance="0.508cm"/>
+ <draw:stroke-dash draw:name="Ultrafine_20_2_20_Dots_20_3_20_Dashes" draw:display-name="Ultrafine 2 Dots 3 Dashes" draw:style="rect" draw:dots1="2" draw:dots1-length="0.051cm" draw:dots2="3" draw:dots2-length="0.254cm" draw:distance="0.127cm"/>
+ <draw:stroke-dash draw:name="Fine_20_Dashed_20__28_var_29_" draw:display-name="Fine Dashed (var)" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="197%"/>
+ <draw:stroke-dash draw:name="Fine_20_Dotted" draw:display-name="Fine Dotted" draw:style="rect" draw:dots1="1" draw:distance="0.457cm"/>
+ <draw:stroke-dash draw:name="Fine_20_Dashed_20__28_var_29_" draw:display-name="Fine Dashed (var)" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="197%"/>
+ <draw:stroke-dash draw:name="Fine_20_Dotted" draw:display-name="Fine Dotted" draw:style="rect" draw:dots1="1" draw:distance="0.457cm"/>
+ <draw:stroke-dash draw:name="Line_20_with_20_Fine_20_Dots" draw:display-name="Line with Fine Dots" draw:style="rect" draw:dots1="1" draw:dots1-length="2.007cm" draw:dots2="10" draw:distance="0.152cm"/>
+ <draw:stroke-dash draw:name="Line_20_Style_20_9" draw:display-name="Line Style 9" draw:style="rect" draw:dots1="1" draw:dots1-length="197%" draw:distance="120%"/>
+ <draw:stroke-dash draw:name="_33__20_Dashes_20_3_20_Dots_20__28_var_29_" draw:display-name="3 Dashes 3 Dots (var)" draw:style="rect" draw:dots1="3" draw:dots1-length="197%" draw:dots2="3" draw:distance="100%"/>
+ <draw:stroke-dash draw:name="_32__20_Dots_20_1_20_Dash" draw:display-name="2 Dots 1 Dash" draw:style="rect" draw:dots1="2" draw:dots2="1" draw:dots2-length="0.203cm" draw:distance="0.203cm"/>
+ <draw:stroke-dash draw:name="Ultrafine_20_Dotted_20__28_var_29_" draw:display-name="Ultrafine Dotted (var)" draw:style="rect" draw:dots1="1" draw:distance="50%"/>
+ <draw:stroke-dash draw:name="Dash_20_10" draw:display-name="Dash 10" draw:style="rect" draw:dots1="1" draw:dots1-length="0.02cm" draw:dots2="1" draw:dots2-length="0.02cm" draw:distance="0.02cm"/>
+ <xsl:for-each select="//图:图片">
+ <xsl:variable name="chart-image-name" select="@图:å称"/>
+ <draw:fill-image>
+ <xsl:attribute name="draw:name"><xsl:value-of select="@图:å称"/></xsl:attribute>
+ <office:binary-data>
+ <xsl:for-each select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$chart-image-name]">
+ <xsl:value-of select="uof:æ•°æ®"/>
+ </xsl:for-each>
+ </office:binary-data>
+ </draw:fill-image>
+ </xsl:for-each>
+ <xsl:for-each select="//图:图案">
+ <xsl:variable name="chart-hatch-name" select="@图:图形引用"/>
+ <draw:hatch>
+ <xsl:if test="@图:图形引用">
+ <xsl:attribute name="draw:name"><xsl:value-of select="$chart-hatch-name"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:类型">
+ <xsl:attribute name="draw:style"><xsl:value-of select="@图:类型"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:å‰æ™¯è‰²">
+ <xsl:attribute name="draw:color"><xsl:value-of select="@图:å‰æ™¯è‰²"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:è·ç¦»">
+ <xsl:attribute name="draw:distance"><xsl:value-of select="@图:è·ç¦»"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:旋转度">
+ <xsl:attribute name="draw:rotation"><xsl:value-of select="@图:旋转度"/></xsl:attribute>
+ </xsl:if>
+ </draw:hatch>
+ </xsl:for-each>
+ <xsl:for-each select="//图:æ¸å˜">
+ <draw:gradient>
+ <xsl:if test="@图:图形引用">
+ <xsl:attribute name="draw:name"><xsl:value-of select="@图:图形引用"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:起始色">
+ <xsl:attribute name="draw:start-color"><xsl:value-of select="@图:起始色"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:终止色">
+ <xsl:attribute name="draw:end-color"><xsl:value-of select="@图:终止色"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:ç§å­ç±»åž‹">
+ <xsl:attribute name="draw:style"><xsl:value-of select="@图:ç§å­ç±»åž‹"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:起始浓度">
+ <xsl:attribute name="draw:start-intensity"><xsl:value-of select="@图:起始浓度"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:终止浓度">
+ <xsl:attribute name="draw:end-intensity"><xsl:value-of select="@图:终止浓度"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:æ¸å˜æ–¹å‘">
+ <xsl:attribute name="draw:angle"><xsl:value-of select="@图:æ¸å˜æ–¹å‘"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:边界">
+ <xsl:attribute name="draw:border"><xsl:value-of select="@图:边界"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:ç§å­Xä½ç½®">
+ <xsl:attribute name="draw:cx"><xsl:value-of select="@图:ç§å­Xä½ç½®"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@图:ç§å­Yä½ç½®">
+ <xsl:attribute name="draw:cy"><xsl:value-of select="@图:ç§å­Yä½ç½®"/></xsl:attribute>
+ </xsl:if>
+ </draw:gradient>
+ </xsl:for-each>
+ </office:styles>
+ <office:automatic-styles>
+ <xsl:for-each select="node( )">
+ <xsl:choose>
+ <xsl:when test="name(.)='表:图表区'">
+ <xsl:call-template name="表:图表区å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name(.)='表:绘图区'">
+ <xsl:call-template name="表:绘图区å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ <xsl:call-template name="表:图表背景墙å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name(.)='表:分类轴'">
+ <xsl:call-template name="表:分类轴å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name(.)='表:数值轴'">
+ <xsl:call-template name="表:数值轴å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name(.)='表:图例'">
+ <xsl:call-template name="表:图例å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name(.)='表:æ•°æ®è¡¨'">
+ <xsl:call-template name="表:æ•°æ®è¡¨å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name(.)='表:æ•°æ®ç³»åˆ—集'">
+ <xsl:call-template name="表:æ•°æ®ç³»åˆ—集å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name(.)='表:æ•°æ®ç‚¹é›†'">
+ <xsl:call-template name="表:æ•°æ®ç‚¹é›†å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name(.)='表:网格线集'">
+ <xsl:call-template name="表:网格线集å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name(.)='表:æ•°æ®æº'">
+ <xsl:call-template name="表:æ•°æ®æºå¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name(.)='表:标题集'">
+ <xsl:call-template name="表:标题集å¼æ ·">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:for-each>
+ </office:automatic-styles>
+ </xsl:template>
+ <xsl:template name="表:主体">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <office:body>
+ <office:chart>
+ <chart:chart>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(@表:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(@表:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="chart:class"><xsl:choose><xsl:when test="$table-type='column'">chart:bar</xsl:when><xsl:when test="$table-type='line'">chart:line</xsl:when><xsl:when test="$table-type='pie'"><xsl:choose><xsl:when test="$table-subtype='pie_ring'">chart:ring</xsl:when><xsl:otherwise>chart:circle</xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise><xsl:value-of select="$table-type"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="chart:style-name">chart-area</xsl:attribute>
+ <xsl:for-each select="表:标题集/表:标题[@表:ä½ç½®='chart']">
+ <chart:title chart:style-name="chart-title">
+ <text:p>
+ <xsl:value-of select="@表:å称"/>
+ </text:p>
+ </chart:title>
+ </xsl:for-each>
+ <xsl:call-template name="表:图例区域">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ <xsl:call-template name="表:绘图区域">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ <xsl:call-template name="表:本地表">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </chart:chart>
+ </office:chart>
+ </office:body>
+ </xsl:template>
+ <xsl:template name="表:图例区域">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <chart:legend>
+ <xsl:attribute name="chart:legend-position"><xsl:choose><xsl:when test="表:图例/@表:ä½ç½®"><xsl:value-of select="表:图例/@表:ä½ç½®"/></xsl:when><xsl:otherwise>right</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(表:图例/@表:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(表:图例/@表:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="chart:style-name">legend</xsl:attribute>
+ </chart:legend>
+ </xsl:template>
+ <xsl:template name="表:绘图区域">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <chart:plot-area>
+ <xsl:variable name="start-range">
+ <xsl:value-of select="concat('.$',substring(substring-after($series-value-start,'!'),1,1),'$',substring-before(substring(substring-after($series-value-start,'!'),2),':'))"/>
+ </xsl:variable>
+ <xsl:variable name="end-range">
+ <xsl:value-of select="concat(':.$',substring(substring-after($series-value-end,':'),1,1),'$',substring(substring-after($series-value-end,':'),2))"/>
+ </xsl:variable>
+ <xsl:attribute name="chart:style-name">plot-area</xsl:attribute>
+ <xsl:attribute name="table:cell-range-address"><xsl:value-of select="concat($table-name,$start-range,$end-range)"/></xsl:attribute>
+ <!--xsl:value-of select="表:æ•°æ®æº/@表:æ•°æ®åŒºåŸŸ"/-->
+ <xsl:attribute name="chart:table-number-list">0</xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(表:绘图区/@表:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(表:绘图区/@表:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(表:绘图区/@表:xåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(表:绘图区/@表:yåæ ‡,$uofUnit)"/></xsl:attribute>
+ <xsl:if test="表:分类轴">
+ <chart:axis chart:dimension="x" chart:name="primary-x" chart:style-name="category-axis">
+ <xsl:for-each select="表:标题集/表:标题[@表:ä½ç½®='category axis']">
+ <chart:title chart:style-name="category-axis-title">
+ <text:p>
+ <xsl:value-of select="@表:å称"/>
+ </text:p>
+ </chart:title>
+ </xsl:for-each>
+ <chart:categories/>
+ <xsl:if test="表:网格线集/表:网格线[@表:ä½ç½®='category axis']">
+ <chart:grid chart:style-name="category-axis-grid" chart:class="major"/>
+ </xsl:if>
+ </chart:axis>
+ </xsl:if>
+ <xsl:if test="表:数值轴">
+ <chart:axis chart:dimension="y" chart:name="primary-y" chart:style-name="value-axis">
+ <xsl:for-each select="表:标题集/表:标题[@表:ä½ç½®='value axis']">
+ <chart:title chart:style-name="value-axis-title">
+ <text:p>
+ <xsl:value-of select="@表:å称"/>
+ </text:p>
+ </chart:title>
+ </xsl:for-each>
+ <chart:grid chart:style-name="value-axis-grid" chart:class="major"/>
+ </chart:axis>
+ </xsl:if>
+ <xsl:call-template name="表:æ•°æ®ç»„">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ <chart:wall>
+ <xsl:attribute name="chart:style-name">chart-wall</xsl:attribute>
+ </chart:wall>
+ <chart:floor>
+ <xsl:attribute name="chart:style-name">chart-floor</xsl:attribute>
+ </chart:floor>
+ </chart:plot-area>
+ </xsl:template>
+ <xsl:template name="表:本地表">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <table:table table:name="local-table">
+ <table:table-header-columns>
+ <xsl:call-template name="表:本地表_表头列">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="sum" select="1"/>
+ </xsl:call-template>
+ </table:table-header-columns>
+ <table:table-columns>
+ <xsl:variable name="column-sum">
+ <xsl:value-of select="count(表:æ•°æ®æº/表:系列)"/>
+ </xsl:variable>
+ <xsl:call-template name="表:本地表_列">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="column-sum" select="$column-sum"/>
+ </xsl:call-template>
+ </table:table-columns>
+ <table:table-header-rows>
+ <xsl:call-template name="表:本地表_表头行">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="row-current" select="1"/>
+ <xsl:with-param name="fixed-row-sum" select="'1'"/>
+ </xsl:call-template>
+ </table:table-header-rows>
+ <table:table-rows>
+ <xsl:variable name="row-start">
+ <xsl:value-of select="substring-before(substring(substring-after($series-value-start,'!'),2),':')"/>
+ </xsl:variable>
+ <xsl:variable name="row-end">
+ <xsl:value-of select="substring(substring-after($series-value-end,':'),2)"/>
+ </xsl:variable>
+ <xsl:variable name="fixed-row-sum">
+ <xsl:value-of select="$row-end -$row-start +1"/>
+ </xsl:variable>
+ <xsl:call-template name="表:本地表_行">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="row-current" select="'1'"/>
+ <xsl:with-param name="fixed-row-sum" select="$fixed-row-sum"/>
+ </xsl:call-template>
+ </table:table-rows>
+ </table:table>
+ </xsl:template>
+ <xsl:template name="表:本地表_表头列">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:param name="sum"/>
+ <xsl:choose>
+ <xsl:when test="$sum=0"/>
+ <xsl:otherwise>
+ <table:table-column/>
+ <xsl:call-template name="表:本地表_表头列">
+ <xsl:with-param name="sum" select="$sum -1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:本地表_列">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:param name="column-sum"/>
+ <xsl:choose>
+ <xsl:when test="$column-sum=0"/>
+ <xsl:otherwise>
+ <table:table-column/>
+ <xsl:call-template name="表:本地表_列">
+ <xsl:with-param name="column-sum" select="$column-sum -1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:本地表_表头行">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:param name="row-current"/>
+ <xsl:param name="fixed-row-sum"/>
+ <xsl:choose>
+ <xsl:when test="$row-current >$fixed-row-sum"/>
+ <xsl:otherwise>
+ <table:table-row>
+ <xsl:variable name="series-value-current">
+ <xsl:for-each select="表:æ•°æ®æº/表:系列[position()=$row-current]">
+ <xsl:value-of select="@表:系列值"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="cell-start">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after($series-value-start,'!'),1,1)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="cell-end">
+ <xsl:choose>
+ <xsl:when test="$series-generate-type='row'">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after($series-value-start,':'),1,1)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after($series-value-end,'!'),1,1)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="cell-sum">
+ <xsl:value-of select="$cell-end -$cell-start +2"/>
+ </xsl:variable>
+ <xsl:variable name="fixed-cell-sum" select="$cell-sum"/>
+ <xsl:call-template name="表:本地表_表头行_å•å…ƒæ ¼">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="series-value-current" select="$series-value-current"/>
+ <xsl:with-param name="row-current" select="$row-current"/>
+ <xsl:with-param name="cell-sum" select="$cell-sum"/>
+ <xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
+ </xsl:call-template>
+ </table:table-row>
+ <xsl:call-template name="表:本地表_表头行">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="row-current" select="$row-current +1"/>
+ <xsl:with-param name="fixed-row-sum" select="$fixed-row-sum"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:本地表_表头行_å•å…ƒæ ¼">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:param name="series-value-current"/>
+ <xsl:param name="row-current"/>
+ <xsl:param name="cell-sum"/>
+ <xsl:param name="fixed-cell-sum"/>
+ <xsl:choose>
+ <xsl:when test="$cell-sum=0"/>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$fixed-cell-sum=$cell-sum">
+ <table:table-cell>
+ <text:p/>
+ </table:table-cell>
+ </xsl:when>
+ <xsl:otherwise>
+ <table:table-cell office:value-type="string">
+ <xsl:variable name="cell-no">
+ <xsl:value-of select="$fixed-cell-sum -$cell-sum +1"/>
+ </xsl:variable>
+ <xsl:variable name="cell-start">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after($series-value-start,'!'),1,1)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="char">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="$cell-start +$cell-no -2"/>
+ <xsl:with-param name="output-type" select="'CHARS_UPPER_LETTER'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <text:p>
+ <xsl:value-of select="concat('列 ',$char)"/>
+ </text:p>
+ </table:table-cell>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="表:本地表_表头行_å•å…ƒæ ¼">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="series-value-current" select="$series-value-current"/>
+ <xsl:with-param name="row-current" select="$row-current"/>
+ <xsl:with-param name="cell-sum" select="$cell-sum -1"/>
+ <xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:本地表_行">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:param name="row-current"/>
+ <xsl:param name="fixed-row-sum"/>
+ <xsl:choose>
+ <xsl:when test="$row-current >$fixed-row-sum"/>
+ <xsl:otherwise>
+ <xsl:variable name="series-value-current">
+ <xsl:for-each select="表:æ•°æ®æº/表:系列[position()=$row-current]">
+ <xsl:value-of select="@表:系列值"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <table:table-row>
+ <xsl:variable name="cell-start">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after($series-value-start,'!'),1,1)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="cell-end">
+ <xsl:choose>
+ <xsl:when test="$series-generate-type='row'">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after($series-value-start,':'),1,1)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after($series-value-end,'!'),1,1)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="cell-sum">
+ <xsl:value-of select="$cell-end -$cell-start +2"/>
+ </xsl:variable>
+ <xsl:variable name="fixed-cell-sum" select="$cell-sum"/>
+ <xsl:call-template name="表:本地表_è¡Œ_å•å…ƒæ ¼">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="series-value-current" select="$series-value-current"/>
+ <xsl:with-param name="row-current" select="$row-current"/>
+ <xsl:with-param name="cell-sum" select="$cell-sum"/>
+ <xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
+ </xsl:call-template>
+ </table:table-row>
+ <xsl:call-template name="表:本地表_行">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="row-current" select="$row-current +1"/>
+ <xsl:with-param name="fixed-row-sum" select="$fixed-row-sum"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:本地表_è¡Œ_å•å…ƒæ ¼">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:param name="series-value-current"/>
+ <xsl:param name="row-current"/>
+ <xsl:param name="cell-sum"/>
+ <xsl:param name="fixed-cell-sum"/>
+ <xsl:choose>
+ <xsl:when test="$cell-sum=0"/>
+ <xsl:otherwise>
+ <xsl:variable name="cell-start">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="substring(substring-after($series-value-start,'!'),1,1)"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="cell-no">
+ <xsl:value-of select="$cell-start +$fixed-cell-sum -$cell-sum -1"/>
+ </xsl:variable>
+ <xsl:variable name="row-start">
+ <xsl:value-of select="substring(substring-after($series-value-start,'!'),2,1)"/>
+ </xsl:variable>
+ <xsl:variable name="row-no">
+ <xsl:value-of select="$row-start +$row-current -1"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$fixed-cell-sum=$cell-sum">
+ <table:table-cell office:value-type="string">
+ <text:p>
+ <xsl:value-of select="concat('行 ',$row-no)"/>
+ </text:p>
+ </table:table-cell>
+ </xsl:when>
+ <xsl:otherwise>
+ <table:table-cell office:value-type="float">
+ <xsl:variable name="cell-content">
+ <xsl:choose>
+ <xsl:when test="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:è¡Œ/@表:è¡Œå·">
+ <xsl:for-each select="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:è¡Œ[@表:è¡Œå·=$row-no]">
+ <xsl:for-each select="表:å•å…ƒæ ¼[@表:列å·=$cell-no]">
+ <xsl:value-of select="表:æ•°æ®/å­—:å¥/å­—:文本串"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="/uof:UOF/uof:电å­è¡¨æ ¼/表:主体/表:工作表/表:工作表内容/表:è¡Œ[position()=$row-no]">
+ <xsl:for-each select="表:å•å…ƒæ ¼[position()=$cell-no]">
+ <xsl:value-of select="表:æ•°æ®/å­—:å¥/å­—:文本串"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:value"><xsl:value-of select="$cell-content"/></xsl:attribute>
+ <text:p>
+ <xsl:value-of select="$cell-content"/>
+ </text:p>
+ </table:table-cell>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:call-template name="表:本地表_è¡Œ_å•å…ƒæ ¼">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="series-value-current" select="$series-value-current"/>
+ <xsl:with-param name="row-current" select="$row-current"/>
+ <xsl:with-param name="cell-sum" select="$cell-sum -1"/>
+ <xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®ç»„">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:variable name="input-char-start">
+ <xsl:choose>
+ <xsl:when test="$series-generate-type='row'">
+ <xsl:value-of select="substring(substring-after($series-value-start,'!'),1,1)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before(substring(substring-after($series-value-start,'!'),2),':')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="input-char-end">
+ <xsl:choose>
+ <xsl:when test="$series-generate-type='row'">
+ <xsl:value-of select="substring(substring-after($series-value-start,':'),1,1)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring(substring-after($series-value-start,':'),2)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="cell-start">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="$input-char-start"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="cell-end">
+ <xsl:call-template name="General-Char-Transition">
+ <xsl:with-param name="input-char" select="$input-char-end"/>
+ <xsl:with-param name="output-type" select="'ARABIC'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="fixed-cell-sum">
+ <xsl:value-of select="$cell-end -$cell-start +1"/>
+ </xsl:variable>
+ <xsl:for-each select="表:æ•°æ®ç³»åˆ—集/表:æ•°æ®ç³»åˆ—">
+ <chart:series>
+ <xsl:attribute name="chart:style-name"><xsl:value-of select="concat('data-series',position())"/></xsl:attribute>
+ <xsl:call-template name="表:æ•°æ®ç‚¹">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="data-series-current" select="position()"/>
+ <xsl:with-param name="cell-current" select="'1'"/>
+ <xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
+ </xsl:call-template>
+ </chart:series>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®ç‚¹">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:param name="data-series-current"/>
+ <xsl:param name="cell-current"/>
+ <xsl:param name="fixed-cell-sum"/>
+ <xsl:choose>
+ <xsl:when test="$cell-current>$fixed-cell-sum"/>
+ <xsl:otherwise>
+ <chart:data-point>
+ <xsl:attribute name="chart:style-name"><xsl:value-of select="concat('data-point',$data-series-current,$cell-current)"/></xsl:attribute>
+ </chart:data-point>
+ <xsl:call-template name="表:æ•°æ®ç‚¹">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="data-series-current" select="$data-series-current"/>
+ <xsl:with-param name="cell-current" select="$cell-current +1"/>
+ <xsl:with-param name="fixed-cell-sum" select="$fixed-cell-sum"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="表:图表区å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <style:style style:name="chart-area" style:family="chart">
+ <xsl:for-each select="node()">
+ <xsl:choose>
+ <xsl:when test="name(.)='表:边框'">
+ <style:graphic-properties>
+ <xsl:call-template name="uof:边框"/>
+ </style:graphic-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:填充'">
+ <style:graphic-properties>
+ <xsl:call-template name="图:填充类型"/>
+ </style:graphic-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:字体'">
+ <style:text-properties>
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </style:text-properties>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </style:style>
+ </xsl:template>
+ <xsl:template name="表:绘图区å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <style:style style:name="plot-area" style:family="chart">
+ <style:chart-properties>
+ <xsl:choose>
+ <xsl:when test="$table-subtype='bar_stacked' or $table-subtype='column_stacked' or $table-subtype='line_stacked'">
+ <xsl:attribute name="chart:stacked">true</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$table-subtype='bar_percent' or $table-subtype='column_percent' or $table-subtype='line_percent'">
+ <xsl:attribute name="chart:percentage">true</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:attribute name="chart:vertical"><xsl:choose><xsl:when test="$table-type='bar'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="chart:series-source"><xsl:choose><xsl:when test="$series-generate-type='row'">rows</xsl:when><xsl:otherwise>columns</xsl:otherwise></xsl:choose></xsl:attribute>
+ </style:chart-properties>
+ </style:style>
+ </xsl:template>
+ <xsl:template name="表:图表背景墙å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <style:style style:name="chart-wall" style:family="chart">
+ <style:graphic-properties>
+ <xsl:for-each select="node()">
+ <xsl:choose>
+ <xsl:when test="name(.)='表:边框'">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:when>
+ <xsl:when test="name(.)='表:填充'">
+ <xsl:call-template name="图:填充类型"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </style:graphic-properties>
+ </style:style>
+ </xsl:template>
+ <xsl:template name="表:分类轴å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <style:style style:name="category-axis" style:family="chart">
+ <xsl:call-template name="表:å标轴类型">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="axis-type" select="'category axis'"/>
+ </xsl:call-template>
+ </style:style>
+ </xsl:template>
+ <xsl:template name="表:数值轴å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <style:style style:name="value-axis" style:family="chart">
+ <xsl:call-template name="表:å标轴类型">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="axis-type" select="'value axis'"/>
+ </xsl:call-template>
+ </style:style>
+ </xsl:template>
+ <xsl:template name="表:图例å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <style:style style:name="legend" style:family="chart">
+ <xsl:for-each select="node()">
+ <xsl:choose>
+ <xsl:when test="name(.)='表:边框'">
+ <style:graphic-properties>
+ <xsl:call-template name="uof:边框"/>
+ </style:graphic-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:填充'">
+ <style:graphic-properties>
+ <xsl:call-template name="图:填充类型"/>
+ </style:graphic-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:字体'">
+ <style:text-properties>
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </style:text-properties>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </style:style>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®è¡¨å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <style:style style:name="data-table" style:family="chart">
+ <xsl:for-each select="node()">
+ <xsl:choose>
+ <xsl:when test="name(.)='表:边框'">
+ <style:graphic-properties>
+ <xsl:call-template name="uof:边框"/>
+ </style:graphic-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:填充'">
+ <style:graphic-properties>
+ <xsl:call-template name="图:填充类型"/>
+ </style:graphic-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:字体'">
+ <style:text-properties>
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </style:text-properties>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </style:style>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®ç³»åˆ—集å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:for-each select="表:æ•°æ®ç³»åˆ—">
+ <style:style style:family="chart">
+ <xsl:variable name="current-positon" select="position()"/>
+ <xsl:attribute name="style:name"><xsl:value-of select="concat('data-series',$current-positon)"/></xsl:attribute>
+ <xsl:call-template name="表:æ•°æ®ç‚¹ç±»åž‹">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="recall-type" select="'data-series'"/>
+ </xsl:call-template>
+ </style:style>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®ç‚¹é›†å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:for-each select="表:æ•°æ®ç‚¹">
+ <style:style style:family="chart">
+ <xsl:attribute name="style:name"><xsl:value-of select="concat('data-point',@表:系列,@表:点)"/></xsl:attribute>
+ <xsl:call-template name="表:æ•°æ®ç‚¹ç±»åž‹">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ <xsl:with-param name="recall-type" select="'data-point'"/>
+ </xsl:call-template>
+ </style:style>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:网格线集å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:for-each select="表:网格线">
+ <xsl:choose>
+ <xsl:when test="@表:ä½ç½®='category axis'">
+ <style:style style:name="category-axis-grid" style:family="chart">
+ <style:graphic-properties>
+ <xsl:call-template name="uof:边框"/>
+ </style:graphic-properties>
+ </style:style>
+ </xsl:when>
+ <xsl:when test="@表:ä½ç½®='value axis'">
+ <style:style style:name="value-axis-grid" style:family="chart">
+ <style:graphic-properties>
+ <xsl:call-template name="uof:边框"/>
+ </style:graphic-properties>
+ </style:style>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®æºå¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:for-each select="表:系列">
+ <style:style style:family="chart">
+ <xsl:variable name="current-positon" select="position()"/>
+ <xsl:attribute name="style:name"><xsl:value-of select="concat('data-source',$current-positon)"/></xsl:attribute>
+ </style:style>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:标题集å¼æ ·">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:for-each select="表:标题">
+ <xsl:choose>
+ <xsl:when test="@表:ä½ç½®='chart'">
+ <style:style style:name="chart-title" style:family="chart">
+ <xsl:call-template name="表:标题类型">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </style:style>
+ </xsl:when>
+ <xsl:when test="@表:ä½ç½®='category axis'">
+ <style:style style:name="category-axis-title" style:family="chart">
+ <xsl:call-template name="表:标题类型">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </style:style>
+ </xsl:when>
+ <xsl:when test="@表:ä½ç½®='value axis'">
+ <style:style style:name="value-axis-title" style:family="chart">
+ <xsl:call-template name="表:标题类型">
+ <xsl:with-param name="table-name" select="$table-name"/>
+ <xsl:with-param name="table-type" select="$table-type"/>
+ <xsl:with-param name="table-subtype" select="$table-subtype"/>
+ <xsl:with-param name="series-value-start" select="$series-value-start"/>
+ <xsl:with-param name="series-value-end" select="$series-value-end"/>
+ <xsl:with-param name="series-generate-type" select="$series-generate-type"/>
+ </xsl:call-template>
+ </style:style>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:å标轴类型">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:param name="axis-type"/>
+ <style:chart-properties>
+ <xsl:choose>
+ <xsl:when test="@表:主刻度类型='cross'">
+ <xsl:attribute name="chart:tick-marks-major-inner">true</xsl:attribute>
+ <xsl:attribute name="chart:tick-marks-major-outer">true</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@表:主刻度类型='inside'">
+ <xsl:attribute name="chart:tick-marks-major-inner">true</xsl:attribute>
+ <xsl:attribute name="chart:tick-marks-major-outer">false</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@表:主刻度类型='outside'">
+ <xsl:attribute name="chart:tick-marks-major-inner">false</xsl:attribute>
+ <xsl:attribute name="chart:tick-marks-major-outer">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@表:次刻度类型='cross'">
+ <xsl:attribute name="chart:tick-marks-minor-inner">true</xsl:attribute>
+ <xsl:attribute name="chart:tick-marks-minor-outer">true</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@表:次刻度类型='inside'">
+ <xsl:attribute name="chart:tick-marks-minor-inner">true</xsl:attribute>
+ <xsl:attribute name="chart:tick-marks-minor-outer">false</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@表:次刻度类型='outside'">
+ <xsl:attribute name="chart:tick-marks-minor-inner">false</xsl:attribute>
+ <xsl:attribute name="chart:tick-marks-minor-outer">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ <xsl:if test="@表:刻度线标志='next to axis'">
+ <xsl:attribute name="chart:display-label">true</xsl:attribute>
+ </xsl:if>
+ <xsl:for-each select="node()">
+ <xsl:choose>
+ <xsl:when test="name(.)='表:线型'">
+ <xsl:call-template name="uof:线型"/>
+ </xsl:when>
+ <xsl:when test="name(.)='表:数值'">
+ <xsl:attribute name="chart:link-data-style-to-source"><xsl:value-of select="@表:链接到æº"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="name(.)='表:刻度'">
+ <xsl:call-template name="表:刻度类型"/>
+ </xsl:when>
+ <xsl:when test="name(.)='表:对é½'">
+ <xsl:if test="表:文字方å‘">
+ <xsl:attribute name="fo:direction"><xsl:value-of select="表:文字方å‘"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:旋转角度">
+ <xsl:attribute name="text:rotation-angle"><xsl:value-of select="表:旋转角度"/></xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </style:chart-properties>
+ <xsl:if test="表:字体">
+ <xsl:for-each select="表:字体">
+ <xsl:element name="style:text-properties">
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="表:æ•°æ®ç‚¹ç±»åž‹">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:param name="recall-type"/>
+ <xsl:if test="name(.)='表:æ•°æ®ç‚¹'">
+ <style:chart-properties>
+ <xsl:if test="$table-type='pie' and $table-subtype='pie_offset1' and @表:点='1'">
+ <xsl:attribute name="chart:pie-offset">10</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$table-type='pie' and $table-subtype='pie_offset2'">
+ <xsl:attribute name="chart:pie-offset">10</xsl:attribute>
+ </xsl:if>
+ </style:chart-properties>
+ </xsl:if>
+ <xsl:for-each select="node()">
+ <xsl:choose>
+ <xsl:when test="name(.)='表:边框'">
+ <style:graphic-properties>
+ <xsl:call-template name="uof:边框"/>
+ </style:graphic-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:填充'">
+ <style:graphic-properties>
+ <xsl:call-template name="图:填充类型"/>
+ </style:graphic-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:字体'">
+ <style:text-properties>
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </style:text-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:显示标志'">
+ <style:chart-properties>
+ <xsl:if test="@表:类别å">
+ <xsl:attribute name="chart:data-label-text"><xsl:value-of select="@表:类别å"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@表:数值">
+ <xsl:attribute name="chart:data-label-number">value</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@表:百分数">
+ <xsl:attribute name="chart:data-label-number">percentage</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@表:图例标志">
+ <xsl:attribute name="chart:data-label-symbol"><xsl:value-of select="@表:图例标志"/></xsl:attribute>
+ </xsl:if>
+ </style:chart-properties>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="表:标题类型">
+ <xsl:param name="table-name"/>
+ <xsl:param name="table-type"/>
+ <xsl:param name="table-subtype"/>
+ <xsl:param name="series-value-start"/>
+ <xsl:param name="series-value-end"/>
+ <xsl:param name="series-generate-type"/>
+ <xsl:for-each select="node()">
+ <xsl:choose>
+ <xsl:when test="name(.)='表:边框'">
+ <style:graphic-properties>
+ <xsl:call-template name="uof:边框"/>
+ </style:graphic-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:填充'">
+ <style:graphic-properties>
+ <xsl:call-template name="图:填充类型"/>
+ </style:graphic-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:对é½'">
+ <style:chart-properties>
+ <xsl:call-template name="表:对é½æ ¼å¼ç±»åž‹"/>
+ </style:chart-properties>
+ </xsl:when>
+ <xsl:when test="name(.)='表:字体'">
+ <style:text-properties>
+ <xsl:call-template name="å­—:å¥å±žæ€§ç±»åž‹"/>
+ </style:text-properties>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="uof:边框">
+ <xsl:if test="@uof:类型">
+ <xsl:variable name="type" select="@uof:类型"/>
+ <xsl:attribute name="draw:stroke"><xsl:choose><xsl:when test="@uof:类型='single'">solid</xsl:when><xsl:when test="@uof:类型='none'">none</xsl:when><xsl:otherwise>dash</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="draw:stroke-dash"><xsl:choose><xsl:when test="$type='dash'">Ultrafine_20_Dashed</xsl:when><xsl:when test="$type='dot-dash'">Ultrafine_20_2_20_Dots_20_3_20_Dashes</xsl:when><xsl:when test="$type='dashed-heavy'">Fine_20_Dashed</xsl:when><xsl:when test="$type='dotted' ">Fine_20_Dotted</xsl:when><xsl:when test="$type='dash-long-heavy'">Line_20_with_20_Fine_20_Dots</xsl:when><xsl:when test="$type='dash-long'">Fine_20_Dashed_20__28_var_29_</xsl:when><xsl:when test="$type='dash-dot-dot'">_33__20_Dashes_20_3_20_Dots_20__28_var_29_</xsl:when><xsl:when test="$type='dotted-heavy'">Ultrafine_20_Dotted_20__28_var_29_</xsl:when><xsl:when test="$type='thick'">Line_20_Style_20_9</xsl:when><xsl:when test="$type='dot-dot-dash'">_32__20_Dots_20_1_20_Dash</xsl:when><xsl:when test="$type='dash-dot-dot-heavy'">Dashed_20__28_var_29_</xsl:when><xsl:when test="$type='dash-dot-heavy'">Dash_20_10</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@uof:宽度">
+ <xsl:attribute name="svg:stroke-width"><xsl:value-of select="concat(@uof:宽度,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@uof:颜色">
+ <xsl:attribute name="svg:stroke-color"><xsl:value-of select="@uof:颜色"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="图:填充类型">
+ <xsl:if test="图:颜色">
+ <xsl:attribute name="draw:fill">solid</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:颜色"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:图片">
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-image-name"><xsl:value-of select="图:图片/@图:å称"/></xsl:attribute>
+ <xsl:if test="not(图:图片/@图:ä½ç½®='tile')">
+ <xsl:attribute name="style:repeat"><xsl:choose><xsl:when test="图:图片/@图:ä½ç½®='center'">no-repeat</xsl:when><xsl:when test="图:图片/@图:ä½ç½®='stretch'">stretch</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="图:图案">
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-hatch-name"><xsl:value-of select="图:图案/@图:图形引用"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:æ¸å˜">
+ <xsl:attribute name="draw:fill">gradient</xsl:attribute>
+ <xsl:attribute name="draw:fill-gradient-name"><xsl:value-of select="图:æ¸å˜/@图:图形引用"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="uof:线型">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:template>
+ <xsl:template name="å­—:å¥å±žæ€§ç±»åž‹">
+ <xsl:apply-templates select="./*"/>
+ </xsl:template>
+ <xsl:template name="表:刻度类型">
+ <xsl:if test="表:最å°å€¼">
+ <xsl:attribute name="chart:minimum"><xsl:value-of select="表:最å°å€¼"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:最大值">
+ <xsl:attribute name="chart:maximum"><xsl:value-of select="表:最大值"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:主å•ä½">
+ <xsl:attribute name="chart:interval-major"><xsl:value-of select="表:主å•ä½"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:次å•ä½">
+ <xsl:attribute name="chart:interval-minor"><xsl:value-of select="表:次å•ä½"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:分类交å‰ç‚¹">
+ <xsl:attribute name="chart:origin"><xsl:value-of select="表:分类交å‰ç‚¹"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="表:对é½æ ¼å¼ç±»åž‹">
+ <xsl:if test="表:文字方å‘">
+ <xsl:attribute name="style:direction"><xsl:value-of select="表:文字方å‘"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="表:文字旋转角度">
+ <xsl:attribute name="style:rotation-angle"><xsl:value-of select="表:文字旋转角度"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:字体">
+ <xsl:if test="@å­—:å­—å·">
+ <xsl:attribute name="fo:font-size"><xsl:value-of select="@å­—:å­—å·"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian"><xsl:value-of select="@å­—:å­—å·"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-complex"><xsl:value-of select="@å­—:å­—å·"/>pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@å­—:ç›¸å¯¹å­—å· and self::node( )[not(parent::å­—:å¥å±žæ€§)]">
+ <xsl:variable name="stylename" select="parent::node()/@å­—:基å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="zihao">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†//uof:段è½å¼æ ·[@å­—:标识符=$stylename]">
+ <xsl:value-of select="å­—:字体/@å­—:å­—å·"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="font-size" select="@å­—:相对字å·"/>
+ <xsl:attribute name="fo:font-size"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-complex"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@字:颜色">
+ <xsl:attribute name="fo:color"><xsl:value-of select="string(@字:颜色)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@字:中文字体引用">
+ <xsl:attribute name="style:font-family-asian"><xsl:value-of select="@字:中文字体引用"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@字:西文字体引用">
+ <xsl:attribute name="fo:font-family"><xsl:value-of select="@字:西文字体引用"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:斜体">
+ <xsl:if test="@字:值='true'">
+ <xsl:attribute name="fo:font-style">italic</xsl:attribute>
+ <xsl:attribute name="fo:font-style-asian">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-asian">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-complex">italic</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:粗体">
+ <xsl:if test="@字:值='true'">
+ <xsl:attribute name="fo:font-weight">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-asian">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-complex">bold</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:下划线">
+ <xsl:choose>
+ <xsl:when test="@字:类型 = 'single'">
+ <xsl:attribute name="style:text-underline-style">solid</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'double'">
+ <xsl:attribute name="style:text-underline-style">solid</xsl:attribute>
+ <xsl:attribute name="style:text-underline-type">double</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'thick'">
+ <xsl:attribute name="style:text-underline-style">solid</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dotted'">
+ <xsl:attribute name="style:text-underline-style">dotted</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dotted-heavy'">
+ <xsl:attribute name="style:text-underline-style">dotted</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash'">
+ <xsl:attribute name="style:text-underline-style">dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dashed-heavy'">
+ <xsl:attribute name="style:text-underline-style">dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-long'">
+ <xsl:attribute name="style:text-underline-style">long-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-long-heavy'">
+ <xsl:attribute name="style:text-underline-style">long-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dot-dash'">
+ <xsl:attribute name="style:text-underline-style">dot-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-dot-heavy'">
+ <xsl:attribute name="style:text-underline-style">dot-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dot-dot-dash'">
+ <xsl:attribute name="style:text-underline-style">dot-dot-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-dot-dot-heavy'">
+ <xsl:attribute name="style:text-underline-style">dot-dot-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'wave'">
+ <xsl:attribute name="style:text-underline-style">wave</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'wavy-heavy'">
+ <xsl:attribute name="style:text-underline-style">wave</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'wavy-double'">
+ <xsl:attribute name="style:text-underline-style">wave</xsl:attribute>
+ <xsl:attribute name="style:text-underline-type">double</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@字:颜色">
+ <xsl:attribute name="style:text-underline-color"><xsl:choose><xsl:when test="@字:颜色='auto'">font-color</xsl:when><xsl:otherwise><xsl:value-of select="@字:颜色"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:text-underline-color">font-color</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:ç€é‡å·">
+ <xsl:if test="not(@字:类型='none')">
+ <xsl:choose>
+ <xsl:when test="@字:类型='accent above' ">
+ <xsl:attribute name="style:text-emphasize">accent above</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='dot above' ">
+ <xsl:attribute name="style:text-emphasize">dot above</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='disc above' ">
+ <xsl:attribute name="style:text-emphasize">disc above</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='circle above' ">
+ <xsl:attribute name="style:text-emphasize">circle above</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='accent below' ">
+ <xsl:attribute name="style:text-emphasize">accent below</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='dot below' ">
+ <xsl:attribute name="style:text-emphasize">dot below</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='disc below' ">
+ <xsl:attribute name="style:text-emphasize">disc below</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='circle below' ">
+ <xsl:attribute name="style:text-emphasize">circle below</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="字:颜色">
+ <xsl:attribute name="fo:color"><xsl:value-of select="@字:颜色"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="å­—:éšè—文字">
+ <xsl:attribute name="text:display"><xsl:value-of select="@字:值"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:空心">
+ <xsl:attribute name="style:text-outline"><xsl:value-of select="@字:值"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:阴影">
+ <xsl:if test="not(@字:值='false')">
+ <xsl:attribute name="fo:text-shadow">1pt 1pt</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:删除线">
+ <xsl:attribute name="style:text-line-through-style">solid</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@字:类型='double'">
+ <xsl:attribute name="style:text-line-through-type">double</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='single'">
+ <xsl:attribute name="style:text-underline-mode">continuous</xsl:attribute>
+ <xsl:attribute name="style:text-line-through-mode">continuous</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='bold'">
+ <xsl:attribute name="style:text-line-through-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='带/'">
+ <xsl:attribute name="style:text-line-through-text">/</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='带X'">
+ <xsl:attribute name="style:text-line-through-text">X</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="@字:颜色[not(.='auto')]">
+ <xsl:attribute name="fo:color">#<xsl:value-of select="."/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:浮雕">
+ <xsl:attribute name="style:font-relief"><xsl:choose><xsl:when test="@字:类型='engrave'">engraved</xsl:when><xsl:when test="@字:类型='emboss'">embossed</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:醒目字体">
+ <xsl:choose>
+ <xsl:when test="@字:类型='small-caps'">
+ <xsl:attribute name="fo:font-variant">small-caps</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='none'">
+ <xsl:attribute name="fo:font-variant">normal</xsl:attribute>
+ <xsl:attribute name="fo:text-transform">none</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:text-transform"><xsl:choose><xsl:when test="@字:类型='uppercase'">uppercase</xsl:when><xsl:when test="@字:类型='lowercase'">lowercase</xsl:when><xsl:when test="@字:类型='capital'">capitalize</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:ä½ç½®">
+ <xsl:attribute name="style:text-position"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:缩放">
+ <xsl:attribute name="style:text-scale"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="å­—:字符间è·">
+ <xsl:attribute name="fo:letter-spacing"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="å­—:调整字间è·">
+ <xsl:attribute name="style:letter-kerning"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:外框">
+ <xsl:attribute name="style:text-outline">true</xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:缩放">
+ <xsl:attribute name="style:text-scale"><xsl:value-of select="."/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="å­—:字符间è·[parent::å­—:å¥å±žæ€§]">
+ <xsl:attribute name="fo:letter-spacing"><xsl:value-of select="concat( number(.)* $other-to-cm-conversion-factor, $uofUnit)"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template name="General-Char-Transition">
+ <xsl:param name="input-char"/>
+ <xsl:param name="output-type"/>
+ <xsl:choose>
+ <xsl:when test="$input-char='A' or $input-char='a' or $input-char='1' or $input-char='Roman_I' or $input-char='Roman_i' or $input-char='一' or $input-char='壹' or $input-char='甲' or $input-char='å­'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">1</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">a</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">A</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">I</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">i</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">1</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">一</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">1</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">壹</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">1</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">甲</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">å­</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='B' or $input-char='b' or $input-char='2' or $input-char='Roman_II' or $input-char='Roman_ii' or $input-char='二' or $input-char='贰' or $input-char='乙' or $input-char='丑'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">2</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">b</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">B</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">II</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">ii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">ï¼’</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">2</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">è´°</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">2</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">ä¹™</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">丑</xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='C' or $input-char='c' or $input-char='3' or $input-char='Roman_III' or $input-char='Roman_iii' or $input-char='三' or $input-char='å' or $input-char='丙' or $input-char='寅'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">3</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">c</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">C</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">III</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">iii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">3</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">三</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">3</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">å</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">3</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">丙</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">寅</xsl:when>
+ <xsl:otherwise>3</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='D' or $input-char='d' or $input-char='4' or $input-char='Roman_IV' or $input-char='Roman_iv' or $input-char='å››' or $input-char='肆' or $input-char='ä¸' or $input-char='å¯'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">4</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">d</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">D</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">IV</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">iv</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">ï¼”</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å››</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">4</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">肆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">4</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">ä¸</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">å¯</xsl:when>
+ <xsl:otherwise>4</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='E' or $input-char='e' or $input-char='5' or $input-char='Roman_V' or $input-char='Roman_v' or $input-char='五' or $input-char='ä¼' or $input-char='戊' or $input-char='è¾°'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">5</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">e</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">E</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">V</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">v</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">5</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">五</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">5</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">ä¼</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">5</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">戊</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">è¾°</xsl:when>
+ <xsl:otherwise>5</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='F' or $input-char='f' or $input-char='6' or $input-char='Roman_VI' or $input-char='Roman_vi' or $input-char='六' or $input-char='陆' or $input-char='己' or $input-char='巳'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">6</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">f</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">F</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">VI</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">vi</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">ï¼–</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å…­</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">ï¼–</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">陆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">ï¼–</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">å·±</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">å·³</xsl:when>
+ <xsl:otherwise>6</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='G' or $input-char='g' or $input-char='7' or $input-char='ï¼—' or $input-char='Roman_VII' or $input-char='Roman_vii' or $input-char='七' or $input-char='柒' or $input-char='庚' or $input-char='åˆ'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">7</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">g</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">G</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">VII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">vii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">ï¼—</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">七</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">7</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">柒</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">7</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">庚</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">åˆ</xsl:when>
+ <xsl:otherwise>7</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='H' or $input-char='h' or $input-char='8' or $input-char='Roman_VIII' or $input-char='Roman_viii' or $input-char='å…«' or $input-char='æŒ' or $input-char='è¾›' or $input-char='未'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">8</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">h</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">H</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">VIII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">viii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">8</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å…«</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">8</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">æŒ</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">8</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">è¾›</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">未</xsl:when>
+ <xsl:otherwise>8</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='I' or $input-char='i' or $input-char='9' or $input-char='Roman_IX' or $input-char='Roman_ix' or $input-char='ä¹' or $input-char='玖' or $input-char='壬' or $input-char='申'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">9</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">i</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">I</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">IX</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">ix</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">ï¼™</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">ä¹</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">ï¼™</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">玖</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">ï¼™</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">壬</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">申</xsl:when>
+ <xsl:otherwise>9</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='J' or $input-char='j' or $input-char='10' or $input-char='Roman_X' or $input-char='Roman_x' or $input-char='å' or $input-char='拾' or $input-char='癸' or $input-char='é…‰'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">10</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">j</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">J</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">X</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">x</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">10</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">10</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">10</xsl:when>
+ <xsl:when test="$output-type='TIAN_GAN_ZH'">癸</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">é…‰</xsl:when>
+ <xsl:otherwise>10</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='K' or $input-char='k' or $input-char='11' or $input-char='Roman_XI' or $input-char='Roman_xi' or $input-char='å一' or $input-char='拾壹' or $input-char='戌'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">11</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">k</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">K</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XI</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xi</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">11</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å一</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">11</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾壹</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">11</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">戌</xsl:when>
+ <xsl:otherwise>11</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='L' or $input-char='l' or $input-char='12' or $input-char='Roman_XII' or $input-char='Roman_xii' or $input-char='å二' or $input-char='拾贰' or $input-char='亥'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">12</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">l</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">L</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">12</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å二</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">12</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾贰</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">12</xsl:when>
+ <xsl:when test="$output-type='DI_ZI_ZH'">亥</xsl:when>
+ <xsl:otherwise>12</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='M' or $input-char='m' or $input-char='13' or $input-char='Roman_XIII' or $input-char='Roman_xiii' or $input-char='å三' or $input-char='拾å'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">13</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">m</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">M</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XIII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xiii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">13</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å三</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">13</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾å</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">13</xsl:when>
+ <xsl:otherwise>13</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='N' or $input-char='n' or $input-char='14' or $input-char='Roman_XIV' or $input-char='Roman_xiv' or $input-char='åå››' or $input-char='拾肆'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">14</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">n</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">N</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XIV</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xiv</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">14</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">åå››</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">14</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾肆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">14</xsl:when>
+ <xsl:otherwise>14</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='O' or $input-char='o' or $input-char='15' or $input-char='Roman_XV' or $input-char='Roman_xv' or $input-char='å五' or $input-char='拾ä¼'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">15</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">o</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">O</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XV</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xv</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">15</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å五</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">15</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾ä¼</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">15</xsl:when>
+ <xsl:otherwise>15</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='P' or $input-char='p' or $input-char='16' or $input-char='Roman_XVI' or $input-char='Roman_xvi' or $input-char='åå…­' or $input-char='拾陆'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">16</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">p</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">P</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XVI</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xvi</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">16</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">åå…­</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">16</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾陆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">16</xsl:when>
+ <xsl:otherwise>16</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='Q' or $input-char='q' or $input-char='17' or $input-char='Roman_XVII' or $input-char='Roman_xvii' or $input-char='å七' or $input-char='拾柒'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">17</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">q</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">Q</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XVII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xvii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">17</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">å七</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">17</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾柒</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">17</xsl:when>
+ <xsl:otherwise>17</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='R' or $input-char='r' or $input-char='18' or $input-char='Roman_XVIII' or $input-char='Roman_xviii' or $input-char='åå…«' or $input-char='拾æŒ'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">18</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">r</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">R</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XVIII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xviii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">18</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">åå…«</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">18</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾æŒ</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">18</xsl:when>
+ <xsl:otherwise>18</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='S' or $input-char='s' or $input-char='19' or $input-char='Roman_XIX' or $input-char='Roman_xix' or $input-char='åä¹' or $input-char='拾玖'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">19</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">s</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">S</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XIX</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xix</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">19</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">åä¹</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">19</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">拾玖</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">19</xsl:when>
+ <xsl:otherwise>19</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='T' or $input-char='t' or $input-char='20' or $input-char='Roman_XX' or $input-char='Roman_xx' or $input-char='二å' or $input-char='贰拾'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">20</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">t</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">T</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XX</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xx</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">20</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二å</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">20</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">20</xsl:when>
+ <xsl:otherwise>20</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='U' or $input-char='u' or $input-char='21' or $input-char='Roman_XXI' or $input-char='Roman_xxi' or $input-char='二å一' or $input-char='贰拾壹'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">21</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">u</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">U</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXI</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxi</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">21</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二å一</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">21</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾壹</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">21</xsl:when>
+ <xsl:otherwise>21</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='V' or $input-char='v' or $input-char='22' or $input-char='Roman_XXII' or $input-char='Roman_xxii' or $input-char='二å二' or $input-char='贰拾贰'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">22</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">v</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">V</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">22</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二å二</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">22</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾贰</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">22</xsl:when>
+ <xsl:otherwise>22</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='W' or $input-char='w' or $input-char='23' or $input-char='Roman_XXIII' or $input-char='Roman_xxiii' or $input-char='二å三' or $input-char='贰拾å'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">23</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">w</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">W</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXIII</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxiii</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">23</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二å三</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">23</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾å</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">23</xsl:when>
+ <xsl:otherwise>23</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='X' or $input-char='x' or $input-char='24' or $input-char='Roman_XXIV' or $input-char='Roman_xxiv' or $input-char='二åå››' or $input-char='贰拾肆'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">24</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">x</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">X</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXIV</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxiv</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">24</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二åå››</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">24</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾肆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">24</xsl:when>
+ <xsl:otherwise>24</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='Y' or $input-char='y' or $input-char='25' or $input-char='Roman_XXV' or $input-char='Roman_xxv' or $input-char='二å五' or $input-char='贰拾ä¼'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">25</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">y</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">Y</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXV</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxv</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">25</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二å五</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">25</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾ä¼</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">25</xsl:when>
+ <xsl:otherwise>25</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$input-char='Z' or $input-char='z' or $input-char='26' or $input-char='Roman_XXVI' or $input-char='Roman_xxvi' or $input-char='二åå…­' or $input-char='贰拾陆'">
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">26</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">z</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">Z</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">XXVI</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">xxvi</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">26</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">二åå…­</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">26</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">贰拾陆</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">26</xsl:when>
+ <xsl:otherwise>26</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$output-type='ARABIC'">1</xsl:when>
+ <xsl:when test="$output-type='CHARS_LOWER_LETTER'">a</xsl:when>
+ <xsl:when test="$output-type='CHARS_UPPER_LETTER'">A</xsl:when>
+ <xsl:when test="$output-type='ROMAN_UPPER'">I</xsl:when>
+ <xsl:when test="$output-type='ROMAN_LOWER'">i</xsl:when>
+ <xsl:when test="$output-type='FULLWIDTH_ARABIC'">1</xsl:when>
+ <xsl:when test="$output-type='NUMBER_LOWER_ZH'">一</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH_TW'">1</xsl:when>
+ <xsl:when test="$output-type='NUMBER_UPPER_ZH'">壹</xsl:when>
+ <xsl:when test="$output-type='CIRCLE_NUMBER'">1</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--RedOffice comment (Zengjh) end charts-->
+ <!-- 以下模æ¿çš„作用是将网格线颜色由16进制转æ¢ä¸ºå进制 -->
+ <xsl:template name="transform-hex-to-decimal">
+ <xsl:param name="number"/>
+ <xsl:variable name="R-color-number">
+ <xsl:call-template name="color-hex-to-decimal">
+ <xsl:with-param name="chars" select="substring($number,2,2)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="G-color-number">
+ <xsl:call-template name="color-hex-to-decimal">
+ <xsl:with-param name="chars" select="substring($number,4,2)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="B-color-number">
+ <xsl:call-template name="color-hex-to-decimal">
+ <xsl:with-param name="chars" select="substring($number,6,2)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$R-color-number * 65536 + $G-color-number * 256 + $B-color-number"/>
+ </xsl:template>
+ <!-- 以下模æ¿çš„作用是为R或G或B颜色转æ¢ä¸ºå进制形å¼-->
+ <xsl:template name="color-hex-to-decimal">
+ <xsl:param name="chars"/>
+ <xsl:variable name="first-num">
+ <xsl:call-template name="hex-to-decimal">
+ <xsl:with-param name="char" select="substring($chars,1,1)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="second-num">
+ <xsl:call-template name="hex-to-decimal">
+ <xsl:with-param name="char" select="substring($chars,2,1)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$first-num *16 + $second-num"/>
+ </xsl:template>
+ <xsl:template name="hex-to-decimal">
+ <xsl:param name="char"/>
+ <xsl:choose>
+ <xsl:when test="$char='0'">0</xsl:when>
+ <xsl:when test="$char='1'">1</xsl:when>
+ <xsl:when test="$char='2'">2</xsl:when>
+ <xsl:when test="$char='3'">3</xsl:when>
+ <xsl:when test="$char='4'">4</xsl:when>
+ <xsl:when test="$char='5'">5</xsl:when>
+ <xsl:when test="$char='6'">6</xsl:when>
+ <xsl:when test="$char='7'">7</xsl:when>
+ <xsl:when test="$char='8'">8</xsl:when>
+ <xsl:when test="$char='9'">9</xsl:when>
+ <xsl:when test="$char='a'">10</xsl:when>
+ <xsl:when test="$char='b'">11</xsl:when>
+ <xsl:when test="$char='c'">12</xsl:when>
+ <xsl:when test="$char='d'">13</xsl:when>
+ <xsl:when test="$char='e'">14</xsl:when>
+ <xsl:when test="$char='f'">15</xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <!-- end -->
+ <!--ro000179 chenjh-->
+ <xsl:template name="search-left-top-in-tables">
+ <xsl:param name="cellstylename"/>
+ <xsl:param name="tableslist"/>
+ <xsl:param name="return"/>
+ <xsl:choose>
+ <xsl:when test="$tableslist and $return=''">
+ <xsl:variable name="firsttablerows" select="$tableslist[1]//表:行"/>
+ <xsl:variable name="first-left-top">
+ <xsl:call-template name="search-left-top-inatable">
+ <xsl:with-param name="row-num" select="'1'"/>
+ <xsl:with-param name="firsttablerows" select="$firsttablerows"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="return" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="rest-left-top">
+ <xsl:call-template name="search-left-top-in-tables">
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="tableslist" select="$tableslist[position()!=1]"/>
+ <xsl:with-param name="return" select="$first-left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-left-top!=''">
+ <xsl:value-of select="$first-left-top"/>
+ </xsl:when>
+ <xsl:when test="$rest-left-top!=''">
+ <xsl:value-of select="$rest-left-top"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- 以下模æ¿çš„作用为在一个table中寻找左上角-->
+ <xsl:template name="search-left-top-inatable">
+ <xsl:param name="row-num"/>
+ <xsl:param name="firsttablerows"/>
+ <xsl:param name="cellstylename"/>
+ <xsl:param name="return"/>
+ <xsl:choose>
+ <xsl:when test="$firsttablerows and $return=''">
+ <xsl:variable name="firstcells" select="$firsttablerows[1]/表:å•å…ƒæ ¼"/>
+ <xsl:variable name="first-left-top">
+ <xsl:call-template name="search-left-top-inarow">
+ <xsl:with-param name="row-num" select="$row-num"/>
+ <xsl:with-param name="firstcells" select="$firstcells"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="return" select="''"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="row-num-p">
+ <xsl:choose>
+ <xsl:when test="$firsttablerows[1]/@表:跨度">
+ <xsl:value-of select="$row-num+ $firsttablerows[1]/@表:跨度"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$row-num+1"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="rest-left-top">
+ <xsl:call-template name="search-left-top-inatable">
+ <xsl:with-param name="row-num" select="$row-num-p"/>
+ <xsl:with-param name="firsttablerows" select="$firsttablerows[position()!=1]"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="return" select="$first-left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-left-top!=''">
+ <xsl:value-of select="$first-left-top"/>
+ </xsl:when>
+ <xsl:when test="$rest-left-top !=''">
+ <xsl:value-of select="$rest-left-top "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- 以下模æ¿çš„作用为在æŸä¸€è¡Œä¸­å¯»æ‰¾å·¦ä¸Šè§’-->
+ <xsl:template name="search-left-top-inarow">
+ <xsl:param name="row-num"/>
+ <xsl:param name="firstcells"/>
+ <xsl:param name="cellstylename"/>
+ <xsl:param name="return"/>
+ <xsl:choose>
+ <xsl:when test="$firstcells and $return=''">
+ <xsl:variable name="firstcell" select="$firstcells[1]"/>
+ <xsl:variable name="first-left-top">
+ <xsl:call-template name="search-left-top-inacell">
+ <xsl:with-param name="row-num" select="$row-num"/>
+ <xsl:with-param name="cell" select="$firstcell"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="rest-left-top">
+ <xsl:call-template name="search-left-top-inarow">
+ <xsl:with-param name="row-num" select="$row-num"/>
+ <xsl:with-param name="firstcells" select="$firstcells[position()!=1]"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="return" select="$first-left-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$first-left-top!=''">
+ <xsl:value-of select="$first-left-top"/>
+ </xsl:when>
+ <xsl:when test="$rest-left-top !=''">
+ <xsl:value-of select="$rest-left-top "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$return"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- 以下的模æ¿çš„作用为判断æŸä¸ªcell是å¦ä¸ºå·¦ä¸Šè§’ -->
+ <xsl:template name="search-left-top-inacell">
+ <xsl:param name="row-num"/>
+ <xsl:param name="cell"/>
+ <xsl:param name="cellstylename"/>
+ <xsl:choose>
+ <xsl:when test="$cell/@表:å¼æ ·å¼•ç”¨=$cellstylename">
+ <xsl:value-of select="concat($cell/ancestor::表:工作表/@表:å称,'.',$cell/@表:列å·,' ',$row-num)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ <!-- <xsl:variable name="style-is-default">
+ <xsl:call-template name="is-default-or-not-condition-format">
+ <xsl:with-param name="column-num" select="$cell/@表:列å·"/>
+ <xsl:with-param name="cell" select="$cell"/>
+ <xsl:with-param name="preceding-cellstylename" select="''"/>
+ <xsl:with-param name="temp-num" select="'0'"/>
+ <xsl:with-param name="cellstylename" select="$cellstylename"/>
+ <xsl:with-param name="table-collumns" select="$cell/ancestor::表:工作表内容//表:列"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$style-is-default='yes' ">
+ <xsl:value-of select="concat($cell/ancestor::表:工作表/@表:å称,'.',$cell/@表:列å·,' ',$row-num)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="''"/>
+ </xsl:otherwise>
+ </xsl:choose> -->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="translate-left-top">
+ <xsl:param name="left-top"/>
+ <xsl:if test="$left-top!=''">
+ <xsl:variable name="column-number" select="substring-before(substring-after($left-top,'.'),' ')"/>
+ <xsl:variable name="column-number1">
+ <xsl:value-of select="floor( $column-number div 26 )"/>
+ </xsl:variable>
+ <xsl:variable name="column-number2">
+ <xsl:value-of select="$column-number mod 26"/>
+ </xsl:variable>
+ <xsl:variable name="column-character1">
+ <xsl:call-template name="number-to-character">
+ <xsl:with-param name="number" select="$column-number1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="column-character2">
+ <xsl:call-template name="number-to-character">
+ <xsl:with-param name="number" select="$column-number2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat(substring-before($left-top,'.'),'.',$column-character1,$column-character2,substring-after($left-top,' '))"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="create-the-condition-format-map">
+ <xsl:param name="condition-format-set"/>
+ <xsl:param name="current-left-top"/>
+ <xsl:if test="$condition-format-set">
+ <xsl:choose>
+ <xsl:when test="contains($condition-format-set[1]/表:区域/text(),$current-left-top)">
+ <xsl:for-each select="$condition-format-set[1]/表:æ¡ä»¶">
+ <xsl:variable name="condition-text">
+ <xsl:choose>
+ <xsl:when test="@表:类型='cell value'">
+ <xsl:choose>
+ <xsl:when test="表:æ“作ç /text()='between' ">
+ <xsl:value-of select="concat('cell-content-is-between','(',表:第一æ“作数/text(),',',表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test=" 表:æ“作ç /text()='not between'">
+ <xsl:value-of select="concat('cell-content-is-not-between','(',表:第一æ“作数/text(),',',表:第二æ“作数/text(),')')"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='equal to'">
+ <xsl:value-of select="concat('cell-content()=',表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='not equal to'">
+ <xsl:value-of select="concat('cell-content()!=',表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='greater than'">
+ <xsl:value-of select="concat('cell-content()&gt;',表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='less than'">
+ <xsl:value-of select="concat('cell-content()&lt;',表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='greater than or equal to'">
+ <xsl:value-of select="concat('cell-content()&gt;=',表:第一æ“作数/text())"/>
+ </xsl:when>
+ <xsl:when test="表:æ“作ç /text()='less than or equal to'">
+ <xsl:value-of select="concat('cell-content()&lt;=',表:第一æ“作数/text())"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="@表:类型='formula'">
+ <xsl:value-of select="concat('is-true-formula','(',表:第一æ“作数/text(),')')"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="style:map">
+ <xsl:attribute name="style:condition"><xsl:value-of select="$condition-text"/></xsl:attribute>
+ <xsl:attribute name="style:apply-style-name"><xsl:value-of select="//uof:å•å…ƒæ ¼å¼æ ·[@表:标识符=current()/表:æ ¼å¼/@表:å¼æ ·å¼•ç”¨]/@表:å称"/></xsl:attribute>
+ <xsl:attribute name="style:base-cell-address"><xsl:value-of select="substring-after($condition-format-set[1]/表:区域/text(),':')"/></xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="create-the-condition-format-map">
+ <xsl:with-param name="condition-format-set" select="$condition-format-set[position()!=1]"/>
+ <xsl:with-param name="current-left-top" select="$current-left-top"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <!--ro000179 end-->
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/uof/uof2odf_text.xsl b/test/user-template/user/xslt/import/uof/uof2odf_text.xsl
new file mode 100644
index 000000000000..abf597853c97
--- /dev/null
+++ b/test/user-template/user/xslt/import/uof/uof2odf_text.xsl
@@ -0,0 +1,4650 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:uof="http://schemas.uof.org/cn/2003/uof" xmlns:表="http://schemas.uof.org/cn/2003/uof-spreadsheet" xmlns:演="http://schemas.uof.org/cn/2003/uof-slideshow" xmlns:字="http://schemas.uof.org/cn/2003/uof-wordproc" xmlns:图="http://schemas.uof.org/cn/2003/graph" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0">
+ <xsl:template match="uof:UOF">
+ <office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:smil="urn:oasis:names:tc:opendocument:xmlns:smil-compatible:1.0" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" office:version="1.0">
+ <xsl:apply-templates select="uof:元数æ®"/>
+ <xsl:apply-templates select="uof:文字处ç†/å­—:公用处ç†è§„则/å­—:文档设置"/>
+ <xsl:apply-templates select="uof:字体集"/>
+ <xsl:apply-templates select="uof:å¼æ ·é›†"/>
+ <xsl:apply-templates select="uof:文字处ç†"/>
+ </office:document>
+ </xsl:template>
+ <xsl:template match="uof:元数æ®">
+ <xsl:element name="office:meta">
+ <meta:generator>UOFText 2004</meta:generator>
+ <dc:title>
+ <xsl:value-of select="uof:标题"/>
+ </dc:title>
+ <dc:description>
+ <xsl:value-of select="uof:摘è¦"/>
+ </dc:description>
+ <dc:subject>
+ <xsl:value-of select="uof:主题"/>
+ </dc:subject>
+ <meta:initial-creator>
+ <xsl:value-of select="uof:创建者"/>
+ </meta:initial-creator>
+ <meta:creation-date>
+ <xsl:value-of select="substring-before( uof:创建日期, 'Z')"/>
+ </meta:creation-date>
+ <dc:creator>
+ <xsl:value-of select="uof:最åŽä½œè€…"/>
+ </dc:creator>
+ <dc:date>
+ <xsl:value-of select="substring-before( uof:编辑时间, 'Z')"/>
+ </dc:date>
+ <meta:printed-by/>
+ <meta:print-date/>
+ <meta:keywords>
+ <meta:keyword>
+ <xsl:value-of select="uof:关键字集/uof:关键字"/>
+ </meta:keyword>
+ </meta:keywords>
+ <dc:language/>
+ <meta:editing-cycles>
+ <xsl:value-of select="uof:编辑次数"/>
+ </meta:editing-cycles>
+ <meta:editing-duration>
+ <xsl:if test="uof:编辑时间">
+ <xsl:value-of select="concat('PT', floor(uof:编辑时间 div 60), 'H', uof:编辑时间 mod 60, 'M0S')"/>
+ </xsl:if>
+ </meta:editing-duration>
+ <meta:user-defined meta:name="Category">
+ <xsl:value-of select="uof:分类"/>
+ </meta:user-defined>
+ <meta:user-defined meta:name="Manager">
+ <xsl:value-of select="uof:ç»ç†å称"/>
+ </meta:user-defined>
+ <meta:user-defined meta:name="Company">
+ <xsl:value-of select="uof:å…¬å¸å称"/>
+ </meta:user-defined>
+ <meta:user-defined meta:name="Version">
+ <xsl:value-of select="uof:创建应用程åº"/>
+ </meta:user-defined>
+ <xsl:if test="uof:文档模æ¿|child::*[@uof:locID='u0013']">
+ <meta:template xlink:type="simple" xlink:actuate="onRequest" xlink:href="{child::*[@uof:locID='u0013']}"/>
+ </xsl:if>
+ <xsl:if test="uof:用户自定义元数æ®é›†/uof:用户自定义元数æ®|child::*[@uof:locID='u0016']/*[@uof:locID='u0017']">
+ <xsl:for-each select="uof:用户自定义元数æ®é›†/uof:用户自定义元数æ®|child::*[@uof:locID='u0016']/*[@uof:locID='u0017']">
+ <xsl:element name="meta:user-defined">
+ <xsl:attribute name="meta:name"><xsl:value-of select="@uof:å称"/></xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:if>
+ <meta:document-statistic>
+ <xsl:attribute name="meta:page-count">
+ <xsl:choose>
+ <xsl:when test="child::*[@uof:locID='u0020']"><xsl:value-of select="uof:页数"/></xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:段è½/å­—:域开始[@å­—:类型='numpages']">
+ <xsl:variable name="date0" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="fmt">
+ <xsl:value-of select="substring-before($date0,' \*')"/>
+ </xsl:variable>
+ <xsl:if test="$fmt='Arabic'"><xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/></xsl:if>
+ <xsl:if test="not($fmt='Arabic')">
+ <xsl:variable name="content">
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$content='I' or $content='i' or $content='A' or $content='a'">1</xsl:when>
+ <xsl:when test="$content='II' or $content='ii' or $content='B' or $content='b'">2</xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="meta:paragraph-count"><xsl:if test="child::*[@uof:locID='u0025']"><xsl:value-of select="uof:段è½æ•°"/></xsl:if></xsl:attribute>
+ <xsl:attribute name="meta:word-count"><xsl:if test="child::*[@uof:locID='u0023']"><xsl:value-of select="uof:中文字符数"/></xsl:if></xsl:attribute>
+ <xsl:attribute name="meta:object-count"><xsl:if test="child::*[@uof:locID='u0026']"><xsl:value-of select="uof:对象数"/></xsl:if></xsl:attribute>
+ <xsl:attribute name="meta:character-count">
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:段è½/å­—:域开始[@å­—:类型='numchars']">
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:for-each>
+ <xsl:if test="child::*[@uof:locID='u0021']"><xsl:value-of select="uof:å­—æ•°"/></xsl:if>
+ </xsl:attribute>
+ </meta:document-statistic>
+ <meta:document-statistic/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:variable name="uofUnit">
+ <xsl:variable name="uu">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:文档设置/å­—:度é‡å•ä½"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$uu='cm'">cm</xsl:when>
+ <xsl:when test="$uu='mm'">mm</xsl:when>
+ <xsl:when test="$uu='pt'">pt</xsl:when>
+ <xsl:when test="$uu='inch'">in</xsl:when>
+ <xsl:otherwise>cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="other-to-cm-conversion-factor">
+ <xsl:choose>
+ <xsl:when test="$uofUnit='cm'">1</xsl:when>
+ <xsl:when test="$uofUnit='mm'">0.1</xsl:when>
+ <xsl:when test="$uofUnit='pt'">0.03527</xsl:when>
+ <xsl:when test="$uofUnit='inch'">2.54</xsl:when>
+ <xsl:when test="$uofUnit='pica'">0.4233</xsl:when>
+ <xsl:otherwise>0.03527</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:template match="uof:å¼æ ·é›†">
+ <xsl:apply-templates select="uof:字体集"/>
+ <xsl:variable name="default_paragraph_style" select="uof:段è½å¼æ ·"/>
+ <xsl:variable name="default_character_style" select="uof:å¥å¼æ ·"/>
+ <xsl:variable name="default_table_style" select="uof:文字表å¼æ ·"/>
+ <office:styles>
+ <xsl:if test="uof:段è½å¼æ ·[@å­—:类型 = 'default']">
+ <style:default-style style:family="paragraph">
+ <xsl:element name="style:paragraph-properties">
+ <xsl:attribute name="style:tab-stop-distance"><xsl:value-of select="concat( number(/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:文档设置/å­—:默认制表ä½ä½ç½®),$uofUnit)"/></xsl:attribute>
+ </xsl:element>
+ <xsl:element name="style:text-properties">
+ <xsl:choose>
+ <xsl:when test="/uof:UOF/uof:å¼æ ·é›†/uof:字体集/uof:默认字体">
+ <xsl:attribute name="style:font-name"><xsl:value-of select="/uof:UOF//uof:字体集/uof:默认字体/@uof:ascii"/></xsl:attribute>
+ <xsl:attribute name="style:font-name-asian"><xsl:value-of select="/uof:UOF//uof:字体集/uof:默认字体/@uof:fareast"/></xsl:attribute>
+ <xsl:attribute name="style:font-name-complex"><xsl:value-of select="/uof:UOF//uof:字体集/uof:默认字体/@uof:cs"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:font-name">Times New Roman</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:apply-templates select="uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·/å­—:字体"/>
+ <xsl:if test="not(uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·/å­—:字体/@å­—:å­—å· or uof:UOF/uof:å¼æ ·é›†/uof:å¥å±žæ€§/å­—:字体/@å­—:å­—å·)">
+ <xsl:attribute name="fo:font-size">10pt</xsl:attribute>
+ <xsl:attribute name="fo:font-size-asian">10pt</xsl:attribute>
+ <xsl:attribute name="fo:font-size-complex">10pt</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </style:default-style>
+ </xsl:if>
+ <xsl:for-each select="uof:段è½å¼æ ·[@å­—:类型='auto']">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:family">paragraph</xsl:attribute>
+ <xsl:attribute name="style:name"><xsl:value-of select="@字:标识符"/></xsl:attribute>
+ <xsl:if test="@å­—:基å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@å­—:基å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@å­—:别å">
+ <xsl:attribute name="style:display-name"><xsl:value-of select="@å­—:别å"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:paragraph-properties">
+ <xsl:call-template name="XDParagraphAttr"/>
+ <xsl:apply-templates select="*[not(name()='字:大纲级别')]"/>
+ <xsl:if test="å­—:制表ä½è®¾ç½®">
+ <xsl:call-template name="ootab"/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:element name="style:text-properties">
+ <xsl:apply-templates select="å­—:å¥å±žæ€§/*"/>
+ </xsl:element>
+ <xsl:variable name="biaoshi" select="@字:标识符"/>
+ <xsl:for-each select="../uof:å¥å¼æ ·">
+ <xsl:if test="@字:标识符=$biaoshi">
+ <xsl:element name="style:text-properties">
+ <xsl:apply-templates select="*"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="uof:å¥å¼æ ·[@å­—:类型='auto']">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="@字:标识符"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="ancestor::å­—:段è½å¼æ ·">
+ <xsl:attribute name="style:family">paragraph</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:element name="style:text-properties">
+ <xsl:apply-templates select="*"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ <style:style style:name="ColumnBreakPara" style:family="paragraph">
+ <style:text-properties fo:break-after="column"/>
+ </style:style>
+ <xsl:if test="uof:å¥å¼æ ·">
+ <style:default-style style:family="text"/>
+ </xsl:if>
+ <style:style style:name="Numbering Symbols" style:family="text"/>
+ <style:style style:name="Bullet Symbols" style:family="text">
+ <style:text-properties style:font-name="StarSymbol" fo:font-size="9pt" style:font-name-asian="StarSymbol" style:font-size-asian="9pt" style:font-name-complex="StarSymbol" style:font-size-complex="9pt"/>
+ </style:style>
+ <xsl:apply-templates select="uof:文字表å¼æ ·" mode="table"/>
+ <xsl:apply-templates select="uof:å¼æ ·"/>
+ <xsl:call-template name="脚注设置"/>
+ <xsl:call-template name="尾注设置"/>
+ <xsl:call-template name="行编å·"/>
+ </office:styles>
+ <xsl:element name="office:automatic-styles">
+ <style:style style:name="PageBreak" style:family="paragraph">
+ <style:text-properties fo:break-before="page"/>
+ </style:style>
+ <xsl:apply-templates select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:段è½/å­—:å¥/å­—:å¥å±žæ€§" mode="style"/>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:å¥">
+ <xsl:variable name="stylename1" select="å­—:å¥å±žæ€§/@å­—:å¼æ ·å¼•ç”¨"/>
+ <xsl:element name="style:style">
+ <xsl:variable name="stylenum">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:å¥" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="style:name"><xsl:value-of select="concat('T',$stylenum)"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="ancestor::å­—:段è½å¼æ ·">
+ <xsl:attribute name="style:family">paragraph</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·">
+ <xsl:if test="$stylename1=@字:标识符">
+ <xsl:choose>
+ <xsl:when test="@å­—:标识符=/uof:UOF/uof:文字处ç†/å­—:主体/å­—:段è½/å­—:å¥/å­—:å¥å±žæ€§/å­—:æ ¼å¼ä¿®è®¢/@å­—:修订信æ¯å¼•ç”¨">
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@字:标识符"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@å­—:基å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:element name="style:text-properties">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·">
+ <xsl:if test="$stylename1=@字:标识符">
+ <xsl:apply-templates select="./å­—:ä½ç½®" mode="oo"/>
+ <xsl:apply-templates select="*[not(name()='å­—:ä½ç½®')]"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:域开始[@å­—:类型 = 'date']">
+ <xsl:element name="number:date-style">
+ <xsl:attribute name="style:name">Date<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'date']"/></xsl:attribute>
+ <xsl:call-template name="日期域"/>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:域开始[@å­—:类型 = 'createdate']">
+ <xsl:element name="number:date-style">
+ <xsl:attribute name="style:name">CreateDate<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'createdate']"/></xsl:attribute>
+ <xsl:call-template name="日期域"/>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:域开始[@å­—:类型 = 'savedate']">
+ <xsl:element name="number:date-style">
+ <xsl:attribute name="style:name">SaveDate<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'savedate']"/></xsl:attribute>
+ <xsl:call-template name="日期域"/>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:域开始[@å­—:类型 = 'time']">
+ <xsl:element name="number:date-style">
+ <xsl:attribute name="style:name">Time<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'time']"/></xsl:attribute>
+ <xsl:call-template name="时间域"/>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:域开始[@å­—:类型 = 'edittime']">
+ <xsl:element name="number:time-style">
+ <xsl:attribute name="style:name">EditTime<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'edittime']"/></xsl:attribute>
+ <xsl:call-template name="编辑时间"/>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:域开始[@å­—:类型 = 'createtime']">
+ <xsl:element name="number:time-style">
+ <xsl:attribute name="style:name">CREATETIME<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'createtime']"/></xsl:attribute>
+ <xsl:call-template name="创建时间"/>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:apply-templates select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:文字表[not(@å­—:类型='sub-table')]" mode="style"/>
+ <xsl:apply-templates select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:å•å…ƒæ ¼" mode="style"/>
+ <xsl:apply-templates select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:è¡Œ[not(../../@å­—:类型='sub-table')]" mode="style"/>
+ <xsl:apply-templates select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:列宽集[not(../../@å­—:类型='sub-table')]" mode="style"/>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:自动编å·ä¿¡æ¯">
+ <xsl:variable name="currlistid" select="@å­—:ç¼–å·å¼•ç”¨"/>
+ <xsl:variable name="currlist" select="."/>
+ <xsl:variable name="rootlist" select="/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·[@å­—:标识符 =$currlistid]"/>
+ <xsl:if test="not(ancestor::å­—:段è½/preceding-sibling::å­—:段è½[1]/å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨= $currlistid)">
+ <xsl:element name="text:list-style">
+ <xsl:attribute name="style:name">List<xsl:value-of select="count(preceding::å­—:自动编å·ä¿¡æ¯)"/></xsl:attribute>
+ <xsl:for-each select="$rootlist">
+ <xsl:for-each select="字:级别">
+ <xsl:choose>
+ <xsl:when test="å­—:项目符å·">
+ <xsl:call-template name="xiangmufuhao">
+ <xsl:with-param name="biaoshifu" select="../@字:标识符"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="å­—:图片符å·å¼•ç”¨">
+ <xsl:call-template name="imagefuhao">
+ <xsl:with-param name="biaoshifu" select="../@字:标识符"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="jibianhao">
+ <xsl:with-param name="biaoshifu" select="../@字:标识符"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:节属性">
+ <xsl:element name="style:page-layout">
+ <xsl:attribute name="style:name">pm<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any"/></xsl:attribute>
+ <xsl:if test="å­—:对称页边è·/@å­—:值='true'">
+ <xsl:attribute name="style:page-usage">mirrored</xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:page-layout-properties">
+ <xsl:if test="å­—:纸张方å‘">
+ <xsl:attribute name="style:print-orientation"><xsl:choose><xsl:when test="å­—:纸张方å‘='portrait'">portrait</xsl:when><xsl:when test="å­—:纸张方å‘='landscape'">landscape</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="fo:page-width"><xsl:value-of select="concat(字:纸张/@uof:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:page-height"><xsl:value-of select="concat(字:纸张/@uof:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="å­—:页边è·">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(å­—:页边è·/@uof:上 ,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(å­—:页边è·/@uof:å·¦,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(å­—:页边è·/@uof:å³,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat(å­—:页边è·/@uof:下,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:装订线/@å­—:ä½ç½®='top'">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(å­—:页边è·/@uof:上 ,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(å­—:页边è·/@uof:å·¦,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(å­—:页边è·/@uof:å³,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:装订线/@å­—:ä½ç½®='left' ">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(å­—:页边è·/@uof:上,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat((å­—:页边è·/@uof:å·¦+ å­—:装订线/@å­—:è·è¾¹ç•Œ),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(å­—:页边è·/@uof:å³,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(å­—:页边è·/@uof:上,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(å­—:页边è·/@uof:å·¦,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(å­—:页边è·/@uof:å³,$uofUnit)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat(å­—:页边è·/@uof:下,$uofUnit)"/></xsl:attribute>
+ <xsl:if test="字:拼页/@字:值='1' or 字:拼页/@字:值='true'">
+ <xsl:attribute name="style:page-usage">mirrored</xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="string(å­—:文字排列方å‘)='vert-r2l'">
+ <xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="string(å­—:文字排列方å‘)='vert-l2r'">
+ <xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="string(å­—:文字排列方å‘)='hori-l2r'">
+ <xsl:attribute name="style:writing-mode">lr-tb</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="string(å­—:文字排列方å‘)='hori-r2l'">
+ <xsl:attribute name="style:writing-mode">lr-tb</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:writing-mode">page</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="字:网格设置/@字:网格类型">
+ <xsl:attribute name="style:layout-grid-mode"><xsl:choose><xsl:when test="字:网格设置/@字:网格类型='line-char'">both-nosnap</xsl:when><xsl:when test="字:网格设置/@字:网格类型='char'">both</xsl:when><xsl:when test="字:网格设置/@字:网格类型='line'">line</xsl:when><xsl:when test="字:网格设置/@字:网格类型='none'">none</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:网格设置/@字:宽度">
+ <xsl:attribute name="style:layout-grid-base-width"><xsl:value-of select="concat(字:网格设置/@字:宽度,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:网格设置/@字:高度">
+ <xsl:attribute name="style:layout-grid-base-height"><xsl:value-of select="concat(字:网格设置/@字:高度,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:网格设置/@字:显示网格">
+ <xsl:attribute name="style:layout-grid-display"><xsl:value-of select="字:网格设置/@字:显示网格"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:网格设置/@å­—:打å°ç½‘æ ¼">
+ <xsl:attribute name="style:layout-grid-print"><xsl:value-of select="å­—:网格设置/@å­—:打å°ç½‘æ ¼"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:稿纸设置/@字:类型">
+ <xsl:attribute name="style:layout-grid-mode"><xsl:choose><xsl:when test="字:稿纸设置/@字:类型='draft-paper' ">both</xsl:when><xsl:when test="字:稿纸设置/@字:类型='letter-paper' ">line</xsl:when><xsl:otherwise>both</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:稿纸设置/@å­—:æ ¼å¼">
+ <xsl:choose>
+ <xsl:when test="å­—:稿纸设置/@å­—:æ ¼å¼='fourth-gear'">
+ <xsl:attribute name="style:layout-grid-base-width">0.728cm</xsl:attribute>
+ <xsl:attribute name="style:layout-grid-base-height">0.728cm</xsl:attribute>
+ <xsl:attribute name="style:layout-grid-ruby-height">0.496cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:稿纸设置/@å­—:æ ¼å¼='third-gear'">
+ <xsl:attribute name="style:layout-grid-base-width">0.584cm</xsl:attribute>
+ <xsl:attribute name="style:layout-grid-base-height">0.584cm</xsl:attribute>
+ <xsl:attribute name="style:layout-grid-ruby-height">0.64cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:稿纸设置/@å­—:æ ¼å¼='second-gear'">
+ <xsl:attribute name="style:layout-grid-base-width">0.728cm</xsl:attribute>
+ <xsl:attribute name="style:layout-grid-base-height">0.728cm</xsl:attribute>
+ <xsl:attribute name="style:layout-grid-ruby-height">0.905cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:稿纸设置/@å­—:æ ¼å¼='first-gear'">
+ <xsl:attribute name="style:layout-grid-base-width">0.728cm</xsl:attribute>
+ <xsl:attribute name="style:layout-grid-base-height">0.728cm</xsl:attribute>
+ <xsl:attribute name="style:layout-grid-ruby-height">1.633cm</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:attribute name="style:layout-grid-display">true</xsl:attribute>
+ <xsl:attribute name="style:layout-grid-print">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:稿纸设置/@字:颜色">
+ <xsl:attribute name="style:layout-grid-color"><xsl:value-of select="字:稿纸设置/@字:颜色"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:边框">
+ <xsl:for-each select="字:边框">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="å­—:å¡«å……">
+ <xsl:for-each select="å­—:å¡«å……">
+ <xsl:call-template name="uof:å¡«å……"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:apply-templates select="å­—:å¡«å……"/>
+ <xsl:attribute name="style:num-format"><xsl:variable name="format"><xsl:value-of select="å­—:页ç è®¾ç½®/@å­—:æ ¼å¼"/></xsl:variable><xsl:call-template name="ooæ•°å­—æ ¼å¼"><xsl:with-param name="oo_format" select="$format"/></xsl:call-template></xsl:attribute>
+ <xsl:if test="å­—:纸张æ¥æº/@å­—:其他页">
+ <xsl:attribute name="style:paper-tray-name"><xsl:value-of select="å­—:纸张æ¥æº/@å­—:其他页"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:分æ /@å­—:æ æ•°">
+ <xsl:apply-templates select="å­—:分æ "/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="å­—:页眉ä½ç½®">
+ <style:header-style>
+ <xsl:element name="style:header-footer-properties">
+ <xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat(å­—:页眉ä½ç½®/@å­—:è·è¾¹ç•Œ,$uofUnit)"/></xsl:attribute>
+ <xsl:variable name="long1" select="å­—:页眉ä½ç½®/@å­—:è·è¾¹ç•Œ"/>
+ <xsl:variable name="long2" select="å­—:页眉ä½ç½®/@å­—:è·ç‰ˆèŠ¯"/>
+ <xsl:variable name="long" select="$long1 + $long2"/>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat($long,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="style:dynamic-spacing">false</xsl:attribute>
+ </xsl:element>
+ </style:header-style>
+ </xsl:if>
+ <xsl:if test="å­—:页脚ä½ç½®">
+ <style:footer-style>
+ <xsl:element name="style:header-footer-properties">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(å­—:页脚ä½ç½®/@å­—:è·è¾¹ç•Œ,$uofUnit)"/></xsl:attribute>
+ <xsl:variable name="long1" select="å­—:页脚ä½ç½®/@å­—:è·è¾¹ç•Œ"/>
+ <xsl:variable name="long2" select="å­—:页脚ä½ç½®/@å­—:è·ç‰ˆèŠ¯"/>
+ <xsl:variable name="long" select="$long1 + $long2"/>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat($long,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="style:dynamic-spacing">false</xsl:attribute>
+ </xsl:element>
+ </style:footer-style>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="å­—:分æ /@å­—:æ æ•°">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">sect<xsl:value-of select="count(preceding::å­—:节属性[å­—:分æ /@å­—:æ æ•°])"/></xsl:attribute>
+ <xsl:attribute name="style:family">section</xsl:attribute>
+ <xsl:element name="style:page-layout-properties">
+ <xsl:element name="style:columns">
+ <xsl:attribute name="fo:column-count"><xsl:value-of select="number(å­—:分æ /@å­—:æ æ•°)"/></xsl:attribute>
+ <xsl:attribute name="fo:column-gap"><xsl:value-of select="concat(number(å­—:分æ /@å­—:分割线宽度),$uofUnit)"/></xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='png' or /uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='jpg' or /uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='bmp' or /uof:UOF/uof:对象集/uof:其他对象/@uof:公有类型='gif' or /uof:UOF/uof:对象集/uof:其他对象/@uof:ç§æœ‰ç±»åž‹='图片'">
+ <style:style style:name="Graphics" style:family="graphic">
+ <style:graphic-properties text:anchor-type="paragraph" svg:x="0cm" svg:y="0cm" style:wrap="none" style:vertical-pos="top" style:vertical-rel="paragraph" style:horizontal-pos="center" style:horizontal-rel="paragraph"/>
+ </style:style>
+ </xsl:if>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形"/>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形/图:文本内容/å­—:段è½/å­—:å¥/å­—:å¥å±žæ€§" mode="style"/>
+ <xsl:call-template name="duanluoshuxing"/>
+ </xsl:element>
+ <office:master-styles>
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体//å­—:节属性">
+ <xsl:element name="style:master-page">
+ <xsl:variable name="master-page-name">
+ <xsl:number count="å­—:节属性" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any"/>
+ </xsl:variable>
+ <xsl:attribute name="style:name"><xsl:choose>
+ <xsl:when test="../@å­—:å称"><xsl:value-of select="../@å­—:å称"/></xsl:when>
+ <xsl:otherwise>Standard</xsl:otherwise>
+ </xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:page-layout-name"><xsl:value-of select="concat('pm', $master-page-name)"/></xsl:attribute>
+ <xsl:if test="following::字:节属性">
+ <xsl:attribute name="style:next-style-name">Standard<xsl:value-of select="$master-page-name +1"/></xsl:attribute>
+ </xsl:if>
+ <xsl:for-each select="字:页眉">
+ <xsl:if test="字:首页页眉 or 字:奇数页页眉">
+ <xsl:element name="style:header">
+ <xsl:apply-templates select="å­—:奇数页页眉/å­—:æ®µè½ | å­—:首页页眉/å­—:æ®µè½ | å­—:奇数页页眉/å­—:文字表 | å­—:首页页眉/å­—:文字表"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="å­—:å¶æ•°é¡µé¡µçœ‰">
+ <xsl:element name="style:header-left">
+ <xsl:apply-templates select="å­—:å¶æ•°é¡µé¡µçœ‰/å­—:æ®µè½ | å­—:å¶æ•°é¡µé¡µçœ‰/å­—:文字表"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:for-each select="字:页脚">
+ <xsl:if test="字:奇数页页脚 or 字:首页页脚">
+ <xsl:element name="style:footer">
+ <xsl:apply-templates select="å­—:奇数页页脚/å­—:æ®µè½ | å­—:首页页脚/å­—:æ®µè½ | å­—:奇数页页脚/å­—:文字表 | å­—:首页页脚/å­—:文字表"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="å­—:å¶æ•°é¡µé¡µè„š">
+ <xsl:element name="style:footer-left">
+ <xsl:apply-templates select="å­—:å¶æ•°é¡µé¡µè„š/å­—:æ®µè½ | å­—:å¶æ•°é¡µé¡µè„š/å­—:文字表"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="å­—:奇å¶é¡µé¡µçœ‰é¡µè„šä¸åŒ">
+ <xsl:element name="style:header-left">
+ </xsl:element>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ </office:master-styles>
+ </xsl:template>
+ <xsl:template match="å­—:å¡«å……">
+ <xsl:choose>
+ <xsl:when test="图:颜色">
+ <xsl:attribute name="fo:background-color"><xsl:value-of select="图:颜色"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:图案/@图:背景色">
+ <xsl:attribute name="style:text-background-color"><xsl:choose><xsl:when test="contains(图:图案/@图:背景色,'#')"><xsl:value-of select="图:图案/@图:背景色"/></xsl:when><xsl:otherwise>auto</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:图案/@图:å‰æ™¯è‰²">
+ <xsl:attribute name="fo:text-background-color"><xsl:choose><xsl:when test="contains(图:图案/@图:å‰æ™¯è‰²,'#')"><xsl:value-of select="图:图案/@图:å‰æ™¯è‰²"/></xsl:when><xsl:otherwise>auto</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:分æ ">
+ <xsl:element name="style:columns">
+ <xsl:attribute name="fo:column-count"><xsl:value-of select="//å­—:分æ /@å­—:æ æ•°"/></xsl:attribute>
+ <xsl:variable name="aa">
+ <xsl:value-of select="//å­—:分æ /å­—:æ [position()=1]/@å­—:é—´è·"/>
+ </xsl:variable>
+ <xsl:if test="//å­—:分æ /@å­—:等宽='true' ">
+ <xsl:attribute name="fo:column-gap"><xsl:value-of select="concat($aa * 2,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="//å­—:分æ /@å­—:分隔线宽度">
+ <xsl:element name="style:column-sep">
+ <xsl:attribute name="style:width"><xsl:value-of select="concat(@字:分隔线宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="style:color"><xsl:value-of select="@字:分隔线颜色"/></xsl:attribute>
+ <xsl:attribute name="style:height">100%</xsl:attribute>
+ <xsl:attribute name="style:vertical-align">top</xsl:attribute>
+ </xsl:element>
+ </xsl:if>
+ <xsl:for-each select="//å­—:分æ /å­—:æ ">
+ <xsl:element name="style:column">
+ <xsl:attribute name="style:rel-width"><xsl:value-of select="@字:宽度"/>*</xsl:attribute>
+ <xsl:if test="parent::å­—:分æ /@å­—:宽度='true'">
+ <xsl:choose>
+ <xsl:when test="self::node()[not(preceding-sibling::å­—:æ )]">
+ <xsl:attribute name="fo:start-indent">0cm</xsl:attribute>
+ <xsl:attribute name="fo:end-indent"><xsl:value-of select="concat(@å­—:é—´è·,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="self::node()[not(following-sibling::å­—:æ )]">
+ <xsl:attribute name="fo:start-indent"><xsl:value-of select="concat(@å­—:é—´è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:end-indent">0cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:start-indent"><xsl:value-of select="concat(@å­—:é—´è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:end-indent"><xsl:value-of select="concat(@å­—:é—´è·,$uofUnit)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="parent::å­—:分æ /@å­—:等宽='false'">
+ <xsl:variable name="last" select="preceding-sibling::å­—:æ [1]/@å­—:é—´è·"/>
+ <xsl:choose>
+ <xsl:when test="self::node()[not(preceding-sibling::å­—:æ )]">
+ <xsl:attribute name="fo:start-indent">0cm</xsl:attribute>
+ <xsl:attribute name="fo:end-indent"><xsl:value-of select="concat(@å­—:é—´è·,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="self::node()[not(following-sibling::å­—:æ )]">
+ <xsl:attribute name="fo:start-indent"><xsl:value-of select="concat($last,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:end-indent">0cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:start-indent"><xsl:value-of select="concat($last,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:end-indent"><xsl:value-of select="concat(@å­—:é—´è·,$uofUnit)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="uof:文字表å¼æ ·" mode="table">
+ <style:style style:family="table">
+ <xsl:attribute name="style:name"><xsl:value-of select="@字:标识符"/></xsl:attribute>
+ <xsl:if test="@å­—:基å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@å­—:基å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <style:table-properties>
+ <xsl:choose>
+ <xsl:when test="å­—:对é½">
+ <xsl:attribute name="table:align"><xsl:value-of select="å­—:对é½"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:align">margins</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="字:宽度/@字:相对宽度">
+ <xsl:variable name="reltblw">
+ <xsl:value-of select="concat(number(字:宽度/@字:相对宽度),'%')"/>
+ </xsl:variable>
+ <xsl:variable name="pagew">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:纸张/@uof:宽度"/>
+ </xsl:variable>
+ <xsl:variable name="leftm">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页边è·/@uof:å·¦"/>
+ </xsl:variable>
+ <xsl:variable name="rightm">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页边è·/@uof:å³"/>
+ </xsl:variable>
+ <xsl:attribute name="style:rel-width"><xsl:value-of select="concat(number(字:宽度/@字:相对宽度) * 100,'%')"/></xsl:attribute>
+ <xsl:attribute name="style:width"><xsl:value-of select="concat((number($pagew)-number($leftm)-number($rightm)) * number($reltblw),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:宽度/@å­—:ç»å¯¹å®½åº¦">
+ <xsl:attribute name="style:width"><xsl:value-of select="concat(number(å­—:宽度/@å­—:ç»å¯¹å®½åº¦),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </style:table-properties>
+ </style:style>
+ </xsl:template>
+ <xsl:template match="字:文字表" mode="style">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">Table<xsl:number count="å­—:文字表[not (@å­—:类型='sub-table')]" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/></xsl:attribute>
+ <xsl:attribute name="style:family">table</xsl:attribute>
+ <xsl:if test="@å­—:å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@å­—:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="name(preceding-sibling::*[1])='字:分节'">
+ <xsl:attribute name="style:master-page-name"><xsl:value-of select="preceding-sibling::*[1]/@å­—:å称"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:table-properties">
+ <xsl:for-each select="字:文字表属性">
+ <xsl:variable name="biaoshi" select="@å­—:å¼æ ·å¼•ç”¨"/>
+ <xsl:choose>
+ <xsl:when test="å­—:å¯¹é½ = 'left' or å­—:å¯¹é½ = 'center' or å­—:å¯¹é½ = 'right'">
+ <xsl:attribute name="table:align"><xsl:value-of select="å­—:对é½"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="/uof:UOF/uof:å¼æ ·é›†/uof:文字表å¼æ ·[@å­—:标识符=$biaoshi]/å­—:对é½">
+ <xsl:attribute name="table:align"><xsl:value-of select="/uof:UOF/uof:å¼æ ·é›†/uof:文字表å¼æ ·[@å­—:标识符=$biaoshi]/å­—:对é½"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:align">margins</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="字:左缩进">
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(number(字:左缩进),$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:绕排/@字:值='around'">
+ <xsl:if test="å­—:绕排边è·/@å­—:上">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(å­—:绕排边è·/@å­—:上,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:绕排边è·/@å­—:å·¦">
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(å­—:绕排边è·/@å­—:å·¦,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:绕排边è·/@å­—:å³">
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(å­—:绕排边è·/@å­—:å³,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:绕排边è·/@å­—:下">
+ <xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat(å­—:绕排边è·/@å­—:下,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="@å­—:å¼æ ·å¼•ç”¨">
+ <xsl:variable name="rootStyle" select="@å­—:å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="rootStyleNode" select="/uof:UOF/uof:å¼æ ·é›†/å­—:文字表å¼æ ·[@å­—:基å¼æ ·å¼•ç”¨ = $rootStyle]"/>
+ <xsl:variable name="paddingleft">
+ <xsl:value-of select="$rootStyleNode/å­—:文字表属性/å­—:è¾¹è·/@uof:å·¦"/>
+ </xsl:variable>
+ <xsl:variable name="paddingright">
+ <xsl:value-of select="$rootStyleNode/å­—:文字表属性/å­—:è¾¹è·/@uof:å³"/>
+ </xsl:variable>
+ <xsl:variable name="paddingtop">
+ <xsl:value-of select="$rootStyleNode/å­—:文字表属性/å­—:è¾¹è·/@uof:上"/>
+ </xsl:variable>
+ <xsl:variable name="paddingbottom">
+ <xsl:value-of select="$rootStyleNode/å­—:文字表属性/å­—:è¾¹è·/@uof:下"/>
+ </xsl:variable>
+ <xsl:if test="$rootStyleNode/å­—:文字表属性/å­—:è¾¹è·/@uof:å·¦">
+ <xsl:attribute name="fo:margin-left">-<xsl:value-of select="(number($paddingleft))* $other-to-cm-conversion-factor"/>cm</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="字:宽度/@字:相对宽度">
+ <xsl:variable name="reltblw">
+ <xsl:value-of select="字:宽度/@字:相对宽度"/>
+ </xsl:variable>
+ <xsl:variable name="pagew">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:纸张/@uof:宽度"/>
+ </xsl:variable>
+ <xsl:variable name="leftm">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页边è·/@uof:å·¦"/>
+ </xsl:variable>
+ <xsl:variable name="rightm">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页边è·/@uof:å³"/>
+ </xsl:variable>
+ <xsl:attribute name="style:rel-width"><xsl:value-of select="concat(number(字:宽度/@字:相对宽度) * 100,'%')"/></xsl:attribute>
+ <xsl:attribute name="style:width"><xsl:value-of select="concat((number($pagew)-number($leftm)-number($rightm)) * number($reltblw),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:宽度/@å­—:ç»å¯¹å®½åº¦">
+ <xsl:attribute name="style:width"><xsl:value-of select="concat(number(å­—:宽度/@å­—:ç»å¯¹å®½åº¦),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="/uof:UOF/uof:å¼æ ·é›†/uof:文字表å¼æ ·[@å­—:标识符=$biaoshi]/å­—:宽度/@å­—:相对宽度 or /uof:UOF/uof:å¼æ ·é›†/uof:文字表å¼æ ·[@å­—:标识符=$biaoshi]/å­—:宽度/@å­—:ç»å¯¹å®½åº¦">
+ <xsl:attribute name="style:rel-width"><xsl:value-of select="concat(/uof:UOF/uof:å¼æ ·é›†/uof:文字表å¼æ ·[@å­—:标识符=$biaoshi]/å­—:宽度/@å­—:相对宽度 * 100,'%')"/></xsl:attribute>
+ <xsl:attribute name="style:width"><xsl:value-of select="/uof:UOF/uof:å¼æ ·é›†/uof:文字表å¼æ ·[@å­—:标识符=$biaoshi]/å­—:宽度/@å­—:ç»å¯¹å®½åº¦"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="pagew">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:纸张/@uof:宽度"/>
+ </xsl:variable>
+ <xsl:variable name="leftm">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页边è·/@uof:å·¦"/>
+ </xsl:variable>
+ <xsl:variable name="rightm">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页边è·/@uof:å³"/>
+ </xsl:variable>
+ <xsl:attribute name="style:width"><xsl:value-of select="concat((number($pagew)-number($leftm)-number($rightm)),$uofUnit)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="tblsize" select="sum(字:列宽集/字:列宽)"/>
+ <xsl:if test="(not($tblsize='0')) and not(字:宽度) ">
+ <xsl:choose>
+ <xsl:when test="字:左缩进">
+ <xsl:attribute name="style:width"><xsl:value-of select="concat( number($tblsize - 字:左缩进), $uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:width"><xsl:value-of select="concat( number(sum(字:列宽集/字:列宽) ), $uofUnit)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="字:边框">
+ <xsl:for-each select="字:边框">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:for-each select="å­—:å¡«å……">
+ <xsl:call-template name="uof:å¡«å……"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="字:列宽集" mode="style">
+ <xsl:choose>
+ <xsl:when test="not(./字:列宽)">
+ <xsl:for-each select="../..">
+ <xsl:for-each select="å­—:è¡Œ[1]/å­—:å•å…ƒæ ¼">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:family">table-column</xsl:attribute>
+ <xsl:attribute name="style:name">Table<xsl:number count="å­—:文字表" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/>.C<xsl:number value="count(preceding::å­—:å•å…ƒæ ¼)+1"/></xsl:attribute>
+ <xsl:element name="style:table-column-properties">
+ <xsl:choose>
+ <xsl:when test="å­—:å•å…ƒæ ¼å±žæ€§/å­—:宽度/@å­—:相对值">
+ <xsl:variable name="tblw1">
+ <xsl:choose>
+ <xsl:when test="../../å­—:文字表属性/å­—:宽度/@å­—:ç»å¯¹å®½åº¦">
+ <xsl:value-of select="../../å­—:文字表属性/å­—:宽度/@å­—:ç»å¯¹å®½åº¦"/>
+ </xsl:when>
+ <xsl:when test="../../字:文字表属性/字:宽度/@字:相对宽度">
+ <xsl:variable name="pagew">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:纸张/@uof:宽度"/>
+ </xsl:variable>
+ <xsl:variable name="leftm">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页边è·/@uof:å·¦"/>
+ </xsl:variable>
+ <xsl:variable name="rightm">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页边è·/@uof:å³"/>
+ </xsl:variable>
+ <xsl:variable name="relw">
+ <xsl:value-of select="../../字:文字表属性/字:宽度/@字:相对宽度"/>
+ </xsl:variable>
+ <xsl:value-of select=" ( number($pagew)-number($leftm)-number($rightm))* number($relw) div 100"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="pagew">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:纸张/@uof:宽度"/>
+ </xsl:variable>
+ <xsl:variable name="leftm">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页边è·/@uof:å·¦"/>
+ </xsl:variable>
+ <xsl:variable name="rightm">
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页边è·/@uof:å³"/>
+ </xsl:variable>
+ <xsl:value-of select="(number($pagew)-number($leftm)-number($rightm))"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:column-width"><xsl:value-of select="concat(number(number($tblw1)*number(å­—:å•å…ƒæ ¼å±žæ€§/å­—:宽度/@å­—:相对值) div 100),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:å•å…ƒæ ¼å±žæ€§/å­—:宽度/@å­—:ç»å¯¹å€¼">
+ <xsl:attribute name="style:column-width"><xsl:value-of select="concat(number(å­—:å•å…ƒæ ¼å±žæ€§/å­—:宽度/@å­—:ç»å¯¹å€¼),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:column-width"><xsl:value-of select="'1cm'"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="字:列宽">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:family">table-column</xsl:attribute>
+ <xsl:attribute name="style:name">Table<xsl:number count="å­—:文字表[not (@å­—:类型='sub-table')]" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/>.C<xsl:number count="å­—:列宽" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="single" format="1"/></xsl:attribute>
+ <xsl:variable name="tableRoot" select="ancestor::字:文字表"/>
+ <xsl:element name="style:table-column-properties">
+ <xsl:choose>
+ <xsl:when test="string(.)">
+ <xsl:attribute name="style:column-width"><xsl:value-of select="concat(.,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:column-width"><xsl:value-of select="'1cm'"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="字:行" mode="style">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:family">table-row</xsl:attribute>
+ <xsl:attribute name="style:name">Table<xsl:number count="å­—:文字表[not (@å­—:类型='sub-table')]" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/>.R<xsl:number count="å­—:è¡Œ" from="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:文字表[not (@å­—:类型='sub-table')]" level="any" format="1"/></xsl:attribute>
+ <xsl:element name="style:table-row-properties">
+ <xsl:for-each select="字:表行属性">
+ <xsl:choose>
+ <xsl:when test="字:高度/@字:固定值">
+ <xsl:attribute name="style:row-height"><xsl:value-of select="concat(number(字:高度/@字:固定值),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:高度/@å­—:最å°å€¼">
+ <xsl:attribute name="style:min-row-height"><xsl:value-of select="concat(number(å­—:高度/@å­—:最å°å€¼), $uofUnit )"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:attribute name="fo:keep-together"><xsl:value-of select="字:跨页/@字:值"/></xsl:attribute>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="å­—:å•å…ƒæ ¼" mode="style">
+ <style:style>
+ <xsl:attribute name="style:name">Table<xsl:number count="å­—:文字表[not (@å­—:类型='sub-table')]" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/>.R<xsl:number count="å­—:è¡Œ" from="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:文字表[not (@å­—:类型='sub-table')]" level="any" format="1"/>C<xsl:number count="å­—:å•å…ƒæ ¼" from="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:文字表[not (@å­—:类型='sub-table')]/å­—:è¡Œ" level="any" format="1"/></xsl:attribute>
+ <xsl:attribute name="style:family">table-cell</xsl:attribute>
+ <xsl:element name="style:table-cell-properties">
+ <xsl:for-each select="å­—:å•å…ƒæ ¼å±žæ€§">
+ <xsl:choose>
+ <xsl:when test="å­—:å•å…ƒæ ¼è¾¹è·/@å­—:å·¦">
+ <xsl:attribute name="fo:padding-left"><xsl:value-of select="concat(number(å­—:å•å…ƒæ ¼è¾¹è·/@å­—:å·¦),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:padding-left"><xsl:value-of select="../../../../å­—:文字表属性/å­—:默认å•å…ƒæ ¼è¾¹è·/@å­—:å·¦"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="å­—:å•å…ƒæ ¼è¾¹è·/@å­—:å³">
+ <xsl:attribute name="fo:padding-right"><xsl:value-of select="concat(number(å­—:å•å…ƒæ ¼è¾¹è·/@å­—:å³),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:padding-right"><xsl:value-of select="../../../../å­—:文字表属性/å­—:默认å•å…ƒæ ¼è¾¹è·/@å­—:å³"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="å­—:å•å…ƒæ ¼è¾¹è·/@å­—:上">
+ <xsl:attribute name="fo:padding-top"><xsl:value-of select="concat(number(å­—:å•å…ƒæ ¼è¾¹è·/@å­—:上),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:padding-top"><xsl:value-of select="../../../../å­—:文字表属性/å­—:默认å•å…ƒæ ¼è¾¹è·/@å­—:上"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="å­—:å•å…ƒæ ¼è¾¹è·/@å­—:下">
+ <xsl:attribute name="fo:padding-bottom"><xsl:value-of select="concat(number(å­—:å•å…ƒæ ¼è¾¹è·/@å­—:下),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:padding-bottom"><xsl:value-of select="../../../../å­—:文字表属性/å­—:默认å•å…ƒæ ¼è¾¹è·/@å­—:下"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="cellbefore">
+ <xsl:value-of select="count(ancestor::å­—:å•å…ƒæ ¼/preceding-sibling::å­—:å•å…ƒæ ¼)"/>
+ </xsl:variable>
+ <xsl:variable name="cellafter">
+ <xsl:value-of select="count(ancestor::å­—:å•å…ƒæ ¼/following-sibling::å­—:å•å…ƒæ ¼)"/>
+ </xsl:variable>
+ <xsl:variable name="rowbefore">
+ <xsl:value-of select="count(ancestor::字:行/preceding-sibling::字:行)"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="字:边框">
+ <xsl:for-each select="字:边框">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="number($cellafter) &gt; 0">
+ <xsl:attribute name="fo:border-right">none</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:border-right">0.002cm solid #000000</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:border-left">0.002cm solid #000000</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="number($rowbefore) &gt; 0">
+ <xsl:attribute name="fo:border-top">none</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:border-top">0.002cm solid #000000</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:border-bottom">0.002cm solid #000000</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="style:vertical-align"><xsl:choose><xsl:when test="å­—:垂直对é½æ–¹å¼='center' ">middle</xsl:when><xsl:when test="å­—:垂直对é½æ–¹å¼='bottom' ">bottom</xsl:when><xsl:otherwise>top</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:for-each select="å­—:å¡«å……">
+ <xsl:call-template name="uof:å¡«å……"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:element>
+ </style:style>
+ </xsl:template>
+ <xsl:template match="uof:字体集">
+ <xsl:element name="office:font-face-decls">
+ <style:font-face style:name="Arial" svg:font-family="Arial" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Times New Roman" svg:font-family="'Times New Roman'" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Symbol" svg:font-family="Symbol" style:font-family-generic="roman" style:font-pitch="variable" style:font-charset="x-symbol"/>
+ <style:font-face style:name="Courier New" svg:font-family="'Courier New'" style:font-family-generic="modern" style:font-pitch="fixed"/>
+ <xsl:if test="not(uof:字体声明[@uof:å称='StarSymbol'])">
+ <style:font-face style:name="StarSymbol" svg:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </xsl:if>
+ <xsl:for-each select="uof:字体声明">
+ <xsl:element name="style:font-face">
+ <xsl:attribute name="style:name"><xsl:value-of select="@uof:标识符"/></xsl:attribute>
+ <xsl:attribute name="svg:font-family"><xsl:value-of select="@uof:å称"/></xsl:attribute>
+ <xsl:if test="@uof:字符集 = '02'">
+ <xsl:attribute name="style:font-charset">x-symbol</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@uof:字体æ—">
+ <xsl:choose>
+ <xsl:when test="@uof:å­—ä½“æ— = 'Swiss'">
+ <xsl:attribute name="style:font-family-generic">swiss</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='Modern'">
+ <xsl:attribute name="style:font-family-generic">modern</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:字体æ—='Roman'">
+ <xsl:attribute name="style:font-family-generic">roman</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='Script'">
+ <xsl:attribute name="style:font-family-generic">script</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='Decorative'">
+ <xsl:attribute name="style:font-family-generic">decorative</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:å­—ä½“æ— ='System'">
+ <xsl:attribute name="style:font-family-generic">system</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:font-family-generic">system</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:attribute name="style:font-pitch">12</xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ <xsl:apply-templates select="uof:字体声明"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="uof:å¼æ ·">
+ <xsl:element name="style:text-properties">
+ <xsl:apply-templates select="uof:å¥å¼æ ·/*"/>
+ <xsl:apply-templates select="uof:段è½å¼æ ·/*"/>
+ <xsl:call-template name="paragraph-properties"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="uof:段è½å¼æ ·"/>
+ <xsl:template match="uof:å¥å¼æ ·"/>
+ <xsl:template match="å­—:公用处ç†è§„则">
+ <xsl:apply-templates select="uof:文字处ç†/å­—:公用处ç†è§„则/å­—:文档设置"/>
+ </xsl:template>
+ <xsl:template match="uof:文字处ç†/å­—:公用处ç†è§„则/å­—:文档设置">
+ <office:settings>
+ <config:config-item-set config:name="ooo:view-settings">
+ <config:config-item config:name="InBrowseMode" config:type="boolean">
+ <xsl:choose>
+ <xsl:when test="å­—:当å‰è§†å›¾='web'">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </config:config-item>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <xsl:if test="字:缩放">
+ <config:config-item config:name="VisibleRight" config:type="int">1</config:config-item>
+ <config:config-item config:name="VisibleBottom" config:type="int">1</config:config-item>
+ <xsl:choose>
+ <xsl:when test="字:缩放 = 'best-fit'">
+ <config:config-item config:name="ZoomType" config:type="short">3</config:config-item>
+ </xsl:when>
+ <xsl:when test="字:缩放 = 'full-page'">
+ <config:config-item config:name="ZoomType" config:type="short">2</config:config-item>
+ </xsl:when>
+ <xsl:when test="字:缩放 = 'text-fit'">
+ <config:config-item config:name="ZoomType" config:type="short">1</config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ <config:config-item config:name="ZoomFactor" config:type="short">
+ <xsl:value-of select="字:缩放"/>
+ </config:config-item>
+ </xsl:if>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ <config:config-item-set config:name="configuration-settings">
+ <config:config-item-map-indexed config:name="ForbiddenCharacters">
+ <config:config-item-map-entry>
+ <config:config-item config:name="Language" config:type="string">zh</config:config-item>
+ <config:config-item config:name="Country" config:type="string">CN</config:config-item>
+ <config:config-item config:name="Variant" config:type="string"/>
+ <config:config-item config:name="BeginLine" config:type="string">
+ <xsl:choose>
+ <xsl:when test="å­—:标点ç¦åˆ™/å­—:行首字符 or *[@uof:locID='t0007']/*[@uof:locID='t0008']">
+ <xsl:value-of select="*[@uof:locID='t0007']/*[@uof:locID='t0008']"/>
+ </xsl:when>
+ <xsl:otherwise>:!),.:;?]}_'"ã€ã€‚〉》ã€ã€ã€‘〕〗〞︰︱︳ï¹_﹒﹔﹕﹖﹗﹚﹜﹞ï¼ï¼‰ï¼Œï¼Žï¼šï¼›ï¼Ÿï½œï½ï¸´ï¸¶ï¸¸ï¸ºï¸¼ï¸¾ï¹€ï¹‚﹄ï¹_~¢々‖_·ˇˉ―--′</xsl:otherwise>
+ </xsl:choose>
+ </config:config-item>
+ <config:config-item config:name="EndLine" config:type="string">
+ <xsl:choose>
+ <xsl:when test="å­—:标点ç¦åˆ™/å­—:行尾字符 or *[@uof:locID='t0007']/*[@uof:locID='t0009']">
+ <xsl:value-of select="*[@uof:locID='t0007']/*[@uof:locID='t0009']"/>
+ </xsl:when>
+ <xsl:otherwise>([{__'"‵〈《「『ã€ã€”〖([{£¥ã€ï¸µï¸·ï¸¹ï¸»ï¸½ï¸¿ï¹ï¹ƒï¹™ï¹›ï¹ï¼ˆï½›</xsl:otherwise>
+ </xsl:choose>
+ </config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ </office:settings>
+ </xsl:template>
+ <xsl:template match="uof:文字处ç†">
+ <xsl:element name="office:body">
+ <xsl:element name="office:text">
+ <xsl:call-template name="GenerateTrackChanges"/>
+ <text:sequence-decls>
+ <xsl:call-template name="default_seqence_declaration"/>
+ </text:sequence-decls>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="default_seqence_declaration">
+ <text:sequence-decl text:display-outline-level="0" text:name="Illustration">
+ </text:sequence-decl>
+ <text:sequence-decl text:display-outline-level="0" text:name="Table">
+ </text:sequence-decl>
+ <text:sequence-decl text:display-outline-level="0" text:name="Text">
+ </text:sequence-decl>
+ <text:sequence-decl text:display-outline-level="0" text:name="Drawing">
+ </text:sequence-decl>
+ <text:sequence-decl text:display-outline-level="0" text:name="AutoNr">
+ </text:sequence-decl>
+ </xsl:template>
+ <xsl:template name="段è½" match="å­—:段è½[not((preceding-sibling::å­—:段è½/å­—:域开始) and (not(preceding-sibling::å­—:段è½/å­—:域结æŸ)))][not(å­—:段è½å±žæ€§[å­—:自动编å·ä¿¡æ¯])]">
+ <xsl:if test="字:域开始/@字:类型='caption'">
+ <xsl:apply-templates select="å­—:域代ç "/>
+ </xsl:if>
+ <xsl:if test="字:域开始/@字:类型='REF'">
+ <xsl:call-template name="目录域"/>
+ </xsl:if>
+ <xsl:if test="字:域开始/@字:类型='INDEX'">
+ <xsl:call-template name="索引域"/>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="string(parent::node()/@uof:locID)='t0107'">
+ <xsl:apply-templates select="字:脚注"/>
+ </xsl:when>
+ <xsl:when test="string(parent::node()/@uof:locID)='t0108'">
+ <xsl:apply-templates select="字:尾注"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="commonParagraph"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="字:脚注">
+ <xsl:element name="text:note">
+ <xsl:attribute name="text:note-class">footnote</xsl:attribute>
+ <xsl:element name="text:note-citation">
+ <xsl:attribute name="text:label"><xsl:value-of select="@字:引文体"/></xsl:attribute>
+ <xsl:value-of select="@字:引文体"/>
+ </xsl:element>
+ <xsl:element name="text:note-body">
+ <xsl:for-each select="å­—:段è½">
+ <xsl:call-template name="commonParagraph"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="字:尾注">
+ <xsl:element name="text:note">
+ <xsl:attribute name="text:note-class">endnote</xsl:attribute>
+ <xsl:element name="text:note-citation">
+ <xsl:attribute name="text:label"><xsl:value-of select="@字:引文体"/></xsl:attribute>
+ <xsl:value-of select="@字:引文体"/>
+ </xsl:element>
+ <xsl:element name="text:note-body">
+ <xsl:for-each select="å­—:段è½">
+ <xsl:call-template name="commonParagraph"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="字:锚点">
+ <xsl:call-template name="图形解æž"/>
+ </xsl:template>
+ <xsl:key match="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:段è½/å­—:å¥/å­—:锚点 | /uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页眉//å­—:锚点 | /uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:页脚//å­—:锚点" name="rel_graphic_name" use="å­—:图形/@å­—:图形引用"/>
+ <xsl:template match="图:图形">
+ <xsl:variable name="random-name">
+ <xsl:value-of select="generate-id()"/>
+ </xsl:variable>
+ <xsl:variable name="draw-name">
+ <xsl:value-of select="substring($random-name,string-length($random-name)-1)"/>
+ </xsl:variable>
+ <xsl:call-template name="graphic-fill">
+ <xsl:with-param name="draw-name" select="$draw-name"/>
+ <xsl:with-param name="gradient-name" select="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜"/>
+ </xsl:call-template>
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜ | 图:预定义图形/图:属性/图:å¡«å……/图:颜色 | 图:预定义图形/图:属性/图:å¡«å……/图:图片 | 图:预定义图形/图:属性/图:å¡«å……/图:ä½å›¾">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:family">graphic</xsl:attribute>
+ <xsl:if test="图:文本内容/@图:自动æ¢è¡Œ='true' or 图:文本内容/@图:自动æ¢è¡Œ='1'">
+ <xsl:attribute name="draw:fit-to-contour">true</xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:graphic-properties">
+ <xsl:call-template name="process-graphics">
+ <xsl:with-param name="draw-name" select="$draw-name"/>
+ </xsl:call-template>
+ </xsl:element>
+ <xsl:if test="图:文本内容/@图:文字排列方å‘">
+ <xsl:choose>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-l2r'">
+ <style:paragraph-properties style:writing-mode="tb-rl"/>
+ </xsl:when>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-r2l'">
+ <style:paragraph-properties style:writing-mode="tb-rl"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:family">graphic</xsl:attribute>
+ <xsl:element name="style:graphic-properties">
+ <xsl:if test="@图:其他对象 or key('rel_graphic_name',@图:标识符)/å­—:锚点属性/å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:相对/@å­—:相对于">
+ <xsl:attribute name="fo:clip">rect(0cm 0cm 0cm 0cm)</xsl:attribute>
+ <xsl:attribute name="draw:color-mode">standard</xsl:attribute>
+ <xsl:attribute name="draw:luminance">0%</xsl:attribute>
+ <xsl:attribute name="draw:contrast">0%</xsl:attribute>
+ <xsl:attribute name="draw:gamma">100%</xsl:attribute>
+ <xsl:attribute name="draw:red">0%</xsl:attribute>
+ <xsl:attribute name="draw:green">0%</xsl:attribute>
+ <xsl:attribute name="draw:blue">0%</xsl:attribute>
+ <xsl:attribute name="draw:image-opacity">100%</xsl:attribute>
+ <xsl:attribute name="style:mirror">none</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="process-graphics"/>
+ </xsl:element>
+ <xsl:if test="图:文本内容/@图:文字排列方å‘">
+ <xsl:choose>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-l2r'">
+ <style:paragraph-properties style:writing-mode="tb-rl"/>
+ </xsl:when>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-r2l'">
+ <style:paragraph-properties style:writing-mode="tb-rl"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="bina_graphic">
+ <xsl:param name="refGraphic"/>
+ <xsl:element name="office:binary-data">
+ <xsl:for-each select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符 = $refGraphic]">
+ <xsl:value-of select="uof:æ•°æ®"/>
+ </xsl:for-each>
+ </xsl:element>
+ <text:p/>
+ </xsl:template>
+ <xsl:template name="graphic-fill">
+ <xsl:param name="draw-name"/>
+ <xsl:param name="gradient-name"/>
+ <xsl:if test="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜">
+ <xsl:element name="draw:gradient">
+ <xsl:attribute name="draw:name"><xsl:value-of select="concat('Gradient ',$draw-name)"/></xsl:attribute>
+ <xsl:attribute name="draw:style"><xsl:choose><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='linear'"><xsl:value-of select="'linear'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='radar'"><xsl:value-of select="'radial'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='oval'"><xsl:value-of select="'ellipsoid'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='square'"><xsl:value-of select="'square'"/></xsl:when><xsl:when test="$gradient-name/@图:ç§å­ç±»åž‹='rectangle'"><xsl:value-of select="'rectangular'"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="draw:start-color"><xsl:value-of select="$gradient-name/@图:起始色"/></xsl:attribute>
+ <xsl:attribute name="draw:end-color"><xsl:value-of select="$gradient-name/@图:终止色"/></xsl:attribute>
+ <xsl:attribute name="draw:start-intensity"><xsl:value-of select="concat($gradient-name/@图:起始浓度,'%')"/></xsl:attribute>
+ <xsl:attribute name="draw:end-intensity"><xsl:value-of select="concat($gradient-name/@图:终止浓度,'%')"/></xsl:attribute>
+ <xsl:attribute name="draw:angle"><xsl:value-of select="$gradient-name/@图:æ¸å˜æ–¹å‘ * 10"/></xsl:attribute>
+ <xsl:attribute name="draw:border"><xsl:value-of select="concat($gradient-name/@图:边界,'%')"/></xsl:attribute>
+ <xsl:if test="$gradient-name/@图:ç§å­Xä½ç½®">
+ <xsl:attribute name="draw:cx"><xsl:value-of select="concat($gradient-name/@图:ç§å­Xä½ç½®,'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$gradient-name/@图:ç§å­Yä½ç½®">
+ <xsl:attribute name="draw:cy"><xsl:value-of select="concat($gradient-name/@图:ç§å­Yä½ç½®,'%')"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´">
+ <xsl:element name="draw:marker">
+ <xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='normal'">
+ <xsl:attribute name="svg:viewBox">0 0 20 30</xsl:attribute>
+ <xsl:attribute name="svg:d">m10 0-10 30h20z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='open'">
+ <xsl:attribute name="svg:viewBox">0 0 1122 2243</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='stealth'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1580</xsl:attribute>
+ <xsl:attribute name="svg:d">m1013 1491 118 89-567-1580-564 1580 114-85 136-68 148-46 161-17 161 13 153 46z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='oval'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='diamond'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 564 564 567 567-567-567-564z</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´">
+ <xsl:element name="draw:marker">
+ <xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='normal'">
+ <xsl:attribute name="svg:viewBox">0 0 20 30</xsl:attribute>
+ <xsl:attribute name="svg:d">m10 0-10 30h20z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='open'">
+ <xsl:attribute name="svg:viewBox">0 0 1122 2243</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='stealth'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1580</xsl:attribute>
+ <xsl:attribute name="svg:d">m1013 1491 118 89-567-1580-564 1580 114-85 136-68 148-46 161-17 161 13 153 46z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='oval'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='diamond'">
+ <xsl:attribute name="svg:viewBox">0 0 1131 1131</xsl:attribute>
+ <xsl:attribute name="svg:d">m0 564 564 567 567-567-567-564z</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用 or 图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用">
+ <xsl:element name="draw:fill-image">
+ <xsl:attribute name="draw:name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图案/@图:图形引用"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图案/@图:类型"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:图形引用"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:图形引用"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:图形引用"/></xsl:when></xsl:choose></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:call-template name="bina_graphic">
+ <xsl:with-param name="refGraphic">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用">
+ <xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图案/@图:图形引用"/>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称">
+ <xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称"/>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用">
+ <xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="not(图:预定义图形/图:属性/图:线型='single') and not(图:预定义图形/图:属性/图:线型='thick') and 图:预定义图形/图:属性/图:线型">
+ <xsl:variable name="line" select="图:预定义图形/图:属性/图:线型"/>
+ <xsl:element name="draw:stroke-dash">
+ <xsl:choose>
+ <xsl:when test="$line='dash-long' or $line='dash-long-heavy'">
+ <xsl:attribute name="draw:name">Fine_20_Dashed</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">0.508cm</xsl:attribute>
+ <xsl:attribute name="draw:dots2">1</xsl:attribute>
+ <xsl:attribute name="draw:dots2-length">0.508cm</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.508cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='dot-dot-dash' or $line='dash-dot-dot-heavy'">
+ <xsl:attribute name="draw:name">2 Dots 1 Dash</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">2</xsl:attribute>
+ <xsl:attribute name="draw:dots2">1</xsl:attribute>
+ <xsl:attribute name="draw:dots2-length">0.203cm</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.203cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='dash' or $line='dashed-heavy'">
+ <xsl:attribute name="draw:name">Ultrafine Dashed</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">0.051cm</xsl:attribute>
+ <xsl:attribute name="draw:dots2">1</xsl:attribute>
+ <xsl:attribute name="draw:dots2-length">0.051cm</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.051cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='dotted' or $line='dotted-heavy'">
+ <xsl:attribute name="draw:name">Ultrafine Dotted (var)</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:distance">50%</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='wave' or $line='wavy-heavy'">
+ <xsl:attribute name="draw:name">Ultrafine 2 Dots 3 Dashes</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">2</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">0.051cm</xsl:attribute>
+ <xsl:attribute name="draw:dots2">3</xsl:attribute>
+ <xsl:attribute name="draw:dots2-length">0.254cm</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.127cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='dot-dash' or $line='dash-dot-heavy'">
+ <xsl:attribute name="draw:name">3 Dashes 3 Dots (var)</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">3</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">197%</xsl:attribute>
+ <xsl:attribute name="draw:dots2">3</xsl:attribute>
+ <xsl:attribute name="draw:distance">100%</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='double'">
+ <xsl:attribute name="draw:name">Line with Fine Dots</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">2.007cm</xsl:attribute>
+ <xsl:attribute name="draw:dots2">10</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.152cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$line='wavy-double'">
+ <xsl:attribute name="draw:name">Fine Dashed (var)</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">197%</xsl:attribute>
+ <xsl:attribute name="draw:distance">197%</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="draw:name">Fine Dashed</xsl:attribute>
+ <xsl:attribute name="draw:style">rect</xsl:attribute>
+ <xsl:attribute name="draw:dots1">1</xsl:attribute>
+ <xsl:attribute name="draw:dots1-length">0.508cm</xsl:attribute>
+ <xsl:attribute name="draw:dots2">1</xsl:attribute>
+ <xsl:attribute name="draw:dots2-length">0.508cm</xsl:attribute>
+ <xsl:attribute name="draw:distance">0.508cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="process-graphics">
+ <xsl:param name="draw-name"/>
+ <xsl:if test="图:预定义图形/图:类别">
+ </xsl:if>
+ <xsl:for-each select="key('rel_graphic_name',@图:标识符)/å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´">
+ <xsl:attribute name="style:vertical-pos"><xsl:choose><xsl:when test="å­—:ç»å¯¹">from-top</xsl:when><xsl:when test="å­—:相对/@å­—:值='bottom'">bottom</xsl:when><xsl:when test="å­—:相对/@å­—:值='center'">middle</xsl:when><xsl:when test="å­—:相对/@å­—:值='inside'">below</xsl:when><xsl:otherwise>top</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:vertical-rel"><xsl:choose><xsl:when test="@字:相对于='margin'">paragraph-content</xsl:when><xsl:otherwise><xsl:value-of select="@字:相对于"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:for-each>
+ <xsl:for-each select="key('rel_graphic_name',@图:标识符)/å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³">
+ <xsl:attribute name="style:horizontal-pos"><xsl:choose><xsl:when test="å­—:ç»å¯¹">from-left</xsl:when><xsl:otherwise><xsl:value-of select="å­—:相对/@å­—:值"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:horizontal-rel"><xsl:choose><xsl:when test="@字:相对于='margin'">paragraph</xsl:when><xsl:when test="@字:相对于='page'">page</xsl:when><xsl:when test="@字:相对于='column'">paragraph</xsl:when><xsl:when test="@字:相对于='char'">char</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:for-each>
+ <xsl:variable name="wrap_type">
+ <xsl:value-of select="key('rel_graphic_name',@图:标识符)/å­—:锚点属性/å­—:绕排/@å­—:绕排方å¼"/>
+ </xsl:variable>
+ <xsl:variable name="aa">
+ <xsl:value-of select="key('rel_graphic_name',@图:标识符)/字:锚点属性/字:绕排/@字:绕排顶点"/>
+ </xsl:variable>
+ <xsl:for-each select="key('rel_graphic_name',@图:标识符)/å­—:锚点属性/å­—:绕排/@å­—:绕排方å¼">
+ <xsl:attribute name="style:wrap"><xsl:choose><xsl:when test="$wrap_type = 'through'">run-through</xsl:when><xsl:when test="$wrap_type = 'tight'">right</xsl:when><xsl:when test="$wrap_type = 'square'">parallel</xsl:when><xsl:when test="$wrap_type = 'top-bottom'">dynamic</xsl:when><xsl:when test="$wrap_type = 'infrontoftext'">run-through</xsl:when><xsl:when test="$wrap_type = 'behindtext'">run-through</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:run-through"><xsl:choose><xsl:when test="$wrap_type = 'behindtext'">background</xsl:when><xsl:otherwise>foreground</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:for-each>
+ <xsl:if test="key('rel_graphic_name',@图:标识符)/å­—:锚点属性/å­—:è¾¹è·">
+ <xsl:for-each select="key('rel_graphic_name',@图:标识符)/å­—:锚点属性/å­—:è¾¹è·">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(@字:上,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat(@字:下,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(@å­—:å³,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(@å­—:å·¦,$uofUnit)"/></xsl:attribute>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="key('rel_graphic_name',@图:标识符)/å­—:锚点属性/å­—:ä¿æŠ¤/@å­—:值='true'">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:å称">
+ <xsl:attribute name="style:protect">position size</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:protect">content size position</xsl:attribute>
+ <xsl:attribute name="draw:size-protect">true</xsl:attribute>
+ <xsl:attribute name="draw:move-protect">true</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:å称">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:å称='椭圆'">
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="not(图:预定义图形/图:属性/图:填充)">
+ <xsl:attribute name="draw:fill">none</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图片">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称='background-image'">
+ <xsl:element name="style:background-image">
+ <xsl:element name="office:binary-data">
+ <xsl:variable name="biaoshi">
+ <xsl:value-of select="图:预定义图形/图:属性/图:填充/图:图片/@图:图形引用"/>
+ </xsl:variable>
+ <xsl:value-of select="ancestor::uof:对象集/uof:其他对象[@uof:标识符=$biaoshi]/uof:æ•°æ®"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-image-name"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:å称"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:图形引用"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:图形引用"/></xsl:when></xsl:choose></xsl:attribute>
+ <xsl:if test="not(图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:ä½ç½®='tile')">
+ <xsl:attribute name="style:repeat"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:ä½ç½®='center'">no-repeat</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:图片/@图:ä½ç½®='stretch'">stretch</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:图案">
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:图案/@图:å‰æ™¯è‰²"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:填充/图:颜色">
+ <xsl:attribute name="draw:fill">solid</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:填充/图:颜色"/></xsl:attribute>
+ <xsl:attribute name="fo:background-color"><xsl:value-of select="图:预定义图形/图:属性/图:填充/图:颜色"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜">
+ <xsl:attribute name="draw:fill">gradient</xsl:attribute>
+ <xsl:attribute name="draw:fill-color"><xsl:value-of select="图:预定义图形/图:属性/图:å¡«å……/图:æ¸å˜/@图:起始色"/></xsl:attribute>
+ <xsl:attribute name="draw:fill-gradient-name"><xsl:value-of select="concat('Gradient ',$draw-name)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="图:预定义图形/图:属性/图:线颜色">
+ <xsl:attribute name="svg:stroke-color"><xsl:value-of select="图:预定义图形/图:属性/图:线颜色"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:线型 and not(图:预定义图形/图:属性/图:线型 = 'single') and not(图:预定义图形/图:属性/图:线型 = 'thick')">
+ <xsl:variable name="linetype" select="图:预定义图形/图:属性/图:线型"/>
+ <xsl:attribute name="draw:stroke"><xsl:choose><xsl:when test="$linetype='none'">none</xsl:when><xsl:otherwise>dash</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="$linetype='none'">
+ <xsl:attribute name="fo:border">none</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="draw:stroke-dash"><xsl:choose><xsl:when test="$linetype='dot-dot-dash' or $linetype='dash-dot-dot-heavy'">2 Dots 1 Dash</xsl:when><xsl:when test="$linetype='dash' or $linetype='dashed-heavy'">Ultrafine_20_Dashed</xsl:when><xsl:when test="$linetype='dotted' or $linetype='dotted-heavy'">Ultrafine Dotted (var)</xsl:when><xsl:when test="$linetype='double'">Line with Fine Dots</xsl:when><xsl:when test="$linetype='dot-dash' or $linetype='dash-dot-heavy'">3 Dashes 3 Dots (var)</xsl:when><xsl:when test="$linetype='wave' or $linetype='wavy-heavy'">Ultrafine 2 Dots 3 Dashes</xsl:when><xsl:when test="$linetype='wavy-double'">Fine Dashed (var)</xsl:when><xsl:otherwise>Fine Dashed</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:线粗细">
+ <xsl:attribute name="svg:stroke-width"><xsl:value-of select="concat(图:预定义图形/图:属性/图:线粗细,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´">
+ <xsl:attribute name="draw:marker-start"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:大å°">
+ <xsl:attribute name="draw:marker-start-width"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '1'"><xsl:value-of select="concat('0.05',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '2'"><xsl:value-of select="concat('0.10',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '3'"><xsl:value-of select="concat('0.15',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '4'"><xsl:value-of select="concat('0.20',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '5'"><xsl:value-of select="concat('0.25',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '6'"><xsl:value-of select="concat('0.30',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '7'"><xsl:value-of select="concat('0.35',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¤§å° = '8'"><xsl:value-of select="concat('0.40',$uofUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('0.45',$uofUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´">
+ <xsl:attribute name="draw:marker-end"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='normal'">Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='open'">Line Arrow</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='stealth'">Arrow concave</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='oval'">Circle</xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·='diamond'">Square 45</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:大å°">
+ <xsl:attribute name="draw:marker-end-width"><xsl:choose><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '1'"><xsl:value-of select="concat('0.05',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '2'"><xsl:value-of select="concat('0.10',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '3'"><xsl:value-of select="concat('0.15',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '4'"><xsl:value-of select="concat('0.20',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '5'"><xsl:value-of select="concat('0.25',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '6'"><xsl:value-of select="concat('0.30',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '7'"><xsl:value-of select="concat('0.35',$uofUnit)"/></xsl:when><xsl:when test="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¤§å° = '8'"><xsl:value-of select="concat('0.40',$uofUnit)"/></xsl:when><xsl:otherwise><xsl:value-of select="concat('0.45',$uofUnit)"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:宽度">
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:高度">
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度">
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:é”定纵横比">
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:打å°å¯¹è±¡">
+ </xsl:if>
+ <xsl:if test="图:预定义图形/图:属性/图:é€æ˜Žåº¦">
+ <xsl:attribute name="draw:opacity"><xsl:value-of select="concat((100 - 图:预定义图形/图:属性/图:é€æ˜Žåº¦),'%')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:if test="图:文本内容/@图:上边è·">
+ <xsl:attribute name="fo:padding-top"><xsl:value-of select="concat(图:文本内容/@图:上边è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:padding-bottom"><xsl:value-of select="concat(图:文本内容/@图:下边è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:padding-left"><xsl:value-of select="concat(图:文本内容/@图:左边è·,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:padding-right"><xsl:value-of select="concat(图:文本内容/@图:å³è¾¹è·,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容/@图:文字排列方å‘">
+ <xsl:choose>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-l2r'">
+ <xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:文本内容/@图:文字排列方å‘='vert-r2l'">
+ <xsl:attribute name="style:writing-mode">tb-rl</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="图:文本内容/@图:水平对é½">
+ <xsl:attribute name="draw:textarea-horizontal-align"><xsl:value-of select="图:文本内容/@图:水平对é½"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容/@图:垂直对é½">
+ <xsl:attribute name="draw:textarea-vertical-align"><xsl:value-of select="图:文本内容/@图:垂直对é½"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容/@图:自动æ¢è¡Œ">
+ <xsl:attribute name="fo:wrap-option"><xsl:choose><xsl:when test="图:文本内容/@图:自动æ¢è¡Œ='1' or 图:文本内容/@图:自动æ¢è¡Œ='true'">wrap</xsl:when><xsl:otherwise>no-wrap</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="图:文本内容/@图:大å°é€‚应文字='true'">
+ <xsl:attribute name="draw:auto-grow-width">true</xsl:attribute>
+ <xsl:attribute name="draw:auto-grow-height">true</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="draw:auto-grow-width">false</xsl:attribute>
+ <xsl:attribute name="draw:auto-grow-height">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="图:控制点">
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="图形解æž">
+ <xsl:variable name="tuxing1" select="字:图形/@字:图形引用"/>
+ <xsl:variable name="paiban">
+ <xsl:value-of select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:预定义图形/图:å称"/>
+ </xsl:variable>
+ <xsl:variable name="otherobject">
+ <xsl:value-of select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/@图:其他对象"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]">
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='png' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='jpg' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='bmp' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:公共类型='gif' or /uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/@uof:ç§æœ‰ç±»åž‹='图片'">
+ <xsl:element name="draw:frame">
+ <xsl:attribute name="draw:name"><xsl:variable name="pos"><xsl:value-of select="count(preceding::字:锚点)"/></xsl:variable><xsl:value-of select="concat('图形',$pos)"/></xsl:attribute>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(字:锚点属性/字:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(字:锚点属性/字:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="text:anchor-type"><xsl:choose><xsl:when test="@字:类型='inline'">as-char</xsl:when><xsl:otherwise>paragraph</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]">
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="jiaodu">
+ <xsl:value-of select="图:预定义图形/图:属性/图:旋转角度"/>
+ </xsl:variable>
+ <xsl:variable name="shibie">
+ <xsl:value-of select="图:预定义图形/图:生æˆè½¯ä»¶"/>
+ </xsl:variable>
+ <xsl:variable name="rotate-angle">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:生æˆè½¯ä»¶ and not($shibie='PNG')">
+ <xsl:value-of select="((360 - $jiaodu) * 2 * 3.14159265 ) div 360"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="图:文本内容/字:文字表"/>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:æ•°æ®">
+ <draw:image>
+ <office:binary-data>
+ <xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:æ•°æ®"/>
+ </office:binary-data>
+ </draw:image>
+ </xsl:if>
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:路径">
+ <xsl:attribute name="xlink:href"><xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:路径"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]/@图:其他对象 and /uof:UOF/uof:对象集/uof:其他对象/@uof:公共类型='jpg'">
+ <xsl:variable name="bshi">
+ <xsl:value-of select="/uof:UOF/uof:对象集/图:图形/@图:其他对象"/>
+ </xsl:variable>
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$bshi]/@uof:公共类型='jpg'">
+ <xsl:element name="draw:frame">
+ <xsl:attribute name="draw:name"><xsl:variable name="pos"><xsl:value-of select="count(preceding::字:锚点)"/></xsl:variable><xsl:value-of select="concat('图形',$pos)"/></xsl:attribute>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(字:锚点属性/字:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(字:锚点属性/字:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="text:anchor-type"><xsl:choose><xsl:when test="@字:类型='inline'">as-char</xsl:when><xsl:otherwise>paragraph</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]">
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="jiaodu">
+ <xsl:value-of select="图:预定义图形/图:属性/图:旋转角度"/>
+ </xsl:variable>
+ <xsl:variable name="shibie">
+ <xsl:value-of select="图:预定义图形/图:生æˆè½¯ä»¶"/>
+ </xsl:variable>
+ <xsl:variable name="rotate-angle">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:生æˆè½¯ä»¶ and not($shibie='PNG')">
+ <xsl:value-of select="((360 - $jiaodu) * 2 * 3.14159265 ) div 360"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="图:文本内容/字:文字表"/>
+ </xsl:if>
+ <xsl:variable name="qita">
+ <xsl:value-of select="self::node()/@图:其他对象"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$qita]/uof:æ•°æ®">
+ <draw:image>
+ <office:binary-data>
+ <xsl:value-of select="."/>
+ </office:binary-data>
+ </draw:image>
+ </xsl:for-each>
+ </xsl:for-each>
+ <xsl:if test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:路径">
+ <xsl:attribute name="xlink:href"><xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$tuxing1]/uof:路径"/></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:文本内容[@图:文本框='true'] and not($paiban='排版框')">
+ <draw:frame text:anchor-type="paragraph">
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="$tuxing1"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(字:锚点属性/字:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(字:锚点属性/字:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="draw:z-index">
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]"><xsl:value-of select="@图:层次"/></xsl:for-each>
+ </xsl:attribute>
+ <draw:text-box>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]/图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]/图:文本内容/字:文字表"/>
+ </draw:text-box>
+ </draw:frame>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="leibie">
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]">
+ <xsl:value-of select="图:预定义图形/图:类别"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="leibie2">
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]">
+ <xsl:value-of select="图:预定义图形/图:å称"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$leibie='22'">
+ <xsl:call-template name="排版框">
+ <xsl:with-param name="biaoshi" select="$tuxing1"/>
+ <xsl:with-param name="name" select="$leibie2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$leibie='23'">
+ <xsl:call-template name="文本框">
+ <xsl:with-param name="biaoshi" select="$tuxing1"/>
+ <xsl:with-param name="name" select="$leibie2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$leibie='11'">
+ <xsl:call-template name="Rectangle"/>
+ </xsl:when>
+ <xsl:when test="$leibie='19'">
+ <xsl:call-template name="Oval"/>
+ </xsl:when>
+ <xsl:when test="$leibie='61'">
+ <xsl:call-template name="Line"/>
+ </xsl:when>
+ <xsl:when test="$leibie='62'">
+ <xsl:call-template name="Line"/>
+ </xsl:when>
+ <xsl:when test="$leibie='63'">
+ <xsl:call-template name="Line"/>
+ </xsl:when>
+ <xsl:when test="$leibie='64'">
+ <xsl:call-template name="Curve"/>
+ </xsl:when>
+ <xsl:when test="$leibie='65'">
+ <xsl:call-template name="Freeform"/>
+ </xsl:when>
+ <xsl:when test="$leibie='66'">
+ <xsl:call-template name="Scribble"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="文本框">
+ <xsl:param name="biaoshi"/>
+ <xsl:param name="name"/>
+ <draw:frame text:anchor-type="paragraph">
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="$biaoshi"/></xsl:attribute>
+ <xsl:attribute name="draw:name"><xsl:value-of select="$name"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(字:锚点属性/字:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="draw:z-index">
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $biaoshi]">
+ <xsl:value-of select="@图:层次"/>
+ </xsl:for-each>
+ </xsl:attribute>
+ <draw:text-box>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$biaoshi]/图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$biaoshi]/图:文本内容/字:文字表"/>
+ </draw:text-box>
+ </draw:frame>
+ </xsl:template>
+ <xsl:template name="Curve">
+ <xsl:element name="draw:path">
+ <xsl:variable name="tuxing1" select="字:图形/@字:图形引用"/>
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]">
+ <xsl:variable name="width" select="number(图:预定义图形/图:属性/图:宽度)*1000"/>
+ <xsl:variable name="height" select="number(图:预定义图形/图:属性/图:高度)*1000"/>
+ <xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
+ <xsl:attribute name="svg:d"><xsl:value-of select="图:预定义图形/图:关键点åæ ‡/@图:路径"/></xsl:attribute>
+ </xsl:for-each>
+ <xsl:call-template name="common"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="common">
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="tuxing1" select="字:图形/@字:图形引用"/>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(字:锚点属性/字:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(字:锚点属性/字:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="text:anchor-type"><xsl:choose><xsl:when test="@字:类型='inline'">as-char</xsl:when><xsl:otherwise>paragraph</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]">
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="jiaodu">
+ <xsl:value-of select="图:预定义图形/图:属性/图:旋转角度"/>
+ </xsl:variable>
+ <xsl:variable name="shibie">
+ <xsl:value-of select="图:预定义图形/图:生æˆè½¯ä»¶"/>
+ </xsl:variable>
+ <xsl:variable name="rotate-angle">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:生æˆè½¯ä»¶ and not($shibie='PNG')">
+ <xsl:value-of select="((360 - $jiaodu) * 2 * 3.14159265 ) div 360"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="图:文本内容/字:文字表"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="common1">
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="tuxing1" select="字:图形/@字:图形引用"/>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]/图:预定义图形/图:属性/图:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:height"><xsl:value-of select="concat(/uof:UOF/uof:对象集/图:图形[@图:标识符=$tuxing1]/图:预定义图形/图:属性/图:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="text:anchor-type"><xsl:choose><xsl:when test="@字:类型='inline'">as-char</xsl:when><xsl:otherwise>paragraph</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]">
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="jiaodu">
+ <xsl:value-of select="图:预定义图形/图:属性/图:旋转角度"/>
+ </xsl:variable>
+ <xsl:variable name="shibie">
+ <xsl:value-of select="图:预定义图形/图:生æˆè½¯ä»¶"/>
+ </xsl:variable>
+ <xsl:variable name="rotate-angle">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:生æˆè½¯ä»¶ and not($shibie='PNG')">
+ <xsl:value-of select="((360 - $jiaodu) * 2 * 3.14159265 ) div 360"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="图:文本内容/字:文字表"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="Freeform">
+ <xsl:element name="draw:polygon">
+ <xsl:variable name="tuxing1" select="字:图形/@字:图形引用"/>
+ <xsl:variable name="width" select="number(/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:预定义图形/图:属性/图:宽度)*1000"/>
+ <xsl:variable name="height" select="number(/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:预定义图形/图:属性/图:高度)*1000"/>
+ <xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
+ <xsl:attribute name="draw:points"><xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:预定义图形/图:关键点åæ ‡"><xsl:call-template name="drawpoints"><xsl:with-param name="points" select="concat(number(图:åæ ‡[1]/@xåæ ‡)*1000,',',number(图:åæ ‡[1]/@yåæ ‡)*1000)"/><xsl:with-param name="point-pos" select="2"/></xsl:call-template></xsl:for-each></xsl:attribute>
+ <xsl:call-template name="common"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="drawpoints">
+ <xsl:param name="points"/>
+ <xsl:param name="point-pos"/>
+ <xsl:choose>
+ <xsl:when test="图:åæ ‡[$point-pos]">
+ <xsl:variable name="points1" select="concat($points,' ',number(图:åæ ‡[$point-pos]/@xåæ ‡)*1000,',',number(图:åæ ‡[$point-pos]/@yåæ ‡)*1000)"/>
+ <xsl:call-template name="drawpoints">
+ <xsl:with-param name="points" select="$points1"/>
+ <xsl:with-param name="point-pos" select="$point-pos+1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$points"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="Scribble">
+ <xsl:element name="draw:polyline">
+ <xsl:variable name="tuxing1" select="字:图形/@字:图形引用"/>
+ <xsl:variable name="width" select="number(/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:预定义图形/图:属性/图:宽度)*1000"/>
+ <xsl:variable name="height" select="number(/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:预定义图形/图:属性/图:高度)*1000"/>
+ <xsl:attribute name="svg:viewBox"><xsl:value-of select="concat('0 0 ',$width, ' ',$height)"/></xsl:attribute>
+ <xsl:attribute name="draw:points"><xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]/图:预定义图形/图:关键点åæ ‡"><xsl:call-template name="drawpoints"><xsl:with-param name="points" select="concat(number(图:åæ ‡[1]/@xåæ ‡)*1000,',',number(图:åæ ‡[1]/@yåæ ‡)*1000)"/><xsl:with-param name="point-pos" select="2"/></xsl:call-template></xsl:for-each></xsl:attribute>
+ <xsl:call-template name="common"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Oval">
+ <xsl:element name="draw:ellipse">
+ <xsl:call-template name="common1"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="排版框">
+ <xsl:param name="biaoshi"/>
+ <xsl:param name="name"/>
+ <draw:frame text:anchor-type="paragraph">
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="$biaoshi"/></xsl:attribute>
+ <xsl:attribute name="draw:name"><xsl:value-of select="$name"/></xsl:attribute>
+ <xsl:attribute name="svg:width"><xsl:value-of select="concat(字:锚点属性/字:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:x"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹">
+ <xsl:attribute name="svg:y"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="draw:z-index">
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $biaoshi]">
+ <xsl:value-of select="@图:层次"/>
+ </xsl:for-each>
+ </xsl:attribute>
+ <draw:text-box>
+ <xsl:attribute name="fo:min-height"><xsl:value-of select="concat(字:锚点属性/字:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$biaoshi]/图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="/uof:UOF/uof:对象集/图:图形[@图:标识符=$biaoshi]/图:文本内容/字:文字表"/>
+ </draw:text-box>
+ </draw:frame>
+ </xsl:template>
+ <xsl:template name="Rectangle">
+ <xsl:element name="draw:rect">
+ <xsl:call-template name="common1"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="Line">
+ <xsl:element name="draw:line">
+ <xsl:variable name="tuxing1" select="字:图形/@字:图形引用"/>
+ <xsl:attribute name="svg:x1"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y1"><xsl:value-of select="concat(å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:x2"><xsl:value-of select="concat((å­—:锚点属性/å­—:ä½ç½®/å­—:æ°´å¹³/å­—:ç»å¯¹/@å­—:值 + å­—:锚点属性/å­—:宽度),$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="svg:y2"><xsl:value-of select="concat((å­—:锚点属性/å­—:ä½ç½®/å­—:åž‚ç›´/å­—:ç»å¯¹/@å­—:值 + å­—:锚点属性/å­—:高度),$uofUnit)"/></xsl:attribute>
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形[@图:标识符 = $tuxing1]">
+ <xsl:attribute name="text:anchor-type">paragraph</xsl:attribute>
+ <xsl:attribute name="draw:style-name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="draw:z-index"><xsl:value-of select="@图:层次"/></xsl:attribute>
+ <xsl:if test="图:预定义图形/图:属性/图:旋转角度 and not(图:预定义图形/图:属性/图:旋转角度='0.0')">
+ <xsl:variable name="jiaodu">
+ <xsl:value-of select="图:预定义图形/图:属性/图:旋转角度"/>
+ </xsl:variable>
+ <xsl:variable name="shibie">
+ <xsl:value-of select="图:预定义图形/图:生æˆè½¯ä»¶"/>
+ </xsl:variable>
+ <xsl:variable name="rotate-angle">
+ <xsl:choose>
+ <xsl:when test="图:预定义图形/图:生æˆè½¯ä»¶ and not($shibie='PNG')">
+ <xsl:value-of select="((360 - $jiaodu) * 2 * 3.14159265 ) div 360"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="(图:预定义图形/图:属性/图:旋转角度 * 2 * 3.14159265 ) div 360"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="draw:transform"><xsl:value-of select="concat('rotate (',$rotate-angle,') translate (-0.0194027777777778cm 3.317875cm)')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="图:文本内容">
+ <xsl:apply-templates select="图:文本内容/å­—:段è½"/>
+ <xsl:apply-templates select="图:文本内容/字:文字表"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="processPageBreaks">
+ <xsl:variable name="pageBreak" select="å­—:å¥/å­—:分页符"/>
+ <xsl:call-template name="createSubParagraph">
+ <xsl:with-param name="list" select="$pageBreak[1]/preceding-sibling::å­—:å¥"/>
+ <xsl:with-param name="pageBreak"/>
+ <xsl:with-param name="needsPageBreak">false</xsl:with-param>
+ </xsl:call-template>
+ <xsl:for-each select="$pageBreak">
+ <xsl:call-template name="createSubParagraph">
+ <xsl:with-param name="list" select="./following-sibling::å­—:å¥[preceding::å­—:å¥/å­—:分页符 = '.']"/>
+ <xsl:with-param name="pageBreak" select="."/>
+ <xsl:with-param name="needsPageBreak">true</xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="createSubParagraph">
+ <xsl:param name="list"/>
+ <xsl:param name="pageBreak"/>
+ <xsl:param name="needsPageBreak"/>
+ <xsl:if test="(count($list) &gt; 0) or ($needsPageBreak ='true') ">
+ <xsl:element name="text:p">
+ <xsl:choose>
+ <xsl:when test="$needsPageBreak = 'true'">
+ <xsl:choose>
+ <xsl:when test="ancestor::å­—:段è½/å­—:段è½å±žæ€§">
+ <xsl:attribute name="text:style-name">P<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½å±žæ€§"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:style-name">PageBreak</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="$pageBreak">
+ <xsl:apply-templates select="$pageBreak"/>
+ </xsl:if>
+ <xsl:apply-templates select="$list"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="å­—:å¥/å­—:区域开始[@å­—:类型='bookmark']">
+ <xsl:variable name="biaoshi">
+ <xsl:value-of select="@字:标识符"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="not(@å­—:å称)">
+ <text:bookmark-start text:name="{/uof:UOF/uof:书签集/uof:书签[uof:文本ä½ç½®/@å­—:区域引用=$biaoshi]/@uof:å称}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <text:bookmark-start text:name="{@å­—:å称}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:å¥/å­—:区域结æŸ[preceding::å­—:区域开始[1]/@å­—:类型='bookmark']">
+ <xsl:variable name="biaoshi">
+ <xsl:value-of select="@字:标识符引用"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="not(@å­—:å称)">
+ <text:bookmark-end text:name="{/uof:UOF/uof:书签集/uof:书签[uof:文本ä½ç½®/@å­—:区域引用=$biaoshi]/@uof:å称}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <text:bookmark-end text:name="{@å­—:å称}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="字:区域开始[@字:类型='annotation']">
+ <text:bookmark-start text:name="{@字:标识符}"/>
+ </xsl:template>
+ <xsl:template match="å­—:区域结æŸ[preceding::å­—:区域开始[1]/@å­—:类型='annotation']">
+ <text:bookmark-end text:name="{@字:标识符引用}"/>
+ </xsl:template>
+ <xsl:template match="字:区域开始[@字:类型='user-data']">
+ <text:alphabetical-index-mark-start text:id="{@å­—:标识符}" text:string-value-phonetic="{@å­—:å称}"/>
+ </xsl:template>
+ <xsl:template match="å­—:区域结æŸ[preceding::å­—:区域开始[1]/@å­—:类型='user-data']">
+ <text:alphabetical-index-mark-end text:id="{@字:标识符引用}"/>
+ </xsl:template>
+ <xsl:template match="å­—:段è½/å­—:域开始">
+ <xsl:choose>
+ <xsl:when test="@字:类型='createdate'">
+ <xsl:variable name="datestr" select="../å­—:å¥[preceding-sibling::å­—:域代ç ]/å­—:文本串"/>
+ <xsl:element name="text:creation-date">
+ <xsl:attribute name="style:data-style-name">CreateDate<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'createdate']"/></xsl:attribute>
+ <xsl:attribute name="text:date-value"><xsl:value-of select="$datestr"/></xsl:attribute>
+ <xsl:value-of select="$datestr"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@字:类型='savedate'">
+ <xsl:variable name="datestr" select="../å­—:å¥[preceding-sibling::å­—:域代ç ]/å­—:文本串"/>
+ <xsl:element name="text:date">
+ <xsl:attribute name="style:data-style-name">SaveDate<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'savedate']"/></xsl:attribute>
+ <xsl:attribute name="text:date-value"><xsl:value-of select="$datestr"/></xsl:attribute>
+ <xsl:attribute name="text:fixed">true</xsl:attribute>
+ <xsl:value-of select="$datestr"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@字:类型='date'">
+ <xsl:variable name="datestr" select="../å­—:å¥[preceding-sibling::å­—:域代ç ]/å­—:文本串"/>
+ <xsl:element name="text:date">
+ <xsl:attribute name="style:data-style-name">Date<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'date']"/></xsl:attribute>
+ <xsl:attribute name="text:date-value"><xsl:value-of select="$datestr"/></xsl:attribute>
+ <xsl:value-of select="$datestr"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@字:类型='time'">
+ <xsl:variable name="datestr" select="../å­—:å¥[preceding-sibling::å­—:域代ç ]/å­—:文本串"/>
+ <xsl:element name="text:time">
+ <xsl:attribute name="style:data-style-name">Time<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'time']"/></xsl:attribute>
+ <xsl:attribute name="text:time-value"><xsl:value-of select="$datestr"/></xsl:attribute>
+ <xsl:value-of select="$datestr"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@字:类型='edittime'">
+ <xsl:variable name="datestr" select="../å­—:å¥[preceding-sibling::å­—:域代ç ]/å­—:文本串"/>
+ <xsl:element name="text:editing-duration">
+ <xsl:attribute name="style:data-style-name">EditTime<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'edittime']"/></xsl:attribute>
+ <xsl:value-of select="$datestr"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@字:类型='createtime'">
+ <xsl:variable name="datestr" select="../å­—:å¥[preceding-sibling::å­—:域代ç ]/å­—:文本串"/>
+ <xsl:element name="text:creation-time">
+ <xsl:attribute name="style:data-style-name">CREATETIME<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½/å­—:域开始[@å­—:类型 = 'createtime']"/></xsl:attribute>
+ <xsl:value-of select="$datestr"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@字:类型='page'">
+ <xsl:call-template name="页ç åŸŸ"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='numpages'">
+ <xsl:call-template name="页数域"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='author'">
+ <xsl:call-template name="作者域"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='username'">
+ <xsl:call-template name="用户域"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='userinitials'">
+ <xsl:call-template name="缩写域"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='title'">
+ <xsl:call-template name="标题域"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='subject'">
+ <xsl:call-template name="主题域"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='numchars'">
+ <xsl:call-template name="字符数"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='filename'">
+ <xsl:call-template name="文件å"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='edittime'">
+ <xsl:call-template name="编辑时间"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='creation-time'">
+ <xsl:call-template name="创建时间"/>
+ </xsl:when>
+ <xsl:when test="@字:类型='seq'">
+ <xsl:call-template name="题注"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="commonParagraph">
+ <xsl:choose>
+ <xsl:when test="å­—:段è½å±žæ€§/å­—:大纲级别">
+ <xsl:element name="text:h">
+ <xsl:call-template name="commonParagraphAttributes"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="not (字:域开始/@字:类型='ref') and not(字:域开始/@字:类型='index')">
+ <xsl:element name="text:p">
+ <xsl:call-template name="commonParagraphAttributes"/>
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="commonParagraphAttributes">
+ <xsl:choose>
+ <xsl:when test="å­—:段è½å±žæ€§">
+ <xsl:variable name="pp">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½[å­—:段è½å±žæ€§]"/>
+ </xsl:variable>
+ <xsl:variable name="aa">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½[å­—:域结æŸ]"/>
+ </xsl:variable>
+ <xsl:variable name="stylename" select="å­—:段è½å±žæ€§/@å­—:å¼æ ·å¼•ç”¨"/>
+ <xsl:choose>
+ <xsl:when test="preceding-sibling::å­—:段è½/å­—:域结æŸ">
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat('P',$pp+$aa)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains($stylename,'Heading')">
+ <xsl:attribute name="text:style-name"><xsl:value-of select="$stylename"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat('P',$pp)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:大纲级别">
+ <xsl:attribute name="text:outline-level"><xsl:value-of select="å­—:段è½å±žæ€§/å­—:大纲级别"/></xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="generate-id(ancestor::å­—:主体/descendant::å­—:段è½[1]) = generate-id(.)">
+ <xsl:variable name="paragraph-number">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½[å­—:段è½å±žæ€§]"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name">P<xsl:value-of select="number($paragraph-number)"/>_1</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="not(å­—:段è½å±žæ€§) and (descendant::å­—:分æ ç¬¦ or ancestor::å­—:分节/descendant::å­—:节属性[å­—:分æ /@å­—:æ æ•° &gt; 1])">
+ <xsl:attribute name="text:style-name">ColumnBreakPara</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:å¥">
+ <xsl:apply-templates select="字:文本串"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:段è½å±žæ€§"/>
+ <xsl:template match="å­—:å¥/å­—:å¥å±žæ€§"/>
+ <xsl:template match="å­—:å¥å±žæ€§" mode="style">
+ <xsl:if test="not(@å­—:å¼æ ·å¼•ç”¨)">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">T<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:å¥å±žæ€§" format="1"/></xsl:attribute>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ <xsl:if test="@å­—:å¼æ ·å¼•ç”¨">
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@å­—:å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:text-properties">
+ <xsl:apply-templates select="./*"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="å­—:å¥/å­—:文本串">
+ <xsl:choose>
+ <xsl:when test="string(.) = ' ' ">
+ <xsl:element name="text:s"/>
+ </xsl:when>
+ <xsl:when test="contains(.,' ')">
+ <xsl:call-template name="replace-spaces">
+ <xsl:with-param name="curr-string" select="."/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="replace-spaces">
+ <xsl:param name="curr-string"/>
+ <xsl:if test="contains($curr-string,' ')">
+ <xsl:value-of select="substring-before($curr-string,' ')"/>
+ <text:s text:c="2"/>
+ <xsl:variable name="next-string" select="substring-after($curr-string,' ')"/>
+ <xsl:choose>
+ <xsl:when test="contains($next-string, ' ')">
+ <xsl:call-template name="replace-spaces">
+ <xsl:with-param name="curr-string" select="$next-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$next-string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="å­—:空格符[parent::å­—:å¥]">
+ <xsl:element name="text:s">
+ <xsl:attribute name="text:c"><xsl:value-of select="@字:个数"/></xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="å­—:制表符[parent::å­—:å¥]">
+ <xsl:element name="text:tab"/>
+ </xsl:template>
+ <xsl:template match="å­—:å¥">
+ <xsl:if test="name(following-sibling::*[1])!='å­—:域结æŸ'">
+ <xsl:if test="å­—:æ¢è¡Œç¬¦">
+ <xsl:element name="text:line-break"/>
+ </xsl:if>
+ <xsl:variable name="currently-node" select="./字:锚点"/>
+ <xsl:choose>
+ <xsl:when test="å­—:å¥å±žæ€§//å­—:éšè—文字/@å­—:值='true'">
+ <text:hidden-text text:is-hidden="true" text:string-value="{.}"/>
+ </xsl:when>
+ <xsl:when test="字:区域开始[@字:类型='hyperlink']">
+ <xsl:element name="text:a">
+ <xsl:attribute name="xlink:type">simple</xsl:attribute>
+ <xsl:variable name="hyperDest" select="字:区域开始/@字:标识符"/>
+ <xsl:attribute name="xlink:href"><xsl:for-each select="/uof:UOF/uof:链接集/uof:超级链接"><xsl:if test="@uof:链æº=$hyperDest"><xsl:if test="@uof:æ示"><xsl:attribute name="office:name"><xsl:value-of select="@uof:æ示"/></xsl:attribute></xsl:if><xsl:if test="@uof:目标"><xsl:variable name="bsh" select="@uof:目标"/><xsl:choose><xsl:when test="contains($bsh,'\')"><xsl:value-of select="concat('/',translate($bsh,'\','/'))"/></xsl:when><xsl:otherwise><xsl:value-of select="$bsh"/></xsl:otherwise></xsl:choose></xsl:if><xsl:if test="@uof:书签"><xsl:variable name="bookmarkDest" select="@uof:书签"/><xsl:choose><xsl:when test="/uof:UOF/uof:书签集/uof:书签"><xsl:for-each select="/uof:UOF/uof:书签集/uof:书签"><xsl:if test="@uof:å称=$bookmarkDest"><xsl:value-of select="concat('#',@uof:å称)"/></xsl:if></xsl:for-each></xsl:when><xsl:otherwise><xsl:value-of select="concat('#',$bookmarkDest)"/></xsl:otherwise></xsl:choose></xsl:if></xsl:if></xsl:for-each></xsl:attribute>
+ <xsl:for-each select="/uof:UOF/uof:链接集/uof:超级链接">
+ <xsl:if test="@uof:链æº=$hyperDest">
+ <xsl:if test="@uof:æ示">
+ <xsl:attribute name="office:name"><xsl:value-of select="@uof:æ示"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="./字:文本串">
+ <xsl:apply-templates select="字:文本串"/>
+ </xsl:when>
+ <xsl:when test="following-sibling::å­—:å¥/å­—:文本串">
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="å­—:åŒºåŸŸç»“æŸ and preceding::å­—:区域开始[1]/@å­—:类型='bookmark' and not(self::node()/å­—:区域开始)">
+ <xsl:variable name="aa">
+ <xsl:value-of select="å­—:区域结æŸ/@å­—:标识符引用"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="preceding::å­—:区域开始[1]/@å­—:类型='bookmark' and not(preceding::å­—:区域开始[1]/@å­—:å称)">
+ <text:bookmark-end text:name="{/uof:UOF/uof:书签集/uof:书签[uof:文本ä½ç½®/@å­—:区域引用=$aa]/@uof:å称}"/>
+ </xsl:when>
+ <xsl:when test="preceding::字:区域开始[1]/@字:类型='bookmark'">
+ <text:bookmark-end text:name="{preceding::å­—:区域开始[1]/@å­—:å称}"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="preceding-sibling::å­—:å¥[position()=1]/å­—:区域开始[@å­—:类型='hyperlink'] and not(preceding-sibling::å­—:å¥[position()=1]/å­—:区域结æŸ)"/>
+ <xsl:when test="(preceding-sibling::å­—:å¥) or (å­—:å¥å±žæ€§)or(å­—:区域开始)">
+ <xsl:element name="text:span">
+ <xsl:choose>
+ <xsl:when test="字:区域开始[@字:类型='annotation']">
+ <xsl:variable name="ref_comment">
+ <xsl:value-of select="字:区域开始/@字:标识符"/>
+ </xsl:variable>
+ <xsl:apply-templates/>
+ <xsl:apply-templates select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:批注集/å­—:批注[@å­—:区域引用 = $ref_comment]"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="stylenum">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:å¥" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat('T',$stylenum)"/></xsl:attribute>
+ <xsl:apply-templates select="*[not(name()='å­—:引文符å·')]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="å­—:文本串|å­—:锚点|å­—:空格符|å­—:æ¢è¡Œç¬¦|å­—:制表符|å­—:区域开始|å­—:区域结æŸ|å­—:脚注|å­—:尾注"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="node()[name() = 'å­—:ä½ç½®']">
+ <xsl:attribute name="style:text-position"><xsl:variable name="val"><xsl:value-of select="."/></xsl:variable><xsl:choose><xsl:when test="$val='sub' or $val='super'"><xsl:value-of select="concat($val,' 58%')"/></xsl:when><xsl:when test="contains($val,'sub ') or contains($val,'super ')"><xsl:value-of select="concat($val,'%')"/></xsl:when><xsl:when test="not(contains($val,' '))"><xsl:value-of select="concat($val,'% 100%')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat(substring-before($val,' '),'% ',substring-after($val,' '),'%' )"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:批注">
+ <office:annotation office:display="true">
+ <xsl:variable name="name" select="@字:作者"/>
+ <dc:creator>
+ <xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:用户集/å­—:用户[@å­—:标识符=$name]/@å­—:姓å"/>
+ </dc:creator>
+ <dc:date>
+ <xsl:value-of select="@字:日期"/>
+ </dc:date>
+ <xsl:apply-templates select="å­—:段è½"/>
+ </office:annotation>
+ </xsl:template>
+ <xsl:template match="字:字体">
+ <xsl:if test="@å­—:å­—å·">
+ <xsl:attribute name="fo:font-size"><xsl:value-of select="@å­—:å­—å·"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian"><xsl:value-of select="@å­—:å­—å·"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-complex"><xsl:value-of select="@å­—:å­—å·"/>pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@å­—:ç›¸å¯¹å­—å· and self::node( )[not(parent::å­—:å¥å±žæ€§)]">
+ <xsl:variable name="stylename" select="parent::node()/@å­—:基å¼æ ·å¼•ç”¨"/>
+ <xsl:variable name="zihao">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†//uof:段è½å¼æ ·[@å­—:标识符=$stylename]">
+ <xsl:value-of select="å­—:字体/@å­—:å­—å·"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="font-size" select="@å­—:相对字å·"/>
+ <xsl:attribute name="fo:font-size"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-complex"><xsl:value-of select="($zihao * $font-size div 100)"/>pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@字:颜色">
+ <xsl:attribute name="fo:color"><xsl:value-of select="@字:颜色"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@字:中文字体引用">
+ <xsl:attribute name="style:font-name-asian"><xsl:value-of select="@字:中文字体引用"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@字:西文字体引用">
+ <xsl:variable name="xiwen" select="@字:西文字体引用"/>
+ <xsl:attribute name="style:font-name"><xsl:value-of select="translate($xiwen,'_',' ')"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:斜体">
+ <xsl:if test="@字:值='true'">
+ <xsl:attribute name="fo:font-style">italic</xsl:attribute>
+ <xsl:attribute name="fo:font-style-asian">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-asian">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-complex">italic</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:粗体">
+ <xsl:if test="@字:值='true'or @字:值='1'">
+ <xsl:attribute name="fo:font-weight">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-asian">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-complex">bold</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:下划线">
+ <xsl:choose>
+ <xsl:when test="@字:类型 = 'single'">
+ <xsl:attribute name="style:text-underline-style">solid</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'double'">
+ <xsl:attribute name="style:text-underline-style">solid</xsl:attribute>
+ <xsl:attribute name="style:text-underline-type">double</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'thick'">
+ <xsl:attribute name="style:text-underline-style">solid</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dotted'">
+ <xsl:attribute name="style:text-underline-style">dotted</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dotted-heavy'">
+ <xsl:attribute name="style:text-underline-style">dotted</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash'">
+ <xsl:attribute name="style:text-underline-style">dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dashed-heavy'">
+ <xsl:attribute name="style:text-underline-style">dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-long'">
+ <xsl:attribute name="style:text-underline-style">long-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-long-heavy'">
+ <xsl:attribute name="style:text-underline-style">long-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dot-dash'">
+ <xsl:attribute name="style:text-underline-style">dot-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-dot-heavy'">
+ <xsl:attribute name="style:text-underline-style">dot-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dot-dot-dash'">
+ <xsl:attribute name="style:text-underline-style">dot-dot-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'dash-dot-dot-heavy'">
+ <xsl:attribute name="style:text-underline-style">dot-dot-dash</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'wave'">
+ <xsl:attribute name="style:text-underline-style">wave</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'wavy-heavy'">
+ <xsl:attribute name="style:text-underline-style">wave</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'wavy-double'">
+ <xsl:attribute name="style:text-underline-style">wave</xsl:attribute>
+ <xsl:attribute name="style:text-underline-type">double</xsl:attribute>
+ <xsl:attribute name="style:text-underline-width">auto</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@字:颜色">
+ <xsl:attribute name="style:text-underline-color"><xsl:choose><xsl:when test="@字:颜色='auto'">font-color</xsl:when><xsl:otherwise><xsl:value-of select="@字:颜色"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:text-underline-color">font-color</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:ç€é‡å·">
+ <xsl:if test="not(@字:类型='none')">
+ <xsl:choose>
+ <xsl:when test="@字:类型='dot'">
+ <xsl:attribute name="style:text-emphasize">dot below</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='accent above' ">
+ <xsl:attribute name="style:text-emphasize">accent above</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='dot above' ">
+ <xsl:attribute name="style:text-emphasize">dot above</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='disc above' ">
+ <xsl:attribute name="style:text-emphasize">disc above</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='circle above' ">
+ <xsl:attribute name="style:text-emphasize">circle above</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='accent below' ">
+ <xsl:attribute name="style:text-emphasize">accent below</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='dot below' ">
+ <xsl:attribute name="style:text-emphasize">dot below</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='disc below' ">
+ <xsl:attribute name="style:text-emphasize">disc below</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='circle below' ">
+ <xsl:attribute name="style:text-emphasize">circle below</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>none</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="字:颜色">
+ <xsl:attribute name="fo:color"><xsl:value-of select="@字:颜色"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="å­—:éšè—文字">
+ <xsl:attribute name="text:display"><xsl:value-of select="@字:值"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:空心">
+ <xsl:attribute name="style:text-outline"><xsl:value-of select="@字:值"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:阴影">
+ <xsl:if test="not(@字:值='false')">
+ <xsl:attribute name="fo:text-shadow">1pt 1pt</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:闪动的">
+ <xsl:attribute name="style:text-blinking"><xsl:value-of select="@字:闪动的"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:删除线">
+ <xsl:choose>
+ <xsl:when test="@字:类型 = 'single' ">
+ <xsl:attribute name="style:text-line-through-style">solid</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'double' ">
+ <xsl:attribute name="style:text-line-through-type">double</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'bold' ">
+ <xsl:attribute name="style:text-line-through-width">bold</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = 'xl' ">
+ <xsl:attribute name="style:text-line-through-text">X</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型 = '/l' ">
+ <xsl:attribute name="style:text-line-through-text">/</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:text-crossing-out">none</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:çªå‡ºæ˜¾ç¤º">
+ <xsl:attribute name="fo:background-color">
+ <xsl:choose>
+ <xsl:when test="@字:颜色='auto'">transparent</xsl:when>
+ <xsl:otherwise><xsl:value-of select="@字:颜色"/></xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:template>
+ <xsl:template match="@字:颜色[not(.='auto')]">
+ <xsl:attribute name="fo:color">#<xsl:value-of select="."/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:浮雕">
+ <xsl:attribute name="style:font-relief"><xsl:choose><xsl:when test="@字:类型='engrave'">engraved</xsl:when><xsl:when test="@字:类型='emboss'">embossed</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:醒目字体">
+ <xsl:choose>
+ <xsl:when test="@字:类型='small-caps'">
+ <xsl:attribute name="fo:font-variant">small-caps</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@字:类型='none'">
+ <xsl:attribute name="fo:font-variant">normal</xsl:attribute>
+ <xsl:attribute name="fo:text-transform">none</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:text-transform"><xsl:choose><xsl:when test="@字:类型='uppercase'">uppercase</xsl:when><xsl:when test="@字:类型='lowercase'">lowercase</xsl:when><xsl:when test="@字:类型='capital'">capitalize</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:ä½ç½®" mode="oo">
+ <xsl:attribute name="style:text-position"><xsl:variable name="val"><xsl:value-of select="."/></xsl:variable><xsl:choose><xsl:when test="$val='sub' or $val='super'"><xsl:value-of select="concat($val,' 58%')"/></xsl:when><xsl:when test="contains($val,'sub ') or contains($val,'super ')"><xsl:value-of select="concat($val,'%')"/></xsl:when><xsl:when test="not(contains($val,' '))"><xsl:value-of select="concat($val,'% 100%')"/></xsl:when><xsl:otherwise><xsl:value-of select="concat(substring-before($val,' '),'% ',substring-after($val,' '),'%' )"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:缩放">
+ <xsl:attribute name="style:text-scale"><xsl:value-of select="."/>%</xsl:attribute>
+ </xsl:template>
+ <xsl:template match="å­—:字符间è·">
+ <xsl:attribute name="fo:letter-spacing"><xsl:value-of select="."/>cm</xsl:attribute>
+ </xsl:template>
+ <xsl:template match="å­—:调整字间è·">
+ <xsl:variable name="tt" select="å­—:调整字间è·"/>
+ <xsl:attribute name="style:letter-kerning"><xsl:choose><xsl:when test="$tt='1'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:外框">
+ <xsl:attribute name="style:text-outline">true</xsl:attribute>
+ </xsl:template>
+ <xsl:template match="å­—:字符间è·[parent::å­—:å¥å±žæ€§]">
+ <xsl:variable name="aa">
+ <xsl:value-of select="."/>
+ </xsl:variable>
+ <xsl:attribute name="fo:letter-spacing"><xsl:value-of select="concat( $aa, $uofUnit)"/></xsl:attribute>
+ </xsl:template>
+ <xsl:template match="字:分节">
+ <xsl:if test="字:节属性/字:脚注设置">
+ <xsl:call-template name="脚注设置"/>
+ </xsl:if>
+ <xsl:if test="字:节属性/字:尾注设置">
+ <xsl:call-template name="尾注设置"/>
+ </xsl:if>
+ <xsl:if test="å­—:节属性/å­—:è¡Œå·è®¾ç½®">
+ <xsl:call-template name="行编å·"/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="行编å·">
+ <xsl:element name="text:linenumbering-configuration">
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:è¡Œå·è®¾ç½®">
+ <xsl:choose>
+ <xsl:when test="@å­—:使用行å·='false'">
+ <xsl:attribute name="text:number-lines">false</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:style-name">Line numbering</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@å­—:ç¼–å·æ–¹å¼">
+ <xsl:choose>
+ <xsl:when test="@å­—:ç¼–å·æ–¹å¼='section'">
+ <xsl:attribute name="text:count-in-floating-frames">true</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@å­—:ç¼–å·æ–¹å¼='page'">
+ <xsl:attribute name="text:restart-on-page">true</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="å­—:ç¼–å·æ–¹å¼='continuous'">
+ <xsl:attribute name="text:count-empty-lines">true</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="@å­—:起始编å·">
+ <xsl:attribute name="style:num-format"><xsl:value-of select="@å­—:起始编å·"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@å­—:è·è¾¹ç•Œ">
+ <xsl:attribute name="text:offset"><xsl:value-of select="concat(@å­—:è·è¾¹ç•Œ,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@å­—:è¡Œå·é—´éš”">
+ <xsl:attribute name="text:increment"><xsl:value-of select="@å­—:è¡Œå·é—´éš”"/></xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="脚注设置">
+ <xsl:element name="text:notes-configuration">
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:脚注设置">
+ <xsl:attribute name="text:note-class">footnote</xsl:attribute>
+ <xsl:attribute name="text:master-page-name">Footnote</xsl:attribute>
+ <xsl:attribute name="text:footnotes-position"><xsl:choose><xsl:when test="@å­—:ä½ç½®='page-bottom'">page</xsl:when><xsl:when test="@å­—:ä½ç½®='below-text'">document</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="text:start-numbering-at"><xsl:choose><xsl:when test="@å­—:ç¼–å·æ–¹å¼='continuous'">document</xsl:when><xsl:when test="@å­—:ç¼–å·æ–¹å¼='section'">chapter</xsl:when><xsl:when test="@å­—:ç¼–å·æ–¹å¼='page'">page</xsl:when></xsl:choose></xsl:attribute>
+ <xsl:attribute name="text:start-value"><xsl:value-of select="@å­—:èµ·å§‹ç¼–å· - 1"/></xsl:attribute>
+ <xsl:attribute name="style:num-format"><xsl:call-template name="ooæ•°å­—æ ¼å¼"><xsl:with-param name="oo_format" select="@å­—:æ ¼å¼"/></xsl:call-template></xsl:attribute>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="尾注设置">
+ <xsl:element name="text:notes-configuration">
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:分节/å­—:节属性/å­—:尾注设置">
+ <xsl:attribute name="text:note-class">endnote</xsl:attribute>
+ <xsl:attribute name="text:master-page-name">Endnote</xsl:attribute>
+ <xsl:attribute name="style:num-format"><xsl:call-template name="ooæ•°å­—æ ¼å¼"><xsl:with-param name="oo_format" select="@å­—:æ ¼å¼"/></xsl:call-template></xsl:attribute>
+ <xsl:attribute name="text:start-value"><xsl:value-of select="@å­—:èµ·å§‹ç¼–å· - 1"/></xsl:attribute>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="paragraph-properties">
+ <xsl:choose>
+ <xsl:when test="descendant::å­—:页边è·[@uof:å·¦]">
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="number((descendant::å­—:页边è·/@uof:å·¦)) * $other-to-cm-conversion-factor"/>cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:margin-left">0cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="descendant::å­—:页边è·[@uof:å³]">
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="number((descendant::å­—:页边è·/@uof:å³)) * $other-to-cm-conversion-factor"/>cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:margin-right">0cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:text-indent">0cm</xsl:attribute>
+ <xsl:call-template name="bidi"/>
+ </xsl:template>
+ <xsl:template name="bidi">
+ </xsl:template>
+ <xsl:template match="字:文字表">
+ <xsl:choose>
+ <xsl:when test="@字:类型 = 'sub-table'">
+ <xsl:element name="table:table">
+ <xsl:attribute name="table:is-sub-table">true</xsl:attribute>
+ <xsl:apply-templates select="字:文字表属性">
+ <xsl:with-param name="sub-table" select="@字:类型"/>
+ </xsl:apply-templates>
+ <xsl:if test="字:行[position()=1]/字:表行属性/字:表头行/@字:值='true'">
+ <xsl:element name="table:table-header-rows">
+ <xsl:for-each select="字:行">
+ <xsl:if test="字:表行属性/字:表头行/@字:值='true'">
+ <xsl:apply-templates select="."/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:for-each select="字:行[not(字:表行属性/字:表头行) or (字:表行属性/字:表头行/@字:值='false')]">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="table:table">
+ <xsl:if test="字:文字表属性">
+ <xsl:attribute name="table:style-name">Table<xsl:number count="å­—:文字表[not (@å­—:类型='sub-table')]" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(字:文字表属性/字:列宽集/字:列宽)">
+ <xsl:for-each select="å­—:è¡Œ[1]/å­—:å•å…ƒæ ¼">
+ <xsl:element name="table:table-column">
+ <xsl:attribute name="table:style-name">Table<xsl:number count="å­—:文字表" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/>.C<xsl:number value="count(preceding::å­—:å•å…ƒæ ¼)+1"/></xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:apply-templates select="字:文字表属性"/>
+ <xsl:if test="字:行[position()=1]/字:表行属性/字:表头行/@字:值='true'">
+ <xsl:element name="table:table-header-rows">
+ <xsl:for-each select="字:行">
+ <xsl:if test="字:表行属性/字:表头行/@字:值='true'">
+ <xsl:apply-templates select="."/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:for-each select="字:行[not(字:表行属性/字:表头行) or (字:表行属性/字:表头行/@字:值='false')]">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="字:文字表属性">
+ <xsl:param name="sub-table"/>
+ <xsl:apply-templates select="字:列宽集">
+ <xsl:with-param name="sub-table" select="$sub-table"/>
+ </xsl:apply-templates>
+ </xsl:template>
+ <xsl:template match="字:列宽集">
+ <xsl:param name="sub-table"/>
+ <xsl:apply-templates select="字:列宽">
+ <xsl:with-param name="sub-table" select="$sub-table"/>
+ </xsl:apply-templates>
+ </xsl:template>
+ <xsl:template match="字:列宽">
+ <xsl:param name="sub-table"/>
+ <xsl:element name="table:table-column">
+ <xsl:choose>
+ <xsl:when test="$sub-table='sub-table'">
+ <xsl:variable name="subtable-leikuan" select="."/>
+ <xsl:variable name="weizi">
+ <xsl:for-each select="ancestor::*[name()='字:文字表' and not(@字:类型='sub-table')]/字:文字表属性/字:列宽集/字:列宽">
+ <xsl:variable name="yyyyy" select="."/>
+ <xsl:if test="substring(string($yyyyy),1,string-length(string($yyyyy))-1)=substring(string($subtable-leikuan),1,string-length(string($subtable-leikuan))-1)">
+ <xsl:value-of select="concat(position(),';')"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:variable name="xxxxx">
+ <xsl:number count="å­—:文字表[not (@å­—:类型='sub-table')]" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="table:style-name"><xsl:value-of select="concat('Table',$xxxxx,'.C',substring-before($weizi,';'))"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:style-name">Table<xsl:number count="å­—:文字表[not (@å­—:类型='sub-table')]" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/>.C<xsl:number count="å­—:列宽" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="single" format="1"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="字:行">
+ <xsl:element name="table:table-row">
+ <xsl:attribute name="table:style-name">Table<xsl:number count="å­—:文字表[not (@å­—:类型='sub-table')]" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/>.R<xsl:number count="å­—:è¡Œ" from="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:文字表[not (@å­—:类型='sub-table')]" level="any" format="1"/></xsl:attribute>
+ <xsl:for-each select="node()">
+ <xsl:choose>
+ <xsl:when test="name()='å­—:å•å…ƒæ ¼'">
+ <xsl:call-template name="å­—:å•å…ƒæ ¼"/>
+ </xsl:when>
+ <xsl:when test="name()='å­—:å•å…ƒæ ¼è¦†ç›–'">
+
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="å­—:å•å…ƒæ ¼">
+ <xsl:element name="table:table-cell">
+ <xsl:attribute name="table:style-name">Table<xsl:number count="å­—:文字表[not (@å­—:类型='sub-table')]" from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" format="1"/>.R<xsl:number count="å­—:è¡Œ" from="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:文字表[not (@å­—:类型='sub-table')]" level="any" format="1"/>C<xsl:number count="å­—:å•å…ƒæ ¼" from="/uof:UOF/uof:文字处ç†/å­—:主体/å­—:文字表[not (@å­—:类型='sub-table')]/å­—:è¡Œ" level="any" format="1"/></xsl:attribute>
+ <xsl:if test="å­—:å•å…ƒæ ¼å±žæ€§">
+ <xsl:apply-templates select="å­—:å•å…ƒæ ¼å±žæ€§"/>
+ </xsl:if>
+ <xsl:for-each select="node( )">
+ <xsl:choose>
+ <xsl:when test="name( )='å­—:段è½'">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:when test="name( )='字:文字表'">
+ <xsl:apply-templates select="."/>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="å­—:å•å…ƒæ ¼å±žæ€§/å­—:边框">
+ <xsl:apply-templates/>
+ </xsl:template>
+ <xsl:template match="å­—:对é½[parent::å­—:文字表属性]">
+
+ </xsl:template>
+ <xsl:template match="uof:上">
+ <xsl:choose>
+ <xsl:when test="@uof:宽度='nil' ">
+ <xsl:attribute name="fo:border-top">none</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:宽度 and @uof:颜色">
+ <xsl:attribute name="fo:border-top"><xsl:value-of select="concat(number(@uof:宽度),$uofUnit)"/><xsl:text> </xsl:text><xsl:choose><xsl:when test="@uof:颜色 ='auto'"><xsl:text>solid #000000</xsl:text></xsl:when><xsl:otherwise><xsl:text>solid </xsl:text><xsl:value-of select="@uof:颜色"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:宽度">
+ <xsl:attribute name="fo:border-top"><xsl:value-of select="concat(number(@uof:宽度),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="uof:下">
+ <xsl:choose>
+ <xsl:when test="@uof:宽度='nil' ">
+ <xsl:attribute name="fo:border-bottom">none</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:宽度 and @uof:颜色">
+ <xsl:attribute name="fo:border-bottom"><xsl:value-of select="concat(number(@uof:宽度),$uofUnit)"/><xsl:text> </xsl:text><xsl:choose><xsl:when test="@uof:颜色 ='auto'"><xsl:text>solid #000000</xsl:text></xsl:when><xsl:otherwise><xsl:text>solid </xsl:text><xsl:value-of select="@uof:颜色"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:宽度">
+ <xsl:attribute name="fo:border-bottom"><xsl:value-of select="concat(number(@uof:宽度),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="uof:å·¦">
+ <xsl:choose>
+ <xsl:when test="@uof:宽度='nil'">
+ <xsl:attribute name="fo:border-left">none</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:宽度 and @uof:颜色">
+ <xsl:attribute name="fo:border-left"><xsl:value-of select="concat(number(@uof:宽度),$uofUnit)"/><xsl:text> </xsl:text><xsl:choose><xsl:when test="@uof:颜色 ='auto'"><xsl:text>solid #000000</xsl:text></xsl:when><xsl:otherwise><xsl:text>solid </xsl:text><xsl:value-of select="@uof:颜色"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:宽度">
+ <xsl:attribute name="fo:border-left"><xsl:value-of select="concat(number(@uof:宽度),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="uof:å³">
+ <xsl:choose>
+ <xsl:when test="@uof:宽度='nil' ">
+ <xsl:attribute name="fo:border-right">none</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:宽度 and @uof:颜色">
+ <xsl:attribute name="fo:border-right"><xsl:value-of select="concat(number(@uof:宽度),$uofUnit)"/><xsl:text> </xsl:text><xsl:choose><xsl:when test="@uof:颜色 ='auto'"><xsl:text>solid #000000</xsl:text></xsl:when><xsl:otherwise><xsl:text>solid </xsl:text><xsl:value-of select="@uof:颜色"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@uof:宽度">
+ <xsl:attribute name="fo:border-right"><xsl:value-of select="concat(number(@uof:宽度),$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="字:文字表属性/字:边框">
+ <xsl:apply-templates/>
+ </xsl:template>
+ <xsl:template match="å­—:å•å…ƒæ ¼å±žæ€§/å­—:边框">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:template>
+ <xsl:template match="字:左缩进">
+ </xsl:template>
+ <xsl:template match="å­—:å•å…ƒæ ¼å±žæ€§">
+ <xsl:if test="字:跨列/@字:值">
+ <xsl:attribute name="table:number-columns-spanned"><xsl:value-of select="字:跨列/@字:值"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="ç¼–å·é£Žæ ¼">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="concat('P',@字:标识符)"/></xsl:attribute>
+ <xsl:attribute name="style:family">paragraph</xsl:attribute>
+ <xsl:attribute name="style:parent-style-name">Standard</xsl:attribute>
+ <xsl:attribute name="style:list-style-name"><xsl:value-of select="@字:标识符"/></xsl:attribute>
+ <xsl:element name="style:text-properties">
+ <xsl:attribute name="fo:margin-left">0cm</xsl:attribute>
+ <xsl:attribute name="fo:margin-right">0cm</xsl:attribute>
+ <xsl:attribute name="fo:color"><xsl:value-of select="å­—:级别/å­—:符å·å­—体/å­—:字体/å­—:颜色"/></xsl:attribute>
+ <xsl:attribute name="fo:text-indent"/>
+ <xsl:attribute name="style:auto-text-indent">false</xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="ç¼–å·æ ¼å¼">
+ <xsl:attribute name="style:num-format"><xsl:choose><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='lower-letter'">a</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='upper-letter'">A</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='lower-roman'">i</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='upper-roman'">I</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='decimal-enclosed-circle'">â‘ , â‘¡, â‘¢, ...</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='ideograph-traditional'">甲, ä¹™, 丙, ...</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='ideograph-zodiac'">å­, 丑, 寅, ...</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='chinese-counting'">一, 二, 三, ...</xsl:when><xsl:when test="string(å­—:ç¼–å·æ ¼å¼)='chinese-legal-simplified'">壹, è´°, å, ...</xsl:when><xsl:otherwise>1</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:template>
+ <xsl:template name="图形style">
+ <xsl:for-each select="/uof:UOF/uof:对象集/图:图形">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name"><xsl:value-of select="@图:标识符"/></xsl:attribute>
+ <xsl:attribute name="style:family">graphic</xsl:attribute>
+ <xsl:attribute name="style:parent-style-name">Graphics</xsl:attribute>
+ <xsl:element name="style:text-properties">
+ <xsl:attribute name="svg:stroke-width"><xsl:value-of select="图:预定义图形/图:属性/图:线粗细"/></xsl:attribute>
+ <xsl:attribute name="svg:stroke-color"><xsl:value-of select="图:预定义图形/图:属性/图:线颜色"/></xsl:attribute>
+ <xsl:attribute name="draw:stroke-dash"><xsl:value-of select="图:预定义图形/图:属性/图:线型"/></xsl:attribute>
+ <xsl:attribute name="draw:marker-start"><xsl:value-of select="图:预定义图形/图:属性/图:å‰ç«¯ç®­å¤´/图:å¼æ ·"/></xsl:attribute>
+ <xsl:attribute name="draw:marker-end"><xsl:value-of select="图:预定义图形/图:属性/图:åŽç«¯ç®­å¤´/图:å¼æ ·"/></xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="duanluoshuxing">
+ <xsl:for-each select="/uof:UOF/uof:文字处ç†//å­—:段è½">
+ <xsl:choose>
+ <xsl:when test="count(å­—:å¥)&lt;=1">
+ <xsl:call-template name="å•ä¸ªæˆ–者没有å¥"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="多个å¥"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="å•ä¸ªæˆ–者没有å¥">
+ <xsl:variable name="stylename" select="å­—:段è½å±žæ€§/@å­—:å¼æ ·å¼•ç”¨"/>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">P<xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½"/></xsl:attribute>
+ <xsl:attribute name="style:family">paragraph</xsl:attribute>
+ <xsl:if test="name(preceding-sibling::*[1])='字:分节'">
+ <xsl:attribute name="style:master-page-name"><xsl:value-of select="preceding-sibling::å­—:分节[1]/@å­—:å称"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/@å­—:å¼æ ·å¼•ç”¨">
+ <xsl:variable name="duanluoyinyong">
+ <xsl:value-of select="å­—:段è½å±žæ€§/@å­—:å¼æ ·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF//uof:段è½å¼æ ·">
+ <xsl:if test="$duanluoyinyong=@字:标识符">
+ <xsl:if test="@å­—:基å¼æ ·å¼•ç”¨">
+ <xsl:choose>
+ <xsl:when test="@å­—:标识符=/uof:UOF/uof:文字处ç†/å­—:主体/å­—:段è½/å­—:段è½å±žæ€§/å­—:æ ¼å¼ä¿®è®¢/@å­—:修订信æ¯å¼•ç”¨">
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@字:标识符"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:parent-style-name"><xsl:value-of select="@å­—:基å¼æ ·å¼•ç”¨"/></xsl:attribute>
+ <xsl:variable name="aa">
+ <xsl:value-of select="@å­—:基å¼æ ·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF//uof:段è½å¼æ ·">
+ <xsl:if test="$aa=@字:标识符">
+ <xsl:attribute name="style:display-name"><xsl:choose><xsl:when test="@å­—:别å"><xsl:value-of select="@å­—:别å"/></xsl:when><xsl:otherwise><xsl:value-of select="@å­—:å称"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:element name="style:paragraph-properties">
+ <xsl:if test="å­—:对é½">
+ <xsl:if test="å­—:对é½/@å­—:文字对é½">
+ <xsl:attribute name="style:vertical-align"><xsl:choose><xsl:when test="å­—:对é½/@å­—:文字对é½='base'">baseline</xsl:when><xsl:when test="å­—:对é½/@å­—:文字对é½='center'">middle</xsl:when><xsl:otherwise><xsl:value-of select="å­—:对é½/@å­—:文字对é½"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:对é½/@å­—:水平对é½">
+ <xsl:attribute name="fo:text-align"><xsl:choose><xsl:when test="å­—:对é½/@å­—:水平对é½='left'">start</xsl:when><xsl:when test="å­—:对é½/@å­—:水平对é½='right'">end</xsl:when><xsl:when test="å­—:对é½/@å­—:水平对é½='center'">center</xsl:when><xsl:otherwise>justify</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="å­—:对é½/@å­—:水平对é½='distributed'">
+ <xsl:attribute name="fo:text-align-last">justify</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style:justify-single-word">false</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:call-template name="ParagraphAttr"/>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:制表ä½è®¾ç½®">
+ <xsl:call-template name="ootab"/>
+ </xsl:if>
+ </xsl:element>
+ <xsl:if test="å­—:å¥å±žæ€§">
+ <xsl:variable name="bsh">
+ <xsl:value-of select="å­—:å¥å±žæ€§/@å­—:å¼æ ·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:element name="style:text-properties">
+ <xsl:for-each select="/uof:UOF//uof:å¥å¼æ ·">
+ <xsl:if test="$bsh=@字:标识符">
+ <xsl:apply-templates select="./*"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="字:边框">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:element name="style:text-properties">
+ <xsl:if test="å­—:å¥/å­—:å¥å±žæ€§/å­—:字体">
+ <xsl:variable name="ziti">
+ <xsl:value-of select="å­—:å¥/å­—:å¥å±žæ€§/å­—:字体/@å­—:中文字体引用"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:字体集/uof:字体声明">
+ <xsl:if test="@uof:标识符=$ziti">
+ <xsl:attribute name="style:font-name"><xsl:value-of select="@uof:å称"/></xsl:attribute>
+ <xsl:attribute name="style:font-name-asian"><xsl:value-of select="@uof:å称"/></xsl:attribute>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:if test="å­—:å¥/å­—:å¥å±žæ€§/å­—:字体/@å­—:å­—å·">
+ <xsl:attribute name="fo:font-size"><xsl:value-of select="å­—:å¥/å­—:å¥å±žæ€§/å­—:字体/@å­—:å­—å·"/></xsl:attribute>
+ <xsl:attribute name="style:font-size-asian"><xsl:value-of select="å­—:å¥/å­—:å¥å±žæ€§/å­—:字体/@å­—:å­—å·"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:å¥å±žæ€§">
+ <xsl:for-each select="å­—:段è½å±žæ€§/å­—:å¥å±žæ€§">
+ <xsl:apply-templates select="./*"/>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:apply-templates select="å­—:å¥/å­—:å¥å±žæ€§/å­—:浮雕 | å­—:å¥/å­—:å¥å±žæ€§/å­—:边框 | å­—:å¥/å­—:å¥å±žæ€§/å­—:缩放 | å­—:å¥/å­—:å¥å±žæ€§/å­—:阴影 | å­—:å¥/å­—:å¥å±žæ€§/å­—:删除线 | å­—:å¥/å­—:å¥å±žæ€§/å­—:下划线 | å­—:å¥/å­—:å¡«å……"/>
+ <xsl:call-template name="ParagraphAttr"/>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:制表ä½è®¾ç½®">
+ <xsl:call-template name="ootab"/>
+ </xsl:if>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·[@å­—:标识符=$stylename]">
+ <xsl:apply-templates select="./*"/>
+ </xsl:for-each>
+ </xsl:element>
+ <style:paragraph-properties>
+ <xsl:if test="å­—:å¥/å­—:分æ ç¬¦">
+ <xsl:attribute name="fo:break-before">column</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:å¥/å­—:分页符">
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="ParagraphAttr"/>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:制表ä½è®¾ç½®">
+ <xsl:call-template name="ootab"/>
+ </xsl:if>
+ </style:paragraph-properties>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="ParagraphAttr">
+ <xsl:apply-templates select="å­—:段è½å±žæ€§/å­—:å¡«å……"/>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:对é½">
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:对é½/@å­—:文字对é½">
+ <xsl:attribute name="style:vertical-align"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:对é½/@å­—:文字对é½='base'">baseline</xsl:when><xsl:when test="å­—:段è½å±žæ€§/å­—:对é½/@å­—:文字对é½='center'">middle</xsl:when><xsl:otherwise><xsl:value-of select="å­—:段è½å±žæ€§/å­—:对é½/@å­—:文字对é½"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:对é½/@å­—:水平对é½">
+ <xsl:attribute name="fo:text-align"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:对é½/@å­—:水平对é½='left'">start</xsl:when><xsl:when test="å­—:段è½å±žæ€§/å­—:对é½/@å­—:水平对é½='right'">end</xsl:when><xsl:when test="å­—:段è½å±žæ€§/å­—:对é½/@å­—:水平对é½='center'">center</xsl:when><xsl:otherwise>justify</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:对é½/@å­—:水平对é½='distributed'">
+ <xsl:attribute name="fo:text-align-last">justify</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style:justify-single-word">false</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="å­—:段è½å±žæ€§/å­—:缩进">
+ <xsl:variable name="a1">
+ <xsl:value-of select="å­—:段è½å±žæ€§/å­—:缩进/å­—:å·¦/å­—:相对/@å­—:值"/>
+ </xsl:variable>
+ <xsl:variable name="a2">
+ <xsl:value-of select="å­—:段è½å±žæ€§/å­—:缩进/å­—:å³/å­—:相对/@å­—:值"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="å­—:段è½å±žæ€§/å­—:缩进/å­—:å·¦/å­—:相对 or å­—:段è½å±žæ€§/å­—:缩进/å­—:å³/å­—:相对">
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat($a1 * 0.37,'cm')"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat($a2 * 0.37,'cm')"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(å­—:段è½å±žæ€§/å­—:缩进/å­—:å·¦/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(å­—:段è½å±žæ€§/å­—:缩进/å­—:å³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:attribute name="fo:text-indent"><xsl:value-of select="concat(å­—:段è½å±žæ€§/å­—:缩进/å­—:首行/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="ancestor::uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·/å­—:级别[following-sibling::å­—:级别[position()=1]/@å­—:级别值='1']/å­—:缩进">
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(ancestor::uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·/å­—:级别[following-sibling::å­—:级别[position()=1]/@å­—:级别值='1']/å­—:缩进/å­—:å·¦/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(ancestor::uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·/å­—:级别[following-sibling::å­—:级别[position()=1]/@å­—:级别值='1']/å­—:缩进/å­—:å³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:text-indent"><xsl:value-of select="concat(ancestor::uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·/å­—:级别[following-sibling::å­—:级别[position()=1]/@å­—:级别值='1']/å­—:缩进/å­—:首行/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:è¡Œè·">
+ <xsl:variable name="type">
+ <xsl:value-of select="å­—:段è½å±žæ€§/å­—:è¡Œè·/@å­—:类型"/>
+ </xsl:variable>
+ <xsl:variable name="val">
+ <xsl:value-of select="å­—:段è½å±žæ€§/å­—:è¡Œè·/@å­—:值"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$type='fixed'">
+ <xsl:attribute name="fo:line-height"><xsl:value-of select="concat($val,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$type='multi-lines'">
+ <xsl:attribute name="fo:line-height"><xsl:value-of select="concat($val * 100,'%')"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$type='at-least'">
+ <xsl:attribute name="style:line-height-at-least"><xsl:value-of select="concat($val,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$type='line-space'">
+ <xsl:attribute name="style:line-spacing"><xsl:value-of select="concat($val,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:段间è·">
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:段间è·/å­—:段å‰è·/å­—:ç»å¯¹å€¼/@å­—:值">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(å­—:段è½å±žæ€§/å­—:段间è·/å­—:段å‰è·/å­—:ç»å¯¹å€¼/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:段间è·/å­—:段åŽè·/å­—:ç»å¯¹å€¼/@å­—:值">
+ <xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat(å­—:段è½å±žæ€§/å­—:段间è·/å­—:段åŽè·/å­—:ç»å¯¹å€¼/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="aa">
+ <xsl:value-of select="å­—:段è½å±žæ€§/å­—:段间è·/å­—:段å‰è·/å­—:相对值/@å­—:值"/>
+ </xsl:variable>
+ <xsl:variable name="bb">
+ <xsl:value-of select="å­—:段è½å±žæ€§/å­—:段间è·/å­—:段åŽè·/å­—:相对值/@å­—:值"/>
+ </xsl:variable>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:段间è·/å­—:段å‰è·/å­—:相对值/@å­—:值">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat($aa * 15.6,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:段间è·/å­—:段åŽè·/å­—:相对值/@å­—:值">
+ <xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat($bb * 15.6,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:孤行控制">
+ <xsl:attribute name="fo:widows"><xsl:value-of select="å­—:段è½å±žæ€§/å­—:孤行控制"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:寡行控制">
+ <xsl:attribute name="fo:orphans"><xsl:value-of select="å­—:段è½å±žæ€§/å­—:寡行控制"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:段中ä¸åˆ†é¡µ">
+ <xsl:attribute name="fo:keep-together"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:段中ä¸åˆ†é¡µ/@å­—:值='1' or å­—:段è½å±žæ€§/å­—:段中ä¸åˆ†é¡µ/@å­—:值='true'">always</xsl:when><xsl:otherwise>auto</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:与下段åŒé¡µ">
+ <xsl:attribute name="fo:keep-with-next"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:与下段åŒé¡µ/@å­—:值='1' or å­—:段è½å±žæ€§/å­—:与下段åŒé¡µ/@å­—:值='true'">always</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:for-each select="å­—:段è½å±žæ€§/å­—:边框">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:for-each>
+ <xsl:for-each select="å­—:段è½å±žæ€§/å­—:å¡«å……">
+ <xsl:call-template name="uof:å¡«å……"/>
+ </xsl:for-each>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:对é½ç½‘æ ¼">
+ <xsl:attribute name="style:snap-to-layout-grid"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:对é½ç½‘æ ¼/@å­—:值='1' or å­—:段è½å±žæ€§/å­—:对é½ç½‘æ ¼/@å­—:值='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:å–消断字">
+ <xsl:attribute name="fo:hyphenation-ladder-count">no-limit</xsl:attribute>
+ <xsl:attribute name="fo:hyphenation-remain-char-count">2</xsl:attribute>
+ <xsl:attribute name="fo:hyphenation-push-char-count">2</xsl:attribute>
+ <xsl:attribute name="fo:hyphenate"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:å–消断字/@å­—:值='1' or å­—:段è½å±žæ€§/å­—:å–消断字/@å­—:值='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:å–消行å·">
+ <xsl:attribute name="text:number-lines"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:å–消行å·/@å­—:值='1' or å­—:段è½å±žæ€§/å­—:å–消行å·/@å­—:值='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:行首尾标点控制">
+ <xsl:attribute name="style:punctuation-wrap"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:行首尾标点控制/@å­—:值='1' or å­—:段è½å±žæ€§/å­—:行首尾标点控制/@å­—:值='true'">hanging</xsl:when><xsl:otherwise>simple</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:是å¦è¡Œé¦–标点压缩/@å­—:值='true'">
+ <xsl:attribute name="style:punctuation-compress">false</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:中文习惯首尾字符">
+ <xsl:attribute name="style:line-break"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:中文习惯首尾字符/@å­—:值='1' or å­—:段è½å±žæ€§/å­—:中文习惯首尾字符/@å­—:值='true'">strict</xsl:when><xsl:otherwise>normal</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:è‡ªåŠ¨è°ƒæ•´ä¸­è‹±æ–‡å­—ç¬¦é—´è· or å­—:段è½å±žæ€§/å­—:自动调整中文与数字间è·">
+ <xsl:attribute name="style:text-autospace"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:自动调整中英文字符间è·/@å­—:值='1' or å­—:段è½å±žæ€§/å­—:自动调整中文与数字间è·/@å­—:值='1'or å­—:段è½å±žæ€§/å­—:自动调整中英文字符间è·/@å­—:值='true' or å­—:段è½å±žæ€§/å­—:自动调整中文与数字间è·/@å­—:值='true'">ideograph-alpha</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:首字下沉">
+ <xsl:element name="style:drop-cap">
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:首字下沉/@å­—:行数">
+ <xsl:attribute name="style:lines"><xsl:value-of select="å­—:段è½å±žæ€§/å­—:首字下沉/@å­—:行数"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:首字下沉/@å­—:é—´è·">
+ <xsl:attribute name="style:distance"><xsl:value-of select="concat(å­—:段è½å±žæ€§/å­—:首字下沉/@å­—:é—´è·,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:首字下沉/@å­—:字体引用">
+ <xsl:attribute name="style:style-name"><xsl:value-of select="translate(å­—:段è½å±žæ€§/å­—:首字下沉/@å­—:字体引用,'_',' ')"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:首字下沉/@å­—:字符数">
+ <xsl:attribute name="style:length"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:首字下沉/@å­—:字符数='1'">word</xsl:when><xsl:otherwise><xsl:value-of select="å­—:段è½å±žæ€§/å­—:首字下沉/@å­—:字符数"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="XDParagraphAttr">
+ <xsl:apply-templates select="å­—:å¡«å……"/>
+ <xsl:if test="å­—:对é½">
+ <xsl:if test="å­—:对é½/@å­—:文字对é½">
+ <xsl:attribute name="style:vertical-align"><xsl:choose><xsl:when test="å­—:对é½/@å­—:文字对é½='base'">baseline</xsl:when><xsl:when test="å­—:对é½/@å­—:文字对é½='center'">middle</xsl:when><xsl:otherwise><xsl:value-of select="å­—:对é½/@å­—:文字对é½"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:对é½/@å­—:水平对é½">
+ <xsl:attribute name="fo:text-align"><xsl:choose><xsl:when test="å­—:对é½/@å­—:水平对é½='left'">start</xsl:when><xsl:when test="å­—:对é½/@å­—:水平对é½='right'">end</xsl:when><xsl:when test="å­—:对é½/@å­—:水平对é½='center'">center</xsl:when><xsl:otherwise>justify</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="å­—:对é½/@å­—:水平对é½='distributed'">
+ <xsl:attribute name="fo:text-align-last">justify</xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style:justify-single-word">false</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="字:缩进">
+ <xsl:if test="å­—:缩进/å­—:å·¦/å­—:ç»å¯¹/@å­—:值">
+ <xsl:attribute name="fo:margin-left"><xsl:value-of select="concat(å­—:缩进/å­—:å·¦/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:缩进/å­—:å³/å­—:ç»å¯¹/@å­—:值">
+ <xsl:attribute name="fo:margin-right"><xsl:value-of select="concat(å­—:缩进/å­—:å³/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:缩进/å­—:首行/å­—:ç»å¯¹/@å­—:值">
+ <xsl:attribute name="fo:text-indent"><xsl:value-of select="concat(å­—:缩进/å­—:首行/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="å­—:è¡Œè·">
+ <xsl:variable name="type">
+ <xsl:value-of select="å­—:è¡Œè·/@å­—:类型"/>
+ </xsl:variable>
+ <xsl:variable name="val">
+ <xsl:value-of select="å­—:è¡Œè·/@å­—:值"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$type='fixed'">
+ <xsl:attribute name="fo:line-height"><xsl:value-of select="concat($val,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$type='multi-lines'">
+ <xsl:attribute name="fo:line-height"><xsl:value-of select="concat($val * 100,'%')"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$type='at-least'">
+ <xsl:attribute name="style:line-height-at-least"><xsl:value-of select="concat($val,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$type='line-space'">
+ <xsl:attribute name="style:line-spacing"><xsl:value-of select="concat($val,$uofUnit)"/></xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="å­—:段间è·">
+ <xsl:if test="å­—:段间è·/å­—:段å‰è·/å­—:ç»å¯¹å€¼/@å­—:值">
+ <xsl:attribute name="fo:margin-top"><xsl:value-of select="concat(å­—:段间è·/å­—:段å‰è·/å­—:ç»å¯¹å€¼/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段间è·/å­—:段åŽè·/å­—:ç»å¯¹å€¼/@å­—:值">
+ <xsl:attribute name="fo:margin-bottom"><xsl:value-of select="concat(å­—:段间è·/å­—:段åŽè·/å­—:ç»å¯¹å€¼/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="字:孤行控制">
+ <xsl:attribute name="fo:orphans"><xsl:value-of select="字:孤行控制"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:寡行控制">
+ <xsl:attribute name="fo:widows"><xsl:value-of select="字:寡行控制"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:段中ä¸åˆ†é¡µ">
+ <xsl:attribute name="fo:keep-together"><xsl:choose><xsl:when test="å­—:段中ä¸åˆ†é¡µ/@å­—:值='1' or å­—:段中ä¸åˆ†é¡µ/@å­—:值='true'">always</xsl:when><xsl:otherwise>auto</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:与下段åŒé¡µ">
+ <xsl:attribute name="fo:keep-with-next"><xsl:choose><xsl:when test="å­—:与下段åŒé¡µ/@å­—:值='1' or å­—:与下段åŒé¡µ/@å­—:值='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:for-each select="字:边框">
+ <xsl:call-template name="uof:边框"/>
+ </xsl:for-each>
+ <xsl:for-each select="å­—:å¡«å……">
+ <xsl:call-template name="uof:å¡«å……"/>
+ </xsl:for-each>
+ <xsl:if test="å­—:对é½ç½‘æ ¼">
+ <xsl:attribute name="style:snap-to-layout-grid"><xsl:choose><xsl:when test="å­—:对é½ç½‘æ ¼/@å­—:值='1' or å­—:对é½ç½‘æ ¼/@å­—:值='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:å–消断字">
+ <xsl:attribute name="fo:hyphenation-ladder-count">no-limit</xsl:attribute>
+ <xsl:attribute name="fo:hyphenation-remain-char-count">2</xsl:attribute>
+ <xsl:attribute name="fo:hyphenation-push-char-count">2</xsl:attribute>
+ <xsl:attribute name="fo:hyphenate"><xsl:choose><xsl:when test="å­—:å–消断字/@å­—:值='1' or å­—:å–消断字/@å­—:值='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:å–消行å·">
+ <xsl:attribute name="text:number-lines"><xsl:choose><xsl:when test="å­—:å–消行å·/@å­—:值='1' or å­—:å–消行å·/@å­—:值='true'">true</xsl:when><xsl:otherwise>false</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:行首尾标点控制">
+ <xsl:attribute name="style:punctuation-wrap"><xsl:choose><xsl:when test="字:行首尾标点控制/@字:值='1' or 字:行首尾标点控制/@字:值='true'">hanging</xsl:when><xsl:otherwise>simple</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:是å¦è¡Œé¦–标点压缩/@å­—:值='true'">
+ <xsl:attribute name="style:punctuation-compress">false</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:中文习惯首尾字符">
+ <xsl:attribute name="style:line-break"><xsl:choose><xsl:when test="字:中文习惯首尾字符/@字:值='1' or 字:中文习惯首尾字符/@字:值='true'">strict</xsl:when><xsl:otherwise>normal</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:è‡ªåŠ¨è°ƒæ•´ä¸­è‹±æ–‡å­—ç¬¦é—´è· or å­—:自动调整中文与数字间è·">
+ <xsl:attribute name="style:text-autospace"><xsl:choose><xsl:when test="å­—:自动调整中英文字符间è·/@å­—:值='1' or å­—:自动调整中文与数字间è·/@å­—:值='1'or å­—:自动调整中英文字符间è·/@å­—:值='true' or å­—:自动调整中文与数字间è·/@å­—:值='true'">ideograph-alpha</xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:首字下沉">
+ <xsl:element name="style:drop-cap">
+ <xsl:if test="字:首字下沉/@字:行数">
+ <xsl:attribute name="style:lines"><xsl:value-of select="字:首字下沉/@字:行数"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:首字下沉/@å­—:é—´è·">
+ <xsl:attribute name="style:distance"><xsl:value-of select="concat(å­—:首字下沉/@å­—:é—´è·,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:首字下沉/@字:字体引用">
+ <xsl:attribute name="style:style-name"><xsl:value-of select="字:首字下沉/@字:字体引用"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="字:首字下沉/@字:字符数">
+ <xsl:attribute name="style:length"><xsl:choose><xsl:when test="字:首字下沉/@字:字符数='1'">word</xsl:when><xsl:otherwise><xsl:value-of select="字:首字下沉/@字:字符数"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="多个å¥">
+ <xsl:call-template name="å•ä¸ªæˆ–者没有å¥"/>
+ </xsl:template>
+ <xsl:template name="jibianhao">
+ <xsl:param name="biaoshifu"/>
+ <xsl:element name="text:list-level-style-number">
+ <xsl:variable name="currlevel" select="number(@字:级别值) + 1"/>
+ <xsl:attribute name="text:level"><xsl:value-of select="$currlevel"/></xsl:attribute>
+ <xsl:attribute name="text:style-name">Numbering Symbols</xsl:attribute>
+ <xsl:if test="@å­—:å°¾éšå­—符">
+ <xsl:attribute name="style:num-suffix"><xsl:choose><xsl:when test="@å­—:å°¾éšå­—符='space'"><xsl:value-of select="' ' "/></xsl:when><xsl:when test="@å­—:å°¾éšå­—符='tab'"><xsl:value-of select="' '"/></xsl:when><xsl:otherwise>none</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:符å·å­—体">
+ <xsl:variable name="Font-ID">
+ <xsl:value-of select="å­—:符å·å­—体/@å­—:å¼æ ·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="$Font-ID"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:起始编å·">
+ <xsl:attribute name="text:start-value"><xsl:value-of select="å­—:起始编å·"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:正规格å¼">
+ <xsl:attribute name="text:num-regular-exp"><xsl:value-of select="å­—:正规格å¼/@值"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="text:display-levels"><xsl:value-of select="string-length(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º) - string-length(translate(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,'%','') )"/></xsl:attribute>
+ <xsl:if test="å­—:ç¼–å·æ ¼å¼">
+ <xsl:call-template name="ç¼–å·æ ¼å¼"/>
+ </xsl:if>
+ <xsl:if test="å­—:ç¼–å·æ ¼å¼è¡¨ç¤º">
+ <xsl:variable name="last" select="substring-after(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,concat('%',$currlevel))"/>
+ <xsl:variable name="first">
+ <xsl:variable name="aa" select="substring-before(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,concat('%',$currlevel))"/>
+ <xsl:choose>
+ <xsl:when test="not(substring-after($aa,'%'))">
+ <xsl:value-of select="$aa"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$first!=''">
+ <xsl:attribute name="style:num-prefix"><xsl:value-of select="$first"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$last!=''">
+ <xsl:attribute name="style:num-suffix"><xsl:value-of select="$last"/></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="bianhaogeshi">
+ <xsl:with-param name="biaoshi">
+ <xsl:value-of select="å­—:ç¼–å·æ ¼å¼è¡¨ç¤º"/>
+ </xsl:with-param>
+ <xsl:with-param name="jibie">
+ <xsl:value-of select="1"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:element name="style:text-properties">
+ <xsl:call-template name="suojinleixing"/>
+ <xsl:if test="@å­—:ç¼–å·å¯¹é½æ–¹å¼">
+ <xsl:attribute name="fo:text-align"><xsl:variable name="aa"><xsl:value-of select="@å­—:ç¼–å·å¯¹é½æ–¹å¼"/></xsl:variable><xsl:choose><xsl:when test="$aa='center' ">center</xsl:when><xsl:when test="$aa='right' ">end</xsl:when><xsl:otherwise>left</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="å­—:符å·å­—体">
+ <xsl:if test="å­—:符å·å­—体/@å­—:å¼æ ·å¼•ç”¨">
+ <xsl:variable name="Font-ID">
+ <xsl:value-of select="å­—:符å·å­—体/@å­—:å¼æ ·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·">
+ <xsl:if test="@字:标识符=$Font-ID">
+ <xsl:if test="字:字体/@字:中文字体引用">
+ <xsl:attribute name="fo:font-family"><xsl:value-of select="字:字体/@字:中文字体引用"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="bianhaogeshi">
+ <xsl:param name="biaoshi"/>
+ <xsl:param name="jibie"/>
+ <xsl:variable name="bb">
+ <xsl:value-of select="substring-after($biaoshi,'%')"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="substring-after($bb,'%')">
+ <xsl:call-template name="bianhaogeshi">
+ <xsl:with-param name="biaoshi" select="$bb"/>
+ <xsl:with-param name="jibie" select="$jibie +1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="not($jibie=1)">
+ <xsl:attribute name="text:display-levels"><xsl:value-of select="$jibie"/></xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="xiangmufuhao">
+ <xsl:param name="biaoshifu"/>
+ <xsl:variable name="currlevel" select="number(@字:级别值) + 1"/>
+ <xsl:element name="text:list-level-style-bullet">
+ <xsl:attribute name="text:level"><xsl:value-of select="$currlevel"/></xsl:attribute>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="../@å­—:å称"/></xsl:attribute>
+ <xsl:attribute name="style:num-suffix"><xsl:value-of select="substring-after(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,'%1')"/></xsl:attribute>
+ <xsl:attribute name="text:bullet-char"><xsl:value-of select="å­—:项目符å·"/></xsl:attribute>
+ <xsl:element name="style:text-properties">
+ <xsl:if test="å­—:符å·å­—体">
+ <xsl:variable name="Font-ID">
+ <xsl:value-of select="å­—:符å·å­—体/@å­—:å¼æ ·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·">
+ <xsl:if test="@字:标识符=$Font-ID">
+ <xsl:if test="字:字体/@字:中文字体引用">
+ <xsl:attribute name="svg:font-family"><xsl:value-of select="字:字体/@字:中文字体引用"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="å­—:项目符å·">
+ <xsl:attribute name="fo:font-family"><xsl:value-of select="'WingDings'"/></xsl:attribute>
+ </xsl:if>
+ <xsl:call-template name="suojinleixing"/>
+ <xsl:if test="@å­—:ç¼–å·å¯¹é½æ–¹å¼">
+ <xsl:attribute name="fo:text-align"><xsl:variable name="aa"><xsl:value-of select="@å­—:ç¼–å·å¯¹é½æ–¹å¼"/></xsl:variable><xsl:choose><xsl:when test="$aa='center' ">center</xsl:when><xsl:when test="$aa='right' ">end</xsl:when><xsl:otherwise>left</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="imagefuhao">
+ <xsl:param name="biaoshifu"/>
+ <xsl:variable name="currlevel" select="number(@字:级别值) + 1"/>
+ <xsl:element name="text:list-level-style-image" style:vertical-pos="middle" style:vertical-rel="line" fo:width="0.265cm" fo:height="0.265cm">
+ <xsl:attribute name="text:level"><xsl:value-of select="$currlevel"/></xsl:attribute>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat( $biaoshifu,$currlevel)"/></xsl:attribute>
+ <xsl:attribute name="style:num-suffix"><xsl:value-of select="substring-after(å­—:ç¼–å·æ ¼å¼è¡¨ç¤º,'%1')"/></xsl:attribute>
+ <xsl:if test="å­—:图片符å·å¼•ç”¨">
+ <xsl:variable name="gid">
+ <xsl:value-of select="å­—:图片符å·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:element name="office:binary-data">
+ <xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$gid]/uof:æ•°æ®"/>
+ </xsl:element>
+ </xsl:if>
+ <xsl:element name="style:list-level-properties">
+ <xsl:attribute name="style:vertical-pos">middle</xsl:attribute>
+ <xsl:attribute name="style:vertical-rel">line</xsl:attribute>
+ <xsl:attribute name="fo:width"><xsl:value-of select="concat(å­—:图片符å·å¼•ç”¨/@å­—:宽度,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="fo:height"><xsl:value-of select="concat(å­—:图片符å·å¼•ç”¨/@å­—:高度,$uofUnit)"/></xsl:attribute>
+ <xsl:if test="å­—:符å·å­—体">
+ <xsl:variable name="Font-ID">
+ <xsl:value-of select="å­—:符å·å­—体/@å­—:å¼æ ·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:å¥å¼æ ·">
+ <xsl:if test="@字:标识符=$Font-ID">
+ <xsl:if test="字:字体/@字:中文字体引用">
+ <xsl:attribute name="svg:font-family"><xsl:value-of select="字:字体/@字:中文字体引用"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:call-template name="suojinleixing"/>
+ <xsl:if test="@å­—:ç¼–å·å¯¹é½æ–¹å¼">
+ <xsl:attribute name="fo:text-align"><xsl:variable name="aa"><xsl:value-of select="@å­—:ç¼–å·å¯¹é½æ–¹å¼"/></xsl:variable><xsl:choose><xsl:when test="$aa='center' ">center</xsl:when><xsl:when test="$aa='right' ">end</xsl:when><xsl:otherwise>left</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="ootab">
+ <xsl:element name="style:tab-stops">
+ <xsl:for-each select="å­—:段è½å±žæ€§/å­—:制表ä½è®¾ç½®/å­—:åˆ¶è¡¨ä½ | å­—:制表ä½è®¾ç½®/å­—:制表ä½">
+ <xsl:element name="style:tab-stop">
+ <xsl:attribute name="style:position"><xsl:value-of select="concat(@å­—:ä½ç½®,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="style:type"><xsl:choose><xsl:when test="@字:类型='decimal'">char</xsl:when><xsl:when test="@字:类型='left' or @字:类型='right' or @字:类型='center'"><xsl:value-of select="@字:类型"/></xsl:when><xsl:otherwise/></xsl:choose></xsl:attribute>
+ <xsl:if test="@å­—:制表ä½å­—符">
+ <xsl:attribute name="style:leader-text"><xsl:value-of select="@å­—:制表ä½å­—符"/></xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style:leader-style"><xsl:value-of select="@å­—:å‰å¯¼ç¬¦"/></xsl:attribute>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="å­—:段è½[å­—:段è½å±žæ€§[å­—:自动编å·ä¿¡æ¯]]">
+ <xsl:call-template name="ç¼–å·è§£æž">
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template name="ç¼–å·è§£æž">
+ <xsl:variable name="bianhao">
+ <xsl:value-of select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨"/>
+ </xsl:variable>
+ <xsl:variable name="bianhaojibie">
+ <xsl:value-of select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·çº§åˆ«"/>
+ </xsl:variable>
+ <xsl:variable name="isxiangmuorisimage">
+ <xsl:for-each select="/uof:UOF/uof:å¼æ ·é›†/uof:自动编å·é›†/å­—:自动编å·">
+ <xsl:choose>
+ <xsl:when test="$bianhao=@字:标识符">
+ <xsl:choose>
+ <xsl:when test="å­—:级别[@å­—:级别值= (number($bianhaojibie))]/å­—:项目符å·">true</xsl:when>
+ <xsl:when test="å­—:级别[@å­—:级别值= (number($bianhaojibie))]/å­—:图片符å·å¼•ç”¨">true</xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>false</xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$isxiangmuorisimage='true'">
+ <xsl:call-template name="æ— åº"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="有åº"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="有åº">
+ <xsl:variable name="currlistid" select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨"/>
+ <xsl:variable name="currlistlvl" select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·çº§åˆ« + 1"/>
+ <xsl:variable name="firstoccur" select="/descendant::å­—:段è½å±žæ€§[å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨ = $currlistid][1]"/>
+ <xsl:element name="text:list">
+ <xsl:attribute name="text:style-name">List<xsl:value-of select="count($firstoccur/preceding::å­—:自动编å·ä¿¡æ¯)"/></xsl:attribute>
+ <xsl:attribute name="text:continue-numbering"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:é‡æ–°ç¼–å·='false'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:if test="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:é‡æ–°ç¼–å·">
+ <xsl:attribute name="text:continue-numbering"><xsl:choose><xsl:when test="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:é‡æ–°ç¼–å·='1'">false</xsl:when><xsl:otherwise>true</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="ordered-levels">
+ <xsl:with-param name="level" select="$currlistlvl - 1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="ordered-levels">
+ <xsl:param name="level"/>
+ <xsl:choose>
+ <xsl:when test="$level = '0'">
+ <xsl:call-template name="commonParagraph"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="text:list">
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="ordered-levels">
+ <xsl:with-param name="level" select="$level - 1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="æ— åº">
+ <xsl:variable name="currlistid" select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨"/>
+ <xsl:variable name="currlistlvl" select="å­—:段è½å±žæ€§/å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·çº§åˆ« + 1"/>
+ <xsl:variable name="firstoccur" select="/descendant::å­—:段è½å±žæ€§[å­—:自动编å·ä¿¡æ¯/@å­—:ç¼–å·å¼•ç”¨ = $currlistid][1]"/>
+ <xsl:element name="text:list">
+ <xsl:attribute name="text:style-name">List<xsl:value-of select="count($firstoccur/preceding::å­—:自动编å·ä¿¡æ¯)"/></xsl:attribute>
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="unordered-levels">
+ <xsl:with-param name="level" select="$currlistlvl - 1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="unordered-levels">
+ <xsl:param name="level"/>
+ <xsl:choose>
+ <xsl:when test="$level = '0'">
+ <xsl:call-template name="commonParagraph"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="text:list">
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="unordered-levels">
+ <xsl:with-param name="level" select="$level - 1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- measure_conversion.xsl Begin-->
+ <xsl:param name="dpi" select="111"/>
+ <xsl:param name="centimeter-in-mm" select="10"/>
+ <xsl:param name="inch-in-mm" select="25.4"/>
+ <xsl:param name="didot-point-in-mm" select="0.376065"/>
+ <xsl:param name="pica-in-mm" select="4.2333333"/>
+ <xsl:param name="point-in-mm" select="0.3527778"/>
+ <xsl:param name="twip-in-mm" select="0.017636684"/>
+ <xsl:param name="pixel-in-mm" select="$inch-in-mm div $dpi"/>
+ <!-- ***** MEASUREMENT CONVERSIONS *****
+ PARAM 'value'
+ The measure to be converted.
+ The current measure is judged by a substring (e.g. 'mm', 'cm', 'in', 'pica'...)
+ directly added to the number.
+
+ PARAM 'rounding-factor'
+ Is used for the rounding of decimal places.
+ The parameter number is the product of 1 and some '10', where
+ every zero represents a decimal place.
+
+ For example, providing as parameter:
+ <xsl:param name="rounding-factor" select="10000" />
+ Gives by default four decimal places.
+
+ To round two decimal places, basically the following is done:
+ <xsl:value-of select="round(100 * value) div 100"/>
+
+ RETURN The converted number, by default rounded to four decimal places.
+ In case the input measure could not be matched the same value is
+ returned and a warning message is written out.
+
+
+
+ MEASURE LIST:
+ * 1 milimeter (mm), the basic measure
+
+ * 1 centimeter (cm) = 10 mm
+
+ * 1 inch (in) = 25.4 mm
+ While the English have already seen the light (read: the metric system), the US
+ remains loyal to this medieval system.
+
+ * 1 point (pt) = 0.35277777.. mm
+ Sometimes called PostScript point (ppt), as when Adobe created PostScript, they added their own system of points.
+ There are exactly 72 PostScript points in 1 inch.
+
+ * 1 twip = twentieth of a (PostScript) point
+ A twip (twentieth of a point) is a 1/20th of a PostScript point, a traditional measure in printing.
+
+ * 1 didot point (dpt) = 0.376065 mm
+ Didot point after the French typographer Firmin Didot (1764-1836).
+
+ More details under
+ http://www.unc.edu/~rowlett/units/dictP.html:
+ "A unit of length used by typographers and printers. When printing was done
+ from hand-set metal type, one point represented the smallest element of type
+ that could be handled, roughly 1/64 inch. Eventually, the point was standardized
+ in Britain and America as exactly 1/72.27 = 0.013 837 inch, which is
+ about 0.35 mm (351.46 micrometers). In continental Europe, typographers
+ traditionally used a slightly larger point of 0.014 83 inch (about
+ 1/72 pouce, 0.377 mm, or roughly 1/67 English inch), called a Didot point
+ after the French typographer Firmin Didot (1764-1836). In the U.S.,
+ Adobe software defines the point to be exactly 1/72 inch (0.013 888 9 inch
+ or 0.352 777 8 millimeters) and TeX software uses a slightly smaller point
+ of 0.351 459 8035 mm. The German standards agency DIN has proposed that
+ all these units be replaced by multiples of 0.25 millimeters (1/101.6 inch).
+
+ * 1 pica = 4.233333 mm
+ 1/6 inch or 12 points
+
+ * 1 pixel (px) = 0.26458333.. mm (relative to 'DPI', here: 96 dpi)
+ Most pictures have the 96 dpi resolution, but the dpi variable may vary by stylesheet parameter
+
+
+ -->
+ <!-- changing measure to mm -->
+ <xsl:template name="convert2cm">
+ <xsl:param name="value"/>
+ <xsl:param name="rounding-factor" select="10000"/>
+ <xsl:choose>
+ <xsl:when test="contains($value, 'mm')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'mm') div $centimeter-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, $uofUnit)">
+ <xsl:value-of select="substring-before($value, $uofUnit)"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'in')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'in') div $centimeter-in-mm * $inch-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pt') div $centimeter-in-mm * $point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'dpt')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'dpt') div $centimeter-in-mm * $didot-point-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'pica')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'pica') div $centimeter-in-mm * $pica-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'twip')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'twip') div $centimeter-in-mm * $twip-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:when test="contains($value, 'px')">
+ <xsl:value-of select="round($rounding-factor * number(substring-before($value, 'px') div $centimeter-in-mm * $pixel-in-mm)) div $rounding-factor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'cm'!</xsl:message>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="uof:通用边框">
+ <xsl:param name="lineType"/>
+ <xsl:param name="width"/>
+ <xsl:param name="color"/>
+ <xsl:choose>
+ <xsl:when test="$lineType='none'">none</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$width"/>
+ <xsl:choose>
+ <xsl:when test="$lineType='single'">solid </xsl:when>
+ <xsl:when test="$lineType='double'">double </xsl:when>
+ <xsl:otherwise>solid </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$color='auto' or $color='none' or $color=''">#808080</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$color"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="uof:边框">
+ <xsl:if test="uof:上">
+ <xsl:variable name="type" select="uof:上/@uof:类型"/>
+ <xsl:variable name="size" select="concat(uof:上/@uof:宽度,$uofUnit,' ')"/>
+ <xsl:variable name="clr" select="uof:上/@uof:颜色"/>
+ <xsl:attribute name="fo:border-top"><xsl:call-template name="uof:通用边框"><xsl:with-param name="lineType" select="$type"/><xsl:with-param name="width" select="$size"/><xsl:with-param name="color" select="$clr"/></xsl:call-template></xsl:attribute>
+ <xsl:if test="uof:上/@uof:线宽度">
+ <xsl:attribute name="style:border-line-width-top"><xsl:value-of select="uof:上/@uof:线宽度"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="uof:下">
+ <xsl:variable name="type" select="uof:下/@uof:类型"/>
+ <xsl:variable name="size" select="concat(uof:下/@uof:宽度,$uofUnit,' ')"/>
+ <xsl:variable name="clr" select="uof:下/@uof:颜色"/>
+ <xsl:attribute name="fo:border-bottom"><xsl:call-template name="uof:通用边框"><xsl:with-param name="lineType" select="$type"/><xsl:with-param name="width" select="$size"/><xsl:with-param name="color" select="$clr"/></xsl:call-template></xsl:attribute>
+ <xsl:if test="uof:下/@uof:线宽度">
+ <xsl:attribute name="style:border-line-width-bottom"><xsl:value-of select="uof:下/@uof:线宽度"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="uof:å·¦">
+ <xsl:variable name="type" select="uof:左/@uof:类型"/>
+ <xsl:variable name="size" select="concat(uof:左/@uof:宽度,$uofUnit,' ')"/>
+ <xsl:variable name="clr" select="uof:左/@uof:颜色"/>
+ <xsl:attribute name="fo:border-left"><xsl:call-template name="uof:通用边框"><xsl:with-param name="lineType" select="$type"/><xsl:with-param name="width" select="$size"/><xsl:with-param name="color" select="$clr"/></xsl:call-template></xsl:attribute>
+ <xsl:if test="uof:左/@uof:线宽度">
+ <xsl:attribute name="style:border-line-width-left"><xsl:value-of select="uof:左/@uof:线宽度"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="uof:å³">
+ <xsl:variable name="type" select="uof:å³/@uof:类型"/>
+ <xsl:variable name="size" select="concat(uof:å³/@uof:宽度,$uofUnit,' ')"/>
+ <xsl:variable name="clr" select="uof:å³/@uof:颜色"/>
+ <xsl:attribute name="fo:border-right"><xsl:call-template name="uof:通用边框"><xsl:with-param name="lineType" select="$type"/><xsl:with-param name="width" select="$size"/><xsl:with-param name="color" select="$clr"/></xsl:call-template></xsl:attribute>
+ <xsl:if test="uof:å³/@uof:线宽度">
+ <xsl:attribute name="style:border-line-width-right"><xsl:value-of select="uof:å³/@uof:线宽度"/></xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="uof:上/@uof:阴影='true'or uof:上/@uof:阴影='1'">
+ <xsl:if test="uof:左/@uof:阴影='true'or uof:左/@uof:阴影='1'">
+ <xsl:attribute name="style:shadow">#808080 -0.18cm -0.18cm</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="uof:上/@uof:阴影='true'or uof:上/@uof:阴影='1'">
+ <xsl:if test="uof:å³/@uof:阴影='true'or uof:å³/@uof:阴影='1'">
+ <xsl:attribute name="style:shadow">#808080 0.18cm -0.18cm</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="uof:下/@uof:阴影='true'or uof:下/@uof:阴影='1'">
+ <xsl:if test="uof:左/@uof:阴影='true'or uof:左/@uof:阴影='1'">
+ <xsl:attribute name="style:shadow">#808080 -0.18cm 0.18cm</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="uof:下/@uof:阴影='true'or uof:下/@uof:阴影='1'">
+ <xsl:if test="uof:å³/@uof:阴影='true'or uof:å³/@uof:阴影='1'">
+ <xsl:attribute name="style:shadow">#808080 0.18cm 0.18cm</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="uof:上/@uof:è¾¹è·">
+ <xsl:attribute name="fo:padding-top"><xsl:value-of select="concat(uof:上/@uof:è¾¹è·,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="uof:下/@uof:è¾¹è·">
+ <xsl:attribute name="fo:padding-bottom"><xsl:value-of select="concat(uof:下/@uof:è¾¹è·,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="uof:å·¦/@uof:è¾¹è·">
+ <xsl:attribute name="fo:padding-left"><xsl:value-of select="concat(uof:å·¦/@uof:è¾¹è·,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="uof:å³/@uof:è¾¹è·">
+ <xsl:attribute name="fo:padding-right"><xsl:value-of select="concat(uof:å³/@uof:è¾¹è·,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="uof:å¡«å……">
+ <xsl:choose>
+ <xsl:when test="图:颜色">
+ <xsl:attribute name="fo:background-color"><xsl:choose><xsl:when test="图:颜色"><xsl:value-of select="图:颜色"/></xsl:when><xsl:otherwise>transparent</xsl:otherwise></xsl:choose></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(图:图案/@图:å‰æ™¯è‰²,'#')">
+ <xsl:attribute name="fo:text-background-color"><xsl:value-of select="图:图案/@图:å‰æ™¯è‰²"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="图:图案/@图:背景色">
+ <xsl:attribute name="fo:background-color"><xsl:value-of select="图:图案/@图:背景色"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ <xsl:if test="图:图片">
+ <xsl:element name="style:background-image">
+ <xsl:variable name="gid">
+ <xsl:value-of select="图:图片/@图:图形引用"/>
+ </xsl:variable>
+ <xsl:if test="图:图片/@图:ä½ç½® and not(图:图片/@图:ä½ç½®='tile')">
+ <xsl:attribute name="style:repeat"><xsl:choose><xsl:when test="图:图片/@图:ä½ç½®='stretch'">stretch</xsl:when><xsl:when test="图:图片/@图:ä½ç½®='center'">no-repeat</xsl:when></xsl:choose></xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$gid]/uof:æ•°æ®">
+ <xsl:element name="office:binary-data">
+ <xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$gid]/uof:æ•°æ®"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="xlink:href"><xsl:value-of select="/uof:UOF/uof:对象集/uof:其他对象[@uof:标识符=$gid]/uof:路径"/></xsl:attribute>
+ <xsl:attribute name="xlink:type">simple</xsl:attribute>
+ <xsl:attribute name="xlink:actuate">onLoad</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="日期域">
+ <xsl:if test="following-sibling::å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(following-sibling::å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\@ ')"/>
+ <xsl:variable name="datestr">
+ <xsl:choose>
+ <xsl:when test="contains($date0,'\*')">
+ <xsl:value-of select="string(substring-before($date0,'\*'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$date0"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="zydate">
+ <xsl:with-param name="str1" select="substring($datestr,2,string-length($datestr)-2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="zydate">
+ <xsl:param name="str1"/>
+ <xsl:choose>
+ <xsl:when test="substring($str1,1,5)='am/pm'">
+ <xsl:variable name="str1-before" select="substring($str1,1,5)"/>
+ <xsl:variable name="str1-after" select="substring($str1,6)"/>
+ <number:am-pm/>
+ <xsl:if test="not($str1-after)=''">
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ </xsl:if>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zytime">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+
+ <xsl:choose>
+ <xsl:when test="substring($str1,1,4)='yyyy'">
+ <xsl:variable name="str1-before" select="substring($str1,1,4)"/>
+ <xsl:variable name="str1-after" select="substring($str1,5)"/>
+ <number:year number:style="long"/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zydate">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="substring($str1,1,1)=substring($str1,2,1) and substring($str1,2,1) !=substring($str1,3,1) ">
+ <xsl:variable name="str1-before" select="substring($str1,1,2)"/>
+ <xsl:variable name="str1-after" select="substring($str1,3)"/>
+ <xsl:if test="substring($str1,1,1)='y'">
+ <number:year/>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='M'">
+ <number:month number:style="long"/>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='d'">
+ <number:day number:style="long"/>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='h'">
+ <number:hours number:style="long"/>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='m'">
+ <number:minutes number:style="long"/>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='s'">
+ <number:seconds number:style="long"/>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='W'">
+ <number:week-of-year number:style="long"/>
+ </xsl:if>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zydate">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="substring($str1,1,1)='M'or substring($str1,1,1)='d'or substring($str1,1,1)='h'or substring($str1,1,1)='m'or substring($str1,1,1)='s'">
+ <xsl:variable name="str1-after" select="substring($str1,2)"/>
+ <xsl:variable name="str1-before" select="substring($str1,1,1)"/>
+ <xsl:if test="substring($str1,1,1)='M'">
+ <number:month/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='d'">
+ <number:day/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='h'">
+ <number:hours/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='m'">
+ <number:minutes/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='s'">
+ <number:seconds/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ </xsl:if>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zydate">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="contains(substring($str1,1,3),'Q' )">
+ <xsl:choose>
+ <xsl:when test="substring($str1,1,1)='Q'">
+ <xsl:variable name="str1-before" select="substring($str1,1,2)"/>
+ <xsl:variable name="str1-after" select="substring($str1,3)"/>
+ <number:quarter/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zydate">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="str1-before" select="substring($str1,1,5)"/>
+ <xsl:variable name="str1-after" select="substring($str1,6)"/>
+ <number:quarter number:style="long"/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zydate">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="contains(substring(normalize-space($str1),1,3),'W' )">
+ <xsl:variable name="str1-before" select="substring(normalize-space($str1),1,3)"/>
+ <xsl:variable name="str1-after" select="substring(normalize-space($str1),4)"/>
+ <number:day-of-week number:style="long"/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zydate">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="contains(substring($str1,1,3),'NN' ) and substring($str1,1,1)!='NN' ">
+ <xsl:variable name="str1-before" select="substring($str1,1,3)"/>
+ <xsl:variable name="str1-after" select="substring($str1,4)"/>
+ <number:text>第</number:text>
+ <number:week-of-year/>
+ <number:text>周</number:text>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zydate">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="时间域">
+ <xsl:if test="following-sibling::å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(following-sibling::å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\@ ')"/>
+ <xsl:variable name="datestr" select="$date0"/>
+ <xsl:call-template name="zytime">
+ <xsl:with-param name="str1" select="substring($datestr,2,string-length($datestr)-2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="zytime">
+ <xsl:param name="str1"/>
+ <xsl:choose>
+ <xsl:when test="substring($str1,1,5)='am/pm'">
+ <xsl:variable name="str1-before" select="substring($str1,1,5)"/>
+ <xsl:variable name="str1-after" select="substring($str1,6)"/>
+ <number:am-pm/>
+ <xsl:if test="not($str1-after)=''">
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ </xsl:if>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zytime">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="substring($str1,1,1)=substring($str1,2,1) and substring($str1,2,1) !=substring($str1,3,1) ">
+ <xsl:variable name="str1-before" select="substring($str1,1,2)"/>
+ <xsl:variable name="str1-after" select="substring($str1,3)"/>
+ <xsl:if test="substring($str1,1,1)='H' or substring($str1,1,1)='h'">
+ <number:hours number:style="long"/>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='M' or substring($str1,1,1)='m'">
+ <number:minutes number:style="long"/>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='S' or substring($str1,1,1)='s'">
+ <number:seconds number:style="long"/>
+ </xsl:if>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zytime">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="substring($str1,1,1)='H'or substring($str1,1,1)='M'or substring($str1,1,1)='S'or substring($str1,1,1)='h' or substring($str1,1,1)='m' or substring($str1,1,1)='s'">
+ <xsl:variable name="str1-after" select="substring($str1,2)"/>
+ <xsl:variable name="str1-before" select="substring($str1,1,1)"/>
+ <xsl:if test="substring($str1,1,1)='H' or substring($str1,1,1)='h'">
+ <number:hours/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='M' or substring($str1,1,1)='m'">
+ <number:minutes/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ </xsl:if>
+ <xsl:if test="substring($str1,1,1)='S' or substring($str1,1,1)='s'">
+ <number:seconds/>
+ <number:text>
+ <xsl:value-of select="substring($str1-after,1,1)"/>
+ </number:text>
+ </xsl:if>
+ <xsl:if test="string-length($str1-after)&gt;1">
+ <xsl:call-template name="zytime">
+ <xsl:with-param name="str1" select="substring($str1-after,2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:param name="oo_format"/>
+ <xsl:choose>
+ <xsl:when test="$oo_format='Arabic'">1</xsl:when>
+ <xsl:when test="$oo_format='ROMAN'">I</xsl:when>
+ <xsl:when test="$oo_format='roman'">i</xsl:when>
+ <xsl:when test="$oo_format='ALPHABETIC'">A</xsl:when>
+ <xsl:when test="$oo_format='alphabetic'">a</xsl:when>
+ <xsl:when test="$oo_format='GB1'">1, 2, 3, ...</xsl:when>
+ <xsl:when test="$oo_format='GB3'">â‘ , â‘¡, â‘¢, ...</xsl:when>
+ <xsl:when test="$oo_format='CHINESENUM3'">一, 二, 三, ...</xsl:when>
+ <xsl:when test="$oo_format='CHINESENUM2'">壹, è´°, å, ...</xsl:when>
+ <xsl:when test="$oo_format='ZODIAC1'">甲, 乙, 丙, ...</xsl:when>
+ <xsl:when test="$oo_format='ZODIAC2'">å­, 丑, 寅, ...</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="题注">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串 or å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="aa" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\f ')"/>
+ <xsl:variable name="ooow" select="substring-after($aa,'ooow:') "/>
+ <xsl:variable name="as" select="substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="ad">
+ <xsl:value-of select="substring-after($as,'SEQ ') "/>
+ </xsl:variable>
+ <xsl:variable name="num">
+ <xsl:value-of select="substring-after(substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \f'),'\* ')"/>
+ </xsl:variable>
+ <xsl:variable name="fmt">
+ <xsl:call-template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:with-param name="oo_format" select="$num"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:element name="text:sequence">
+ <xsl:attribute name="text:name"><xsl:choose><xsl:when test="$ad='表格'">Table</xsl:when><xsl:when test="$ad='图表'">Drawing</xsl:when><xsl:otherwise><xsl:value-of select="$ad"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="text:formula"><xsl:choose><xsl:when test="contains($aa,'ooow:')"><xsl:value-of select="$ooow"/></xsl:when><xsl:when test="contains($as,'表格')"><xsl:value-of select="concat('Table','+',$fmt)"/></xsl:when><xsl:when test="contains($as,'图表')"><xsl:value-of select="concat('Drawing','+',$fmt)"/></xsl:when><xsl:otherwise><xsl:value-of select="$aa"/></xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$fmt"/></xsl:attribute>
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="页ç åŸŸ">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串 or å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="datestr" select="substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\* ')"/>
+ <xsl:variable name="fmt">
+ <xsl:call-template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:with-param name="oo_format" select="$date0"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:element name="text:page-number">
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$fmt"/></xsl:attribute>
+ <xsl:attribute name="text:select-page">current</xsl:attribute>
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="页数域">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="datestr" select="substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\* ')"/>
+ <xsl:variable name="fmt">
+ <xsl:call-template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:with-param name="oo_format" select="substring-before($date0,' \*')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:element name="text:page-count">
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$fmt"/></xsl:attribute>
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="作者域">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="datestr" select="substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\* ')"/>
+ <xsl:element name="text:initial-creator">
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="用户域">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="datestr" select="substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\* ')"/>
+ <xsl:element name="text:author-name">
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="缩写域">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="datestr" select="substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\* ')"/>
+ <xsl:element name="text:author-initials">
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="标题域">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="datestr" select="substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\* ')"/>
+ <xsl:element name="text:title">
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="主题域">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="datestr" select="substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\* ')"/>
+ <xsl:element name="text:subject">
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="文件å">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:element name="text:file-name">
+ <xsl:variable name="string">
+ <xsl:value-of select="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串"/>
+ </xsl:variable>
+ <xsl:attribute name="text:display"><xsl:choose><xsl:when test="contains($string,' \p')">full</xsl:when><xsl:otherwise>name-and-extension</xsl:otherwise></xsl:choose></xsl:attribute>
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="编辑时间">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(following-sibling::å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\@ ')"/>
+ <xsl:variable name="datestr" select="$date0"/>
+ <xsl:call-template name="zytime">
+ <xsl:with-param name="str1" select="substring($datestr,2,string-length($datestr)-2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="创建时间">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(following-sibling::å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\@ ')"/>
+ <xsl:variable name="datestr" select="$date0"/>
+ <xsl:call-template name="zytime">
+ <xsl:with-param name="str1" select="substring($datestr,2,string-length($datestr)-2)"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="字符数">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="datestr" select="substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\* ')"/>
+ <xsl:variable name="fmt">
+ <xsl:call-template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:with-param name="oo_format" select="substring-before($date0,' \#')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:element name="text:character-count">
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$fmt"/></xsl:attribute>
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:key name="mulu" match="/uof:UOF/uof:å¼æ ·é›†/uof:段è½å¼æ ·" use="@å­—:标识符"/>
+ <xsl:template name="索引域">
+ <xsl:element name="text:alphabetical-index">
+ <xsl:variable name="stylenum">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:å¥" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat('Sect',$stylenum)"/></xsl:attribute>
+ <xsl:variable name="aanum">
+ <xsl:number value="0" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="text:name"><xsl:value-of select="concat('索引目录',$aanum + 1)"/></xsl:attribute>
+ <text:alphabetical-index-source text:main-entry-style-name="Main_index_entry" text:sort-algorithm="pinyin" fo:language="zh" fo:country="CN">
+ <text:index-title-template text:style-name="Index_20_Heading">索引目录</text:index-title-template>
+ <text:alphabetical-index-entry-template text:outline-level="separator" text:style-name="Index_Separator">
+ <text:index-entry-text/>
+ </text:alphabetical-index-entry-template>
+ <text:alphabetical-index-entry-template text:outline-level="1" text:style-name="Index_20_1">
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ </text:alphabetical-index-entry-template>
+ <text:alphabetical-index-entry-template text:outline-level="2" text:style-name="Index_20_2">
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ </text:alphabetical-index-entry-template>
+ <text:alphabetical-index-entry-template text:outline-level="3" text:style-name="Index_20_3">
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ </text:alphabetical-index-entry-template>
+ </text:alphabetical-index-source>
+ <text:index-body>
+ <text:index-title>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat('Sect',$stylenum)"/></xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select="concat('索引目录',$aanum + 1,'_Head')"/></xsl:attribute>
+ <xsl:for-each select="å­—:域代ç /å­—:段è½[position()=2]">
+ <text:p text:style-name="Index_20_Heading">
+ <xsl:apply-templates select=".//字:文本串"/>
+ </text:p>
+ </xsl:for-each>
+ </text:index-title>
+ <xsl:if test="字:域开始/@字:类型='INDEX'">
+ <xsl:for-each select="å­—:域代ç /å­—:段è½[position()>2]">
+ <xsl:element name="text:p">
+ <xsl:variable name="aa">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½[å­—:段è½å±žæ€§]"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat('P',$aa + 1)"/></xsl:attribute>
+ <xsl:for-each select="å­—:å¥">
+ <xsl:apply-templates select="self::node()/*"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:if>
+ </text:index-body>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="目录域">
+ <xsl:element name="text:table-of-content">
+ <xsl:variable name="stylenum">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:å¥" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat('Sect',$stylenum)"/></xsl:attribute>
+ <xsl:variable name="aanum">
+ <xsl:number value="0" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="text:name"><xsl:value-of select="concat('内容目录',$aanum + 1)"/></xsl:attribute>
+ <text:table-of-content-source text:outline-level="10">
+ <text:index-title-template text:style-name="Contents_20_Heading">内容目录</text:index-title-template>
+ <text:table-of-content-entry-template text:outline-level="1" text:style-name="Contents 1">
+ <text:index-entry-link-start text:style-name="Index_20_Link"/>
+ <text:index-entry-chapter/>
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ <text:index-entry-link-end/>
+ </text:table-of-content-entry-template>
+ <text:table-of-content-entry-template text:outline-level="2" text:style-name="Contents 2">
+ <text:index-entry-link-start text:style-name="Index_20_Link"/>
+ <text:index-entry-chapter/>
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ <text:index-entry-link-end/>
+ </text:table-of-content-entry-template>
+ <text:table-of-content-entry-template text:outline-level="3" text:style-name="Contents 3">
+ <text:index-entry-link-start text:style-name="Index_20_Link"/>
+ <text:index-entry-chapter/>
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ <text:index-entry-link-end/>
+ </text:table-of-content-entry-template>
+ <text:table-of-content-entry-template text:outline-level="4" text:style-name="Contents 4">
+ <text:index-entry-link-start text:style-name="Index_20_Link"/>
+ <text:index-entry-chapter/>
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ <text:index-entry-link-end/>
+ </text:table-of-content-entry-template>
+ <text:table-of-content-entry-template text:outline-level="5" text:style-name="Contents 5">
+ <text:index-entry-link-start text:style-name="Index_20_Link"/>
+ <text:index-entry-chapter/>
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ <text:index-entry-link-end/>
+ </text:table-of-content-entry-template>
+ <text:table-of-content-entry-template text:outline-level="6" text:style-name="Contents 6">
+ <text:index-entry-link-start text:style-name="Index_20_Link"/>
+ <text:index-entry-chapter/>
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ <text:index-entry-link-end/>
+ </text:table-of-content-entry-template>
+ <text:table-of-content-entry-template text:outline-level="7" text:style-name="Contents 7">
+ <text:index-entry-link-start text:style-name="Index_20_Link"/>
+ <text:index-entry-chapter/>
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ <text:index-entry-link-end/>
+ </text:table-of-content-entry-template>
+ <text:table-of-content-entry-template text:outline-level="8" text:style-name="Contents 8">
+ <text:index-entry-link-start text:style-name="Index_20_Link"/>
+ <text:index-entry-chapter/>
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ <text:index-entry-link-end/>
+ </text:table-of-content-entry-template>
+ <text:table-of-content-entry-template text:outline-level="9" text:style-name="Contents 9">
+ <text:index-entry-link-start text:style-name="Index_20_Link"/>
+ <text:index-entry-chapter/>
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ <text:index-entry-link-end/>
+ </text:table-of-content-entry-template>
+ <text:table-of-content-entry-template text:outline-level="10" text:style-name="Contents 10">
+ <text:index-entry-link-start text:style-name="Index_20_Link"/>
+ <text:index-entry-chapter/>
+ <text:index-entry-text/>
+ <text:index-entry-tab-stop style:type="right" style:leader-char="."/>
+ <text:index-entry-page-number/>
+ <text:index-entry-link-end/>
+ </text:table-of-content-entry-template>
+ </text:table-of-content-source>
+ <text:index-body>
+ <text:index-title>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat('Sect',$stylenum)"/></xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select="concat('内容目录',$aanum + 1,'_Head')"/></xsl:attribute>
+ <xsl:for-each select="å­—:域代ç /å­—:段è½[position()=2]">
+ <text:p text:style-name="Contents_20_Heading">
+ <xsl:apply-templates select=".//字:文本串"/>
+ </text:p>
+ </xsl:for-each>
+ </text:index-title>
+ <xsl:if test="字:域开始/@字:类型='REF'">
+ <xsl:for-each select="å­—:域代ç /å­—:段è½[position()>2]">
+ <xsl:element name="text:p">
+ <xsl:variable name="aa">
+ <xsl:number from="/uof:UOF/uof:文字处ç†/å­—:主体" level="any" count="å­—:段è½[å­—:段è½å±žæ€§]"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name"><xsl:value-of select="concat('P',$aa + 1)"/></xsl:attribute>
+ <xsl:element name="text:a">
+ <xsl:attribute name="xlink:type">simple</xsl:attribute>
+ <xsl:attribute name="text:style-name">Index Link</xsl:attribute>
+ <xsl:attribute name="text:visited-style-name">Index Link</xsl:attribute>
+ <xsl:variable name="hyperDest" select="./å­—:å¥/å­—:区域开始/@å­—:标识符"/>
+ <xsl:attribute name="xlink:href"><xsl:for-each select="/uof:UOF/uof:链接集/uof:超级链接"><xsl:if test="@uof:链æº=$hyperDest"><xsl:value-of select="concat('#',@uof:书签)"/></xsl:if></xsl:for-each></xsl:attribute>
+ <xsl:apply-templates select="å­—:å¥/*"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:if>
+ </text:index-body>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="suojinleixing">
+ <xsl:if test="å­—:缩进/å­—:首行/å­—:ç»å¯¹/@å­—:值 and å­—:缩进/å­—:å·¦/å­—:ç»å¯¹/@å­—:值">
+ <xsl:attribute name="text:min-label-width"><xsl:value-of select="concat(0 - å­—:缩进/å­—:首行/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ <xsl:attribute name="text:space-before"><xsl:value-of select="concat(å­—:缩进/å­—:å·¦/å­—:ç»å¯¹/@å­—:值 + å­—:缩进/å­—:首行/å­—:ç»å¯¹/@å­—:值,$uofUnit)"/></xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="字:修订开始[@字:类型='insert']">
+ <xsl:choose>
+ <xsl:when test="./@字:标识符">
+ <text:change-start text:change-id="{@字:标识符}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <text:change-start text:change-id="{@å­—:修订信æ¯å¼•ç”¨}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:修订结æŸ[preceding::å­—:修订开始[1]/@å­—:类型='insert']">
+ <text:change-end>
+ <xsl:attribute name="text:change-id"><xsl:value-of select="@字:开始标识引用"/></xsl:attribute>
+ </text:change-end>
+ </xsl:template>
+ <xsl:template match="字:修订开始[@字:类型='delete']">
+ <xsl:choose>
+ <xsl:when test="./@字:标识符">
+ <text:change-start text:change-id="{@字:标识符}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <text:change-start text:change-id="{@å­—:修订信æ¯å¼•ç”¨}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:修订结æŸ[preceding::å­—:修订开始[1]/@å­—:类型='delete']">
+ <text:change-end>
+ <xsl:attribute name="text:change-id"><xsl:value-of select="@字:开始标识引用"/></xsl:attribute>
+ </text:change-end>
+ </xsl:template>
+ <xsl:template match="字:修订开始[@字:类型='format']">
+ <xsl:choose>
+ <xsl:when test="./@字:标识符">
+ <text:change-start text:change-id="{@字:标识符}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <text:change-start text:change-id="{@å­—:修订信æ¯å¼•ç”¨}"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="å­—:修订结æŸ[preceding::å­—:修订开始[1]/@å­—:类型='format']">
+ <text:change-end>
+ <xsl:attribute name="text:change-id"><xsl:value-of select="@字:开始标识引用"/></xsl:attribute>
+ </text:change-end>
+ </xsl:template>
+ <xsl:template name="GenerateTrackChanges">
+ <text:tracked-changes>
+ <xsl:if test="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:文档设置/å­—:修订">
+ <xsl:attribute name="text:track-changes"><xsl:value-of select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:文档设置/å­—:修订/@å­—:值"/></xsl:attribute>
+ </xsl:if>
+ <xsl:if test="//å­—:段è½/å­—:修订开始[@å­—:类型='insert']">
+ <xsl:for-each select="//å­—:段è½/å­—:修订开始[@å­—:类型='insert']">
+ <xsl:variable name="id" select="@字:标识符"/>
+ <xsl:variable name="aid" select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:修订信æ¯é›†/å­—:修订信æ¯[@å­—:标识符=$id]/@å­—:作者"/>
+ <xsl:variable name="sid" select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:用户集/å­—:用户[@å­—:标识符=$aid]/@å­—:姓å"/>
+ <xsl:variable name="bid" select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:修订信æ¯é›†/å­—:修订信æ¯[@å­—:标识符=$id]/@å­—:日期"/>
+ <text:changed-region text:id="{$id}">
+ <xsl:choose>
+ <xsl:when test="name()='字:修订开始'">
+ <xsl:choose>
+ <xsl:when test="not(name(following-sibling::node()[1])='å­—:修订结æŸ')">
+ <text:insertion>
+ <office:change-info>
+ <dc:creator>
+ <xsl:value-of select="$sid"/>
+ </dc:creator>
+ <dc:date>
+ <xsl:value-of select="$bid"/>
+ </dc:date>
+ </office:change-info>
+ </text:insertion>
+ </xsl:when>
+ <xsl:otherwise>
+ <text:format-change>
+ <office:change-info>
+ <dc:creator>
+ <xsl:value-of select="$sid"/>
+ </dc:creator>
+ <dc:date>
+ <xsl:value-of select="$bid"/>
+ </dc:date>
+ </office:change-info>
+ </text:format-change>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </text:changed-region>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="//å­—:段è½/å­—:修订开始[@å­—:类型='insert']">
+ <xsl:for-each select="//å­—:段è½/å­—:修订开始[@å­—:类型='delete']">
+ <xsl:variable name="id" select="@字:标识符"/>
+ <xsl:variable name="aid" select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:修订信æ¯é›†/å­—:修订信æ¯[@å­—:标识符=$id]/@å­—:作者"/>
+ <xsl:variable name="sid" select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:用户集/å­—:用户[@å­—:标识符=$aid]/@å­—:姓å"/>
+ <xsl:variable name="bid" select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:修订信æ¯é›†/å­—:修订信æ¯[@å­—:标识符=$id]/@å­—:日期"/>
+ <text:changed-region text:id="{$id}">
+ <xsl:choose>
+ <xsl:when test="name()='字:修订开始'">
+ <xsl:choose>
+ <xsl:when test="not(name(following-sibling::node()[1])='å­—:修订结æŸ')">
+ <text:deletion>
+ <office:change-info>
+ <dc:creator>
+ <xsl:value-of select="$sid"/>
+ </dc:creator>
+ <dc:date>
+ <xsl:value-of select="$bid"/>
+ </dc:date>
+ </office:change-info>
+ </text:deletion>
+ </xsl:when>
+ <xsl:otherwise>
+ <text:format-change>
+ <office:change-info>
+ <dc:creator>
+ <xsl:value-of select="$sid"/>
+ </dc:creator>
+ <dc:date>
+ <xsl:value-of select="$bid"/>
+ </dc:date>
+ </office:change-info>
+ </text:format-change>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </text:changed-region>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="//å­—:段è½/å­—:修订开始[@å­—:类型='format']">
+ <xsl:for-each select="//å­—:段è½/å­—:修订开始[@å­—:类型='format']">
+ <xsl:variable name="id" select="@字:标识符"/>
+ <xsl:variable name="aid" select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:修订信æ¯é›†/å­—:修订信æ¯[@å­—:标识符=$id]/@å­—:作者"/>
+ <xsl:variable name="sid" select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:用户集/å­—:用户[@å­—:标识符=$aid]/@å­—:姓å"/>
+ <xsl:variable name="bid" select="/uof:UOF/uof:文字处ç†/å­—:公用处ç†è§„则/å­—:修订信æ¯é›†/å­—:修订信æ¯[@å­—:标识符=$id]/@å­—:日期"/>
+ <text:changed-region text:id="{$id}">
+ <xsl:choose>
+ <xsl:when test="name()='字:修订开始'">
+ <xsl:choose>
+ <xsl:when test="not(name(following-sibling::node()[1])='å­—:修订结æŸ')">
+ <text:format-change>
+ <office:change-info>
+ <dc:creator>
+ <xsl:value-of select="$sid"/>
+ </dc:creator>
+ <dc:date>
+ <xsl:value-of select="$bid"/>
+ </dc:date>
+ </office:change-info>
+ </text:format-change>
+ </xsl:when>
+ <xsl:otherwise>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ </xsl:choose>
+ </text:changed-region>
+ </xsl:for-each>
+ </xsl:if>
+
+ </text:tracked-changes>
+
+ </xsl:template>
+ <xsl:template name="ooæ•°å­—æ ¼å¼">
+ <xsl:param name="oo_format"/>
+ <xsl:choose>
+ <xsl:when test="$oo_format='decimal'">1</xsl:when>
+ <xsl:when test="$oo_format='upper-roman'">I</xsl:when>
+ <xsl:when test="$oo_format='lower-roman'">i</xsl:when>
+ <xsl:when test="$oo_format='upper-letter'">A</xsl:when>
+ <xsl:when test="$oo_format='lower-letter'">a</xsl:when>
+ <xsl:when test="$oo_format='decimal-full-width'">1, 2, 3, ...</xsl:when>
+ <xsl:when test="$oo_format='decimal-enclosed-circle'">â‘ , â‘¡, â‘¢, ...</xsl:when>
+ <xsl:when test="$oo_format='chinese-counting'">一, 二, 三, ...</xsl:when>
+ <xsl:when test="$oo_format='chinese-legal-simplified'">壹, è´°, å, ...</xsl:when>
+ <xsl:when test="$oo_format='ideograph-traditional'">甲, 乙, 丙, ...</xsl:when>
+ <xsl:when test="$oo_format='ideograph-zodiac'">å­, 丑, 寅, ...</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="章节域">
+ <xsl:if test="../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串">
+ <xsl:variable name="date0" select="substring-after(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,' \* ')"/>
+ <xsl:variable name="datestr" select="substring-before(../å­—:域代ç /å­—:段è½/å­—:å¥/å­—:文本串,'\* ')"/>
+ <xsl:variable name="fmt">
+ <xsl:choose>
+ <xsl:when test="substring-before($date0,' \*')='Arabic'">
+ <xsl:call-template name="ooæ•°å­—æ ¼å¼åŸŸå¼€å…³">
+ <xsl:with-param name="oo_format" select="substring-before($date0,' \*')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:element name="text:chapter">
+ <xsl:attribute name="text:display">name</xsl:attribute>
+ <xsl:attribute name="text:outline-level"><xsl:value-of select="$fmt"/></xsl:attribute>
+ <xsl:value-of select="following-sibling::å­—:å¥/å­—:文本串"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo.xsl
new file mode 100644
index 000000000000..ed661265fe5c
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo.xsl
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt v" xmlns:fla="urn:experimental:fla">
+ <xsl:output method="xml" indent="no" encoding="UTF-8" version="1.0"/>
+ <xsl:include href="../../common/measure_conversion.xsl"/>
+ <xsl:include href="../common/ms2ooo_docpr.xsl"/>
+ <xsl:include href="wordml2ooo_text.xsl"/>
+ <xsl:include href="wordml2ooo_settings.xsl"/>
+ <xsl:include href="wordml2ooo_table.xsl"/>
+ <xsl:include href="wordml2ooo_page.xsl"/>
+ <xsl:include href="wordml2ooo_list.xsl"/>
+ <xsl:include href="wordml2ooo_draw.xsl"/>
+ <xsl:include href="wordml2ooo_field.xsl"/>
+ <xsl:include href="wordml2ooo_props.xsl"/>
+ <xsl:key name="paragraph-style" match="w:style[@w:type = 'paragraph']" use="@w:styleId"/>
+ <xsl:key name="heading-style" match="w:style[@w:type = 'paragraph' and w:pPr/w:outlineLvl]" use="@w:styleId"/>
+ <xsl:variable name="preserve-alien-markup">no</xsl:variable>
+ <xsl:variable name="native-namespace-prefixes">,w,o,v,wx,aml,w10,dt,</xsl:variable>
+ <xsl:variable name="to-dispatch-elements">,wx:sect,wx:sub-section,w:p,w:tbl,w:sectPr,w:r,w:fldSimple,w:hlink,w:t,w:pict,w:br,w:instrText,w:fldChar,w:tab,w:footnote,w:endnote,aml:annotation,w:hlink,w:footnote,w:endnote,w:tblGrid,w:tr,w:tc,wx:pBdrGroup,</xsl:variable>
+ <xsl:template match="/">
+ <xsl:apply-templates select="w:wordDocument"/>
+ </xsl:template>
+ <xsl:template match="*" mode="dispatch">
+ <xsl:choose>
+ <xsl:when test="not(contains($native-namespace-prefixes, concat(',', substring-before(name(), ':'), ',')))">
+ <!-- if alien namespace dispatch -->
+ <xsl:choose>
+ <xsl:when test="$preserve-alien-markup = 'yes'">
+ <xsl:copy>
+ <xsl:copy-of select="@*"/>
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:copy>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="contains($to-dispatch-elements, concat(',',name(),','))">
+ <xsl:apply-templates select="current()"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="w:wordDocument">
+ <office:document office:mimetype="application/vnd.oasis.opendocument.text" office:version="1.0">
+ <fla:fla.activate/>
+ <xsl:apply-templates select="o:DocumentProperties"/>
+ <xsl:apply-templates select="w:docOleData" mode="init"/>
+ <xsl:apply-templates select="w:docPr"/>
+ <xsl:apply-templates select="w:fonts"/>
+ <xsl:apply-templates select="w:styles"/>
+ <xsl:apply-templates select="w:body"/>
+ <xsl:apply-templates select="w:docOleData" mode="exit"/>
+ </office:document>
+ </xsl:template>
+ <xsl:template match="w:fonts">
+ <xsl:element name="office:font-face-decls">
+ <!-- MS Word's default font declaration, added for Writer automatically. glu -->
+ <style:font-face style:name="Arial" svg:font-family="Arial" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Times New Roman" svg:font-family="'Times New Roman'" style:font-family-generic="roman" style:font-pitch="variable"/>
+ <style:font-face style:name="Symbol" svg:font-family="Symbol" style:font-family-generic="roman" style:font-pitch="variable" style:font-charset="x-symbol"/>
+ <style:font-face style:name="Courier New" svg:font-family="'Courier New'" style:font-family-generic="modern" style:font-pitch="fixed"/>
+ <xsl:if test="not(w:font[@w:name='StarSymbol'])">
+ <style:font-face style:name="StarSymbol" svg:font-family="StarSymbol" style:font-charset="x-symbol"/>
+ </xsl:if>
+ <xsl:for-each select="w:font">
+ <xsl:element name="style:font-face">
+ <xsl:attribute name="style:name">
+ <xsl:value-of select="@w:name"/>
+ </xsl:attribute>
+ <xsl:attribute name="svg:font-family">
+ <xsl:value-of select="@w:name"/>
+ </xsl:attribute>
+ <!-- added by glu, for process special fonts e.g. Marlett, -->
+ <xsl:if test="w:charset/@w:val = '02'">
+ <xsl:attribute name="style:font-charset">x-symbol</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:family">
+ <xsl:choose>
+ <xsl:when test="w:family/@w:val = 'Swiss'">
+ <xsl:attribute name="style:font-family-generic">swiss</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:family/@w:val='Modern'">
+ <xsl:attribute name="style:font-family-generic">modern</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:family/@w:val='Roman'">
+ <xsl:attribute name="style:font-family-generic">roman</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:family/@w:val='Script'">
+ <xsl:attribute name="style:font-family-generic">script</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:family/@w:val='Decorative'">
+ <xsl:attribute name="style:font-family-generic">decorative</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:family/@w:val='System'">
+ <xsl:attribute name="style:font-family-generic">system</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:font-family-generic">system</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="w:pitch and string-length(w:pitch/@w:val) &gt; 0">
+ <xsl:attribute name="style:font-pitch">
+ <xsl:choose>
+ <xsl:when test="w:pitch/@w:val = 'default'">variable</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="w:pitch/@w:val"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="w:styles">
+ <office:styles>
+ <!--The next statement Added by wguo,collect the pict's dash and mark-style.The template is implemented in file wordml2ooo_draw.xsl-->
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:pict" mode="style4dash_mark"/>
+ <xsl:apply-templates select="//v:fill" mode="office-style"/>
+ <xsl:call-template name="create-default-paragraph-styles"/>
+ <xsl:call-template name="create-default-text-styles"/>
+ <xsl:call-template name="create-default-frame-style"/>
+ <!-- StarWriter has no default style family 'list'. glu -->
+ <xsl:if test="w:style[@w:type = 'paragraph' and w:pPr/w:outlineLvl and w:pPr/w:listPr]">
+ <xsl:call-template name="create-outline-style"/>
+ </xsl:if>
+ <xsl:apply-templates select="w:style[@w:type='table']" mode="table"/>
+ <xsl:apply-templates select="w:style[@w:type='list']" mode="list"/>
+ <xsl:apply-templates select="w:style[@w:type!='list']"/>
+ <xsl:apply-templates select="/w:wordDocument/w:docPr/w:footnotePr" mode="config"/>
+ <xsl:apply-templates select="/w:wordDocument/w:docPr/w:endnotePr" mode="config"/>
+ </office:styles>
+ <office:automatic-styles>
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:p" mode="style"/>
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:rPr[not(parent::w:pPr)]" mode="style"/>
+ <!--The next statement Added by wguo for the pict's draw-style.The template is implemented in file wordml2ooo_draw.xsl-->
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:pict" mode="style"/>
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:tblPr" mode="style"/>
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:gridCol" mode="style"/>
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:trPr" mode="style"/>
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:tcPr" mode="style"/>
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:listPr" mode="style"/>
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:sectPr" mode="page-layout"/>
+ <xsl:call-template name="default_date_style"/>
+ <!--add for generate the date , time style for date , time field G.Y.-->
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:instrText | /w:wordDocument/w:body//w:fldSimple " mode="style"/>
+ </office:automatic-styles>
+ <office:master-styles>
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:sectPr" mode="master-page"/>
+ </office:master-styles>
+ </xsl:template>
+ <xsl:template match="w:style">
+ <style:style>
+ <xsl:attribute name="style:name">
+ <xsl:value-of select="concat('w',translate(@w:styleId,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))"/>
+ </xsl:attribute>
+ <xsl:if test="w:basedOn">
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:value-of select="concat('w',translate(w:basedOn/@w:val,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:next">
+ <xsl:attribute name="style:next-style-name">
+ <xsl:value-of select="concat('w',translate(w:basedOn/@w:val,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@w:type = 'character'">
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ </xsl:when>
+ <!-- table, paragraph are the same as in Writer . glu -->
+ <xsl:when test="@w:type">
+ <xsl:attribute name="style:family">
+ <xsl:value-of select="@w:type"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@w:type = 'table'">
+ <xsl:element name="style:table-properties">
+ <!-- xsl:apply-templates select="w:tblPr" mode="style"/ -->
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="@w:type = 'character' ">
+ <xsl:element name="style:text-properties">
+<!--
+ <xsl:apply-templates select="w:pPr/w:rPr"/>
+ <xsl:apply-templates select="w:rPr"/>
+-->
+ <xsl:for-each select="w:rPr">
+ <xsl:call-template name="text-properties"/>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="style:paragraph-properties">
+ <xsl:apply-templates select="w:pPr"/>
+ </xsl:element>
+ <xsl:element name="style:text-properties">
+ <xsl:apply-templates select="w:rPr"/>
+ <xsl:apply-templates select="w:pPr/w:rPr"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </style:style>
+ </xsl:template>
+ <xsl:template match="w:body">
+ <xsl:element name="office:body">
+ <xsl:element name="office:text">
+ <!-- to add the sequece variable declaration at the beginning of the office:body G.Y.-->
+ <text:sequence-decls>
+ <xsl:call-template name="default_seqence_declaration"/>
+ <xsl:apply-templates select="/w:wordDocument/w:body//w:instrText[substring(normalize-space(text()),1,3) = 'SEQ' ] | /w:wordDocument/w:body//w:fldSimple[substring(normalize-space(@w:instr),1,3) = 'SEQ' ] " mode="sequence_declare"/>
+ </text:sequence-decls>
+ <!-- add the user field variables declare for Docpropety fields importing G.Y.-->
+ <text:user-field-decls>
+ <xsl:call-template name="user_fields_declare_docproperty"/>
+ </text:user-field-decls>
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="wx:sect">
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:template>
+ <xsl:template match="wx:sub-section">
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:template>
+ <xsl:template name="create-default-frame-style">
+ <!--add for default frame style -->
+ <style:style style:name="Frame" style:family="graphic">
+ <style:graphic-properties text:anchor-type="paragraph" svg:x="0in" svg:y="0in" style:wrap="parallel" style:number-wrapped-paragraphs="no-limit" style:wrap-contour="false" style:vertical-pos="top" style:vertical-rel="paragraph-content" style:horizontal-pos="center" style:horizontal-rel="paragraph-content"/>
+ </style:style>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo_custom_draw.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo_custom_draw.xsl
new file mode 100644
index 000000000000..118c63301774
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo_custom_draw.xsl
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt fo v">
+ <xsl:template name="ms_word_draw_map2ooo_custom_draw">
+ <xsl:param name="ms_word_draw_type"/>
+ <!-- all ooo draw names are get from EnhancedCustomShapeGeometry.idl-->
+ <xsl:choose>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t5' ">
+ <xsl:value-of select=" 'isosceles-triangle'"/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type ='#_x0000_t6' ">
+ <xsl:value-of select=" 'right-triangle' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t8' ">
+ <xsl:value-of select=" 'trapezoid' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t4' ">
+ <xsl:value-of select=" 'diamond' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t9' ">
+ <xsl:value-of select=" 'hexagon' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t7' ">
+ <xsl:value-of select="'parallelogram' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t56' ">
+ <xsl:value-of select=" 'pentagon' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t10' ">
+ <xsl:value-of select=" 'octagon' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t11' ">
+ <xsl:value-of select=" 'cross' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t23' ">
+ <xsl:value-of select=" 'ring' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t95' ">
+ <xsl:value-of select=" 'block-arc' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t22' ">
+ <xsl:value-of select=" 'can' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t16' ">
+ <xsl:value-of select=" 'cube' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t65' ">
+ <xsl:value-of select=" 'paper' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t96' ">
+ <xsl:value-of select=" 'smiley' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t183' ">
+ <xsl:value-of select=" 'sun' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t184' ">
+ <xsl:value-of select=" 'moon' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t74' ">
+ <xsl:value-of select=" 'heart' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t57' ">
+ <xsl:value-of select=" 'forbidden' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type ='#_x0000_t85' ">
+ <xsl:value-of select=" 'left-bracket' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t86' ">
+ <xsl:value-of select=" 'right-bracket' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t87' ">
+ <xsl:value-of select=" 'left-brace' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t88' ">
+ <xsl:value-of select=" 'right-brace' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t185' ">
+ <xsl:value-of select=" 'bracket-pair' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t186' ">
+ <xsl:value-of select=" 'brace-pair' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t189' ">
+ <xsl:value-of select=" 'quad-bevel' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t66' ">
+ <xsl:value-of select=" 'left-arrow' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t67' ">
+ <xsl:value-of select=" 'down-arrow' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t68' ">
+ <xsl:value-of select=" 'up-arrow' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t13' ">
+ <xsl:value-of select=" 'right-arrow' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t69' ">
+ <xsl:value-of select=" 'left-right-arrow' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t70' ">
+ <xsl:value-of select=" 'up-down-arrow' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t89' ">
+ <xsl:value-of select=" 'mso-spt89' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t76' ">
+ <xsl:value-of select=" 'quad-arrow' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t94' ">
+ <xsl:value-of select=" 'notched-right-arrow' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t177' ">
+ <xsl:value-of select=" 'pentagon-right' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t55' ">
+ <xsl:value-of select=" 'chevron' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t79' ">
+ <xsl:value-of select=" 'up-arrow-callout' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t80' ">
+ <xsl:value-of select=" 'down-arrow-callout' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t82' ">
+ <xsl:value-of select=" 'up-down-arrow-callout' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t103' ">
+ <xsl:value-of select=" 'circular-arrow' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t109' ">
+ <xsl:value-of select=" 'flowchart-process' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t116' ">
+ <xsl:value-of select=" 'flowchart-alternate-process' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t110' ">
+ <xsl:value-of select=" 'flowchart-decision' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t111' ">
+ <xsl:value-of select=" 'flowchart-data' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t112' ">
+ <xsl:value-of select=" 'flowchart-predefined-process' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t113' ">
+ <xsl:value-of select=" 'flowchart-internal-storage' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t114' ">
+ <xsl:value-of select=" 'flowchart-document' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t115' ">
+ <xsl:value-of select=" 'flowchart-multidocument' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t116' ">
+ <xsl:value-of select=" 'flowchart-terminator' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t117' ">
+ <xsl:value-of select=" 'flowchart-preparation' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t118' ">
+ <xsl:value-of select=" 'flowchart-manual-input' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t119' ">
+ <xsl:value-of select=" 'flowchart-manual-operation' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t120' ">
+ <xsl:value-of select=" 'flowchart-connector' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t177' ">
+ <xsl:value-of select=" 'flowchart-off-page-connector' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t121' ">
+ <xsl:value-of select=" 'flowchart-card' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t122' ">
+ <xsl:value-of select=" 'flowchart-punched-tape' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t123' ">
+ <xsl:value-of select=" 'flowchart-summing-junction' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t124' ">
+ <xsl:value-of select=" 'flowchart-or' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t125' ">
+ <xsl:value-of select=" 'flowchart-collate' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t126' ">
+ <xsl:value-of select=" 'flowchart-sort' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t127' ">
+ <xsl:value-of select=" 'flowchart-extract' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t128' ">
+ <xsl:value-of select=" 'flowchart-merge' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t130' ">
+ <xsl:value-of select=" 'flowchart-stored-data' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t135' ">
+ <xsl:value-of select=" 'flowchart-delay' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t131' ">
+ <xsl:value-of select=" 'flowchart-sequential-access' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t132' ">
+ <xsl:value-of select=" 'flowchart-magnetic-disk' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t133' ">
+ <xsl:value-of select=" 'flowchart-direct-access-storage' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t134' ">
+ <xsl:value-of select=" 'flowchart-display' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t61' ">
+ <xsl:value-of select=" 'rectangular-callout' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t62' ">
+ <xsl:value-of select=" 'round-rectangular-callout' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t63' ">
+ <xsl:value-of select=" 'round-callout' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t106' ">
+ <xsl:value-of select=" 'cloud-callout' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t50' ">
+ <xsl:value-of select=" 'line-callout-1' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t51' ">
+ <xsl:value-of select=" 'line-callout-2' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t47' ">
+ <xsl:value-of select=" 'line-callout-3' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t72' ">
+ <xsl:value-of select=" 'bang' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t187' ">
+ <xsl:value-of select=" 'star4' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t12' ">
+ <xsl:value-of select=" 'star5' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t58' ">
+ <xsl:value-of select=" 'star8' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t92' ">
+ <xsl:value-of select=" 'star24' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t97' ">
+ <xsl:value-of select=" 'vertical-scroll' "/>
+ </xsl:when>
+ <xsl:when test="$ms_word_draw_type = '#_x0000_t98' ">
+ <xsl:value-of select=" 'horizontal-scroll' "/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo_draw.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo_draw.xsl
new file mode 100644
index 000000000000..448923f95610
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo_draw.xsl
@@ -0,0 +1,2178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:ole="http://libreoffice.org/2011/xslt/ole" exclude-result-prefixes="w wx aml o dt v">
+ <xsl:include href="wordml2ooo_custom_draw.xsl"/>
+
+ <xsl:key name="imagedata" match="w:binData" use="@w:name"/>
+ <xsl:key name="shapetype" match="v:shapetype" use="concat('#', @id)"/>
+ <xsl:template match="v:fill" mode="get-xsl-number">
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="v:fill" format="1"/>
+ </xsl:template>
+ <xsl:template match="v:textpath" mode="get-xsl-number">
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="v:textpath" format="1"/>
+ </xsl:template>
+ <xsl:template match="v:fill" mode="office-style">
+ <xsl:choose>
+ <xsl:when test="@type='pattern' or @type='tile' or @type='frame'">
+ <xsl:variable name="fill-src" select="key('imagedata',@src)"/>
+ <xsl:if test="$fill-src">
+ <draw:fill-image>
+ <xsl:if test="string-length(@o:title) &gt; 0">
+ <xsl:attribute name="draw:name">
+ <xsl:value-of select="@o:title"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="draw:name">
+ <xsl:value-of select="translate(@src,'&#9;&#10;&#13;&#32;:/.','' ) "/>
+ </xsl:attribute>
+ <xsl:element name="office:binary-data">
+ <xsl:value-of select="translate($fill-src/text(),'&#9;&#10;&#13;&#32;','' ) "/>
+ </xsl:element>
+ </draw:fill-image>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="contains(@type,'gradient')">
+ <draw:gradient>
+ <xsl:attribute name="draw:name">
+ <xsl:value-of select=" 'gradient' "/>
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="v:fill" format="1"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:style">linear</xsl:attribute>
+ <xsl:if test="string-length(parent::v:*/@fillcolor) &gt; 0">
+ <xsl:attribute name="draw:start-color">
+ <xsl:call-template name="MapConstColor">
+ <xsl:with-param name="color" select="parent::v:*/@fillcolor"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length(@color2) &gt; 0">
+ <xsl:attribute name="draw:end-color">
+ <xsl:call-template name="MapConstColor">
+ <xsl:with-param name="color" select="@color2"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </draw:gradient>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="w:pict" mode="style4dash_mark">
+ <xsl:if test="descendant::v:line or descendant::v:rect or descendant::v:oval or descendant::v:arc or descendant::v:shape">
+ <!--Changed-->
+ <xsl:variable name="vchild" select="./v:*"/>
+ <xsl:variable name="def" select="$vchild/v:stroke"/>
+ <xsl:if test="$def">
+ <!--<draw:marker draw:name="Stupid33" svg:viewBox="0 0 20 30" svg:d="m10 0-10 30h20z"/> -->
+ <xsl:variable name="wdashstyle" select="$vchild/v:stroke/@dashstyle"/>
+ <xsl:variable name="stroke-num">
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="v:stroke" format="1"/>
+ </xsl:variable>
+ <xsl:variable name="ptweight">
+ <xsl:choose>
+ <xsl:when test="$vchild/@strokeweight">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'pt'"/>
+ <xsl:with-param name="value" select="$vchild/@strokeweight"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'pt'"/>
+ <xsl:with-param name="value" select="'1pt'"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$wdashstyle and not ($wdashstyle = 'solid')">
+ <xsl:variable name="strdashdot">
+ <xsl:call-template name="getstrdashdot">
+ <xsl:with-param name="dashstyle" select="$wdashstyle"/>
+ <!--<xsl:with-param name="weight" select="$vchild/@strokeweight"/>-->
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="draw-style">
+ <xsl:variable name="end-cap" select="$vchild/v:stroke/@endcap"/>
+ <xsl:choose>
+ <xsl:when test="$end-cap = 'round'">round</xsl:when>
+ <xsl:otherwise>rect</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="dot1-length">
+ <xsl:call-template name="get-middle-substring">
+ <xsl:with-param name="string" select="$strdashdot"/>
+ <xsl:with-param name="prefix" select="'dol:'"/>
+ <xsl:with-param name="suffix" select="';don'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="dot1n">
+ <xsl:call-template name="get-middle-substring">
+ <xsl:with-param name="string" select="$strdashdot"/>
+ <xsl:with-param name="prefix" select="'don:'"/>
+ <xsl:with-param name="suffix" select="';dist'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="dist-length">
+ <xsl:call-template name="get-middle-substring">
+ <xsl:with-param name="string" select="$strdashdot"/>
+ <xsl:with-param name="prefix" select="'dist:'"/>
+ <xsl:with-param name="suffix" select="';dtl'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="dot2-length">
+ <xsl:call-template name="get-middle-substring">
+ <xsl:with-param name="string" select="$strdashdot"/>
+ <xsl:with-param name="prefix" select="'dtl:'"/>
+ <xsl:with-param name="suffix" select="';dtn'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="dot2n">
+ <xsl:call-template name="get-middle-substring">
+ <xsl:with-param name="string" select="$strdashdot"/>
+ <xsl:with-param name="prefix" select="'dtn:'"/>
+ <xsl:with-param name="suffix" select="';eddtn'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:element name="draw:stroke-dash">
+ <!--dol:8;don:1;dist:2;dtl:1;dtn:2;eddtn" />-->
+ <xsl:attribute name="draw:name">
+ <xsl:value-of select="concat('Tdash',$stroke-num)"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:style">
+ <xsl:value-of select="$draw-style"/>
+ </xsl:attribute>
+ <xsl:if test="(string-length($dot1n) &gt; 0 ) and not ($dot1n ='-1')">
+ <xsl:attribute name="draw:dots1">
+ <xsl:value-of select="$dot1n"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="(string-length($dot2n) &gt; 0 ) and not ($dot2n ='-1')">
+ <xsl:attribute name="draw:dots2">
+ <xsl:value-of select="$dot2n"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="(string-length($dot1-length) &gt; 0 ) and not ($dot1-length ='-1')">
+ <xsl:attribute name="draw:dots1-length">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat($dot1-length,'pt')"/>
+ </xsl:call-template>in</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="(string-length($dot2-length) &gt; 0 ) and not ($dot2-length ='-1')">
+ <xsl:attribute name="draw:dots2-length">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat($dot2-length,'pt')"/>
+ </xsl:call-template>in</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="(string-length($dist-length) &gt; 0 ) and not ($dist-length ='-1')">
+ <xsl:variable name="valdistance-length">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat($dist-length,'pt')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="draw:distance">
+ <xsl:value-of select="$valdistance-length*$ptweight"/>in</xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:if test="$vchild/v:stroke/@startarrow">
+ <xsl:call-template name="CreateArrowStyle">
+ <xsl:with-param name="arrow-name" select="$vchild/v:stroke/@startarrow"/>
+ <xsl:with-param name="namenumber" select="concat('markerstart',$stroke-num)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$vchild/v:stroke/@endarrow">
+ <xsl:call-template name="CreateArrowStyle">
+ <xsl:with-param name="arrow-name" select="$vchild/v:stroke/@endarrow"/>
+ <xsl:with-param name="namenumber" select="concat('markerend',$stroke-num)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <!--<v:stroke dashstyle="1 1" startarrow="diamond" startarrowwidth="wide" startarrowlength="long" endarrow="block"
+ endarrowwidth="wide" endarrowlength="long" endcap="round"/>
+ <draw:stroke-dash draw:name="2 2dots 1 dash" draw:style="rect" draw:dots1="2" draw:dots2="1" draw:dots2-length="0.0795in"
+ draw:distance="0.102in"/>
+ Hehe,It need to be revised-->
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="CreateArrowStyle">
+ <!--<draw:marker draw:name="Stupid33" svg:viewBox="0 0 20 30" svg:d="m10 0-10 30h20z"/> -->
+ <xsl:param name="arrow-name"/>
+ <xsl:param name="namenumber"/>
+ <xsl:param name="arrow-weight"/>
+ <xsl:variable name="svg-box">
+ <xsl:choose>
+ <xsl:when test="$arrow-name = 'block' ">0 0 1131 902</xsl:when>
+ <xsl:when test="$arrow-name = 'diamond' ">0 0 10 10</xsl:when>
+ <xsl:when test="$arrow-name = 'open' ">0 0 1122 2243</xsl:when>
+ <xsl:when test="$arrow-name = 'oval' ">0 0 1131 1131</xsl:when>
+ <xsl:when test="$arrow-name = 'diamond' ">0 0 1131 1131</xsl:when>
+ <xsl:when test="$arrow-name = 'classic' ">0 0 1131 1580</xsl:when>
+ <xsl:otherwise>0 0 1122 2243</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="svg-d">
+ <xsl:choose>
+ <xsl:when test="$arrow-name = 'block' ">m564 0-564 902h1131z</xsl:when>
+ <!--Symmetric Arrow-->
+ <xsl:when test="$arrow-name = 'diamond' ">m0 0h10v10h-10z</xsl:when>
+ <xsl:when test="$arrow-name = 'open' ">m0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z</xsl:when>
+ <xsl:when test="$arrow-name = 'oval' ">m462 1118-102-29-102-51-93-72-72-93-51-102-29-102-13-105 13-102 29-106 51-102 72-89 93-72 102-50 102-34 106-9 101 9 106 34 98 50 93 72 72 89 51 102 29 106 13 102-13 105-29 102-51 102-72 93-93 72-98 51-106 29-101 13z</xsl:when>
+ <xsl:when test="$arrow-name = 'diamond' ">m0 564 564 567 567-567-567-564z</xsl:when>
+ <xsl:when test="$arrow-name = 'classic' ">m1013 1491 118 89-567-1580-564 1580 114-85 136-68 148-46 161-17 161 13 153 46z</xsl:when>
+ <xsl:otherwise>m0 2108v17 17l12 42 30 34 38 21 43 4 29-8 30-21 25-26 13-34 343-1532 339 1520 13 42 29 34 39 21 42 4 42-12 34-30 21-42v-39-12l-4 4-440-1998-9-42-25-39-38-25-43-8-42 8-38 25-26 39-8 42z</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="draw:marker">
+ <xsl:attribute name="draw:name">
+ <xsl:value-of select="$namenumber"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:display-name">
+ <xsl:value-of select="$namenumber"/>
+ </xsl:attribute>
+ <xsl:attribute name="svg:viewBox">
+ <xsl:value-of select="$svg-box"/>
+ </xsl:attribute>
+ <xsl:attribute name="svg:d">
+ <xsl:value-of select="$svg-d"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <!-- The template MapDashConst Map the const dashstyle to a number manner
+ It calls the template kickblanks to delete the extra blanks in the dash style here is the map
+• Solid (default) • ShortDash "2 2"
+• ShortDot "0 2" • ShortDashDot "2 2 0 2"
+• ShortDashDotDot "2 2 0 2 0 2" • Dot "1 2"
+• Dash "4 2" • LongDash "8 2"
+• DashDot "4 2 1 2"• LongDashDot "8 2 1 2"
+• LongDashDotDot "8 2 1 2 1 2"
+-->
+ <xsl:template name="MapDashConst">
+ <xsl:param name="dashstyle"/>
+ <xsl:choose>
+ <xsl:when test="$dashstyle='shortDash'"> 2 2 </xsl:when>
+ <xsl:when test="$dashstyle='shortDot'"> 0 2 </xsl:when>
+ <xsl:when test="$dashstyle='shortDashDot'"> 2 2 0 2 </xsl:when>
+ <xsl:when test="$dashstyle='shortDashDotDot'"> 2 2 0 2 0 2 </xsl:when>
+ <xsl:when test="$dashstyle='dot'"> 1 2 </xsl:when>
+ <xsl:when test="$dashstyle='dash'"> 4 2 </xsl:when>
+ <xsl:when test="$dashstyle='longDash'"> 8 2 </xsl:when>
+ <xsl:when test="$dashstyle='dashDot'"> 4 2 1 2 </xsl:when>
+ <xsl:when test="$dashstyle='longDashDot'"> 8 2 1 2 </xsl:when>
+ <xsl:when test="$dashstyle='longDashDotDot'"> 8 2 1 2 1 2 </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="str-style" select="concat(' ',$dashstyle ,' ')"/>
+ <xsl:variable name="cleanstyle">
+ <xsl:call-template name="kickblanks">
+ <xsl:with-param name="str" select="translate($str-style,' ','-')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="translate($cleanstyle,'-',' ')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--The template is used to delete the extra blanks from a string.-->
+ <xsl:template name="kickblanks">
+ <xsl:param name="str"/>
+ <xsl:variable name="tmpstr">
+ <xsl:choose>
+ <xsl:when test="contains($str,'--')">
+ <xsl:variable name="str-before">
+ <xsl:value-of select="substring-before($str,'--')"/>
+ </xsl:variable>
+ <xsl:variable name="str-after">
+ <xsl:value-of select="substring-after($str,'--')"/>
+ </xsl:variable>
+ <xsl:value-of select="concat($str-before,'-',$str-after)"/>
+ </xsl:when>
+ <xsl:when test="contains($str,' ')">
+ <xsl:variable name="str-before">
+ <xsl:value-of select="substring-before($str,' ')"/>
+ </xsl:variable>
+ <xsl:variable name="str-after">
+ <xsl:value-of select="substring-after($str,' ')"/>
+ </xsl:variable>
+ <xsl:value-of select="concat($str-before,' ',$str-after)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="not ( string-length($str) = string-length($tmpstr) )">
+ <xsl:variable name="restr">
+ <xsl:call-template name="kickblanks">
+ <xsl:with-param name="str" select="$tmpstr"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$restr"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="substrcount">
+ <xsl:param name="str"/>
+ <xsl:param name="substr"/>
+ <xsl:choose>
+ <xsl:when test="$substr and string-length($str) and contains($str,$substr) and string-length(substring-before($str,$substr)) = 0">
+ <xsl:variable name="restr" select="substring-after($str,$substr)"/>
+ <xsl:variable name="num">
+ <xsl:call-template name="substrcount">
+ <xsl:with-param name="str" select="$restr"/>
+ <xsl:with-param name="substr" select="$substr"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="$num+1"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="lastest-substr-after">
+ <xsl:param name="str"/>
+ <xsl:param name="substr"/>
+ <xsl:choose>
+ <xsl:when test="contains($str,$substr) and string-length(substring-before($str,$substr)) = 0">
+ <xsl:variable name="restr" select="substring-after($str,$substr)"/>
+ <xsl:call-template name="lastest-substr-after">
+ <xsl:with-param name="str" select="$restr"/>
+ <xsl:with-param name="substr" select="$substr"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$str"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--Template get_revised_adj is used to get real adj when adj show two time in the file. -->
+ <xsl:template name="get_remained_adj">
+ <xsl:param name="adj_typeid"/>
+ <xsl:param name="num"/>
+ <xsl:param name="mark"/>
+ <xsl:choose>
+ <xsl:when test="$num &gt; 0 ">
+ <xsl:variable name="new_remained_adj">
+ <xsl:choose>
+ <xsl:when test="string-length($adj_typeid) &gt; 0">
+ <xsl:call-template name="get_remained_adj">
+ <xsl:with-param name="adj_typeid" select="substring-after($adj_typeid,$mark)"/>
+ <xsl:with-param name="num" select="$num -1"/>
+ <xsl:with-param name="mark" select="$mark"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$new_remained_adj"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$adj_typeid"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--Template get_non_omit_adj is used to get the non-omit adj.(e.g. Adj="10,,11" means modifiers="10 0 11").-->
+ <xsl:template name="get_non_omit_adj">
+ <xsl:param name="adj_typeid"/>
+ <xsl:param name="num"/>
+ <xsl:param name="mark"/>
+ <xsl:choose>
+ <xsl:when test="$num &gt; 0 ">
+ <xsl:variable name="before" select="substring-before($adj_typeid,',')"/>
+ <xsl:variable name="after" select="substring-after($adj_typeid,',')"/>
+ <xsl:variable name="zero_or_itself">
+ <xsl:choose>
+ <xsl:when test="string-length(translate($before, ' ','' ) ) &gt; 0">
+ <xsl:value-of select="$before"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'0'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="new_non_omit_adj">
+ <xsl:call-template name="get_non_omit_adj">
+ <xsl:with-param name="adj_typeid" select="$after"/>
+ <xsl:with-param name="num" select="$num -1"/>
+ <xsl:with-param name="mark" select="$mark"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat($zero_or_itself, ' ',$new_non_omit_adj)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="zero_or_itself">
+ <xsl:choose>
+ <xsl:when test="string-length(translate($adj_typeid, ' ','' ) ) &gt; 0">
+ <xsl:value-of select="$adj_typeid"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'0'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$zero_or_itself"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="getstrdashdot">
+ <!--Remember the robust!if dashstyle is '2'?What to do!-->
+ <xsl:param name="dashstyle"/>
+ <xsl:variable name="dstyle">
+ <xsl:variable name="tmpstyle">
+ <xsl:call-template name="MapDashConst">
+ <xsl:with-param name="dashstyle" select="$dashstyle"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="substring-after($tmpstyle,' ')"/>
+ </xsl:variable>
+ <xsl:variable name="dot1" select="substring-before($dstyle,' ')"/>
+ <xsl:variable name="dot1after" select="substring-after($dstyle,' ')"/>
+ <xsl:variable name="dot1distance" select="substring-before($dot1after,' ')"/>
+ <xsl:variable name="modesubstr1" select="concat($dot1,' ',$dot1distance,' ')"/>
+ <xsl:variable name="dot1n">
+ <xsl:call-template name="substrcount">
+ <xsl:with-param name="str" select="$dstyle"/>
+ <xsl:with-param name="substr" select="$modesubstr1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="dot2substr">
+ <xsl:call-template name="lastest-substr-after">
+ <xsl:with-param name="str" select="$dstyle"/>
+ <xsl:with-param name="substr" select="$modesubstr1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="dot2">
+ <xsl:choose>
+ <xsl:when test="string-length($dot2substr) &gt; 3">
+ <xsl:value-of select="substring-before($dot2substr,' ')"/>
+ </xsl:when>
+ <xsl:otherwise>-1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="dot2distance">
+ <xsl:choose>
+ <xsl:when test="string-length($dot2substr) &gt; 3">
+ <xsl:variable name="tmpstr" select="substring-after($dot2substr,' ')"/>
+ <xsl:value-of select="substring-before($tmpstr,' ')"/>
+ </xsl:when>
+ <xsl:otherwise>-1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="modesubstr2" select="concat($dot2,' ',$dot2distance,' ') "/>
+ <xsl:variable name="dot2n">
+ <xsl:choose>
+ <xsl:when test="string-length($dot2substr) &gt; 3">
+ <xsl:call-template name="substrcount">
+ <xsl:with-param name="str" select="$dot2substr"/>
+ <xsl:with-param name="substr" select="$modesubstr2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>-1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="valDistance">
+ <!--Over all distance is the larger one!-->
+ <xsl:choose>
+ <xsl:when test="$dot2distance &gt; $dot1distance">
+ <xsl:value-of select="$dot2distance"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$dot1distance"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat('dol:',$dot1,';don:',$dot1n,';dist:',$valDistance,';dtl:',$dot2,';dtn:',$dot2n,';eddtn')"/>
+ <!--<xsl:choose>
+ <xsl:when test="$dashstyle='1 1' or $dashstyle='Dots'">
+ <xsl:variable name="do"><xsl:value-of select="'1'"/></xsl:variable>
+ <xsl:variable name="dol"><xsl:value-of select="$do * $cmweight"/></xsl:variable>
+ <xsl:variable name="ds"><xsl:value-of select="'1'"/></xsl:variable>
+ <xsl:variable name="dsl"><xsl:value-of select="$ds * $cmweight"/></xsl:variable>
+ <xsl:variable name="dt"><xsl:value-of select="'-1'"/></xsl:variable>
+ <xsl:variable name="dtl"><xsl:value-of select="'-1'"/></xsl:variable>
+ <xsl:value-of select="concat('dsl:',$dsl,'edsl','do:',$do, 'edo;','do')"/>
+ </xsl:when>
+ </xsl:choose>-->
+ </xsl:template>
+ <xsl:template match="w:pict" mode="style">
+ <xsl:apply-templates mode="style" select="v:*"/>
+ </xsl:template>
+ <xsl:template match="v:*" mode="style">
+ <xsl:variable name="vchild" select="."/>
+ <xsl:variable name="style" select="concat($vchild/@style, ';')"/>
+ <xsl:variable name="z-index" select="substring-before(substring-after($style,'z-index:'),';')"/>
+ <xsl:variable name="right-name" select="not(name($vchild) = 'v:formulas') and not(name($vchild) = 'v:f') and not(name($vchild) = 'v:shapetype')"/>
+ <xsl:variable name="def" select="string-length($style) &gt; 0 or $vchild/@stroke or $vchild/@stroked or $vchild/@strokecolor or $vchild/v:stroke or $vchild/@strokeweight or $vchild/@wrapcoords or $vchild/@fillcolor"/>
+ <xsl:choose>
+ <xsl:when test="$right-name and ($def or (number($z-index) &lt; 0))">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">Tgr<xsl:number from="/w:wordDocument/w:body" level="any" count="v:*" format="1"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">graphic</xsl:attribute>
+ <xsl:variable name="stroke-num">
+ <xsl:if test="$vchild/v:stroke">
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="v:stroke" format="1"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="draw-stroke">
+ <xsl:variable name="dashstyle" select="$vchild/v:stroke/@dashstyle"/>
+ <xsl:choose>
+ <xsl:when test="$vchild/@stroked and $vchild/@stroked='f'">none</xsl:when>
+ <xsl:when test="$dashstyle and not ($dashstyle = 'solid')">
+ <xsl:value-of select="concat('Tdash',$stroke-num)"/>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="style:graphic-properties">
+ <xsl:variable name="style-str" select="concat(@style,';')"/>
+ <xsl:choose>
+ <xsl:when test="number($z-index) &lt; 0 or (name($vchild) = 'v:group' and $vchild/@editas ='canvas' )">
+ <xsl:attribute name="style:wrap">run-through</xsl:attribute>
+ <xsl:attribute name="style:run-through">background</xsl:attribute>
+ <xsl:attribute name="style:flow-with-text">false</xsl:attribute>
+ <xsl:attribute name="fo:border">none</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:wrap">run-through</xsl:attribute>
+ <xsl:attribute name="style:run-through">foreground</xsl:attribute>
+ <xsl:attribute name="style:flow-with-text">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="contains($style-str,'mso-position-horizontal:')">
+ <xsl:attribute name="style:horizontal-pos">
+ <xsl:value-of select="substring-before( substring-after( $style-str , 'mso-position-horizontal:') , ';')"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="v:imagedata or v:textbox">
+ <xsl:attribute name="style:horizontal-pos">from-left</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="parent::w:pict/o:OLEObject">
+ <xsl:variable name="width" select="substring-before( substring-after($style,'width:') ,';')"/>
+ <xsl:variable name="height" select="substring-before(substring-after($style,'height:'),';')"/>
+ <xsl:attribute name="draw:visible-area-left">0cm</xsl:attribute>
+ <xsl:attribute name="draw:visible-area-top">0cm</xsl:attribute>
+ <xsl:attribute name="draw:visible-area-width">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$width"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="draw:visible-area-height">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$height"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="draw:ole-draw-aspect">
+ <!-- DVASPECT_CONTENT = 1,
+ DVASPECT_THUMBNAIL = 2,
+ DVASPECT_ICON = 4,
+ DVASPECT_DOCPRINT = 8 -->
+ <xsl:variable name="ms-aspect" select="parent::w:pict/o:OLEObject/@DrawAspect"/>
+ <xsl:choose>
+ <xsl:when test="$ms-aspect = 'Content'">1</xsl:when>
+ <xsl:when test="$ms-aspect = 'Thumbnail'">2</xsl:when>
+ <xsl:when test="$ms-aspect = 'Icon'">4</xsl:when>
+ <xsl:when test="$ms-aspect = 'Docprint'">8</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="parent::w:pict/o:OLEObject">
+ <xsl:attribute name="style:vertical-pos">middle</xsl:attribute>
+ <xsl:attribute name="style:vertical-rel">baseline</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains($style-str,'mso-position-vertical:')">
+ <xsl:attribute name="style:vertical-pos">
+ <xsl:value-of select="substring-before( substring-after( $style-str , 'mso-position-vertical:') , ';')"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="v:imagedata or v:textbox">
+ <xsl:attribute name="style:vertical-pos">from-top</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="string-length($draw-stroke) &gt; 0">
+ <!--draw:stroke="dash" draw:stroke-dash="Ohon!Ultrafine dashed" -->
+ <xsl:choose>
+ <xsl:when test="not ($draw-stroke = 'none')">
+ <xsl:attribute name="draw:stroke">
+ <xsl:value-of select="'dash'"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:stroke-dash">
+ <xsl:value-of select="$draw-stroke"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="draw:stroke">
+ <xsl:value-of select="'none'"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$vchild/v:stroke/@startarrow">
+ <!--<v:stroke startarrow="block" startarrowwidth="wide" startarrowlength="long"/-->
+ <xsl:attribute name="draw:marker-start">
+ <xsl:value-of select="concat('markerstart',$stroke-num)"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$vchild/v:stroke/@endarrow">
+ <!--<v:stroke startarrow="block" startarrowwidth="wide" startarrowlength="long"/-->
+ <xsl:attribute name="draw:marker-end">
+ <xsl:value-of select="concat('markerend',$stroke-num)"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$vchild/@strokeweight">
+ <xsl:attribute name="svg:stroke-width">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$vchild/@strokeweight"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$vchild/@strokecolor">
+ <xsl:attribute name="svg:stroke-color">
+ <xsl:call-template name="MapConstColor">
+ <xsl:with-param name="color" select="$vchild/@strokecolor"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$vchild/@fillcolor">
+ <xsl:attribute name="draw:fill-color">
+ <xsl:call-template name="MapConstColor">
+ <xsl:with-param name="color" select="$vchild/@fillcolor"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not($vchild/@fillcolor)">
+ <xsl:choose>
+ <xsl:when test="ancestor::v:group | v:shadow">
+ <xsl:attribute name="draw:fill-color">#ffffff</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="not($vchild/v:fill) and not(v:shadow)">
+ <xsl:attribute name="draw:fill">none</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$vchild/v:fill/@opacity">
+ <xsl:attribute name="draw:opacity">
+ <xsl:call-template name="convert2percent">
+ <xsl:with-param name="value" select="$vchild/v:fill/@opacity"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$vchild/v:fill/@type = 'pattern' or $vchild/v:fill/@type = 'tile' or $vchild/v:fill/@type = 'frame'">
+ <xsl:attribute name="draw:fill">bitmap</xsl:attribute>
+ <xsl:attribute name="draw:fill-image-name">
+ <xsl:value-of select="translate($vchild/v:fill/@src,'&#9;&#10;&#13;&#32;:/.','' ) "/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$vchild/v:fill/@type = 'gradient'">
+ <xsl:attribute name="draw:fill">gradient</xsl:attribute>
+ <xsl:attribute name="draw:fill-gradient-name">
+ <xsl:value-of select=" 'gradient' "/>
+ <xsl:apply-templates mode="get-xsl-number" select="$vchild/v:fill"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="style" select="v:shadow"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <!--Default style which will surely be removed during imported from a .flat file to SO-->
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">Tgr<xsl:number from="/w:wordDocument/w:body" level="any" count="v:*" format="1"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">graphic</xsl:attribute>
+ <style:graphic-properties draw:textarea-horizontal-align="center" draw:textarea-vertical-align="middle" style:wrap="none" draw:fill="none"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="name() = 'v:group'">
+ <xsl:apply-templates mode="style" select="v:*"/>
+ </xsl:if>
+ <xsl:apply-templates mode="style" select="v:textpath"/>
+ </xsl:template>
+ <xsl:template match="v:shadow" mode="style">
+ <!-- v:shadow on="t" color="aqua" opacity=".5" offset="13pt,11pt" offset2="14pt,10pt" -->
+ <xsl:attribute name="draw:shadow">
+ <xsl:choose>
+ <xsl:when test="contains(@on,'f')">hidden</xsl:when>
+ <xsl:otherwise>visible</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="draw:shadow-color">
+ <xsl:call-template name="MapConstColor">
+ <xsl:with-param name="color" select="@color"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:if test="string-length(@opacity) &gt;0">
+ <xsl:attribute name="draw:shadow-opacity">
+ <xsl:call-template name="convert2percent">
+ <xsl:with-param name="value" select="@opacity"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="contains(@offset,',')">
+ <xsl:attribute name="draw:shadow-offset-x">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="substring-before(@offset,',')"/>
+ <xsl:with-param name="TargetMeasure" select=" 'cm' "/>
+ </xsl:call-template>
+ <xsl:value-of select="'cm'"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:shadow-offset-y">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="substring-after(@offset,',')"/>
+ <xsl:with-param name="TargetMeasure" select=" 'cm' "/>
+ </xsl:call-template>
+ <xsl:value-of select="'cm'"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="draw:shadow-offset-x">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="@offset"/>
+ <xsl:with-param name="TargetMeasure" select=" 'cm' "/>
+ </xsl:call-template>
+ <xsl:value-of select="'cm'"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:shadow-offset-y">0.062cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@type='perspective' and @offset='0,0'">
+ <xsl:message>This kind of shadow does not support yet.</xsl:message>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="convert2percent">
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="contains($value,'%')">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:when test="contains($value,'f')">
+ <xsl:variable name="num-value" select="round(substring-before($value,'f') div 6.5536) div 100"/>
+ <xsl:value-of select="concat(100 - $num-value ,'%')"/>
+ </xsl:when>
+ <xsl:when test="string-length($value) = 0">
+ <xsl:value-of select="'1%'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($value * 100 ,'%')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="w:pict">
+ <xsl:param name="x-scale" select="1"/>
+ <xsl:param name="y-scale" select="1"/>
+ <xsl:param name="group-left" select="0"/>
+ <xsl:param name="group-top" select="0"/>
+ <xsl:param name="coord-left" select="0"/>
+ <xsl:param name="coord-top" select="0"/>
+ <xsl:param name="MeasureMark"/>
+ <xsl:apply-templates>
+ <xsl:with-param name="x-scale" select="$x-scale"/>
+ <xsl:with-param name="y-scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-left" select="$group-left"/>
+ <xsl:with-param name="group-top" select="$group-top"/>
+ <xsl:with-param name="coord-left" select="$coord-left"/>
+ <xsl:with-param name="coord-top" select="$coord-top"/>
+ </xsl:apply-templates>
+ </xsl:template>
+ <xsl:template name="get-middle-substring">
+ <xsl:param name="string"/>
+ <xsl:param name="prefix"/>
+ <xsl:param name="suffix"/>
+ <xsl:if test="contains($string, $prefix)">
+ <xsl:choose>
+ <xsl:when test="contains(substring-after( $string, $prefix), $suffix)">
+ <xsl:value-of select="substring-before(substring-after( $string, $prefix), $suffix)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-after( $string, $prefix)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="w:binData">
+ </xsl:template>
+ <xsl:template match="v:group">
+ <xsl:param name="x-scale" select="1"/>
+ <xsl:param name="y-scale" select="1"/>
+ <xsl:param name="MeasureMark"/>
+ <xsl:param name="group-left" select="0"/>
+ <xsl:param name="group-top" select="0"/>
+ <xsl:param name="coord-left" select="0"/>
+ <xsl:param name="coord-top" select="0"/>
+ <xsl:variable name="style" select="concat(@style, ';')"/>
+ <xsl:variable name="left">
+ <xsl:variable name="direct-left" select="substring-before(substring-after($style,';left:'),';')"/>
+ <xsl:variable name="margin-left" select="substring-before( substring-after($style,'margin-left:') ,';')"/>
+ <xsl:call-template name="Add-with-Measure">
+ <xsl:with-param name="value1" select="$margin-left"/>
+ <xsl:with-param name="value2" select="$direct-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="top">
+ <xsl:variable name="direct-top" select="substring-before(substring-after($style,';top:'),';')"/>
+ <xsl:variable name="margin-top" select="substring-before( substring-after($style,'margin-top:') ,';')"/>
+ <xsl:call-template name="Add-with-Measure">
+ <xsl:with-param name="value1" select="$margin-top"/>
+ <xsl:with-param name="value2" select="$direct-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="width" select="substring-before( substring-after($style,'width:') ,';')"/>
+ <xsl:variable name="height" select="substring-before(substring-after($style,'height:'),';')"/>
+ <xsl:variable name="Current-coord-left">
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="substring-before(@coordorigin, ',' )"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="Current-coord-top">
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="substring-after(@coordorigin, ',' )"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="Current-coord-width">
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="substring-before(@coordsize, ',' )"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="Current-coord-height">
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="substring-after(@coordsize, ',' )"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="Current-MeasureMark">
+ <xsl:choose>
+ <xsl:when test="string-length($MeasureMark) &gt; 0">
+ <xsl:value-of select="$MeasureMark"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" 'cm' "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="left-value">
+ <xsl:variable name="adjusted-left">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$left"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$Current-MeasureMark"/>
+ <xsl:with-param name="Target-Measure" select="$Current-MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="$adjusted-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="top-value">
+ <xsl:variable name="adjusted-top">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$top"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$Current-MeasureMark"/>
+ <xsl:with-param name="Target-Measure" select="$Current-MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="$adjusted-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="width-value">
+ <xsl:variable name="adjusted-width">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$width"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$Current-MeasureMark"/>
+ <xsl:with-param name="Target-Measure" select="$Current-MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="$adjusted-width"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="height-value">
+ <xsl:variable name="adjusted-height">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$height"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$Current-MeasureMark"/>
+ <xsl:with-param name="Target-Measure" select="$Current-MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="$adjusted-height"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="Current-x-scale" select="( $Current-coord-width div $width-value ) * $x-scale"/>
+ <xsl:variable name="Current-y-scale" select="( $Current-coord-height div $height-value ) * $y-scale"/>
+ <xsl:choose>
+ <xsl:when test="@editas='canvas' ">
+ <!-- frame -->
+ <xsl:variable name="style-name">Tgr<xsl:number from="/w:wordDocument/w:body" level="any" count="v:*" format="1"/>
+ </xsl:variable>
+ <xsl:variable name="frame-name">frame<xsl:number from="/w:wordDocument/w:body" level="any" count="v:group" format="1"/>
+ </xsl:variable>
+ <draw:frame draw:style-name="{$style-name}" draw:name="{$frame-name}" text:anchor-type="as-char" svg:x="{$left-value}{$Current-MeasureMark}" svg:y="{$top-value}{$Current-MeasureMark}" svg:width="{$width-value}{$Current-MeasureMark}" svg:height="{$height-value}{$Current-MeasureMark}" draw:z-index="0">
+ <draw:text-box>
+ <text:p text:style-name="Drawing">
+ <xsl:apply-templates select="w:r/w:pict | v:*">
+ <xsl:with-param name="x-scale" select="$Current-x-scale"/>
+ <xsl:with-param name="y-scale" select="$Current-y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$Current-MeasureMark"/>
+ <xsl:with-param name="group-left" select="$left-value"/>
+ <xsl:with-param name="group-top" select="$top-value"/>
+ <xsl:with-param name="coord-left" select="$Current-coord-left"/>
+ <xsl:with-param name="coord-top" select="$Current-coord-top"/>
+ </xsl:apply-templates>
+ </text:p>
+ </draw:text-box>
+ </draw:frame>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="draw:g">
+ <xsl:apply-templates select="w:r/w:pict | v:*">
+ <xsl:with-param name="x-scale" select="$Current-x-scale"/>
+ <xsl:with-param name="y-scale" select="$Current-y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$Current-MeasureMark"/>
+ <xsl:with-param name="group-left" select="$left-value"/>
+ <xsl:with-param name="group-top" select="$top-value"/>
+ <xsl:with-param name="coord-left" select="$Current-coord-left"/>
+ <xsl:with-param name="coord-top" select="$Current-coord-top"/>
+ </xsl:apply-templates>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="v:*">
+ <xsl:param name="x-scale" select="1"/>
+ <xsl:param name="y-scale" select="1"/>
+ <xsl:param name="MeasureMark"/>
+ <xsl:param name="group-left" select="0"/>
+ <xsl:param name="group-top" select="0"/>
+ <xsl:param name="coord-left" select="0"/>
+ <xsl:param name="coord-top" select="0"/>
+ <xsl:if test="not (name() = 'v:shapetype' )">
+ <xsl:call-template name="DrawElements">
+ <xsl:with-param name="x-scale" select="$x-scale"/>
+ <xsl:with-param name="y-scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-left" select="$group-left"/>
+ <xsl:with-param name="group-top" select="$group-top"/>
+ <xsl:with-param name="coord-left" select="$coord-left"/>
+ <xsl:with-param name="coord-top" select="$coord-top"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="DrawElements">
+ <xsl:param name="x-scale" select="1"/>
+ <xsl:param name="y-scale" select="1"/>
+ <xsl:param name="MeasureMark"/>
+ <xsl:param name="group-left" select="0"/>
+ <xsl:param name="group-top" select="0"/>
+ <xsl:param name="coord-left" select="0"/>
+ <xsl:param name="coord-top" select="0"/>
+ <xsl:param name="force-draw" select="'false'"/>
+ <xsl:param name="shape-type"/>
+ <xsl:variable name="wordshapename" select="substring-after(name(),':')"/>
+ <xsl:variable name="custom_shapename">
+ <xsl:if test="$wordshapename='roundrect' ">round-rectangle</xsl:if>
+ <xsl:if test="$wordshapename='shape' and not (v:imagedata) and not (v:textbox) and @type">
+ <xsl:call-template name="ms_word_draw_map2ooo_custom_draw">
+ <xsl:with-param name="ms_word_draw_type" select="@type"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="is-image" select="$wordshapename='shape' and v:imagedata"/>
+ <xsl:variable name="element-name">
+ <xsl:choose>
+ <xsl:when test="$wordshapename='line'">draw:line</xsl:when>
+ <xsl:when test="$wordshapename='rect'">draw:rect</xsl:when>
+ <xsl:when test="$wordshapename='oval'">draw:ellipse</xsl:when>
+ <xsl:when test="$wordshapename='arc'">draw:ellipse</xsl:when>
+ <xsl:when test="$wordshapename='polyline'">draw:polyline</xsl:when>
+ <xsl:when test="$wordshapename='roundrect' ">draw:custom-shape</xsl:when>
+ <xsl:when test="$wordshapename='shape' and v:imagedata">draw:frame</xsl:when>
+ <xsl:when test="$wordshapename='shape' and not (v:imagedata) and @type">
+ <xsl:choose>
+ <xsl:when test="string-length($custom_shapename) &gt; 0">draw:custom-shape</xsl:when>
+ <xsl:when test=" string-length(@type) &gt; 0 and key('shapetype',@type)">draw:custom-shape</xsl:when>
+ <xsl:otherwise>draw:rect</xsl:otherwise>
+ <!--if nothing match it, we prefer rect-->
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$wordshapename='shape' and v:textbox">draw:frame</xsl:when>
+ <!--changed here!-->
+ <xsl:otherwise>draw:path</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="wfill" select="@fill"/>
+ <xsl:variable name="draw-kind">
+ <xsl:if test="$wordshapename='arc' and string-length($wfill) &gt; 0">arc</xsl:if>
+ <!--Means this is a Segment of Circle-->
+ </xsl:variable>
+ <!--Get the position,left,top,width,height,z-index,flip from Style-->
+ <xsl:variable name="style" select="concat(@style, ';')"/>
+ <xsl:variable name="position" select="substring-before(substring-after($style,'position:'),';')"/>
+ <xsl:variable name="direct-left" select="substring-before(substring-after($style,';left:'),';')"/>
+ <xsl:variable name="left">
+ <xsl:variable name="margin-left" select="substring-before( substring-after($style,'margin-left:') ,';')"/>
+ <xsl:call-template name="Add-with-Measure">
+ <xsl:with-param name="value1" select="$margin-left"/>
+ <xsl:with-param name="value2" select="$direct-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="direct-top" select="substring-before(substring-after($style,';top:'),';')"/>
+ <xsl:variable name="top">
+ <xsl:variable name="margin-top" select="substring-before( substring-after($style,'margin-top:') ,';')"/>
+ <xsl:call-template name="Add-with-Measure">
+ <xsl:with-param name="value1" select="$margin-top"/>
+ <xsl:with-param name="value2" select="$direct-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="width" select="substring-before( substring-after($style,'width:') ,';')"/>
+ <xsl:variable name="height" select="substring-before(substring-after($style,'height:'),';')"/>
+ <xsl:variable name="flip" select="substring-before(substring-after($style,'flip:'),';')"/>
+ <xsl:variable name="z-index" select="substring-before(substring-after($style,'z-index:'),';')"/>
+ <!--these are used for wrap margins get from style-->
+ <xsl:variable name="mso-wrap-distance-lefttmp" select="substring-after($style,'mso-wrap-distance-left:')"/>
+ <xsl:variable name="mso-wrap-distance-left" select="substring-before($mso-wrap-distance-lefttmp,';')"/>
+ <xsl:variable name="mso-wrap-distance-toptmp" select="substring-after($style,'mso-wrap-distance-top:')"/>
+ <xsl:variable name="mso-wrap-distance-top" select="substring-before($mso-wrap-distance-toptmp,';')"/>
+ <xsl:variable name="mso-wrap-distance-righttmp" select="substring-after($style,'mso-wrap-distance-right:')"/>
+ <xsl:variable name="mso-wrap-distance-right" select="substring-before($mso-wrap-distance-righttmp,';')"/>
+ <xsl:variable name="mso-wrap-distance-bottomtmp" select="substring-after($style,'mso-wrap-distance-bottom:')"/>
+ <xsl:variable name="mso-wrap-distance-bottom" select="substring-before($mso-wrap-distance-bottomtmp,';')"/>
+ <xsl:variable name="mso-position-horizontal-relativetmp" select="substring-after($style,'mso-position-horizontal-relative:')"/>
+ <xsl:variable name="mso-position-horizontal-relative" select="substring-before($mso-position-horizontal-relativetmp,';')"/>
+ <xsl:variable name="mso-position-vertical-relativetmp" select="substring-after($style,'mso-position-vertical-relative:')"/>
+ <xsl:variable name="mso-position-vertical-relative" select="substring-before($mso-position-vertical-relativetmp,';')"/>
+ <xsl:variable name="anchor-type">
+ <xsl:choose>
+ <xsl:when test="$mso-position-vertical-relative='page' or $mso-position-horizontal-relative = 'page'">page</xsl:when>
+ <xsl:when test="$position='absolute'">paragraph</xsl:when>
+ <xsl:otherwise>as-char</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="text-style-name">
+ <xsl:choose>
+ <xsl:when test="descendant::v:textbox">P1</xsl:when>
+ <xsl:when test="v:textpath">textpath<xsl:apply-templates mode="get-xsl-number" select="v:textpath"/>
+ </xsl:when>
+ <!--Should get the real style late-->
+ <xsl:otherwise>P1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="{$element-name}">
+ <xsl:if test="$element-name = 'draw:frame'">
+ <xsl:attribute name="draw:name">
+ <xsl:value-of select="'frame'"/>
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="v:*" format="1"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$element-name ='draw:path'">
+ <xsl:choose>
+ <xsl:when test="string-length(@path) = 0">
+ <xsl:attribute name="svg:d">M 0,0 L 0,0</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="svg:d">
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="@path"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="$element-name ='draw:path' or $wordshapename='polyline'">
+ <xsl:attribute name="svg:viewBox">
+ <xsl:value-of select="'0 0'"/>
+ <xsl:value-of select="' '"/>
+ <xsl:if test="string-length(@coordsize) = 0">
+ <xsl:value-of select="'1000 1000'"/>
+ </xsl:if>
+ <xsl:if test="not(string-length(@coordsize) = 0)">
+ <xsl:value-of select="translate(@coordsize,',',' ')"/>
+ </xsl:if>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains($style,'rotation:')">
+ <xsl:attribute name="draw:transform">
+ <xsl:variable name="rotate">
+ <xsl:call-template name="convert2redian">
+ <xsl:with-param name="x" select="substring-before(substring-after($style,'rotation:') , ';')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat( 'rotate(' , $rotate * -1 , ')' )"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="text:anchor-type">
+ <xsl:value-of select="$anchor-type"/>
+ <!--This need to be checkout and built!-->
+ </xsl:attribute>
+ <xsl:if test="string-length($z-index) &gt; 0">
+ <xsl:if test="number($z-index) &lt; 0">
+ <xsl:attribute name="draw:z-index">
+ <xsl:value-of select="'0'"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(number($z-index) &lt; 0)">
+ <xsl:attribute name="draw:z-index">
+ <xsl:value-of select="$z-index"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:attribute name="draw:style-name">Tgr<xsl:number from="/w:wordDocument/w:body" level="any" count="v:*" format="1"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:text-style-name">
+ <xsl:value-of select="$text-style-name"/>
+ <!--This is difficult!!-->
+ </xsl:attribute>
+ <xsl:if test="$wordshapename='line'">
+ <xsl:variable name="fromx" select="substring-before(@from,',')"/>
+ <xsl:variable name="fromy" select="substring-after(@from,',')"/>
+ <xsl:variable name="tox" select="substring-before(@to,',')"/>
+ <xsl:variable name="toy" select="substring-after(@to,',')"/>
+ <xsl:variable name="valfromx"> </xsl:variable>
+ <xsl:if test="$anchor-type='as-char'">
+ <xsl:attribute name="svg:x1">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$fromx"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:y1">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$fromy"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-top"/>
+ <xsl:with-param name="coord-value" select="$coord-top"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:x2">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$tox"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:y2">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$toy"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-top"/>
+ <xsl:with-param name="coord-value" select="$coord-top"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not ($anchor-type='as-char')">
+ <xsl:attribute name="svg:x1">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$fromx"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:y1">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$toy"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-top"/>
+ <xsl:with-param name="coord-value" select="$coord-top"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:x2">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$tox"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:y2">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$fromy"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-top"/>
+ <xsl:with-param name="coord-value" select="$coord-top"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="$wordshapename='rect' or $wordshapename='oval' or $wordshapename='arc' or $wordshapename='shape' or $wordshapename='polyline' or ($wordshapename='shape' and v:textbox) or ($wordshapename='roundrect' and v:textbox) ">
+ <xsl:if test="$anchor-type='as-char'">
+ <xsl:attribute name="svg:width">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$width"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:height">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$height"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:x">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$left"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:y">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$top"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-top"/>
+ <xsl:with-param name="coord-value" select="$coord-top"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not ($anchor-type='as-char')">
+ <!--Something has to be down because We have Margin-top options-->
+ <xsl:attribute name="svg:width">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$width"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:height">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$height"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:x">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$left"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="svg:y">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$top"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$MeasureMark"/>
+ <xsl:with-param name="group-value" select="$group-top"/>
+ <xsl:with-param name="coord-value" select="$coord-top"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="$element-name='draw:ellipse' and string-length($draw-kind) &gt; 0">
+ <xsl:attribute name="draw:kind">
+ <xsl:value-of select="$draw-kind"/>
+ </xsl:attribute>
+ </xsl:if>
+ <!--<draw:area-polygon … svg:x="0" svg:y="0" svg:width="2.0cm" svg:height="2.0cm" svg:viewBox="0 0 2000 2000" svg:points="400,1500 1600,1500 1000,400"/>
+ The element shown in the following example defines a triangle that is located in the middle of a 2cm by 2cm image. The bounding box covers an area of 2cm by 1.5cm. One view box unit corresponds to 0.01mm.-->
+ <xsl:if test="$wordshapename='polyline'">
+ <xsl:variable name="MeasureMark_Here" select="'cm'"/>
+ <!--MeasureMarkHere is cm because One view box unit corresponds to 0.01mm-->
+ <xsl:variable name="width_cm">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$width"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="height_cm">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$height"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="widthval">
+ <xsl:if test="contains($width_cm,'cm')">
+ <xsl:value-of select="round(substring-before($width_cm,'cm')*1000)"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="heightval">
+ <xsl:if test="contains($height_cm,'cm')">
+ <xsl:value-of select="round(substring-before($height_cm,'cm')*1000)"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="viewBoxstr" select="concat('0 0 ',$widthval,' ',$heightval)"/>
+ <xsl:attribute name="svg:viewBox">
+ <xsl:value-of select="$viewBoxstr"/>
+ </xsl:attribute>
+ <xsl:variable name="inputx_cm">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$left"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="group-value" select="$group-left"/>
+ <xsl:with-param name="coord-value" select="$coord-left"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="inputy_cm">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$top"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="group-value" select="$group-top"/>
+ <xsl:with-param name="coord-value" select="$coord-top"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="inputx_val">
+ <xsl:choose>
+ <xsl:when test="contains($inputx_cm,'cm')">
+ <xsl:value-of select="substring-before($inputx_cm,'cm')"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="inputy_val">
+ <xsl:choose>
+ <xsl:when test="contains($inputy_cm,'cm')">
+ <xsl:value-of select="substring-before($inputy_cm,'cm')"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="inputboxwidth" select="$widthval"/>
+ <xsl:variable name="oopoints">
+ <xsl:call-template name="wordpoints2oopoints">
+ <xsl:with-param name="input_x" select="$inputx_val"/>
+ <xsl:with-param name="input_y" select="$inputy_val"/>
+ <xsl:with-param name="input_width" select="$width"/>
+ <xsl:with-param name="input_height" select="$height"/>
+ <xsl:with-param name="input_boxwidth" select="$widthval"/>
+ <xsl:with-param name="input_boxheight" select="$heightval"/>
+ <xsl:with-param name="input_points" select="concat(@points,',')"/>
+ <!-- add a space to the end of input_points -->
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="string-length($oopoints) &gt; 0">
+ <xsl:attribute name="draw:points">
+ <xsl:value-of select="$oopoints"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="$is-image">
+ <xsl:variable name="the-image" select="key('imagedata',v:imagedata/@src)"/>
+ <xsl:choose>
+ <xsl:when test="string-length(v:imagedata/@o:title) &gt; 0">
+ <xsl:attribute name="draw:name">
+ <xsl:value-of select="v:imagedata/@o:title"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="string-length(parent::w:pict/o:OLEObject/@ObjectID) &gt; 0">
+ <xsl:attribute name="draw:name">
+ <xsl:value-of select="parent::w:pict/o:OLEObject/@ObjectID"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:apply-templates select="parent::w:pict/o:OLEObject" mode="output"/>
+ <draw:image>
+ <xsl:element name="office:binary-data">
+ <xsl:value-of select="translate($the-image/text(),'&#9;&#10;&#13;&#32;','' ) "/>
+ </xsl:element>
+ </draw:image>
+ </xsl:if>
+ <xsl:if test="$element-name = 'draw:custom-shape'">
+ <xsl:apply-templates select="v:textpath" mode="text-p">
+ <xsl:with-param name="type-textpath" select="key('shapetype',@type)/v:textpath[1]"/>
+ </xsl:apply-templates>
+ <xsl:element name="draw:enhanced-geometry">
+ <xsl:variable name="enhanced_path">
+ <!--enhanced_path call a template to get the enhanced-path-->
+ <xsl:choose>
+ <xsl:when test="string-length($custom_shapename) = 0">
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="@path"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:variable>
+ <!--####notice that:there is some drawing elements that don't have the shapetype so that can not have a viewbox
+ It is a ****problem**** now-so be sure to check it out.-->
+ <xsl:if test="$wordshapename='roundrect' ">
+ <xsl:variable name="tmp_MeasueMark">
+ <xsl:value-of select="'cm'"/>
+ </xsl:variable>
+ <xsl:variable name="svg_viewwidth">
+ <xsl:if test="$anchor-type='as-char'">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$width"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$tmp_MeasueMark"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="not ($anchor-type='as-char')">
+ <!--Something has to be down because We have Margin-top options-->
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$width"/>
+ <xsl:with-param name="scale" select="$x-scale"/>
+ <xsl:with-param name="MeasureMark" select="$tmp_MeasueMark"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="svg_viewheight">
+ <xsl:if test="$anchor-type='as-char'">
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$height"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$tmp_MeasueMark"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="not ($anchor-type='as-char')">
+ <!--Something has to be down because We have Margin-top options-->
+ <xsl:call-template name="convert-with-scale-and-measure">
+ <xsl:with-param name="value" select="$height"/>
+ <xsl:with-param name="scale" select="$y-scale"/>
+ <xsl:with-param name="MeasureMark" select="$tmp_MeasueMark"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="svg_viewBox">
+ <xsl:value-of select="concat( '0 0 ',substring-before($svg_viewwidth,$tmp_MeasueMark)*10000,' ',substring-before($svg_viewheight,$tmp_MeasueMark)*10000)"/>
+ </xsl:variable>
+ <xsl:attribute name="svg:viewBox">
+ <xsl:value-of select="$svg_viewBox"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($custom_shapename) &gt; 0">
+ <xsl:attribute name="draw:type">
+ <xsl:value-of select="$custom_shapename"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($enhanced_path) &gt; 0">
+ <xsl:attribute name="draw:enhanced-path">
+ <xsl:value-of select="$enhanced_path"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="typeid_adj">
+ <!--for fix the bug of version 1.63: the following discription: adj="-11796480,,5400" in OOo should be: modifier =" -11796480 0 5400"-->
+ <xsl:variable name="tmp_adj">
+ <xsl:value-of select="key('shapetype',@type)/@adj"/>
+ </xsl:variable>
+ <xsl:if test="contains($tmp_adj, ',') ">
+ <xsl:variable name="number">
+ <xsl:value-of select="string-length(translate($tmp_adj,'+-0123456789 ','' ) )"/>
+ </xsl:variable>
+ <xsl:call-template name="get_non_omit_adj">
+ <xsl:with-param name="adj_typeid" select="$tmp_adj"/>
+ <xsl:with-param name="num" select="$number"/>
+ <xsl:with-param name="mark" select="',' "/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="not (contains($tmp_adj, ',') )">
+ <xsl:value-of select="$tmp_adj"/>
+ </xsl:if>
+ </xsl:variable>
+ <!--the following choose statement code will process the revised modifier
+ It happens that if a drawing elements has more than 2 modifier, the modifier (or say adj
+ in wordml) can be adjusted and only the modified adj is recorded.
+ what makes it more compicated is that adj support both comma and blanks.
+ so you have to use kickblanks template to kick the blanks and change it to comma version.
+ <key('shapetype',@type)/v:textpath[1]-->
+ <xsl:choose>
+ <xsl:when test="string-length($typeid_adj) = 0">
+ <xsl:if test="contains(@adj,',')">
+ <!--Please Note that the modifier can be more than 2 , so use a translate can be more efficient.
+ -####Note that comma cann't be recognized by OOo's modifiers
+ <xsl:variable name="adjust-x" select="substring-before(@adj,',')"/>
+ <xsl:variable name="adjust-y" select="substring-after(@adj,',')"/>
+ <xsl:variable name="adjuststr">
+ <xsl:if test="$adjust-x and $adjust-y">
+ -####Note that comma cann't be recognized by OOo's modifiers->
+ <xsl:value-of select="concat( $adjust-x , ' ' ,$adjust-y )"/>
+ </xsl:if>
+ </xsl:variable>-->
+ <xsl:attribute name="draw:modifiers">
+ <xsl:value-of select="translate(@adj ,',' ,' ')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@adj and not(contains(@adj,','))">
+ <!--####Note that comma cann't be recognized by OOo's modifiers.-->
+ <xsl:attribute name="draw:modifiers">
+ <xsl:value-of select="@adj"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!--Means that you have to care about 2 adj parameters which is defferent-->
+ <xsl:variable name="mark_used_by_typeid">
+ <xsl:if test="contains($typeid_adj, ',' )">
+ <xsl:value-of select="',' "/>
+ </xsl:if>
+ <xsl:if test="not (contains( $typeid_adj, ',' ) ) ">
+ <xsl:value-of select="' ' "/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="@adj">
+ <xsl:variable name="remained_adj">
+ <xsl:if test="contains(@adj,',' ) ">
+ <xsl:variable name="number">
+ <xsl:value-of select="string-length(translate(@adj,'+-0123456789 ','' ) )"/>
+ </xsl:variable>
+ <xsl:call-template name="get_remained_adj">
+ <xsl:with-param name="adj_typeid" select="$typeid_adj"/>
+ <xsl:with-param name="num" select="$number+1"/>
+ <xsl:with-param name="mark" select="$mark_used_by_typeid"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="not (contains(@adj,',' ) ) ">
+ <xsl:variable name="tmp_str_adj">
+ <xsl:call-template name="kickblanks">
+ <xsl:with-param name="str" select="concat(' ' ,@adj,' ')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="number">
+ <xsl:value-of select="string-length(translate($tmp_str_adj,'+-0123456789','' ) )"/>
+ </xsl:variable>
+ <xsl:call-template name="get_remained_adj">
+ <xsl:with-param name="adj_typeid" select="$typeid_adj"/>
+ <xsl:with-param name="num" select="$number - 1"/>
+ <xsl:with-param name="mark" select="$mark_used_by_typeid "/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:attribute name="draw:modifiers">
+ <xsl:value-of select="translate(concat(@adj ,',' ,$remained_adj), ',' ,' ' )"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="contains($typeid_adj,',')">
+ <xsl:attribute name="draw:modifiers">
+ <xsl:value-of select="translate($typeid_adj ,',' ,' ')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="not(contains($typeid_adj,','))">
+ <xsl:attribute name="draw:modifiers">
+ <xsl:value-of select="$typeid_adj"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@type">
+ <xsl:apply-templates select="v:textpath" mode="output">
+ <xsl:with-param name="type-textpath" select="key('shapetype',@type)/v:textpath[1]"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="key('shapetype',@type)" mode="output">
+ <xsl:with-param name="instance" select="."/>
+ </xsl:apply-templates>
+ </xsl:if>
+ </xsl:element>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="$wordshapename='shape' and v:textbox and $element-name='draw:frame' ">
+ <xsl:element name="draw:text-box">
+ <xsl:apply-templates select="v:textbox/w:txbxContent/w:p"/>
+ </xsl:element>
+ </xsl:when>
+ <!--It is a case statement for all shapes,so we add v:roundrect here.-->
+ <xsl:when test="$wordshapename='roundrect' and v:textbox and $element-name='draw:frame' ">
+ <xsl:element name="draw:text-box">
+ <xsl:apply-templates select="v:textbox/w:txbxContent/w:p"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="v:textbox">
+ <xsl:apply-templates select="v:textbox/w:txbxContent/w:p"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="w:docOleData" mode="init">
+ <xsl:apply-templates select="w:binData[@w:name='oledata.mso']" mode="oledata.mso"/>
+ </xsl:template>
+ <xsl:template match="w:binData" mode="oledata.mso">
+ <xsl:variable name="tmp" select="ole:insertByName('oledata.mso', translate(text(),'&#10;&#13;&#32;','' ) )"/>
+ </xsl:template>
+ <xsl:template match="o:OLEObject " mode="output">
+ <!-- depends on i43230,we can uncomment this code or find another way after i43230 got fixed -->
+ <draw:object-ole>
+ <xsl:element name="office:binary-data">
+ <xsl:value-of select="translate(ole:getByName(@ObjectID),'&#13;','')"/>
+ </xsl:element>
+ </draw:object-ole>
+ </xsl:template>
+ <xsl:template name="get-vml-value">
+ <xsl:param name="node1" select="''"/>
+ <xsl:param name="property-name"/>
+ <xsl:variable name="pn" select="concat(';',$property-name, ':')"/>
+ <xsl:choose>
+ <xsl:when test="string-length(@*[name() = $property-name]) &gt; 0">
+ <xsl:value-of select="@*[name() = $property-name]"/>
+ </xsl:when>
+ <xsl:when test="string-length(@style) &gt; 0 and contains(concat(';',translate(@style,' ','')),$pn)">
+ <xsl:value-of select=" substring-before( concat(substring-after(concat(';',translate($node1/@style,' ','')) , $pn),';') , ';') "/>
+ </xsl:when>
+ <xsl:when test="$node1 and string-length($node1/@*[name() = $property-name]) &gt; 0">
+ <xsl:value-of select="$node1/@*[name() = $property-name]"/>
+ </xsl:when>
+ <xsl:when test="$node1 and string-length($node1/@style) &gt; 0 and contains(concat(';',translate($node1/@style,' ','')),$pn)">
+ <xsl:value-of select=" substring-before( concat(substring-after(concat(';',translate($node1/@style,' ','')) , $pn),';') , ';') "/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="v:textpath" mode="text-p">
+ <xsl:param name="type-textpath" select="''"/>
+ <xsl:variable name="the-string">
+ <xsl:call-template name="get-vml-value">
+ <xsl:with-param name="node1" select="$type-textpath"/>
+ <xsl:with-param name="property-name" select="'string'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="style-name">
+ <xsl:value-of select="'textpath'"/>
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="v:textpath" format="1"/>
+ </xsl:variable>
+ <text:p text:style-name="{$style-name}">
+ <xsl:value-of select="$the-string"/>
+ </text:p>
+ </xsl:template>
+ <xsl:template match="v:textpath" mode="style">
+ <xsl:if test="contains(@style,'font-family:')">
+ <xsl:variable name="style-name">
+ <xsl:value-of select="'textpath'"/>
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="v:textpath" format="1"/>
+ </xsl:variable>
+ <xsl:variable name="font-family">
+ <!-- we need remove the addtional &quot; from font-family -->
+ <xsl:value-of select="translate(substring-before(substring-after(@style,'font-family:'),';'), '&quot;' ,'')"/>
+ </xsl:variable>
+ <xsl:variable name="font-size">
+ <xsl:choose>
+ <xsl:when test="contains(@style,'font-size:')">
+ <xsl:value-of select="substring-before(substring-after(@style,'font-size:'),';')"/>
+ </xsl:when>
+ <xsl:otherwise>36pt</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <style:style style:name="{$style-name}" style:family="paragraph">
+ <style:paragraph-properties text:enable-numbering="false" style:writing-mode="lr-tb"/>
+ <style:text-properties fo:font-family="{$font-family}" fo:font-size="{$font-size}" style:font-family-generic="roman" style:text-scale="80%"/>
+ </style:style>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="v:textpath" mode="output">
+ <xsl:param name="type-textpath" select="''"/>
+ <xsl:variable name="on">
+ <xsl:call-template name="get-vml-value">
+ <xsl:with-param name="node1" select="$type-textpath"/>
+ <xsl:with-param name="property-name" select="'on'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="starts-with($on,'t')">
+ <xsl:attribute name="draw:text-path">true</xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="fitshape">
+ <xsl:call-template name="get-vml-value">
+ <xsl:with-param name="node1" select="$type-textpath"/>
+ <xsl:with-param name="property-name" select="'fitshape'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="fitpath">
+ <xsl:call-template name="get-vml-value">
+ <xsl:with-param name="node1" select="$type-textpath"/>
+ <xsl:with-param name="property-name" select="'fitpath'"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="draw:type">fontwork-plain-text</xsl:attribute>
+ <xsl:attribute name="draw:text-path-mode">
+ <xsl:choose>
+ <xsl:when test="starts-with($fitpath,'t') ">path</xsl:when>
+ <xsl:when test="starts-with($fitshape,'t') ">shape</xsl:when>
+ <xsl:otherwise>normal</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="draw:text-path-scale">path</xsl:attribute>
+ <!-- xsl:attribute name="draw:text-path-same-letter-heights">false</xsl:attribute -->
+ <!-- xsl:attribute name="draw:text-path-scale-x">false</xsl:attribute -->
+ </xsl:template>
+ <xsl:template match="v:shapetype" mode="output">
+ <xsl:param name="instance" select="''"/>
+ <!--#Dummy after version 1.63 The following test is for the adj attribute of the file. It is Dummy now.
+ <xsl:if test="not($instance/@adj)">
+ <xsl:if test="contains(@adj,',')">-->
+ <!--Please Note that the modifier can be more than 2 , so use a translate can be more efficient.
+ -####Note that comma cann't be recognized by OOo's modifiers
+ <xsl:variable name="adjust-x" select="substring-before(@adj,',')"/>
+ <xsl:variable name="adjust-y" select="substring-after(@adj,',')"/>
+ <xsl:variable name="adjuststr">
+ <xsl:if test="$adjust-x and $adjust-y">
+ < -####Note that comma cann't be recognized by OOo's modifiers.->
+ <xsl:value-of select="concat( $adjust-x , ' ' ,$adjust-y )"/>
+ </xsl:if>
+ </xsl:variable>-->
+ <!--Dummy after version 1.63 <xsl:attribute name="draw:modifiers">
+ <xsl:value-of select="translate(@adj, ',' , ' ' )"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@adj and not(contains(@adj,','))">-->
+ <!--####Note that comma cann't be recognized by OOo's modifiers.-->
+ <!--Dummy after version 1.63 <xsl:attribute name="draw:modifiers">
+ <xsl:value-of select="@adj"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>-->
+ <xsl:variable name="viewbox">
+ <xsl:value-of select="'0 0'"/>
+ <xsl:value-of select="' '"/>
+ <xsl:if test="string-length(@coordsize) = 0">
+ <xsl:value-of select="'1000 1000'"/>
+ </xsl:if>
+ <xsl:if test="not(string-length(@coordsize) = 0)">
+ <xsl:value-of select="translate(@coordsize,',',' ')"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:attribute name="svg:viewBox">
+ <xsl:value-of select="$viewbox"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:text-areas">
+ <xsl:value-of select="$viewbox"/>
+ </xsl:attribute>
+ <!-- This path need be output is instance does not have a path-->
+ <xsl:if test="not($instance/@path) and string-length(@path) &gt;0">
+ <xsl:attribute name="draw:enhanced-path">
+ <!--<xsl:call-template name="vmlpath2svgpath">rrrrrrevised-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="@path"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates select="v:formulas | v:handles" mode="output"/>
+ </xsl:template>
+ <xsl:template match="v:formulas" mode="output">
+ <xsl:apply-templates select="v:f" mode="output"/>
+ </xsl:template>
+ <xsl:template match="v:f" mode="output">
+ <xsl:element name="draw:equation">
+ <xsl:attribute name="draw:formula">
+ <xsl:call-template name="v-formula2o-formula">
+ <xsl:with-param name="v-formula" select="@eqn"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:attribute name="draw:name">
+ <xsl:value-of select="'f'"/>
+ <xsl:variable name="the-number">
+ <xsl:number format="1" level="single"/>
+ </xsl:variable>
+ <xsl:value-of select="$the-number - 1"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="v-formula2o-formula">
+ <xsl:param name="v-formula"/>
+ <xsl:variable name="command" select="substring-before(normalize-space($v-formula), ' ')"/>
+ <xsl:variable name="tmp" select="normalize-space(substring-after($v-formula, $command ))"/>
+ <xsl:variable name="step1">
+ <xsl:choose>
+ <xsl:when test="$command ='val'">
+ <xsl:value-of select="$tmp"/>
+ </xsl:when>
+ <!-- (sum a b c) = (a + b - c)-->
+ <xsl:when test="$command = 'sum' ">
+ <xsl:call-template name="replace-space">
+ <xsl:with-param name="value" select="$tmp"/>
+ <xsl:with-param name="replace1" select="'+'"/>
+ <xsl:with-param name="replace2" select="'-'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- (prod a b c) = (a * b / c)-->
+ <xsl:when test="$command = 'prod'">
+ <xsl:call-template name="replace-space">
+ <xsl:with-param name="value" select="$tmp"/>
+ <xsl:with-param name="replace1" select="'*'"/>
+ <xsl:with-param name="replace2" select="'/'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!-- (mid a b) = ((a + b) / 2)-->
+ <xsl:when test="$command = 'mid'">
+ <xsl:value-of select="concat('(' , translate($tmp,' ', '+') , ') / 2' )"/>
+ </xsl:when>
+ <!-- (if a b c) = (a>0? b : c) Conditional testing. -->
+ <xsl:when test="$command = 'if' ">
+ <xsl:value-of select="concat('if(' , translate($tmp,' ', ',') , ')' )"/>
+ </xsl:when>
+ <!-- (min a b) = (min (a , b) )-->
+ <!-- (max a b) = (max (a , b) )-->
+ <xsl:when test="$command = 'min' or $command = 'max'">
+ <xsl:value-of select="concat($command, '(' , translate($tmp,' ', ',') , ')' )"/>
+ </xsl:when>
+ <xsl:when test="$command = 'abs' or $command = 'sqrt'">
+ <xsl:value-of select="concat($command, '(' , $tmp , ')' )"/>
+ </xsl:when>
+ <!-- sin(a,b) = a*sin(b) -->
+ <xsl:when test="$command = 'sin' or $command = 'cos' or $command = 'tan' ">
+ <!-- atan is not this kind 2 $command = 'atan2' "-->
+ <xsl:variable name="value1" select="substring-before($tmp,' ')"/>
+ <xsl:variable name="value2" select="substring-after($tmp,' ')"/>
+ <xsl:value-of select="concat( $value1 , ' * ' , $command, '(' , $value2 , ')' )"/>
+ </xsl:when>
+ <!-- -->
+ <xsl:when test="$command = 'atan2' ">
+ <xsl:variable name="value1" select="substring-before($tmp,' ')"/>
+ <xsl:variable name="value2" select="substring-after($tmp,' ')"/>
+ <xsl:value-of select="concat( $command , '( ' , $value2, ',' , $value1 , ')' )"/>
+ </xsl:when>
+ <!-- -->
+ <!--><xsl:when test="$command = 'atan2' ">
+ <xsl:variable name="value1" select="substring-before($tmp,' ')"/>
+ <xsl:variable name="value2" select="substring-after($tmp,' ')"/>
+ <xsl:value-of select="concat( 'atan' , '( ' , $value2, '/' , $value1 , ')' )"/>
+ </xsl:when><- -->
+ <!-- ellipse and sumangle are always used by arc commans like this
+ eqn="ellipse @24 @4 height" ; and eqn="sumangle @2 360 0"
+ mod is always used too.-->
+ <!--mod =sqrt( v*v + P1×P1 + P2×P2). ( 3 parameters )-->
+ <xsl:when test="$command='mod' ">
+ <xsl:variable name="value1" select="substring-before($tmp,' ')"/>
+ <xsl:variable name="value2" select="substring-before(substring-after($tmp,' '), ' ')"/>
+ <xsl:variable name="value3" select="substring-after(substring-after($tmp,' '), ' ')"/>
+ <xsl:value-of select="concat( 'sqrt( ' , $value3, ' * ',$value3, ' + ' ,$value2, ' * ' ,$value2, ' + ' ,$value1, ' * ', $value1, ' )' )"/>
+ </xsl:when>
+ <!--ellipse= P2* sqrt(1 - v*v /P1*P1) ( 3 parameters )-->
+ <xsl:when test="$command='ellipse' ">
+ <xsl:variable name="value1" select="substring-before($tmp,' ')"/>
+ <xsl:variable name="value2" select="substring-before(substring-after($tmp,' '), ' ')"/>
+ <xsl:variable name="value3" select="substring-after(substring-after($tmp,' '), ' ')"/>
+ <xsl:value-of select="concat( $value3 , ' * sqrt( ' , $value2 , ' * ' , $value2, ' - ',$value1 , ' * ', $value1, ' )' ,'/',$value2 )"/>
+ </xsl:when>
+ <!--sumangle =v + P1×2^16 - P2×2^16. ( 3 parameters )-->
+ <!--<xsl:when test="$command='sumangle' ">
+ <xsl:variable name="value1" select="substring-before($tmp,' ')"/>
+ <xsl:variable name="value2" select="substring-before(substring-after($tmp,' '), ' ')"/>
+ <xsl:variable name="value3" select="substring-after(substring-after($tmp,' '), ' ')"/>
+ <xsl:value-of select="concat( $value1 , '+' , $value2 , ' * ' , '65535',' + ', $value2,' - ' ,$value3 , ' * ', '65535', ' - ', $value3)"/>
+ </xsl:when>-->
+ <!--sumangle =v + P1×2^16 - P2×2^16. ( 3 parameters )-->
+ <xsl:when test="$command='sumangle' ">
+ <xsl:variable name="value1" select="substring-before($tmp,' ')"/>
+ <xsl:variable name="value2" select="substring-before(substring-after($tmp,' '), ' ')"/>
+ <xsl:variable name="value3" select="substring-after(substring-after($tmp,' '), ' ')"/>
+ <xsl:value-of select="concat( $value1 , '+' , $value2 , '*pi/180',' - ' ,$value3 , '*pi/180' )"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>Find a unsupported formule:<xsl:value-of select="$v-formula"/>
+ </xsl:message>
+ <!--<xsl:value-of select="'0'"/><-for release use-->
+ <xsl:value-of select="concat('not found this:', $v-formula)"/>
+ <!--for Debug use-->
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="step2">
+ <xsl:value-of select="translate($step1,'#','$')"/>
+ </xsl:variable>
+ <xsl:call-template name="replace-at">
+ <xsl:with-param name="value" select="$step2"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template name="replace-space">
+ <xsl:param name="value"/>
+ <xsl:param name="replace1"/>
+ <xsl:param name="replace2"/>
+ <xsl:value-of select=" concat( substring-before($value,' ') , $replace1, translate(substring-after($value,' '), ' ', $replace2 ) ) "/>
+ </xsl:template>
+ <xsl:template name="replace-at">
+ <xsl:param name="value"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:choose>
+ <xsl:when test="string-length($value) &lt; $position">
+ <xsl:value-of select="$value"/>
+ </xsl:when>
+ <xsl:when test="substring($value,$position,1) = '@'">
+ <xsl:call-template name="replace-at">
+ <xsl:with-param name="value" select="concat(substring($value,1,$position -1) , '?f' , substring($value,$position+1)) "/>
+ <xsl:with-param name="position" select="$position + 2"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="replace-at">
+ <xsl:with-param name="value" select="$value"/>
+ <xsl:with-param name="position" select="$position + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test=" substring($value,$position,1) = '@'">
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="v:handles" mode="output">
+ <xsl:apply-templates select="v:h" mode="output"/>
+ </xsl:template>
+ <xsl:template match="v:h" mode="output">
+ <xsl:element name="draw:handle">
+ <xsl:if test="@position">
+ <xsl:attribute name="draw:handle-position">
+ <xsl:value-of select="translate(@position,'#,' , '$ ')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@switch">
+ <xsl:attribute name="draw:handle-switched">
+ <xsl:value-of select="@switch"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@xrange">
+ <xsl:attribute name="draw:handle-range-x-maximum">
+ <xsl:value-of select="substring-after(@xrange,',')"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:handle-range-x-minimum">
+ <xsl:value-of select="substring-before(@xrange,',')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="@yrange">
+ <xsl:attribute name="draw:handle-range-y-maximum">
+ <xsl:value-of select="substring-after(@yrange,',')"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:handle-range-y-minimum">
+ <xsl:value-of select="substring-before(@yrange,',')"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <!--this template map word's points to svg:viewbox's point they are quite differect because word's use pt but svg's use 0.001cm as a unit-->
+ <xsl:template name="wordpoints2oopoints">
+ <xsl:param name="input_points"/>
+ <xsl:param name="input_x"/>
+ <xsl:param name="input_y"/>
+ <xsl:param name="input_width"/>
+ <xsl:param name="input_height"/>
+ <xsl:param name="input_boxwidth"/>
+ <xsl:param name="input_boxheight"/>
+ <xsl:variable name="ptx" select="substring-before($input_points,',')"/>
+ <xsl:variable name="tempstr" select="substring-after($input_points,',')"/>
+ <xsl:variable name="pty" select="substring-before($tempstr,',')"/>
+ <xsl:variable name="nextinput" select="substring-after ($tempstr,',')"/>
+ <xsl:if test="$ptx and $pty">
+ <xsl:variable name="val_ptx">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="$ptx"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="val_pty">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="$pty"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="round( $input_boxwidth - ( $val_ptx - $input_x ) * 1000 )"/>
+ <xsl:value-of select="','"/>
+ <xsl:value-of select="round( ( $val_pty - $input_y ) * 1000 )"/>
+ </xsl:if>
+ <xsl:if test="contains($nextinput,',')">
+ <xsl:value-of select="' '"/>
+ <!--Leave a blank first as mark of points group-->
+ <xsl:call-template name="wordpoints2oopoints">
+ <xsl:with-param name="input_points" select="$nextinput"/>
+ <xsl:with-param name="input_x" select="$input_x"/>
+ <xsl:with-param name="input_y" select="$input_y"/>
+ <xsl:with-param name="input_width" select="$input_width"/>
+ <xsl:with-param name="input_height" select="$input_height"/>
+ <xsl:with-param name="input_boxwidth" select="$input_boxwidth"/>
+ <xsl:with-param name="input_boxheight" select="$input_boxheight"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <!--template MapConstColor:input is a color in form of const e.g 'red' or number e.g '#ff0010' output is a number color-->
+ <xsl:template name="MapConstColor">
+ <xsl:param name="color"/>
+ <xsl:choose>
+ <xsl:when test="$color='black'">#000000</xsl:when>
+ <xsl:when test="$color='olive'">#808000</xsl:when>
+ <xsl:when test="$color='red'">#ff0000</xsl:when>
+ <xsl:when test="$color='teal'">#008080</xsl:when>
+ <xsl:when test="$color='green'">#00ff00</xsl:when>
+ <xsl:when test="$color='gray'">#808080</xsl:when>
+ <xsl:when test="$color='blue'">#0000ff</xsl:when>
+ <xsl:when test="$color='navy'">#000080</xsl:when>
+ <xsl:when test="$color='white'">#ffffff</xsl:when>
+ <xsl:when test="$color='lime'">#00ff00</xsl:when>
+ <xsl:when test="$color='yellow'">#ffff00</xsl:when>
+ <xsl:when test="$color='fuchsia'">#ff00ff</xsl:when>
+ <xsl:when test="$color='purple'">#800080</xsl:when>
+ <xsl:when test="$color='aqua'">#00ffff</xsl:when>
+ <xsl:when test="$color='maroon'">#800000</xsl:when>
+ <xsl:when test="$color='silver'">#c0c0c0</xsl:when>
+ <xsl:when test="$color='window'">#ffffff</xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="string-length($color) =7">
+ <xsl:value-of select="$color"/>
+ </xsl:when>
+ <xsl:when test="string-length($color) =4">
+ <!--short form representation of color-->
+ <xsl:variable name="valr">
+ <xsl:value-of select="concat(substring($color,2,1),substring($color,2,1))"/>
+ <!--<xsl:call-template name="shortcolorconv"><xsl:with-param name="value" select="substring($color,2,1)"/></xsl:call-template>-->
+ </xsl:variable>
+ <xsl:variable name="valg" select="concat(substring($color,3,1),substring($color,3,1))"/>
+ <xsl:variable name="valb" select="concat(substring($color,4,1),substring($color,4,1))"/>
+ <xsl:value-of select="concat('#',$valr,$valg,$valb)"/>
+ </xsl:when>
+ <xsl:otherwise>#000000</xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="shortcolorconv">
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="$value='1'">11</xsl:when>
+ <xsl:when test="$value='2'">22</xsl:when>
+ <xsl:when test="$value='3'">33</xsl:when>
+ <xsl:when test="$value='4'">44</xsl:when>
+ <xsl:when test="$value='5'">55</xsl:when>
+ <xsl:when test="$value='6'">66</xsl:when>
+ <xsl:when test="$value='7'">77</xsl:when>
+ <xsl:when test="$value='8'">88</xsl:when>
+ <xsl:when test="$value='9'">99</xsl:when>
+ <xsl:when test="$value='a'">aa</xsl:when>
+ <xsl:when test="$value='b'">bb</xsl:when>
+ <xsl:when test="$value='c'">cc</xsl:when>
+ <xsl:when test="$value='d'">dd</xsl:when>
+ <xsl:when test="$value='e'">ee</xsl:when>
+ <xsl:when test="$value='f'">ff</xsl:when>
+ <!--I just guess it, maybe it is not right-->
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="MapArrowStyle">
+ <!--What is a block?normal arrow?-->
+ <xsl:param name="arrow-name"/>
+ <xsl:choose>
+ <xsl:when test="$arrow-name = 'Block' ">Arrow</xsl:when>
+ <xsl:when test="$arrow-name = 'Diamond' ">Square</xsl:when>
+ <xsl:when test="$arrow-name = 'Open' ">Line Arrow</xsl:when>
+ <xsl:when test="$arrow-name = 'Oval' ">Circle</xsl:when>
+ <xsl:when test="$arrow-name = 'Diamond' ">Square 45</xsl:when>
+ <xsl:when test="$arrow-name = 'Classic' ">Arrow concave</xsl:when>
+ <xsl:otherwise>Arrow</xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="Add-with-Measure">
+ <xsl:param name="value1"/>
+ <xsl:param name="value2"/>
+ <xsl:variable name="Current-MeasureMark">
+ <xsl:choose>
+ <xsl:when test="string-length(translate($value1 ,'-.0123456789 ','' )) &gt; 0">
+ <xsl:value-of select="translate($value1 ,'-.0123456789 ','' )"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate($value2 ,'-.0123456789 ','' )"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="number-value1">
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="$value1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="number-value2">
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="$value2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat( $number-value1 + $number-value2 , $Current-MeasureMark)"/>
+ </xsl:template>
+ <xsl:template name="convert-with-scale-and-measure">
+ <xsl:param name="value"/>
+ <xsl:param name="group-value" select="0"/>
+ <xsl:param name="coord-value" select="0"/>
+ <xsl:param name="scale" select="1"/>
+ <xsl:param name="MeasureMark" select="''"/>
+ <xsl:param name="Target-Measure" select="''"/>
+ <xsl:variable name="Current-MeasureMark">
+ <xsl:choose>
+ <xsl:when test="not (translate($value ,'-. 0123456789 ','' ) = '') ">
+ <xsl:value-of select="translate($value ,'-. 0123456789 ','' ) "/>
+ </xsl:when>
+ <xsl:when test="string-length($MeasureMark) &gt; 0">
+ <xsl:value-of select="$MeasureMark"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate($value ,'-. 0123456789 ','' ) "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="number-value">
+ <xsl:call-template name="get-number">
+ <xsl:with-param name="value" select="$value"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="value-string" select="( $number-value - $coord-value) div $scale + $group-value"/>
+ <xsl:choose>
+ <xsl:when test="$value-string = 0">0cm</xsl:when>
+ <xsl:when test="$Target-Measure = $Current-MeasureMark">
+ <xsl:value-of select="concat($value-string , $Current-MeasureMark)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat($value-string , $Current-MeasureMark)"/>
+ </xsl:call-template>
+ <xsl:value-of select=" 'cm' "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-number">
+ <xsl:param name="value"/>
+ <xsl:choose>
+ <xsl:when test="translate($value,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','') = '' ">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="number(translate($value,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',''))"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo_field.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo_field.xsl
new file mode 100644
index 000000000000..6c77f63e66a6
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo_field.xsl
@@ -0,0 +1,1587 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt fo v">
+ <!--Generally, The MS fields can be represented in two forms, simple field w:fldsimple or complicated field
+ w:fldChar, so when importing we have to take care of two possible forms of the same type field -->
+ <xsl:template match="w:instrText">
+ <!-- ===this template is to process the w:fldChar fields ====== -->
+ <xsl:choose>
+ <xsl:when test="substring(normalize-space(.),1,7) = 'PAGEREF' ">
+ <xsl:variable name="bookmarkname">
+ <xsl:value-of select="normalize-space(substring-before (substring-after( . , 'PAGEREF' ), '\*')) "/>
+ </xsl:variable>
+ <text:bookmark-ref text:reference-format="page" text:ref-name="{$bookmarkname}">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </text:bookmark-ref>
+ </xsl:when>
+ <xsl:when test="substring( normalize-space(.),1,9) = 'HYPERLINK' ">
+ <xsl:variable name="hyper-str" select="normalize-space(.)"/>
+ <xsl:variable name="hyper-dest" select="substring-before( substring($hyper-str, 12), '&quot;')"/>
+ <xsl:variable name="hyper-bookmark">
+ <xsl:if test="contains( $hyper-str, ' \l ')">
+ <xsl:value-of select="concat( '#', substring-before( substring-after( substring-after( $hyper-str, ' \l '), '&quot;'), '&quot;') )"/>
+ </xsl:if>
+ </xsl:variable>
+ <text:a xlink:type="simple" xlink:href="{concat( $hyper-dest, $hyper-bookmark)}">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </text:a>
+ </xsl:when>
+ <xsl:when test="substring( normalize-space(.),1,3) = 'REF' ">
+ <text:bookmark-ref text:reference-format="text" text:ref-name="{normalize-space( substring-before (substring-after(text(), 'REF') , '\') )}">
+
+ </text:bookmark-ref>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,4) = 'DATE' or substring(normalize-space(.),1,4) = 'TIME' ">
+ <text:date>
+ <xsl:choose>
+ <xsl:when test="contains(text(), '\@')">
+ <xsl:attribute name="style:data-style-name">ND<xsl:number count="w:instrText | w:fldSimple" from="/w:wordDocument/w:body" level="any" format="1"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:data-style-name"><xsl:value-of select=" 'NDF1' "/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </text:date>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,9) = 'PRINTDATE' ">
+ <text:print-date>
+ <xsl:choose>
+ <xsl:when test="contains(text(), '\@')">
+ <xsl:attribute name="style:data-style-name">ND<xsl:number count="w:instrText | w:fldSimple" from="/w:wordDocument/w:body" level="any" format="1"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:data-style-name"><xsl:value-of select=" 'NDF1' "/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </text:print-date>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,10) = 'CREATEDATE' ">
+ <text:creation-date>
+ <xsl:choose>
+ <xsl:when test="contains(text(), '\@')">
+ <xsl:attribute name="style:data-style-name">ND<xsl:number count="w:instrText | w:fldSimple" from="/w:wordDocument/w:body" level="any" format="1"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:data-style-name"><xsl:value-of select=" 'NDF1' "/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </text:creation-date>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,8) = 'SAVEDATE' ">
+ <text:modification-date>
+ <xsl:choose>
+ <xsl:when test="contains(text(), '\@')">
+ <xsl:attribute name="style:data-style-name">ND<xsl:number count="w:instrText | w:fldSimple" from="/w:wordDocument/w:body" level="any" format="1"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:data-style-name"><xsl:value-of select=" 'NDF1' "/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </text:modification-date>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,4) = 'PAGE' ">
+ <text:page-number text:select-page="current">
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(text(), '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:page-number>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,8) = 'NUMPAGES' ">
+ <text:page-count>
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(text(), '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:page-count>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,8) = 'NUMWORDS' ">
+ <text:word-count>
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(text(), '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:word-count>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,8) = 'NUMCHARS' ">
+ <text:character-count>
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(text(), '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:character-count>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,6) = 'REVNUM' ">
+ <text:editing-cycles>
+ <xsl:value-of select="w:r"/>
+ </text:editing-cycles>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,7) = 'AUTONUM' or substring(normalize-space(.),1,10) = 'AUTONUMLGL' or substring(normalize-space(.),1,10) = 'AUTONUMOUT' ">
+ <text:sequence>
+ <xsl:attribute name="text:ref-name">RefAutoNum<xsl:number count="w:instrText[contains(text(), 'AUTONUM') or contains(text(), 'AUTONUMLGL') or contains( text(), 'AUTONUMOUT') ] | w:fldSimple[contains(@w:instr,'AUTONUM') or contains(@w:instr, 'AUTONUMLGL') or contains(@w:instr, 'AUTONUMOUT') ] " from="/w:wordDocument/w:body" level="any" format="1"/></xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select=" 'AutoNr' "/></xsl:attribute>
+ <xsl:attribute name="text:formula"><xsl:value-of select=" 'ooow:AutoNr + 1' "/></xsl:attribute>
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(text(), '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:sequence>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,3) = 'SEQ' ">
+ <text:sequence>
+ <xsl:attribute name="text:ref-name">Ref<xsl:number count="w:instrText[contains(text(), 'SEQ') ] | w:fldSimple[contains(@w:instr,'SEQ') ] " from="/w:wordDocument/w:body" level="any" format="1"/></xsl:attribute>
+ <xsl:variable name="seq_text_name">
+ <xsl:call-template name="get_seq_name">
+ <xsl:with-param name="input_seq_string" select="normalize-space(substring-after(text(), 'SEQ'))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="text:name"><xsl:value-of select="$seq_text_name"/></xsl:attribute>
+ <xsl:attribute name="text:formula"><xsl:value-of select="concat (concat('ooow:',$seq_text_name), ' + 1' )"/></xsl:attribute>
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(text(), '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:sequence>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,6) = 'AUTHOR' ">
+ <text:initial-creator>
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </text:initial-creator>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,5) = 'TITLE' ">
+ <text:title>
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </text:title>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,7) = 'SUBJECT' ">
+ <text:subject>
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </text:subject>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,8) = 'KEYWORDS' ">
+ <text:keywords>
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </text:keywords>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,6) = 'FILLIN' ">
+ <text:text-input>
+ <xsl:attribute name="text:description"><xsl:value-of select="substring-before(substring-after(text(), 'FILLIN'), '\*')"/></xsl:attribute>
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </text:text-input>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,11) = 'DOCPROPERTY' ">
+ <xsl:variable name="instr_command">
+ <xsl:value-of select="normalize-space (substring-after(text(), 'DOCPROPERTY' ))"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($instr_command, 'Author' ) ">
+ <text:user-field-get text:name="Author">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Bytes' ) ">
+ <text:user-field-get text:name="Bytes">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'CharactersWithSpaces' ) ">
+ <text:user-field-get text:name="CharactersWithSpaces">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Category' ) ">
+ <text:user-field-get text:name="Category">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Characters' ) ">
+ <text:user-field-get text:name="Characters">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Comments' ) ">
+ <text:user-field-get text:name="Comments">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Company' ) ">
+ <text:user-field-get text:name="Company">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'CreateTime' ) ">
+ <text:user-field-get text:name="CreateTime">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'HyperlinkBase' ) ">
+ <text:user-field-get text:name="HyperlinkBase">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Keywords' ) ">
+ <text:user-field-get text:name="Keywords">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'LastPrinted' ) ">
+ <text:user-field-get text:name="LastPrinted">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'LastSavedBy' ) ">
+ <text:user-field-get text:name="LastSavedBy">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'LastSavedTime' ) ">
+ <text:user-field-get text:name="LastSavedTime">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Lines' ) ">
+ <text:user-field-get text:name="Lines">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Manager' ) ">
+ <text:user-field-get text:name="Manager">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'NameofApplication' ) ">
+ <text:user-field-get text:name="NameofApplication">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'ODMADocId' ) ">
+ <text:user-field-get text:name="ODMADocId">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Pages' ) ">
+ <text:user-field-get text:name="Pages">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Paragraphs' ) ">
+ <text:user-field-get text:name="Paragraphs">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'RevisionNumber' ) ">
+ <text:user-field-get text:name="RevisionNumber">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Security' ) ">
+ <text:user-field-get text:name="Security">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Subject' ) ">
+ <text:user-field-get text:name="Subject">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Template' ) ">
+ <text:user-field-get text:name="Template">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Title' ) ">
+ <text:user-field-get text:name="Title">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'TotalEditingTime' ) ">
+ <text:user-field-get text:name="TotalEditingTime">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Words' ) ">
+ <text:user-field-get text:name="Words">
+ </text:user-field-get>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,10) = 'MERGEFIELD' ">
+ <text:database-display text:database-name="" text:table-name="" text:table-type="table">
+ <xsl:attribute name="text:column-name"><xsl:value-of select="substring-before(substring-after(normalize-space(.), 'MERGEFIELD' ), ' ' ) "/></xsl:attribute>
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </text:database-display>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,8) = 'MERGEREC' ">
+ <text:database-row-number text:database-name="" text:table-name="" text:table-type="table" style:num-format="A" text:value="0">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </text:database-row-number>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(.),1,4) = 'NEXT' ">
+ <text:database-next text:database-name="" text:table-name="" text:table-type="table" text:condition="">
+ </text:database-next>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="w:fldChar">
+ <!-- for complicated field w:fldChar, we only process the w:instrText, please see the template processing w:instrText -->
+ </xsl:template>
+ <xsl:template name="get-fldchar-content">
+ <!-- this template is to get the content of fldchar in-between w:instrText and w:fldChar/@w:fldCharType ='end' -->
+ <xsl:param name="next_node"/>
+ <xsl:param name="sibling_number"/>
+ <xsl:if test="not ($next_node/w:fldChar/@w:fldCharType ='end' ) and $next_node ">
+ <xsl:if test="$next_node/w:br">
+ <xsl:text>&#x0A;</xsl:text>
+ </xsl:if>
+ <xsl:value-of select="$next_node//w:t"/>
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[$sibling_number + 1]"/>
+ <xsl:with-param name="sibling_number" select="$sibling_number + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <!-- ====== this template is to process the w:fldsimple fields ======= -->
+ <xsl:template match="w:fldSimple">
+ <xsl:choose>
+ <xsl:when test="substring(normalize-space(@w:instr),1,7) = 'PAGEREF' ">
+ <xsl:variable name="bookmarkname">
+ <xsl:value-of select="normalize-space(substring-before (substring-after( @w:instr , 'PAGEREF' ), '\*')) "/>
+ </xsl:variable>
+ <text:bookmark-ref text:reference-format="page" text:ref-name="{$bookmarkname}">
+ <xsl:value-of select=" .//w:t"/>
+ </text:bookmark-ref>
+ </xsl:when>
+ <xsl:when test="substring( normalize-space(@w:instr),1,9) = 'HYPERLINK' ">
+ <xsl:variable name="hyper-str" select="normalize-space(@w:instr)"/>
+ <xsl:variable name="hyper-dest" select="substring-before( substring($hyper-str, 12), '&quot;')"/>
+ <xsl:variable name="hyper-bookmark">
+ <xsl:if test="contains( $hyper-str, ' \l ')">
+ <xsl:value-of select="concat( '#', substring-before( substring-after( substring-after( $hyper-str, ' \l '), '&quot;'), '&quot;') )"/>
+ </xsl:if>
+ </xsl:variable>
+ <text:a xlink:type="simple" xlink:href="{concat( $hyper-dest, $hyper-bookmark)}">
+ <xsl:value-of select=" .//w:t"/>
+ </text:a>
+ </xsl:when>
+ <xsl:when test="substring( normalize-space(@w:instr),1,3) = 'REF' ">
+ <text:bookmark-ref text:reference-format="text" text:ref-name="{normalize-space( substring-before (substring-after(@w:instr, 'REF') , '\') )}">
+
+ </text:bookmark-ref>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,4) = 'DATE' or substring(normalize-space(@w:instr),1,4) = 'TIME' ">
+ <text:date>
+ <xsl:attribute name="style:data-style-name"><xsl:value-of select=" 'NDF1' "/></xsl:attribute>
+ <xsl:value-of select=".//w:t"/>
+ </text:date>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,9) = 'PRINTDATE' ">
+ <text:print-date>
+ <xsl:attribute name="style:data-style-name"><xsl:value-of select=" 'NDF1' "/></xsl:attribute>
+ <xsl:value-of select=".//w:t"/>
+ </text:print-date>
+ </xsl:when>
+ <xsl:when test=" substring(normalize-space(@w:instr),1,10) = 'CREATEDATE' ">
+ <text:creation-date>
+ <xsl:attribute name="style:data-style-name"><xsl:value-of select=" 'NDF1' "/></xsl:attribute>
+ <xsl:value-of select=".//w:t"/>
+ </text:creation-date>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,8) = 'SAVEDATE' ">
+ <text:modification-date>
+ <xsl:attribute name="style:data-style-name"><xsl:value-of select=" 'NDF1' "/></xsl:attribute>
+ <xsl:value-of select=".//w:t"/>
+ </text:modification-date>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,4) = 'PAGE' ">
+ <text:page-number text:select-page="current">
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(@w:instr, '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:page-number>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,8) = 'NUMPAGES' ">
+ <text:page-count>
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(@w:instr, '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:page-count>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,8) = 'NUMWORDS' ">
+ <text:word-count>
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(@w:instr, '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:word-count>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,8) = 'NUMCHARS' ">
+ <text:character-count>
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(@w:instr, '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:character-count>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,6) = 'REVNUM' ">
+ <text:editing-cycles>
+ <xsl:value-of select="w:r"/>
+ </text:editing-cycles>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,7) = 'AUTONUM' or substring(normalize-space(@w:instr),1,10) = 'AUTONUMLGL' or substring(normalize-space(@w:instr),1,10) = 'AUTONUMOUT' ">
+ <text:sequence>
+ <xsl:attribute name="text:ref-name">RefAutoNum<xsl:number count="w:instrText[contains(text(), 'AUTONUM') or contains(text(), 'AUTONUMLGL') or contains( text(), 'AUTONUMOUT') ] | w:fldSimple[contains(@w:instr,'AUTONUM') or contains(@w:instr, 'AUTONUMLGL') or contains(@w:instr, 'AUTONUMOUT') ] " from="/w:wordDocument/w:body" level="any" format="1"/></xsl:attribute>
+ <xsl:attribute name="text:name"><xsl:value-of select=" 'AutoNr' "/></xsl:attribute>
+ <xsl:attribute name="text:formula"><xsl:value-of select=" 'ooow:AutoNr + 1' "/></xsl:attribute>
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(@w:instr, '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:sequence>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,3) = 'SEQ' ">
+ <text:sequence>
+ <xsl:attribute name="text:ref-name">Ref<xsl:number count="w:instrText[contains(text(), 'SEQ') ] | w:fldSimple[contains(@w:instr,'SEQ') ] " from="/w:wordDocument/w:body" level="any" format="1"/></xsl:attribute>
+ <xsl:variable name="seq_text_name">
+ <xsl:call-template name="get_seq_name">
+ <xsl:with-param name="input_seq_string" select="normalize-space(substring-after(@w:instr, 'SEQ'))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="text:name"><xsl:value-of select="$seq_text_name "/></xsl:attribute>
+ <xsl:attribute name="text:formula"><xsl:value-of select="concat (concat('ooow:',$seq_text_name), ' + 1' )"/></xsl:attribute>
+ <xsl:variable name="num-format">
+ <xsl:call-template name="get_field_num_format">
+ <xsl:with-param name="input_MS_num_format" select="normalize-space(substring-after(@w:instr, '\*' ))"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:num-format"><xsl:value-of select="$num-format"/></xsl:attribute>
+ </text:sequence>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,6) = 'AUTHOR' ">
+ <text:initial-creator>
+ <xsl:value-of select=" .//w:t"/>
+ </text:initial-creator>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,5) = 'TITLE' ">
+ <text:title>
+ <xsl:value-of select=" .//w:t"/>
+ </text:title>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,7) = 'SUBJECT' ">
+ <text:subject>
+ <xsl:value-of select=" .//w:t"/>
+ </text:subject>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,8) = 'KEYWORDS' ">
+ <text:keywords>
+ <xsl:value-of select=" .//w:t"/>
+ </text:keywords>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,6) = 'FILLIN' ">
+ <text:text-input>
+ <xsl:attribute name="text:description"><xsl:value-of select="substring-before(substring-after(@w:instr, '&quot;'), '&quot;')"/></xsl:attribute>
+ <xsl:value-of select=" .//w:t"/>
+ </text:text-input>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,11) = 'DOCPROPERTY' ">
+ <xsl:variable name="instr_command">
+ <xsl:value-of select="normalize-space (substring-after(@w:instr, 'DOCPROPERTY' ))"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains($instr_command, 'Author' ) ">
+ <text:user-field-get text:name="Author">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Bytes' ) ">
+ <text:user-field-get text:name="Bytes">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Category' ) ">
+ <text:user-field-get text:name="Category">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'CharactersWithSpaces' ) ">
+ <text:user-field-get text:name="CharactersWithSpaces">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Characters' ) ">
+ <text:user-field-get text:name="Characters">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Comments' ) ">
+ <text:user-field-get text:name="Comments">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Company' ) ">
+ <text:user-field-get text:name="Company">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'CreateTime' ) ">
+ <text:user-field-get text:name="CreateTime">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'HyperlinkBase' ) ">
+ <text:user-field-get text:name="HyperlinkBase">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Keywords' ) ">
+ <text:user-field-get text:name="Keywords">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'LastPrinted' ) ">
+ <text:user-field-get text:name="LastPrinted">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'LastSavedBy' ) ">
+ <text:user-field-get text:name="LastSavedBy">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'LastSavedTime' ) ">
+ <text:user-field-get text:name="LastSavedTime">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Lines' ) ">
+ <text:user-field-get text:name="Lines">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Manager' ) ">
+ <text:user-field-get text:name="Manager">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'NameofApplication' ) ">
+ <text:user-field-get text:name="NameofApplication">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'ODMADocId' ) ">
+ <text:user-field-get text:name="ODMADocId">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Pages' ) ">
+ <text:user-field-get text:name="Pages">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Paragraphs' ) ">
+ <text:user-field-get text:name="Paragraphs">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'RevisionNumber' ) ">
+ <text:user-field-get text:name="RevisionNumber">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Security' ) ">
+ <text:user-field-get text:name="Security">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Subject' ) ">
+ <text:user-field-get text:name="Subject">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Template' ) ">
+ <text:user-field-get text:name="Template">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Title' ) ">
+ <text:user-field-get text:name="Title">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'TotalEditingTime' ) ">
+ <text:user-field-get text:name="TotalEditingTime">
+ </text:user-field-get>
+ </xsl:when>
+ <xsl:when test="contains($instr_command, 'Words' ) ">
+ <text:user-field-get text:name="Words">
+ </text:user-field-get>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,10) = 'MERGEFIELD' ">
+ <text:database-display text:database-name="" text:table-name="" text:table-type="table">
+ <xsl:attribute name="text:column-name"><xsl:value-of select="substring-before(substring-after(normalize-space(.), 'MERGEFIELD' ), ' ' ) "/></xsl:attribute>
+ <xsl:value-of select=" .//w:t"/>
+ </text:database-display>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,8) = 'MERGEREC' ">
+ <text:database-row-number text:database-name="" text:table-name="" text:table-type="table" style:num-format="A" text:value="0">
+ <xsl:value-of select=" .//w:t"/>
+ </text:database-row-number>
+ </xsl:when>
+ <xsl:when test="substring(normalize-space(@w:instr),1,4) = 'NEXT' ">
+ <text:database-next text:database-name="" text:table-name="" text:table-type="table" text:condition="">
+ <xsl:value-of select=" .//w:t"/>
+ </text:database-next>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- for MS simple fields that can not map to OOo writer fields, we just import the content of these fields -->
+ <xsl:value-of select="w:r"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get_seq_name">
+ <!-- this template is to get the identifier from the input MS seq string -->
+ <xsl:param name="input_seq_string"/>
+ <xsl:choose>
+ <xsl:when test="contains( $input_seq_string, ' ' )">
+ <xsl:value-of select="substring-before($input_seq_string, ' ' )"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$input_seq_string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="default_seqence_declaration">
+ <text:sequence-decl text:display-outline-level="0" text:name="Illustration">
+ </text:sequence-decl>
+ <text:sequence-decl text:display-outline-level="0" text:name="Table">
+ </text:sequence-decl>
+ <text:sequence-decl text:display-outline-level="0" text:name="Text">
+ </text:sequence-decl>
+ <text:sequence-decl text:display-outline-level="0" text:name="Drawing">
+ </text:sequence-decl>
+ <text:sequence-decl text:display-outline-level="0" text:name="AutoNr">
+ </text:sequence-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="sequence_declare">
+ <text:sequence-decl text:display-outline-level="0">
+ <xsl:variable name="seq_variable_name">
+ <xsl:choose>
+ <xsl:when test=" name() = 'w:instrText' ">
+ <xsl:if test="substring(normalize-space(text()),1,3) = 'SEQ' ">
+ <xsl:call-template name="get_seq_name">
+ <xsl:with-param name="input_seq_string" select="normalize-space( substring-after(text(), 'SEQ' ))"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test=" name() = 'w:fldSimple' ">
+ <xsl:if test="substring(normalize-space(@w:instr),1,3) = 'SEQ' ">
+ <xsl:call-template name="get_seq_name">
+ <xsl:with-param name="input_seq_string" select="normalize-space( substring-after(@w:instr, 'SEQ' ))"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="text:name"><xsl:value-of select="$seq_variable_name"/></xsl:attribute>
+ </text:sequence-decl>
+ </xsl:template>
+ <!-- ===== the following templates are to generate the user fields declarations for MS word DocProperty field importing == -->
+ <xsl:template name="user_fields_declare_docproperty">
+ <xsl:variable name="document-field-root" select="/w:wordDocument/w:body//w:instrText[substring(normalize-space(text()),1,11) = 'DOCPROPERTY' ] | /w:wordDocument/w:body//w:fldSimple[substring(normalize-space(@w:instr),1,11) = 'DOCPROPERTY' ] "/>
+ <xsl:variable name="field_Author_nodeset" select="$document-field-root[contains(text(), 'Author')] | $document-field-root[contains(@w:instr, 'Author')]"/>
+ <xsl:variable name="field_Bytes_nodeset" select="$document-field-root[contains(text(), 'Bytes')] | $document-field-root[contains(@w:instr, 'Bytes')]"/>
+ <xsl:variable name="field_Category_nodeset" select="$document-field-root[contains(text(), 'Category')] | $document-field-root[contains(@w:instr, 'Category')]"/>
+ <xsl:variable name="field_Characters_nodeset" select="$document-field-root[contains(text(), 'Characters')] | $document-field-root[contains(@w:instr, 'Characters')]"/>
+ <xsl:variable name="field_CharactersWithSpaces_nodeset" select="$document-field-root[contains(text(), 'CharactersWithSpaces')] | $document-field-root[contains(@w:instr, 'CharactersWithSpaces')]"/>
+ <xsl:variable name="field_Comments_nodeset" select="$document-field-root[contains(text(), 'Comments')] | $document-field-root[contains(@w:instr, 'Comments')]"/>
+ <xsl:variable name="field_Company_nodeset" select="$document-field-root[contains(text(), 'Company')] | $document-field-root[contains(@w:instr, 'Company')]"/>
+ <xsl:variable name="field_CreateTime_nodeset" select="$document-field-root[contains(text(), 'CreateTime')] | $document-field-root[contains(@w:instr, 'CreateTime')]"/>
+ <xsl:variable name="field_HyperlinkBase_nodeset" select="$document-field-root[contains(text(), 'HyperlinkBase')] | $document-field-root[contains(@w:instr, 'HyperlinkBase')]"/>
+ <xsl:variable name="field_Keywords_nodeset" select="$document-field-root[contains(text(), 'Keywords')] | $document-field-root[contains(@w:instr, 'Keywords')]"/>
+ <xsl:variable name="field_LastPrinted_nodeset" select="$document-field-root[contains(text(), 'LastPrinted')] | $document-field-root[contains(@w:instr, 'LastPrinted')]"/>
+ <xsl:variable name="field_LastSavedBy_nodeset" select="$document-field-root[contains(text(), 'LastSavedBy')] | $document-field-root[contains(@w:instr, 'LastSavedBy')]"/>
+ <xsl:variable name="field_LastSavedTime_nodeset" select="$document-field-root[contains(text(), 'LastSavedTime')] | $document-field-root[contains(@w:instr, 'LastSavedTime')]"/>
+ <xsl:variable name="field_Lines_nodeset" select="$document-field-root[contains(text(), 'Lines')] | $document-field-root[contains(@w:instr, 'Lines')]"/>
+ <xsl:variable name="field_Manager_nodeset" select="$document-field-root[contains(text(), 'Manager')] | $document-field-root[contains(@w:instr, 'Manager')]"/>
+ <xsl:variable name="field_NameofApplication_nodeset" select="$document-field-root[contains(text(), 'NameofApplication')] | $document-field-root[contains(@w:instr, 'NameofApplication')]"/>
+ <xsl:variable name="field_ODMADocId_nodeset" select="$document-field-root[contains(text(), 'ODMADocId')] | $document-field-root[contains(@w:instr, 'ODMADocId')]"/>
+ <xsl:variable name="field_Pages_nodeset" select="$document-field-root[contains(text(), 'Pages')] | $document-field-root[contains(@w:instr, 'Pages')]"/>
+ <xsl:variable name="field_Paragraphs_nodeset" select="$document-field-root[contains(text(), 'Paragraphs')] | $document-field-root[contains(@w:instr, 'Paragraphs')]"/>
+ <xsl:variable name="field_RevisionNumber_nodeset" select="$document-field-root[contains(text(), 'RevisionNumber')] | $document-field-root[contains(@w:instr, 'RevisionNumber')]"/>
+ <xsl:variable name="field_Security_nodeset" select="$document-field-root[contains(text(), 'Security')] | $document-field-root[contains(@w:instr, 'Security')]"/>
+ <xsl:variable name="field_Subject_nodeset" select="$document-field-root[contains(text(), 'Subject')] | $document-field-root[contains(@w:instr, 'Subject')]"/>
+ <xsl:variable name="field_Template_nodeset" select="$document-field-root[contains(text(), 'Template')] | $document-field-root[contains(@w:instr, 'Template')]"/>
+ <xsl:variable name="field_Title_nodeset" select="$document-field-root[contains(text(), 'Title')] | $document-field-root[contains(@w:instr, 'Title')]"/>
+ <xsl:variable name="field_TotalEditingTime_nodeset" select="$document-field-root[contains(text(), 'TotalEditingTime')] | $document-field-root[contains(@w:instr, 'TotalEditingTime')]"/>
+ <xsl:variable name="field_Words_nodeset" select="$document-field-root[contains(text(), 'Words')] | $document-field-root[contains(@w:instr, 'Words')]"/>
+ <xsl:apply-templates select="$field_Author_nodeset[1]" mode="user_field_Author_declare"/>
+ <xsl:apply-templates select="$field_Bytes_nodeset[1]" mode="user_field_Bytes_declare"/>
+ <xsl:apply-templates select="$field_Category_nodeset[1]" mode="user_field_Category_declare"/>
+ <xsl:apply-templates select="$field_Characters_nodeset[1]" mode="user_field_Characters_declare"/>
+ <xsl:apply-templates select="$field_CharactersWithSpaces_nodeset[1]" mode="user_field_CharactersWithSpaces_declare"/>
+ <xsl:apply-templates select="$field_Comments_nodeset[1]" mode="user_field_Comments_declare"/>
+ <xsl:apply-templates select="$field_Company_nodeset[1]" mode="user_field_Company_declare"/>
+ <xsl:apply-templates select="$field_CreateTime_nodeset[1]" mode="user_field_CreateTime_declare"/>
+ <xsl:apply-templates select="$field_HyperlinkBase_nodeset[1]" mode="user_field_HyperlinkBase_declare"/>
+ <xsl:apply-templates select="$field_Keywords_nodeset[1]" mode="user_field_Keywords_declare"/>
+ <xsl:apply-templates select="$field_LastPrinted_nodeset[1]" mode="user_field_LastPrinted_declare"/>
+ <xsl:apply-templates select="$field_LastSavedBy_nodeset[1]" mode="user_field_LastSavedBy_declare"/>
+ <xsl:apply-templates select="$field_LastSavedTime_nodeset[1]" mode="user_field_LastSavedTime_declare"/>
+ <xsl:apply-templates select="$field_Lines_nodeset[1]" mode="user_field_Lines_declare"/>
+ <xsl:apply-templates select="$field_Manager_nodeset[1]" mode="user_field_Manager_declare"/>
+ <xsl:apply-templates select="$field_NameofApplication_nodeset[1]" mode="user_field_NameofApplication_declare"/>
+ <xsl:apply-templates select="$field_ODMADocId_nodeset[1]" mode="user_field_ODMADocId_declare"/>
+ <xsl:apply-templates select="$field_Pages_nodeset[1]" mode="user_field_Pages_declare"/>
+ <xsl:apply-templates select="$field_Paragraphs_nodeset[1]" mode="user_field_Paragraphs_declare"/>
+ <xsl:apply-templates select="$field_RevisionNumber_nodeset[1]" mode="user_field_RevisionNumber_declare"/>
+ <xsl:apply-templates select="$field_Security_nodeset[1]" mode="user_field_Security_declare"/>
+ <xsl:apply-templates select="$field_Subject_nodeset[1]" mode="user_field_Subject_declare"/>
+ <xsl:apply-templates select="$field_Template_nodeset[1]" mode="user_field_Template_declare"/>
+ <xsl:apply-templates select="$field_Title_nodeset[1]" mode="user_field_Title_declare"/>
+ <xsl:apply-templates select="$field_TotalEditingTime_nodeset[1]" mode="user_field_TotalEditingTime_declare"/>
+ <xsl:apply-templates select="$field_Words_nodeset[1]" mode="user_field_Words_declare"/>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Author_declare">
+ <text:user-field-decl office:value-type="string" text:name="Author">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Bytes_declare">
+ <text:user-field-decl office:value-type="string" text:name="Bytes">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Category_declare">
+ <text:user-field-decl office:value-type="string" text:name="Category">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Characters_declare">
+ <text:user-field-decl office:value-type="string" text:name="Characters">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_CharactersWithSpaces_declare">
+ <text:user-field-decl office:value-type="string" text:name="CharactersWithSpaces">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Comments_declare">
+ <text:user-field-decl office:value-type="string" text:name="Comments">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Company_declare">
+ <text:user-field-decl office:value-type="string" text:name="Company">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_CreateTime_declare">
+ <text:user-field-decl office:value-type="string" text:name="CreateTime">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_HyperlinkBase_declare">
+ <text:user-field-decl office:value-type="string" text:name="HyperlinkBase">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Keywords_declare">
+ <text:user-field-decl office:value-type="string" text:name="Keywords">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_LastPrinted_declare">
+ <text:user-field-decl office:value-type="string" text:name="LastPrinted">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_LastSavedBy_declare">
+ <text:user-field-decl office:value-type="string" text:name="LastSavedBy">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_LastSavedTime_declare">
+ <text:user-field-decl office:value-type="string" text:name="LastSavedTime">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Lines_declare">
+ <text:user-field-decl office:value-type="string" text:name="Lines">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Manager_declare">
+ <text:user-field-decl office:value-type="string" text:name="Manager">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_NameofApplication_declare">
+ <text:user-field-decl office:value-type="string" text:name="NameofApplication">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_ODMADocId_declare">
+ <text:user-field-decl office:value-type="string" text:name="ODMADocId">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Pages_declare">
+ <text:user-field-decl office:value-type="string" text:name="Pages">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Paragraphs_declare">
+ <text:user-field-decl office:value-type="string" text:name="Paragraphs">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_RevisionNumber_declare">
+ <text:user-field-decl office:value-type="string" text:name="RevisionNumber">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Security_declare">
+ <text:user-field-decl office:value-type="string" text:name="Security">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Subject_declare">
+ <text:user-field-decl office:value-type="string" text:name="Subject">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Template_declare">
+ <text:user-field-decl office:value-type="string" text:name="Template">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Title_declare">
+ <text:user-field-decl office:value-type="string" text:name="Title">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_TotalEditingTime_declare">
+ <text:user-field-decl office:value-type="string" text:name="TotalEditingTime">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="user_field_Words_declare">
+ <text:user-field-decl office:value-type="string" text:name="Words">
+ <xsl:variable name="field_content">
+ <xsl:choose>
+ <xsl:when test="name() = 'w:instrText' ">
+ <xsl:call-template name="get-fldchar-content">
+ <xsl:with-param name="next_node" select="../following-sibling::w:r[1]"/>
+ <xsl:with-param name="sibling_number" select=" 1"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:value-of select=".//w:t"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="office:string-value"><xsl:value-of select="$field_content"/></xsl:attribute>
+ </text:user-field-decl>
+ </xsl:template>
+ <!-- =========this following template to convert the ms number format to OOo wirter format === -->
+ <xsl:template name="get_field_num_format">
+ <xsl:param name="input_MS_num_format"/>
+ <xsl:choose>
+ <xsl:when test="contains($input_MS_num_format, 'Arabic' ) ">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'roman' ) ">
+ <xsl:text>i</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'ROMAN' ) ">
+ <xsl:text>I</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'alphabetic' ) ">
+ <xsl:text>a</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'ALPHABETIC' ) ">
+ <xsl:text>A</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>1</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--xsl:template name="get_field_num_format">
+ <xsl:param name="input_MS_num_format"/>
+ <xsl:choose>
+ <xsl:when test="contains($input_MS_num_format, 'Arabic' ) ">
+ <xsl:text>1</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains ($input_MS_num_format, 'CircleNum' )">
+ <xsl:text>â‘ , â‘¡, â‘¢, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'roman' ) ">
+ <xsl:text>i</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'ROMAN' ) ">
+ <xsl:text>I</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'CHINESENUM3' )">
+ <xsl:text>一, 二, 三, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'CHINESENUM2' )">
+ <xsl:text>壹, è²³, åƒ, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'DBNUM3' ) ">
+ <xsl:text>壱, å¼, å‚, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'ZODIAC2' ) ">
+ <xsl:text>å­, 丑, 寅, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'ZODIAC1' ) ">
+ <xsl:text>甲, 乙, 丙, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'Iroha' ) ">
+ <xsl:text>イ, ロ, ãƒ, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'Aiueo' ) ">
+ <xsl:text>ï½±, ï½², ï½³, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'alphabetic' ) ">
+ <xsl:text>a</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'ALPHABETIC' ) ">
+ <xsl:text>A</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'hebrew2' ) ">
+ <xsl:text>×, ב, ×’, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'ArabicAlpha' ) ">
+ <xsl:text>أ, ب, ت, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'ThaiLetter' ) ">
+ <xsl:text>à¸, ข, ฃ, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'Chosung' ) ">
+ <xsl:text>ㄱ, ㄴ, ㄷ, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'Ganada' ) ">
+ <xsl:text>가, 나, 다, ...</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($input_MS_num_format, 'Aiueo' ) ">
+ <xsl:text>ア, イ, ウ, ...</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>1</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template -->
+ <!-- ========= the following code is to generate the date styles for date/time fields ============ -->
+ <!--the default date styel content -->
+ <xsl:template name="default_date_style_content">
+ <number:year number:style="long">
+ </number:year>
+ <number:text>/</number:text>
+ <number:month>
+ </number:month>
+ <number:text>/</number:text>
+ <number:day>
+ </number:day>
+ <number:text> </number:text>
+ <number:hours>
+ </number:hours>
+ <number:text>:</number:text>
+ <number:minutes number:style="long">
+ </number:minutes>
+ <number:text>:</number:text>
+ <number:seconds number:style="long">
+ </number:seconds>
+ <number:am-pm>
+ </number:am-pm>
+ </xsl:template>
+ <!--the default date styel -->
+ <xsl:template name="default_date_style">
+ <number:date-style style:name="NDF1">
+ <xsl:call-template name="default_date_style_content"/>
+ </number:date-style>
+ </xsl:template>
+ <xsl:template match="w:instrText | w:fldSimple" mode="style">
+ <!-- this template is to generate the date, time styles according to the content of DateFormatString ( the string after \@ ) in w:instrText | w:fldSimple/@w:instr -->
+ <xsl:choose>
+ <xsl:when test=" name() = 'w:instrText' ">
+ <xsl:if test="substring(normalize-space(.),1,4) = 'DATE' or substring(normalize-space(.),1,4) = 'TIME' or substring(normalize-space(.),1,9) = 'PRINTDATE' or substring(normalize-space(.),1,10) = 'CREATEDATE' or substring(normalize-space(.),1,8) = 'SAVEDATE' ">
+ <number:date-style>
+ <xsl:attribute name="style:name">ND<xsl:number count="w:instrText | w:fldSimple" from="/w:wordDocument/w:body" level="any" format="1"/></xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="contains(text(), '\@' )">
+ <!-- if has the date format string then call the template parse_field_date_format to produce the style-->
+ <xsl:variable name="MS_date_format">
+ <xsl:value-of select="normalize-space(substring-before(substring-after(normalize-space(substring-after(text(), '\@')), '&#x22;'), '&#x22;'))"/>
+ </xsl:variable>
+ <xsl:if test="string-length($MS_date_format) &gt;=1">
+ <xsl:call-template name="parse_field_date_format">
+ <xsl:with-param name="input_MS_date_format" select="$MS_date_format"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="string-length($MS_date_format) &lt;1">
+ <xsl:call-template name="default_date_style_content"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- if doesn't have date format string so we use the following default format -->
+ <xsl:call-template name="default_date_style_content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </number:date-style>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="name() = 'w:fldSimple' ">
+ <xsl:if test="substring(normalize-space(@w:instr),1,4) = 'DATE' or substring(normalize-space(@w:instr),1,4) = 'TIME' or substring(normalize-space(@w:instr),1,9) = 'PRINTDATE' or substring(normalize-space(@w:instr),1,10) = 'CREATEDATE' or substring(normalize-space(@w:instr),1,8) = 'SAVEDATE' ">
+ <!-- we use the default date/time style for w:fldsimple -->
+ <number:date-style>
+ <xsl:attribute name="style:name">NDF1</xsl:attribute>
+ <xsl:call-template name="default_date_style_content"/>
+ </number:date-style>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="parse_field_date_format">
+ <!--this template is to parse and generate the content of the date-time style base on the content of input_MS_date_format -->
+ <xsl:param name="input_MS_date_format"/>
+ <xsl:if test="string-length($input_MS_date_format) &gt;= 1">
+ <xsl:variable name="date_token_start_position">
+ <!-- to find the start position of the token ' d, M, yy, YY,m etc. -->
+ <xsl:call-template name="find_token_startposition">
+ <xsl:with-param name="input_string" select="$input_MS_date_format"/>
+ <xsl:with-param name="token_start_position" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="date_token">
+ <!-- get the matched the token such as MM, YYYY, yy,MMMM etc. -->
+ <xsl:call-template name="get_date_token">
+ <xsl:with-param name="input_string2" select="substring($input_MS_date_format,$date_token_start_position)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="number($date_token_start_position) &gt; 1">
+ <!-- print the text between the tokens -->
+ <number:text>
+ <xsl:value-of select="substring($input_MS_date_format,1, number($date_token_start_position - 1) )"/>
+ </number:text>
+ </xsl:if>
+ <xsl:call-template name="map_date_format_pattern">
+ <xsl:with-param name="input_date_format_pattern" select="$date_token"/>
+ </xsl:call-template>
+ <xsl:variable name="unparsed_string">
+ <xsl:value-of select="substring($input_MS_date_format,$date_token_start_position + string-length($date_token))"/>
+ </xsl:variable>
+ <xsl:call-template name="parse_field_date_format">
+ <xsl:with-param name="input_MS_date_format" select="$unparsed_string"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="find_token_startposition">
+ <xsl:param name="input_string"/>
+ <xsl:param name="token_start_position"/>
+ <xsl:choose>
+ <xsl:when test="starts-with( $input_string,'yy') or starts-with($input_string,'YY') or starts-with($input_string,'HH') or starts-with($input_string,'hh') or starts-with($input_string,'ss') or starts-with($input_string,'SS')">
+ <xsl:value-of select="$token_start_position"/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string, 'M') or starts-with($input_string,'d') or starts-with($input_string, 'm') or starts-with($input_string,'D') or starts-with($input_string,'h') or starts-with($input_string,'H') or starts-with($input_string,'s') or starts-with($input_string,'S')">
+ <xsl:value-of select="$token_start_position"/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string, 'am/pm') or starts-with($input_string, 'AM/PM') ">
+ <xsl:value-of select="$token_start_position"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="new_string">
+ <xsl:value-of select="substring($input_string, 2)"/>
+ </xsl:variable>
+ <xsl:call-template name="find_token_startposition">
+ <xsl:with-param name="input_string" select="$new_string"/>
+ <xsl:with-param name="token_start_position" select="$token_start_position +1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get_date_token">
+ <xsl:param name="input_string2"/>
+ <xsl:choose>
+ <xsl:when test="starts-with($input_string2, 'am/pm') or starts-with($input_string2, 'AM/PM') ">
+ <xsl:value-of select=" 'am/pm' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'yyyy') or starts-with($input_string2, 'YYYY')">
+ <xsl:value-of select=" 'yyyy' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'yy') or starts-with($input_string2, 'YY')">
+ <xsl:value-of select=" 'yy' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'MMMM') ">
+ <xsl:value-of select=" 'MMMM' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'MMM')">
+ <xsl:value-of select=" 'MMM' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'MM')">
+ <xsl:value-of select=" 'MM' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'M') ">
+ <xsl:value-of select=" 'M' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'dddd') or starts-with($input_string2, 'DDDD')">
+ <xsl:value-of select=" 'dddd' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'ddd') or starts-with($input_string2, 'DDD')">
+ <xsl:value-of select=" 'ddd' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'dd') or starts-with($input_string2, 'dd')">
+ <xsl:value-of select=" 'dd' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'd') or starts-with($input_string2, 'D')">
+ <xsl:value-of select=" 'd' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'mm')">
+ <xsl:value-of select=" 'mm' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'm')">
+ <xsl:value-of select=" 'm' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'hh') or starts-with($input_string2, 'HH')">
+ <xsl:value-of select=" 'hh' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'h') or starts-with($input_string2, 'H')">
+ <xsl:value-of select=" 'h' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 'ss') or starts-with($input_string2, 'SS')">
+ <xsl:value-of select=" 'ss' "/>
+ </xsl:when>
+ <xsl:when test="starts-with($input_string2, 's') or starts-with($input_string2, 'S')">
+ <xsl:value-of select=" 's' "/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="map_date_format_pattern">
+ <!-- this template map the MS date time format to OOo date time format -->
+ <xsl:param name="input_date_format_pattern"/>
+ <xsl:choose>
+ <xsl:when test="$input_date_format_pattern = 'am/pm' ">
+ <number:am-pm>
+ </number:am-pm>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'yyyy' ">
+ <number:year number:style="long">
+ </number:year>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'yy' ">
+ <number:year>
+ </number:year>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'MMMM' ">
+ <number:month number:style="long" number:textual="true">
+ </number:month>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'MMM' ">
+ <number:month number:textual="true">
+ </number:month>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'MM' ">
+ <number:month number:style="long">
+ </number:month>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'M' ">
+ <number:month>
+ </number:month>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'dddd' ">
+ <number:day-of-week number:style="long">
+ </number:day-of-week>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'ddd' ">
+ <number:day-of-week>
+ </number:day-of-week>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'dd' ">
+ <number:day number:style="long">
+ </number:day>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'd' ">
+ <number:day>
+ </number:day>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'mm' ">
+ <number:minutes number:style="long">
+ </number:minutes>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'm' ">
+ <number:minutes>
+ </number:minutes>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'hh' ">
+ <number:hours number:style="long">
+ </number:hours>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'h' ">
+ <number:hours>
+ </number:hours>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 'ss' ">
+ <number:seconds number:style="long">
+ </number:seconds>
+ </xsl:when>
+ <xsl:when test="$input_date_format_pattern = 's' ">
+ <number:seconds>
+ </number:seconds>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo_list.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo_list.xsl
new file mode 100644
index 000000000000..8bbe57a5e3ec
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo_list.xsl
@@ -0,0 +1,657 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt v">
+ <xsl:template match="w:listPr" mode="style">
+ <xsl:variable name="currlistid" select="w:ilfo/@w:val"/>
+ <xsl:variable name="currlist" select="."/>
+ <xsl:variable name="rootlistid" select="/w:wordDocument/w:lists/w:list[@w:ilfo=$currlistid]/w:ilst/@w:val"/>
+ <xsl:variable name="rootlist" select="/w:wordDocument/w:lists/w:listDef[@w:listDefId =$rootlistid ]"/>
+ <xsl:if test="not(ancestor::w:p/preceding-sibling::w:p/w:pPr/w:listPr[1]/w:ilfo/@w:val= $currlistid) and $rootlist/w:lvl ">
+ <xsl:element name="text:list-style">
+ <xsl:attribute name="style:name">List<xsl:value-of select="count(preceding::w:listPr)"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="$rootlist/w:lvl"/>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="w:lvl">
+ <xsl:variable name="listtype">
+ <xsl:choose>
+ <xsl:when test="w:nfc/@w:val">
+ <xsl:value-of select="w:nfc/@w:val"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$listtype =23 and w:lvlPicBulletId">
+ <!-- image characters. wym -->
+ <xsl:element name="text:list-level-style-image">
+ <xsl:call-template name="list-styles-image"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:when test="$listtype =23">
+ <!-- nfcBullet: Bullet character. glu -->
+ <xsl:element name="text:list-level-style-bullet">
+ <xsl:call-template name="list-styles-common">
+ <xsl:with-param name="listtype" select="$listtype"/>
+ <xsl:with-param name="currlevel" select="number(@w:ilvl)+1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- all kinds of numbering characters. glu :( -->
+ <xsl:element name="text:list-level-style-number">
+ <xsl:call-template name="list-styles-common">
+ <xsl:with-param name="listtype" select="$listtype"/>
+ <xsl:with-param name="currlevel" select="number(@w:ilvl)+1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="list-styles-common">
+ <xsl:param name="listtype"/>
+ <xsl:param name="currlevel"/>
+ <xsl:variable name="startval" select="w:start/@w:val"/>
+ <xsl:attribute name="text:level">
+ <xsl:value-of select="$currlevel"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$listtype = 23">
+ <!-- bullet character. glu -->
+ <xsl:attribute name="text:style-name">Bullet_20_Symbols</xsl:attribute>
+ <xsl:if test="not (contains(w:lvlText/@w:val,'%'))">
+ <xsl:attribute name="text:bullet-char">
+ <xsl:value-of select="w:lvlText/@w:val"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="contains(w:lvlText/@w:val,'%')">
+ <xsl:attribute name="text:bullet-char">
+ <xsl:value-of select=" '·' "/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="($listtype &gt;= 0) and ($listtype &lt; 60)">
+ <xsl:attribute name="text:style-name">Numbering_20_Symbols</xsl:attribute>
+ <xsl:if test="$startval">
+ <xsl:choose>
+ <xsl:when test="$startval &gt; 0">
+ <xsl:attribute name="text:start-value">
+ <xsl:value-of select="$startval"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:start-value">
+ <xsl:value-of select=" '1' "/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--xsl:attribute name="text:start-value"><xsl:value-of select="$startval"/></xsl:attribute -->
+ </xsl:if>
+ <xsl:attribute name="text:display-levels">
+ <xsl:value-of select="string-length(w:lvlText/@w:val) - string-length(translate(w:lvlText/@w:val,'%','') ) + 1"/>
+ </xsl:attribute>
+ <xsl:call-template name="nfc2numformat">
+ <xsl:with-param name="nfcvalue" select="$listtype"/>
+ <xsl:with-param name="prefix" select="substring-before(w:lvlText/@w:val, '%')"/>
+ <xsl:with-param name="suffix" select="substring-after(w:lvlText/@w:val, concat('%', $currlevel) )"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:style-name">Numbering_20_Symbols</xsl:attribute>
+ <xsl:if test="$startval">
+ <xsl:choose>
+ <xsl:when test="$startval &gt; 0">
+ <xsl:attribute name="text:start-value">
+ <xsl:value-of select="$startval"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:start-value">
+ <xsl:value-of select=" '1' "/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- xsl:attribute name="text:start-value"><xsl:value-of select="$startval"/></xsl:attribute -->
+ </xsl:if>
+ <xsl:attribute name="text:display-levels">
+ <xsl:value-of select="string-length(w:lvlText/@w:val) - string-length(translate(w:lvlText/@w:val,'%','') ) + 1"/>
+ </xsl:attribute>
+ <!-- 'none' in Word 2003. wym -->
+ <xsl:attribute name="style:num-format"/>
+ <xsl:attribute name="style:num-prefix">
+ <xsl:value-of select="substring-before(w:lvlText/@w:val, '%')"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:num-suffix">
+ <xsl:value-of select="substring-after(w:lvlText/@w:val, concat('%', $currlevel + 1) )"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:element name="style:list-level-properties">
+ <xsl:choose>
+ <xsl:when test="w:lvlJc/@w:val='right'">
+ <xsl:attribute name="fo:text-align">end</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:lvlJc/@w:val='center'">
+ <xsl:attribute name="fo:text-align">center</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:text-align">start</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:variable name="labelwidth">
+ <xsl:choose>
+ <xsl:when test="w:pPr/w:ind/@w:hanging">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:pPr/w:ind/@w:hanging,'twip')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="w:pPr/w:ind/@w:first-line">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat('-',w:pPr/w:ind/@w:first-line,'twip')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="leftwidth">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:pPr/w:ind/@w:left,'twip')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="w:pPr/w:ind/@w:left">
+ <xsl:attribute name="text:space-before">
+ <xsl:choose>
+ <xsl:when test=" ( number($leftwidth)-number($labelwidth) ) &gt; 0">
+ <xsl:value-of select="concat(number($leftwidth)-number($labelwidth),'cm')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" '0cm' "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="text:min-label-width">
+ <xsl:choose>
+ <xsl:when test="$labelwidth &gt; 0">
+ <xsl:value-of select="concat($labelwidth,'cm')"/>
+ </xsl:when>
+ <xsl:otherwise>0cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <!-- In binary word translation, text:min-label-distance do not generate. So, the width of number-symbol will not effect the start position of text. But first line always start same position of second line, no indent. If text:min-label-distance generate, the look of list will change because of uncountable number-symbol's width, now use 0.25cm as default width-->
+ <xsl:choose>
+ <xsl:when test="w:suff/@w:val='Space'">
+ <xsl:attribute name="text:min-label-distance">0.20cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:pPr/w:tabs/w:tab/@w:pos">
+ <xsl:variable name="tabpos">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:pPr/w:tabs/w:tab/@w:pos,'twip')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="number($tabpos) &gt; (number($leftwidth)-number($labelwidth))">
+ <xsl:variable name="min-label-distance">
+ <xsl:choose>
+ <xsl:when test="number($tabpos)+number($labelwidth)-number($leftwidth)-0.25 &lt; 0">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="number($tabpos)+number($labelwidth)-number($leftwidth)-0.25"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="text:min-label-distance">
+ <xsl:value-of select="concat($min-label-distance,'cm')"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ <!-- Find the node that corresponds to the level being processed. We can use this to determine the indentation to be used
+ <xsl:variable name="currNode" select="/w:wordDocument/w:body//w:listPr[w:ilvl/@w:val = $currlevel][w:ilfo/@w:val = $currlist/w:ilfo/@w:val]"/>
+ <xsl:choose>
+ <xsl:when test="($currNode/wx:t/@wx:wTabBefore ) and ($currNode/wx:t/@wx:wTabAfter ) and (not($currNode/following-sibling::w:jc) or $currNode/following-sibling::w:jc/@w:val = 'left')">
+ <xsl:attribute name="text:space-before"><xsl:value-of select="(number($currNode/wx:t/@wx:wTabBefore)div 1440) * 2.54"/>cm</xsl:attribute>
+ <xsl:attribute name="text:min-label-distance"><xsl:value-of select="(number($currNode/wx:t/@wx:wTabAfter)div 1440) * 2.54"/>cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:space-before"><xsl:value-of select="((number(w:pPr/w:ind/@w:left) div 1440) * 2.54) "/>cm</xsl:attribute>
+ <xsl:attribute name="text:min-label-distance"><xsl:value-of select="(number($currlist/wx:t/@wx:wTabAfter) div 1440) * 2.54"/>cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>-->
+ <xsl:if test="w:rPr/w:rFonts">
+ <xsl:if test="w:rPr/w:rFonts/@w:ascii">
+ <xsl:attribute name="style:font-name">
+ <xsl:value-of select="w:rPr/w:rFonts/@w:ascii"/>
+ </xsl:attribute>
+ </xsl:if>
+ <!-- in Oasis format the style:font-name-asian is not allowed to appear here -->
+ <!--xsl:if test="w:rPr/w:rFonts/@w:fareast">
+ <xsl:attribute name="style:font-name-asian"><xsl:value-of select="w:rPr/w:rFonts/@w:fareast"/></xsl:attribute>
+ </xsl:if -->
+ <!--
+ <xsl:if test="w:rPr/w:rFonts/@w:cs">
+ <xsl:attribute name="style:font-name-complex"><xsl:value-of select="w:rPr/w:rFonts/@w:cs"/></xsl:attribute>
+ </xsl:if>
+ -->
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="list-styles-image">
+ <xsl:variable name="currlevel" select="number(@w:ilvl)"/>
+ <xsl:attribute name="text:level">
+ <xsl:value-of select="$currlevel+1"/>
+ </xsl:attribute>
+ <xsl:variable name="picid" select="w:lvlPicBulletId/@w:val"/>
+ <office:binary-data>
+ <xsl:value-of select="/descendant::w:lists/w:listPicBullet[@w:listPicBulletId=$picid]/w:pict/w:binData"/>
+ </office:binary-data>
+ <xsl:element name="style:list-level-properties">
+ <xsl:attribute name="style:vertical-pos">middle</xsl:attribute>
+ <xsl:attribute name="style:vertical-rel">line</xsl:attribute>
+ <xsl:variable name="picsize" select="/descendant::w:lists/w:listPicBullet[@w:listPicBulletId=$picid]/w:pict/v:shape/@style"/>
+ <xsl:attribute name="fo:text-align">left</xsl:attribute>
+ <xsl:attribute name="fo:width">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="substring-before(substring-after($picsize,'width:'), ';')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ <xsl:attribute name="fo:height">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="substring-after($picsize,'height:')"/>
+ </xsl:call-template>
+ <xsl:text>cm</xsl:text>
+ </xsl:attribute>
+ <xsl:variable name="labelwidth">
+ <xsl:choose>
+ <xsl:when test="w:pPr/w:ind/@w:hanging">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:pPr/w:ind/@w:hanging,'twip')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="w:pPr/w:ind/@w:first-line">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat('-',w:pPr/w:ind/@w:first-line,'twip')"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="leftwidth">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:pPr/w:ind/@w:left,'twip')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="text:space-before">
+ <xsl:choose>
+ <xsl:when test="(number($leftwidth)-number($labelwidth)) &gt; 0 ">
+ <xsl:value-of select="concat(number($leftwidth)-number($labelwidth),'cm')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" '0cm' "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:attribute name="text:min-label-width">
+ <xsl:choose>
+ <xsl:when test="$labelwidth &gt; 0">
+ <xsl:value-of select="concat($labelwidth,'cm')"/>
+ </xsl:when>
+ <xsl:otherwise>0cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="w:suff/@w:val='Space'">
+ <xsl:attribute name="text:min-label-distance">0.20cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:pPr/w:tabs/w:tab/@w:pos">
+ <xsl:variable name="tabpos">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:pPr/w:tabs/w:tab/@w:pos,'twip')"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="number($tabpos) &gt; (number($leftwidth)-number($labelwidth))">
+ <xsl:attribute name="text:min-label-distance">
+ <xsl:value-of select="concat(number($tabpos)+number($labelwidth)-number($leftwidth),'cm')"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+ <!-- avoid listPr in textbox. :( glu -->
+ <xsl:template match="w:p[w:pPr/w:listPr[w:ilvl and w:ilfo]]">
+ <xsl:call-template name="genlist"/>
+ </xsl:template>
+ <xsl:template name="genlist">
+ <xsl:variable name="currlistid" select="w:pPr/w:listPr/w:ilfo/@w:val"/>
+ <xsl:variable name="currlistlvl" select="w:pPr/w:listPr/w:ilvl/@w:val"/>
+ <xsl:variable name="firstoccur" select="/descendant::w:pPr[w:listPr/w:ilfo/@w:val = $currlistid][1]"/>
+ <xsl:variable name="rootlistid" select="/w:wordDocument/w:lists/w:list[@w:ilfo=$currlistid]/w:ilst/@w:val"/>
+ <xsl:variable name="rootlistname" select="/w:wordDocument/w:lists/w:listDef[@w:listDefId =$rootlistid ]/w:listStyleLink/@w:val"/>
+ <xsl:element name="text:list">
+ <xsl:attribute name="text:style-name">
+ <xsl:choose>
+ <xsl:when test="string-length($rootlistname) &gt; 0">
+ <xsl:value-of select="translate($rootlistname,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_')"/>
+ </xsl:when>
+ <xsl:otherwise>List<xsl:value-of select="count($firstoccur/preceding::w:listPr)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="preceding::w:pPr/w:listPr/w:ilfo/@w:val = w:pPr/w:listPr/w:ilfo/@w:val">
+ <xsl:attribute name="text:continue-numbering">true</xsl:attribute>
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="levels">
+ <xsl:with-param name="level" select="$currlistlvl"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="levels">
+ <xsl:with-param name="level" select="$currlistlvl"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="levels">
+ <xsl:param name="level"/>
+ <xsl:choose>
+ <xsl:when test="$level = '0'">
+ <xsl:call-template name="process-common-paragraph"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:element name="text:list">
+ <xsl:element name="text:list-item">
+ <xsl:call-template name="levels">
+ <xsl:with-param name="level" select="$level -1"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="w:style" mode="list">
+ <xsl:variable name="listname" select="@w:styleId"/>
+ <xsl:if test="/w:wordDocument/w:lists/w:listDef[w:styleLink/@w:val=$listname]">
+ <text:list-style style:name="{$listname}">
+ <xsl:apply-templates select="/w:wordDocument/w:lists/w:listDef[w:styleLink/@w:val=$listname]/w:lvl"/>
+ </text:list-style>
+ </xsl:if>
+ </xsl:template>
+ <!-- for create outline style in office:styles -->
+ <xsl:template name="create-outline-style">
+ <xsl:element name="text:outline-style">
+ <xsl:call-template name="outline-level-style">
+ <xsl:with-param name="level" select="1"/>
+ </xsl:call-template>
+ <xsl:call-template name="outline-level-style">
+ <xsl:with-param name="level" select="2"/>
+ </xsl:call-template>
+ <xsl:call-template name="outline-level-style">
+ <xsl:with-param name="level" select="3"/>
+ </xsl:call-template>
+ <xsl:call-template name="outline-level-style">
+ <xsl:with-param name="level" select="4"/>
+ </xsl:call-template>
+ <xsl:call-template name="outline-level-style">
+ <xsl:with-param name="level" select="5"/>
+ </xsl:call-template>
+ <xsl:call-template name="outline-level-style">
+ <xsl:with-param name="level" select="6"/>
+ </xsl:call-template>
+ <xsl:call-template name="outline-level-style">
+ <xsl:with-param name="level" select="7"/>
+ </xsl:call-template>
+ <xsl:call-template name="outline-level-style">
+ <xsl:with-param name="level" select="8"/>
+ </xsl:call-template>
+ <xsl:call-template name="outline-level-style">
+ <xsl:with-param name="level" select="9"/>
+ </xsl:call-template>
+ <xsl:call-template name="outline-level-style">
+ <xsl:with-param name="level" select="10"/>
+ </xsl:call-template>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="outline-level-style">
+ <xsl:param name="level"/>
+ <xsl:element name="text:outline-level-style">
+ <xsl:choose>
+ <xsl:when test="(w:style[@w:type = 'paragraph' and w:pPr/w:outlineLvl/@w:val = $level -1 and w:pPr/w:listPr ]/w:pPr/w:listPr)[position()=1]">
+ <xsl:apply-templates select="(w:style[@w:type = 'paragraph' and w:pPr/w:outlineLvl/@w:val = $level -1 and w:pPr/w:listPr ]/w:pPr/w:listPr)[position()=1]" mode="outline">
+ <xsl:with-param name="outlinelevel" select="$level"/>
+ </xsl:apply-templates>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:level">
+ <xsl:value-of select="$level"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:num-format"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="w:listPr" mode="outline">
+ <xsl:param name="outlinelevel"/>
+ <xsl:variable name="currlistid" select="w:ilfo/@w:val"/>
+ <xsl:variable name="currlistlevel">
+ <xsl:choose>
+ <xsl:when test="w:ilvl">
+ <xsl:value-of select="w:ilvl/@w:val"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="rootlistid" select="/w:wordDocument/w:lists/w:list[@w:ilfo=$currlistid]/w:ilst/@w:val"/>
+ <xsl:variable name="rootlist" select="/w:wordDocument/w:lists/w:listDef[@w:listDefId =$rootlistid ]"/>
+ <xsl:if test="$rootlist/w:lvl[@w:ilvl=$currlistlevel]">
+ <xsl:for-each select="$rootlist/w:lvl[@w:ilvl=$currlistlevel]">
+ <xsl:call-template name="list-styles-common">
+ <xsl:with-param name="listtype">
+ <xsl:choose>
+ <xsl:when test="w:nfc/@w:val">
+ <xsl:value-of select="w:nfc/@w:val"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ <xsl:with-param name="currlevel" select="$outlinelevel"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="not($rootlist/w:lvl[@w:ilvl=$currlistlevel])">
+ <xsl:attribute name="text:level">
+ <xsl:value-of select="'1'"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="nfc2numformat">
+ <xsl:param name="nfcvalue"/>
+ <xsl:param name="prefix"/>
+ <xsl:param name="suffix"/>
+ <xsl:choose>
+ <xsl:when test="$nfcvalue=0">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=1">
+ <xsl:attribute name="style:num-format">I</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=2">
+ <xsl:attribute name="style:num-format">i</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=3">
+ <xsl:attribute name="style:num-format">A</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=4">
+ <xsl:attribute name="style:num-format">a</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$nfcvalue=26">
+ <xsl:attribute name="style:num-prefix">
+ <xsl:value-of select="$prefix"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:num-suffix">
+ <xsl:value-of select="concat( '.' , $suffix )"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=27 or $nfcvalue=29">
+ <xsl:attribute name="style:num-prefix">
+ <xsl:value-of select="concat( $prefix, '(' )"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:num-suffix">
+ <xsl:value-of select="concat( ')' , $suffix )"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=57">
+ <xsl:attribute name="style:num-prefix">
+ <xsl:value-of select="concat( $prefix, '- ' )"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:num-suffix">
+ <xsl:value-of select="concat( ' -' , $suffix )"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:num-prefix">
+ <xsl:value-of select="$prefix"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:num-suffix">
+ <xsl:value-of select="$suffix"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!-- xsl:template name="nfc2numformat">
+ <xsl:param name="nfcvalue"/>
+ <xsl:param name="prefix"/>
+ <xsl:param name="suffix"/>
+ <xsl:choose>
+ <xsl:when test="$nfcvalue=0">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=1">
+ <xsl:attribute name="style:num-format">I</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=2">
+ <xsl:attribute name="style:num-format">i</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=3">
+ <xsl:attribute name="style:num-format">A</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=4">
+ <xsl:attribute name="style:num-format">a</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=10 or $nfcvalue=11 or $nfcvalue=17 or $nfcvalue=29 or $nfcvalue=33 or $nfcvalue=35 or $nfcvalue=36 or $nfcvalue=37 or $nfcvalue=39 or $nfcvalue=44">
+ <xsl:attribute name="style:num-format">一, 二, 三, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=12">
+ <xsl:attribute name="style:num-format">ア, イ, ウ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=13">
+ <xsl:attribute name="style:num-format">イ, ロ, ãƒ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=14 or $nfcvalue=19">
+ <xsl:attribute name="style:num-format">1, 2, 3, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=16">
+ <xsl:attribute name="style:num-format">壱, å¼, å‚, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=18 or $nfcvalue=28">
+ <xsl:attribute name="style:num-format">â‘ , â‘¡, â‘¢, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=20">
+ <xsl:attribute name="style:num-format">ï½±, ï½², ï½³, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=21">
+ <xsl:attribute name="style:num-format">イ, ロ, ハ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=24">
+ <xsl:attribute name="style:num-format">가, 나, 다, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=25">
+ <xsl:attribute name="style:num-format">ㄱ, ㄴ, ㄷ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=30">
+ <xsl:attribute name="style:num-format">甲, 乙, 丙, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=31">
+ <xsl:attribute name="style:num-format">å­, 丑, 寅, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=34">
+ <xsl:attribute name="style:num-format">壹, è²³, åƒ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=38">
+ <xsl:attribute name="style:num-format">壹, è´°, å, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=41 or $nfcvalue=42 or $nfcvalue=43">
+ <xsl:attribute name="style:num-format">ì¼, ì´, 삼, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=45 or $nfcvalue=47">
+ <xsl:attribute name="style:num-format">×, ב, ×’, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=46 or $nfcvalue=48">
+ <xsl:attribute name="style:num-format">أ, ب, ت, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=53">
+ <xsl:attribute name="style:num-format">à¸, ข, ฃ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue!=57 and $nfcvalue &gt; 48 and $nfcvalue &lt; 60">
+ <xsl:attribute name="style:num-format">Native Numbering</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="$nfcvalue=26">
+ <xsl:attribute name="style:num-prefix"><xsl:value-of select="$prefix"/></xsl:attribute>
+ <xsl:attribute name="style:num-suffix"><xsl:value-of select="concat( '.' , $suffix )"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=27 or $nfcvalue=29">
+ <xsl:attribute name="style:num-prefix"><xsl:value-of select="concat( $prefix, '(' )"/></xsl:attribute>
+ <xsl:attribute name="style:num-suffix"><xsl:value-of select="concat( ')' , $suffix )"/></xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$nfcvalue=57">
+ <xsl:attribute name="style:num-prefix"><xsl:value-of select="concat( $prefix, '- ' )"/></xsl:attribute>
+ <xsl:attribute name="style:num-suffix"><xsl:value-of select="concat( ' -' , $suffix )"/></xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:num-prefix"><xsl:value-of select="$prefix"/></xsl:attribute>
+ <xsl:attribute name="style:num-suffix"><xsl:value-of select="$suffix"/></xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template -->
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo_page.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo_page.xsl
new file mode 100644
index 000000000000..5350b61d53cd
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo_page.xsl
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt v">
+ <xsl:template match="w:footnotePr" mode="config">
+ <text:notes-configuration text:note-class="footnote" text:citation-style-name="Footnote_20_Symbol">
+ <xsl:if test="w:pos">
+ <xsl:choose>
+ <xsl:when test="w:pos/@w:val = 'beneath-text'">
+ <xsl:attribute name="text:footnotes-position">document</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:footnotes-position">page</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="w:numStart">
+ <xsl:choose>
+ <xsl:when test="w:numStart/@w:val - 1 &gt; 0">
+ <xsl:attribute name="text:start-value">
+ <xsl:value-of select="w:numStart/@w:val - 1"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:start-value">
+ <xsl:value-of select=" '1' "/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--xsl:attribute name="text:start-value"><xsl:value-of select="w:numStart/@w:val - 1"/></xsl:attribute-->
+ </xsl:if>
+ <xsl:if test="w:numFmt">
+ <xsl:call-template name="convert-number-format">
+ <xsl:with-param name="number-format" select="w:numFmt/@w:val"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="w:numRestart">
+ <xsl:choose>
+ <xsl:when test="w:numRestart/@w:val = 'continuous'">
+ <xsl:attribute name="text:start-numbering-at">document</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:numRestart/@w:val = 'each-sect'">
+ <xsl:attribute name="text:start-numbering-at">chapter</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:start-numbering-at">page</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <!--
+ <xsl:if test="w:footnote[@w:type = 'continuation-separator']">
+ <text:footnote-continuation-notice-backward>
+ <xsl:value-of select="normalize-space(w:footnote[@w:type = 'continuation-separator'])"/>
+ </text:footnote-continuation-notice-backward>
+ </xsl:if>
+ <xsl:if test="w:footnote[@w:type = 'continuation-notice']">
+ <text:footnote-continuation-notice-forward>
+ <xsl:value-of select="normalize-space(w:footnote[@w:type = 'continuation-notice'])"/>
+ </text:footnote-continuation-notice-forward>
+ </xsl:if>
+ -->
+ </text:notes-configuration>
+ </xsl:template>
+ <xsl:template match="w:endnotePr" mode="config">
+ <text:notes-configuration text:note-class="endnote" text:citation-style-name="Endnote_20_Symbol">
+ <xsl:if test="w:numStart">
+ <xsl:choose>
+ <xsl:when test="(w:numStart/@w:val - 1) &gt; 0">
+ <xsl:attribute name="text:start-value">
+ <xsl:value-of select="w:numStart/@w:val - 1"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:start-value">
+ <xsl:value-of select=" '1' "/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--xsl:attribute name="text:start-value"><xsl:value-of select="w:numStart/@w:val - 1"/></xsl:attribute -->
+ </xsl:if>
+ <xsl:if test="w:numFmt">
+ <xsl:call-template name="convert-number-format">
+ <xsl:with-param name="number-format" select="w:numFmt/@w:val"/>
+ </xsl:call-template>
+ </xsl:if>
+ </text:notes-configuration>
+ </xsl:template>
+ <xsl:template name="convert-number-format">
+ <xsl:param name="number-format"/>
+ <xsl:choose>
+ <xsl:when test="$number-format = 'decimal' or $number-format = 'decimal-half-width'">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'decimal-zero'">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ <xsl:attribute name="style:num-prefix">0</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'decimal-enclosed-fullstop'">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ <xsl:attribute name="style:num-prefix">.</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'decimal-enclosed-paren'">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ <xsl:attribute name="style:num-prefix">(</xsl:attribute>
+ <xsl:attribute name="style:num-suffix">)</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'number-in-dash'">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ <xsl:attribute name="style:num-prefix">-</xsl:attribute>
+ <xsl:attribute name="style:num-suffix">-</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'upper-letter'">
+ <xsl:attribute name="style:num-format">A</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'lower-letter'">
+ <xsl:attribute name="style:num-format">a</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'upper-roman'">
+ <xsl:attribute name="style:num-format">I</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'lower-roman'">
+ <xsl:attribute name="style:num-format">i</xsl:attribute>
+ </xsl:when>
+ <!-- ordinal, cardinal-text, ordinal-text, hex, chicago, bullet, ideograph-zodiac-traditional,
+ vietnamese-counting, russian-lower, russian-upper, hindi-vowels, hindi-consonants, hindi-numbers, hindi-counting -->
+ <xsl:otherwise>
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="w:bgPict">
+ <xsl:if test="w:background/@w:bgcolor">
+ <xsl:attribute name="fo:background-color">
+ <xsl:call-template name="MapConstColor">
+ <xsl:with-param name="color" select="w:background/@w:bgcolor"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:background/@w:background">
+ <style:background-image>
+ <office:binary-data>
+ <xsl:variable name="the-image" select="key('imagedata',w:background/@w:background)"/>
+ <xsl:value-of select="translate($the-image/text(),'&#9;&#10;&#13;&#32;','' ) "/>
+ </office:binary-data>
+ </style:background-image>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="w:sectPr" mode="page-layout">
+ <style:page-layout>
+ <xsl:attribute name="style:name">pm<xsl:number from="/w:wordDocument/w:body" level="any" count="w:sectPr" format="1"/>
+ </xsl:attribute>
+ <style:page-layout-properties>
+ <xsl:call-template name="page-layout-properties"/>
+ <xsl:apply-templates select="/w:wordDocument/w:bgPict"/>
+ </style:page-layout-properties>
+ <style:header-style>
+ <style:header-footer-properties style:dynamic-spacing="true" fo:margin-bottom="0">
+ <xsl:variable name="header-margin">
+ <xsl:choose>
+ <xsl:when test="w:pgMar/@w:header">
+ <xsl:value-of select="w:pgMar/@w:header"/>
+ </xsl:when>
+ <xsl:otherwise>720</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="header-margin-diff">
+ <xsl:value-of select="w:pgMar/@w:top - $header-margin"/>
+ </xsl:variable>
+ <xsl:variable name="min-height">
+ <xsl:choose>
+ <xsl:when test="$header-margin-diff &gt; 0">
+ <xsl:value-of select="$header-margin-diff div 567.0"/>
+ </xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="fo:min-height">
+ <xsl:value-of select="concat($min-height, 'cm')"/>
+ </xsl:attribute>
+ </style:header-footer-properties>
+ </style:header-style>
+ </style:page-layout>
+ </xsl:template>
+ <xsl:template match="w:sectPr" mode="master-page">
+ <!-- style:page-layout style:style-->
+
+ <xsl:variable name="master-page-number">
+ <xsl:number count="w:sectPr" from="/w:wordDocument/w:body" level="any" format="1"/>
+ </xsl:variable>
+ <xsl:if test="$master-page-number = '1'">
+ <style:master-page style:next-style-name="Standard-1" style:page-layout-name="pm1" style:display-name="First Page" style:name="First_20_Page">
+ <style:header>
+ <xsl:apply-templates select="w:hdr[@w:type='first']/child::*" mode="dispatch"/>
+ </style:header>
+ <style:footer>
+ <xsl:apply-templates select="w:ftr[@w:type='first']/child::*" mode="dispatch"/>
+ </style:footer>
+ </style:master-page>
+ </xsl:if>
+ <xsl:element name="style:master-page">
+ <xsl:attribute name="style:name">Standard-<xsl:value-of select="$master-page-number"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:page-layout-name">
+ <xsl:value-of select="concat('pm', $master-page-number)"/>
+ </xsl:attribute>
+
+ <style:header>
+ <xsl:apply-templates select="w:hdr[@w:type='odd']/child::*" mode="dispatch"/>
+ </style:header>
+ <style:header-left>
+ <xsl:apply-templates select="w:hdr[@w:type='even']/child::*" mode="dispatch"/>
+ </style:header-left>
+ <style:footer>
+ <xsl:apply-templates select="w:ftr[@w:type='odd']/child::*" mode="dispatch"/>
+ </style:footer>
+ <style:footer-left>
+ <xsl:apply-templates select="w:ftr[@w:type='even']/child::*" mode="dispatch"/>
+ </style:footer-left>
+
+ <!-- Headers and footers-->
+ <!--
+ <style:header-style>
+ <style:header-footer-properties>
+ <xsl:attribute name="fo:min-height"><xsl:call-template name="ConvertMeasure"><xsl:with-param name="value" select="concat(w:pgMar/@w:header,'twip')"/></xsl:call-template>cm</xsl:attribute>
+ <xsl:attribute name="fo:margin-bottom">0.792cm</xsl:attribute>
+ <xsl:attribute name="style:dynamic-spacing">true</xsl:attribute>
+ </style:header-footer-properties>
+ </style:header-style>
+ <style:footer-style>
+ <style:header-footer-properties>
+ <xsl:attribute name="fo:min-height"><xsl:call-template name="ConvertMeasure"><xsl:with-param name="value" select="concat(w:pgMar/@w:footer,'twip')"/></xsl:call-template>cm</xsl:attribute>
+ <xsl:attribute name="fo:margin-top">0.792cm</xsl:attribute>
+ <xsl:attribute name="style:dynamic-spacing">true</xsl:attribute>
+ </style:header-footer-properties>
+ </style:footer-style>
+ -->
+
+ <!-- any examples for w:titlePg usage? -->
+ <xsl:if test="not(w:titlePg)">
+ <xsl:apply-templates select="w:hdr[@w:type='odd']"/>
+ <xsl:apply-templates select="w:hdr[@w:type='even']"/>
+ <xsl:apply-templates select="w:ftr[@w:type='odd']"/>
+ <xsl:apply-templates select="w:ftr[@w:type='even']"/>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="w:hdr">
+ <!--
+ <xsl:choose>
+ <xsl:when test="@w:type = 'odd'">
+ <style:header>
+ <xsl:apply-templates select="wx:pBdrGroup | w:p | w:tbl"/>
+ </style:header>
+ </xsl:when>
+ <xsl:when test="@w:type = 'even'">
+ <style:header>
+ <xsl:apply-templates select="wx:pBdrGroup | w:p | w:tbl"/>
+ </style:header>
+ </xsl:when>
+ </xsl:choose>
+ -->
+ </xsl:template>
+ <xsl:template match="w:ftr">
+ <!--
+ <xsl:choose>
+ <xsl:when test="@w:type = 'odd'">
+ <style:footer>
+ <xsl:apply-templates select="wx:pBdrGroup | w:p | w:tbl"/>
+ </style:footer>
+ </xsl:when>
+ <xsl:when test="@w:type = 'even'">
+ <style:footer-left>
+ <xsl:apply-templates select="wx:pBdrGroup | w:p | w:tbl"/>
+ </style:footer-left>
+ </xsl:when>
+ </xsl:choose>
+ -->
+ </xsl:template>
+ <xsl:template match="wx:pBdrGroup">
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:template>
+ <!-- xsl:template name="convert-number-format">
+ <xsl:param name="number-format"/>
+ <xsl:choose>
+ <xsl:when test="$number-format = 'decimal' or $number-format = 'decimal-half-width'">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'decimal-zero'">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ <xsl:attribute name="style:num-prefix">0</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'decimal-enclosed-fullstop'">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ <xsl:attribute name="style:num-prefix">.</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'decimal-enclosed-paren'">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ <xsl:attribute name="style:num-prefix">(</xsl:attribute>
+ <xsl:attribute name="style:num-suffix">)</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'number-in-dash'">
+ <xsl:attribute name="style:num-format">1</xsl:attribute>
+ <xsl:attribute name="style:num-prefix">-</xsl:attribute>
+ <xsl:attribute name="style:num-suffix">-</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'upper-letter'">
+ <xsl:attribute name="style:num-format">A</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'lower-letter'">
+ <xsl:attribute name="style:num-format">a</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'upper-roman'">
+ <xsl:attribute name="style:num-format">I</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'lower-roman'">
+ <xsl:attribute name="style:num-format">i</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'decimal-full-width' or $number-format = 'decimal-full-width2'">
+ <xsl:attribute name="style:num-format">1, 2, 3, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'decimal-enclosed-circle-chinese' or $number-format = 'decimal-enclosed-circle'">
+ <xsl:attribute name="style:num-format">â‘ , â‘¡, â‘¢, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ideograph-enclosed-circle'">
+ <xsl:attribute name="style:num-format">一, 二, 三, ...</xsl:attribute>
+ <xsl:attribute name="style:num-prefix">(</xsl:attribute>
+ <xsl:attribute name="style:num-suffix">)</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'chinese-counting-thousand' or $number-format = 'ideograph-digital' or $number-format = 'japanese-counting' or $number-format = 'japanese-digital-ten-thousand' or $number-format = 'taiwanese-counting-thousand' or $number-format = 'taiwanese-counting' or $number-format = 'taiwanese-digital' or $number-format = 'chinese-counting' or $number-format = 'korean-digital2' or $number-format = 'chinese-not-impl'">
+ <xsl:attribute name="style:num-format">一, 二, 三, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'chinese-legal-simplified'">
+ <xsl:attribute name="style:num-format">壹, è´°, å, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ideograph-legal-traditional'">
+ <xsl:attribute name="style:num-format">壹, è²³, åƒ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ideograph-traditional'">
+ <xsl:attribute name="style:num-format">甲, 乙, 丙, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ideograph-zodiac'">
+ <xsl:attribute name="style:num-format">å­, 丑, 寅, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'japanese-legal'">
+ <xsl:attribute name="style:num-format">壱, å¼, å‚, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'aiueo-full-width'">
+ <xsl:attribute name="style:num-format">ア, イ, ウ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'aiueo'">
+ <xsl:attribute name="style:num-format">ï½±, ï½², ï½³, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'iroha-full-width'">
+ <xsl:attribute name="style:num-format">イ, ロ, ãƒ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'iroha'">
+ <xsl:attribute name="style:num-format">イ, ロ, ハ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'korean-digital' or $number-format = 'korean-counting' or $number-format = 'korean-legal'">
+ <xsl:attribute name="style:num-format">ì¼, ì´, 삼, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'chosung'">
+ <xsl:attribute name="style:num-format">ㄱ, ㄴ, ㄷ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'ganada'">
+ <xsl:attribute name="style:num-format">가, 나, 다, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'arabic-alpha' or $number-format = 'arabic-abjad'">
+ <xsl:attribute name="style:num-format">أ, ب, ت, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'thai-letters' or $number-format = 'thai-numbers' or $number-format = 'thai-counting'">
+ <xsl:attribute name="style:num-format">à¸, ข, ฃ, ...</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$number-format = 'hebrew-1' or $number-format = 'hebrew-2'">
+ <xsl:attribute name="style:num-format">×, ב, ×’, ...</xsl:attribute>
+ </xsl:when>
+ < ordinal, cardinal-text, ordinal-text, hex, chicago, bullet, ideograph-zodiac-traditional,
+ vietnamese-counting, russian-lower, russian-upper, hindi-vowels, hindi-consonants, hindi-numbers, hindi-counting >
+ <xsl:otherwise>
+ <xsl:attribute name="style:num-format">Native Numbering</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template -->
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo_path.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo_path.xsl
new file mode 100644
index 000000000000..736d62a38015
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo_path.xsl
@@ -0,0 +1,1818 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt v">
+ <xsl:include href="../../common/math.xsl"/>
+ <xsl:template name="dummy">
+ <xsl:call-template name="test"/>
+ </xsl:template>
+ <xsl:template name="test-arc">
+ <xsl:call-template name="svg-arc2vml-arc">
+ <!-- M 125,75 a100,50 0 ?,? 100,50 -->
+ <xsl:with-param name="x0" select="125"/>
+ <xsl:with-param name="y0" select="75"/>
+ <xsl:with-param name="rx" select="100"/>
+ <xsl:with-param name="ry" select="50"/>
+ <xsl:with-param name="x-axis-rotation" select="0"/>
+ <xsl:with-param name="large-arc-flag" select="0"/>
+ <xsl:with-param name="sweep-flag" select="0"/>
+ <xsl:with-param name="x" select="225"/>
+ <xsl:with-param name="y" select="125"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template name="test">
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="'m,l,4500,3420,2520,6120,4500r2160,l6660,3240,8460,2520,8460,,3960,540r360,720l2700,1260,3240,540,,xe'"/>
+ </xsl:call-template>
+ </xsl:template>
+ <xsl:template name="vmlpath2svgpath">
+ <xsl:param name="vml-path"/>
+ <xsl:param name="svg-path" select="''"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:param name="last-command" select="'m'"/>
+ <xsl:param name="current-x" select="'0'"/>
+ <xsl:param name="current-y" select="'0'"/>
+ <xsl:variable name="command-and-newpos">
+ <xsl:call-template name="get-path-command">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="last-command" select="$last-command"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="command" select="substring-before($command-and-newpos , ':')"/>
+ <xsl:variable name="newpos" select="substring-after($command-and-newpos , ':')"/>
+ <xsl:choose>
+ <xsl:when test="$command = 'm' ">
+ <!-- absolute moveto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' M ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 't' ">
+ <!-- relative moveto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' m ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x"/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'l' ">
+ <!-- absolute lineto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' L ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'r' ">
+ <!-- relative lineto -->
+ <!-- 'l' command is not supported currently, so we use 'L' -->
+ <xsl:message>'l' command is not supported currently, so we use 'L'. This may case problem.</xsl:message>
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' L ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="new-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x "/>
+ <xsl:variable name="new-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <!-- 'l' command is not supported currently-->
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , $new-x ,' ' , $new-y , ' ') "/>
+ <!-- xsl:with-param name="svg-path" select=" concat($new-svg-path , substring-before( $num-and-pos , ':') , ' ') "/ -->
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'dummyH' ">
+ <!-- absolute horizontal lineto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' l ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , substring-before( $num-and-pos , ':') , ' ' , $current-y , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( $num-and-pos , ':') "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'dummyh' ">
+ <!-- relative horizontal lineto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' l ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , substring-before( $num-and-pos , ':') + $current-x , ' ' , $current-y , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( $num-and-pos , ':') + $current-x"/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'dummyV' ">
+ <!-- absolute vertical lineto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' l ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , $current-x , ' ' , substring-before( $num-and-pos , ':') , ' ' ) "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x"/>
+ <xsl:with-param name="current-y" select=" substring-before( $num-and-pos , ':') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'dummyv' ">
+ <!-- relative horizontal lineto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' l ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , $current-x , ' ' , substring-before( $num-and-pos , ':') + $current-y , ' ' ) "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x"/>
+ <xsl:with-param name="current-y" select=" substring-before( $num-and-pos , ':') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'c' ">
+ <!-- absolute curveto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' C ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="4"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'v' ">
+ <!-- relative curveto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' c ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="4"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'dummyS' ">
+ <!-- absolute shorthand/smooth curveto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' c ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="control-1">
+ <xsl:choose>
+ <xsl:when test="string-length(translate($last-command, 'CcSs','') )= 0 ">
+ <xsl:variable name="previous-control-2">
+ <xsl:call-template name="get-number-before">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="count" select="2"/>
+ <xsl:with-param name="skipcount" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="substring-before($previous-control-2 , ':') "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($control-and-pos, ':') "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , $control-1 , ' ' , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'dummys' ">
+ <!-- absolute shorthand/smooth curveto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' v ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="control-1">
+ <xsl:choose>
+ <xsl:when test="string-length(translate($last-command, 'CcSs' , '')) = 0 ">
+ <xsl:variable name="previous-control-2">
+ <xsl:call-template name="get-number-before">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="count" select="2"/>
+ <xsl:with-param name="skipcount" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="substring-before($previous-control-2 , ':') "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="substring-before($control-and-pos, ':') "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , $control-1 , ' ' , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'dummyQ' ">
+ <!-- absolute quadratic bézier curves -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' qb ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'dummyq' ">
+ <!-- relative quadratic bézier curves -->
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="control" select="substring-before( $control-and-pos , ':') "/>
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' qb ' , substring-before($control,' ') + $current-x , ' ' , substring-after($control , ' ') + $current-y ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="number" select="substring-before($num-and-pos, ':')"/>
+ <xsl:variable name="absolute-number" select="concat(substring-before($number, ' ') + $current-x , ' ' , substring-after($number, ' ') + $current-y)"/>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ' , $absolute-number , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( $absolute-number , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( $absolute-number , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'x' ">
+ <!--dummy or $command = 'z' "-->
+ <!-- closepath -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' Z ' ) "/>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'e' ">
+ <!-- end path -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' N ' )"/>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!--Code below is for the support of h-command like ha,hb....hi, maybe still need to revise-->
+ <xsl:when test="$command = 'ha' ">
+ <xsl:variable name="new-svg-path" select="$svg-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hb' ">
+ <xsl:variable name="new-svg-path" select="$svg-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hc' ">
+ <xsl:variable name="new-svg-path" select="$svg-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hd' ">
+ <xsl:variable name="new-svg-path" select="$svg-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'he' ">
+ <xsl:variable name="new-svg-path" select="$svg-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hf' ">
+ <xsl:variable name="new-svg-path" select="$svg-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hg' ">
+ <xsl:variable name="new-svg-path" select="$svg-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hh' ">
+ <xsl:variable name="new-svg-path" select="$svg-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hi' ">
+ <xsl:variable name="new-svg-path" select="$svg-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'nf' or $command = 'ns' ">
+ <xsl:variable name="new-svg-path" select="$svg-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'al' ">
+ <!-- absolute moveto -->
+ <xsl:variable name="new-svg-path" select="concat($svg-path ,' W ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="6"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2svgpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="svg-path" select=" concat($new-svg-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$svg-path"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--
+ **Template vmlpath2enhancedpath**
+ The template is resposible for converting the vml-path to enhanced-path, because the svg:path
+ cann't support command a now.(But heard that will be supported in OOo3.0)
+ And the 2nd reason of using an enhanced-path is that enhanced-path have a perfect maping to
+ vmlpath.(You will find out that often,we even don't need to change the parameters).
+ -->
+ <xsl:template name="vmlpath2enhancedpath">
+ <xsl:param name="vml-path"/>
+ <xsl:param name="enhanced-path" select="''"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:param name="last-command" select="'m'"/>
+ <xsl:param name="current-x" select="'0'"/>
+ <xsl:param name="current-y" select="'0'"/>
+ <xsl:variable name="command-and-newpos">
+ <xsl:call-template name="get-path-command">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="last-command" select="$last-command"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="command" select="substring-before($command-and-newpos , ':')"/>
+ <xsl:variable name="newpos" select="substring-after($command-and-newpos , ':')"/>
+ <xsl:choose>
+ <xsl:when test="$command = 'm' ">
+ <!--####Notice that the "m 0,0,1,1,1,1" means two lines-->
+ <!-- absolute moveto -->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' M ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'l' ">
+ <!-- absolute lineto -->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' L ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'x' ">
+ <!--dummy or $command = 'z' "-->
+ <!-- closepath -->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' Z ' ) "/>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'e' ">
+ <!-- end path -->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' N ' )"/>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'c' ">
+ <!-- absolute curveto -->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' C ' ) "/>
+ <xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="4"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 't' ">
+ <!-- relative moveto -->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' M ' ) "/>
+ <!--####maybe this is not crect because t r and v hasn't direct image in enhaced-path-->
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x"/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'r' ">
+ <!-- relative lineto -->
+ <!--####maybe this is not crect because 't' 'r' and 'v' hasn't direct image in enhaced-path-->
+ <!-- 'l' command is not supported currently, so we use 'L' -->
+ <xsl:message>'l' command is not supported currently, so we use 'L'. This may case problem.</xsl:message>
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' L ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="new-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x "/>
+ <xsl:variable name="new-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <!-- 'l' command is not supported currently-->
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , $new-x ,' ' , $new-y , ' ') "/>
+ <!-- xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/ -->
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'v' ">
+ <!-- relative curveto -->
+ <!--####maybe this is not crect because 't' 'r' and 'v' hasn't direct image in enhaced-path-->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' C ' ) "/>
+ <!--<xsl:variable name="control-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="4"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $control-and-pos , ':') "/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $control-and-pos , ':') , ' ' , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') + $current-x "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') + $current-y "/>
+ </xsl:call-template>-
+ -->
+ <xsl:variable name="x1">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="y1">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $x1 , ':')"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="x2">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $y1 , ':')"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="y2">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $x2 , ':')"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="x">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $y2 , ':')"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="y">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after( $x , ':')"/>
+ <xsl:with-param name="count" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="val_x1">
+ <xsl:value-of select="substring-before( $x1 , ':')+$current-x"/>
+ </xsl:variable>
+ <xsl:variable name="val_y1">
+ <xsl:value-of select="substring-before( $y1 , ':')+$current-y"/>
+ </xsl:variable>
+ <xsl:variable name="val_x2">
+ <xsl:value-of select="substring-before( $x2 , ':')+$current-x"/>
+ </xsl:variable>
+ <xsl:variable name="val_y2">
+ <xsl:value-of select="substring-before( $y2 , ':')+$current-y"/>
+ </xsl:variable>
+ <xsl:variable name="val_x">
+ <xsl:value-of select="substring-before( $x , ':')+$current-x"/>
+ </xsl:variable>
+ <xsl:variable name="val_y">
+ <xsl:value-of select="substring-before( $y , ':')+$current-y"/>
+ </xsl:variable>
+ <xsl:variable name="control-and-pos">
+ <xsl:value-of select="concat($val_x1, ' ',$val_y1, ' ',$val_x2, ' ',$val_y2, ' ' )"/>
+ </xsl:variable>
+ <xsl:variable name="num-and-pos">
+ <xsl:value-of select="concat($val_x, ' ',$val_y, ' ' )"/>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ',$control-and-pos , ' ' , $num-and-pos , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $y , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $val_x "/>
+ <xsl:with-param name="current-y" select=" $val_y "/>
+ </xsl:call-template>
+ </xsl:when>
+ <!--Code below is for the support of h-command like ha,hb....hi, maybe still need to revise-->
+ <xsl:when test="$command = 'ha' ">
+ <xsl:variable name="new-enhanced-path" select="$enhanced-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hb' ">
+ <xsl:variable name="new-enhanced-path" select="$enhanced-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hc' ">
+ <xsl:variable name="new-enhanced-path" select="$enhanced-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hd' ">
+ <xsl:variable name="new-enhanced-path" select="$enhanced-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'he' ">
+ <xsl:variable name="new-enhanced-path" select="$enhanced-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hf' ">
+ <xsl:variable name="new-enhanced-path" select="$enhanced-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hg' ">
+ <xsl:variable name="new-enhanced-path" select="$enhanced-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hh' ">
+ <xsl:variable name="new-enhanced-path" select="$enhanced-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'hi' ">
+ <xsl:variable name="new-enhanced-path" select="$enhanced-path"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'nf' ">
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' F ' )"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'ns' ">
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' S ' )"/>
+ <!--simply did nothing which might be wrong-->
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , ' ') "/>
+ <xsl:with-param name="position" select=" $newpos "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" $current-x "/>
+ <xsl:with-param name="current-y" select=" $current-y"/>
+ </xsl:call-template>
+ </xsl:when>
+ <!--The following is 6 command which deal with arcs:
+ ae ->T al -> U
+ at -> A ar -> B
+ wa -> W wr ->V
+ These pairs of commands have shown the perfect mapping from vml-path to enhanced-path-->
+ <xsl:when test="$command = 'ae' ">
+ <!-- arc on the screen with the start and end angles -->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' T ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="6"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'al' ">
+ <!-- ae command plus a implicitly moveto startpoint-->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' U ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="6"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'at' ">
+ <!-- arc on the screen with the edge box ,start points and end points(Notice it's counter-clockwise)-->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' A ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="8"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'ar' ">
+ <!-- at command plus a implicitly moveto startpoint-->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' B ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="8"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'wa' ">
+ <!-- arc on the screen with the edge box ,start points and end points(Notice it's clockwise)-->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' W ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="8"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'wr' ">
+ <!-- wa command plus a implicitly moveto startpoint-->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' V ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="8"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'qx' ">
+ <!-- Draw a quarter ellipse retated to the x-axis-->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' X ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'qy' ">
+ <!-- Draw a quarter ellipse retated to the y-axis-->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' Y ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="2"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$command = 'qb' ">
+ <!-- quadratic Bezier-->
+ <xsl:variable name="new-enhanced-path" select="concat($enhanced-path ,' Q ' ) "/>
+ <xsl:variable name="num-and-pos">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$newpos"/>
+ <xsl:with-param name="count" select="4"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="vmlpath2enhancedpath">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="enhanced-path" select=" concat($new-enhanced-path , substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="position" select=" substring-after( $num-and-pos , ':') "/>
+ <xsl:with-param name="last-command" select="$command"/>
+ <xsl:with-param name="current-x" select=" substring-before( substring-before( $num-and-pos , ':') , ' ') "/>
+ <xsl:with-param name="current-y" select=" substring-after( substring-before( $num-and-pos , ':') , ' ') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$enhanced-path"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-number-before">
+ <!-- get $count number of number before current position , output format:number1 number2 ... numberN:newpostion
+ skip $skipcount of numbers
+ -->
+ <xsl:param name="vml-path"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:param name="count" select="1"/>
+ <xsl:param name="skipcount" select="0"/>
+ <xsl:param name="number" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$count = 0">
+ <xsl:value-of select=" concat($number , ':' , $position) "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="num-pos">
+ <xsl:call-template name="get-number-position">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="direction" select="-1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="previous-num-and-pos">
+ <xsl:call-template name="get-previous-number">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$num-pos"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$skipcount &gt; 0">
+ <xsl:call-template name="get-number-before">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after($previous-num-and-pos , ':')"/>
+ <xsl:with-param name="count" select="$count"/>
+ <xsl:with-param name="skipcount" select="$skipcount - 1"/>
+ <xsl:with-param name="number" select="$number"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$skipcount = 0">
+ <xsl:variable name="new-number">
+ <xsl:if test="not($count = 1)">
+ <xsl:value-of select="' '"/>
+ </xsl:if>
+ <xsl:value-of select=" concat( substring-before($previous-num-and-pos , ':') , $number ) "/>
+ </xsl:variable>
+ <xsl:call-template name="get-number-before">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after($previous-num-and-pos , ':')"/>
+ <xsl:with-param name="count" select="$count - 1"/>
+ <xsl:with-param name="skipcount" select="0"/>
+ <xsl:with-param name="number" select="$new-number"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-number-after">
+ <!-- get $count number of number after current position, output format:number1 number2 ... numberN:newpostion
+ skip $skipcount of numbers
+ -->
+ <xsl:param name="vml-path"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:param name="count" select="1"/>
+ <xsl:param name="skipcount" select="0"/>
+ <xsl:param name="number" select="''"/>
+ <xsl:choose>
+ <xsl:when test="$count = 0">
+ <xsl:value-of select=" concat($number , ':' , $position) "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="num-pos">
+ <xsl:call-template name="get-number-position">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ <xsl:with-param name="direction" select="1"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="next-num-and-pos">
+ <xsl:call-template name="get-next-number">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$num-pos"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:if test="$skipcount &gt; 0">
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after($next-num-and-pos , ':')"/>
+ <xsl:with-param name="count" select="$count"/>
+ <xsl:with-param name="skipcount" select="$skipcount - 1"/>
+ <xsl:with-param name="number" select="$number"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$skipcount = 0">
+ <xsl:variable name="new-number">
+ <xsl:value-of select=" concat( $number , substring-before($next-num-and-pos , ':') ) "/>
+ <xsl:if test="not($count = 1)">
+ <xsl:value-of select="' '"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:call-template name="get-number-after">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="substring-after($next-num-and-pos , ':')"/>
+ <xsl:with-param name="count" select="$count - 1"/>
+ <xsl:with-param name="skipcount" select="0"/>
+ <xsl:with-param name="number" select="$new-number"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-number-position">
+ <!-- get the next number start position, direction should be 1 or -1-->
+ <xsl:param name="vml-path"/>
+ <xsl:param name="position"/>
+ <xsl:param name="direction" select="1"/>
+ <xsl:choose>
+ <xsl:when test="$direction = 1 and $position &gt; string-length($vml-path) ">0</xsl:when>
+ <xsl:when test="$direction = -1 and not($position &gt; 0)">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="curr-char">
+ <xsl:if test="$direction = 1">
+ <xsl:value-of select="substring($vml-path, $position , 1)"/>
+ </xsl:if>
+ <xsl:if test="$direction = -1">
+ <xsl:value-of select="substring($vml-path, $position -1 , 1)"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length(translate($curr-char , '+-.0123456789@' ,'')) = 0 ">
+ <!-- number start-->
+ <xsl:value-of select="$position"/>
+ </xsl:when>
+ <xsl:when test="not($curr-char = ' ')">
+ <xsl:value-of select="$position"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-number-position">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position + $direction"/>
+ <xsl:with-param name="direction" select="$direction"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="skip-space">
+ <xsl:param name="vml-path"/>
+ <xsl:param name="position"/>
+ <xsl:param name="skip-comma" select="'yes'"/>
+ <xsl:variable name="curr-char" select="substring($vml-path, $position , 1)"/>
+ <xsl:choose>
+ <xsl:when test="$curr-char = ',' and $skip-comma = 'yes'">
+ <xsl:call-template name="skip-space">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position+1"/>
+ <xsl:with-param name="skip-comma" select="'no'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$curr-char = ' '">
+ <xsl:call-template name="skip-space">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position+1"/>
+ <xsl:with-param name="skip-comma" select="$skip-comma"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$position"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="format-number-pos">
+ <xsl:param name="number"/>
+ <xsl:param name="position"/>
+ <xsl:choose>
+ <xsl:when test="contains($number,'@')">
+ <xsl:value-of select="concat('?f',translate($number,'@',''),':' , $position ) "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" concat(round($number) , ':' , $position) "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-next-number">
+ <!-- get the next number from current position-->
+ <xsl:param name="vml-path"/>
+ <xsl:param name="position"/>
+ <xsl:param name="number" select=" '' "/>
+ <xsl:choose>
+ <xsl:when test="$position &gt; string-length($vml-path) ">
+ <xsl:call-template name="format-number-pos">
+ <xsl:with-param name="number" select="$number"/>
+ <xsl:with-param name="position" select="$position"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="curr-char" select="substring($vml-path, $position , 1)"/>
+ <xsl:choose>
+ <xsl:when test="string-length(translate($curr-char , '.0123456789' ,'')) = 0 ">
+ <!-- is number -->
+ <xsl:call-template name="get-next-number">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position +1"/>
+ <xsl:with-param name="number" select="concat( $number, $curr-char) "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , '@+-' ,'') ) = 0 and string-length($number) = 0">
+ <!-- is number -->
+ <xsl:call-template name="get-next-number">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position +1"/>
+ <xsl:with-param name="number" select="concat( $number, $curr-char) "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test=" $number = '' and $curr-char = ',' ">
+ <xsl:variable name="new-pos">
+ <xsl:call-template name="skip-space">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat( '0:' , $new-pos )"/>
+ </xsl:when>
+ <xsl:when test=" $number = '' and not($curr-char = ',') ">
+ <xsl:variable name="new-pos">
+ <xsl:call-template name="skip-space">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat( '0:' , $new-pos)"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="new-pos">
+ <xsl:call-template name="skip-space">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:call-template name="format-number-pos">
+ <xsl:with-param name="number" select="$number"/>
+ <xsl:with-param name="position" select="$new-pos"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-previous-number">
+ <!-- get the previous number from current position-->
+ <xsl:param name="vml-path"/>
+ <xsl:param name="position"/>
+ <xsl:param name="number" select="''"/>
+ <xsl:choose>
+ <xsl:when test="not($position &gt; 0)">
+ <xsl:call-template name="format-number-pos">
+ <xsl:with-param name="number" select="$number"/>
+ <xsl:with-param name="position" select="'0'"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:variable name="curr-char" select="substring($vml-path, $position -1 , 1)"/>
+ <xsl:choose>
+ <xsl:when test="string-length(translate($curr-char , '.0123456789' ,'')) = 0 ">
+ <!-- is number -->
+ <xsl:call-template name="get-previous-number">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position -1"/>
+ <xsl:with-param name="number" select="concat($curr-char , $number) "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , '@+-' ,'') ) = 0 and string-length($number) = 0">
+ <!-- skip it -->
+ <xsl:call-template name="get-previous-number">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position -1"/>
+ <xsl:with-param name="number" select="$number "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , '+-' ,'') ) = 0 and string-length($number) &gt; 0">
+ <!-- finsh it with +/- -->
+ <xsl:call-template name="format-number-pos">
+ <xsl:with-param name="number" select="$number"/>
+ <xsl:with-param name="position" select="$position"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="format-number-pos">
+ <xsl:with-param name="number" select="$number"/>
+ <xsl:with-param name="position" select="$position"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="get-path-command_dummy">
+ <xsl:param name="vml-path"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:param name="last-command"/>
+ <xsl:choose>
+ <xsl:when test="$position &gt; string-length($vml-path) "/>
+ <xsl:otherwise>
+ <xsl:variable name="curr-char" select="substring($vml-path, $position , 1)"/>
+ <xsl:choose>
+ <xsl:when test="string-length(translate($curr-char , 'mlcxetrvnfsawqyb' ,'')) = 0 ">
+ <!-- "MmZzLlHhVvCcSsQqTtAa" are all possiable command chars -->
+ <xsl:value-of select="concat( $curr-char , ':' , $position +1)"/>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , '+-.0123456789@' ,'')) = 0 ">
+ <!-- number start, use last command -->
+ <xsl:if test="string-length($last-command) = 0">
+ <xsl:message>ooo2wordml_path.xsl: Find undefined command</xsl:message>
+ </xsl:if>
+ <xsl:value-of select="concat( $last-command , ':' , $position )"/>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , ',&#9;&#10;&#13;&#32;' ,'')) = 0 ">
+ <!-- space or ',' should be skip -->
+ <xsl:call-template name="get-path-command">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position +1"/>
+ <xsl:with-param name="last-command" select="$last-command"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>ooo2wordml_path.xsl: Find undefined command:<xsl:value-of select="$curr-char"/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <!--
+ **get-path- command**
+ This function will collect the next command from a string. If the input string should has a start of number character,
+ we here implictly think the command is the last-command
+ All of the command of vml is listed as following:
+ __Basic commands:__
+ m l c x e t r v nf ns ae al at ar wa wr qx qy qb
+ __Edit behavior extensions commands__
+ ha hb hc hd he hf hg hh hi
+
+ So we know the longest command should be four character.The function is implemented on this basis:
+ -->
+ <xsl:template name="get-path-command">
+ <xsl:param name="vml-path"/>
+ <xsl:param name="position" select="1"/>
+ <xsl:param name="last-command"/>
+ <xsl:choose>
+ <xsl:when test="$position &gt; string-length($vml-path) "/>
+ <xsl:otherwise>
+ <xsl:variable name="curr-char" select="substring($vml-path, $position , 1)"/>
+ <xsl:variable name="curr-2char" select="substring($vml-path, $position - 1 , 2)"/>
+ <xsl:choose>
+ <xsl:when test="$curr-char = 'a' ">
+ <!--process the commands ae al at ar-->
+ <xsl:variable name="second-char" select="substring($vml-path, $position+1 , 1)"/>
+ <xsl:variable name="isvalid">
+ <xsl:choose>
+ <xsl:when test="$second-char='e' ">1</xsl:when>
+ <xsl:when test="$second-char='l' ">1</xsl:when>
+ <xsl:when test="$second-char='t' ">1</xsl:when>
+ <xsl:when test="$second-char='r' ">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$isvalid = '1' ">
+ <xsl:value-of select="concat( $curr-char,$second-char , ':' , $position +2)"/>
+ </xsl:if>
+ <xsl:if test="$isvalid = '0' ">
+ <xsl:message>ooo2wordml_path.xsl: Error command occurred </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$curr-char = 'n' ">
+ <!--process the commands nf ns -->
+ <xsl:variable name="second-char" select="substring($vml-path, $position+1 , 1)"/>
+ <xsl:variable name="isvalid">
+ <xsl:choose>
+ <xsl:when test="$second-char='f' ">1</xsl:when>
+ <xsl:when test="$second-char='s' ">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$isvalid = '1' ">
+ <xsl:value-of select="concat( $curr-char,$second-char , ':' , $position +2)"/>
+ </xsl:if>
+ <xsl:if test="$isvalid = '0' ">
+ <xsl:message>ooo2wordml_path.xsl: Error command occurred </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$curr-char = 'w' ">
+ <!--process the commands wa wr-->
+ <xsl:variable name="second-char" select="substring($vml-path, $position+1 , 1)"/>
+ <xsl:variable name="isvalid">
+ <xsl:choose>
+ <xsl:when test="$second-char='a' ">1</xsl:when>
+ <xsl:when test="$second-char='r' ">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$isvalid = '1' ">
+ <xsl:value-of select="concat( $curr-char,$second-char , ':' , $position +2)"/>
+ </xsl:if>
+ <xsl:if test="$isvalid = '0' ">
+ <xsl:message>ooo2wordml_path.xsl: Error command occurred </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$curr-char = 'q' ">
+ <!--process the commands qx qy qb-->
+ <xsl:variable name="second-char" select="substring($vml-path, $position+1 , 1)"/>
+ <xsl:variable name="isvalid">
+ <xsl:choose>
+ <xsl:when test="$second-char='x' ">1</xsl:when>
+ <xsl:when test="$second-char='y' ">1</xsl:when>
+ <xsl:when test="$second-char='b' ">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$isvalid = '1' ">
+ <xsl:value-of select="concat( $curr-char,$second-char , ':' , $position +2)"/>
+ </xsl:if>
+ <xsl:if test="$isvalid = '0' ">
+ <xsl:message>ooo2wordml_path.xsl: Error command occurred </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="$curr-char = 'h' ">
+ <!--process the edit behavior extensions commands-->
+ <xsl:variable name="second-char" select="substring($vml-path, $position+1 , 1)"/>
+ <xsl:variable name="isvalid">
+ <xsl:choose>
+ <xsl:when test="string-length(translate($second-char , 'abcdefghi' ,'')) = 0">1</xsl:when>
+ <xsl:otherwise>0</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="$isvalid = '1' ">
+ <xsl:value-of select="concat( $curr-char,$second-char , ':' , $position +2)"/>
+ </xsl:if>
+ <xsl:if test="$isvalid = '0' ">
+ <xsl:message>ooo2wordml_path.xsl: Error command occurred </xsl:message>
+ </xsl:if>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , 'mlcxetrv' ,'')) = 0 ">
+ <!--process the single character commands m l c x e t r v -->
+ <xsl:value-of select="concat( $curr-char , ':' , $position +1)"/>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , '+-.0123456789@' ,'')) = 0 ">
+ <!-- number start, use last command -->
+ <xsl:if test="string-length($last-command) = 0">
+ <xsl:message>ooo2wordml_path.xsl: Find undefined command</xsl:message>
+ </xsl:if>
+ <xsl:value-of select="concat( $last-command , ':' , $position )"/>
+ </xsl:when>
+ <xsl:when test="$curr-2char=',,' ">
+ <!-- here are two ',' -->
+ <xsl:if test="string-length($last-command) = 0">
+ <xsl:message>ooo2wordml_path.xsl: Find undefined command</xsl:message>
+ </xsl:if>
+ <xsl:value-of select="concat( $last-command , ':' , $position )"/>
+ </xsl:when>
+ <xsl:when test="string-length(translate($curr-char , ',&#9;&#10;&#13;&#32;' ,'')) = 0 ">
+ <!-- space or ',' should be skip -->
+ <xsl:call-template name="get-path-command">
+ <xsl:with-param name="vml-path" select="$vml-path"/>
+ <xsl:with-param name="position" select="$position +1"/>
+ <xsl:with-param name="last-command" select="$last-command"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message>ooo2wordml_path.xsl: Find undefined command:<xsl:value-of select="$curr-char"/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="svg-arc2vml-arc">
+ <xsl:param name="x0"/>
+ <xsl:param name="y0"/>
+ <xsl:param name="rx"/>
+ <xsl:param name="ry"/>
+ <xsl:param name="x-axis-rotation" select="0"/>
+ <xsl:param name="large-arc-flag" select="0"/>
+ <xsl:param name="sweep-flag" select="0"/>
+ <xsl:param name="x"/>
+ <xsl:param name="y"/>
+ <!-- Compute 1/2 distance between current and final point -->
+ <xsl:variable name="dx2" select="($x0 - $x) div 2"/>
+ <xsl:variable name="dy2" select="($y0 - $y) div 2"/>
+ <!-- Convert from degrees to radians -->
+ <xsl:variable name="rotation-radian" select="$x-axis-rotation * $pi div 180"/>
+ <!-- Compute (x1, y1). What are x1,y1?-->
+ <xsl:variable name="cos-rotation">
+ <xsl:call-template name="cos">
+ <xsl:with-param name="x" select="$rotation-radian"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="sin-rotation">
+ <xsl:call-template name="sin">
+ <xsl:with-param name="x" select="$rotation-radian"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="x1" select="$cos-rotation * $dx2 + $sin-rotation * $dy2"/>
+ <xsl:variable name="y1" select="-1 * $sin-rotation * $dx2 + $cos-rotation * $dy2"/>
+ <!-- Make sure radii are large enough -->
+ <xsl:variable name="rx-abs">
+ <xsl:call-template name="abs">
+ <xsl:with-param name="x" select="$rx"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="ry-abs">
+ <xsl:call-template name="abs">
+ <xsl:with-param name="x" select="$ry"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="rx-sq" select="$rx-abs * $rx-abs"/>
+ <xsl:variable name="ry-sq" select="$ry-abs * $ry-abs"/>
+ <xsl:variable name="x1-sq" select="$x1 * $x1"/>
+ <xsl:variable name="y1-sq" select="$y1 * $y1"/>
+ <xsl:variable name="radius-check" select=" $x1-sq div $rx-sq + $y1-sq div $ry-sq "/>
+ <xsl:variable name="radius-check-sqrt">
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select="$radius-check"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="new-rx">
+ <xsl:choose>
+ <xsl:when test="$radius-check &gt; 1">
+ <xsl:value-of select="$rx-abs * $radius-check-sqrt"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$rx-abs"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="new-ry">
+ <xsl:choose>
+ <xsl:when test="$radius-check &gt; 1">
+ <xsl:value-of select="$ry-abs * $radius-check-sqrt"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$ry-abs"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="new-ry-sq">
+ <xsl:choose>
+ <xsl:when test="$radius-check &gt; 1">
+ <xsl:value-of select="$new-ry * $new-ry"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$ry-sq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="new-rx-sq">
+ <xsl:choose>
+ <xsl:when test="$radius-check &gt; 1">
+ <xsl:value-of select="$new-rx * $new-rx"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$rx-sq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- Step 2: Compute (cx1, cy1) -->
+ <xsl:variable name="sign">
+ <xsl:choose>
+ <xsl:when test="$large-arc-flag = $sweep-flag">-1</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="unchecked-sq" select=" (($new-rx-sq * $new-ry-sq) - ($new-rx-sq * $y1-sq) - ($new-ry-sq * $x1-sq)) div (($new-rx-sq * $y1-sq) + ($new-ry-sq * $x1-sq)) "/>
+ <xsl:variable name="sq">
+ <xsl:choose>
+ <xsl:when test=" $unchecked-sq &lt; 0">0</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$unchecked-sq"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="sq-sqrt">
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select="$sq"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="coef" select="$sign * $sq-sqrt "/>
+ <xsl:variable name="cx1" select="$coef * $new-rx * $y1 div $new-ry"/>
+ <xsl:variable name="cy1" select=" -1 * $coef * $new-ry * $x1 div $new-rx"/>
+ <!-- Step 3: Compute (cx, cy) from (cx1, cy1) -->
+ <xsl:variable name="sx2" select="($x0 +$x) div 2 "/>
+ <xsl:variable name="sy2" select="($y0 +$y) div 2 "/>
+ <xsl:variable name="tmp1" select="$cos-rotation * $cx1 "/>
+ <xsl:variable name="tmp2" select="$cos-rotation * $cx1 "/>
+ <xsl:variable name="cx" select=" $sx2 + ( $cos-rotation * $cx1 - $sin-rotation * $cy1 ) "/>
+ <xsl:variable name="cy" select=" $sy2 + ( $sin-rotation * $cx1 + $cos-rotation * $cy1 ) "/>
+ <!-- Step 4: Compute angle start and angle extent -->
+ <xsl:variable name="ux" select="( $x1 - $cx1) div $new-rx"/>
+ <xsl:variable name="uy" select="( $y1 - $cy1) div $new-ry"/>
+ <xsl:variable name="vx" select="( - 1 * $x1 - $cx1) div $new-rx"/>
+ <xsl:variable name="vy" select="(- 1 * $y1 - $cy1) div $new-ry"/>
+ <xsl:variable name="n">
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select=" ($ux * $ux) + ($uy * $uy) "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <!-- 1 * ux + 0 * uy -->
+ <xsl:variable name="p" select="$ux"/>
+ <xsl:variable name="uy-sign">
+ <xsl:choose>
+ <xsl:when test=" $uy &lt; 0 ">-1</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="acos-pn">
+ <xsl:call-template name="acos">
+ <xsl:with-param name="x" select="$p div $n"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="theta" select="( $uy-sign * $acos-pn * 180 div $pi ) mod 360 "/>
+ <xsl:variable name="n-delta">
+ <xsl:call-template name="sqrt">
+ <xsl:with-param name="x" select="($ux * $ux + $uy * $uy) * ($vx * $vx + $vy * $vy)"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="p-delta" select="$ux * $vx + $uy * $vy"/>
+ <xsl:variable name="vy-sign">
+ <xsl:choose>
+ <xsl:when test="($ux * $vy - $uy * $vx) &lt; 0 ">-1</xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="acos-pn-delta">
+ <xsl:call-template name="acos">
+ <xsl:with-param name="x" select="$p-delta div $n-delta"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="unchecked-delta" select="$vy-sign * $acos-pn-delta * 180 div $pi "/>
+ <xsl:variable name="delta">
+ <xsl:choose>
+ <xsl:when test=" $sweep-flag = 0 and $unchecked-delta &gt; 0 ">
+ <xsl:value-of select=" ($unchecked-delta - 360) mod 360 "/>
+ </xsl:when>
+ <xsl:when test=" $sweep-flag = 1 and $unchecked-delta &lt; 0 ">
+ <xsl:value-of select=" ($unchecked-delta + 360) mod 360 "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" $unchecked-delta mod 360 "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat ($cx, ' ' , $cy, ' ' , $rx, ' ' , $ry, ' ' , $theta, ' ' , $delta, ' ' , $x-axis-rotation) "/>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo_props.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo_props.xsl
new file mode 100644
index 000000000000..86e7b0a511d6
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo_props.xsl
@@ -0,0 +1,268 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt v" xmlns:an="urn:flr:annotate">
+
+<an:page-layout-properties
+ context-node-input="w:sectPr"
+ context-node-output="style:page-layout-properties">
+<an:so-supported select="w:pgMar/@w:gutter"/>
+<an:so-supported select="w:pgSz/@w:code"/>
+</an:page-layout-properties>
+
+<xsl:template name="page-layout-properties">
+
+<!-- NOTE: "div 567.0" converts from twips to cm -->
+<xsl:attribute name="fo:margin-top">
+ <xsl:variable name="header-margin">
+ <xsl:choose>
+ <xsl:when test="w:pgMar/@w:header">
+ <xsl:value-of select="w:pgMar/@w:header"/>
+ </xsl:when>
+ <xsl:otherwise>720</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="margin-top">
+ <xsl:choose>
+ <xsl:when test="w:hdr">
+ <xsl:choose>
+ <xsl:when test="w:pgMar/@w:top &gt;= $header-margin">
+ <xsl:value-of select="$header-margin"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="w:pgMar/@w:top"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="w:pgMar/@w:top"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat($margin-top div 567.0, 'cm')"/>
+</xsl:attribute>
+<xsl:attribute name="fo:margin-bottom">
+ <xsl:variable name="footer-margin">
+ <xsl:choose>
+ <xsl:when test="w:pgMar/@w:footer">
+ <xsl:value-of select="w:pgMar/@w:footer"/>
+ </xsl:when>
+ <xsl:otherwise>720</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="margin-bottom">
+ <xsl:choose>
+ <xsl:when test="w:ftr">
+ <xsl:value-of select="$footer-margin"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="w:pgMar/@w:bottom"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="concat($margin-bottom div 567.0, 'cm')"/>
+</xsl:attribute>
+<xsl:attribute name="fo:margin-left">
+ <xsl:value-of select="concat(w:pgMar/@w:left div 567.0, 'cm')"/>
+</xsl:attribute>
+<xsl:attribute name="fo:margin-right">
+ <xsl:value-of select="concat(w:pgMar/@w:right div 567.0, 'cm')"/>
+</xsl:attribute>
+
+<xsl:attribute name="fo:page-width">
+ <xsl:value-of select="concat(w:pgSz/@w:w div 567.0, 'cm')"/>
+</xsl:attribute>
+<xsl:attribute name="fo:page-height">
+ <xsl:value-of select="concat(w:pgSz/@w:h div 567.0, 'cm')"/>
+</xsl:attribute>
+<xsl:attribute name="style:footnote-max-height">
+ <xsl:value-of select="'0cm'"/>
+</xsl:attribute>
+<xsl:attribute name="style:print-orientation">
+ <xsl:choose>
+ <xsl:when test="w:pgSz/@w:orient">
+ <xsl:value-of select="w:pgSz/@w:orient"/>
+ </xsl:when>
+ <xsl:otherwise>portrait</xsl:otherwise>
+ </xsl:choose>
+</xsl:attribute>
+<xsl:apply-templates select="//w:bgPict"/>
+<xsl:call-template name="column-properties"/>
+</xsl:template>
+
+
+<an:column-properties
+ context-node-input="w:sectPr"
+ context-node-output="style:page-layout-properties">
+<an:so-supported select="w:cols/@w:sep"/>
+</an:column-properties>
+<xsl:template name="column-properties">
+<style:columns>
+<xsl:attribute name="fo:column-count">
+ <xsl:choose>
+ <xsl:when test="w:cols/@w:num">
+ <xsl:value-of select="w:cols/@w:num"/>
+ </xsl:when>
+ <xsl:otherwise>1</xsl:otherwise>
+ </xsl:choose>
+</xsl:attribute>
+
+<xsl:if test="not(w:cols/w:col)">
+<!-- bug in the OASIS spec resp. bug in xmloff -->
+<xsl:attribute name="fo:column-gap">
+ <xsl:value-of select="concat(w:cols/@w:space div 567.0, 'cm')"/>
+</xsl:attribute>
+</xsl:if>
+
+<xsl:for-each select="w:cols/w:col">
+ <style:column>
+ <xsl:attribute name="style:rel-width">
+ <xsl:value-of select="concat(@w:w, '*')"/>
+ </xsl:attribute>
+ <xsl:attribute name="fo:start-indent">
+ <xsl:value-of select="'0cm'"/>
+ </xsl:attribute>
+ <xsl:attribute name="fo:end-indent">
+ <xsl:choose>
+ <xsl:when test="@w:space">
+ <xsl:value-of select="concat(@w:space div 567.0, 'cm')"/>
+ </xsl:when>
+ <xsl:otherwise>0cm</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </style:column>
+</xsl:for-each>
+</style:columns>
+</xsl:template>
+
+<an:text-properties
+ context-node-input="w:rPr"
+ context-node-output="style:text-properties">
+</an:text-properties >
+<xsl:template name="text-properties">
+<xsl:variable name="b-value">
+ <xsl:choose>
+ <xsl:when test="w:b/@val">
+ <xsl:value-of select="w:b/@val"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="local-name(w:b)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:variable>
+<!-- could be simplified: is "b" actually a valid value of w:b/@val ? -->
+<xsl:variable name="font-weight">
+ <xsl:choose>
+ <xsl:when test="$b-value = 'on'">bold</xsl:when>
+ <xsl:when test="$b-value = 'off'">normal</xsl:when>
+ <xsl:when test="$b-value = 'b'">bold</xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:variable>
+<xsl:attribute name="fo:font-weight">
+ <xsl:value-of select="$font-weight"/>
+</xsl:attribute>
+<xsl:attribute name="style:font-weight-asian">
+ <xsl:value-of select="$font-weight"/>
+</xsl:attribute>
+<xsl:attribute name="style:font-weight-complex">
+ <xsl:variable name="b-cs-value">
+ <xsl:choose>
+ <xsl:when test="w:b-cs/@val">
+ <xsl:value-of select="w:b-cs/@val"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="local-name(w:b-cs)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- could be simplified: is "b-cs" actually a valid value of w:b-cs/@val -->
+ <xsl:choose>
+ <xsl:when test="$b-cs-value = 'on'">bold</xsl:when>
+ <xsl:when test="$b-cs-value = 'off'">normal</xsl:when>
+ <xsl:when test="$b-cs-value = 'b-cs'">bold</xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:attribute>
+<xsl:variable name="i-value">
+ <xsl:choose>
+ <xsl:when test="w:i/@val">
+ <xsl:value-of select="w:i/@val"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="local-name(w:i)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:variable>
+<!-- could be simplified: is "i" actually a valid value of w:i/@val ? -->
+<xsl:variable name="font-style">
+ <xsl:choose>
+ <xsl:when test="$i-value = 'on'">italic</xsl:when>
+ <xsl:when test="$i-value = 'off'">normal</xsl:when>
+ <xsl:when test="$i-value = 'i'">italic</xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:variable>
+<xsl:attribute name="fo:font-style">
+ <xsl:value-of select="$font-style"/>
+</xsl:attribute>
+<xsl:attribute name="style:font-style-asian">
+ <xsl:value-of select="$font-style"/>
+</xsl:attribute>
+<xsl:attribute name="style:font-style-complex">
+ <xsl:variable name="i-cs-value">
+ <xsl:choose>
+ <xsl:when test="w:i-cs/@val">
+ <xsl:value-of select="w:i-cs/@val"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="local-name(w:i-cs)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- could be simplified: is "i-cs" actually a valid value of w:i-cs/@val -->
+ <xsl:choose>
+ <xsl:when test="$i-cs-value = 'on'">italic</xsl:when>
+ <xsl:when test="$i-cs-value = 'off'">normal</xsl:when>
+ <xsl:when test="$i-cs-value = 'i-cs'">italic</xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:attribute>
+<xsl:attribute name="fo:text-transform">
+ <xsl:variable name="caps-value">
+ <xsl:choose>
+ <xsl:when test="w:caps/@val">
+ <xsl:value-of select="w:caps/@val"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="local-name(w:caps)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- could be simplified: is "caps" actually a valid value of w:caps/@val -->
+ <xsl:choose>
+ <xsl:when test="$caps-value = 'on'">uppercase</xsl:when>
+ <xsl:when test="$caps-value = 'off'">normal</xsl:when>
+ <xsl:when test="$caps-value = 'caps'">uppercase</xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:attribute>
+<xsl:attribute name="fo:font-variant">
+ <xsl:variable name="small-caps-value">
+ <xsl:choose>
+ <xsl:when test="w:smallCaps/@val">
+ <xsl:value-of select="w:smallCaps/@val"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="local-name(w:smallCaps)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- could be simplified: is "smallCaps" actually a valid value of w:smallCaps/@val -->
+ <xsl:choose>
+ <xsl:when test="$small-caps-value = 'on'">small-caps</xsl:when>
+ <xsl:when test="$small-caps-value = 'off'">normal</xsl:when>
+ <xsl:when test="$small-caps-value = 'smallCaps'">small-caps</xsl:when>
+ <xsl:otherwise></xsl:otherwise>
+ </xsl:choose>
+</xsl:attribute>
+</xsl:template>
+
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo_settings.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo_settings.xsl
new file mode 100644
index 000000000000..84696dcf5773
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo_settings.xsl
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt v">
+ <xsl:template match="w:docPr">
+ <office:settings>
+ <config:config-item-set config:name="view-settings">
+ <config:config-item config:name="InBrowseMode" config:type="boolean">
+ <xsl:choose>
+ <xsl:when test="w:view/@w:val = 'outline'">true</xsl:when>
+ <xsl:when test="w:view/@w:val = 'print'">false</xsl:when>
+ <!-- others: web, reading, normal, master-pages, none. glu -->
+ <xsl:otherwise>true</xsl:otherwise>
+ </xsl:choose>
+ </config:config-item>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <xsl:if test="w:zoom">
+ <!-- VisibleRight and VisibleBottom are arbitrary positive numbers. ;) glu -->
+ <config:config-item config:name="VisibleRight" config:type="int">1</config:config-item>
+ <config:config-item config:name="VisibleBottom" config:type="int">1</config:config-item>
+ <xsl:choose>
+ <xsl:when test="w:zoom/@w:val = 'best-fit'">
+ <config:config-item config:name="ZoomType" config:type="short">3</config:config-item>
+ </xsl:when>
+ <xsl:when test="w:zoom/@w:val = 'full-page'">
+ <config:config-item config:name="ZoomType" config:type="short">2</config:config-item>
+ </xsl:when>
+ <xsl:when test="w:zoom/@w:val = 'text-fit'">
+ <config:config-item config:name="ZoomType" config:type="short">1</config:config-item>
+ </xsl:when>
+ <xsl:otherwise>
+ <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
+ </xsl:otherwise>
+ </xsl:choose>
+ <config:config-item config:name="ZoomFactor" config:type="short">
+ <xsl:value-of select="w:zoom/@w:percent"/>
+ </config:config-item>
+ </xsl:if>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ </office:settings>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo_table.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo_table.xsl
new file mode 100644
index 000000000000..113dd391b433
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo_table.xsl
@@ -0,0 +1,1286 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt v">
+ <xsl:template match="w:style[@w:type='table']" mode="table">
+ <style:style style:family="table">
+ <xsl:attribute name="style:name">
+ <xsl:value-of select="concat('w',translate(@w:styleId,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))"/>
+ </xsl:attribute>
+ <xsl:if test="w:basedOn">
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:value-of select="concat('w',translate(w:basedOn/@w:val,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ <style:table-properties table:align="margins"/>
+ </style:style>
+ </xsl:template>
+ <xsl:template match="w:tblPr" mode="style">
+ <xsl:variable name="table-number">
+ <xsl:number count="w:tbl" from="/w:wordDocument/w:body" level="any" format="1" />
+ </xsl:variable>
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">
+ <xsl:text>Table</xsl:text>
+ <xsl:value-of select="$table-number"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">table</xsl:attribute>
+ <xsl:if test="w:tblStyle">
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:value-of select="concat('w',translate(w:tblStyle/@w:val,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="section-property-number" select="count(preceding::w:sectPr)"/>
+ <xsl:variable name="last-section-property" select="preceding::w:pPr/w:sectPr[1]"/>
+ <xsl:variable name="next-section-property" select="following::w:sectPr[1]"/>
+ <xsl:variable name="last-next-p-tbl" select="$last-section-property[last()]/following::*[name()='w:p' or name()='w:tbl']"/>
+ <xsl:choose>
+ <xsl:when test="not($next-section-property/w:type/@w:val = 'continuous') and generate-id($last-next-p-tbl[1]) = generate-id(..) and not(ancestor::w:sectPr or ancestor::w:styles)">
+ <xsl:attribute name="style:master-page-name">
+ <xsl:text>Standard</xsl:text>
+ <xsl:value-of select="$section-property-number + 1" />
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$table-number = 1 and not(preceding::w:p[ancestor::w:body])">
+ <xsl:attribute name="style:master-page-name">First_20_Page</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:element name="style:table-properties">
+ <xsl:choose>
+ <xsl:when test="w:jc/@w:val = 'left' or w:jc/@w:val = 'center' or w:jc/@w:val = 'right'">
+ <xsl:attribute name="table:align">
+ <xsl:value-of select="w:jc/@w:val"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="table:align">margins</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- adopt the width of table and column corresponding the width of page and margins. . -->
+ <xsl:variable name="sectPr" select="following::w:sectPr[1]"/>
+ <xsl:variable name="total-page-size" select="$sectPr/w:pgSz/@w:w"/>
+ <xsl:variable name="page-left-mar" select="$sectPr/w:pgMar/@w:left"/>
+ <xsl:variable name="page-right-mar" select="$sectPr/w:pgMar/@w:right"/>
+ <xsl:variable name="page-size-value" select="$total-page-size - $page-left-mar - $page-right-mar"/>
+ <xsl:variable name="page-size-inch">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat($page-size-value, 'twip') "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="gridcols" select="../w:tblGrid/w:gridCol"/>
+ <xsl:variable name="tblsize" select="sum($gridcols/@w:w)"/>
+ <xsl:variable name="table_indent">
+ <xsl:choose>
+ <xsl:when test="w:tblInd and w:tblInd/@w:w &gt; 0 ">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat(w:tblInd/@w:w, 'twip') "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="number( '0') "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="rel-tblsize">
+ <xsl:choose>
+ <xsl:when test="w:tblW/@w:type = 'pct'">
+ <xsl:value-of select="(number(w:tblW/@w:w ) div 5000) * $page-size-inch"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat($tblsize, 'twip')"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:width">
+ <xsl:value-of select="concat($rel-tblsize, 'in' )"/>
+ </xsl:attribute>
+ <xsl:variable name="tbl_margin_left">
+ <xsl:choose>
+ <xsl:when test="not(w:tblpPr ) ">
+ <xsl:choose>
+ <xsl:when test="w:bidiVisual">
+ <xsl:choose>
+ <xsl:when test=" number($page-size-inch - $table_indent - $rel-tblsize) &gt; 0">
+ <xsl:value-of select="$page-size-inch - $table_indent - $rel-tblsize"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$table_indent"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="w:tblpPr">
+ <!-- if the table is put into a draw:text-box, fo:margin-left and fo:margin-right should be 0 -->
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="tbl_margin_right">
+ <xsl:choose>
+ <xsl:when test="not(w:tblpPr ) ">
+ <xsl:choose>
+ <xsl:when test="w:bidiVisual">
+ <xsl:value-of select="$table_indent"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test=" number($page-size-inch - $table_indent - $rel-tblsize) &gt; 0">
+ <xsl:value-of select="$page-size-inch - $table_indent - $rel-tblsize"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="w:tblpPr">
+ <!-- if the table is put into a draw:text-box, fo:margin-left and fo:margin-right should be 0 -->
+ <xsl:text>0</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="fo:margin-left">
+ <xsl:value-of select="concat( $tbl_margin_left, 'in')"/>
+ </xsl:attribute>
+ <xsl:attribute name="fo:margin-right">
+ <xsl:value-of select="concat($tbl_margin_right, 'in')"/>
+ </xsl:attribute>
+ <!-- If previous w:p has a page break, the table must have the page break attribute applied to it May need this for tables starting on new pages -->
+ <!-- <xsl:if test="parent::w:tbl/preceding-sibling::w:p[1][descendant::w:br/@w:type='page']">
+ <xsl:attribute name="fo:break-before">page</xsl:attribute></xsl:if> -->
+ <!-- initial values for tables-->
+ </xsl:element>
+ </xsl:element>
+ <!-- the following style is for conveting Word table text wrapping to SO Writer. Since SO Writer has no table text wrapping feature, so we use the draw:text-box as a container and put the table in draw:text-box -->
+ <xsl:if test="w:tblpPr">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">TableFrame<xsl:number count="w:tblpPr" from="/w:wordDocument/w:body" level="any" format="1"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">graphic</xsl:attribute>
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:value-of select=" 'Frame' "/>
+ </xsl:attribute>
+ <xsl:element name="style:graphic-properties">
+ <xsl:if test="w:tblpPr/@w:leftFromText">
+ <xsl:variable name="left_margin_from_text">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat (w:tblpPr/@w:leftFromText, 'twip') "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="fo:margin-left">
+ <xsl:value-of select="concat( $left_margin_from_text, 'in') "/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:tblpPr/@w:rightFromText">
+ <xsl:variable name="right_margin_from_text">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat (w:tblpPr/@w:rightFromText, 'twip') "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="fo:margin-right">
+ <xsl:value-of select="concat( $right_margin_from_text, 'in') "/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:tblpPr/@w:topFromText">
+ <xsl:variable name="top_margin_from_text">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat (w:tblpPr/@w:topFromText, 'twip') "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="fo:margin-top">
+ <xsl:value-of select="concat( $top_margin_from_text, 'in') "/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:tblpPr/@w:bottomFromText">
+ <xsl:variable name="bottom_margin_from_text">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat (w:tblpPr/@w:bottomFromText, 'twip') "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="fo:margin-bottom">
+ <xsl:value-of select="concat( $bottom_margin_from_text, 'in') "/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:attribute name="style:number-wrapped-paragraphs">
+ <xsl:text>no-limit</xsl:text>
+ </xsl:attribute>
+ <!--xsl:if test="w:tblpPr/@w:tblpYSpec" to get the vertical alignment-->
+ <xsl:variable name="vertical_alignment">
+ <xsl:choose>
+ <xsl:when test="w:tblpPr/@w:tblpYSpec = 'top' ">
+ <xsl:text>top</xsl:text>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:tblpYSpec = 'center' ">
+ <xsl:text>middle</xsl:text>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:tblpYSpec= 'bottom' ">
+ <xsl:text>bottom</xsl:text>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:tblpYSpec = 'inside' ">
+ <xsl:text>from-top</xsl:text>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:tblpYSpec= 'outside' ">
+ <xsl:text>top</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>from-top</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:vertical-pos">
+ <xsl:value-of select="$vertical_alignment"/>
+ </xsl:attribute>
+ <!--/xsl:if-->
+ <!--xsl:if test="w:tblpPr/@w:vertAnchor" to get the vertical anchor related area type -->
+ <xsl:variable name="frame_v_anchor">
+ <xsl:choose>
+ <xsl:when test="w:tblpPr/@w:vertAnchor = 'text' ">
+ <xsl:value-of select=" 'paragraph' "/>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:vertAnchor = 'margin' ">
+ <xsl:value-of select=" 'paragraph-content' "/>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:vertAnchor = 'page' ">
+ <xsl:value-of select="w:tblpPr/@w:vertAnchor"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" 'page-content' "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:vertical-rel">
+ <xsl:value-of select="$frame_v_anchor"/>
+ </xsl:attribute>
+ <!--/xsl:if-->
+ <!--xsl:if test="w:tblpPr/@w:tblpXSpec" to get the horizntal alignment-->
+ <xsl:variable name="horizental_alignment">
+ <xsl:choose>
+ <xsl:when test="w:tblpPr/@w:tblpXSpec = 'left' ">
+ <xsl:text>left</xsl:text>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:tblpXSpec = 'center' ">
+ <xsl:text>center</xsl:text>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:tblpXSpec = 'right' ">
+ <xsl:text>right</xsl:text>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:tblpXSpec = 'inside' ">
+ <xsl:text>from-left</xsl:text>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:tblpXSpec = 'outside' ">
+ <xsl:text>outside</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>left</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:horizontal-pos">
+ <xsl:value-of select="$horizental_alignment"/>
+ </xsl:attribute>
+ <!--/xsl:if-->
+ <!--xsl:if test="w:tblpPr/@w:horzAnchor" to get the horizental anchor related area type-->
+ <xsl:variable name="frame_h_anchor">
+ <xsl:choose>
+ <xsl:when test="w:tblpPr/@w:horzAnchor = 'text' ">
+ <xsl:value-of select=" 'paragraph' "/>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:horzAnchor = 'margin' ">
+ <xsl:value-of select=" 'page-content' "/>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:horzAnchor = 'page' ">
+ <xsl:value-of select="w:tblpPr/@w:horzAnchor"/>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:horzAnchor= 'inside' ">
+ <xsl:value-of select=" 'paragraph-start-margin' "/>
+ </xsl:when>
+ <xsl:when test="w:tblpPr/@w:horzAnchor= 'outside' ">
+ <xsl:value-of select=" 'paragraph-end-margin' "/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select=" 'paragraph-content' "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:horizontal-rel">
+ <xsl:value-of select="$frame_h_anchor"/>
+ </xsl:attribute>
+ <!--/xsl:if-->
+ <xsl:attribute name="fo:background-color">
+ <xsl:text>#ffffff</xsl:text>
+ </xsl:attribute>
+ <!-- xsl:attribute name="style:background-transparency"><xsl:text>100%</xsl:text></xsl:attribute -->
+ <xsl:attribute name="style:wrap">
+ <xsl:text>parallel</xsl:text>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="w:gridCol" mode="style">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:family">table-column</xsl:attribute>
+ <xsl:attribute name="style:name">Table<xsl:number count="w:tbl" from="/w:wordDocument/w:body" level="any" format="1"/>.C<xsl:number count="w:gridCol" from="/w:wordDocument/w:body" level="single" format="1"/>
+ </xsl:attribute>
+ <xsl:element name="style:table-column-properties">
+ <xsl:variable name="column_width">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat(@w:w, 'twip') "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:column-width">
+ <xsl:value-of select="concat($column_width,'in') "/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="w:trPr" mode="style">
+ <!-- to generate style:style of table-row height. -->
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:family">table-row</xsl:attribute>
+ <xsl:attribute name="style:name">Table<xsl:number count="w:tbl" from="/w:wordDocument/w:body" level="any" format="1"/>.R<xsl:number count="w:tr" from="/w:wordDocument/w:body" level="single" format="1"/>
+ </xsl:attribute>
+ <xsl:element name="style:table-row-properties">
+ <xsl:choose>
+ <xsl:when test="w:trHeight/@w:val">
+ <xsl:variable name="tbl_row_height">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat(w:trHeight/@w:val, 'twip') "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="style:min-row-height">
+ <xsl:value-of select="concat($tbl_row_height, 'in' )"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="w:tcPr" mode="style">
+ <style:style>
+ <xsl:attribute name="style:name">Table<xsl:number count="w:tbl" from="/w:wordDocument/w:body" level="any" format="1"/>.R<xsl:number count="w:tr" from="/w:wordDocument/w:body" level="single" format="1"/>C<xsl:number count="w:tc" from="/w:wordDocument/w:body" level="single" format="1"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">table-cell</xsl:attribute>
+ <xsl:variable name="rootStyle" select="ancestor::w:tbl/w:tblPr/w:tblStyle/@w:val"/>
+ <xsl:variable name="rootStyleNode" select="/w:wordDocument/w:styles/w:style[@w:styleId = $rootStyle]"/>
+ <xsl:element name="style:table-cell-properties">
+ <!-- cell background color start -->
+ <xsl:variable name="tbl_cell_background_color">
+ <xsl:choose>
+ <xsl:when test="w:shd/@w:fill">
+ <xsl:value-of select="w:shd/@w:fill"/>
+ </xsl:when>
+ <xsl:when test="$rootStyleNode/w:tblpr/w:shd/@w:fill">
+ <xsl:value-of select="$rootStyleNode/w:tblpr/w:shd/@w:fill"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test=" string-length($tbl_cell_background_color) &gt; 0 and not( $tbl_cell_background_color ='auto' )">
+ <xsl:attribute name="fo:background-color">
+ <xsl:value-of select="concat('#',$tbl_cell_background_color)"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <!--cell background color end -->
+ <!-- table cell vertical alignment start -->
+ <xsl:if test="w:vAlign">
+ <xsl:variable name="tbl_cell_alignment">
+ <xsl:choose>
+ <xsl:when test="w:vAlign/@w:val = 'top' ">
+ <xsl:text>top</xsl:text>
+ </xsl:when>
+ <xsl:when test="w:vAlign/@w:val = 'center' ">
+ <xsl:text>middle</xsl:text>
+ </xsl:when>
+ <xsl:when test="w:vAlign/@w:val = 'bottom' ">
+ <xsl:text>bottom</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>automatic</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:vertical-align">
+ <xsl:value-of select="$tbl_cell_alignment"/>
+ </xsl:attribute>
+ </xsl:if>
+ <!--table cell alignment end -->
+ <!-- cell margin start -->
+ <xsl:variable name="tblcell_leftmargin">
+ <xsl:choose>
+ <xsl:when test="w:tcMar/w:left">
+ <xsl:call-template name="convert2in_special">
+ <xsl:with-param name="original_value" select="concat(w:tcMar/w:left/@w:w , w:tcMar/w:left/@w:type) "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$rootStyleNode/w:tblPr/w:tblCellMar/w:left">
+ <xsl:call-template name="convert2in_special">
+ <xsl:with-param name="original_value" select="concat($rootStyleNode/w:tblPr/w:tblCellMar/w:left/@w:w , $rootStyleNode/w:tblPr/w:tblCellMar/w:left/@w:type)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="tblcell_rightmargin">
+ <xsl:choose>
+ <xsl:when test="w:tcMar/w:right">
+ <xsl:call-template name="convert2in_special">
+ <xsl:with-param name="original_value" select="concat(w:tcMar/w:right/@w:w , w:tcMar/w:right/@w:type) "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$rootStyleNode/w:tblPr/w:tblCellMar/w:right">
+ <xsl:call-template name="convert2in_special">
+ <xsl:with-param name="original_value" select="concat($rootStyleNode/w:tblPr/w:tblCellMar/w:right/@w:w , $rootStyleNode/w:tblPr/w:tblCellMar/w:right/@w:type)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="tblcell_topmargin">
+ <xsl:choose>
+ <xsl:when test="w:tcMar/w:top">
+ <xsl:call-template name="convert2in_special">
+ <xsl:with-param name="original_value" select="concat(w:tcMar/w:top/@w:w , w:tcMar/w:top/@w:type) "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$rootStyleNode/w:tblPr/w:tblCellMar/w:top">
+ <xsl:call-template name="convert2in_special">
+ <xsl:with-param name="original_value" select="concat($rootStyleNode/w:tblPr/w:tblCellMar/w:top/@w:w , $rootStyleNode/w:tblPr/w:tblCellMar/w:top/@w:type)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="tblcell_bottommargin">
+ <xsl:choose>
+ <xsl:when test="w:tcMar/w:bottom">
+ <xsl:call-template name="convert2in_special">
+ <xsl:with-param name="original_value" select="concat(w:tcMar/w:bottom/@w:w , w:tcMar/w:bottom/@w:type) "/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="$rootStyleNode/w:tblPr/w:tblCellMar/w:bottom">
+ <xsl:call-template name="convert2in_special">
+ <xsl:with-param name="original_value" select="concat($rootStyleNode/w:tblPr/w:tblCellMar/w:bottom/@w:w , $rootStyleNode/w:tblPr/w:tblCellMar/w:bottom/@w:type)"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>0</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="string-length($tblcell_leftmargin) &gt; 0 ">
+ <xsl:attribute name="fo:padding-left">
+ <xsl:value-of select="concat($tblcell_leftmargin, 'in' )"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($tblcell_rightmargin) &gt; 0">
+ <xsl:attribute name="fo:padding-right">
+ <xsl:value-of select="concat($tblcell_rightmargin, 'in' )"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($tblcell_topmargin) &gt; 0 ">
+ <xsl:attribute name="fo:padding-top">
+ <xsl:value-of select="concat($tblcell_topmargin, 'in' )"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="string-length($tblcell_bottommargin) &gt; 0">
+ <xsl:attribute name="fo:padding-bottom">
+ <xsl:value-of select="concat($tblcell_bottommargin, 'in' )"/>
+ </xsl:attribute>
+ </xsl:if>
+ <!-- cell margin end -->
+ <xsl:variable name="row-position">
+ <xsl:number count="w:tr" from="/w:wordDocument/w:body" level="single" format="1"/>
+ </xsl:variable>
+ <!-- cell borders should be carefully converted. a little complex. glu :( -->
+ <xsl:variable name="Borders" select="ancestor::w:tbl/w:tblPr/w:tblBorders"/>
+ <xsl:choose>
+ <xsl:when test="$row-position &gt; 1">
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'top'"/>
+ <xsl:with-param name="style-position-0" select="w:tcBorders/w:top"/>
+ <xsl:with-param name="style-position-1" select="$Borders/w:insideH"/>
+ <xsl:with-param name="style-position-2" select="$rootStyleNode/w:tblPr/w:tblBorders/w:insideH"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'top'"/>
+ <xsl:with-param name="style-position-0" select="w:tcBorders/w:top"/>
+ <xsl:with-param name="style-position-1" select="$Borders/w:top"/>
+ <xsl:with-param name="style-position-2" select="$rootStyleNode/w:tblPr/w:tblBorders/w:top"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="count(ancestor::w:tr/following-sibling::w:tr) &gt; 0">
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'bottom'"/>
+ <xsl:with-param name="style-position-0" select="w:tcBorders/w:bottom"/>
+ <xsl:with-param name="style-position-1" select="$Borders/w:insideH"/>
+ <xsl:with-param name="style-position-2" select="$rootStyleNode/w:tblPr/w:tblBorders/w:insideH"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'bottom'"/>
+ <xsl:with-param name="style-position-0" select="w:tcBorders/w:bottom"/>
+ <xsl:with-param name="style-position-1" select="$Borders/w:bottom"/>
+ <xsl:with-param name="style-position-2" select="$rootStyleNode/w:tblPr/w:tblBorders/w:bottom"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="count(ancestor::w:tc/preceding-sibling::w:tc) &gt; 0">
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'left'"/>
+ <xsl:with-param name="style-position-0" select="w:tcBorders/w:left"/>
+ <xsl:with-param name="style-position-1" select="$Borders/w:insideV"/>
+ <xsl:with-param name="style-position-2" select="$rootStyleNode/w:tblPr/w:tblBorders/w:insideV"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'left'"/>
+ <xsl:with-param name="style-position-0" select="w:tcBorders/w:left"/>
+ <xsl:with-param name="style-position-1" select="$Borders/w:left"/>
+ <xsl:with-param name="style-position-2" select="$rootStyleNode/w:tblPr/w:tblBorders/w:left"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="count(ancestor::w:tc/following-sibling::w:tc) &gt; 0">
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'right'"/>
+ <xsl:with-param name="style-position-0" select="w:tcBorders/w:right"/>
+ <xsl:with-param name="style-position-1" select="$Borders/w:insideV"/>
+ <xsl:with-param name="style-position-2" select="$rootStyleNode/w:tblPr/w:tblBorders/w:insideV"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'right'"/>
+ <xsl:with-param name="style-position-0" select="w:tcBorders/w:right"/>
+ <xsl:with-param name="style-position-1" select="$Borders/w:right"/>
+ <xsl:with-param name="style-position-2" select="$rootStyleNode/w:tblPr/w:tblBorders/w:right"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </style:style>
+ </xsl:template>
+ <xsl:template name="get-table-border">
+ <xsl:param name="style-pos"/>
+ <xsl:param name="style-position-0"/>
+ <xsl:param name="style-position-1"/>
+ <xsl:param name="style-position-2"/>
+ <xsl:variable name="size-style">
+ <xsl:choose>
+ <xsl:when test="$style-position-0">
+ <xsl:value-of select="$style-position-0/@w:sz"/>
+ </xsl:when>
+ <xsl:when test="$style-position-1">
+ <xsl:value-of select="$style-position-1/@w:sz"/>
+ </xsl:when>
+ <xsl:when test="$style-position-2">
+ <xsl:value-of select="$style-position-2/@w:sz"/>
+ </xsl:when>
+ <xsl:otherwise>2</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="border-style">
+ <xsl:choose>
+ <xsl:when test="$style-position-0">
+ <xsl:value-of select="$style-position-0/@w:val"/>
+ </xsl:when>
+ <xsl:when test="$style-position-1">
+ <xsl:value-of select="$style-position-1/@w:val"/>
+ </xsl:when>
+ <xsl:when test="$style-position-2">
+ <xsl:value-of select="$style-position-2/@w:val"/>
+ </xsl:when>
+ <xsl:otherwise>single</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="color-border">
+ <xsl:choose>
+ <xsl:when test="$style-position-0 and string-length($style-position-0/@w:color) = 6">
+ <xsl:value-of select="$style-position-0/@w:color"/>
+ </xsl:when>
+ <xsl:when test="$style-position-0 and $style-position-0/@w:color = 'auto' and contains($border-style, 'set')">
+ <xsl:text>c0c0c0</xsl:text>
+ </xsl:when>
+ <xsl:when test="$style-position-1 and string-length($style-position-1/@w:color) = 6">
+ <xsl:value-of select="$style-position-1/@w:color"/>
+ </xsl:when>
+ <xsl:when test="$style-position-1 and $style-position-1/@w:color = 'auto' and contains($border-style, 'set')">
+ <xsl:text>c0c0c0</xsl:text>
+ </xsl:when>
+ <xsl:when test="$style-position-2 and string-length($style-position-2/@w:color) = 6">
+ <xsl:value-of select="$style-position-2/@w:color"/>
+ </xsl:when>
+ <xsl:when test="$style-position-2 and $style-position-2/@w:color = 'auto' and contains($border-style, 'set')">
+ <xsl:text>c0c0c0</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>000000</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <!-- mapping border line widths. glu -->
+ <xsl:choose>
+ <xsl:when test="$border-style = 'nil' or $border-style = 'none'">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">hidden</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$border-style = 'single'">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 7">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.002cm solid #', $color-border)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 20">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.035cm solid #', $color-border)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 30">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.088cm solid #', $color-border)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 40">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.141cm solid #', $color-border)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.176cm solid #', $color-border)"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$border-style = 'double'">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 10">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.039cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.035cm 0.002cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 15">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.092cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.002cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 20">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.106cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.265cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$border-style = 'triple'">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 5">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.039cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.035cm 0.002cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 10">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.092cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">.002cm 0.088cm 0.002cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 15">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.106cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.265cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$border-style = 'thin-thick-small-gap' or $border-style = 'thick-thin-small-gap'">
+ <xsl:choose>
+ <xsl:when test="($border-style = 'thin-thick-small-gap' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'thick-thin-small-gap' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 20">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.125cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 30">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.178cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.231cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.159cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$border-style = 'thin-thick-thin-small-gap'">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 20">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.178cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 40">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.231cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.318cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$border-style = 'thin-thick-medium-gap' or $border-style = 'thick-thin-medium-gap'">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 10">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.039cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.035cm 0.002cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 15">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.106cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 30">
+ <xsl:choose>
+ <xsl:when test="($border-style = 'thin-thick-medium-gap' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'thick-thin-medium-gap' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.212cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.035cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.159cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.318cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="($border-style = 'thin-thick-medium-gap' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'thick-thin-medium-gap' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.141cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$border-style = 'thin-thick-thin-medium-gap'">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 10">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.039cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.035cm 0.002cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 15">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.106cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 30">
+ <xsl:choose>
+ <xsl:when test="$style-pos = 'left' or $style-pos = 'top'">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.159cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.212cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.035cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.318cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="$style-pos = 'left' or $style-pos = 'top'">
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.141cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$border-style = 'thin-thick-large-gap' or $border-style = 'thick-thin-large-gap'">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 7">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.092cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.002cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 10">
+ <xsl:choose>
+ <xsl:when test="($border-style = 'thin-thick-large-gap' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'thick-thin-large-gap' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.125cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.092cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.002cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 15">
+ <xsl:choose>
+ <xsl:when test="($border-style = 'thin-thick-large-gap' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'thick-thin-large-gap' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.125cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.159cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 30">
+ <xsl:choose>
+ <xsl:when test="($border-style = 'thin-thick-large-gap' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'thick-thin-large-gap' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.178cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.159cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 40">
+ <xsl:choose>
+ <xsl:when test="($border-style = 'thin-thick-large-gap' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'thick-thin-large-gap' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.231cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.159cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.318cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="($border-style = 'thin-thick-large-gap' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'thick-thin-large-gap' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.141cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$border-style = 'thin-thick-thin-large-gap'">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 5">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.125cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 10">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.178cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 20">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.231cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.318cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="contains( $border-style, 'wave') or $border-style = 'dash-dot-stroked'">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.106cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.035cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains( $border-style, 'three-d')">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 10">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.035cm solid #', $color-border)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 20">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.088cm solid #', $color-border)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 30">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.176cm solid #', $color-border)"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 40">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.265cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.318cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="contains( $border-style, 'set')">
+ <xsl:choose>
+ <xsl:when test="$size-style &lt; 7">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.092cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.002cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 10">
+ <xsl:choose>
+ <xsl:when test="($border-style = 'outset' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'inset' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.092cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.002cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.125cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.035cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 15">
+ <xsl:choose>
+ <xsl:when test="($border-style = 'outset' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'inset' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.159cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.125cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.035cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 30">
+ <xsl:choose>
+ <xsl:when test="($border-style = 'outset' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'inset' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.159cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.178cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$size-style &lt; 40">
+ <xsl:choose>
+ <xsl:when test="($border-style = 'outset' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'inset' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.159cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.035cm 0.035cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.231cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.002cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.318cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="($border-style = 'outset' and ($style-pos = 'left' or $style-pos = 'top')) or ($border-style = 'inset' and ($style-pos = 'right' or $style-pos = 'bottom'))">
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.141cm 0.088cm 0.088cm</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">
+ <xsl:value-of select="concat('0.231cm double #', $color-border)"/>
+ </xsl:attribute>
+ <xsl:attribute name="{concat('style:border-line-width-',$style-pos)}">0.088cm 0.088cm 0.141cm</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="{concat('fo:border-', $style-pos)}">0.002cm solid #000000</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="w:tbl">
+ <xsl:choose>
+ <xsl:when test="w:tblPr/w:tblpPr">
+ <!-- if the table is surrounded by text then put the table into a draw:text-box -->
+ <xsl:element name="text:p">
+ <xsl:element name="draw:frame">
+ <xsl:attribute name="draw:style-name">
+ <xsl:text>TableFrame</xsl:text>
+ <xsl:number count="w:tblpPr" from="/w:wordDocument/w:body" level="any" format="1"/>
+ </xsl:attribute>
+ <xsl:attribute name="draw:name">TableFr<xsl:number count="w:tblpPr" from="/w:wordDocument/w:body" level="any" format="1"/>
+ </xsl:attribute>
+ <xsl:variable name="tbl_anchor_type">
+ <xsl:choose>
+ <xsl:when test="name(..) = 'w:tc' ">
+ <xsl:text>as-char</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>paragraph</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="text:anchor-type">
+ <xsl:value-of select="$tbl_anchor_type"/>
+ </xsl:attribute>
+ <xsl:variable name="tbl_draw_textbox_width">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <!-- adjust the width of draw:text-box containing a table with 20dxa + table-width -->
+ <xsl:with-param name="value" select="concat(string(number(sum(w:tblGrid/w:gridCol/@w:w) +20)), 'twip' )"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="svg:width">
+ <xsl:value-of select="concat ($tbl_draw_textbox_width, 'in') "/>
+ </xsl:attribute>
+ <xsl:if test="w:tblPr/w:tblpPr/@w:tblpX">
+ <xsl:variable name="x_distance_from_anchor">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat(w:tblPr/w:tblpPr/@w:tblpX, 'twip' ) "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="svg:x">
+ <xsl:value-of select="concat ($x_distance_from_anchor, 'in' )"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:tblPr/w:tblpPr/@w:tblpY">
+ <xsl:variable name="y_distance_from_anchor">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="concat(w:tblPr/w:tblpPr/@w:tblpY, 'twip' ) "/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:attribute name="svg:y">
+ <xsl:value-of select="concat ($y_distance_from_anchor, 'in' )"/>
+ </xsl:attribute>
+ </xsl:if>
+ <!--create table in draw:text-box to produce table wrapping text effect-->
+ <xsl:element name="draw:text-box">
+ <xsl:element name="table:table">
+ <xsl:if test="w:tblPr">
+ <xsl:attribute name="table:style-name">Table<xsl:number count="w:tbl" from="/w:wordDocument/w:body" level="any" format="1"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:element>
+ </xsl:element>
+ </xsl:element>
+ <!--draw:text-box end -->
+ </xsl:element>
+ <!-- text:p end -->
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- if the table is not surrounded by text then put the table into a draw:text-box -->
+ <xsl:element name="table:table">
+ <xsl:if test="w:tblPr">
+ <xsl:attribute name="table:style-name">Table<xsl:number count="w:tbl" from="/w:wordDocument/w:body" level="any" format="1"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:element>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="w:tblGrid">
+ <xsl:apply-templates select="w:gridCol"/>
+ </xsl:template>
+ <xsl:template match="w:gridCol">
+ <xsl:element name="table:table-column">
+ <xsl:attribute name="table:style-name">Table<xsl:number count="w:tbl" from="/w:wordDocument/w:body" level="any" format="1"/>.C<xsl:number count="w:gridCol" from="/w:wordDocument/w:body" level="single" format="1"/>
+ </xsl:attribute>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="w:tr">
+ <xsl:element name="table:table-row">
+ <!-- generate row in table and add attribute of table:style-name if the style:style exists. cp tom chen. -->
+ <xsl:if test="w:trPr/w:trHeight">
+ <xsl:attribute name="table:style-name">Table<xsl:number count="w:tbl" from="/w:wordDocument/w:body" level="any" format="1"/>.R<xsl:number count="w:tr" from="/w:wordDocument/w:body" level="single" format="1"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="w:tc">
+ <xsl:element name="table:table-cell">
+ <xsl:attribute name="table:style-name">Table<xsl:number count="w:tbl" from="/w:wordDocument/w:body" level="any" format="1"/>.R<xsl:number count="w:tr" from="/w:wordDocument/w:body" level="single" format="1"/>C<xsl:number count="w:tc" from="/w:wordDocument/w:body" level="single" format="1"/>
+ </xsl:attribute>
+ <xsl:if test="w:tcPr/w:gridSpan and w:tcPr/w:gridSpan/@w:val &gt; 0">
+ <xsl:attribute name="table:number-columns-spanned">
+ <xsl:value-of select="w:tcPr/w:gridSpan/@w:val"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="convert2in_special">
+ <!-- this template is specially to deal with w:type ='dxa' situation -->
+ <xsl:param name="orignal_value"/>
+ <xsl:choose>
+ <xsl:when test="contains($orignal_value, 'dxa') ">
+ <xsl:variable name="table_measurement_new_value">
+ <xsl:value-of select="concat( substring-before($orignal_value,'dxa'), 'twip')"/>
+ </xsl:variable>
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="TargetMeasure" select="'in'"/>
+ <xsl:with-param name="value" select="$table_measurement_new_value"/>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/test/user-template/user/xslt/import/wordml/wordml2ooo_text.xsl b/test/user-template/user/xslt/import/wordml/wordml2ooo_text.xsl
new file mode 100644
index 000000000000..a00656a9ed32
--- /dev/null
+++ b/test/user-template/user/xslt/import/wordml/wordml2ooo_text.xsl
@@ -0,0 +1,1058 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+
+ Copyright 2000, 2010 Oracle and/or its affiliates.
+
+ OpenOffice.org - a multi-platform office productivity suite
+
+ This file is part of OpenOffice.org.
+
+ OpenOffice.org is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License version 3
+ only, as published by the Free Software Foundation.
+
+ OpenOffice.org is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License version 3 for more details
+ (a copy is included in the LICENSE file that accompanied this code).
+
+ You should have received a copy of the GNU Lesser General Public License
+ version 3 along with OpenOffice.org. If not, see
+ <http://www.openoffice.org/license.html>
+ for a copy of the LGPLv3 License.
+
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt v">
+ <xsl:template name="create-default-paragraph-styles">
+ <xsl:variable name="default-paragraph-style" select="w:style[@w:default = 'on' and @w:type = 'paragraph']"/>
+ <xsl:if test="$default-paragraph-style">
+ <style:default-style style:family="paragraph">
+ <style:paragraph-properties>
+ <xsl:attribute name="style:tab-stop-distance">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(/w:wordDocument/w:docPr/w:defaultTabStop/@w:val,'twip')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </style:paragraph-properties>
+ <style:text-properties style:use-window-font-color="true">
+ <xsl:choose>
+ <xsl:when test="/w:wordDocument/w:fonts/w:defaultFonts">
+ <xsl:attribute name="style:font-name">
+ <xsl:value-of select="/w:wordDocument/w:fonts/w:defaultFonts/@w:ascii"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:font-name-asian">
+ <xsl:value-of select="/w:wordDocument/w:fonts/w:defaultFonts/@w:fareast"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:font-name-complex">
+ <xsl:value-of select="/w:wordDocument/w:fonts/w:defaultFonts/@w:cs"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:font-name">Times New Roman</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$default-paragraph-style/w:rPr/w:sz">
+ <xsl:attribute name="fo:font-size">
+ <xsl:value-of select="translate($default-paragraph-style/w:rPr/w:sz/@w:val,'Na','0') div 2"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian">
+ <xsl:value-of select="translate($default-paragraph-style/w:rPr/w:sz/@w:val,'Na','0') div 2"/>pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$default-paragraph-style/w:rPr/w:sz-cs">
+ <xsl:attribute name="style:font-size-complex">
+ <xsl:value-of select="$default-paragraph-style/w:rPr/w:sz-cs/@w:val div 2"/>pt</xsl:attribute>
+ </xsl:if>
+ <!-- if not defined default font size in Word, make it out as 10pt. glu -->
+ <xsl:if test="not($default-paragraph-style/w:rPr/w:sz or w:rPr/w:sz-cs)">
+ <xsl:attribute name="fo:font-size">10pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian">10pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-complex">10pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$default-paragraph-style/w:rPr/w:lang">
+ <xsl:if test="$default-paragraph-style/w:rPr/w:lang/@w:val">
+ <xsl:attribute name="fo:language">
+ <xsl:choose>
+ <xsl:when test="contains($default-paragraph-style/w:rPr/w:lang/@w:val, '-')">
+ <xsl:value-of select="substring-before( $default-paragraph-style/w:rPr/w:lang/@w:val, '-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default-paragraph-style/w:rPr/w:lang/@w:val"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--xsl:value-of select="substring-before( $default-paragraph-style/w:rPr/w:lang/@w:val, '-')"/ -->
+ </xsl:attribute>
+ <xsl:attribute name="fo:country">
+ <xsl:choose>
+ <xsl:when test="contains($default-paragraph-style/w:rPr/w:lang/@w:val, '-')">
+ <xsl:value-of select="substring-before( $default-paragraph-style/w:rPr/w:lang/@w:val, '-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default-paragraph-style/w:rPr/w:lang/@w:val"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--xsl:value-of select="substring-after( $default-paragraph-style/w:rPr/w:lang/@w:val, '-')"/-->
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$default-paragraph-style/w:rPr/w:lang/@w:fareast">
+ <xsl:attribute name="style:language-asian">
+ <xsl:choose>
+ <xsl:when test="contains($default-paragraph-style/w:rPr/w:lang/@w:fareast, '-')">
+ <xsl:value-of select="substring-before( $default-paragraph-style/w:rPr/w:lang/@w:fareast, '-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default-paragraph-style/w:rPr/w:lang/@w:fareast"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--xsl:value-of select="substring-before( $default-paragraph-style/w:rPr/w:lang/@w:fareast, '-')"/-->
+ </xsl:attribute>
+ <xsl:attribute name="style:country-asian">
+ <xsl:choose>
+ <xsl:when test="contains($default-paragraph-style/w:rPr/w:lang/@w:fareast, '-')">
+ <xsl:value-of select="substring-before( $default-paragraph-style/w:rPr/w:lang/@w:fareast, '-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default-paragraph-style/w:rPr/w:lang/@w:fareast"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--xsl:value-of select="substring-after( $default-paragraph-style/w:rPr/w:lang/@w:fareast, '-')"/ -->
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="$default-paragraph-style/w:rPr/w:lang/@w:bidi">
+ <xsl:attribute name="style:language-complex">
+ <xsl:choose>
+ <xsl:when test="contains( $default-paragraph-style/w:rPr/w:lang/@w:bidi, '-') ">
+ <xsl:value-of select="substring-after( $default-paragraph-style/w:rPr/w:lang/@w:bidi, '-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default-paragraph-style/w:rPr/w:lang/@w:bidi "/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--xsl:value-of select="substring-before( $default-paragraph-style/w:rPr/w:lang/@w:bidi, '-')"/-->
+ </xsl:attribute>
+ <xsl:attribute name="style:country-complex">
+ <xsl:choose>
+ <xsl:when test="contains($default-paragraph-style/w:rPr/w:lang/@w:bidi, '-')">
+ <xsl:value-of select="substring-after( $default-paragraph-style/w:rPr/w:lang/@w:bidi, '-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$default-paragraph-style/w:rPr/w:lang/@w:bidi"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- xsl:value-of select="substring-after( $default-paragraph-style/w:rPr/w:lang/@w:bidi, '-')"/ -->
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </style:text-properties>
+ </style:default-style>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="create-default-text-styles">
+ <style:style style:name="Footnote_20_Symbol" style:display-name="Footnote Symbol" style:family="text"/>
+ <style:style style:name="Numbering_20_Symbols" style:display-name="Numbering Symbols" style:family="text"/>
+ <style:style style:name="Bullet_20_Symbols" style:display-name="Bullet Symbols" style:family="text">
+ <style:text-properties style:font-name="StarSymbol" fo:font-size="9pt" style:font-name-asian="StarSymbol" style:font-size-asian="9pt" style:font-name-complex="StarSymbol" style:font-size-complex="9pt"/>
+ </style:style>
+ <style:style style:name="Endnote_20_Symbol" style:display-name="Endnote Symbol" style:family="text"/>
+ <style:style style:name="Footnote_20_anchor" style:display-name="Footnote anchor" style:family="text">
+ <style:text-properties style:text-position="super 58%"/>
+ </style:style>
+ </xsl:template>
+ <xsl:template match="w:p" mode="style">
+ <xsl:variable name="paragraph-number">
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="w:p" format="1"/>
+ </xsl:variable>
+ <xsl:variable name="section-property-number" select="count(preceding::w:sectPr)"/>
+ <xsl:variable name="last-section-property" select="preceding::w:pPr/w:sectPr[1]"/>
+ <xsl:variable name="next-section-property" select="following::w:sectPr[1]"/>
+ <style:style style:family="paragraph" style:name="P{$paragraph-number}">
+ <xsl:choose>
+ <xsl:when test="w:pPr/w:pStyle">
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:value-of select="concat('w',translate(w:pPr/w:pStyle/@w:val,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))" />
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:parent-style-name">wNormal</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="not($next-section-property/w:type/@w:val = 'continuous') and generate-id($last-section-property[last()]/following::w:p[1]) = generate-id(.) and not(ancestor::w:sectPr or ancestor::w:tbl)">
+ <xsl:attribute name="style:master-page-name">Standard-1<xsl:value-of select="$section-property-number + 1"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$paragraph-number = 1">
+ <xsl:attribute name="style:master-page-name">First_20_Page</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <style:paragraph-properties>
+ <xsl:apply-templates select="w:pPr"/>
+ </style:paragraph-properties>
+ <style:text-properties>
+ <xsl:apply-templates select="w:pPr/w:rPr"/>
+ <xsl:apply-templates select="w:rPr"/>
+ </style:text-properties>
+ </style:style>
+ <xsl:if test="w:r/w:br/@w:type='page'">
+ <style:style style:family="paragraph" style:name="P{$paragraph-number}page-break">
+ <xsl:if test="w:pPr/w:pStyle">
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:value-of select="concat('w',translate(w:pPr/w:pStyle/@w:val,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="generate-id($last-section-property[last()]/following::w:p[1]) = generate-id(.) and not(ancestor::w:sectPr or ancestor::w:tbl)">
+ <xsl:attribute name="style:master-page-name">Standard-1<xsl:value-of select="$section-property-number + 1"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$paragraph-number = 1">
+ <xsl:attribute name="style:master-page-name">First_20_Page</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <style:paragraph-properties fo:break-before="page">
+ <xsl:apply-templates select="w:pPr"/>
+ </style:paragraph-properties>
+ </style:style>
+ </xsl:if>
+ <xsl:if test="w:r/w:br/@w:type='column'">
+ <style:style style:family="paragraph" style:name="P{$paragraph-number}column-break">
+ <xsl:if test="w:pPr/w:pStyle">
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:value-of select="concat('w',translate(w:pPr/w:pStyle/@w:val,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="generate-id($last-section-property[last()]/following::w:p[1]) = generate-id(.) and not(ancestor::w:sectPr or ancestor::w:tbl)">
+ <xsl:attribute name="style:master-page-name">Standard-1<xsl:value-of select="$section-property-number + 1"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="$paragraph-number = 1">
+ <xsl:attribute name="style:master-page-name">First_20_Page</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <style:paragraph-properties fo:break-before="column">
+ <xsl:apply-templates select="w:pPr"/>
+ </style:paragraph-properties>
+ </style:style>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="w:pPr">
+ <xsl:if test="w:ind/@w:left">
+ <xsl:attribute name="fo:margin-left">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:ind/@w:left, 'twip')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:ind/@w:right">
+ <xsl:attribute name="fo:margin-right">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:ind/@w:right, 'twip')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:ind/@w:first-line">
+ <xsl:attribute name="fo:text-indent">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:ind/@w:first-line, 'twip')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:ind/@w:hanging">
+ <xsl:attribute name="fo:text-indent">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat('-',w:ind/@w:hanging, 'twip')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ <!-- bi-directional support-->
+ <xsl:if test="w:bidi">
+ <xsl:choose>
+ <xsl:when test="w:bidi/@w:val = 'off'">
+ <xsl:attribute name="fo:text-align">start</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:writing-mode">rl-tb</xsl:attribute>
+ <xsl:attribute name="fo:text-align">end</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="w:jc">
+ <xsl:choose>
+ <xsl:when test="w:jc/@w:val = 'center'">
+ <xsl:attribute name="fo:text-align">center</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:jc/@w:val = 'left'">
+ <xsl:choose>
+ <xsl:when test="w:bidi and not(w:bidi/@w:val = 'off')">
+ <xsl:attribute name="fo:text-align">end</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:text-align">start</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="w:jc/@w:val = 'right'">
+ <xsl:choose>
+ <xsl:when test="w:bidi and not(w:bidi/@w:val = 'off')">
+ <xsl:attribute name="fo:text-align">start</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:text-align">end</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="fo:text-align">justify</xsl:attribute>
+ <xsl:attribute name="style:justify-single-word">false</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="w:spacing">
+ <xsl:choose>
+ <xsl:when test="w:spacing/@w:line-rule = 'at-least'">
+ <xsl:attribute name="style:line-height-at-least">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:spacing/@w:line, 'twip')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:spacing/@w:line-rule = 'auto'">
+ <xsl:attribute name="fo:line-height">
+ <xsl:value-of select="round(w:spacing/@w:line div 240 * 100)"/>%</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:spacing/@w:line-rule = 'exact'">
+ <xsl:attribute name="fo:line-height">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:spacing/@w:line, 'twip')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="w:spacing/@w:before">
+ <xsl:attribute name="fo:margin-top">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:spacing/@w:before, 'twip')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:spacing/@w:after">
+ <xsl:attribute name="fo:margin-bottom">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:spacing/@w:after, 'twip')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="w:shd">
+ <xsl:variable name="background-color">
+ <xsl:choose>
+ <xsl:when test="string-length(w:shd/@w:fill) = 6">
+ <xsl:value-of select="concat('#', w:shd/@w:fill)"/>
+ </xsl:when>
+ <xsl:otherwise>#000000</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="w:shd/@w:val = 'solid'">
+ <xsl:attribute name="fo:background-color">
+ <xsl:value-of select="$background-color"/>
+ </xsl:attribute>
+ </xsl:when>
+ <!-- patterns are necessary in the future. glu -->
+ <xsl:otherwise/>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="w:pageBreakBefore and not(w:pageBreakBefore/@w:val = 'off')">
+ <xsl:attribute name="fo:break-before">page</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:pageBreakBefore and w:pageBreakBefore/@w:val = 'off'">
+ <xsl:attribute name="fo:break-before">auto</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:keepNext">
+ <xsl:attribute name="fo:keep-with-next">always</xsl:attribute>
+ </xsl:if>
+ <!--
+ <xsl:if test="w:keepLines">
+ <xsl:attribute name="style:break-inside">avoid</xsl:attribute>
+ </xsl:if>
+ -->
+ <xsl:if test="w:widowControl='on'">
+ <xsl:attribute name="fo:widows">2</xsl:attribute>
+ <xsl:attribute name="fo:orphans">2</xsl:attribute>
+ </xsl:if>
+ <!--
+ <xsl:if test="w:suppressAutoHyphens">
+ <xsl:attribute name="fo:hyphenate">false</xsl:attribute>
+ </xsl:if>
+ -->
+ <xsl:if test="w:kinsoku/@w:val='off'">
+ <xsl:attribute name="style:line-break">normal</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:overflowPunct/@w:val='off'">
+ <xsl:attribute name="style:punctuation-wrap">simple</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:autoSpaceDE/@w:val='off' or w:autoSpaceDN/@w:val='off'">
+ <xsl:attribute name="style:text-autospace">none</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:textAlignment">
+ <xsl:choose>
+ <xsl:when test="w:textAlignment/@w:val='center'">
+ <xsl:attribute name="style:vertical-align">middle</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:textAlignment/@w:val='baseline'">
+ <xsl:attribute name="style:vertical-align">bottom</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:vertical-align">
+ <xsl:value-of select="w:textAlignment/@w:val"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="w:pBdr">
+ <xsl:if test="w:pBdr/w:top">
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'top'"/>
+ <xsl:with-param name="style-position-0" select="w:pBdr/w:top"/>
+ </xsl:call-template>
+ <xsl:attribute name="fo:padding-top">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:pBdr/w:top/@w:space,'pt')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:pBdr/w:left">
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'left'"/>
+ <xsl:with-param name="style-position-0" select="w:pBdr/w:left"/>
+ </xsl:call-template>
+ <xsl:attribute name="fo:padding-left">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:pBdr/w:left/@w:space,'pt')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:pBdr/w:right">
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'right'"/>
+ <xsl:with-param name="style-position-0" select="w:pBdr/w:right"/>
+ </xsl:call-template>
+ <xsl:attribute name="fo:padding-right">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:pBdr/w:right/@w:space,'pt')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:pBdr/w:bottom">
+ <xsl:call-template name="get-table-border">
+ <xsl:with-param name="style-pos" select="'bottom'"/>
+ <xsl:with-param name="style-position-0" select="w:pBdr/w:bottom"/>
+ </xsl:call-template>
+ <xsl:attribute name="fo:padding-bottom">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:pBdr/w:bottom/@w:space,'pt')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:pBdr/*/@w:shadow='on'">
+ <xsl:attribute name="style:shadow">#000000 0.15cm 0.15cm</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="w:snapToGrid/@w:val='off'">
+ <xsl:attribute name="style:snap-to-layout-grid">false</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:tabs">
+ <xsl:element name="style:tab-stops">
+ <xsl:for-each select="w:tabs/w:tab">
+ <xsl:element name="style:tab-stop">
+ <xsl:attribute name="style:position">
+ <xsl:if test="@w:pos &lt; 0">
+ <xsl:message>
+ We meet a negative w:pos:<xsl:value-of select="@w:pos"/>.
+ </xsl:message>
+ <xsl:value-of select="'0cm'"/>
+ </xsl:if>
+ <xsl:if test="not(@w:pos &lt; 0)">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(@w:pos, 'twip')"/>
+ </xsl:call-template>cm</xsl:if>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@w:val = 'decimal'">
+ <xsl:attribute name="style:type">char</xsl:attribute>
+ <xsl:attribute name="style:char">
+ <xsl:value-of select="' '"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@w:val = 'left' or @w:val = 'right' or @w:val = 'center' ">
+ <xsl:attribute name="style:type">
+ <xsl:value-of select="@w:val"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:type">char</xsl:attribute>
+ <xsl:attribute name="style:char">
+ <xsl:value-of select="' '"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!-- Detect leader chars in tabs (rp) -->
+ <xsl:choose>
+ <xsl:when test="@w:leader = 'hyphen'">
+ <xsl:attribute name="style:leader-style">solid</xsl:attribute>
+ <xsl:attribute name="style:leader-text">-</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@w:leader = 'underscore'">
+ <xsl:attribute name="style:leader-style">solid</xsl:attribute>
+ <xsl:attribute name="style:leader-text">_</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@w:leader = 'dot'">
+ <xsl:attribute name="style:leader-style">dotted</xsl:attribute>
+ <xsl:attribute name="style:leader-text">.</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <!-- end leader chars (rp) -->
+ </xsl:element>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:if>
+ <xsl:apply-templates select="w:rPr" mode="paragraph-properties"/>
+ </xsl:template>
+ <xsl:template match="w:rPr" mode="style">
+ <xsl:element name="style:style">
+ <xsl:attribute name="style:name">T<xsl:number from="/w:wordDocument/w:body" level="any" count="w:rPr" format="1"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:family">text</xsl:attribute>
+ <xsl:if test="w:rStyle">
+ <xsl:attribute name="style:parent-style-name">
+ <xsl:value-of select="concat('w',translate(w:rStyle/@w:val,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:element name="style:text-properties">
+
+ <xsl:apply-templates select="current()"/>
+<!-- <xsl:call-template name="text-properties"/> -->
+ </xsl:element>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="w:rPr">
+ <xsl:if test="w:rFonts">
+ <xsl:if test="w:rFonts/@w:ascii">
+ <xsl:attribute name="style:font-name">
+ <xsl:value-of select="w:rFonts/@w:ascii"/>
+ </xsl:attribute>
+ <xsl:if test="ancestor::w:body">
+ <xsl:attribute name="style:font-name-asian">
+ <xsl:value-of select="w:rFonts/@w:ascii"/>
+ </xsl:attribute>
+ <xsl:attribute name="style:font-name-complex">
+ <xsl:value-of select="w:rFonts/@w:ascii"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="ancestor::w:styles">
+ <xsl:if test="w:rFonts/@w:fareast">
+ <xsl:attribute name="style:font-name-asian">
+ <xsl:value-of select="w:rFonts/@w:fareast"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:rFonts/@w:cs">
+ <xsl:attribute name="style:font-name-complex">
+ <xsl:value-of select="w:rFonts/@w:cs"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="parent::w:r">
+ <xsl:if test="w:b">
+ <xsl:attribute name="fo:font-weight">bold</xsl:attribute>
+ <xsl:attribute name="style:font-weight-asian">bold</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:b-cs">
+ <xsl:attribute name="style:font-weight-complex">bold</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:i">
+ <xsl:attribute name="fo:font-style">italic</xsl:attribute>
+ <xsl:attribute name="style:font-style-asian">italic</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:i-cs">
+ <xsl:attribute name="style:font-style-complex">italic</xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="w:caps">
+ <xsl:attribute name="fo:text-transform">uppercase</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:smallCaps">
+ <xsl:attribute name="fo:font-variant">small-caps</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:strike">
+ <xsl:attribute name="style:text-line-through-style">solid</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:dstrike">
+ <xsl:attribute name="style:text-line-through-style">solid</xsl:attribute>
+ <xsl:attribute name="style:text-line-through-type">double</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:outline">
+ <xsl:attribute name="style:text-outline">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:shadow">
+ <xsl:attribute name="fo:text-shadow">1pt 1pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:imprint">
+ <xsl:attribute name="style:font-relief">engraved</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:emboss">
+ <xsl:attribute name="style:font-relief">embossed</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:vanish">
+ <xsl:attribute name="text:display">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:color[not(@w:val = 'auto')]">
+ <xsl:attribute name="fo:color">#<xsl:value-of select="w:color/@w:val"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:spacing">
+ <xsl:attribute name="fo:letter-spacing">
+ <xsl:call-template name="ConvertMeasure">
+ <xsl:with-param name="value" select="concat(w:spacing/@w:val,'twip')"/>
+ </xsl:call-template>cm</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:w/@w:val">
+ <xsl:attribute name="style:text-scale">
+ <xsl:value-of select="concat(w:w/@w:val, '%')"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:vertAlign or w:position">
+ <xsl:variable name="height">
+ <xsl:choose>
+ <xsl:when test="w:vertAlign[@w:val = 'superscript' or @w:val = 'subscript']">58%</xsl:when>
+ <xsl:otherwise>100%</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="position">
+ <xsl:choose>
+ <xsl:when test="w:position">
+ <!-- con't get font height easily, so just set w:val as percentage. glu -->
+ <xsl:value-of select="concat( w:position/@w:val, '%')"/>
+ </xsl:when>
+ <xsl:when test="w:vertAlign[@w:val = 'superscript']">super</xsl:when>
+ <xsl:when test="w:vertAlign[@w:val = 'subscript']">sub</xsl:when>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:attribute name="style:text-position">
+ <xsl:value-of select="concat($position, ' ', $height)"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:sz">
+ <xsl:attribute name="fo:font-size">
+ <xsl:value-of select="translate(w:sz/@w:val,'Na','0') div 2"/>pt</xsl:attribute>
+ <xsl:attribute name="style:font-size-asian">
+ <xsl:value-of select="translate(w:sz/@w:val,'Na','0') div 2"/>pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:sz-cs">
+ <xsl:attribute name="style:font-size-complex">
+ <xsl:value-of select="w:sz-cs/@w:val div 2"/>pt</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:highlight">
+ <xsl:choose>
+ <xsl:when test="w:highlight/@w:val='black'">
+ <xsl:attribute name="fo:background-color">#000000</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='yellow'">
+ <xsl:attribute name="fo:background-color">#ffff00</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='green'">
+ <xsl:attribute name="fo:background-color">#00ff00</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='cyan'">
+ <xsl:attribute name="fo:background-color">#00ffff</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='magenta'">
+ <xsl:attribute name="fo:background-color">#ff00ff</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='blue'">
+ <xsl:attribute name="fo:background-color">#0000ff</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='red'">
+ <xsl:attribute name="fo:background-color">#ff0000</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='dark-blue'">
+ <xsl:attribute name="fo:background-color">#000080</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='dark-cyan'">
+ <xsl:attribute name="fo:background-color">#008080</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='dark-green'">
+ <xsl:attribute name="fo:background-color">#008000</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='dark-magenta'">
+ <xsl:attribute name="fo:background-color">#800080</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='dark-red'">
+ <xsl:attribute name="fo:background-color">#800000</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='dark-yellow'">
+ <xsl:attribute name="fo:background-color">#808000</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='dark-gray'">
+ <xsl:attribute name="fo:background-color">#808080</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:highlight/@w:val='light-gray'">
+ <xsl:attribute name="fo:background-color">#c0c0c0</xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="w:u">
+ <xsl:if test="w:u/@w:val = 'thick' or contains(w:u/@w:val,'-heavy')">
+ <xsl:attribute name="style:text-underline-width">bold</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:u/@w:val = 'double' or contains(w:u/@w:val,'-double')">
+ <xsl:attribute name="style:text-underline-type">double</xsl:attribute>
+ </xsl:if>
+ <xsl:choose>
+ <xsl:when test="w:u/@w:val = 'words' or w:u/@w:val = 'single' or w:u/@w:val = 'thick' or w:u/@w:val = 'double'">
+ <xsl:attribute name="style:text-underline-style">solid</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="contains(w:u/@w:val , 'dotted')">
+ <xsl:attribute name="style:text-underline-style">dotted</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:u/@w:val = 'dashed-heavy' or w:u/@w:val = 'dash'">
+ <xsl:attribute name="style:text-underline-style">dash</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:u/@w:val = 'dash-long' or w:u/@w:val = 'dash-long-heavy'">
+ <xsl:attribute name="style:text-underline-style">long-dash</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:u/@w:val = 'dash-dot-heavy' or w:u/@w:val = 'dot-dash'">
+ <xsl:attribute name="style:text-underline-style">dot-dash</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:u/@w:val = 'dash-dot-dot-heavy' or w:u/@w:val = 'dot-dot-dash'">
+ <xsl:attribute name="style:text-underline-style">dot-dot-dash</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:u/@w:val = 'wavy-heavy' or w:u/@w:val = 'wavy-double' or w:u/@w:val = 'wavy'">
+ <xsl:attribute name="style:text-underline-style">wave</xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="string-length(style:text-underline-style) &gt; 0">
+ <xsl:attribute name="style:text-underline-style">
+ <xsl:value-of select="w:u/@w:val"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="w:u/@w:color and not(w:u/@w:color = 'auto')">
+ <xsl:attribute name="style:text-underline-color">#<xsl:value-of select="w:u/@w:color"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="w:effect[@w:val = 'blink-background']">
+ <xsl:attribute name="style:text-blinking">true</xsl:attribute>
+ </xsl:if>
+ <xsl:if test="w:shd and not(w:highlight)">
+ <xsl:if test="string-length(w:shd/@w:fill) = 6">
+ <xsl:attribute name="fo:background-color">#<xsl:value-of select="w:shd/@w:fill"/>
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ <xsl:if test="w:em">
+ <xsl:choose>
+ <xsl:when test="w:em/@w:val = 'comma'">
+ <xsl:attribute name="style:text-emphasize">accent below</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:em/@w:val = 'under-dot'">
+ <xsl:attribute name="style:text-emphasize">disc below</xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:em/@w:val = 'dot' or w:em/@w:val = 'circle' ">
+ <xsl:attribute name="style:text-emphasize">
+ <xsl:value-of select=" concat(w:em/@w:val,' below') "/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="style:text-emphasize">none</xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="w:lang">
+ <xsl:if test="w:lang/@w:val">
+ <xsl:attribute name="fo:language">
+ <xsl:choose>
+ <xsl:when test="contains(w:lang/@w:val, '-')">
+ <xsl:value-of select="substring-before( w:lang/@w:val, '-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="w:lang/@w:val"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--xsl:value-of select="substring-before( w:lang/@w:val, '-')"/-->
+ </xsl:attribute>
+ <xsl:attribute name="fo:country">
+ <xsl:choose>
+ <xsl:when test="contains(w:lang/@w:val, '-')">
+ <xsl:value-of select="substring-before( w:lang/@w:val, '-')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="w:lang/@w:val"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ <!--xsl:value-of select="substring-after( w:lang/@w:val, '-')"/-->
+ </xsl:attribute>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="w:rPr" mode="paragraph-properties">
+ <!-- right-to-left support-->
+ <xsl:if test="w:rtl and not(w:rtl/@w:val = 'off')">
+ <xsl:attribute name="style:writing-mode">rl-tb</xsl:attribute>
+ <xsl:attribute name="fo:text-align">end</xsl:attribute>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="w:p">
+ <xsl:choose>
+ <!-- because word treats page breaks as separate tags, we must split some paragraphs up so that we can
+ give the sub para a fo:break-before ="page" or column attribute. -->
+ <xsl:when test="w:r[w:br/@w:type='page' or w:br/@w:type='column']">
+ <xsl:call-template name="process-breaks-in-paragraph"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="process-common-paragraph"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="process-breaks-in-paragraph">
+ <xsl:variable name="textruns-with-break" select="w:r[w:br/@w:type='page' or w:br/@w:type='column']"/>
+ <xsl:call-template name="create-sub-paragraph">
+ <xsl:with-param name="textruns" select="$textruns-with-break[1]/preceding-sibling::w:r"/>
+ </xsl:call-template>
+ <xsl:for-each select="$textruns-with-break">
+ <xsl:variable name="break-position" select="position()"/>
+ <xsl:call-template name="create-sub-paragraph">
+ <!-- added following-sibling::w:fldSimple | following-sibling::w:hlink | following-sibling::aml:annotation to enable these elements to be processed when there are breaks happen G.Yang -->
+ <xsl:with-param name="textruns" select="following-sibling::w:r[not(w:br/@w:type='page' or w:br/@w:type='column') and (count(preceding::w:r[w:br/@w:type='page' or w:br/@w:type='column']) = $break-position)] | following-sibling::w:fldSimple[count(preceding::w:r[w:br/@w:type='page' or w:br/@w:type='column']) = $break-position] | following-sibling::w:hlink[count(preceding::w:r[w:br/@w:type='page' or w:br/@w:type='column']) = $break-position] | following-sibling::aml:annotation[count(preceding::w:r[w:br/@w:type='page' or w:br/@w:type='column']) = $break-position] "/>
+ <xsl:with-param name="textruns-with-break" select="current()"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:template>
+ <xsl:template name="create-sub-paragraph">
+ <xsl:param name="textruns"/>
+ <xsl:param name="textruns-with-break"/>
+ <xsl:if test="$textruns or $textruns-with-break">
+ <xsl:variable name="curr-num">
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="w:p" format="1"/>
+ </xsl:variable>
+ <text:p>
+ <xsl:choose>
+ <xsl:when test="$textruns-with-break">
+ <xsl:attribute name="text:style-name">
+ <xsl:value-of select="concat('P',$curr-num,w:br/@w:type, '-break')"/>
+ </xsl:attribute>
+ <xsl:apply-templates select="$textruns-with-break"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:attribute name="text:style-name">
+ <xsl:value-of select="concat( 'P', $curr-num)"/>
+ </xsl:attribute>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="$textruns">
+ <xsl:apply-templates select="$textruns"/>
+ </xsl:if>
+ </text:p>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template name="process-common-paragraph">
+ <xsl:variable name="heading-or-paragraph">
+ <xsl:choose>
+ <xsl:when test="key('heading-style', w:pPr/w:pStyle/@w:val)">text:h</xsl:when>
+ <xsl:otherwise>text:p</xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:element name="{$heading-or-paragraph}">
+ <xsl:if test="$heading-or-paragraph = 'text:h'">
+ <xsl:attribute name="text:outline-level">
+ <xsl:value-of select="key('heading-style',w:pPr/w:pStyle/@w:val)/w:pPr/w:outlineLvl/@w:val + 1"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:variable name="curr-num">
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="w:p" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name">
+ <xsl:value-of select="concat( 'P', $curr-num)"/>
+ </xsl:attribute>
+ <xsl:variable name="bookmark-and-paragraph" select="preceding::aml:annotation[(@w:type = 'Word.Bookmark.Start' or @w:type = 'Word.Bookmark.End') and not(ancestor::w:p)] | preceding::w:p"/>
+ <xsl:if test="count($bookmark-and-paragraph) &gt; 0 and name($bookmark-and-paragraph[last()]) = 'aml:annotation'">
+ <xsl:call-template name="create-bookmark">
+ <xsl:with-param name="bookmark-and-paragraph" select="$bookmark-and-paragraph"/>
+ <xsl:with-param name="position" select="count($bookmark-and-paragraph)"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:apply-templates mode="dispatch"/>
+ <xsl:if test="not(following::w:p)">
+ <xsl:apply-templates select="following::aml:annotation[(@w:type = 'Word.Bookmark.Start' or @w:type = 'Word.Bookmark.End') and not(ancestor::w:p)]"/>
+ </xsl:if>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template name="create-bookmark">
+ <xsl:param name="bookmark-and-paragraph"/>
+ <xsl:param name="position"/>
+ <xsl:choose>
+ <xsl:when test="name($bookmark-and-paragraph[$position]) = 'aml:annotation'">
+ <xsl:if test="$position &gt; 0">
+ <xsl:call-template name="create-bookmark">
+ <xsl:with-param name="bookmark-and-paragraph" select="$bookmark-and-paragraph"/>
+ <xsl:with-param name="position" select="$position - 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="output-bookmark">
+ <xsl:with-param name="bookmark-and-paragraph" select="$bookmark-and-paragraph"/>
+ <xsl:with-param name="position" select="$position + 1"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="output-bookmark">
+ <xsl:param name="bookmark-and-paragraph"/>
+ <xsl:param name="position"/>
+ <xsl:apply-templates select="$bookmark-and-paragraph[$position]"/>
+ <xsl:if test="$position &lt; count($bookmark-and-paragraph)">
+ <xsl:call-template name="output-bookmark">
+ <xsl:with-param name="bookmark-and-paragraph" select="$bookmark-and-paragraph"/>
+ <xsl:with-param name="position" select="$position + 1"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+ <!-- WordML contains multiple w:t within one w:r, so in Star Writer text:span should correspond to w:t glu -->
+ <xsl:template match="w:r">
+ <xsl:choose>
+ <xsl:when test="(preceding-sibling::w:r) or (w:rPr)">
+ <!-- add this condition to prevent from printing the value of DATE, TIME, PRINTDATE, CREATEDATE, SAVEDATE, PAGE, NUMPAGES etc. fields in-between w:fldchar begin and w:fldchar end G.Yang.-->
+ <xsl:if test="not (preceding-sibling::w:r/w:instrText[substring(normalize-space(.),1,4) = 'DATE' or substring(normalize-space(.),1,4) = 'TIME' or substring(normalize-space(.),1,9) = 'PRINTDATE' or substring(normalize-space(.),1,10) = 'CREATEDATE' or substring(normalize-space(.),1,8) = 'SAVEDATE' or substring(normalize-space(.),1,4) = 'PAGE' or substring(normalize-space(.),1,8) = 'NUMPAGES' or substring(normalize-space(.),1,8) = 'NUMWORDS' or substring(normalize-space(.),1,8) = 'NUMCHARS' or substring(normalize-space(.),1,6) = 'REVNUM' or substring(normalize-space(.),1,7) = 'AUTONUM' or substring(normalize-space(.),1,10) = 'AUTONUMLGL' or substring(normalize-space(.),1,10) = 'AUTONUMOUT' or substring(normalize-space(.),1,3) = 'SEQ' or substring(normalize-space(.),1,6) = 'AUTHOR' or substring(normalize-space(.),1,5) = 'TITLE' or substring(normalize-space(.),1,7) = 'SUBJECT' or substring(normalize-space(.),1,8) = 'KEYWORDS' or substring(normalize-space(.),1,6) = 'FILLIN' or substring(normalize-space(.),1,11) = 'DOCPROPERTY' or substring(normalize-space(.),1,10) = 'MERGEFIELD' or substring(normalize-space(.),1,8) = 'MERGEREC' or substring(normalize-space(.),1,4) = 'NEXT' or substring( normalize-space(.),1,9) = 'HYPERLINK' or substring( normalize-space(.),1,3) = 'REF' ][1] and (following-sibling::w:r/w:fldChar[@w:fldCharType='end'] or ( not(preceding-sibling::w:r/w:fldChar[@w:fldCharType='end'] ) and parent::w:p/following-sibling::w:p/w:r/w:fldChar[@w:fldCharType='end'])) )">
+ <text:span>
+ <xsl:choose>
+ <xsl:when test="w:rPr/w:rStyle">
+ <xsl:attribute name="text:style-name">
+ <xsl:value-of select="concat('w', translate(w:rPr/w:rStyle/@w:val,' ~`!@#$%^*(&#x26;)+/,;?&lt;&gt;{}[]:','_'))"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="w:rPr">
+ <xsl:variable name="position">
+ <xsl:number from="/w:wordDocument/w:body" level="any" count="w:rPr" format="1"/>
+ </xsl:variable>
+ <xsl:attribute name="text:style-name">T<xsl:value-of select="$position + 1"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:apply-templates mode="dispatch"/>
+ </text:span>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <!-- add this condition to prevent from printing the value of DATE, TIME, PRINTDATE, CREATEDATE, SAVEDATE, PAGE, NUMPAGES, etc. fields in-between w:fldchar begin and w:fldchar end G.Yang.-->
+ <xsl:if test="not( preceding-sibling::w:r/w:instrText[substring(normalize-space(.),1,4) = 'DATE' or substring(normalize-space(.),1,4) = 'TIME' or substring(normalize-space(.),1,9) = 'PRINTDATE' or substring(normalize-space(.),1,10) = 'CREATEDATE' or substring(normalize-space(.),1,8) = 'SAVEDATE' or substring(normalize-space(.),1,4) = 'PAGE' or substring(normalize-space(.),1,8) = 'NUMPAGES' or substring(normalize-space(.),1,8) = 'NUMWORDS' or substring(normalize-space(.),1,8) = 'NUMCHARS' or substring(normalize-space(.),1,6) = 'REVNUM' or substring(normalize-space(.),1,7) = 'AUTONUM' or substring(normalize-space(.),1,10) = 'AUTONUMLGL' or substring(normalize-space(.),1,10) = 'AUTONUMOUT' or substring(normalize-space(.),1,3) = 'SEQ' or substring(normalize-space(.),1,6) = 'AUTHOR' or substring(normalize-space(.),1,5) = 'TITLE' or substring(normalize-space(.),1,7) = 'SUBJECT' or substring(normalize-space(.),1,8) = 'KEYWORDS' or substring(normalize-space(.),1,6) = 'FILLIN' or substring(normalize-space(.),1,11) = 'DOCPROPERTY' or substring(normalize-space(.),1,10) = 'MERGEFIELD' or substring(normalize-space(.),1,8) = 'MERGEREC' or substring(normalize-space(.),1,4) = 'NEXT' or substring( normalize-space(.),1,9) = 'HYPERLINK' or substring( normalize-space(.),1,3) = 'REF' ][1] and (following-sibling::w:r/w:fldChar[@w:fldCharType='end'] or ( not(preceding-sibling::w:r/w:fldChar[@w:fldCharType='end'] ) and parent::w:p/following-sibling::w:p/w:r/w:fldChar[@w:fldCharType='end'])) )">
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="aml:annotation">
+ <xsl:choose>
+ <xsl:when test="@w:type = 'Word.Bookmark.Start'">
+ <text:bookmark-start text:name="{@w:name}"/>
+ </xsl:when>
+ <xsl:when test="@w:type = 'Word.Bookmark.End'">
+ <xsl:variable name="id" select="@aml:id"/>
+ <text:bookmark-end text:name="{preceding::aml:annotation[@aml:id = $id]/@w:name}"/>
+ </xsl:when>
+ <xsl:when test="@w:type = 'Word.Comment'">
+ <office:annotation office:display="true">
+ <dc:creator>
+ <xsl:value-of select="@aml:author"/>
+ </dc:creator>
+ <dc:date>
+ <xsl:value-of select="substring(@aml:createdate,1,10)"/>
+ </dc:date>
+ <xsl:apply-templates select="aml:content/w:p"/>
+ </office:annotation>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template match="w:hlink">
+ <xsl:element name="text:a">
+ <xsl:attribute name="xlink:type">simple</xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="@w:dest and @w:bookmark">
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="concat( @w:dest, concat('#', @w:bookmark) )"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@w:dest">
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="@w:dest"/>
+ </xsl:attribute>
+ </xsl:when>
+ <xsl:when test="@w:bookmark">
+ <xsl:attribute name="xlink:href">
+ <xsl:value-of select="concat('#', @w:bookmark)"/>
+ </xsl:attribute>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:if test="@w:target">
+ <xsl:attribute name="office:target-frame-name">
+ <xsl:value-of select="@w:target"/>
+ </xsl:attribute>
+ </xsl:if>
+ <xsl:apply-templates mode="dispatch"/>
+ </xsl:element>
+ </xsl:template>
+ <xsl:template match="w:t">
+ <xsl:choose>
+ <xsl:when test="string(.) = ' ' ">
+ <xsl:element name="text:s"/>
+ </xsl:when>
+ <xsl:when test="contains(.,' ')">
+ <xsl:call-template name="replace-spaces">
+ <xsl:with-param name="curr-string" select="."/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+ <xsl:template name="replace-spaces">
+ <xsl:param name="curr-string"/>
+ <xsl:if test="contains($curr-string,' ')">
+ <xsl:value-of select="substring-before($curr-string,' ')"/>
+ <text:s text:c="2"/>
+ <xsl:variable name="next-string" select="substring-after($curr-string,' ')"/>
+ <xsl:choose>
+ <xsl:when test="contains($next-string, ' ')">
+ <xsl:call-template name="replace-spaces">
+ <xsl:with-param name="curr-string" select="$next-string"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$next-string"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="w:tab">
+ <xsl:element name="text:tab"/>
+ </xsl:template>
+ <xsl:template match="w:br">
+ <xsl:if test="@w:type='text-wrapping' or not(@w:type)">
+ <text:line-break/>
+ </xsl:if>
+ </xsl:template>
+ <xsl:template match="w:footnote">
+ <xsl:variable name="footnote-position">
+ <xsl:number from="/w:wordDocument/w:body" count="w:footnote" level="any"/>
+ </xsl:variable>
+ <text:note text:note-class="footnote" text:id="ftn{$footnote-position}">
+ <text:note-citation/>
+ <text:note-body>
+ <xsl:apply-templates mode="dispatch"/>
+ </text:note-body>
+ </text:note>
+ </xsl:template>
+ <xsl:template match="w:endnote">
+ <xsl:variable name="endnote-position">
+ <xsl:number from="/w:wordDocument/w:body" count="w:endnote" level="any" format="1"/>
+ </xsl:variable>
+ <text:endnote text:id="edn{$endnote-position}">
+ <text:endnote-body>
+ <xsl:apply-templates mode="dispatch"/>
+ </text:endnote-body>
+ </text:endnote>
+ </xsl:template>
+</xsl:stylesheet>